<?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>122781</bug_id>
          
          <creation_ts>2013-10-14 15:18:55 -0700</creation_ts>
          <short_desc>Refactor stored website data APIs</short_desc>
          <delta_ts>2013-10-17 13:50:25 -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>WebKit2</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Hock">mhock</reporter>
          <assigned_to name="Martin Hock">mhock</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mkwst</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>thorton</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>939667</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-14 15:18:55 -0700</bug_when>
    <thetext>There are a number of APIs in WebKit2 for dealing with stored website data:
WKApplicationCacheManager
WKCookieManager
WKDatabaseManager
WKKeyValueStorageManager
WKMediaCacheManager
WKPluginSiteDataManager
WKResourceCacheManager

We can consolidate these and simplify the implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939680</commentid>
    <comment_count>1</comment_count>
      <attachid>214200</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-14 15:54:33 -0700</bug_when>
    <thetext>Created attachment 214200
Add WebOriginDataManager and friends</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939683</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-14 15:58:27 -0700</bug_when>
    <thetext>Attachment 214200 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/DerivedSources.make&apos;, u&apos;Source/WebKit2/Shared/API/c/WKBase.h&apos;, u&apos;Source/WebKit2/Shared/APIObject.h&apos;, u&apos;Source/WebKit2/Shared/OriginDataAcceptPolicy.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKAPICast.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKContext.h&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKOriginDataManager.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKOriginDataManager.h&apos;, u&apos;Source/WebKit2/UIProcess/WebOriginDataManagerProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebOriginDataManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebOriginDataManagerProxy.messages.in&apos;, u&apos;Source/WebKit2/UIProcess/WebOriginDataManagerProxyChangeClient.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebOriginDataManagerProxyChangeClient.h&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.cpp&apos;, u&apos;Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.h&apos;, u&apos;Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.messages.in&apos;]&quot; exit_code: 1
Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.h:47:  The parameter name &quot;mask&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.h:50:  The parameter name &quot;mask&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.h:51:  The parameter name &quot;mask&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/API/C/WKOriginDataManager.cpp:76:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
Source/WebKit2/UIProcess/WebOriginDataManagerProxy.h:37:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/WebOriginDataManagerProxy.h:41:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/UIProcess/API/C/WKContext.cpp:45:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/WebOriginDataManagerProxy.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/WebOriginDataManagerProxy.cpp:37:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/UIProcess/WebOriginDataManagerProxy.cpp:147:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebKit2/UIProcess/WebOriginDataManagerProxy.cpp:154:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebKit2/UIProcess/WebOriginDataManagerProxy.cpp:161:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 14 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939684</commentid>
    <comment_count>3</comment_count>
      <attachid>214200</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-14 15:59:15 -0700</bug_when>
    <thetext>Comment on attachment 214200
Add WebOriginDataManager and friends

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

&gt; Source/WebKit2/UIProcess/API/C/WKOriginDataManager.h:44
&gt; +    kWKOriginDataMaskApplicationCache = 01,
&gt; +    kWKOriginDataMaskCookie = 02,
&gt; +    kWKOriginDataMaskDatabase = 04,
&gt; +    kWKOriginDataMaskKeyValueStorage = 010,
&gt; +    kWKOriginDataMaskMediaCache = 020,
&gt; +    kWKOriginDataMaskPluginData = 040,
&gt; +    kWKOriginDataMaskResourceCache = 0100,
&gt; +
&gt; +    kWKOriginDataMaskAll = 0177

Probably this should use bitshifts like WKLayoutMilestones?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939697</commentid>
    <comment_count>4</comment_count>
      <attachid>214200</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-14 16:10:58 -0700</bug_when>
    <thetext>Comment on attachment 214200
Add WebOriginDataManager and friends

Attachment 214200 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/3947948</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939702</commentid>
    <comment_count>5</comment_count>
      <attachid>214204</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-14 16:16:41 -0700</bug_when>
    <thetext>Created attachment 214204
Fix style errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939716</commentid>
    <comment_count>6</comment_count>
      <attachid>214204</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-14 16:32:48 -0700</bug_when>
    <thetext>Comment on attachment 214204
Fix style errors

Attachment 214204 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/4043080</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939721</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-14 16:41:36 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 214204 [details])
&gt; Attachment 214204 [details] did not pass efl-wk2-ews (efl-wk2):
&gt; Output: http://webkit-queues.appspot.com/results/4043080


&gt; CMakeFiles/WebKit2.dir/UIProcess/API/C/WKContext.cpp.o: In function `WKContextGetOriginDataManager&apos;:
&gt; WKContext.cpp:(.text.WKContextGetOriginDataManager+0x5): undefined reference to `WebKit::WebOriginDataManagerProxy::supplementName()&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939731</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-14 17:22:34 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 214200 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=214200&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKOriginDataManager.h:44
&gt; &gt; +    kWKOriginDataMaskApplicationCache = 01,
&gt; &gt; +    kWKOriginDataMaskCookie = 02,
&gt; &gt; +    kWKOriginDataMaskDatabase = 04,
&gt; &gt; +    kWKOriginDataMaskKeyValueStorage = 010,
&gt; &gt; +    kWKOriginDataMaskMediaCache = 020,
&gt; &gt; +    kWKOriginDataMaskPluginData = 040,
&gt; &gt; +    kWKOriginDataMaskResourceCache = 0100,
&gt; &gt; +
&gt; &gt; +    kWKOriginDataMaskAll = 0177
&gt; 
&gt; Probably this should use bitshifts like WKLayoutMilestones?

Definitely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939733</commentid>
    <comment_count>9</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-14 17:30:43 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 214200 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=214200&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/C/WKOriginDataManager.h:44
&gt; &gt; &gt; +    kWKOriginDataMaskApplicationCache = 01,
&gt; &gt; &gt; +    kWKOriginDataMaskCookie = 02,
&gt; &gt; &gt; +    kWKOriginDataMaskDatabase = 04,
&gt; &gt; &gt; +    kWKOriginDataMaskKeyValueStorage = 010,
&gt; &gt; &gt; +    kWKOriginDataMaskMediaCache = 020,
&gt; &gt; &gt; +    kWKOriginDataMaskPluginData = 040,
&gt; &gt; &gt; +    kWKOriginDataMaskResourceCache = 0100,
&gt; &gt; &gt; +
&gt; &gt; &gt; +    kWKOriginDataMaskAll = 0177
&gt; &gt; 
&gt; &gt; Probably this should use bitshifts like WKLayoutMilestones?
&gt; 
&gt; Definitely.

I was being overly cautious about putting expressions in enums.  Apparently gcc with -std=c89 -pedantic thinks it&apos;s fine.

For the kWKOriginDataMaskAll value, I&apos;ll use the identity sum(i=0..n)(2^i) = 2^(n+1)-1, so in that case, kWKOriginDataMaskAll = (1 &lt;&lt; 7) - 1 [parens are important!]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939818</commentid>
    <comment_count>10</comment_count>
      <attachid>214223</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-14 20:18:08 -0700</bug_when>
    <thetext>Created attachment 214223
build fix + enum change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939823</commentid>
    <comment_count>11</comment_count>
      <attachid>214223</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-14 20:30:47 -0700</bug_when>
    <thetext>Comment on attachment 214223
build fix + enum change

Attachment 214223 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/4025046</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939829</commentid>
    <comment_count>12</comment_count>
      <attachid>214226</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-14 20:48:44 -0700</bug_when>
    <thetext>Created attachment 214226
build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939840</commentid>
    <comment_count>13</comment_count>
      <attachid>214226</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-14 21:13:11 -0700</bug_when>
    <thetext>Comment on attachment 214226
build fix

Attachment 214226 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/3578056</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939856</commentid>
    <comment_count>14</comment_count>
      <attachid>214223</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-10-14 22:36:06 -0700</bug_when>
    <thetext>Comment on attachment 214223
build fix + enum change

Attachment 214223 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/4067025</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939857</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-14 22:38:05 -0700</bug_when>
    <thetext>&gt; /mnt/eflews/webkit/WebKit/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.cpp:32:47: fatal error: WebOriginDataManagerProxyMessages.h: No such file or directory
 
EFL (apparently) isn&apos;t generating the messages.in file here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939858</commentid>
    <comment_count>16</comment_count>
      <attachid>214226</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-10-14 22:42:17 -0700</bug_when>
    <thetext>Comment on attachment 214226
build fix

Attachment 214226 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/3578077</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939871</commentid>
    <comment_count>17</comment_count>
      <attachid>214235</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-14 23:53:19 -0700</bug_when>
    <thetext>Created attachment 214235
another build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939921</commentid>
    <comment_count>18</comment_count>
      <attachid>214235</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-15 04:19:38 -0700</bug_when>
    <thetext>Comment on attachment 214235
another build fix

Attachment 214235 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/3851007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939927</commentid>
    <comment_count>19</comment_count>
      <attachid>214235</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-10-15 05:14:27 -0700</bug_when>
    <thetext>Comment on attachment 214235
another build fix

Attachment 214235 did not pass gtk-wk2-ews (gtk-wk2):
Output: http://webkit-queues.appspot.com/results/3452047</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939949</commentid>
    <comment_count>20</comment_count>
      <attachid>214235</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-10-15 06:51:19 -0700</bug_when>
    <thetext>Comment on attachment 214235
another build fix

Attachment 214235 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/3723010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940066</commentid>
    <comment_count>21</comment_count>
      <attachid>214288</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-15 11:53:17 -0700</bug_when>
    <thetext>Created attachment 214288
build fix + more stubs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940096</commentid>
    <comment_count>22</comment_count>
      <attachid>214294</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-15 13:00:38 -0700</bug_when>
    <thetext>Created attachment 214294
fix gtk build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940144</commentid>
    <comment_count>23</comment_count>
      <attachid>214294</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-15 14:55:57 -0700</bug_when>
    <thetext>Comment on attachment 214294
fix gtk build

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

Lots and lots of plumbing out of the way, great start!  I&apos;m going to be super picky on the exposed API before reviewing any further.

We should get Anders to look at this when he&apos;s around, and the 3 of us can even hash out ideas in person.

I do have some individual feedback that relegates this to an r-

&gt; Source/WebKit2/UIProcess/API/C/WKOriginDataManager.h:42
&gt; +    kWKOriginDataMaskApplicationCache = 1 &lt;&lt; 0,
&gt; +    kWKOriginDataMaskCookie = 1 &lt;&lt; 1,
&gt; +    kWKOriginDataMaskDatabase = 1 &lt;&lt; 2,
&gt; +    kWKOriginDataMaskKeyValueStorage = 1 &lt;&lt; 3,
&gt; +    kWKOriginDataMaskMediaCache = 1 &lt;&lt; 4,
&gt; +    kWKOriginDataMaskPluginData = 1 &lt;&lt; 5,
&gt; +    kWKOriginDataMaskResourceCache = 1 &lt;&lt; 6,

I don&apos;t think &quot;Mask&quot; is a good component of one of these names, even if they are logically bit masks.

As mentioned, we could follow the previously established WKLayoutMilestone pattern for these bit masks.  This pattern includes not necessarily predicated each of these values with the same prefix.

I&apos;d suggest something like:
kWKApplicationCacheOriginData,
kWKCookieOriginData,
etc etc

&gt; Source/WebKit2/UIProcess/API/C/WKOriginDataManager.h:46
&gt; +typedef uint32_t WKOriginDataMask;

And for the typedef here, I&apos;d go with WKOriginDataTypes.

To me, just like with &quot;WKLayoutMilestones&quot;, the pluralization of &quot;Types&quot; illustrates that one variable might reflect multiple values in the mask.

&gt; Source/WebKit2/UIProcess/API/C/WKOriginDataManager.h:53
&gt; +enum {
&gt; +    kWKOriginDataAcceptPolicyAlways = 0,
&gt; +    kWKOriginDataAcceptPolicyNever = 1,
&gt; +    kWKOriginDataAcceptPolicyOnlyFromMainDocumentDomain = 2
&gt; +};
&gt; +typedef uint32_t WKOriginDataAcceptPolicy;

This is primarily about cookies, and has nothing to do with origins.  I think the WKCookieManager can live on and provide only this functionality.

&gt; Source/WebKit2/UIProcess/API/C/WKOriginDataManager.h:77
&gt; +// Currently, only mask == WKOriginDataManagerCookie is supported for the following.
&gt; +WK_EXPORT void WKOriginDataManagerSetAcceptPolicy(WKOriginDataManagerRef originDataManager, WKOriginDataMask mask, WKOriginDataAcceptPolicy policy);
&gt; +typedef void (*WKOriginDataManagerGetAcceptPolicyFunction)(WKOriginDataAcceptPolicy, WKErrorRef, void*);
&gt; +WK_EXPORT void WKOriginDataManagerGetAcceptPolicy(WKOriginDataManagerRef originDataManager, WKOriginDataMask mask, void* context, WKOriginDataManagerGetAcceptPolicyFunction callback);

As mentioned above, these can live only in the cookie manager.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940172</commentid>
    <comment_count>24</comment_count>
      <attachid>214312</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-15 15:39:07 -0700</bug_when>
    <thetext>Created attachment 214312
Address Brady&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940185</commentid>
    <comment_count>25</comment_count>
      <attachid>214318</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-15 16:25:37 -0700</bug_when>
    <thetext>Created attachment 214318
Fix merge conflict</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940245</commentid>
    <comment_count>26</comment_count>
      <attachid>214337</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-15 20:30:13 -0700</bug_when>
    <thetext>Created attachment 214337
Rebase patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940344</commentid>
    <comment_count>27</comment_count>
      <attachid>214337</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-10-16 03:46:18 -0700</bug_when>
    <thetext>Comment on attachment 214337
Rebase patch

Attachment 214337 did not pass gtk-wk2-ews (gtk-wk2):
Output: http://webkit-queues.appspot.com/results/4106249</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940460</commentid>
    <comment_count>28</comment_count>
      <attachid>214378</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-16 11:32:54 -0700</bug_when>
    <thetext>Created attachment 214378
gtk-wk2 build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940505</commentid>
    <comment_count>29</comment_count>
      <attachid>214387</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-16 13:16:44 -0700</bug_when>
    <thetext>Created attachment 214387
rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940527</commentid>
    <comment_count>30</comment_count>
      <attachid>214395</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-16 14:09:09 -0700</bug_when>
    <thetext>Created attachment 214395
typo in GNUmakefile.list.am</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940843</commentid>
    <comment_count>31</comment_count>
      <attachid>214395</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-17 10:59:11 -0700</bug_when>
    <thetext>Comment on attachment 214395
typo in GNUmakefile.list.am

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

Looks good overall.  One thing that gets an r- from me, but should be easy to address.

&gt; Source/WebKit2/UIProcess/API/C/WKOriginDataManager.h:46
&gt; +typedef uint32_t WKOriginDataTypes;

Since we never really store these and aren&apos;t concerned about memory usage/etc, and since we&apos;d like to make this one API as future proof as possible, let&apos;s make this a uint64_t here and everywhere else that uses it.

Otherwise we&apos;d be cursing ourselves when we add the 33rd data type...

&gt; Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.cpp:85
&gt; +void WebOriginDataManager::deleteEntriesForOrigin(WKOriginDataTypes types, const SecurityOriginData&amp; originData)
&gt; +{
&gt; +    RefPtr&lt;SecurityOrigin&gt; origin = SecurityOrigin::create(originData.protocol, originData.host, originData.port);
&gt; +    if (!origin)
&gt; +        return;
&gt; +
&gt; +    // FIXME: delete cache

Not really &quot;delete cache&quot;, it&apos;s more than that!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940909</commentid>
    <comment_count>32</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-17 12:55:41 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 214395 [details])
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKOriginDataManager.h:46
&gt; &gt; +typedef uint32_t WKOriginDataTypes;
&gt; 
&gt; Since we never really store these and aren&apos;t concerned about memory usage/etc, and since we&apos;d like to make this one API as future proof as possible, let&apos;s make this a uint64_t here and everywhere else that uses it.
&gt; 
&gt; Otherwise we&apos;d be cursing ourselves when we add the 33rd data type...

Because of the C-ness of the API, this won&apos;t work.  we&apos;ll leave as-is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940910</commentid>
    <comment_count>33</comment_count>
      <attachid>214395</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-17 12:58:15 -0700</bug_when>
    <thetext>Comment on attachment 214395
typo in GNUmakefile.list.am

Rejecting attachment 214395 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-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 214395, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
nes).
1 out of 17 hunks FAILED -- saving rejects to file Source/WebKit2/WebKit2.xcodeproj/project.pbxproj.rej
patching file Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.cpp
patching file Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.h
patching file Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.messages.in

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

Full output: http://webkit-queues.appspot.com/results/3856063</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940921</commentid>
    <comment_count>34</comment_count>
      <attachid>214494</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2013-10-17 13:10:42 -0700</bug_when>
    <thetext>Created attachment 214494
rebase + fix comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940939</commentid>
    <comment_count>35</comment_count>
      <attachid>214494</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-17 13:50:21 -0700</bug_when>
    <thetext>Comment on attachment 214494
rebase + fix comment

Clearing flags on attachment: 214494

Committed r157595: &lt;http://trac.webkit.org/changeset/157595&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940940</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-17 13:50:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214200</attachid>
            <date>2013-10-14 15:54:33 -0700</date>
            <delta_ts>2013-10-15 11:53:17 -0700</delta_ts>
            <desc>Add WebOriginDataManager and friends</desc>
            <filename>122781a.diff</filename>
            <type>text/plain</type>
            <size>59280</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmZGU0MDFkLi5mMTMyYmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMg
QEAKKzIwMTMtMTAtMTQgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IFJlZmFjdG9yIHN0b3JlZCB3ZWJzaXRlIGRhdGEgQVBJcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyNzgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyIGFsb25n
IHdpdGggY29ycmVzcG9uZGluZyBjbGFzcworICAgICAgICBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5IGFuZCBBUEkgV0tPcmlnaW5EYXRhTWFuYWdlci4KKworICAgICAgICBDdXJyZW50bHksIHRo
ZSBuZXcgZmlsZXMgYXJlIHVudXNlZC4KKworICAgICAgICBXS09yaWdpbkRhdGFNYW5hZ2VyIHNo
b3VsZCBzdWJzdW1lIHRoZSBmdW5jdGlvbmFsaXR5IG9mOgorICAgICAgICBXS0FwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyLCBXS0Nvb2tpZU1hbmFnZXIsIFdLRGF0YWJhc2VNYW5hZ2VyLAorICAgICAg
ICBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIsIFdLTWVkaWFDYWNoZU1hbmFnZXIsCisgICAgICAg
IFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLCBhbmQgV0tSZXNvdXJjZUNhY2hlTWFuYWdlci4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dL
QmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQv
T3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6
CisgICAgICAgIChXS0NvbnRleHRHZXRPcmlnaW5EYXRhTWFuYWdlcik6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS09y
aWdpbkRhdGFNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2Vy
R2V0VHlwZUlEKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zKToKKyAg
ICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVFbnRyaWVzRm9yT3JpZ2luKToKKyAgICAg
ICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKFdLT3Jp
Z2luRGF0YU1hbmFnZXJTZXRBY2NlcHRQb2xpY3kpOgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFu
YWdlckdldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyU3RhcnRP
YnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJTdG9wT2JzZXJ2
aW5nQ2hhbmdlcyk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyU2V0Q2hhbmdlQ2xpZW50
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5oOiBBZGRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzdXBwbGVt
ZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Ojp+V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0cm95ZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpwcm9jZXNzRGlkQ2xvc2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzaG91bGRUZXJtaW5hdGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpyZWZXZWJDb250
ZXh0U3VwcGxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5OjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2luRGF0YU9yaWdpbnMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxldGVFbnRyaWVzRm9yT3JpZ2lu
KToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxs
RW50cmllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNl
dEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk6OmdldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0b3BPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c2V0Q2hhbmdlQ2xpZW50KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VD
bGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eUNoYW5nZUNsaWVudDo6ZGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9Pcmln
aW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpXZWJPcmlnaW5EYXRhTWFuYWdlcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdlYktp
dDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlQWxsRW50cmllcyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmg6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5t
ZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTMtMTAtMTQgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9z
c3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbV0syXVtFZmxdW1NvdXBdIE1ha2UgTmV0d29ya1By
b2Nlc3NNYWluVW5peCBoYW5kbGUgcHJveHkgc2V0dGluZ3MuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCA1NTUxNzRiLi5mMWZhMDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTM5LDYgKzM5LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL01lZGlhQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrIFwKICAg
ICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCisgICAgJChXZWJLaXQyKS9X
ZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5z
IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAgICAgJChXZWJL
aXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXApAQCAtOTksNiArMTAwLDggQEAgTUVTU0FHRV9SRUNF
SVZFUlMgPSBcCiAgICAgV2ViTWVkaWFDYWNoZU1hbmFnZXIgXAogICAgIFdlYk1lZGlhQ2FjaGVN
YW5hZ2VyUHJveHkgXAogICAgIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIgXAorICAgIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyIFwKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5IFwKICAgICBXZWJQ
YWdlIFwKICAgICBXZWJQYWdlR3JvdXBQcm94eSBcCiAgICAgV2ViUGFnZVByb3h5IFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCA2OTk0Y2JkLi4xOTdhZDlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0xMTksNiArMTE5LDcgQEAgdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogV0tOb3Rp
ZmljYXRpb25QZXJtaXMKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9u
UHJvdmlkZXIqIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBPcGFxdWVXS09wZW5QYW5lbFBhcmFtZXRlcnMqIFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIqIFdL
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S09yaWdpbkRhdGFNYW5hZ2VyKiBXS09yaWdpbkRhdGFNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tQYWdlKiBXS1BhZ2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS1BhZ2VHcm91cCogV0tQYWdlR3JvdXBSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS1BsdWdpblNpdGVEYXRhTWFuYWdlciogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWY7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggNDQxZTA1ZS4uNzAzMjFiOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtMTAzLDYgKzEwMyw3IEBAIHB1YmxpYzoKICAgICAg
ICAgVHlwZU5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LAogICAgICAgICBUeXBlT3BlblBh
bmVsUGFyYW1ldGVycywKICAgICAgICAgVHlwZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLAorICAg
ICAgICBUeXBlT3JpZ2luRGF0YU1hbmFnZXIsCiAgICAgICAgIFR5cGVQYWdlLAogICAgICAgICBU
eXBlUGFnZUdyb3VwLAogICAgICAgICBUeXBlUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL09yaWdpbkRhdGFBY2NlcHRQb2xpY3kuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5EYXRhQWNjZXB0UG9saWN5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTYyYjg3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5EYXRhQWNjZXB0UG9saWN5LmgKQEAgLTAsMCArMSw0MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
T3JpZ2luRGF0YUFjY2VwdFBvbGljeV9oCisjZGVmaW5lIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3lf
aAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSB7CisgICAgT3JpZ2luRGF0YUFjY2VwdFBv
bGljeUFsd2F5cyA9IDAsCisgICAgT3JpZ2luRGF0YUFjY2VwdFBvbGljeU5ldmVyID0gMSwKKyAg
ICBPcmlnaW5EYXRhQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW4gPSAyLAor
fTsKK3R5cGVkZWYgdW5zaWduZWQgT3JpZ2luRGF0YUFjY2VwdFBvbGljeTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBPcmlnaW5EYXRhQWNjZXB0UG9saWN5X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA2NGM4ZDFhLi4yZDk3
NjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRm9udFNtb290aGluZ0xldmVsLmgiCiAjaW5jbHVkZSAi
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlSGl0VGVz
dFJlc3VsdE1lZGlhVHlwZS5oIgorI2luY2x1ZGUgIk9yaWdpbkRhdGFBY2NlcHRQb2xpY3kuaCIK
ICNpbmNsdWRlICJQbHVnaW5Nb2R1bGVJbmZvLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc01vZGVsLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmgiCkBAIC04Nyw2ICs4OCw3IEBAIGNs
YXNzIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOwogY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5OwogY2xhc3MgV2ViT3BlblBhbmVsUGFyYW1ldGVyczsKIGNsYXNzIFdlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyUHJveHk7CitjbGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Owog
Y2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyOwpAQCAtMTMzLDYgKzEzNSw3IEBAIFdLX0FERF9BUElfTUFQUElORyhX
S05vdGlmaWNhdGlvblByb3ZpZGVyUmVmLCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcikKIFdLX0FE
RF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlvblJlZiwgV2ViTm90aWZpY2F0aW9uKQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZiwgV2ViT3BlblBhbmVsUGFyYW1l
dGVycykKIFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmLCBX
ZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLT3Jp
Z2luRGF0YU1hbmFnZXJSZWYsIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tQYWdlR3JvdXBSZWYsIFdlYlBhZ2VHcm91cCkKIFdLX0FERF9BUElfTUFQUElO
RyhXS1BhZ2VSZWYsIFdlYlBhZ2VQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1BsdWdpblNp
dGVEYXRhTWFuYWdlclJlZiwgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCBhNDdlNDlmLi42NTk2YmYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAt
NDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIldlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eS5oIgogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAjaW5jbHVkZSAiV2ViRGF0YWJhc2VN
YW5hZ2VyUHJveHkuaCIKICNlbmRpZgpAQCAtMjc0LDYgKzI3NSwxMSBAQCBXS1Jlc291cmNlQ2Fj
aGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJl
ZiBjb250ZXh0UgogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPnN1cHBsZW1l
bnQ8V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4oKSk7CiB9CiAKK1dLT3JpZ2luRGF0YU1h
bmFnZXJSZWYgV0tDb250ZXh0R2V0T3JpZ2luRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYpCit7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+c3VwcGxlbWVu
dDxXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5PigpKTsKK30KKwogdm9pZCBXS0NvbnRleHRTdGFy
dE1lbW9yeVNhbXBsZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLRG91YmxlUmVmIGludGVy
dmFsKQogewogICAgIHRvSW1wbChjb250ZXh0UmVmKS0+c3RhcnRNZW1vcnlTYW1wbGVyKHRvSW1w
bChpbnRlcnZhbCktPnZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5oCmluZGV4IDNjZTczMWUuLmVmZDY3NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKQEAgLTE5NSw3ICsxOTUsOCBAQCBXS19FWFBPUlQgV0tO
ZXR3b3JrSW5mb01hbmFnZXJSZWYgV0tDb250ZXh0R2V0TmV0d29ya0luZm9NYW5hZ2VyKFdLQ29u
dGV4dFJlZiBjbwogV0tfRVhQT1JUIFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBXS0NvbnRleHRH
ZXROb3RpZmljYXRpb25NYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBX
S1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRQbHVnaW5TaXRlRGF0YU1hbmFn
ZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLUmVzb3VyY2VDYWNoZU1hbmFn
ZXJSZWYgV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRl
eHQpOwotICAgIAorV0tfRVhQT1JUIFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0
T3JpZ2luRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworCiB0eXBlZGVmIHZvaWQg
KCpXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24pKFdLRGljdGlvbmFyeVJlZiBzdGF0aXN0
aWNzLCBXS0Vycm9yUmVmIGVycm9yLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JU
IHZvaWQgV0tDb250ZXh0R2V0U3RhdGlzdGljcyhXS0NvbnRleHRSZWYgY29udGV4dCwgdm9pZCog
ZnVuY3Rpb25Db250ZXh0LCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24gZnVuY3Rpb24p
OwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0R2V0U3RhdGlzdGljc1dpdGhPcHRpb25zKFdLQ29u
dGV4dFJlZiBjb250ZXh0LCBXS1N0YXRpc3RpY3NPcHRpb25zIHN0YXRpc3RpY3NNYXNrLCB2b2lk
KiBmdW5jdGlvbkNvbnRleHQsIFdLQ29udGV4dEdldFN0YXRpc3RpY3NGdW5jdGlvbiBmdW5jdGlv
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5E
YXRhTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5E
YXRhTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNThiNjA1
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09y
aWdpbkRhdGFNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLT3JpZ2luRGF0YU1hbmFnZXIuaCIKKworI2luY2x1
ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCIK
KwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tPcmlnaW5EYXRhTWFuYWdl
ckdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk6OkFQSVR5cGUpOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zKFdL
T3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YU1h
c2sgbWFzaywgdm9pZCogY29udGV4dCwgV0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnNGdW5j
dGlvbiBjYWxsYmFjaykKK3sKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5nZXRP
cmlnaW5zKG1hc2ssIEFycmF5Q2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBjYWxsYmFjaykpOwor
fQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3Jp
Z2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YU1hc2sg
bWFzaywgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW5SZWYpCit7CisgICAgdG9JbXBsKG9yaWdp
bkRhdGFNYW5hZ2VyUmVmKS0+ZGVsZXRlRW50cmllc0Zvck9yaWdpbihtYXNrLCB0b0ltcGwob3Jp
Z2luUmVmKSk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlckRlbGV0ZUFsbEVudHJpZXMo
V0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRh
TWFzayBtYXNrKQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPmRlbGV0ZUFs
bEVudHJpZXMobWFzayk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclNldEFjY2VwdFBv
bGljeShXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdp
bkRhdGFNYXNrIG1hc2ssIFdLT3JpZ2luRGF0YUFjY2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAg
dG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+c2V0QWNjZXB0UG9saWN5KG1hc2ssIHBvbGlj
eSk7Cit9Cit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRBY2NlcHRQb2xpY3koV0tPcmlnaW5E
YXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRhTWFzayBtYXNr
LCB2b2lkKiBjb250ZXh0LCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0QWNjZXB0UG9saWN5RnVuY3Rp
b24gY2FsbGJhY2spCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+Z2V0QWNj
ZXB0UG9saWN5KG1hc2ssIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3lDYWxsYmFjazo6Y3JlYXRlKGNv
bnRleHQsIGNhbGxiYWNrKSk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclN0YXJ0T2Jz
ZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVm
LCBXS09yaWdpbkRhdGFNYXNrIG1hc2spCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2Vy
UmVmKS0+c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKG1hc2spOworfQorCit2b2lkIFdLT3JpZ2luRGF0
YU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdp
bkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFNYXNrIG1hc2spCit7CisgICAgdG9JbXBsKG9y
aWdpbkRhdGFNYW5hZ2VyUmVmKS0+c3RvcE9ic2VydmluZ0NoYW5nZXMobWFzayk7Cit9CisKK3Zv
aWQgV0tPcmlnaW5EYXRhTWFuYWdlclNldENoYW5nZUNsaWVudChXS09yaWdpbkRhdGFNYW5hZ2Vy
UmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBjb25zdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdl
Q2xpZW50ICpjbGllbnQpCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+c2V0
Q2hhbmdlQ2xpZW50KGNsaWVudCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2Vy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGFkOGIwNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5h
Z2VyLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tPcmlnaW5EYXRh
TWFuYWdlcl9oCisjZGVmaW5lIFdLT3JpZ2luRGF0YU1hbmFnZXJfaAorCisjaW5jbHVkZSA8V2Vi
S2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRp
ZgorCitlbnVtIHsKKyAgICBrV0tPcmlnaW5EYXRhTWFza0FwcGxpY2F0aW9uQ2FjaGUgPSAwMSwK
KyAgICBrV0tPcmlnaW5EYXRhTWFza0Nvb2tpZSA9IDAyLAorICAgIGtXS09yaWdpbkRhdGFNYXNr
RGF0YWJhc2UgPSAwNCwKKyAgICBrV0tPcmlnaW5EYXRhTWFza0tleVZhbHVlU3RvcmFnZSA9IDAx
MCwKKyAgICBrV0tPcmlnaW5EYXRhTWFza01lZGlhQ2FjaGUgPSAwMjAsCisgICAga1dLT3JpZ2lu
RGF0YU1hc2tQbHVnaW5EYXRhID0gMDQwLAorICAgIGtXS09yaWdpbkRhdGFNYXNrUmVzb3VyY2VD
YWNoZSA9IDAxMDAsCisKKyAgICBrV0tPcmlnaW5EYXRhTWFza0FsbCA9IDAxNzcKK307Cit0eXBl
ZGVmIHVpbnQzMl90IFdLT3JpZ2luRGF0YU1hc2s7CisKK2VudW0geworICAgIGtXS09yaWdpbkRh
dGFBY2NlcHRQb2xpY3lBbHdheXMgPSAwLAorICAgIGtXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3lO
ZXZlciA9IDEsCisgICAga1dLT3JpZ2luRGF0YUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluID0gMgorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tPcmlnaW5EYXRhQWNjZXB0UG9s
aWN5OworCitXS19FWFBPUlQgV0tUeXBlSUQgV0tPcmlnaW5EYXRhTWFuYWdlckdldFR5cGVJRCgp
OworCit0eXBlZGVmIHZvaWQgKCpXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2luc0Z1bmN0aW9u
KShXS0FycmF5UmVmLCBXS0Vycm9yUmVmLCB2b2lkKik7CitXS19FWFBPUlQgdm9pZCBXS09yaWdp
bkRhdGFNYW5hZ2VyR2V0T3JpZ2lucyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFN
YW5hZ2VyLCBXS09yaWdpbkRhdGFNYXNrIG1hc2ssIHZvaWQqIGNvbnRleHQsIFdLT3JpZ2luRGF0
YU1hbmFnZXJHZXRPcmlnaW5zRnVuY3Rpb24gZnVuY3Rpb24pOworCitXS19FWFBPUlQgdm9pZCBX
S09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFNYW5h
Z2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFNYXNrIG1hc2ssIFdLU2VjdXJp
dHlPcmlnaW5SZWYgb3JpZ2luKTsKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJE
ZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIs
IFdLT3JpZ2luRGF0YU1hc2sgbWFzayk7CisKKy8vIE9yaWdpbkRhdGFNYW5hZ2VyIENsaWVudAor
dHlwZWRlZiB2b2lkICgqV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNhbGxiYWNrKShXS09yaWdp
bkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKK3N0cnVjdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50IHsKKyAgICBpbnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAg
ICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CisgICAgV0tPcmlnaW5EYXRhTWFuYWdl
ckNoYW5nZUNhbGxiYWNrICAgZGlkQ2hhbmdlOworfTsKK3R5cGVkZWYgc3RydWN0IFdLT3JpZ2lu
RGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudDsK
KworZW51bSB7IGtXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50VmVyc2lvbiA9IDAgfTsK
KworLy8gQ3VycmVudGx5LCBvbmx5IG1hc2sgPT0gV0tPcmlnaW5EYXRhTWFuYWdlckNvb2tpZSBp
cyBzdXBwb3J0ZWQgZm9yIHRoZSBmb2xsb3dpbmcuCitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRh
dGFNYW5hZ2VyU2V0QWNjZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0
YU1hbmFnZXIsIFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgV0tPcmlnaW5EYXRhQWNjZXB0UG9saWN5
IHBvbGljeSk7Cit0eXBlZGVmIHZvaWQgKCpXS09yaWdpbkRhdGFNYW5hZ2VyR2V0QWNjZXB0UG9s
aWN5RnVuY3Rpb24pKFdLT3JpZ2luRGF0YUFjY2VwdFBvbGljeSwgV0tFcnJvclJlZiwgdm9pZCop
OworV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlckdldEFjY2VwdFBvbGljeShXS09y
aWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFNYXNrIG1h
c2ssIHZvaWQqIGNvbnRleHQsIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRBY2NlcHRQb2xpY3lGdW5j
dGlvbiBjYWxsYmFjayk7CisKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTdGFy
dE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdl
ciwgV0tPcmlnaW5EYXRhTWFzayBtYXNrKTsKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1h
bmFnZXJTdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRh
dGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFNYXNrIG1hc2spOworV0tfRVhQT1JUIHZvaWQgV0tPcmln
aW5EYXRhTWFuYWdlclNldENoYW5nZUNsaWVudChXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdp
bkRhdGFNYW5nZXIsIGNvbnN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQqIGNsaWVu
dCk7CisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tPcmlnaW5E
YXRhTWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMmZhNDdiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDE2NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRl
ICJXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1
ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCisgICAgY29u
c3QgY2hhciogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c3VwcGxlbWVudE5hbWUoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5IjsKKyAgICB9CisK
KyAgICBQYXNzUmVmUHRyPFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk+IFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHk6OmNyZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KGNvbnRleHQpKTsK
KyAgICB9CisKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBXZWJDb250ZXh0U3VwcGxlbWVu
dChjb250ZXh0KQorICAgIHsKKyAgICAgICAgY29udGV4dC0+YWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IHRoaXMpOworICAgIH0KKworICAgIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6On5XZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5KCkKKyAgICB7CisgICAgfQorCisKKyAgICB2b2lkIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0cm95ZWQoKQorICAgIHsKKyAgICAgICAgaW52
YWxpZGF0ZUNhbGxiYWNrTWFwKG1fYXJyYXlDYWxsYmFja3MpOworICAgIH0KKworICAgIHZvaWQg
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6cHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94
eSopCisgICAgeworICAgICAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJheUNhbGxiYWNr
cyk7CisgICAgfQorCisgICAgYm9vbCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzaG91bGRU
ZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBt
X2FycmF5Q2FsbGJhY2tzLmlzRW1wdHkoKTsKKyAgICB9CisKKyAgICB2b2lkIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OnJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkKKyAgICB7CisgICAgICAg
IEFQSU9iamVjdDo6cmVmKCk7CisgICAgfQorCisgICAgdm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5OjpkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkKKyAgICB7CisgICAgICAgIEFQSU9i
amVjdDo6ZGVyZWYoKTsKKyAgICB9CisKKyAgICB2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk6OmdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFzayBtYXNrLCBQYXNzUmVmUHRyPEFycmF5Q2Fs
bGJhY2s+IHBycENhbGxiYWNrKQorICAgIHsKKyAgICAgICAgaWYgKCFjb250ZXh0KCkpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNr
ID0gcHJwQ2FsbGJhY2s7CisKKyAgICAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNr
LT5jYWxsYmFja0lEKCk7CisgICAgICAgIG1fYXJyYXlDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQs
IGNhbGxiYWNrLnJlbGVhc2UoKSk7CisKKyAgICAgICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nl
c3MpOiA8cmRhcjovL3Byb2JsZW0vMTIyMzk3NjU+IE1ha2UgbWFuaXB1bGF0aW5nIGNhY2hlIGlu
Zm9ybWF0aW9uIHdvcmsgd2l0aCBwZXItdGFiIFdlYlByb2Nlc3MuCisgICAgICAgIGNvbnRleHQo
KS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpHZXRPcmlnaW5zKG1hc2ssIGNhbGxiYWNrSUQpKTsKKyAg
ICB9CisKKyAgICB2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRpZEdldE9yaWdpbkRh
dGFPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5EYXRhcywg
dWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICB7CisgICAgICAgIFJlZlB0cjxBcnJheUNhbGxiYWNr
PiBjYWxsYmFjayA9IG1fYXJyYXlDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICAgICAg
cGVyZm9ybUFQSUNhbGxiYWNrV2l0aFNlY3VyaXR5T3JpZ2luRGF0YVZlY3RvcihvcmlnaW5EYXRh
cywgY2FsbGJhY2suZ2V0KCkpOworICAgIH0KKworICAgIHZvaWQgV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eTo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFNYXNrIG1hc2ssIFdl
YlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCisgICAgeworICAgICAgICBpZiAoIWNvbnRleHQoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJp
dHlPcmlnaW5EYXRhOworICAgICAgICBzZWN1cml0eU9yaWdpbkRhdGEucHJvdG9jb2wgPSBvcmln
aW4tPnByb3RvY29sKCk7CisgICAgICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5ob3N0ID0gb3JpZ2lu
LT5ob3N0KCk7CisgICAgICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5wb3J0ID0gb3JpZ2luLT5wb3J0
KCk7CisKKyAgICAgICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nlc3MpOiA8cmRhcjovL3Byb2Js
ZW0vMTIyMzk3NjU+IE1ha2UgbWFuaXB1bGF0aW5nIGNhY2hlIGluZm9ybWF0aW9uIHdvcmsgd2l0
aCBwZXItdGFiIFdlYlByb2Nlc3MuCisgICAgICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vz
c2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5h
Z2VyOjpEZWxldGVFbnRyaWVzRm9yT3JpZ2luKG1hc2ssIHNlY3VyaXR5T3JpZ2luRGF0YSkpOwor
ICAgIH0KKworICAgIHZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsRW50
cmllcyhXS09yaWdpbkRhdGFNYXNrIG1hc2spCisgICAgeworICAgICAgICBpZiAoIWNvbnRleHQo
KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAvLyBGSVhNRSAoTXVsdGktV2ViUHJv
Y2Vzcyk6IDxyZGFyOi8vcHJvYmxlbS8xMjIzOTc2NT4gTWFrZSBtYW5pcHVsYXRpbmcgY2FjaGUg
aW5mb3JtYXRpb24gd29yayB3aXRoIHBlci10YWIgV2ViUHJvY2Vzcy4KKyAgICAgICAgY29udGV4
dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdl
czo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OkRlbGV0ZUFsbEVudHJpZXMobWFzaykpOworICAgIH0K
KworICAgIHZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c2V0QWNjZXB0UG9saWN5KFdL
T3JpZ2luRGF0YU1hc2sgbWFzaywgV0tPcmlnaW5EYXRhQWNjZXB0UG9saWN5IHBvbGljeSkKKyAg
ICB7CisgICAgICAgIGlmICghY29udGV4dCgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3Nh
cnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpTZXRBY2NlcHRQb2xpY3kobWFzaywg
cG9saWN5KSk7CisgICAgfQorCisgICAgdm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpn
ZXRBY2NlcHRQb2xpY3koV0tPcmlnaW5EYXRhTWFzayBtYXNrLCBQYXNzUmVmUHRyPE9yaWdpbkRh
dGFBY2NlcHRQb2xpY3lDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCisgICAgeworICAgICAgICBpZiAo
IWNvbnRleHQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBSZWZQdHI8T3JpZ2lu
RGF0YUFjY2VwdFBvbGljeUNhbGxiYWNrPiBjYWxsYmFjayA9IHBycENhbGxiYWNrOworCisgICAg
ICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOworICAgICAg
ICBtX2FjY2VwdFBvbGljeUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2sucmVsZWFz
ZSgpKTsKKworICAgICAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5n
VGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6R2V0QWNjZXB0
UG9saWN5KG1hc2ssIGNhbGxiYWNrSUQpKTsKKyAgICB9CisKKyAgICB2b2lkIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYXNrIG1h
c2spIHsKKyAgICAgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgY29udGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vz
c2FyeShNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OlN0YXJ0T2JzZXJ2aW5nQ2hhbmdl
cyhtYXNrKSk7CisgICAgfQorCisgICAgdm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpz
dG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYXNrIG1hc2spIHsKKyAgICAgICAgaWYg
KCFjb250ZXh0KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY29udGV4dCgpLT5z
ZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2Vi
T3JpZ2luRGF0YU1hbmFnZXI6OlN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhtYXNrKSk7CisgICAgfQor
CisgICAgdm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzZXRDaGFuZ2VDbGllbnQoY29u
c3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCAqY2xpZW50KSB7CisgICAgICAgIG1f
Y2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKKyAgICB9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM1MDM5MAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5LmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHlfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiR2VuZXJpY0NhbGxi
YWNrLmgiCisjaW5jbHVkZSAiSW1tdXRhYmxlQXJyYXkuaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0U3VwcGxlbWVudC5oIgorI2luY2x1ZGUgIldl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisjaW5jbHVkZSAiV0tPcmlnaW5EYXRhTWFuYWdlci5oIgorCituYW1lc3BhY2UgQ29yZUlQ
QyB7CisgICAgY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyAg
ICBjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKKyAgICBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRh
OworCisgICAgdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFj
azsKKyAgICB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3ks
IE9yaWdpbkRhdGFBY2NlcHRQb2xpY3k+IE9yaWdpbkRhdGFBY2NlcHRQb2xpY3lDYWxsYmFjazsK
KworICAgIGNsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkgOiBwdWJsaWMgVHlwZWRBUElP
YmplY3Q8QVBJT2JqZWN0OjpUeXBlT3JpZ2luRGF0YU1hbmFnZXI+LCBwdWJsaWMgV2ViQ29udGV4
dFN1cHBsZW1lbnQsIHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBwdWJs
aWM6CisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk+IGNyZWF0ZShX
ZWJDb250ZXh0Kik7CisgICAgICAgIHZpcnR1YWwgfldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHko
KTsKKworICAgICAgICB2b2lkIGdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFzaywgUGFzc1JlZlB0
cjxBcnJheUNhbGxiYWNrPik7CisgICAgICAgIHZvaWQgZGVsZXRlRW50cmllc0Zvck9yaWdpbihX
S09yaWdpbkRhdGFNYXNrLCBXZWJTZWN1cml0eU9yaWdpbiopOworICAgICAgICB2b2lkIGRlbGV0
ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhTWFzayk7CisKKyAgICAgICAgdm9pZCBzZXRBY2NlcHRQ
b2xpY3koV0tPcmlnaW5EYXRhTWFzaywgV0tPcmlnaW5EYXRhQWNjZXB0UG9saWN5KTsKKyAgICAg
ICAgdm9pZCBnZXRBY2NlcHRQb2xpY3koV0tPcmlnaW5EYXRhTWFzaywgUGFzc1JlZlB0cjxPcmln
aW5EYXRhQWNjZXB0UG9saWN5Q2FsbGJhY2s+KTsKKworICAgICAgICB2b2lkIHN0YXJ0T2JzZXJ2
aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYXNrKTsKKyAgICAgICAgdm9pZCBzdG9wT2JzZXJ2aW5n
Q2hhbmdlcyhXS09yaWdpbkRhdGFNYXNrKTsKKyAgICAgICAgdm9pZCBzZXRDaGFuZ2VDbGllbnQo
Y29uc3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCopOworCisgICAgICAgIHVzaW5n
IEFQSU9iamVjdDo6cmVmOworICAgICAgICB1c2luZyBBUElPYmplY3Q6OmRlcmVmOworCisgICAg
cHJpdmF0ZToKKyAgICAgICAgZXhwbGljaXQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eShXZWJD
b250ZXh0Kik7CisKKyAgICAgICAgdm9pZCBkaWRHZXRPcmlnaW5EYXRhT3JpZ2lucyhjb25zdCBW
ZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworCisgICAg
ICAgIC8vIFdlYkNvbnRleHRTdXBwbGVtZW50CisgICAgICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0
RGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xv
c2UoV2ViUHJvY2Vzc1Byb3h5KikgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QgT1ZFUlJJREU7CisgICAgICAgIHZp
cnR1YWwgdm9pZCByZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIE9WRVJSSURFOworICAgICAgICB2
aXJ0dWFsIHZvaWQgZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIE9WRVJSSURFOworCisgICAg
ICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJikgT1ZFUlJJREU7CisKKyAgICAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFycmF5
Q2FsbGJhY2s+PiBtX2FycmF5Q2FsbGJhY2tzOworICAgICAgICBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8T3JpZ2luRGF0YUFjY2VwdFBvbGljeUNhbGxiYWNrPj4gbV9hY2NlcHRQb2xpY3lDYWxs
YmFja3M7CisKKyAgICAgICAgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudCBt
X2NsaWVudDsKKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmQ3NmI0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5IHsKKyAgICBE
aWRHZXRPcmlnaW5zKFZlY3RvcjxXZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2luSWRl
bnRpZmllcnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIERpZENoYW5nZSgpCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eUNoYW5nZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNjY2MDFhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcApAQCAtMCwwICsx
LDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCIKKworI2luY2x1ZGUgIldLQVBJQ2Fz
dC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5Q2hhbmdlQ2xpZW50OjpkaWRDaGFuZ2UoV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSogb3Jp
Z2luRGF0YU1hbmFnZXIpCit7CisgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2UpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fY2xpZW50LmRpZENoYW5nZSh0b0FQSShvcmlnaW5EYXRhTWFuYWdl
ciksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5Q2hhbmdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmJhNzY3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oCkBAIC0wLDAgKzEsNDQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VD
bGllbnRfaAorI2RlZmluZSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50X2gK
KworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLT3JpZ2luRGF0YU1hbmFnZXIu
aCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eUNoYW5nZUNsaWVudCA6IHB1YmxpYyBBUElDbGllbnQ8V0tPcmlnaW5EYXRhTWFuYWdl
ckNoYW5nZUNsaWVudCwga1dLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnRWZXJzaW9uPiB7
CitwdWJsaWM6CisgICAgdm9pZCBkaWRDaGFuZ2UoV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSop
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNGQ0NWQ4Li43OWJkZDEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01
NjIsNiArNTYyLDE4IEBACiAJCTZFRTg0OUM4MTM2OEQ5MzkwMDM4RDQ4MSAvKiBXS0luc3BlY3Rv
clByaXZhdGVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZFRTg0OUM2MTM2OEQ5MkQwMDM4RDQ4MSAvKiBXS0luc3BlY3RvclByaXZhdGVNYWMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjhFODZG
MTE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOEU4NkVGMTc5NTE4OEMwMDg3ODc5RSAv
KiBXZWJDb2xvclBpY2tlck1hYy5oICovOyB9OwogCQk3MjhFODZGMjE3OTUxODhDMDA4Nzg3OUUg
LyogV2ViQ29sb3JQaWNrZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MjhFODZGMDE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJN
YWMubW0gKi87IH07CisJCTc1NTQyMkJCMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFN
YW5hZ2VyLmNwcCBpbiBDb3B5IEZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAq
LzsgfTsKKwkJNzU1NDIyQkMxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIu
aCBpbiBDb3B5IEZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQy
MkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggKi87IH07CisJCTc1
NTQyMkJEMTgwNjJCQjIwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkI5MTgwNjJCOUMw
MDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNzU1NDIyQzMxODA2
MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gaW4g
Q29weSBGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJDMDE4
MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAq
LzsgfTsKKwkJNzU1NDIyQzQxODA2MkJGOTAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3Bw
ICovOyB9OworCQk3NTU0MjJDQTE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXIubWVzc2FnZXMuaW4gaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc1NTQyMkM4MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5t
ZXNzYWdlcy5pbiAqLzsgfTsKKwkJNzU1NDIyQ0IxODA2NTAwMjAwNDZGNkE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc1NTQyMkM2MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5j
cHAgKi87IH07CisJCTc1NTQyMkNDMTgwNzczQ0UwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1
NDIyQzcxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggKi87IH07CisJ
CTc1OUNDRDUzMTgwOEQwMzAwMDc4RThBOCAvKiBPcmlnaW5EYXRhQWNjZXB0UG9saWN5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTlDQ0Q1MTE4MDhE
MDFDMDA3OEU4QTggLyogT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oICovOyB9OworCQk3NTlDQ0Q1
ODE4MDhGMTY0MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTlD
Q0Q1NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNs
aWVudC5jcHAgKi87IH07CisJCTc1OUNDRDU5MTgwOEYxNjkwMDc4RThBOCAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTlDQ0Q1NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oICovOyB9OworCQk3NTlDQ0Q1QTE4MDhGNjE2
MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQkYxODA2MkJFNDAwNDZGNkE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCAqLzsgfTsKIAkJNzYyQjc0OEQxMjBCQzc1QzAw
ODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3ODAxQzA5OTE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3ODAxQzA5
NTE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5jcHAgKi87IH07CiAJCTc4MDFD
MDlBMTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3ODAxQzA5NjE0MjI5MEM0MDBGQUY5QUYg
LyogV2ViSGl0VGVzdFJlc3VsdC5oICovOyB9OwpAQCAtMTMwMiw4ICsxMzE0LDExIEBACiAJCQlk
c3RTdWJmb2xkZXJTcGVjID0gMTsKIAkJCWZpbGVzID0gKAogCQkJCTUxMENDODQ5MTYxM0M4NUMw
MEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5hcHAgaW4gQ29weSBGaWxlcyAqLywKKwkJCQk3NTU0
MjJCQzE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5oIGluIENvcHkgRmls
ZXMgKi8sCiAJCQkJQkNERTBBQkYxMzI3MjcwODAwMTI1OUZCIC8qIFBsdWdpblByb2Nlc3MuYXBw
IGluIENvcHkgRmlsZXMgKi8sCisJCQkJNzU1NDIyQzMxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gaW4gQ29weSBGaWxlcyAqLywKIAkJCQkx
QTUwREI2NjExMEEzRDU3MDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5hcHAgaW4gQ29weSBGaWxlcyAq
LywKKwkJCQk3NTU0MjJCQjE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5j
cHAgaW4gQ29weSBGaWxlcyAqLywKIAkJCSk7CiAJCQluYW1lID0gIkNvcHkgRmlsZXMiOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC0xOTYyLDYgKzE5Nzcs
MTcgQEAKIAkJNkVFODQ5QzYxMzY4RDkyRDAwMzhENDgxIC8qIFdLSW5zcGVjdG9yUHJpdmF0ZU1h
Yy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0luc3BlY3RvclByaXZhdGVN
YWMuaDsgcGF0aCA9IG1hYy9XS0luc3BlY3RvclByaXZhdGVNYWMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzI4RTg2RUYxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2Vy
TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFj
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4NkYwMTc5NTE4OEMwMDg3ODc5
RSAvKiBXZWJDb2xvclBpY2tlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3NTU0MjJCOTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS09yaWdpbkRhdGFNYW5hZ2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQkExODA2MkI5QzAwNDZG
NkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tPcmlnaW5EYXRhTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3NTU0MjJCRTE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQkYxODA2
MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDMDE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3NTU0MjJDNjE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViT3JpZ2luRGF0
YU1hbmFnZXIuY3BwOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkM3MTgwNjRGRkMwMDQ2RjZBOCAv
KiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXZWJPcmlnaW5EYXRhTWFuYWdlci5oOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRh
TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDODE4MDY0RkZD
MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBuYW1lID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGggPSBPcmln
aW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3NTlDQ0Q1MTE4MDhEMDFDMDA3OEU4QTggLyogT3JpZ2luRGF0YUFjY2Vw
dFBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcmlnaW5EYXRhQWNj
ZXB0UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1OUNDRDU0MTgwOEYx
NjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHlDaGFuZ2VDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTlD
Q0Q1NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2
MkI3NDgxMTIwQkJBMDEwMDgxOTMzOSAvKiBGb250U21vb3RoaW5nTGV2ZWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udFNtb290aGluZ0xldmVsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTc2MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVu
Y2VzUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1ByZWZlcmVu
Y2VzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3ODAxQzA5NTE0MjI5
MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJIaXRUZXN0UmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTMxMDksNiArMzEzNSw3IEBACiAJCQkJREY1OEM2MzExMzcxQUM1ODAwRjlB
MzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnQuaCAqLywKIAkJCQlCQ0NGNjczMjEyQzdGMTVDMDA4
RjlDMzUgLyogT3JpZ2luQW5kRGF0YWJhc2VzLmNwcCAqLywKIAkJCQlCQ0NGNjcyQzEyQzdFREY3
MDA4RjlDMzUgLyogT3JpZ2luQW5kRGF0YWJhc2VzLmggKi8sCisJCQkJNzU5Q0NENTExODA4RDAx
QzAwNzhFOEE4IC8qIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3kuaCAqLywKIAkJCQlCQ0M0M0FCODEy
N0I5NURDMDAzMTdGMTYgLyogUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcCAqLywKIAkJCQlCQ0M0
M0FCOTEyN0I5NURDMDAzMTdGMTYgLyogUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmggKi8sCiAJCQkJ
RTE4QzkyRjMxMkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5jcHAgKi8sCkBAIC0zNjUyLDYg
KzM2NzksMTYgQEAKIAkJCW5hbWUgPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwog
CQl9OworCQk3NTU0MjJDNTE4MDY0RkZDMDA0NkY2QTggLyogT3JpZ2luRGF0YSAqLyA9IHsKKwkJ
CWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNzU1NDIyQzYxODA2NEZGQzAw
NDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLywKKwkJCQk3NTU0MjJDNzE4MDY0
RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCAqLywKKwkJCQk3NTU0MjJDODE4
MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJ
CQkpOworCQkJbmFtZSA9IE9yaWdpbkRhdGE7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwor
CQl9OwogCQk3Q0IxNkZFMTE3MjRCOUI1MDA3QTBBOTUgLyogUGx1Z0luU2FuZGJveFByb2ZpbGVz
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTM3MDEsNiAr
MzczOCw3IEBACiAJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk3NTU0MjJDNTE4MDY0
RkZDMDA0NkY2QTggLyogT3JpZ2luRGF0YSAqLywKIAkJCQk1MTJFMzUyQTEzMEI1NTk5MDBBQkQx
OUEgLyogQXBwbGljYXRpb25DYWNoZSAqLywKIAkJCQkzMzA5MzQ0QjEzMTVCOTNBMDA5N0E3QkMg
LyogQ29va2llcyAqLywKIAkJCQlCQ0FDQzQzQjE2QjI0QzVEMDBCNkUwOTIgLyogRW50cnlQb2lu
dCAqLywKQEAgLTM5MzAsNiArMzk2OCwxMSBAQAogCQkJCUJDRjY5RkEwMTE3NkQwMTQwMDQ3MUE1
MiAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5oICovLAogCQkJCUJDMURGRUEzMTJCMzFGODcwMDVERjcz
MCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCAqLywKIAkJCQlCQzFERkVB
MjEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oICov
LAorCQkJCTc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5LmNwcCAqLywKKwkJCQk3NTU0MjJCRjE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eS5oICovLAorCQkJCTc1NTQyMkMwMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTc1OUNDRDU0MTgwOEYx
NjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCAq
LywKKwkJCQk3NTlDQ0Q1NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eUNoYW5nZUNsaWVudC5oICovLAogCQkJCTUxNTM1NjlBMTI5MUIxRDIwMDA3NDlEQyAvKiBX
ZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovLAogCQkJCTUxNTM1NjlCMTI5MUIxRDIwMDA3
NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLywKIAkJCQlCQzdCNjIwNTEyOUEw
QTY3MDBEMTc0QTQgLyogV2ViUGFnZUdyb3VwLmNwcCAqLywKQEAgLTQwMzMsNiArNDA3Niw4IEBA
CiAJCQkJQkM4NTdGRTQxMkI4NDNEODAwRURFQjJFIC8qIFdLT3BlblBhbmVsUGFyYW1ldGVycy5o
ICovLAogCQkJCUJDMURGRThFMTJCMzFDQTgwMDVERjczMCAvKiBXS09wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLmNwcCAqLywKIAkJCQlCQzFERkU4RDEyQjMxQ0E4MDA1REY3MzAgLyogV0tPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lci5oICovLAorCQkJCTc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAvKiBX
S09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLywKKwkJCQk3NTU0MjJCQTE4MDYyQjlDMDA0NkY2QTgg
LyogV0tPcmlnaW5EYXRhTWFuYWdlci5oICovLAogCQkJCUJDRDU5N0Q0MTEyQjU2REMwMEVDOEMy
MyAvKiBXS1BhZ2UuY3BwICovLAogCQkJCUJDRDU5N0Q1MTEyQjU2REMwMEVDOEMyMyAvKiBXS1Bh
Z2UuaCAqLywKIAkJCQlCQzdCNjMzNjEyQTQ1QUJBMDBEMTc0QTQgLyogV0tQYWdlR3JvdXAuY3Bw
ICovLApAQCAtNTExNiw2ICs1MTYxLDcgQEAKIAkJCQlCQzZFREFBNjExMTI3MUM2MDBFNzY3OEIg
LyogUGFnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMTFCNTAxMTJGNjE5MjAwMzM3
QkFCIC8qIFBhZ2VDbGllbnRJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTkwQzIzNzEyNjUw
NzE3MDAzRTQ0RDQgLyogUGFnZU92ZXJsYXkuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1OUNDRDUz
MTgwOEQwMzAwMDc4RThBOCAvKiBPcmlnaW5EYXRhQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAq
LywKIAkJCQlDNTc0QTU4MTEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFMTk1ODJEMzE1M0NCRkQ3MDBCNjA4NzUgLyogUERGS2l0SW1wb3J0
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGQ0IxODkxN0JCRkUwMzAwMzk0Q0Q4IC8qIFN5bmNo
cm9ub3VzTmV0d29ya0xvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC01NDgwLDYgKzU1
MjYsNyBAQAogCQkJCUJDRERCMzJCMTI0RUMyQUIwMDQ4RDEzQyAvKiBXS1NoYXJlZEFQSUNhc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjA2MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1N0cmlu
Zy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MUExMjRGRjAzNzAwNjhGMjBBIC8qIFdLU3Ry
aW5nQ0YuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1OUNDRDU5MTgwOEYxNjkwMDc4RThBOCAvKiBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzkwOTk4MDEyNTZBOTgyMDAwODM3NTYgLyogV0tTdHJpbmdQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzNzdFQUQ0ODE3RTJDNzdCMDAyRDE5M0QgLyogV0tVc2VyQ29udGVudEluamVj
dGVkRnJhbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRBOUFBODEyQjdFNzk2MDA4RkU5ODQg
LyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTU0OTAs
MTEgKzU1MzcsMTMgQEAKIAkJCQlCQzQwNzYwQzEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkxSZXF1
ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYyOTEyNEZGMDQwMDA2OEYyMEEgLyogV0tV
UkxSZXF1ZXN0TlMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjBFMTI0RkYwMjcwMDY4RjIw
QSAvKiBXS1VSTFJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTlDQ0Q1QTE4MDhGNjE2
MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM0MDc2MkIxMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2VOUy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRjYxMTNFMjkxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNTExNkFBREFBMDAyQTkyNUIgLyog
V0tWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNzExNkFBREFBMDAyQTkyNUIgLyog
V0tWaWV3SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJGQTYxNzlGMTJGMEI5OUQwMDMz
RTBDQSAvKiBXS1ZpZXdQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTU0MjJDQzE4MDc3
M0NFMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUM1RTFBRkU5MTZCMjBCNzUwMDZDQzFGMiAvKiBXS1dlYkFyY2hpdmUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUM1RTFBRkVCMTZCMjBCN0UwMDZDQzFGMiAvKiBXS1dlYkFyY2hpdmVSZXNvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5ODlEODIxNjFBN0U1RDAwMEQ0NkQzIC8qIFdLV2ViUHJv
Y2Vzc1BsdWdJbi5oIGluIEhlYWRlcnMgKi8sCkBAIC01ODI5LDYgKzU4NzgsNyBAQAogCQkJZmls
ZXMgPSAoCiAJCQkJRTFEMjZBNTExNzU5NjRENzAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNz
LnhpYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRTEzM0ZEOEExNDIzREQ3RjAwRkM3QkZCIC8qIFdl
YktpdC5pY25zIGluIFJlc291cmNlcyAqLywKKwkJCQk3NTU0MjJDQTE4MDY0RkZDMDA0NkY2QTgg
LyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gaW4gUmVzb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
NjE5OCw2ICs2MjQ4LDcgQEAKIAkJCQlFMUVFNTNFNzExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTRFMTA5
MTIwQjkwNUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUNENUM2NkEwMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1NTQyMkNCMTgw
NjUwMDIwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQ0E4QzZBODExRTNCQTVGMDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVy
Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDODE0N0FBMTJGNjRDREEwMDdCMkMzMiAv
KiBJbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NjU5QzU1MUUxMzAwMDY0MTAwMjVDMEMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9h
ZENsaWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTYzMDksNiArNjM2MCw3IEBACiAJCQkJMUEw
NDNCNUQxMjRENUU5RDAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTA0M0RDMjEyNEZGODc1MDBGRkJGQjUgLyogUGx1
Z2luUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRDkyMjExMjgxREMxQjAwMUVCOTYy
IC8qIFBsdWdpblByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNzU1NDIyQzQxODA2MkJG
OTAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUE4RUZBNzAxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRDYyMjc3MTczOUQ4NjMwMDVCRDdGRiAvKiBQ
bHVnaW5TYW5kYm94UHJvZmlsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDODI4NDREMTZCNTA4
MUMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbSBpbiBTb3VyY2VzICovLApA
QCAtNjQyOCw2ICs2NDgwLDcgQEAKIAkJCQlCQ0I5RjZBMTExMjNBODRCMDBBMTM3RTAgLyogV2Vi
RnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQjBF
MTEyRjVFNEYwMDMzN0JBQiAvKiBXZWJGcmFtZVByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUNENzNCQTUzMTMxQjY0NUIwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk3NTU0MjJCRDE4MDYyQkIyMDA0NkY2QTggLyogV0tPcmlnaW5EYXRh
TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDczQkE0RTEzMUFDREI3MDBFRURFRDIg
LyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0Q2Rjc1RjQxMzFCNjZEMDAwRDZCMjFFIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RDQTg1RUUxMzJBRDcwMTAwRTk2MURGIC8qIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywKQEAgLTY1NzAsNiAr
NjYyMyw3IEBACiAJCQkJOUZCNUYzOTQxNjlFNkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4dFByaXZh
dGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMzA5MzQ1QTEzMTVCOTk4MDA5N0E3QkMgLyog
V0tDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMkY1OEY5MTJBODhBNTQw
MDYyOTUzMCAvKiBXS0NyZWRlbnRpYWwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzU5Q0NENTgx
ODA4RjE2NDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc1RjcxMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGF0
YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNjJBNzY2MTEyQjFBQkVEMDAwNUYxQjYgLyogV0tE
YXRhYmFzZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc1RjkxMjRGRjAyNzAw
NjhGMjBBIC8qIFdLRGljdGlvbmFyeS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1h
bmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyMmNjNjAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2Vi
T3JpZ2luRGF0YU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCIK
KworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0
YS5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2guaD4KKworI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY29uc3QgY2hhciogV2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkK
K3sKKyAgICByZXR1cm4gIldlYk9yaWdpbkRhdGFNYW5hZ2VyIjsKK30KKworV2ViT3JpZ2luRGF0
YU1hbmFnZXI6OldlYk9yaWdpbkRhdGFNYW5hZ2VyKENoaWxkUHJvY2VzcyogY2hpbGRQcm9jZXNz
KQorICAgIDogbV9jaGlsZFByb2Nlc3MoY2hpbGRQcm9jZXNzKQoreworICAgIG1fY2hpbGRQcm9j
ZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyOjpnZXRPcmlnaW5zKFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgdWludDY0X3QgY2FsbGJhY2tJ
RCkKK3sKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnM7CisKKyAg
ICAvLyBGSVhNRTogcG9wdWxhdGUgb3JpZ2lucworCisgICAgVmVjdG9yPFNlY3VyaXR5T3JpZ2lu
RGF0YT4gaWRlbnRpZmllcnM7CisgICAgaWRlbnRpZmllcnMucmVzZXJ2ZUNhcGFjaXR5KG9yaWdp
bnMuc2l6ZSgpKTsKKworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj46Oml0ZXJh
dG9yIGVuZCA9IG9yaWdpbnMuZW5kKCk7CisgICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmln
aW4+Pjo6aXRlcmF0b3IgaSA9IG9yaWdpbnMuYmVnaW4oKTsKKyAgICBmb3IgKDsgaSAhPSBlbmQ7
ICsraSkgeworICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9ICppOworCisg
ICAgICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5EYXRhOworICAgICAgICBvcmlnaW5EYXRh
LnByb3RvY29sID0gb3JpZ2luLT5wcm90b2NvbCgpOworICAgICAgICBvcmlnaW5EYXRhLmhvc3Qg
PSBvcmlnaW4tPmhvc3QoKTsKKyAgICAgICAgb3JpZ2luRGF0YS5wb3J0ID0gb3JpZ2luLT5wb3J0
KCk7CisKKyAgICAgICAgaWRlbnRpZmllcnMudW5jaGVja2VkQXBwZW5kKG9yaWdpbkRhdGEpOwor
ICAgIH0KKworICAgIG1fY2hpbGRQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5OjpEaWRHZXRPcmlnaW5zKGlkZW50aWZpZXJzLCBjYWxsYmFja0lEKSwgMCk7
Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXI6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4o
V0tPcmlnaW5EYXRhTWFzayBtYXNrLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbkRh
dGEpCit7CisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKG9yaWdpbkRhdGEucHJvdG9jb2wsIG9yaWdpbkRhdGEuaG9zdCwgb3JpZ2luRGF0
YS5wb3J0KTsKKyAgICBpZiAoIW9yaWdpbikKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklY
TUU6IGRlbGV0ZSBjYWNoZQorfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVB
bGxFbnRyaWVzKFdLT3JpZ2luRGF0YU1hc2sgbWFzaykKK3sKKyAgICAvLyBGSVhNRTogZGVsZXRl
IGVudHJpZXMKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyNzVmNWUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0
YU1hbmFnZXIuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
ZWJPcmlnaW5EYXRhTWFuYWdlcl9oCisjZGVmaW5lIFdlYk9yaWdpbkRhdGFNYW5hZ2VyX2gKKwor
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBwbGVt
ZW50LmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisjaW5jbHVkZSAiV0tPcmlnaW5EYXRhTWFuYWdlci5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgQ2hpbGRQcm9jZXNzOworc3RydWN0IFNlY3VyaXR5T3JpZ2lu
RGF0YTsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1
cHBsZW1lbnQsIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFdlYk9yaWdpbkRhdGFNYW5hZ2VyKTsKK3B1YmxpYzoKKyAgICBXZWJPcmln
aW5EYXRhTWFuYWdlcihDaGlsZFByb2Nlc3MqKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBz
dXBwbGVtZW50TmFtZSgpOworCisgICAgdm9pZCBkZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0
YU1hc2sgbWFzayk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBnZXRPcmlnaW5zKFdLT3JpZ2luRGF0
YU1hc2sgbWFzaywgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkZWxldGVFbnRyaWVz
Rm9yT3JpZ2luKFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRh
Jik7CisKKyAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJikgT1ZFUlJJREU7CisKKyAgICBDaGlsZFByb2Nlc3MqIG1fY2hpbGRQcm9jZXNzOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJPcmlnaW5EYXRhTWFu
YWdlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEv
V2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBlNjQyZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5t
ZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisjIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYk9yaWdpbkRhdGFNYW5hZ2VyIHsKKyAgICB2b2lk
IEdldE9yaWdpbnModWludDMyX3QgbWFzaywgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICB2b2lk
IERlbGV0ZUVudHJpZXNGb3JPcmlnaW4odWludDMyX3QgbWFzaywgV2ViS2l0OjpTZWN1cml0eU9y
aWdpbkRhdGEgb3JpZ2luSWRlbnRpZmllcikKKyAgICB2b2lkIERlbGV0ZUFsbEVudHJpZXModWlu
dDMyX3QgbWFzaykKKyAgICB2b2lkIFNldEFjY2VwdFBvbGljeSh1aW50MzJfdCBtYXNrLCB1aW50
MzJfdCBwb2xpY3kpCisgICAgdm9pZCBHZXRBY2NlcHRQb2xpY3kodWludDMyX3QgbWFzaywgdWlu
dDY0X3QgY2FsbGJhY2tJRCkKKyAgICB2b2lkIFN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyh1aW50MzJf
dCBtYXNrKQorICAgIHZvaWQgU3RvcE9ic2VydmluZ0NoYW5nZXModWludDMyX3QgbWFzaykKK30K
</data>
<flag name="commit-queue"
          id="236727"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214204</attachid>
            <date>2013-10-14 16:16:41 -0700</date>
            <delta_ts>2013-10-15 11:53:17 -0700</delta_ts>
            <desc>Fix style errors</desc>
            <filename>122781b.diff</filename>
            <type>text/plain</type>
            <size>58733</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmZGU0MDFkLi5mMTMyYmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMg
QEAKKzIwMTMtMTAtMTQgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IFJlZmFjdG9yIHN0b3JlZCB3ZWJzaXRlIGRhdGEgQVBJcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyNzgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyIGFsb25n
IHdpdGggY29ycmVzcG9uZGluZyBjbGFzcworICAgICAgICBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5IGFuZCBBUEkgV0tPcmlnaW5EYXRhTWFuYWdlci4KKworICAgICAgICBDdXJyZW50bHksIHRo
ZSBuZXcgZmlsZXMgYXJlIHVudXNlZC4KKworICAgICAgICBXS09yaWdpbkRhdGFNYW5hZ2VyIHNo
b3VsZCBzdWJzdW1lIHRoZSBmdW5jdGlvbmFsaXR5IG9mOgorICAgICAgICBXS0FwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyLCBXS0Nvb2tpZU1hbmFnZXIsIFdLRGF0YWJhc2VNYW5hZ2VyLAorICAgICAg
ICBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIsIFdLTWVkaWFDYWNoZU1hbmFnZXIsCisgICAgICAg
IFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLCBhbmQgV0tSZXNvdXJjZUNhY2hlTWFuYWdlci4KKwor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dL
QmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQv
T3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6
CisgICAgICAgIChXS0NvbnRleHRHZXRPcmlnaW5EYXRhTWFuYWdlcik6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS09y
aWdpbkRhdGFNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2Vy
R2V0VHlwZUlEKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zKToKKyAg
ICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVFbnRyaWVzRm9yT3JpZ2luKToKKyAgICAg
ICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKFdLT3Jp
Z2luRGF0YU1hbmFnZXJTZXRBY2NlcHRQb2xpY3kpOgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFu
YWdlckdldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyU3RhcnRP
YnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJTdG9wT2JzZXJ2
aW5nQ2hhbmdlcyk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyU2V0Q2hhbmdlQ2xpZW50
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5oOiBBZGRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzdXBwbGVt
ZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Ojp+V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0cm95ZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpwcm9jZXNzRGlkQ2xvc2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzaG91bGRUZXJtaW5hdGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpyZWZXZWJDb250
ZXh0U3VwcGxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5OjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2luRGF0YU9yaWdpbnMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxldGVFbnRyaWVzRm9yT3JpZ2lu
KToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxs
RW50cmllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNl
dEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk6OmdldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0b3BPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c2V0Q2hhbmdlQ2xpZW50KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VD
bGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eUNoYW5nZUNsaWVudDo6ZGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9Pcmln
aW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpXZWJPcmlnaW5EYXRhTWFuYWdlcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdlYktp
dDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlQWxsRW50cmllcyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmg6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5t
ZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTMtMTAtMTQgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9z
c3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbV0syXVtFZmxdW1NvdXBdIE1ha2UgTmV0d29ya1By
b2Nlc3NNYWluVW5peCBoYW5kbGUgcHJveHkgc2V0dGluZ3MuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCA1NTUxNzRiLi5mMWZhMDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTM5LDYgKzM5LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL01lZGlhQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrIFwKICAg
ICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCisgICAgJChXZWJLaXQyKS9X
ZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5z
IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAgICAgJChXZWJL
aXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXApAQCAtOTksNiArMTAwLDggQEAgTUVTU0FHRV9SRUNF
SVZFUlMgPSBcCiAgICAgV2ViTWVkaWFDYWNoZU1hbmFnZXIgXAogICAgIFdlYk1lZGlhQ2FjaGVN
YW5hZ2VyUHJveHkgXAogICAgIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIgXAorICAgIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyIFwKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5IFwKICAgICBXZWJQ
YWdlIFwKICAgICBXZWJQYWdlR3JvdXBQcm94eSBcCiAgICAgV2ViUGFnZVByb3h5IFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCA2OTk0Y2JkLi4xOTdhZDlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0xMTksNiArMTE5LDcgQEAgdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogV0tOb3Rp
ZmljYXRpb25QZXJtaXMKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9u
UHJvdmlkZXIqIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBPcGFxdWVXS09wZW5QYW5lbFBhcmFtZXRlcnMqIFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIqIFdL
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S09yaWdpbkRhdGFNYW5hZ2VyKiBXS09yaWdpbkRhdGFNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tQYWdlKiBXS1BhZ2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS1BhZ2VHcm91cCogV0tQYWdlR3JvdXBSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS1BsdWdpblNpdGVEYXRhTWFuYWdlciogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWY7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggNDQxZTA1ZS4uNzAzMjFiOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtMTAzLDYgKzEwMyw3IEBAIHB1YmxpYzoKICAgICAg
ICAgVHlwZU5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LAogICAgICAgICBUeXBlT3BlblBh
bmVsUGFyYW1ldGVycywKICAgICAgICAgVHlwZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLAorICAg
ICAgICBUeXBlT3JpZ2luRGF0YU1hbmFnZXIsCiAgICAgICAgIFR5cGVQYWdlLAogICAgICAgICBU
eXBlUGFnZUdyb3VwLAogICAgICAgICBUeXBlUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL09yaWdpbkRhdGFBY2NlcHRQb2xpY3kuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5EYXRhQWNjZXB0UG9saWN5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTYyYjg3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5EYXRhQWNjZXB0UG9saWN5LmgKQEAgLTAsMCArMSw0MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
T3JpZ2luRGF0YUFjY2VwdFBvbGljeV9oCisjZGVmaW5lIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3lf
aAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSB7CisgICAgT3JpZ2luRGF0YUFjY2VwdFBv
bGljeUFsd2F5cyA9IDAsCisgICAgT3JpZ2luRGF0YUFjY2VwdFBvbGljeU5ldmVyID0gMSwKKyAg
ICBPcmlnaW5EYXRhQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW4gPSAyLAor
fTsKK3R5cGVkZWYgdW5zaWduZWQgT3JpZ2luRGF0YUFjY2VwdFBvbGljeTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBPcmlnaW5EYXRhQWNjZXB0UG9saWN5X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA2NGM4ZDFhLi4yZDk3
NjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRm9udFNtb290aGluZ0xldmVsLmgiCiAjaW5jbHVkZSAi
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlSGl0VGVz
dFJlc3VsdE1lZGlhVHlwZS5oIgorI2luY2x1ZGUgIk9yaWdpbkRhdGFBY2NlcHRQb2xpY3kuaCIK
ICNpbmNsdWRlICJQbHVnaW5Nb2R1bGVJbmZvLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc01vZGVsLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmgiCkBAIC04Nyw2ICs4OCw3IEBAIGNs
YXNzIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOwogY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5OwogY2xhc3MgV2ViT3BlblBhbmVsUGFyYW1ldGVyczsKIGNsYXNzIFdlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyUHJveHk7CitjbGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Owog
Y2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyOwpAQCAtMTMzLDYgKzEzNSw3IEBAIFdLX0FERF9BUElfTUFQUElORyhX
S05vdGlmaWNhdGlvblByb3ZpZGVyUmVmLCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcikKIFdLX0FE
RF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlvblJlZiwgV2ViTm90aWZpY2F0aW9uKQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZiwgV2ViT3BlblBhbmVsUGFyYW1l
dGVycykKIFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmLCBX
ZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLT3Jp
Z2luRGF0YU1hbmFnZXJSZWYsIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tQYWdlR3JvdXBSZWYsIFdlYlBhZ2VHcm91cCkKIFdLX0FERF9BUElfTUFQUElO
RyhXS1BhZ2VSZWYsIFdlYlBhZ2VQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1BsdWdpblNp
dGVEYXRhTWFuYWdlclJlZiwgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCBhNDdlNDlmLi5mYmZiYzFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAt
NDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCIKICNp
bmNsdWRlICJXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpZiBFTkFC
TEUoU1FMX0RBVEFCQVNFKQogI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlclByb3h5LmgiCkBA
IC0yNzQsNiArMjc1LDExIEBAIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0
UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSCiAgICAgcmV0dXJuIHRv
QVBJKHRvSW1wbChjb250ZXh0UmVmKS0+c3VwcGxlbWVudDxXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5PigpKTsKIH0KIAorV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRPcmln
aW5EYXRhTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyAgICByZXR1cm4gdG9B
UEkodG9JbXBsKGNvbnRleHRSZWYpLT5zdXBwbGVtZW50PFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk+KCkpOworfQorCiB2b2lkIFdLQ29udGV4dFN0YXJ0TWVtb3J5U2FtcGxlcihXS0NvbnRleHRS
ZWYgY29udGV4dFJlZiwgV0tEb3VibGVSZWYgaW50ZXJ2YWwpCiB7CiAgICAgdG9JbXBsKGNvbnRl
eHRSZWYpLT5zdGFydE1lbW9yeVNhbXBsZXIodG9JbXBsKGludGVydmFsKS0+dmFsdWUoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKaW5kZXggM2NlNzMxZS4u
ZWZkNjc3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaApA
QCAtMTk1LDcgKzE5NSw4IEBAIFdLX0VYUE9SVCBXS05ldHdvcmtJbmZvTWFuYWdlclJlZiBXS0Nv
bnRleHRHZXROZXR3b3JrSW5mb01hbmFnZXIoV0tDb250ZXh0UmVmIGNvCiBXS19FWFBPUlQgV0tO
b3RpZmljYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldE5vdGlmaWNhdGlvbk1hbmFnZXIoV0tD
b250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVm
IFdLQ29udGV4dEdldFBsdWdpblNpdGVEYXRhTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7
CiBXS19FWFBPUlQgV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRSZXNvdXJj
ZUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7Ci0gICAgCitXS19FWFBPUlQgV0tP
cmlnaW5EYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRPcmlnaW5EYXRhTWFuYWdlcihXS0NvbnRl
eHRSZWYgY29udGV4dCk7CisKIHR5cGVkZWYgdm9pZCAoKldLQ29udGV4dEdldFN0YXRpc3RpY3NG
dW5jdGlvbikoV0tEaWN0aW9uYXJ5UmVmIHN0YXRpc3RpY3MsIFdLRXJyb3JSZWYgZXJyb3IsIHZv
aWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRHZXRTdGF0aXN0
aWNzKFdLQ29udGV4dFJlZiBjb250ZXh0LCB2b2lkKiBmdW5jdGlvbkNvbnRleHQsIFdLQ29udGV4
dEdldFN0YXRpc3RpY3NGdW5jdGlvbiBmdW5jdGlvbik7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRl
eHRHZXRTdGF0aXN0aWNzV2l0aE9wdGlvbnMoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RhdGlz
dGljc09wdGlvbnMgc3RhdGlzdGljc01hc2ssIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCwgV0tDb250
ZXh0R2V0U3RhdGlzdGljc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGIyNGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuY3BwCkBAIC0w
LDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V0tPcmlnaW5EYXRhTWFuYWdlci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVk
ZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OworCitXS1R5cGVJRCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1
cm4gdG9BUEkoV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6QVBJVHlwZSk7Cit9CisKK3ZvaWQg
V0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmln
aW5EYXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRhTWFzayBtYXNrLCB2b2lkKiBjb250ZXh0LCBX
S09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2luc0Z1bmN0aW9uIGNhbGxiYWNrKQoreworICAgIHRv
SW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPmdldE9yaWdpbnMobWFzaywgQXJyYXlDYWxsYmFj
azo6Y3JlYXRlKGNvbnRleHQsIGNhbGxiYWNrKSk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFu
YWdlckRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5E
YXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRhTWFzayBtYXNrLCBXS1NlY3VyaXR5T3JpZ2luUmVm
IG9yaWdpblJlZikKK3sKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5kZWxldGVF
bnRyaWVzRm9yT3JpZ2luKG1hc2ssIHRvSW1wbChvcmlnaW5SZWYpKTsKK30KKwordm9pZCBXS09y
aWdpbkRhdGFNYW5hZ2VyRGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9y
aWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFNYXNrIG1hc2spCit7CisgICAgdG9JbXBs
KG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+ZGVsZXRlQWxsRW50cmllcyhtYXNrKTsKK30KKwordm9p
ZCBXS09yaWdpbkRhdGFNYW5hZ2VyU2V0QWNjZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1hbmFnZXJS
ZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgV0tPcmlnaW5E
YXRhQWNjZXB0UG9saWN5IHBvbGljeSkKK3sKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJS
ZWYpLT5zZXRBY2NlcHRQb2xpY3kobWFzaywgcG9saWN5KTsKK30KK3ZvaWQgV0tPcmlnaW5EYXRh
TWFuYWdlckdldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFN
YW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFNYXNrIG1hc2ssIHZvaWQqIGNvbnRleHQsIFdLT3JpZ2lu
RGF0YU1hbmFnZXJHZXRBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjaykKK3sKKyAgICB0b0lt
cGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5nZXRBY2NlcHRQb2xpY3kobWFzaywgT3JpZ2luRGF0
YUFjY2VwdFBvbGljeUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsKK30KKwor
dm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0
YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YU1hc2sgbWFzaykK
K3sKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5zdGFydE9ic2VydmluZ0NoYW5n
ZXMobWFzayk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclN0b3BPYnNlcnZpbmdDaGFu
Z2VzKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2lu
RGF0YU1hc2sgbWFzaykKK3sKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5zdG9w
T2JzZXJ2aW5nQ2hhbmdlcyhtYXNrKTsKK30KKwordm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU2V0
Q2hhbmdlQ2xpZW50KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYs
IGNvbnN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQgKmNsaWVudCkKK3sKKyAgICB0
b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5zZXRDaGFuZ2VDbGllbnQoY2xpZW50KTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFN
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFu
YWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhZDhiMDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRh
TWFuYWdlci5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLT3JpZ2lu
RGF0YU1hbmFnZXJfaAorI2RlZmluZSBXS09yaWdpbkRhdGFNYW5hZ2VyX2gKKworI2luY2x1ZGUg
PFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7Cisj
ZW5kaWYKKworZW51bSB7CisgICAga1dLT3JpZ2luRGF0YU1hc2tBcHBsaWNhdGlvbkNhY2hlID0g
MDEsCisgICAga1dLT3JpZ2luRGF0YU1hc2tDb29raWUgPSAwMiwKKyAgICBrV0tPcmlnaW5EYXRh
TWFza0RhdGFiYXNlID0gMDQsCisgICAga1dLT3JpZ2luRGF0YU1hc2tLZXlWYWx1ZVN0b3JhZ2Ug
PSAwMTAsCisgICAga1dLT3JpZ2luRGF0YU1hc2tNZWRpYUNhY2hlID0gMDIwLAorICAgIGtXS09y
aWdpbkRhdGFNYXNrUGx1Z2luRGF0YSA9IDA0MCwKKyAgICBrV0tPcmlnaW5EYXRhTWFza1Jlc291
cmNlQ2FjaGUgPSAwMTAwLAorCisgICAga1dLT3JpZ2luRGF0YU1hc2tBbGwgPSAwMTc3Cit9Owor
dHlwZWRlZiB1aW50MzJfdCBXS09yaWdpbkRhdGFNYXNrOworCitlbnVtIHsKKyAgICBrV0tPcmln
aW5EYXRhQWNjZXB0UG9saWN5QWx3YXlzID0gMCwKKyAgICBrV0tPcmlnaW5EYXRhQWNjZXB0UG9s
aWN5TmV2ZXIgPSAxLAorICAgIGtXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5E
b2N1bWVudERvbWFpbiA9IDIKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLT3JpZ2luRGF0YUFjY2Vw
dFBvbGljeTsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRUeXBl
SUQoKTsKKwordHlwZWRlZiB2b2lkICgqV0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnNGdW5j
dGlvbikoV0tBcnJheVJlZiwgV0tFcnJvclJlZiwgdm9pZCopOworV0tfRVhQT1JUIHZvaWQgV0tP
cmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5E
YXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhTWFzayBtYXNrLCB2b2lkKiBjb250ZXh0LCBXS09yaWdp
bkRhdGFNYW5hZ2VyR2V0T3JpZ2luc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKKworV0tfRVhQT1JUIHZv
aWQgV0tPcmlnaW5EYXRhTWFuYWdlckRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRh
TWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhTWFzayBtYXNrLCBXS1Nl
Y3VyaXR5T3JpZ2luUmVmIG9yaWdpbik7CitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5h
Z2VyRGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5h
Z2VyLCBXS09yaWdpbkRhdGFNYXNrIG1hc2spOworCisvLyBPcmlnaW5EYXRhTWFuYWdlciBDbGll
bnQKK3R5cGVkZWYgdm9pZCAoKldLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDYWxsYmFjaykoV0tP
cmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgY29uc3Qgdm9pZCAqY2xpZW50
SW5mbyk7CitzdHJ1Y3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCB7CisgICAgaW50
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lk
ICogICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworICAgIFdLT3JpZ2luRGF0YU1h
bmFnZXJDaGFuZ2VDYWxsYmFjayAgIGRpZENoYW5nZTsKK307Cit0eXBlZGVmIHN0cnVjdCBXS09y
aWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGll
bnQ7CisKK2VudW0geyBrV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudFZlcnNpb24gPSAw
IH07CisKKy8vIEN1cnJlbnRseSwgb25seSBtYXNrID09IFdLT3JpZ2luRGF0YU1hbmFnZXJDb29r
aWUgaXMgc3VwcG9ydGVkIGZvciB0aGUgZm9sbG93aW5nLgorV0tfRVhQT1JUIHZvaWQgV0tPcmln
aW5EYXRhTWFuYWdlclNldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdp
bkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFNYXNrIG1hc2ssIFdLT3JpZ2luRGF0YUFjY2VwdFBv
bGljeSBwb2xpY3kpOwordHlwZWRlZiB2b2lkICgqV0tPcmlnaW5EYXRhTWFuYWdlckdldEFjY2Vw
dFBvbGljeUZ1bmN0aW9uKShXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3ksIFdLRXJyb3JSZWYsIHZv
aWQqKTsKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRBY2NlcHRQb2xpY3ko
V0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhTWFz
ayBtYXNrLCB2b2lkKiBjb250ZXh0LCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0QWNjZXB0UG9saWN5
RnVuY3Rpb24gY2FsbGJhY2spOworCitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2Vy
U3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1h
bmFnZXIsIFdLT3JpZ2luRGF0YU1hc2sgbWFzayk7CitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRh
dGFNYW5hZ2VyU3RvcE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmln
aW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhTWFzayBtYXNrKTsKK1dLX0VYUE9SVCB2b2lkIFdL
T3JpZ2luRGF0YU1hbmFnZXJTZXRDaGFuZ2VDbGllbnQoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBv
cmlnaW5EYXRhTWFuZ2VyLCBjb25zdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50KiBj
bGllbnQpOworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8vIFdLT3Jp
Z2luRGF0YU1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjdmZTMyZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSwxNjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCisjaW5j
bHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY29u
c3QgY2hhciogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c3VwcGxlbWVudE5hbWUoKQorewor
ICAgIHJldHVybiAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSI7Cit9CisKK1Bhc3NSZWZQdHI8
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eT4gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6Y3Jl
YXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5KGNvbnRleHQpKTsKK30KKworV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eTo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eShXZWJDb250ZXh0KiBjb250ZXh0KQor
OiBXZWJDb250ZXh0U3VwcGxlbWVudChjb250ZXh0KQoreworICAgIGNvbnRleHQtPmFkZE1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCB0aGlzKTsKK30KKworV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6fldl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkoKQoreworfQorCisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eTo6Y29udGV4dERlc3Ryb3llZCgpCit7CisgICAgaW52YWxpZGF0ZUNhbGxiYWNr
TWFwKG1fYXJyYXlDYWxsYmFja3MpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk6OnByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkqKQoreworICAgIGludmFsaWRhdGVD
YWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tzKTsKK30KKworYm9vbCBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5OjpzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9hcnJheUNhbGxiYWNrcy5pc0VtcHR5KCk7Cit9CisKK3ZvaWQgV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eTo6cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQoreworICAgIEFQSU9i
amVjdDo6cmVmKCk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVyZWZX
ZWJDb250ZXh0U3VwcGxlbWVudCgpCit7CisgICAgQVBJT2JqZWN0OjpkZXJlZigpOworfQorCit2
b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFz
ayBtYXNrLCBQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+IHBycENhbGxiYWNrKQoreworICAgIGlm
ICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFj
az4gY2FsbGJhY2sgPSBwcnBDYWxsYmFjazsKKworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBj
YWxsYmFjay0+Y2FsbGJhY2tJRCgpOworICAgIG1fYXJyYXlDYWxsYmFja3Muc2V0KGNhbGxiYWNr
SUQsIGNhbGxiYWNrLnJlbGVhc2UoKSk7CisKKyAgICAvLyBGSVhNRSAoTXVsdGktV2ViUHJvY2Vz
cyk6IDxyZGFyOi8vcHJvYmxlbS8xMjIzOTc2NT4gTWFrZSBtYW5pcHVsYXRpbmcgY2FjaGUgaW5m
b3JtYXRpb24gd29yayB3aXRoIHBlci10YWIgV2ViUHJvY2Vzcy4KKyAgICBjb250ZXh0KCktPnNl
bmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJP
cmlnaW5EYXRhTWFuYWdlcjo6R2V0T3JpZ2lucyhtYXNrLCBjYWxsYmFja0lEKSk7Cit9CisKK3Zv
aWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2luRGF0YU9yaWdpbnMoY29u
c3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbkRhdGFzLCB1aW50NjRfdCBjYWxs
YmFja0lEKQoreworICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IG1fYXJyYXlD
YWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBwZXJmb3JtQVBJQ2FsbGJhY2tXaXRoU2Vj
dXJpdHlPcmlnaW5EYXRhVmVjdG9yKG9yaWdpbkRhdGFzLCBjYWxsYmFjay5nZXQoKSk7Cit9CisK
K3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbihX
S09yaWdpbkRhdGFNYXNrIG1hc2ssIFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit7CisgICAg
aWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFNlY3VyaXR5T3JpZ2luRGF0
YSBzZWN1cml0eU9yaWdpbkRhdGE7CisgICAgc2VjdXJpdHlPcmlnaW5EYXRhLnByb3RvY29sID0g
b3JpZ2luLT5wcm90b2NvbCgpOworICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5ob3N0ID0gb3JpZ2lu
LT5ob3N0KCk7CisgICAgc2VjdXJpdHlPcmlnaW5EYXRhLnBvcnQgPSBvcmlnaW4tPnBvcnQoKTsK
KworICAgIC8vIEZJWE1FIChNdWx0aS1XZWJQcm9jZXNzKTogPHJkYXI6Ly9wcm9ibGVtLzEyMjM5
NzY1PiBNYWtlIG1hbmlwdWxhdGluZyBjYWNoZSBpbmZvcm1hdGlvbiB3b3JrIHdpdGggcGVyLXRh
YiBXZWJQcm9jZXNzLgorICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hp
bmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpEZWxldGVF
bnRyaWVzRm9yT3JpZ2luKG1hc2ssIHNlY3VyaXR5T3JpZ2luRGF0YSkpOworfQorCit2b2lkIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhTWFz
ayBtYXNrKQoreworICAgIGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICAv
LyBGSVhNRSAoTXVsdGktV2ViUHJvY2Vzcyk6IDxyZGFyOi8vcHJvYmxlbS8xMjIzOTc2NT4gTWFr
ZSBtYW5pcHVsYXRpbmcgY2FjaGUgaW5mb3JtYXRpb24gd29yayB3aXRoIHBlci10YWIgV2ViUHJv
Y2Vzcy4KKyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlm
TmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6RGVsZXRlQWxsRW50cmll
cyhtYXNrKSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c2V0QWNjZXB0
UG9saWN5KFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgV0tPcmlnaW5EYXRhQWNjZXB0UG9saWN5IHBv
bGljeSkKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29u
dGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNz
YWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OlNldEFjY2VwdFBvbGljeShtYXNrLCBwb2xpY3kp
KTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpnZXRBY2NlcHRQb2xpY3ko
V0tPcmlnaW5EYXRhTWFzayBtYXNrLCBQYXNzUmVmUHRyPE9yaWdpbkRhdGFBY2NlcHRQb2xpY3lD
YWxsYmFjaz4gcHJwQ2FsbGJhY2spCit7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIFJlZlB0cjxPcmlnaW5EYXRhQWNjZXB0UG9saWN5Q2FsbGJhY2s+IGNhbGxi
YWNrID0gcHJwQ2FsbGJhY2s7CisKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2st
PmNhbGxiYWNrSUQoKTsKKyAgICBtX2FjY2VwdFBvbGljeUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJ
RCwgY2FsbGJhY2sucmVsZWFzZSgpKTsKKworICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vz
c2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5h
Z2VyOjpHZXRBY2NlcHRQb2xpY3kobWFzaywgY2FsbGJhY2tJRCkpOworfQorCit2b2lkIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFN
YXNrIG1hc2spCit7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3Nhcnko
TWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpTdGFydE9ic2VydmluZ0NoYW5nZXMobWFz
aykpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0b3BPYnNlcnZpbmdD
aGFuZ2VzKFdLT3JpZ2luRGF0YU1hc2sgbWFzaykKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgY29udGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5j
aGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OlN0YXJ0
T2JzZXJ2aW5nQ2hhbmdlcyhtYXNrKSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eTo6c2V0Q2hhbmdlQ2xpZW50KGNvbnN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGll
bnQgKmNsaWVudCkKK3sKKyAgICBtX2NsaWVudC5pbml0aWFsaXplKGNsaWVudCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZmYwZjU3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5j
bHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiSW1tdXRhYmxlQXJyYXkuaCIKKyNp
bmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXS09yaWdpbkRhdGFNYW5hZ2Vy
LmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dFN1cHBsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
CituYW1lc3BhY2UgQ29yZUlQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CitzdHJ1Y3QgU2VjdXJpdHlPcmln
aW5EYXRhOworCit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS0FycmF5UmVmPiBBcnJheUNhbGxi
YWNrOwordHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tPcmlnaW5EYXRhQWNjZXB0UG9saWN5LCBP
cmlnaW5EYXRhQWNjZXB0UG9saWN5PiBPcmlnaW5EYXRhQWNjZXB0UG9saWN5Q2FsbGJhY2s7CisK
K2NsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8
QVBJT2JqZWN0OjpUeXBlT3JpZ2luRGF0YU1hbmFnZXI+LCBwdWJsaWMgV2ViQ29udGV4dFN1cHBs
ZW1lbnQsIHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKKworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAg
dmlydHVhbCB+V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSgpOworCisgICAgdm9pZCBnZXRPcmln
aW5zKFdLT3JpZ2luRGF0YU1hc2ssIFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4pOworICAgIHZv
aWQgZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFNYXNrLCBXZWJTZWN1cml0eU9y
aWdpbiopOworICAgIHZvaWQgZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFNYXNrKTsKKwor
ICAgIHZvaWQgc2V0QWNjZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1hc2ssIFdLT3JpZ2luRGF0YUFj
Y2VwdFBvbGljeSk7CisgICAgdm9pZCBnZXRBY2NlcHRQb2xpY3koV0tPcmlnaW5EYXRhTWFzaywg
UGFzc1JlZlB0cjxPcmlnaW5EYXRhQWNjZXB0UG9saWN5Q2FsbGJhY2s+KTsKKworICAgIHZvaWQg
c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hc2spOworICAgIHZvaWQgc3RvcE9i
c2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFzayk7CisgICAgdm9pZCBzZXRDaGFuZ2VDbGll
bnQoY29uc3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCopOworCisgICAgdXNpbmcg
QVBJT2JqZWN0OjpyZWY7CisgICAgdXNpbmcgQVBJT2JqZWN0OjpkZXJlZjsKKworcHJpdmF0ZToK
KyAgICBleHBsaWNpdCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKKwor
ICAgIHZvaWQgZGlkR2V0T3JpZ2luRGF0YU9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3Jp
Z2luRGF0YT4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKworICAgIC8vIFdlYkNvbnRleHRTdXBw
bGVtZW50CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94eSopIE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBP
VkVSUklERTsKKworICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKSBPVkVSUklERTsKKworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxB
cnJheUNhbGxiYWNrPj4gbV9hcnJheUNhbGxiYWNrczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8T3JpZ2luRGF0YUFjY2VwdFBvbGljeUNhbGxiYWNrPj4gbV9hY2NlcHRQb2xpY3lDYWxs
YmFja3M7CisKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50IG1fY2xp
ZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZkNzZiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0wLDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0Ogor
IyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworbWVzc2FnZXMgLT4gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSB7CisgICAgRGlkR2V0T3Jp
Z2lucyhWZWN0b3I8V2ViS2l0OjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbklkZW50aWZpZXJz
LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICBEaWRDaGFuZ2UoKQorfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHlDaGFuZ2VDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjY2NjAxYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAKQEAgLTAsMCArMSw0MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5n
ZUNsaWVudDo6ZGlkQ2hhbmdlKFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkqIG9yaWdpbkRhdGFN
YW5hZ2VyKQoreworICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2NsaWVudC5kaWRDaGFuZ2UodG9BUEkob3JpZ2luRGF0YU1hbmFnZXIpLCBtX2Ns
aWVudC5jbGllbnRJbmZvKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5n
ZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHlDaGFuZ2VDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5i
YTc2N2NkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaApAQCAtMCwwICsxLDQ0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50X2gK
KyNkZWZpbmUgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudF9oCisKKyNpbmNs
dWRlICJBUElDbGllbnQuaCIKKyNpbmNsdWRlICJXS09yaWdpbkRhdGFNYW5hZ2VyLmgiCisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk7CisKK2NsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlD
aGFuZ2VDbGllbnQgOiBwdWJsaWMgQVBJQ2xpZW50PFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VD
bGllbnQsIGtXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50VmVyc2lvbj4geworcHVibGlj
OgorICAgIHZvaWQgZGlkQ2hhbmdlKFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkqKTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eUNoYW5nZUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDRkNDVkOC4uNzliZGQxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTYyLDYgKzU2
MiwxOCBAQAogCQk2RUU4NDlDODEzNjhEOTM5MDAzOEQ0ODEgLyogV0tJbnNwZWN0b3JQcml2YXRl
TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUU4
NDlDNjEzNjhEOTJEMDAzOEQ0ODEgLyogV0tJbnNwZWN0b3JQcml2YXRlTWFjLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI4RTg2RjExNzk1MTg4
QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjhFODZFRjE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29s
b3JQaWNrZXJNYWMuaCAqLzsgfTsKIAkJNzI4RTg2RjIxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNv
bG9yUGlja2VyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzI4RTg2RjAxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLm1tICov
OyB9OworCQk3NTU0MjJCQjE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5j
cHAgaW4gQ29weSBGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0
MjJCOTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgKi87IH07CisJ
CTc1NTQyMkJDMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggaW4gQ29w
eSBGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJCQTE4MDYy
QjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5oICovOyB9OworCQk3NTU0MjJCRDE4
MDYyQkIyMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJCOTE4MDYyQjlDMDA0NkY2QTgg
LyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgKi87IH07CisJCTc1NTQyMkMzMTgwNjJCRTQwMDQ2
RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGluIENvcHkgRmls
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQzAxODA2MkJFNDAw
NDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi87IH07CisJ
CTc1NTQyMkM0MTgwNjJCRjkwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkJF
MTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCAqLzsgfTsK
KwkJNzU1NDIyQ0ExODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3Nh
Z2VzLmluIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTU0MjJDODE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMu
aW4gKi87IH07CisJCTc1NTQyMkNCMTgwNjUwMDIwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTU0MjJDNjE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovOyB9
OworCQk3NTU0MjJDQzE4MDc3M0NFMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkM3MTgw
NjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oICovOyB9OworCQk3NTlDQ0Q1
MzE4MDhEMDMwMDA3OEU4QTggLyogT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU5Q0NENTExODA4RDAxQzAwNzhF
OEE4IC8qIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3kuaCAqLzsgfTsKKwkJNzU5Q0NENTgxODA4RjE2
NDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU5Q0NENTQxODA4
RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3Bw
ICovOyB9OworCQk3NTlDQ0Q1OTE4MDhGMTY5MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eUNoYW5nZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlDaGFuZ2VDbGllbnQuaCAqLzsgfTsKKwkJNzU5Q0NENUExODA4RjYxNjAwNzhFOEE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkJGMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5LmggKi87IH07CiAJCTc2MkI3NDhEMTIwQkM3NUMwMDgxOTMzOSAv
KiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzYyQjc0ODQxMjBCQkEyRDAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQ
cml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzgwMUMwOTkxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzgwMUMwOTUxNDIyOTBD
NDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwICovOyB9OwogCQk3ODAxQzA5QTE0MjI5
MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzgwMUMwOTYxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhp
dFRlc3RSZXN1bHQuaCAqLzsgfTsKQEAgLTEzMDIsOCArMTMxNCwxMSBAQAogCQkJZHN0U3ViZm9s
ZGVyU3BlYyA9IDE7CiAJCQlmaWxlcyA9ICgKIAkJCQk1MTBDQzg0OTE2MTNDODVDMDBEMDNFRDMg
LyogTmV0d29ya1Byb2Nlc3MuYXBwIGluIENvcHkgRmlsZXMgKi8sCisJCQkJNzU1NDIyQkMxODA2
MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBDb3B5IEZpbGVzICovLAog
CQkJCUJDREUwQUJGMTMyNzI3MDgwMDEyNTlGQiAvKiBQbHVnaW5Qcm9jZXNzLmFwcCBpbiBDb3B5
IEZpbGVzICovLAorCQkJCTc1NTQyMkMzMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGluIENvcHkgRmlsZXMgKi8sCiAJCQkJMUE1MERCNjYx
MTBBM0Q1NzAwMEQzRkU1IC8qIFdlYlByb2Nlc3MuYXBwIGluIENvcHkgRmlsZXMgKi8sCisJCQkJ
NzU1NDIyQkIxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIENv
cHkgRmlsZXMgKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJDb3B5IEZpbGVzIjsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAtMTk2Miw2ICsxOTc3LDE3IEBACiAJ
CTZFRTg0OUM2MTM2OEQ5MkQwMDM4RDQ4MSAvKiBXS0luc3BlY3RvclByaXZhdGVNYWMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tJbnNwZWN0b3JQcml2YXRlTWFjLmg7IHBh
dGggPSBtYWMvV0tJbnNwZWN0b3JQcml2YXRlTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTcyOEU4NkVGMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvclBpY2tlck1hYy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjhFODZGMDE3OTUxODhDMDA4Nzg3OUUgLyogV2Vi
Q29sb3JQaWNrZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJDb2xvclBpY2tlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1
NDIyQjkxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tPcmlnaW5EYXRhTWFuYWdlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBX
S09yaWdpbkRhdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
T3JpZ2luRGF0YU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIy
QkUxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkJGMTgwNjJCRTQwMDQ2
RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQzAxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzU1NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
LmNwcDsgcGF0aCA9IE9yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDNzE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViT3Jp
Z2luRGF0YU1hbmFnZXIuaDsgcGF0aCA9IE9yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQzgxODA2NEZGQzAwNDZGNkE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFt
ZSA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOyBwYXRoID0gT3JpZ2luRGF0YS9X
ZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNzU5Q0NENTExODA4RDAxQzAwNzhFOEE4IC8qIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3ku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT3JpZ2luRGF0YUFjY2VwdFBvbGlj
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4
QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hh
bmdlQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU5Q0NENTUxODA4
RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eUNoYW5nZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjJCNzQ4MTEy
MEJCQTAxMDA4MTkzMzkgLyogRm9udFNtb290aGluZ0xldmVsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEZvbnRTbW9vdGhpbmdMZXZlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZh
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmVmZXJlbmNlc1ByaXZh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzgwMUMwOTUxNDIyOTBDNDAwRkFG
OUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0zMTA5LDYgKzMxMzUsNyBAQAogCQkJCURGNThDNjMxMTM3MUFDNTgwMEY5QTM3QyAvKiBO
YXRpdmVXZWJXaGVlbEV2ZW50LmggKi8sCiAJCQkJQkNDRjY3MzIxMkM3RjE1QzAwOEY5QzM1IC8q
IE9yaWdpbkFuZERhdGFiYXNlcy5jcHAgKi8sCiAJCQkJQkNDRjY3MkMxMkM3RURGNzAwOEY5QzM1
IC8qIE9yaWdpbkFuZERhdGFiYXNlcy5oICovLAorCQkJCTc1OUNDRDUxMTgwOEQwMUMwMDc4RThB
OCAvKiBPcmlnaW5EYXRhQWNjZXB0UG9saWN5LmggKi8sCiAJCQkJQkNDNDNBQjgxMjdCOTVEQzAw
MzE3RjE2IC8qIFBsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAgKi8sCiAJCQkJQkNDNDNBQjkxMjdC
OTVEQzAwMzE3RjE2IC8qIFBsYXRmb3JtUG9wdXBNZW51RGF0YS5oICovLAogCQkJCUUxOEM5MkYz
MTJEQjlFNzEwMENGMkFFQiAvKiBQcmludEluZm8uY3BwICovLApAQCAtMzY1Miw2ICszNjc5LDE2
IEBACiAJCQluYW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJ
NzU1NDIyQzUxODA2NEZGQzAwNDZGNkE4IC8qIE9yaWdpbkRhdGEgKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTc1NTQyMkM2MTgwNjRGRkMwMDQ2RjZBOCAv
KiBXZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAgKi8sCisJCQkJNzU1NDIyQzcxODA2NEZGQzAwNDZG
NkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggKi8sCisJCQkJNzU1NDIyQzgxODA2NEZGQzAw
NDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJ
CW5hbWUgPSBPcmlnaW5EYXRhOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
N0NCMTZGRTExNzI0QjlCNTAwN0EwQTk1IC8qIFBsdWdJblNhbmRib3hQcm9maWxlcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0zNzAxLDYgKzM3MzgsNyBA
QAogCQlCQzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNzU1NDIyQzUxODA2NEZGQzAwNDZG
NkE4IC8qIE9yaWdpbkRhdGEgKi8sCiAJCQkJNTEyRTM1MkExMzBCNTU5OTAwQUJEMTlBIC8qIEFw
cGxpY2F0aW9uQ2FjaGUgKi8sCiAJCQkJMzMwOTM0NEIxMzE1QjkzQTAwOTdBN0JDIC8qIENvb2tp
ZXMgKi8sCiAJCQkJQkNBQ0M0M0IxNkIyNEM1RDAwQjZFMDkyIC8qIEVudHJ5UG9pbnQgKi8sCkBA
IC0zOTMwLDYgKzM5NjgsMTEgQEAKIAkJCQlCQ0Y2OUZBMDExNzZEMDE0MDA0NzFBNTIgLyogV2Vi
TmF2aWdhdGlvbkRhdGEuaCAqLywKIAkJCQlCQzFERkVBMzEyQjMxRjg3MDA1REY3MzAgLyogV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgKi8sCiAJCQkJQkMxREZFQTIxMkIzMUY4
NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCAqLywKKwkJCQk3
NTU0MjJCRTE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAg
Ki8sCisJCQkJNzU1NDIyQkYxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHkuaCAqLywKKwkJCQk3NTU0MjJDMDE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQk3NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4
QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgKi8sCisJCQkJ
NzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFu
Z2VDbGllbnQuaCAqLywKIAkJCQk1MTUzNTY5QTEyOTFCMUQyMDAwNzQ5REMgLyogV2ViUGFnZUNv
bnRleHRNZW51Q2xpZW50LmNwcCAqLywKIAkJCQk1MTUzNTY5QjEyOTFCMUQyMDAwNzQ5REMgLyog
V2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8sCiAJCQkJQkM3QjYyMDUxMjlBMEE2NzAwRDE3
NEE0IC8qIFdlYlBhZ2VHcm91cC5jcHAgKi8sCkBAIC00MDMzLDYgKzQwNzYsOCBAQAogCQkJCUJD
ODU3RkU0MTJCODQzRDgwMEVERUIyRSAvKiBXS09wZW5QYW5lbFBhcmFtZXRlcnMuaCAqLywKIAkJ
CQlCQzFERkU4RTEyQjMxQ0E4MDA1REY3MzAgLyogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5j
cHAgKi8sCiAJCQkJQkMxREZFOEQxMkIzMUNBODAwNURGNzMwIC8qIFdLT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXIuaCAqLywKKwkJCQk3NTU0MjJCOTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5E
YXRhTWFuYWdlci5jcHAgKi8sCisJCQkJNzU1NDIyQkExODA2MkI5QzAwNDZGNkE4IC8qIFdLT3Jp
Z2luRGF0YU1hbmFnZXIuaCAqLywKIAkJCQlCQ0Q1OTdENDExMkI1NkRDMDBFQzhDMjMgLyogV0tQ
YWdlLmNwcCAqLywKIAkJCQlCQ0Q1OTdENTExMkI1NkRDMDBFQzhDMjMgLyogV0tQYWdlLmggKi8s
CiAJCQkJQkM3QjYzMzYxMkE0NUFCQTAwRDE3NEE0IC8qIFdLUGFnZUdyb3VwLmNwcCAqLywKQEAg
LTUxMTYsNiArNTE2MSw3IEBACiAJCQkJQkM2RURBQTYxMTEyNzFDNjAwRTc2NzhCIC8qIFBhZ2VD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTExQjUwMTEyRjYxOTIwMDMzN0JBQiAvKiBQ
YWdlQ2xpZW50SW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5MEMyMzcxMjY1MDcxNzAwM0U0
NEQ0IC8qIFBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTlDQ0Q1MzE4MDhEMDMw
MDA3OEU4QTggLyogT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QzU3NEE1ODExMkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTE5NTgyRDMxNTNDQkZENzAwQjYwODc1IC8qIFBERktpdEltcG9ydHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxRkNCMTg5MTdCQkZFMDMwMDM5NENEOCAvKiBTeW5jaHJvbm91c05l
dHdvcmtMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtNTQ4MCw2ICs1NTI2LDcgQEAK
IAkJCQlCQ0REQjMyQjEyNEVDMkFCMDA0OEQxM0MgLyogV0tTaGFyZWRBUElDYXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzQwNzYwNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tTdHJpbmcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNDA3NjFBMTI0RkYwMzcwMDY4RjIwQSAvKiBXS1N0cmluZ0NGLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk3NTlDQ0Q1OTE4MDhGMTY5MDA3OEU4QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5MDk5
ODAxMjU2QTk4MjAwMDgzNzU2IC8qIFdLU3RyaW5nUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzc3RUFENDgxN0UyQzc3QjAwMkQxOTNEIC8qIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTlBQTgxMkI3RTc5NjAwOEZFOTg0IC8qIFdLVGV4
dElucHV0V2luZG93Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC01NDkwLDExICs1NTM3
LDEzIEBACiAJCQkJQkM0MDc2MEMxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVxdWVzdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MjkxMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVxdWVz
dE5TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwRTEyNEZGMDI3MDA2OEYyMEEgLyogV0tV
UkxSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU5Q0NENUExODA4RjYxNjAwNzhFOEE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3
NjJCMTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNlTlMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUY2MTEzRTI5MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4Njk5QjUxMTZBQURBQTAwMkE5MjVCIC8qIFdLVmlldy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4Njk5QjcxMTZBQURBQTAwMkE5MjVCIC8qIFdLVmlld0lu
dGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRkE2MTc5RjEyRjBCOTlEMDAzM0UwQ0EgLyog
V0tWaWV3UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU1NDIyQ0MxODA3NzNDRTAwNDZG
NkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUUxQUZF
OTE2QjIwQjc1MDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZlLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
NUUxQUZFQjE2QjIwQjdFMDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZlUmVzb3VyY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDOTg5RDgyMTYxQTdFNUQwMDBENDZEMyAvKiBXS1dlYlByb2Nlc3NQbHVn
SW4uaCBpbiBIZWFkZXJzICovLApAQCAtNTgyOSw2ICs1ODc4LDcgQEAKIAkJCWZpbGVzID0gKAog
CQkJCUUxRDI2QTUxMTc1OTY0RDcwMDk1QkZEMSAvKiBXZWJDb250ZW50UHJvY2Vzcy54aWIgaW4g
UmVzb3VyY2VzICovLAogCQkJCUUxMzNGRDhBMTQyM0REN0YwMEZDN0JGQiAvKiBXZWJLaXQuaWNu
cyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJNzU1NDIyQ0ExODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTYxOTgsNiAr
NjI0OCw3IEBACiAJCQkJRTFFRTUzRTcxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxl
UGFnZUVkaXRvckNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzE0RTEwOTEyMEI5MDVF
MDA4MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDRDVDNjZBMDEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTU0MjJDQjE4MDY1MDAyMDA0
NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNB
OEM2QTgxMUUzQkE1RjAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzgxNDdBQTEyRjY0Q0RBMDA3QjJDMzIgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlUG9saWN5Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1OUM1NTFF
MTMwMDA2NDEwMDI1QzBDMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC02MzA5LDYgKzYzNjAsNyBAQAogCQkJCTFBMDQzQjVEMTI0
RDVFOUQwMEZGQkZCNSAvKiBQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUEwNDNEQzIxMjRGRjg3NTAwRkZCRkI1IC8qIFBsdWdpblByb3h5
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkQ5MjIxMTI4MURDMUIwMDFFQjk2MiAvKiBQbHVn
aW5Qcm94eU1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTc1NTQyMkM0MTgwNjJCRjkwMDQ2RjZB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
OEVGQTcwMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3Q0Q2MjI3NzE3MzlEODYzMDA1QkQ3RkYgLyogUGx1Z2luU2Fu
ZGJveFByb2ZpbGUubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzgyODQ0RDE2QjUwODFDMDBBMjc4
RkUgLyogUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKQEAgLTY0Mjgs
NiArNjQ4MCw3IEBACiAJCQkJQkNCOUY2QTExMTIzQTg0QjAwQTEzN0UwIC8qIFdlYkZyYW1lUG9s
aWN5TGlzdGVuZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzExMUIwRTExMkY1RTRG
MDAzMzdCQUIgLyogV2ViRnJhbWVQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDczQkE1
MzEzMUI2NDVCMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNzU1NDIyQkQxODA2MkJCMjAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8qIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
NkY3NUY0MTMxQjY2RDAwMEQ2QjIxRSAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUNEQ0E4NUVFMTMyQUQ3MDEwMEU5NjFERiAvKiBXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC02NTcwLDYgKzY2MjMsNyBA
QAogCQkJCTlGQjVGMzk0MTY5RTZBODAwMDJDMjVCRiAvKiBXS0NvbnRleHRQcml2YXRlTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzMwOTM0NUExMzE1Qjk5ODAwOTdBN0JDIC8qIFdLQ29va2ll
TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTJGNThGOTEyQTg4QTU0MDA2Mjk1MzAg
LyogV0tDcmVkZW50aWFsLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1OUNDRDU4MTgwOEYxNjQw
MDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDNDA3NUY3MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0RhdGEuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRjYyQTc2NjExMkIxQUJFRDAwMDVGMUI2IC8qIFdLRGF0YWJhc2VN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NUY5MTI0RkYwMjcwMDY4RjIwQSAv
KiBXS0RpY3Rpb25hcnkuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTI0ZTliCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRh
dGFNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyLmgiCisKKyNpbmNs
dWRlICJDaGlsZFByb2Nlc3MuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRh
TWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+CisKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Nv
bnN0IGNoYXIqIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAg
cmV0dXJuICJXZWJPcmlnaW5EYXRhTWFuYWdlciI7Cit9CisKK1dlYk9yaWdpbkRhdGFNYW5hZ2Vy
OjpXZWJPcmlnaW5EYXRhTWFuYWdlcihDaGlsZFByb2Nlc3MqIGNoaWxkUHJvY2VzcykKKyAgICA6
IG1fY2hpbGRQcm9jZXNzKGNoaWxkUHJvY2VzcykKK3sKKyAgICBtX2NoaWxkUHJvY2Vzcy0+YWRk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCB0aGlzKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6Z2V0
T3JpZ2lucyhXS09yaWdpbkRhdGFNYXNrIG1hc2ssIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7Cisg
ICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiBvcmlnaW5zOworCisgICAgLy8gRklY
TUU6IHBvcHVsYXRlIG9yaWdpbnMKKworICAgIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGlk
ZW50aWZpZXJzOworICAgIGlkZW50aWZpZXJzLnJlc2VydmVDYXBhY2l0eShvcmlnaW5zLnNpemUo
KSk7CisKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+OjppdGVyYXRvciBlbmQg
PSBvcmlnaW5zLmVuZCgpOworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj46Oml0
ZXJhdG9yIGkgPSBvcmlnaW5zLmJlZ2luKCk7CisgICAgZm9yICg7IGkgIT0gZW5kOyArK2kpIHsK
KyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSAqaTsKKworICAgICAgICBT
ZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luRGF0YTsKKyAgICAgICAgb3JpZ2luRGF0YS5wcm90b2Nv
bCA9IG9yaWdpbi0+cHJvdG9jb2woKTsKKyAgICAgICAgb3JpZ2luRGF0YS5ob3N0ID0gb3JpZ2lu
LT5ob3N0KCk7CisgICAgICAgIG9yaWdpbkRhdGEucG9ydCA9IG9yaWdpbi0+cG9ydCgpOworCisg
ICAgICAgIGlkZW50aWZpZXJzLnVuY2hlY2tlZEFwcGVuZChvcmlnaW5EYXRhKTsKKyAgICB9CisK
KyAgICBtX2NoaWxkUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eTo6RGlkR2V0T3JpZ2lucyhpZGVudGlmaWVycywgY2FsbGJhY2tJRCksIDApOworfQorCit2
b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2lu
RGF0YU1hc2sgbWFzaywgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW5EYXRhKQorewor
ICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZShvcmlnaW5EYXRhLnByb3RvY29sLCBvcmlnaW5EYXRhLmhvc3QsIG9yaWdpbkRhdGEucG9ydCk7
CisgICAgaWYgKCFvcmlnaW4pCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBkZWxl
dGUgY2FjaGUKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlQWxsRW50cmll
cyhXS09yaWdpbkRhdGFNYXNrIG1hc2spCit7CisgICAgLy8gRklYTUU6IGRlbGV0ZSBlbnRyaWVz
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjM2ZGUzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2Vy
LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViT3JpZ2lu
RGF0YU1hbmFnZXJfaAorI2RlZmluZSBXZWJPcmlnaW5EYXRhTWFuYWdlcl9oCisKKyNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXS09yaWdpbkRhdGFNYW5hZ2VyLmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIENoaWxkUHJvY2VzczsKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CisK
K2NsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50
LCBwdWJsaWMgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShXZWJPcmlnaW5EYXRhTWFuYWdlcik7CitwdWJsaWM6CisgICAgV2ViT3JpZ2luRGF0YU1h
bmFnZXIoQ2hpbGRQcm9jZXNzKik7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVu
dE5hbWUoKTsKKworICAgIHZvaWQgZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFNYXNrKTsK
KworcHJpdmF0ZToKKyAgICB2b2lkIGdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFzaywgdWludDY0
X3QpOworICAgIHZvaWQgZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFNYXNrLCBj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKTsKKworICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKworICAgIENoaWxkUHJv
Y2VzcyogbV9jaGlsZFByb2Nlc3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIFdlYk9yaWdpbkRhdGFNYW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdl
ci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGU2NDJm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRh
L1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViT3JpZ2lu
RGF0YU1hbmFnZXIgeworICAgIHZvaWQgR2V0T3JpZ2lucyh1aW50MzJfdCBtYXNrLCB1aW50NjRf
dCBjYWxsYmFja0lEKQorICAgIHZvaWQgRGVsZXRlRW50cmllc0Zvck9yaWdpbih1aW50MzJfdCBt
YXNrLCBXZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5JZGVudGlmaWVyKQorICAgIHZv
aWQgRGVsZXRlQWxsRW50cmllcyh1aW50MzJfdCBtYXNrKQorICAgIHZvaWQgU2V0QWNjZXB0UG9s
aWN5KHVpbnQzMl90IG1hc2ssIHVpbnQzMl90IHBvbGljeSkKKyAgICB2b2lkIEdldEFjY2VwdFBv
bGljeSh1aW50MzJfdCBtYXNrLCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIHZvaWQgU3RhcnRP
YnNlcnZpbmdDaGFuZ2VzKHVpbnQzMl90IG1hc2spCisgICAgdm9pZCBTdG9wT2JzZXJ2aW5nQ2hh
bmdlcyh1aW50MzJfdCBtYXNrKQorfQo=
</data>
<flag name="commit-queue"
          id="236731"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214223</attachid>
            <date>2013-10-14 20:18:08 -0700</date>
            <delta_ts>2013-10-15 11:53:17 -0700</delta_ts>
            <desc>build fix + enum change</desc>
            <filename>122781c.diff</filename>
            <type>text/plain</type>
            <size>64598</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggN2M3YzQxZC4uNjk1OGQ4MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTQ2LDYgKzQ2LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0xhdW5jaGluZyIKICAgICAiJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvT3JpZ2lu
RGF0YSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dF
QktJVDJfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKQEAgLTMwNyw2ICszMDgsOCBAQCBzZXQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNw
cAogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vz
cy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1l
bnVDbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAKICAgICBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzU0LDYgKzM1Nyw3IEBAIHNldChXZWJLaXQyX1NPVVJD
RVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5j
cHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcAorICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAKQEAgLTQ2MSw2ICs0NjUsOCBAQCBz
ZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKICAgICBXZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvT3JpZ2lu
RGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKKwogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW4uY3BwCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
LmNwcAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuY3BwCkBAIC01ODYsNiArNTkyLDggQEAgc2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMK
IAogICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1l
c3NhZ2VzLmluCiAKKyAgICBXZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFn
ZXIubWVzc2FnZXMuaW4KKwogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmZGU0MDFkLi42MzIxZmIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMTMtMTAtMTQgIE1hcnRpbiBIb2NrICA8bWhvY2tA
YXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIHN0b3JlZCB3ZWJzaXRlIGRhdGEgQVBJcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyNzgxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyIGFsb25nIHdpdGggY29ycmVzcG9uZGluZyBjbGFzcworICAgICAgICBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5IGFuZCBBUEkgV0tPcmlnaW5EYXRhTWFuYWdlci4KKwor
ICAgICAgICBDdXJyZW50bHksIHRoZSBuZXcgZmlsZXMgYXJlIHVudXNlZC4KKworICAgICAgICBX
S09yaWdpbkRhdGFNYW5hZ2VyIHNob3VsZCBzdWJzdW1lIHRoZSBmdW5jdGlvbmFsaXR5IG9mOgor
ICAgICAgICBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLCBXS0Nvb2tpZU1hbmFnZXIsIFdLRGF0
YWJhc2VNYW5hZ2VyLAorICAgICAgICBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIsIFdLTWVkaWFD
YWNoZU1hbmFnZXIsCisgICAgICAgIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLCBhbmQgV0tSZXNv
dXJjZUNhY2hlTWFuYWdlci4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAg
ICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU2hhcmVkL0FQSU9iamVj
dC5oOgorICAgICAgICAqIFNoYXJlZC9PcmlnaW5EYXRhQWNjZXB0UG9saWN5Lmg6IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAgICAgICAgKFdLQ29udGV4dEdldE9yaWdpbkRhdGFN
YW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRUeXBlSUQpOgorICAgICAgICAoV0tPcmlnaW5EYXRh
TWFuYWdlckdldE9yaWdpbnMpOgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFuYWdlckRlbGV0ZUVu
dHJpZXNGb3JPcmlnaW4pOgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFuYWdlckRlbGV0ZUFsbEVu
dHJpZXMpOgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFuYWdlclNldEFjY2VwdFBvbGljeSk6Cisg
ICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyR2V0QWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdL
T3JpZ2luRGF0YU1hbmFnZXJTdGFydE9ic2VydmluZ0NoYW5nZXMpOgorICAgICAgICAoV0tPcmln
aW5EYXRhTWFuYWdlclN0b3BPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0
YU1hbmFnZXJTZXRDaGFuZ2VDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS09y
aWdpbkRhdGFNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eTo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6On5XZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6Y29udGV4
dERlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6
OnByb2Nlc3NEaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk6OnNob3VsZFRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHk6OnJlZldlYkNvbnRleHRTdXBwbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmdldE9yaWdpbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkaWRHZXRPcmlnaW5E
YXRhT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6
OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5OjpkZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eTo6c2V0QWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6Z2V0QWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdl
YktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c3RvcE9ic2Vydmlu
Z0NoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpz
ZXRDaGFuZ2VDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50OjpkaWRDaGFuZ2UpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50Lmg6
IEFkZGVkLgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN1cHBsZW1lbnRO
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OmdldE9y
aWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlRW50
cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpk
ZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3Jp
Z2luRGF0YU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRh
L1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKwogMjAxMy0xMC0xNCAg
Q3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtXSzJdW0Vm
bF1bU291cF0gTWFrZSBOZXR3b3JrUHJvY2Vzc01haW5Vbml4IGhhbmRsZSBwcm94eSBzZXR0aW5n
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDU1NTE3NGIuLmYxZmEwNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNl
L1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzksNiArMzksNyBAQCBWUEFUSCA9IFwK
ICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTWVkaWFDYWNoZSBcCiAgICAgJChXZWJLaXQyKS9X
ZWJQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zIFwKKyAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvT3JpZ2luRGF0YSBcCiAgICAgJChXZWJL
aXQyKS9XZWJQcm9jZXNzL1BsdWdpbnMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNv
dXJjZUNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFnZSBcCkBAIC05OSw2
ICsxMDAsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBXZWJNZWRpYUNhY2hlTWFuYWdl
ciBcCiAgICAgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSBcCiAgICAgV2ViTm90aWZpY2F0aW9u
TWFuYWdlciBcCisgICAgV2ViT3JpZ2luRGF0YU1hbmFnZXIgXAorICAgIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHkgXAogICAgIFdlYlBhZ2UgXAogICAgIFdlYlBhZ2VHcm91cFByb3h5IFwKICAg
ICBXZWJQYWdlUHJveHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUu
YW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQppbmRleCBiODI1YmMzLi43ZDBiMWM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQpAQCAtMTU1LDYgKzE1NSw3IEBAIGxpYndlYmtpdDJndGtf
QFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lP
TkBfbGFfQ1BQCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNh
Y2hlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZv
IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMg
XAorICAgICAgICAtSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRh
dGEgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKIAkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAgXApAQCAtMzgzLDYgKzM4
NCw3IEBAIHZwYXRoICUubWVzc2FnZXMuaW4gPSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL05l
dHdvcmsgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyBcCiAJJChXZWJLaXQy
KS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAorICAgICAgICAkKFdlYktpdDIpL1dlYlByb2Nl
c3MvT3JpZ2luRGF0YSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL1BsdWdpbnMgXAogCSQoV2Vi
S2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
U3RvcmFnZSBcCkBAIC03NDYsNiArNzQ4LDcgQEAgRVhUUkFfRElTVCArPSBcCiAJJChzaGVsbCBs
cyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTmV0d29yay8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdl
YktpdDIpL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vKi5pbikgXAogCSQoc2hlbGwgbHMgJChXZWJL
aXQyKS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvKi5pbikgXAorICAgICAgICAkKHNoZWxsIGxz
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhLyouaW4pIFwKIAkkKHNoZWxsIGxzICQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0
MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0
MikvV2ViUHJvY2Vzcy9TdG9yYWdlLyouaW4pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFt
CmluZGV4IDFlMzIwYzkuLmNlNjMwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtODMsNiArODMsNyBAQCB3ZWJraXQyX2hfYXBpICs9IFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vz
cy9BUEkvQy9XS05vdGlmaWNhdGlvblByb3ZpZGVyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNz
L0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9B
UEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggXAorCSQoV2ViS2l0MikvVUlQcm9jZXNz
L0FQSS9DL1dLT3JpZ2luRGF0YS5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VHcm91cC5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBcCiAJJChX
ZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIFwKQEAgLTIyMyw2ICsyMjQs
MTAgQEAgd2Via2l0Ml9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQy
L1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNz
YWdlcy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
UGFnZUdyb3VwUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYlBhZ2VHcm91cFByb3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJQYWdlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTY0Myw2ICs2NDgsOCBAQCB3
ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09w
ZW5QYW5lbFBhcmFtZXRlcnMuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlR3JvdXAuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlR3JvdXAuaCBcCkBAIC05ODIsNiArOTg5LDEwIEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvUHJvdmlkZXIuaCBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3Bw
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQ
cm94eS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Q2xpZW50LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHlDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VDb250ZXh0TWVudUNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlQ29udGV4dE1lbnVDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VHcm91cC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
QmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDY5OTRj
YmQuLjE5N2FkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jh
c2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTExOSw2
ICsxMTksNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KiBXS05vdGlmaWNhdGlvblBlcm1pcwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tOb3RpZmljYXRpb25Qcm92aWRlciogV0tOb3RpZmljYXRpb25Qcm92aWRlclJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLT3BlblBhbmVsUGFyYW1ldGVycyogV0tPcGVu
UGFuZWxQYXJhbWV0ZXJzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lciogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZjsKK3R5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLT3JpZ2luRGF0YU1hbmFnZXIqIFdLT3JpZ2luRGF0YU1hbmFn
ZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFnZVJlZjsKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFnZUdyb3VwKiBXS1BhZ2VHcm91cFJlZjsKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKiBXS1BsdWdp
blNpdGVEYXRhTWFuYWdlclJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRleCA0NDFl
MDVlLi43MDMyMWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC0xMDMsNiArMTAz
LDcgQEAgcHVibGljOgogICAgICAgICBUeXBlTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qs
CiAgICAgICAgIFR5cGVPcGVuUGFuZWxQYXJhbWV0ZXJzLAogICAgICAgICBUeXBlT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIsCisgICAgICAgIFR5cGVPcmlnaW5EYXRhTWFuYWdlciwKICAgICAgICAg
VHlwZVBhZ2UsCiAgICAgICAgIFR5cGVQYWdlR3JvdXAsCiAgICAgICAgIFR5cGVQbHVnaW5TaXRl
RGF0YU1hbmFnZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvT3JpZ2luRGF0
YUFjY2VwdFBvbGljeS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL09yaWdpbkRhdGFBY2NlcHRQ
b2xpY3kuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjJiODczCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL09yaWdpbkRhdGFBY2NlcHRQb2xp
Y3kuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBPcmlnaW5EYXRhQWNjZXB0UG9saWN5X2gKKyNkZWZpbmUgT3Jp
Z2luRGF0YUFjY2VwdFBvbGljeV9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIHsKKyAg
ICBPcmlnaW5EYXRhQWNjZXB0UG9saWN5QWx3YXlzID0gMCwKKyAgICBPcmlnaW5EYXRhQWNjZXB0
UG9saWN5TmV2ZXIgPSAxLAorICAgIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5E
b2N1bWVudERvbWFpbiA9IDIsCit9OwordHlwZWRlZiB1bnNpZ25lZCBPcmlnaW5EYXRhQWNjZXB0
UG9saWN5OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIE9yaWdpbkRhdGFB
Y2NlcHRQb2xpY3lfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5o
CmluZGV4IDY0YzhkMWEuLjJkOTc2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJGb250U21vb3RoaW5n
TGV2ZWwuaCIKICNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAi
SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlLmgiCisjaW5jbHVkZSAiT3JpZ2lu
RGF0YUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIlBsdWdpbk1vZHVsZUluZm8uaCIKICNpbmNs
dWRlICJQcm9jZXNzTW9kZWwuaCIKICNpbmNsdWRlICJSZXNvdXJjZUNhY2hlc1RvQ2xlYXIuaCIK
QEAgLTg3LDYgKzg4LDcgQEAgY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI7CiBjbGFzcyBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJz
OwogY2xhc3MgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eTsKK2NsYXNzIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQYWdlUHJv
eHk7CiBjbGFzcyBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI7CkBAIC0xMzMsNiArMTM1LDcgQEAg
V0tfQUREX0FQSV9NQVBQSU5HKFdLTm90aWZpY2F0aW9uUHJvdmlkZXJSZWYsIFdlYk5vdGlmaWNh
dGlvblByb3ZpZGVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTm90aWZpY2F0aW9uUmVmLCBXZWJO
b3RpZmljYXRpb24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVm
LCBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJSZWYsIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkpCitXS19B
RERfQVBJX01BUFBJTkcoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiwgV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1BhZ2VHcm91cFJlZiwgV2ViUGFnZUdyb3Vw
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUGFnZVJlZiwgV2ViUGFnZVByb3h5KQogV0tfQUREX0FQ
SV9NQVBQSU5HKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmLCBXZWJQbHVnaW5TaXRlRGF0YU1h
bmFnZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmlu
ZGV4IGE0N2U0OWYuLmZiZmJjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiV2ViS2V5VmFsdWVT
dG9yYWdlTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaCIK
ICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eS5oIgogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAjaW5jbHVkZSAiV2ViRGF0YWJh
c2VNYW5hZ2VyUHJveHkuaCIKQEAgLTI3NCw2ICsyNzUsMTEgQEAgV0tSZXNvdXJjZUNhY2hlTWFu
YWdlclJlZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29u
dGV4dFIKICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5zdXBwbGVtZW50PFdl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk+KCkpOwogfQogCitXS09yaWdpbkRhdGFNYW5hZ2Vy
UmVmIFdLQ29udGV4dEdldE9yaWdpbkRhdGFNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVm
KQoreworICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPnN1cHBsZW1lbnQ8V2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eT4oKSk7Cit9CisKIHZvaWQgV0tDb250ZXh0U3RhcnRNZW1v
cnlTYW1wbGVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS0RvdWJsZVJlZiBpbnRlcnZhbCkK
IHsKICAgICB0b0ltcGwoY29udGV4dFJlZiktPnN0YXJ0TWVtb3J5U2FtcGxlcih0b0ltcGwoaW50
ZXJ2YWwpLT52YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuaAppbmRleCAzY2U3MzFlLi5lZmQ2NzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5oCkBAIC0xOTUsNyArMTk1LDggQEAgV0tfRVhQT1JUIFdLTmV0d29y
a0luZm9NYW5hZ2VyUmVmIFdLQ29udGV4dEdldE5ldHdvcmtJbmZvTWFuYWdlcihXS0NvbnRleHRS
ZWYgY28KIFdLX0VYUE9SVCBXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0Tm90
aWZpY2F0aW9uTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tQbHVn
aW5TaXRlRGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdL
Q29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVm
IFdLQ29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsK
LSAgICAKK1dLX0VYUE9SVCBXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIFdLQ29udGV4dEdldE9yaWdp
bkRhdGFNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKKwogdHlwZWRlZiB2b2lkICgqV0tD
b250ZXh0R2V0U3RhdGlzdGljc0Z1bmN0aW9uKShXS0RpY3Rpb25hcnlSZWYgc3RhdGlzdGljcywg
V0tFcnJvclJlZiBlcnJvciwgdm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VYUE9SVCB2b2lk
IFdLQ29udGV4dEdldFN0YXRpc3RpY3MoV0tDb250ZXh0UmVmIGNvbnRleHQsIHZvaWQqIGZ1bmN0
aW9uQ29udGV4dCwgV0tDb250ZXh0R2V0U3RhdGlzdGljc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKIFdL
X0VYUE9SVCB2b2lkIFdLQ29udGV4dEdldFN0YXRpc3RpY3NXaXRoT3B0aW9ucyhXS0NvbnRleHRS
ZWYgY29udGV4dCwgV0tTdGF0aXN0aWNzT3B0aW9ucyBzdGF0aXN0aWNzTWFzaywgdm9pZCogZnVu
Y3Rpb25Db250ZXh0LCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24gZnVuY3Rpb24pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1h
bmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwYjI0ZDkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5E
YXRhTWFuYWdlci5jcHAKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXS09yaWdpbkRhdGFNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJX
S0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmgiCisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRU
eXBlSUQoKQoreworICAgIHJldHVybiB0b0FQSShXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpB
UElUeXBlKTsKK30KKwordm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2lucyhXS09yaWdp
bkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFNYXNrIG1h
c2ssIHZvaWQqIGNvbnRleHQsIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zRnVuY3Rpb24g
Y2FsbGJhY2spCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+Z2V0T3JpZ2lu
cyhtYXNrLCBBcnJheUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsKK30KKwor
dm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRh
dGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFNYXNrIG1hc2ss
IFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luUmVmKQoreworICAgIHRvSW1wbChvcmlnaW5EYXRh
TWFuYWdlclJlZiktPmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4obWFzaywgdG9JbXBsKG9yaWdpblJl
ZikpOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKFdLT3Jp
Z2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YU1hc2sg
bWFzaykKK3sKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5kZWxldGVBbGxFbnRy
aWVzKG1hc2spOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTZXRBY2NlcHRQb2xpY3ko
V0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRh
TWFzayBtYXNrLCBXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3kgcG9saWN5KQoreworICAgIHRvSW1w
bChvcmlnaW5EYXRhTWFuYWdlclJlZiktPnNldEFjY2VwdFBvbGljeShtYXNrLCBwb2xpY3kpOwor
fQordm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0QWNjZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1h
bmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgdm9p
ZCogY29udGV4dCwgV0tPcmlnaW5EYXRhTWFuYWdlckdldEFjY2VwdFBvbGljeUZ1bmN0aW9uIGNh
bGxiYWNrKQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPmdldEFjY2VwdFBv
bGljeShtYXNrLCBPcmlnaW5EYXRhQWNjZXB0UG9saWN5Q2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0
LCBjYWxsYmFjaykpOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTdGFydE9ic2Vydmlu
Z0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlclJlZiwgV0tP
cmlnaW5EYXRhTWFzayBtYXNrKQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZikt
PnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhtYXNrKTsKK30KKwordm9pZCBXS09yaWdpbkRhdGFNYW5h
Z2VyU3RvcE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRh
TWFuYWdlclJlZiwgV0tPcmlnaW5EYXRhTWFzayBtYXNrKQoreworICAgIHRvSW1wbChvcmlnaW5E
YXRhTWFuYWdlclJlZiktPnN0b3BPYnNlcnZpbmdDaGFuZ2VzKG1hc2spOworfQorCit2b2lkIFdL
T3JpZ2luRGF0YU1hbmFnZXJTZXRDaGFuZ2VDbGllbnQoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBv
cmlnaW5EYXRhTWFuYWdlclJlZiwgY29uc3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVu
dCAqY2xpZW50KQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPnNldENoYW5n
ZUNsaWVudChjbGllbnQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uODcwMTA4ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV0tPcmlnaW5EYXRhTWFuYWdlcl9oCisjZGVmaW5lIFdLT3JpZ2luRGF0YU1h
bmFnZXJfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNw
bHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBrV0tPcmlnaW5EYXRhTWFz
a0FwcGxpY2F0aW9uQ2FjaGUgPSAxIDw8IDAsCisgICAga1dLT3JpZ2luRGF0YU1hc2tDb29raWUg
PSAxIDw8IDEsCisgICAga1dLT3JpZ2luRGF0YU1hc2tEYXRhYmFzZSA9IDEgPDwgMiwKKyAgICBr
V0tPcmlnaW5EYXRhTWFza0tleVZhbHVlU3RvcmFnZSA9IDEgPDwgMywKKyAgICBrV0tPcmlnaW5E
YXRhTWFza01lZGlhQ2FjaGUgPSAxIDw8IDQsCisgICAga1dLT3JpZ2luRGF0YU1hc2tQbHVnaW5E
YXRhID0gMSA8PCA1LAorICAgIGtXS09yaWdpbkRhdGFNYXNrUmVzb3VyY2VDYWNoZSA9IDEgPDwg
NiwKKworICAgIGtXS09yaWdpbkRhdGFNYXNrQWxsID0gKDEgPDwgNykgLSAxCit9OwordHlwZWRl
ZiB1aW50MzJfdCBXS09yaWdpbkRhdGFNYXNrOworCitlbnVtIHsKKyAgICBrV0tPcmlnaW5EYXRh
QWNjZXB0UG9saWN5QWx3YXlzID0gMCwKKyAgICBrV0tPcmlnaW5EYXRhQWNjZXB0UG9saWN5TmV2
ZXIgPSAxLAorICAgIGtXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbiA9IDIKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLT3JpZ2luRGF0YUFjY2VwdFBvbGlj
eTsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRUeXBlSUQoKTsK
KwordHlwZWRlZiB2b2lkICgqV0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnNGdW5jdGlvbiko
V0tBcnJheVJlZiwgV0tFcnJvclJlZiwgdm9pZCopOworV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5E
YXRhTWFuYWdlckdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFu
YWdlciwgV0tPcmlnaW5EYXRhTWFzayBtYXNrLCB2b2lkKiBjb250ZXh0LCBXS09yaWdpbkRhdGFN
YW5hZ2VyR2V0T3JpZ2luc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKKworV0tfRVhQT1JUIHZvaWQgV0tP
cmlnaW5EYXRhTWFuYWdlckRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFuYWdl
clJlZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhTWFzayBtYXNrLCBXS1NlY3VyaXR5
T3JpZ2luUmVmIG9yaWdpbik7CitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyRGVs
ZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBX
S09yaWdpbkRhdGFNYXNrIG1hc2spOworCisvLyBPcmlnaW5EYXRhTWFuYWdlciBDbGllbnQKK3R5
cGVkZWYgdm9pZCAoKldLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDYWxsYmFjaykoV0tPcmlnaW5E
YXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7
CitzdHJ1Y3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCB7CisgICAgaW50ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkICogICAg
ICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworICAgIFdLT3JpZ2luRGF0YU1hbmFnZXJD
aGFuZ2VDYWxsYmFjayAgIGRpZENoYW5nZTsKK307Cit0eXBlZGVmIHN0cnVjdCBXS09yaWdpbkRh
dGFNYW5hZ2VyQ2hhbmdlQ2xpZW50IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQ7CisK
K2VudW0geyBrV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudFZlcnNpb24gPSAwIH07CisK
Ky8vIEN1cnJlbnRseSwgb25seSBtYXNrID09IFdLT3JpZ2luRGF0YU1hbmFnZXJDb29raWUgaXMg
c3VwcG9ydGVkIGZvciB0aGUgZm9sbG93aW5nLgorV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRh
TWFuYWdlclNldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFN
YW5hZ2VyLCBXS09yaWdpbkRhdGFNYXNrIG1hc2ssIFdLT3JpZ2luRGF0YUFjY2VwdFBvbGljeSBw
b2xpY3kpOwordHlwZWRlZiB2b2lkICgqV0tPcmlnaW5EYXRhTWFuYWdlckdldEFjY2VwdFBvbGlj
eUZ1bmN0aW9uKShXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqKTsK
K1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRBY2NlcHRQb2xpY3koV0tPcmln
aW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhTWFzayBtYXNr
LCB2b2lkKiBjb250ZXh0LCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0QWNjZXB0UG9saWN5RnVuY3Rp
b24gY2FsbGJhY2spOworCitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3RhcnRP
YnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIs
IFdLT3JpZ2luRGF0YU1hc2sgbWFzayk7CitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5h
Z2VyU3RvcE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRh
TWFuYWdlciwgV0tPcmlnaW5EYXRhTWFzayBtYXNrKTsKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2lu
RGF0YU1hbmFnZXJTZXRDaGFuZ2VDbGllbnQoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5E
YXRhTWFuZ2VyLCBjb25zdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50KiBjbGllbnQp
OworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8vIFdLT3JpZ2luRGF0
YU1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjdmZTMyZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSwxNjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5oIgorCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCisjaW5jbHVkZSAi
V2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJTZWN1cml0eU9yaWdpbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY29uc3QgY2hh
ciogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJl
dHVybiAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSI7Cit9CisKK1Bhc3NSZWZQdHI8V2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eT4gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6Y3JlYXRlKFdl
YkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5KGNvbnRleHQpKTsKK30KKworV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eTo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eShXZWJDb250ZXh0KiBjb250ZXh0KQorOiBXZWJD
b250ZXh0U3VwcGxlbWVudChjb250ZXh0KQoreworICAgIGNvbnRleHQtPmFkZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCB0aGlzKTsKK30KKworV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6fldlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkoKQoreworfQorCisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eTo6Y29udGV4dERlc3Ryb3llZCgpCit7CisgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1f
YXJyYXlDYWxsYmFja3MpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnBy
b2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkqKQoreworICAgIGludmFsaWRhdGVDYWxsYmFj
a01hcChtX2FycmF5Q2FsbGJhY2tzKTsKK30KKworYm9vbCBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5OjpzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9hcnJheUNhbGxiYWNrcy5pc0VtcHR5KCk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eTo6cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQoreworICAgIEFQSU9iamVjdDo6
cmVmKCk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVyZWZXZWJDb250
ZXh0U3VwcGxlbWVudCgpCit7CisgICAgQVBJT2JqZWN0OjpkZXJlZigpOworfQorCit2b2lkIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFzayBtYXNr
LCBQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+IHBycENhbGxiYWNrKQoreworICAgIGlmICghY29u
dGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2Fs
bGJhY2sgPSBwcnBDYWxsYmFjazsKKworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFj
ay0+Y2FsbGJhY2tJRCgpOworICAgIG1fYXJyYXlDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNh
bGxiYWNrLnJlbGVhc2UoKSk7CisKKyAgICAvLyBGSVhNRSAoTXVsdGktV2ViUHJvY2Vzcyk6IDxy
ZGFyOi8vcHJvYmxlbS8xMjIzOTc2NT4gTWFrZSBtYW5pcHVsYXRpbmcgY2FjaGUgaW5mb3JtYXRp
b24gd29yayB3aXRoIHBlci10YWIgV2ViUHJvY2Vzcy4KKyAgICBjb250ZXh0KCktPnNlbmRUb0Fs
bFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5E
YXRhTWFuYWdlcjo6R2V0T3JpZ2lucyhtYXNrLCBjYWxsYmFja0lEKSk7Cit9CisKK3ZvaWQgV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2luRGF0YU9yaWdpbnMoY29uc3QgVmVj
dG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbkRhdGFzLCB1aW50NjRfdCBjYWxsYmFja0lE
KQoreworICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IG1fYXJyYXlDYWxsYmFj
a3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBwZXJmb3JtQVBJQ2FsbGJhY2tXaXRoU2VjdXJpdHlP
cmlnaW5EYXRhVmVjdG9yKG9yaWdpbkRhdGFzLCBjYWxsYmFjay5nZXQoKSk7Cit9CisKK3ZvaWQg
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdp
bkRhdGFNYXNrIG1hc2ssIFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit7CisgICAgaWYgKCFj
b250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1
cml0eU9yaWdpbkRhdGE7CisgICAgc2VjdXJpdHlPcmlnaW5EYXRhLnByb3RvY29sID0gb3JpZ2lu
LT5wcm90b2NvbCgpOworICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5ob3N0ID0gb3JpZ2luLT5ob3N0
KCk7CisgICAgc2VjdXJpdHlPcmlnaW5EYXRhLnBvcnQgPSBvcmlnaW4tPnBvcnQoKTsKKworICAg
IC8vIEZJWE1FIChNdWx0aS1XZWJQcm9jZXNzKTogPHJkYXI6Ly9wcm9ibGVtLzEyMjM5NzY1PiBN
YWtlIG1hbmlwdWxhdGluZyBjYWNoZSBpbmZvcm1hdGlvbiB3b3JrIHdpdGggcGVyLXRhYiBXZWJQ
cm9jZXNzLgorICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVt
SWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpEZWxldGVFbnRyaWVz
Rm9yT3JpZ2luKG1hc2ssIHNlY3VyaXR5T3JpZ2luRGF0YSkpOworfQorCit2b2lkIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhTWFzayBtYXNr
KQoreworICAgIGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhN
RSAoTXVsdGktV2ViUHJvY2Vzcyk6IDxyZGFyOi8vcHJvYmxlbS8xMjIzOTc2NT4gTWFrZSBtYW5p
cHVsYXRpbmcgY2FjaGUgaW5mb3JtYXRpb24gd29yayB3aXRoIHBlci10YWIgV2ViUHJvY2Vzcy4K
KyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNz
YXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6RGVsZXRlQWxsRW50cmllcyhtYXNr
KSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c2V0QWNjZXB0UG9saWN5
KFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgV0tPcmlnaW5EYXRhQWNjZXB0UG9saWN5IHBvbGljeSkK
K3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29udGV4dCgp
LT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6
V2ViT3JpZ2luRGF0YU1hbmFnZXI6OlNldEFjY2VwdFBvbGljeShtYXNrLCBwb2xpY3kpKTsKK30K
Kwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpnZXRBY2NlcHRQb2xpY3koV0tPcmln
aW5EYXRhTWFzayBtYXNrLCBQYXNzUmVmUHRyPE9yaWdpbkRhdGFBY2NlcHRQb2xpY3lDYWxsYmFj
az4gcHJwQ2FsbGJhY2spCit7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIFJlZlB0cjxPcmlnaW5EYXRhQWNjZXB0UG9saWN5Q2FsbGJhY2s+IGNhbGxiYWNrID0g
cHJwQ2FsbGJhY2s7CisKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxi
YWNrSUQoKTsKKyAgICBtX2FjY2VwdFBvbGljeUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2Fs
bGJhY2sucmVsZWFzZSgpKTsKKworICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVs
YXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpH
ZXRBY2NlcHRQb2xpY3kobWFzaywgY2FsbGJhY2tJRCkpOworfQorCit2b2lkIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYXNrIG1h
c2spCit7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRl
eHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2Fn
ZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpTdGFydE9ic2VydmluZ0NoYW5nZXMobWFzaykpOwor
fQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0b3BPYnNlcnZpbmdDaGFuZ2Vz
KFdLT3JpZ2luRGF0YU1hc2sgbWFzaykKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgY29udGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1Ro
ZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OlN0YXJ0T2JzZXJ2
aW5nQ2hhbmdlcyhtYXNrKSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6
c2V0Q2hhbmdlQ2xpZW50KGNvbnN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQgKmNs
aWVudCkKK3sKKyAgICBtX2NsaWVudC5pbml0aWFsaXplKGNsaWVudCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZmYwZjU3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAi
R2VuZXJpY0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiSW1tdXRhYmxlQXJyYXkuaCIKKyNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXS09yaWdpbkRhdGFNYW5hZ2VyLmgiCisj
aW5jbHVkZSAiV2ViQ29udGV4dFN1cHBsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1l
c3BhY2UgQ29yZUlQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRh
OworCit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS0FycmF5UmVmPiBBcnJheUNhbGxiYWNrOwor
dHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tPcmlnaW5EYXRhQWNjZXB0UG9saWN5LCBPcmlnaW5E
YXRhQWNjZXB0UG9saWN5PiBPcmlnaW5EYXRhQWNjZXB0UG9saWN5Q2FsbGJhY2s7CisKK2NsYXNz
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2Jq
ZWN0OjpUeXBlT3JpZ2luRGF0YU1hbmFnZXI+LCBwdWJsaWMgV2ViQ29udGV4dFN1cHBsZW1lbnQs
IHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
Y29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVh
bCB+V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSgpOworCisgICAgdm9pZCBnZXRPcmlnaW5zKFdL
T3JpZ2luRGF0YU1hc2ssIFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4pOworICAgIHZvaWQgZGVs
ZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFNYXNrLCBXZWJTZWN1cml0eU9yaWdpbiop
OworICAgIHZvaWQgZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFNYXNrKTsKKworICAgIHZv
aWQgc2V0QWNjZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1hc2ssIFdLT3JpZ2luRGF0YUFjY2VwdFBv
bGljeSk7CisgICAgdm9pZCBnZXRBY2NlcHRQb2xpY3koV0tPcmlnaW5EYXRhTWFzaywgUGFzc1Jl
ZlB0cjxPcmlnaW5EYXRhQWNjZXB0UG9saWN5Q2FsbGJhY2s+KTsKKworICAgIHZvaWQgc3RhcnRP
YnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hc2spOworICAgIHZvaWQgc3RvcE9ic2Vydmlu
Z0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFzayk7CisgICAgdm9pZCBzZXRDaGFuZ2VDbGllbnQoY29u
c3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCopOworCisgICAgdXNpbmcgQVBJT2Jq
ZWN0OjpyZWY7CisgICAgdXNpbmcgQVBJT2JqZWN0OjpkZXJlZjsKKworcHJpdmF0ZToKKyAgICBl
eHBsaWNpdCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKKworICAgIHZv
aWQgZGlkR2V0T3JpZ2luRGF0YU9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0
YT4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKworICAgIC8vIFdlYkNvbnRleHRTdXBwbGVtZW50
CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94eSopIE9WRVJSSURFOworICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBPVkVSUklE
RTsKKworICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKSBPVkVSUklERTsKKworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBcnJheUNh
bGxiYWNrPj4gbV9hcnJheUNhbGxiYWNrczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
T3JpZ2luRGF0YUFjY2VwdFBvbGljeUNhbGxiYWNrPj4gbV9hY2NlcHRQb2xpY3lDYWxsYmFja3M7
CisKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50IG1fY2xpZW50Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNzZkNzZiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0w
LDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVz
c2FnZXMgLT4gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSB7CisgICAgRGlkR2V0T3JpZ2lucyhW
ZWN0b3I8V2ViS2l0OjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbklkZW50aWZpZXJzLCB1aW50
NjRfdCBjYWxsYmFja0lEKTsKKyAgICBEaWRDaGFuZ2UoKQorfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlD
aGFuZ2VDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2NjAx
YTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Q2hhbmdlQ2xpZW50LmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dDo6ZGlkQ2hhbmdlKFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkqIG9yaWdpbkRhdGFNYW5hZ2Vy
KQoreworICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX2NsaWVudC5kaWRDaGFuZ2UodG9BUEkob3JpZ2luRGF0YU1hbmFnZXIpLCBtX2NsaWVudC5j
bGllbnRJbmZvKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlD
aGFuZ2VDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTc2N2Nk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50X2gKKyNkZWZp
bmUgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudF9oCisKKyNpbmNsdWRlICJB
UElDbGllbnQuaCIKKyNpbmNsdWRlICJXS09yaWdpbkRhdGFNYW5hZ2VyLmgiCisjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk7CisKK2NsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VD
bGllbnQgOiBwdWJsaWMgQVBJQ2xpZW50PFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQs
IGtXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50VmVyc2lvbj4geworcHVibGljOgorICAg
IHZvaWQgZGlkQ2hhbmdlKFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkqKTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNo
YW5nZUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZDRkNDVkOC4uNzliZGQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTYyLDYgKzU2MiwxOCBA
QAogCQk2RUU4NDlDODEzNjhEOTM5MDAzOEQ0ODEgLyogV0tJbnNwZWN0b3JQcml2YXRlTWFjLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUU4NDlDNjEz
NjhEOTJEMDAzOEQ0ODEgLyogV0tJbnNwZWN0b3JQcml2YXRlTWFjLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI4RTg2RjExNzk1MTg4QzAwODc4
NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3MjhFODZFRjE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNr
ZXJNYWMuaCAqLzsgfTsKIAkJNzI4RTg2RjIxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlj
a2VyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzI4RTg2RjAxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLm1tICovOyB9Owor
CQk3NTU0MjJCQjE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgaW4g
Q29weSBGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJCOTE4
MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgKi87IH07CisJCTc1NTQy
MkJDMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggaW4gQ29weSBGaWxl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJCQTE4MDYyQjlDMDA0
NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5oICovOyB9OworCQk3NTU0MjJCRDE4MDYyQkIy
MDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJCOTE4MDYyQjlDMDA0NkY2QTggLyogV0tP
cmlnaW5EYXRhTWFuYWdlci5jcHAgKi87IH07CisJCTc1NTQyMkMzMTgwNjJCRTQwMDQ2RjZBOCAv
KiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGluIENvcHkgRmlsZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQzAxODA2MkJFNDAwNDZGNkE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi87IH07CisJCTc1NTQy
MkM0MTgwNjJCRjkwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkJFMTgwNjJC
RTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCAqLzsgfTsKKwkJNzU1
NDIyQ0ExODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmlu
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJD
ODE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gKi87
IH07CisJCTc1NTQyMkNCMTgwNjUwMDIwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJD
NjE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovOyB9OworCQk3
NTU0MjJDQzE4MDc3M0NFMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkM3MTgwNjRGRkMw
MDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oICovOyB9OworCQk3NTlDQ0Q1MzE4MDhE
MDMwMDA3OEU4QTggLyogT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU5Q0NENTExODA4RDAxQzAwNzhFOEE4IC8q
IE9yaWdpbkRhdGFBY2NlcHRQb2xpY3kuaCAqLzsgfTsKKwkJNzU5Q0NENTgxODA4RjE2NDAwNzhF
OEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU5Q0NENTQxODA4RjE2MDAw
NzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwICovOyB9
OworCQk3NTlDQ0Q1OTE4MDhGMTY5MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eUNoYW5nZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlDaGFuZ2VDbGllbnQuaCAqLzsgfTsKKwkJNzU5Q0NENUExODA4RjYxNjAwNzhFOEE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc1NTQyMkJGMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5LmggKi87IH07CiAJCTc2MkI3NDhEMTIwQkM3NUMwMDgxOTMzOSAvKiBXS1By
ZWZlcmVuY2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzYyQjc0ODQxMjBCQkEyRDAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzgw
MUMwOTkxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzgwMUMwOTUxNDIyOTBDNDAwRkFG
OUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwICovOyB9OwogCQk3ODAxQzA5QTE0MjI5MEM0MDBG
QUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzgwMUMwOTYxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RS
ZXN1bHQuaCAqLzsgfTsKQEAgLTEzMDIsOCArMTMxNCwxMSBAQAogCQkJZHN0U3ViZm9sZGVyU3Bl
YyA9IDE7CiAJCQlmaWxlcyA9ICgKIAkJCQk1MTBDQzg0OTE2MTNDODVDMDBEMDNFRDMgLyogTmV0
d29ya1Byb2Nlc3MuYXBwIGluIENvcHkgRmlsZXMgKi8sCisJCQkJNzU1NDIyQkMxODA2MkI5QzAw
NDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBDb3B5IEZpbGVzICovLAogCQkJCUJD
REUwQUJGMTMyNzI3MDgwMDEyNTlGQiAvKiBQbHVnaW5Qcm9jZXNzLmFwcCBpbiBDb3B5IEZpbGVz
ICovLAorCQkJCTc1NTQyMkMzMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluIGluIENvcHkgRmlsZXMgKi8sCiAJCQkJMUE1MERCNjYxMTBBM0Q1
NzAwMEQzRkU1IC8qIFdlYlByb2Nlc3MuYXBwIGluIENvcHkgRmlsZXMgKi8sCisJCQkJNzU1NDIy
QkIxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIENvcHkgRmls
ZXMgKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJDb3B5IEZpbGVzIjsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAtMTk2Miw2ICsxOTc3LDE3IEBACiAJCTZFRTg0
OUM2MTM2OEQ5MkQwMDM4RDQ4MSAvKiBXS0luc3BlY3RvclByaXZhdGVNYWMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tJbnNwZWN0b3JQcml2YXRlTWFjLmg7IHBhdGggPSBt
YWMvV0tJbnNwZWN0b3JQcml2YXRlTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTcyOEU4NkVGMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvclBpY2tlck1hYy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MjhFODZGMDE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQ
aWNrZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJD
b2xvclBpY2tlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQjkx
ODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tPcmlnaW5EYXRhTWFuYWdlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdp
bkRhdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLT3JpZ2lu
RGF0YU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQkUxODA2
MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkJGMTgwNjJCRTQwMDQ2RjZBOCAv
KiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNzU1NDIyQzAxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1
NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcDsg
cGF0aCA9IE9yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3NTU0MjJDNzE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViT3JpZ2luRGF0
YU1hbmFnZXIuaDsgcGF0aCA9IE9yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQzgxODA2NEZGQzAwNDZGNkE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmln
aW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NzU5Q0NENTExODA4RDAxQzAwNzhFOEE4IC8qIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3kuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4QTggLyog
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xp
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU5Q0NENTUxODA4RjE2MDAw
NzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5n
ZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjJCNzQ4MTEyMEJCQTAx
MDA4MTkzMzkgLyogRm9udFNtb290aGluZ0xldmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZvbnRTbW9vdGhpbmdMZXZlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzgwMUMwOTUxNDIyOTBDNDAwRkFGOUFGIC8q
IFdlYkhpdFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
MTA5LDYgKzMxMzUsNyBAQAogCQkJCURGNThDNjMxMTM3MUFDNTgwMEY5QTM3QyAvKiBOYXRpdmVX
ZWJXaGVlbEV2ZW50LmggKi8sCiAJCQkJQkNDRjY3MzIxMkM3RjE1QzAwOEY5QzM1IC8qIE9yaWdp
bkFuZERhdGFiYXNlcy5jcHAgKi8sCiAJCQkJQkNDRjY3MkMxMkM3RURGNzAwOEY5QzM1IC8qIE9y
aWdpbkFuZERhdGFiYXNlcy5oICovLAorCQkJCTc1OUNDRDUxMTgwOEQwMUMwMDc4RThBOCAvKiBP
cmlnaW5EYXRhQWNjZXB0UG9saWN5LmggKi8sCiAJCQkJQkNDNDNBQjgxMjdCOTVEQzAwMzE3RjE2
IC8qIFBsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAgKi8sCiAJCQkJQkNDNDNBQjkxMjdCOTVEQzAw
MzE3RjE2IC8qIFBsYXRmb3JtUG9wdXBNZW51RGF0YS5oICovLAogCQkJCUUxOEM5MkYzMTJEQjlF
NzEwMENGMkFFQiAvKiBQcmludEluZm8uY3BwICovLApAQCAtMzY1Miw2ICszNjc5LDE2IEBACiAJ
CQluYW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNzU1NDIy
QzUxODA2NEZGQzAwNDZGNkE4IC8qIE9yaWdpbkRhdGEgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTc1NTQyMkM2MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlci5jcHAgKi8sCisJCQkJNzU1NDIyQzcxODA2NEZGQzAwNDZGNkE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggKi8sCisJCQkJNzU1NDIyQzgxODA2NEZGQzAwNDZGNkE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCW5hbWUg
PSBPcmlnaW5EYXRhOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJN0NCMTZG
RTExNzI0QjlCNTAwN0EwQTk1IC8qIFBsdWdJblNhbmRib3hQcm9maWxlcyAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0zNzAxLDYgKzM3MzgsNyBAQAogCQlC
QzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNzU1NDIyQzUxODA2NEZGQzAwNDZGNkE4IC8q
IE9yaWdpbkRhdGEgKi8sCiAJCQkJNTEyRTM1MkExMzBCNTU5OTAwQUJEMTlBIC8qIEFwcGxpY2F0
aW9uQ2FjaGUgKi8sCiAJCQkJMzMwOTM0NEIxMzE1QjkzQTAwOTdBN0JDIC8qIENvb2tpZXMgKi8s
CiAJCQkJQkNBQ0M0M0IxNkIyNEM1RDAwQjZFMDkyIC8qIEVudHJ5UG9pbnQgKi8sCkBAIC0zOTMw
LDYgKzM5NjgsMTEgQEAKIAkJCQlCQ0Y2OUZBMDExNzZEMDE0MDA0NzFBNTIgLyogV2ViTmF2aWdh
dGlvbkRhdGEuaCAqLywKIAkJCQlCQzFERkVBMzEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgKi8sCiAJCQkJQkMxREZFQTIxMkIzMUY4NzAwNURG
NzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCAqLywKKwkJCQk3NTU0MjJC
RTE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAgKi8sCisJ
CQkJNzU1NDIyQkYxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHku
aCAqLywKKwkJCQk3NTU0MjJDMDE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQk3NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4QTggLyog
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgKi8sCisJCQkJNzU5Q0NE
NTUxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGll
bnQuaCAqLywKIAkJCQk1MTUzNTY5QTEyOTFCMUQyMDAwNzQ5REMgLyogV2ViUGFnZUNvbnRleHRN
ZW51Q2xpZW50LmNwcCAqLywKIAkJCQk1MTUzNTY5QjEyOTFCMUQyMDAwNzQ5REMgLyogV2ViUGFn
ZUNvbnRleHRNZW51Q2xpZW50LmggKi8sCiAJCQkJQkM3QjYyMDUxMjlBMEE2NzAwRDE3NEE0IC8q
IFdlYlBhZ2VHcm91cC5jcHAgKi8sCkBAIC00MDMzLDYgKzQwNzYsOCBAQAogCQkJCUJDODU3RkU0
MTJCODQzRDgwMEVERUIyRSAvKiBXS09wZW5QYW5lbFBhcmFtZXRlcnMuaCAqLywKIAkJCQlCQzFE
RkU4RTEyQjMxQ0E4MDA1REY3MzAgLyogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgKi8s
CiAJCQkJQkMxREZFOEQxMkIzMUNBODAwNURGNzMwIC8qIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXIuaCAqLywKKwkJCQk3NTU0MjJCOTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFu
YWdlci5jcHAgKi8sCisJCQkJNzU1NDIyQkExODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0
YU1hbmFnZXIuaCAqLywKIAkJCQlCQ0Q1OTdENDExMkI1NkRDMDBFQzhDMjMgLyogV0tQYWdlLmNw
cCAqLywKIAkJCQlCQ0Q1OTdENTExMkI1NkRDMDBFQzhDMjMgLyogV0tQYWdlLmggKi8sCiAJCQkJ
QkM3QjYzMzYxMkE0NUFCQTAwRDE3NEE0IC8qIFdLUGFnZUdyb3VwLmNwcCAqLywKQEAgLTUxMTYs
NiArNTE2MSw3IEBACiAJCQkJQkM2RURBQTYxMTEyNzFDNjAwRTc2NzhCIC8qIFBhZ2VDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTExQjUwMTEyRjYxOTIwMDMzN0JBQiAvKiBQYWdlQ2xp
ZW50SW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5MEMyMzcxMjY1MDcxNzAwM0U0NEQ0IC8q
IFBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTlDQ0Q1MzE4MDhEMDMwMDA3OEU4
QTggLyogT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU3NEE1
ODExMkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTE5NTgyRDMxNTNDQkZENzAwQjYwODc1IC8qIFBERktpdEltcG9ydHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxRkNCMTg5MTdCQkZFMDMwMDM5NENEOCAvKiBTeW5jaHJvbm91c05ldHdvcmtM
b2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtNTQ4MCw2ICs1NTI2LDcgQEAKIAkJCQlC
Q0REQjMyQjEyNEVDMkFCMDA0OEQxM0MgLyogV0tTaGFyZWRBUElDYXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzQwNzYwNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tTdHJpbmcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNDA3NjFBMTI0RkYwMzcwMDY4RjIwQSAvKiBXS1N0cmluZ0NGLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk3NTlDQ0Q1OTE4MDhGMTY5MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5MDk5ODAxMjU2
QTk4MjAwMDgzNzU2IC8qIFdLU3RyaW5nUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc3
RUFENDgxN0UyQzc3QjAwMkQxOTNEIC8qIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUE0QTlBQTgxMkI3RTc5NjAwOEZFOTg0IC8qIFdLVGV4dElucHV0
V2luZG93Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC01NDkwLDExICs1NTM3LDEzIEBA
CiAJCQkJQkM0MDc2MEMxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVxdWVzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM0MDc2MjkxMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVxdWVzdE5TLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwRTEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkxSZXNw
b25zZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU5Q0NENUExODA4RjYxNjAwNzhFOEE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjJCMTI0
RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNlTlMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY2
MTEzRTI5MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM4Njk5QjUxMTZBQURBQTAwMkE5MjVCIC8qIFdLVmlldy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM4Njk5QjcxMTZBQURBQTAwMkE5MjVCIC8qIFdLVmlld0ludGVybmFs
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCRkE2MTc5RjEyRjBCOTlEMDAzM0UwQ0EgLyogV0tWaWV3
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU1NDIyQ0MxODA3NzNDRTAwNDZGNkE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUUxQUZFOTE2QjIw
Qjc1MDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUUxQUZF
QjE2QjIwQjdFMDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDOTg5RDgyMTYxQTdFNUQwMDBENDZEMyAvKiBXS1dlYlByb2Nlc3NQbHVnSW4uaCBp
biBIZWFkZXJzICovLApAQCAtNTgyOSw2ICs1ODc4LDcgQEAKIAkJCWZpbGVzID0gKAogCQkJCUUx
RDI2QTUxMTc1OTY0RDcwMDk1QkZEMSAvKiBXZWJDb250ZW50UHJvY2Vzcy54aWIgaW4gUmVzb3Vy
Y2VzICovLAogCQkJCUUxMzNGRDhBMTQyM0REN0YwMEZDN0JGQiAvKiBXZWJLaXQuaWNucyBpbiBS
ZXNvdXJjZXMgKi8sCisJCQkJNzU1NDIyQ0ExODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyLm1lc3NhZ2VzLmluIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTYxOTgsNiArNjI0OCw3
IEBACiAJCQkJRTFFRTUzRTcxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVk
aXRvckNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzE0RTEwOTEyMEI5MDVFMDA4MjZD
MEMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDRDVDNjZBMDEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVl
bkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTU0MjJDQjE4MDY1MDAyMDA0NkY2QTgg
LyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBOEM2QTgx
MUUzQkE1RjAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzgxNDdBQTEyRjY0Q0RBMDA3QjJDMzIgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlUG9saWN5Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1OUM1NTFFMTMwMDA2
NDEwMDI1QzBDMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC02MzA5LDYgKzYzNjAsNyBAQAogCQkJCTFBMDQzQjVEMTI0RDVFOUQw
MEZGQkZCNSAvKiBQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUEwNDNEQzIxMjRGRjg3NTAwRkZCRkI1IC8qIFBsdWdpblByb3h5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBMkQ5MjIxMTI4MURDMUIwMDFFQjk2MiAvKiBQbHVnaW5Qcm94
eU1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTc1NTQyMkM0MTgwNjJCRjkwMDQ2RjZBOCAvKiBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBOEVGQTcw
MTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3Q0Q2MjI3NzE3MzlEODYzMDA1QkQ3RkYgLyogUGx1Z2luU2FuZGJveFBy
b2ZpbGUubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzgyODQ0RDE2QjUwODFDMDBBMjc4RkUgLyog
UGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKQEAgLTY0MjgsNiArNjQ4
MCw3IEBACiAJCQkJQkNCOUY2QTExMTIzQTg0QjAwQTEzN0UwIC8qIFdlYkZyYW1lUG9saWN5TGlz
dGVuZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzExMUIwRTExMkY1RTRGMDAzMzdC
QUIgLyogV2ViRnJhbWVQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDczQkE1MzEzMUI2
NDVCMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNzU1NDIyQkQxODA2MkJCMjAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8qIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENkY3NUY0
MTMxQjY2RDAwMEQ2QjIxRSAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUNEQ0E4NUVFMTMyQUQ3MDEwMEU5NjFERiAvKiBXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC02NTcwLDYgKzY2MjMsNyBAQAogCQkJ
CTlGQjVGMzk0MTY5RTZBODAwMDJDMjVCRiAvKiBXS0NvbnRleHRQcml2YXRlTWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzMwOTM0NUExMzE1Qjk5ODAwOTdBN0JDIC8qIFdLQ29va2llTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTJGNThGOTEyQTg4QTU0MDA2Mjk1MzAgLyogV0tD
cmVkZW50aWFsLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1OUNDRDU4MTgwOEYxNjQwMDc4RThB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDNDA3NUY3MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0RhdGEuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRjYyQTc2NjExMkIxQUJFRDAwMDVGMUI2IC8qIFdLRGF0YWJhc2VNYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NUY5MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0Rp
Y3Rpb25hcnkuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTI0ZTliCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5h
Z2VyLmNwcApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJD
aGlsZFByb2Nlc3MuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdl
ck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+CisKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NvbnN0IGNo
YXIqIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJu
ICJXZWJPcmlnaW5EYXRhTWFuYWdlciI7Cit9CisKK1dlYk9yaWdpbkRhdGFNYW5hZ2VyOjpXZWJP
cmlnaW5EYXRhTWFuYWdlcihDaGlsZFByb2Nlc3MqIGNoaWxkUHJvY2VzcykKKyAgICA6IG1fY2hp
bGRQcm9jZXNzKGNoaWxkUHJvY2VzcykKK3sKKyAgICBtX2NoaWxkUHJvY2Vzcy0+YWRkTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCB0aGlzKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6Z2V0T3JpZ2lu
cyhXS09yaWdpbkRhdGFNYXNrIG1hc2ssIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgSGFz
aFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiBvcmlnaW5zOworCisgICAgLy8gRklYTUU6IHBv
cHVsYXRlIG9yaWdpbnMKKworICAgIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGlkZW50aWZp
ZXJzOworICAgIGlkZW50aWZpZXJzLnJlc2VydmVDYXBhY2l0eShvcmlnaW5zLnNpemUoKSk7CisK
KyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+OjppdGVyYXRvciBlbmQgPSBvcmln
aW5zLmVuZCgpOworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj46Oml0ZXJhdG9y
IGkgPSBvcmlnaW5zLmJlZ2luKCk7CisgICAgZm9yICg7IGkgIT0gZW5kOyArK2kpIHsKKyAgICAg
ICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSAqaTsKKworICAgICAgICBTZWN1cml0
eU9yaWdpbkRhdGEgb3JpZ2luRGF0YTsKKyAgICAgICAgb3JpZ2luRGF0YS5wcm90b2NvbCA9IG9y
aWdpbi0+cHJvdG9jb2woKTsKKyAgICAgICAgb3JpZ2luRGF0YS5ob3N0ID0gb3JpZ2luLT5ob3N0
KCk7CisgICAgICAgIG9yaWdpbkRhdGEucG9ydCA9IG9yaWdpbi0+cG9ydCgpOworCisgICAgICAg
IGlkZW50aWZpZXJzLnVuY2hlY2tlZEFwcGVuZChvcmlnaW5EYXRhKTsKKyAgICB9CisKKyAgICBt
X2NoaWxkUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6
RGlkR2V0T3JpZ2lucyhpZGVudGlmaWVycywgY2FsbGJhY2tJRCksIDApOworfQorCit2b2lkIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2luRGF0YU1h
c2sgbWFzaywgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW5EYXRhKQoreworICAgIFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmln
aW5EYXRhLnByb3RvY29sLCBvcmlnaW5EYXRhLmhvc3QsIG9yaWdpbkRhdGEucG9ydCk7CisgICAg
aWYgKCFvcmlnaW4pCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBkZWxldGUgY2Fj
aGUKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlQWxsRW50cmllcyhXS09y
aWdpbkRhdGFNYXNrIG1hc2spCit7CisgICAgLy8gRklYTUU6IGRlbGV0ZSBlbnRyaWVzCit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjM2ZGUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmgKQEAg
LTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViT3JpZ2luRGF0YU1h
bmFnZXJfaAorI2RlZmluZSBXZWJPcmlnaW5EYXRhTWFuYWdlcl9oCisKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXS09yaWdpbkRhdGFNYW5hZ2VyLmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIENoaWxkUHJvY2VzczsKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CisKK2NsYXNz
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJs
aWMgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShX
ZWJPcmlnaW5EYXRhTWFuYWdlcik7CitwdWJsaWM6CisgICAgV2ViT3JpZ2luRGF0YU1hbmFnZXIo
Q2hpbGRQcm9jZXNzKik7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUo
KTsKKworICAgIHZvaWQgZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFNYXNrKTsKKworcHJp
dmF0ZToKKyAgICB2b2lkIGdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFzaywgdWludDY0X3QpOwor
ICAgIHZvaWQgZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFNYXNrLCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmKTsKKworICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKworICAgIENoaWxkUHJvY2Vzcyog
bV9jaGlsZFByb2Nlc3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNz
YWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGU2NDJmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9y
aWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMgQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisj
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
KyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViT3JpZ2luRGF0YU1h
bmFnZXIgeworICAgIHZvaWQgR2V0T3JpZ2lucyh1aW50MzJfdCBtYXNrLCB1aW50NjRfdCBjYWxs
YmFja0lEKQorICAgIHZvaWQgRGVsZXRlRW50cmllc0Zvck9yaWdpbih1aW50MzJfdCBtYXNrLCBX
ZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5JZGVudGlmaWVyKQorICAgIHZvaWQgRGVs
ZXRlQWxsRW50cmllcyh1aW50MzJfdCBtYXNrKQorICAgIHZvaWQgU2V0QWNjZXB0UG9saWN5KHVp
bnQzMl90IG1hc2ssIHVpbnQzMl90IHBvbGljeSkKKyAgICB2b2lkIEdldEFjY2VwdFBvbGljeSh1
aW50MzJfdCBtYXNrLCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIHZvaWQgU3RhcnRPYnNlcnZp
bmdDaGFuZ2VzKHVpbnQzMl90IG1hc2spCisgICAgdm9pZCBTdG9wT2JzZXJ2aW5nQ2hhbmdlcyh1
aW50MzJfdCBtYXNrKQorfQo=
</data>
<flag name="commit-queue"
          id="236758"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214226</attachid>
            <date>2013-10-14 20:48:44 -0700</date>
            <delta_ts>2013-10-15 11:53:17 -0700</delta_ts>
            <desc>build fix</desc>
            <filename>122781d.diff</filename>
            <type>text/plain</type>
            <size>64578</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggN2M3YzQxZC4uNjk1OGQ4MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTQ2LDYgKzQ2LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0xhdW5jaGluZyIKICAgICAiJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvT3JpZ2lu
RGF0YSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dF
QktJVDJfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKQEAgLTMwNyw2ICszMDgsOCBAQCBzZXQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNw
cAogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vz
cy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1l
bnVDbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAKICAgICBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzU0LDYgKzM1Nyw3IEBAIHNldChXZWJLaXQyX1NPVVJD
RVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5j
cHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcAorICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAKQEAgLTQ2MSw2ICs0NjUsOCBAQCBz
ZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKICAgICBXZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvT3JpZ2lu
RGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKKwogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW4uY3BwCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
LmNwcAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuY3BwCkBAIC01ODYsNiArNTkyLDggQEAgc2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMK
IAogICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1l
c3NhZ2VzLmluCiAKKyAgICBXZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFn
ZXIubWVzc2FnZXMuaW4KKwogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmZGU0MDFkLi42MzIxZmIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMTMtMTAtMTQgIE1hcnRpbiBIb2NrICA8bWhvY2tA
YXBwbGUuY29tPgorCisgICAgICAgIFJlZmFjdG9yIHN0b3JlZCB3ZWJzaXRlIGRhdGEgQVBJcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyNzgxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyIGFsb25nIHdpdGggY29ycmVzcG9uZGluZyBjbGFzcworICAgICAgICBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5IGFuZCBBUEkgV0tPcmlnaW5EYXRhTWFuYWdlci4KKwor
ICAgICAgICBDdXJyZW50bHksIHRoZSBuZXcgZmlsZXMgYXJlIHVudXNlZC4KKworICAgICAgICBX
S09yaWdpbkRhdGFNYW5hZ2VyIHNob3VsZCBzdWJzdW1lIHRoZSBmdW5jdGlvbmFsaXR5IG9mOgor
ICAgICAgICBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLCBXS0Nvb2tpZU1hbmFnZXIsIFdLRGF0
YWJhc2VNYW5hZ2VyLAorICAgICAgICBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIsIFdLTWVkaWFD
YWNoZU1hbmFnZXIsCisgICAgICAgIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLCBhbmQgV0tSZXNv
dXJjZUNhY2hlTWFuYWdlci4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAg
ICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU2hhcmVkL0FQSU9iamVj
dC5oOgorICAgICAgICAqIFNoYXJlZC9PcmlnaW5EYXRhQWNjZXB0UG9saWN5Lmg6IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAgICAgICAgKFdLQ29udGV4dEdldE9yaWdpbkRhdGFN
YW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRUeXBlSUQpOgorICAgICAgICAoV0tPcmlnaW5EYXRh
TWFuYWdlckdldE9yaWdpbnMpOgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFuYWdlckRlbGV0ZUVu
dHJpZXNGb3JPcmlnaW4pOgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFuYWdlckRlbGV0ZUFsbEVu
dHJpZXMpOgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFuYWdlclNldEFjY2VwdFBvbGljeSk6Cisg
ICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyR2V0QWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdL
T3JpZ2luRGF0YU1hbmFnZXJTdGFydE9ic2VydmluZ0NoYW5nZXMpOgorICAgICAgICAoV0tPcmln
aW5EYXRhTWFuYWdlclN0b3BPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0
YU1hbmFnZXJTZXRDaGFuZ2VDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS09y
aWdpbkRhdGFNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eTo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6On5XZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6Y29udGV4
dERlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6
OnByb2Nlc3NEaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk6OnNob3VsZFRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHk6OnJlZldlYkNvbnRleHRTdXBwbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmdldE9yaWdpbnMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkaWRHZXRPcmlnaW5E
YXRhT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6
OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5OjpkZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eTo6c2V0QWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6Z2V0QWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdl
YktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c3RvcE9ic2Vydmlu
Z0NoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpz
ZXRDaGFuZ2VDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50OjpkaWRDaGFuZ2UpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50Lmg6
IEFkZGVkLgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN1cHBsZW1lbnRO
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OmdldE9y
aWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlRW50
cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpk
ZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3Jp
Z2luRGF0YU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRh
L1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKwogMjAxMy0xMC0xNCAg
Q3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtXSzJdW0Vm
bF1bU291cF0gTWFrZSBOZXR3b3JrUHJvY2Vzc01haW5Vbml4IGhhbmRsZSBwcm94eSBzZXR0aW5n
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDU1NTE3NGIuLmYxZmEwNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNl
L1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzksNiArMzksNyBAQCBWUEFUSCA9IFwK
ICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTWVkaWFDYWNoZSBcCiAgICAgJChXZWJLaXQyKS9X
ZWJQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zIFwKKyAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvT3JpZ2luRGF0YSBcCiAgICAgJChXZWJL
aXQyKS9XZWJQcm9jZXNzL1BsdWdpbnMgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNv
dXJjZUNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFnZSBcCkBAIC05OSw2
ICsxMDAsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBXZWJNZWRpYUNhY2hlTWFuYWdl
ciBcCiAgICAgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSBcCiAgICAgV2ViTm90aWZpY2F0aW9u
TWFuYWdlciBcCisgICAgV2ViT3JpZ2luRGF0YU1hbmFnZXIgXAorICAgIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHkgXAogICAgIFdlYlBhZ2UgXAogICAgIFdlYlBhZ2VHcm91cFByb3h5IFwKICAg
ICBXZWJQYWdlUHJveHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUu
YW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQppbmRleCBiODI1YmMzLi43Y2FkMTA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQpAQCAtMTU1LDYgKzE1NSw3IEBAIGxpYndlYmtpdDJndGtf
QFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lP
TkBfbGFfQ1BQCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNh
Y2hlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZv
IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMg
XAorCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YSBcCiAJ
LUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKIAkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UgXAogCS1JJChzcmNk
aXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cCBcCkBAIC0zODMsNiArMzg0LDcgQEAg
dnBhdGggJS5tZXNzYWdlcy5pbiA9IFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvTmV0d29yayBc
CiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmtJbmZvIFwKIAkkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucyBcCisJJChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEg
XAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nl
c3MvUmVzb3VyY2VDYWNoZSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXApAQCAt
NzQ2LDYgKzc0OCw3IEBAIEVYVFJBX0RJU1QgKz0gXAogCSQoc2hlbGwgbHMgJChXZWJLaXQyKS9X
ZWJQcm9jZXNzL05ldHdvcmsvKi5pbikgXAogCSQoc2hlbGwgbHMgJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL05ldHdvcmtJbmZvLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zLyouaW4pIFwKKwkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9PcmlnaW5EYXRhLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Q
bHVnaW5zLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJj
ZUNhY2hlLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TdG9yYWdl
LyouaW4pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDFlMzIwYzkuLjAwOGQ1
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtODMsNiArODMsNyBAQCB3ZWJr
aXQyX2hfYXBpICs9IFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlv
blByb3ZpZGVyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFy
YW1ldGVycy5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyLmggXAorCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YS5o
IFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oIFwKIAkkKFdlYktp
dDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlUHJpdmF0ZS5oIFwKQEAgLTIyMyw2ICsyMjQsMTAgQEAgd2Via2l0Ml9idWlsdF9z
b3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk5ldHdvcmtJbmZvTWFuYWdl
clByb3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJOb3RpZmljYXRp
b25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oIFwKKwlEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNz
YWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlBhZ2VHcm91cFByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlR3JvdXBQcm94
eU1lc3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUGFnZVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBcCkBAIC02NDMsNiArNjQ4LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmgg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2lu
RGF0YU1hbmFnZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmln
aW5EYXRhTWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmggXApAQCAtOTgy
LDYgKzk4OSwxMCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCBcCisJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIFwKKwlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIFwKKwlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNsaWVudC5jcHAgXAor
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2xpZW50
LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGllbnQu
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50
LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCA2OTk0Y2JkLi4xOTdhZDlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0xMTksNiArMTE5LDcgQEAgdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogV0tOb3Rp
ZmljYXRpb25QZXJtaXMKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9u
UHJvdmlkZXIqIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBPcGFxdWVXS09wZW5QYW5lbFBhcmFtZXRlcnMqIFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIqIFdL
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S09yaWdpbkRhdGFNYW5hZ2VyKiBXS09yaWdpbkRhdGFNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tQYWdlKiBXS1BhZ2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS1BhZ2VHcm91cCogV0tQYWdlR3JvdXBSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS1BsdWdpblNpdGVEYXRhTWFuYWdlciogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWY7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggNDQxZTA1ZS4uNzAzMjFiOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtMTAzLDYgKzEwMyw3IEBAIHB1YmxpYzoKICAgICAg
ICAgVHlwZU5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LAogICAgICAgICBUeXBlT3BlblBh
bmVsUGFyYW1ldGVycywKICAgICAgICAgVHlwZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLAorICAg
ICAgICBUeXBlT3JpZ2luRGF0YU1hbmFnZXIsCiAgICAgICAgIFR5cGVQYWdlLAogICAgICAgICBU
eXBlUGFnZUdyb3VwLAogICAgICAgICBUeXBlUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL09yaWdpbkRhdGFBY2NlcHRQb2xpY3kuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5EYXRhQWNjZXB0UG9saWN5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTYyYjg3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5EYXRhQWNjZXB0UG9saWN5LmgKQEAgLTAsMCArMSw0MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
T3JpZ2luRGF0YUFjY2VwdFBvbGljeV9oCisjZGVmaW5lIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3lf
aAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSB7CisgICAgT3JpZ2luRGF0YUFjY2VwdFBv
bGljeUFsd2F5cyA9IDAsCisgICAgT3JpZ2luRGF0YUFjY2VwdFBvbGljeU5ldmVyID0gMSwKKyAg
ICBPcmlnaW5EYXRhQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW4gPSAyLAor
fTsKK3R5cGVkZWYgdW5zaWduZWQgT3JpZ2luRGF0YUFjY2VwdFBvbGljeTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBPcmlnaW5EYXRhQWNjZXB0UG9saWN5X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA2NGM4ZDFhLi4yZDk3
NjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRm9udFNtb290aGluZ0xldmVsLmgiCiAjaW5jbHVkZSAi
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlSGl0VGVz
dFJlc3VsdE1lZGlhVHlwZS5oIgorI2luY2x1ZGUgIk9yaWdpbkRhdGFBY2NlcHRQb2xpY3kuaCIK
ICNpbmNsdWRlICJQbHVnaW5Nb2R1bGVJbmZvLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc01vZGVsLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmgiCkBAIC04Nyw2ICs4OCw3IEBAIGNs
YXNzIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOwogY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5OwogY2xhc3MgV2ViT3BlblBhbmVsUGFyYW1ldGVyczsKIGNsYXNzIFdlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyUHJveHk7CitjbGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Owog
Y2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyOwpAQCAtMTMzLDYgKzEzNSw3IEBAIFdLX0FERF9BUElfTUFQUElORyhX
S05vdGlmaWNhdGlvblByb3ZpZGVyUmVmLCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcikKIFdLX0FE
RF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlvblJlZiwgV2ViTm90aWZpY2F0aW9uKQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZiwgV2ViT3BlblBhbmVsUGFyYW1l
dGVycykKIFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmLCBX
ZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLT3Jp
Z2luRGF0YU1hbmFnZXJSZWYsIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tQYWdlR3JvdXBSZWYsIFdlYlBhZ2VHcm91cCkKIFdLX0FERF9BUElfTUFQUElO
RyhXS1BhZ2VSZWYsIFdlYlBhZ2VQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1BsdWdpblNp
dGVEYXRhTWFuYWdlclJlZiwgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCBhNDdlNDlmLi5mYmZiYzFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAt
NDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCIKICNp
bmNsdWRlICJXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpZiBFTkFC
TEUoU1FMX0RBVEFCQVNFKQogI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlclByb3h5LmgiCkBA
IC0yNzQsNiArMjc1LDExIEBAIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0
UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSCiAgICAgcmV0dXJuIHRv
QVBJKHRvSW1wbChjb250ZXh0UmVmKS0+c3VwcGxlbWVudDxXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5PigpKTsKIH0KIAorV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRPcmln
aW5EYXRhTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyAgICByZXR1cm4gdG9B
UEkodG9JbXBsKGNvbnRleHRSZWYpLT5zdXBwbGVtZW50PFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk+KCkpOworfQorCiB2b2lkIFdLQ29udGV4dFN0YXJ0TWVtb3J5U2FtcGxlcihXS0NvbnRleHRS
ZWYgY29udGV4dFJlZiwgV0tEb3VibGVSZWYgaW50ZXJ2YWwpCiB7CiAgICAgdG9JbXBsKGNvbnRl
eHRSZWYpLT5zdGFydE1lbW9yeVNhbXBsZXIodG9JbXBsKGludGVydmFsKS0+dmFsdWUoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKaW5kZXggM2NlNzMxZS4u
ZWZkNjc3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaApA
QCAtMTk1LDcgKzE5NSw4IEBAIFdLX0VYUE9SVCBXS05ldHdvcmtJbmZvTWFuYWdlclJlZiBXS0Nv
bnRleHRHZXROZXR3b3JrSW5mb01hbmFnZXIoV0tDb250ZXh0UmVmIGNvCiBXS19FWFBPUlQgV0tO
b3RpZmljYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldE5vdGlmaWNhdGlvbk1hbmFnZXIoV0tD
b250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVm
IFdLQ29udGV4dEdldFBsdWdpblNpdGVEYXRhTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7
CiBXS19FWFBPUlQgV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRSZXNvdXJj
ZUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7Ci0gICAgCitXS19FWFBPUlQgV0tP
cmlnaW5EYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRPcmlnaW5EYXRhTWFuYWdlcihXS0NvbnRl
eHRSZWYgY29udGV4dCk7CisKIHR5cGVkZWYgdm9pZCAoKldLQ29udGV4dEdldFN0YXRpc3RpY3NG
dW5jdGlvbikoV0tEaWN0aW9uYXJ5UmVmIHN0YXRpc3RpY3MsIFdLRXJyb3JSZWYgZXJyb3IsIHZv
aWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRHZXRTdGF0aXN0
aWNzKFdLQ29udGV4dFJlZiBjb250ZXh0LCB2b2lkKiBmdW5jdGlvbkNvbnRleHQsIFdLQ29udGV4
dEdldFN0YXRpc3RpY3NGdW5jdGlvbiBmdW5jdGlvbik7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRl
eHRHZXRTdGF0aXN0aWNzV2l0aE9wdGlvbnMoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RhdGlz
dGljc09wdGlvbnMgc3RhdGlzdGljc01hc2ssIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCwgV0tDb250
ZXh0R2V0U3RhdGlzdGljc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGIyNGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuY3BwCkBAIC0w
LDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V0tPcmlnaW5EYXRhTWFuYWdlci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVk
ZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OworCitXS1R5cGVJRCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1
cm4gdG9BUEkoV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6QVBJVHlwZSk7Cit9CisKK3ZvaWQg
V0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmln
aW5EYXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRhTWFzayBtYXNrLCB2b2lkKiBjb250ZXh0LCBX
S09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2luc0Z1bmN0aW9uIGNhbGxiYWNrKQoreworICAgIHRv
SW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPmdldE9yaWdpbnMobWFzaywgQXJyYXlDYWxsYmFj
azo6Y3JlYXRlKGNvbnRleHQsIGNhbGxiYWNrKSk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFu
YWdlckRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5E
YXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRhTWFzayBtYXNrLCBXS1NlY3VyaXR5T3JpZ2luUmVm
IG9yaWdpblJlZikKK3sKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5kZWxldGVF
bnRyaWVzRm9yT3JpZ2luKG1hc2ssIHRvSW1wbChvcmlnaW5SZWYpKTsKK30KKwordm9pZCBXS09y
aWdpbkRhdGFNYW5hZ2VyRGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9y
aWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFNYXNrIG1hc2spCit7CisgICAgdG9JbXBs
KG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+ZGVsZXRlQWxsRW50cmllcyhtYXNrKTsKK30KKwordm9p
ZCBXS09yaWdpbkRhdGFNYW5hZ2VyU2V0QWNjZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1hbmFnZXJS
ZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgV0tPcmlnaW5E
YXRhQWNjZXB0UG9saWN5IHBvbGljeSkKK3sKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJS
ZWYpLT5zZXRBY2NlcHRQb2xpY3kobWFzaywgcG9saWN5KTsKK30KK3ZvaWQgV0tPcmlnaW5EYXRh
TWFuYWdlckdldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFN
YW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFNYXNrIG1hc2ssIHZvaWQqIGNvbnRleHQsIFdLT3JpZ2lu
RGF0YU1hbmFnZXJHZXRBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjaykKK3sKKyAgICB0b0lt
cGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5nZXRBY2NlcHRQb2xpY3kobWFzaywgT3JpZ2luRGF0
YUFjY2VwdFBvbGljeUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsKK30KKwor
dm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0
YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YU1hc2sgbWFzaykK
K3sKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5zdGFydE9ic2VydmluZ0NoYW5n
ZXMobWFzayk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclN0b3BPYnNlcnZpbmdDaGFu
Z2VzKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2lu
RGF0YU1hc2sgbWFzaykKK3sKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5zdG9w
T2JzZXJ2aW5nQ2hhbmdlcyhtYXNrKTsKK30KKwordm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU2V0
Q2hhbmdlQ2xpZW50KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYs
IGNvbnN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQgKmNsaWVudCkKK3sKKyAgICB0
b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5zZXRDaGFuZ2VDbGllbnQoY2xpZW50KTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFN
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFu
YWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3MDEwOGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRh
TWFuYWdlci5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLT3JpZ2lu
RGF0YU1hbmFnZXJfaAorI2RlZmluZSBXS09yaWdpbkRhdGFNYW5hZ2VyX2gKKworI2luY2x1ZGUg
PFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7Cisj
ZW5kaWYKKworZW51bSB7CisgICAga1dLT3JpZ2luRGF0YU1hc2tBcHBsaWNhdGlvbkNhY2hlID0g
MSA8PCAwLAorICAgIGtXS09yaWdpbkRhdGFNYXNrQ29va2llID0gMSA8PCAxLAorICAgIGtXS09y
aWdpbkRhdGFNYXNrRGF0YWJhc2UgPSAxIDw8IDIsCisgICAga1dLT3JpZ2luRGF0YU1hc2tLZXlW
YWx1ZVN0b3JhZ2UgPSAxIDw8IDMsCisgICAga1dLT3JpZ2luRGF0YU1hc2tNZWRpYUNhY2hlID0g
MSA8PCA0LAorICAgIGtXS09yaWdpbkRhdGFNYXNrUGx1Z2luRGF0YSA9IDEgPDwgNSwKKyAgICBr
V0tPcmlnaW5EYXRhTWFza1Jlc291cmNlQ2FjaGUgPSAxIDw8IDYsCisKKyAgICBrV0tPcmlnaW5E
YXRhTWFza0FsbCA9ICgxIDw8IDcpIC0gMQorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tPcmlnaW5E
YXRhTWFzazsKKworZW51bSB7CisgICAga1dLT3JpZ2luRGF0YUFjY2VwdFBvbGljeUFsd2F5cyA9
IDAsCisgICAga1dLT3JpZ2luRGF0YUFjY2VwdFBvbGljeU5ldmVyID0gMSwKKyAgICBrV0tPcmln
aW5EYXRhQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21haW4gPSAyCit9OwordHlw
ZWRlZiB1aW50MzJfdCBXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3k7CisKK1dLX0VYUE9SVCBXS1R5
cGVJRCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0VHlwZUlEKCk7CisKK3R5cGVkZWYgdm9pZCAoKldL
T3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zRnVuY3Rpb24pKFdLQXJyYXlSZWYsIFdLRXJyb3JS
ZWYsIHZvaWQqKTsKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5z
KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3JpZ2luRGF0YU1h
c2sgbWFzaywgdm9pZCogY29udGV4dCwgV0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnNGdW5j
dGlvbiBmdW5jdGlvbik7CisKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxl
dGVFbnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFn
ZXIsIFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4pOwor
V0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlckRlbGV0ZUFsbEVudHJpZXMoV0tPcmln
aW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhTWFzayBtYXNr
KTsKKworLy8gT3JpZ2luRGF0YU1hbmFnZXIgQ2xpZW50Cit0eXBlZGVmIHZvaWQgKCpXS09yaWdp
bkRhdGFNYW5hZ2VyQ2hhbmdlQ2FsbGJhY2spKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2lu
RGF0YU1hbmFnZXIsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOworc3RydWN0IFdLT3JpZ2luRGF0
YU1hbmFnZXJDaGFuZ2VDbGllbnQgeworICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpZW50SW5mbzsKKyAgICBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2FsbGJhY2sgICBkaWRD
aGFuZ2U7Cit9OwordHlwZWRlZiBzdHJ1Y3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVu
dCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50OworCitlbnVtIHsga1dLT3JpZ2luRGF0
YU1hbmFnZXJDaGFuZ2VDbGllbnRWZXJzaW9uID0gMCB9OworCisvLyBDdXJyZW50bHksIG9ubHkg
bWFzayA9PSBXS09yaWdpbkRhdGFNYW5hZ2VyQ29va2llIGlzIHN1cHBvcnRlZCBmb3IgdGhlIGZv
bGxvd2luZy4KK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTZXRBY2NlcHRQb2xp
Y3koV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRh
TWFzayBtYXNrLCBXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3kgcG9saWN5KTsKK3R5cGVkZWYgdm9p
ZCAoKldLT3JpZ2luRGF0YU1hbmFnZXJHZXRBY2NlcHRQb2xpY3lGdW5jdGlvbikoV0tPcmlnaW5E
YXRhQWNjZXB0UG9saWN5LCBXS0Vycm9yUmVmLCB2b2lkKik7CitXS19FWFBPUlQgdm9pZCBXS09y
aWdpbkRhdGFNYW5hZ2VyR2V0QWNjZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3Jp
Z2luRGF0YU1hbmFnZXIsIFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgdm9pZCogY29udGV4dCwgV0tP
cmlnaW5EYXRhTWFuYWdlckdldEFjY2VwdFBvbGljeUZ1bmN0aW9uIGNhbGxiYWNrKTsKKworV0tf
RVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09y
aWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFNYXNrIG1h
c2spOworV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclN0b3BPYnNlcnZpbmdDaGFu
Z2VzKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3JpZ2luRGF0
YU1hc2sgbWFzayk7CitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU2V0Q2hhbmdl
Q2xpZW50KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmdlciwgY29uc3QgV0tP
cmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCogY2xpZW50KTsKKyNpZmRlZiBfX2NwbHVzcGx1
cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS09yaWdpbkRhdGFNYW5hZ2VyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZmUzMmVjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHkuY3BwCkBAIC0wLDAgKzEsMTY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNs
dWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4u
aCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NvbnN0IGNoYXIqIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIldlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHkiOworfQorCitQYXNzUmVmUHRyPFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk+
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNyZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eShjb250
ZXh0KSk7Cit9CisKK1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OldlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHkoV2ViQ29udGV4dCogY29udGV4dCkKKzogV2ViQ29udGV4dFN1cHBsZW1lbnQoY29u
dGV4dCkKK3sKKyAgICBjb250ZXh0LT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7Cit9CisK
K1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6On5XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KCkK
K3sKK30KKworCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0cm95
ZWQoKQoreworICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tzKTsKK30K
Kwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpwcm9jZXNzRGlkQ2xvc2UoV2ViUHJv
Y2Vzc1Byb3h5KikKK3sKKyAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJheUNhbGxiYWNr
cyk7Cit9CisKK2Jvb2wgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c2hvdWxkVGVybWluYXRl
KFdlYlByb2Nlc3NQcm94eSopIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXJyYXlDYWxsYmFja3Mu
aXNFbXB0eSgpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnJlZldlYkNv
bnRleHRTdXBwbGVtZW50KCkKK3sKKyAgICBBUElPYmplY3Q6OnJlZigpOworfQorCit2b2lkIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQorewor
ICAgIEFQSU9iamVjdDo6ZGVyZWYoKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5OjpnZXRPcmlnaW5zKFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgUGFzc1JlZlB0cjxBcnJheUNh
bGxiYWNrPiBwcnBDYWxsYmFjaykKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gcHJwQ2FsbGJhY2s7
CisKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAg
ICBtX2FycmF5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxlYXNlKCkpOwor
CisgICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nlc3MpOiA8cmRhcjovL3Byb2JsZW0vMTIyMzk3
NjU+IE1ha2UgbWFuaXB1bGF0aW5nIGNhY2hlIGluZm9ybWF0aW9uIHdvcmsgd2l0aCBwZXItdGFi
IFdlYlByb2Nlc3MuCisgICAgY29udGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGlu
Z1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OkdldE9yaWdp
bnMobWFzaywgY2FsbGJhY2tJRCkpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk6OmRpZEdldE9yaWdpbkRhdGFPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRh
dGE+JiBvcmlnaW5EYXRhcywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBSZWZQdHI8QXJy
YXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBtX2FycmF5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7
CisgICAgcGVyZm9ybUFQSUNhbGxiYWNrV2l0aFNlY3VyaXR5T3JpZ2luRGF0YVZlY3Rvcihvcmln
aW5EYXRhcywgY2FsbGJhY2suZ2V0KCkpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFzayBtYXNrLCBXZWJT
ZWN1cml0eU9yaWdpbiogb3JpZ2luKQoreworICAgIGlmICghY29udGV4dCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhOworICAg
IHNlY3VyaXR5T3JpZ2luRGF0YS5wcm90b2NvbCA9IG9yaWdpbi0+cHJvdG9jb2woKTsKKyAgICBz
ZWN1cml0eU9yaWdpbkRhdGEuaG9zdCA9IG9yaWdpbi0+aG9zdCgpOworICAgIHNlY3VyaXR5T3Jp
Z2luRGF0YS5wb3J0ID0gb3JpZ2luLT5wb3J0KCk7CisKKyAgICAvLyBGSVhNRSAoTXVsdGktV2Vi
UHJvY2Vzcyk6IDxyZGFyOi8vcHJvYmxlbS8xMjIzOTc2NT4gTWFrZSBtYW5pcHVsYXRpbmcgY2Fj
aGUgaW5mb3JtYXRpb24gd29yayB3aXRoIHBlci10YWIgV2ViUHJvY2Vzcy4KKyAgICBjb250ZXh0
KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2Vz
OjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6RGVsZXRlRW50cmllc0Zvck9yaWdpbihtYXNrLCBzZWN1
cml0eU9yaWdpbkRhdGEpKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpk
ZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YU1hc2sgbWFzaykKK3sKKyAgICBpZiAoIWNvbnRl
eHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nlc3Mp
OiA8cmRhcjovL3Byb2JsZW0vMTIyMzk3NjU+IE1ha2UgbWFuaXB1bGF0aW5nIGNhY2hlIGluZm9y
bWF0aW9uIHdvcmsgd2l0aCBwZXItdGFiIFdlYlByb2Nlc3MuCisgICAgY29udGV4dCgpLT5zZW5k
VG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViT3Jp
Z2luRGF0YU1hbmFnZXI6OkRlbGV0ZUFsbEVudHJpZXMobWFzaykpOworfQorCit2b2lkIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFNYXNrIG1h
c2ssIFdLT3JpZ2luRGF0YUFjY2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAgaWYgKCFjb250ZXh0
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2Vz
UmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2Vy
OjpTZXRBY2NlcHRQb2xpY3kobWFzaywgcG9saWN5KSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eTo6Z2V0QWNjZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgUGFz
c1JlZlB0cjxPcmlnaW5EYXRhQWNjZXB0UG9saWN5Q2FsbGJhY2s+IHBycENhbGxiYWNrKQorewor
ICAgIGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8T3JpZ2lu
RGF0YUFjY2VwdFBvbGljeUNhbGxiYWNrPiBjYWxsYmFjayA9IHBycENhbGxiYWNrOworCisgICAg
dWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CisgICAgbV9hY2Nl
cHRQb2xpY3lDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLnJlbGVhc2UoKSk7CisK
KyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNz
YXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6R2V0QWNjZXB0UG9saWN5KG1hc2ss
IGNhbGxiYWNrSUQpKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzdGFy
dE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFzayBtYXNrKQoreworICAgIGlmICghY29u
dGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nl
c3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFu
YWdlcjo6U3RhcnRPYnNlcnZpbmdDaGFuZ2VzKG1hc2spKTsKK30KKwordm9pZCBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5OjpzdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYXNrIG1h
c2spCit7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRl
eHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2Fn
ZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpTdGFydE9ic2VydmluZ0NoYW5nZXMobWFzaykpOwor
fQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNldENoYW5nZUNsaWVudChjb25z
dCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50ICpjbGllbnQpCit7CisgICAgbV9jbGll
bnQuaW5pdGlhbGl6ZShjbGllbnQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmMGY1NzAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlfaAorI2RlZmluZSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5X2gK
KworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgor
I2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
CisjaW5jbHVkZSAiV0tPcmlnaW5EYXRhTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRT
dXBwbGVtZW50LmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNs
aWVudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xh
c3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNlY3Vy
aXR5T3JpZ2luOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKKwordHlwZWRlZiBHZW5lcmlj
Q2FsbGJhY2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKK3R5cGVkZWYgR2VuZXJpY0NhbGxi
YWNrPFdLT3JpZ2luRGF0YUFjY2VwdFBvbGljeSwgT3JpZ2luRGF0YUFjY2VwdFBvbGljeT4gT3Jp
Z2luRGF0YUFjY2VwdFBvbGljeUNhbGxiYWNrOworCitjbGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZU9yaWdpbkRhdGFN
YW5hZ2VyPiwgcHVibGljIFdlYkNvbnRleHRTdXBwbGVtZW50LCBwcml2YXRlIENvcmVJUEM6Ok1l
c3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1l
bnROYW1lKCk7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5PiBjcmVhdGUoV2ViQ29udGV4dCopOworICAgIHZpcnR1YWwgfldlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHkoKTsKKworICAgIHZvaWQgZ2V0T3JpZ2lucyhXS09yaWdpbkRhdGFNYXNrLCBQYXNz
UmVmUHRyPEFycmF5Q2FsbGJhY2s+KTsKKyAgICB2b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4o
V0tPcmlnaW5EYXRhTWFzaywgV2ViU2VjdXJpdHlPcmlnaW4qKTsKKyAgICB2b2lkIGRlbGV0ZUFs
bEVudHJpZXMoV0tPcmlnaW5EYXRhTWFzayk7CisKKyAgICB2b2lkIHNldEFjY2VwdFBvbGljeShX
S09yaWdpbkRhdGFNYXNrLCBXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3kpOworICAgIHZvaWQgZ2V0
QWNjZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1hc2ssIFBhc3NSZWZQdHI8T3JpZ2luRGF0YUFjY2Vw
dFBvbGljeUNhbGxiYWNrPik7CisKKyAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09y
aWdpbkRhdGFNYXNrKTsKKyAgICB2b2lkIHN0b3BPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0
YU1hc2spOworICAgIHZvaWQgc2V0Q2hhbmdlQ2xpZW50KGNvbnN0IFdLT3JpZ2luRGF0YU1hbmFn
ZXJDaGFuZ2VDbGllbnQqKTsKKworICAgIHVzaW5nIEFQSU9iamVjdDo6cmVmOworICAgIHVzaW5n
IEFQSU9iamVjdDo6ZGVyZWY7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CisKKyAgICB2b2lkIGRpZEdldE9yaWdpbkRhdGFP
cmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiwgdWludDY0X3QgY2FsbGJh
Y2tJRCk7CisKKyAgICAvLyBXZWJDb250ZXh0U3VwcGxlbWVudAorICAgIHZpcnR1YWwgdm9pZCBj
b250ZXh0RGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRD
bG9zZShXZWJQcm9jZXNzUHJveHkqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
VGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCByZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgT1ZFUlJJREU7CisKKyAgICAvLyBDb3JlSVBD
OjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisK
KyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4+IG1fYXJyYXlDYWxs
YmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPE9yaWdpbkRhdGFBY2NlcHRQb2xp
Y3lDYWxsYmFjaz4+IG1fYWNjZXB0UG9saWN5Q2FsbGJhY2tzOworCisgICAgV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudCBtX2NsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eV9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2
ZDc2YjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI2IEBACisjIENvcHly
aWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHkgeworICAgIERpZEdldE9yaWdpbnMoVmVjdG9yPFdlYktpdDo6U2VjdXJp
dHlPcmlnaW5EYXRhPiBvcmlnaW5JZGVudGlmaWVycywgdWludDY0X3QgY2FsbGJhY2tJRCk7Cisg
ICAgRGlkQ2hhbmdlKCkKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjYwMWE5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFu
Z2VDbGllbnQuY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5o
IgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lk
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQ6OmRpZENoYW5nZShXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5KiBvcmlnaW5EYXRhTWFuYWdlcikKK3sKKyAgICBpZiAoIW1fY2xp
ZW50LmRpZENoYW5nZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuZGlkQ2hhbmdl
KHRvQVBJKG9yaWdpbkRhdGFNYW5hZ2VyKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE3NjdjZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdl
Q2xpZW50LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudF9oCisjZGVmaW5lIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlDaGFuZ2VDbGllbnRfaAorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVk
ZSAiV0tPcmlnaW5EYXRhTWFuYWdlci5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OworCitj
bGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50IDogcHVibGljIEFQSUNs
aWVudDxXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50LCBrV0tPcmlnaW5EYXRhTWFuYWdl
ckNoYW5nZUNsaWVudFZlcnNpb24+IHsKK3B1YmxpYzoKKyAgICB2b2lkIGRpZENoYW5nZShXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Kik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ0
ZDQ1ZDguLjc5YmRkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTU2Miw2ICs1NjIsMTggQEAKIAkJNkVFODQ5QzgxMzY4RDkz
OTAwMzhENDgxIC8qIFdLSW5zcGVjdG9yUHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVFODQ5QzYxMzY4RDkyRDAwMzhENDgxIC8qIFdL
SW5zcGVjdG9yUHJpdmF0ZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTcyOEU4NkYxMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tl
ck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI4
RTg2RUYxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLmggKi87IH07CiAJCTcy
OEU4NkYyMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOEU4NkYwMTc5NTE4OEMwMDg3
ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5tbSAqLzsgfTsKKwkJNzU1NDIyQkIxODA2MkI5QzAw
NDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIENvcHkgRmlsZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQjkxODA2MkI5QzAwNDZGNkE4IC8qIFdL
T3JpZ2luRGF0YU1hbmFnZXIuY3BwICovOyB9OworCQk3NTU0MjJCQzE4MDYyQjlDMDA0NkY2QTgg
LyogV0tPcmlnaW5EYXRhTWFuYWdlci5oIGluIENvcHkgRmlsZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQkExODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0
YU1hbmFnZXIuaCAqLzsgfTsKKwkJNzU1NDIyQkQxODA2MkJCMjAwNDZGNkE4IC8qIFdLT3JpZ2lu
RGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzU1NDIyQjkxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3Bw
ICovOyB9OworCQk3NTU0MjJDMzE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbiBpbiBDb3B5IEZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc1NTQyMkMwMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluICovOyB9OworCQk3NTU0MjJDNDE4MDYyQkY5MDA0NkY2QTgg
LyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJCRTE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJCTc1NTQyMkNBMTgwNjRGRkMwMDQ2RjZB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbiBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQzgxODA2NEZGQzAwNDZGNkE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluICovOyB9OworCQk3NTU0MjJDQjE4MDY1
MDAyMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNzU1NDIyQ0MxODA3NzNDRTAwNDZG
NkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJDNzE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXIuaCAqLzsgfTsKKwkJNzU5Q0NENTMxODA4RDAzMDAwNzhFOEE4IC8qIE9yaWdp
bkRhdGFBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1OUNDRDUxMTgwOEQwMUMwMDc4RThBOCAvKiBPcmlnaW5EYXRhQWNjZXB0UG9s
aWN5LmggKi87IH07CisJCTc1OUNDRDU4MTgwOEYxNjQwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc1OUNDRDU0MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCAqLzsgfTsKKwkJNzU5Q0NENTkxODA4RjE2
OTAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1OUNDRDU1MTgwOEYx
NjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggKi87
IH07CisJCTc1OUNDRDVBMTgwOEY2MTYwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0
MjJCRjE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oICovOyB9
OwogCQk3NjJCNzQ4RDEyMEJDNzVDMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2MkI3NDg0MTIw
QkJBMkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc4MDFDMDk5MTQyMjkwQzQwMEZBRjlB
RiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc4MDFDMDk1MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVz
dWx0LmNwcCAqLzsgfTsKIAkJNzgwMUMwOUExNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RS
ZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc4
MDFDMDk2MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmggKi87IH07CkBAIC0x
MzAyLDggKzEzMTQsMTEgQEAKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSAxOwogCQkJZmlsZXMgPSAo
CiAJCQkJNTEwQ0M4NDkxNjEzQzg1QzAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLmFwcCBpbiBD
b3B5IEZpbGVzICovLAorCQkJCTc1NTQyMkJDMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRh
dGFNYW5hZ2VyLmggaW4gQ29weSBGaWxlcyAqLywKIAkJCQlCQ0RFMEFCRjEzMjcyNzA4MDAxMjU5
RkIgLyogUGx1Z2luUHJvY2Vzcy5hcHAgaW4gQ29weSBGaWxlcyAqLywKKwkJCQk3NTU0MjJDMzE4
MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBp
biBDb3B5IEZpbGVzICovLAogCQkJCTFBNTBEQjY2MTEwQTNENTcwMDBEM0ZFNSAvKiBXZWJQcm9j
ZXNzLmFwcCBpbiBDb3B5IEZpbGVzICovLAorCQkJCTc1NTQyMkJCMTgwNjJCOUMwMDQ2RjZBOCAv
KiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBDb3B5IEZpbGVzICovLAogCQkJKTsKIAkJCW5h
bWUgPSAiQ29weSBGaWxlcyI7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKQEAgLTE5NjIsNiArMTk3NywxNyBAQAogCQk2RUU4NDlDNjEzNjhEOTJEMDAzOEQ0ODEg
LyogV0tJbnNwZWN0b3JQcml2YXRlTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdLSW5zcGVjdG9yUHJpdmF0ZU1hYy5oOyBwYXRoID0gbWFjL1dLSW5zcGVjdG9yUHJpdmF0
ZU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjhFODZFRjE3OTUxODhDMDA4
Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQ29sb3JQaWNrZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzI4RTg2RjAxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29sb3JQaWNrZXJNYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAvKiBX
S09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3NTU0MjJCQTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS09yaWdpbkRhdGFNYW5hZ2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3NTU0MjJCRjE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkMwMTgw
NjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkM2MTgwNjRGRkMwMDQ2RjZB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBXZWJPcmlnaW5EYXRhTWFuYWdlci5jcHA7IHBhdGggPSBPcmlnaW5EYXRhL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1
NDIyQzcxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmg7IHBhdGggPSBP
cmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTc1NTQyMkM4MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJPcmlnaW5EYXRhTWFuYWdlci5t
ZXNzYWdlcy5pbjsgcGF0aCA9IE9yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1OUNDRDUxMTgwOEQwMUMwMDc4
RThBOCAvKiBPcmlnaW5EYXRhQWNjZXB0UG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE9yaWdpbkRhdGFBY2NlcHRQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNzU5Q0NENTQxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHlDaGFuZ2VDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTc1OUNDRDU1MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzYyQjc0ODExMjBCQkEwMTAwODE5MzM5IC8qIEZvbnRTbW9v
dGhpbmdMZXZlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250U21vb3Ro
aW5nTGV2ZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzYyQjc0ODQxMjBCQkEy
RDAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLUHJlZmVyZW5jZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTc4MDFDMDk1MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkhpdFRlc3RSZXN1bHQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzEwOSw2ICszMTM1LDcgQEAKIAkJ
CQlERjU4QzYzMTEzNzFBQzU4MDBGOUEzN0MgLyogTmF0aXZlV2ViV2hlZWxFdmVudC5oICovLAog
CQkJCUJDQ0Y2NzMyMTJDN0YxNUMwMDhGOUMzNSAvKiBPcmlnaW5BbmREYXRhYmFzZXMuY3BwICov
LAogCQkJCUJDQ0Y2NzJDMTJDN0VERjcwMDhGOUMzNSAvKiBPcmlnaW5BbmREYXRhYmFzZXMuaCAq
LywKKwkJCQk3NTlDQ0Q1MTE4MDhEMDFDMDA3OEU4QTggLyogT3JpZ2luRGF0YUFjY2VwdFBvbGlj
eS5oICovLAogCQkJCUJDQzQzQUI4MTI3Qjk1REMwMDMxN0YxNiAvKiBQbGF0Zm9ybVBvcHVwTWVu
dURhdGEuY3BwICovLAogCQkJCUJDQzQzQUI5MTI3Qjk1REMwMDMxN0YxNiAvKiBQbGF0Zm9ybVBv
cHVwTWVudURhdGEuaCAqLywKIAkJCQlFMThDOTJGMzEyREI5RTcxMDBDRjJBRUIgLyogUHJpbnRJ
bmZvLmNwcCAqLywKQEAgLTM2NTIsNiArMzY3OSwxNiBAQAogCQkJbmFtZSA9IG1hYzsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTc1NTQyMkM1MTgwNjRGRkMwMDQ2RjZBOCAv
KiBPcmlnaW5EYXRhICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgK
KwkJCQk3NTU0MjJDNjE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3Bw
ICovLAorCQkJCTc1NTQyMkM3MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
ci5oICovLAorCQkJCTc1NTQyMkM4MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQluYW1lID0gT3JpZ2luRGF0YTsKKwkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTdDQjE2RkUxMTcyNEI5QjUwMDdBMEE5NSAv
KiBQbHVnSW5TYW5kYm94UHJvZmlsZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKApAQCAtMzcwMSw2ICszNzM4LDcgQEAKIAkJQkMwMzJENUMxMEY0MzZENTAwNThD
MTVBIC8qIFdlYlByb2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTc1NTQyMkM1MTgwNjRGRkMwMDQ2RjZBOCAvKiBPcmlnaW5EYXRhICovLAogCQkJ
CTUxMkUzNTJBMTMwQjU1OTkwMEFCRDE5QSAvKiBBcHBsaWNhdGlvbkNhY2hlICovLAogCQkJCTMz
MDkzNDRCMTMxNUI5M0EwMDk3QTdCQyAvKiBDb29raWVzICovLAogCQkJCUJDQUNDNDNCMTZCMjRD
NUQwMEI2RTA5MiAvKiBFbnRyeVBvaW50ICovLApAQCAtMzkzMCw2ICszOTY4LDExIEBACiAJCQkJ
QkNGNjlGQTAxMTc2RDAxNDAwNDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhLmggKi8sCiAJCQkJ
QkMxREZFQTMxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJv
eHkuY3BwICovLAogCQkJCUJDMURGRUEyMTJCMzFGODcwMDVERjczMCAvKiBXZWJPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lclByb3h5LmggKi8sCisJCQkJNzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICovLAorCQkJCTc1NTQyMkJGMTgwNjJCRTQw
MDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggKi8sCisJCQkJNzU1NDIyQzAx
ODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4g
Ki8sCisJCQkJNzU5Q0NENTQxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHlDaGFuZ2VDbGllbnQuY3BwICovLAorCQkJCTc1OUNDRDU1MTgwOEYxNjAwMDc4RThBOCAv
KiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggKi8sCiAJCQkJNTE1MzU2
OUExMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8sCiAJ
CQkJNTE1MzU2OUIxMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5o
ICovLAogCQkJCUJDN0I2MjA1MTI5QTBBNjcwMEQxNzRBNCAvKiBXZWJQYWdlR3JvdXAuY3BwICov
LApAQCAtNDAzMyw2ICs0MDc2LDggQEAKIAkJCQlCQzg1N0ZFNDEyQjg0M0Q4MDBFREVCMkUgLyog
V0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmggKi8sCiAJCQkJQkMxREZFOEUxMkIzMUNBODAwNURGNzMw
IC8qIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwICovLAogCQkJCUJDMURGRThEMTJCMzFD
QTgwMDVERjczMCAvKiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggKi8sCisJCQkJNzU1NDIy
QjkxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovLAorCQkJCTc1
NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggKi8sCiAJCQkJ
QkNENTk3RDQxMTJCNTZEQzAwRUM4QzIzIC8qIFdLUGFnZS5jcHAgKi8sCiAJCQkJQkNENTk3RDUx
MTJCNTZEQzAwRUM4QzIzIC8qIFdLUGFnZS5oICovLAogCQkJCUJDN0I2MzM2MTJBNDVBQkEwMEQx
NzRBNCAvKiBXS1BhZ2VHcm91cC5jcHAgKi8sCkBAIC01MTE2LDYgKzUxNjEsNyBAQAogCQkJCUJD
NkVEQUE2MTExMjcxQzYwMEU3Njc4QiAvKiBQYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzExMUI1MDExMkY2MTkyMDAzMzdCQUIgLyogUGFnZUNsaWVudEltcGwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBOTBDMjM3MTI2NTA3MTcwMDNFNDRENCAvKiBQYWdlT3ZlcmxheS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNzU5Q0NENTMxODA4RDAzMDAwNzhFOEE4IC8qIE9yaWdpbkRhdGFBY2Nl
cHRQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NzRBNTgxMTJFNjY2ODEwMDJERkU5OCAv
KiBQYXN0ZWJvYXJkVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxOTU4MkQzMTUzQ0JGRDcw
MEI2MDg3NSAvKiBQREZLaXRJbXBvcnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUZDQjE4OTE3
QkJGRTAzMDAzOTRDRDggLyogU3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTU0ODAsNiArNTUyNiw3IEBACiAJCQkJQkNEREIzMkIxMjRFQzJBQjAwNDhE
MTNDIC8qIFdLU2hhcmVkQVBJQ2FzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDYxMjRG
RjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYxQTEy
NEZGMDM3MDA2OEYyMEEgLyogV0tTdHJpbmdDRi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU5Q0NE
NTkxODA4RjE2OTAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTA5OTgwMTI1NkE5ODIwMDA4Mzc1NiAvKiBXS1N0
cmluZ1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3N0VBRDQ4MTdFMkM3N0IwMDJEMTkz
RCAvKiBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
NEE5QUE4MTJCN0U3OTYwMDhGRTk4NCAvKiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLApAQCAtNTQ5MCwxMSArNTUzNywxMyBAQAogCQkJCUJDNDA3NjBDMTI0RkYw
MjcwMDY4RjIwQSAvKiBXS1VSTFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjI5
MTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlcXVlc3ROUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM0MDc2MEUxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2UuaCBpbiBIZWFkZXJzICov
LAorCQkJCTc1OUNDRDVBMTgwOEY2MTYwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYyQjEyNEZGMDQwMDA2OEYyMEEgLyogV0tV
UkxSZXNwb25zZU5TLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNjExM0UyOTEyNkNFMTlCMDA1N0Qw
QTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODY5
OUI1MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODY5
OUI3MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXdJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkZBNjE3OUYxMkYwQjk5RDAwMzNFMENBIC8qIFdLVmlld1ByaXZhdGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTc1NTQyMkNDMTgwNzczQ0UwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVFMUFGRTkxNkIyMEI3NTAwNkNDMUYyIC8qIFdLV2Vi
QXJjaGl2ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVFMUFGRUIxNkIyMEI3RTAwNkNDMUYyIC8q
IFdLV2ViQXJjaGl2ZVJlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk4OUQ4MjE2MUE3
RTVEMDAwRDQ2RDMgLyogV0tXZWJQcm9jZXNzUGx1Z0luLmggaW4gSGVhZGVycyAqLywKQEAgLTU4
MjksNiArNTg3OCw3IEBACiAJCQlmaWxlcyA9ICgKIAkJCQlFMUQyNkE1MTE3NTk2NEQ3MDA5NUJG
RDEgLyogV2ViQ29udGVudFByb2Nlc3MueGliIGluIFJlc291cmNlcyAqLywKIAkJCQlFMTMzRkQ4
QTE0MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0LmljbnMgaW4gUmVzb3VyY2VzICovLAorCQkJCTc1
NTQyMkNBMTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5p
biBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkBAIC02MTk4LDYgKzYyNDgsNyBAQAogCQkJCUUxRUU1M0U3MTFG
OENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkMxNEUxMDkxMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxl
UGFnZUZvcm1DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1QzY2QTAxMzRCOUQzODAw
NEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNzU1NDIyQ0IxODA2NTAwMjAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQThDNkE4MTFFM0JBNUYwMDgxMkZCNyAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4
MTQ3QUExMkY2NENEQTAwN0IyQzMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTlDNTUxRTEzMDAwNjQxMDAyNUMwQzIgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjMw
OSw2ICs2MzYwLDcgQEAKIAkJCQkxQTA0M0I1RDEyNEQ1RTlEMDBGRkJGQjUgLyogUGx1Z2luUHJv
Y2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMDQzREMy
MTI0RkY4NzUwMEZGQkZCNSAvKiBQbHVnaW5Qcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QTJEOTIyMTEyODFEQzFCMDAxRUI5NjIgLyogUGx1Z2luUHJveHlNYWMubW0gaW4gU291cmNlcyAq
LywKKwkJCQk3NTU0MjJDNDE4MDYyQkY5MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQThFRkE3MDEyNTJCODQxMDBGNzA2N0YgLyog
UGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NENjIy
NzcxNzM5RDg2MzAwNUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM4Mjg0NEQxNkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2VFbnRyeVBv
aW50Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC02NDI4LDYgKzY0ODAsNyBAQAogCQkJCUJDQjlGNkEx
MTEyM0E4NEIwMEExMzdFMCAvKiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkMxMTFCMEUxMTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1lUHJveHku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNTMxMzFCNjQ1QjAwRUVERUQyIC8qIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1NTQyMkJEMTgwNjJCQjIw
MDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
NzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDZGNzVGNDEzMUI2NkQwMDBENkIyMUUgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRENBODVF
RTEzMkFENzAxMDBFOTYxREYgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5tbSBpbiBT
b3VyY2VzICovLApAQCAtNjU3MCw2ICs2NjIzLDcgQEAKIAkJCQk5RkI1RjM5NDE2OUU2QTgwMDAy
QzI1QkYgLyogV0tDb250ZXh0UHJpdmF0ZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTMzMDkz
NDVBMTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nvb2tpZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTEyRjU4RjkxMkE4OEE1NDAwNjI5NTMwIC8qIFdLQ3JlZGVudGlhbC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk3NTlDQ0Q1ODE4MDhGMTY0MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzVGNzEy
NEZGMDI3MDA2OEYyMEEgLyogV0tEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY2MkE3NjYx
MTJCMUFCRUQwMDA1RjFCNiAvKiBXS0RhdGFiYXNlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzQwNzVGOTEyNEZGMDI3MDA2OEYyMEEgLyogV0tEaWN0aW9uYXJ5LmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRh
L1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3Jp
Z2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZjEyNGU5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKQEAgLTAsMCArMSw5
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJPcmlnaW5EYXRhTWFuYWdlci5oIgorCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzLmgiCisjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luSGFz
aC5oPgorCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjb25zdCBjaGFyKiBXZWJPcmlnaW5EYXRhTWFu
YWdlcjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVybiAiV2ViT3JpZ2luRGF0YU1hbmFn
ZXIiOworfQorCitXZWJPcmlnaW5EYXRhTWFuYWdlcjo6V2ViT3JpZ2luRGF0YU1hbmFnZXIoQ2hp
bGRQcm9jZXNzKiBjaGlsZFByb2Nlc3MpCisgICAgOiBtX2NoaWxkUHJvY2VzcyhjaGlsZFByb2Nl
c3MpCit7CisgICAgbV9jaGlsZFByb2Nlc3MtPmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
V2ViT3JpZ2luRGF0YU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7Cit9CisK
K3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXI6OmdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFzayBt
YXNrLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5
T3JpZ2luPj4gb3JpZ2luczsKKworICAgIC8vIEZJWE1FOiBwb3B1bGF0ZSBvcmlnaW5zCisKKyAg
ICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBpZGVudGlmaWVyczsKKyAgICBpZGVudGlmaWVy
cy5yZXNlcnZlQ2FwYWNpdHkob3JpZ2lucy5zaXplKCkpOworCisgICAgSGFzaFNldDxSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+Pjo6aXRlcmF0b3IgZW5kID0gb3JpZ2lucy5lbmQoKTsKKyAgICBIYXNo
U2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+OjppdGVyYXRvciBpID0gb3JpZ2lucy5iZWdpbigp
OworICAgIGZvciAoOyBpICE9IGVuZDsgKytpKSB7CisgICAgICAgIFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4gb3JpZ2luID0gKmk7CisKKyAgICAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbkRh
dGE7CisgICAgICAgIG9yaWdpbkRhdGEucHJvdG9jb2wgPSBvcmlnaW4tPnByb3RvY29sKCk7Cisg
ICAgICAgIG9yaWdpbkRhdGEuaG9zdCA9IG9yaWdpbi0+aG9zdCgpOworICAgICAgICBvcmlnaW5E
YXRhLnBvcnQgPSBvcmlnaW4tPnBvcnQoKTsKKworICAgICAgICBpZGVudGlmaWVycy51bmNoZWNr
ZWRBcHBlbmQob3JpZ2luRGF0YSk7CisgICAgfQorCisgICAgbV9jaGlsZFByb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OkRpZEdldE9yaWdpbnMoaWRlbnRp
ZmllcnMsIGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6
ZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFNYXNrIG1hc2ssIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYgb3JpZ2luRGF0YSkKK3sKKyAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IG9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUob3JpZ2luRGF0YS5wcm90b2NvbCwgb3Jp
Z2luRGF0YS5ob3N0LCBvcmlnaW5EYXRhLnBvcnQpOworICAgIGlmICghb3JpZ2luKQorICAgICAg
ICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogZGVsZXRlIGNhY2hlCit9CisKK3ZvaWQgV2ViT3Jp
Z2luRGF0YU1hbmFnZXI6OmRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhTWFzayBtYXNrKQor
eworICAgIC8vIEZJWE1FOiBkZWxldGUgZW50cmllcworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJP
cmlnaW5EYXRhTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRh
L1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZDYzNmRlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
T3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk9yaWdpbkRhdGFNYW5hZ2VyX2gKKyNkZWZpbmUgV2Vi
T3JpZ2luRGF0YU1hbmFnZXJfaAorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5j
bHVkZSAiV0tPcmlnaW5EYXRhTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBwbGVt
ZW50LmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBDaGlsZFByb2Nlc3M7
CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworCitjbGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdl
ciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIENvcmVJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViT3JpZ2luRGF0YU1hbmFnZXIp
OworcHVibGljOgorICAgIFdlYk9yaWdpbkRhdGFNYW5hZ2VyKENoaWxkUHJvY2VzcyopOworCisg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisKKyAgICB2b2lkIGRlbGV0
ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhTWFzayk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBnZXRP
cmlnaW5zKFdLT3JpZ2luRGF0YU1hc2ssIHVpbnQ2NF90KTsKKyAgICB2b2lkIGRlbGV0ZUVudHJp
ZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFzaywgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7
CisKKyAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJikgT1ZFUlJJREU7CisKKyAgICBDaGlsZFByb2Nlc3MqIG1fY2hpbGRQcm9jZXNzOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJPcmlnaW5EYXRhTWFuYWdl
cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2Vi
T3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBlNjQyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNz
YWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisjIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgor
IyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
CisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYk9yaWdpbkRhdGFNYW5hZ2VyIHsKKyAgICB2b2lkIEdl
dE9yaWdpbnModWludDMyX3QgbWFzaywgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICB2b2lkIERl
bGV0ZUVudHJpZXNGb3JPcmlnaW4odWludDMyX3QgbWFzaywgV2ViS2l0OjpTZWN1cml0eU9yaWdp
bkRhdGEgb3JpZ2luSWRlbnRpZmllcikKKyAgICB2b2lkIERlbGV0ZUFsbEVudHJpZXModWludDMy
X3QgbWFzaykKKyAgICB2b2lkIFNldEFjY2VwdFBvbGljeSh1aW50MzJfdCBtYXNrLCB1aW50MzJf
dCBwb2xpY3kpCisgICAgdm9pZCBHZXRBY2NlcHRQb2xpY3kodWludDMyX3QgbWFzaywgdWludDY0
X3QgY2FsbGJhY2tJRCkKKyAgICB2b2lkIFN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyh1aW50MzJfdCBt
YXNrKQorICAgIHZvaWQgU3RvcE9ic2VydmluZ0NoYW5nZXModWludDMyX3QgbWFzaykKK30K
</data>
<flag name="commit-queue"
          id="236762"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214235</attachid>
            <date>2013-10-14 23:53:19 -0700</date>
            <delta_ts>2013-10-15 11:53:17 -0700</delta_ts>
            <desc>another build fix</desc>
            <filename>122781e.diff</filename>
            <type>text/plain</type>
            <size>64972</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggN2M3YzQxZC4uOGExYmUzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTQ2LDYgKzQ2LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0xhdW5jaGluZyIKICAgICAiJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvT3JpZ2lu
RGF0YSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dF
QktJVDJfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKQEAgLTMwNyw2ICszMDgsOCBAQCBzZXQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNw
cAogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vz
cy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1l
bnVDbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAKICAgICBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzU0LDYgKzM1Nyw3IEBAIHNldChXZWJLaXQyX1NPVVJD
RVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5j
cHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcAorICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAKQEAgLTQ2MSw2ICs0NjUsOCBAQCBz
ZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKICAgICBXZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvT3JpZ2lu
RGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKKwogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW4uY3BwCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
LmNwcAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuY3BwCkBAIC01NDksNiArNTU1LDcgQEAgc2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMK
ICAgICBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nl
c3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9X
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorICAgIFVJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtNTg2LDYgKzU5Myw4IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAg
ICBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdl
cy5pbgogCisgICAgV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1l
c3NhZ2VzLmluCisKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b3h5Lm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmRlNDAxZC4uNjMyMWZiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDc1IEBACisyMDEzLTEwLTE0ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWZhY3RvciBzdG9yZWQgd2Vic2l0ZSBkYXRhIEFQSXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjc4MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJPcmlnaW5E
YXRhTWFuYWdlciBhbG9uZyB3aXRoIGNvcnJlc3BvbmRpbmcgY2xhc3MKKyAgICAgICAgV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eSBhbmQgQVBJIFdLT3JpZ2luRGF0YU1hbmFnZXIuCisKKyAgICAg
ICAgQ3VycmVudGx5LCB0aGUgbmV3IGZpbGVzIGFyZSB1bnVzZWQuCisKKyAgICAgICAgV0tPcmln
aW5EYXRhTWFuYWdlciBzaG91bGQgc3Vic3VtZSB0aGUgZnVuY3Rpb25hbGl0eSBvZjoKKyAgICAg
ICAgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciwgV0tDb29raWVNYW5hZ2VyLCBXS0RhdGFiYXNl
TWFuYWdlciwKKyAgICAgICAgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLCBXS01lZGlhQ2FjaGVN
YW5hZ2VyLAorICAgICAgICBXS1BsdWdpblNpdGVEYXRhTWFuYWdlciwgYW5kIFdLUmVzb3VyY2VD
YWNoZU1hbmFnZXIuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDoK
KyAgICAgICAgKiBTaGFyZWQvT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRHZXRPcmlnaW5EYXRhTWFuYWdl
cik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChX
S09yaWdpbkRhdGFNYW5hZ2VyR2V0VHlwZUlEKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFn
ZXJHZXRPcmlnaW5zKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVFbnRyaWVz
Rm9yT3JpZ2luKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRyaWVz
KToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJTZXRBY2NlcHRQb2xpY3kpOgorICAgICAg
ICAoV0tPcmlnaW5EYXRhTWFuYWdlckdldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXS09yaWdp
bkRhdGFNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0
YU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5h
Z2VyU2V0Q2hhbmdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5E
YXRhTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5OjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHk6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojp+V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0
cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpwcm9j
ZXNzRGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
OjpzaG91bGRUZXJtaW5hdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5OjpyZWZXZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpnZXRPcmlnaW5zKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2luRGF0YU9y
aWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxl
dGVFbnRyaWVzRm9yT3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eTo6ZGVsZXRlQWxsRW50cmllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OnNldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6OmdldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0b3BPYnNlcnZpbmdDaGFu
Z2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c2V0Q2hh
bmdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudDo6ZGlkQ2hhbmdlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpXZWJPcmlnaW5EYXRhTWFu
YWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpnZXRPcmlnaW5z
KToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OmRlbGV0ZUVudHJpZXNG
b3JPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRl
QWxsRW50cmllcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRh
dGFNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJP
cmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTMtMTAtMTQgIENzYWJh
IE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbV0syXVtFZmxdW1Nv
dXBdIE1ha2UgTmV0d29ya1Byb2Nlc3NNYWluVW5peCBoYW5kbGUgcHJveHkgc2V0dGluZ3MuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA1NTUxNzRiLi5mMWZhMDc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM5LDYgKzM5LDcgQEAgVlBBVEggPSBcCiAgICAg
JChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9OZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyBc
CisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2ViS2l0Mikv
V2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VD
YWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXApAQCAtOTksNiArMTAw
LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViTWVkaWFDYWNoZU1hbmFnZXIgXAog
ICAgIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkgXAogICAgIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIgXAorICAgIFdlYk9yaWdpbkRhdGFNYW5hZ2VyIFwKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5IFwKICAgICBXZWJQYWdlIFwKICAgICBXZWJQYWdlR3JvdXBQcm94eSBcCiAgICAgV2Vi
UGFnZVByb3h5IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtIGIv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KaW5kZXggYjgyNWJjMy4uN2NhZDEwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktp
dDIvR05VbWFrZWZpbGUuYW0KQEAgLTE1NSw2ICsxNTUsNyBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJL
SVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xh
X0NQUAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZSBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyBcCiAJ
LUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKKwkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogCS1JJChz
cmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAJLUkkKHNy
Y2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKIAktSSQoc3JjZGlyKS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAgXApAQCAtMzgzLDYgKzM4NCw3IEBAIHZwYXRo
ICUubWVzc2FnZXMuaW4gPSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsgXAogCSQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMgXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKIAkk
KFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jl
c291cmNlQ2FjaGUgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKQEAgLTc0Niw2
ICs3NDgsNyBAQCBFWFRSQV9ESVNUICs9IFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9OZXR3b3JrLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9O
ZXR3b3JrSW5mby8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy8qLmluKSBcCisJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvT3Jp
Z2luRGF0YS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lu
cy8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFnZS8qLmlu
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxZTMyMGM5Li4wMDhkNWYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTgzLDYgKzgzLDcgQEAgd2Via2l0Ml9o
X2FwaSArPSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92
aWRlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRl
cnMuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lci5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGEuaCBcCiAJ
JChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaCBcCiAJJChXZWJLaXQyKS9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZVByaXZhdGUuaCBcCkBAIC0yMjMsNiArMjI0LDEwIEBAIHdlYmtpdDJfYnVpbHRfc291cmNl
cyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94
eU1lc3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
T3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlR3JvdXBQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUGFnZUdyb3VwUHJveHlNZXNz
YWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlBhZ2VQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgXApAQCAtNjQzLDYgKzY0OCw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5j
cHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFN
YW5hZ2VyLmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0
YU1hbmFnZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAgXAogCVNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oIFwKQEAgLTk4Miw2ICs5
ODksMTAgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViTmV0d29ya0luZm9Qcm92aWRlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCBcCisJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBcCisJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDbGllbnQuY3BwIFwKKwlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNsaWVudC5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggNjk5NGNiZC4uMTk3YWQ5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtMTE5LDYgKzExOSw3IEBAIHR5cGVkZWYgY29uc3Qg
c3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QqIFdLTm90aWZpY2F0
aW9uUGVybWlzCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05vdGlmaWNhdGlvblByb3Zp
ZGVyKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tPcGVuUGFuZWxQYXJhbWV0ZXJzKiBXS09wZW5QYW5lbFBhcmFtZXRlcnNSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyKiBXS09wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tPcmln
aW5EYXRhTWFuYWdlciogV0tPcmlnaW5EYXRhTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLUGFnZSogV0tQYWdlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tQYWdlR3JvdXAqIFdLUGFnZUdyb3VwUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSU9iamVjdC5oCmluZGV4IDQ0MWUwNWUuLjcwMzIxYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJT2JqZWN0LmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5
cGVOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwKICAgICAgICAgVHlwZU9wZW5QYW5lbFBh
cmFtZXRlcnMsCiAgICAgICAgIFR5cGVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciwKKyAgICAgICAg
VHlwZU9yaWdpbkRhdGFNYW5hZ2VyLAogICAgICAgICBUeXBlUGFnZSwKICAgICAgICAgVHlwZVBh
Z2VHcm91cCwKICAgICAgICAgVHlwZVBsdWdpblNpdGVEYXRhTWFuYWdlciwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5EYXRhQWNjZXB0UG9saWN5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjk2MmI4NzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE9yaWdp
bkRhdGFBY2NlcHRQb2xpY3lfaAorI2RlZmluZSBPcmlnaW5EYXRhQWNjZXB0UG9saWN5X2gKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0geworICAgIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3lB
bHdheXMgPSAwLAorICAgIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3lOZXZlciA9IDEsCisgICAgT3Jp
Z2luRGF0YUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluID0gMiwKK307Cit0
eXBlZGVmIHVuc2lnbmVkIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3k7CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gT3JpZ2luRGF0YUFjY2VwdFBvbGljeV9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNjRjOGQxYS4uMmQ5NzY0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIkZvbnRTbW9vdGhpbmdMZXZlbC5oIgogI2luY2x1ZGUgIkhUVFBD
b29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1
bHRNZWRpYVR5cGUuaCIKKyNpbmNsdWRlICJPcmlnaW5EYXRhQWNjZXB0UG9saWN5LmgiCiAjaW5j
bHVkZSAiUGx1Z2luTW9kdWxlSW5mby5oIgogI2luY2x1ZGUgIlByb2Nlc3NNb2RlbC5oIgogI2lu
Y2x1ZGUgIlJlc291cmNlQ2FjaGVzVG9DbGVhci5oIgpAQCAtODcsNiArODgsNyBAQCBjbGFzcyBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlcjsKIGNsYXNzIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eTsKIGNsYXNzIFdlYk9wZW5QYW5lbFBhcmFtZXRlcnM7CiBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lclByb3h5OworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTsKIGNsYXNz
IFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlBsdWdpblNpdGVE
YXRhTWFuYWdlcjsKQEAgLTEzMyw2ICsxMzUsNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tOb3Rp
ZmljYXRpb25Qcm92aWRlclJlZiwgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tOb3RpZmljYXRpb25SZWYsIFdlYk5vdGlmaWNhdGlvbikKIFdLX0FERF9BUElf
TUFQUElORyhXS09wZW5QYW5lbFBhcmFtZXRlcnNSZWYsIFdlYk9wZW5QYW5lbFBhcmFtZXRlcnMp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiwgV2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSkKK1dLX0FERF9BUElfTUFQUElORyhXS09yaWdpbkRh
dGFNYW5hZ2VyUmVmLCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLUGFnZUdyb3VwUmVmLCBXZWJQYWdlR3JvdXApCiBXS19BRERfQVBJX01BUFBJTkcoV0tQ
YWdlUmVmLCBXZWJQYWdlUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tQbHVnaW5TaXRlRGF0
YU1hbmFnZXJSZWYsIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggYTQ3ZTQ5Zi4uZmJmYmMxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTQxLDYg
KzQxLDcgQEAKICNpbmNsdWRlICJXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCIK
ICNpbmNsdWRlICJXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgiCiAjaWYgRU5BQkxFKFNR
TF9EQVRBQkFTRSkKICNpbmNsdWRlICJXZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oIgpAQCAtMjc0
LDYgKzI3NSwxMSBAQCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFJlc291
cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UgogICAgIHJldHVybiB0b0FQSSh0
b0ltcGwoY29udGV4dFJlZiktPnN1cHBsZW1lbnQ8V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eT4oKSk7CiB9CiAKK1dLT3JpZ2luRGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0T3JpZ2luRGF0
YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCit7CisgICAgcmV0dXJuIHRvQVBJKHRv
SW1wbChjb250ZXh0UmVmKS0+c3VwcGxlbWVudDxXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Pigp
KTsKK30KKwogdm9pZCBXS0NvbnRleHRTdGFydE1lbW9yeVNhbXBsZXIoV0tDb250ZXh0UmVmIGNv
bnRleHRSZWYsIFdLRG91YmxlUmVmIGludGVydmFsKQogewogICAgIHRvSW1wbChjb250ZXh0UmVm
KS0+c3RhcnRNZW1vcnlTYW1wbGVyKHRvSW1wbChpbnRlcnZhbCktPnZhbHVlKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCmluZGV4IDNjZTczMWUuLmVmZDY3
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKQEAgLTE5
NSw3ICsxOTUsOCBAQCBXS19FWFBPUlQgV0tOZXR3b3JrSW5mb01hbmFnZXJSZWYgV0tDb250ZXh0
R2V0TmV0d29ya0luZm9NYW5hZ2VyKFdLQ29udGV4dFJlZiBjbwogV0tfRVhQT1JUIFdLTm90aWZp
Y2F0aW9uTWFuYWdlclJlZiBXS0NvbnRleHRHZXROb3RpZmljYXRpb25NYW5hZ2VyKFdLQ29udGV4
dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiBXS0Nv
bnRleHRHZXRQbHVnaW5TaXRlRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tf
RVhQT1JUIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNo
ZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwotICAgIAorV0tfRVhQT1JUIFdLT3JpZ2lu
RGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0T3JpZ2luRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVm
IGNvbnRleHQpOworCiB0eXBlZGVmIHZvaWQgKCpXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rp
b24pKFdLRGljdGlvbmFyeVJlZiBzdGF0aXN0aWNzLCBXS0Vycm9yUmVmIGVycm9yLCB2b2lkKiBm
dW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0R2V0U3RhdGlzdGljcyhX
S0NvbnRleHRSZWYgY29udGV4dCwgdm9pZCogZnVuY3Rpb25Db250ZXh0LCBXS0NvbnRleHRHZXRT
dGF0aXN0aWNzRnVuY3Rpb24gZnVuY3Rpb24pOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0R2V0
U3RhdGlzdGljc1dpdGhPcHRpb25zKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1N0YXRpc3RpY3NP
cHRpb25zIHN0YXRpc3RpY3NNYXNrLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQsIFdLQ29udGV4dEdl
dFN0YXRpc3RpY3NGdW5jdGlvbiBmdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNjBiMjRkOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcApAQCAtMCwwICsx
LDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLT3Jp
Z2luRGF0YU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKwor
V0tUeXBlSUQgV0tPcmlnaW5EYXRhTWFuYWdlckdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRv
QVBJKFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OkFQSVR5cGUpOworfQorCit2b2lkIFdLT3Jp
Z2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0
YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgdm9pZCogY29udGV4dCwgV0tPcmln
aW5EYXRhTWFuYWdlckdldE9yaWdpbnNGdW5jdGlvbiBjYWxsYmFjaykKK3sKKyAgICB0b0ltcGwo
b3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5nZXRPcmlnaW5zKG1hc2ssIEFycmF5Q2FsbGJhY2s6OmNy
ZWF0ZShjb250ZXh0LCBjYWxsYmFjaykpOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJE
ZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1h
bmFnZXJSZWYsIFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgV0tTZWN1cml0eU9yaWdpblJlZiBvcmln
aW5SZWYpCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+ZGVsZXRlRW50cmll
c0Zvck9yaWdpbihtYXNrLCB0b0ltcGwob3JpZ2luUmVmKSk7Cit9CisKK3ZvaWQgV0tPcmlnaW5E
YXRhTWFuYWdlckRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5E
YXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRhTWFzayBtYXNrKQoreworICAgIHRvSW1wbChvcmln
aW5EYXRhTWFuYWdlclJlZiktPmRlbGV0ZUFsbEVudHJpZXMobWFzayk7Cit9CisKK3ZvaWQgV0tP
cmlnaW5EYXRhTWFuYWdlclNldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9y
aWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFNYXNrIG1hc2ssIFdLT3JpZ2luRGF0YUFj
Y2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+
c2V0QWNjZXB0UG9saWN5KG1hc2ssIHBvbGljeSk7Cit9Cit2b2lkIFdLT3JpZ2luRGF0YU1hbmFn
ZXJHZXRBY2NlcHRQb2xpY3koV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdl
clJlZiwgV0tPcmlnaW5EYXRhTWFzayBtYXNrLCB2b2lkKiBjb250ZXh0LCBXS09yaWdpbkRhdGFN
YW5hZ2VyR2V0QWNjZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spCit7CisgICAgdG9JbXBsKG9y
aWdpbkRhdGFNYW5hZ2VyUmVmKS0+Z2V0QWNjZXB0UG9saWN5KG1hc2ssIE9yaWdpbkRhdGFBY2Nl
cHRQb2xpY3lDYWxsYmFjazo6Y3JlYXRlKGNvbnRleHQsIGNhbGxiYWNrKSk7Cit9CisKK3ZvaWQg
V0tPcmlnaW5EYXRhTWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYW5h
Z2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFNYXNrIG1hc2spCit7Cisg
ICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKG1h
c2spOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ2hhbmdlcyhX
S09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFN
YXNrIG1hc2spCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+c3RvcE9ic2Vy
dmluZ0NoYW5nZXMobWFzayk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclNldENoYW5n
ZUNsaWVudChXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBjb25z
dCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50ICpjbGllbnQpCit7CisgICAgdG9JbXBs
KG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+c2V0Q2hhbmdlQ2xpZW50KGNsaWVudCk7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdl
ci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzAxMDhlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFn
ZXIuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS09yaWdpbkRhdGFN
YW5hZ2VyX2gKKyNkZWZpbmUgV0tPcmlnaW5EYXRhTWFuYWdlcl9oCisKKyNpbmNsdWRlIDxXZWJL
aXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlm
CisKK2VudW0geworICAgIGtXS09yaWdpbkRhdGFNYXNrQXBwbGljYXRpb25DYWNoZSA9IDEgPDwg
MCwKKyAgICBrV0tPcmlnaW5EYXRhTWFza0Nvb2tpZSA9IDEgPDwgMSwKKyAgICBrV0tPcmlnaW5E
YXRhTWFza0RhdGFiYXNlID0gMSA8PCAyLAorICAgIGtXS09yaWdpbkRhdGFNYXNrS2V5VmFsdWVT
dG9yYWdlID0gMSA8PCAzLAorICAgIGtXS09yaWdpbkRhdGFNYXNrTWVkaWFDYWNoZSA9IDEgPDwg
NCwKKyAgICBrV0tPcmlnaW5EYXRhTWFza1BsdWdpbkRhdGEgPSAxIDw8IDUsCisgICAga1dLT3Jp
Z2luRGF0YU1hc2tSZXNvdXJjZUNhY2hlID0gMSA8PCA2LAorCisgICAga1dLT3JpZ2luRGF0YU1h
c2tBbGwgPSAoMSA8PCA3KSAtIDEKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLT3JpZ2luRGF0YU1h
c2s7CisKK2VudW0geworICAgIGtXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3lBbHdheXMgPSAwLAor
ICAgIGtXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3lOZXZlciA9IDEsCisgICAga1dLT3JpZ2luRGF0
YUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluID0gMgorfTsKK3R5cGVkZWYg
dWludDMyX3QgV0tPcmlnaW5EYXRhQWNjZXB0UG9saWN5OworCitXS19FWFBPUlQgV0tUeXBlSUQg
V0tPcmlnaW5EYXRhTWFuYWdlckdldFR5cGVJRCgpOworCit0eXBlZGVmIHZvaWQgKCpXS09yaWdp
bkRhdGFNYW5hZ2VyR2V0T3JpZ2luc0Z1bmN0aW9uKShXS0FycmF5UmVmLCBXS0Vycm9yUmVmLCB2
b2lkKik7CitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2lucyhXS09y
aWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFNYXNrIG1h
c2ssIHZvaWQqIGNvbnRleHQsIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zRnVuY3Rpb24g
ZnVuY3Rpb24pOworCitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlRW50
cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBX
S09yaWdpbkRhdGFNYXNrIG1hc2ssIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKTsKK1dLX0VY
UE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0
YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3JpZ2luRGF0YU1hc2sgbWFzayk7CisK
Ky8vIE9yaWdpbkRhdGFNYW5hZ2VyIENsaWVudAordHlwZWRlZiB2b2lkICgqV0tPcmlnaW5EYXRh
TWFuYWdlckNoYW5nZUNhbGxiYWNrKShXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFN
YW5hZ2VyLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3N0cnVjdCBXS09yaWdpbkRhdGFNYW5h
Z2VyQ2hhbmdlQ2xpZW50IHsKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVu
dEluZm87CisgICAgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNhbGxiYWNrICAgZGlkQ2hhbmdl
OworfTsKK3R5cGVkZWYgc3RydWN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQgV0tP
cmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudDsKKworZW51bSB7IGtXS09yaWdpbkRhdGFNYW5h
Z2VyQ2hhbmdlQ2xpZW50VmVyc2lvbiA9IDAgfTsKKworLy8gQ3VycmVudGx5LCBvbmx5IG1hc2sg
PT0gV0tPcmlnaW5EYXRhTWFuYWdlckNvb2tpZSBpcyBzdXBwb3J0ZWQgZm9yIHRoZSBmb2xsb3dp
bmcuCitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU2V0QWNjZXB0UG9saWN5KFdL
T3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3JpZ2luRGF0YU1hc2sg
bWFzaywgV0tPcmlnaW5EYXRhQWNjZXB0UG9saWN5IHBvbGljeSk7Cit0eXBlZGVmIHZvaWQgKCpX
S09yaWdpbkRhdGFNYW5hZ2VyR2V0QWNjZXB0UG9saWN5RnVuY3Rpb24pKFdLT3JpZ2luRGF0YUFj
Y2VwdFBvbGljeSwgV0tFcnJvclJlZiwgdm9pZCopOworV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5E
YXRhTWFuYWdlckdldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRh
dGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFNYXNrIG1hc2ssIHZvaWQqIGNvbnRleHQsIFdLT3JpZ2lu
RGF0YU1hbmFnZXJHZXRBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjayk7CisKK1dLX0VYUE9S
VCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTdGFydE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5E
YXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhTWFzayBtYXNrKTsK
K1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ2hhbmdlcyhX
S09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFNYXNr
IG1hc2spOworV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclNldENoYW5nZUNsaWVu
dChXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5nZXIsIGNvbnN0IFdLT3JpZ2lu
RGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQqIGNsaWVudCk7CisjaWZkZWYgX19jcGx1c3BsdXMKK30K
KyNlbmRpZgorCisjZW5kaWYgLy8gV0tPcmlnaW5EYXRhTWFuYWdlcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ZlMzJlYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNw
cApAQCAtMCwwICsxLDE2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAi
V2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjb25zdCBjaGFyKiBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5OjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5IjsKK30KKworUGFzc1JlZlB0cjxXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5PiBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkoY29udGV4dCkp
OworfQorCitXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCis6IFdlYkNvbnRleHRTdXBwbGVtZW50KGNvbnRleHQp
Cit7CisgICAgY29udGV4dC0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOworfQorCitXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Ojp+V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSgpCit7Cit9
CisKKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpjb250ZXh0RGVzdHJveWVkKCkK
K3sKKyAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJheUNhbGxiYWNrcyk7Cit9CisKK3Zv
aWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6cHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQ
cm94eSopCit7CisgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fYXJyYXlDYWxsYmFja3MpOwor
fQorCitib29sIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNob3VsZFRlcm1pbmF0ZShXZWJQ
cm9jZXNzUHJveHkqKSBjb25zdAoreworICAgIHJldHVybiBtX2FycmF5Q2FsbGJhY2tzLmlzRW1w
dHkoKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpyZWZXZWJDb250ZXh0
U3VwcGxlbWVudCgpCit7CisgICAgQVBJT2JqZWN0OjpyZWYoKTsKK30KKwordm9pZCBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5OjpkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkKK3sKKyAgICBB
UElPYmplY3Q6OmRlcmVmKCk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6
Z2V0T3JpZ2lucyhXS09yaWdpbkRhdGFNYXNrIG1hc2ssIFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFj
az4gcHJwQ2FsbGJhY2spCit7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IHBycENhbGxiYWNrOworCisg
ICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CisgICAgbV9h
cnJheUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2sucmVsZWFzZSgpKTsKKworICAg
IC8vIEZJWE1FIChNdWx0aS1XZWJQcm9jZXNzKTogPHJkYXI6Ly9wcm9ibGVtLzEyMjM5NzY1PiBN
YWtlIG1hbmlwdWxhdGluZyBjYWNoZSBpbmZvcm1hdGlvbiB3b3JrIHdpdGggcGVyLXRhYiBXZWJQ
cm9jZXNzLgorICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVt
SWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpHZXRPcmlnaW5zKG1h
c2ssIGNhbGxiYWNrSUQpKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpk
aWRHZXRPcmlnaW5EYXRhT3JpZ2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYg
b3JpZ2luRGF0YXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgUmVmUHRyPEFycmF5Q2Fs
bGJhY2s+IGNhbGxiYWNrID0gbV9hcnJheUNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOworICAg
IHBlcmZvcm1BUElDYWxsYmFja1dpdGhTZWN1cml0eU9yaWdpbkRhdGFWZWN0b3Iob3JpZ2luRGF0
YXMsIGNhbGxiYWNrLmdldCgpKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
OjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgV2ViU2VjdXJp
dHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0YTsKKyAgICBzZWN1
cml0eU9yaWdpbkRhdGEucHJvdG9jb2wgPSBvcmlnaW4tPnByb3RvY29sKCk7CisgICAgc2VjdXJp
dHlPcmlnaW5EYXRhLmhvc3QgPSBvcmlnaW4tPmhvc3QoKTsKKyAgICBzZWN1cml0eU9yaWdpbkRh
dGEucG9ydCA9IG9yaWdpbi0+cG9ydCgpOworCisgICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nl
c3MpOiA8cmRhcjovL3Byb2JsZW0vMTIyMzk3NjU+IE1ha2UgbWFuaXB1bGF0aW5nIGNhY2hlIGlu
Zm9ybWF0aW9uIHdvcmsgd2l0aCBwZXItdGFiIFdlYlByb2Nlc3MuCisgICAgY29udGV4dCgpLT5z
ZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2Vi
T3JpZ2luRGF0YU1hbmFnZXI6OkRlbGV0ZUVudHJpZXNGb3JPcmlnaW4obWFzaywgc2VjdXJpdHlP
cmlnaW5EYXRhKSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVsZXRl
QWxsRW50cmllcyhXS09yaWdpbkRhdGFNYXNrIG1hc2spCit7CisgICAgaWYgKCFjb250ZXh0KCkp
CisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FIChNdWx0aS1XZWJQcm9jZXNzKTogPHJk
YXI6Ly9wcm9ibGVtLzEyMjM5NzY1PiBNYWtlIG1hbmlwdWxhdGluZyBjYWNoZSBpbmZvcm1hdGlv
biB3b3JrIHdpdGggcGVyLXRhYiBXZWJQcm9jZXNzLgorICAgIGNvbnRleHQoKS0+c2VuZFRvQWxs
UHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyOjpEZWxldGVBbGxFbnRyaWVzKG1hc2spKTsKK30KKwordm9pZCBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5OjpzZXRBY2NlcHRQb2xpY3koV0tPcmlnaW5EYXRhTWFzayBtYXNrLCBX
S09yaWdpbkRhdGFBY2NlcHRQb2xpY3kgcG9saWN5KQoreworICAgIGlmICghY29udGV4dCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1
bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6U2V0
QWNjZXB0UG9saWN5KG1hc2ssIHBvbGljeSkpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk6OmdldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFNYXNrIG1hc2ssIFBhc3NSZWZQ
dHI8T3JpZ2luRGF0YUFjY2VwdFBvbGljeUNhbGxiYWNrPiBwcnBDYWxsYmFjaykKK3sKKyAgICBp
ZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPE9yaWdpbkRhdGFB
Y2NlcHRQb2xpY3lDYWxsYmFjaz4gY2FsbGJhY2sgPSBwcnBDYWxsYmFjazsKKworICAgIHVpbnQ2
NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOworICAgIG1fYWNjZXB0UG9s
aWN5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxlYXNlKCkpOworCisgICAg
Y29udGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShN
ZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OkdldEFjY2VwdFBvbGljeShtYXNrLCBjYWxs
YmFja0lEKSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c3RhcnRPYnNl
cnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hc2sgbWFzaykKK3sKKyAgICBpZiAoIWNvbnRleHQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29udGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNS
ZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6
OlN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhtYXNrKSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eTo6c3RvcE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFzayBtYXNrKQor
eworICAgIGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb250ZXh0KCkt
PnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpX
ZWJPcmlnaW5EYXRhTWFuYWdlcjo6U3RhcnRPYnNlcnZpbmdDaGFuZ2VzKG1hc2spKTsKK30KKwor
dm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzZXRDaGFuZ2VDbGllbnQoY29uc3QgV0tP
cmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCAqY2xpZW50KQoreworICAgIG1fY2xpZW50Lmlu
aXRpYWxpemUoY2xpZW50KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjBmNTcwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaApA
QCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eV9oCisKKyNp
bmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKKyNpbmNs
dWRlICJJbW11dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2lu
Y2x1ZGUgIldLT3JpZ2luRGF0YU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0U3VwcGxl
bWVudC5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQu
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIENv
bm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTZWN1cml0eU9y
aWdpbjsKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CisKK3R5cGVkZWYgR2VuZXJpY0NhbGxi
YWNrPFdLQXJyYXlSZWY+IEFycmF5Q2FsbGJhY2s7Cit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxX
S09yaWdpbkRhdGFBY2NlcHRQb2xpY3ksIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3k+IE9yaWdpbkRh
dGFBY2NlcHRQb2xpY3lDYWxsYmFjazsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eSA6IHB1YmxpYyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVPcmlnaW5EYXRhTWFuYWdl
cj4sIHB1YmxpYyBXZWJDb250ZXh0U3VwcGxlbWVudCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdl
UmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFt
ZSgpOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eT4g
Y3JlYXRlKFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5KCk7CisKKyAgICB2b2lkIGdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFzaywgUGFzc1JlZlB0
cjxBcnJheUNhbGxiYWNrPik7CisgICAgdm9pZCBkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3Jp
Z2luRGF0YU1hc2ssIFdlYlNlY3VyaXR5T3JpZ2luKik7CisgICAgdm9pZCBkZWxldGVBbGxFbnRy
aWVzKFdLT3JpZ2luRGF0YU1hc2spOworCisgICAgdm9pZCBzZXRBY2NlcHRQb2xpY3koV0tPcmln
aW5EYXRhTWFzaywgV0tPcmlnaW5EYXRhQWNjZXB0UG9saWN5KTsKKyAgICB2b2lkIGdldEFjY2Vw
dFBvbGljeShXS09yaWdpbkRhdGFNYXNrLCBQYXNzUmVmUHRyPE9yaWdpbkRhdGFBY2NlcHRQb2xp
Y3lDYWxsYmFjaz4pOworCisgICAgdm9pZCBzdGFydE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5E
YXRhTWFzayk7CisgICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYXNr
KTsKKyAgICB2b2lkIHNldENoYW5nZUNsaWVudChjb25zdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hh
bmdlQ2xpZW50Kik7CisKKyAgICB1c2luZyBBUElPYmplY3Q6OnJlZjsKKyAgICB1c2luZyBBUElP
YmplY3Q6OmRlcmVmOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHkoV2ViQ29udGV4dCopOworCisgICAgdm9pZCBkaWRHZXRPcmlnaW5EYXRhT3JpZ2lu
cyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
OworCisgICAgLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4
dERlc3Ryb3llZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2Uo
V2ViUHJvY2Vzc1Byb3h5KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFRlcm1p
bmF0ZShXZWJQcm9jZXNzUHJveHkqKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVy
ZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIE9WRVJSSURFOworCisgICAgLy8gQ29yZUlQQzo6TWVz
c2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworCisgICAg
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFycmF5Q2FsbGJhY2s+PiBtX2FycmF5Q2FsbGJhY2tz
OworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxPcmlnaW5EYXRhQWNjZXB0UG9saWN5Q2Fs
bGJhY2s+PiBtX2FjY2VwdFBvbGljeUNhbGxiYWNrczsKKworICAgIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlDaGFuZ2VDbGllbnQgbV9jbGllbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmQ3NmI0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
IyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5IHsKKyAgICBEaWRHZXRPcmlnaW5zKFZlY3RvcjxXZWJLaXQ6OlNlY3VyaXR5T3Jp
Z2luRGF0YT4gb3JpZ2luSWRlbnRpZmllcnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIERp
ZENoYW5nZSgpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY2MDFhOQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xp
ZW50LmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCIKKwor
I2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50OjpkaWRDaGFuZ2UoV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eSogb3JpZ2luRGF0YU1hbmFnZXIpCit7CisgICAgaWYgKCFtX2NsaWVudC5k
aWRDaGFuZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LmRpZENoYW5nZSh0b0FQ
SShvcmlnaW5EYXRhTWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhNzY3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlDaGFuZ2VDbGllbnRfaAorI2RlZmluZSBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5Q2hhbmdlQ2xpZW50X2gKKworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldL
T3JpZ2luRGF0YU1hbmFnZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTsKKworY2xhc3Mg
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudCA6IHB1YmxpYyBBUElDbGllbnQ8
V0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCwga1dLT3JpZ2luRGF0YU1hbmFnZXJDaGFu
Z2VDbGllbnRWZXJzaW9uPiB7CitwdWJsaWM6CisgICAgdm9pZCBkaWRDaGFuZ2UoV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eSopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50X2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNGQ0NWQ4
Li43OWJkZDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC01NjIsNiArNTYyLDE4IEBACiAJCTZFRTg0OUM4MTM2OEQ5MzkwMDM4
RDQ4MSAvKiBXS0luc3BlY3RvclByaXZhdGVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRTg0OUM2MTM2OEQ5MkQwMDM4RDQ4MSAvKiBXS0luc3Bl
Y3RvclByaXZhdGVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3MjhFODZGMTE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOEU4NkVG
MTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5oICovOyB9OwogCQk3MjhFODZG
MjE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjhFODZGMDE3OTUxODhDMDA4Nzg3OUUg
LyogV2ViQ29sb3JQaWNrZXJNYWMubW0gKi87IH07CisJCTc1NTQyMkJCMTgwNjJCOUMwMDQ2RjZB
OCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBDb3B5IEZpbGVzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdp
bkRhdGFNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNzU1NDIyQkMxODA2MkI5QzAwNDZGNkE4IC8qIFdL
T3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBDb3B5IEZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5h
Z2VyLmggKi87IH07CisJCTc1NTQyMkJEMTgwNjJCQjIwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLzsg
fTsKKwkJNzU1NDIyQzMxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gaW4gQ29weSBGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3NTU0MjJDMDE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbiAqLzsgfTsKKwkJNzU1NDIyQzQxODA2MkJGOTAwNDZGNkE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHkuY3BwICovOyB9OworCQk3NTU0MjJDQTE4MDY0RkZDMDA0NkY2QTggLyog
V2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkM4MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbiAqLzsgfTsKKwkJNzU1NDIyQ0IxODA2NTAwMjAw
NDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkM2MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlci5jcHAgKi87IH07CisJCTc1NTQyMkNDMTgwNzczQ0UwMDQ2RjZBOCAv
KiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzU1NDIyQzcxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyLmggKi87IH07CisJCTc1OUNDRDUzMTgwOEQwMzAwMDc4RThBOCAvKiBPcmlnaW5EYXRh
QWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NTlDQ0Q1MTE4MDhEMDFDMDA3OEU4QTggLyogT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5o
ICovOyB9OworCQk3NTlDQ0Q1ODE4MDhGMTY0MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgKi87IH07CisJCTc1OUNDRDU5MTgwOEYxNjkwMDc4
RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTlDQ0Q1NTE4MDhGMTYwMDA3
OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oICovOyB9Owor
CQk3NTlDQ0Q1QTE4MDhGNjE2MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQkYx
ODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCAqLzsgfTsKIAkJ
NzYyQjc0OEQxMjBCQzc1QzAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjJCNzQ4NDEyMEJCQTJE
MDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3ODAxQzA5OTE0MjI5MEM0MDBGQUY5QUYgLyog
V2ViSGl0VGVzdFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3ODAxQzA5NTE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5j
cHAgKi87IH07CiAJCTc4MDFDMDlBMTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3ODAxQzA5
NjE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5oICovOyB9OwpAQCAtMTMwMiw4
ICsxMzE0LDExIEBACiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gMTsKIAkJCWZpbGVzID0gKAogCQkJ
CTUxMENDODQ5MTYxM0M4NUMwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5hcHAgaW4gQ29weSBG
aWxlcyAqLywKKwkJCQk3NTU0MjJCQzE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFu
YWdlci5oIGluIENvcHkgRmlsZXMgKi8sCiAJCQkJQkNERTBBQkYxMzI3MjcwODAwMTI1OUZCIC8q
IFBsdWdpblByb2Nlc3MuYXBwIGluIENvcHkgRmlsZXMgKi8sCisJCQkJNzU1NDIyQzMxODA2MkJF
NDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gaW4gQ29w
eSBGaWxlcyAqLywKIAkJCQkxQTUwREI2NjExMEEzRDU3MDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5h
cHAgaW4gQ29weSBGaWxlcyAqLywKKwkJCQk3NTU0MjJCQjE4MDYyQjlDMDA0NkY2QTggLyogV0tP
cmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gQ29weSBGaWxlcyAqLywKIAkJCSk7CiAJCQluYW1lID0g
IkNvcHkgRmlsZXMiOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CkBAIC0xOTYyLDYgKzE5NzcsMTcgQEAKIAkJNkVFODQ5QzYxMzY4RDkyRDAwMzhENDgxIC8qIFdL
SW5zcGVjdG9yUHJpdmF0ZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
S0luc3BlY3RvclByaXZhdGVNYWMuaDsgcGF0aCA9IG1hYy9XS0luc3BlY3RvclByaXZhdGVNYWMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI4RTg2RUYxNzk1MTg4QzAwODc4NzlF
IC8qIFdlYkNvbG9yUGlja2VyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkNvbG9yUGlja2VyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4
NkYwMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJCOTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmln
aW5EYXRhTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
S09yaWdpbkRhdGFNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1
NDIyQkExODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tPcmlnaW5EYXRhTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJCRTE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNzU1NDIyQkYxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDMDE4MDYyQkU0
MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDNjE4MDY0RkZDMDA0NkY2QTggLyog
V2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmln
aW5EYXRhTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkM3
MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJPcmlnaW5EYXRhTWFuYWdlci5oOyBwYXRoID0gT3JpZ2lu
RGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3NTU0MjJDODE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2Fn
ZXMuaW47IHBhdGggPSBPcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTlDQ0Q1MTE4MDhEMDFDMDA3OEU4QTgg
LyogT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBPcmlnaW5EYXRhQWNjZXB0UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTc1OUNDRDU0MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
Q2hhbmdlQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3NTlDQ0Q1NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eUNoYW5nZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc2MkI3NDgxMTIwQkJBMDEwMDgxOTMzOSAvKiBGb250U21vb3RoaW5n
TGV2ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udFNtb290aGluZ0xl
dmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2MkI3NDg0MTIwQkJBMkQwMDgx
OTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3ODAxQzA5NTE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJIaXRUZXN0UmVzdWx0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxMDksNiArMzEzNSw3IEBACiAJCQkJREY1
OEM2MzExMzcxQUM1ODAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnQuaCAqLywKIAkJCQlC
Q0NGNjczMjEyQzdGMTVDMDA4RjlDMzUgLyogT3JpZ2luQW5kRGF0YWJhc2VzLmNwcCAqLywKIAkJ
CQlCQ0NGNjcyQzEyQzdFREY3MDA4RjlDMzUgLyogT3JpZ2luQW5kRGF0YWJhc2VzLmggKi8sCisJ
CQkJNzU5Q0NENTExODA4RDAxQzAwNzhFOEE4IC8qIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3kuaCAq
LywKIAkJCQlCQ0M0M0FCODEyN0I5NURDMDAzMTdGMTYgLyogUGxhdGZvcm1Qb3B1cE1lbnVEYXRh
LmNwcCAqLywKIAkJCQlCQ0M0M0FCOTEyN0I5NURDMDAzMTdGMTYgLyogUGxhdGZvcm1Qb3B1cE1l
bnVEYXRhLmggKi8sCiAJCQkJRTE4QzkyRjMxMkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5j
cHAgKi8sCkBAIC0zNjUyLDYgKzM2NzksMTYgQEAKIAkJCW5hbWUgPSBtYWM7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwogCQl9OworCQk3NTU0MjJDNTE4MDY0RkZDMDA0NkY2QTggLyogT3Jp
Z2luRGF0YSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJ
NzU1NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLywK
KwkJCQk3NTU0MjJDNzE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCAq
LywKKwkJCQk3NTU0MjJDODE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIu
bWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJbmFtZSA9IE9yaWdpbkRhdGE7CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogCQk3Q0IxNkZFMTE3MjRCOUI1MDA3QTBBOTUgLyogUGx1
Z0luU2FuZGJveFByb2ZpbGVzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKQEAgLTM3MDEsNiArMzczOCw3IEBACiAJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAv
KiBXZWJQcm9jZXNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
KwkJCQk3NTU0MjJDNTE4MDY0RkZDMDA0NkY2QTggLyogT3JpZ2luRGF0YSAqLywKIAkJCQk1MTJF
MzUyQTEzMEI1NTk5MDBBQkQxOUEgLyogQXBwbGljYXRpb25DYWNoZSAqLywKIAkJCQkzMzA5MzQ0
QjEzMTVCOTNBMDA5N0E3QkMgLyogQ29va2llcyAqLywKIAkJCQlCQ0FDQzQzQjE2QjI0QzVEMDBC
NkUwOTIgLyogRW50cnlQb2ludCAqLywKQEAgLTM5MzAsNiArMzk2OCwxMSBAQAogCQkJCUJDRjY5
RkEwMTE3NkQwMTQwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5oICovLAogCQkJCUJDMURG
RUEzMTJCMzFGODcwMDVERjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNw
cCAqLywKIAkJCQlCQzFERkVBMjEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXJQcm94eS5oICovLAorCQkJCTc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQk3NTU0MjJCRjE4MDYyQkU0MDA0NkY2
QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oICovLAorCQkJCTc1NTQyMkMwMTgwNjJC
RTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAor
CQkJCTc1OUNDRDU0MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
Q2hhbmdlQ2xpZW50LmNwcCAqLywKKwkJCQk3NTlDQ0Q1NTE4MDhGMTYwMDA3OEU4QTggLyogV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oICovLAogCQkJCTUxNTM1NjlBMTI5
MUIxRDIwMDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovLAogCQkJCTUx
NTM1NjlCMTI5MUIxRDIwMDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLywK
IAkJCQlCQzdCNjIwNTEyOUEwQTY3MDBEMTc0QTQgLyogV2ViUGFnZUdyb3VwLmNwcCAqLywKQEAg
LTQwMzMsNiArNDA3Niw4IEBACiAJCQkJQkM4NTdGRTQxMkI4NDNEODAwRURFQjJFIC8qIFdLT3Bl
blBhbmVsUGFyYW1ldGVycy5oICovLAogCQkJCUJDMURGRThFMTJCMzFDQTgwMDVERjczMCAvKiBX
S09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcCAqLywKIAkJCQlCQzFERkU4RDEyQjMxQ0E4MDA1
REY3MzAgLyogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oICovLAorCQkJCTc1NTQyMkI5MTgw
NjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLywKKwkJCQk3NTU0MjJC
QTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5oICovLAogCQkJCUJDRDU5
N0Q0MTEyQjU2REMwMEVDOEMyMyAvKiBXS1BhZ2UuY3BwICovLAogCQkJCUJDRDU5N0Q1MTEyQjU2
REMwMEVDOEMyMyAvKiBXS1BhZ2UuaCAqLywKIAkJCQlCQzdCNjMzNjEyQTQ1QUJBMDBEMTc0QTQg
LyogV0tQYWdlR3JvdXAuY3BwICovLApAQCAtNTExNiw2ICs1MTYxLDcgQEAKIAkJCQlCQzZFREFB
NjExMTI3MUM2MDBFNzY3OEIgLyogUGFnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
MTFCNTAxMTJGNjE5MjAwMzM3QkFCIC8qIFBhZ2VDbGllbnRJbXBsLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQTkwQzIzNzEyNjUwNzE3MDAzRTQ0RDQgLyogUGFnZU92ZXJsYXkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTc1OUNDRDUzMTgwOEQwMzAwMDc4RThBOCAvKiBPcmlnaW5EYXRhQWNjZXB0UG9s
aWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTc0QTU4MTEyRTY2NjgxMDAyREZFOTggLyogUGFz
dGVib2FyZFR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTk1ODJEMzE1M0NCRkQ3MDBCNjA4
NzUgLyogUERGS2l0SW1wb3J0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGQ0IxODkxN0JCRkUw
MzAwMzk0Q0Q4IC8qIFN5bmNocm9ub3VzTmV0d29ya0xvYWRlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC01NDgwLDYgKzU1MjYsNyBAQAogCQkJCUJDRERCMzJCMTI0RUMyQUIwMDQ4RDEzQyAv
KiBXS1NoYXJlZEFQSUNhc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjA2MTI0RkYwMjcw
MDY4RjIwQSAvKiBXS1N0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MUExMjRGRjAz
NzAwNjhGMjBBIC8qIFdLU3RyaW5nQ0YuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1OUNDRDU5MTgw
OEYxNjkwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzkwOTk4MDEyNTZBOTgyMDAwODM3NTYgLyogV0tTdHJpbmdQ
cml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzdFQUQ0ODE3RTJDNzdCMDAyRDE5M0QgLyog
V0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRBOUFB
ODEyQjdFNzk2MDA4RkU5ODQgLyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTU0OTAsMTEgKzU1MzcsMTMgQEAKIAkJCQlCQzQwNzYwQzEyNEZGMDI3MDA2
OEYyMEEgLyogV0tVUkxSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYyOTEyNEZG
MDQwMDA2OEYyMEEgLyogV0tVUkxSZXF1ZXN0TlMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3
NjBFMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk3NTlDQ0Q1QTE4MDhGNjE2MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MkIxMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVz
cG9uc2VOUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjYxMTNFMjkxMjZDRTE5QjAwNTdEMEE3IC8q
IFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNTEx
NkFBREFBMDAyQTkyNUIgLyogV0tWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNzEx
NkFBREFBMDAyQTkyNUIgLyogV0tWaWV3SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJG
QTYxNzlGMTJGMEI5OUQwMDMzRTBDQSAvKiBXS1ZpZXdQcml2YXRlLmggaW4gSGVhZGVycyAqLywK
KwkJCQk3NTU0MjJDQzE4MDc3M0NFMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUM1RTFBRkU5MTZCMjBCNzUwMDZDQzFGMiAvKiBXS1dlYkFyY2hp
dmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1RTFBRkVCMTZCMjBCN0UwMDZDQzFGMiAvKiBXS1dl
YkFyY2hpdmVSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5ODlEODIxNjFBN0U1RDAw
MEQ0NkQzIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbi5oIGluIEhlYWRlcnMgKi8sCkBAIC01ODI5LDYg
KzU4NzgsNyBAQAogCQkJZmlsZXMgPSAoCiAJCQkJRTFEMjZBNTExNzU5NjRENzAwOTVCRkQxIC8q
IFdlYkNvbnRlbnRQcm9jZXNzLnhpYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRTEzM0ZEOEExNDIz
REQ3RjAwRkM3QkZCIC8qIFdlYktpdC5pY25zIGluIFJlc291cmNlcyAqLywKKwkJCQk3NTU0MjJD
QTE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gaW4g
UmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtNjE5OCw2ICs2MjQ4LDcgQEAKIAkJCQlFMUVFNTNFNzExRjhDRkZC
MDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDMTRFMTA5MTIwQjkwNUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VG
b3JtQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENUM2NkEwMTM0QjlEMzgwMDRGRTJB
OCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTc1NTQyMkNCMTgwNjUwMDIwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0E4QzZBODExRTNCQTVGMDA4MTJGQjcgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDODE0N0FB
MTJGNjRDREEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNjU5QzU1MUUxMzAwMDY0MTAwMjVDMEMyIC8qIEluamVjdGVkQnVu
ZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTYzMDksNiAr
NjM2MCw3IEBACiAJCQkJMUEwNDNCNUQxMjRENUU5RDAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTA0M0RDMjEyNEZG
ODc1MDBGRkJGQjUgLyogUGx1Z2luUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRDky
MjExMjgxREMxQjAwMUVCOTYyIC8qIFBsdWdpblByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJNzU1NDIyQzQxODA2MkJGOTAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE4RUZBNzAxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdp
blByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRDYyMjc3MTcz
OUQ4NjMwMDVCRDdGRiAvKiBQbHVnaW5TYW5kYm94UHJvZmlsZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUJDODI4NDREMTZCNTA4MUMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5t
bSBpbiBTb3VyY2VzICovLApAQCAtNjQyOCw2ICs2NDgwLDcgQEAKIAkJCQlCQ0I5RjZBMTExMjNB
ODRCMDBBMTM3RTAgLyogV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDMTExQjBFMTEyRjVFNEYwMDMzN0JBQiAvKiBXZWJGcmFtZVByb3h5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUNENzNCQTUzMTMxQjY0NUIwMEVFREVEMiAvKiBXZWJGdWxsU2Ny
ZWVuTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTU0MjJCRDE4MDYyQkIyMDA0NkY2
QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDczQkE0
RTEzMUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q2Rjc1RjQxMzFCNjZEMDAwRDZCMjFFIC8qIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RDQTg1RUUxMzJB
RDcwMTAwRTk2MURGIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMubW0gaW4gU291cmNl
cyAqLywKQEAgLTY1NzAsNiArNjYyMyw3IEBACiAJCQkJOUZCNUYzOTQxNjlFNkE4MDAwMkMyNUJG
IC8qIFdLQ29udGV4dFByaXZhdGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMzA5MzQ1QTEz
MTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxMkY1OEY5MTJBODhBNTQwMDYyOTUzMCAvKiBXS0NyZWRlbnRpYWwuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNzU5Q0NENTgxODA4RjE2NDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHlDaGFuZ2VDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc1RjcxMjRGRjAy
NzAwNjhGMjBBIC8qIFdLRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNjJBNzY2MTEyQjFB
QkVEMDAwNUYxQjYgLyogV0tEYXRhYmFzZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM0MDc1RjkxMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGljdGlvbmFyeS5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJP
cmlnaW5EYXRhTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRh
dGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmYxMjRlOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsOTMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViT3Jp
Z2luRGF0YU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgorI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Nl
Y3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2guaD4K
KworI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY29uc3QgY2hhciogV2ViT3JpZ2luRGF0YU1hbmFnZXI6
OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIldlYk9yaWdpbkRhdGFNYW5hZ2VyIjsK
K30KKworV2ViT3JpZ2luRGF0YU1hbmFnZXI6OldlYk9yaWdpbkRhdGFNYW5hZ2VyKENoaWxkUHJv
Y2VzcyogY2hpbGRQcm9jZXNzKQorICAgIDogbV9jaGlsZFByb2Nlc3MoY2hpbGRQcm9jZXNzKQor
eworICAgIG1fY2hpbGRQcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOworfQorCit2b2lk
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpnZXRPcmlnaW5zKFdLT3JpZ2luRGF0YU1hc2sgbWFzaywg
dWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4+IG9yaWdpbnM7CisKKyAgICAvLyBGSVhNRTogcG9wdWxhdGUgb3JpZ2lucworCisgICAgVmVj
dG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gaWRlbnRpZmllcnM7CisgICAgaWRlbnRpZmllcnMucmVz
ZXJ2ZUNhcGFjaXR5KG9yaWdpbnMuc2l6ZSgpKTsKKworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPj46Oml0ZXJhdG9yIGVuZCA9IG9yaWdpbnMuZW5kKCk7CisgICAgSGFzaFNldDxS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+Pjo6aXRlcmF0b3IgaSA9IG9yaWdpbnMuYmVnaW4oKTsKKyAg
ICBmb3IgKDsgaSAhPSBlbmQ7ICsraSkgeworICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IG9yaWdpbiA9ICppOworCisgICAgICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5EYXRhOwor
ICAgICAgICBvcmlnaW5EYXRhLnByb3RvY29sID0gb3JpZ2luLT5wcm90b2NvbCgpOworICAgICAg
ICBvcmlnaW5EYXRhLmhvc3QgPSBvcmlnaW4tPmhvc3QoKTsKKyAgICAgICAgb3JpZ2luRGF0YS5w
b3J0ID0gb3JpZ2luLT5wb3J0KCk7CisKKyAgICAgICAgaWRlbnRpZmllcnMudW5jaGVja2VkQXBw
ZW5kKG9yaWdpbkRhdGEpOworICAgIH0KKworICAgIG1fY2hpbGRQcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpEaWRHZXRPcmlnaW5zKGlkZW50aWZpZXJz
LCBjYWxsYmFja0lEKSwgMCk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXI6OmRlbGV0
ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFzayBtYXNrLCBjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIG9yaWdpbkRhdGEpCit7CisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmln
aW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEucHJvdG9jb2wsIG9yaWdpbkRh
dGEuaG9zdCwgb3JpZ2luRGF0YS5wb3J0KTsKKyAgICBpZiAoIW9yaWdpbikKKyAgICAgICAgcmV0
dXJuOworCisgICAgLy8gRklYTUU6IGRlbGV0ZSBjYWNoZQorfQorCit2b2lkIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyOjpkZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YU1hc2sgbWFzaykKK3sKKyAg
ICAvLyBGSVhNRTogZGVsZXRlIGVudHJpZXMKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2lu
RGF0YU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJP
cmlnaW5EYXRhTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2
MzZkZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdp
bkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJPcmlnaW5EYXRhTWFuYWdlcl9oCisjZGVmaW5lIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyX2gKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
IldLT3JpZ2luRGF0YU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzU3VwcGxlbWVudC5o
IgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ2hpbGRQcm9jZXNzOworc3Ry
dWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXIgOiBw
dWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2
ZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYk9yaWdpbkRhdGFNYW5hZ2VyKTsKK3B1
YmxpYzoKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdlcihDaGlsZFByb2Nlc3MqKTsKKworICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgdm9pZCBkZWxldGVBbGxF
bnRyaWVzKFdLT3JpZ2luRGF0YU1hc2spOworCitwcml2YXRlOgorICAgIHZvaWQgZ2V0T3JpZ2lu
cyhXS09yaWdpbkRhdGFNYXNrLCB1aW50NjRfdCk7CisgICAgdm9pZCBkZWxldGVFbnRyaWVzRm9y
T3JpZ2luKFdLT3JpZ2luRGF0YU1hc2ssIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOworCisg
ICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOworCisgICAgQ2hpbGRQcm9jZXNzKiBtX2NoaWxkUHJvY2VzczsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViT3JpZ2luRGF0YU1hbmFnZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdp
bkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Pcmln
aW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjIwZTY0MmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwzMSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCittZXNzYWdlcyAtPiBXZWJPcmlnaW5EYXRhTWFuYWdlciB7CisgICAgdm9pZCBHZXRPcmln
aW5zKHVpbnQzMl90IG1hc2ssIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgdm9pZCBEZWxldGVF
bnRyaWVzRm9yT3JpZ2luKHVpbnQzMl90IG1hc2ssIFdlYktpdDo6U2VjdXJpdHlPcmlnaW5EYXRh
IG9yaWdpbklkZW50aWZpZXIpCisgICAgdm9pZCBEZWxldGVBbGxFbnRyaWVzKHVpbnQzMl90IG1h
c2spCisgICAgdm9pZCBTZXRBY2NlcHRQb2xpY3kodWludDMyX3QgbWFzaywgdWludDMyX3QgcG9s
aWN5KQorICAgIHZvaWQgR2V0QWNjZXB0UG9saWN5KHVpbnQzMl90IG1hc2ssIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCisgICAgdm9pZCBTdGFydE9ic2VydmluZ0NoYW5nZXModWludDMyX3QgbWFzaykK
KyAgICB2b2lkIFN0b3BPYnNlcnZpbmdDaGFuZ2VzKHVpbnQzMl90IG1hc2spCit9Cg==
</data>
<flag name="commit-queue"
          id="236781"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214288</attachid>
            <date>2013-10-15 11:53:17 -0700</date>
            <delta_ts>2013-10-15 13:00:38 -0700</delta_ts>
            <desc>build fix + more stubs</desc>
            <filename>122781f.diff</filename>
            <type>text/plain</type>
            <size>69645</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggN2M3YzQxZC4uOGExYmUzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTQ2LDYgKzQ2LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0xhdW5jaGluZyIKICAgICAiJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvT3JpZ2lu
RGF0YSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dF
QktJVDJfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKQEAgLTMwNyw2ICszMDgsOCBAQCBzZXQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNw
cAogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vz
cy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1l
bnVDbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAKICAgICBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzU0LDYgKzM1Nyw3IEBAIHNldChXZWJLaXQyX1NPVVJD
RVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5j
cHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcAorICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAKQEAgLTQ2MSw2ICs0NjUsOCBAQCBz
ZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKICAgICBXZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvT3JpZ2lu
RGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKKwogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW4uY3BwCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
LmNwcAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuY3BwCkBAIC01NDksNiArNTU1LDcgQEAgc2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMK
ICAgICBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nl
c3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9X
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorICAgIFVJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtNTg2LDYgKzU5Myw4IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAg
ICBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdl
cy5pbgogCisgICAgV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1l
c3NhZ2VzLmluCisKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b3h5Lm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmRlNDAxZC4uNjMyMWZiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDc1IEBACisyMDEzLTEwLTE0ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWZhY3RvciBzdG9yZWQgd2Vic2l0ZSBkYXRhIEFQSXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjc4MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJPcmlnaW5E
YXRhTWFuYWdlciBhbG9uZyB3aXRoIGNvcnJlc3BvbmRpbmcgY2xhc3MKKyAgICAgICAgV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eSBhbmQgQVBJIFdLT3JpZ2luRGF0YU1hbmFnZXIuCisKKyAgICAg
ICAgQ3VycmVudGx5LCB0aGUgbmV3IGZpbGVzIGFyZSB1bnVzZWQuCisKKyAgICAgICAgV0tPcmln
aW5EYXRhTWFuYWdlciBzaG91bGQgc3Vic3VtZSB0aGUgZnVuY3Rpb25hbGl0eSBvZjoKKyAgICAg
ICAgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciwgV0tDb29raWVNYW5hZ2VyLCBXS0RhdGFiYXNl
TWFuYWdlciwKKyAgICAgICAgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLCBXS01lZGlhQ2FjaGVN
YW5hZ2VyLAorICAgICAgICBXS1BsdWdpblNpdGVEYXRhTWFuYWdlciwgYW5kIFdLUmVzb3VyY2VD
YWNoZU1hbmFnZXIuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDoK
KyAgICAgICAgKiBTaGFyZWQvT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRHZXRPcmlnaW5EYXRhTWFuYWdl
cik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChX
S09yaWdpbkRhdGFNYW5hZ2VyR2V0VHlwZUlEKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFn
ZXJHZXRPcmlnaW5zKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVFbnRyaWVz
Rm9yT3JpZ2luKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRyaWVz
KToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJTZXRBY2NlcHRQb2xpY3kpOgorICAgICAg
ICAoV0tPcmlnaW5EYXRhTWFuYWdlckdldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXS09yaWdp
bkRhdGFNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0
YU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5h
Z2VyU2V0Q2hhbmdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5E
YXRhTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5OjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHk6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojp+V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0
cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpwcm9j
ZXNzRGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
OjpzaG91bGRUZXJtaW5hdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5OjpyZWZXZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpnZXRPcmlnaW5zKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2luRGF0YU9y
aWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxl
dGVFbnRyaWVzRm9yT3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eTo6ZGVsZXRlQWxsRW50cmllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OnNldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6OmdldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0b3BPYnNlcnZpbmdDaGFu
Z2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c2V0Q2hh
bmdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudDo6ZGlkQ2hhbmdlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpXZWJPcmlnaW5EYXRhTWFu
YWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpnZXRPcmlnaW5z
KToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OmRlbGV0ZUVudHJpZXNG
b3JPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRl
QWxsRW50cmllcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRh
dGFNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJP
cmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTMtMTAtMTQgIENzYWJh
IE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbV0syXVtFZmxdW1Nv
dXBdIE1ha2UgTmV0d29ya1Byb2Nlc3NNYWluVW5peCBoYW5kbGUgcHJveHkgc2V0dGluZ3MuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA1NTUxNzRiLi5mMWZhMDc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM5LDYgKzM5LDcgQEAgVlBBVEggPSBcCiAgICAg
JChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9OZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyBc
CisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2ViS2l0Mikv
V2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VD
YWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXApAQCAtOTksNiArMTAw
LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViTWVkaWFDYWNoZU1hbmFnZXIgXAog
ICAgIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkgXAogICAgIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIgXAorICAgIFdlYk9yaWdpbkRhdGFNYW5hZ2VyIFwKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5IFwKICAgICBXZWJQYWdlIFwKICAgICBXZWJQYWdlR3JvdXBQcm94eSBcCiAgICAgV2Vi
UGFnZVByb3h5IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtIGIv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KaW5kZXggYjgyNWJjMy4uN2NhZDEwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktp
dDIvR05VbWFrZWZpbGUuYW0KQEAgLTE1NSw2ICsxNTUsNyBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJL
SVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xh
X0NQUAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZSBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyBcCiAJ
LUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKKwkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogCS1JJChz
cmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAJLUkkKHNy
Y2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKIAktSSQoc3JjZGlyKS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAgXApAQCAtMzgzLDYgKzM4NCw3IEBAIHZwYXRo
ICUubWVzc2FnZXMuaW4gPSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsgXAogCSQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMgXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKIAkk
KFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jl
c291cmNlQ2FjaGUgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKQEAgLTc0Niw2
ICs3NDgsNyBAQCBFWFRSQV9ESVNUICs9IFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9OZXR3b3JrLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9O
ZXR3b3JrSW5mby8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy8qLmluKSBcCisJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvT3Jp
Z2luRGF0YS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lu
cy8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFnZS8qLmlu
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxZTMyMGM5Li5mNTkwYmNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTgzLDYgKzgzLDcgQEAgd2Via2l0Ml9o
X2FwaSArPSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92
aWRlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRl
cnMuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lci5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGEuaCBcCiAJ
JChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaCBcCiAJJChXZWJLaXQyKS9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZVByaXZhdGUuaCBcCkBAIC0yMjMsNiArMjI0LDEwIEBAIHdlYmtpdDJfYnVpbHRfc291cmNl
cyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94
eU1lc3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
T3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlR3JvdXBQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUGFnZUdyb3VwUHJveHlNZXNz
YWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlBhZ2VQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgXApAQCAtNjQzLDYgKzY0OCw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5j
cHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFN
YW5hZ2VyLmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0
YU1hbmFnZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAgXAogCVNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oIFwKQEAgLTk4Miw2ICs5
ODksMTAgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViTmV0d29ya0luZm9Qcm92aWRlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCBcCisJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBcCisJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwIFwK
KwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5n
ZUNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51
Q2xpZW50LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VDb250ZXh0TWVu
dUNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggNjk5NGNiZC4uMTk3YWQ5ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtMTE5LDYgKzExOSw3IEBAIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qq
IFdLTm90aWZpY2F0aW9uUGVybWlzCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05vdGlm
aWNhdGlvblByb3ZpZGVyKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tPcGVuUGFuZWxQYXJhbWV0ZXJzKiBXS09wZW5QYW5lbFBhcmFtZXRl
cnNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyKiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tPcmlnaW5EYXRhTWFuYWdlciogV0tPcmlnaW5EYXRhTWFuYWdlclJlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFnZSogV0tQYWdlUmVmOwogdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tQYWdlR3JvdXAqIFdLUGFnZUdyb3VwUmVmOwogdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIFdLUGx1Z2luU2l0ZURhdGFNYW5h
Z2VyUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCmluZGV4IDQ0MWUwNWUuLjcwMzIxYjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBwdWJsaWM6
CiAgICAgICAgIFR5cGVOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwKICAgICAgICAgVHlw
ZU9wZW5QYW5lbFBhcmFtZXRlcnMsCiAgICAgICAgIFR5cGVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
ciwKKyAgICAgICAgVHlwZU9yaWdpbkRhdGFNYW5hZ2VyLAogICAgICAgICBUeXBlUGFnZSwKICAg
ICAgICAgVHlwZVBhZ2VHcm91cCwKICAgICAgICAgVHlwZVBsdWdpblNpdGVEYXRhTWFuYWdlciwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5EYXRhQWNjZXB0UG9saWN5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2MmI4NzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oCkBAIC0wLDAg
KzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3lfaAorI2RlZmluZSBPcmlnaW5EYXRhQWNjZXB0
UG9saWN5X2gKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0geworICAgIE9yaWdpbkRhdGFB
Y2NlcHRQb2xpY3lBbHdheXMgPSAwLAorICAgIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3lOZXZlciA9
IDEsCisgICAgT3JpZ2luRGF0YUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWlu
ID0gMiwKK307Cit0eXBlZGVmIHVuc2lnbmVkIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3k7CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gT3JpZ2luRGF0YUFjY2VwdFBvbGljeV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNjRjOGQx
YS4uMmQ5NzY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZvbnRTbW9vdGhpbmdMZXZlbC5oIgogI2lu
Y2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRs
ZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCIKKyNpbmNsdWRlICJPcmlnaW5EYXRhQWNjZXB0UG9s
aWN5LmgiCiAjaW5jbHVkZSAiUGx1Z2luTW9kdWxlSW5mby5oIgogI2luY2x1ZGUgIlByb2Nlc3NN
b2RlbC5oIgogI2luY2x1ZGUgIlJlc291cmNlQ2FjaGVzVG9DbGVhci5oIgpAQCAtODcsNiArODgs
NyBAQCBjbGFzcyBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjsKIGNsYXNzIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYk9wZW5QYW5lbFBhcmFtZXRlcnM7CiBjbGFzcyBXZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5OworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdl
YlBsdWdpblNpdGVEYXRhTWFuYWdlcjsKQEAgLTEzMyw2ICsxMzUsNyBAQCBXS19BRERfQVBJX01B
UFBJTkcoV0tOb3RpZmljYXRpb25Qcm92aWRlclJlZiwgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tOb3RpZmljYXRpb25SZWYsIFdlYk5vdGlmaWNhdGlvbikK
IFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5lbFBhcmFtZXRlcnNSZWYsIFdlYk9wZW5QYW5l
bFBhcmFtZXRlcnMpCiBXS19BRERfQVBJX01BUFBJTkcoV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
clJlZiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSkKK1dLX0FERF9BUElfTUFQUElO
RyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KQogV0tf
QUREX0FQSV9NQVBQSU5HKFdLUGFnZUdyb3VwUmVmLCBXZWJQYWdlR3JvdXApCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tQYWdlUmVmLCBXZWJQYWdlUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tQ
bHVnaW5TaXRlRGF0YU1hbmFnZXJSZWYsIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggYTQ3ZTQ5Zi4u
ZmJmYmMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5j
cHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgiCiAj
aWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKICNpbmNsdWRlICJXZWJEYXRhYmFzZU1hbmFnZXJQcm94
eS5oIgpAQCAtMjc0LDYgKzI3NSwxMSBAQCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29u
dGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UgogICAgIHJl
dHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPnN1cHBsZW1lbnQ8V2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eT4oKSk7CiB9CiAKK1dLT3JpZ2luRGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0
R2V0T3JpZ2luRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCit7CisgICAgcmV0
dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+c3VwcGxlbWVudDxXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5PigpKTsKK30KKwogdm9pZCBXS0NvbnRleHRTdGFydE1lbW9yeVNhbXBsZXIoV0tD
b250ZXh0UmVmIGNvbnRleHRSZWYsIFdLRG91YmxlUmVmIGludGVydmFsKQogewogICAgIHRvSW1w
bChjb250ZXh0UmVmKS0+c3RhcnRNZW1vcnlTYW1wbGVyKHRvSW1wbChpbnRlcnZhbCktPnZhbHVl
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCmluZGV4IDNj
ZTczMWUuLmVmZDY3NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmgKQEAgLTE5NSw3ICsxOTUsOCBAQCBXS19FWFBPUlQgV0tOZXR3b3JrSW5mb01hbmFnZXJS
ZWYgV0tDb250ZXh0R2V0TmV0d29ya0luZm9NYW5hZ2VyKFdLQ29udGV4dFJlZiBjbwogV0tfRVhQ
T1JUIFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBXS0NvbnRleHRHZXROb3RpZmljYXRpb25NYW5h
Z2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1BsdWdpblNpdGVEYXRhTWFu
YWdlclJlZiBXS0NvbnRleHRHZXRQbHVnaW5TaXRlRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNv
bnRleHQpOwogV0tfRVhQT1JUIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0
UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwotICAgIAorV0tfRVhQ
T1JUIFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0T3JpZ2luRGF0YU1hbmFnZXIo
V0tDb250ZXh0UmVmIGNvbnRleHQpOworCiB0eXBlZGVmIHZvaWQgKCpXS0NvbnRleHRHZXRTdGF0
aXN0aWNzRnVuY3Rpb24pKFdLRGljdGlvbmFyeVJlZiBzdGF0aXN0aWNzLCBXS0Vycm9yUmVmIGVy
cm9yLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0R2V0
U3RhdGlzdGljcyhXS0NvbnRleHRSZWYgY29udGV4dCwgdm9pZCogZnVuY3Rpb25Db250ZXh0LCBX
S0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24gZnVuY3Rpb24pOwogV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0R2V0U3RhdGlzdGljc1dpdGhPcHRpb25zKFdLQ29udGV4dFJlZiBjb250ZXh0LCBX
S1N0YXRpc3RpY3NPcHRpb25zIHN0YXRpc3RpY3NNYXNrLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQs
IFdLQ29udGV4dEdldFN0YXRpc3RpY3NGdW5jdGlvbiBmdW5jdGlvbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBiMjRkOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNw
cApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldLT3JpZ2luRGF0YU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgor
I2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCIKKwordXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKKworV0tUeXBlSUQgV0tPcmlnaW5EYXRhTWFuYWdlckdldFR5cGVJRCgpCit7Cisg
ICAgcmV0dXJuIHRvQVBJKFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OkFQSVR5cGUpOworfQor
Cit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zKFdLT3JpZ2luRGF0YU1hbmFnZXJS
ZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgdm9pZCogY29u
dGV4dCwgV0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnNGdW5jdGlvbiBjYWxsYmFjaykKK3sK
KyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5nZXRPcmlnaW5zKG1hc2ssIEFycmF5
Q2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBjYWxsYmFjaykpOworfQorCit2b2lkIFdLT3JpZ2lu
RGF0YU1hbmFnZXJEZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYg
b3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgV0tTZWN1cml0eU9y
aWdpblJlZiBvcmlnaW5SZWYpCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+
ZGVsZXRlRW50cmllc0Zvck9yaWdpbihtYXNrLCB0b0ltcGwob3JpZ2luUmVmKSk7Cit9CisKK3Zv
aWQgV0tPcmlnaW5EYXRhTWFuYWdlckRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhTWFuYWdl
clJlZiBvcmlnaW5EYXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRhTWFzayBtYXNrKQoreworICAg
IHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPmRlbGV0ZUFsbEVudHJpZXMobWFzayk7Cit9
CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclNldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFN
YW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFNYXNrIG1hc2ssIFdL
T3JpZ2luRGF0YUFjY2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFN
YW5hZ2VyUmVmKS0+c2V0QWNjZXB0UG9saWN5KG1hc2ssIHBvbGljeSk7Cit9Cit2b2lkIFdLT3Jp
Z2luRGF0YU1hbmFnZXJHZXRBY2NlcHRQb2xpY3koV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmln
aW5EYXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRhTWFzayBtYXNrLCB2b2lkKiBjb250ZXh0LCBX
S09yaWdpbkRhdGFNYW5hZ2VyR2V0QWNjZXB0UG9saWN5RnVuY3Rpb24gY2FsbGJhY2spCit7Cisg
ICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+Z2V0QWNjZXB0UG9saWN5KG1hc2ssIE9y
aWdpbkRhdGFBY2NlcHRQb2xpY3lDYWxsYmFjazo6Y3JlYXRlKGNvbnRleHQsIGNhbGxiYWNrKSk7
Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09y
aWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFNYXNr
IG1hc2spCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+c3RhcnRPYnNlcnZp
bmdDaGFuZ2VzKG1hc2spOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTdG9wT2JzZXJ2
aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBX
S09yaWdpbkRhdGFNYXNrIG1hc2spCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVm
KS0+c3RvcE9ic2VydmluZ0NoYW5nZXMobWFzayk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFu
YWdlclNldENoYW5nZUNsaWVudChXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5h
Z2VyUmVmLCBjb25zdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50ICpjbGllbnQpCit7
CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+c2V0Q2hhbmdlQ2xpZW50KGNsaWVu
dCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmln
aW5EYXRhTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2lu
RGF0YU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzAxMDhl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3Jp
Z2luRGF0YU1hbmFnZXIuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
S09yaWdpbkRhdGFNYW5hZ2VyX2gKKyNkZWZpbmUgV0tPcmlnaW5EYXRhTWFuYWdlcl9oCisKKyNp
bmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAi
QyIgeworI2VuZGlmCisKK2VudW0geworICAgIGtXS09yaWdpbkRhdGFNYXNrQXBwbGljYXRpb25D
YWNoZSA9IDEgPDwgMCwKKyAgICBrV0tPcmlnaW5EYXRhTWFza0Nvb2tpZSA9IDEgPDwgMSwKKyAg
ICBrV0tPcmlnaW5EYXRhTWFza0RhdGFiYXNlID0gMSA8PCAyLAorICAgIGtXS09yaWdpbkRhdGFN
YXNrS2V5VmFsdWVTdG9yYWdlID0gMSA8PCAzLAorICAgIGtXS09yaWdpbkRhdGFNYXNrTWVkaWFD
YWNoZSA9IDEgPDwgNCwKKyAgICBrV0tPcmlnaW5EYXRhTWFza1BsdWdpbkRhdGEgPSAxIDw8IDUs
CisgICAga1dLT3JpZ2luRGF0YU1hc2tSZXNvdXJjZUNhY2hlID0gMSA8PCA2LAorCisgICAga1dL
T3JpZ2luRGF0YU1hc2tBbGwgPSAoMSA8PCA3KSAtIDEKK307Cit0eXBlZGVmIHVpbnQzMl90IFdL
T3JpZ2luRGF0YU1hc2s7CisKK2VudW0geworICAgIGtXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3lB
bHdheXMgPSAwLAorICAgIGtXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3lOZXZlciA9IDEsCisgICAg
a1dLT3JpZ2luRGF0YUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluID0gMgor
fTsKK3R5cGVkZWYgdWludDMyX3QgV0tPcmlnaW5EYXRhQWNjZXB0UG9saWN5OworCitXS19FWFBP
UlQgV0tUeXBlSUQgV0tPcmlnaW5EYXRhTWFuYWdlckdldFR5cGVJRCgpOworCit0eXBlZGVmIHZv
aWQgKCpXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2luc0Z1bmN0aW9uKShXS0FycmF5UmVmLCBX
S0Vycm9yUmVmLCB2b2lkKik7CitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0
T3JpZ2lucyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdp
bkRhdGFNYXNrIG1hc2ssIHZvaWQqIGNvbnRleHQsIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmln
aW5zRnVuY3Rpb24gZnVuY3Rpb24pOworCitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5h
Z2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRh
dGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFNYXNrIG1hc2ssIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3Jp
Z2luKTsKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRyaWVz
KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3JpZ2luRGF0YU1h
c2sgbWFzayk7CisKKy8vIE9yaWdpbkRhdGFNYW5hZ2VyIENsaWVudAordHlwZWRlZiB2b2lkICgq
V0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNhbGxiYWNrKShXS09yaWdpbkRhdGFNYW5hZ2VyUmVm
IG9yaWdpbkRhdGFNYW5hZ2VyLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3N0cnVjdCBXS09y
aWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50IHsKKyAgICBpbnQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAg
ICAgICAgIGNsaWVudEluZm87CisgICAgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNhbGxiYWNr
ICAgZGlkQ2hhbmdlOworfTsKK3R5cGVkZWYgc3RydWN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFu
Z2VDbGllbnQgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudDsKKworZW51bSB7IGtXS09y
aWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50VmVyc2lvbiA9IDAgfTsKKworLy8gQ3VycmVudGx5
LCBvbmx5IG1hc2sgPT0gV0tPcmlnaW5EYXRhTWFuYWdlckNvb2tpZSBpcyBzdXBwb3J0ZWQgZm9y
IHRoZSBmb2xsb3dpbmcuCitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU2V0QWNj
ZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3Jp
Z2luRGF0YU1hc2sgbWFzaywgV0tPcmlnaW5EYXRhQWNjZXB0UG9saWN5IHBvbGljeSk7Cit0eXBl
ZGVmIHZvaWQgKCpXS09yaWdpbkRhdGFNYW5hZ2VyR2V0QWNjZXB0UG9saWN5RnVuY3Rpb24pKFdL
T3JpZ2luRGF0YUFjY2VwdFBvbGljeSwgV0tFcnJvclJlZiwgdm9pZCopOworV0tfRVhQT1JUIHZv
aWQgV0tPcmlnaW5EYXRhTWFuYWdlckdldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFNYW5hZ2Vy
UmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFNYXNrIG1hc2ssIHZvaWQqIGNvbnRl
eHQsIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRBY2NlcHRQb2xpY3lGdW5jdGlvbiBjYWxsYmFjayk7
CisKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTdGFydE9ic2VydmluZ0NoYW5n
ZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRh
TWFzayBtYXNrKTsKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTdG9wT2JzZXJ2
aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09y
aWdpbkRhdGFNYXNrIG1hc2spOworV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclNl
dENoYW5nZUNsaWVudChXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5nZXIsIGNv
bnN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQqIGNsaWVudCk7CisjaWZkZWYgX19j
cGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tPcmlnaW5EYXRhTWFuYWdlcl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjNiMDljNwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5LmNwcApAQCAtMCwwICsxLDE3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmgiCisK
KyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0Lmgi
CisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5
T3JpZ2luLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjb25zdCBjaGFyKiBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5OjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5IjsKK30KKworUGFzc1JlZlB0cjxXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5PiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29u
dGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHkoY29udGV4dCkpOworfQorCitXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCis6IFdlYkNvbnRleHRTdXBwbGVt
ZW50KGNvbnRleHQpCit7CisgICAgY29udGV4dC0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMp
OworfQorCitXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojp+V2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eSgpCit7Cit9CisKKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpjb250ZXh0
RGVzdHJveWVkKCkKK3sKKyAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJheUNhbGxiYWNr
cyk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6cHJvY2Vzc0RpZENsb3Nl
KFdlYlByb2Nlc3NQcm94eSopCit7CisgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fYXJyYXlD
YWxsYmFja3MpOworfQorCitib29sIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNob3VsZFRl
cm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKSBjb25zdAoreworICAgIHJldHVybiBtX2FycmF5Q2Fs
bGJhY2tzLmlzRW1wdHkoKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpy
ZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpCit7CisgICAgQVBJT2JqZWN0OjpyZWYoKTsKK30KKwor
dm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50
KCkKK3sKKyAgICBBUElPYmplY3Q6OmRlcmVmKCk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eTo6Z2V0T3JpZ2lucyhXS09yaWdpbkRhdGFNYXNrIG1hc2ssIFBhc3NSZWZQdHI8
QXJyYXlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCit7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IHBycENh
bGxiYWNrOworCisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lE
KCk7CisgICAgbV9hcnJheUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2sucmVsZWFz
ZSgpKTsKKworICAgIC8vIEZJWE1FIChNdWx0aS1XZWJQcm9jZXNzKTogPHJkYXI6Ly9wcm9ibGVt
LzEyMjM5NzY1PiBNYWtlIG1hbmlwdWxhdGluZyBjYWNoZSBpbmZvcm1hdGlvbiB3b3JrIHdpdGgg
cGVyLXRhYiBXZWJQcm9jZXNzLgorICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVs
YXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpH
ZXRPcmlnaW5zKG1hc2ssIGNhbGxiYWNrSUQpKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5OjpkaWRHZXRPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+
JiBvcmlnaW5EYXRhcywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBSZWZQdHI8QXJyYXlD
YWxsYmFjaz4gY2FsbGJhY2sgPSBtX2FycmF5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7Cisg
ICAgcGVyZm9ybUFQSUNhbGxiYWNrV2l0aFNlY3VyaXR5T3JpZ2luRGF0YVZlY3RvcihvcmlnaW5E
YXRhcywgY2FsbGJhY2suZ2V0KCkpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFzayBtYXNrLCBXZWJTZWN1
cml0eU9yaWdpbiogb3JpZ2luKQoreworICAgIGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhOworICAgIHNl
Y3VyaXR5T3JpZ2luRGF0YS5wcm90b2NvbCA9IG9yaWdpbi0+cHJvdG9jb2woKTsKKyAgICBzZWN1
cml0eU9yaWdpbkRhdGEuaG9zdCA9IG9yaWdpbi0+aG9zdCgpOworICAgIHNlY3VyaXR5T3JpZ2lu
RGF0YS5wb3J0ID0gb3JpZ2luLT5wb3J0KCk7CisKKyAgICAvLyBGSVhNRSAoTXVsdGktV2ViUHJv
Y2Vzcyk6IDxyZGFyOi8vcHJvYmxlbS8xMjIzOTc2NT4gTWFrZSBtYW5pcHVsYXRpbmcgY2FjaGUg
aW5mb3JtYXRpb24gd29yayB3aXRoIHBlci10YWIgV2ViUHJvY2Vzcy4KKyAgICBjb250ZXh0KCkt
PnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpX
ZWJPcmlnaW5EYXRhTWFuYWdlcjo6RGVsZXRlRW50cmllc0Zvck9yaWdpbihtYXNrLCBzZWN1cml0
eU9yaWdpbkRhdGEpKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxl
dGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YU1hc2sgbWFzaykKK3sKKyAgICBpZiAoIWNvbnRleHQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nlc3MpOiA8
cmRhcjovL3Byb2JsZW0vMTIyMzk3NjU+IE1ha2UgbWFuaXB1bGF0aW5nIGNhY2hlIGluZm9ybWF0
aW9uIHdvcmsgd2l0aCBwZXItdGFiIFdlYlByb2Nlc3MuCisgICAgY29udGV4dCgpLT5zZW5kVG9B
bGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViT3JpZ2lu
RGF0YU1hbmFnZXI6OkRlbGV0ZUFsbEVudHJpZXMobWFzaykpOworfQorCit2b2lkIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHk6OnNldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFNYXNrIG1hc2ss
IFdLT3JpZ2luRGF0YUFjY2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAgaWYgKCFjb250ZXh0KCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVs
YXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpT
ZXRBY2NlcHRQb2xpY3kobWFzaywgcG9saWN5KSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eTo6Z2V0QWNjZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgUGFzc1Jl
ZlB0cjxPcmlnaW5EYXRhQWNjZXB0UG9saWN5Q2FsbGJhY2s+IHBycENhbGxiYWNrKQoreworICAg
IGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8T3JpZ2luRGF0
YUFjY2VwdFBvbGljeUNhbGxiYWNrPiBjYWxsYmFjayA9IHBycENhbGxiYWNrOworCisgICAgdWlu
dDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CisgICAgbV9hY2NlcHRQ
b2xpY3lDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLnJlbGVhc2UoKSk7CisKKyAg
ICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5
KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6R2V0QWNjZXB0UG9saWN5KG1hc2ssIGNh
bGxiYWNrSUQpKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzdGFydE9i
c2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFzayBtYXNrKQoreworICAgIGlmICghY29udGV4
dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nl
c1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdl
cjo6U3RhcnRPYnNlcnZpbmdDaGFuZ2VzKG1hc2spKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5OjpzdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYXNrIG1hc2sp
Cit7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRleHQo
KS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpTdGFydE9ic2VydmluZ0NoYW5nZXMobWFzaykpOworfQor
Cit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNldENoYW5nZUNsaWVudChjb25zdCBX
S09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50ICpjbGllbnQpCit7CisgICAgbV9jbGllbnQu
aW5pdGlhbGl6ZShjbGllbnQpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6
OmRpZENoYW5nZSgpCit7CisgICAgbV9jbGllbnQuZGlkQ2hhbmdlKHRoaXMpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjgzYjIxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlfaAorI2RlZmluZSBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1
ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgorI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCisjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV0tPcmlnaW5EYXRhTWFuYWdlci5o
IgorI2luY2x1ZGUgIldlYkNvbnRleHRTdXBwbGVtZW50LmgiCisjaW5jbHVkZSAiV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKwor
bmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOworc3RydWN0IFNlY3VyaXR5T3JpZ2lu
RGF0YTsKKwordHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFj
azsKK3R5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLT3JpZ2luRGF0YUFjY2VwdFBvbGljeSwgT3Jp
Z2luRGF0YUFjY2VwdFBvbGljeT4gT3JpZ2luRGF0YUFjY2VwdFBvbGljeUNhbGxiYWNrOworCitj
bGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQ
SU9iamVjdDo6VHlwZU9yaWdpbkRhdGFNYW5hZ2VyPiwgcHVibGljIFdlYkNvbnRleHRTdXBwbGVt
ZW50LCBwcml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5PiBjcmVhdGUoV2ViQ29udGV4dCopOworICAgIHZp
cnR1YWwgfldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkoKTsKKworICAgIHZvaWQgZ2V0T3JpZ2lu
cyhXS09yaWdpbkRhdGFNYXNrLCBQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+KTsKKyAgICB2b2lk
IGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFzaywgV2ViU2VjdXJpdHlPcmln
aW4qKTsKKyAgICB2b2lkIGRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhTWFzayk7CisKKyAg
ICB2b2lkIHNldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFNYXNrLCBXS09yaWdpbkRhdGFBY2Nl
cHRQb2xpY3kpOworICAgIHZvaWQgZ2V0QWNjZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1hc2ssIFBh
c3NSZWZQdHI8T3JpZ2luRGF0YUFjY2VwdFBvbGljeUNhbGxiYWNrPik7CisKKyAgICB2b2lkIHN0
YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYXNrKTsKKyAgICB2b2lkIHN0b3BPYnNl
cnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hc2spOworICAgIHZvaWQgc2V0Q2hhbmdlQ2xpZW50
KGNvbnN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQqKTsKKworICAgIHVzaW5nIEFQ
SU9iamVjdDo6cmVmOworICAgIHVzaW5nIEFQSU9iamVjdDo6ZGVyZWY7CisKK3ByaXZhdGU6Cisg
ICAgZXhwbGljaXQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CisKKyAg
ICB2b2lkIGRpZEdldE9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mLCB1
aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRpZENoYW5nZSgpOworCisgICAgLy8gV2Vi
Q29udGV4dFN1cHBsZW1lbnQKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoV2ViUHJvY2Vzc1Byb3h5
KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNz
UHJveHkqKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmV2ViQ29udGV4dFN1
cHBsZW1lbnQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZXZWJDb250ZXh0U3Vw
cGxlbWVudCgpIE9WRVJSSURFOworCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworCisgICAgSGFzaE1hcDx1aW50NjRf
dCwgUmVmUHRyPEFycmF5Q2FsbGJhY2s+PiBtX2FycmF5Q2FsbGJhY2tzOworICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxPcmlnaW5EYXRhQWNjZXB0UG9saWN5Q2FsbGJhY2s+PiBtX2FjY2Vw
dFBvbGljeUNhbGxiYWNrczsKKworICAgIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VD
bGllbnQgbV9jbGllbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmQ3NmI0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisj
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5IHsKKyAg
ICBEaWRHZXRPcmlnaW5zKFZlY3RvcjxXZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lu
SWRlbnRpZmllcnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIERpZENoYW5nZSgpCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eUNoYW5nZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNjY2MDFhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcApAQCAtMCww
ICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCIKKworI2luY2x1ZGUgIldLQVBJ
Q2FzdC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Q2hhbmdlQ2xpZW50OjpkaWRDaGFuZ2UoV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSog
b3JpZ2luRGF0YU1hbmFnZXIpCit7CisgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LmRpZENoYW5nZSh0b0FQSShvcmlnaW5EYXRhTWFu
YWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Q2hhbmdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmJhNzY3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oCkBAIC0wLDAgKzEs
NDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFu
Z2VDbGllbnRfaAorI2RlZmluZSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50
X2gKKworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLT3JpZ2luRGF0YU1hbmFn
ZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eUNoYW5nZUNsaWVudCA6IHB1YmxpYyBBUElDbGllbnQ8V0tPcmlnaW5EYXRhTWFu
YWdlckNoYW5nZUNsaWVudCwga1dLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnRWZXJzaW9u
PiB7CitwdWJsaWM6CisgICAgdm9pZCBkaWRDaGFuZ2UoV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eSopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNGQ0NWQ4Li4zMGU4OGZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC01NjIsNiArNTYyLDIxIEBACiAJCTZFRTg0OUM4MTM2OEQ5MzkwMDM4RDQ4MSAvKiBXS0luc3Bl
Y3RvclByaXZhdGVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZFRTg0OUM2MTM2OEQ5MkQwMDM4RDQ4MSAvKiBXS0luc3BlY3RvclByaXZhdGVNYWMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjhF
ODZGMTE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOEU4NkVGMTc5NTE4OEMwMDg3ODc5
RSAvKiBXZWJDb2xvclBpY2tlck1hYy5oICovOyB9OwogCQk3MjhFODZGMjE3OTUxODhDMDA4Nzg3
OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3MjhFODZGMDE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNr
ZXJNYWMubW0gKi87IH07CisJCTc1NTQyMkJCMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRh
dGFNYW5hZ2VyLmNwcCBpbiBDb3B5IEZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNw
cCAqLzsgfTsKKwkJNzU1NDIyQkMxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFn
ZXIuaCBpbiBDb3B5IEZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1
NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggKi87IH07CisJ
CTc1NTQyMkJEMTgwNjJCQjIwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkI5MTgwNjJC
OUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNzU1NDIyQzMx
ODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4g
aW4gQ29weSBGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJD
MDE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
biAqLzsgfTsKKwkJNzU1NDIyQzQxODA2MkJGOTAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHku
Y3BwICovOyB9OworCQk3NTU0MjJDQjE4MDY1MDAyMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzU1NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLzsg
fTsKKwkJNzU1NDIyQ0MxODA3NzNDRTAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJDNzE4
MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCAqLzsgfTsKKwkJNzU5Q0NE
NTMxODA4RDAzMDAwNzhFOEE4IC8qIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3kuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1OUNDRDUxMTgwOEQwMUMwMDc4
RThBOCAvKiBPcmlnaW5EYXRhQWNjZXB0UG9saWN5LmggKi87IH07CisJCTc1OUNDRDU4MTgwOEYx
NjQwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1OUNDRDU0MTgw
OEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNw
cCAqLzsgfTsKKwkJNzU5Q0NENTkxODA4RjE2OTAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlDaGFuZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc1OUNDRDU1MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50LmggKi87IH07CisJCTc1OUNDRDVBMTgwOEY2MTYwMDc4RThB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJCRjE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5oICovOyB9OworCQk3NUU3NDlFOTE4MERCQjk4MDAwODhCQTYg
LyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVFNzQ5RTUxODBEQkI5ODAwMDg4QkE2
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJNzVF
NzQ5RUExODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU2MTgw
REJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJ
CTc1RTc0OUVCMTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc1RTc0OUU3MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJNzVFNzQ5RUMxODBEQkI5ODAwMDg4QkE2
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVFNzQ5RTgxODBEQkI5ODAwMDg4QkE2IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQk3NjJCNzQ4RDEy
MEJDNzVDMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAv
KiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTc4MDFDMDk5MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0
UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc4MDFDMDk1MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNwcCAqLzsgfTsK
IAkJNzgwMUMwOUExNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc4MDFDMDk2MTQyMjkwQzQw
MEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmggKi87IH07CkBAIC0xMzAyLDggKzEzMTcsMTEg
QEAKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSAxOwogCQkJZmlsZXMgPSAoCiAJCQkJNTEwQ0M4NDkx
NjEzQzg1QzAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLmFwcCBpbiBDb3B5IEZpbGVzICovLAor
CQkJCTc1NTQyMkJDMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggaW4g
Q29weSBGaWxlcyAqLywKIAkJCQlCQ0RFMEFCRjEzMjcyNzA4MDAxMjU5RkIgLyogUGx1Z2luUHJv
Y2Vzcy5hcHAgaW4gQ29weSBGaWxlcyAqLywKKwkJCQk3NTU0MjJDMzE4MDYyQkU0MDA0NkY2QTgg
LyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBpbiBDb3B5IEZpbGVzICov
LAogCQkJCTFBNTBEQjY2MTEwQTNENTcwMDBEM0ZFNSAvKiBXZWJQcm9jZXNzLmFwcCBpbiBDb3B5
IEZpbGVzICovLAorCQkJCTc1NTQyMkJCMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFN
YW5hZ2VyLmNwcCBpbiBDb3B5IEZpbGVzICovLAogCQkJKTsKIAkJCW5hbWUgPSAiQ29weSBGaWxl
cyI7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTE5NjIs
NiArMTk4MCwyMSBAQAogCQk2RUU4NDlDNjEzNjhEOTJEMDAzOEQ0ODEgLyogV0tJbnNwZWN0b3JQ
cml2YXRlTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLSW5zcGVjdG9y
UHJpdmF0ZU1hYy5oOyBwYXRoID0gbWFjL1dLSW5zcGVjdG9yUHJpdmF0ZU1hYy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3MjhFODZFRjE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29s
b3JQaWNrZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JQ
aWNrZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI4RTg2RjAxNzk1MTg4
QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViQ29sb3JQaWNrZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5h
Z2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLT3JpZ2luRGF0
YU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJCQTE4MDYy
QjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS09yaWdpbkRhdGFNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0
MjJCRjE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkMwMTgwNjJCRTQwMDQ2RjZBOCAv
KiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkM2MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJP
cmlnaW5EYXRhTWFuYWdlci5jcHA7IHBhdGggPSBPcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5h
Z2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQzcxODA2NEZGQzAw
NDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmg7IHBhdGggPSBPcmlnaW5EYXRhL1dlYk9y
aWdpbkRhdGFNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkM4
MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbjsgcGF0
aCA9IE9yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1OUNDRDUxMTgwOEQwMUMwMDc4RThBOCAvKiBPcmlnaW5E
YXRhQWNjZXB0UG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9yaWdp
bkRhdGFBY2NlcHRQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU5Q0NE
NTQxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGll
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTc1OUNDRDU1MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
Q2hhbmdlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNzVFNzQ5RTUxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzVFNzQ5RTYxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2lu
RGF0YU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUU3
NDlFNzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzVFNzQ5RTgxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzYyQjc0ODExMjBCQkEwMTAwODE5MzM5IC8qIEZvbnRTbW9vdGhpbmdMZXZlbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250U21vb3RoaW5nTGV2ZWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzYyQjc0ODQxMjBCQkEyRDAwODE5MzM5IC8qIFdL
UHJlZmVyZW5jZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
UHJlZmVyZW5jZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc4MDFD
MDk1MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkhpdFRlc3RSZXN1bHQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMzEwOSw2ICszMTQyLDcgQEAKIAkJCQlERjU4QzYzMTEzNzFB
QzU4MDBGOUEzN0MgLyogTmF0aXZlV2ViV2hlZWxFdmVudC5oICovLAogCQkJCUJDQ0Y2NzMyMTJD
N0YxNUMwMDhGOUMzNSAvKiBPcmlnaW5BbmREYXRhYmFzZXMuY3BwICovLAogCQkJCUJDQ0Y2NzJD
MTJDN0VERjcwMDhGOUMzNSAvKiBPcmlnaW5BbmREYXRhYmFzZXMuaCAqLywKKwkJCQk3NTlDQ0Q1
MTE4MDhEMDFDMDA3OEU4QTggLyogT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oICovLAogCQkJCUJD
QzQzQUI4MTI3Qjk1REMwMDMxN0YxNiAvKiBQbGF0Zm9ybVBvcHVwTWVudURhdGEuY3BwICovLAog
CQkJCUJDQzQzQUI5MTI3Qjk1REMwMDMxN0YxNiAvKiBQbGF0Zm9ybVBvcHVwTWVudURhdGEuaCAq
LywKIAkJCQlFMThDOTJGMzEyREI5RTcxMDBDRjJBRUIgLyogUHJpbnRJbmZvLmNwcCAqLywKQEAg
LTM2NTIsNiArMzY4NiwxNiBAQAogCQkJbmFtZSA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07CisJCTc1NTQyMkM1MTgwNjRGRkMwMDQ2RjZBOCAvKiBPcmlnaW5EYXRhICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk3NTU0MjJDNjE4
MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovLAorCQkJCTc1NTQy
MkM3MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oICovLAorCQkJCTc1
NTQyMkM4MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5p
biAqLywKKwkJCSk7CisJCQluYW1lID0gT3JpZ2luRGF0YTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CisJCX07CiAJCTdDQjE2RkUxMTcyNEI5QjUwMDdBMEE5NSAvKiBQbHVnSW5TYW5kYm94
UHJvZmlsZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAt
MzcwMSw2ICszNzQ1LDcgQEAKIAkJQkMwMzJENUMxMEY0MzZENTAwNThDMTVBIC8qIFdlYlByb2Nl
c3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTc1NTQy
MkM1MTgwNjRGRkMwMDQ2RjZBOCAvKiBPcmlnaW5EYXRhICovLAogCQkJCTUxMkUzNTJBMTMwQjU1
OTkwMEFCRDE5QSAvKiBBcHBsaWNhdGlvbkNhY2hlICovLAogCQkJCTMzMDkzNDRCMTMxNUI5M0Ew
MDk3QTdCQyAvKiBDb29raWVzICovLAogCQkJCUJDQUNDNDNCMTZCMjRDNUQwMEI2RTA5MiAvKiBF
bnRyeVBvaW50ICovLApAQCAtMzkzMCw2ICszOTc1LDExIEBACiAJCQkJQkNGNjlGQTAxMTc2RDAx
NDAwNDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhLmggKi8sCiAJCQkJQkMxREZFQTMxMkIzMUY4
NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwICovLAogCQkJ
CUJDMURGRUEyMTJCMzFGODcwMDVERjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclBy
b3h5LmggKi8sCisJCQkJNzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHkuY3BwICovLAorCQkJCTc1NTQyMkJGMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmggKi8sCisJCQkJNzU1NDIyQzAxODA2MkJFNDAwNDZGNkE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJNzU5Q0NE
NTQxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGll
bnQuY3BwICovLAorCQkJCTc1OUNDRDU1MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggKi8sCiAJCQkJNTE1MzU2OUExMjkxQjFEMjAwMDc0
OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8sCiAJCQkJNTE1MzU2OUIxMjkx
QjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovLAogCQkJCUJDN0I2
MjA1MTI5QTBBNjcwMEQxNzRBNCAvKiBXZWJQYWdlR3JvdXAuY3BwICovLApAQCAtNDAzMyw2ICs0
MDgzLDggQEAKIAkJCQlCQzg1N0ZFNDEyQjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJh
bWV0ZXJzLmggKi8sCiAJCQkJQkMxREZFOEUxMkIzMUNBODAwNURGNzMwIC8qIFdLT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIuY3BwICovLAogCQkJCUJDMURGRThEMTJCMzFDQTgwMDVERjczMCAvKiBX
S09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggKi8sCisJCQkJNzU1NDIyQjkxODA2MkI5QzAwNDZG
NkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovLAorCQkJCTc1NTQyMkJBMTgwNjJCOUMw
MDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggKi8sCiAJCQkJQkNENTk3RDQxMTJCNTZE
QzAwRUM4QzIzIC8qIFdLUGFnZS5jcHAgKi8sCiAJCQkJQkNENTk3RDUxMTJCNTZEQzAwRUM4QzIz
IC8qIFdLUGFnZS5oICovLAogCQkJCUJDN0I2MzM2MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VH
cm91cC5jcHAgKi8sCkBAIC00NzQ1LDYgKzQ3OTcsMTAgQEAKIAkJQzBDRTcyOUQxMjQ3RTcxRDAw
QkMwRUM0IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNzVFNzQ5RTUxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk3NUU3NDlFNjE4MERCQjk4MDAw
ODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTc1RTc0OUU3
MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKKwkJCQk3NUU3NDlFODE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJNTEyRjU4QTAxMkE4ODNBRDAwNjI5NTMw
IC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTEy
RjU4QTExMkE4ODNBRDAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmgg
Ki8sCiAJCQkJRTE3QUUyQzIxNkI5QzYzQTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0
d29ya1Byb2Nlc3Muc2IgKi8sCkBAIC01MTE2LDYgKzUxNzIsNyBAQAogCQkJCUJDNkVEQUE2MTEx
MjcxQzYwMEU3Njc4QiAvKiBQYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzExMUI1
MDExMkY2MTkyMDAzMzdCQUIgLyogUGFnZUNsaWVudEltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOTBDMjM3MTI2NTA3MTcwMDNFNDRENCAvKiBQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNzU5Q0NENTMxODA4RDAzMDAwNzhFOEE4IC8qIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3ku
aCBpbiBIZWFkZXJzICovLAogCQkJCUM1NzRBNTgxMTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0ZWJv
YXJkVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxOTU4MkQzMTUzQ0JGRDcwMEI2MDg3NSAv
KiBQREZLaXRJbXBvcnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUZDQjE4OTE3QkJGRTAzMDAz
OTRDRDggLyogU3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTUyMTksOSArNTI3NiwxMSBAQAogCQkJCUJDREUwNTlCMTFDREE4QUUwMEU0MUFGMSAvKiBX
ZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODcx
QjVDMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMwMzJENzcxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQk3NUU3NDlFQzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTI5MzVEODEyODhE
MTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTBGQkI5QjEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTFBQ0JCODIxMjdBOEJBRDAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51
UHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1RTc0OUVBMTgwREJCOTgwMDA4OEJBNiAvKiBX
ZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUFDQkJB
MDEyN0E4RjJDMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNDQjc1QzYxMjAzQTFDRTAwMjIyRDFCIC8qIFdlYkNvbnRleHRNZXNzYWdlS2lu
ZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUU3RDBFMTI4NDZGNjkwMDk4MjdEQSAvKiBXZWJD
b250ZXh0TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApAQCAtNTQ4MCw2ICs1NTM5LDcgQEAKIAkJ
CQlCQ0REQjMyQjEyNEVDMkFCMDA0OEQxM0MgLyogV0tTaGFyZWRBUElDYXN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzQwNzYwNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tTdHJpbmcuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNDA3NjFBMTI0RkYwMzcwMDY4RjIwQSAvKiBXS1N0cmluZ0NGLmggaW4g
SGVhZGVycyAqLywKKwkJCQk3NTlDQ0Q1OTE4MDhGMTY5MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5MDk5ODAx
MjU2QTk4MjAwMDgzNzU2IC8qIFdLU3RyaW5nUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Mzc3RUFENDgxN0UyQzc3QjAwMkQxOTNEIC8qIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTlBQTgxMkI3RTc5NjAwOEZFOTg0IC8qIFdLVGV4dElu
cHV0V2luZG93Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC01NDkwLDExICs1NTUwLDEz
IEBACiAJCQkJQkM0MDc2MEMxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVxdWVzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM0MDc2MjkxMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVxdWVzdE5T
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwRTEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkxS
ZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU5Q0NENUExODA4RjYxNjAwNzhFOEE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjJC
MTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNlTlMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUY2MTEzRTI5MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM4Njk5QjUxMTZBQURBQTAwMkE5MjVCIC8qIFdLVmlldy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM4Njk5QjcxMTZBQURBQTAwMkE5MjVCIC8qIFdLVmlld0ludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRkE2MTc5RjEyRjBCOTlEMDAzM0UwQ0EgLyogV0tW
aWV3UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU1NDIyQ0MxODA3NzNDRTAwNDZGNkE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUUxQUZFOTE2
QjIwQjc1MDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUUx
QUZFQjE2QjIwQjdFMDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZlUmVzb3VyY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDOTg5RDgyMTYxQTdFNUQwMDBENDZEMyAvKiBXS1dlYlByb2Nlc3NQbHVnSW4u
aCBpbiBIZWFkZXJzICovLApAQCAtNjE5MCw2ICs2MjUyLDcgQEAKIAkJCQlCQ0VFN0RDNjEyOEI2
NDVEMDA5ODI3REEgLyogSW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTFGQTJENzQxNTIxMkRGMTAwQzFCQTBCIC8qIEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0
ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDk4NjE5MTI0RDEwRTIwMEQ4MzRFMSAv
KiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzVF
NzQ5RTkxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjA0RUU2MTFDODNFQTkwMDhGMzM3NSAvKiBJ
bmplY3RlZEJ1bmRsZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDODE0N0Q2MTJGNjZEMzEw
MDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM0QkVFQUMxMjBBMEE1RjAwRkJBMEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhh
bmRsZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTYxOTgsNiArNjI2MSw3IEBACiAJCQkJRTFFRTUz
RTcxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzE0RTEwOTEyMEI5MDVFMDA4MjZDMEMgLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDVDNjZBMDEzNEI5
RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk3NTU0MjJDQjE4MDY1MDAyMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBOEM2QTgxMUUzQkE1RjAwODEyRkI3
IC8qIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzgxNDdBQTEyRjY0Q0RBMDA3QjJDMzIgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUG9saWN5Q2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1OUM1NTFFMTMwMDA2NDEwMDI1QzBDMiAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC02MzA5LDYgKzYzNzMsNyBAQAogCQkJCTFBMDQzQjVEMTI0RDVFOUQwMEZGQkZCNSAvKiBQbHVn
aW5Qcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEw
NDNEQzIxMjRGRjg3NTAwRkZCRkI1IC8qIFBsdWdpblByb3h5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTFBMkQ5MjIxMTI4MURDMUIwMDFFQjk2MiAvKiBQbHVnaW5Qcm94eU1hYy5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTc1NTQyMkM0MTgwNjJCRjkwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBOEVGQTcwMTI1MkI4NDEwMEY3MDY3
RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
Q0Q2MjI3NzE3MzlEODYzMDA1QkQ3RkYgLyogUGx1Z2luU2FuZGJveFByb2ZpbGUubW0gaW4gU291
cmNlcyAqLywKIAkJCQlCQzgyODQ0RDE2QjUwODFDMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZUVu
dHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKQEAgLTY0MjgsNiArNjQ5Myw3IEBACiAJCQkJQkNC
OUY2QTExMTIzQTg0QjAwQTEzN0UwIC8qIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzExMUIwRTExMkY1RTRGMDAzMzdCQUIgLyogV2ViRnJhbWVQ
cm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDczQkE1MzEzMUI2NDVCMDBFRURFRDIgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzU1NDIyQkQxODA2
MkJCMjAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENkY3NUY0MTMxQjY2RDAwMEQ2QjIx
RSAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
Q0E4NUVFMTMyQUQ3MDEwMEU5NjFERiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjLm1t
IGluIFNvdXJjZXMgKi8sCkBAIC02NTA3LDYgKzY1NzMsNyBAQAogCQkJCTFBMDQzQTBBMTI0RDEx
QTkwMEZGQkZCNSAvKiBXZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTA0M0Y2OTEyNTE0RDhCMDBGRkJGQjUgLyogV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMzMDY4MjUxMjVBNkI5NDAwRTcxMjc4
IC8qIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NzVFNzQ5RUIxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMzMDY1QzQxMjU5MkY4OTAwRTcx
Mjc4IC8qIFdlYlByb2Nlc3NNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzMwNjZCRTEyNUE0
NDIxMDBFNzEyNzggLyogV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzExMUIxMTExMkY1RTRGMDAzMzdCQUIgLyogV2ViUHJvY2Vzc1Byb3h5LmNwcCBp
biBTb3VyY2VzICovLApAQCAtNjU3MCw2ICs2NjM3LDcgQEAKIAkJCQk5RkI1RjM5NDE2OUU2QTgw
MDAyQzI1QkYgLyogV0tDb250ZXh0UHJpdmF0ZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTMz
MDkzNDVBMTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nvb2tpZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTEyRjU4RjkxMkE4OEE1NDAwNjI5NTMwIC8qIFdLQ3JlZGVudGlhbC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk3NTlDQ0Q1ODE4MDhGMTY0MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzVG
NzEyNEZGMDI3MDA2OEYyMEEgLyogV0tEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY2MkE3
NjYxMTJCMUFCRUQwMDA1RjFCNiAvKiBXS0RhdGFiYXNlTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzQwNzVGOTEyNEZGMDI3MDA2OEYyMEEgLyogV0tEaWN0aW9uYXJ5LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5E
YXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
T3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNjg3ZjJmYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKQEAgLTAsMCAr
MSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgor
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdp
bkhhc2guaD4KKworI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY29uc3QgY2hhciogV2ViT3JpZ2luRGF0
YU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIldlYk9yaWdpbkRhdGFN
YW5hZ2VyIjsKK30KKworV2ViT3JpZ2luRGF0YU1hbmFnZXI6OldlYk9yaWdpbkRhdGFNYW5hZ2Vy
KENoaWxkUHJvY2VzcyogY2hpbGRQcm9jZXNzKQorICAgIDogbV9jaGlsZFByb2Nlc3MoY2hpbGRQ
cm9jZXNzKQoreworICAgIG1fY2hpbGRQcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwor
fQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpnZXRPcmlnaW5zKFdLT3JpZ2luRGF0YU1h
c2sgbWFzaywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4+IG9yaWdpbnM7CisKKyAgICAvLyBGSVhNRTogcG9wdWxhdGUgb3JpZ2lucwor
CisgICAgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gaWRlbnRpZmllcnM7CisgICAgaWRlbnRp
ZmllcnMucmVzZXJ2ZUNhcGFjaXR5KG9yaWdpbnMuc2l6ZSgpKTsKKworICAgIEhhc2hTZXQ8UmVm
UHRyPFNlY3VyaXR5T3JpZ2luPj46Oml0ZXJhdG9yIGVuZCA9IG9yaWdpbnMuZW5kKCk7CisgICAg
SGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+Pjo6aXRlcmF0b3IgaSA9IG9yaWdpbnMuYmVn
aW4oKTsKKyAgICBmb3IgKDsgaSAhPSBlbmQ7ICsraSkgeworICAgICAgICBSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IG9yaWdpbiA9ICppOworCisgICAgICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmln
aW5EYXRhOworICAgICAgICBvcmlnaW5EYXRhLnByb3RvY29sID0gb3JpZ2luLT5wcm90b2NvbCgp
OworICAgICAgICBvcmlnaW5EYXRhLmhvc3QgPSBvcmlnaW4tPmhvc3QoKTsKKyAgICAgICAgb3Jp
Z2luRGF0YS5wb3J0ID0gb3JpZ2luLT5wb3J0KCk7CisKKyAgICAgICAgaWRlbnRpZmllcnMudW5j
aGVja2VkQXBwZW5kKG9yaWdpbkRhdGEpOworICAgIH0KKworICAgIG1fY2hpbGRQcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpEaWRHZXRPcmlnaW5zKGlk
ZW50aWZpZXJzLCBjYWxsYmFja0lEKSwgMCk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFn
ZXI6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFzayBtYXNrLCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbkRhdGEpCit7CisgICAgUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEucHJvdG9jb2ws
IG9yaWdpbkRhdGEuaG9zdCwgb3JpZ2luRGF0YS5wb3J0KTsKKyAgICBpZiAoIW9yaWdpbikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IGRlbGV0ZSBjYWNoZQorfQorCit2b2lkIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YU1hc2sgbWFz
aykKK3sKKyAgICAvLyBGSVhNRTogZGVsZXRlIGVudHJpZXMKK30KKwordm9pZCBXZWJPcmlnaW5E
YXRhTWFuYWdlcjo6c2V0QWNjZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgT3JpZ2lu
RGF0YUFjY2VwdFBvbGljeSBwb2xpY3kpCit7CisgICAgLy8gRklYTUU6IHNldCBhY2NlcHQgcG9s
aWN5Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXI6OmdldEFjY2VwdFBvbGljeShXS09y
aWdpbkRhdGFNYXNrIG1hc2ssIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgLy8gRklYTUU6
IGdldCBhY2NlcHQgcG9saWN5IChuZWVkcyBuZXcgbWVzc2FnZSkKK30KKwordm9pZCBXZWJPcmln
aW5EYXRhTWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hc2sgbWFz
aykKK3sKKyAgICAvLyBGSVhNRTogc3RhcnQgb2JzZXJ2aW5nIGNoYW5nZXMKK30KKwordm9pZCBX
ZWJPcmlnaW5EYXRhTWFuYWdlcjo6c3RvcE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFz
ayBtYXNrKQoreworICAgIC8vIEZJWE1FOiBzdG9wIG9ic2VydmluZyBjaGFuZ2VzCit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5mZjFlODYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmgKQEAgLTAs
MCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViT3JpZ2luRGF0YU1hbmFn
ZXJfaAorI2RlZmluZSBXZWJPcmlnaW5EYXRhTWFuYWdlcl9oCisKKyNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJPcmlnaW5EYXRhQWNjZXB0UG9saWN5LmgiCisjaW5jbHVk
ZSAiV0tPcmlnaW5EYXRhTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50
LmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBDaGlsZFByb2Nlc3M7Citz
dHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworCitjbGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdlciA6
IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIENvcmVJUEM6Ok1lc3NhZ2VSZWNl
aXZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViT3JpZ2luRGF0YU1hbmFnZXIpOwor
cHVibGljOgorICAgIFdlYk9yaWdpbkRhdGFNYW5hZ2VyKENoaWxkUHJvY2VzcyopOworCisgICAg
c3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisKKyAgICB2b2lkIGRlbGV0ZUFs
bEVudHJpZXMoV0tPcmlnaW5EYXRhTWFzayk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBnZXRPcmln
aW5zKFdLT3JpZ2luRGF0YU1hc2ssIHVpbnQ2NF90KTsKKyAgICB2b2lkIGRlbGV0ZUVudHJpZXNG
b3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFzaywgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7Cisg
ICAgdm9pZCBzZXRBY2NlcHRQb2xpY3koV0tPcmlnaW5EYXRhTWFzaywgT3JpZ2luRGF0YUFjY2Vw
dFBvbGljeSk7CisgICAgdm9pZCBnZXRBY2NlcHRQb2xpY3koV0tPcmlnaW5EYXRhTWFzaywgdWlu
dDY0X3QpOworICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hc2sp
OworICAgIHZvaWQgc3RvcE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFzayk7CisKKyAg
ICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikg
T1ZFUlJJREU7CisKKyAgICBDaGlsZFByb2Nlc3MqIG1fY2hpbGRQcm9jZXNzOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJPcmlnaW5EYXRhTWFuYWdlcl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2lu
RGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdp
bkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjBlNjQyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDMxIEBACisjIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK21lc3NhZ2VzIC0+IFdlYk9yaWdpbkRhdGFNYW5hZ2VyIHsKKyAgICB2b2lkIEdldE9yaWdp
bnModWludDMyX3QgbWFzaywgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICB2b2lkIERlbGV0ZUVu
dHJpZXNGb3JPcmlnaW4odWludDMyX3QgbWFzaywgV2ViS2l0OjpTZWN1cml0eU9yaWdpbkRhdGEg
b3JpZ2luSWRlbnRpZmllcikKKyAgICB2b2lkIERlbGV0ZUFsbEVudHJpZXModWludDMyX3QgbWFz
aykKKyAgICB2b2lkIFNldEFjY2VwdFBvbGljeSh1aW50MzJfdCBtYXNrLCB1aW50MzJfdCBwb2xp
Y3kpCisgICAgdm9pZCBHZXRBY2NlcHRQb2xpY3kodWludDMyX3QgbWFzaywgdWludDY0X3QgY2Fs
bGJhY2tJRCkKKyAgICB2b2lkIFN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyh1aW50MzJfdCBtYXNrKQor
ICAgIHZvaWQgU3RvcE9ic2VydmluZ0NoYW5nZXModWludDMyX3QgbWFzaykKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214294</attachid>
            <date>2013-10-15 13:00:38 -0700</date>
            <delta_ts>2013-10-15 15:39:07 -0700</delta_ts>
            <desc>fix gtk build</desc>
            <filename>122781g.diff</filename>
            <type>text/plain</type>
            <size>69652</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggN2M3YzQxZC4uOGExYmUzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTQ2LDYgKzQ2LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0xhdW5jaGluZyIKICAgICAiJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvT3JpZ2lu
RGF0YSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dF
QktJVDJfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKQEAgLTMwNyw2ICszMDgsOCBAQCBzZXQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNw
cAogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vz
cy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1l
bnVDbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAKICAgICBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzU0LDYgKzM1Nyw3IEBAIHNldChXZWJLaXQyX1NPVVJD
RVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5j
cHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcAorICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAKQEAgLTQ2MSw2ICs0NjUsOCBAQCBz
ZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKICAgICBXZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvT3JpZ2lu
RGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKKwogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW4uY3BwCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
LmNwcAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuY3BwCkBAIC01NDksNiArNTU1LDcgQEAgc2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMK
ICAgICBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nl
c3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9X
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorICAgIFVJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtNTg2LDYgKzU5Myw4IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAg
ICBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdl
cy5pbgogCisgICAgV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1l
c3NhZ2VzLmluCisKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b3h5Lm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmRlNDAxZC4uNjMyMWZiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDc1IEBACisyMDEzLTEwLTE0ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWZhY3RvciBzdG9yZWQgd2Vic2l0ZSBkYXRhIEFQSXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjc4MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJPcmlnaW5E
YXRhTWFuYWdlciBhbG9uZyB3aXRoIGNvcnJlc3BvbmRpbmcgY2xhc3MKKyAgICAgICAgV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eSBhbmQgQVBJIFdLT3JpZ2luRGF0YU1hbmFnZXIuCisKKyAgICAg
ICAgQ3VycmVudGx5LCB0aGUgbmV3IGZpbGVzIGFyZSB1bnVzZWQuCisKKyAgICAgICAgV0tPcmln
aW5EYXRhTWFuYWdlciBzaG91bGQgc3Vic3VtZSB0aGUgZnVuY3Rpb25hbGl0eSBvZjoKKyAgICAg
ICAgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciwgV0tDb29raWVNYW5hZ2VyLCBXS0RhdGFiYXNl
TWFuYWdlciwKKyAgICAgICAgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLCBXS01lZGlhQ2FjaGVN
YW5hZ2VyLAorICAgICAgICBXS1BsdWdpblNpdGVEYXRhTWFuYWdlciwgYW5kIFdLUmVzb3VyY2VD
YWNoZU1hbmFnZXIuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDoK
KyAgICAgICAgKiBTaGFyZWQvT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRHZXRPcmlnaW5EYXRhTWFuYWdl
cik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChX
S09yaWdpbkRhdGFNYW5hZ2VyR2V0VHlwZUlEKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFn
ZXJHZXRPcmlnaW5zKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVFbnRyaWVz
Rm9yT3JpZ2luKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRyaWVz
KToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJTZXRBY2NlcHRQb2xpY3kpOgorICAgICAg
ICAoV0tPcmlnaW5EYXRhTWFuYWdlckdldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXS09yaWdp
bkRhdGFNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0
YU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5h
Z2VyU2V0Q2hhbmdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5E
YXRhTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5OjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHk6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojp+V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0
cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpwcm9j
ZXNzRGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
OjpzaG91bGRUZXJtaW5hdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5OjpyZWZXZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpnZXRPcmlnaW5zKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2luRGF0YU9y
aWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxl
dGVFbnRyaWVzRm9yT3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eTo6ZGVsZXRlQWxsRW50cmllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OnNldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6OmdldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0b3BPYnNlcnZpbmdDaGFu
Z2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c2V0Q2hh
bmdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudDo6ZGlkQ2hhbmdlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpXZWJPcmlnaW5EYXRhTWFu
YWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpnZXRPcmlnaW5z
KToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OmRlbGV0ZUVudHJpZXNG
b3JPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRl
QWxsRW50cmllcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRh
dGFNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJP
cmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTMtMTAtMTQgIENzYWJh
IE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbV0syXVtFZmxdW1Nv
dXBdIE1ha2UgTmV0d29ya1Byb2Nlc3NNYWluVW5peCBoYW5kbGUgcHJveHkgc2V0dGluZ3MuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA1NTUxNzRiLi5mMWZhMDc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM5LDYgKzM5LDcgQEAgVlBBVEggPSBcCiAgICAg
JChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9OZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyBc
CisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2ViS2l0Mikv
V2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VD
YWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXApAQCAtOTksNiArMTAw
LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViTWVkaWFDYWNoZU1hbmFnZXIgXAog
ICAgIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkgXAogICAgIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIgXAorICAgIFdlYk9yaWdpbkRhdGFNYW5hZ2VyIFwKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5IFwKICAgICBXZWJQYWdlIFwKICAgICBXZWJQYWdlR3JvdXBQcm94eSBcCiAgICAgV2Vi
UGFnZVByb3h5IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtIGIv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KaW5kZXggYjgyNWJjMy4uN2NhZDEwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktp
dDIvR05VbWFrZWZpbGUuYW0KQEAgLTE1NSw2ICsxNTUsNyBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJL
SVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xh
X0NQUAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZSBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyBcCiAJ
LUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKKwkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogCS1JJChz
cmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAJLUkkKHNy
Y2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKIAktSSQoc3JjZGlyKS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAgXApAQCAtMzgzLDYgKzM4NCw3IEBAIHZwYXRo
ICUubWVzc2FnZXMuaW4gPSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsgXAogCSQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMgXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKIAkk
KFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jl
c291cmNlQ2FjaGUgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKQEAgLTc0Niw2
ICs3NDgsNyBAQCBFWFRSQV9ESVNUICs9IFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9OZXR3b3JrLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9O
ZXR3b3JrSW5mby8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy8qLmluKSBcCisJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvT3Jp
Z2luRGF0YS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lu
cy8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFnZS8qLmlu
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxZTMyMGM5Li44MmJlMDYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTgzLDYgKzgzLDcgQEAgd2Via2l0Ml9o
X2FwaSArPSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92
aWRlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRl
cnMuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lci5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2Vy
LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmggXAogCSQoV2Vi
S2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VQcml2YXRlLmggXApAQCAtMjIzLDYgKzIyNCwxMCBAQCB3ZWJraXQyX2J1aWx0
X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTmV0d29ya0luZm9NYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQy
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggXAorCURlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1l
c3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUGFnZUdyb3VwUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlBhZ2VHcm91cFBy
b3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTY0Myw2ICs2NDgsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRlcnMu
aCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmln
aW5EYXRhTWFuYWdlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09y
aWdpbkRhdGFNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3Bw
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaCBcCkBAIC05
ODIsNiArOTg5LDEwIEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk5ldHdvcmtJbmZvUHJvdmlkZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIFwKKwlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAgXAorCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggXAorCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50
LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlDaGFuZ2VDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VDb250
ZXh0TWVudUNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlQ29u
dGV4dE1lbnVDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VHcm91
cC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDY5OTRjYmQuLjE5
N2FkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTExOSw2ICsxMTks
NyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0KiBXS05vdGlmaWNhdGlvblBlcm1pcwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tOb3RpZmljYXRpb25Qcm92aWRlciogV0tOb3RpZmljYXRpb25Qcm92aWRlclJlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLT3BlblBhbmVsUGFyYW1ldGVycyogV0tPcGVuUGFuZWxQ
YXJhbWV0ZXJzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lciogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZjsKK3R5cGVkZWYgY29uc3Qg
c3RydWN0IE9wYXF1ZVdLT3JpZ2luRGF0YU1hbmFnZXIqIFdLT3JpZ2luRGF0YU1hbmFnZXJSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFnZVJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFnZUdyb3VwKiBXS1BhZ2VHcm91cFJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKiBXS1BsdWdpblNpdGVE
YXRhTWFuYWdlclJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRleCA0NDFlMDVlLi43
MDMyMWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC0xMDMsNiArMTAzLDcgQEAg
cHVibGljOgogICAgICAgICBUeXBlTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QsCiAgICAg
ICAgIFR5cGVPcGVuUGFuZWxQYXJhbWV0ZXJzLAogICAgICAgICBUeXBlT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXIsCisgICAgICAgIFR5cGVPcmlnaW5EYXRhTWFuYWdlciwKICAgICAgICAgVHlwZVBh
Z2UsCiAgICAgICAgIFR5cGVQYWdlR3JvdXAsCiAgICAgICAgIFR5cGVQbHVnaW5TaXRlRGF0YU1h
bmFnZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvT3JpZ2luRGF0YUFjY2Vw
dFBvbGljeS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL09yaWdpbkRhdGFBY2NlcHRQb2xpY3ku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjJiODczCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL09yaWdpbkRhdGFBY2NlcHRQb2xpY3kuaApA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBPcmlnaW5EYXRhQWNjZXB0UG9saWN5X2gKKyNkZWZpbmUgT3JpZ2luRGF0
YUFjY2VwdFBvbGljeV9oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIHsKKyAgICBPcmln
aW5EYXRhQWNjZXB0UG9saWN5QWx3YXlzID0gMCwKKyAgICBPcmlnaW5EYXRhQWNjZXB0UG9saWN5
TmV2ZXIgPSAxLAorICAgIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVu
dERvbWFpbiA9IDIsCit9OwordHlwZWRlZiB1bnNpZ25lZCBPcmlnaW5EYXRhQWNjZXB0UG9saWN5
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIE9yaWdpbkRhdGFBY2NlcHRQ
b2xpY3lfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4
IDY0YzhkMWEuLjJkOTc2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tB
UElDYXN0LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJGb250U21vb3RoaW5nTGV2ZWwu
aCIKICNpbmNsdWRlICJIVFRQQ29va2llQWNjZXB0UG9saWN5LmgiCiAjaW5jbHVkZSAiSW5qZWN0
ZWRCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlLmgiCisjaW5jbHVkZSAiT3JpZ2luRGF0YUFj
Y2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIlBsdWdpbk1vZHVsZUluZm8uaCIKICNpbmNsdWRlICJQ
cm9jZXNzTW9kZWwuaCIKICNpbmNsdWRlICJSZXNvdXJjZUNhY2hlc1RvQ2xlYXIuaCIKQEAgLTg3
LDYgKzg4LDcgQEAgY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI7CiBjbGFzcyBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOwogY2xh
c3MgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eTsKK2NsYXNzIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBj
bGFzcyBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI7CkBAIC0xMzMsNiArMTM1LDcgQEAgV0tfQURE
X0FQSV9NQVBQSU5HKFdLTm90aWZpY2F0aW9uUHJvdmlkZXJSZWYsIFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTm90aWZpY2F0aW9uUmVmLCBXZWJOb3RpZmlj
YXRpb24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmLCBXZWJP
cGVuUGFuZWxQYXJhbWV0ZXJzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXJSZWYsIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkpCitXS19BRERfQVBJ
X01BUFBJTkcoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiwgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1BhZ2VHcm91cFJlZiwgV2ViUGFnZUdyb3VwKQogV0tf
QUREX0FQSV9NQVBQSU5HKFdLUGFnZVJlZiwgV2ViUGFnZVByb3h5KQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmLCBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IGE0
N2U0OWYuLmZiZmJjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpbmNs
dWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eS5oIgogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAjaW5jbHVkZSAiV2ViRGF0YWJhc2VNYW5h
Z2VyUHJveHkuaCIKQEAgLTI3NCw2ICsyNzUsMTEgQEAgV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJl
ZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFIK
ICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5zdXBwbGVtZW50PFdlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHk+KCkpOwogfQogCitXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIFdL
Q29udGV4dEdldE9yaWdpbkRhdGFNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQorewor
ICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPnN1cHBsZW1lbnQ8V2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eT4oKSk7Cit9CisKIHZvaWQgV0tDb250ZXh0U3RhcnRNZW1vcnlTYW1w
bGVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS0RvdWJsZVJlZiBpbnRlcnZhbCkKIHsKICAg
ICB0b0ltcGwoY29udGV4dFJlZiktPnN0YXJ0TWVtb3J5U2FtcGxlcih0b0ltcGwoaW50ZXJ2YWwp
LT52YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaApp
bmRleCAzY2U3MzFlLi5lZmQ2NzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dC5oCkBAIC0xOTUsNyArMTk1LDggQEAgV0tfRVhQT1JUIFdLTmV0d29ya0luZm9N
YW5hZ2VyUmVmIFdLQ29udGV4dEdldE5ldHdvcmtJbmZvTWFuYWdlcihXS0NvbnRleHRSZWYgY28K
IFdLX0VYUE9SVCBXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0Tm90aWZpY2F0
aW9uTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tQbHVnaW5TaXRl
RGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdLQ29udGV4
dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29u
dGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKLSAgICAK
K1dLX0VYUE9SVCBXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIFdLQ29udGV4dEdldE9yaWdpbkRhdGFN
YW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKKwogdHlwZWRlZiB2b2lkICgqV0tDb250ZXh0
R2V0U3RhdGlzdGljc0Z1bmN0aW9uKShXS0RpY3Rpb25hcnlSZWYgc3RhdGlzdGljcywgV0tFcnJv
clJlZiBlcnJvciwgdm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dEdldFN0YXRpc3RpY3MoV0tDb250ZXh0UmVmIGNvbnRleHQsIHZvaWQqIGZ1bmN0aW9uQ29u
dGV4dCwgV0tDb250ZXh0R2V0U3RhdGlzdGljc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKIFdLX0VYUE9S
VCB2b2lkIFdLQ29udGV4dEdldFN0YXRpc3RpY3NXaXRoT3B0aW9ucyhXS0NvbnRleHRSZWYgY29u
dGV4dCwgV0tTdGF0aXN0aWNzT3B0aW9ucyBzdGF0aXN0aWNzTWFzaywgdm9pZCogZnVuY3Rpb25D
b250ZXh0LCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24gZnVuY3Rpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwYjI0ZDkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFu
YWdlci5jcHAKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXS09yaWdpbkRhdGFNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRUeXBlSUQo
KQoreworICAgIHJldHVybiB0b0FQSShXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpBUElUeXBl
KTsKK30KKwordm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2lucyhXS09yaWdpbkRhdGFN
YW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFNYXNrIG1hc2ssIHZv
aWQqIGNvbnRleHQsIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zRnVuY3Rpb24gY2FsbGJh
Y2spCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+Z2V0T3JpZ2lucyhtYXNr
LCBBcnJheUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsKK30KKwordm9pZCBX
S09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFNYW5h
Z2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFNYXNrIG1hc2ssIFdLU2Vj
dXJpdHlPcmlnaW5SZWYgb3JpZ2luUmVmKQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdl
clJlZiktPmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4obWFzaywgdG9JbXBsKG9yaWdpblJlZikpOwor
fQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0
YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YU1hc2sgbWFzaykK
K3sKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5kZWxldGVBbGxFbnRyaWVzKG1h
c2spOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTZXRBY2NlcHRQb2xpY3koV0tPcmln
aW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRhTWFzayBt
YXNrLCBXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3kgcG9saWN5KQoreworICAgIHRvSW1wbChvcmln
aW5EYXRhTWFuYWdlclJlZiktPnNldEFjY2VwdFBvbGljeShtYXNrLCBwb2xpY3kpOworfQordm9p
ZCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0QWNjZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1hbmFnZXJS
ZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YU1hc2sgbWFzaywgdm9pZCogY29u
dGV4dCwgV0tPcmlnaW5EYXRhTWFuYWdlckdldEFjY2VwdFBvbGljeUZ1bmN0aW9uIGNhbGxiYWNr
KQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPmdldEFjY2VwdFBvbGljeSht
YXNrLCBPcmlnaW5EYXRhQWNjZXB0UG9saWN5Q2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBjYWxs
YmFjaykpOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTdGFydE9ic2VydmluZ0NoYW5n
ZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlclJlZiwgV0tPcmlnaW5E
YXRhTWFzayBtYXNrKQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPnN0YXJ0
T2JzZXJ2aW5nQ2hhbmdlcyhtYXNrKTsKK30KKwordm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3Rv
cE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdl
clJlZiwgV0tPcmlnaW5EYXRhTWFzayBtYXNrKQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFu
YWdlclJlZiktPnN0b3BPYnNlcnZpbmdDaGFuZ2VzKG1hc2spOworfQorCit2b2lkIFdLT3JpZ2lu
RGF0YU1hbmFnZXJTZXRDaGFuZ2VDbGllbnQoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5E
YXRhTWFuYWdlclJlZiwgY29uc3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCAqY2xp
ZW50KQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPnNldENoYW5nZUNsaWVu
dChjbGllbnQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLT3JpZ2luRGF0YU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S09yaWdpbkRhdGFNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ODcwMTA4ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS09yaWdpbkRhdGFNYW5hZ2VyLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV0tPcmlnaW5EYXRhTWFuYWdlcl9oCisjZGVmaW5lIFdLT3JpZ2luRGF0YU1hbmFnZXJf
aAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitl
eHRlcm4gIkMiIHsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBrV0tPcmlnaW5EYXRhTWFza0FwcGxp
Y2F0aW9uQ2FjaGUgPSAxIDw8IDAsCisgICAga1dLT3JpZ2luRGF0YU1hc2tDb29raWUgPSAxIDw8
IDEsCisgICAga1dLT3JpZ2luRGF0YU1hc2tEYXRhYmFzZSA9IDEgPDwgMiwKKyAgICBrV0tPcmln
aW5EYXRhTWFza0tleVZhbHVlU3RvcmFnZSA9IDEgPDwgMywKKyAgICBrV0tPcmlnaW5EYXRhTWFz
a01lZGlhQ2FjaGUgPSAxIDw8IDQsCisgICAga1dLT3JpZ2luRGF0YU1hc2tQbHVnaW5EYXRhID0g
MSA8PCA1LAorICAgIGtXS09yaWdpbkRhdGFNYXNrUmVzb3VyY2VDYWNoZSA9IDEgPDwgNiwKKwor
ICAgIGtXS09yaWdpbkRhdGFNYXNrQWxsID0gKDEgPDwgNykgLSAxCit9OwordHlwZWRlZiB1aW50
MzJfdCBXS09yaWdpbkRhdGFNYXNrOworCitlbnVtIHsKKyAgICBrV0tPcmlnaW5EYXRhQWNjZXB0
UG9saWN5QWx3YXlzID0gMCwKKyAgICBrV0tPcmlnaW5EYXRhQWNjZXB0UG9saWN5TmV2ZXIgPSAx
LAorICAgIGtXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFp
biA9IDIKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLT3JpZ2luRGF0YUFjY2VwdFBvbGljeTsKKwor
V0tfRVhQT1JUIFdLVHlwZUlEIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRUeXBlSUQoKTsKKwordHlw
ZWRlZiB2b2lkICgqV0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnNGdW5jdGlvbikoV0tBcnJh
eVJlZiwgV0tFcnJvclJlZiwgdm9pZCopOworV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFu
YWdlckdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwg
V0tPcmlnaW5EYXRhTWFzayBtYXNrLCB2b2lkKiBjb250ZXh0LCBXS09yaWdpbkRhdGFNYW5hZ2Vy
R2V0T3JpZ2luc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKKworV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5E
YXRhTWFuYWdlckRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBv
cmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhTWFzayBtYXNrLCBXS1NlY3VyaXR5T3JpZ2lu
UmVmIG9yaWdpbik7CitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlQWxs
RW50cmllcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdp
bkRhdGFNYXNrIG1hc2spOworCisvLyBPcmlnaW5EYXRhTWFuYWdlciBDbGllbnQKK3R5cGVkZWYg
dm9pZCAoKldLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDYWxsYmFjaykoV0tPcmlnaW5EYXRhTWFu
YWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CitzdHJ1
Y3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCB7CisgICAgaW50ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkICogICAgICAgICAg
ICAgICAgICAgICAgICBjbGllbnRJbmZvOworICAgIFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VD
YWxsYmFjayAgIGRpZENoYW5nZTsKK307Cit0eXBlZGVmIHN0cnVjdCBXS09yaWdpbkRhdGFNYW5h
Z2VyQ2hhbmdlQ2xpZW50IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQ7CisKK2VudW0g
eyBrV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudFZlcnNpb24gPSAwIH07CisKKy8vIEN1
cnJlbnRseSwgb25seSBtYXNrID09IFdLT3JpZ2luRGF0YU1hbmFnZXJDb29raWUgaXMgc3VwcG9y
dGVkIGZvciB0aGUgZm9sbG93aW5nLgorV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFuYWdl
clNldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2Vy
LCBXS09yaWdpbkRhdGFNYXNrIG1hc2ssIFdLT3JpZ2luRGF0YUFjY2VwdFBvbGljeSBwb2xpY3kp
OwordHlwZWRlZiB2b2lkICgqV0tPcmlnaW5EYXRhTWFuYWdlckdldEFjY2VwdFBvbGljeUZ1bmN0
aW9uKShXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqKTsKK1dLX0VY
UE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRBY2NlcHRQb2xpY3koV0tPcmlnaW5EYXRh
TWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhTWFzayBtYXNrLCB2b2lk
KiBjb250ZXh0LCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0QWNjZXB0UG9saWN5RnVuY3Rpb24gY2Fs
bGJhY2spOworCitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3RhcnRPYnNlcnZp
bmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3Jp
Z2luRGF0YU1hc2sgbWFzayk7CitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3Rv
cE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdl
ciwgV0tPcmlnaW5EYXRhTWFzayBtYXNrKTsKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1h
bmFnZXJTZXRDaGFuZ2VDbGllbnQoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFu
Z2VyLCBjb25zdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50KiBjbGllbnQpOworI2lm
ZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8vIFdLT3JpZ2luRGF0YU1hbmFn
ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzYjA5
YzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSwxNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5oIgorCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCisjaW5jbHVkZSAiV2ViQ29u
dGV4dC5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJT
ZWN1cml0eU9yaWdpbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY29uc3QgY2hhciogV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVybiAi
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSI7Cit9CisKK1Bhc3NSZWZQdHI8V2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eT4gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYkNvbnRl
eHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5KGNvbnRleHQpKTsKK30KKworV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6V2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eShXZWJDb250ZXh0KiBjb250ZXh0KQorOiBXZWJDb250ZXh0
U3VwcGxlbWVudChjb250ZXh0KQoreworICAgIGNvbnRleHQtPmFkZE1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCB0aGlzKTsKK30KKworV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6fldlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHkoKQoreworfQorCisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6
Y29udGV4dERlc3Ryb3llZCgpCit7CisgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fYXJyYXlD
YWxsYmFja3MpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnByb2Nlc3NE
aWRDbG9zZShXZWJQcm9jZXNzUHJveHkqKQoreworICAgIGludmFsaWRhdGVDYWxsYmFja01hcCht
X2FycmF5Q2FsbGJhY2tzKTsKK30KKworYm9vbCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpz
aG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9h
cnJheUNhbGxiYWNrcy5pc0VtcHR5KCk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eTo6cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQoreworICAgIEFQSU9iamVjdDo6cmVmKCk7
Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVyZWZXZWJDb250ZXh0U3Vw
cGxlbWVudCgpCit7CisgICAgQVBJT2JqZWN0OjpkZXJlZigpOworfQorCit2b2lkIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHk6OmdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFzayBtYXNrLCBQYXNz
UmVmUHRyPEFycmF5Q2FsbGJhY2s+IHBycENhbGxiYWNrKQoreworICAgIGlmICghY29udGV4dCgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sg
PSBwcnBDYWxsYmFjazsKKworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2Fs
bGJhY2tJRCgpOworICAgIG1fYXJyYXlDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNr
LnJlbGVhc2UoKSk7CisKKyAgICAvLyBGSVhNRSAoTXVsdGktV2ViUHJvY2Vzcyk6IDxyZGFyOi8v
cHJvYmxlbS8xMjIzOTc2NT4gTWFrZSBtYW5pcHVsYXRpbmcgY2FjaGUgaW5mb3JtYXRpb24gd29y
ayB3aXRoIHBlci10YWIgV2ViUHJvY2Vzcy4KKyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nl
c3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFu
YWdlcjo6R2V0T3JpZ2lucyhtYXNrLCBjYWxsYmFja0lEKSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmln
aW5EYXRhPiYgb3JpZ2luRGF0YXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgUmVmUHRy
PEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gbV9hcnJheUNhbGxiYWNrcy50YWtlKGNhbGxiYWNr
SUQpOworICAgIHBlcmZvcm1BUElDYWxsYmFja1dpdGhTZWN1cml0eU9yaWdpbkRhdGFWZWN0b3Io
b3JpZ2luRGF0YXMsIGNhbGxiYWNrLmdldCgpKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5OjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2luRGF0YU1hc2sgbWFzaywg
V2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0YTsK
KyAgICBzZWN1cml0eU9yaWdpbkRhdGEucHJvdG9jb2wgPSBvcmlnaW4tPnByb3RvY29sKCk7Cisg
ICAgc2VjdXJpdHlPcmlnaW5EYXRhLmhvc3QgPSBvcmlnaW4tPmhvc3QoKTsKKyAgICBzZWN1cml0
eU9yaWdpbkRhdGEucG9ydCA9IG9yaWdpbi0+cG9ydCgpOworCisgICAgLy8gRklYTUUgKE11bHRp
LVdlYlByb2Nlc3MpOiA8cmRhcjovL3Byb2JsZW0vMTIyMzk3NjU+IE1ha2UgbWFuaXB1bGF0aW5n
IGNhY2hlIGluZm9ybWF0aW9uIHdvcmsgd2l0aCBwZXItdGFiIFdlYlByb2Nlc3MuCisgICAgY29u
dGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNz
YWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OkRlbGV0ZUVudHJpZXNGb3JPcmlnaW4obWFzaywg
c2VjdXJpdHlPcmlnaW5EYXRhKSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eTo6ZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFNYXNrIG1hc2spCit7CisgICAgaWYgKCFj
b250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FIChNdWx0aS1XZWJQcm9j
ZXNzKTogPHJkYXI6Ly9wcm9ibGVtLzEyMjM5NzY1PiBNYWtlIG1hbmlwdWxhdGluZyBjYWNoZSBp
bmZvcm1hdGlvbiB3b3JrIHdpdGggcGVyLXRhYiBXZWJQcm9jZXNzLgorICAgIGNvbnRleHQoKS0+
c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6Oldl
Yk9yaWdpbkRhdGFNYW5hZ2VyOjpEZWxldGVBbGxFbnRyaWVzKG1hc2spKTsKK30KKwordm9pZCBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzZXRBY2NlcHRQb2xpY3koV0tPcmlnaW5EYXRhTWFz
ayBtYXNrLCBXS09yaWdpbkRhdGFBY2NlcHRQb2xpY3kgcG9saWN5KQoreworICAgIGlmICghY29u
dGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nl
c3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFu
YWdlcjo6U2V0QWNjZXB0UG9saWN5KG1hc2ssIHBvbGljeSkpOworfQorCit2b2lkIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHk6OmdldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFNYXNrIG1hc2ss
IFBhc3NSZWZQdHI8T3JpZ2luRGF0YUFjY2VwdFBvbGljeUNhbGxiYWNrPiBwcnBDYWxsYmFjaykK
K3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPE9y
aWdpbkRhdGFBY2NlcHRQb2xpY3lDYWxsYmFjaz4gY2FsbGJhY2sgPSBwcnBDYWxsYmFjazsKKwor
ICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOworICAgIG1f
YWNjZXB0UG9saWN5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxlYXNlKCkp
OworCisgICAgY29udGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5l
Y2Vzc2FyeShNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OkdldEFjY2VwdFBvbGljeSht
YXNrLCBjYWxsYmFja0lEKSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6
c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hc2sgbWFzaykKK3sKKyAgICBpZiAo
IWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29udGV4dCgpLT5zZW5kVG9BbGxQ
cm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViT3JpZ2luRGF0
YU1hbmFnZXI6OlN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhtYXNrKSk7Cit9CisKK3ZvaWQgV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eTo6c3RvcE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFz
ayBtYXNrKQoreworICAgIGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBj
b250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1l
c3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6U3RhcnRPYnNlcnZpbmdDaGFuZ2VzKG1hc2sp
KTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzZXRDaGFuZ2VDbGllbnQo
Y29uc3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCAqY2xpZW50KQoreworICAgIG1f
Y2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5OjpkaWRDaGFuZ2UoKQoreworICAgIG1fY2xpZW50LmRpZENoYW5nZSh0aGlzKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44M2IyMTJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDk3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5X2gKKyNkZWZp
bmUgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIK
KyNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJJbW11dGFibGVBcnJheS5o
IgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldLT3JpZ2luRGF0YU1h
bmFnZXIuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0U3VwcGxlbWVudC5oIgorI2luY2x1ZGUgIldl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKK3N0cnVjdCBTZWN1cml0
eU9yaWdpbkRhdGE7CisKK3R5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLQXJyYXlSZWY+IEFycmF5
Q2FsbGJhY2s7Cit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS09yaWdpbkRhdGFBY2NlcHRQb2xp
Y3ksIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3k+IE9yaWdpbkRhdGFBY2NlcHRQb2xpY3lDYWxsYmFj
azsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSA6IHB1YmxpYyBUeXBlZEFQSU9i
amVjdDxBUElPYmplY3Q6OlR5cGVPcmlnaW5EYXRhTWFuYWdlcj4sIHB1YmxpYyBXZWJDb250ZXh0
U3VwcGxlbWVudCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgor
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsK
KyAgICB2aXJ0dWFsIH5XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KCk7CisKKyAgICB2b2lkIGdl
dE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFzaywgUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPik7Cisg
ICAgdm9pZCBkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2luRGF0YU1hc2ssIFdlYlNlY3Vy
aXR5T3JpZ2luKik7CisgICAgdm9pZCBkZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YU1hc2sp
OworCisgICAgdm9pZCBzZXRBY2NlcHRQb2xpY3koV0tPcmlnaW5EYXRhTWFzaywgV0tPcmlnaW5E
YXRhQWNjZXB0UG9saWN5KTsKKyAgICB2b2lkIGdldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFN
YXNrLCBQYXNzUmVmUHRyPE9yaWdpbkRhdGFBY2NlcHRQb2xpY3lDYWxsYmFjaz4pOworCisgICAg
dm9pZCBzdGFydE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFzayk7CisgICAgdm9pZCBz
dG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYXNrKTsKKyAgICB2b2lkIHNldENoYW5n
ZUNsaWVudChjb25zdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50Kik7CisKKyAgICB1
c2luZyBBUElPYmplY3Q6OnJlZjsKKyAgICB1c2luZyBBUElPYmplY3Q6OmRlcmVmOworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCop
OworCisgICAgdm9pZCBkaWRHZXRPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRh
dGE+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkaWRDaGFuZ2UoKTsKKworICAg
IC8vIFdlYkNvbnRleHRTdXBwbGVtZW50CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95
ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nl
c3NQcm94eSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUZXJtaW5hdGUoV2Vi
UHJvY2Vzc1Byb3h5KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlZldlYkNv
bnRleHRTdXBwbGVtZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmV2ViQ29u
dGV4dFN1cHBsZW1lbnQoKSBPVkVSUklERTsKKworICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKworICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxBcnJheUNhbGxiYWNrPj4gbV9hcnJheUNhbGxiYWNrczsKKyAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8T3JpZ2luRGF0YUFjY2VwdFBvbGljeUNhbGxiYWNrPj4g
bV9hY2NlcHRQb2xpY3lDYWxsYmFja3M7CisKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
Q2hhbmdlQ2xpZW50IG1fY2xpZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZkNzZiNAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eSB7CisgICAgRGlkR2V0T3JpZ2lucyhWZWN0b3I8V2ViS2l0OjpTZWN1cml0eU9yaWdpbkRhdGE+
IG9yaWdpbklkZW50aWZpZXJzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICBEaWRDaGFuZ2Uo
KQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjY2NjAxYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAK
QEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmgiCisKKyNpbmNsdWRl
ICJXS0FQSUNhc3QuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudDo6ZGlkQ2hhbmdlKFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHkqIG9yaWdpbkRhdGFNYW5hZ2VyKQoreworICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdl
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5kaWRDaGFuZ2UodG9BUEkob3JpZ2lu
RGF0YU1hbmFnZXIpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5iYTc2N2NkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaApAQCAt
MCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5Q2hhbmdlQ2xpZW50X2gKKyNkZWZpbmUgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5n
ZUNsaWVudF9oCisKKyNpbmNsdWRlICJBUElDbGllbnQuaCIKKyNpbmNsdWRlICJXS09yaWdpbkRh
dGFNYW5hZ2VyLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk7CisKK2NsYXNzIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQgOiBwdWJsaWMgQVBJQ2xpZW50PFdLT3JpZ2lu
RGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQsIGtXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50
VmVyc2lvbj4geworcHVibGljOgorICAgIHZvaWQgZGlkQ2hhbmdlKFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHkqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDRkNDVkOC4uMzBlODhm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNTYyLDYgKzU2MiwyMSBAQAogCQk2RUU4NDlDODEzNjhEOTM5MDAzOEQ0ODEgLyog
V0tJbnNwZWN0b3JQcml2YXRlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RUU4NDlDNjEzNjhEOTJEMDAzOEQ0ODEgLyogV0tJbnNwZWN0b3JQcml2
YXRlTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzI4RTg2RjExNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjhFODZFRjE3OTUxODhD
MDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMuaCAqLzsgfTsKIAkJNzI4RTg2RjIxNzk1MTg4
QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI4RTg2RjAxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNv
bG9yUGlja2VyTWFjLm1tICovOyB9OworCQk3NTU0MjJCQjE4MDYyQjlDMDA0NkY2QTggLyogV0tP
cmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gQ29weSBGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTU0MjJCOTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFu
YWdlci5jcHAgKi87IH07CisJCTc1NTQyMkJDMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRh
dGFNYW5hZ2VyLmggaW4gQ29weSBGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NTU0MjJCQTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5oICov
OyB9OworCQk3NTU0MjJCRDE4MDYyQkIyMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJC
OTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgKi87IH07CisJCTc1
NTQyMkMzMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluIGluIENvcHkgRmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzU1NDIyQzAxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gKi87IH07CisJCTc1NTQyMkM0MTgwNjJCRjkwMDQ2RjZBOCAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5LmNwcCAqLzsgfTsKKwkJNzU1NDIyQ0IxODA2NTAwMjAwNDZGNkE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc1NTQyMkM2MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5j
cHAgKi87IH07CisJCTc1NTQyMkNDMTgwNzczQ0UwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1
NDIyQzcxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggKi87IH07CisJ
CTc1OUNDRDUzMTgwOEQwMzAwMDc4RThBOCAvKiBPcmlnaW5EYXRhQWNjZXB0UG9saWN5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTlDQ0Q1MTE4MDhE
MDFDMDA3OEU4QTggLyogT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oICovOyB9OworCQk3NTlDQ0Q1
ODE4MDhGMTY0MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTlD
Q0Q1NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNs
aWVudC5jcHAgKi87IH07CisJCTc1OUNDRDU5MTgwOEYxNjkwMDc4RThBOCAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTlDQ0Q1NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oICovOyB9OworCQk3NTlDQ0Q1QTE4MDhGNjE2
MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQkYxODA2MkJFNDAwNDZGNkE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJNzVFNzQ5RTkxODBEQkI5ODAw
MDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU1MTgwREJCOTgw
MDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CisJCTc1RTc0OUVBMTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUU3
NDlFNjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oICov
OyB9OworCQk3NUU3NDlFQjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NUU3NDlFNzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTc1RTc0OUVDMTgwREJCOTgw
MDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU4MTgwREJCOTgwMDA4
OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJNzYy
Qjc0OEQxMjBCQzc1QzAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjJCNzQ4NDEyMEJCQTJEMDA4
MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3ODAxQzA5OTE0MjI5MEM0MDBGQUY5QUYgLyogV2Vi
SGl0VGVzdFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3ODAxQzA5NTE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5jcHAg
Ki87IH07CiAJCTc4MDFDMDlBMTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3ODAxQzA5NjE0
MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5oICovOyB9OwpAQCAtMTMwMiw4ICsx
MzE3LDExIEBACiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gMTsKIAkJCWZpbGVzID0gKAogCQkJCTUx
MENDODQ5MTYxM0M4NUMwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5hcHAgaW4gQ29weSBGaWxl
cyAqLywKKwkJCQk3NTU0MjJCQzE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdl
ci5oIGluIENvcHkgRmlsZXMgKi8sCiAJCQkJQkNERTBBQkYxMzI3MjcwODAwMTI1OUZCIC8qIFBs
dWdpblByb2Nlc3MuYXBwIGluIENvcHkgRmlsZXMgKi8sCisJCQkJNzU1NDIyQzMxODA2MkJFNDAw
NDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gaW4gQ29weSBG
aWxlcyAqLywKIAkJCQkxQTUwREI2NjExMEEzRDU3MDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5hcHAg
aW4gQ29weSBGaWxlcyAqLywKKwkJCQk3NTU0MjJCQjE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmln
aW5EYXRhTWFuYWdlci5jcHAgaW4gQ29weSBGaWxlcyAqLywKIAkJCSk7CiAJCQluYW1lID0gIkNv
cHkgRmlsZXMiOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBA
IC0xOTYyLDYgKzE5ODAsMjEgQEAKIAkJNkVFODQ5QzYxMzY4RDkyRDAwMzhENDgxIC8qIFdLSW5z
cGVjdG9yUHJpdmF0ZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0lu
c3BlY3RvclByaXZhdGVNYWMuaDsgcGF0aCA9IG1hYy9XS0luc3BlY3RvclByaXZhdGVNYWMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI4RTg2RUYxNzk1MTg4QzAwODc4NzlFIC8q
IFdlYkNvbG9yUGlja2VyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkNvbG9yUGlja2VyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4NkYw
MTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJCOTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5E
YXRhTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS09y
aWdpbkRhdGFNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIy
QkExODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tPcmlnaW5EYXRhTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3NTU0MjJCRTE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzU1NDIyQkYxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDMDE4MDYyQkU0MDA0
NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDNjE4MDY0RkZDMDA0NkY2QTggLyogV2Vi
T3JpZ2luRGF0YU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmlnaW5E
YXRhTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkM3MTgw
NjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXZWJPcmlnaW5EYXRhTWFuYWdlci5oOyBwYXRoID0gT3JpZ2luRGF0
YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
NTU0MjJDODE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMu
aW47IHBhdGggPSBPcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTlDQ0Q1MTE4MDhEMDFDMDA3OEU4QTggLyog
T3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBPcmlnaW5EYXRhQWNjZXB0UG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTc1OUNDRDU0MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hh
bmdlQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3NTlDQ0Q1NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eUNoYW5nZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTc1RTc0OUU1MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTc1RTc0OUU2MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzVFNzQ5RTcxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTc1RTc0OUU4MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTc2MkI3NDgxMTIwQkJBMDEwMDgxOTMzOSAvKiBGb250U21vb3RoaW5nTGV2
ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udFNtb290aGluZ0xldmVs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2MkI3NDg0MTIwQkJBMkQwMDgxOTMz
OSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3ODAxQzA5NTE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJIaXRUZXN0UmVzdWx0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxMDksNiArMzE0Miw3IEBACiAJCQkJREY1OEM2
MzExMzcxQUM1ODAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnQuaCAqLywKIAkJCQlCQ0NG
NjczMjEyQzdGMTVDMDA4RjlDMzUgLyogT3JpZ2luQW5kRGF0YWJhc2VzLmNwcCAqLywKIAkJCQlC
Q0NGNjcyQzEyQzdFREY3MDA4RjlDMzUgLyogT3JpZ2luQW5kRGF0YWJhc2VzLmggKi8sCisJCQkJ
NzU5Q0NENTExODA4RDAxQzAwNzhFOEE4IC8qIE9yaWdpbkRhdGFBY2NlcHRQb2xpY3kuaCAqLywK
IAkJCQlCQ0M0M0FCODEyN0I5NURDMDAzMTdGMTYgLyogUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNw
cCAqLywKIAkJCQlCQ0M0M0FCOTEyN0I5NURDMDAzMTdGMTYgLyogUGxhdGZvcm1Qb3B1cE1lbnVE
YXRhLmggKi8sCiAJCQkJRTE4QzkyRjMxMkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5jcHAg
Ki8sCkBAIC0zNjUyLDYgKzM2ODYsMTYgQEAKIAkJCW5hbWUgPSBtYWM7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwogCQl9OworCQk3NTU0MjJDNTE4MDY0RkZDMDA0NkY2QTggLyogT3JpZ2lu
RGF0YSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNzU1
NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLywKKwkJ
CQk3NTU0MjJDNzE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCAqLywK
KwkJCQk3NTU0MjJDODE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVz
c2FnZXMuaW4gKi8sCisJCQkpOworCQkJbmFtZSA9IE9yaWdpbkRhdGE7CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OwogCQk3Q0IxNkZFMTE3MjRCOUI1MDA3QTBBOTUgLyogUGx1Z0lu
U2FuZGJveFByb2ZpbGVzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTM3MDEsNiArMzc0NSw3IEBACiAJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBX
ZWJQcm9jZXNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJ
CQk3NTU0MjJDNTE4MDY0RkZDMDA0NkY2QTggLyogT3JpZ2luRGF0YSAqLywKIAkJCQk1MTJFMzUy
QTEzMEI1NTk5MDBBQkQxOUEgLyogQXBwbGljYXRpb25DYWNoZSAqLywKIAkJCQkzMzA5MzQ0QjEz
MTVCOTNBMDA5N0E3QkMgLyogQ29va2llcyAqLywKIAkJCQlCQ0FDQzQzQjE2QjI0QzVEMDBCNkUw
OTIgLyogRW50cnlQb2ludCAqLywKQEAgLTM5MzAsNiArMzk3NSwxMSBAQAogCQkJCUJDRjY5RkEw
MTE3NkQwMTQwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5oICovLAogCQkJCUJDMURGRUEz
MTJCMzFGODcwMDVERjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCAq
LywKIAkJCQlCQzFERkVBMjEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXJQcm94eS5oICovLAorCQkJCTc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQk3NTU0MjJCRjE4MDYyQkU0MDA0NkY2QTgg
LyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oICovLAorCQkJCTc1NTQyMkMwMTgwNjJCRTQw
MDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJ
CTc1OUNDRDU0MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hh
bmdlQ2xpZW50LmNwcCAqLywKKwkJCQk3NTlDQ0Q1NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oICovLAogCQkJCTUxNTM1NjlBMTI5MUIx
RDIwMDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovLAogCQkJCTUxNTM1
NjlCMTI5MUIxRDIwMDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLywKIAkJ
CQlCQzdCNjIwNTEyOUEwQTY3MDBEMTc0QTQgLyogV2ViUGFnZUdyb3VwLmNwcCAqLywKQEAgLTQw
MzMsNiArNDA4Myw4IEBACiAJCQkJQkM4NTdGRTQxMkI4NDNEODAwRURFQjJFIC8qIFdLT3BlblBh
bmVsUGFyYW1ldGVycy5oICovLAogCQkJCUJDMURGRThFMTJCMzFDQTgwMDVERjczMCAvKiBXS09w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcCAqLywKIAkJCQlCQzFERkU4RDEyQjMxQ0E4MDA1REY3
MzAgLyogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oICovLAorCQkJCTc1NTQyMkI5MTgwNjJC
OUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLywKKwkJCQk3NTU0MjJCQTE4
MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5oICovLAogCQkJCUJDRDU5N0Q0
MTEyQjU2REMwMEVDOEMyMyAvKiBXS1BhZ2UuY3BwICovLAogCQkJCUJDRDU5N0Q1MTEyQjU2REMw
MEVDOEMyMyAvKiBXS1BhZ2UuaCAqLywKIAkJCQlCQzdCNjMzNjEyQTQ1QUJBMDBEMTc0QTQgLyog
V0tQYWdlR3JvdXAuY3BwICovLApAQCAtNDc0NSw2ICs0Nzk3LDEwIEBACiAJCUMwQ0U3MjlEMTI0
N0U3MUQwMEJDMEVDNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTc1RTc0OUU1MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNzVFNzQ5RTYxODBE
QkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk3
NUU3NDlFNzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNzVFNzQ5RTgxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTUxMkY1OEEwMTJBODgzQUQw
MDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAog
CQkJCTUxMkY1OEExMTJBODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNz
YWdlcy5oICovLAogCQkJCUUxN0FFMkMyMTZCOUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2Vi
S2l0Lk5ldHdvcmtQcm9jZXNzLnNiICovLApAQCAtNTExNiw2ICs1MTcyLDcgQEAKIAkJCQlCQzZF
REFBNjExMTI3MUM2MDBFNzY3OEIgLyogUGFnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMxMTFCNTAxMTJGNjE5MjAwMzM3QkFCIC8qIFBhZ2VDbGllbnRJbXBsLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTkwQzIzNzEyNjUwNzE3MDAzRTQ0RDQgLyogUGFnZU92ZXJsYXkuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTc1OUNDRDUzMTgwOEQwMzAwMDc4RThBOCAvKiBPcmlnaW5EYXRhQWNjZXB0
UG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTc0QTU4MTEyRTY2NjgxMDAyREZFOTggLyog
UGFzdGVib2FyZFR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTk1ODJEMzE1M0NCRkQ3MDBC
NjA4NzUgLyogUERGS2l0SW1wb3J0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGQ0IxODkxN0JC
RkUwMzAwMzk0Q0Q4IC8qIFN5bmNocm9ub3VzTmV0d29ya0xvYWRlckNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCkBAIC01MjE5LDkgKzUyNzYsMTEgQEAKIAkJCQlCQ0RFMDU5QjExQ0RBOEFFMDBFNDFB
RjEgLyogV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTg3MUI1QzEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMDMyRDc3MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzVFNzQ5RUMxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyOTM1
RDgxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTEwRkJCOUIxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxQUNCQjgyMTI3QThCQUQwMEQyMDNCOSAvKiBXZWJDb250
ZXh0TWVudVByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NUU3NDlFQTE4MERCQjk4MDAwODhC
QTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTFBQ0JCQTAxMjdBOEYyQzAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHlNYWMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDQ0I3NUM2MTIwM0ExQ0UwMDIyMkQxQiAvKiBXZWJDb250ZXh0TWVz
c2FnZUtpbmRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VFN0QwRTEyODQ2RjY5MDA5ODI3REEg
LyogV2ViQ29udGV4dE1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAgLTU0ODAsNiArNTUzOSw3
IEBACiAJCQkJQkNEREIzMkIxMjRFQzJBQjAwNDhEMTNDIC8qIFdLU2hhcmVkQVBJQ2FzdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYxQTEyNEZGMDM3MDA2OEYyMEEgLyogV0tTdHJpbmdD
Ri5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU5Q0NENTkxODA4RjE2OTAwNzhFOEE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
OTA5OTgwMTI1NkE5ODIwMDA4Mzc1NiAvKiBXS1N0cmluZ1ByaXZhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTM3N0VBRDQ4MTdFMkM3N0IwMDJEMTkzRCAvKiBXS1VzZXJDb250ZW50SW5qZWN0ZWRG
cmFtZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNEE5QUE4MTJCN0U3OTYwMDhGRTk4NCAvKiBX
S1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNTQ5MCwxMSAr
NTU1MCwxMyBAQAogCQkJCUJDNDA3NjBDMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1VSTFJlcXVlc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjI5MTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJl
cXVlc3ROUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MEUxMjRGRjAyNzAwNjhGMjBBIC8q
IFdLVVJMUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1OUNDRDVBMTgwOEY2MTYwMDc4
RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzQwNzYyQjEyNEZGMDQwMDA2OEYyMEEgLyogV0tVUkxSZXNwb25zZU5TLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNjExM0UyOTEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRl
cm4uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODY5OUI1MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1Zp
ZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODY5OUI3MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1Zp
ZXdJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkZBNjE3OUYxMkYwQjk5RDAwMzNFMENB
IC8qIFdLVmlld1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1NTQyMkNDMTgwNzczQ0Uw
MDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVF
MUFGRTkxNkIyMEI3NTAwNkNDMUYyIC8qIFdLV2ViQXJjaGl2ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzVFMUFGRUIxNkIyMEI3RTAwNkNDMUYyIC8qIFdLV2ViQXJjaGl2ZVJlc291cmNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzk4OUQ4MjE2MUE3RTVEMDAwRDQ2RDMgLyogV0tXZWJQcm9jZXNz
UGx1Z0luLmggaW4gSGVhZGVycyAqLywKQEAgLTYxOTAsNiArNjI1Miw3IEBACiAJCQkJQkNFRTdE
QzYxMjhCNjQ1RDAwOTgyN0RBIC8qIEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxRkEyRDc0MTUyMTJERjEwMEMxQkEwQiAvKiBJbmplY3RlZEJ1bmRsZURPTVdp
bmRvd0V4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQ5ODYxOTEyNEQxMEUyMDBE
ODM0RTEgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTc1RTc0OUU5MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIwNEVFNjExQzgzRUE5MDA4RjMz
NzUgLyogSW5qZWN0ZWRCdW5kbGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzgxNDdENjEy
RjY2RDMxMDA3QjJDMzIgLyogSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDNEJFRUFDMTIwQTBBNUYwMEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02MTk4LDYgKzYyNjEsNyBAQAogCQkJ
CUUxRUU1M0U3MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGll
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxNEUxMDkxMjBCOTA1RTAwODI2QzBDIC8qIElu
amVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1QzY2
QTAxMzRCOUQzODAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzU1NDIyQ0IxODA2NTAwMjAwNDZGNkE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQThDNkE4MTFFM0JBNUYw
MDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM4MTQ3QUExMkY2NENEQTAwN0IyQzMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVBv
bGljeUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTlDNTUxRTEzMDAwNjQxMDAyNUMw
QzIgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtNjMwOSw2ICs2MzczLDcgQEAKIAkJCQkxQTA0M0I1RDEyNEQ1RTlEMDBGRkJGQjUg
LyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTFBMDQzREMyMTI0RkY4NzUwMEZGQkZCNSAvKiBQbHVnaW5Qcm94eS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQTJEOTIyMTEyODFEQzFCMDAxRUI5NjIgLyogUGx1Z2luUHJveHlNYWMubW0g
aW4gU291cmNlcyAqLywKKwkJCQk3NTU0MjJDNDE4MDYyQkY5MDA0NkY2QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQThFRkE3MDEyNTJCODQx
MDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NENjIyNzcxNzM5RDg2MzAwNUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4Mjg0NEQxNkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNl
cnZpY2VFbnRyeVBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC02NDI4LDYgKzY0OTMsNyBAQAog
CQkJCUJDQjlGNkExMTEyM0E4NEIwMEExMzdFMCAvKiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFCMEUxMTJGNUU0RjAwMzM3QkFCIC8qIFdl
YkZyYW1lUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNTMxMzFCNjQ1QjAwRUVE
RUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1NTQy
MkJEMTgwNjJCQjIwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDZGNzVGNDEzMUI2NkQw
MDBENkIyMUUgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlDRENBODVFRTEzMkFENzAxMDBFOTYxREYgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtNjUwNyw2ICs2NTczLDcgQEAKIAkJCQkxQTA0M0Ew
QTEyNEQxMUE5MDBGRkJGQjUgLyogV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUEwNDNGNjkxMjUxNEQ4QjAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMzA2ODI1MTI1QTZCOTQw
MEU3MTI3OCAvKiBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTc1RTc0OUVCMTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMzA2NUM0MTI1OTJG
ODkwMEU3MTI3OCAvKiBXZWJQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMzMDY2
QkUxMjVBNDQyMTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkMxMTFCMTExMTJGNUU0RjAwMzM3QkFCIC8qIFdlYlByb2Nlc3NQcm94
eS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTY1NzAsNiArNjYzNyw3IEBACiAJCQkJOUZCNUYzOTQx
NjlFNkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4dFByaXZhdGVNYWMubW0gaW4gU291cmNlcyAqLywK
IAkJCQkzMzA5MzQ1QTEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxMkY1OEY5MTJBODhBNTQwMDYyOTUzMCAvKiBXS0NyZWRlbnRpYWwu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzU5Q0NENTgxODA4RjE2NDAwNzhFOEE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM0MDc1RjcxMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGNjJBNzY2MTEyQjFBQkVEMDAwNUYxQjYgLyogV0tEYXRhYmFzZU1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM0MDc1RjkxMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGljdGlvbmFyeS5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
T3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4N2YyZmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwCkBA
IC0wLDAgKzEsMTEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJDaGlsZFByb2Nl
c3MuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJp
dHlPcmlnaW5IYXNoLmg+CisKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NvbnN0IGNoYXIqIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJXZWJPcmln
aW5EYXRhTWFuYWdlciI7Cit9CisKK1dlYk9yaWdpbkRhdGFNYW5hZ2VyOjpXZWJPcmlnaW5EYXRh
TWFuYWdlcihDaGlsZFByb2Nlc3MqIGNoaWxkUHJvY2VzcykKKyAgICA6IG1fY2hpbGRQcm9jZXNz
KGNoaWxkUHJvY2VzcykKK3sKKyAgICBtX2NoaWxkUHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0
aGlzKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6Z2V0T3JpZ2lucyhXS09yaWdp
bkRhdGFNYXNrIG1hc2ssIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgSGFzaFNldDxSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+PiBvcmlnaW5zOworCisgICAgLy8gRklYTUU6IHBvcHVsYXRlIG9y
aWdpbnMKKworICAgIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGlkZW50aWZpZXJzOworICAg
IGlkZW50aWZpZXJzLnJlc2VydmVDYXBhY2l0eShvcmlnaW5zLnNpemUoKSk7CisKKyAgICBIYXNo
U2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+OjppdGVyYXRvciBlbmQgPSBvcmlnaW5zLmVuZCgp
OworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj46Oml0ZXJhdG9yIGkgPSBvcmln
aW5zLmJlZ2luKCk7CisgICAgZm9yICg7IGkgIT0gZW5kOyArK2kpIHsKKyAgICAgICAgUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSAqaTsKKworICAgICAgICBTZWN1cml0eU9yaWdpbkRh
dGEgb3JpZ2luRGF0YTsKKyAgICAgICAgb3JpZ2luRGF0YS5wcm90b2NvbCA9IG9yaWdpbi0+cHJv
dG9jb2woKTsKKyAgICAgICAgb3JpZ2luRGF0YS5ob3N0ID0gb3JpZ2luLT5ob3N0KCk7CisgICAg
ICAgIG9yaWdpbkRhdGEucG9ydCA9IG9yaWdpbi0+cG9ydCgpOworCisgICAgICAgIGlkZW50aWZp
ZXJzLnVuY2hlY2tlZEFwcGVuZChvcmlnaW5EYXRhKTsKKyAgICB9CisKKyAgICBtX2NoaWxkUHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6RGlkR2V0T3Jp
Z2lucyhpZGVudGlmaWVycywgY2FsbGJhY2tJRCksIDApOworfQorCit2b2lkIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyOjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2luRGF0YU1hc2sgbWFzaywg
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW5EYXRhKQoreworICAgIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnBy
b3RvY29sLCBvcmlnaW5EYXRhLmhvc3QsIG9yaWdpbkRhdGEucG9ydCk7CisgICAgaWYgKCFvcmln
aW4pCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBkZWxldGUgY2FjaGUKK30KKwor
dm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFN
YXNrIG1hc2spCit7CisgICAgLy8gRklYTUU6IGRlbGV0ZSBlbnRyaWVzCit9CisKK3ZvaWQgV2Vi
T3JpZ2luRGF0YU1hbmFnZXI6OnNldEFjY2VwdFBvbGljeShXS09yaWdpbkRhdGFNYXNrIG1hc2ss
IE9yaWdpbkRhdGFBY2NlcHRQb2xpY3kgcG9saWN5KQoreworICAgIC8vIEZJWE1FOiBzZXQgYWNj
ZXB0IHBvbGljeQorfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpnZXRBY2NlcHRQb2xp
Y3koV0tPcmlnaW5EYXRhTWFzayBtYXNrLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIC8v
IEZJWE1FOiBnZXQgYWNjZXB0IHBvbGljeSAobmVlZHMgbmV3IG1lc3NhZ2UpCit9CisKK3ZvaWQg
V2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFN
YXNrIG1hc2spCit7CisgICAgLy8gRklYTUU6IHN0YXJ0IG9ic2VydmluZyBjaGFuZ2VzCit9CisK
K3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN0b3BPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2lu
RGF0YU1hc2sgbWFzaykKK3sKKyAgICAvLyBGSVhNRTogc3RvcCBvYnNlcnZpbmcgY2hhbmdlcwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmYxZTg2MAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5o
CkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyX2gKKyNkZWZpbmUgV2ViT3JpZ2luRGF0YU1hbmFnZXJfaAorCisjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiT3JpZ2luRGF0YUFjY2VwdFBvbGljeS5oIgor
I2luY2x1ZGUgIldLT3JpZ2luRGF0YU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzU3Vw
cGxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ2hpbGRQcm9j
ZXNzOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1h
bmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBDb3JlSVBDOjpNZXNz
YWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYk9yaWdpbkRhdGFNYW5h
Z2VyKTsKK3B1YmxpYzoKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdlcihDaGlsZFByb2Nlc3MqKTsK
KworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgdm9pZCBk
ZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YU1hc2spOworCitwcml2YXRlOgorICAgIHZvaWQg
Z2V0T3JpZ2lucyhXS09yaWdpbkRhdGFNYXNrLCB1aW50NjRfdCk7CisgICAgdm9pZCBkZWxldGVF
bnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2luRGF0YU1hc2ssIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0
YSYpOworICAgIHZvaWQgc2V0QWNjZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1hc2ssIE9yaWdpbkRh
dGFBY2NlcHRQb2xpY3kpOworICAgIHZvaWQgZ2V0QWNjZXB0UG9saWN5KFdLT3JpZ2luRGF0YU1h
c2ssIHVpbnQ2NF90KTsKKyAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRh
dGFNYXNrKTsKKyAgICB2b2lkIHN0b3BPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hc2sp
OworCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpIE9WRVJSSURFOworCisgICAgQ2hpbGRQcm9jZXNzKiBtX2NoaWxkUHJvY2VzczsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViT3JpZ2luRGF0YU1hbmFn
ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwZTY0MmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSwzMSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJPcmlnaW5EYXRhTWFuYWdlciB7CisgICAgdm9pZCBH
ZXRPcmlnaW5zKHVpbnQzMl90IG1hc2ssIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgdm9pZCBE
ZWxldGVFbnRyaWVzRm9yT3JpZ2luKHVpbnQzMl90IG1hc2ssIFdlYktpdDo6U2VjdXJpdHlPcmln
aW5EYXRhIG9yaWdpbklkZW50aWZpZXIpCisgICAgdm9pZCBEZWxldGVBbGxFbnRyaWVzKHVpbnQz
Ml90IG1hc2spCisgICAgdm9pZCBTZXRBY2NlcHRQb2xpY3kodWludDMyX3QgbWFzaywgdWludDMy
X3QgcG9saWN5KQorICAgIHZvaWQgR2V0QWNjZXB0UG9saWN5KHVpbnQzMl90IG1hc2ssIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCisgICAgdm9pZCBTdGFydE9ic2VydmluZ0NoYW5nZXModWludDMyX3Qg
bWFzaykKKyAgICB2b2lkIFN0b3BPYnNlcnZpbmdDaGFuZ2VzKHVpbnQzMl90IG1hc2spCit9Cg==
</data>
<flag name="review"
          id="236845"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214312</attachid>
            <date>2013-10-15 15:39:07 -0700</date>
            <delta_ts>2013-10-15 16:25:37 -0700</delta_ts>
            <desc>Address Brady&apos;s comments</desc>
            <filename>122781h.diff</filename>
            <type>text/plain</type>
            <size>63188</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggN2M3YzQxZC4uOGExYmUzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTQ2LDYgKzQ2LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0xhdW5jaGluZyIKICAgICAiJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvT3JpZ2lu
RGF0YSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dF
QktJVDJfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKQEAgLTMwNyw2ICszMDgsOCBAQCBzZXQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNw
cAogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vz
cy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1l
bnVDbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAKICAgICBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzU0LDYgKzM1Nyw3IEBAIHNldChXZWJLaXQyX1NPVVJD
RVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5j
cHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcAorICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAKQEAgLTQ2MSw2ICs0NjUsOCBAQCBz
ZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKICAgICBXZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvT3JpZ2lu
RGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKKwogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW4uY3BwCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
LmNwcAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuY3BwCkBAIC01NDksNiArNTU1LDcgQEAgc2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMK
ICAgICBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nl
c3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9X
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorICAgIFVJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtNTg2LDYgKzU5Myw4IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAg
ICBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdl
cy5pbgogCisgICAgV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1l
c3NhZ2VzLmluCisKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b3h5Lm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmRlNDAxZC4uMTljMzYzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTEwLTE0ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWZhY3RvciBzdG9yZWQgd2Vic2l0ZSBkYXRhIEFQSXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjc4MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJPcmlnaW5E
YXRhTWFuYWdlciBhbG9uZyB3aXRoIGNvcnJlc3BvbmRpbmcgY2xhc3MKKyAgICAgICAgV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eSBhbmQgQVBJIFdLT3JpZ2luRGF0YU1hbmFnZXIuCisKKyAgICAg
ICAgQ3VycmVudGx5LCB0aGUgbmV3IGZpbGVzIGFyZSB1bnVzZWQuCisKKyAgICAgICAgV0tPcmln
aW5EYXRhTWFuYWdlciBzaG91bGQgc3Vic3VtZSB0aGUgZnVuY3Rpb25hbGl0eSBvZjoKKyAgICAg
ICAgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciwgV0tDb29raWVNYW5hZ2VyLCBXS0RhdGFiYXNl
TWFuYWdlciwKKyAgICAgICAgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLCBXS01lZGlhQ2FjaGVN
YW5hZ2VyLAorICAgICAgICBXS1BsdWdpblNpdGVEYXRhTWFuYWdlciwgYW5kIFdLUmVzb3VyY2VD
YWNoZU1hbmFnZXIuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRHZXRPcmlnaW5EYXRh
TWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAg
ICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyR2V0VHlwZUlEKToKKyAgICAgICAgKFdLT3JpZ2luRGF0
YU1hbmFnZXJHZXRPcmlnaW5zKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVF
bnRyaWVzRm9yT3JpZ2luKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxF
bnRyaWVzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJTZXRBY2NlcHRQb2xpY3kpOgor
ICAgICAgICAoV0tPcmlnaW5EYXRhTWFuYWdlckdldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChX
S09yaWdpbkRhdGFNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdLT3Jp
Z2luRGF0YU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAgIChXS09yaWdpbkRh
dGFNYW5hZ2VyU2V0Q2hhbmdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tP
cmlnaW5EYXRhTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5OjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHk6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojp+V2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRl
eHREZXN0cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
Ojpwcm9jZXNzRGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5OjpzaG91bGRUZXJtaW5hdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5OjpyZWZXZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpnZXRPcmlnaW5zKToK
KyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2lu
RGF0YU9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
OjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsRW50cmllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmdldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0b3BPYnNlcnZp
bmdDaGFuZ2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6
c2V0Q2hhbmdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudDo6ZGlkQ2hhbmdlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5o
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdXBwbGVtZW50
TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpXZWJPcmlnaW5E
YXRhTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpnZXRP
cmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OmRlbGV0ZUVu
dHJpZXNGb3JPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6
ZGVsZXRlQWxsRW50cmllcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9y
aWdpbkRhdGFNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvT3JpZ2luRGF0
YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTMtMTAtMTQg
IENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbV0syXVtF
ZmxdW1NvdXBdIE1ha2UgTmV0d29ya1Byb2Nlc3NNYWluVW5peCBoYW5kbGUgcHJveHkgc2V0dGlu
Z3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA1NTUxNzRiLi5mMWZhMDc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM5LDYgKzM5LDcgQEAgVlBBVEggPSBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUgXAogICAgICQoV2ViS2l0Mikv
V2ViUHJvY2Vzcy9OZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0
aW9ucyBcCisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2Vi
S2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVz
b3VyY2VDYWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXApAQCAtOTks
NiArMTAwLDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViTWVkaWFDYWNoZU1hbmFn
ZXIgXAogICAgIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkgXAogICAgIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXIgXAorICAgIFdlYk9yaWdpbkRhdGFNYW5hZ2VyIFwKKyAgICBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5IFwKICAgICBXZWJQYWdlIFwKICAgICBXZWJQYWdlR3JvdXBQcm94eSBcCiAg
ICAgV2ViUGFnZVByb3h5IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxl
LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KaW5kZXggYjgyNWJjMy4uN2NhZDEw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNl
L1dlYktpdDIvR05VbWFrZWZpbGUuYW0KQEAgLTE1NSw2ICsxNTUsNyBAQCBsaWJ3ZWJraXQyZ3Rr
X0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJ
T05AX2xhX0NQUAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFD
YWNoZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5m
byBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
IFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAog
CS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAJ
LUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKIAktSSQoc3Jj
ZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAgXApAQCAtMzgzLDYgKzM4NCw3IEBA
IHZwYXRoICUubWVzc2FnZXMuaW4gPSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsg
XAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyBcCiAJJChXZWJLaXQyKS9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMgXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRh
IFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAJJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL1Jlc291cmNlQ2FjaGUgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKQEAg
LTc0Niw2ICs3NDgsNyBAQCBFWFRSQV9ESVNUICs9IFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0Mikv
V2ViUHJvY2Vzcy9OZXR3b3JrLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9OZXR3b3JrSW5mby8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy8qLmluKSBcCisJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nl
c3MvT3JpZ2luRGF0YS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
UGx1Z2lucy8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3Vy
Y2VDYWNoZS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFn
ZS8qLmluKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFt
IGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxZTMyMGM5Li44MmJl
MDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTgzLDYgKzgzLDcgQEAgd2Vi
a2l0Ml9oX2FwaSArPSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRp
b25Qcm92aWRlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBh
cmFtZXRlcnMuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lci5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFN
YW5hZ2VyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmggXAog
CSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIFwKIAkkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggXApAQCAtMjIzLDYgKzIyNCwxMCBAQCB3ZWJraXQy
X2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTmV0d29ya0lu
Zm9NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJLaXQyL1dlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggXAorCURl
cml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUGFnZUdyb3VwUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlBhZ2VH
cm91cFByb3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTY0Myw2ICs2NDgsOCBAQCB3ZWJraXQyX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFt
ZXRlcnMuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS09yaWdpbkRhdGFNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3Jv
dXAuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaCBc
CkBAIC05ODIsNiArOTg5LDEwIEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvUHJvdmlkZXIuaCBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIFwKKwlT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAgXAor
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggXAor
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdl
Q2xpZW50LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlDaGFuZ2VDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VDb250ZXh0TWVudUNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlQ29udGV4dE1lbnVDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VHcm91cC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
QmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDY5OTRj
YmQuLjE5N2FkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jh
c2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTExOSw2
ICsxMTksNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KiBXS05vdGlmaWNhdGlvblBlcm1pcwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tOb3RpZmljYXRpb25Qcm92aWRlciogV0tOb3RpZmljYXRpb25Qcm92aWRlclJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLT3BlblBhbmVsUGFyYW1ldGVycyogV0tPcGVu
UGFuZWxQYXJhbWV0ZXJzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lciogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZjsKK3R5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLT3JpZ2luRGF0YU1hbmFnZXIqIFdLT3JpZ2luRGF0YU1hbmFn
ZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFnZVJlZjsKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFnZUdyb3VwKiBXS1BhZ2VHcm91cFJlZjsKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKiBXS1BsdWdp
blNpdGVEYXRhTWFuYWdlclJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRleCA0NDFl
MDVlLi43MDMyMWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC0xMDMsNiArMTAz
LDcgQEAgcHVibGljOgogICAgICAgICBUeXBlTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qs
CiAgICAgICAgIFR5cGVPcGVuUGFuZWxQYXJhbWV0ZXJzLAogICAgICAgICBUeXBlT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIsCisgICAgICAgIFR5cGVPcmlnaW5EYXRhTWFuYWdlciwKICAgICAgICAg
VHlwZVBhZ2UsCiAgICAgICAgIFR5cGVQYWdlR3JvdXAsCiAgICAgICAgIFR5cGVQbHVnaW5TaXRl
RGF0YU1hbmFnZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgK
aW5kZXggNjRjOGQxYS4uZGQ4OGQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaApAQCAtODcsNiArODcsNyBAQCBjbGFzcyBXZWJOb3RpZmljYXRpb25Qcm92
aWRlcjsKIGNsYXNzIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYk9wZW5Q
YW5lbFBhcmFtZXRlcnM7CiBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5Owor
Y2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNs
YXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjsKQEAgLTEz
Myw2ICsxMzQsNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tOb3RpZmljYXRpb25Qcm92aWRlclJl
ZiwgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOb3RpZmlj
YXRpb25SZWYsIFdlYk5vdGlmaWNhdGlvbikKIFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5l
bFBhcmFtZXRlcnNSZWYsIFdlYk9wZW5QYW5lbFBhcmFtZXRlcnMpCiBXS19BRERfQVBJX01BUFBJ
TkcoV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXJQcm94eSkKK1dLX0FERF9BUElfTUFQUElORyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUGFnZUdyb3VwUmVm
LCBXZWJQYWdlR3JvdXApCiBXS19BRERfQVBJX01BUFBJTkcoV0tQYWdlUmVmLCBXZWJQYWdlUHJv
eHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWYsIFdlYlBs
dWdpblNpdGVEYXRhTWFuYWdlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5jcHAKaW5kZXggYTQ3ZTQ5Zi4uZmJmYmMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRl
ICJXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFDYWNoZU1h
bmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgor
I2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlclByb3h5LmgiCiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKICNpbmNs
dWRlICJXZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oIgpAQCAtMjc0LDYgKzI3NSwxMSBAQCBXS1Jl
c291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdL
Q29udGV4dFJlZiBjb250ZXh0UgogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZikt
PnN1cHBsZW1lbnQ8V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4oKSk7CiB9CiAKK1dLT3Jp
Z2luRGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0T3JpZ2luRGF0YU1hbmFnZXIoV0tDb250ZXh0
UmVmIGNvbnRleHRSZWYpCit7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+
c3VwcGxlbWVudDxXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5PigpKTsKK30KKwogdm9pZCBXS0Nv
bnRleHRTdGFydE1lbW9yeVNhbXBsZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLRG91Ymxl
UmVmIGludGVydmFsKQogewogICAgIHRvSW1wbChjb250ZXh0UmVmKS0+c3RhcnRNZW1vcnlTYW1w
bGVyKHRvSW1wbChpbnRlcnZhbCktPnZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5oCmluZGV4IDNjZTczMWUuLmVmZDY3NzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKQEAgLTE5NSw3ICsxOTUsOCBAQCBXS19F
WFBPUlQgV0tOZXR3b3JrSW5mb01hbmFnZXJSZWYgV0tDb250ZXh0R2V0TmV0d29ya0luZm9NYW5h
Z2VyKFdLQ29udGV4dFJlZiBjbwogV0tfRVhQT1JUIFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBX
S0NvbnRleHRHZXROb3RpZmljYXRpb25NYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdL
X0VYUE9SVCBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRQbHVnaW5TaXRl
RGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLUmVzb3VyY2VD
YWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0
UmVmIGNvbnRleHQpOwotICAgIAorV0tfRVhQT1JUIFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgV0tD
b250ZXh0R2V0T3JpZ2luRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworCiB0eXBl
ZGVmIHZvaWQgKCpXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24pKFdLRGljdGlvbmFyeVJl
ZiBzdGF0aXN0aWNzLCBXS0Vycm9yUmVmIGVycm9yLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwog
V0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0R2V0U3RhdGlzdGljcyhXS0NvbnRleHRSZWYgY29udGV4
dCwgdm9pZCogZnVuY3Rpb25Db250ZXh0LCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24g
ZnVuY3Rpb24pOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0R2V0U3RhdGlzdGljc1dpdGhPcHRp
b25zKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1N0YXRpc3RpY3NPcHRpb25zIHN0YXRpc3RpY3NN
YXNrLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQsIFdLQ29udGV4dEdldFN0YXRpc3RpY3NGdW5jdGlv
biBmdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tPcmlnaW5EYXRhTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uY2Y4NTM5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLT3JpZ2luRGF0YU1hbmFnZXIuaCIK
KworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHkuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tPcmlnaW5E
YXRhTWFuYWdlckdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHk6OkFQSVR5cGUpOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRP
cmlnaW5zKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3Jp
Z2luRGF0YVR5cGVzIHR5cGVzLCB2b2lkKiBjb250ZXh0LCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0
T3JpZ2luc0Z1bmN0aW9uIGNhbGxiYWNrKQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdl
clJlZiktPmdldE9yaWdpbnModHlwZXMsIEFycmF5Q2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBj
YWxsYmFjaykpOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVFbnRyaWVzRm9y
T3JpZ2luKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3Jp
Z2luRGF0YVR5cGVzIHR5cGVzLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpblJlZikKK3sKKyAg
ICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5kZWxldGVFbnRyaWVzRm9yT3JpZ2luKHR5
cGVzLCB0b0ltcGwob3JpZ2luUmVmKSk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlckRl
bGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlclJl
ZiwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5h
Z2VyUmVmKS0+ZGVsZXRlQWxsRW50cmllcyh0eXBlcyk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRh
TWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdp
bkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBlcykKK3sKKyAgICB0b0ltcGwo
b3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5zdGFydE9ic2VydmluZ0NoYW5nZXModHlwZXMpOworfQor
Cit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRh
dGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBl
cykKK3sKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5zdG9wT2JzZXJ2aW5nQ2hh
bmdlcyh0eXBlcyk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclNldENoYW5nZUNsaWVu
dChXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBjb25zdCBXS09y
aWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50ICpjbGllbnQpCit7CisgICAgdG9JbXBsKG9yaWdp
bkRhdGFNYW5hZ2VyUmVmKS0+c2V0Q2hhbmdlQ2xpZW50KGNsaWVudCk7Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTAwNTRkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuaApA
QCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS09yaWdpbkRhdGFNYW5hZ2Vy
X2gKKyNkZWZpbmUgV0tPcmlnaW5EYXRhTWFuYWdlcl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dL
QmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK2Vu
dW0geworICAgIGtXS0FwcGxpY2F0aW9uQ2FjaGVPcmlnaW5EYXRhID0gMSA8PCAwLAorICAgIGtX
S0Nvb2tpZU9yaWdpbkRhdGEgPSAxIDw8IDEsCisgICAga1dLRGF0YWJhc2VPcmlnaW5EYXRhID0g
MSA8PCAyLAorICAgIGtXS0tleVZhbHVlU3RvcmFnZU9yaWdpbkRhdGEgPSAxIDw8IDMsCisgICAg
a1dLTWVkaWFDYWNoZU9yaWdpbkRhdGEgPSAxIDw8IDQsCisgICAga1dLUGx1Z2luRGF0YU9yaWdp
bkRhdGEgPSAxIDw8IDUsCisgICAga1dLUmVzb3VyY2VDYWNoZU9yaWdpbkRhdGEgPSAxIDw8IDYs
CisKKyAgICBrV0tBbGxPcmlnaW5EYXRhID0gKDEgPDwgNykgLSAxCit9OwordHlwZWRlZiB1aW50
MzJfdCBXS09yaWdpbkRhdGFUeXBlczsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLT3JpZ2luRGF0
YU1hbmFnZXJHZXRUeXBlSUQoKTsKKwordHlwZWRlZiB2b2lkICgqV0tPcmlnaW5EYXRhTWFuYWdl
ckdldE9yaWdpbnNGdW5jdGlvbikoV0tBcnJheVJlZiwgV0tFcnJvclJlZiwgdm9pZCopOworV0tf
RVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFu
YWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMsIHZvaWQq
IGNvbnRleHQsIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zRnVuY3Rpb24gZnVuY3Rpb24p
OworCitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9y
aWdpbihXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRh
dGFUeXBlcyB0eXBlcywgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4pOworV0tfRVhQT1JUIHZv
aWQgV0tPcmlnaW5EYXRhTWFuYWdlckRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhTWFuYWdl
clJlZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpOworCisvLyBP
cmlnaW5EYXRhTWFuYWdlciBDbGllbnQKK3R5cGVkZWYgdm9pZCAoKldLT3JpZ2luRGF0YU1hbmFn
ZXJDaGFuZ2VDYWxsYmFjaykoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdl
ciwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CitzdHJ1Y3QgV0tPcmlnaW5EYXRhTWFuYWdlckNo
YW5nZUNsaWVudCB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVy
c2lvbjsKKyAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZv
OworICAgIFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDYWxsYmFjayAgIGRpZENoYW5nZTsKK307
Cit0eXBlZGVmIHN0cnVjdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50IFdLT3JpZ2lu
RGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQ7CisKK2VudW0geyBrV0tPcmlnaW5EYXRhTWFuYWdlckNo
YW5nZUNsaWVudFZlcnNpb24gPSAwIH07CisKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1h
bmFnZXJTdGFydE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5E
YXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpOworV0tfRVhQT1JUIHZvaWQgV0tP
cmlnaW5EYXRhTWFuYWdlclN0b3BPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hbmFnZXJS
ZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKTsKK1dLX0VYUE9S
VCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTZXRDaGFuZ2VDbGllbnQoV0tPcmlnaW5EYXRhTWFu
YWdlclJlZiBvcmlnaW5EYXRhTWFuZ2VyLCBjb25zdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdl
Q2xpZW50KiBjbGllbnQpOworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlm
IC8vIFdLT3JpZ2luRGF0YU1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmJjZGY2MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSwxNTIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRh
LmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5h
Z2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY29uc3QgY2hhciogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c3VwcGxlbWVudE5h
bWUoKQoreworICAgIHJldHVybiAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSI7Cit9CisKK1Bh
c3NSZWZQdHI8V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eT4gV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eTo6Y3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KGNvbnRleHQpKTsKK30KKworV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eTo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eShXZWJDb250ZXh0KiBj
b250ZXh0KQorOiBXZWJDb250ZXh0U3VwcGxlbWVudChjb250ZXh0KQoreworICAgIGNvbnRleHQt
PmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKK30KKworV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eTo6fldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkoKQoreworfQorCisKK3ZvaWQgV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eTo6Y29udGV4dERlc3Ryb3llZCgpCit7CisgICAgaW52YWxpZGF0
ZUNhbGxiYWNrTWFwKG1fYXJyYXlDYWxsYmFja3MpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHk6OnByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkqKQoreworICAgIGlu
dmFsaWRhdGVDYWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tzKTsKK30KKworYm9vbCBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5OjpzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9hcnJheUNhbGxiYWNrcy5pc0VtcHR5KCk7Cit9CisKK3ZvaWQg
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQorewor
ICAgIEFQSU9iamVjdDo6cmVmKCk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eTo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpCit7CisgICAgQVBJT2JqZWN0OjpkZXJlZigp
OworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmdldE9yaWdpbnMoV0tPcmln
aW5EYXRhVHlwZXMgdHlwZXMsIFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4gcHJwQ2FsbGJhY2sp
Cit7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxB
cnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IHBycENhbGxiYWNrOworCisgICAgdWludDY0X3QgY2Fs
bGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CisgICAgbV9hcnJheUNhbGxiYWNrcy5z
ZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2sucmVsZWFzZSgpKTsKKworICAgIC8vIEZJWE1FIChNdWx0
aS1XZWJQcm9jZXNzKTogPHJkYXI6Ly9wcm9ibGVtLzEyMjM5NzY1PiBNYWtlIG1hbmlwdWxhdGlu
ZyBjYWNoZSBpbmZvcm1hdGlvbiB3b3JrIHdpdGggcGVyLXRhYiBXZWJQcm9jZXNzLgorICAgIGNv
bnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVz
c2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpHZXRPcmlnaW5zKHR5cGVzLCBjYWxsYmFja0lE
KSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2lucyhj
b25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2luRGF0YXMsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCit7CisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gbV9hcnJh
eUNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOworICAgIHBlcmZvcm1BUElDYWxsYmFja1dpdGhT
ZWN1cml0eU9yaWdpbkRhdGFWZWN0b3Iob3JpZ2luRGF0YXMsIGNhbGxiYWNrLmdldCgpKTsKK30K
Kwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxldGVFbnRyaWVzRm9yT3JpZ2lu
KFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzLCBXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luKQorewor
ICAgIGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTZWN1cml0eU9yaWdp
bkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhOworICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5wcm90b2Nv
bCA9IG9yaWdpbi0+cHJvdG9jb2woKTsKKyAgICBzZWN1cml0eU9yaWdpbkRhdGEuaG9zdCA9IG9y
aWdpbi0+aG9zdCgpOworICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5wb3J0ID0gb3JpZ2luLT5wb3J0
KCk7CisKKyAgICAvLyBGSVhNRSAoTXVsdGktV2ViUHJvY2Vzcyk6IDxyZGFyOi8vcHJvYmxlbS8x
MjIzOTc2NT4gTWFrZSBtYW5pcHVsYXRpbmcgY2FjaGUgaW5mb3JtYXRpb24gd29yayB3aXRoIHBl
ci10YWIgV2ViUHJvY2Vzcy4KKyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1
bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6RGVs
ZXRlRW50cmllc0Zvck9yaWdpbih0eXBlcywgc2VjdXJpdHlPcmlnaW5EYXRhKSk7Cit9CisKK3Zv
aWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRh
dGFUeXBlcyB0eXBlcykKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nlc3MpOiA8cmRhcjovL3Byb2JsZW0vMTIyMzk3
NjU+IE1ha2UgbWFuaXB1bGF0aW5nIGNhY2hlIGluZm9ybWF0aW9uIHdvcmsgd2l0aCBwZXItdGFi
IFdlYlByb2Nlc3MuCisgICAgY29udGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGlu
Z1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OkRlbGV0ZUFs
bEVudHJpZXModHlwZXMpKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpz
dGFydE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgaWYg
KCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRleHQoKS0+c2VuZFRvQWxs
UHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyOjpTdGFydE9ic2VydmluZ0NoYW5nZXModHlwZXMpKTsKK30KKwordm9pZCBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5OjpzdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFU
eXBlcyB0eXBlcykKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgY29udGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2Fy
eShNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OlN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyh0
eXBlcykpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNldENoYW5nZUNs
aWVudChjb25zdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50ICpjbGllbnQpCit7Cisg
ICAgbV9jbGllbnQuaW5pdGlhbGl6ZShjbGllbnQpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHk6OmRpZENoYW5nZSgpCit7CisgICAgbV9jbGllbnQuZGlkQ2hhbmdlKHRoaXMp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjhkYjc0MGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsOTIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlfaAor
I2RlZmluZSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVj
dC5oIgorI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgorI2luY2x1ZGUgIkltbXV0YWJsZUFy
cmF5LmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV0tPcmlnaW5E
YXRhTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRTdXBwbGVtZW50LmgiCisjaW5jbHVk
ZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIgorI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOworc3RydWN0IFNl
Y3VyaXR5T3JpZ2luRGF0YTsKKwordHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4g
QXJyYXlDYWxsYmFjazsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSA6IHB1Ymxp
YyBUeXBlZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVPcmlnaW5EYXRhTWFuYWdlcj4sIHB1Ymxp
YyBXZWJDb250ZXh0U3VwcGxlbWVudCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIg
eworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eT4gY3JlYXRlKFdl
YkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KCk7CisK
KyAgICB2b2lkIGdldE9yaWdpbnMoV0tPcmlnaW5EYXRhVHlwZXMsIFBhc3NSZWZQdHI8QXJyYXlD
YWxsYmFjaz4pOworICAgIHZvaWQgZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFU
eXBlcywgV2ViU2VjdXJpdHlPcmlnaW4qKTsKKyAgICB2b2lkIGRlbGV0ZUFsbEVudHJpZXMoV0tP
cmlnaW5EYXRhVHlwZXMpOworCisgICAgdm9pZCBzdGFydE9ic2VydmluZ0NoYW5nZXMoV0tPcmln
aW5EYXRhVHlwZXMpOworICAgIHZvaWQgc3RvcE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRh
VHlwZXMpOworICAgIHZvaWQgc2V0Q2hhbmdlQ2xpZW50KGNvbnN0IFdLT3JpZ2luRGF0YU1hbmFn
ZXJDaGFuZ2VDbGllbnQqKTsKKworICAgIHVzaW5nIEFQSU9iamVjdDo6cmVmOworICAgIHVzaW5n
IEFQSU9iamVjdDo6ZGVyZWY7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CisKKyAgICB2b2lkIGRpZEdldE9yaWdpbnMoY29u
c3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAg
ICB2b2lkIGRpZENoYW5nZSgpOworCisgICAgLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQKKyAgICB2
aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBwcm9jZXNzRGlkQ2xvc2UoV2ViUHJvY2Vzc1Byb3h5KikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBib29sIHNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIE9WRVJSSURFOworCisg
ICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOworCisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFycmF5Q2FsbGJhY2s+
PiBtX2FycmF5Q2FsbGJhY2tzOworCisgICAgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5n
ZUNsaWVudCBtX2NsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2ZDc2YjQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI2IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
KyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkgewor
ICAgIERpZEdldE9yaWdpbnMoVmVjdG9yPFdlYktpdDo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmln
aW5JZGVudGlmaWVycywgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgRGlkQ2hhbmdlKCkKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Q2hhbmdlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi42NjYwMWE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwCkBAIC0w
LDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIgorCisjaW5jbHVkZSAiV0tB
UElDYXN0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlDaGFuZ2VDbGllbnQ6OmRpZENoYW5nZShXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
KiBvcmlnaW5EYXRhTWFuYWdlcikKK3sKKyAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuZGlkQ2hhbmdlKHRvQVBJKG9yaWdpbkRhdGFN
YW5hZ2VyKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlDaGFuZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYmE3NjdjZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmgKQEAgLTAsMCAr
MSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNo
YW5nZUNsaWVudF9oCisjZGVmaW5lIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGll
bnRfaAorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tPcmlnaW5EYXRhTWFu
YWdlci5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OworCitjbGFzcyBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50IDogcHVibGljIEFQSUNsaWVudDxXS09yaWdpbkRhdGFN
YW5hZ2VyQ2hhbmdlQ2xpZW50LCBrV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudFZlcnNp
b24+IHsKK3B1YmxpYzoKKyAgICB2b2lkIGRpZENoYW5nZShXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5Kik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ0ZDQ1ZDguLmY5NzZjZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTU2Miw2ICs1NjIsMjAgQEAKIAkJNkVFODQ5QzgxMzY4RDkzOTAwMzhENDgxIC8qIFdLSW5z
cGVjdG9yUHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkVFODQ5QzYxMzY4RDkyRDAwMzhENDgxIC8qIFdLSW5zcGVjdG9yUHJpdmF0ZU1h
Yy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcy
OEU4NkYxMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI4RTg2RUYxNzk1MTg4QzAwODc4
NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLmggKi87IH07CiAJCTcyOEU4NkYyMTc5NTE4OEMwMDg3
ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDcyOEU4NkYwMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBp
Y2tlck1hYy5tbSAqLzsgfTsKKwkJNzU1NDIyQkIxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2lu
RGF0YU1hbmFnZXIuY3BwIGluIENvcHkgRmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzU1NDIyQjkxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIu
Y3BwICovOyB9OworCQk3NTU0MjJCQzE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFu
YWdlci5oIGluIENvcHkgRmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzU1NDIyQkExODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCAqLzsgfTsK
KwkJNzU1NDIyQkQxODA2MkJCMjAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQjkxODA2
MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovOyB9OworCQk3NTU0MjJD
MzE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
biBpbiBDb3B5IEZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQy
MkMwMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluICovOyB9OworCQk3NTU0MjJDNDE4MDYyQkY5MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NTU0MjJCRTE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5jcHAgKi87IH07CisJCTc1NTQyMkNCMTgwNjUwMDIwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRh
TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3NTU0MjJDNjE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwICov
OyB9OworCQk3NTU0MjJDQzE4MDc3M0NFMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkM3
MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oICovOyB9OworCQk3NTlD
Q0Q1ODE4MDhGMTY0MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNs
aWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5n
ZUNsaWVudC5jcHAgKi87IH07CisJCTc1OUNDRDU5MTgwOEYxNjkwMDc4RThBOCAvKiBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTlDQ0Q1NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oICovOyB9OworCQk3NTlDQ0Q1QTE4MDhG
NjE2MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQkYxODA2MkJFNDAwNDZGNkE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJNzVFNzQ5RTkxODBEQkI5
ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU1MTgwREJC
OTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CisJCTc1RTc0OUVBMTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NUU3NDlFNjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5o
ICovOyB9OworCQk3NUU3NDlFQjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NUU3NDlFNzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTc1RTc0OUVDMTgwREJC
OTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU4MTgwREJCOTgw
MDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJ
NzYyQjc0OEQxMjBCQzc1QzAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjJCNzQ4NDEyMEJCQTJE
MDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3ODAxQzA5OTE0MjI5MEM0MDBGQUY5QUYgLyog
V2ViSGl0VGVzdFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3ODAxQzA5NTE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5j
cHAgKi87IH07CiAJCTc4MDFDMDlBMTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3ODAxQzA5
NjE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5oICovOyB9OwpAQCAtMTMwMiw4
ICsxMzE2LDExIEBACiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gMTsKIAkJCWZpbGVzID0gKAogCQkJ
CTUxMENDODQ5MTYxM0M4NUMwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5hcHAgaW4gQ29weSBG
aWxlcyAqLywKKwkJCQk3NTU0MjJCQzE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFu
YWdlci5oIGluIENvcHkgRmlsZXMgKi8sCiAJCQkJQkNERTBBQkYxMzI3MjcwODAwMTI1OUZCIC8q
IFBsdWdpblByb2Nlc3MuYXBwIGluIENvcHkgRmlsZXMgKi8sCisJCQkJNzU1NDIyQzMxODA2MkJF
NDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gaW4gQ29w
eSBGaWxlcyAqLywKIAkJCQkxQTUwREI2NjExMEEzRDU3MDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5h
cHAgaW4gQ29weSBGaWxlcyAqLywKKwkJCQk3NTU0MjJCQjE4MDYyQjlDMDA0NkY2QTggLyogV0tP
cmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gQ29weSBGaWxlcyAqLywKIAkJCSk7CiAJCQluYW1lID0g
IkNvcHkgRmlsZXMiOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CkBAIC0xOTYyLDYgKzE5NzksMjAgQEAKIAkJNkVFODQ5QzYxMzY4RDkyRDAwMzhENDgxIC8qIFdL
SW5zcGVjdG9yUHJpdmF0ZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
S0luc3BlY3RvclByaXZhdGVNYWMuaDsgcGF0aCA9IG1hYy9XS0luc3BlY3RvclByaXZhdGVNYWMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI4RTg2RUYxNzk1MTg4QzAwODc4NzlF
IC8qIFdlYkNvbG9yUGlja2VyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkNvbG9yUGlja2VyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4
NkYwMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJCOTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmln
aW5EYXRhTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
S09yaWdpbkRhdGFNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1
NDIyQkExODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tPcmlnaW5EYXRhTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJCRTE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNzU1NDIyQkYxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDMDE4MDYyQkU0
MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDNjE4MDY0RkZDMDA0NkY2QTggLyog
V2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmln
aW5EYXRhTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkM3
MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJPcmlnaW5EYXRhTWFuYWdlci5oOyBwYXRoID0gT3JpZ2lu
RGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3NTU0MjJDODE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2Fn
ZXMuaW47IHBhdGggPSBPcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4QTgg
LyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdl
Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU5Q0NENTUxODA4RjE2
MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNo
YW5nZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUU3NDlFNTE4MERC
Qjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUU3NDlF
NjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1RTc0OUU3MTgwREJCOTgwMDA4OEJB
NiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUU3NDlF
ODE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjJCNzQ4MTEyMEJC
QTAxMDA4MTkzMzkgLyogRm9udFNtb290aGluZ0xldmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZvbnRTbW9vdGhpbmdMZXZlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzgwMUMwOTUxNDIyOTBDNDAwRkFGOUFG
IC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zNjUyLDYgKzM2ODMsMTYgQEAKIAkJCW5hbWUgPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwogCQl9OworCQk3NTU0MjJDNTE4MDY0RkZDMDA0NkY2QTggLyogT3JpZ2luRGF0YSAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNzU1NDIyQzYx
ODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLywKKwkJCQk3NTU0
MjJDNzE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCAqLywKKwkJCQk3
NTU0MjJDODE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMu
aW4gKi8sCisJCQkpOworCQkJbmFtZSA9IE9yaWdpbkRhdGE7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQk3Q0IxNkZFMTE3MjRCOUI1MDA3QTBBOTUgLyogUGx1Z0luU2FuZGJv
eFByb2ZpbGVzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAg
LTM3MDEsNiArMzc0Miw3IEBACiAJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9j
ZXNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk3NTU0
MjJDNTE4MDY0RkZDMDA0NkY2QTggLyogT3JpZ2luRGF0YSAqLywKIAkJCQk1MTJFMzUyQTEzMEI1
NTk5MDBBQkQxOUEgLyogQXBwbGljYXRpb25DYWNoZSAqLywKIAkJCQkzMzA5MzQ0QjEzMTVCOTNB
MDA5N0E3QkMgLyogQ29va2llcyAqLywKIAkJCQlCQ0FDQzQzQjE2QjI0QzVEMDBCNkUwOTIgLyog
RW50cnlQb2ludCAqLywKQEAgLTM5MzAsNiArMzk3MiwxMSBAQAogCQkJCUJDRjY5RkEwMTE3NkQw
MTQwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5oICovLAogCQkJCUJDMURGRUEzMTJCMzFG
ODcwMDVERjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCAqLywKIAkJ
CQlCQzFERkVBMjEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQ
cm94eS5oICovLAorCQkJCTc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQk3NTU0MjJCRjE4MDYyQkU0MDA0NkY2QTggLyogV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oICovLAorCQkJCTc1NTQyMkMwMTgwNjJCRTQwMDQ2RjZB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTc1OUND
RDU0MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xp
ZW50LmNwcCAqLywKKwkJCQk3NTlDQ0Q1NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oICovLAogCQkJCTUxNTM1NjlBMTI5MUIxRDIwMDA3
NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovLAogCQkJCTUxNTM1NjlCMTI5
MUIxRDIwMDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLywKIAkJCQlCQzdC
NjIwNTEyOUEwQTY3MDBEMTc0QTQgLyogV2ViUGFnZUdyb3VwLmNwcCAqLywKQEAgLTQwMzMsNiAr
NDA4MCw4IEBACiAJCQkJQkM4NTdGRTQxMkI4NDNEODAwRURFQjJFIC8qIFdLT3BlblBhbmVsUGFy
YW1ldGVycy5oICovLAogCQkJCUJDMURGRThFMTJCMzFDQTgwMDVERjczMCAvKiBXS09wZW5QYW5l
bFJlc3VsdExpc3RlbmVyLmNwcCAqLywKIAkJCQlCQzFERkU4RDEyQjMxQ0E4MDA1REY3MzAgLyog
V0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oICovLAorCQkJCTc1NTQyMkI5MTgwNjJCOUMwMDQ2
RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLywKKwkJCQk3NTU0MjJCQTE4MDYyQjlD
MDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5oICovLAogCQkJCUJDRDU5N0Q0MTEyQjU2
REMwMEVDOEMyMyAvKiBXS1BhZ2UuY3BwICovLAogCQkJCUJDRDU5N0Q1MTEyQjU2REMwMEVDOEMy
MyAvKiBXS1BhZ2UuaCAqLywKIAkJCQlCQzdCNjMzNjEyQTQ1QUJBMDBEMTc0QTQgLyogV0tQYWdl
R3JvdXAuY3BwICovLApAQCAtNDc0NSw2ICs0Nzk0LDEwIEBACiAJCUMwQ0U3MjlEMTI0N0U3MUQw
MEJDMEVDNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTc1RTc0OUU1MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNzVFNzQ5RTYxODBEQkI5ODAw
MDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk3NUU3NDlF
NzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8sCisJCQkJNzVFNzQ5RTgxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTUxMkY1OEEwMTJBODgzQUQwMDYyOTUz
MCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTUx
MkY1OEExMTJBODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5o
ICovLAogCQkJCUUxN0FFMkMyMTZCOUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5l
dHdvcmtQcm9jZXNzLnNiICovLApAQCAtNTIxOSw5ICs1MjcyLDExIEBACiAJCQkJQkNERTA1OUIx
MUNEQThBRTAwRTQxQUYxIC8qIFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE4NzFCNUMxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkQ3NzEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ29u
dGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1RTc0OUVDMTgwREJCOTgwMDA4
OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxMjkzNUQ4MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCBp
biBIZWFkZXJzICovLAogCQkJCTUxMEZCQjlCMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0
TWVudUl0ZW1EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUFDQkI4MjEyN0E4QkFEMDBEMjAz
QjkgLyogV2ViQ29udGV4dE1lbnVQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzVFNzQ5RUEx
ODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxQUNCQkEwMTI3QThGMkMwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVBy
b3h5TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0NCNzVDNjEyMDNBMUNFMDAyMjJEMUIgLyog
V2ViQ29udGV4dE1lc3NhZ2VLaW5kcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFRTdEMEUxMjg0
NkY2OTAwOTgyN0RBIC8qIFdlYkNvbnRleHRNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC01
NDgwLDYgKzU1MzUsNyBAQAogCQkJCUJDRERCMzJCMTI0RUMyQUIwMDQ4RDEzQyAvKiBXS1NoYXJl
ZEFQSUNhc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjA2MTI0RkYwMjcwMDY4RjIwQSAv
KiBXS1N0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MUExMjRGRjAzNzAwNjhGMjBB
IC8qIFdLU3RyaW5nQ0YuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1OUNDRDU5MTgwOEYxNjkwMDc4
RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzkwOTk4MDEyNTZBOTgyMDAwODM3NTYgLyogV0tTdHJpbmdQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzNzdFQUQ0ODE3RTJDNzdCMDAyRDE5M0QgLyogV0tVc2VyQ29u
dGVudEluamVjdGVkRnJhbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRBOUFBODEyQjdFNzk2
MDA4RkU5ODQgLyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywK
QEAgLTU0OTAsMTEgKzU1NDYsMTMgQEAKIAkJCQlCQzQwNzYwQzEyNEZGMDI3MDA2OEYyMEEgLyog
V0tVUkxSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYyOTEyNEZGMDQwMDA2OEYy
MEEgLyogV0tVUkxSZXF1ZXN0TlMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjBFMTI0RkYw
MjcwMDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTlDQ0Q1
QTE4MDhGNjE2MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM0MDc2MkIxMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2VOUy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRjYxMTNFMjkxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNv
bnRlbnRVUkxQYXR0ZXJuLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNTExNkFBREFBMDAy
QTkyNUIgLyogV0tWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNzExNkFBREFBMDAy
QTkyNUIgLyogV0tWaWV3SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJGQTYxNzlGMTJG
MEI5OUQwMDMzRTBDQSAvKiBXS1ZpZXdQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTU0
MjJDQzE4MDc3M0NFMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUM1RTFBRkU5MTZCMjBCNzUwMDZDQzFGMiAvKiBXS1dlYkFyY2hpdmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUM1RTFBRkVCMTZCMjBCN0UwMDZDQzFGMiAvKiBXS1dlYkFyY2hpdmVS
ZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5ODlEODIxNjFBN0U1RDAwMEQ0NkQzIC8q
IFdLV2ViUHJvY2Vzc1BsdWdJbi5oIGluIEhlYWRlcnMgKi8sCkBAIC02MTkwLDYgKzYyNDgsNyBA
QAogCQkJCUJDRUU3REM2MTI4QjY0NUQwMDk4MjdEQSAvKiBJbmplY3RlZEJ1bmRsZUNsaWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUZBMkQ3NDE1MjEyREYxMDBDMUJBMEIgLyogSW5qZWN0
ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0OTg2
MTkxMjREMTBFMjAwRDgzNEUxIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk3NUU3NDlFOTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyMDRFRTYx
MUM4M0VBOTAwOEYzMzc1IC8qIEluamVjdGVkQnVuZGxlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkM4MTQ3RDYxMkY2NkQzMTAwN0IyQzMyIC8qIEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFj
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzRCRUVBQzEyMEEwQTVGMDBGQkEwQzcgLyog
SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjE5OCw2ICs2
MjU3LDcgQEAKIAkJCQlFMUVFNTNFNzExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlRWRpdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTRFMTA5MTIwQjkwNUUw
MDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUNENUM2NkEwMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxs
U2NyZWVuQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1NTQyMkNCMTgwNjUwMDIwMDQ2
RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0E4
QzZBODExRTNCQTVGMDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDODE0N0FBMTJGNjRDREEwMDdCMkMzMiAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU5QzU1MUUx
MzAwMDY0MTAwMjVDMEMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTYzMDksNiArNjM2OSw3IEBACiAJCQkJMUEwNDNCNUQxMjRE
NUU5RDAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQTA0M0RDMjEyNEZGODc1MDBGRkJGQjUgLyogUGx1Z2luUHJveHku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRDkyMjExMjgxREMxQjAwMUVCOTYyIC8qIFBsdWdp
blByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNzU1NDIyQzQxODA2MkJGOTAwNDZGNkE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE4
RUZBNzAxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdDRDYyMjc3MTczOUQ4NjMwMDVCRDdGRiAvKiBQbHVnaW5TYW5k
Ym94UHJvZmlsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDODI4NDREMTZCNTA4MUMwMEEyNzhG
RSAvKiBQbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbSBpbiBTb3VyY2VzICovLApAQCAtNjQyOCw2
ICs2NDg5LDcgQEAKIAkJCQlCQ0I5RjZBMTExMjNBODRCMDBBMTM3RTAgLyogV2ViRnJhbWVQb2xp
Y3lMaXN0ZW5lclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQjBFMTEyRjVFNEYw
MDMzN0JBQiAvKiBXZWJGcmFtZVByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENzNCQTUz
MTMxQjY0NUIwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk3NTU0MjJCRDE4MDYyQkIyMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDczQkE0RTEzMUFDREI3MDBFRURFRDIgLyogV2ViRnVs
bFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q2
Rjc1RjQxMzFCNjZEMDAwRDZCMjFFIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RDQTg1RUUxMzJBRDcwMTAwRTk2MURGIC8qIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywKQEAgLTY1MDcsNiArNjU2OSw3IEBA
CiAJCQkJMUEwNDNBMEExMjREMTFBOTAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBMDQzRjY5MTI1MTREOEIwMEZGQkZCNSAvKiBXZWJQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzMw
NjgyNTEyNUE2Qjk0MDBFNzEyNzggLyogV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk3NUU3NDlFQjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzMwNjVDNDEyNTkyRjg5MDBFNzEyNzggLyogV2ViUHJvY2Vzc01hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUJDMzA2NkJFMTI1QTQ0MjEwMEU3MTI3OCAvKiBXZWJQcm9jZXNzTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQjExMTEyRjVFNEYwMDMzN0JBQiAvKiBX
ZWJQcm9jZXNzUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02NTcwLDYgKzY2MzMsNyBAQAog
CQkJCTlGQjVGMzk0MTY5RTZBODAwMDJDMjVCRiAvKiBXS0NvbnRleHRQcml2YXRlTWFjLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMzMwOTM0NUExMzE1Qjk5ODAwOTdBN0JDIC8qIFdLQ29va2llTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTJGNThGOTEyQTg4QTU0MDA2Mjk1MzAgLyog
V0tDcmVkZW50aWFsLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1OUNDRDU4MTgwOEYxNjQwMDc4
RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDNDA3NUY3MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0RhdGEuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRjYyQTc2NjExMkIxQUJFRDAwMDVGMUI2IC8qIFdLRGF0YWJhc2VNYW5h
Z2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NUY5MTI0RkYwMjcwMDY4RjIwQSAvKiBX
S0RpY3Rpb25hcnkuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NmYxMzYxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFN
YW5hZ2VyLmNwcApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlci5oIgorCisjaW5jbHVk
ZSAiQ2hpbGRQcm9jZXNzLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCisjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1h
bmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luSGFzaC5oPgorCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjb25z
dCBjaGFyKiBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJl
dHVybiAiV2ViT3JpZ2luRGF0YU1hbmFnZXIiOworfQorCitXZWJPcmlnaW5EYXRhTWFuYWdlcjo6
V2ViT3JpZ2luRGF0YU1hbmFnZXIoQ2hpbGRQcm9jZXNzKiBjaGlsZFByb2Nlc3MpCisgICAgOiBt
X2NoaWxkUHJvY2VzcyhjaGlsZFByb2Nlc3MpCit7CisgICAgbV9jaGlsZFByb2Nlc3MtPmFkZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgdGhpcyk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXI6OmdldE9y
aWdpbnMoV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7Cisg
ICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiBvcmlnaW5zOworCisgICAgLy8gRklY
TUU6IHBvcHVsYXRlIG9yaWdpbnMKKworICAgIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGlk
ZW50aWZpZXJzOworICAgIGlkZW50aWZpZXJzLnJlc2VydmVDYXBhY2l0eShvcmlnaW5zLnNpemUo
KSk7CisKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+OjppdGVyYXRvciBlbmQg
PSBvcmlnaW5zLmVuZCgpOworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj46Oml0
ZXJhdG9yIGkgPSBvcmlnaW5zLmJlZ2luKCk7CisgICAgZm9yICg7IGkgIT0gZW5kOyArK2kpIHsK
KyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSAqaTsKKworICAgICAgICBT
ZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luRGF0YTsKKyAgICAgICAgb3JpZ2luRGF0YS5wcm90b2Nv
bCA9IG9yaWdpbi0+cHJvdG9jb2woKTsKKyAgICAgICAgb3JpZ2luRGF0YS5ob3N0ID0gb3JpZ2lu
LT5ob3N0KCk7CisgICAgICAgIG9yaWdpbkRhdGEucG9ydCA9IG9yaWdpbi0+cG9ydCgpOworCisg
ICAgICAgIGlkZW50aWZpZXJzLnVuY2hlY2tlZEFwcGVuZChvcmlnaW5EYXRhKTsKKyAgICB9CisK
KyAgICBtX2NoaWxkUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eTo6RGlkR2V0T3JpZ2lucyhpZGVudGlmaWVycywgY2FsbGJhY2tJRCksIDApOworfQorCit2
b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2lu
RGF0YVR5cGVzIHR5cGVzLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbkRhdGEpCit7
CisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlKG9yaWdpbkRhdGEucHJvdG9jb2wsIG9yaWdpbkRhdGEuaG9zdCwgb3JpZ2luRGF0YS5wb3J0
KTsKKyAgICBpZiAoIW9yaWdpbikKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IGRl
bGV0ZSBjYWNoZQorfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVBbGxFbnRy
aWVzKFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKQoreworICAgIC8vIEZJWE1FOiBkZWxldGUgZW50
cmllcworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdGFydE9ic2VydmluZ0NoYW5n
ZXMoV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgLy8gRklYTUU6IHN0YXJ0IG9ic2Vy
dmluZyBjaGFuZ2VzCit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN0b3BPYnNlcnZp
bmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKQoreworICAgIC8vIEZJWE1FOiBzdG9w
IG9ic2VydmluZyBjaGFuZ2VzCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0
YU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OGVhNTE1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV2ViT3JpZ2luRGF0YU1hbmFnZXJfaAorI2RlZmluZSBXZWJPcmlnaW5EYXRhTWFu
YWdlcl9oCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXS09yaWdp
bkRhdGFNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKKyNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENoaWxkUHJvY2VzczsKK3N0cnVjdCBTZWN1
cml0eU9yaWdpbkRhdGE7CisKK2NsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2VyIDogcHVibGljIFdl
YlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJPcmlnaW5EYXRhTWFuYWdlcik7CitwdWJsaWM6Cisg
ICAgV2ViT3JpZ2luRGF0YU1hbmFnZXIoQ2hpbGRQcm9jZXNzKik7CisKKyAgICBzdGF0aWMgY29u
c3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKKworICAgIHZvaWQgZGVsZXRlQWxsRW50cmllcyhX
S09yaWdpbkRhdGFUeXBlcyk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBnZXRPcmlnaW5zKFdLT3Jp
Z2luRGF0YVR5cGVzLCB1aW50NjRfdCk7CisgICAgdm9pZCBkZWxldGVFbnRyaWVzRm9yT3JpZ2lu
KFdLT3JpZ2luRGF0YVR5cGVzLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKTsKKyAgICB2b2lk
IHN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFUeXBlcyk7CisgICAgdm9pZCBzdG9w
T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFUeXBlcyk7CisKKyAgICAvLyBDb3JlSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisKKyAg
ICBDaGlsZFByb2Nlc3MqIG1fY2hpbGRQcm9jZXNzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBXZWJPcmlnaW5EYXRhTWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2lu
RGF0YU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNjk0ZTYzOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
T3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI5
IEBACisjIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyIHsKKyAgICB2b2lkIEdldE9yaWdpbnModWludDMyX3QgdHlw
ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgdm9pZCBEZWxldGVFbnRyaWVzRm9yT3JpZ2lu
KHVpbnQzMl90IHR5cGVzLCBXZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5JZGVudGlm
aWVyKQorICAgIHZvaWQgRGVsZXRlQWxsRW50cmllcyh1aW50MzJfdCB0eXBlcykKKyAgICB2b2lk
IFN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyh1aW50MzJfdCB0eXBlcykKKyAgICB2b2lkIFN0b3BPYnNl
cnZpbmdDaGFuZ2VzKHVpbnQzMl90IHR5cGVzKQorfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214318</attachid>
            <date>2013-10-15 16:25:37 -0700</date>
            <delta_ts>2013-10-15 20:30:13 -0700</delta_ts>
            <desc>Fix merge conflict</desc>
            <filename>122781i.diff</filename>
            <type>text/plain</type>
            <size>67171</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggOGY4NGFiNC4uMTA4ZDY1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTQ3LDYgKzQ3LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0xhdW5jaGluZyIKICAgICAiJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvT3JpZ2lu
RGF0YSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dF
QktJVDJfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKQEAgLTMwOCw2ICszMDksOCBAQCBzZXQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNw
cAogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vz
cy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1l
bnVDbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAKICAgICBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzU1LDYgKzM1OCw3IEBAIHNldChXZWJLaXQyX1NPVVJD
RVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5j
cHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcAorICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAKQEAgLTQ2Miw2ICs0NjYsOCBAQCBz
ZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKICAgICBXZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvT3JpZ2lu
RGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKKwogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW4uY3BwCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
LmNwcAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuY3BwCkBAIC01NTAsNiArNTU2LDcgQEAgc2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMK
ICAgICBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nl
c3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9X
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorICAgIFVJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtNTg3LDYgKzU5NCw4IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAg
ICBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdl
cy5pbgogCisgICAgV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1l
c3NhZ2VzLmluCisKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b3h5Lm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzI2MjM4Yy4uOWEzNmExZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDc1IEBACisyMDEzLTEwLTE1ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWZhY3RvciBzdG9yZWQgd2Vic2l0ZSBkYXRhIEFQSXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjc4MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJPcmlnaW5E
YXRhTWFuYWdlciBhbG9uZyB3aXRoIGNvcnJlc3BvbmRpbmcgY2xhc3MKKyAgICAgICAgV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eSBhbmQgQVBJIFdLT3JpZ2luRGF0YU1hbmFnZXIuCisKKyAgICAg
ICAgQ3VycmVudGx5LCB0aGUgbmV3IGZpbGVzIGFyZSB1bnVzZWQuCisKKyAgICAgICAgV0tPcmln
aW5EYXRhTWFuYWdlciBzaG91bGQgc3Vic3VtZSB0aGUgZnVuY3Rpb25hbGl0eSBvZjoKKyAgICAg
ICAgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciwgV0tDb29raWVNYW5hZ2VyLCBXS0RhdGFiYXNl
TWFuYWdlciwKKyAgICAgICAgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLCBXS01lZGlhQ2FjaGVN
YW5hZ2VyLAorICAgICAgICBXS1BsdWdpblNpdGVEYXRhTWFuYWdlciwgYW5kIFdLUmVzb3VyY2VD
YWNoZU1hbmFnZXIuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAg
ICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tB
UElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAg
ICAgIChXS0NvbnRleHRHZXRPcmlnaW5EYXRhTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRh
dGFNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyR2V0VHlw
ZUlEKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zKToKKyAgICAgICAg
KFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVFbnRyaWVzRm9yT3JpZ2luKToKKyAgICAgICAgKFdL
T3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0
YU1hbmFnZXJTdGFydE9ic2VydmluZ0NoYW5nZXMpOgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFu
YWdlclN0b3BPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJT
ZXRDaGFuZ2VDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFN
YW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eTo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6On5XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6Y29udGV4dERlc3Ryb3ll
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnByb2Nlc3NE
aWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNo
b3VsZFRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk6OnJlZldlYkNvbnRleHRTdXBwbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eTo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmdldE9yaWdpbnMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkaWRHZXRPcmlnaW5zKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVsZXRlRW50cmllc0Zvck9y
aWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlbGV0
ZUFsbEVudHJpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
OjpzdGFydE9ic2VydmluZ0NoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5OjpzdG9wT2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNldENoYW5nZUNsaWVudCk6CisgICAgICAgIChXZWJL
aXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRpZENoYW5nZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFu
Z2VDbGllbnQ6OmRpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9X
ZWJPcmlnaW5EYXRhTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmln
aW5EYXRhTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmln
aW5EYXRhTWFuYWdlcjo6V2ViT3JpZ2luRGF0YU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJPcmlnaW5EYXRhTWFuYWdlcjo6Z2V0T3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKToKKyAgICAgICAgKFdlYktp
dDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OmRlbGV0ZUFsbEVudHJpZXMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN0b3BPYnNlcnZpbmdDaGFuZ2VzKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuaDog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5h
Z2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKworPDw8PDw8PCBVcGRhdGVkIHVwc3RyZWFtCiAyMDEz
LTEwLTE1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3Zl
IFdlYlByb2Nlc3MvSW5kZXhlZERCIHRvIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQgpA
QCAtMTcxLDYgKzI0Myw3OCBAQAogICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRlci5tZXNzYWdlcy5pbjoKICAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKICAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCk6Cis9PT09PT09CisyMDEzLTEwLTE0
ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBzdG9y
ZWQgd2Vic2l0ZSBkYXRhIEFQSXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyMjc4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBXZWJPcmlnaW5EYXRhTWFuYWdlciBhbG9uZyB3aXRoIGNvcnJlc3Bv
bmRpbmcgY2xhc3MKKyAgICAgICAgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSBhbmQgQVBJIFdL
T3JpZ2luRGF0YU1hbmFnZXIuCisKKyAgICAgICAgQ3VycmVudGx5LCB0aGUgbmV3IGZpbGVzIGFy
ZSB1bnVzZWQuCisKKyAgICAgICAgV0tPcmlnaW5EYXRhTWFuYWdlciBzaG91bGQgc3Vic3VtZSB0
aGUgZnVuY3Rpb25hbGl0eSBvZjoKKyAgICAgICAgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciwg
V0tDb29raWVNYW5hZ2VyLCBXS0RhdGFiYXNlTWFuYWdlciwKKyAgICAgICAgV0tLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyLCBXS01lZGlhQ2FjaGVNYW5hZ2VyLAorICAgICAgICBXS1BsdWdpblNpdGVE
YXRhTWFuYWdlciwgYW5kIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuCisKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAg
ICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tB
UElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAg
ICAgIChXS0NvbnRleHRHZXRPcmlnaW5EYXRhTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRh
dGFNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyR2V0VHlw
ZUlEKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zKToKKyAgICAgICAg
KFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVFbnRyaWVzRm9yT3JpZ2luKToKKyAgICAgICAgKFdL
T3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0
YU1hbmFnZXJTZXRBY2NlcHRQb2xpY3kpOgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFuYWdlckdl
dEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyU3RhcnRPYnNlcnZp
bmdDaGFuZ2VzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ2hh
bmdlcyk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyU2V0Q2hhbmdlQ2xpZW50KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5oOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzdXBwbGVtZW50TmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5Ojp+V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0cm95ZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpwcm9jZXNzRGlkQ2xvc2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzaG91bGRUZXJtaW5hdGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpyZWZXZWJDb250ZXh0U3Vw
cGxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRl
cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5OjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2luRGF0YU9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsRW50cmll
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNldEFjY2Vw
dFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6Omdl
dEFjY2VwdFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OnN0b3BPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c2V0Q2hhbmdlQ2xpZW50KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNo
YW5nZUNsaWVudDo6ZGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRh
L1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyOjpXZWJPcmlnaW5EYXRhTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
T3JpZ2luRGF0YU1hbmFnZXI6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlQWxsRW50cmllcyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdl
cy5pbjogQWRkZWQuCis+Pj4+Pj4+IFN0YXNoZWQgY2hhbmdlcwogCiAyMDEzLTEwLTE0ICBDc2Fi
YSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IDU1NTE3NGIuLmYxZmEwNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtMzksNiArMzksNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nl
c3MvTWVkaWFDYWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsgXAogICAg
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKKyAgICAkKFdlYktpdDIpL1dl
YlByb2Nlc3MvT3JpZ2luRGF0YSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1BsdWdpbnMg
XAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKICAgICAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvU3RvcmFnZSBcCkBAIC05OSw2ICsxMDAsOCBAQCBNRVNTQUdFX1JFQ0VJ
VkVSUyA9IFwKICAgICBXZWJNZWRpYUNhY2hlTWFuYWdlciBcCiAgICAgV2ViTWVkaWFDYWNoZU1h
bmFnZXJQcm94eSBcCiAgICAgV2ViTm90aWZpY2F0aW9uTWFuYWdlciBcCisgICAgV2ViT3JpZ2lu
RGF0YU1hbmFnZXIgXAorICAgIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkgXAogICAgIFdlYlBh
Z2UgXAogICAgIFdlYlBhZ2VHcm91cFByb3h5IFwKICAgICBXZWJQYWdlUHJveHkgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVt
YWtlZmlsZS5hbQppbmRleCBiODI1YmMzLi43Y2FkMTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQpA
QCAtMTU1LDYgKzE1NSw3IEBAIGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVS
U0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkBfbGFfQ1BQCiAJLUkkKHNyY2Rpcikv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIFwKIAktSSQoc3JjZGlyKS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAorCS1JJChzcmNkaXIpL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1N0b3JhZ2UgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3Mvc291cCBcCkBAIC0zODMsNiArMzg0LDcgQEAgdnBhdGggJS5tZXNzYWdlcy5pbiA9IFwK
IAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvTmV0d29yayBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNz
L05ldHdvcmtJbmZvIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCisJ
JChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9QbHVnaW5zIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAJJChX
ZWJLaXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXApAQCAtNzQ2LDYgKzc0OCw3IEBAIEVYVFJBX0RJ
U1QgKz0gXAogCSQoc2hlbGwgbHMgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsvKi5pbikg
XAogCSQoc2hlbGwgbHMgJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmtJbmZvLyouaW4pIFwK
IAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zLyouaW4pIFwK
KwkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhLyouaW4pIFwKIAkk
KHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zLyouaW4pIFwKIAkkKHNoZWxs
IGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlLyouaW4pIFwKIAkkKHNoZWxs
IGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TdG9yYWdlLyouaW4pIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDBjMGUwNTYuLjhjNGZkMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZp
bGUubGlzdC5hbQpAQCAtODMsNiArODMsNyBAQCB3ZWJraXQyX2hfYXBpICs9IFwKIAkkKFdlYktp
dDIpL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblByb3ZpZGVyLmggXAogCSQoV2ViS2l0
MikvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oIFwKIAkkKFdlYktpdDIp
L1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggXAorCSQoV2ViS2l0
MikvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuaCBcCiAJJChXZWJLaXQyKS9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUu
aCBcCkBAIC0yMjMsNiArMjI0LDEwIEBAIHdlYmtpdDJfYnVpbHRfc291cmNlcyArPSBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2VzLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViT3JpZ2luRGF0YU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk9y
aWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlR3JvdXBQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUGFnZUdyb3VwUHJveHlNZXNzYWdlcy5oIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlBhZ2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXApA
QCAtNjQxLDYgKzY0Niw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgXAogCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggXAor
CVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBc
CisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuaCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgXAogCVNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAgXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oIFwKQEAgLTk4MCw2ICs5ODcsMTAgQEAgd2Vi
a2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29ya0lu
Zm9Qcm92aWRlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXJQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwIFwKKwlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggNjk5NGNiZC4uMTk3YWQ5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtMTE5LDYgKzExOSw3IEBAIHR5cGVkZWYgY29uc3Qg
c3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QqIFdLTm90aWZpY2F0
aW9uUGVybWlzCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05vdGlmaWNhdGlvblByb3Zp
ZGVyKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tPcGVuUGFuZWxQYXJhbWV0ZXJzKiBXS09wZW5QYW5lbFBhcmFtZXRlcnNSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyKiBXS09wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tPcmln
aW5EYXRhTWFuYWdlciogV0tPcmlnaW5EYXRhTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLUGFnZSogV0tQYWdlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tQYWdlR3JvdXAqIFdLUGFnZUdyb3VwUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSU9iamVjdC5oCmluZGV4IDQ0MWUwNWUuLjcwMzIxYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJT2JqZWN0LmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5
cGVOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwKICAgICAgICAgVHlwZU9wZW5QYW5lbFBh
cmFtZXRlcnMsCiAgICAgICAgIFR5cGVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciwKKyAgICAgICAg
VHlwZU9yaWdpbkRhdGFNYW5hZ2VyLAogICAgICAgICBUeXBlUGFnZSwKICAgICAgICAgVHlwZVBh
Z2VHcm91cCwKICAgICAgICAgVHlwZVBsdWdpblNpdGVEYXRhTWFuYWdlciwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA2NGM4ZDFhLi5kZDg4ZDdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC04Nyw2ICs4
Nyw3IEBAIGNsYXNzIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOwogY2xhc3MgV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5OwogY2xhc3MgV2ViT3BlblBhbmVsUGFyYW1ldGVyczsKIGNsYXNzIFdl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk7CitjbGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3Mg
V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOwpAQCAtMTMzLDYgKzEzNCw3IEBAIFdLX0FERF9BUElf
TUFQUElORyhXS05vdGlmaWNhdGlvblByb3ZpZGVyUmVmLCBXZWJOb3RpZmljYXRpb25Qcm92aWRl
cikKIFdLX0FERF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlvblJlZiwgV2ViTm90aWZpY2F0aW9u
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZiwgV2ViT3BlblBh
bmVsUGFyYW1ldGVycykKIFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyUmVmLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KQorV0tfQUREX0FQSV9NQVBQ
SU5HKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkpCiBX
S19BRERfQVBJX01BUFBJTkcoV0tQYWdlR3JvdXBSZWYsIFdlYlBhZ2VHcm91cCkKIFdLX0FERF9B
UElfTUFQUElORyhXS1BhZ2VSZWYsIFdlYlBhZ2VQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhX
S1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiwgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCBhNDdlNDlm
Li5mYmZiYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIldlYktleVZhbHVlU3RvcmFnZU1hbmFn
ZXIuaCIKICNpbmNsdWRlICJXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAi
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCIK
ICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQogI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlclBy
b3h5LmgiCkBAIC0yNzQsNiArMjc1LDExIEBAIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgV0tD
b250ZXh0R2V0UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSCiAgICAg
cmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+c3VwcGxlbWVudDxXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5PigpKTsKIH0KIAorV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBXS0NvbnRl
eHRHZXRPcmlnaW5EYXRhTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyAgICBy
ZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5zdXBwbGVtZW50PFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHk+KCkpOworfQorCiB2b2lkIFdLQ29udGV4dFN0YXJ0TWVtb3J5U2FtcGxlcihX
S0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tEb3VibGVSZWYgaW50ZXJ2YWwpCiB7CiAgICAgdG9J
bXBsKGNvbnRleHRSZWYpLT5zdGFydE1lbW9yeVNhbXBsZXIodG9JbXBsKGludGVydmFsKS0+dmFs
dWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKaW5kZXgg
M2NlNzMxZS4uZWZkNjc3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuaApAQCAtMTk1LDcgKzE5NSw4IEBAIFdLX0VYUE9SVCBXS05ldHdvcmtJbmZvTWFuYWdl
clJlZiBXS0NvbnRleHRHZXROZXR3b3JrSW5mb01hbmFnZXIoV0tDb250ZXh0UmVmIGNvCiBXS19F
WFBPUlQgV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldE5vdGlmaWNhdGlvbk1h
bmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLUGx1Z2luU2l0ZURhdGFN
YW5hZ2VyUmVmIFdLQ29udGV4dEdldFBsdWdpblNpdGVEYXRhTWFuYWdlcihXS0NvbnRleHRSZWYg
Y29udGV4dCk7CiBXS19FWFBPUlQgV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRH
ZXRSZXNvdXJjZUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7Ci0gICAgCitXS19F
WFBPUlQgV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRPcmlnaW5EYXRhTWFuYWdl
cihXS0NvbnRleHRSZWYgY29udGV4dCk7CisKIHR5cGVkZWYgdm9pZCAoKldLQ29udGV4dEdldFN0
YXRpc3RpY3NGdW5jdGlvbikoV0tEaWN0aW9uYXJ5UmVmIHN0YXRpc3RpY3MsIFdLRXJyb3JSZWYg
ZXJyb3IsIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRH
ZXRTdGF0aXN0aWNzKFdLQ29udGV4dFJlZiBjb250ZXh0LCB2b2lkKiBmdW5jdGlvbkNvbnRleHQs
IFdLQ29udGV4dEdldFN0YXRpc3RpY3NGdW5jdGlvbiBmdW5jdGlvbik7CiBXS19FWFBPUlQgdm9p
ZCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzV2l0aE9wdGlvbnMoV0tDb250ZXh0UmVmIGNvbnRleHQs
IFdLU3RhdGlzdGljc09wdGlvbnMgc3RhdGlzdGljc01hc2ssIHZvaWQqIGZ1bmN0aW9uQ29udGV4
dCwgV0tDb250ZXh0R2V0U3RhdGlzdGljc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjg1MzkyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIu
Y3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV0tPcmlnaW5EYXRhTWFuYWdlci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0Lmgi
CisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OworCitXS1R5cGVJRCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0VHlwZUlEKCkKK3sK
KyAgICByZXR1cm4gdG9BUEkoV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6QVBJVHlwZSk7Cit9
CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFuYWdl
clJlZiBvcmlnaW5EYXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMsIHZvaWQq
IGNvbnRleHQsIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zRnVuY3Rpb24gY2FsbGJhY2sp
Cit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+Z2V0T3JpZ2lucyh0eXBlcywg
QXJyYXlDYWxsYmFjazo6Y3JlYXRlKGNvbnRleHQsIGNhbGxiYWNrKSk7Cit9CisKK3ZvaWQgV0tP
cmlnaW5EYXRhTWFuYWdlckRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFuYWdl
clJlZiBvcmlnaW5EYXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMsIFdLU2Vj
dXJpdHlPcmlnaW5SZWYgb3JpZ2luUmVmKQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdl
clJlZiktPmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4odHlwZXMsIHRvSW1wbChvcmlnaW5SZWYpKTsK
K30KKwordm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRh
dGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBl
cykKK3sKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5kZWxldGVBbGxFbnRyaWVz
KHR5cGVzKTsKK30KKwordm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFu
Z2VzKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2lu
RGF0YVR5cGVzIHR5cGVzKQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPnN0
YXJ0T2JzZXJ2aW5nQ2hhbmdlcyh0eXBlcyk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdl
clN0b3BPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1h
bmFnZXJSZWYsIFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKQoreworICAgIHRvSW1wbChvcmlnaW5E
YXRhTWFuYWdlclJlZiktPnN0b3BPYnNlcnZpbmdDaGFuZ2VzKHR5cGVzKTsKK30KKwordm9pZCBX
S09yaWdpbkRhdGFNYW5hZ2VyU2V0Q2hhbmdlQ2xpZW50KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYg
b3JpZ2luRGF0YU1hbmFnZXJSZWYsIGNvbnN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGll
bnQgKmNsaWVudCkKK3sKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5zZXRDaGFu
Z2VDbGllbnQoY2xpZW50KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjIxMDA1NGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdLT3JpZ2luRGF0YU1hbmFnZXJfaAorI2RlZmluZSBXS09yaWdpbkRhdGFN
YW5hZ2VyX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVz
cGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworZW51bSB7CisgICAga1dLQXBwbGljYXRpb25D
YWNoZU9yaWdpbkRhdGEgPSAxIDw8IDAsCisgICAga1dLQ29va2llT3JpZ2luRGF0YSA9IDEgPDwg
MSwKKyAgICBrV0tEYXRhYmFzZU9yaWdpbkRhdGEgPSAxIDw8IDIsCisgICAga1dLS2V5VmFsdWVT
dG9yYWdlT3JpZ2luRGF0YSA9IDEgPDwgMywKKyAgICBrV0tNZWRpYUNhY2hlT3JpZ2luRGF0YSA9
IDEgPDwgNCwKKyAgICBrV0tQbHVnaW5EYXRhT3JpZ2luRGF0YSA9IDEgPDwgNSwKKyAgICBrV0tS
ZXNvdXJjZUNhY2hlT3JpZ2luRGF0YSA9IDEgPDwgNiwKKworICAgIGtXS0FsbE9yaWdpbkRhdGEg
PSAoMSA8PCA3KSAtIDEKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLT3JpZ2luRGF0YVR5cGVzOwor
CitXS19FWFBPUlQgV0tUeXBlSUQgV0tPcmlnaW5EYXRhTWFuYWdlckdldFR5cGVJRCgpOworCit0
eXBlZGVmIHZvaWQgKCpXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2luc0Z1bmN0aW9uKShXS0Fy
cmF5UmVmLCBXS0Vycm9yUmVmLCB2b2lkKik7CitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFN
YW5hZ2VyR2V0T3JpZ2lucyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2Vy
LCBXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywgdm9pZCogY29udGV4dCwgV0tPcmlnaW5EYXRhTWFu
YWdlckdldE9yaWdpbnNGdW5jdGlvbiBmdW5jdGlvbik7CisKK1dLX0VYUE9SVCB2b2lkIFdLT3Jp
Z2luRGF0YU1hbmFnZXJEZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2luRGF0YU1hbmFnZXJS
ZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzLCBXS1NlY3VyaXR5
T3JpZ2luUmVmIG9yaWdpbik7CitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyRGVs
ZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBX
S09yaWdpbkRhdGFUeXBlcyB0eXBlcyk7CisKKy8vIE9yaWdpbkRhdGFNYW5hZ2VyIENsaWVudAor
dHlwZWRlZiB2b2lkICgqV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNhbGxiYWNrKShXS09yaWdp
bkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKK3N0cnVjdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50IHsKKyAgICBpbnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAg
ICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CisgICAgV0tPcmlnaW5EYXRhTWFuYWdl
ckNoYW5nZUNhbGxiYWNrICAgZGlkQ2hhbmdlOworfTsKK3R5cGVkZWYgc3RydWN0IFdLT3JpZ2lu
RGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudDsK
KworZW51bSB7IGtXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50VmVyc2lvbiA9IDAgfTsK
KworV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ2hhbmdl
cyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFU
eXBlcyB0eXBlcyk7CitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3RvcE9ic2Vy
dmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tP
cmlnaW5EYXRhVHlwZXMgdHlwZXMpOworV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFuYWdl
clNldENoYW5nZUNsaWVudChXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5nZXIs
IGNvbnN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQqIGNsaWVudCk7CisjaWZkZWYg
X19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tPcmlnaW5EYXRhTWFuYWdlcl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNkZjYxZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDE1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lmgi
CisKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0
LmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlNlY3Vy
aXR5T3JpZ2luLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjb25zdCBjaGFyKiBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5OjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5IjsKK30KKworUGFzc1JlZlB0cjxXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5PiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCog
Y29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHkoY29udGV4dCkpOworfQorCitXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCis6IFdlYkNvbnRleHRTdXBw
bGVtZW50KGNvbnRleHQpCit7CisgICAgY29udGV4dC0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRo
aXMpOworfQorCitXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojp+V2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eSgpCit7Cit9CisKKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpjb250
ZXh0RGVzdHJveWVkKCkKK3sKKyAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJheUNhbGxi
YWNrcyk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6cHJvY2Vzc0RpZENs
b3NlKFdlYlByb2Nlc3NQcm94eSopCit7CisgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fYXJy
YXlDYWxsYmFja3MpOworfQorCitib29sIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNob3Vs
ZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKSBjb25zdAoreworICAgIHJldHVybiBtX2FycmF5
Q2FsbGJhY2tzLmlzRW1wdHkoKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
OjpyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpCit7CisgICAgQVBJT2JqZWN0OjpyZWYoKTsKK30K
Kwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZXJlZldlYkNvbnRleHRTdXBwbGVt
ZW50KCkKK3sKKyAgICBBUElPYmplY3Q6OmRlcmVmKCk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eTo6Z2V0T3JpZ2lucyhXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywgUGFzc1Jl
ZlB0cjxBcnJheUNhbGxiYWNrPiBwcnBDYWxsYmFjaykKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0g
cHJwQ2FsbGJhY2s7CisKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxi
YWNrSUQoKTsKKyAgICBtX2FycmF5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5y
ZWxlYXNlKCkpOworCisgICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nlc3MpOiA8cmRhcjovL3By
b2JsZW0vMTIyMzk3NjU+IE1ha2UgbWFuaXB1bGF0aW5nIGNhY2hlIGluZm9ybWF0aW9uIHdvcmsg
d2l0aCBwZXItdGFiIFdlYlByb2Nlc3MuCisgICAgY29udGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNz
ZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFn
ZXI6OkdldE9yaWdpbnModHlwZXMsIGNhbGxiYWNrSUQpKTsKK30KKwordm9pZCBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5OjpkaWRHZXRPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdp
bkRhdGE+JiBvcmlnaW5EYXRhcywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBSZWZQdHI8
QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBtX2FycmF5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJ
RCk7CisgICAgcGVyZm9ybUFQSUNhbGxiYWNrV2l0aFNlY3VyaXR5T3JpZ2luRGF0YVZlY3Rvcihv
cmlnaW5EYXRhcywgY2FsbGJhY2suZ2V0KCkpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMs
IFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbkRhdGE7
CisgICAgc2VjdXJpdHlPcmlnaW5EYXRhLnByb3RvY29sID0gb3JpZ2luLT5wcm90b2NvbCgpOwor
ICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5ob3N0ID0gb3JpZ2luLT5ob3N0KCk7CisgICAgc2VjdXJp
dHlPcmlnaW5EYXRhLnBvcnQgPSBvcmlnaW4tPnBvcnQoKTsKKworICAgIC8vIEZJWE1FIChNdWx0
aS1XZWJQcm9jZXNzKTogPHJkYXI6Ly9wcm9ibGVtLzEyMjM5NzY1PiBNYWtlIG1hbmlwdWxhdGlu
ZyBjYWNoZSBpbmZvcm1hdGlvbiB3b3JrIHdpdGggcGVyLXRhYiBXZWJQcm9jZXNzLgorICAgIGNv
bnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVz
c2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpEZWxldGVFbnRyaWVzRm9yT3JpZ2luKHR5cGVz
LCBzZWN1cml0eU9yaWdpbkRhdGEpKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5OjpkZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKQoreworICAgIGlm
ICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRSAoTXVsdGktV2Vi
UHJvY2Vzcyk6IDxyZGFyOi8vcHJvYmxlbS8xMjIzOTc2NT4gTWFrZSBtYW5pcHVsYXRpbmcgY2Fj
aGUgaW5mb3JtYXRpb24gd29yayB3aXRoIHBlci10YWIgV2ViUHJvY2Vzcy4KKyAgICBjb250ZXh0
KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2Vz
OjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6RGVsZXRlQWxsRW50cmllcyh0eXBlcykpOworfQorCit2
b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09y
aWdpbkRhdGFUeXBlcyB0eXBlcykKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgY29udGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1J
Zk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OlN0YXJ0T2JzZXJ2aW5n
Q2hhbmdlcyh0eXBlcykpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0
b3BPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKQoreworICAgIGlmICgh
Y29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFBy
b2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRh
TWFuYWdlcjo6U3RhcnRPYnNlcnZpbmdDaGFuZ2VzKHR5cGVzKSk7Cit9CisKK3ZvaWQgV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eTo6c2V0Q2hhbmdlQ2xpZW50KGNvbnN0IFdLT3JpZ2luRGF0YU1h
bmFnZXJDaGFuZ2VDbGllbnQgKmNsaWVudCkKK3sKKyAgICBtX2NsaWVudC5pbml0aWFsaXplKGNs
aWVudCk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkQ2hhbmdlKCkK
K3sKKyAgICBtX2NsaWVudC5kaWRDaGFuZ2UodGhpcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGRiNzQwZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiR2VuZXJpY0Nh
bGxiYWNrLmgiCisjaW5jbHVkZSAiSW1tdXRhYmxlQXJyYXkuaCIKKyNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXS09yaWdpbkRhdGFNYW5hZ2VyLmgiCisjaW5jbHVkZSAi
V2ViQ29udGV4dFN1cHBsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5Q2hhbmdlQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgQ29y
ZUlQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViU2VjdXJpdHlPcmlnaW47CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworCit0eXBl
ZGVmIEdlbmVyaWNDYWxsYmFjazxXS0FycmF5UmVmPiBBcnJheUNhbGxiYWNrOworCitjbGFzcyBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVj
dDo6VHlwZU9yaWdpbkRhdGFNYW5hZ2VyPiwgcHVibGljIFdlYkNvbnRleHRTdXBwbGVtZW50LCBw
cml2YXRlIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIGNv
bnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5PiBjcmVhdGUoV2ViQ29udGV4dCopOworICAgIHZpcnR1YWwg
fldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkoKTsKKworICAgIHZvaWQgZ2V0T3JpZ2lucyhXS09y
aWdpbkRhdGFUeXBlcywgUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPik7CisgICAgdm9pZCBkZWxl
dGVFbnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2luRGF0YVR5cGVzLCBXZWJTZWN1cml0eU9yaWdpbiop
OworICAgIHZvaWQgZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFUeXBlcyk7CisKKyAgICB2
b2lkIHN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFUeXBlcyk7CisgICAgdm9pZCBz
dG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFUeXBlcyk7CisgICAgdm9pZCBzZXRDaGFu
Z2VDbGllbnQoY29uc3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCopOworCisgICAg
dXNpbmcgQVBJT2JqZWN0OjpyZWY7CisgICAgdXNpbmcgQVBJT2JqZWN0OjpkZXJlZjsKKworcHJp
dmF0ZToKKyAgICBleHBsaWNpdCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KFdlYkNvbnRleHQq
KTsKKworICAgIHZvaWQgZGlkR2V0T3JpZ2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5E
YXRhPiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZGlkQ2hhbmdlKCk7CisKKyAg
ICAvLyBXZWJDb250ZXh0U3VwcGxlbWVudAorICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJv
eWVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShXZWJQcm9j
ZXNzUHJveHkqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKFdl
YlByb2Nlc3NQcm94eSopIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWZXZWJD
b250ZXh0U3VwcGxlbWVudCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZldlYkNv
bnRleHRTdXBwbGVtZW50KCkgT1ZFUlJJREU7CisKKyAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisKKyAgICBIYXNoTWFw
PHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4+IG1fYXJyYXlDYWxsYmFja3M7CisKKyAg
ICBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50IG1fY2xpZW50OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNzZkNzZiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEs
MjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
IyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMg
LT4gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSB7CisgICAgRGlkR2V0T3JpZ2lucyhWZWN0b3I8
V2ViS2l0OjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbklkZW50aWZpZXJzLCB1aW50NjRfdCBj
YWxsYmFja0lEKTsKKyAgICBEaWRDaGFuZ2UoKQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VD
bGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2NjAxYTkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
Q2hhbmdlQ2xpZW50LmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudDo6ZGlk
Q2hhbmdlKFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkqIG9yaWdpbkRhdGFNYW5hZ2VyKQorewor
ICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Ns
aWVudC5kaWRDaGFuZ2UodG9BUEkob3JpZ2luRGF0YU1hbmFnZXIpLCBtX2NsaWVudC5jbGllbnRJ
bmZvKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VD
bGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTc2N2NkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlDaGFuZ2VDbGllbnQuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50X2gKKyNkZWZpbmUgV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudF9oCisKKyNpbmNsdWRlICJBUElDbGll
bnQuaCIKKyNpbmNsdWRlICJXS09yaWdpbkRhdGFNYW5hZ2VyLmgiCisjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk7CisKK2NsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQg
OiBwdWJsaWMgQVBJQ2xpZW50PFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQsIGtXS09y
aWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50VmVyc2lvbj4geworcHVibGljOgorICAgIHZvaWQg
ZGlkQ2hhbmdlKFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkqKTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNs
aWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMGZlNjI4MS4uNDJkYWYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTgyLDYgKzU4MiwyMCBAQAogCQk2
RUU4NDlDODEzNjhEOTM5MDAzOEQ0ODEgLyogV0tJbnNwZWN0b3JQcml2YXRlTWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUU4NDlDNjEzNjhEOTJE
MDAzOEQ0ODEgLyogV0tJbnNwZWN0b3JQcml2YXRlTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI4RTg2RjExNzk1MTg4QzAwODc4NzlFIC8q
IFdlYkNvbG9yUGlja2VyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3MjhFODZFRjE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMu
aCAqLzsgfTsKIAkJNzI4RTg2RjIxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFj
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI4RTg2
RjAxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLm1tICovOyB9OworCQk3NTU0
MjJCQjE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gQ29weSBG
aWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJCOTE4MDYyQjlD
MDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgKi87IH07CisJCTc1NTQyMkJDMTgw
NjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggaW4gQ29weSBGaWxlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJCQTE4MDYyQjlDMDA0NkY2QTgg
LyogV0tPcmlnaW5EYXRhTWFuYWdlci5oICovOyB9OworCQk3NTU0MjJCRDE4MDYyQkIyMDA0NkY2
QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJCOTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5E
YXRhTWFuYWdlci5jcHAgKi87IH07CisJCTc1NTQyMkMzMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGluIENvcHkgRmlsZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQzAxODA2MkJFNDAwNDZGNkE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi87IH07CisJCTc1NTQyMkM0MTgw
NjJCRjkwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkJFMTgwNjJCRTQwMDQ2
RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCAqLzsgfTsKKwkJNzU1NDIyQ0Ix
ODA2NTAwMjAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkM2MTgwNjRGRkMwMDQ2RjZB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAgKi87IH07CisJCTc1NTQyMkNDMTgwNzczQ0Uw
MDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQzcxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyLmggKi87IH07CisJCTc1OUNDRDU4MTgwOEYxNjQwMDc4RThBOCAvKiBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1OUNDRDU0MTgwOEYxNjAwMDc4RThBOCAv
KiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCAqLzsgfTsKKwkJNzU5
Q0NENTkxODA4RjE2OTAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1
OUNDRDU1MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdl
Q2xpZW50LmggKi87IH07CisJCTc1OUNDRDVBMTgwOEY2MTYwMDc4RThBOCAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3NTU0MjJCRjE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eS5oICovOyB9OworCQk3NUU3NDlFOTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzVFNzQ5RTUxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJNzVFNzQ5RUExODBEQkI5ODAw
MDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU2MTgwREJCOTgwMDA4OEJBNiAv
KiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCTc1RTc0OUVCMTgwREJC
OTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU3
MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKKwkJNzVFNzQ5RUMxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzVFNzQ5RTgxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQk3NjJCNzQ4RDEyMEJDNzVDMDA4MTkzMzkg
LyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc2MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTc4MDFDMDk5MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc4MDFDMDk1MTQyMjkw
QzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNwcCAqLzsgfTsKIAkJNzgwMUMwOUExNDIy
OTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc4MDFDMDk2MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJI
aXRUZXN0UmVzdWx0LmggKi87IH07CkBAIC0xMzQ4LDkgKzEzNjIsMTIgQEAKIAkJCWRzdFN1YmZv
bGRlclNwZWMgPSAxOwogCQkJZmlsZXMgPSAoCiAJCQkJNTEwQ0M4NDkxNjEzQzg1QzAwRDAzRUQz
IC8qIE5ldHdvcmtQcm9jZXNzLmFwcCBpbiBDb3B5IEZpbGVzICovLAorCQkJCTc1NTQyMkJDMTgw
NjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggaW4gQ29weSBGaWxlcyAqLywK
IAkJCQlCQ0RFMEFCRjEzMjcyNzA4MDAxMjU5RkIgLyogUGx1Z2luUHJvY2Vzcy5hcHAgaW4gQ29w
eSBGaWxlcyAqLywKIAkJCQk1MUE2MEIyQTE4MENDRUI1MDBGM0JGNTAgLyogRGF0YWJhc2VQcm9j
ZXNzLmFwcCBpbiBDb3B5IEZpbGVzICovLAorCQkJCTc1NTQyMkMzMTgwNjJCRTQwMDQ2RjZBOCAv
KiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGluIENvcHkgRmlsZXMgKi8s
CiAJCQkJMUE1MERCNjYxMTBBM0Q1NzAwMEQzRkU1IC8qIFdlYlByb2Nlc3MuYXBwIGluIENvcHkg
RmlsZXMgKi8sCisJCQkJNzU1NDIyQkIxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1h
bmFnZXIuY3BwIGluIENvcHkgRmlsZXMgKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJDb3B5IEZpbGVz
IjsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAtMjAyNiw2
ICsyMDQzLDIwIEBACiAJCTZFRTg0OUM2MTM2OEQ5MkQwMDM4RDQ4MSAvKiBXS0luc3BlY3RvclBy
aXZhdGVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tJbnNwZWN0b3JQ
cml2YXRlTWFjLmg7IHBhdGggPSBtYWMvV0tJbnNwZWN0b3JQcml2YXRlTWFjLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4NkVGMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xv
clBpY2tlck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvclBp
Y2tlck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjhFODZGMDE3OTUxODhD
MDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXZWJDb2xvclBpY2tlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzU1NDIyQjkxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFn
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tPcmlnaW5EYXRh
TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkJBMTgwNjJC
OUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLT3JpZ2luRGF0YU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQy
MkJGMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQzAxODA2MkJFNDAwNDZGNkE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYk9y
aWdpbkRhdGFNYW5hZ2VyLmNwcDsgcGF0aCA9IE9yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDNzE4MDY0RkZDMDA0
NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIuaDsgcGF0aCA9IE9yaWdpbkRhdGEvV2ViT3Jp
Z2luRGF0YU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQzgx
ODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgbmFtZSA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOyBwYXRo
ID0gT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU5Q0NENTQxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1OUNDRDU1MTgwOEYxNjAwMDc4RThBOCAv
KiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVFNzQ5RTUxODBEQkI5ODAwMDg4QkE2
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVFNzQ5RTYxODBEQkI5ODAw
MDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3NUU3NDlFNzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVFNzQ5RTgxODBEQkI5ODAw
MDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzYyQjc0ODExMjBCQkEwMTAwODE5MzM5
IC8qIEZvbnRTbW9vdGhpbmdMZXZlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGb250U21vb3RoaW5nTGV2ZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzYy
Qjc0ODQxMjBCQkEyRDAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJlZmVyZW5jZXNQcml2YXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc4MDFDMDk1MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRU
ZXN0UmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkhp
dFRlc3RSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzgzNSw2ICsz
ODY2LDE2IEBACiAJCQluYW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJ
fTsKKwkJNzU1NDIyQzUxODA2NEZGQzAwNDZGNkE4IC8qIE9yaWdpbkRhdGEgKi8gPSB7CisJCQlp
c2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTc1NTQyMkM2MTgwNjRGRkMwMDQ2
RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAgKi8sCisJCQkJNzU1NDIyQzcxODA2NEZG
QzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggKi8sCisJCQkJNzU1NDIyQzgxODA2
NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJ
KTsKKwkJCW5hbWUgPSBPcmlnaW5EYXRhOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKIAkJN0NCMTZGRTExNzI0QjlCNTAwN0EwQTk1IC8qIFBsdWdJblNhbmRib3hQcm9maWxlcyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0zODg0LDYgKzM5
MjUsNyBAQAogCQlCQzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNzU1NDIyQzUxODA2NEZG
QzAwNDZGNkE4IC8qIE9yaWdpbkRhdGEgKi8sCiAJCQkJNTEyRTM1MkExMzBCNTU5OTAwQUJEMTlB
IC8qIEFwcGxpY2F0aW9uQ2FjaGUgKi8sCiAJCQkJMzMwOTM0NEIxMzE1QjkzQTAwOTdBN0JDIC8q
IENvb2tpZXMgKi8sCiAJCQkJNTEyQTk3NTQxODBERjkyNzAwMzlBMTQ5IC8qIERhdGFiYXNlcyAq
LywKQEAgLTQxMTQsNiArNDE1NiwxMSBAQAogCQkJCUJDRjY5RkEwMTE3NkQwMTQwMDQ3MUE1MiAv
KiBXZWJOYXZpZ2F0aW9uRGF0YS5oICovLAogCQkJCUJDMURGRUEzMTJCMzFGODcwMDVERjczMCAv
KiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCAqLywKIAkJCQlCQzFERkVBMjEy
QjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oICovLAor
CQkJCTc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
LmNwcCAqLywKKwkJCQk3NTU0MjJCRjE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5oICovLAorCQkJCTc1NTQyMkMwMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTc1OUNDRDU0MTgwOEYxNjAw
MDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCAqLywK
KwkJCQk3NTlDQ0Q1NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eUNoYW5nZUNsaWVudC5oICovLAogCQkJCTUxNTM1NjlBMTI5MUIxRDIwMDA3NDlEQyAvKiBXZWJQ
YWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovLAogCQkJCTUxNTM1NjlCMTI5MUIxRDIwMDA3NDlE
QyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLywKIAkJCQlCQzdCNjIwNTEyOUEwQTY3
MDBEMTc0QTQgLyogV2ViUGFnZUdyb3VwLmNwcCAqLywKQEAgLTQyMTcsNiArNDI2NCw4IEBACiAJ
CQkJQkM4NTdGRTQxMkI4NDNEODAwRURFQjJFIC8qIFdLT3BlblBhbmVsUGFyYW1ldGVycy5oICov
LAogCQkJCUJDMURGRThFMTJCMzFDQTgwMDVERjczMCAvKiBXS09wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyLmNwcCAqLywKIAkJCQlCQzFERkU4RDEyQjMxQ0E4MDA1REY3MzAgLyogV0tPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lci5oICovLAorCQkJCTc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09y
aWdpbkRhdGFNYW5hZ2VyLmNwcCAqLywKKwkJCQk3NTU0MjJCQTE4MDYyQjlDMDA0NkY2QTggLyog
V0tPcmlnaW5EYXRhTWFuYWdlci5oICovLAogCQkJCUJDRDU5N0Q0MTEyQjU2REMwMEVDOEMyMyAv
KiBXS1BhZ2UuY3BwICovLAogCQkJCUJDRDU5N0Q1MTEyQjU2REMwMEVDOEMyMyAvKiBXS1BhZ2Uu
aCAqLywKIAkJCQlCQzdCNjMzNjEyQTQ1QUJBMDBEMTc0QTQgLyogV0tQYWdlR3JvdXAuY3BwICov
LApAQCAtNDkyNyw2ICs0OTc2LDEwIEBACiAJCUMwQ0U3MjlEMTI0N0U3MUQwMEJDMEVDNCAvKiBE
ZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCTc1RTc0OUU1MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNzVFNzQ5RTYxODBEQkI5ODAwMDg4QkE2IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk3NUU3NDlFNzE4MERCQjk4MDAw
ODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CisJCQkJNzVFNzQ5RTgxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oICovLAogCQkJCTUxMkY1OEEwMTJBODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50
aWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTUxMkY1OEExMTJBODgz
QUQwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCUUx
N0FFMkMyMTZCOUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNz
LnNiICovLApAQCAtNTQwMCw5ICs1NDUzLDExIEBACiAJCQkJQkNERTA1OUIxMUNEQThBRTAwRTQx
QUYxIC8qIFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTE4NzFCNUMxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzAzMkQ3NzEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ29udGV4dE1lbnVDbGll
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1RTc0OUVDMTgwREJCOTgwMDA4OEJBNiAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjkz
NUQ4MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxMEZCQjlCMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRh
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUFDQkI4MjEyN0E4QkFEMDBEMjAzQjkgLyogV2ViQ29u
dGV4dE1lbnVQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzVFNzQ5RUExODBEQkI5ODAwMDg4
QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxQUNCQkEwMTI3QThGMkMwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVByb3h5TWFjLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0NCNzVDNjEyMDNBMUNFMDAyMjJEMUIgLyogV2ViQ29udGV4dE1l
c3NhZ2VLaW5kcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFRTdEMEUxMjg0NkY2OTAwOTgyN0RB
IC8qIFdlYkNvbnRleHRNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC01NjYzLDYgKzU3MTgs
NyBAQAogCQkJCUJDRERCMzJCMTI0RUMyQUIwMDQ4RDEzQyAvKiBXS1NoYXJlZEFQSUNhc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDNDA3NjA2MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1N0cmluZy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MUExMjRGRjAzNzAwNjhGMjBBIC8qIFdLU3RyaW5n
Q0YuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1OUNDRDU5MTgwOEYxNjkwMDc4RThBOCAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzkwOTk4MDEyNTZBOTgyMDAwODM3NTYgLyogV0tTdHJpbmdQcml2YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzNzdFQUQ0ODE3RTJDNzdCMDAyRDE5M0QgLyogV0tVc2VyQ29udGVudEluamVjdGVk
RnJhbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRBOUFBODEyQjdFNzk2MDA4RkU5ODQgLyog
V0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTU2NzMsMTEg
KzU3MjksMTMgQEAKIAkJCQlCQzQwNzYwQzEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkxSZXF1ZXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYyOTEyNEZGMDQwMDA2OEYyMEEgLyogV0tVUkxS
ZXF1ZXN0TlMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjBFMTI0RkYwMjcwMDY4RjIwQSAv
KiBXS1VSTFJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTlDQ0Q1QTE4MDhGNjE2MDA3
OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM0MDc2MkIxMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2VOUy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRjYxMTNFMjkxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0
ZXJuLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNTExNkFBREFBMDAyQTkyNUIgLyogV0tW
aWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNzExNkFBREFBMDAyQTkyNUIgLyogV0tW
aWV3SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJGQTYxNzlGMTJGMEI5OUQwMDMzRTBD
QSAvKiBXS1ZpZXdQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTU0MjJDQzE4MDc3M0NF
MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1
RTFBRkU5MTZCMjBCNzUwMDZDQzFGMiAvKiBXS1dlYkFyY2hpdmUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUM1RTFBRkVCMTZCMjBCN0UwMDZDQzFGMiAvKiBXS1dlYkFyY2hpdmVSZXNvdXJjZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM5ODlEODIxNjFBN0U1RDAwMEQ0NkQzIC8qIFdLV2ViUHJvY2Vz
c1BsdWdJbi5oIGluIEhlYWRlcnMgKi8sCkBAIC02NDc4LDYgKzY1MzYsNyBAQAogCQkJCUJDRUU3
REM2MTI4QjY0NUQwMDk4MjdEQSAvKiBJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MUZBMkQ3NDE1MjEyREYxMDBDMUJBMEIgLyogSW5qZWN0ZWRCdW5kbGVET01X
aW5kb3dFeHRlbnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0OTg2MTkxMjREMTBFMjAw
RDgzNEUxIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk3NUU3NDlFOTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyMDRFRTYxMUM4M0VBOTAwOEYz
Mzc1IC8qIEluamVjdGVkQnVuZGxlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4MTQ3RDYx
MkY2NkQzMTAwN0IyQzMyIC8qIEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzRCRUVBQzEyMEEwQTVGMDBGQkEwQzcgLyogSW5qZWN0ZWRCdW5k
bGVOb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjQ4Niw2ICs2NTQ1LDcgQEAKIAkJ
CQlFMUVFNTNFNzExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTRFMTA5MTIwQjkwNUUwMDgyNkMwQyAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENUM2
NkEwMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1NTQyMkNCMTgwNjUwMDIwMDQ2RjZBOCAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0E4QzZBODExRTNCQTVG
MDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDODE0N0FBMTJGNjRDREEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VQ
b2xpY3lDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU5QzU1MUUxMzAwMDY0MTAwMjVD
MEMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTY1OTYsNiArNjY1Niw3IEBACiAJCQkJMUEwNDNCNUQxMjRENUU5RDAwRkZCRkI1
IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQTA0M0RDMjEyNEZGODc1MDBGRkJGQjUgLyogUGx1Z2luUHJveHkuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUEyRDkyMjExMjgxREMxQjAwMUVCOTYyIC8qIFBsdWdpblByb3h5TWFjLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJNzU1NDIyQzQxODA2MkJGOTAwNDZGNkE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE4RUZBNzAxMjUyQjg0
MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdDRDYyMjc3MTczOUQ4NjMwMDVCRDdGRiAvKiBQbHVnaW5TYW5kYm94UHJvZmlsZS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUJDODI4NDREMTZCNTA4MUMwMEEyNzhGRSAvKiBQbHVnaW5T
ZXJ2aWNlRW50cnlQb2ludC5tbSBpbiBTb3VyY2VzICovLApAQCAtNjcxNyw2ICs2Nzc4LDcgQEAK
IAkJCQlCQ0I5RjZBMTExMjNBODRCMDBBMTM3RTAgLyogV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclBy
b3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQjBFMTEyRjVFNEYwMDMzN0JBQiAvKiBX
ZWJGcmFtZVByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENzNCQTUzMTMxQjY0NUIwMEVF
REVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTU0
MjJCRDE4MDYyQkIyMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDRDczQkE0RTEzMUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q2Rjc1RjQxMzFCNjZE
MDAwRDZCMjFFIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0RDQTg1RUUxMzJBRDcwMTAwRTk2MURGIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlNYWMubW0gaW4gU291cmNlcyAqLywKQEAgLTY3OTYsNiArNjg1OCw3IEBACiAJCQkJMUEwNDNB
MEExMjREMTFBOTAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBMDQzRjY5MTI1MTREOEIwMEZGQkZCNSAvKiBXZWJQcm9jZXNzQ29ubmVjdGlv
bk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzMwNjgyNTEyNUE2Qjk0
MDBFNzEyNzggLyogV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk3NUU3NDlFQjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzMwNjVDNDEyNTky
Rjg5MDBFNzEyNzggLyogV2ViUHJvY2Vzc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDMzA2
NkJFMTI1QTQ0MjEwMEU3MTI3OCAvKiBXZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDMTExQjExMTEyRjVFNEYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02ODU5LDYgKzY5MjIsNyBAQAogCQkJCTlGQjVGMzk0
MTY5RTZBODAwMDJDMjVCRiAvKiBXS0NvbnRleHRQcml2YXRlTWFjLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzMwOTM0NUExMzE1Qjk5ODAwOTdBN0JDIC8qIFdLQ29va2llTWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MTJGNThGOTEyQTg4QTU0MDA2Mjk1MzAgLyogV0tDcmVkZW50aWFs
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1OUNDRDU4MTgwOEYxNjQwMDc4RThBOCAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDNDA3NUY3MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRjYyQTc2NjExMkIxQUJFRDAwMDVGMUI2IC8qIFdLRGF0YWJhc2VNYW5hZ2VyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxN0RENUMyMTgwREI3QjcwMDgxNjYwQiAvKiBEYXRhYmFzZVByb2Nl
c3NNYWMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2ZjEzNjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIu
Y3BwCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJDaGls
ZFByb2Nlc3MuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlck1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U2VjdXJpdHlPcmlnaW5IYXNoLmg+CisKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NvbnN0IGNoYXIq
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJX
ZWJPcmlnaW5EYXRhTWFuYWdlciI7Cit9CisKK1dlYk9yaWdpbkRhdGFNYW5hZ2VyOjpXZWJPcmln
aW5EYXRhTWFuYWdlcihDaGlsZFByb2Nlc3MqIGNoaWxkUHJvY2VzcykKKyAgICA6IG1fY2hpbGRQ
cm9jZXNzKGNoaWxkUHJvY2VzcykKK3sKKyAgICBtX2NoaWxkUHJvY2Vzcy0+YWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCB0aGlzKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6Z2V0T3JpZ2lucyhX
S09yaWdpbkRhdGFUeXBlcyB0eXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBIYXNo
U2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnM7CisKKyAgICAvLyBGSVhNRTogcG9w
dWxhdGUgb3JpZ2lucworCisgICAgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gaWRlbnRpZmll
cnM7CisgICAgaWRlbnRpZmllcnMucmVzZXJ2ZUNhcGFjaXR5KG9yaWdpbnMuc2l6ZSgpKTsKKwor
ICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj46Oml0ZXJhdG9yIGVuZCA9IG9yaWdp
bnMuZW5kKCk7CisgICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+Pjo6aXRlcmF0b3Ig
aSA9IG9yaWdpbnMuYmVnaW4oKTsKKyAgICBmb3IgKDsgaSAhPSBlbmQ7ICsraSkgeworICAgICAg
ICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9ICppOworCisgICAgICAgIFNlY3VyaXR5
T3JpZ2luRGF0YSBvcmlnaW5EYXRhOworICAgICAgICBvcmlnaW5EYXRhLnByb3RvY29sID0gb3Jp
Z2luLT5wcm90b2NvbCgpOworICAgICAgICBvcmlnaW5EYXRhLmhvc3QgPSBvcmlnaW4tPmhvc3Qo
KTsKKyAgICAgICAgb3JpZ2luRGF0YS5wb3J0ID0gb3JpZ2luLT5wb3J0KCk7CisKKyAgICAgICAg
aWRlbnRpZmllcnMudW5jaGVja2VkQXBwZW5kKG9yaWdpbkRhdGEpOworICAgIH0KKworICAgIG1f
Y2hpbGRQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpE
aWRHZXRPcmlnaW5zKGlkZW50aWZpZXJzLCBjYWxsYmFja0lEKSwgMCk7Cit9CisKK3ZvaWQgV2Vi
T3JpZ2luRGF0YU1hbmFnZXI6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhVHlw
ZXMgdHlwZXMsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luRGF0YSkKK3sKKyAgICBS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUob3Jp
Z2luRGF0YS5wcm90b2NvbCwgb3JpZ2luRGF0YS5ob3N0LCBvcmlnaW5EYXRhLnBvcnQpOworICAg
IGlmICghb3JpZ2luKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogZGVsZXRlIGNh
Y2hlCit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXI6OmRlbGV0ZUFsbEVudHJpZXMoV0tP
cmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgLy8gRklYTUU6IGRlbGV0ZSBlbnRyaWVzCit9
CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09y
aWdpbkRhdGFUeXBlcyB0eXBlcykKK3sKKyAgICAvLyBGSVhNRTogc3RhcnQgb2JzZXJ2aW5nIGNo
YW5nZXMKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6c3RvcE9ic2VydmluZ0NoYW5n
ZXMoV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgLy8gRklYTUU6IHN0b3Agb2JzZXJ2
aW5nIGNoYW5nZXMKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4ZWE1MTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2lu
RGF0YU1hbmFnZXIuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXZWJPcmlnaW5EYXRhTWFuYWdlcl9oCisjZGVmaW5lIFdlYk9yaWdpbkRhdGFNYW5hZ2VyX2gK
KworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldLT3JpZ2luRGF0YU1h
bmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzU3VwcGxlbWVudC5oIgorI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ2hpbGRQcm9jZXNzOworc3RydWN0IFNlY3VyaXR5T3Jp
Z2luRGF0YTsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vz
c1N1cHBsZW1lbnQsIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFdlYk9yaWdpbkRhdGFNYW5hZ2VyKTsKK3B1YmxpYzoKKyAgICBXZWJP
cmlnaW5EYXRhTWFuYWdlcihDaGlsZFByb2Nlc3MqKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgdm9pZCBkZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2lu
RGF0YVR5cGVzKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGdldE9yaWdpbnMoV0tPcmlnaW5EYXRh
VHlwZXMsIHVpbnQ2NF90KTsKKyAgICB2b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmln
aW5EYXRhVHlwZXMsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOworICAgIHZvaWQgc3RhcnRP
YnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5cGVzKTsKKyAgICB2b2lkIHN0b3BPYnNlcnZp
bmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5cGVzKTsKKworICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VS
ZWNlaXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKworICAgIENoaWxk
UHJvY2VzcyogbV9jaGlsZFByb2Nlc3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIFdlYk9yaWdpbkRhdGFNYW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFu
YWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTRl
NjM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5E
YXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjkgQEAKKyMg
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViT3Jp
Z2luRGF0YU1hbmFnZXIgeworICAgIHZvaWQgR2V0T3JpZ2lucyh1aW50MzJfdCB0eXBlcywgdWlu
dDY0X3QgY2FsbGJhY2tJRCkKKyAgICB2b2lkIERlbGV0ZUVudHJpZXNGb3JPcmlnaW4odWludDMy
X3QgdHlwZXMsIFdlYktpdDo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbklkZW50aWZpZXIpCisg
ICAgdm9pZCBEZWxldGVBbGxFbnRyaWVzKHVpbnQzMl90IHR5cGVzKQorICAgIHZvaWQgU3RhcnRP
YnNlcnZpbmdDaGFuZ2VzKHVpbnQzMl90IHR5cGVzKQorICAgIHZvaWQgU3RvcE9ic2VydmluZ0No
YW5nZXModWludDMyX3QgdHlwZXMpCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214337</attachid>
            <date>2013-10-15 20:30:13 -0700</date>
            <delta_ts>2013-10-16 11:32:54 -0700</delta_ts>
            <desc>Rebase patch</desc>
            <filename>122781j.diff</filename>
            <type>text/plain</type>
            <size>63200</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggOGY4NGFiNC4uMTA4ZDY1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTQ3LDYgKzQ3LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0xhdW5jaGluZyIKICAgICAiJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9NZWRpYUNhY2hlIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvT3JpZ2lu
RGF0YSIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zIgogICAgICIke1dF
QktJVDJfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSIKQEAgLTMwOCw2ICszMDksOCBAQCBzZXQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNw
cAogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vz
cy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1l
bnVDbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAKICAgICBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzU1LDYgKzM1OCw3IEBAIHNldChXZWJLaXQyX1NPVVJD
RVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5j
cHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcAorICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAKQEAgLTQ2Miw2ICs0NjYsOCBAQCBz
ZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKICAgICBXZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvT3JpZ2lu
RGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKKwogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW4uY3BwCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
LmNwcAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuY3BwCkBAIC01NTAsNiArNTU2LDcgQEAgc2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMK
ICAgICBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nl
c3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9X
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorICAgIFVJUHJvY2Vzcy9XZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtNTg3LDYgKzU5NCw4IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAg
ICBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdl
cy5pbgogCisgICAgV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1l
c3NhZ2VzLmluCisKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b3h5Lm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTY5YzA0ZC4uNGEyMjM1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTEwLTE1ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWZhY3RvciBzdG9yZWQgd2Vic2l0ZSBkYXRhIEFQSXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjc4MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJPcmlnaW5E
YXRhTWFuYWdlciBhbG9uZyB3aXRoIGNvcnJlc3BvbmRpbmcgY2xhc3MKKyAgICAgICAgV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eSBhbmQgQVBJIFdLT3JpZ2luRGF0YU1hbmFnZXIuCisKKyAgICAg
ICAgQ3VycmVudGx5LCB0aGUgbmV3IGZpbGVzIGFyZSB1bnVzZWQuCisKKyAgICAgICAgV0tPcmln
aW5EYXRhTWFuYWdlciBzaG91bGQgc3Vic3VtZSB0aGUgZnVuY3Rpb25hbGl0eSBvZjoKKyAgICAg
ICAgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciwgV0tDb29raWVNYW5hZ2VyLCBXS0RhdGFiYXNl
TWFuYWdlciwKKyAgICAgICAgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLCBXS01lZGlhQ2FjaGVN
YW5hZ2VyLAorICAgICAgICBXS1BsdWdpblNpdGVEYXRhTWFuYWdlciwgYW5kIFdLUmVzb3VyY2VD
YWNoZU1hbmFnZXIuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAg
ICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tB
UElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAg
ICAgIChXS0NvbnRleHRHZXRPcmlnaW5EYXRhTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRh
dGFNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyR2V0VHlw
ZUlEKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zKToKKyAgICAgICAg
KFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVFbnRyaWVzRm9yT3JpZ2luKToKKyAgICAgICAgKFdL
T3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0
YU1hbmFnZXJTdGFydE9ic2VydmluZ0NoYW5nZXMpOgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFu
YWdlclN0b3BPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFnZXJT
ZXRDaGFuZ2VDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFN
YW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eTo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6On5XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6Y29udGV4dERlc3Ryb3ll
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnByb2Nlc3NE
aWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNo
b3VsZFRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk6OnJlZldlYkNvbnRleHRTdXBwbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eTo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmdldE9yaWdpbnMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkaWRHZXRPcmlnaW5zKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVsZXRlRW50cmllc0Zvck9y
aWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlbGV0
ZUFsbEVudHJpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
OjpzdGFydE9ic2VydmluZ0NoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5OjpzdG9wT2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNldENoYW5nZUNsaWVudCk6CisgICAgICAgIChXZWJL
aXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRpZENoYW5nZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFu
Z2VDbGllbnQ6OmRpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9X
ZWJPcmlnaW5EYXRhTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmln
aW5EYXRhTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmln
aW5EYXRhTWFuYWdlcjo6V2ViT3JpZ2luRGF0YU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJPcmlnaW5EYXRhTWFuYWdlcjo6Z2V0T3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKToKKyAgICAgICAgKFdlYktp
dDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OmRlbGV0ZUFsbEVudHJpZXMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN0b3BPYnNlcnZpbmdDaGFuZ2VzKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuaDog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5h
Z2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKwogMjAxMy0xMC0xNSAgRGVhbiBKYWNrc29uICA8ZGlu
b0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIEVOQUJMRV9XRUJfQU5JTUFUSU9OUyBmbGFnCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA1NTUxNzRiLi5mMWZhMDc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM5LDYgKzM5LDcgQEAgVlBBVEggPSBcCiAgICAg
JChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9OZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyBc
CisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2ViS2l0Mikv
V2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VD
YWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXApAQCAtOTksNiArMTAw
LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViTWVkaWFDYWNoZU1hbmFnZXIgXAog
ICAgIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkgXAogICAgIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIgXAorICAgIFdlYk9yaWdpbkRhdGFNYW5hZ2VyIFwKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5IFwKICAgICBXZWJQYWdlIFwKICAgICBXZWJQYWdlR3JvdXBQcm94eSBcCiAgICAgV2Vi
UGFnZVByb3h5IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtIGIv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KaW5kZXggYjgyNWJjMy4uN2NhZDEwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktp
dDIvR05VbWFrZWZpbGUuYW0KQEAgLTE1NSw2ICsxNTUsNyBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJL
SVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xh
X0NQUAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZSBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyBcCiAJ
LUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKKwkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogCS1JJChz
cmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAJLUkkKHNy
Y2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKIAktSSQoc3JjZGlyKS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAgXApAQCAtMzgzLDYgKzM4NCw3IEBAIHZwYXRo
ICUubWVzc2FnZXMuaW4gPSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsgXAogCSQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMgXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKIAkk
KFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jl
c291cmNlQ2FjaGUgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKQEAgLTc0Niw2
ICs3NDgsNyBAQCBFWFRSQV9ESVNUICs9IFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9OZXR3b3JrLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9O
ZXR3b3JrSW5mby8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy8qLmluKSBcCisJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvT3Jp
Z2luRGF0YS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lu
cy8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFnZS8qLmlu
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwYzBlMDU2Li44YzRmZDBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTgzLDYgKzgzLDcgQEAgd2Via2l0Ml9o
X2FwaSArPSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92
aWRlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRl
cnMuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lci5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2Vy
LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmggXAogCSQoV2Vi
S2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VQcml2YXRlLmggXApAQCAtMjIzLDYgKzIyNCwxMCBAQCB3ZWJraXQyX2J1aWx0
X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTmV0d29ya0luZm9NYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQy
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggXAorCURlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1l
c3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUGFnZUdyb3VwUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlBhZ2VHcm91cFBy
b3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTY0MSw2ICs2NDYsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRlcnMu
aCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmln
aW5EYXRhTWFuYWdlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09y
aWdpbkRhdGFNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3Bw
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaCBcCkBAIC05
ODAsNiArOTg3LDEwIEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk5ldHdvcmtJbmZvUHJvdmlkZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIFwKKwlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAgXAorCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggXAorCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50
LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlDaGFuZ2VDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VDb250
ZXh0TWVudUNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlQ29u
dGV4dE1lbnVDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VHcm91
cC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDY5OTRjYmQuLjE5
N2FkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTExOSw2ICsxMTks
NyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0KiBXS05vdGlmaWNhdGlvblBlcm1pcwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tOb3RpZmljYXRpb25Qcm92aWRlciogV0tOb3RpZmljYXRpb25Qcm92aWRlclJlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLT3BlblBhbmVsUGFyYW1ldGVycyogV0tPcGVuUGFuZWxQ
YXJhbWV0ZXJzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lciogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZjsKK3R5cGVkZWYgY29uc3Qg
c3RydWN0IE9wYXF1ZVdLT3JpZ2luRGF0YU1hbmFnZXIqIFdLT3JpZ2luRGF0YU1hbmFnZXJSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFnZVJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFnZUdyb3VwKiBXS1BhZ2VHcm91cFJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKiBXS1BsdWdpblNpdGVE
YXRhTWFuYWdlclJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRleCA0NDFlMDVlLi43
MDMyMWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC0xMDMsNiArMTAzLDcgQEAg
cHVibGljOgogICAgICAgICBUeXBlTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QsCiAgICAg
ICAgIFR5cGVPcGVuUGFuZWxQYXJhbWV0ZXJzLAogICAgICAgICBUeXBlT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXIsCisgICAgICAgIFR5cGVPcmlnaW5EYXRhTWFuYWdlciwKICAgICAgICAgVHlwZVBh
Z2UsCiAgICAgICAgIFR5cGVQYWdlR3JvdXAsCiAgICAgICAgIFR5cGVQbHVnaW5TaXRlRGF0YU1h
bmFnZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElD
YXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXgg
NjRjOGQxYS4uZGQ4OGQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaApAQCAtODcsNiArODcsNyBAQCBjbGFzcyBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjsK
IGNsYXNzIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYk9wZW5QYW5lbFBh
cmFtZXRlcnM7CiBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5OworY2xhc3Mg
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdl
YlBhZ2VQcm94eTsKIGNsYXNzIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjsKQEAgLTEzMyw2ICsx
MzQsNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tOb3RpZmljYXRpb25Qcm92aWRlclJlZiwgV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOb3RpZmljYXRpb25S
ZWYsIFdlYk5vdGlmaWNhdGlvbikKIFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5lbFBhcmFt
ZXRlcnNSZWYsIFdlYk9wZW5QYW5lbFBhcmFtZXRlcnMpCiBXS19BRERfQVBJX01BUFBJTkcoV0tP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94
eSkKK1dLX0FERF9BUElfTUFQUElORyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUGFnZUdyb3VwUmVmLCBXZWJQ
YWdlR3JvdXApCiBXS19BRERfQVBJX01BUFBJTkcoV0tQYWdlUmVmLCBXZWJQYWdlUHJveHkpCiBX
S19BRERfQVBJX01BUFBJTkcoV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWYsIFdlYlBsdWdpblNp
dGVEYXRhTWFuYWdlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5jcHAKaW5kZXggYTQ3ZTQ5Zi4uZmJmYmMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJXZWJL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFDYWNoZU1hbmFnZXJQ
cm94eS5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgorI2luY2x1
ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5LmgiCiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKICNpbmNsdWRlICJX
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oIgpAQCAtMjc0LDYgKzI3NSwxMSBAQCBXS1Jlc291cmNl
Q2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4
dFJlZiBjb250ZXh0UgogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPnN1cHBs
ZW1lbnQ8V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4oKSk7CiB9CiAKK1dLT3JpZ2luRGF0
YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0T3JpZ2luRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNv
bnRleHRSZWYpCit7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+c3VwcGxl
bWVudDxXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5PigpKTsKK30KKwogdm9pZCBXS0NvbnRleHRT
dGFydE1lbW9yeVNhbXBsZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLRG91YmxlUmVmIGlu
dGVydmFsKQogewogICAgIHRvSW1wbChjb250ZXh0UmVmKS0+c3RhcnRNZW1vcnlTYW1wbGVyKHRv
SW1wbChpbnRlcnZhbCktPnZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dC5oCmluZGV4IDNjZTczMWUuLmVmZDY3NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKQEAgLTE5NSw3ICsxOTUsOCBAQCBXS19FWFBPUlQg
V0tOZXR3b3JrSW5mb01hbmFnZXJSZWYgV0tDb250ZXh0R2V0TmV0d29ya0luZm9NYW5hZ2VyKFdL
Q29udGV4dFJlZiBjbwogV0tfRVhQT1JUIFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBXS0NvbnRl
eHRHZXROb3RpZmljYXRpb25NYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9S
VCBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRQbHVnaW5TaXRlRGF0YU1h
bmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLUmVzb3VyY2VDYWNoZU1h
bmFnZXJSZWYgV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNv
bnRleHQpOwotICAgIAorV0tfRVhQT1JUIFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0
R2V0T3JpZ2luRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworCiB0eXBlZGVmIHZv
aWQgKCpXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24pKFdLRGljdGlvbmFyeVJlZiBzdGF0
aXN0aWNzLCBXS0Vycm9yUmVmIGVycm9yLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQ
T1JUIHZvaWQgV0tDb250ZXh0R2V0U3RhdGlzdGljcyhXS0NvbnRleHRSZWYgY29udGV4dCwgdm9p
ZCogZnVuY3Rpb25Db250ZXh0LCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24gZnVuY3Rp
b24pOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0R2V0U3RhdGlzdGljc1dpdGhPcHRpb25zKFdL
Q29udGV4dFJlZiBjb250ZXh0LCBXS1N0YXRpc3RpY3NPcHRpb25zIHN0YXRpc3RpY3NNYXNrLCB2
b2lkKiBmdW5jdGlvbkNvbnRleHQsIFdLQ29udGV4dEdldFN0YXRpc3RpY3NGdW5jdGlvbiBmdW5j
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmln
aW5EYXRhTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmln
aW5EYXRhTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Y4
NTM5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S09yaWdpbkRhdGFNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLT3JpZ2luRGF0YU1hbmFnZXIuaCIKKworI2lu
Y2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHku
aCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tPcmlnaW5EYXRhTWFu
YWdlckdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk6OkFQSVR5cGUpOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5z
KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0
YVR5cGVzIHR5cGVzLCB2b2lkKiBjb250ZXh0LCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2lu
c0Z1bmN0aW9uIGNhbGxiYWNrKQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZikt
PmdldE9yaWdpbnModHlwZXMsIEFycmF5Q2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBjYWxsYmFj
aykpOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVFbnRyaWVzRm9yT3JpZ2lu
KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0
YVR5cGVzIHR5cGVzLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpblJlZikKK3sKKyAgICB0b0lt
cGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5kZWxldGVFbnRyaWVzRm9yT3JpZ2luKHR5cGVzLCB0
b0ltcGwob3JpZ2luUmVmKSk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlckRlbGV0ZUFs
bEVudHJpZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlclJlZiwgV0tP
cmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVm
KS0+ZGVsZXRlQWxsRW50cmllcyh0eXBlcyk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdl
clN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFN
YW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBlcykKK3sKKyAgICB0b0ltcGwob3JpZ2lu
RGF0YU1hbmFnZXJSZWYpLT5zdGFydE9ic2VydmluZ0NoYW5nZXModHlwZXMpOworfQorCit2b2lk
IFdLT3JpZ2luRGF0YU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYW5h
Z2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBlcykKK3sK
KyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5zdG9wT2JzZXJ2aW5nQ2hhbmdlcyh0
eXBlcyk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclNldENoYW5nZUNsaWVudChXS09y
aWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBjb25zdCBXS09yaWdpbkRh
dGFNYW5hZ2VyQ2hhbmdlQ2xpZW50ICpjbGllbnQpCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFN
YW5hZ2VyUmVmKS0+c2V0Q2hhbmdlQ2xpZW50KGNsaWVudCk7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTAwNTRkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuaApAQCAtMCww
ICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS09yaWdpbkRhdGFNYW5hZ2VyX2gKKyNk
ZWZpbmUgV0tPcmlnaW5EYXRhTWFuYWdlcl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5o
PgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK2VudW0gewor
ICAgIGtXS0FwcGxpY2F0aW9uQ2FjaGVPcmlnaW5EYXRhID0gMSA8PCAwLAorICAgIGtXS0Nvb2tp
ZU9yaWdpbkRhdGEgPSAxIDw8IDEsCisgICAga1dLRGF0YWJhc2VPcmlnaW5EYXRhID0gMSA8PCAy
LAorICAgIGtXS0tleVZhbHVlU3RvcmFnZU9yaWdpbkRhdGEgPSAxIDw8IDMsCisgICAga1dLTWVk
aWFDYWNoZU9yaWdpbkRhdGEgPSAxIDw8IDQsCisgICAga1dLUGx1Z2luRGF0YU9yaWdpbkRhdGEg
PSAxIDw8IDUsCisgICAga1dLUmVzb3VyY2VDYWNoZU9yaWdpbkRhdGEgPSAxIDw8IDYsCisKKyAg
ICBrV0tBbGxPcmlnaW5EYXRhID0gKDEgPDwgNykgLSAxCit9OwordHlwZWRlZiB1aW50MzJfdCBX
S09yaWdpbkRhdGFUeXBlczsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLT3JpZ2luRGF0YU1hbmFn
ZXJHZXRUeXBlSUQoKTsKKwordHlwZWRlZiB2b2lkICgqV0tPcmlnaW5EYXRhTWFuYWdlckdldE9y
aWdpbnNGdW5jdGlvbikoV0tBcnJheVJlZiwgV0tFcnJvclJlZiwgdm9pZCopOworV0tfRVhQT1JU
IHZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFuYWdlclJl
ZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMsIHZvaWQqIGNvbnRl
eHQsIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zRnVuY3Rpb24gZnVuY3Rpb24pOworCitX
S19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbihX
S09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFUeXBl
cyB0eXBlcywgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4pOworV0tfRVhQT1JUIHZvaWQgV0tP
cmlnaW5EYXRhTWFuYWdlckRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBv
cmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpOworCisvLyBPcmlnaW5E
YXRhTWFuYWdlciBDbGllbnQKK3R5cGVkZWYgdm9pZCAoKldLT3JpZ2luRGF0YU1hbmFnZXJDaGFu
Z2VDYWxsYmFjaykoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7CitzdHJ1Y3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNs
aWVudCB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsK
KyAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworICAg
IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDYWxsYmFjayAgIGRpZENoYW5nZTsKK307Cit0eXBl
ZGVmIHN0cnVjdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50IFdLT3JpZ2luRGF0YU1h
bmFnZXJDaGFuZ2VDbGllbnQ7CisKK2VudW0geyBrV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNs
aWVudFZlcnNpb24gPSAwIH07CisKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJT
dGFydE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFu
YWdlciwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpOworV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5E
YXRhTWFuYWdlclN0b3BPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3Jp
Z2luRGF0YU1hbmFnZXIsIFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKTsKK1dLX0VYUE9SVCB2b2lk
IFdLT3JpZ2luRGF0YU1hbmFnZXJTZXRDaGFuZ2VDbGllbnQoV0tPcmlnaW5EYXRhTWFuYWdlclJl
ZiBvcmlnaW5EYXRhTWFuZ2VyLCBjb25zdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50
KiBjbGllbnQpOworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8vIFdL
T3JpZ2luRGF0YU1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmJjZGY2MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSwxNTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCisj
aW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyTWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y29uc3QgY2hhciogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c3VwcGxlbWVudE5hbWUoKQor
eworICAgIHJldHVybiAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSI7Cit9CisKK1Bhc3NSZWZQ
dHI8V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eT4gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6
Y3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KGNvbnRleHQpKTsKK30KKworV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eTo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eShXZWJDb250ZXh0KiBjb250ZXh0
KQorOiBXZWJDb250ZXh0U3VwcGxlbWVudChjb250ZXh0KQoreworICAgIGNvbnRleHQtPmFkZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKK30KKworV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6
fldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkoKQoreworfQorCisKK3ZvaWQgV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eTo6Y29udGV4dERlc3Ryb3llZCgpCit7CisgICAgaW52YWxpZGF0ZUNhbGxi
YWNrTWFwKG1fYXJyYXlDYWxsYmFja3MpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk6OnByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkqKQoreworICAgIGludmFsaWRh
dGVDYWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tzKTsKK30KKworYm9vbCBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5OjpzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9hcnJheUNhbGxiYWNrcy5pc0VtcHR5KCk7Cit9CisKK3ZvaWQgV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eTo6cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQoreworICAgIEFQ
SU9iamVjdDo6cmVmKCk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVy
ZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpCit7CisgICAgQVBJT2JqZWN0OjpkZXJlZigpOworfQor
Cit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmdldE9yaWdpbnMoV0tPcmlnaW5EYXRh
VHlwZXMgdHlwZXMsIFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCit7Cisg
ICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxBcnJheUNh
bGxiYWNrPiBjYWxsYmFjayA9IHBycENhbGxiYWNrOworCisgICAgdWludDY0X3QgY2FsbGJhY2tJ
RCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CisgICAgbV9hcnJheUNhbGxiYWNrcy5zZXQoY2Fs
bGJhY2tJRCwgY2FsbGJhY2sucmVsZWFzZSgpKTsKKworICAgIC8vIEZJWE1FIChNdWx0aS1XZWJQ
cm9jZXNzKTogPHJkYXI6Ly9wcm9ibGVtLzEyMjM5NzY1PiBNYWtlIG1hbmlwdWxhdGluZyBjYWNo
ZSBpbmZvcm1hdGlvbiB3b3JrIHdpdGggcGVyLXRhYiBXZWJQcm9jZXNzLgorICAgIGNvbnRleHQo
KS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpHZXRPcmlnaW5zKHR5cGVzLCBjYWxsYmFja0lEKSk7Cit9
CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2lucyhjb25zdCBW
ZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2luRGF0YXMsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCit7CisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gbV9hcnJheUNhbGxi
YWNrcy50YWtlKGNhbGxiYWNrSUQpOworICAgIHBlcmZvcm1BUElDYWxsYmFja1dpdGhTZWN1cml0
eU9yaWdpbkRhdGFWZWN0b3Iob3JpZ2luRGF0YXMsIGNhbGxiYWNrLmdldCgpKTsKK30KKwordm9p
ZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLT3Jp
Z2luRGF0YVR5cGVzIHR5cGVzLCBXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luKQoreworICAgIGlm
ICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTZWN1cml0eU9yaWdpbkRhdGEg
c2VjdXJpdHlPcmlnaW5EYXRhOworICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5wcm90b2NvbCA9IG9y
aWdpbi0+cHJvdG9jb2woKTsKKyAgICBzZWN1cml0eU9yaWdpbkRhdGEuaG9zdCA9IG9yaWdpbi0+
aG9zdCgpOworICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5wb3J0ID0gb3JpZ2luLT5wb3J0KCk7CisK
KyAgICAvLyBGSVhNRSAoTXVsdGktV2ViUHJvY2Vzcyk6IDxyZGFyOi8vcHJvYmxlbS8xMjIzOTc2
NT4gTWFrZSBtYW5pcHVsYXRpbmcgY2FjaGUgaW5mb3JtYXRpb24gd29yayB3aXRoIHBlci10YWIg
V2ViUHJvY2Vzcy4KKyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5n
VGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6RGVsZXRlRW50
cmllc0Zvck9yaWdpbih0eXBlcywgc2VjdXJpdHlPcmlnaW5EYXRhKSk7Cit9CisKK3ZvaWQgV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFUeXBl
cyB0eXBlcykKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gRklYTUUgKE11bHRpLVdlYlByb2Nlc3MpOiA8cmRhcjovL3Byb2JsZW0vMTIyMzk3NjU+IE1h
a2UgbWFuaXB1bGF0aW5nIGNhY2hlIGluZm9ybWF0aW9uIHdvcmsgd2l0aCBwZXItdGFiIFdlYlBy
b2Nlc3MuCisgICAgY29udGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1J
Zk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OkRlbGV0ZUFsbEVudHJp
ZXModHlwZXMpKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzdGFydE9i
c2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgaWYgKCFjb250
ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vz
c2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5h
Z2VyOjpTdGFydE9ic2VydmluZ0NoYW5nZXModHlwZXMpKTsKK30KKwordm9pZCBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5OjpzdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFUeXBlcyB0
eXBlcykKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29u
dGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNz
YWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OlN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyh0eXBlcykp
OworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNldENoYW5nZUNsaWVudChj
b25zdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50ICpjbGllbnQpCit7CisgICAgbV9j
bGllbnQuaW5pdGlhbGl6ZShjbGllbnQpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk6OmRpZENoYW5nZSgpCit7CisgICAgbV9jbGllbnQuZGlkQ2hhbmdlKHRoaXMpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjhkYjc0MGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlfaAorI2RlZmlu
ZSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgor
I2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgorI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5Lmgi
CisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV0tPcmlnaW5EYXRhTWFu
YWdlci5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRTdXBwbGVtZW50LmgiCisjaW5jbHVkZSAiV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOworc3RydWN0IFNlY3VyaXR5
T3JpZ2luRGF0YTsKKwordHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJyYXlD
YWxsYmFjazsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSA6IHB1YmxpYyBUeXBl
ZEFQSU9iamVjdDxBUElPYmplY3Q6OlR5cGVPcmlnaW5EYXRhTWFuYWdlcj4sIHB1YmxpYyBXZWJD
b250ZXh0U3VwcGxlbWVudCwgcHJpdmF0ZSBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworcHVi
bGljOgorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRl
eHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KCk7CisKKyAgICB2
b2lkIGdldE9yaWdpbnMoV0tPcmlnaW5EYXRhVHlwZXMsIFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFj
az4pOworICAgIHZvaWQgZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFUeXBlcywg
V2ViU2VjdXJpdHlPcmlnaW4qKTsKKyAgICB2b2lkIGRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5E
YXRhVHlwZXMpOworCisgICAgdm9pZCBzdGFydE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRh
VHlwZXMpOworICAgIHZvaWQgc3RvcE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhVHlwZXMp
OworICAgIHZvaWQgc2V0Q2hhbmdlQ2xpZW50KGNvbnN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFu
Z2VDbGllbnQqKTsKKworICAgIHVzaW5nIEFQSU9iamVjdDo6cmVmOworICAgIHVzaW5nIEFQSU9i
amVjdDo6ZGVyZWY7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eShXZWJDb250ZXh0Kik7CisKKyAgICB2b2lkIGRpZEdldE9yaWdpbnMoY29uc3QgVmVj
dG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lk
IGRpZENoYW5nZSgpOworCisgICAgLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQKKyAgICB2aXJ0dWFs
IHZvaWQgY29udGV4dERlc3Ryb3llZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwcm9j
ZXNzRGlkQ2xvc2UoV2ViUHJvY2Vzc1Byb3h5KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29s
IHNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIE9WRVJSSURFOworCisgICAgLy8g
Q29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJS
SURFOworCisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFycmF5Q2FsbGJhY2s+PiBtX2Fy
cmF5Q2FsbGJhY2tzOworCisgICAgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dCBtX2NsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2ZDc2YjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbgpAQCAtMCwwICsxLDI2IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgor
IyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
CisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkgeworICAgIERp
ZEdldE9yaWdpbnMoVmVjdG9yPFdlYktpdDo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5JZGVu
dGlmaWVycywgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgRGlkQ2hhbmdlKCkKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
Q2hhbmdlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42NjYwMWE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwCkBAIC0wLDAgKzEs
NDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlDaGFuZ2VDbGllbnQ6OmRpZENoYW5nZShXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KiBvcmln
aW5EYXRhTWFuYWdlcikKK3sKKyAgICBpZiAoIW1fY2xpZW50LmRpZENoYW5nZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9jbGllbnQuZGlkQ2hhbmdlKHRvQVBJKG9yaWdpbkRhdGFNYW5hZ2Vy
KSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlDaGFuZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYmE3NjdjZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmgKQEAgLTAsMCArMSw0NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNs
aWVudF9oCisjZGVmaW5lIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnRfaAor
CisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tPcmlnaW5EYXRhTWFuYWdlci5o
IgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OworCitjbGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Q2hhbmdlQ2xpZW50IDogcHVibGljIEFQSUNsaWVudDxXS09yaWdpbkRhdGFNYW5hZ2Vy
Q2hhbmdlQ2xpZW50LCBrV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudFZlcnNpb24+IHsK
K3B1YmxpYzoKKyAgICB2b2lkIGRpZENoYW5nZShXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Kik7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlDaGFuZ2VDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkxZjY2NGMuLmI3OWY2MmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU4
NCw2ICs1ODQsMjAgQEAKIAkJNkVFODQ5QzgxMzY4RDkzOTAwMzhENDgxIC8qIFdLSW5zcGVjdG9y
UHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkVFODQ5QzYxMzY4RDkyRDAwMzhENDgxIC8qIFdLSW5zcGVjdG9yUHJpdmF0ZU1hYy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOEU4NkYx
MTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI4RTg2RUYxNzk1MTg4QzAwODc4NzlFIC8q
IFdlYkNvbG9yUGlja2VyTWFjLmggKi87IH07CiAJCTcyOEU4NkYyMTc5NTE4OEMwMDg3ODc5RSAv
KiBXZWJDb2xvclBpY2tlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDcyOEU4NkYwMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1h
Yy5tbSAqLzsgfTsKKwkJNzU1NDIyQkIxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1h
bmFnZXIuY3BwIGluIENvcHkgRmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU1NDIyQjkxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwICov
OyB9OworCQk3NTU0MjJCQzE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5o
IGluIENvcHkgRmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIy
QkExODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCAqLzsgfTsKKwkJNzU1
NDIyQkQxODA2MkJCMjAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQjkxODA2MkI5QzAw
NDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovOyB9OworCQk3NTU0MjJDMzE4MDYy
QkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBpbiBD
b3B5IEZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkMwMTgw
NjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICov
OyB9OworCQk3NTU0MjJDNDE4MDYyQkY5MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTU0MjJCRTE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAg
Ki87IH07CisJCTc1NTQyMkNCMTgwNjUwMDIwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0
MjJDNjE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovOyB9Owor
CQk3NTU0MjJDQzE4MDc3M0NFMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkM3MTgwNjRG
RkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oICovOyB9OworCQk3NTlDQ0Q1ODE4
MDhGMTY0MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTlDQ0Q1
NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dC5jcHAgKi87IH07CisJCTc1OUNDRDU5MTgwOEYxNjkwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NTlDQ0Q1NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oICovOyB9OworCQk3NTlDQ0Q1QTE4MDhGNjE2MDA3
OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQkYxODA2MkJFNDAwNDZGNkE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJNzVFNzQ5RTkxODBEQkI5ODAwMDg4
QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU1MTgwREJCOTgwMDA4
OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJ
CTc1RTc0OUVBMTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUU3NDlF
NjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oICovOyB9
OworCQk3NUU3NDlFQjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NUU3NDlFNzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTc1RTc0OUVDMTgwREJCOTgwMDA4
OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU4MTgwREJCOTgwMDA4OEJB
NiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJNzYyQjc0
OEQxMjBCQzc1QzAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjJCNzQ4NDEyMEJCQTJEMDA4MTkz
MzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk3ODAxQzA5OTE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0
VGVzdFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3ODAxQzA5NTE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5jcHAgKi87
IH07CiAJCTc4MDFDMDlBMTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3ODAxQzA5NjE0MjI5
MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5oICovOyB9OwpAQCAtMTM1MCw5ICsxMzY0
LDEyIEBACiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gMTsKIAkJCWZpbGVzID0gKAogCQkJCTUxMEND
ODQ5MTYxM0M4NUMwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5hcHAgaW4gQ29weSBGaWxlcyAq
LywKKwkJCQk3NTU0MjJCQzE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5o
IGluIENvcHkgRmlsZXMgKi8sCiAJCQkJQkNERTBBQkYxMzI3MjcwODAwMTI1OUZCIC8qIFBsdWdp
blByb2Nlc3MuYXBwIGluIENvcHkgRmlsZXMgKi8sCiAJCQkJNTFBNjBCMkExODBDQ0VCNTAwRjNC
RjUwIC8qIERhdGFiYXNlUHJvY2Vzcy5hcHAgaW4gQ29weSBGaWxlcyAqLywKKwkJCQk3NTU0MjJD
MzE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
biBpbiBDb3B5IEZpbGVzICovLAogCQkJCTFBNTBEQjY2MTEwQTNENTcwMDBEM0ZFNSAvKiBXZWJQ
cm9jZXNzLmFwcCBpbiBDb3B5IEZpbGVzICovLAorCQkJCTc1NTQyMkJCMTgwNjJCOUMwMDQ2RjZB
OCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBDb3B5IEZpbGVzICovLAogCQkJKTsKIAkJ
CW5hbWUgPSAiQ29weSBGaWxlcyI7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKQEAgLTIwMzAsNiArMjA0NywyMCBAQAogCQk2RUU4NDlDNjEzNjhEOTJEMDAzOEQ0
ODEgLyogV0tJbnNwZWN0b3JQcml2YXRlTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFdLSW5zcGVjdG9yUHJpdmF0ZU1hYy5oOyBwYXRoID0gbWFjL1dLSW5zcGVjdG9yUHJp
dmF0ZU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjhFODZFRjE3OTUxODhD
MDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQ29sb3JQaWNrZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNzI4RTg2RjAxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29sb3JQaWNrZXJNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAv
KiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3NTU0MjJCQTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS09yaWdpbkRhdGFNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3NTU0MjJCRjE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkMw
MTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkM2MTgwNjRGRkMwMDQ2
RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBXZWJPcmlnaW5EYXRhTWFuYWdlci5jcHA7IHBhdGggPSBPcmlnaW5EYXRh
L1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NzU1NDIyQzcxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmg7IHBhdGgg
PSBPcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTc1NTQyMkM4MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
ci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJPcmlnaW5EYXRhTWFuYWdl
ci5tZXNzYWdlcy5pbjsgcGF0aCA9IE9yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1OUNDRDU0MTgwOEYxNjAw
MDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlDaGFuZ2VDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTlDQ0Q1
NTE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Q2hhbmdlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1RTc0
OUU1MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJPcmlnaW5EYXRh
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTc1RTc0OUU2MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzVFNzQ5RTcxODBEQkI5
ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTc1RTc0OUU4MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2MkI3
NDgxMTIwQkJBMDEwMDgxOTMzOSAvKiBGb250U21vb3RoaW5nTGV2ZWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udFNtb290aGluZ0xldmVsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc2MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3ODAxQzA5NTE0MjI5MEM0
MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJIaXRUZXN0UmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTM4MzksNiArMzg3MCwxNiBAQAogCQkJbmFtZSA9IG1hYzsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTc1NTQyMkM1MTgwNjRGRkMwMDQ2RjZBOCAvKiBPcmln
aW5EYXRhICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk3
NTU0MjJDNjE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovLAor
CQkJCTc1NTQyMkM3MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oICov
LAorCQkJCTc1NTQyMkM4MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5t
ZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQluYW1lID0gT3JpZ2luRGF0YTsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTdDQjE2RkUxMTcyNEI5QjUwMDdBMEE5NSAvKiBQbHVn
SW5TYW5kYm94UHJvZmlsZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKApAQCAtMzg4OCw2ICszOTI5LDcgQEAKIAkJQkMwMzJENUMxMEY0MzZENTAwNThDMTVBIC8q
IFdlYlByb2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCTc1NTQyMkM1MTgwNjRGRkMwMDQ2RjZBOCAvKiBPcmlnaW5EYXRhICovLAogCQkJCTUxMkUz
NTJBMTMwQjU1OTkwMEFCRDE5QSAvKiBBcHBsaWNhdGlvbkNhY2hlICovLAogCQkJCTMzMDkzNDRC
MTMxNUI5M0EwMDk3QTdCQyAvKiBDb29raWVzICovLAogCQkJCTUxMkE5NzU0MTgwREY5MjcwMDM5
QTE0OSAvKiBEYXRhYmFzZXMgKi8sCkBAIC00MTE4LDYgKzQxNjAsMTEgQEAKIAkJCQlCQ0Y2OUZB
MDExNzZEMDE0MDA0NzFBNTIgLyogV2ViTmF2aWdhdGlvbkRhdGEuaCAqLywKIAkJCQlCQzFERkVB
MzEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAg
Ki8sCiAJCQkJQkMxREZFQTIxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyUHJveHkuaCAqLywKKwkJCQk3NTU0MjJCRTE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJNzU1NDIyQkYxODA2MkJFNDAwNDZGNkE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCAqLywKKwkJCQk3NTU0MjJDMDE4MDYyQkU0
MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJ
CQk3NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNo
YW5nZUNsaWVudC5jcHAgKi8sCisJCQkJNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAqLywKIAkJCQk1MTUzNTY5QTEyOTFC
MUQyMDAwNzQ5REMgLyogV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLywKIAkJCQk1MTUz
NTY5QjEyOTFCMUQyMDAwNzQ5REMgLyogV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8sCiAJ
CQkJQkM3QjYyMDUxMjlBMEE2NzAwRDE3NEE0IC8qIFdlYlBhZ2VHcm91cC5jcHAgKi8sCkBAIC00
MjIxLDYgKzQyNjgsOCBAQAogCQkJCUJDODU3RkU0MTJCODQzRDgwMEVERUIyRSAvKiBXS09wZW5Q
YW5lbFBhcmFtZXRlcnMuaCAqLywKIAkJCQlCQzFERkU4RTEyQjMxQ0E4MDA1REY3MzAgLyogV0tP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgKi8sCiAJCQkJQkMxREZFOEQxMkIzMUNBODAwNURG
NzMwIC8qIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaCAqLywKKwkJCQk3NTU0MjJCOTE4MDYy
QjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgKi8sCisJCQkJNzU1NDIyQkEx
ODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCAqLywKIAkJCQlCQ0Q1OTdE
NDExMkI1NkRDMDBFQzhDMjMgLyogV0tQYWdlLmNwcCAqLywKIAkJCQlCQ0Q1OTdENTExMkI1NkRD
MDBFQzhDMjMgLyogV0tQYWdlLmggKi8sCiAJCQkJQkM3QjYzMzYxMkE0NUFCQTAwRDE3NEE0IC8q
IFdLUGFnZUdyb3VwLmNwcCAqLywKQEAgLTQ5MzMsNiArNDk4MiwxMCBAQAogCQlDMENFNzI5RDEy
NDdFNzFEMDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk3NUU3NDlFNTE4MERCQjk4MDAwODhCQTYgLyogV2Vi
T3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTc1RTc0OUU2MTgw
REJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJ
NzVFNzQ5RTcxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTc1RTc0OUU4MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQk1MTJGNThBMDEyQTg4M0FE
MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
IAkJCQk1MTJGNThBMTEyQTg4M0FEMDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyTWVz
c2FnZXMuaCAqLywKIAkJCQlFMTdBRTJDMjE2QjlDNjNBMDAxQzQyRjEgLyogY29tLmFwcGxlLldl
YktpdC5OZXR3b3JrUHJvY2Vzcy5zYiAqLywKQEAgLTU0MDcsOSArNTQ2MCwxMSBAQAogCQkJCUJD
REUwNTlCMTFDREE4QUUwMEU0MUFGMSAvKiBXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxODcxQjVDMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250
ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJENzcxMEY0Mzc4RDAwNThDMTVBIC8q
IFdlYkNvbnRleHRNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NUU3NDlFQzE4MERC
Qjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTI5MzVEODEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1lbnVJ
dGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBGQkI5QjEyODhDOTVFMDBBRkZERjQgLyogV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBQ0JCODIxMjdBOEJB
RDAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1
RTc0OUVBMTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MUFDQkJBMDEyN0E4RjJDMDBEMjAzQjkgLyogV2ViQ29udGV4
dE1lbnVQcm94eU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDQjc1QzYxMjAzQTFDRTAwMjIy
RDFCIC8qIFdlYkNvbnRleHRNZXNzYWdlS2luZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUU3
RDBFMTI4NDZGNjkwMDk4MjdEQSAvKiBXZWJDb250ZXh0TWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LApAQCAtNTY3MCw2ICs1NzI1LDcgQEAKIAkJCQlCQ0REQjMyQjEyNEVDMkFCMDA0OEQxM0MgLyog
V0tTaGFyZWRBUElDYXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwNjEyNEZGMDI3MDA2
OEYyMEEgLyogV0tTdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjFBMTI0RkYwMzcw
MDY4RjIwQSAvKiBXS1N0cmluZ0NGLmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTlDQ0Q1OTE4MDhG
MTY5MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM5MDk5ODAxMjU2QTk4MjAwMDgzNzU2IC8qIFdLU3RyaW5nUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc3RUFENDgxN0UyQzc3QjAwMkQxOTNEIC8qIFdL
VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTlBQTgx
MkI3RTc5NjAwOEZFOTg0IC8qIFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC01NjgwLDExICs1NzM2LDEzIEBACiAJCQkJQkM0MDc2MEMxMjRGRjAyNzAwNjhG
MjBBIC8qIFdLVVJMUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MjkxMjRGRjA0
MDAwNjhGMjBBIC8qIFdLVVJMUmVxdWVzdE5TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYw
RTEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkxSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NzU5Q0NENUExODA4RjYxNjAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDNDA3NjJCMTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlc3Bv
bnNlTlMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY2MTEzRTI5MTI2Q0UxOUIwMDU3RDBBNyAvKiBX
S1VzZXJDb250ZW50VVJMUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4Njk5QjUxMTZB
QURBQTAwMkE5MjVCIC8qIFdLVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4Njk5QjcxMTZB
QURBQTAwMkE5MjVCIC8qIFdLVmlld0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRkE2
MTc5RjEyRjBCOTlEMDAzM0UwQ0EgLyogV0tWaWV3UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNzU1NDIyQ0MxODA3NzNDRTAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNUUxQUZFOTE2QjIwQjc1MDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUUxQUZFQjE2QjIwQjdFMDA2Q0MxRjIgLyogV0tXZWJB
cmNoaXZlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTg5RDgyMTYxQTdFNUQwMDBE
NDZEMyAvKiBXS1dlYlByb2Nlc3NQbHVnSW4uaCBpbiBIZWFkZXJzICovLApAQCAtNjQ4Nyw2ICs2
NTQ1LDcgQEAKIAkJCQlCQ0VFN0RDNjEyOEI2NDVEMDA5ODI3REEgLyogSW5qZWN0ZWRCdW5kbGVD
bGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGQTJENzQxNTIxMkRGMTAwQzFCQTBCIC8q
IEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDNDk4NjE5MTI0RDEwRTIwMEQ4MzRFMSAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzVFNzQ5RTkxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
MjA0RUU2MTFDODNFQTkwMDhGMzM3NSAvKiBJbmplY3RlZEJ1bmRsZU1hYy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDODE0N0Q2MTJGNjZEMzEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRsZU5hdmln
YXRpb25BY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0QkVFQUMxMjBBMEE1RjAwRkJB
MEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTY0
OTUsNiArNjU1NCw3IEBACiAJCQkJRTFFRTUzRTcxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVk
QnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzE0RTEwOTEy
MEI5MDVFMDA4MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDRDVDNjZBMDEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTU0MjJDQjE4MDY1
MDAyMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkNBOEM2QTgxMUUzQkE1RjAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNs
aWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzgxNDdBQTEyRjY0Q0RBMDA3QjJDMzIgLyog
SW5qZWN0ZWRCdW5kbGVQYWdlUG9saWN5Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1
OUM1NTFFMTMwMDA2NDEwMDI1QzBDMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRD
bGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02NjA1LDYgKzY2NjUsNyBAQAogCQkJCTFBMDQz
QjVEMTI0RDVFOUQwMEZGQkZCNSAvKiBQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwNDNEQzIxMjRGRjg3NTAwRkZCRkI1IC8qIFBsdWdp
blByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkQ5MjIxMTI4MURDMUIwMDFFQjk2MiAv
KiBQbHVnaW5Qcm94eU1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTc1NTQyMkM0MTgwNjJCRjkw
MDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTFBOEVGQTcwMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0Q2MjI3NzE3MzlEODYzMDA1QkQ3RkYgLyogUGx1
Z2luU2FuZGJveFByb2ZpbGUubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzgyODQ0RDE2QjUwODFD
MDBBMjc4RkUgLyogUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKQEAg
LTY3MjUsNiArNjc4Niw3IEBACiAJCQkJQkNCOUY2QTExMTIzQTg0QjAwQTEzN0UwIC8qIFdlYkZy
YW1lUG9saWN5TGlzdGVuZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzExMUIwRTEx
MkY1RTRGMDAzMzdCQUIgLyogV2ViRnJhbWVQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
RDczQkE1MzEzMUI2NDVCMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNzU1NDIyQkQxODA2MkJCMjAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8q
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNENkY3NUY0MTMxQjY2RDAwMEQ2QjIxRSAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQ0E4NUVFMTMyQUQ3MDEwMEU5NjFERiAvKiBXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC02ODA0LDYgKzY4
NjYsNyBAQAogCQkJCTFBMDQzQTBBMTI0RDExQTkwMEZGQkZCNSAvKiBXZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTA0M0Y2OTEyNTE0RDhCMDBGRkJGQjUgLyog
V2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkMzMDY4MjUxMjVBNkI5NDAwRTcxMjc4IC8qIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzVFNzQ5RUIxODBEQkI5ODAwMDg4QkE2IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkMzMDY1QzQxMjU5MkY4OTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NNYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQlCQzMwNjZCRTEyNUE0NDIxMDBFNzEyNzggLyogV2ViUHJvY2Vzc01lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzExMUIxMTExMkY1RTRGMDAzMzdC
QUIgLyogV2ViUHJvY2Vzc1Byb3h5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjg2Nyw2ICs2OTMw
LDcgQEAKIAkJCQk5RkI1RjM5NDE2OUU2QTgwMDAyQzI1QkYgLyogV0tDb250ZXh0UHJpdmF0ZU1h
Yy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTMzMDkzNDVBMTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nv
b2tpZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyRjU4RjkxMkE4OEE1NDAwNjI5
NTMwIC8qIFdLQ3JlZGVudGlhbC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTlDQ0Q1ODE4MDhG
MTY0MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzVGNzEyNEZGMDI3MDA2OEYyMEEgLyogV0tEYXRhLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUY2MkE3NjYxMTJCMUFCRUQwMDA1RjFCNiAvKiBXS0RhdGFi
YXNlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTdERDVDMjE4MERCN0I3MDA4MTY2
MEIgLyogRGF0YWJhc2VQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFN
YW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NmYxMzYxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlci5o
IgorCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5E
YXRhLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2Vi
T3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luSGFzaC5oPgorCisjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjb25zdCBjaGFyKiBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUo
KQoreworICAgIHJldHVybiAiV2ViT3JpZ2luRGF0YU1hbmFnZXIiOworfQorCitXZWJPcmlnaW5E
YXRhTWFuYWdlcjo6V2ViT3JpZ2luRGF0YU1hbmFnZXIoQ2hpbGRQcm9jZXNzKiBjaGlsZFByb2Nl
c3MpCisgICAgOiBtX2NoaWxkUHJvY2VzcyhjaGlsZFByb2Nlc3MpCit7CisgICAgbV9jaGlsZFBy
b2Nlc3MtPmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1h
bmFnZXI6OmdldE9yaWdpbnMoV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpCit7CisgICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiBvcmlnaW5zOwor
CisgICAgLy8gRklYTUU6IHBvcHVsYXRlIG9yaWdpbnMKKworICAgIFZlY3RvcjxTZWN1cml0eU9y
aWdpbkRhdGE+IGlkZW50aWZpZXJzOworICAgIGlkZW50aWZpZXJzLnJlc2VydmVDYXBhY2l0eShv
cmlnaW5zLnNpemUoKSk7CisKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+Ojpp
dGVyYXRvciBlbmQgPSBvcmlnaW5zLmVuZCgpOworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5
T3JpZ2luPj46Oml0ZXJhdG9yIGkgPSBvcmlnaW5zLmJlZ2luKCk7CisgICAgZm9yICg7IGkgIT0g
ZW5kOyArK2kpIHsKKyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSAqaTsK
KworICAgICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luRGF0YTsKKyAgICAgICAgb3JpZ2lu
RGF0YS5wcm90b2NvbCA9IG9yaWdpbi0+cHJvdG9jb2woKTsKKyAgICAgICAgb3JpZ2luRGF0YS5o
b3N0ID0gb3JpZ2luLT5ob3N0KCk7CisgICAgICAgIG9yaWdpbkRhdGEucG9ydCA9IG9yaWdpbi0+
cG9ydCgpOworCisgICAgICAgIGlkZW50aWZpZXJzLnVuY2hlY2tlZEFwcGVuZChvcmlnaW5EYXRh
KTsKKyAgICB9CisKKyAgICBtX2NoaWxkUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eTo6RGlkR2V0T3JpZ2lucyhpZGVudGlmaWVycywgY2FsbGJhY2tJRCks
IDApOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVFbnRyaWVzRm9yT3Jp
Z2luKFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9y
aWdpbkRhdGEpCit7CisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEucHJvdG9jb2wsIG9yaWdpbkRhdGEuaG9zdCwgb3Jp
Z2luRGF0YS5wb3J0KTsKKyAgICBpZiAoIW9yaWdpbikKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gRklYTUU6IGRlbGV0ZSBjYWNoZQorfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpk
ZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKQoreworICAgIC8vIEZJWE1F
OiBkZWxldGUgZW50cmllcworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdGFydE9i
c2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgLy8gRklYTUU6
IHN0YXJ0IG9ic2VydmluZyBjaGFuZ2VzCit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXI6
OnN0b3BPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKQoreworICAgIC8v
IEZJWE1FOiBzdG9wIG9ic2VydmluZyBjaGFuZ2VzCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9y
aWdpbkRhdGFNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEv
V2ViT3JpZ2luRGF0YU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li45OGVhNTE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9P
cmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViT3JpZ2luRGF0YU1hbmFnZXJfaAorI2RlZmluZSBXZWJP
cmlnaW5EYXRhTWFuYWdlcl9oCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNs
dWRlICJXS09yaWdpbkRhdGFNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1l
bnQuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENoaWxkUHJvY2VzczsK
K3N0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CisKK2NsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
IDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgQ29yZUlQQzo6TWVzc2FnZVJl
Y2VpdmVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJPcmlnaW5EYXRhTWFuYWdlcik7
CitwdWJsaWM6CisgICAgV2ViT3JpZ2luRGF0YU1hbmFnZXIoQ2hpbGRQcm9jZXNzKik7CisKKyAg
ICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKKworICAgIHZvaWQgZGVsZXRl
QWxsRW50cmllcyhXS09yaWdpbkRhdGFUeXBlcyk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBnZXRP
cmlnaW5zKFdLT3JpZ2luRGF0YVR5cGVzLCB1aW50NjRfdCk7CisgICAgdm9pZCBkZWxldGVFbnRy
aWVzRm9yT3JpZ2luKFdLT3JpZ2luRGF0YVR5cGVzLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
KTsKKyAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFUeXBlcyk7Cisg
ICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFUeXBlcyk7CisKKyAgICAv
LyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZF
UlJJREU7CisKKyAgICBDaGlsZFByb2Nlc3MqIG1fY2hpbGRQcm9jZXNzOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJPcmlnaW5EYXRhTWFuYWdlcl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0
YU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRh
dGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNjk0ZTYzOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbgpA
QCAtMCwwICsxLDI5IEBACisjIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
K21lc3NhZ2VzIC0+IFdlYk9yaWdpbkRhdGFNYW5hZ2VyIHsKKyAgICB2b2lkIEdldE9yaWdpbnMo
dWludDMyX3QgdHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgdm9pZCBEZWxldGVFbnRy
aWVzRm9yT3JpZ2luKHVpbnQzMl90IHR5cGVzLCBXZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YSBv
cmlnaW5JZGVudGlmaWVyKQorICAgIHZvaWQgRGVsZXRlQWxsRW50cmllcyh1aW50MzJfdCB0eXBl
cykKKyAgICB2b2lkIFN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyh1aW50MzJfdCB0eXBlcykKKyAgICB2
b2lkIFN0b3BPYnNlcnZpbmdDaGFuZ2VzKHVpbnQzMl90IHR5cGVzKQorfQo=
</data>
<flag name="commit-queue"
          id="236892"
          type_id="3"
          status="-"
          setter="gtk-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214378</attachid>
            <date>2013-10-16 11:32:54 -0700</date>
            <delta_ts>2013-10-16 13:16:44 -0700</delta_ts>
            <desc>gtk-wk2 build fix</desc>
            <filename>122781k.diff</filename>
            <type>text/plain</type>
            <size>63837</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggN2U2NTY0Mi4uZDM4MzQ1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTUyLDYgKzUyLDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUiCiAgICAgIiR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvTmV0d29yayIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL09yaWdpbkRh
dGEiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUiCkBAIC0zMzEsNiArMzMyLDggQEAgc2V0KFdlYktp
dDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAK
ICAgICBVSVByb2Nlc3MvV2ViTmV0d29ya0luZm9Qcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3Mv
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eUNoYW5nZUNsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51
Q2xpZW50LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuY3BwCiAgICAgVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM3OCw2ICszODEsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3Bw
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAKKyAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAKICAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwCkBAIC00OTMsNiArNDk3LDggQEAgc2V0
KFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCiAKKyAgICBXZWJQcm9jZXNzL09yaWdpbkRh
dGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luLmNwcAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5j
cHAKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
LmNwcApAQCAtNTg1LDYgKzU5MSw3IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAg
ICAgVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNz
L1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2Vi
TmV0d29ya0luZm9NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyAgICBVSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CiAgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
QEAgLTYyNSw2ICs2MzIsOCBAQCBzZXQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUwogCiAgICAg
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIubWVzc2FnZXMu
aW4KIAorICAgIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNz
YWdlcy5pbgorCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0
aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94
eS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDYzZmJiNmYuLmNjOTBiYzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw3NCBAQAorMjAxMy0xMC0xNiAgTWFydGluIEhvY2sgIDxtaG9ja0BhcHBsZS5j
b20+CisKKyAgICAgICAgUmVmYWN0b3Igc3RvcmVkIHdlYnNpdGUgZGF0YSBBUElzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI3ODEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV2ViT3JpZ2luRGF0
YU1hbmFnZXIgYWxvbmcgd2l0aCBjb3JyZXNwb25kaW5nIGNsYXNzCisgICAgICAgIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkgYW5kIEFQSSBXS09yaWdpbkRhdGFNYW5hZ2VyLgorCisgICAgICAg
IEN1cnJlbnRseSwgdGhlIG5ldyBmaWxlcyBhcmUgdW51c2VkLgorCisgICAgICAgIFdLT3JpZ2lu
RGF0YU1hbmFnZXIgc2hvdWxkIHN1YnN1bWUgdGhlIGZ1bmN0aW9uYWxpdHkgb2Y6CisgICAgICAg
IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIsIFdLQ29va2llTWFuYWdlciwgV0tEYXRhYmFzZU1h
bmFnZXIsCisgICAgICAgIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlciwgV0tNZWRpYUNhY2hlTWFu
YWdlciwKKyAgICAgICAgV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIsIGFuZCBXS1Jlc291cmNlQ2Fj
aGVNYW5hZ2VyLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAg
ICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAg
ICAoV0tDb250ZXh0R2V0T3JpZ2luRGF0YU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRh
TWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFuYWdlckdldFR5cGVJ
RCk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2lucyk6CisgICAgICAgIChX
S09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXS09y
aWdpbkRhdGFNYW5hZ2VyRGVsZXRlQWxsRW50cmllcyk6CisgICAgICAgIChXS09yaWdpbkRhdGFN
YW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFn
ZXJTdG9wT2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyU2V0
Q2hhbmdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFu
YWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5OjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Ojp+V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0cm95ZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpwcm9jZXNzRGlk
Q2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzaG91
bGRUZXJtaW5hdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
OjpyZWZXZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdl
YktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2lucyk6CisgICAgICAg
IChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlbGV0ZUVudHJpZXNGb3JPcmln
aW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxldGVB
bGxFbnRyaWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6
c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eTo6c3RvcE9ic2VydmluZ0NoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5OjpzZXRDaGFuZ2VDbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdl
Q2xpZW50OjpkaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL09yaWdpbkRhdGEvV2Vi
T3JpZ2luRGF0YU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2lu
RGF0YU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2lu
RGF0YU1hbmFnZXI6OldlYk9yaWdpbkRhdGFNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
T3JpZ2luRGF0YU1hbmFnZXI6OmdldE9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmln
aW5EYXRhTWFuYWdlcjo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5nQ2hhbmdlcyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdl
ci5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTMtMTAtMTYgIENzYWJhIE9zenRyb2dvbsOhYyAg
PG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbV0syXVtFZmxdW0NNYWtlXSBBZGQgc3VwcG9y
dCBmb3IgRU5BQkxFX05FVFdPUktfUFJPQ0VTUyB0byB0aGUgYnVpbGQgc3lzdGVtCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA1NTUxNzRiLi5mMWZhMDc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM5LDYgKzM5LDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJL
aXQyKS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9O
ZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucyBcCisgICAg
JChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXApAQCAtOTksNiArMTAwLDggQEAg
TUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViTWVkaWFDYWNoZU1hbmFnZXIgXAogICAgIFdl
Yk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkgXAogICAgIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIgXAor
ICAgIFdlYk9yaWdpbkRhdGFNYW5hZ2VyIFwKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
IFwKICAgICBXZWJQYWdlIFwKICAgICBXZWJQYWdlR3JvdXBQcm94eSBcCiAgICAgV2ViUGFnZVBy
b3h5IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtIGIvU291cmNl
L1dlYktpdDIvR05VbWFrZWZpbGUuYW0KaW5kZXggZTdlMTE3Yi4uZDJlZWE5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUuYW0KQEAgLTE1NSw2ICsxNTUsNyBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtf
QVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0NQUAog
CS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZSBcCiAJLUkk
KHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyBcCiAJLUkkKHNy
Y2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKKwktSSQoc3Jj
ZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogCS1JJChzcmNkaXIp
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAJLUkkKHNyY2Rpcikv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAgXApAQCAtMzgzLDYgKzM4NCw3IEBAIHZwYXRoICUubWVz
c2FnZXMuaW4gPSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsgXAogCSQoV2ViS2l0
MikvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMgXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwKIAkkKFdlYktp
dDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNl
Q2FjaGUgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9TdG9yYWdlIFwKQEAgLTc0Niw2ICs3NDgs
NyBAQCBFWFRSQV9ESVNUICs9IFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9O
ZXR3b3JrLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3Jr
SW5mby8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0
aW9ucy8qLmluKSBcCisJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvT3JpZ2luRGF0
YS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucy8qLmlu
KSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS8qLmlu
KSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFnZS8qLmluKSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwYzBlMDU2Li5iYzJmMTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTgzLDYgKzgzLDcgQEAgd2Via2l0Ml9oX2FwaSAr
PSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92aWRlci5o
IFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRlcnMuaCBc
CiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5o
IFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmggXAog
CSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmggXAogCSQoV2ViS2l0Mikv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VQcml2YXRlLmggXApAQCAtMjIzLDYgKzIyNCwxMCBAQCB3ZWJraXQyX2J1aWx0X3NvdXJj
ZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggXAorCURlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUGFnZUdyb3VwUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlBhZ2VHcm91cFByb3h5TWVz
c2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdlUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIFwKQEAgLTY0MSw2ICs2NDYsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRlcnMuaCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIu
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRh
TWFuYWdlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRh
dGFNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwIFwKIAlT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaCBcCkBAIC05ODAsNiAr
OTg3LDEwIEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk5ldHdvcmtJbmZvUHJvdmlkZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIFwKKwlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAgXAorCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggXAorCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCBc
CisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFu
Z2VDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VDb250ZXh0TWVu
dUNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1l
bnVDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAg
XApAQCAtMTEzNyw2ICsxMTQ4LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBcCisJU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCBcCisJU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk9yaWdpbkRhdGFNYW5hZ2Vy
LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0
aG9kLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBNZXRob2QuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCA2
OTk0Y2JkLi4xOTdhZDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0x
MTksNiArMTE5LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdCogV0tOb3RpZmljYXRpb25QZXJtaXMKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uUHJvdmlkZXIqIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJS
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFBhcmFtZXRlcnMqIFdL
T3BlblBhbmVsUGFyYW1ldGVyc1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXIqIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWY7Cit0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09yaWdpbkRhdGFNYW5hZ2VyKiBXS09yaWdpbkRhdGFN
YW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlKiBXS1BhZ2VSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VHcm91cCogV0tQYWdlR3JvdXBSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BsdWdpblNpdGVEYXRhTWFuYWdlciogV0tQ
bHVnaW5TaXRlRGF0YU1hbmFnZXJSZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXgg
NDQxZTA1ZS4uNzAzMjFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtMTAzLDYg
KzEwMyw3IEBAIHB1YmxpYzoKICAgICAgICAgVHlwZU5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LAogICAgICAgICBUeXBlT3BlblBhbmVsUGFyYW1ldGVycywKICAgICAgICAgVHlwZU9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyLAorICAgICAgICBUeXBlT3JpZ2luRGF0YU1hbmFnZXIsCiAgICAg
ICAgIFR5cGVQYWdlLAogICAgICAgICBUeXBlUGFnZUdyb3VwLAogICAgICAgICBUeXBlUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oCmluZGV4IDY0YzhkMWEuLmRkODhkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKQEAgLTg3LDYgKzg3LDcgQEAgY2xhc3MgV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXI7CiBjbGFzcyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJP
cGVuUGFuZWxQYXJhbWV0ZXJzOwogY2xhc3MgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94
eTsKK2NsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7
CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI7CkBA
IC0xMzMsNiArMTM0LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLTm90aWZpY2F0aW9uUHJvdmlk
ZXJSZWYsIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTm90
aWZpY2F0aW9uUmVmLCBXZWJOb3RpZmljYXRpb24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tPcGVu
UGFuZWxQYXJhbWV0ZXJzUmVmLCBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzKQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYsIFdlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyUHJveHkpCitXS19BRERfQVBJX01BUFBJTkcoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiwg
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1BhZ2VHcm91
cFJlZiwgV2ViUGFnZUdyb3VwKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUGFnZVJlZiwgV2ViUGFn
ZVByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmLCBX
ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwCmluZGV4IGE0N2U0OWYuLmZiZmJjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5j
bHVkZSAiV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYk1lZGlhQ2Fj
aGVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
aCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oIgogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAj
aW5jbHVkZSAiV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuaCIKQEAgLTI3NCw2ICsyNzUsMTEgQEAg
V0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdl
cihXS0NvbnRleHRSZWYgY29udGV4dFIKICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRS
ZWYpLT5zdXBwbGVtZW50PFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk+KCkpOwogfQogCitX
S09yaWdpbkRhdGFNYW5hZ2VyUmVmIFdLQ29udGV4dEdldE9yaWdpbkRhdGFNYW5hZ2VyKFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmKQoreworICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJl
ZiktPnN1cHBsZW1lbnQ8V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eT4oKSk7Cit9CisKIHZvaWQg
V0tDb250ZXh0U3RhcnRNZW1vcnlTYW1wbGVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS0Rv
dWJsZVJlZiBpbnRlcnZhbCkKIHsKICAgICB0b0ltcGwoY29udGV4dFJlZiktPnN0YXJ0TWVtb3J5
U2FtcGxlcih0b0ltcGwoaW50ZXJ2YWwpLT52YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHQuaAppbmRleCAzY2U3MzFlLi5lZmQ2NzcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCkBAIC0xOTUsNyArMTk1LDggQEAg
V0tfRVhQT1JUIFdLTmV0d29ya0luZm9NYW5hZ2VyUmVmIFdLQ29udGV4dEdldE5ldHdvcmtJbmZv
TWFuYWdlcihXS0NvbnRleHRSZWYgY28KIFdLX0VYUE9SVCBXS05vdGlmaWNhdGlvbk1hbmFnZXJS
ZWYgV0tDb250ZXh0R2V0Tm90aWZpY2F0aW9uTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7
CiBXS19FWFBPUlQgV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1Jlc291
cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29u
dGV4dFJlZiBjb250ZXh0KTsKLSAgICAKK1dLX0VYUE9SVCBXS09yaWdpbkRhdGFNYW5hZ2VyUmVm
IFdLQ29udGV4dEdldE9yaWdpbkRhdGFNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKKwog
dHlwZWRlZiB2b2lkICgqV0tDb250ZXh0R2V0U3RhdGlzdGljc0Z1bmN0aW9uKShXS0RpY3Rpb25h
cnlSZWYgc3RhdGlzdGljcywgV0tFcnJvclJlZiBlcnJvciwgdm9pZCogZnVuY3Rpb25Db250ZXh0
KTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dEdldFN0YXRpc3RpY3MoV0tDb250ZXh0UmVmIGNv
bnRleHQsIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCwgV0tDb250ZXh0R2V0U3RhdGlzdGljc0Z1bmN0
aW9uIGZ1bmN0aW9uKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dEdldFN0YXRpc3RpY3NXaXRo
T3B0aW9ucyhXS0NvbnRleHRSZWYgY29udGV4dCwgV0tTdGF0aXN0aWNzT3B0aW9ucyBzdGF0aXN0
aWNzTWFzaywgdm9pZCogZnVuY3Rpb25Db250ZXh0LCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVu
Y3Rpb24gZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmNmODUzOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS09yaWdpbkRhdGFNYW5hZ2Vy
LmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLT3Jp
Z2luRGF0YU1hbmFnZXJHZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b0FQSShXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5OjpBUElUeXBlKTsKK30KKwordm9pZCBXS09yaWdpbkRhdGFNYW5hZ2Vy
R2V0T3JpZ2lucyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBX
S09yaWdpbkRhdGFUeXBlcyB0eXBlcywgdm9pZCogY29udGV4dCwgV0tPcmlnaW5EYXRhTWFuYWdl
ckdldE9yaWdpbnNGdW5jdGlvbiBjYWxsYmFjaykKK3sKKyAgICB0b0ltcGwob3JpZ2luRGF0YU1h
bmFnZXJSZWYpLT5nZXRPcmlnaW5zKHR5cGVzLCBBcnJheUNhbGxiYWNrOjpjcmVhdGUoY29udGV4
dCwgY2FsbGJhY2spKTsKK30KKwordm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlRW50cmll
c0Zvck9yaWdpbihXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBX
S09yaWdpbkRhdGFUeXBlcyB0eXBlcywgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW5SZWYpCit7
CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+ZGVsZXRlRW50cmllc0Zvck9yaWdp
bih0eXBlcywgdG9JbXBsKG9yaWdpblJlZikpOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFn
ZXJEZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFn
ZXJSZWYsIFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKQoreworICAgIHRvSW1wbChvcmlnaW5EYXRh
TWFuYWdlclJlZiktPmRlbGV0ZUFsbEVudHJpZXModHlwZXMpOworfQorCit2b2lkIFdLT3JpZ2lu
RGF0YU1hbmFnZXJTdGFydE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBv
cmlnaW5EYXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgdG9J
bXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKHR5cGVzKTsK
K30KKwordm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3RvcE9ic2VydmluZ0NoYW5nZXMoV0tPcmln
aW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRhVHlwZXMg
dHlwZXMpCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+c3RvcE9ic2Vydmlu
Z0NoYW5nZXModHlwZXMpOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTZXRDaGFuZ2VD
bGllbnQoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlclJlZiwgY29uc3Qg
V0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCAqY2xpZW50KQoreworICAgIHRvSW1wbChv
cmlnaW5EYXRhTWFuYWdlclJlZiktPnNldENoYW5nZUNsaWVudChjbGllbnQpOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjEwMDU0ZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2Vy
LmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tPcmlnaW5EYXRhTWFu
YWdlcl9oCisjZGVmaW5lIFdLT3JpZ2luRGF0YU1hbmFnZXJfaAorCisjaW5jbHVkZSA8V2ViS2l0
Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgor
CitlbnVtIHsKKyAgICBrV0tBcHBsaWNhdGlvbkNhY2hlT3JpZ2luRGF0YSA9IDEgPDwgMCwKKyAg
ICBrV0tDb29raWVPcmlnaW5EYXRhID0gMSA8PCAxLAorICAgIGtXS0RhdGFiYXNlT3JpZ2luRGF0
YSA9IDEgPDwgMiwKKyAgICBrV0tLZXlWYWx1ZVN0b3JhZ2VPcmlnaW5EYXRhID0gMSA8PCAzLAor
ICAgIGtXS01lZGlhQ2FjaGVPcmlnaW5EYXRhID0gMSA8PCA0LAorICAgIGtXS1BsdWdpbkRhdGFP
cmlnaW5EYXRhID0gMSA8PCA1LAorICAgIGtXS1Jlc291cmNlQ2FjaGVPcmlnaW5EYXRhID0gMSA8
PCA2LAorCisgICAga1dLQWxsT3JpZ2luRGF0YSA9ICgxIDw8IDcpIC0gMQorfTsKK3R5cGVkZWYg
dWludDMyX3QgV0tPcmlnaW5EYXRhVHlwZXM7CisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS09yaWdp
bkRhdGFNYW5hZ2VyR2V0VHlwZUlEKCk7CisKK3R5cGVkZWYgdm9pZCAoKldLT3JpZ2luRGF0YU1h
bmFnZXJHZXRPcmlnaW5zRnVuY3Rpb24pKFdLQXJyYXlSZWYsIFdLRXJyb3JSZWYsIHZvaWQqKTsK
K1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zKFdLT3JpZ2luRGF0
YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzLCB2
b2lkKiBjb250ZXh0LCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2luc0Z1bmN0aW9uIGZ1bmN0
aW9uKTsKKworV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlckRlbGV0ZUVudHJpZXNG
b3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tPcmln
aW5EYXRhVHlwZXMgdHlwZXMsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKTsKK1dLX0VYUE9S
VCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YU1h
bmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKTsKKwor
Ly8gT3JpZ2luRGF0YU1hbmFnZXIgQ2xpZW50Cit0eXBlZGVmIHZvaWQgKCpXS09yaWdpbkRhdGFN
YW5hZ2VyQ2hhbmdlQ2FsbGJhY2spKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1h
bmFnZXIsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOworc3RydWN0IFdLT3JpZ2luRGF0YU1hbmFn
ZXJDaGFuZ2VDbGllbnQgeworICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50
SW5mbzsKKyAgICBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2FsbGJhY2sgICBkaWRDaGFuZ2U7
Cit9OwordHlwZWRlZiBzdHJ1Y3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCBXS09y
aWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50OworCitlbnVtIHsga1dLT3JpZ2luRGF0YU1hbmFn
ZXJDaGFuZ2VDbGllbnRWZXJzaW9uID0gMCB9OworCitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRh
dGFNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3Jp
Z2luRGF0YU1hbmFnZXIsIFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKTsKK1dLX0VYUE9SVCB2b2lk
IFdLT3JpZ2luRGF0YU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYW5h
Z2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBlcyk7CitXS19F
WFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU2V0Q2hhbmdlQ2xpZW50KFdLT3JpZ2luRGF0
YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmdlciwgY29uc3QgV0tPcmlnaW5EYXRhTWFuYWdlckNo
YW5nZUNsaWVudCogY2xpZW50KTsKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNl
bmRpZiAvLyBXS09yaWdpbkRhdGFNYW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5iY2RmNjFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEs
MTUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
RGF0YS5oIgorI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRh
TWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NvbnN0IGNoYXIqIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN1cHBsZW1l
bnROYW1lKCkKK3sKKyAgICByZXR1cm4gIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkiOworfQor
CitQYXNzUmVmUHRyPFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk+IFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk6OmNyZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eShjb250ZXh0KSk7Cit9CisKK1dlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkoV2ViQ29udGV4
dCogY29udGV4dCkKKzogV2ViQ29udGV4dFN1cHBsZW1lbnQoY29udGV4dCkKK3sKKyAgICBjb250
ZXh0LT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7Cit9CisKK1dlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk6On5XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KCkKK3sKK30KKworCit2b2lkIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0cm95ZWQoKQoreworICAgIGludmFs
aWRhdGVDYWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tzKTsKK30KKwordm9pZCBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5Ojpwcm9jZXNzRGlkQ2xvc2UoV2ViUHJvY2Vzc1Byb3h5KikKK3sKKyAg
ICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJheUNhbGxiYWNrcyk7Cit9CisKK2Jvb2wgV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSop
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXJyYXlDYWxsYmFja3MuaXNFbXB0eSgpOworfQorCit2
b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkK
K3sKKyAgICBBUElPYmplY3Q6OnJlZigpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQoreworICAgIEFQSU9iamVjdDo6ZGVy
ZWYoKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpnZXRPcmlnaW5zKFdL
T3JpZ2luRGF0YVR5cGVzIHR5cGVzLCBQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+IHBycENhbGxi
YWNrKQoreworICAgIGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQ
dHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBwcnBDYWxsYmFjazsKKworICAgIHVpbnQ2NF90
IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOworICAgIG1fYXJyYXlDYWxsYmFj
a3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLnJlbGVhc2UoKSk7CisKKyAgICAvLyBGSVhNRSAo
TXVsdGktV2ViUHJvY2Vzcyk6IDxyZGFyOi8vcHJvYmxlbS8xMjIzOTc2NT4gTWFrZSBtYW5pcHVs
YXRpbmcgY2FjaGUgaW5mb3JtYXRpb24gd29yayB3aXRoIHBlci10YWIgV2ViUHJvY2Vzcy4KKyAg
ICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5
KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6R2V0T3JpZ2lucyh0eXBlcywgY2FsbGJh
Y2tJRCkpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRpZEdldE9yaWdp
bnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbkRhdGFzLCB1aW50NjRf
dCBjYWxsYmFja0lEKQoreworICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IG1f
YXJyYXlDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBwZXJmb3JtQVBJQ2FsbGJhY2tX
aXRoU2VjdXJpdHlPcmlnaW5EYXRhVmVjdG9yKG9yaWdpbkRhdGFzLCBjYWxsYmFjay5nZXQoKSk7
Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGVsZXRlRW50cmllc0Zvck9y
aWdpbihXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikK
K3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU2VjdXJpdHlP
cmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0YTsKKyAgICBzZWN1cml0eU9yaWdpbkRhdGEucHJv
dG9jb2wgPSBvcmlnaW4tPnByb3RvY29sKCk7CisgICAgc2VjdXJpdHlPcmlnaW5EYXRhLmhvc3Qg
PSBvcmlnaW4tPmhvc3QoKTsKKyAgICBzZWN1cml0eU9yaWdpbkRhdGEucG9ydCA9IG9yaWdpbi0+
cG9ydCgpOworCisgICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nlc3MpOiA8cmRhcjovL3Byb2Js
ZW0vMTIyMzk3NjU+IE1ha2UgbWFuaXB1bGF0aW5nIGNhY2hlIGluZm9ybWF0aW9uIHdvcmsgd2l0
aCBwZXItdGFiIFdlYlByb2Nlc3MuCisgICAgY29udGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNS
ZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6
OkRlbGV0ZUVudHJpZXNGb3JPcmlnaW4odHlwZXMsIHNlY3VyaXR5T3JpZ2luRGF0YSkpOworfQor
Cit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbEVudHJpZXMoV0tPcmln
aW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIEZJWE1FIChNdWx0aS1XZWJQcm9jZXNzKTogPHJkYXI6Ly9wcm9ibGVtLzEy
MjM5NzY1PiBNYWtlIG1hbmlwdWxhdGluZyBjYWNoZSBpbmZvcm1hdGlvbiB3b3JrIHdpdGggcGVy
LXRhYiBXZWJQcm9jZXNzLgorICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVu
Y2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpEZWxl
dGVBbGxFbnRyaWVzKHR5cGVzKSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eTo6c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKQoreworICAg
IGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb250ZXh0KCktPnNlbmRU
b0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmln
aW5EYXRhTWFuYWdlcjo6U3RhcnRPYnNlcnZpbmdDaGFuZ2VzKHR5cGVzKSk7Cit9CisKK3ZvaWQg
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c3RvcE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5E
YXRhVHlwZXMgdHlwZXMpCit7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNl
c3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpTdGFydE9ic2VydmluZ0NoYW5n
ZXModHlwZXMpKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzZXRDaGFu
Z2VDbGllbnQoY29uc3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCAqY2xpZW50KQor
eworICAgIG1fY2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKK30KKwordm9pZCBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5OjpkaWRDaGFuZ2UoKQoreworICAgIG1fY2xpZW50LmRpZENoYW5nZSh0
aGlzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44ZGI3NDBkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDky
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
X2gKKyNkZWZpbmUgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJBUElP
YmplY3QuaCIKKyNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJJbW11dGFi
bGVBcnJheS5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldLT3Jp
Z2luRGF0YU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0U3VwcGxlbWVudC5oIgorI2lu
Y2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCIKKyNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKK3N0cnVj
dCBTZWN1cml0eU9yaWdpbkRhdGE7CisKK3R5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLQXJyYXlS
ZWY+IEFycmF5Q2FsbGJhY2s7CisKK2NsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkgOiBw
dWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlT3JpZ2luRGF0YU1hbmFnZXI+LCBw
dWJsaWMgV2ViQ29udGV4dFN1cHBsZW1lbnQsIHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2Vp
dmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsK
KworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk+IGNyZWF0
ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSgp
OworCisgICAgdm9pZCBnZXRPcmlnaW5zKFdLT3JpZ2luRGF0YVR5cGVzLCBQYXNzUmVmUHRyPEFy
cmF5Q2FsbGJhY2s+KTsKKyAgICB2b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5E
YXRhVHlwZXMsIFdlYlNlY3VyaXR5T3JpZ2luKik7CisgICAgdm9pZCBkZWxldGVBbGxFbnRyaWVz
KFdLT3JpZ2luRGF0YVR5cGVzKTsKKworICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdL
T3JpZ2luRGF0YVR5cGVzKTsKKyAgICB2b2lkIHN0b3BPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2lu
RGF0YVR5cGVzKTsKKyAgICB2b2lkIHNldENoYW5nZUNsaWVudChjb25zdCBXS09yaWdpbkRhdGFN
YW5hZ2VyQ2hhbmdlQ2xpZW50Kik7CisKKyAgICB1c2luZyBBUElPYmplY3Q6OnJlZjsKKyAgICB1
c2luZyBBUElPYmplY3Q6OmRlcmVmOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOworCisgICAgdm9pZCBkaWRHZXRPcmlnaW5z
KGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7
CisgICAgdm9pZCBkaWRDaGFuZ2UoKTsKKworICAgIC8vIFdlYkNvbnRleHRTdXBwbGVtZW50Cisg
ICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94eSopIE9WRVJSSURFOworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBPVkVSUklERTsK
KworICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKSBPVkVSUklERTsKKworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBcnJheUNhbGxi
YWNrPj4gbV9hcnJheUNhbGxiYWNrczsKKworICAgIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlD
aGFuZ2VDbGllbnQgbV9jbGllbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmQ3NmI0Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
IHsKKyAgICBEaWRHZXRPcmlnaW5zKFZlY3RvcjxXZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YT4g
b3JpZ2luSWRlbnRpZmllcnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIERpZENoYW5nZSgp
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNjY2MDFhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcApA
QCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCIKKworI2luY2x1ZGUg
IldLQVBJQ2FzdC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50OjpkaWRDaGFuZ2UoV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eSogb3JpZ2luRGF0YU1hbmFnZXIpCit7CisgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2Up
CisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LmRpZENoYW5nZSh0b0FQSShvcmlnaW5E
YXRhTWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmJhNzY3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oCkBAIC0w
LDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHlDaGFuZ2VDbGllbnRfaAorI2RlZmluZSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdl
Q2xpZW50X2gKKworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLT3JpZ2luRGF0
YU1hbmFnZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTsKKworY2xhc3MgV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudCA6IHB1YmxpYyBBUElDbGllbnQ8V0tPcmlnaW5E
YXRhTWFuYWdlckNoYW5nZUNsaWVudCwga1dLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnRW
ZXJzaW9uPiB7CitwdWJsaWM6CisgICAgdm9pZCBkaWRDaGFuZ2UoV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eSopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5MWY2NjRjLi5iNzlmNjJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC01ODQsNiArNTg0LDIwIEBACiAJCTZFRTg0OUM4MTM2OEQ5MzkwMDM4RDQ4MSAvKiBX
S0luc3BlY3RvclByaXZhdGVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZFRTg0OUM2MTM2OEQ5MkQwMDM4RDQ4MSAvKiBXS0luc3BlY3RvclByaXZh
dGVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3MjhFODZGMTE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOEU4NkVGMTc5NTE4OEMw
MDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5oICovOyB9OwogCQk3MjhFODZGMjE3OTUxODhD
MDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjhFODZGMDE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29s
b3JQaWNrZXJNYWMubW0gKi87IH07CisJCTc1NTQyMkJCMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09y
aWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBDb3B5IEZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5h
Z2VyLmNwcCAqLzsgfTsKKwkJNzU1NDIyQkMxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0
YU1hbmFnZXIuaCBpbiBDb3B5IEZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggKi87
IH07CisJCTc1NTQyMkJEMTgwNjJCQjIwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkI5
MTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNzU1
NDIyQzMxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4gaW4gQ29weSBGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTU0MjJDMDE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbiAqLzsgfTsKKwkJNzU1NDIyQzQxODA2MkJGOTAwNDZGNkE4IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHkuY3BwICovOyB9OworCQk3NTU0MjJDQjE4MDY1MDAyMDA0NkY2QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzU1NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNw
cCAqLzsgfTsKKwkJNzU1NDIyQ0MxODA3NzNDRTAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0
MjJDNzE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCAqLzsgfTsKKwkJ
NzU5Q0NENTgxODA4RjE2NDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFu
Z2VDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU5Q0NENTQxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlD
aGFuZ2VDbGllbnQuY3BwICovOyB9OworCQk3NTlDQ0Q1OTE4MDhGMTY5MDA3OEU4QTggLyogV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAqLzsgfTsKKwkJNzU5Q0NENUEx
ODA4RjYxNjAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkJGMTgwNjJCRTQwMDQ2
RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggKi87IH07CisJCTc1RTc0OUU5MTgw
REJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUU3NDlFNTE4
MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovOyB9OworCQk3NUU3NDlFQTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzVFNzQ5RTYxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2Fn
ZXMuaCAqLzsgfTsKKwkJNzVFNzQ5RUIxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzVFNzQ5RTcxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk3NUU3NDlFQzE4
MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUU3NDlFODE4MERC
Qjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi87IH07
CiAJCTc2MkI3NDhEMTIwQkM3NUMwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzYyQjc0ODQxMjBC
QkEyRDAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzgwMUMwOTkxNDIyOTBDNDAwRkFGOUFG
IC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzgwMUMwOTUxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1
bHQuY3BwICovOyB9OwogCQk3ODAxQzA5QTE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJl
c3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzgw
MUMwOTYxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuaCAqLzsgfTsKQEAgLTEz
NTAsOSArMTM2NCwxMiBAQAogCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDE7CiAJCQlmaWxlcyA9ICgK
IAkJCQk1MTBDQzg0OTE2MTNDODVDMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MuYXBwIGluIENv
cHkgRmlsZXMgKi8sCisJCQkJNzU1NDIyQkMxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0
YU1hbmFnZXIuaCBpbiBDb3B5IEZpbGVzICovLAogCQkJCUJDREUwQUJGMTMyNzI3MDgwMDEyNTlG
QiAvKiBQbHVnaW5Qcm9jZXNzLmFwcCBpbiBDb3B5IEZpbGVzICovLAogCQkJCTUxQTYwQjJBMTgw
Q0NFQjUwMEYzQkY1MCAvKiBEYXRhYmFzZVByb2Nlc3MuYXBwIGluIENvcHkgRmlsZXMgKi8sCisJ
CQkJNzU1NDIyQzMxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4gaW4gQ29weSBGaWxlcyAqLywKIAkJCQkxQTUwREI2NjExMEEzRDU3MDAwRDNG
RTUgLyogV2ViUHJvY2Vzcy5hcHAgaW4gQ29weSBGaWxlcyAqLywKKwkJCQk3NTU0MjJCQjE4MDYy
QjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gQ29weSBGaWxlcyAqLywK
IAkJCSk7CiAJCQluYW1lID0gIkNvcHkgRmlsZXMiOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CkBAIC0yMDMwLDYgKzIwNDcsMjAgQEAKIAkJNkVFODQ5QzYxMzY4
RDkyRDAwMzhENDgxIC8qIFdLSW5zcGVjdG9yUHJpdmF0ZU1hYy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXS0luc3BlY3RvclByaXZhdGVNYWMuaDsgcGF0aCA9IG1hYy9XS0lu
c3BlY3RvclByaXZhdGVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI4RTg2
RUYxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTcyOEU4NkYwMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbG9yUGlj
a2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJCOTE4MDYyQjlD
MDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQkExODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tPcmlnaW5EYXRhTWFu
YWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJCRTE4MDYyQkU0MDA0
NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQkYxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3NTU0MjJDMDE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDNjE4
MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwOyBwYXRoID0g
T3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTc1NTQyMkM3MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJPcmlnaW5EYXRhTWFuYWdl
ci5oOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDODE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViT3JpZ2lu
RGF0YU1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGggPSBPcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFN
YW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTlDQ0Q1
NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlD
aGFuZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3NUU3NDlFNTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
T3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3NUU3NDlFNjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJPcmlnaW5E
YXRhTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1RTc0
OUU3MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3NUU3NDlFODE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3NjJCNzQ4MTEyMEJCQTAxMDA4MTkzMzkgLyogRm9udFNtb290aGluZ0xldmVsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRTbW9vdGhpbmdMZXZlbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQ
cmVmZXJlbmNlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQ
cmVmZXJlbmNlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzgwMUMw
OTUxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0zODM5LDYgKzM4NzAsMTYgQEAKIAkJCW5hbWUgPSBtYWM7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk3NTU0MjJDNTE4MDY0RkZDMDA0NkY2
QTggLyogT3JpZ2luRGF0YSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkJNzU1NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
LmNwcCAqLywKKwkJCQk3NTU0MjJDNzE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXIuaCAqLywKKwkJCQk3NTU0MjJDODE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJbmFtZSA9IE9yaWdpbkRhdGE7CisJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk3Q0IxNkZFMTE3MjRCOUI1MDA3QTBB
OTUgLyogUGx1Z0luU2FuZGJveFByb2ZpbGVzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKQEAgLTM4ODgsNiArMzkyOSw3IEBACiAJCUJDMDMyRDVDMTBGNDM2RDUw
MDU4QzE1QSAvKiBXZWJQcm9jZXNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQk3NTU0MjJDNTE4MDY0RkZDMDA0NkY2QTggLyogT3JpZ2luRGF0YSAqLywK
IAkJCQk1MTJFMzUyQTEzMEI1NTk5MDBBQkQxOUEgLyogQXBwbGljYXRpb25DYWNoZSAqLywKIAkJ
CQkzMzA5MzQ0QjEzMTVCOTNBMDA5N0E3QkMgLyogQ29va2llcyAqLywKIAkJCQk1MTJBOTc1NDE4
MERGOTI3MDAzOUExNDkgLyogRGF0YWJhc2VzICovLApAQCAtNDExOCw2ICs0MTYwLDExIEBACiAJ
CQkJQkNGNjlGQTAxMTc2RDAxNDAwNDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhLmggKi8sCiAJ
CQkJQkMxREZFQTMxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
UHJveHkuY3BwICovLAogCQkJCUJDMURGRUEyMTJCMzFGODcwMDVERjczMCAvKiBXZWJPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggKi8sCisJCQkJNzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICovLAorCQkJCTc1NTQyMkJGMTgwNjJC
RTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggKi8sCisJCQkJNzU1NDIy
QzAxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4gKi8sCisJCQkJNzU5Q0NENTQxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwICovLAorCQkJCTc1OUNDRDU1MTgwOEYxNjAwMDc4RThB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggKi8sCiAJCQkJNTE1
MzU2OUExMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8s
CiAJCQkJNTE1MzU2OUIxMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVu
dC5oICovLAogCQkJCUJDN0I2MjA1MTI5QTBBNjcwMEQxNzRBNCAvKiBXZWJQYWdlR3JvdXAuY3Bw
ICovLApAQCAtNDIyMSw2ICs0MjY4LDggQEAKIAkJCQlCQzg1N0ZFNDEyQjg0M0Q4MDBFREVCMkUg
LyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmggKi8sCiAJCQkJQkMxREZFOEUxMkIzMUNBODAwNURG
NzMwIC8qIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwICovLAogCQkJCUJDMURGRThEMTJC
MzFDQTgwMDVERjczMCAvKiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggKi8sCisJCQkJNzU1
NDIyQjkxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovLAorCQkJ
CTc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmggKi8sCiAJ
CQkJQkNENTk3RDQxMTJCNTZEQzAwRUM4QzIzIC8qIFdLUGFnZS5jcHAgKi8sCiAJCQkJQkNENTk3
RDUxMTJCNTZEQzAwRUM4QzIzIC8qIFdLUGFnZS5oICovLAogCQkJCUJDN0I2MzM2MTJBNDVBQkEw
MEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5jcHAgKi8sCkBAIC00OTMzLDYgKzQ5ODIsMTAgQEAKIAkJ
QzBDRTcyOUQxMjQ3RTcxRDAwQkMwRUM0IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNzVFNzQ5RTUxODBEQkI5ODAwMDg4
QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk3
NUU3NDlFNjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5o
ICovLAorCQkJCTc1RTc0OUU3MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk3NUU3NDlFODE4MERCQjk4MDAwODhC
QTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJNTEyRjU4
QTAxMkE4ODNBRDAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCiAJCQkJNTEyRjU4QTExMkE4ODNBRDAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9u
TWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJRTE3QUUyQzIxNkI5QzYzQTAwMUM0MkYxIC8qIGNv
bS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IgKi8sCkBAIC01NDA3LDkgKzU0NjAsMTEg
QEAKIAkJCQlCQ0RFMDU5QjExQ0RBOEFFMDBFNDFBRjEgLyogV2ViQ29udGV4dEluamVjdGVkQnVu
ZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg3MUI1QzEyN0NCODlEMDBGNzYyMzIg
LyogV2ViQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyRDc3MTBGNDM3OEQw
MDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzVF
NzQ5RUMxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyOTM1RDgxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNv
bnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwRkJCOUIxMjg4Qzk1RTAwQUZG
REY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQUNC
QjgyMTI3QThCQUQwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVByb3h5LmggaW4gSGVhZGVycyAq
LywKKwkJCQk3NUU3NDlFQTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBQ0JCQTAxMjdBOEYyQzAwRDIwM0I5IC8q
IFdlYkNvbnRleHRNZW51UHJveHlNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQ0I3NUM2MTIw
M0ExQ0UwMDIyMkQxQiAvKiBXZWJDb250ZXh0TWVzc2FnZUtpbmRzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0VFN0QwRTEyODQ2RjY5MDA5ODI3REEgLyogV2ViQ29udGV4dE1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKQEAgLTU2NzAsNiArNTcyNSw3IEBACiAJCQkJQkNEREIzMkIxMjRFQzJBQjAw
NDhEMTNDIC8qIFdLU2hhcmVkQVBJQ2FzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDYx
MjRGRjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYx
QTEyNEZGMDM3MDA2OEYyMEEgLyogV0tTdHJpbmdDRi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU5
Q0NENTkxODA4RjE2OTAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTA5OTgwMTI1NkE5ODIwMDA4Mzc1NiAvKiBX
S1N0cmluZ1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3N0VBRDQ4MTdFMkM3N0IwMDJE
MTkzRCAvKiBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBNEE5QUE4MTJCN0U3OTYwMDhGRTk4NCAvKiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLApAQCAtNTY4MCwxMSArNTczNiwxMyBAQAogCQkJCUJDNDA3NjBDMTI0
RkYwMjcwMDY4RjIwQSAvKiBXS1VSTFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3
NjI5MTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlcXVlc3ROUy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM0MDc2MEUxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2UuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTc1OUNDRDVBMTgwOEY2MTYwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYyQjEyNEZGMDQwMDA2OEYyMEEgLyog
V0tVUkxSZXNwb25zZU5TLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNjExM0UyOTEyNkNFMTlCMDA1
N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
ODY5OUI1MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
ODY5OUI3MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXdJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkZBNjE3OUYxMkYwQjk5RDAwMzNFMENBIC8qIFdLVmlld1ByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTc1NTQyMkNDMTgwNzczQ0UwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVFMUFGRTkxNkIyMEI3NTAwNkNDMUYyIC8qIFdL
V2ViQXJjaGl2ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVFMUFGRUIxNkIyMEI3RTAwNkNDMUYy
IC8qIFdLV2ViQXJjaGl2ZVJlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk4OUQ4MjE2
MUE3RTVEMDAwRDQ2RDMgLyogV0tXZWJQcm9jZXNzUGx1Z0luLmggaW4gSGVhZGVycyAqLywKQEAg
LTY0ODcsNiArNjU0NSw3IEBACiAJCQkJQkNFRTdEQzYxMjhCNjQ1RDAwOTgyN0RBIC8qIEluamVj
dGVkQnVuZGxlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRkEyRDc0MTUyMTJERjEw
MEMxQkEwQiAvKiBJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzQ5ODYxOTEyNEQxMEUyMDBEODM0RTEgLyogSW5qZWN0ZWRCdW5kbGVIaXRU
ZXN0UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1RTc0OUU5MTgwREJCOTgwMDA4OEJB
NiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzIwNEVFNjExQzgzRUE5MDA4RjMzNzUgLyogSW5qZWN0ZWRCdW5kbGVNYWMubW0g
aW4gU291cmNlcyAqLywKIAkJCQlCQzgxNDdENjEyRjY2RDMxMDA3QjJDMzIgLyogSW5qZWN0ZWRC
dW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNEJFRUFDMTIw
QTBBNUYwMEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC02NDk1LDYgKzY1NTQsNyBAQAogCQkJCUUxRUU1M0U3MTFGOENGRkIwMENDQkVFNCAv
KiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkMxNEUxMDkxMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1QzY2QTAxMzRCOUQzODAwNEZFMkE4IC8qIEluamVj
dGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzU1
NDIyQ0IxODA2NTAwMjAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDQThDNkE4MTFFM0JBNUYwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4MTQ3QUExMkY2NENEQTAw
N0IyQzMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk2NTlDNTUxRTEzMDAwNjQxMDAyNUMwQzIgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVz
b3VyY2VMb2FkQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjYwNSw2ICs2NjY1LDcgQEAK
IAkJCQkxQTA0M0I1RDEyNEQ1RTlEMDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMDQzREMyMTI0RkY4NzUwMEZGQkZC
NSAvKiBQbHVnaW5Qcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJEOTIyMTEyODFEQzFC
MDAxRUI5NjIgLyogUGx1Z2luUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQk3NTU0MjJD
NDE4MDYyQkY5MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQThFRkE3MDEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NENjIyNzcxNzM5RDg2MzAwNUJE
N0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4Mjg0
NEQxNkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tIGluIFNvdXJj
ZXMgKi8sCkBAIC02NzI1LDYgKzY3ODYsNyBAQAogCQkJCUJDQjlGNkExMTEyM0E4NEIwMEExMzdF
MCAvKiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkMxMTFCMEUxMTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1lUHJveHkuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0Q3M0JBNTMxMzFCNjQ1QjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1NTQyMkJEMTgwNjJCQjIwMDQ2RjZBOCAvKiBXS09y
aWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENzNCQTRFMTMxQUNEQjcw
MEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDRDZGNzVGNDEzMUI2NkQwMDBENkIyMUUgLyogV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRENBODVFRTEzMkFENzAxMDBFOTYx
REYgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAt
NjgwNCw2ICs2ODY2LDcgQEAKIAkJCQkxQTA0M0EwQTEyNEQxMUE5MDBGRkJGQjUgLyogV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwNDNGNjkxMjUxNEQ4QjAw
RkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDMzA2ODI1MTI1QTZCOTQwMEU3MTI3OCAvKiBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1RTc0OUVCMTgwREJCOTgwMDA4
OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDMzA2NUM0MTI1OTJGODkwMEU3MTI3OCAvKiBXZWJQcm9jZXNzTWFj
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMzMDY2QkUxMjVBNDQyMTAwRTcxMjc4IC8qIFdlYlBy
b2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFCMTExMTJG
NUU0RjAwMzM3QkFCIC8qIFdlYlByb2Nlc3NQcm94eS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTY4
NjcsNiArNjkzMCw3IEBACiAJCQkJOUZCNUYzOTQxNjlFNkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4
dFByaXZhdGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMzA5MzQ1QTEzMTVCOTk4MDA5N0E3
QkMgLyogV0tDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMkY1OEY5MTJB
ODhBNTQwMDYyOTUzMCAvKiBXS0NyZWRlbnRpYWwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzU5
Q0NENTgxODA4RjE2NDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VD
bGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc1RjcxMjRGRjAyNzAwNjhGMjBBIC8q
IFdLRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNjJBNzY2MTEyQjFBQkVEMDAwNUYxQjYg
LyogV0tEYXRhYmFzZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3REQ1QzIxODBE
QjdCNzAwODE2NjBCIC8qIERhdGFiYXNlUHJvY2Vzc01hYy5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRh
dGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJP
cmlnaW5EYXRhTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NTZmMTM2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3Jp
Z2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0
YU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgorI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2lu
Y2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
T3JpZ2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2guaD4KKworI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY29uc3QgY2hhciogV2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN1cHBs
ZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIldlYk9yaWdpbkRhdGFNYW5hZ2VyIjsKK30KKwor
V2ViT3JpZ2luRGF0YU1hbmFnZXI6OldlYk9yaWdpbkRhdGFNYW5hZ2VyKENoaWxkUHJvY2Vzcyog
Y2hpbGRQcm9jZXNzKQorICAgIDogbV9jaGlsZFByb2Nlc3MoY2hpbGRQcm9jZXNzKQoreworICAg
IG1fY2hpbGRQcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOworfQorCit2b2lkIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyOjpnZXRPcmlnaW5zKFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzLCB1aW50
NjRfdCBjYWxsYmFja0lEKQoreworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4g
b3JpZ2luczsKKworICAgIC8vIEZJWE1FOiBwb3B1bGF0ZSBvcmlnaW5zCisKKyAgICBWZWN0b3I8
U2VjdXJpdHlPcmlnaW5EYXRhPiBpZGVudGlmaWVyczsKKyAgICBpZGVudGlmaWVycy5yZXNlcnZl
Q2FwYWNpdHkob3JpZ2lucy5zaXplKCkpOworCisgICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+Pjo6aXRlcmF0b3IgZW5kID0gb3JpZ2lucy5lbmQoKTsKKyAgICBIYXNoU2V0PFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4+OjppdGVyYXRvciBpID0gb3JpZ2lucy5iZWdpbigpOworICAgIGZv
ciAoOyBpICE9IGVuZDsgKytpKSB7CisgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3Jp
Z2luID0gKmk7CisKKyAgICAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbkRhdGE7CisgICAg
ICAgIG9yaWdpbkRhdGEucHJvdG9jb2wgPSBvcmlnaW4tPnByb3RvY29sKCk7CisgICAgICAgIG9y
aWdpbkRhdGEuaG9zdCA9IG9yaWdpbi0+aG9zdCgpOworICAgICAgICBvcmlnaW5EYXRhLnBvcnQg
PSBvcmlnaW4tPnBvcnQoKTsKKworICAgICAgICBpZGVudGlmaWVycy51bmNoZWNrZWRBcHBlbmQo
b3JpZ2luRGF0YSk7CisgICAgfQorCisgICAgbV9jaGlsZFByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OkRpZEdldE9yaWdpbnMoaWRlbnRpZmllcnMsIGNh
bGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlRW50
cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywgY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhJiBvcmlnaW5EYXRhKQoreworICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2lu
ID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnByb3RvY29sLCBvcmlnaW5EYXRh
Lmhvc3QsIG9yaWdpbkRhdGEucG9ydCk7CisgICAgaWYgKCFvcmlnaW4pCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIEZJWE1FOiBkZWxldGUgY2FjaGUKK30KKwordm9pZCBXZWJPcmlnaW5EYXRh
TWFuYWdlcjo6ZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFUeXBlcyB0eXBlcykKK3sKKyAg
ICAvLyBGSVhNRTogZGVsZXRlIGVudHJpZXMKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdl
cjo6c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKQoreworICAg
IC8vIEZJWE1FOiBzdGFydCBvYnNlcnZpbmcgY2hhbmdlcworfQorCit2b2lkIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFUeXBlcyB0eXBlcykK
K3sKKyAgICAvLyBGSVhNRTogc3RvcCBvYnNlcnZpbmcgY2hhbmdlcworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2lu
RGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9P
cmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOThlYTUxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5oCkBAIC0wLDAgKzEsNjMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk9yaWdpbkRhdGFNYW5hZ2VyX2gKKyNk
ZWZpbmUgV2ViT3JpZ2luRGF0YU1hbmFnZXJfaAorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCisjaW5jbHVkZSAiV0tPcmlnaW5EYXRhTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYlByb2Nl
c3NTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBDaGls
ZFByb2Nlc3M7CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworCitjbGFzcyBXZWJPcmlnaW5E
YXRhTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIENvcmVJUEM6
Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViT3JpZ2luRGF0
YU1hbmFnZXIpOworcHVibGljOgorICAgIFdlYk9yaWdpbkRhdGFNYW5hZ2VyKENoaWxkUHJvY2Vz
cyopOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisKKyAgICB2
b2lkIGRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhVHlwZXMpOworCitwcml2YXRlOgorICAg
IHZvaWQgZ2V0T3JpZ2lucyhXS09yaWdpbkRhdGFUeXBlcywgdWludDY0X3QpOworICAgIHZvaWQg
ZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFUeXBlcywgY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJik7CisgICAgdm9pZCBzdGFydE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRh
VHlwZXMpOworICAgIHZvaWQgc3RvcE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhVHlwZXMp
OworCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpIE9WRVJSSURFOworCisgICAgQ2hpbGRQcm9jZXNzKiBtX2NoaWxkUHJvY2VzczsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViT3JpZ2luRGF0YU1hbmFn
ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5NGU2MzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJPcmlnaW5EYXRhTWFuYWdlciB7CisgICAgdm9pZCBH
ZXRPcmlnaW5zKHVpbnQzMl90IHR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIHZvaWQg
RGVsZXRlRW50cmllc0Zvck9yaWdpbih1aW50MzJfdCB0eXBlcywgV2ViS2l0OjpTZWN1cml0eU9y
aWdpbkRhdGEgb3JpZ2luSWRlbnRpZmllcikKKyAgICB2b2lkIERlbGV0ZUFsbEVudHJpZXModWlu
dDMyX3QgdHlwZXMpCisgICAgdm9pZCBTdGFydE9ic2VydmluZ0NoYW5nZXModWludDMyX3QgdHlw
ZXMpCisgICAgdm9pZCBTdG9wT2JzZXJ2aW5nQ2hhbmdlcyh1aW50MzJfdCB0eXBlcykKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214387</attachid>
            <date>2013-10-16 13:16:44 -0700</date>
            <delta_ts>2013-10-16 14:09:09 -0700</delta_ts>
            <desc>rebase</desc>
            <filename>122781l.diff</filename>
            <type>text/plain</type>
            <size>63804</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggN2U2NTY0Mi4uZDM4MzQ1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTUyLDYgKzUyLDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUiCiAgICAgIiR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvTmV0d29yayIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL09yaWdpbkRh
dGEiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUiCkBAIC0zMzEsNiArMzMyLDggQEAgc2V0KFdlYktp
dDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAK
ICAgICBVSVByb2Nlc3MvV2ViTmV0d29ya0luZm9Qcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3Mv
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eUNoYW5nZUNsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51
Q2xpZW50LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuY3BwCiAgICAgVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM3OCw2ICszODEsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3Bw
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAKKyAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAKICAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwCkBAIC00OTMsNiArNDk3LDggQEAgc2V0
KFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCiAKKyAgICBXZWJQcm9jZXNzL09yaWdpbkRh
dGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luLmNwcAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5j
cHAKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
LmNwcApAQCAtNTg1LDYgKzU5MSw3IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAg
ICAgVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNz
L1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2Vi
TmV0d29ya0luZm9NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyAgICBVSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CiAgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
QEAgLTYyNSw2ICs2MzIsOCBAQCBzZXQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUwogCiAgICAg
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIubWVzc2FnZXMu
aW4KIAorICAgIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNz
YWdlcy5pbgorCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0
aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94
eS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU1YjlmNzQuLmM0MDBiZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw3NCBAQAorMjAxMy0xMC0xNiAgTWFydGluIEhvY2sgIDxtaG9ja0BhcHBsZS5j
b20+CisKKyAgICAgICAgUmVmYWN0b3Igc3RvcmVkIHdlYnNpdGUgZGF0YSBBUElzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI3ODEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV2ViT3JpZ2luRGF0
YU1hbmFnZXIgYWxvbmcgd2l0aCBjb3JyZXNwb25kaW5nIGNsYXNzCisgICAgICAgIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkgYW5kIEFQSSBXS09yaWdpbkRhdGFNYW5hZ2VyLgorCisgICAgICAg
IEN1cnJlbnRseSwgdGhlIG5ldyBmaWxlcyBhcmUgdW51c2VkLgorCisgICAgICAgIFdLT3JpZ2lu
RGF0YU1hbmFnZXIgc2hvdWxkIHN1YnN1bWUgdGhlIGZ1bmN0aW9uYWxpdHkgb2Y6CisgICAgICAg
IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIsIFdLQ29va2llTWFuYWdlciwgV0tEYXRhYmFzZU1h
bmFnZXIsCisgICAgICAgIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlciwgV0tNZWRpYUNhY2hlTWFu
YWdlciwKKyAgICAgICAgV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIsIGFuZCBXS1Jlc291cmNlQ2Fj
aGVNYW5hZ2VyLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAg
ICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAg
ICAoV0tDb250ZXh0R2V0T3JpZ2luRGF0YU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRh
TWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFuYWdlckdldFR5cGVJ
RCk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2lucyk6CisgICAgICAgIChX
S09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXS09y
aWdpbkRhdGFNYW5hZ2VyRGVsZXRlQWxsRW50cmllcyk6CisgICAgICAgIChXS09yaWdpbkRhdGFN
YW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFn
ZXJTdG9wT2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyU2V0
Q2hhbmdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFu
YWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5OjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Ojp+V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0cm95ZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpwcm9jZXNzRGlk
Q2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzaG91
bGRUZXJtaW5hdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
OjpyZWZXZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdl
YktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2lucyk6CisgICAgICAg
IChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlbGV0ZUVudHJpZXNGb3JPcmln
aW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxldGVB
bGxFbnRyaWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6
c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eTo6c3RvcE9ic2VydmluZ0NoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5OjpzZXRDaGFuZ2VDbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdl
Q2xpZW50OjpkaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL09yaWdpbkRhdGEvV2Vi
T3JpZ2luRGF0YU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2lu
RGF0YU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2lu
RGF0YU1hbmFnZXI6OldlYk9yaWdpbkRhdGFNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
T3JpZ2luRGF0YU1hbmFnZXI6OmdldE9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmln
aW5EYXRhTWFuYWdlcjo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5nQ2hhbmdlcyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdl
ci5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTMtMTAtMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIEZsZXNoIG91dCB0aGUgRGF0YWJhc2VQcm9jZXNzIChh
bmQgbGF1bmNoIGl0ISkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGIzZjk4ODMu
LjcwYjI4MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDAsNiArNDAsNyBA
QCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTWVkaWFDYWNoZSBcCiAgICAg
JChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zIFwKKyAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvT3JpZ2luRGF0YSBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1BsdWdpbnMgXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFn
ZSBcCkBAIC0xMDMsNiArMTA0LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViTWVk
aWFDYWNoZU1hbmFnZXIgXAogICAgIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkgXAogICAgIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIgXAorICAgIFdlYk9yaWdpbkRhdGFNYW5hZ2VyIFwKKyAgICBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5IFwKICAgICBXZWJQYWdlIFwKICAgICBXZWJQYWdlR3Jv
dXBQcm94eSBcCiAgICAgV2ViUGFnZVByb3h5IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KaW5kZXggZTdl
MTE3Yi4uZDJlZWE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0K
KysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KQEAgLTE1NSw2ICsxNTUsNyBAQCBs
aWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJ
X01JTk9SX1ZFUlNJT05AX2xhX0NQUAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTWVkaWFDYWNoZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrSW5mbyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zIFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09y
aWdpbkRhdGEgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3Vy
Y2VDYWNoZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdl
IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAgXApAQCAtMzgz
LDYgKzM4NCw3IEBAIHZwYXRoICUubWVzc2FnZXMuaW4gPSBcCiAJJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL05ldHdvcmsgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyBcCiAJJChX
ZWJLaXQyKS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9PcmlnaW5EYXRhIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAJJChXZWJL
aXQyKS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9T
dG9yYWdlIFwKQEAgLTc0Niw2ICs3NDgsNyBAQCBFWFRSQV9ESVNUICs9IFwKIAkkKHNoZWxsIGxz
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2Vi
S2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy8qLmluKSBcCisJJChzaGVsbCBscyAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIp
L1dlYlByb2Nlc3MvUGx1Z2lucy8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvUmVzb3VyY2VDYWNoZS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvU3RvcmFnZS8qLmluKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAw
YzBlMDU2Li5iYzJmMTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTgzLDYg
KzgzLDcgQEAgd2Via2l0Ml9oX2FwaSArPSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0Mv
V0tOb3RpZmljYXRpb25Qcm92aWRlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9X
S09wZW5QYW5lbFBhcmFtZXRlcnMuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9X
S09yaWdpbkRhdGFNYW5hZ2VyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZUdyb3VwLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIFwKIAkkKFdl
YktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggXApAQCAtMjIzLDYgKzIyNCwx
MCBAQCB3ZWJraXQyX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIv
V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIFwKKwlE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJPcmlnaW5EYXRhTWFuYWdlck1lc3Nh
Z2VzLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
UGFnZUdyb3VwUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYlBhZ2VHcm91cFByb3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJQYWdlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTY0MSw2ICs2NDYsOCBAQCB3
ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09w
ZW5QYW5lbFBhcmFtZXRlcnMuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlR3JvdXAuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlR3JvdXAuaCBcCkBAIC05ODAsNiArOTg3LDEwIEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvUHJvdmlkZXIuaCBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3Bw
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQ
cm94eS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Q2hhbmdlQ2xpZW50LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAgXApAQCAtMTEzNyw2ICsxMTQ4LDggQEAgd2Via2l0Ml9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBcCiAJU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuaCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk9yaWdp
bkRhdGFNYW5hZ2VyLmNwcCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaCBcCiAJU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS0Jhc2UuaAppbmRleCA2OTk0Y2JkLi4xOTdhZDlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0xMTksNiArMTE5LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogV0tOb3RpZmljYXRpb25Q
ZXJtaXMKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uUHJvdmlkZXIq
IFdLTm90aWZpY2F0aW9uUHJvdmlkZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S09wZW5QYW5lbFBhcmFtZXRlcnMqIFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIqIFdLT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09yaWdpbkRh
dGFNYW5hZ2VyKiBXS09yaWdpbkRhdGFNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tQYWdlKiBXS1BhZ2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Bh
Z2VHcm91cCogV0tQYWdlR3JvdXBSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Bs
dWdpblNpdGVEYXRhTWFuYWdlciogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWY7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggNDQxZTA1ZS4uNzAzMjFiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUElPYmplY3QuaApAQCAtMTAzLDYgKzEwMyw3IEBAIHB1YmxpYzoKICAgICAgICAgVHlwZU5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LAogICAgICAgICBUeXBlT3BlblBhbmVsUGFyYW1l
dGVycywKICAgICAgICAgVHlwZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLAorICAgICAgICBUeXBl
T3JpZ2luRGF0YU1hbmFnZXIsCiAgICAgICAgIFR5cGVQYWdlLAogICAgICAgICBUeXBlUGFnZUdy
b3VwLAogICAgICAgICBUeXBlUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IDY0YzhkMWEuLmRkODhkN2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTg3LDYgKzg3LDcg
QEAgY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI7CiBjbGFzcyBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOwogY2xhc3MgV2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eTsKK2NsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJQ
bHVnaW5TaXRlRGF0YU1hbmFnZXI7CkBAIC0xMzMsNiArMTM0LDcgQEAgV0tfQUREX0FQSV9NQVBQ
SU5HKFdLTm90aWZpY2F0aW9uUHJvdmlkZXJSZWYsIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyKQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLTm90aWZpY2F0aW9uUmVmLCBXZWJOb3RpZmljYXRpb24pCiBX
S19BRERfQVBJX01BUFBJTkcoV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmLCBXZWJPcGVuUGFuZWxQ
YXJhbWV0ZXJzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJS
ZWYsIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkpCitXS19BRERfQVBJX01BUFBJTkco
V0tPcmlnaW5EYXRhTWFuYWdlclJlZiwgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSkKIFdLX0FE
RF9BUElfTUFQUElORyhXS1BhZ2VHcm91cFJlZiwgV2ViUGFnZUdyb3VwKQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLUGFnZVJlZiwgV2ViUGFnZVByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUGx1
Z2luU2l0ZURhdGFNYW5hZ2VyUmVmLCBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IGE0N2U0OWYuLmZi
ZmJjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
CkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5o
IgogI2luY2x1ZGUgIldlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oIgogI2lm
IEVOQUJMRShTUUxfREFUQUJBU0UpCiAjaW5jbHVkZSAiV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHku
aCIKQEAgLTI3NCw2ICsyNzUsMTEgQEAgV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBXS0NvbnRl
eHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFIKICAgICByZXR1
cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5zdXBwbGVtZW50PFdlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyUHJveHk+KCkpOwogfQogCitXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIFdLQ29udGV4dEdl
dE9yaWdpbkRhdGFNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworICAgIHJldHVy
biB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPnN1cHBsZW1lbnQ8V2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eT4oKSk7Cit9CisKIHZvaWQgV0tDb250ZXh0U3RhcnRNZW1vcnlTYW1wbGVyKFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmLCBXS0RvdWJsZVJlZiBpbnRlcnZhbCkKIHsKICAgICB0b0ltcGwo
Y29udGV4dFJlZiktPnN0YXJ0TWVtb3J5U2FtcGxlcih0b0ltcGwoaW50ZXJ2YWwpLT52YWx1ZSgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAppbmRleCAzY2U3
MzFlLi5lZmQ2NzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5oCkBAIC0xOTUsNyArMTk1LDggQEAgV0tfRVhQT1JUIFdLTmV0d29ya0luZm9NYW5hZ2VyUmVm
IFdLQ29udGV4dEdldE5ldHdvcmtJbmZvTWFuYWdlcihXS0NvbnRleHRSZWYgY28KIFdLX0VYUE9S
VCBXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0Tm90aWZpY2F0aW9uTWFuYWdl
cihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tQbHVnaW5TaXRlRGF0YU1hbmFn
ZXJSZWYgV0tDb250ZXh0R2V0UGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250
ZXh0KTsKIFdLX0VYUE9SVCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFJl
c291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKLSAgICAKK1dLX0VYUE9S
VCBXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIFdLQ29udGV4dEdldE9yaWdpbkRhdGFNYW5hZ2VyKFdL
Q29udGV4dFJlZiBjb250ZXh0KTsKKwogdHlwZWRlZiB2b2lkICgqV0tDb250ZXh0R2V0U3RhdGlz
dGljc0Z1bmN0aW9uKShXS0RpY3Rpb25hcnlSZWYgc3RhdGlzdGljcywgV0tFcnJvclJlZiBlcnJv
ciwgdm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dEdldFN0
YXRpc3RpY3MoV0tDb250ZXh0UmVmIGNvbnRleHQsIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCwgV0tD
b250ZXh0R2V0U3RhdGlzdGljc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKIFdLX0VYUE9SVCB2b2lkIFdL
Q29udGV4dEdldFN0YXRpc3RpY3NXaXRoT3B0aW9ucyhXS0NvbnRleHRSZWYgY29udGV4dCwgV0tT
dGF0aXN0aWNzT3B0aW9ucyBzdGF0aXN0aWNzTWFzaywgdm9pZCogZnVuY3Rpb25Db250ZXh0LCBX
S0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24gZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmODUzOTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAK
QEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXS09yaWdpbkRhdGFNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNp
bmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CisKK1dLVHlwZUlEIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRUeXBlSUQoKQoreworICAg
IHJldHVybiB0b0FQSShXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpBUElUeXBlKTsKK30KKwor
dm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2lucyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVm
IG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywgdm9pZCogY29u
dGV4dCwgV0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnNGdW5jdGlvbiBjYWxsYmFjaykKK3sK
KyAgICB0b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5nZXRPcmlnaW5zKHR5cGVzLCBBcnJh
eUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsKK30KKwordm9pZCBXS09yaWdp
bkRhdGFNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFNYW5hZ2VyUmVm
IG9yaWdpbkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywgV0tTZWN1cml0
eU9yaWdpblJlZiBvcmlnaW5SZWYpCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVm
KS0+ZGVsZXRlRW50cmllc0Zvck9yaWdpbih0eXBlcywgdG9JbXBsKG9yaWdpblJlZikpOworfQor
Cit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YU1h
bmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKQor
eworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPmRlbGV0ZUFsbEVudHJpZXModHlw
ZXMpOworfQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTdGFydE9ic2VydmluZ0NoYW5nZXMo
V0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRh
VHlwZXMgdHlwZXMpCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+c3RhcnRP
YnNlcnZpbmdDaGFuZ2VzKHR5cGVzKTsKK30KKwordm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3Rv
cE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdl
clJlZiwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFN
YW5hZ2VyUmVmKS0+c3RvcE9ic2VydmluZ0NoYW5nZXModHlwZXMpOworfQorCit2b2lkIFdLT3Jp
Z2luRGF0YU1hbmFnZXJTZXRDaGFuZ2VDbGllbnQoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmln
aW5EYXRhTWFuYWdlclJlZiwgY29uc3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCAq
Y2xpZW50KQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPnNldENoYW5nZUNs
aWVudChjbGllbnQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS09yaWdpbkRhdGFNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMjEwMDU0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV0tPcmlnaW5EYXRhTWFuYWdlcl9oCisjZGVmaW5lIFdLT3JpZ2luRGF0YU1hbmFn
ZXJfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVz
CitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBrV0tBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luRGF0YSA9IDEgPDwgMCwKKyAgICBrV0tDb29raWVPcmlnaW5EYXRhID0gMSA8PCAxLAor
ICAgIGtXS0RhdGFiYXNlT3JpZ2luRGF0YSA9IDEgPDwgMiwKKyAgICBrV0tLZXlWYWx1ZVN0b3Jh
Z2VPcmlnaW5EYXRhID0gMSA8PCAzLAorICAgIGtXS01lZGlhQ2FjaGVPcmlnaW5EYXRhID0gMSA8
PCA0LAorICAgIGtXS1BsdWdpbkRhdGFPcmlnaW5EYXRhID0gMSA8PCA1LAorICAgIGtXS1Jlc291
cmNlQ2FjaGVPcmlnaW5EYXRhID0gMSA8PCA2LAorCisgICAga1dLQWxsT3JpZ2luRGF0YSA9ICgx
IDw8IDcpIC0gMQorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tPcmlnaW5EYXRhVHlwZXM7CisKK1dL
X0VYUE9SVCBXS1R5cGVJRCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0VHlwZUlEKCk7CisKK3R5cGVk
ZWYgdm9pZCAoKldLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zRnVuY3Rpb24pKFdLQXJyYXlS
ZWYsIFdLRXJyb3JSZWYsIHZvaWQqKTsKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFn
ZXJHZXRPcmlnaW5zKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdL
T3JpZ2luRGF0YVR5cGVzIHR5cGVzLCB2b2lkKiBjb250ZXh0LCBXS09yaWdpbkRhdGFNYW5hZ2Vy
R2V0T3JpZ2luc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKKworV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5E
YXRhTWFuYWdlckRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBv
cmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMsIFdLU2VjdXJpdHlPcmln
aW5SZWYgb3JpZ2luKTsKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVB
bGxFbnRyaWVzKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3Jp
Z2luRGF0YVR5cGVzIHR5cGVzKTsKKworLy8gT3JpZ2luRGF0YU1hbmFnZXIgQ2xpZW50Cit0eXBl
ZGVmIHZvaWQgKCpXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2FsbGJhY2spKFdLT3JpZ2luRGF0
YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwor
c3RydWN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQgeworICAgIGludCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAgICAg
ICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKKyAgICBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hh
bmdlQ2FsbGJhY2sgICBkaWRDaGFuZ2U7Cit9OwordHlwZWRlZiBzdHJ1Y3QgV0tPcmlnaW5EYXRh
TWFuYWdlckNoYW5nZUNsaWVudCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50OworCitl
bnVtIHsga1dLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnRWZXJzaW9uID0gMCB9OworCitX
S19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdL
T3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3JpZ2luRGF0YVR5cGVz
IHR5cGVzKTsKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTdG9wT2JzZXJ2aW5n
Q2hhbmdlcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdp
bkRhdGFUeXBlcyB0eXBlcyk7CitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU2V0
Q2hhbmdlQ2xpZW50KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmdlciwgY29u
c3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCogY2xpZW50KTsKKyNpZmRlZiBfX2Nw
bHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS09yaWdpbkRhdGFNYW5hZ2VyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2RmNjFmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsMTUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCIKKwor
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgIldlYkNvbnRleHQuaCIK
KyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU2VjdXJpdHlP
cmlnaW4uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NvbnN0IGNoYXIqIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIldlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkiOworfQorCitQYXNzUmVmUHRyPFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk+IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNyZWF0ZShXZWJDb250ZXh0KiBjb250
ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eShjb250ZXh0KSk7Cit9CisKK1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCogY29udGV4dCkKKzogV2ViQ29udGV4dFN1cHBsZW1l
bnQoY29udGV4dCkKK3sKKyAgICBjb250ZXh0LT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7
Cit9CisKK1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6On5XZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5KCkKK3sKK30KKworCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHRE
ZXN0cm95ZWQoKQoreworICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tz
KTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpwcm9jZXNzRGlkQ2xvc2Uo
V2ViUHJvY2Vzc1Byb3h5KikKK3sKKyAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJheUNh
bGxiYWNrcyk7Cit9CisKK2Jvb2wgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c2hvdWxkVGVy
bWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXJyYXlDYWxs
YmFja3MuaXNFbXB0eSgpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnJl
ZldlYkNvbnRleHRTdXBwbGVtZW50KCkKK3sKKyAgICBBUElPYmplY3Q6OnJlZigpOworfQorCit2
b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQo
KQoreworICAgIEFQSU9iamVjdDo6ZGVyZWYoKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5OjpnZXRPcmlnaW5zKFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzLCBQYXNzUmVmUHRy
PEFycmF5Q2FsbGJhY2s+IHBycENhbGxiYWNrKQoreworICAgIGlmICghY29udGV4dCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBwcnBD
YWxsYmFjazsKKworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJ
RCgpOworICAgIG1fYXJyYXlDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLnJlbGVh
c2UoKSk7CisKKyAgICAvLyBGSVhNRSAoTXVsdGktV2ViUHJvY2Vzcyk6IDxyZGFyOi8vcHJvYmxl
bS8xMjIzOTc2NT4gTWFrZSBtYW5pcHVsYXRpbmcgY2FjaGUgaW5mb3JtYXRpb24gd29yayB3aXRo
IHBlci10YWIgV2ViUHJvY2Vzcy4KKyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1Jl
bGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6
R2V0T3JpZ2lucyh0eXBlcywgY2FsbGJhY2tJRCkpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHk6OmRpZEdldE9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0
YT4mIG9yaWdpbkRhdGFzLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIFJlZlB0cjxBcnJh
eUNhbGxiYWNrPiBjYWxsYmFjayA9IG1fYXJyYXlDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsK
KyAgICBwZXJmb3JtQVBJQ2FsbGJhY2tXaXRoU2VjdXJpdHlPcmlnaW5EYXRhVmVjdG9yKG9yaWdp
bkRhdGFzLCBjYWxsYmFjay5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eTo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywgV2Vi
U2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0YTsKKyAg
ICBzZWN1cml0eU9yaWdpbkRhdGEucHJvdG9jb2wgPSBvcmlnaW4tPnByb3RvY29sKCk7CisgICAg
c2VjdXJpdHlPcmlnaW5EYXRhLmhvc3QgPSBvcmlnaW4tPmhvc3QoKTsKKyAgICBzZWN1cml0eU9y
aWdpbkRhdGEucG9ydCA9IG9yaWdpbi0+cG9ydCgpOworCisgICAgLy8gRklYTUUgKE11bHRpLVdl
YlByb2Nlc3MpOiA8cmRhcjovL3Byb2JsZW0vMTIyMzk3NjU+IE1ha2UgbWFuaXB1bGF0aW5nIGNh
Y2hlIGluZm9ybWF0aW9uIHdvcmsgd2l0aCBwZXItdGFiIFdlYlByb2Nlc3MuCisgICAgY29udGV4
dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdl
czo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OkRlbGV0ZUVudHJpZXNGb3JPcmlnaW4odHlwZXMsIHNl
Y3VyaXR5T3JpZ2luRGF0YSkpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6
OmRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgaWYgKCFj
b250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FIChNdWx0aS1XZWJQcm9j
ZXNzKTogPHJkYXI6Ly9wcm9ibGVtLzEyMjM5NzY1PiBNYWtlIG1hbmlwdWxhdGluZyBjYWNoZSBp
bmZvcm1hdGlvbiB3b3JrIHdpdGggcGVyLXRhYiBXZWJQcm9jZXNzLgorICAgIGNvbnRleHQoKS0+
c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6Oldl
Yk9yaWdpbkRhdGFNYW5hZ2VyOjpEZWxldGVBbGxFbnRyaWVzKHR5cGVzKSk7Cit9CisKK3ZvaWQg
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2lu
RGF0YVR5cGVzIHR5cGVzKQoreworICAgIGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVj
ZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6U3RhcnRPYnNlcnZpbmdDaGFu
Z2VzKHR5cGVzKSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c3RvcE9i
c2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgaWYgKCFjb250
ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vz
c2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5h
Z2VyOjpTdGFydE9ic2VydmluZ0NoYW5nZXModHlwZXMpKTsKK30KKwordm9pZCBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5OjpzZXRDaGFuZ2VDbGllbnQoY29uc3QgV0tPcmlnaW5EYXRhTWFuYWdl
ckNoYW5nZUNsaWVudCAqY2xpZW50KQoreworICAgIG1fY2xpZW50LmluaXRpYWxpemUoY2xpZW50
KTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkaWRDaGFuZ2UoKQorewor
ICAgIG1fY2xpZW50LmRpZENoYW5nZSh0aGlzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGI3NDBkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHkuaApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eV9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJHZW5lcmljQ2FsbGJh
Y2suaCIKKyNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgorI2luY2x1ZGUgIldLT3JpZ2luRGF0YU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJD
b250ZXh0U3VwcGxlbWVudC5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlD
aGFuZ2VDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBDb3JlSVBD
IHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBX
ZWJTZWN1cml0eU9yaWdpbjsKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CisKK3R5cGVkZWYg
R2VuZXJpY0NhbGxiYWNrPFdLQXJyYXlSZWY+IEFycmF5Q2FsbGJhY2s7CisKK2NsYXNzIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHkgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpU
eXBlT3JpZ2luRGF0YU1hbmFnZXI+LCBwdWJsaWMgV2ViQ29udGV4dFN1cHBsZW1lbnQsIHByaXZh
dGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3Qg
Y2hhciogc3VwcGxlbWVudE5hbWUoKTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVhbCB+V2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eSgpOworCisgICAgdm9pZCBnZXRPcmlnaW5zKFdLT3JpZ2lu
RGF0YVR5cGVzLCBQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+KTsKKyAgICB2b2lkIGRlbGV0ZUVu
dHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhVHlwZXMsIFdlYlNlY3VyaXR5T3JpZ2luKik7Cisg
ICAgdm9pZCBkZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YVR5cGVzKTsKKworICAgIHZvaWQg
c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5cGVzKTsKKyAgICB2b2lkIHN0b3BP
YnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5cGVzKTsKKyAgICB2b2lkIHNldENoYW5nZUNs
aWVudChjb25zdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50Kik7CisKKyAgICB1c2lu
ZyBBUElPYmplY3Q6OnJlZjsKKyAgICB1c2luZyBBUElPYmplY3Q6OmRlcmVmOworCitwcml2YXRl
OgorICAgIGV4cGxpY2l0IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOwor
CisgICAgdm9pZCBkaWRHZXRPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+
JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkaWRDaGFuZ2UoKTsKKworICAgIC8v
IFdlYkNvbnRleHRTdXBwbGVtZW50CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQ
cm94eSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUZXJtaW5hdGUoV2ViUHJv
Y2Vzc1Byb3h5KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlZldlYkNvbnRl
eHRTdXBwbGVtZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmV2ViQ29udGV4
dFN1cHBsZW1lbnQoKSBPVkVSUklERTsKKworICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZl
cgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKworICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFJlZlB0cjxBcnJheUNhbGxiYWNrPj4gbV9hcnJheUNhbGxiYWNrczsKKworICAgIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQgbV9jbGllbnQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi43NmQ3NmI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNiBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5IHsKKyAgICBEaWRHZXRPcmlnaW5zKFZlY3RvcjxXZWJL
aXQ6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2luSWRlbnRpZmllcnMsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpOworICAgIERpZENoYW5nZSgpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY2MDFhOQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Q2hhbmdlQ2xpZW50LmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFu
Z2VDbGllbnQuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50OjpkaWRDaGFu
Z2UoV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSogb3JpZ2luRGF0YU1hbmFnZXIpCit7CisgICAg
aWYgKCFtX2NsaWVudC5kaWRDaGFuZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50
LmRpZENoYW5nZSh0b0FQSShvcmlnaW5EYXRhTWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8p
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhNzY3Y2QKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eUNoYW5nZUNsaWVudC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnRfaAorI2RlZmluZSBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50X2gKKworI2luY2x1ZGUgIkFQSUNsaWVudC5o
IgorI2luY2x1ZGUgIldLT3JpZ2luRGF0YU1hbmFnZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eTsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudCA6IHB1
YmxpYyBBUElDbGllbnQ8V0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCwga1dLT3JpZ2lu
RGF0YU1hbmFnZXJDaGFuZ2VDbGllbnRWZXJzaW9uPiB7CitwdWJsaWM6CisgICAgdm9pZCBkaWRD
aGFuZ2UoV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSopOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBkYzk2YTM0Li4xYzExYmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01OTIsNiArNTkyLDIwIEBACiAJCTZFRTg0
OUM4MTM2OEQ5MzkwMDM4RDQ4MSAvKiBXS0luc3BlY3RvclByaXZhdGVNYWMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRTg0OUM2MTM2OEQ5MkQwMDM4
RDQ4MSAvKiBXS0luc3BlY3RvclByaXZhdGVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjhFODZGMTE3OTUxODhDMDA4Nzg3OUUgLyogV2Vi
Q29sb3JQaWNrZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcyOEU4NkVGMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5oICov
OyB9OwogCQk3MjhFODZGMjE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjhFODZGMDE3
OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMubW0gKi87IH07CisJCTc1NTQyMkJC
MTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBDb3B5IEZpbGVz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkI5MTgwNjJCOUMwMDQ2
RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNzU1NDIyQkMxODA2MkI5
QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBDb3B5IEZpbGVzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBX
S09yaWdpbkRhdGFNYW5hZ2VyLmggKi87IH07CisJCTc1NTQyMkJEMTgwNjJCQjIwMDQ2RjZBOCAv
KiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFN
YW5hZ2VyLmNwcCAqLzsgfTsKKwkJNzU1NDIyQzMxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gaW4gQ29weSBGaWxlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJDMDE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLzsgfTsKKwkJNzU1NDIyQzQxODA2MkJG
OTAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICovOyB9OworCQk3NTU0MjJDQjE4MDY1
MDAyMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNzU1NDIyQ0MxODA3NzNDRTAwNDZG
NkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJDNzE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXIuaCAqLzsgfTsKKwkJNzU5Q0NENTgxODA4RjE2NDAwNzhFOEE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU5Q0NENTQxODA4RjE2MDAwNzhFOEE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwICovOyB9OworCQk3NTlDQ0Q1
OTE4MDhGMTY5MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU5Q0NE
NTUxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGll
bnQuaCAqLzsgfTsKKwkJNzU5Q0NENUExODA4RjYxNjAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1NTQyMkJGMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
LmggKi87IH07CisJCTc1RTc0OUU5MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NUU3NDlFNTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk3NUU3NDlFQTE4MERCQjk4MDAwODhC
QTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVFNzQ5RTYxODBEQkI5ODAwMDg4QkE2IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJNzVFNzQ5RUIxODBEQkI5ODAw
MDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVFNzQ5RTcxODBE
QkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovOyB9OworCQk3NUU3NDlFQzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NUU3NDlFODE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTc2MkI3NDhEMTIwQkM3NUMwMDgxOTMzOSAvKiBX
S1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzYyQjc0ODQxMjBCQkEyRDAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NzgwMUMwOTkxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzgwMUMwOTUxNDIyOTBDNDAw
RkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwICovOyB9OwogCQk3ODAxQzA5QTE0MjI5MEM0
MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzgwMUMwOTYxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRl
c3RSZXN1bHQuaCAqLzsgfTsKQEAgLTEzNTgsOSArMTM3MiwxMiBAQAogCQkJZHN0U3ViZm9sZGVy
U3BlYyA9IDE7CiAJCQlmaWxlcyA9ICgKIAkJCQk1MTBDQzg0OTE2MTNDODVDMDBEMDNFRDMgLyog
TmV0d29ya1Byb2Nlc3MuYXBwIGluIENvcHkgRmlsZXMgKi8sCisJCQkJNzU1NDIyQkMxODA2MkI5
QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBDb3B5IEZpbGVzICovLAogCQkJ
CUJDREUwQUJGMTMyNzI3MDgwMDEyNTlGQiAvKiBQbHVnaW5Qcm9jZXNzLmFwcCBpbiBDb3B5IEZp
bGVzICovLAogCQkJCTUxQTYwQjJBMTgwQ0NFQjUwMEYzQkY1MCAvKiBEYXRhYmFzZVByb2Nlc3Mu
YXBwIGluIENvcHkgRmlsZXMgKi8sCisJCQkJNzU1NDIyQzMxODA2MkJFNDAwNDZGNkE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gaW4gQ29weSBGaWxlcyAqLywKIAkJ
CQkxQTUwREI2NjExMEEzRDU3MDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5hcHAgaW4gQ29weSBGaWxl
cyAqLywKKwkJCQk3NTU0MjJCQjE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdl
ci5jcHAgaW4gQ29weSBGaWxlcyAqLywKIAkJCSk7CiAJCQluYW1lID0gIkNvcHkgRmlsZXMiOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC0yMDQ4LDYgKzIw
NjUsMjAgQEAKIAkJNkVFODQ5QzYxMzY4RDkyRDAwMzhENDgxIC8qIFdLSW5zcGVjdG9yUHJpdmF0
ZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0luc3BlY3RvclByaXZh
dGVNYWMuaDsgcGF0aCA9IG1hYy9XS0luc3BlY3RvclByaXZhdGVNYWMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzI4RTg2RUYxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlj
a2VyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yUGlja2Vy
TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4NkYwMTc5NTE4OEMwMDg3
ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3NTU0MjJCOTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS09yaWdpbkRhdGFNYW5h
Z2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQkExODA2MkI5QzAw
NDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tPcmlnaW5EYXRhTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3NTU0MjJCRTE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQkYx
ODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDMDE4MDYyQkU0MDA0NkY2QTggLyogV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3NTU0MjJDNjE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViT3JpZ2lu
RGF0YU1hbmFnZXIuY3BwOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkM3MTgwNjRGRkMwMDQ2RjZB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBXZWJPcmlnaW5EYXRhTWFuYWdlci5oOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmlnaW5E
YXRhTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDODE4MDY0
RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBuYW1lID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGggPSBP
cmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUU3NDlFNTE4MERCQjk4MDAwODhCQTYgLyog
V2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUU3NDlFNjE4MERCQjk4MDAwODhC
QTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTc1RTc0OUU3MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUU3NDlFODE4MERCQjk4MDAwODhC
QTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjJCNzQ4MTEyMEJCQTAxMDA4MTkzMzkgLyog
Rm9udFNtb290aGluZ0xldmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZv
bnRTbW9vdGhpbmdMZXZlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjJCNzQ4
NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzgwMUMwOTUxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RS
ZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSGl0VGVz
dFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zODYzLDYgKzM4OTQs
MTYgQEAKIAkJCW5hbWUgPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owor
CQk3NTU0MjJDNTE4MDY0RkZDMDA0NkY2QTggLyogT3JpZ2luRGF0YSAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNzU1NDIyQzYxODA2NEZGQzAwNDZGNkE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLywKKwkJCQk3NTU0MjJDNzE4MDY0RkZDMDA0
NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCAqLywKKwkJCQk3NTU0MjJDODE4MDY0RkZD
MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkpOwor
CQkJbmFtZSA9IE9yaWdpbkRhdGE7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owog
CQk3Q0IxNkZFMTE3MjRCOUI1MDA3QTBBOTUgLyogUGx1Z0luU2FuZGJveFByb2ZpbGVzICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTM5MTIsNiArMzk1Myw3
IEBACiAJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk3NTU0MjJDNTE4MDY0RkZDMDA0
NkY2QTggLyogT3JpZ2luRGF0YSAqLywKIAkJCQk1MTJFMzUyQTEzMEI1NTk5MDBBQkQxOUEgLyog
QXBwbGljYXRpb25DYWNoZSAqLywKIAkJCQkzMzA5MzQ0QjEzMTVCOTNBMDA5N0E3QkMgLyogQ29v
a2llcyAqLywKIAkJCQk1MTJBOTc1NDE4MERGOTI3MDAzOUExNDkgLyogRGF0YWJhc2VzICovLApA
QCAtNDE0Miw2ICs0MTg0LDExIEBACiAJCQkJQkNGNjlGQTAxMTc2RDAxNDAwNDcxQTUyIC8qIFdl
Yk5hdmlnYXRpb25EYXRhLmggKi8sCiAJCQkJQkMxREZFQTMxMkIzMUY4NzAwNURGNzMwIC8qIFdl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwICovLAogCQkJCUJDMURGRUEyMTJCMzFG
ODcwMDVERjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggKi8sCisJCQkJ
NzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3Bw
ICovLAorCQkJCTc1NTQyMkJGMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5LmggKi8sCisJCQkJNzU1NDIyQzAxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJNzU5Q0NENTQxODA4RjE2MDAwNzhF
OEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwICovLAorCQkJ
CTc1OUNDRDU1MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hh
bmdlQ2xpZW50LmggKi8sCiAJCQkJNTE1MzU2OUExMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VD
b250ZXh0TWVudUNsaWVudC5jcHAgKi8sCiAJCQkJNTE1MzU2OUIxMjkxQjFEMjAwMDc0OURDIC8q
IFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovLAogCQkJCUJDN0I2MjA1MTI5QTBBNjcwMEQx
NzRBNCAvKiBXZWJQYWdlR3JvdXAuY3BwICovLApAQCAtNDI0NSw2ICs0MjkyLDggQEAKIAkJCQlC
Qzg1N0ZFNDEyQjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmggKi8sCiAJ
CQkJQkMxREZFOEUxMkIzMUNBODAwNURGNzMwIC8qIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIu
Y3BwICovLAogCQkJCUJDMURGRThEMTJCMzFDQTgwMDVERjczMCAvKiBXS09wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyLmggKi8sCisJCQkJNzU1NDIyQjkxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2lu
RGF0YU1hbmFnZXIuY3BwICovLAorCQkJCTc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09y
aWdpbkRhdGFNYW5hZ2VyLmggKi8sCiAJCQkJQkNENTk3RDQxMTJCNTZEQzAwRUM4QzIzIC8qIFdL
UGFnZS5jcHAgKi8sCiAJCQkJQkNENTk3RDUxMTJCNTZEQzAwRUM4QzIzIC8qIFdLUGFnZS5oICov
LAogCQkJCUJDN0I2MzM2MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5jcHAgKi8sCkBA
IC00OTU3LDYgKzUwMDYsMTAgQEAKIAkJQzBDRTcyOUQxMjQ3RTcxRDAwQkMwRUM0IC8qIERlcml2
ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJNzVFNzQ5RTUxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk3NUU3NDlFNjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTc1RTc0OUU3MTgwREJCOTgwMDA4OEJB
NiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJ
CQk3NUU3NDlFODE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1l
c3NhZ2VzLmggKi8sCiAJCQkJNTEyRjU4QTAxMkE4ODNBRDAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0
aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTEyRjU4QTExMkE4ODNBRDAw
NjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJRTE3QUUy
QzIxNkI5QzYzQTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2Ig
Ki8sCkBAIC01NDM2LDkgKzU0ODksMTEgQEAKIAkJCQlCQ0RFMDU5QjExQ0RBOEFFMDBFNDFBRjEg
LyogV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTg3MUI1QzEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMDMyRDc3MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNzVFNzQ5RUMxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyOTM1RDgx
Mjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTEwRkJCOUIxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxQUNCQjgyMTI3QThCQUQwMEQyMDNCOSAvKiBXZWJDb250ZXh0
TWVudVByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NUU3NDlFQTE4MERCQjk4MDAwODhCQTYg
LyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFB
Q0JCQTAxMjdBOEYyQzAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHlNYWMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDQ0I3NUM2MTIwM0ExQ0UwMDIyMkQxQiAvKiBXZWJDb250ZXh0TWVzc2Fn
ZUtpbmRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VFN0QwRTEyODQ2RjY5MDA5ODI3REEgLyog
V2ViQ29udGV4dE1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAgLTU3MDIsNiArNTc1Nyw3IEBA
CiAJCQkJQkNEREIzMkIxMjRFQzJBQjAwNDhEMTNDIC8qIFdLU2hhcmVkQVBJQ2FzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM0MDc2MDYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzQwNzYxQTEyNEZGMDM3MDA2OEYyMEEgLyogV0tTdHJpbmdDRi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNzU5Q0NENTkxODA4RjE2OTAwNzhFOEE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTA5
OTgwMTI1NkE5ODIwMDA4Mzc1NiAvKiBXS1N0cmluZ1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTM3N0VBRDQ4MTdFMkM3N0IwMDJEMTkzRCAvKiBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFt
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNEE5QUE4MTJCN0U3OTYwMDhGRTk4NCAvKiBXS1Rl
eHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNTcxMiwxMSArNTc2
OCwxMyBAQAogCQkJCUJDNDA3NjBDMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1VSTFJlcXVlc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDNDA3NjI5MTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlcXVl
c3ROUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MEUxMjRGRjAyNzAwNjhGMjBBIC8qIFdL
VVJMUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1OUNDRDVBMTgwOEY2MTYwMDc4RThB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQw
NzYyQjEyNEZGMDQwMDA2OEYyMEEgLyogV0tVUkxSZXNwb25zZU5TLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGNjExM0UyOTEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4u
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDODY5OUI1MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXcu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDODY5OUI3MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXdJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkZBNjE3OUYxMkYwQjk5RDAwMzNFMENBIC8q
IFdLVmlld1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1NTQyMkNDMTgwNzczQ0UwMDQ2
RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVFMUFG
RTkxNkIyMEI3NTAwNkNDMUYyIC8qIFdLV2ViQXJjaGl2ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QzVFMUFGRUIxNkIyMEI3RTAwNkNDMUYyIC8qIFdLV2ViQXJjaGl2ZVJlc291cmNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzk4OUQ4MjE2MUE3RTVEMDAwRDQ2RDMgLyogV0tXZWJQcm9jZXNzUGx1
Z0luLmggaW4gSGVhZGVycyAqLywKQEAgLTY1MTksNiArNjU3Nyw3IEBACiAJCQkJQkNFRTdEQzYx
MjhCNjQ1RDAwOTgyN0RBIC8qIEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxRkEyRDc0MTUyMTJERjEwMEMxQkEwQiAvKiBJbmplY3RlZEJ1bmRsZURPTVdpbmRv
d0V4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQ5ODYxOTEyNEQxMEUyMDBEODM0
RTEgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTc1RTc0OUU5MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIwNEVFNjExQzgzRUE5MDA4RjMzNzUg
LyogSW5qZWN0ZWRCdW5kbGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzgxNDdENjEyRjY2
RDMxMDA3QjJDMzIgLyogSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDNEJFRUFDMTIwQTBBNUYwMEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRsZU5v
ZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02NTI3LDYgKzY1ODYsNyBAQAogCQkJCUUx
RUU1M0U3MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxNEUxMDkxMjBCOTA1RTAwODI2QzBDIC8qIEluamVj
dGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1QzY2QTAx
MzRCOUQzODAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNzU1NDIyQ0IxODA2NTAwMjAwNDZGNkE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQThDNkE4MTFFM0JBNUYwMDgx
MkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkM4MTQ3QUExMkY2NENEQTAwN0IyQzMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVBvbGlj
eUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTlDNTUxRTEzMDAwNjQxMDAyNUMwQzIg
LyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtNjYzOCw2ICs2Njk4LDcgQEAKIAkJCQkxQTA0M0I1RDEyNEQ1RTlEMDBGRkJGQjUgLyog
UGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBMDQzREMyMTI0RkY4NzUwMEZGQkZCNSAvKiBQbHVnaW5Qcm94eS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQTJEOTIyMTEyODFEQzFCMDAxRUI5NjIgLyogUGx1Z2luUHJveHlNYWMubW0gaW4g
U291cmNlcyAqLywKKwkJCQk3NTU0MjJDNDE4MDYyQkY5MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQThFRkE3MDEyNTJCODQxMDBG
NzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0NENjIyNzcxNzM5RDg2MzAwNUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM4Mjg0NEQxNkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNlcnZp
Y2VFbnRyeVBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC02NzU5LDYgKzY4MjAsNyBAQAogCQkJ
CUJDQjlGNkExMTEyM0E4NEIwMEExMzdFMCAvKiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFCMEUxMTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZy
YW1lUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNTMxMzFCNjQ1QjAwRUVERUQy
IC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1NTQyMkJE
MTgwNjJCQjIwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDZGNzVGNDEzMUI2NkQwMDBE
NkIyMUUgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDRENBODVFRTEzMkFENzAxMDBFOTYxREYgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1h
Yy5tbSBpbiBTb3VyY2VzICovLApAQCAtNjgzOSw2ICs2OTAxLDcgQEAKIAkJCQkxQTA0M0EwQTEy
NEQxMUE5MDBGRkJGQjUgLyogV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUEwNDNGNjkxMjUxNEQ4QjAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMzA2ODI1MTI1QTZCOTQwMEU3
MTI3OCAvKiBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTc1RTc0OUVCMTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMzA2NUM0MTI1OTJGODkw
MEU3MTI3OCAvKiBXZWJQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMzMDY2QkUx
MjVBNDQyMTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkMxMTFCMTExMTJGNUU0RjAwMzM3QkFCIC8qIFdlYlByb2Nlc3NQcm94eS5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTY5MDIsNiArNjk2NSw3IEBACiAJCQkJOUZCNUYzOTQxNjlF
NkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4dFByaXZhdGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkzMzA5MzQ1QTEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxMkY1OEY5MTJBODhBNTQwMDYyOTUzMCAvKiBXS0NyZWRlbnRpYWwuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNzU5Q0NENTgxODA4RjE2NDAwNzhFOEE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0
MDc1RjcxMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NjJBNzY2MTEyQjFBQkVEMDAwNUYxQjYgLyogV0tEYXRhYmFzZU1hbmFnZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTE3REQ1QzIxODBEQjdCNzAwODE2NjBCIC8qIERhdGFiYXNlUHJvY2Vzc01h
Yy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTZmMTM2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAK
QEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIkNoaWxkUHJv
Y2Vzcy5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1
cml0eU9yaWdpbkhhc2guaD4KKworI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY29uc3QgY2hhciogV2Vi
T3JpZ2luRGF0YU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIldlYk9y
aWdpbkRhdGFNYW5hZ2VyIjsKK30KKworV2ViT3JpZ2luRGF0YU1hbmFnZXI6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyKENoaWxkUHJvY2VzcyogY2hpbGRQcm9jZXNzKQorICAgIDogbV9jaGlsZFByb2Nl
c3MoY2hpbGRQcm9jZXNzKQoreworICAgIG1fY2hpbGRQcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IHRoaXMpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpnZXRPcmlnaW5zKFdLT3Jp
Z2luRGF0YVR5cGVzIHR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIEhhc2hTZXQ8
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gb3JpZ2luczsKKworICAgIC8vIEZJWE1FOiBwb3B1bGF0
ZSBvcmlnaW5zCisKKyAgICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBpZGVudGlmaWVyczsK
KyAgICBpZGVudGlmaWVycy5yZXNlcnZlQ2FwYWNpdHkob3JpZ2lucy5zaXplKCkpOworCisgICAg
SGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+Pjo6aXRlcmF0b3IgZW5kID0gb3JpZ2lucy5l
bmQoKTsKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+OjppdGVyYXRvciBpID0g
b3JpZ2lucy5iZWdpbigpOworICAgIGZvciAoOyBpICE9IGVuZDsgKytpKSB7CisgICAgICAgIFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gKmk7CisKKyAgICAgICAgU2VjdXJpdHlPcmln
aW5EYXRhIG9yaWdpbkRhdGE7CisgICAgICAgIG9yaWdpbkRhdGEucHJvdG9jb2wgPSBvcmlnaW4t
PnByb3RvY29sKCk7CisgICAgICAgIG9yaWdpbkRhdGEuaG9zdCA9IG9yaWdpbi0+aG9zdCgpOwor
ICAgICAgICBvcmlnaW5EYXRhLnBvcnQgPSBvcmlnaW4tPnBvcnQoKTsKKworICAgICAgICBpZGVu
dGlmaWVycy51bmNoZWNrZWRBcHBlbmQob3JpZ2luRGF0YSk7CisgICAgfQorCisgICAgbV9jaGls
ZFByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OkRpZEdl
dE9yaWdpbnMoaWRlbnRpZmllcnMsIGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBXZWJPcmln
aW5EYXRhTWFuYWdlcjo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFUeXBlcyB0
eXBlcywgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW5EYXRhKQoreworICAgIFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5E
YXRhLnByb3RvY29sLCBvcmlnaW5EYXRhLmhvc3QsIG9yaWdpbkRhdGEucG9ydCk7CisgICAgaWYg
KCFvcmlnaW4pCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBkZWxldGUgY2FjaGUK
K30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlQWxsRW50cmllcyhXS09yaWdp
bkRhdGFUeXBlcyB0eXBlcykKK3sKKyAgICAvLyBGSVhNRTogZGVsZXRlIGVudHJpZXMKK30KKwor
dm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2lu
RGF0YVR5cGVzIHR5cGVzKQoreworICAgIC8vIEZJWE1FOiBzdGFydCBvYnNlcnZpbmcgY2hhbmdl
cworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5nQ2hhbmdlcyhX
S09yaWdpbkRhdGFUeXBlcyB0eXBlcykKK3sKKyAgICAvLyBGSVhNRTogc3RvcCBvYnNlcnZpbmcg
Y2hhbmdlcworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThlYTUxNQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRh
TWFuYWdlci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyX2gKKyNkZWZpbmUgV2ViT3JpZ2luRGF0YU1hbmFnZXJfaAorCisj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV0tPcmlnaW5EYXRhTWFuYWdl
ci5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBDaGlsZFByb2Nlc3M7CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5E
YXRhOworCitjbGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3Vw
cGxlbWVudCwgcHVibGljIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoV2ViT3JpZ2luRGF0YU1hbmFnZXIpOworcHVibGljOgorICAgIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyKENoaWxkUHJvY2VzcyopOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1
cHBsZW1lbnROYW1lKCk7CisKKyAgICB2b2lkIGRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRh
VHlwZXMpOworCitwcml2YXRlOgorICAgIHZvaWQgZ2V0T3JpZ2lucyhXS09yaWdpbkRhdGFUeXBl
cywgdWludDY0X3QpOworICAgIHZvaWQgZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRh
dGFUeXBlcywgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7CisgICAgdm9pZCBzdGFydE9ic2Vy
dmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhVHlwZXMpOworICAgIHZvaWQgc3RvcE9ic2VydmluZ0No
YW5nZXMoV0tPcmlnaW5EYXRhVHlwZXMpOworCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2Vp
dmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworCisgICAgQ2hpbGRQcm9j
ZXNzKiBtX2NoaWxkUHJvY2VzczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gV2ViT3JpZ2luRGF0YU1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5NGU2MzgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEv
V2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJPcmlnaW5E
YXRhTWFuYWdlciB7CisgICAgdm9pZCBHZXRPcmlnaW5zKHVpbnQzMl90IHR5cGVzLCB1aW50NjRf
dCBjYWxsYmFja0lEKQorICAgIHZvaWQgRGVsZXRlRW50cmllc0Zvck9yaWdpbih1aW50MzJfdCB0
eXBlcywgV2ViS2l0OjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luSWRlbnRpZmllcikKKyAgICB2
b2lkIERlbGV0ZUFsbEVudHJpZXModWludDMyX3QgdHlwZXMpCisgICAgdm9pZCBTdGFydE9ic2Vy
dmluZ0NoYW5nZXModWludDMyX3QgdHlwZXMpCisgICAgdm9pZCBTdG9wT2JzZXJ2aW5nQ2hhbmdl
cyh1aW50MzJfdCB0eXBlcykKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214395</attachid>
            <date>2013-10-16 14:09:09 -0700</date>
            <delta_ts>2013-10-17 13:10:42 -0700</delta_ts>
            <desc>typo in GNUmakefile.list.am</desc>
            <filename>122781m.diff</filename>
            <type>text/plain</type>
            <size>63798</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggN2U2NTY0Mi4uZDM4MzQ1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTUyLDYgKzUyLDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUiCiAgICAgIiR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvTmV0d29yayIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL09yaWdpbkRh
dGEiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUiCkBAIC0zMzEsNiArMzMyLDggQEAgc2V0KFdlYktp
dDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAK
ICAgICBVSVByb2Nlc3MvV2ViTmV0d29ya0luZm9Qcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3Mv
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eUNoYW5nZUNsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51
Q2xpZW50LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuY3BwCiAgICAgVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM3OCw2ICszODEsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3Bw
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAKKyAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAKICAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwCkBAIC00OTMsNiArNDk3LDggQEAgc2V0
KFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCiAKKyAgICBXZWJQcm9jZXNzL09yaWdpbkRh
dGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luLmNwcAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5j
cHAKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
LmNwcApAQCAtNTg1LDYgKzU5MSw3IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAg
ICAgVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNz
L1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2Vi
TmV0d29ya0luZm9NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyAgICBVSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CiAgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
QEAgLTYyNSw2ICs2MzIsOCBAQCBzZXQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUwogCiAgICAg
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIubWVzc2FnZXMu
aW4KIAorICAgIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNz
YWdlcy5pbgorCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0
aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94
eS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU1YjlmNzQuLmM0MDBiZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw3NCBAQAorMjAxMy0xMC0xNiAgTWFydGluIEhvY2sgIDxtaG9ja0BhcHBsZS5j
b20+CisKKyAgICAgICAgUmVmYWN0b3Igc3RvcmVkIHdlYnNpdGUgZGF0YSBBUElzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI3ODEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV2ViT3JpZ2luRGF0
YU1hbmFnZXIgYWxvbmcgd2l0aCBjb3JyZXNwb25kaW5nIGNsYXNzCisgICAgICAgIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkgYW5kIEFQSSBXS09yaWdpbkRhdGFNYW5hZ2VyLgorCisgICAgICAg
IEN1cnJlbnRseSwgdGhlIG5ldyBmaWxlcyBhcmUgdW51c2VkLgorCisgICAgICAgIFdLT3JpZ2lu
RGF0YU1hbmFnZXIgc2hvdWxkIHN1YnN1bWUgdGhlIGZ1bmN0aW9uYWxpdHkgb2Y6CisgICAgICAg
IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIsIFdLQ29va2llTWFuYWdlciwgV0tEYXRhYmFzZU1h
bmFnZXIsCisgICAgICAgIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlciwgV0tNZWRpYUNhY2hlTWFu
YWdlciwKKyAgICAgICAgV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIsIGFuZCBXS1Jlc291cmNlQ2Fj
aGVNYW5hZ2VyLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAg
ICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAg
ICAoV0tDb250ZXh0R2V0T3JpZ2luRGF0YU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRh
TWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFuYWdlckdldFR5cGVJ
RCk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2lucyk6CisgICAgICAgIChX
S09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXS09y
aWdpbkRhdGFNYW5hZ2VyRGVsZXRlQWxsRW50cmllcyk6CisgICAgICAgIChXS09yaWdpbkRhdGFN
YW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFn
ZXJTdG9wT2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyU2V0
Q2hhbmdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFu
YWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5OjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Ojp+V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0cm95ZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpwcm9jZXNzRGlk
Q2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzaG91
bGRUZXJtaW5hdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
OjpyZWZXZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdl
YktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2lucyk6CisgICAgICAg
IChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlbGV0ZUVudHJpZXNGb3JPcmln
aW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxldGVB
bGxFbnRyaWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6
c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eTo6c3RvcE9ic2VydmluZ0NoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5OjpzZXRDaGFuZ2VDbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdl
Q2xpZW50OjpkaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL09yaWdpbkRhdGEvV2Vi
T3JpZ2luRGF0YU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2lu
RGF0YU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2lu
RGF0YU1hbmFnZXI6OldlYk9yaWdpbkRhdGFNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
T3JpZ2luRGF0YU1hbmFnZXI6OmdldE9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmln
aW5EYXRhTWFuYWdlcjo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5nQ2hhbmdlcyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdl
ci5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTMtMTAtMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIEZsZXNoIG91dCB0aGUgRGF0YWJhc2VQcm9jZXNzIChh
bmQgbGF1bmNoIGl0ISkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGIzZjk4ODMu
LjcwYjI4MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDAsNiArNDAsNyBA
QCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTWVkaWFDYWNoZSBcCiAgICAg
JChXZWJLaXQyKS9XZWJQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zIFwKKyAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvT3JpZ2luRGF0YSBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1BsdWdpbnMgXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFn
ZSBcCkBAIC0xMDMsNiArMTA0LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViTWVk
aWFDYWNoZU1hbmFnZXIgXAogICAgIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkgXAogICAgIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIgXAorICAgIFdlYk9yaWdpbkRhdGFNYW5hZ2VyIFwKKyAgICBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5IFwKICAgICBXZWJQYWdlIFwKICAgICBXZWJQYWdlR3Jv
dXBQcm94eSBcCiAgICAgV2ViUGFnZVByb3h5IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KaW5kZXggZTdl
MTE3Yi4uZDJlZWE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0K
KysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KQEAgLTE1NSw2ICsxNTUsNyBAQCBs
aWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJ
X01JTk9SX1ZFUlNJT05AX2xhX0NQUAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTWVkaWFDYWNoZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrSW5mbyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zIFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09y
aWdpbkRhdGEgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3Vy
Y2VDYWNoZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdl
IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAgXApAQCAtMzgz
LDYgKzM4NCw3IEBAIHZwYXRoICUubWVzc2FnZXMuaW4gPSBcCiAJJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL05ldHdvcmsgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyBcCiAJJChX
ZWJLaXQyKS9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9PcmlnaW5EYXRhIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCiAJJChXZWJL
aXQyKS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9T
dG9yYWdlIFwKQEAgLTc0Niw2ICs3NDgsNyBAQCBFWFRSQV9ESVNUICs9IFwKIAkkKHNoZWxsIGxz
ICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2Vi
S2l0MikvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy8qLmluKSBcCisJJChzaGVsbCBscyAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIp
L1dlYlByb2Nlc3MvUGx1Z2lucy8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvUmVzb3VyY2VDYWNoZS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvU3RvcmFnZS8qLmluKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAw
YzBlMDU2Li41OTM1ZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTgzLDYg
KzgzLDcgQEAgd2Via2l0Ml9oX2FwaSArPSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0Mv
V0tOb3RpZmljYXRpb25Qcm92aWRlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9X
S09wZW5QYW5lbFBhcmFtZXRlcnMuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9X
S09yaWdpbkRhdGFNYW5hZ2VyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZUdyb3VwLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIFwKIAkkKFdl
YktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggXApAQCAtMjIzLDYgKzIyNCwx
MCBAQCB3ZWJraXQyX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIv
V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIFwKKwlE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJPcmlnaW5EYXRhTWFuYWdlck1lc3Nh
Z2VzLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
UGFnZUdyb3VwUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYlBhZ2VHcm91cFByb3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJQYWdlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTY0MSw2ICs2NDYsOCBAQCB3
ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09w
ZW5QYW5lbFBhcmFtZXRlcnMuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlR3JvdXAuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlR3JvdXAuaCBcCkBAIC05ODAsNiArOTg3LDEwIEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvUHJvdmlkZXIuaCBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3Bw
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQ
cm94eS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Q2hhbmdlQ2xpZW50LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAgXApAQCAtMTEzNyw2ICsxMTQ4LDggQEAgd2Via2l0Ml9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBcCiAJU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuaCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRh
dGFNYW5hZ2VyLmNwcCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS0Jhc2UuaAppbmRleCA2OTk0Y2JkLi4xOTdhZDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oCkBAIC0xMTksNiArMTE5LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogV0tOb3RpZmljYXRpb25QZXJtaXMK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uUHJvdmlkZXIqIFdLTm90
aWZpY2F0aW9uUHJvdmlkZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5Q
YW5lbFBhcmFtZXRlcnMqIFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZjsKIHR5cGVkZWYgY29uc3Qg
c3RydWN0IE9wYXF1ZVdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIqIFdLT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09yaWdpbkRhdGFNYW5h
Z2VyKiBXS09yaWdpbkRhdGFNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tQYWdlKiBXS1BhZ2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VHcm91
cCogV0tQYWdlR3JvdXBSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BsdWdpblNp
dGVEYXRhTWFuYWdlciogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWY7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJT2JqZWN0LmgKaW5kZXggNDQxZTA1ZS4uNzAzMjFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElP
YmplY3QuaApAQCAtMTAzLDYgKzEwMyw3IEBAIHB1YmxpYzoKICAgICAgICAgVHlwZU5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LAogICAgICAgICBUeXBlT3BlblBhbmVsUGFyYW1ldGVycywK
ICAgICAgICAgVHlwZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLAorICAgICAgICBUeXBlT3JpZ2lu
RGF0YU1hbmFnZXIsCiAgICAgICAgIFR5cGVQYWdlLAogICAgICAgICBUeXBlUGFnZUdyb3VwLAog
ICAgICAgICBUeXBlUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IDY0YzhkMWEuLmRkODhkN2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTg3LDYgKzg3LDcgQEAgY2xh
c3MgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI7CiBjbGFzcyBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHk7CiBjbGFzcyBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOwogY2xhc3MgV2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJQcm94eTsKK2NsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk7CiBj
bGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJQbHVnaW5T
aXRlRGF0YU1hbmFnZXI7CkBAIC0xMzMsNiArMTM0LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdL
Tm90aWZpY2F0aW9uUHJvdmlkZXJSZWYsIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyKQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLTm90aWZpY2F0aW9uUmVmLCBXZWJOb3RpZmljYXRpb24pCiBXS19BRERf
QVBJX01BUFBJTkcoV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmLCBXZWJPcGVuUGFuZWxQYXJhbWV0
ZXJzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYsIFdl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkpCitXS19BRERfQVBJX01BUFBJTkcoV0tPcmln
aW5EYXRhTWFuYWdlclJlZiwgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSkKIFdLX0FERF9BUElf
TUFQUElORyhXS1BhZ2VHcm91cFJlZiwgV2ViUGFnZUdyb3VwKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLUGFnZVJlZiwgV2ViUGFnZVByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUGx1Z2luU2l0
ZURhdGFNYW5hZ2VyUmVmLCBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IGE0N2U0OWYuLmZiZmJjMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC00
MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIldlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
LmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oIgogI2lmIEVOQUJM
RShTUUxfREFUQUJBU0UpCiAjaW5jbHVkZSAiV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuaCIKQEAg
LTI3NCw2ICsyNzUsMTEgQEAgV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRS
ZXNvdXJjZUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFIKICAgICByZXR1cm4gdG9B
UEkodG9JbXBsKGNvbnRleHRSZWYpLT5zdXBwbGVtZW50PFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHk+KCkpOwogfQogCitXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIFdLQ29udGV4dEdldE9yaWdp
bkRhdGFNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworICAgIHJldHVybiB0b0FQ
SSh0b0ltcGwoY29udGV4dFJlZiktPnN1cHBsZW1lbnQ8V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eT4oKSk7Cit9CisKIHZvaWQgV0tDb250ZXh0U3RhcnRNZW1vcnlTYW1wbGVyKFdLQ29udGV4dFJl
ZiBjb250ZXh0UmVmLCBXS0RvdWJsZVJlZiBpbnRlcnZhbCkKIHsKICAgICB0b0ltcGwoY29udGV4
dFJlZiktPnN0YXJ0TWVtb3J5U2FtcGxlcih0b0ltcGwoaW50ZXJ2YWwpLT52YWx1ZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAppbmRleCAzY2U3MzFlLi5l
ZmQ2NzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCkBA
IC0xOTUsNyArMTk1LDggQEAgV0tfRVhQT1JUIFdLTmV0d29ya0luZm9NYW5hZ2VyUmVmIFdLQ29u
dGV4dEdldE5ldHdvcmtJbmZvTWFuYWdlcihXS0NvbnRleHRSZWYgY28KIFdLX0VYUE9SVCBXS05v
dGlmaWNhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0Tm90aWZpY2F0aW9uTWFuYWdlcihXS0Nv
bnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWYg
V0tDb250ZXh0R2V0UGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsK
IFdLX0VYUE9SVCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFJlc291cmNl
Q2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKLSAgICAKK1dLX0VYUE9SVCBXS09y
aWdpbkRhdGFNYW5hZ2VyUmVmIFdLQ29udGV4dEdldE9yaWdpbkRhdGFNYW5hZ2VyKFdLQ29udGV4
dFJlZiBjb250ZXh0KTsKKwogdHlwZWRlZiB2b2lkICgqV0tDb250ZXh0R2V0U3RhdGlzdGljc0Z1
bmN0aW9uKShXS0RpY3Rpb25hcnlSZWYgc3RhdGlzdGljcywgV0tFcnJvclJlZiBlcnJvciwgdm9p
ZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dEdldFN0YXRpc3Rp
Y3MoV0tDb250ZXh0UmVmIGNvbnRleHQsIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCwgV0tDb250ZXh0
R2V0U3RhdGlzdGljc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4
dEdldFN0YXRpc3RpY3NXaXRoT3B0aW9ucyhXS0NvbnRleHRSZWYgY29udGV4dCwgV0tTdGF0aXN0
aWNzT3B0aW9ucyBzdGF0aXN0aWNzTWFzaywgdm9pZCogZnVuY3Rpb25Db250ZXh0LCBXS0NvbnRl
eHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24gZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmODUzOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAKQEAgLTAs
MCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
S09yaWdpbkRhdGFNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRl
ICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CisKK1dLVHlwZUlEIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRUeXBlSUQoKQoreworICAgIHJldHVy
biB0b0FQSShXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpBUElUeXBlKTsKK30KKwordm9pZCBX
S09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2lucyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdp
bkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywgdm9pZCogY29udGV4dCwg
V0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnNGdW5jdGlvbiBjYWxsYmFjaykKK3sKKyAgICB0
b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5nZXRPcmlnaW5zKHR5cGVzLCBBcnJheUNhbGxi
YWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsKK30KKwordm9pZCBXS09yaWdpbkRhdGFN
YW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdp
bkRhdGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywgV0tTZWN1cml0eU9yaWdp
blJlZiBvcmlnaW5SZWYpCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+ZGVs
ZXRlRW50cmllc0Zvck9yaWdpbih0eXBlcywgdG9JbXBsKG9yaWdpblJlZikpOworfQorCit2b2lk
IFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YU1hbmFnZXJS
ZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKQoreworICAg
IHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPmRlbGV0ZUFsbEVudHJpZXModHlwZXMpOwor
fQorCit2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTdGFydE9ic2VydmluZ0NoYW5nZXMoV0tPcmln
aW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlclJlZiwgV0tPcmlnaW5EYXRhVHlwZXMg
dHlwZXMpCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2VyUmVmKS0+c3RhcnRPYnNlcnZp
bmdDaGFuZ2VzKHR5cGVzKTsKK30KKwordm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3RvcE9ic2Vy
dmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlclJlZiwg
V0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgdG9JbXBsKG9yaWdpbkRhdGFNYW5hZ2Vy
UmVmKS0+c3RvcE9ic2VydmluZ0NoYW5nZXModHlwZXMpOworfQorCit2b2lkIFdLT3JpZ2luRGF0
YU1hbmFnZXJTZXRDaGFuZ2VDbGllbnQoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRh
TWFuYWdlclJlZiwgY29uc3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCAqY2xpZW50
KQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPnNldENoYW5nZUNsaWVudChj
bGllbnQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
T3JpZ2luRGF0YU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09y
aWdpbkRhdGFNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjEw
MDU0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S09yaWdpbkRhdGFNYW5hZ2VyLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV0tPcmlnaW5EYXRhTWFuYWdlcl9oCisjZGVmaW5lIFdLT3JpZ2luRGF0YU1hbmFnZXJfaAor
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRl
cm4gIkMiIHsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBrV0tBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
RGF0YSA9IDEgPDwgMCwKKyAgICBrV0tDb29raWVPcmlnaW5EYXRhID0gMSA8PCAxLAorICAgIGtX
S0RhdGFiYXNlT3JpZ2luRGF0YSA9IDEgPDwgMiwKKyAgICBrV0tLZXlWYWx1ZVN0b3JhZ2VPcmln
aW5EYXRhID0gMSA8PCAzLAorICAgIGtXS01lZGlhQ2FjaGVPcmlnaW5EYXRhID0gMSA8PCA0LAor
ICAgIGtXS1BsdWdpbkRhdGFPcmlnaW5EYXRhID0gMSA8PCA1LAorICAgIGtXS1Jlc291cmNlQ2Fj
aGVPcmlnaW5EYXRhID0gMSA8PCA2LAorCisgICAga1dLQWxsT3JpZ2luRGF0YSA9ICgxIDw8IDcp
IC0gMQorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tPcmlnaW5EYXRhVHlwZXM7CisKK1dLX0VYUE9S
VCBXS1R5cGVJRCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0VHlwZUlEKCk7CisKK3R5cGVkZWYgdm9p
ZCAoKldLT3JpZ2luRGF0YU1hbmFnZXJHZXRPcmlnaW5zRnVuY3Rpb24pKFdLQXJyYXlSZWYsIFdL
RXJyb3JSZWYsIHZvaWQqKTsKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJHZXRP
cmlnaW5zKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3JpZ2lu
RGF0YVR5cGVzIHR5cGVzLCB2b2lkKiBjb250ZXh0LCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3Jp
Z2luc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKKworV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFu
YWdlckRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5E
YXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMsIFdLU2VjdXJpdHlPcmlnaW5SZWYg
b3JpZ2luKTsKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVBbGxFbnRy
aWVzKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3JpZ2luRGF0
YVR5cGVzIHR5cGVzKTsKKworLy8gT3JpZ2luRGF0YU1hbmFnZXIgQ2xpZW50Cit0eXBlZGVmIHZv
aWQgKCpXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2FsbGJhY2spKFdLT3JpZ2luRGF0YU1hbmFn
ZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOworc3RydWN0
IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQgeworICAgIGludCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAg
ICAgICAgICAgICAgY2xpZW50SW5mbzsKKyAgICBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2Fs
bGJhY2sgICBkaWRDaGFuZ2U7Cit9OwordHlwZWRlZiBzdHJ1Y3QgV0tPcmlnaW5EYXRhTWFuYWdl
ckNoYW5nZUNsaWVudCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50OworCitlbnVtIHsg
a1dLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnRWZXJzaW9uID0gMCB9OworCitXS19FWFBP
UlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2lu
RGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIsIFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVz
KTsKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ2hhbmdl
cyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFU
eXBlcyB0eXBlcyk7CitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU2V0Q2hhbmdl
Q2xpZW50KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmdlciwgY29uc3QgV0tP
cmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCogY2xpZW50KTsKKyNpZmRlZiBfX2NwbHVzcGx1
cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS09yaWdpbkRhdGFNYW5hZ2VyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2RmNjFmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHkuY3BwCkBAIC0wLDAgKzEsMTUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNs
dWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4u
aCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NvbnN0IGNoYXIqIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIldlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHkiOworfQorCitQYXNzUmVmUHRyPFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk+
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNyZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eShjb250
ZXh0KSk7Cit9CisKK1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OldlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHkoV2ViQ29udGV4dCogY29udGV4dCkKKzogV2ViQ29udGV4dFN1cHBsZW1lbnQoY29u
dGV4dCkKK3sKKyAgICBjb250ZXh0LT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7Cit9CisK
K1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6On5XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KCkK
K3sKK30KKworCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0cm95
ZWQoKQoreworICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tzKTsKK30K
Kwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpwcm9jZXNzRGlkQ2xvc2UoV2ViUHJv
Y2Vzc1Byb3h5KikKK3sKKyAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJheUNhbGxiYWNr
cyk7Cit9CisKK2Jvb2wgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c2hvdWxkVGVybWluYXRl
KFdlYlByb2Nlc3NQcm94eSopIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYXJyYXlDYWxsYmFja3Mu
aXNFbXB0eSgpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnJlZldlYkNv
bnRleHRTdXBwbGVtZW50KCkKK3sKKyAgICBBUElPYmplY3Q6OnJlZigpOworfQorCit2b2lkIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKQorewor
ICAgIEFQSU9iamVjdDo6ZGVyZWYoKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5OjpnZXRPcmlnaW5zKFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzLCBQYXNzUmVmUHRyPEFycmF5
Q2FsbGJhY2s+IHBycENhbGxiYWNrKQoreworICAgIGlmICghY29udGV4dCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBwcnBDYWxsYmFj
azsKKworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwor
ICAgIG1fYXJyYXlDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLnJlbGVhc2UoKSk7
CisKKyAgICAvLyBGSVhNRSAoTXVsdGktV2ViUHJvY2Vzcyk6IDxyZGFyOi8vcHJvYmxlbS8xMjIz
OTc2NT4gTWFrZSBtYW5pcHVsYXRpbmcgY2FjaGUgaW5mb3JtYXRpb24gd29yayB3aXRoIHBlci10
YWIgV2ViUHJvY2Vzcy4KKyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNo
aW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6R2V0T3Jp
Z2lucyh0eXBlcywgY2FsbGJhY2tJRCkpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk6OmRpZEdldE9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIG9y
aWdpbkRhdGFzLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIFJlZlB0cjxBcnJheUNhbGxi
YWNrPiBjYWxsYmFjayA9IG1fYXJyYXlDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBw
ZXJmb3JtQVBJQ2FsbGJhY2tXaXRoU2VjdXJpdHlPcmlnaW5EYXRhVmVjdG9yKG9yaWdpbkRhdGFz
LCBjYWxsYmFjay5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6
ZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywgV2ViU2VjdXJp
dHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0YTsKKyAgICBzZWN1
cml0eU9yaWdpbkRhdGEucHJvdG9jb2wgPSBvcmlnaW4tPnByb3RvY29sKCk7CisgICAgc2VjdXJp
dHlPcmlnaW5EYXRhLmhvc3QgPSBvcmlnaW4tPmhvc3QoKTsKKyAgICBzZWN1cml0eU9yaWdpbkRh
dGEucG9ydCA9IG9yaWdpbi0+cG9ydCgpOworCisgICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nl
c3MpOiA8cmRhcjovL3Byb2JsZW0vMTIyMzk3NjU+IE1ha2UgbWFuaXB1bGF0aW5nIGNhY2hlIGlu
Zm9ybWF0aW9uIHdvcmsgd2l0aCBwZXItdGFiIFdlYlByb2Nlc3MuCisgICAgY29udGV4dCgpLT5z
ZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2Vi
T3JpZ2luRGF0YU1hbmFnZXI6OkRlbGV0ZUVudHJpZXNGb3JPcmlnaW4odHlwZXMsIHNlY3VyaXR5
T3JpZ2luRGF0YSkpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlbGV0
ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgaWYgKCFjb250ZXh0
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FIChNdWx0aS1XZWJQcm9jZXNzKTog
PHJkYXI6Ly9wcm9ibGVtLzEyMjM5NzY1PiBNYWtlIG1hbmlwdWxhdGluZyBjYWNoZSBpbmZvcm1h
dGlvbiB3b3JrIHdpdGggcGVyLXRhYiBXZWJQcm9jZXNzLgorICAgIGNvbnRleHQoKS0+c2VuZFRv
QWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdp
bkRhdGFNYW5hZ2VyOjpEZWxldGVBbGxFbnRyaWVzKHR5cGVzKSk7Cit9CisKK3ZvaWQgV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eTo6c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5
cGVzIHR5cGVzKQoreworICAgIGlmICghY29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5
KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6U3RhcnRPYnNlcnZpbmdDaGFuZ2VzKHR5
cGVzKSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6c3RvcE9ic2Vydmlu
Z0NoYW5nZXMoV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgaWYgKCFjb250ZXh0KCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVs
YXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpT
dGFydE9ic2VydmluZ0NoYW5nZXModHlwZXMpKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5OjpzZXRDaGFuZ2VDbGllbnQoY29uc3QgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5n
ZUNsaWVudCAqY2xpZW50KQoreworICAgIG1fY2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKK30K
Kwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkaWRDaGFuZ2UoKQoreworICAgIG1f
Y2xpZW50LmRpZENoYW5nZSh0aGlzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGI3NDBkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHkuaApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eV9o
CisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIK
KyNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5o
IgorI2luY2x1ZGUgIldLT3JpZ2luRGF0YU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0
U3VwcGxlbWVudC5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VD
bGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2Ns
YXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTZWN1
cml0eU9yaWdpbjsKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CisKK3R5cGVkZWYgR2VuZXJp
Y0NhbGxiYWNrPFdLQXJyYXlSZWY+IEFycmF5Q2FsbGJhY2s7CisKK2NsYXNzIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHkgOiBwdWJsaWMgVHlwZWRBUElPYmplY3Q8QVBJT2JqZWN0OjpUeXBlT3Jp
Z2luRGF0YU1hbmFnZXI+LCBwdWJsaWMgV2ViQ29udGV4dFN1cHBsZW1lbnQsIHByaXZhdGUgQ29y
ZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgY2hhciog
c3VwcGxlbWVudE5hbWUoKTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eSgpOworCisgICAgdm9pZCBnZXRPcmlnaW5zKFdLT3JpZ2luRGF0YVR5
cGVzLCBQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+KTsKKyAgICB2b2lkIGRlbGV0ZUVudHJpZXNG
b3JPcmlnaW4oV0tPcmlnaW5EYXRhVHlwZXMsIFdlYlNlY3VyaXR5T3JpZ2luKik7CisgICAgdm9p
ZCBkZWxldGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YVR5cGVzKTsKKworICAgIHZvaWQgc3RhcnRP
YnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5cGVzKTsKKyAgICB2b2lkIHN0b3BPYnNlcnZp
bmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5cGVzKTsKKyAgICB2b2lkIHNldENoYW5nZUNsaWVudChj
b25zdCBXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdlQ2xpZW50Kik7CisKKyAgICB1c2luZyBBUElP
YmplY3Q6OnJlZjsKKyAgICB1c2luZyBBUElPYmplY3Q6OmRlcmVmOworCitwcml2YXRlOgorICAg
IGV4cGxpY2l0IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOworCisgICAg
dm9pZCBkaWRHZXRPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiwgdWlu
dDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkaWRDaGFuZ2UoKTsKKworICAgIC8vIFdlYkNv
bnRleHRTdXBwbGVtZW50CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94eSop
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1By
b3h5KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlZldlYkNvbnRleHRTdXBw
bGVtZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmV2ViQ29udGV4dFN1cHBs
ZW1lbnQoKSBPVkVSUklERTsKKworICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKworICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxBcnJheUNhbGxiYWNrPj4gbV9hcnJheUNhbGxiYWNrczsKKworICAgIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQgbV9jbGllbnQ7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43NmQ3NmI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5IHsKKyAgICBEaWRHZXRPcmlnaW5zKFZlY3RvcjxXZWJLaXQ6OlNl
Y3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2luSWRlbnRpZmllcnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
OworICAgIERpZENoYW5nZSgpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY2MDFhOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
Q2hhbmdlQ2xpZW50LmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGll
bnQuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50OjpkaWRDaGFuZ2UoV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eSogb3JpZ2luRGF0YU1hbmFnZXIpCit7CisgICAgaWYgKCFt
X2NsaWVudC5kaWRDaGFuZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LmRpZENo
YW5nZSh0b0FQSShvcmlnaW5EYXRhTWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhNzY3Y2QKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNo
YW5nZUNsaWVudC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnRfaAorI2RlZmluZSBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50X2gKKworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2lu
Y2x1ZGUgIldLT3JpZ2luRGF0YU1hbmFnZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTsK
KworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudCA6IHB1YmxpYyBB
UElDbGllbnQ8V0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCwga1dLT3JpZ2luRGF0YU1h
bmFnZXJDaGFuZ2VDbGllbnRWZXJzaW9uPiB7CitwdWJsaWM6CisgICAgdm9pZCBkaWRDaGFuZ2Uo
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBkYzk2YTM0Li4xYzExYmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01OTIsNiArNTkyLDIwIEBACiAJCTZFRTg0OUM4MTM2
OEQ5MzkwMDM4RDQ4MSAvKiBXS0luc3BlY3RvclByaXZhdGVNYWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRTg0OUM2MTM2OEQ5MkQwMDM4RDQ4MSAv
KiBXS0luc3BlY3RvclByaXZhdGVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3MjhFODZGMTE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQ
aWNrZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyOEU4NkVGMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5oICovOyB9Owog
CQk3MjhFODZGMjE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjhFODZGMDE3OTUxODhD
MDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMubW0gKi87IH07CisJCTc1NTQyMkJCMTgwNjJC
OUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBDb3B5IEZpbGVzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAv
KiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNzU1NDIyQkMxODA2MkI5QzAwNDZG
NkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBDb3B5IEZpbGVzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdp
bkRhdGFNYW5hZ2VyLmggKi87IH07CisJCTc1NTQyMkJEMTgwNjJCQjIwMDQ2RjZBOCAvKiBXS09y
aWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2Vy
LmNwcCAqLzsgfTsKKwkJNzU1NDIyQzMxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gaW4gQ29weSBGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJDMDE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLzsgfTsKKwkJNzU1NDIyQzQxODA2MkJGOTAwNDZG
NkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQkUxODA2MkJFNDAwNDZGNkE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICovOyB9OworCQk3NTU0MjJDQjE4MDY1MDAyMDA0
NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNzU1NDIyQ0MxODA3NzNDRTAwNDZGNkE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTU0MjJDNzE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1h
bmFnZXIuaCAqLzsgfTsKKwkJNzU5Q0NENTgxODA4RjE2NDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzU5Q0NENTQxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwICovOyB9OworCQk3NTlDQ0Q1OTE4MDhG
MTY5MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU5Q0NENTUxODA4
RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAq
LzsgfTsKKwkJNzU5Q0NENUExODA4RjYxNjAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1
NTQyMkJGMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggKi87
IH07CisJCTc1RTc0OUU5MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3NUU3NDlFNTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk3NUU3NDlFQTE4MERCQjk4MDAwODhCQTYgLyog
V2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzVFNzQ5RTYxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJNzVFNzQ5RUIxODBEQkI5ODAwMDg4QkE2
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVFNzQ5RTcxODBEQkI5ODAw
MDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OworCQk3NUU3NDlFQzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NUU3NDlFODE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eU1lc3NhZ2VzLmggKi87IH07CiAJCTc2MkI3NDhEMTIwQkM3NUMwMDgxOTMzOSAvKiBXS1ByZWZl
cmVuY2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzYyQjc0ODQxMjBCQkEyRDAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzgwMUMw
OTkxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzgwMUMwOTUxNDIyOTBDNDAwRkFGOUFG
IC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwICovOyB9OwogCQk3ODAxQzA5QTE0MjI5MEM0MDBGQUY5
QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzgwMUMwOTYxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1
bHQuaCAqLzsgfTsKQEAgLTEzNTgsOSArMTM3MiwxMiBAQAogCQkJZHN0U3ViZm9sZGVyU3BlYyA9
IDE7CiAJCQlmaWxlcyA9ICgKIAkJCQk1MTBDQzg0OTE2MTNDODVDMDBEMDNFRDMgLyogTmV0d29y
a1Byb2Nlc3MuYXBwIGluIENvcHkgRmlsZXMgKi8sCisJCQkJNzU1NDIyQkMxODA2MkI5QzAwNDZG
NkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCBpbiBDb3B5IEZpbGVzICovLAogCQkJCUJDREUw
QUJGMTMyNzI3MDgwMDEyNTlGQiAvKiBQbHVnaW5Qcm9jZXNzLmFwcCBpbiBDb3B5IEZpbGVzICov
LAogCQkJCTUxQTYwQjJBMTgwQ0NFQjUwMEYzQkY1MCAvKiBEYXRhYmFzZVByb2Nlc3MuYXBwIGlu
IENvcHkgRmlsZXMgKi8sCisJCQkJNzU1NDIyQzMxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gaW4gQ29weSBGaWxlcyAqLywKIAkJCQkxQTUw
REI2NjExMEEzRDU3MDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5hcHAgaW4gQ29weSBGaWxlcyAqLywK
KwkJCQk3NTU0MjJCQjE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAg
aW4gQ29weSBGaWxlcyAqLywKIAkJCSk7CiAJCQluYW1lID0gIkNvcHkgRmlsZXMiOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC0yMDQ4LDYgKzIwNjUsMjAg
QEAKIAkJNkVFODQ5QzYxMzY4RDkyRDAwMzhENDgxIC8qIFdLSW5zcGVjdG9yUHJpdmF0ZU1hYy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0luc3BlY3RvclByaXZhdGVNYWMu
aDsgcGF0aCA9IG1hYy9XS0luc3BlY3RvclByaXZhdGVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzI4RTg2RUYxNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFj
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOEU4NkYwMTc5NTE4OEMwMDg3ODc5RSAv
KiBXZWJDb2xvclBpY2tlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkNvbG9yUGlja2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3NTU0MjJCOTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS09yaWdpbkRhdGFNYW5hZ2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQkExODA2MkI5QzAwNDZGNkE4
IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tPcmlnaW5EYXRhTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
NTU0MjJCRTE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQkYxODA2MkJF
NDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDMDE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3NTU0MjJDNjE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViT3JpZ2luRGF0YU1h
bmFnZXIuY3BwOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkM3MTgwNjRGRkMwMDQ2RjZBOCAvKiBX
ZWJPcmlnaW5EYXRhTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
ZWJPcmlnaW5EYXRhTWFuYWdlci5oOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFu
YWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTU0MjJDODE4MDY0RkZDMDA0
NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGggPSBPcmlnaW5E
YXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3NTlDQ0Q1NDE4MDhGMTYwMDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU5Q0NENTUxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3NUU3NDlFNTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3Jp
Z2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUU3NDlFNjE4MERCQjk4MDAwODhCQTYgLyog
V2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTc1RTc0OUU3MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NUU3NDlFODE4MERCQjk4MDAwODhCQTYgLyog
V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3NjJCNzQ4MTEyMEJCQTAxMDA4MTkzMzkgLyogRm9udFNt
b290aGluZ0xldmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRTbW9v
dGhpbmdMZXZlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NjJCNzQ4NDEyMEJC
QTJEMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzgwMUMwOTUxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSGl0VGVzdFJlc3Vs
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zODYzLDYgKzM4OTQsMTYgQEAK
IAkJCW5hbWUgPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk3NTU0
MjJDNTE4MDY0RkZDMDA0NkY2QTggLyogT3JpZ2luRGF0YSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNzU1NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLywKKwkJCQk3NTU0MjJDNzE4MDY0RkZDMDA0NkY2QTgg
LyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCAqLywKKwkJCQk3NTU0MjJDODE4MDY0RkZDMDA0NkY2
QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJbmFt
ZSA9IE9yaWdpbkRhdGE7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk3Q0Ix
NkZFMTE3MjRCOUI1MDA3QTBBOTUgLyogUGx1Z0luU2FuZGJveFByb2ZpbGVzICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTM5MTIsNiArMzk1Myw3IEBACiAJ
CUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk3NTU0MjJDNTE4MDY0RkZDMDA0NkY2QTgg
LyogT3JpZ2luRGF0YSAqLywKIAkJCQk1MTJFMzUyQTEzMEI1NTk5MDBBQkQxOUEgLyogQXBwbGlj
YXRpb25DYWNoZSAqLywKIAkJCQkzMzA5MzQ0QjEzMTVCOTNBMDA5N0E3QkMgLyogQ29va2llcyAq
LywKIAkJCQk1MTJBOTc1NDE4MERGOTI3MDAzOUExNDkgLyogRGF0YWJhc2VzICovLApAQCAtNDE0
Miw2ICs0MTg0LDExIEBACiAJCQkJQkNGNjlGQTAxMTc2RDAxNDAwNDcxQTUyIC8qIFdlYk5hdmln
YXRpb25EYXRhLmggKi8sCiAJCQkJQkMxREZFQTMxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwICovLAogCQkJCUJDMURGRUEyMTJCMzFGODcwMDVE
RjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggKi8sCisJCQkJNzU1NDIy
QkUxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICovLAor
CQkJCTc1NTQyMkJGMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
LmggKi8sCisJCQkJNzU1NDIyQzAxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJNzU5Q0NENTQxODA4RjE2MDAwNzhFOEE4IC8q
IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwICovLAorCQkJCTc1OUND
RDU1MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xp
ZW50LmggKi8sCiAJCQkJNTE1MzU2OUExMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0
TWVudUNsaWVudC5jcHAgKi8sCiAJCQkJNTE1MzU2OUIxMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBh
Z2VDb250ZXh0TWVudUNsaWVudC5oICovLAogCQkJCUJDN0I2MjA1MTI5QTBBNjcwMEQxNzRBNCAv
KiBXZWJQYWdlR3JvdXAuY3BwICovLApAQCAtNDI0NSw2ICs0MjkyLDggQEAKIAkJCQlCQzg1N0ZF
NDEyQjg0M0Q4MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmggKi8sCiAJCQkJQkMx
REZFOEUxMkIzMUNBODAwNURGNzMwIC8qIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwICov
LAogCQkJCUJDMURGRThEMTJCMzFDQTgwMDVERjczMCAvKiBXS09wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyLmggKi8sCisJCQkJNzU1NDIyQjkxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1h
bmFnZXIuY3BwICovLAorCQkJCTc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRh
dGFNYW5hZ2VyLmggKi8sCiAJCQkJQkNENTk3RDQxMTJCNTZEQzAwRUM4QzIzIC8qIFdLUGFnZS5j
cHAgKi8sCiAJCQkJQkNENTk3RDUxMTJCNTZEQzAwRUM4QzIzIC8qIFdLUGFnZS5oICovLAogCQkJ
CUJDN0I2MzM2MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5jcHAgKi8sCkBAIC00OTU3
LDYgKzUwMDYsMTAgQEAKIAkJQzBDRTcyOUQxMjQ3RTcxRDAwQkMwRUM0IC8qIERlcml2ZWQgU291
cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNzVF
NzQ5RTUxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKKwkJCQk3NUU3NDlFNjE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTc1RTc0OUU3MTgwREJCOTgwMDA4OEJBNiAvKiBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk3NUU3
NDlFODE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmggKi8sCiAJCQkJNTEyRjU4QTAxMkE4ODNBRDAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTEyRjU4QTExMkE4ODNBRDAwNjI5NTMw
IC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJRTE3QUUyQzIxNkI5
QzYzQTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IgKi8sCkBA
IC01NDM2LDkgKzU0ODksMTEgQEAKIAkJCQlCQ0RFMDU5QjExQ0RBOEFFMDBFNDFBRjEgLyogV2Vi
Q29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg3MUI1
QzEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMDMyRDc3MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNzVFNzQ5RUMxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyOTM1RDgxMjg4RDE5
NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEw
RkJCOUIxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxQUNCQjgyMTI3QThCQUQwMEQyMDNCOSAvKiBXZWJDb250ZXh0TWVudVBy
b3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NUU3NDlFQTE4MERCQjk4MDAwODhCQTYgLyogV2Vi
T3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBQ0JCQTAx
MjdBOEYyQzAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHlNYWMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDQ0I3NUM2MTIwM0ExQ0UwMDIyMkQxQiAvKiBXZWJDb250ZXh0TWVzc2FnZUtpbmRz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VFN0QwRTEyODQ2RjY5MDA5ODI3REEgLyogV2ViQ29u
dGV4dE1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAgLTU3MDIsNiArNTc1Nyw3IEBACiAJCQkJ
QkNEREIzMkIxMjRFQzJBQjAwNDhEMTNDIC8qIFdLU2hhcmVkQVBJQ2FzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM0MDc2MDYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzQwNzYxQTEyNEZGMDM3MDA2OEYyMEEgLyogV0tTdHJpbmdDRi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNzU5Q0NENTkxODA4RjE2OTAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTA5OTgwMTI1
NkE5ODIwMDA4Mzc1NiAvKiBXS1N0cmluZ1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3
N0VBRDQ4MTdFMkM3N0IwMDJEMTkzRCAvKiBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNEE5QUE4MTJCN0U3OTYwMDhGRTk4NCAvKiBXS1RleHRJbnB1
dFdpbmRvd0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNTcxMiwxMSArNTc2OCwxMyBA
QAogCQkJCUJDNDA3NjBDMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1VSTFJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNDA3NjI5MTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlcXVlc3ROUy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MEUxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVz
cG9uc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1OUNDRDVBMTgwOEY2MTYwMDc4RThBOCAvKiBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYyQjEy
NEZGMDQwMDA2OEYyMEEgLyogV0tVUkxSZXNwb25zZU5TLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
NjExM0UyOTEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDODY5OUI1MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDODY5OUI3MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXdJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkZBNjE3OUYxMkYwQjk5RDAwMzNFMENBIC8qIFdLVmll
d1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1NTQyMkNDMTgwNzczQ0UwMDQ2RjZBOCAv
KiBXZWJPcmlnaW5EYXRhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVFMUFGRTkxNkIy
MEI3NTAwNkNDMUYyIC8qIFdLV2ViQXJjaGl2ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVFMUFG
RUIxNkIyMEI3RTAwNkNDMUYyIC8qIFdLV2ViQXJjaGl2ZVJlc291cmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzk4OUQ4MjE2MUE3RTVEMDAwRDQ2RDMgLyogV0tXZWJQcm9jZXNzUGx1Z0luLmgg
aW4gSGVhZGVycyAqLywKQEAgLTY1MTksNiArNjU3Nyw3IEBACiAJCQkJQkNFRTdEQzYxMjhCNjQ1
RDAwOTgyN0RBIC8qIEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxRkEyRDc0MTUyMTJERjEwMEMxQkEwQiAvKiBJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVu
c2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQ5ODYxOTEyNEQxMEUyMDBEODM0RTEgLyog
SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1RTc0
OUU5MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIwNEVFNjExQzgzRUE5MDA4RjMzNzUgLyogSW5q
ZWN0ZWRCdW5kbGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzgxNDdENjEyRjY2RDMxMDA3
QjJDMzIgLyogSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDNEJFRUFDMTIwQTBBNUYwMEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5k
bGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02NTI3LDYgKzY1ODYsNyBAQAogCQkJCUUxRUU1M0U3
MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkMxNEUxMDkxMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVu
ZGxlUGFnZUZvcm1DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1QzY2QTAxMzRCOUQz
ODAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNzU1NDIyQ0IxODA2NTAwMjAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQThDNkE4MTFFM0JBNUYwMDgxMkZCNyAv
KiBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM4MTQ3QUExMkY2NENEQTAwN0IyQzMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTlDNTUxRTEzMDAwNjQxMDAyNUMwQzIgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAt
NjYzOCw2ICs2Njk4LDcgQEAKIAkJCQkxQTA0M0I1RDEyNEQ1RTlEMDBGRkJGQjUgLyogUGx1Z2lu
UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMDQz
REMyMTI0RkY4NzUwMEZGQkZCNSAvKiBQbHVnaW5Qcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTJEOTIyMTEyODFEQzFCMDAxRUI5NjIgLyogUGx1Z2luUHJveHlNYWMubW0gaW4gU291cmNl
cyAqLywKKwkJCQk3NTU0MjJDNDE4MDYyQkY5MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQThFRkE3MDEyNTJCODQxMDBGNzA2N0Yg
LyogUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NE
NjIyNzcxNzM5RDg2MzAwNUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM4Mjg0NEQxNkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2VFbnRy
eVBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC02NzU5LDYgKzY4MjAsNyBAQAogCQkJCUJDQjlG
NkExMTEyM0E4NEIwMEExMzdFMCAvKiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFCMEUxMTJGNUU0RjAwMzM3QkFCIC8qIFdlYkZyYW1lUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNTMxMzFCNjQ1QjAwRUVERUQyIC8qIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1NTQyMkJEMTgwNjJC
QjIwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDZGNzVGNDEzMUI2NkQwMDBENkIyMUUg
LyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRENB
ODVFRTEzMkFENzAxMDBFOTYxREYgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5tbSBp
biBTb3VyY2VzICovLApAQCAtNjgzOSw2ICs2OTAxLDcgQEAKIAkJCQkxQTA0M0EwQTEyNEQxMUE5
MDBGRkJGQjUgLyogV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUEwNDNGNjkxMjUxNEQ4QjAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMzA2ODI1MTI1QTZCOTQwMEU3MTI3OCAv
KiBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1
RTc0OUVCMTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMzA2NUM0MTI1OTJGODkwMEU3MTI3
OCAvKiBXZWJQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMzMDY2QkUxMjVBNDQy
MTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkMxMTFCMTExMTJGNUU0RjAwMzM3QkFCIC8qIFdlYlByb2Nlc3NQcm94eS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTY5MDIsNiArNjk2NSw3IEBACiAJCQkJOUZCNUYzOTQxNjlFNkE4MDAw
MkMyNUJGIC8qIFdLQ29udGV4dFByaXZhdGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMzA5
MzQ1QTEzMTVCOTk4MDA5N0E3QkMgLyogV0tDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxMkY1OEY5MTJBODhBNTQwMDYyOTUzMCAvKiBXS0NyZWRlbnRpYWwuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNzU5Q0NENTgxODA4RjE2NDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc1Rjcx
MjRGRjAyNzAwNjhGMjBBIC8qIFdLRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNjJBNzY2
MTEyQjFBQkVEMDAwNUYxQjYgLyogV0tEYXRhYmFzZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTE3REQ1QzIxODBEQjdCNzAwODE2NjBCIC8qIERhdGFiYXNlUHJvY2Vzc01hYy5tbSBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Pcmln
aW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNTZmMTM2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAKQEAgLTAs
MCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5o
IgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbkhhc2guaD4KKworI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY29uc3QgY2hhciogV2ViT3JpZ2lu
RGF0YU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIldlYk9yaWdpbkRh
dGFNYW5hZ2VyIjsKK30KKworV2ViT3JpZ2luRGF0YU1hbmFnZXI6OldlYk9yaWdpbkRhdGFNYW5h
Z2VyKENoaWxkUHJvY2VzcyogY2hpbGRQcm9jZXNzKQorICAgIDogbV9jaGlsZFByb2Nlc3MoY2hp
bGRQcm9jZXNzKQoreworICAgIG1fY2hpbGRQcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMp
OworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpnZXRPcmlnaW5zKFdLT3JpZ2luRGF0
YVR5cGVzIHR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIEhhc2hTZXQ8UmVmUHRy
PFNlY3VyaXR5T3JpZ2luPj4gb3JpZ2luczsKKworICAgIC8vIEZJWE1FOiBwb3B1bGF0ZSBvcmln
aW5zCisKKyAgICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBpZGVudGlmaWVyczsKKyAgICBp
ZGVudGlmaWVycy5yZXNlcnZlQ2FwYWNpdHkob3JpZ2lucy5zaXplKCkpOworCisgICAgSGFzaFNl
dDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+Pjo6aXRlcmF0b3IgZW5kID0gb3JpZ2lucy5lbmQoKTsK
KyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+OjppdGVyYXRvciBpID0gb3JpZ2lu
cy5iZWdpbigpOworICAgIGZvciAoOyBpICE9IGVuZDsgKytpKSB7CisgICAgICAgIFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gKmk7CisKKyAgICAgICAgU2VjdXJpdHlPcmlnaW5EYXRh
IG9yaWdpbkRhdGE7CisgICAgICAgIG9yaWdpbkRhdGEucHJvdG9jb2wgPSBvcmlnaW4tPnByb3Rv
Y29sKCk7CisgICAgICAgIG9yaWdpbkRhdGEuaG9zdCA9IG9yaWdpbi0+aG9zdCgpOworICAgICAg
ICBvcmlnaW5EYXRhLnBvcnQgPSBvcmlnaW4tPnBvcnQoKTsKKworICAgICAgICBpZGVudGlmaWVy
cy51bmNoZWNrZWRBcHBlbmQob3JpZ2luRGF0YSk7CisgICAgfQorCisgICAgbV9jaGlsZFByb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OkRpZEdldE9yaWdp
bnMoaWRlbnRpZmllcnMsIGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRh
TWFuYWdlcjo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywg
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW5EYXRhKQoreworICAgIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnBy
b3RvY29sLCBvcmlnaW5EYXRhLmhvc3QsIG9yaWdpbkRhdGEucG9ydCk7CisgICAgaWYgKCFvcmln
aW4pCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBkZWxldGUgY2FjaGUKK30KKwor
dm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFU
eXBlcyB0eXBlcykKK3sKKyAgICAvLyBGSVhNRTogZGVsZXRlIGVudHJpZXMKK30KKwordm9pZCBX
ZWJPcmlnaW5EYXRhTWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5
cGVzIHR5cGVzKQoreworICAgIC8vIEZJWE1FOiBzdGFydCBvYnNlcnZpbmcgY2hhbmdlcworfQor
Cit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdp
bkRhdGFUeXBlcyB0eXBlcykKK3sKKyAgICAvLyBGSVhNRTogc3RvcCBvYnNlcnZpbmcgY2hhbmdl
cworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThlYTUxNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdl
ci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyX2gKKyNkZWZpbmUgV2ViT3JpZ2luRGF0YU1hbmFnZXJfaAorCisjaW5jbHVk
ZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV0tPcmlnaW5EYXRhTWFuYWdlci5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBDaGlsZFByb2Nlc3M7CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwor
CitjbGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVu
dCwgcHVibGljIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoV2ViT3JpZ2luRGF0YU1hbmFnZXIpOworcHVibGljOgorICAgIFdlYk9yaWdpbkRhdGFN
YW5hZ2VyKENoaWxkUHJvY2VzcyopOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1l
bnROYW1lKCk7CisKKyAgICB2b2lkIGRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhVHlwZXMp
OworCitwcml2YXRlOgorICAgIHZvaWQgZ2V0T3JpZ2lucyhXS09yaWdpbkRhdGFUeXBlcywgdWlu
dDY0X3QpOworICAgIHZvaWQgZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdpbkRhdGFUeXBl
cywgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7CisgICAgdm9pZCBzdGFydE9ic2VydmluZ0No
YW5nZXMoV0tPcmlnaW5EYXRhVHlwZXMpOworICAgIHZvaWQgc3RvcE9ic2VydmluZ0NoYW5nZXMo
V0tPcmlnaW5EYXRhVHlwZXMpOworCisgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworCisgICAgQ2hpbGRQcm9jZXNzKiBt
X2NoaWxkUHJvY2VzczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
V2ViT3JpZ2luRGF0YU1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5NGU2MzgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3Jp
Z2luRGF0YU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
IyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJPcmlnaW5EYXRhTWFu
YWdlciB7CisgICAgdm9pZCBHZXRPcmlnaW5zKHVpbnQzMl90IHR5cGVzLCB1aW50NjRfdCBjYWxs
YmFja0lEKQorICAgIHZvaWQgRGVsZXRlRW50cmllc0Zvck9yaWdpbih1aW50MzJfdCB0eXBlcywg
V2ViS2l0OjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luSWRlbnRpZmllcikKKyAgICB2b2lkIERl
bGV0ZUFsbEVudHJpZXModWludDMyX3QgdHlwZXMpCisgICAgdm9pZCBTdGFydE9ic2VydmluZ0No
YW5nZXModWludDMyX3QgdHlwZXMpCisgICAgdm9pZCBTdG9wT2JzZXJ2aW5nQ2hhbmdlcyh1aW50
MzJfdCB0eXBlcykKK30K
</data>
<flag name="review"
          id="237016"
          type_id="1"
          status="+"
          setter="beidson"
    />
    <flag name="commit-queue"
          id="237037"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214494</attachid>
            <date>2013-10-17 13:10:42 -0700</date>
            <delta_ts>2013-10-17 13:50:21 -0700</delta_ts>
            <desc>rebase + fix comment</desc>
            <filename>122781o.diff</filename>
            <type>text/plain</type>
            <size>63886</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggN2U2NTY0Mi4uZDM4MzQ1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTUyLDYgKzUyLDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUiCiAgICAgIiR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvTmV0d29yayIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL09yaWdpbkRh
dGEiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIgogICAgICIke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUiCkBAIC0zMzEsNiArMzMyLDggQEAgc2V0KFdlYktp
dDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAK
ICAgICBVSVByb2Nlc3MvV2ViTmV0d29ya0luZm9Qcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3Mv
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eUNoYW5nZUNsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51
Q2xpZW50LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuY3BwCiAgICAgVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM3OCw2ICszODEsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VT
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3Bw
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAKKyAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAKICAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwCkBAIC00OTMsNiArNDk3LDggQEAgc2V0
KFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCiAKKyAgICBXZWJQcm9jZXNzL09yaWdpbkRh
dGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luLmNwcAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5j
cHAKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
LmNwcApAQCAtNTg1LDYgKzU5MSw3IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAg
ICAgVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNz
L1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2Vi
TmV0d29ya0luZm9NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyAgICBVSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CiAgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
QEAgLTYyNSw2ICs2MzIsOCBAQCBzZXQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUwogCiAgICAg
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIubWVzc2FnZXMu
aW4KIAorICAgIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNz
YWdlcy5pbgorCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0
aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94
eS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDg5MDE3NzQuLjhhZjhkZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw3NCBAQAorMjAxMy0xMC0xNyAgTWFydGluIEhvY2sgIDxtaG9ja0BhcHBsZS5j
b20+CisKKyAgICAgICAgUmVmYWN0b3Igc3RvcmVkIHdlYnNpdGUgZGF0YSBBUElzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI3ODEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV2ViT3JpZ2luRGF0
YU1hbmFnZXIgYWxvbmcgd2l0aCBjb3JyZXNwb25kaW5nIGNsYXNzCisgICAgICAgIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHkgYW5kIEFQSSBXS09yaWdpbkRhdGFNYW5hZ2VyLgorCisgICAgICAg
IEN1cnJlbnRseSwgdGhlIG5ldyBmaWxlcyBhcmUgdW51c2VkLgorCisgICAgICAgIFdLT3JpZ2lu
RGF0YU1hbmFnZXIgc2hvdWxkIHN1YnN1bWUgdGhlIGZ1bmN0aW9uYWxpdHkgb2Y6CisgICAgICAg
IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIsIFdLQ29va2llTWFuYWdlciwgV0tEYXRhYmFzZU1h
bmFnZXIsCisgICAgICAgIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlciwgV0tNZWRpYUNhY2hlTWFu
YWdlciwKKyAgICAgICAgV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIsIGFuZCBXS1Jlc291cmNlQ2Fj
aGVNYW5hZ2VyLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAg
ICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAg
ICAoV0tDb250ZXh0R2V0T3JpZ2luRGF0YU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRh
TWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV0tPcmlnaW5EYXRhTWFuYWdlckdldFR5cGVJ
RCk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2lucyk6CisgICAgICAgIChX
S09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXS09y
aWdpbkRhdGFNYW5hZ2VyRGVsZXRlQWxsRW50cmllcyk6CisgICAgICAgIChXS09yaWdpbkRhdGFN
YW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdLT3JpZ2luRGF0YU1hbmFn
ZXJTdG9wT2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAgIChXS09yaWdpbkRhdGFNYW5hZ2VyU2V0
Q2hhbmdlQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFu
YWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQ
cm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5OjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5Ojp+V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmNvbnRleHREZXN0cm95ZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpwcm9jZXNzRGlk
Q2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpzaG91
bGRUZXJtaW5hdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
OjpyZWZXZWJDb250ZXh0U3VwcGxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHk6OmRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpnZXRPcmlnaW5zKToKKyAgICAgICAgKFdl
YktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkR2V0T3JpZ2lucyk6CisgICAgICAg
IChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlbGV0ZUVudHJpZXNGb3JPcmln
aW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxldGVB
bGxFbnRyaWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6
c3RhcnRPYnNlcnZpbmdDaGFuZ2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eTo6c3RvcE9ic2VydmluZ0NoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5OjpzZXRDaGFuZ2VDbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdl
Q2xpZW50OjpkaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL09yaWdpbkRhdGEvV2Vi
T3JpZ2luRGF0YU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2lu
RGF0YU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViT3JpZ2lu
RGF0YU1hbmFnZXI6OldlYk9yaWdpbkRhdGFNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
T3JpZ2luRGF0YU1hbmFnZXI6OmdldE9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJPcmln
aW5EYXRhTWFuYWdlcjo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpkZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5nQ2hhbmdlcyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdl
ci5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTMtMTAtMTcgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIEJsaW5kIGF0dGVtcHQgYXQgZ3RrLXdrMiBidWlsZCBm
aXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA1YTUzMmVlLi5jNDM4MzViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQxLDYgKzQxLDcgQEAgVlBBVEggPSBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUgXAogICAgICQoV2ViS2l0Mikv
V2ViUHJvY2Vzcy9OZXR3b3JrIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvTm90aWZpY2F0
aW9ucyBcCisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL09yaWdpbkRhdGEgXAogICAgICQoV2Vi
S2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUmVz
b3VyY2VDYWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1N0b3JhZ2UgXApAQCAtMTA2
LDYgKzEwNyw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFdlYk1lZGlhQ2FjaGVNYW5h
Z2VyIFwKICAgICBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5IFwKICAgICBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyIFwKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdlciBcCisgICAgV2ViT3JpZ2luRGF0
YU1hbmFnZXJQcm94eSBcCiAgICAgV2ViUGFnZSBcCiAgICAgV2ViUGFnZUdyb3VwUHJveHkgXAog
ICAgIFdlYlBhZ2VQcm94eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCmluZGV4IDU0YjMzYjYuLjllZTVk
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCkBAIC0xNTcsNiArMTU3LDcgQEAgbGlid2Via2l0Mmd0
a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJT
SU9OQF9sYV9DUFAKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlh
Q2FjaGUgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0lu
Zm8gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9u
cyBcCisJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhIFwK
IAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXAog
CS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZSBcCiAJLUkkKHNy
Y2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwIFwKQEAgLTM4NSw2ICszODYsNyBA
QCB2cGF0aCAlLm1lc3NhZ2VzLmluID0gXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9OZXR3b3Jr
IFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvTmV0d29ya0luZm8gXAogCSQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKKwkkKFdlYktpdDIpL1dlYlByb2Nlc3MvT3JpZ2luRGF0
YSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL1BsdWdpbnMgXAogCSQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9SZXNvdXJjZUNhY2hlIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFnZSBcCkBA
IC03NDgsNiArNzUwLDcgQEAgRVhUUkFfRElTVCArPSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIp
L1dlYlByb2Nlc3MvTmV0d29yay8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvTmV0d29ya0luZm8vKi5pbikgXAogCSQoc2hlbGwgbHMgJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvKi5pbikgXAorCSQoc2hlbGwgbHMgJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL09yaWdpbkRhdGEvKi5pbikgXAogCSQoc2hlbGwgbHMgJChXZWJLaXQyKS9XZWJQcm9jZXNz
L1BsdWdpbnMvKi5pbikgXAogCSQoc2hlbGwgbHMgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291
cmNlQ2FjaGUvKi5pbikgXAogCSQoc2hlbGwgbHMgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1N0b3Jh
Z2UvKi5pbikgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMGMwZTA1Ni4uNTkz
NWUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC04Myw2ICs4Myw3IEBAIHdl
YmtpdDJfaF9hcGkgKz0gXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0
aW9uUHJvdmlkZXIuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxQ
YXJhbWV0ZXJzLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIuaCBcCisJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRh
TWFuYWdlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oIFwK
IAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBcCiAJJChXZWJLaXQyKS9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIFwKQEAgLTIyMyw2ICsyMjQsMTAgQEAgd2Via2l0
Ml9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk5ldHdvcmtJ
bmZvTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9XZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oIFwKKwlE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlBhZ2VHcm91cFBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJQYWdl
R3JvdXBQcm94eU1lc3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUGFnZVBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCkBAIC02NDEsNiArNjQ2LDggQEAgd2Via2l0Ml9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxQYXJh
bWV0ZXJzLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJl
c3VsdExpc3RlbmVyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXIuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLT3JpZ2luRGF0YU1hbmFnZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tPcmlnaW5EYXRhTWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdy
b3VwLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmgg
XApAQCAtOTgwLDYgKzk4NywxMCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmggXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBcCiAJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCBcCisJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIFwK
KwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIFwK
KwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5n
ZUNsaWVudC5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlQ29udGV4dE1lbnVDbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZUNvbnRleHRNZW51Q2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlR3JvdXAuY3BwIFwKQEAgLTExMzcsNiArMTE0OCw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggXAorCVNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5j
cHAgXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRh
TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE1ldGhvZC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QTWV0aG9kLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgK
aW5kZXggNjk5NGNiZC4uMTk3YWQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2Uu
aApAQCAtMTE5LDYgKzExOSw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QqIFdLTm90aWZpY2F0aW9uUGVybWlzCiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS05vdGlmaWNhdGlvblByb3ZpZGVyKiBXS05vdGlmaWNhdGlvblBy
b3ZpZGVyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tPcGVuUGFuZWxQYXJhbWV0
ZXJzKiBXS09wZW5QYW5lbFBhcmFtZXRlcnNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyKiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVm
OwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tPcmlnaW5EYXRhTWFuYWdlciogV0tPcmln
aW5EYXRhTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFnZSogV0tQ
YWdlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlR3JvdXAqIFdLUGFnZUdy
b3VwUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQbHVnaW5TaXRlRGF0YU1hbmFn
ZXIqIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5o
CmluZGV4IDQ0MWUwNWUuLjcwMzIxYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKQEAg
LTEwMyw2ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdCwKICAgICAgICAgVHlwZU9wZW5QYW5lbFBhcmFtZXRlcnMsCiAgICAgICAgIFR5
cGVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciwKKyAgICAgICAgVHlwZU9yaWdpbkRhdGFNYW5hZ2Vy
LAogICAgICAgICBUeXBlUGFnZSwKICAgICAgICAgVHlwZVBhZ2VHcm91cCwKICAgICAgICAgVHlw
ZVBsdWdpblNpdGVEYXRhTWFuYWdlciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaAppbmRleCA2NGM4ZDFhLi5kZDg4ZDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC04Nyw2ICs4Nyw3IEBAIGNsYXNzIFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyOwogY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OwogY2xh
c3MgV2ViT3BlblBhbmVsUGFyYW1ldGVyczsKIGNsYXNzIFdlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyUHJveHk7CitjbGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OwogY2xhc3MgV2ViUGFn
ZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUGx1Z2luU2l0ZURhdGFNYW5h
Z2VyOwpAQCAtMTMzLDYgKzEzNCw3IEBAIFdLX0FERF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlv
blByb3ZpZGVyUmVmLCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcikKIFdLX0FERF9BUElfTUFQUElO
RyhXS05vdGlmaWNhdGlvblJlZiwgV2ViTm90aWZpY2F0aW9uKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZiwgV2ViT3BlblBhbmVsUGFyYW1ldGVycykKIFdLX0FE
RF9BUElfTUFQUElORyhXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmLCBXZWJPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lclByb3h5KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLT3JpZ2luRGF0YU1hbmFn
ZXJSZWYsIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tQ
YWdlR3JvdXBSZWYsIFdlYlBhZ2VHcm91cCkKIFdLX0FERF9BUElfTUFQUElORyhXS1BhZ2VSZWYs
IFdlYlBhZ2VQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1BsdWdpblNpdGVEYXRhTWFuYWdl
clJlZiwgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCBhNDdlNDlmLi5mYmZiYzFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNDEsNiArNDEsNyBA
QAogI2luY2x1ZGUgIldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJN
ZWRpYUNhY2hlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5LmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oIgogI2luY2x1
ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpZiBFTkFCTEUoU1FMX0RBVEFC
QVNFKQogI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlclByb3h5LmgiCkBAIC0yNzQsNiArMjc1
LDExIEBAIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNo
ZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSCiAgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChj
b250ZXh0UmVmKS0+c3VwcGxlbWVudDxXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PigpKTsK
IH0KIAorV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRPcmlnaW5EYXRhTWFuYWdl
cihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNv
bnRleHRSZWYpLT5zdXBwbGVtZW50PFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk+KCkpOworfQor
CiB2b2lkIFdLQ29udGV4dFN0YXJ0TWVtb3J5U2FtcGxlcihXS0NvbnRleHRSZWYgY29udGV4dFJl
ZiwgV0tEb3VibGVSZWYgaW50ZXJ2YWwpCiB7CiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5zdGFy
dE1lbW9yeVNhbXBsZXIodG9JbXBsKGludGVydmFsKS0+dmFsdWUoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKaW5kZXggM2NlNzMxZS4uZWZkNjc3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaApAQCAtMTk1LDcgKzE5
NSw4IEBAIFdLX0VYUE9SVCBXS05ldHdvcmtJbmZvTWFuYWdlclJlZiBXS0NvbnRleHRHZXROZXR3
b3JrSW5mb01hbmFnZXIoV0tDb250ZXh0UmVmIGNvCiBXS19FWFBPUlQgV0tOb3RpZmljYXRpb25N
YW5hZ2VyUmVmIFdLQ29udGV4dEdldE5vdGlmaWNhdGlvbk1hbmFnZXIoV0tDb250ZXh0UmVmIGNv
bnRleHQpOwogV0tfRVhQT1JUIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmIFdLQ29udGV4dEdl
dFBsdWdpblNpdGVEYXRhTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQg
V0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdl
cihXS0NvbnRleHRSZWYgY29udGV4dCk7Ci0gICAgCitXS19FWFBPUlQgV0tPcmlnaW5EYXRhTWFu
YWdlclJlZiBXS0NvbnRleHRHZXRPcmlnaW5EYXRhTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4
dCk7CisKIHR5cGVkZWYgdm9pZCAoKldLQ29udGV4dEdldFN0YXRpc3RpY3NGdW5jdGlvbikoV0tE
aWN0aW9uYXJ5UmVmIHN0YXRpc3RpY3MsIFdLRXJyb3JSZWYgZXJyb3IsIHZvaWQqIGZ1bmN0aW9u
Q29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzKFdLQ29udGV4
dFJlZiBjb250ZXh0LCB2b2lkKiBmdW5jdGlvbkNvbnRleHQsIFdLQ29udGV4dEdldFN0YXRpc3Rp
Y3NGdW5jdGlvbiBmdW5jdGlvbik7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRHZXRTdGF0aXN0
aWNzV2l0aE9wdGlvbnMoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RhdGlzdGljc09wdGlvbnMg
c3RhdGlzdGljc01hc2ssIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCwgV0tDb250ZXh0R2V0U3RhdGlz
dGljc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5jZjg1MzkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLT3JpZ2luRGF0YU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNjcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tPcmlnaW5EYXRh
TWFuYWdlci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViT3JpZ2lu
RGF0YU1hbmFnZXJQcm94eS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJ
RCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6QVBJVHlwZSk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRh
TWFuYWdlckdldE9yaWdpbnMoV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdl
clJlZiwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMsIHZvaWQqIGNvbnRleHQsIFdLT3JpZ2luRGF0
YU1hbmFnZXJHZXRPcmlnaW5zRnVuY3Rpb24gY2FsbGJhY2spCit7CisgICAgdG9JbXBsKG9yaWdp
bkRhdGFNYW5hZ2VyUmVmKS0+Z2V0T3JpZ2lucyh0eXBlcywgQXJyYXlDYWxsYmFjazo6Y3JlYXRl
KGNvbnRleHQsIGNhbGxiYWNrKSk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlckRlbGV0
ZUVudHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdl
clJlZiwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2lu
UmVmKQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPmRlbGV0ZUVudHJpZXNG
b3JPcmlnaW4odHlwZXMsIHRvSW1wbChvcmlnaW5SZWYpKTsKK30KKwordm9pZCBXS09yaWdpbkRh
dGFNYW5hZ2VyRGVsZXRlQWxsRW50cmllcyhXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRh
dGFNYW5hZ2VyUmVmLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBlcykKK3sKKyAgICB0b0ltcGwob3Jp
Z2luRGF0YU1hbmFnZXJSZWYpLT5kZWxldGVBbGxFbnRyaWVzKHR5cGVzKTsKK30KKwordm9pZCBX
S09yaWdpbkRhdGFNYW5hZ2VyU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YU1hbmFn
ZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKQorewor
ICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyh0
eXBlcyk7Cit9CisKK3ZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclN0b3BPYnNlcnZpbmdDaGFuZ2Vz
KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYsIFdLT3JpZ2luRGF0
YVR5cGVzIHR5cGVzKQoreworICAgIHRvSW1wbChvcmlnaW5EYXRhTWFuYWdlclJlZiktPnN0b3BP
YnNlcnZpbmdDaGFuZ2VzKHR5cGVzKTsKK30KKwordm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU2V0
Q2hhbmdlQ2xpZW50KFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXJSZWYs
IGNvbnN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQgKmNsaWVudCkKK3sKKyAgICB0
b0ltcGwob3JpZ2luRGF0YU1hbmFnZXJSZWYpLT5zZXRDaGFuZ2VDbGllbnQoY2xpZW50KTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09yaWdpbkRhdGFN
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRhTWFu
YWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxMDA1NGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcmlnaW5EYXRh
TWFuYWdlci5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLT3JpZ2lu
RGF0YU1hbmFnZXJfaAorI2RlZmluZSBXS09yaWdpbkRhdGFNYW5hZ2VyX2gKKworI2luY2x1ZGUg
PFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7Cisj
ZW5kaWYKKworZW51bSB7CisgICAga1dLQXBwbGljYXRpb25DYWNoZU9yaWdpbkRhdGEgPSAxIDw8
IDAsCisgICAga1dLQ29va2llT3JpZ2luRGF0YSA9IDEgPDwgMSwKKyAgICBrV0tEYXRhYmFzZU9y
aWdpbkRhdGEgPSAxIDw8IDIsCisgICAga1dLS2V5VmFsdWVTdG9yYWdlT3JpZ2luRGF0YSA9IDEg
PDwgMywKKyAgICBrV0tNZWRpYUNhY2hlT3JpZ2luRGF0YSA9IDEgPDwgNCwKKyAgICBrV0tQbHVn
aW5EYXRhT3JpZ2luRGF0YSA9IDEgPDwgNSwKKyAgICBrV0tSZXNvdXJjZUNhY2hlT3JpZ2luRGF0
YSA9IDEgPDwgNiwKKworICAgIGtXS0FsbE9yaWdpbkRhdGEgPSAoMSA8PCA3KSAtIDEKK307Cit0
eXBlZGVmIHVpbnQzMl90IFdLT3JpZ2luRGF0YVR5cGVzOworCitXS19FWFBPUlQgV0tUeXBlSUQg
V0tPcmlnaW5EYXRhTWFuYWdlckdldFR5cGVJRCgpOworCit0eXBlZGVmIHZvaWQgKCpXS09yaWdp
bkRhdGFNYW5hZ2VyR2V0T3JpZ2luc0Z1bmN0aW9uKShXS0FycmF5UmVmLCBXS0Vycm9yUmVmLCB2
b2lkKik7CitXS19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyR2V0T3JpZ2lucyhXS09y
aWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFUeXBlcyB0
eXBlcywgdm9pZCogY29udGV4dCwgV0tPcmlnaW5EYXRhTWFuYWdlckdldE9yaWdpbnNGdW5jdGlv
biBmdW5jdGlvbik7CisKK1dLX0VYUE9SVCB2b2lkIFdLT3JpZ2luRGF0YU1hbmFnZXJEZWxldGVF
bnRyaWVzRm9yT3JpZ2luKFdLT3JpZ2luRGF0YU1hbmFnZXJSZWYgb3JpZ2luRGF0YU1hbmFnZXIs
IFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbik7CitX
S19FWFBPUlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyRGVsZXRlQWxsRW50cmllcyhXS09yaWdp
bkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBl
cyk7CisKKy8vIE9yaWdpbkRhdGFNYW5hZ2VyIENsaWVudAordHlwZWRlZiB2b2lkICgqV0tPcmln
aW5EYXRhTWFuYWdlckNoYW5nZUNhbGxiYWNrKShXS09yaWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdp
bkRhdGFNYW5hZ2VyLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3N0cnVjdCBXS09yaWdpbkRh
dGFNYW5hZ2VyQ2hhbmdlQ2xpZW50IHsKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAg
IGNsaWVudEluZm87CisgICAgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNhbGxiYWNrICAgZGlk
Q2hhbmdlOworfTsKK3R5cGVkZWYgc3RydWN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGll
bnQgV0tPcmlnaW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudDsKKworZW51bSB7IGtXS09yaWdpbkRh
dGFNYW5hZ2VyQ2hhbmdlQ2xpZW50VmVyc2lvbiA9IDAgfTsKKworV0tfRVhQT1JUIHZvaWQgV0tP
cmlnaW5EYXRhTWFuYWdlclN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFNYW5hZ2Vy
UmVmIG9yaWdpbkRhdGFNYW5hZ2VyLCBXS09yaWdpbkRhdGFUeXBlcyB0eXBlcyk7CitXS19FWFBP
UlQgdm9pZCBXS09yaWdpbkRhdGFNYW5hZ2VyU3RvcE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5E
YXRhTWFuYWdlclJlZiBvcmlnaW5EYXRhTWFuYWdlciwgV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMp
OworV0tfRVhQT1JUIHZvaWQgV0tPcmlnaW5EYXRhTWFuYWdlclNldENoYW5nZUNsaWVudChXS09y
aWdpbkRhdGFNYW5hZ2VyUmVmIG9yaWdpbkRhdGFNYW5nZXIsIGNvbnN0IFdLT3JpZ2luRGF0YU1h
bmFnZXJDaGFuZ2VDbGllbnQqIGNsaWVudCk7CisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRp
ZgorCisjZW5kaWYgLy8gV0tPcmlnaW5EYXRhTWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNkZjYxZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcApAQCAt
MCwwICsxLDE1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViT3Jp
Z2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjb25zdCBjaGFyKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpz
dXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
IjsKK30KKworUGFzc1JlZlB0cjxXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5PiBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkoY29udGV4dCkpOworfQor
CitXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KFdl
YkNvbnRleHQqIGNvbnRleHQpCis6IFdlYkNvbnRleHRTdXBwbGVtZW50KGNvbnRleHQpCit7Cisg
ICAgY29udGV4dC0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOworfQorCitXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5Ojp+V2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eSgpCit7Cit9CisKKwor
dm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Ojpjb250ZXh0RGVzdHJveWVkKCkKK3sKKyAg
ICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJheUNhbGxiYWNrcyk7Cit9CisKK3ZvaWQgV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6cHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94eSop
Cit7CisgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fYXJyYXlDYWxsYmFja3MpOworfQorCiti
b29sIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNz
UHJveHkqKSBjb25zdAoreworICAgIHJldHVybiBtX2FycmF5Q2FsbGJhY2tzLmlzRW1wdHkoKTsK
K30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpyZWZXZWJDb250ZXh0U3VwcGxl
bWVudCgpCit7CisgICAgQVBJT2JqZWN0OjpyZWYoKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5OjpkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkKK3sKKyAgICBBUElPYmpl
Y3Q6OmRlcmVmKCk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6Z2V0T3Jp
Z2lucyhXS09yaWdpbkRhdGFUeXBlcyB0eXBlcywgUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBw
cnBDYWxsYmFjaykKK3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gcHJwQ2FsbGJhY2s7CisKKyAgICB1
aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAgICBtX2FycmF5
Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxlYXNlKCkpOworCisgICAgLy8g
RklYTUUgKE11bHRpLVdlYlByb2Nlc3MpOiA8cmRhcjovL3Byb2JsZW0vMTIyMzk3NjU+IE1ha2Ug
bWFuaXB1bGF0aW5nIGNhY2hlIGluZm9ybWF0aW9uIHdvcmsgd2l0aCBwZXItdGFiIFdlYlByb2Nl
c3MuCisgICAgY29udGV4dCgpLT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5l
Y2Vzc2FyeShNZXNzYWdlczo6V2ViT3JpZ2luRGF0YU1hbmFnZXI6OkdldE9yaWdpbnModHlwZXMs
IGNhbGxiYWNrSUQpKTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkaWRH
ZXRPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5EYXRhcywg
dWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJh
Y2sgPSBtX2FycmF5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7CisgICAgcGVyZm9ybUFQSUNh
bGxiYWNrV2l0aFNlY3VyaXR5T3JpZ2luRGF0YVZlY3RvcihvcmlnaW5EYXRhcywgY2FsbGJhY2su
Z2V0KCkpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OmRlbGV0ZUVudHJp
ZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMsIFdlYlNlY3VyaXR5T3JpZ2luKiBv
cmlnaW4pCit7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFNl
Y3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbkRhdGE7CisgICAgc2VjdXJpdHlPcmlnaW5E
YXRhLnByb3RvY29sID0gb3JpZ2luLT5wcm90b2NvbCgpOworICAgIHNlY3VyaXR5T3JpZ2luRGF0
YS5ob3N0ID0gb3JpZ2luLT5ob3N0KCk7CisgICAgc2VjdXJpdHlPcmlnaW5EYXRhLnBvcnQgPSBv
cmlnaW4tPnBvcnQoKTsKKworICAgIC8vIEZJWE1FIChNdWx0aS1XZWJQcm9jZXNzKTogPHJkYXI6
Ly9wcm9ibGVtLzEyMjM5NzY1PiBNYWtlIG1hbmlwdWxhdGluZyBjYWNoZSBpbmZvcm1hdGlvbiB3
b3JrIHdpdGggcGVyLXRhYiBXZWJQcm9jZXNzLgorICAgIGNvbnRleHQoKS0+c2VuZFRvQWxsUHJv
Y2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFN
YW5hZ2VyOjpEZWxldGVFbnRyaWVzRm9yT3JpZ2luKHR5cGVzLCBzZWN1cml0eU9yaWdpbkRhdGEp
KTsKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5OjpkZWxldGVBbGxFbnRyaWVz
KFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzKQoreworICAgIGlmICghY29udGV4dCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICAvLyBGSVhNRSAoTXVsdGktV2ViUHJvY2Vzcyk6IDxyZGFyOi8vcHJv
YmxlbS8xMjIzOTc2NT4gTWFrZSBtYW5pcHVsYXRpbmcgY2FjaGUgaW5mb3JtYXRpb24gd29yayB3
aXRoIHBlci10YWIgV2ViUHJvY2Vzcy4KKyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nl
c1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdl
cjo6RGVsZXRlQWxsRW50cmllcyh0eXBlcykpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHk6OnN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFUeXBlcyB0eXBlcykK
K3sKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29udGV4dCgp
LT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6
V2ViT3JpZ2luRGF0YU1hbmFnZXI6OlN0YXJ0T2JzZXJ2aW5nQ2hhbmdlcyh0eXBlcykpOworfQor
Cit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk6OnN0b3BPYnNlcnZpbmdDaGFuZ2VzKFdL
T3JpZ2luRGF0YVR5cGVzIHR5cGVzKQoreworICAgIGlmICghY29udGV4dCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBjb250ZXh0KCktPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhl
bUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJPcmlnaW5EYXRhTWFuYWdlcjo6U3RhcnRPYnNlcnZp
bmdDaGFuZ2VzKHR5cGVzKSk7Cit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6
c2V0Q2hhbmdlQ2xpZW50KGNvbnN0IFdLT3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQgKmNs
aWVudCkKK3sKKyAgICBtX2NsaWVudC5pbml0aWFsaXplKGNsaWVudCk7Cit9CisKK3ZvaWQgV2Vi
T3JpZ2luRGF0YU1hbmFnZXJQcm94eTo6ZGlkQ2hhbmdlKCkKK3sKKyAgICBtX2NsaWVudC5kaWRD
aGFuZ2UodGhpcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGRiNzQwZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmgKQEAgLTAs
MCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eV9oCisjZGVmaW5lIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlfaAorCisjaW5jbHVk
ZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCisjaW5jbHVkZSAi
SW1tdXRhYmxlQXJyYXkuaCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRl
ICJXS09yaWdpbkRhdGFNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dFN1cHBsZW1lbnQu
aCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CitjbGFzcyBDb25uZWN0
aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47
CitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworCit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxX
S0FycmF5UmVmPiBBcnJheUNhbGxiYWNrOworCitjbGFzcyBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5IDogcHVibGljIFR5cGVkQVBJT2JqZWN0PEFQSU9iamVjdDo6VHlwZU9yaWdpbkRhdGFNYW5h
Z2VyPiwgcHVibGljIFdlYkNvbnRleHRTdXBwbGVtZW50LCBwcml2YXRlIENvcmVJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnRO
YW1lKCk7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
PiBjcmVhdGUoV2ViQ29udGV4dCopOworICAgIHZpcnR1YWwgfldlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHkoKTsKKworICAgIHZvaWQgZ2V0T3JpZ2lucyhXS09yaWdpbkRhdGFUeXBlcywgUGFzc1Jl
ZlB0cjxBcnJheUNhbGxiYWNrPik7CisgICAgdm9pZCBkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdL
T3JpZ2luRGF0YVR5cGVzLCBXZWJTZWN1cml0eU9yaWdpbiopOworICAgIHZvaWQgZGVsZXRlQWxs
RW50cmllcyhXS09yaWdpbkRhdGFUeXBlcyk7CisKKyAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nQ2hh
bmdlcyhXS09yaWdpbkRhdGFUeXBlcyk7CisgICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ2hhbmdlcyhX
S09yaWdpbkRhdGFUeXBlcyk7CisgICAgdm9pZCBzZXRDaGFuZ2VDbGllbnQoY29uc3QgV0tPcmln
aW5EYXRhTWFuYWdlckNoYW5nZUNsaWVudCopOworCisgICAgdXNpbmcgQVBJT2JqZWN0OjpyZWY7
CisgICAgdXNpbmcgQVBJT2JqZWN0OjpkZXJlZjsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKKworICAgIHZvaWQgZGlkR2V0
T3JpZ2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpOworICAgIHZvaWQgZGlkQ2hhbmdlKCk7CisKKyAgICAvLyBXZWJDb250ZXh0U3VwcGxl
bWVudAorICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkqKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgT1ZF
UlJJREU7CisKKyAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJikgT1ZFUlJJREU7CisKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJy
YXlDYWxsYmFjaz4+IG1fYXJyYXlDYWxsYmFja3M7CisKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Q2hhbmdlQ2xpZW50IG1fY2xpZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZkNzZiNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMg
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViT3JpZ2luRGF0YU1hbmFn
ZXJQcm94eSB7CisgICAgRGlkR2V0T3JpZ2lucyhWZWN0b3I8V2ViS2l0OjpTZWN1cml0eU9yaWdp
bkRhdGE+IG9yaWdpbklkZW50aWZpZXJzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICBEaWRD
aGFuZ2UoKQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2NjAxYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVu
dC5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmgiCisKKyNp
bmNsdWRlICJXS0FQSUNhc3QuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudDo6ZGlkQ2hhbmdlKFdlYk9yaWdpbkRhdGFN
YW5hZ2VyUHJveHkqIG9yaWdpbkRhdGFNYW5hZ2VyKQoreworICAgIGlmICghbV9jbGllbnQuZGlk
Q2hhbmdlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5kaWRDaGFuZ2UodG9BUEko
b3JpZ2luRGF0YU1hbmFnZXIpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTc2N2NkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQu
aApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJPcmlnaW5EYXRhTWFu
YWdlclByb3h5Q2hhbmdlQ2xpZW50X2gKKyNkZWZpbmUgV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94
eUNoYW5nZUNsaWVudF9oCisKKyNpbmNsdWRlICJBUElDbGllbnQuaCIKKyNpbmNsdWRlICJXS09y
aWdpbkRhdGFNYW5hZ2VyLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHk7CisKK2NsYXNzIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQgOiBwdWJsaWMgQVBJQ2xpZW50PFdL
T3JpZ2luRGF0YU1hbmFnZXJDaGFuZ2VDbGllbnQsIGtXS09yaWdpbkRhdGFNYW5hZ2VyQ2hhbmdl
Q2xpZW50VmVyc2lvbj4geworcHVibGljOgorICAgIHZvaWQgZGlkQ2hhbmdlKFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHkqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWUxNmJlOC4u
YWE0ZGRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNjAwLDYgKzYwMCwyMCBAQAogCQk2RUU4NDlDODEzNjhEOTM5MDAzOEQ0
ODEgLyogV0tJbnNwZWN0b3JQcml2YXRlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2RUU4NDlDNjEzNjhEOTJEMDAzOEQ0ODEgLyogV0tJbnNwZWN0
b3JQcml2YXRlTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNzI4RTg2RjExNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjhFODZFRjE3
OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMuaCAqLzsgfTsKIAkJNzI4RTg2RjIx
Nzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI4RTg2RjAxNzk1MTg4QzAwODc4NzlFIC8q
IFdlYkNvbG9yUGlja2VyTWFjLm1tICovOyB9OworCQk3NTU0MjJCQjE4MDYyQjlDMDA0NkY2QTgg
LyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgaW4gQ29weSBGaWxlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJCOTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5E
YXRhTWFuYWdlci5jcHAgKi87IH07CisJCTc1NTQyMkJDMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09y
aWdpbkRhdGFNYW5hZ2VyLmggaW4gQ29weSBGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NTU0MjJCQTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdl
ci5oICovOyB9OworCQk3NTU0MjJCRDE4MDYyQkIyMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTU0MjJCOTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5jcHAgKi87IH07
CisJCTc1NTQyMkMzMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluIGluIENvcHkgRmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzU1NDIyQzAxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gKi87IH07CisJCTc1NTQyMkM0MTgwNjJCRjkwMDQ2RjZBOCAvKiBXZWJP
cmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc1NTQyMkJFMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5LmNwcCAqLzsgfTsKKwkJNzU1NDIyQ0IxODA2NTAwMjAwNDZGNkE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc1NTQyMkM2MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFu
YWdlci5jcHAgKi87IH07CisJCTc1NTQyMkNDMTgwNzczQ0UwMDQ2RjZBOCAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU1NDIyQzcxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggKi87
IH07CisJCTc1OUNDRDU4MTgwOEYxNjQwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclBy
b3h5Q2hhbmdlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1OUNDRDU0MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Q2hhbmdlQ2xpZW50LmNwcCAqLzsgfTsKKwkJNzU5Q0NENTkxODA4RjE2OTAwNzhFOEE4
IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1OUNDRDU1MTgwOEYxNjAwMDc4RThB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmggKi87IH07CisJCTc1
OUNDRDVBMTgwOEY2MTYwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTU0MjJCRjE4MDYy
QkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oICovOyB9OworCQk3NUU3
NDlFOTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVF
NzQ5RTUxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKKwkJNzVFNzQ5RUExODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1RTc0OUU2MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
ck1lc3NhZ2VzLmggKi87IH07CisJCTc1RTc0OUVCMTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmln
aW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1RTc0OUU3MTgwREJCOTgwMDA4OEJBNiAvKiBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJNzVF
NzQ5RUMxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVFNzQ5
RTgxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5o
ICovOyB9OwogCQk3NjJCNzQ4RDEyMEJDNzVDMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2MkI3
NDg0MTIwQkJBMkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc4MDFDMDk5MTQyMjkwQzQw
MEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc4MDFDMDk1MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRU
ZXN0UmVzdWx0LmNwcCAqLzsgfTsKIAkJNzgwMUMwOUExNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhp
dFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc4MDFDMDk2MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmggKi87IH07
CkBAIC0xMzY2LDkgKzEzODAsMTIgQEAKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSAxOwogCQkJZmls
ZXMgPSAoCiAJCQkJNTEwQ0M4NDkxNjEzQzg1QzAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLmFw
cCBpbiBDb3B5IEZpbGVzICovLAorCQkJCTc1NTQyMkJDMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09y
aWdpbkRhdGFNYW5hZ2VyLmggaW4gQ29weSBGaWxlcyAqLywKIAkJCQlCQ0RFMEFCRjEzMjcyNzA4
MDAxMjU5RkIgLyogUGx1Z2luUHJvY2Vzcy5hcHAgaW4gQ29weSBGaWxlcyAqLywKIAkJCQk1MUE2
MEIyQTE4MENDRUI1MDBGM0JGNTAgLyogRGF0YWJhc2VQcm9jZXNzLmFwcCBpbiBDb3B5IEZpbGVz
ICovLAorCQkJCTc1NTQyMkMzMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluIGluIENvcHkgRmlsZXMgKi8sCiAJCQkJMUE1MERCNjYxMTBBM0Q1
NzAwMEQzRkU1IC8qIFdlYlByb2Nlc3MuYXBwIGluIENvcHkgRmlsZXMgKi8sCisJCQkJNzU1NDIy
QkIxODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIENvcHkgRmls
ZXMgKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJDb3B5IEZpbGVzIjsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAtMjA2OCw2ICsyMDg1LDIwIEBACiAJCTZFRTg0
OUM2MTM2OEQ5MkQwMDM4RDQ4MSAvKiBXS0luc3BlY3RvclByaXZhdGVNYWMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tJbnNwZWN0b3JQcml2YXRlTWFjLmg7IHBhdGggPSBt
YWMvV0tJbnNwZWN0b3JQcml2YXRlTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTcyOEU4NkVGMTc5NTE4OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvclBpY2tlck1hYy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MjhFODZGMDE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQ
aWNrZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJD
b2xvclBpY2tlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQjkx
ODA2MkI5QzAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tPcmlnaW5EYXRhTWFuYWdlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkJBMTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdp
bkRhdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLT3JpZ2lu
RGF0YU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQkUxODA2
MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NTQyMkJGMTgwNjJCRTQwMDQ2RjZBOCAv
KiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNzU1NDIyQzAxODA2MkJFNDAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1
NDIyQzYxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcDsg
cGF0aCA9IE9yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3NTU0MjJDNzE4MDY0RkZDMDA0NkY2QTggLyogV2ViT3JpZ2luRGF0
YU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViT3JpZ2luRGF0
YU1hbmFnZXIuaDsgcGF0aCA9IE9yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU1NDIyQzgxODA2NEZGQzAwNDZGNkE4IC8qIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluOyBwYXRoID0gT3JpZ2luRGF0YS9XZWJPcmln
aW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NzU5Q0NENTQxODA4RjE2MDAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFu
Z2VDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViT3Jp
Z2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTc1OUNDRDU1MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdl
clByb3h5Q2hhbmdlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlDaGFuZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzVFNzQ5RTUxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYk9yaWdpbkRhdGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzVFNzQ5RTYxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
T3JpZ2luRGF0YU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3NUU3NDlFNzE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzVFNzQ5RTgxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzYyQjc0ODExMjBCQkEwMTAwODE5MzM5IC8qIEZvbnRTbW9vdGhpbmdMZXZl
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250U21vb3RoaW5nTGV2ZWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzYyQjc0ODQxMjBCQkEyRDAwODE5MzM5
IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLUHJlZmVyZW5jZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTc4MDFDMDk1MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkhpdFRlc3RSZXN1bHQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzkxNyw2ICszOTQ4LDE2IEBACiAJCQluYW1lID0g
bWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNzU1NDIyQzUxODA2NEZG
QzAwNDZGNkE4IC8qIE9yaWdpbkRhdGEgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNo
aWxkcmVuID0gKAorCQkJCTc1NTQyMkM2MTgwNjRGRkMwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRh
TWFuYWdlci5jcHAgKi8sCisJCQkJNzU1NDIyQzcxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyLmggKi8sCisJCQkJNzU1NDIyQzgxODA2NEZGQzAwNDZGNkE4IC8qIFdlYk9y
aWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCW5hbWUgPSBPcmlnaW5E
YXRhOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJN0NCMTZGRTExNzI0QjlC
NTAwN0EwQTk1IC8qIFBsdWdJblNhbmRib3hQcm9maWxlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0zOTY2LDYgKzQwMDcsNyBAQAogCQlCQzAzMkQ1QzEw
RjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJNzU1NDIyQzUxODA2NEZGQzAwNDZGNkE4IC8qIE9yaWdpbkRh
dGEgKi8sCiAJCQkJNTEyRTM1MkExMzBCNTU5OTAwQUJEMTlBIC8qIEFwcGxpY2F0aW9uQ2FjaGUg
Ki8sCiAJCQkJMzMwOTM0NEIxMzE1QjkzQTAwOTdBN0JDIC8qIENvb2tpZXMgKi8sCiAJCQkJNTEy
QTk3NTQxODBERjkyNzAwMzlBMTQ5IC8qIERhdGFiYXNlcyAqLywKQEAgLTQxOTYsNiArNDIzOCwx
MSBAQAogCQkJCUJDRjY5RkEwMTE3NkQwMTQwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5o
ICovLAogCQkJCUJDMURGRUEzMTJCMzFGODcwMDVERjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lclByb3h5LmNwcCAqLywKIAkJCQlCQzFERkVBMjEyQjMxRjg3MDA1REY3MzAgLyogV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oICovLAorCQkJCTc1NTQyMkJFMTgwNjJCRTQw
MDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQk3NTU0MjJC
RjE4MDYyQkU0MDA0NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oICovLAorCQkJ
CTc1NTQyMkMwMTgwNjJCRTQwMDQ2RjZBOCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluICovLAorCQkJCTc1OUNDRDU0MTgwOEYxNjAwMDc4RThBOCAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5Q2hhbmdlQ2xpZW50LmNwcCAqLywKKwkJCQk3NTlDQ0Q1NTE4MDhGMTYw
MDA3OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oICovLAog
CQkJCTUxNTM1NjlBMTI5MUIxRDIwMDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQu
Y3BwICovLAogCQkJCTUxNTM1NjlCMTI5MUIxRDIwMDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1l
bnVDbGllbnQuaCAqLywKIAkJCQlCQzdCNjIwNTEyOUEwQTY3MDBEMTc0QTQgLyogV2ViUGFnZUdy
b3VwLmNwcCAqLywKQEAgLTQyOTksNiArNDM0Niw4IEBACiAJCQkJQkM4NTdGRTQxMkI4NDNEODAw
RURFQjJFIC8qIFdLT3BlblBhbmVsUGFyYW1ldGVycy5oICovLAogCQkJCUJDMURGRThFMTJCMzFD
QTgwMDVERjczMCAvKiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcCAqLywKIAkJCQlCQzFE
RkU4RDEyQjMxQ0E4MDA1REY3MzAgLyogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oICovLAor
CQkJCTc1NTQyMkI5MTgwNjJCOUMwMDQ2RjZBOCAvKiBXS09yaWdpbkRhdGFNYW5hZ2VyLmNwcCAq
LywKKwkJCQk3NTU0MjJCQTE4MDYyQjlDMDA0NkY2QTggLyogV0tPcmlnaW5EYXRhTWFuYWdlci5o
ICovLAogCQkJCUJDRDU5N0Q0MTEyQjU2REMwMEVDOEMyMyAvKiBXS1BhZ2UuY3BwICovLAogCQkJ
CUJDRDU5N0Q1MTEyQjU2REMwMEVDOEMyMyAvKiBXS1BhZ2UuaCAqLywKIAkJCQlCQzdCNjMzNjEy
QTQ1QUJBMDBEMTc0QTQgLyogV0tQYWdlR3JvdXAuY3BwICovLApAQCAtNTAxMyw2ICs1MDYyLDEw
IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1MTAzMkYxQjE4MEY3OTE3MDA5NjFCQjcgLyogRGF0
YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1
MTAzMkYxQzE4MEY3OTE3MDA5NjFCQjcgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZXMuaCAqLywKKwkJCQk3NUU3NDlFNTE4MERCQjk4MDAwODhCQTYgLyogV2ViT3JpZ2lu
RGF0YU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTc1RTc0OUU2MTgwREJCOTgw
MDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJNzVFNzQ5
RTcxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAorCQkJCTc1RTc0OUU4MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5E
YXRhTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQk1MTJGNThBMDEyQTg4M0FEMDA2Mjk1
MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1
MTJGNThBMTEyQTg4M0FEMDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZXMu
aCAqLywKIAkJCQlFMTdBRTJDMjE2QjlDNjNBMDAxQzQyRjEgLyogY29tLmFwcGxlLldlYktpdC5O
ZXR3b3JrUHJvY2Vzcy5zYiAqLywKQEAgLTU0OTYsOSArNTU0OSwxMSBAQAogCQkJCUJDREUwNTlC
MTFDREE4QUUwMEU0MUFGMSAvKiBXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxODcxQjVDMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVu
dS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJENzcxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNv
bnRleHRNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NUU3NDlFQzE4MERCQjk4MDAw
ODhCQTYgLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTI5MzVEODEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTBGQkI5QjEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4
dE1lbnVJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBQ0JCODIxMjdBOEJBRDAwRDIw
M0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1RTc0OUVB
MTgwREJCOTgwMDA4OEJBNiAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MUFDQkJBMDEyN0E4RjJDMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVQ
cm94eU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDQjc1QzYxMjAzQTFDRTAwMjIyRDFCIC8q
IFdlYkNvbnRleHRNZXNzYWdlS2luZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUU3RDBFMTI4
NDZGNjkwMDk4MjdEQSAvKiBXZWJDb250ZXh0TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApAQCAt
NTc2Myw2ICs1ODE4LDcgQEAKIAkJCQlCQ0REQjMyQjEyNEVDMkFCMDA0OEQxM0MgLyogV0tTaGFy
ZWRBUElDYXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwNjEyNEZGMDI3MDA2OEYyMEEg
LyogV0tTdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjFBMTI0RkYwMzcwMDY4RjIw
QSAvKiBXS1N0cmluZ0NGLmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTlDQ0Q1OTE4MDhGMTY5MDA3
OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM5MDk5ODAxMjU2QTk4MjAwMDgzNzU2IC8qIFdLU3RyaW5nUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzc3RUFENDgxN0UyQzc3QjAwMkQxOTNEIC8qIFdLVXNlckNv
bnRlbnRJbmplY3RlZEZyYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTlBQTgxMkI3RTc5
NjAwOEZFOTg0IC8qIFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CkBAIC01NzczLDExICs1ODI5LDEzIEBACiAJCQkJQkM0MDc2MEMxMjRGRjAyNzAwNjhGMjBBIC8q
IFdLVVJMUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MjkxMjRGRjA0MDAwNjhG
MjBBIC8qIFdLVVJMUmVxdWVzdE5TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwRTEyNEZG
MDI3MDA2OEYyMEEgLyogV0tVUkxSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU5Q0NE
NUExODA4RjYxNjAwNzhFOEE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNDA3NjJCMTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNlTlMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUY2MTEzRTI5MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJD
b250ZW50VVJMUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4Njk5QjUxMTZBQURBQTAw
MkE5MjVCIC8qIFdLVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4Njk5QjcxMTZBQURBQTAw
MkE5MjVCIC8qIFdLVmlld0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRkE2MTc5RjEy
RjBCOTlEMDAzM0UwQ0EgLyogV0tWaWV3UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU1
NDIyQ0MxODA3NzNDRTAwNDZGNkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDNUUxQUZFOTE2QjIwQjc1MDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNUUxQUZFQjE2QjIwQjdFMDA2Q0MxRjIgLyogV0tXZWJBcmNoaXZl
UmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTg5RDgyMTYxQTdFNUQwMDBENDZEMyAv
KiBXS1dlYlByb2Nlc3NQbHVnSW4uaCBpbiBIZWFkZXJzICovLApAQCAtNjU4MCw2ICs2NjM4LDcg
QEAKIAkJCQlCQ0VFN0RDNjEyOEI2NDVEMDA5ODI3REEgLyogSW5qZWN0ZWRCdW5kbGVDbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGQTJENzQxNTIxMkRGMTAwQzFCQTBCIC8qIEluamVj
dGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDk4
NjE5MTI0RDEwRTIwMEQ4MzRFMSAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNzVFNzQ5RTkxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdpbkRh
dGFNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjA0RUU2
MTFDODNFQTkwMDhGMzM3NSAvKiBJbmplY3RlZEJ1bmRsZU1hYy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUJDODE0N0Q2MTJGNjZEMzEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25B
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0QkVFQUMxMjBBMEE1RjAwRkJBMEM3IC8q
IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTY1ODgsNiAr
NjY0Nyw3IEBACiAJCQkJRTFFRTUzRTcxMUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxl
UGFnZUVkaXRvckNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzE0RTEwOTEyMEI5MDVF
MDA4MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDRDVDNjZBMDEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTU0MjJDQjE4MDY1MDAyMDA0
NkY2QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNB
OEM2QTgxMUUzQkE1RjAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzgxNDdBQTEyRjY0Q0RBMDA3QjJDMzIgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlUG9saWN5Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1OUM1NTFF
MTMwMDA2NDEwMDI1QzBDMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC02NzAyLDYgKzY3NjIsNyBAQAogCQkJCTFBMDQzQjVEMTI0
RDVFOUQwMEZGQkZCNSAvKiBQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUEwNDNEQzIxMjRGRjg3NTAwRkZCRkI1IC8qIFBsdWdpblByb3h5
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkQ5MjIxMTI4MURDMUIwMDFFQjk2MiAvKiBQbHVn
aW5Qcm94eU1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTc1NTQyMkM0MTgwNjJCRjkwMDQ2RjZB
OCAvKiBXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
OEVGQTcwMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3Q0Q2MjI3NzE3MzlEODYzMDA1QkQ3RkYgLyogUGx1Z2luU2Fu
ZGJveFByb2ZpbGUubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzgyODQ0RDE2QjUwODFDMDBBMjc4
RkUgLyogUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKQEAgLTY4Mjcs
NiArNjg4OCw3IEBACiAJCQkJQkNCOUY2QTExMTIzQTg0QjAwQTEzN0UwIC8qIFdlYkZyYW1lUG9s
aWN5TGlzdGVuZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzExMUIwRTExMkY1RTRG
MDAzMzdCQUIgLyogV2ViRnJhbWVQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDczQkE1
MzEzMUI2NDVCMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNzU1NDIyQkQxODA2MkJCMjAwNDZGNkE4IC8qIFdLT3JpZ2luRGF0YU1hbmFnZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8qIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
NkY3NUY0MTMxQjY2RDAwMEQ2QjIxRSAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUNEQ0E4NUVFMTMyQUQ3MDEwMEU5NjFERiAvKiBXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC02OTA2LDYgKzY5NjgsNyBA
QAogCQkJCTFBMDQzQTBBMTI0RDExQTkwMEZGQkZCNSAvKiBXZWJQcm9jZXNzQ29ubmVjdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTA0M0Y2OTEyNTE0RDhCMDBGRkJGQjUgLyogV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMz
MDY4MjUxMjVBNkI5NDAwRTcxMjc4IC8qIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNzVFNzQ5RUIxODBEQkI5ODAwMDg4QkE2IC8qIFdlYk9yaWdp
bkRhdGFNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkMzMDY1QzQxMjU5MkY4OTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NNYWMubW0gaW4gU291cmNlcyAq
LywKIAkJCQlCQzMwNjZCRTEyNUE0NDIxMDBFNzEyNzggLyogV2ViUHJvY2Vzc01lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzExMUIxMTExMkY1RTRGMDAzMzdCQUIgLyog
V2ViUHJvY2Vzc1Byb3h5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjk3MSw2ICs3MDM0LDcgQEAK
IAkJCQk5RkI1RjM5NDE2OUU2QTgwMDAyQzI1QkYgLyogV0tDb250ZXh0UHJpdmF0ZU1hYy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTMzMDkzNDVBMTMxNUI5OTgwMDk3QTdCQyAvKiBXS0Nvb2tpZU1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyRjU4RjkxMkE4OEE1NDAwNjI5NTMwIC8q
IFdLQ3JlZGVudGlhbC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTlDQ0Q1ODE4MDhGMTY0MDA3
OEU4QTggLyogV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eUNoYW5nZUNsaWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQzQwNzVGNzEyNEZGMDI3MDA2OEYyMEEgLyogV0tEYXRhLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUY2MkE3NjYxMTJCMUFCRUQwMDA1RjFCNiAvKiBXS0RhdGFiYXNlTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzVGOTEyNEZGMDI3MDA2OEYyMEEgLyog
V0tEaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmRkODc2OAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRh
TWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEs
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCIKKworI2luY2x1
ZGUgIkNoaWxkUHJvY2Vzcy5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYk9yaWdpbkRhdGFN
YW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2guaD4KKworI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY29u
c3QgY2hhciogV2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICBy
ZXR1cm4gIldlYk9yaWdpbkRhdGFNYW5hZ2VyIjsKK30KKworV2ViT3JpZ2luRGF0YU1hbmFnZXI6
OldlYk9yaWdpbkRhdGFNYW5hZ2VyKENoaWxkUHJvY2VzcyogY2hpbGRQcm9jZXNzKQorICAgIDog
bV9jaGlsZFByb2Nlc3MoY2hpbGRQcm9jZXNzKQoreworICAgIG1fY2hpbGRQcm9jZXNzLT5hZGRN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2VyOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIHRoaXMpOworfQorCit2b2lkIFdlYk9yaWdpbkRhdGFNYW5hZ2VyOjpnZXRP
cmlnaW5zKFdLT3JpZ2luRGF0YVR5cGVzIHR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQorewor
ICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gb3JpZ2luczsKKworICAgIC8vIEZJ
WE1FOiBwb3B1bGF0ZSBvcmlnaW5zCisKKyAgICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBp
ZGVudGlmaWVyczsKKyAgICBpZGVudGlmaWVycy5yZXNlcnZlQ2FwYWNpdHkob3JpZ2lucy5zaXpl
KCkpOworCisgICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+Pjo6aXRlcmF0b3IgZW5k
ID0gb3JpZ2lucy5lbmQoKTsKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+Ojpp
dGVyYXRvciBpID0gb3JpZ2lucy5iZWdpbigpOworICAgIGZvciAoOyBpICE9IGVuZDsgKytpKSB7
CisgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gKmk7CisKKyAgICAgICAg
U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbkRhdGE7CisgICAgICAgIG9yaWdpbkRhdGEucHJvdG9j
b2wgPSBvcmlnaW4tPnByb3RvY29sKCk7CisgICAgICAgIG9yaWdpbkRhdGEuaG9zdCA9IG9yaWdp
bi0+aG9zdCgpOworICAgICAgICBvcmlnaW5EYXRhLnBvcnQgPSBvcmlnaW4tPnBvcnQoKTsKKwor
ICAgICAgICBpZGVudGlmaWVycy51bmNoZWNrZWRBcHBlbmQob3JpZ2luRGF0YSk7CisgICAgfQor
CisgICAgbV9jaGlsZFByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYk9yaWdpbkRhdGFNYW5hZ2Vy
UHJveHk6OkRpZEdldE9yaWdpbnMoaWRlbnRpZmllcnMsIGNhbGxiYWNrSUQpLCAwKTsKK30KKwor
dm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdlcjo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbihXS09yaWdp
bkRhdGFUeXBlcyB0eXBlcywgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW5EYXRhKQor
eworICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZShvcmlnaW5EYXRhLnByb3RvY29sLCBvcmlnaW5EYXRhLmhvc3QsIG9yaWdpbkRhdGEucG9y
dCk7CisgICAgaWYgKCFvcmlnaW4pCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBk
ZWxldGUgZW50cmllcyBmb3Igb3JpZ2luCit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXI6
OmRlbGV0ZUFsbEVudHJpZXMoV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAgLy8gRklY
TUU6IGRlbGV0ZSBlbnRyaWVzCit9CisKK3ZvaWQgV2ViT3JpZ2luRGF0YU1hbmFnZXI6OnN0YXJ0
T2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRhdGFUeXBlcyB0eXBlcykKK3sKKyAgICAvLyBGSVhN
RTogc3RhcnQgb2JzZXJ2aW5nIGNoYW5nZXMKK30KKwordm9pZCBXZWJPcmlnaW5EYXRhTWFuYWdl
cjo6c3RvcE9ic2VydmluZ0NoYW5nZXMoV0tPcmlnaW5EYXRhVHlwZXMgdHlwZXMpCit7CisgICAg
Ly8gRklYTUU6IHN0b3Agb2JzZXJ2aW5nIGNoYW5nZXMKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2Vi
T3JpZ2luRGF0YU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0
YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjk4ZWE1MTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuaApAQCAtMCwwICsxLDYzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJPcmlnaW5EYXRhTWFuYWdlcl9oCisjZGVmaW5lIFdl
Yk9yaWdpbkRhdGFNYW5hZ2VyX2gKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2lu
Y2x1ZGUgIldLT3JpZ2luRGF0YU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzU3VwcGxl
bWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ2hpbGRQcm9jZXNz
Oworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKKworY2xhc3MgV2ViT3JpZ2luRGF0YU1hbmFn
ZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdl
UmVjZWl2ZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYk9yaWdpbkRhdGFNYW5hZ2Vy
KTsKK3B1YmxpYzoKKyAgICBXZWJPcmlnaW5EYXRhTWFuYWdlcihDaGlsZFByb2Nlc3MqKTsKKwor
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgdm9pZCBkZWxl
dGVBbGxFbnRyaWVzKFdLT3JpZ2luRGF0YVR5cGVzKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGdl
dE9yaWdpbnMoV0tPcmlnaW5EYXRhVHlwZXMsIHVpbnQ2NF90KTsKKyAgICB2b2lkIGRlbGV0ZUVu
dHJpZXNGb3JPcmlnaW4oV0tPcmlnaW5EYXRhVHlwZXMsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0
YSYpOworICAgIHZvaWQgc3RhcnRPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5cGVzKTsK
KyAgICB2b2lkIHN0b3BPYnNlcnZpbmdDaGFuZ2VzKFdLT3JpZ2luRGF0YVR5cGVzKTsKKworICAg
IC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBP
VkVSUklERTsKKworICAgIENoaWxkUHJvY2VzcyogbV9jaGlsZFByb2Nlc3M7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYk9yaWdpbkRhdGFNYW5hZ2VyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5E
YXRhTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2lu
RGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi42OTRlNjM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9PcmlnaW5EYXRhL1dlYk9yaWdpbkRhdGFNYW5hZ2VyLm1lc3NhZ2VzLmlu
CkBAIC0wLDAgKzEsMjkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0Ogor
IyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworbWVzc2FnZXMgLT4gV2ViT3JpZ2luRGF0YU1hbmFnZXIgeworICAgIHZvaWQgR2V0T3JpZ2lu
cyh1aW50MzJfdCB0eXBlcywgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICB2b2lkIERlbGV0ZUVu
dHJpZXNGb3JPcmlnaW4odWludDMyX3QgdHlwZXMsIFdlYktpdDo6U2VjdXJpdHlPcmlnaW5EYXRh
IG9yaWdpbklkZW50aWZpZXIpCisgICAgdm9pZCBEZWxldGVBbGxFbnRyaWVzKHVpbnQzMl90IHR5
cGVzKQorICAgIHZvaWQgU3RhcnRPYnNlcnZpbmdDaGFuZ2VzKHVpbnQzMl90IHR5cGVzKQorICAg
IHZvaWQgU3RvcE9ic2VydmluZ0NoYW5nZXModWludDMyX3QgdHlwZXMpCit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>