<?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>114858</bug_id>
          
          <creation_ts>2013-04-19 01:45:35 -0700</creation_ts>
          <short_desc>WWDC session videos don’t play at developer.apple.com</short_desc>
          <delta_ts>2013-04-24 16:19:39 -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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>rego+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>878314</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-19 01:45:35 -0700</bug_when>
    <thetext>WWDC session videos don’t play at developer.apple.com</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878316</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-19 01:47:18 -0700</bug_when>
    <thetext>AVFoundation no longer has access to our session-scoped cookie store when loading is done out of the WebProcess. Until such a time as they can provide API when about to make an HTTP request, interpose at the point where they extract the cookie string from the cookie store, and retrieve the cookies from the network process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878317</commentid>
    <comment_count>2</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-19 01:47:27 -0700</bug_when>
    <thetext>13197014</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878319</commentid>
    <comment_count>3</comment_count>
      <attachid>198825</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-19 02:01:52 -0700</bug_when>
    <thetext>Created attachment 198825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878320</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-19 02:02:48 -0700</bug_when>
    <thetext>Attachment 198825 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/Shared/mac/CookieStorageShim.cpp&apos;, u&apos;Source/WebKit2/Shared/mac/CookieStorageShim.h&apos;, u&apos;Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp&apos;, u&apos;Source/WebKit2/Shared/mac/CookieStorageShimLibrary.h&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;]&quot; exit_code: 1
Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp:32:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878323</commentid>
    <comment_count>5</comment_count>
      <attachid>198825</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-04-19 02:14:28 -0700</bug_when>
    <thetext>Comment on attachment 198825
Patch

Attachment 198825 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/140353</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878381</commentid>
    <comment_count>6</comment_count>
      <attachid>198825</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-04-19 05:23:53 -0700</bug_when>
    <thetext>Comment on attachment 198825
Patch

Attachment 198825 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/33252</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878457</commentid>
    <comment_count>7</comment_count>
      <attachid>198858</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-19 08:49:36 -0700</bug_when>
    <thetext>Created attachment 198858
Patch

Wrapped the entirety of CookieStorageShim in ENABLE(NETWORK_PROCESS) checks to insulate qt-wk2 from these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878460</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-19 08:51:15 -0700</bug_when>
    <thetext>Attachment 198858 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/Shared/mac/CookieStorageShim.cpp&apos;, u&apos;Source/WebKit2/Shared/mac/CookieStorageShim.h&apos;, u&apos;Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp&apos;, u&apos;Source/WebKit2/Shared/mac/CookieStorageShimLibrary.h&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;]&quot; exit_code: 1
Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp:34:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878544</commentid>
    <comment_count>9</comment_count>
      <attachid>198858</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-04-19 09:35:07 -0700</bug_when>
    <thetext>Comment on attachment 198858
Patch

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

&gt; Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp:41
&gt; +static CookieStorageShimCallbacks cookieStorageShimCallbacks;

I think we usually wrap shared static variables like this in accessor functions.

&gt; Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp:65
&gt; +        // Protect against accidental recursion:
&gt; +        if (ShimProtector::count() &gt; 1)
&gt; +            break;

If this not expected, it probably be worth adding an ASSERT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878557</commentid>
    <comment_count>10</comment_count>
      <attachid>198858</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-04-19 10:18:08 -0700</bug_when>
    <thetext>Comment on attachment 198858
Patch

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

&gt; Source/WebKit2/Shared/mac/CookieStorageShim.cpp:50
&gt; +    KURL firstPartyURL;
&gt; +    if (!WebProcess::shared().networkConnection()-&gt;connection()-&gt;sendSync(Messages::NetworkConnectionToWebProcess::CookiesForDOM(false, firstPartyURL, inRequestURL), Messages::NetworkConnectionToWebProcess::CookiesForDOM::Reply(cookies), 0))

Should have a FIXME about actually handling the first party properly if it ever becomes possible.

Also, maybe &quot;firstPartyForCookiesURL&quot; would be better, as &quot;firstPartyForCookies&quot; is the name of the concept used everywhere else.

&gt; Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp:35
&gt; +#define DYLD_INTERPOSE(_replacement, _replacee) \
&gt; +__attribute__((used)) static struct { const void* replacement; const void* replacee; } _interpose_##_replacee \
&gt; +__attribute__ ((section (&quot;__DATA,__interpose&quot;))) = { (const void*)(unsigned long)&amp;_replacement, (const void*)(unsigned long)&amp;_replacee };

Nit - We have the DYLD_INTERPOSE macro in multiple places now.  Maybe a shared header for it would help keep things clean.

&gt;&gt; Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp:41
&gt;&gt; +static CookieStorageShimCallbacks cookieStorageShimCallbacks;
&gt; 
&gt; I think we usually wrap shared static variables like this in accessor functions.

This is just a struct with a single POD member - No runtime cost incurred.

We only wrap shared static variables in an accessor function if they need runtime initializing.

&gt;&gt; Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp:65
&gt;&gt; +            break;
&gt; 
&gt; If this not expected, it probably be worth adding an ASSERT

Yes, please do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878558</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-04-19 10:19:58 -0700</bug_when>
    <thetext>
&gt; &gt;&gt; Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp:41
&gt; &gt;&gt; +static CookieStorageShimCallbacks cookieStorageShimCallbacks;
&gt; &gt; 
&gt; &gt; I think we usually wrap shared static variables like this in accessor functions.
&gt; 
&gt; This is just a struct with a single POD member - No runtime cost incurred.
&gt; 
&gt; We only wrap shared static variables in an accessor function if they need runtime initializing.

Where &quot;needs runtime initializing&quot; either means running constructors, such as with C++ objects, or &quot;the object takes a lot of memory and might not always be needed therefore should only be created on demand&quot;

I think this qualifies as small, always needed, and doesn&apos;t have initializers :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878566</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-04-19 10:51:32 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; &gt;&gt; Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp:41
&gt; &gt; &gt;&gt; +static CookieStorageShimCallbacks cookieStorageShimCallbacks;
&gt; &gt; &gt; 
&gt; &gt; &gt; I think we usually wrap shared static variables like this in accessor functions.
&gt; &gt; 
&gt; &gt; This is just a struct with a single POD member - No runtime cost incurred.
&gt; &gt; 
&gt; &gt; We only wrap shared static variables in an accessor function if they need runtime initializing.
&gt; 
&gt; Where &quot;needs runtime initializing&quot; either means running constructors, such as with C++ objects, or &quot;the object takes a lot of memory and might not always be needed therefore should only be created on demand&quot;
&gt; 
&gt; I think this qualifies as small, always needed, and doesn&apos;t have initializers :)

Actually, I think we need to protect access to this with a mutex because we have no guarantee that CoreMedia will alway read cookies from the same thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878576</commentid>
    <comment_count>13</comment_count>
      <attachid>198899</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-19 11:00:46 -0700</bug_when>
    <thetext>Created attachment 198899
Patch

Moved the DYLD_INTERPOSE macro into its own header, added an ASSERT in the case of accidental recursion, and renamed a parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878578</commentid>
    <comment_count>14</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-19 11:02:03 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; &gt; &gt;&gt; Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp:41
&gt; &gt; &gt; &gt;&gt; +static CookieStorageShimCallbacks cookieStorageShimCallbacks;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I think we usually wrap shared static variables like this in accessor functions.
&gt; &gt; &gt; 
&gt; &gt; &gt; This is just a struct with a single POD member - No runtime cost incurred.
&gt; &gt; &gt; 
&gt; &gt; &gt; We only wrap shared static variables in an accessor function if they need runtime initializing.
&gt; &gt; 
&gt; &gt; Where &quot;needs runtime initializing&quot; either means running constructors, such as with C++ objects, or &quot;the object takes a lot of memory and might not always be needed therefore should only be created on demand&quot;
&gt; &gt; 
&gt; &gt; I think this qualifies as small, always needed, and doesn&apos;t have initializers :)
&gt; 
&gt; Actually, I think we need to protect access to this with a mutex because we have no guarantee that CoreMedia will alway read cookies from the same thread.

Ooh, good point.  I&apos;ll add a dispatch_once here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878579</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-19 11:03:02 -0700</bug_when>
    <thetext>Attachment 198899 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/PluginProcess/mac/PluginProcessShim.mm&apos;, u&apos;Source/WebKit2/Shared/mac/CookieStorageShim.cpp&apos;, u&apos;Source/WebKit2/Shared/mac/CookieStorageShim.h&apos;, u&apos;Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp&apos;, u&apos;Source/WebKit2/Shared/mac/CookieStorageShimLibrary.h&apos;, u&apos;Source/WebKit2/Shared/mac/DYLDInterpose.h&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;, u&apos;Source/WebKit2/WebProcess/mac/SecItemShimLibrary.mm&apos;]&quot; exit_code: 1
Source/WebKit2/Shared/mac/DYLDInterpose.h:34:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 14 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>878585</commentid>
    <comment_count>16</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-04-19 11:10:02 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; &gt; &gt;&gt; Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp:41
&gt; &gt; &gt; &gt;&gt; +static CookieStorageShimCallbacks cookieStorageShimCallbacks;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I think we usually wrap shared static variables like this in accessor functions.
&gt; &gt; &gt; 
&gt; &gt; &gt; This is just a struct with a single POD member - No runtime cost incurred.
&gt; &gt; &gt; 
&gt; &gt; &gt; We only wrap shared static variables in an accessor function if they need runtime initializing.
&gt; &gt; 
&gt; &gt; Where &quot;needs runtime initializing&quot; either means running constructors, such as with C++ objects, or &quot;the object takes a lot of memory and might not always be needed therefore should only be created on demand&quot;
&gt; &gt; 
&gt; &gt; I think this qualifies as small, always needed, and doesn&apos;t have initializers :)
&gt; 
&gt; Actually, I think we need to protect access to this with a mutex because we have no guarantee that CoreMedia will alway read cookies from the same thread.

Oh man that sucks  :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878595</commentid>
    <comment_count>17</comment_count>
      <attachid>198899</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-04-19 11:44:45 -0700</bug_when>
    <thetext>Comment on attachment 198899
Patch

Attachment 198899 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/56338</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878597</commentid>
    <comment_count>18</comment_count>
      <attachid>198905</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-19 11:51:50 -0700</bug_when>
    <thetext>Created attachment 198905
Patch

Made the m_count static of ShimProtector thread-local, so it will protect against re-entrancy within a thread, but not across threads. Also made the initializer function assert if you attempt to initialize it twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878598</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-19 11:53:03 -0700</bug_when>
    <thetext>Attachment 198905 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/PluginProcess/mac/PluginProcessShim.mm&apos;, u&apos;Source/WebKit2/Shared/mac/CookieStorageShim.cpp&apos;, u&apos;Source/WebKit2/Shared/mac/CookieStorageShim.h&apos;, u&apos;Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp&apos;, u&apos;Source/WebKit2/Shared/mac/CookieStorageShimLibrary.h&apos;, u&apos;Source/WebKit2/Shared/mac/DYLDInterpose.h&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.cpp&apos;, u&apos;Source/WebKit2/WebProcess/mac/SecItemShimLibrary.mm&apos;]&quot; exit_code: 1
Source/WebKit2/Shared/mac/DYLDInterpose.h:34:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 14 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>878611</commentid>
    <comment_count>20</comment_count>
      <attachid>198905</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-04-19 12:30:12 -0700</bug_when>
    <thetext>Comment on attachment 198905
Patch

Attachment 198905 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/56350</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878670</commentid>
    <comment_count>21</comment_count>
      <attachid>198905</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-04-19 16:13:28 -0700</bug_when>
    <thetext>Comment on attachment 198905
Patch

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

&gt; Source/WebKit2/Shared/mac/CookieStorageShimLibrary.cpp:33
&gt; +extern &quot;C&quot; CFDictionaryRef _CFHTTPCookieStorageCopyRequestHeaderFieldsForURL(CFAllocatorRef inAllocator, CFHTTPCookieStorageRef inCookieStorage, CFURLRef inRequestURL);

Nit: the parameter names shouldn&apos;t be necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878678</commentid>
    <comment_count>22</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-19 16:31:42 -0700</bug_when>
    <thetext>Committed r148782: &lt;http://trac.webkit.org/changeset/148782&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878682</commentid>
    <comment_count>23</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-19 17:19:53 -0700</bug_when>
    <thetext>Rolled out in http://trac.webkit.org/changeset/148783.  Re-opening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878743</commentid>
    <comment_count>24</comment_count>
      <attachid>198905</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2013-04-20 02:27:50 -0700</bug_when>
    <thetext>Comment on attachment 198905
Patch

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

&gt; Source/WebKit2/PluginProcess/mac/PluginProcessShim.mm:29
&gt; +#import &quot;DYLDInterpose.h&quot;

I&apos;m really not a fan of having &quot;DYLD&quot; as uppercase like that. It&apos;s not an acronym or initialism. Maybe rename the header to something like SymbolInterposing / LoadTimeInterposing / Interposing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>879453</commentid>
    <comment_count>25</comment_count>
      <attachid>199114</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-22 15:05:33 -0700</bug_when>
    <thetext>Created attachment 199114
Patch

Fixed Mac build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>879470</commentid>
    <comment_count>26</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-04-22 15:24:43 -0700</bug_when>
    <thetext>The approach is fine with me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>879481</commentid>
    <comment_count>27</comment_count>
      <attachid>199114</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-04-22 15:43:17 -0700</bug_when>
    <thetext>Comment on attachment 199114
Patch

Attachment 199114 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/141566</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>879491</commentid>
    <comment_count>28</comment_count>
      <attachid>199122</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-22 15:57:02 -0700</bug_when>
    <thetext>Created attachment 199122
Patch

Re-added SecItemShim.dylib to the dependency list for NetworkProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>879526</commentid>
    <comment_count>29</comment_count>
      <attachid>199114</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-04-22 16:50:06 -0700</bug_when>
    <thetext>Comment on attachment 199114
Patch

Not a formal review, but looks perfectly fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>879527</commentid>
    <comment_count>30</comment_count>
      <attachid>199114</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-04-22 16:56:14 -0700</bug_when>
    <thetext>Comment on attachment 199114
Patch

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

&gt; Source/WebKit2/Shared/mac/CookieStorageShimLibrary.h:36
&gt; +    CFDictionaryRef (*cookieStorageCopyRequestHeaderFieldsForURL)(CFHTTPCookieStorageRef inCookieStorage, CFURLRef inRequestURL);

Nit: the parameter names shouldn&apos;t be necessary.

&gt; Source/WebKit2/Shared/mac/CookieStorageShimLibrary.h:39
&gt; +typedef void (*CookieStorageShimInitializeFunc)(const CookieStorageShimCallbacks&amp; callbacks);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>879528</commentid>
    <comment_count>31</comment_count>
      <attachid>199122</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-04-22 16:57:06 -0700</bug_when>
    <thetext>Comment on attachment 199122
Patch

I am not a WK2 owner, but marking r+ based on Brady&apos;s comments. Please see the nits in the previous version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880863</commentid>
    <comment_count>32</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-04-24 16:19:39 -0700</bug_when>
    <thetext>Committed r149074: &lt;http://trac.webkit.org/changeset/149074&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198825</attachid>
            <date>2013-04-19 02:01:52 -0700</date>
            <delta_ts>2013-04-19 08:49:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114858-20130419020121.patch</filename>
            <type>text/plain</type>
            <size>36054</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NzIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2FlOWRlMjIzMWZjNWEz
NzRjMGE2YjBhZDgwNWVjZjEyNjczZDFiMy4uZGVkYTIzZTg3MzcwNWVlZThiNGM4MGE2YTk5NjUy
MTJlMmQ5OTk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEzLTA0LTE5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFdXREMgc2Vzc2lvbiB2aWRl
b3MgZG9u4oCZdCBwbGF5IGF0IGRldmVsb3Blci5hcHBsZS5jb20KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDg1OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFWRm91bmRhdGlvbiB1c2VzIENGTmV0d29y
ayB0byBzdG9yZSBhbmQgcmV0cmlldmUgY29va2llcyBmcm9tIHRoZSBnbG9iYWwgc3RvcmUuCisg
ICAgICAgIEhvd2V2ZXIsIGluIHRoZSBjYXNlIHdoZXJlIG5ldHdvcmsgYWNjZXNzIGhhcHBlbnMg
aW4gdGhlIE5ldHdvcmtQcm9jZXNzLCBzZXNzaW9uCisgICAgICAgIGNvb2tpZXMgYXJlIHN0b3Jl
ZCBpbi1tZW1vcnksIGFuZCBhcmUgbm90IGFjY2Vzc2FibGUgaW4gdGhlIFdlYlByb2Nlc3MuIFVu
dGlsIHN1Y2gKKyAgICAgICAgYSB0aW1lIGFzIEFWRm91bmRhdGlvbiBjYW4gcHJvdmlkZSBhbiBB
UEkgd2hpY2ggd291bGQgYWxsb3cgdXMgdG8gcHJvdmlkZSBjb29raWVzCisgICAgICAgIGZvciBh
IHNwZWNpZmljIHJlcXVlc3QsIHdlIHdpbGwgaW50ZXJwb3NlIHRoZSBDRk5ldHdvcmsgbWV0aG9k
IHdoaWNoIHRoZXkgdXNlIHRvCisgICAgICAgIHJldHJpZXZlIHRoZSBjb29raWUgc3RyaW5nIGZy
b20gdGhlIGNvb2tpZSBzdG9yZSBmb3IgdGhlaXIgcGVuZGluZyByZXF1ZXN0LgorCisgICAgICAg
IER1cGxpY2F0ZSB0aGUgcHJldmlvdXMgU2VjSXRlbVNoaW0gdGFyZ2V0IHRvIGEgbmV3LCBXZWJQ
cm9jZXNzU2hpbSB0YXJnZXQuIFRoaXMKKyAgICAgICAgdGFyZ2V0IGluY2x1ZGVzIHRoZSBTZWNJ
dGVtU2hpbSBmdW5jdGlvbmFsaXR5LCBidXQgd2lsbCBhZGQgYSBuZXcgc2hpbSBmb3IgY29va2ll
CisgICAgICAgIHJldHJpZXZhbDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VT
aGltTGlicmFyeS5oOiBBZGRlZAorICAgICAgICAoQ29va2llU3RvcmFnZVNoaW1DYWxsYmFja3Mp
OgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlNoaW1Qcm90ZWN0b3I6OlNoaW1Qcm90ZWN0b3IpOiBBIHNp
bXBsZSBzdGFjay1iYXNlZCBjb3VudGVyIGNsYXNzLgorICAgICAgICAoV2ViS2l0OjpTaGltUHJv
dGVjdG9yOjp+U2hpbVByb3RlY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OlNoaW1Qcm90ZWN0b3I6
OmNvdW50KToKKyAgICAgICAgKFdlYktpdDo6c2hpbUNGSFRUUENvb2tpZVN0b3JhZ2VDb3B5UmVx
dWVzdEhlYWRlckZpZWxkc0ZvclVSTCk6IEludGVycG9zZQorICAgICAgICAgICAgdGhlIENGTmV0
d29yayBjYWxsLCBhbmQgcGFzcyB0byB0aGUgcmVnaXN0ZXJlZCBjYWxsYmFjay4KKyAgICAgICAg
KFdlYktpdDo6V2ViS2l0Q29va2llU3RvcmFnZVNoaW1Jbml0aWFsaXplKTogUmVnaXN0ZXIgdGhl
IGNhbGxiYWNrcy4KKworICAgICAgICBBZGQgYSBoZWxwZXIgc2luZ2xldG9uIGNsYXNzIHdoaWNo
IHdpbGwgdGFsayB0byB0aGUgc2hpbSB0aHJvdWdoIHRoZSAKKyAgICAgICAgcmVnaXN0ZXJlZCBj
YWxsYmFja3M6CisgICAgICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5oOiBBZGRl
ZAorICAgICAgICAoV2ViS2l0OjpDb29raWVTdG9yYWdlU2hpbTo6Q29va2llU3RvcmFnZVNoaW0p
OgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0uY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6d2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRz
Rm9yVVJMKTogUGFzcyB0aGUgcmVxdWVzdAorICAgICAgICAgICAgb3ZlciB0byB0aGUgTmV0d29y
a1Byb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OkNvb2tpZVN0b3JhZ2VTaGltOjpzaGFyZWQpOiBT
aW1wbGUgc2luZ2xldG9uLgorICAgICAgICAoV2ViS2l0OjpDb29raWVTdG9yYWdlU2hpbTo6aW5p
dGlhbGl6ZSk6IENhbGwgdGhlIGxpYnJhcnkgaW5pdGlhbGl6ZXIuCisKKyAgICAgICAgSW5pdGlh
bGl6ZSB0aGUgc2hpbSBvbmx5IHdoZW4gdGhlIFdlYlByb2Nlc3MgaXMgZGVsZWdhdGluZyBuZXR3
b3JrIGxvYWRpbmcKKyAgICAgICAgdG8gdGhlIE5ldHdvcmtQcm9jZXNzOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6Omlu
aXRpYWxpemVXZWJQcm9jZXNzKToKKworICAgICAgICBSZW5hbWUgdGhlIFdlYlByb2Nlc3MncyBz
aGltIGZyb20gU2VjSXRlbVNoaW0gLT4gV2ViUHJvY2Vzc1NoaW06CisgICAgICAgICogVUlQcm9j
ZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6
OmFkZERZTERFbnZpcm9ubWVudEFkZGl0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29udGVudFByb2Nlc3NNYWluRGVsZWdhdGU6OmRvUHJlSW5pdGlhbGl6
YXRpb25Xb3JrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZp
Y2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby5wbGlzdDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tOgor
ICAgICAgICAoV2ViQ29udGVudFNlcnZpY2VJbml0aWFsaXplcik6CisKKyAgICAgICAgQWRkIG5l
dyBmaWxlcyB0byB0aGUgcHJvamVjdDoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisKIDIwMTMtMDQtMTggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUERGUGx1Z2luOiBVcGRhdGUgUERGTGF5ZXJDb250cm9sbGVy
J3Mgc2NhbGUgZmFjdG9ycyBlYXJsaWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
Q29va2llU3RvcmFnZVNoaW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhNTg3NDBjNWQxMjE5ZTRlZGQ0ZmRh
NzdkNzFiYWZiZWU1YjViNTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2VTaGltLmgiCisK
KyNpbmNsdWRlICJDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCIKKyNpbmNsdWRlICJOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldl
YlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0tVUkwuaD4KKyNpbmNsdWRlIDxkbGZjbi5o
PgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyBDRkRpY3Rpb25hcnlSZWYgd2Vi
S2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKENGSFRUUENvb2tp
ZVN0b3JhZ2VSZWYgaW5Db29raWVTdG9yYWdlLCBDRlVSTFJlZiBpblJlcXVlc3RVUkwpCit7Cisj
aWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyAgICBTdHJpbmcgY29va2llczsKKyAgICBLVVJM
IGZpcnN0UGFydHlVUkw7CisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29u
bmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTShmYWxzZSwgZmlyc3RQYXJ0eVVSTCwgaW5S
ZXF1ZXN0VVJMKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29r
aWVzRm9yRE9NOjpSZXBseShjb29raWVzKSwgMCkpCisgICAgICAgIHJldHVybiAwOworCisgICAg
UmV0YWluUHRyPENGU3RyaW5nUmVmPiBjZkNvb2tpZXMgPSBjb29raWVzLmNyZWF0ZUNGU3RyaW5n
KCk7CisgICAgc3RhdGljIGNvbnN0IHZvaWQqIGNvb2tpZUtleXNbXSA9IHsgQ0ZTVFIoIkNvb2tp
ZSIpIH07CisgICAgY29uc3Qgdm9pZCogY29va2llVmFsdWVzW10gPSB7IGNmQ29va2llcy5nZXQo
KSB9OworICAgIHJldHVybiBDRkRpY3Rpb25hcnlDcmVhdGUoMCwgY29va2llS2V5cywgY29va2ll
VmFsdWVzLCAxLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlv
bmFyeVZhbHVlQ2FsbEJhY2tzKTsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKwor
Q29va2llU3RvcmFnZVNoaW0mIENvb2tpZVN0b3JhZ2VTaGltOjpzaGFyZWQoKQoreworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQ29va2llU3RvcmFnZVNoaW0sIHN0b3JhZ2UsICgpKTsKKyAgICBy
ZXR1cm4gc3RvcmFnZTsKK30KKwordm9pZCBDb29raWVTdG9yYWdlU2hpbTo6aW5pdGlhbGl6ZSgp
Cit7CisgICAgQ29va2llU3RvcmFnZVNoaW1DYWxsYmFja3MgY2FsbGJhY2tzID0geyAmd2ViS2l0
Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMIH07CisgICAgQ29va2ll
U3RvcmFnZVNoaW1Jbml0aWFsaXplRnVuYyBmdW5jID0gcmVpbnRlcnByZXRfY2FzdDxDb29raWVT
dG9yYWdlU2hpbUluaXRpYWxpemVGdW5jPihkbHN5bShSVExEX0RFRkFVTFQsICJXZWJLaXRDb29r
aWVTdG9yYWdlU2hpbUluaXRpYWxpemUiKSk7CisgICAgaWYgKGZ1bmMpCisgICAgICAgIGZ1bmMo
Y2FsbGJhY2tzKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9Db29raWVTdG9yYWdlU2hpbS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVT
dG9yYWdlU2hpbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4N2IzN2E3MTU3Nzc3ZDMyMTcyZGMzZmQ4MTQwOTRm
YWMwMTdlNzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nv
b2tpZVN0b3JhZ2VTaGltLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
Q29va2llU3RvcmFnZVNoaW1faAorI2RlZmluZSBDb29raWVTdG9yYWdlU2hpbV9oCisKKyNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENv
b2tpZVN0b3JhZ2VTaGltIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb29raWVTdG9yYWdl
U2hpbSk7CitwdWJsaWM6CisgICAgc3RhdGljIENvb2tpZVN0b3JhZ2VTaGltJiBzaGFyZWQoKTsK
KworICAgIHZvaWQgaW5pdGlhbGl6ZSgpOworCitwcml2YXRlOgorICAgIENvb2tpZVN0b3JhZ2VT
aGltKCkgeyB9OworfTsKK30KKworI2VuZGlmIC8vIENvb2tpZVN0b3JhZ2VTaGltX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45ZTRlM2QwOWNiOWMyMTA1MmY4MDNmMmZlYzc2NWM2Yjc5MDg2NWI0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9y
YWdlU2hpbUxpYnJhcnkuY3BwCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgiCisKK2V4
dGVybiAiQyIgQ0ZEaWN0aW9uYXJ5UmVmIF9DRkhUVFBDb29raWVTdG9yYWdlQ29weVJlcXVlc3RI
ZWFkZXJGaWVsZHNGb3JVUkwoQ0ZBbGxvY2F0b3JSZWYgaW5BbGxvY2F0b3IsIENGSFRUUENvb2tp
ZVN0b3JhZ2VSZWYgaW5Db29raWVTdG9yYWdlLCBDRlVSTFJlZiBpblJlcXVlc3RVUkwpOworCisj
ZGVmaW5lIERZTERfSU5URVJQT1NFKF9yZXBsYWNlbWVudCwgX3JlcGxhY2VlKSBcCitfX2F0dHJp
YnV0ZV9fKCh1c2VkKSkgc3RhdGljIHN0cnVjdCB7IGNvbnN0IHZvaWQqIHJlcGxhY2VtZW50OyBj
b25zdCB2b2lkKiByZXBsYWNlZTsgfSBfaW50ZXJwb3NlXyMjX3JlcGxhY2VlIFwKK19fYXR0cmli
dXRlX18gKChzZWN0aW9uICgiX19EQVRBLF9faW50ZXJwb3NlIikpKSA9IHsgKGNvbnN0IHZvaWQq
KSh1bnNpZ25lZCBsb25nKSZfcmVwbGFjZW1lbnQsIChjb25zdCB2b2lkKikodW5zaWduZWQgbG9u
ZykmX3JlcGxhY2VlIH07CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitleHRlcm4gIkMiIHZvaWQg
V2ViS2l0Q29va2llU3RvcmFnZVNoaW1Jbml0aWFsaXplKGNvbnN0IENvb2tpZVN0b3JhZ2VTaGlt
Q2FsbGJhY2tzJik7CisKK3N0YXRpYyBDb29raWVTdG9yYWdlU2hpbUNhbGxiYWNrcyBjb29raWVT
dG9yYWdlU2hpbUNhbGxiYWNrczsKKworY2xhc3MgU2hpbVByb3RlY3RvciB7CitwdWJsaWM6Cisg
ICAgU2hpbVByb3RlY3RvcigpIHsgKyttX2NvdW50OyB9CisgICAgflNoaW1Qcm90ZWN0b3IoKSB7
IC0tbV9jb3VudDsgfQorICAgIHN0YXRpYyB1bnNpZ25lZCBjb3VudCgpIHsgcmV0dXJuIG1fY291
bnQ7IH0KK3ByaXZhdGU6CisgICAgc3RhdGljIHVuc2lnbmVkIG1fY291bnQ7Cit9OworCit1bnNp
Z25lZCBTaGltUHJvdGVjdG9yOjptX2NvdW50ID0gMDsKKworc3RhdGljIENGRGljdGlvbmFyeVJl
ZiBzaGltQ0ZIVFRQQ29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKENG
QWxsb2NhdG9yUmVmIGluQWxsb2NhdG9yLCBDRkhUVFBDb29raWVTdG9yYWdlUmVmIGluQ29va2ll
U3RvcmFnZSwgQ0ZVUkxSZWYgaW5SZXF1ZXN0VVJMKQoreworICAgIFNoaW1Qcm90ZWN0b3IgcHJv
dGVjdG9yOworCisgICAgZG8geworICAgICAgICAvLyBQcm90ZWN0IGFnYWluc3QgdW5pbml0aWFs
aXplZCBjYWxsYmFja3M6CisgICAgICAgIGlmICghY29va2llU3RvcmFnZVNoaW1DYWxsYmFja3Mu
Y29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKQorICAgICAgICAgICAg
YnJlYWs7CisKKyAgICAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IGFjY2lkZW50YWwgcmVjdXJzaW9u
OgorICAgICAgICBpZiAoU2hpbVByb3RlY3Rvcjo6Y291bnQoKSA+IDEpCisgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICBDRkRpY3Rpb25hcnlSZWYgcmVzdWx0cyA9IGNvb2tpZVN0b3JhZ2VT
aGltQ2FsbGJhY2tzLmNvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0ZvclVSTChp
bkNvb2tpZVN0b3JhZ2UsIGluUmVxdWVzdFVSTCk7CisgICAgICAgIGlmICghcmVzdWx0cykKKyAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHJldHVybiByZXN1bHRzOworICAgIH0gd2hpbGUg
KDApOworCisgICAgLy8gSWYgd2UndmUgZmFpbGVkIHRvIHJldHJpZXZlIHRoZSBjb29raWVzIG1h
bnVhbGx5LCBmYWxsIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGltcG9zZWQgZnVuY3Rpb246CisgICAg
cmV0dXJuIF9DRkhUVFBDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwo
aW5BbGxvY2F0b3IsIGluQ29va2llU3RvcmFnZSwgaW5SZXF1ZXN0VVJMKTsKK30KKworRFlMRF9J
TlRFUlBPU0Uoc2hpbUNGSFRUUENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0Zv
clVSTCwgX0NGSFRUUENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0ZvclVSTCk7
CisKK19fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCit2b2lkIFdlYktpdENv
b2tpZVN0b3JhZ2VTaGltSW5pdGlhbGl6ZShjb25zdCBDb29raWVTdG9yYWdlU2hpbUNhbGxiYWNr
cyYgY2FsbGJhY2tzKQoreworICAgIGNvb2tpZVN0b3JhZ2VTaGltQ2FsbGJhY2tzID0gY2FsbGJh
Y2tzOworfQorICAgIAorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9D
b29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29v
a2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWNlNzFkZWMyNjUyYTA0ODI0MGM5
MWUwZTM4NTVjYzU0MzZmOTZiYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgKQEAgLTAsMCArMSw0MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5X2gKKyNkZWZpbmUgQ29v
a2llU3RvcmFnZVNoaW1MaWJyYXJ5X2gKKwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ0ZIVFRQQ29v
a2llU3RvcmFnZSogIENGSFRUUENvb2tpZVN0b3JhZ2VSZWY7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitzdHJ1Y3QgQ29va2llU3RvcmFnZVNoaW1DYWxsYmFja3MgeworICAgIENGRGljdGlvbmFy
eVJlZiAoKmNvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0ZvclVSTCkoQ0ZIVFRQ
Q29va2llU3RvcmFnZVJlZiBpbkNvb2tpZVN0b3JhZ2UsIENGVVJMUmVmIGluUmVxdWVzdFVSTCk7
Cit9OworCit0eXBlZGVmIHZvaWQgKCpDb29raWVTdG9yYWdlU2hpbUluaXRpYWxpemVGdW5jKShj
b25zdCBDb29raWVTdG9yYWdlU2hpbUNhbGxiYWNrcyYgY2FsbGJhY2tzKTsKKworfQorCisjZW5k
aWYgLy8gQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KaW5k
ZXggN2IyZWRjOGFjNjcxZmUxZmU3OGEyNDQyMTY1ZWY1MDM1NGVjMWU2MC4uZGI3YzA4NGU0NWE1
Mjk1NDViMzcxNzcyYTAzZDc1NTk3Mjg0Y2ZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAg
LTEyMSw3ICsxMjEsNyBAQCBzdGF0aWMgdm9pZCBhZGREWUxERW52aXJvbm1lbnRBZGRpdGlvbnMo
Y29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYQogICAgICAgICBOU1N0cmlu
ZyAqcHJvY2Vzc1BhdGggPSBbd2ViS2l0MkJ1bmRsZSBwYXRoRm9yQXV4aWxpYXJ5RXhlY3V0YWJs
ZTpAIldlYlByb2Nlc3MuYXBwIl07CiAgICAgICAgIE5TU3RyaW5nICpwcm9jZXNzQXBwRXhlY3V0
YWJsZVBhdGggPSBbW05TQnVuZGxlIGJ1bmRsZVdpdGhQYXRoOnByb2Nlc3NQYXRoXSBleGVjdXRh
YmxlUGF0aF07CiAKLSAgICAgICAgcHJvY2Vzc1NoaW1QYXRoTlNTdHJpbmcgPSBbW3Byb2Nlc3NB
cHBFeGVjdXRhYmxlUGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdIHN0cmlu
Z0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIlNlY0l0ZW1TaGltLmR5bGliIl07CisgICAgICAg
IHByb2Nlc3NTaGltUGF0aE5TU3RyaW5nID0gW1twcm9jZXNzQXBwRXhlY3V0YWJsZVBhdGggc3Ry
aW5nQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50XSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21w
b25lbnQ6QCJXZWJQcm9jZXNzU2hpbS5keWxpYiJdOwogICAgIH0gZWxzZSBpZiAobGF1bmNoT3B0
aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNoZXI6Ok5ldHdvcmtQcm9jZXNzKSB7CiAg
ICAgICAgIE5TU3RyaW5nICpwcm9jZXNzUGF0aCA9IFt3ZWJLaXQyQnVuZGxlIHBhdGhGb3JBdXhp
bGlhcnlFeGVjdXRhYmxlOkAiTmV0d29ya1Byb2Nlc3MuYXBwIl07CiAgICAgICAgIE5TU3RyaW5n
ICpwcm9jZXNzQXBwRXhlY3V0YWJsZVBhdGggPSBbW05TQnVuZGxlIGJ1bmRsZVdpdGhQYXRoOnBy
b2Nlc3NQYXRoXSBleGVjdXRhYmxlUGF0aF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGZhZDNkOGM1ODFiNWMyYTUxMzNjN2I1
Yjg1ZTQxNTIyMjUyNWZiYS4uMzU4MmVjN2JkMzJjOGIyNmVkMjBiZWE4OGU4ZWRhMzllNGEzNTE1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNDg4LDcgKzQ4OCw2IEBACiAJCTUxODI5REE2MTYzN0M3MEMwMDA5NTNENiAvKiBO
ZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTgyOURBNDE2MzdDNzBDMDAwOTUzRDYgLyogTmV0d29ya1Jl
c291cmNlTG9hZFNjaGVkdWxlci5oICovOyB9OwogCQk1MTgzNDU5MjEzNDUzMkU5MDA5MkI2OTYg
LyogV2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxODM0NTkwMTM0NTMyRTgwMDkyQjY5NiAvKiBXZWJJY29uRGF0
YWJhc2VDbGllbnQuY3BwICovOyB9OwogCQk1MTgzNDU5MzEzNDUzMkU5MDA5MkI2OTYgLyogV2Vi
SWNvbkRhdGFiYXNlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTgzNDU5MTEzNDUzMkU4MDA5MkI2OTYgLyogV2ViSWNvbkRhdGFiYXNlQ2xp
ZW50LmggKi87IH07Ci0JCTUxODNCMzkyMTM3OUY3QjgwMEU4NzU0RSAvKiBTZWNJdGVtU2hpbS5k
eWxpYiBpbiBDb3B5IFNlYyBJdGVtIFNoaW0gKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5bGliICovOyB9
OwogCQk1MTgzRERFQzE2MzBCREZDMDA4QkU1QzcgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDVC
MEQ0MTYyRjdBN0EwMEUyNzcwOSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovOyB9
OwogCQk1MTg3MUI1QjEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4NzFCNTkxMjdDQjg5
RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmNwcCAqLzsgfTsKIAkJNTE4NzFCNUMxMjdDQjg5
RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg3MUI1QTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4
dE1lbnUuaCAqLzsgfTsKQEAgLTEwODcsNiArMTA4NiwxMyBAQAogCQlDRDczQkE0NzEzMUFDQzlB
MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0NTEz
MUFDQzg4MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CiAJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVu
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0ODEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVl
bk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDRDczQkE1MzEzMUI2NDVCMDBF
RURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBMzcxMzFBMjlGRTAwRUVERUQyIC8qIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyLmNwcCAqLzsgfTsKKwkJQ0RDMzgyRkUxNzIxMTc5OTAwOEEyRkMzIC8q
IFNlY0l0ZW1TaGltTGlicmFyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMUY4QTc4MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJh
cnkubW0gKi87IH07CisJCUNEQzM4MzAwMTcyMTE3OTkwMDhBMkZDMyAvKiBDRk5ldHdvcmsuZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RDMzgyRjcxNzIxMTUwNjAwOEEyRkMzIC8qIENGTmV0d29yay5mcmFtZXdvcmsgKi87IH07CisJ
CUNEQzM4MzAxMTcyMTE3OTkwMDhBMkZDMyAvKiBTZWN1cml0eS5mcmFtZXdvcmsgaW4gRnJhbWV3
b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y1MDY4NDEyNDMxODYx
MDA1OTU1QUUgLyogU2VjdXJpdHkuZnJhbWV3b3JrICovOyB9OworCQlDREMzODMwNzE3MjExN0RE
MDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzM4MkY5MTcyMTE2RDMwMDhBMkZDMyAv
KiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuY3BwICovOyB9OworCQlDREMzODMwODE3MjExODkw
MDA4QTJGQzMgLyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIgaW4gQ29weSBXZWJQcm9jZXNzU2hpbSAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREMzODMwNjE3MjExNzk5MDA4QTJG
QzMgLyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIgKi87IH07CisJCUNEQzM4MzBDMTcyMTIyODIwMDhB
MkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzM4MzBCMTcyMTIxQ0UwMDhBMkZDMyAvKiBDb29r
aWVTdG9yYWdlU2hpbUxpYnJhcnkuaCAqLzsgfTsKKwkJQ0RDMzgzMTAxNzIxMjQ0MDAwOEEyRkMz
IC8qIENvb2tpZVN0b3JhZ2VTaGltLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEQzM4MzBEMTcyMTI0MkQwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdl
U2hpbS5jcHAgKi87IH07CiAJCUNEQ0E4NUM4MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RDQTg1QzYxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIubW0gKi87IH07CiAJCUNEQ0E4NUM5MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlci5oICovOyB9OwogCQlDRENBODVFRTEzMkFENzAxMDBFOTYxREYgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E4NURFMTMyQUQwNTMwMEU5NjFERiAvKiBXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5TWFjLm1tICovOyB9OwpAQCAtMTIxOCwxMyArMTIyNCw2IEBACiAJ
CQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDhEQzJFRjRGMDQ4NkE2OTQwMDk4QjIxNjsKIAkJCXJl
bW90ZUluZm8gPSBXZWJLaXQyOwogCQl9OwotCQk1MTgzQjM4RDEzNzlGNTQ2MDBFODc1NEUgLyog
UEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVBy
b3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFBy
b2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJlbW90ZUdsb2JhbElEU3Ry
aW5nID0gNTEwMDMxRUExMzc5Q0FDQjAwQzhERkU0OwotCQkJcmVtb3RlSW5mbyA9IFNlY0l0ZW1T
aGltOwotCQl9OwogCQlCQzc3Rjk1NTE2RDA0NTkxMDBGOEY3OEEgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwogCQkJY29udGFp
bmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICov
OwpAQCAtMTMyMyw2ICsxMzIyLDEzIEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IEJDREUw
OTMzMTMyNzI0OTYwMDEyNTlGQjsKIAkJCXJlbW90ZUluZm8gPSAiUGx1Z2luIFByb2Nlc3MiOwog
CQl9OworCQlDREMzODMwOTE3MjExQUJFMDA4QTJGQzMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5
ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9y
dGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJ
cHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gQ0RDMzgyRkIxNzIxMTc5
OTAwOEEyRkMzOworCQkJcmVtb3RlSW5mbyA9IFdlYlByb2Nlc3NTaGltOworCQl9OwogCQlFMTNB
OEE0QzE2Mjg3QTVCMDAzOTI5MjkgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewogCQkJ
aXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwogCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2
OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwpAQCAtMTM1MywxNSArMTM1
OSwxNSBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwotCQk1MTgzQjM4RjEzNzlGNTY4MDBFODc1NEUgLyogQ29weSBTZWMgSXRlbSBTaGlt
ICovID0geworCQk1MTgzQjM4RjEzNzlGNTY4MDBFODc1NEUgLyogQ29weSBXZWJQcm9jZXNzU2hp
bSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvcHlGaWxlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZHN0UGF0aCA9IFdlYlByb2Nlc3MuYXBwL0NvbnRlbnRz
L01hY09TOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDE2OwogCQkJZmlsZXMgPSAoCi0JCQkJNTE4
M0IzOTIxMzc5RjdCODAwRTg3NTRFIC8qIFNlY0l0ZW1TaGltLmR5bGliIGluIENvcHkgU2VjIEl0
ZW0gU2hpbSAqLywKKwkJCQlDREMzODMwODE3MjExODkwMDA4QTJGQzMgLyogV2ViUHJvY2Vzc1No
aW0uZHlsaWIgaW4gQ29weSBXZWJQcm9jZXNzU2hpbSAqLywKIAkJCSk7Ci0JCQluYW1lID0gIkNv
cHkgU2VjIEl0ZW0gU2hpbSI7CisJCQluYW1lID0gIkNvcHkgV2ViUHJvY2Vzc1NoaW0iOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CiAJCTVEMUEyMzkw
MTVFNzVCMTAwMDIzRTk4MSAvKiBDb3B5IE1lc3NhZ2UgR2VuZXJhdGlvbiBTY3JpcHRzICovID0g
ewpAQCAtMjU0Nyw2ICsyNTUzLDEyIEBACiAJCUNENzNCQTQ4MTMxQUNEOEUwMEVFREVEMiAvKiBX
ZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzNCQTQ5MTMxQUNEOEUwMEVFREVE
MiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JBNEExMzFBQ0Q4RjAwRUVERUQyIC8qIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0RDMzgyRjcxNzIxMTUwNjAwOEEyRkMzIC8qIENGTmV0d29yay5mcmFtZXdv
cmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFw
cGVyLmZyYW1ld29yazsgbmFtZSA9IENGTmV0d29yay5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVt
L0xpYnJhcnkvRnJhbWV3b3Jrcy9DRk5ldHdvcmsuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxh
YnNvbHV0ZT4iOyB9OworCQlDREMzODJGOTE3MjExNkQzMDA4QTJGQzMgLyogQ29va2llU3RvcmFn
ZVNoaW1MaWJyYXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvb2tpZVN0b3JhZ2VTaGltTGli
cmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQzM4MzA2MTcyMTE3OTkw
MDhBMkZDMyAvKiBXZWJQcm9jZXNzU2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJ
bkluZGV4ID0gMDsgcGF0aCA9IFdlYlByb2Nlc3NTaGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OworCQlDREMzODMwQjE3MjEyMUNFMDA4QTJGQzMgLyogQ29va2ll
U3RvcmFnZVNoaW1MaWJyYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvb2tpZVN0b3JhZ2VTaGltTGli
cmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREMzODMwRDE3MjEyNDJEMDA4
QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ29va2llU3RvcmFnZVNoaW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDREMzODMwRTE3MjEyNDJEMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW0uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llU3RvcmFnZVNoaW0uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTg1QzYxMzJBQkE0RTAwRTk2MURGIC8qIFdL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNEQ0E4NUQ0MTMyQUMyQjMwMEU5NjFERiAvKiBJT0tpdC5mcmFtZXdvcmsgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29y
azsgbmFtZSA9IElPS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv
cmtzL0lPS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKQEAgLTI3
ODcsNiArMjc5OSwxNSBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OworCQlDREMzODJGRjE3MjExNzk5MDA4QTJGQzMgLyogRnJhbWV3b3Jr
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCUNEQzM4MzAwMTcyMTE3OTkw
MDhBMkZDMyAvKiBDRk5ldHdvcmsuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCisJCQkJQ0RD
MzgzMDExNzIxMTc5OTAwOEEyRkMzIC8qIFNlY3VyaXR5LmZyYW1ld29yayBpbiBGcmFtZXdvcmtz
ICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwor
CQl9OwogCQlFMTNBOEEyOTE2Mjg3OUFDMDAzOTI5MjkgLyogRnJhbWV3b3JrcyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKQEAgLTI4MTgsNiArMjgzOSw3IEBACiAJCQkJQkNBRjM1OUExNkNBMUQ1NzAwRDRF
OUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy5hcHAgKi8sCiAJCQkJQkNBRjM1RjExNkNBMjYz
ODAwRDRFOUZDIC8qIGNvbS5hcHBsZS5XZWJLaXQuT2ZmbGluZVN0b3JhZ2UueHBjICovLAogCQkJ
CUJDQUYzNjA0MTZDQTI2NjkwMEQ0RTlGQyAvKiBjb20uYXBwbGUuV2ViS2l0Lk9mZmxpbmVTdG9y
YWdlLkRldmVsb3BtZW50LnhwYyAqLywKKwkJCQlDREMzODMwNjE3MjExNzk5MDA4QTJGQzMgLyog
V2ViUHJvY2Vzc1NoaW0uZHlsaWIgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFByb2R1Y3RzOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI4NzcsNiArMjg5OSw3IEBACiAJCTEwNThDN0Iw
RkVBNTU4NUUxMUNBMkNCQiAvKiBMaW5rZWQgRnJhbWV3b3JrcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0RDMzgyRjcxNzIxMTUwNjAwOEEyRkMzIC8q
IENGTmV0d29yay5mcmFtZXdvcmsgKi8sCiAJCQkJMDg2N0Q2QTVGRTg0MDMwN0MwMkFBQzA3IC8q
IEFwcEtpdC5mcmFtZXdvcmsgKi8sCiAJCQkJMUFBREU2RkUxMEQ4NTVGQzAwRDNENjNEIC8qIEFw
cGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrICovLAogCQkJCTFBQTFDRDA2MTAwRkExQkEwMDc4
REVCQyAvKiBDYXJib24uZnJhbWV3b3JrICovLApAQCAtNDIyMyw2ICs0MjQ2LDEwIEBACiAJCQkJ
OTA1NjIwRTUxMkJDMjQ3NjAwMDc5OUI2IC8qIFdlYk1lbW9yeVNhbXBsZXIubWFjLm1tICovLAog
CQkJCUJDRTIzMUMwMTIyQzQ2NkUwMEQ1QzM1QSAvKiBXZWJVUkxSZXF1ZXN0TWFjLm1tICovLAog
CQkJCUJDOTBBMUQ1MTIyREQ2NkEwMENDOEM1MCAvKiBXZWJVUkxSZXNwb25zZU1hYy5tbSAqLywK
KwkJCQlDREMzODJGOTE3MjExNkQzMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5
LmNwcCAqLywKKwkJCQlDREMzODMwQjE3MjEyMUNFMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNo
aW1MaWJyYXJ5LmggKi8sCisJCQkJQ0RDMzgzMEQxNzIxMjQyRDAwOEEyRkMzIC8qIENvb2tpZVN0
b3JhZ2VTaGltLmNwcCAqLywKKwkJCQlDREMzODMwRTE3MjEyNDJEMDA4QTJGQzMgLyogQ29va2ll
U3RvcmFnZVNoaW0uaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTUyOTIsNiArNTMxOSw3IEBACiAJCQkJMUE4RUY0Q0IxMjUyNDAzNzAw
RjcwNjdGIC8qIFBsdWdpbkNvbnRyb2xsZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4
RUY5NkYxMjUyQUY2QjAwRjcwNjdGIC8qIFBsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTE3OTc4MDEzN0VFODJDMDBGOTdENDUgLyogUGx1Z2luQ3Jl
YXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDREMzODMwQzE3MjEyMjgyMDA4
QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUVGQ0MxMjExRDAxRjk2MDA4MjE5RDMgLyogUGx1Z2luSW5mb1N0b3JlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTNENjEwMjEzQTdDQzJBMDBGOTVENEUgLyogUGx1Z2luTW9kdWxlSW5mby5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUEwNDM5NzYxMjREMDM0ODAwRkZCRkI1IC8qIFBsdWdpblByb2Nl
c3MuaCBpbiBIZWFkZXJzICovLApAQCAtNTY3Nyw2ICs1NzA1LDEzIEBACiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CisJCUNEQzM4MkZDMTcy
MTE3OTkwMDhBMkZDMyAvKiBIZWFkZXJzICovID0geworCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxk
UGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJ
CQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAv
KiBFbmQgUEJYSGVhZGVyc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhOYXRp
dmVUYXJnZXQgc2VjdGlvbiAqLwpAQCAtNTY4NiwxMyArNTcyMSwxMyBAQAogCQkJYnVpbGRQaGFz
ZXMgPSAoCiAJCQkJMUE1MERCMUExMTBBM0JEQzAwMEQzRkU1IC8qIFJlc291cmNlcyAqLywKIAkJ
CQkxQTUwREIxQjExMEEzQkRDMDAwRDNGRTUgLyogU291cmNlcyAqLywKLQkJCQk1MTgzQjM4RjEz
NzlGNTY4MDBFODc1NEUgLyogQ29weSBTZWMgSXRlbSBTaGltICovLAorCQkJCTUxODNCMzhGMTM3
OUY1NjgwMEU4NzU0RSAvKiBDb3B5IFdlYlByb2Nlc3NTaGltICovLAogCQkJCUJDNUQyNEIwMTZD
QzNGMjgwMDdENTQ2MSAvKiBGcmFtZXdvcmtzICovLAogCQkJKTsKIAkJCWJ1aWxkUnVsZXMgPSAo
CiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAotCQkJCTUxODNCMzhFMTM3OUY1NDYwMEU4NzU0
RSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAorCQkJCUNEQzM4MzBBMTcyMTFBQkUwMDhBMkZD
MyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTFBNTBEQjI3MTEwQTNCRUYwMDBEM0ZF
NSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBXZWJQcm9jZXNz
OwpAQCAtNTk3MSw2ICs2MDA2LDIzIEBACiAJCQlwcm9kdWN0UmVmZXJlbmNlID0gQkNERTA5NDIx
MzI3MjQ5NjAwMTI1OUZCIC8qIFBsdWdpblByb2Nlc3MuYXBwICovOwogCQkJcHJvZHVjdFR5cGUg
PSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS5hcHBsaWNhdGlvbiI7CiAJCX07CisJCUNEQzM4MkZC
MTcyMTE3OTkwMDhBMkZDMyAvKiBXZWJQcm9jZXNzU2hpbSAqLyA9IHsKKwkJCWlzYSA9IFBCWE5h
dGl2ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBDREMzODMwMjE3MjExNzk5
MDA4QTJGQzMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQg
IldlYlByb2Nlc3NTaGltIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCUNEQzM4MkZDMTcy
MTE3OTkwMDhBMkZDMyAvKiBIZWFkZXJzICovLAorCQkJCUNEQzM4MkZEMTcyMTE3OTkwMDhBMkZD
MyAvKiBTb3VyY2VzICovLAorCQkJCUNEQzM4MkZGMTcyMTE3OTkwMDhBMkZDMyAvKiBGcmFtZXdv
cmtzICovLAorCQkJKTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVz
ID0gKAorCQkJKTsKKwkJCW5hbWUgPSBXZWJQcm9jZXNzU2hpbTsKKwkJCXByb2R1Y3ROYW1lID0g
UGx1Z2luUHJvY2Vzc1NoaW07CisJCQlwcm9kdWN0UmVmZXJlbmNlID0gQ0RDMzgzMDYxNzIxMTc5
OTAwOEEyRkMzIC8qIFdlYlByb2Nlc3NTaGltLmR5bGliICovOworCQkJcHJvZHVjdFR5cGUgPSAi
Y29tLmFwcGxlLnByb2R1Y3QtdHlwZS5saWJyYXJ5LmR5bmFtaWMiOworCQl9OwogCQlFMTNBOEEy
QjE2Mjg3OUFDMDAzOTI5MjkgLyogU2hhcmVkV29ya2VyUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9
IFBCWE5hdGl2ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBFMTNBOEE0QTE2
Mjg3OUFDMDAzOTI5MjkgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVU
YXJnZXQgIlNoYXJlZFdvcmtlclByb2Nlc3MiICovOwpAQCAtNjAyMyw2ICs2MDc1LDcgQEAKIAkJ
CQlDMENFNzI4NTEyNDdFNjY4MDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTFB
QzI1RkFGMTJBNDhFQTcwMEJEMjY3MSAvKiBQbHVnaW5Qcm9jZXNzU2hpbSAqLywKIAkJCQk1MTAw
MzFFQTEzNzlDQUNCMDBDOERGRTQgLyogU2VjSXRlbVNoaW0gKi8sCisJCQkJQ0RDMzgyRkIxNzIx
MTc5OTAwOEEyRkMzIC8qIFdlYlByb2Nlc3NTaGltICovLAogCQkJCUJDM0RFNDY1MTVBOTE3NjMw
MDhEMjZGQyAvKiBXZWJDb250ZW50ICovLAogCQkJCUJDQUU5REU4MTYwQzA5NzQwMEEzMzIxNyAv
KiBXZWJDb250ZW50LkRldmVsb3BtZW50ICovLAogCQkJCUJDODI4M0IwMTZCNEJGNzcwMEEyNzhG
RSAvKiBOZXR3b3JraW5nICovLApAQCAtNjYyNyw2ICs2NjgwLDcgQEAKIAkJCQk5MzlBRTc2NjEz
MTZFOTlDMDBBRTA2QTYgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDRTIzMjYzMTIyQzZDRjMwMEQ1QzM1QSAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnNN
YWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTJGNTg5QTEyQTg4Mzg4MDA2Mjk1MzAgLyogV2Vi
Q3JlZGVudGlhbC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREMzODMxMDE3MjEyNDQwMDA4QTJG
QzMgLyogQ29va2llU3RvcmFnZVNoaW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjZBMjVGREMx
MkFEQzZDQzAwREM0MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNjJBNzZCNjEyQjFCMjVGMDAwNUYxQjYgLyogV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY2MkE3NjVDMTJCMUFCQzMwMDA1RjFC
NiAvKiBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTY5Nzgs
NiArNzAzMiwxNSBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OworCQlDREMzODJGRDE3MjExNzk5MDA4QTJGQzMgLyogU291cmNlcyAqLyA9
IHsKKwkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0g
MjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCUNEQzM4MzA3MTcyMTE3REQwMDhBMkZDMyAv
KiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RDMzgy
RkUxNzIxMTc5OTAwOEEyRkMzIC8qIFNlY0l0ZW1TaGltTGlicmFyeS5tbSBpbiBTb3VyY2VzICov
LAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9
OwogCQlFMTNBOEEyODE2Mjg3OUFDMDAzOTI5MjkgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9
IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
QEAgLTcwMTQsMTEgKzcwNzcsNiBAQAogCQkJdGFyZ2V0ID0gOERDMkVGNEYwNDg2QTY5NDAwOThC
MjE2IC8qIFdlYktpdDIgKi87CiAJCQl0YXJnZXRQcm94eSA9IDUxMENDODUwMTYxM0M5OEQwMEQw
M0VEMyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07Ci0JCTUxODNCMzhFMTM3OUY1
NDYwMEU4NzU0RSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewotCQkJaXNhID0gUEJYVGFy
Z2V0RGVwZW5kZW5jeTsKLQkJCXRhcmdldCA9IDUxMDAzMUVBMTM3OUNBQ0IwMEM4REZFNCAvKiBT
ZWNJdGVtU2hpbSAqLzsKLQkJCXRhcmdldFByb3h5ID0gNTE4M0IzOEQxMzc5RjU0NjAwRTg3NTRF
IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKIAkJQkM3N0Y5NTYxNkQwNDU5MTAw
RjhGNzhBIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXRE
ZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gQkM4MjgzRjgxNkI0RkRERTAwQTI3OEZFIC8qIFBsdWdp
bi4zMiAqLzsKQEAgLTcwODksNiArNzE0NywxMSBAQAogCQkJdGFyZ2V0ID0gQkNERTA5MzMxMzI3
MjQ5NjAwMTI1OUZCIC8qIFBsdWdpblByb2Nlc3MgKi87CiAJCQl0YXJnZXRQcm94eSA9IEJDREUw
QUMwMTMyNzI3MTIwMDEyNTlGQiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07CisJ
CUNEQzM4MzBBMTcyMTFBQkUwMDhBMkZDMyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewor
CQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IENEQzM4MkZCMTcyMTE3
OTkwMDhBMkZDMyAvKiBXZWJQcm9jZXNzU2hpbSAqLzsKKwkJCXRhcmdldFByb3h5ID0gQ0RDMzgz
MDkxNzIxMUFCRTAwOEEyRkMzIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJ
RTEzQThBNEQxNjI4N0E1QjAwMzkyOTI5IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gRTEzQThBMkIxNjI4NzlB
QzAwMzkyOTI5IC8qIFNoYXJlZFdvcmtlclByb2Nlc3MgKi87CkBAIC03NTU0LDYgKzc2MTcsMzAg
QEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJQ0RDMzgzMDMxNzIxMTc5
OTAwOEEyRkMzIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxODNCMzkzMTM3OUY4NUMwMEU4NzU0
RSAvKiBTaGltLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNU
X05BTUUgPSBXZWJQcm9jZXNzU2hpbTsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJ
CUNEQzM4MzA0MTcyMTE3OTkwMDhBMkZDMyAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENC
dWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxODNC
MzkzMTM3OUY4NUMwMEU4NzU0RSAvKiBTaGltLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5n
cyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSBXZWJQcm9jZXNzU2hpbTsKKwkJCX07CisJCQluYW1l
ID0gUmVsZWFzZTsKKwkJfTsKKwkJQ0RDMzgzMDUxNzIxMTc5OTAwOEEyRkMzIC8qIFByb2R1Y3Rp
b24gKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1
cmF0aW9uUmVmZXJlbmNlID0gNTE4M0IzOTMxMzc5Rjg1QzAwRTg3NTRFIC8qIFNoaW0ueGNjb25m
aWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9IFdlYlByb2Nl
c3NTaGltOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQlFMTNBOEE0NzE2
Mjg3OUFDMDAzOTI5MjkgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJh
dGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gRTEzQThBNEIxNjI4N0ExQjAw
MzkyOTI5IC8qIFNoYXJlZFdvcmtlclByb2Nlc3MueGNjb25maWcgKi87CkBAIC03NzY4LDYgKzc4
NTUsMTYgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1
bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJCUNEQzM4MzAyMTcyMTE3
OTkwMDhBMkZDMyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdl
dCAiV2ViUHJvY2Vzc1NoaW0iICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsK
KwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJQ0RDMzgzMDMxNzIxMTc5OTAwOEEyRkMz
IC8qIERlYnVnICovLAorCQkJCUNEQzM4MzA0MTcyMTE3OTkwMDhBMkZDMyAvKiBSZWxlYXNlICov
LAorCQkJCUNEQzM4MzA1MTcyMTE3OTkwMDhBMkZDMyAvKiBQcm9kdWN0aW9uICovLAorCQkJKTsK
KwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1
cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCUUxM0E4QTRBMTYyODc5QUMwMDM5Mjky
OSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiU2hhcmVk
V29ya2VyUHJvY2VzcyIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJ
YnVpbGRDb25maWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4u
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nl
c3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tCmluZGV4IDNhYjEyZDAwZDc0Mzc3YjU2OTVhMDE4
ZGY3YmY3ZWViOWQ2MTVlY2UuLjU0OGQzNzU0MWRiODMzOWJlNDc3NDZlMjViMjMwZjFiMTgxY2Rm
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMv
TGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4ubW0KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9j
ZXNzTWFpbi5tbQpAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICAvLyBS
ZW1vdmUgdGhlIFdlYlByb2Nlc3Mgc2hpbSBmcm9tIHRoZSBEWUxEX0lOU0VSVF9MSUJSQVJJRVMg
ZW52aXJvbm1lbnQgdmFyaWFibGUgc28gYW55IHByb2Nlc3NlcyBzcGF3bmVkIGJ5CiAgICAgICAg
IC8vIHRoZSBXZWJQcm9jZXNzIGRvbid0IHRyeSB0byBpbnNlcnQgdGhlIHNoaW0gYW5kIGNyYXNo
LgotICAgICAgICBFbnZpcm9ubWVudFV0aWxpdGllczo6c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3Ry
aW5nKCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCAiL1NlY0l0ZW1TaGltLmR5bGliIik7CisgICAg
ICAgIEVudmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZ
TERfSU5TRVJUX0xJQlJBUklFUyIsICIvV2ViQ29udGVudFNoaW0uZHlsaWIiKTsKICAgICAKICNp
ZiBVU0UoQVBQS0lUKQogICAgICAgICBSdW5Mb29wOjpzZXRVc2VBcHBsaWNhdGlvblJ1bkxvb3BP
bk1haW5SdW5Mb29wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby5wbGlzdCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250
ZW50U2VydmljZS9JbmZvLnBsaXN0CmluZGV4IDBjMzNkNmNjMzFjZGZkYzdiNzRhNGE5Mjk4YTYx
N2E2ZTFlMDE5YjguLjkxYWE3NzQ1MWJkOTRlNGU1MTBjMmZlOTZhODAyNmE3MTZhYmZlYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vy
dmljZS9XZWJDb250ZW50U2VydmljZS9JbmZvLnBsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZv
LnBsaXN0CkBAIC00NSw3ICs0NSw3IEBACiAJCTxrZXk+RW52aXJvbm1lbnRWYXJpYWJsZXM8L2tl
eT4KIAkJPGRpY3Q+CiAJCQk8a2V5PkRZTERfSU5TRVJUX0xJQlJBUklFUzwva2V5PgotCQkJPHN0
cmluZz4kKFdFQktJVDJfRlJBTUVXT1JLU19ESVIpL1dlYktpdDIuZnJhbWV3b3JrL1dlYlByb2Nl
c3MuYXBwL0NvbnRlbnRzL01hY09TL1NlY0l0ZW1TaGltLmR5bGliPC9zdHJpbmc+CisJCQk8c3Ry
aW5nPiQoV0VCS0lUMl9GUkFNRVdPUktTX0RJUikvV2ViS2l0Mi5mcmFtZXdvcmsvV2ViUHJvY2Vz
cy5hcHAvQ29udGVudHMvTWFjT1MvV2ViQ29udGVudFNoaW0uZHlsaWI8L3N0cmluZz4KIAkJPC9k
aWN0PgogCTwvZGljdD4KIDwvZGljdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9p
bnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZp
Y2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCmluZGV4IDM0YWI4ZGFjMTMxNjNmOTEx
Mzk2ODEzYjU4YzM4OGEzZmE3MGE0ZjUuLjU4ODgwY2NhNTg4MmRmODBiZWMzZDViN2EzOTE2MmRi
NDg2ODlhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2lu
dC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRl
bnRTZXJ2aWNlRW50cnlQb2ludC5tbQpAQCAtNDIsNyArNDIsNyBAQCB2b2lkIFdlYkNvbnRlbnRT
ZXJ2aWNlSW5pdGlhbGl6ZXIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCB4cGNfb2JqZWN0
X3QgaW5pdAogewogICAgIC8vIFJlbW92ZSB0aGUgU2VjSXRlbVNoaW0gZnJvbSB0aGUgRFlMRF9J
TlNFUlRfTElCUkFSSUVTIGVudmlyb25tZW50IHZhcmlhYmxlIHNvIGFueSBwcm9jZXNzZXMgc3Bh
d25lZCBieQogICAgIC8vIHRoZSB0aGlzIHByb2Nlc3MgZG9uJ3QgdHJ5IHRvIGluc2VydCB0aGUg
c2hpbSBhbmQgY3Jhc2guCi0gICAgRW52aXJvbm1lbnRVdGlsaXRpZXM6OnN0cmlwVmFsdWVzRW5k
aW5nV2l0aFN0cmluZygiRFlMRF9JTlNFUlRfTElCUkFSSUVTIiwgIi9TZWNJdGVtU2hpbS5keWxp
YiIpOworICAgIEVudmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJp
bmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIvV2ViQ29udGVudFNoaW0uZHlsaWIiKTsKIAog
ICAgIFJ1bkxvb3A6OnNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3AoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMjRlZjhhYjJkMGI0
MmRkZTgzODhjNTEyNDMwZjg0YjFlZGQ1YzBiZS4uZTkyYzFiMDUwOWJlYWU0NDIzMDIzNTI2Yjdk
ZTUxYzFiNWYwYjk5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogCiAjaW5jbHVkZSAi
QXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiQ29va2llU3RvcmFnZVNoaW0uaCIK
ICNpbmNsdWRlICJFdmVudERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5o
IgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIKQEAgLTMzMyw2
ICszMzQsOSBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZQogI2lmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCiAgICAgbV91c2VzTmV0d29ya1Byb2Nlc3MgPSBwYXJhbWV0ZXJzLnVzZXNOZXR3b3Jr
UHJvY2VzczsKICAgICBlbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKworICAgIGlm
ICh1c2VzTmV0d29ya1Byb2Nlc3MoKSkKKyAgICAgICAgQ29va2llU3RvcmFnZVNoaW06OnNoYXJl
ZCgpLmluaXRpYWxpemUoKTsKICNlbmRpZgogICAgIHNldFRlcm1pbmF0aW9uVGltZW91dChwYXJh
bWV0ZXJzLnRlcm1pbmF0aW9uVGltZW91dCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198858</attachid>
            <date>2013-04-19 08:49:36 -0700</date>
            <delta_ts>2013-04-19 11:00:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114858-20130419084907.patch</filename>
            <type>text/plain</type>
            <size>36189</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NzIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2FlOWRlMjIzMWZjNWEz
NzRjMGE2YjBhZDgwNWVjZjEyNjczZDFiMy4uZGVkYTIzZTg3MzcwNWVlZThiNGM4MGE2YTk5NjUy
MTJlMmQ5OTk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEzLTA0LTE5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFdXREMgc2Vzc2lvbiB2aWRl
b3MgZG9u4oCZdCBwbGF5IGF0IGRldmVsb3Blci5hcHBsZS5jb20KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDg1OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFWRm91bmRhdGlvbiB1c2VzIENGTmV0d29y
ayB0byBzdG9yZSBhbmQgcmV0cmlldmUgY29va2llcyBmcm9tIHRoZSBnbG9iYWwgc3RvcmUuCisg
ICAgICAgIEhvd2V2ZXIsIGluIHRoZSBjYXNlIHdoZXJlIG5ldHdvcmsgYWNjZXNzIGhhcHBlbnMg
aW4gdGhlIE5ldHdvcmtQcm9jZXNzLCBzZXNzaW9uCisgICAgICAgIGNvb2tpZXMgYXJlIHN0b3Jl
ZCBpbi1tZW1vcnksIGFuZCBhcmUgbm90IGFjY2Vzc2FibGUgaW4gdGhlIFdlYlByb2Nlc3MuIFVu
dGlsIHN1Y2gKKyAgICAgICAgYSB0aW1lIGFzIEFWRm91bmRhdGlvbiBjYW4gcHJvdmlkZSBhbiBB
UEkgd2hpY2ggd291bGQgYWxsb3cgdXMgdG8gcHJvdmlkZSBjb29raWVzCisgICAgICAgIGZvciBh
IHNwZWNpZmljIHJlcXVlc3QsIHdlIHdpbGwgaW50ZXJwb3NlIHRoZSBDRk5ldHdvcmsgbWV0aG9k
IHdoaWNoIHRoZXkgdXNlIHRvCisgICAgICAgIHJldHJpZXZlIHRoZSBjb29raWUgc3RyaW5nIGZy
b20gdGhlIGNvb2tpZSBzdG9yZSBmb3IgdGhlaXIgcGVuZGluZyByZXF1ZXN0LgorCisgICAgICAg
IER1cGxpY2F0ZSB0aGUgcHJldmlvdXMgU2VjSXRlbVNoaW0gdGFyZ2V0IHRvIGEgbmV3LCBXZWJQ
cm9jZXNzU2hpbSB0YXJnZXQuIFRoaXMKKyAgICAgICAgdGFyZ2V0IGluY2x1ZGVzIHRoZSBTZWNJ
dGVtU2hpbSBmdW5jdGlvbmFsaXR5LCBidXQgd2lsbCBhZGQgYSBuZXcgc2hpbSBmb3IgY29va2ll
CisgICAgICAgIHJldHJpZXZhbDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VT
aGltTGlicmFyeS5oOiBBZGRlZAorICAgICAgICAoQ29va2llU3RvcmFnZVNoaW1DYWxsYmFja3Mp
OgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlNoaW1Qcm90ZWN0b3I6OlNoaW1Qcm90ZWN0b3IpOiBBIHNp
bXBsZSBzdGFjay1iYXNlZCBjb3VudGVyIGNsYXNzLgorICAgICAgICAoV2ViS2l0OjpTaGltUHJv
dGVjdG9yOjp+U2hpbVByb3RlY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OlNoaW1Qcm90ZWN0b3I6
OmNvdW50KToKKyAgICAgICAgKFdlYktpdDo6c2hpbUNGSFRUUENvb2tpZVN0b3JhZ2VDb3B5UmVx
dWVzdEhlYWRlckZpZWxkc0ZvclVSTCk6IEludGVycG9zZQorICAgICAgICAgICAgdGhlIENGTmV0
d29yayBjYWxsLCBhbmQgcGFzcyB0byB0aGUgcmVnaXN0ZXJlZCBjYWxsYmFjay4KKyAgICAgICAg
KFdlYktpdDo6V2ViS2l0Q29va2llU3RvcmFnZVNoaW1Jbml0aWFsaXplKTogUmVnaXN0ZXIgdGhl
IGNhbGxiYWNrcy4KKworICAgICAgICBBZGQgYSBoZWxwZXIgc2luZ2xldG9uIGNsYXNzIHdoaWNo
IHdpbGwgdGFsayB0byB0aGUgc2hpbSB0aHJvdWdoIHRoZSAKKyAgICAgICAgcmVnaXN0ZXJlZCBj
YWxsYmFja3M6CisgICAgICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5oOiBBZGRl
ZAorICAgICAgICAoV2ViS2l0OjpDb29raWVTdG9yYWdlU2hpbTo6Q29va2llU3RvcmFnZVNoaW0p
OgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0uY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6d2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRz
Rm9yVVJMKTogUGFzcyB0aGUgcmVxdWVzdAorICAgICAgICAgICAgb3ZlciB0byB0aGUgTmV0d29y
a1Byb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OkNvb2tpZVN0b3JhZ2VTaGltOjpzaGFyZWQpOiBT
aW1wbGUgc2luZ2xldG9uLgorICAgICAgICAoV2ViS2l0OjpDb29raWVTdG9yYWdlU2hpbTo6aW5p
dGlhbGl6ZSk6IENhbGwgdGhlIGxpYnJhcnkgaW5pdGlhbGl6ZXIuCisKKyAgICAgICAgSW5pdGlh
bGl6ZSB0aGUgc2hpbSBvbmx5IHdoZW4gdGhlIFdlYlByb2Nlc3MgaXMgZGVsZWdhdGluZyBuZXR3
b3JrIGxvYWRpbmcKKyAgICAgICAgdG8gdGhlIE5ldHdvcmtQcm9jZXNzOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6Omlu
aXRpYWxpemVXZWJQcm9jZXNzKToKKworICAgICAgICBSZW5hbWUgdGhlIFdlYlByb2Nlc3MncyBz
aGltIGZyb20gU2VjSXRlbVNoaW0gLT4gV2ViUHJvY2Vzc1NoaW06CisgICAgICAgICogVUlQcm9j
ZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6
OmFkZERZTERFbnZpcm9ubWVudEFkZGl0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29udGVudFByb2Nlc3NNYWluRGVsZWdhdGU6OmRvUHJlSW5pdGlhbGl6
YXRpb25Xb3JrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZp
Y2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby5wbGlzdDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tOgor
ICAgICAgICAoV2ViQ29udGVudFNlcnZpY2VJbml0aWFsaXplcik6CisKKyAgICAgICAgQWRkIG5l
dyBmaWxlcyB0byB0aGUgcHJvamVjdDoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisKIDIwMTMtMDQtMTggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUERGUGx1Z2luOiBVcGRhdGUgUERGTGF5ZXJDb250cm9sbGVy
J3Mgc2NhbGUgZmFjdG9ycyBlYXJsaWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
Q29va2llU3RvcmFnZVNoaW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzNTFhMWYyMjNkMjAxOGQ0MmUxZDM4
NDZlZmRhYTI2MTBiYzBhMWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2VTaGltLmgiCisK
KyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisjaW5jbHVkZSAiQ29va2llU3RvcmFnZVNo
aW1MaWJyYXJ5LmgiCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIK
KyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9LVVJMLmg+CisjaW5jbHVkZSA8ZGxmY24uaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHdlYktpdENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVz
dEhlYWRlckZpZWxkc0ZvclVSTChDRkhUVFBDb29raWVTdG9yYWdlUmVmIGluQ29va2llU3RvcmFn
ZSwgQ0ZVUkxSZWYgaW5SZXF1ZXN0VVJMKQoreworICAgIFN0cmluZyBjb29raWVzOworICAgIEtV
UkwgZmlyc3RQYXJ0eVVSTDsKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtD
b25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRm9yRE9NKGZhbHNlLCBmaXJzdFBhcnR5VVJMLCBp
blJlcXVlc3RVUkwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNv
b2tpZXNGb3JET006OlJlcGx5KGNvb2tpZXMpLCAwKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNmQ29va2llcyA9IGNvb2tpZXMuY3JlYXRlQ0ZTdHJp
bmcoKTsKKyAgICBzdGF0aWMgY29uc3Qgdm9pZCogY29va2llS2V5c1tdID0geyBDRlNUUigiQ29v
a2llIikgfTsKKyAgICBjb25zdCB2b2lkKiBjb29raWVWYWx1ZXNbXSA9IHsgY2ZDb29raWVzLmdl
dCgpIH07CisgICAgcmV0dXJuIENGRGljdGlvbmFyeUNyZWF0ZSgwLCBjb29raWVLZXlzLCBjb29r
aWVWYWx1ZXMsIDEsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0
aW9uYXJ5VmFsdWVDYWxsQmFja3MpOworfQorCitDb29raWVTdG9yYWdlU2hpbSYgQ29va2llU3Rv
cmFnZVNoaW06OnNoYXJlZCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChDb29raWVTdG9y
YWdlU2hpbSwgc3RvcmFnZSwgKCkpOworICAgIHJldHVybiBzdG9yYWdlOworfQorCit2b2lkIENv
b2tpZVN0b3JhZ2VTaGltOjppbml0aWFsaXplKCkKK3sKKyAgICBDb29raWVTdG9yYWdlU2hpbUNh
bGxiYWNrcyBjYWxsYmFja3MgPSB7ICZ3ZWJLaXRDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFk
ZXJGaWVsZHNGb3JVUkwgfTsKKyAgICBDb29raWVTdG9yYWdlU2hpbUluaXRpYWxpemVGdW5jIGZ1
bmMgPSByZWludGVycHJldF9jYXN0PENvb2tpZVN0b3JhZ2VTaGltSW5pdGlhbGl6ZUZ1bmM+KGRs
c3ltKFJUTERfREVGQVVMVCwgIldlYktpdENvb2tpZVN0b3JhZ2VTaGltSW5pdGlhbGl6ZSIpKTsK
KyAgICBpZiAoZnVuYykKKyAgICAgICAgZnVuYyhjYWxsYmFja3MpOworfQorCit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9Db29raWVTdG9yYWdlU2hpbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMzE0MWI3OGYxNTlhZmZjMjA1YmU5
NGYyYTU0YWYxOGM3YmQ2NzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgQ29va2llU3RvcmFnZVNoaW1faAorI2RlZmluZSBDb29raWVTdG9yYWdlU2hpbV9o
CisKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBDb29raWVTdG9yYWdlU2hpbSB7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29va2llU3RvcmFnZVNoaW0pOworcHVibGljOgor
ICAgIHN0YXRpYyBDb29raWVTdG9yYWdlU2hpbSYgc2hhcmVkKCk7CisKKyAgICB2b2lkIGluaXRp
YWxpemUoKTsKKworcHJpdmF0ZToKKyAgICBDb29raWVTdG9yYWdlU2hpbSgpIHsgfTsKK307CisK
K30KKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNlbmRpZiAvLyBDb29r
aWVTdG9yYWdlU2hpbV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nv
b2tpZVN0b3JhZ2VTaGltTGlicmFyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nv
b2tpZVN0b3JhZ2VTaGltTGlicmFyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzkzM2VmYjk5ZjQ3NDg5OTU4
ZjNhNTViNTg2MGFmOGI4MzJmNmNlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcApAQCAtMCwwICsxLDg4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvb2tpZVN0b3Jh
Z2VTaGltTGlicmFyeS5oIgorCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKworZXh0ZXJu
ICJDIiBDRkRpY3Rpb25hcnlSZWYgX0NGSFRUUENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRl
ckZpZWxkc0ZvclVSTChDRkFsbG9jYXRvclJlZiBpbkFsbG9jYXRvciwgQ0ZIVFRQQ29va2llU3Rv
cmFnZVJlZiBpbkNvb2tpZVN0b3JhZ2UsIENGVVJMUmVmIGluUmVxdWVzdFVSTCk7CisKKyNkZWZp
bmUgRFlMRF9JTlRFUlBPU0UoX3JlcGxhY2VtZW50LCBfcmVwbGFjZWUpIFwKK19fYXR0cmlidXRl
X18oKHVzZWQpKSBzdGF0aWMgc3RydWN0IHsgY29uc3Qgdm9pZCogcmVwbGFjZW1lbnQ7IGNvbnN0
IHZvaWQqIHJlcGxhY2VlOyB9IF9pbnRlcnBvc2VfIyNfcmVwbGFjZWUgXAorX19hdHRyaWJ1dGVf
XyAoKHNlY3Rpb24gKCJfX0RBVEEsX19pbnRlcnBvc2UiKSkpID0geyAoY29uc3Qgdm9pZCopKHVu
c2lnbmVkIGxvbmcpJl9yZXBsYWNlbWVudCwgKGNvbnN0IHZvaWQqKSh1bnNpZ25lZCBsb25nKSZf
cmVwbGFjZWUgfTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2V4dGVybiAiQyIgdm9pZCBXZWJL
aXRDb29raWVTdG9yYWdlU2hpbUluaXRpYWxpemUoY29uc3QgQ29va2llU3RvcmFnZVNoaW1DYWxs
YmFja3MmKTsKKworc3RhdGljIENvb2tpZVN0b3JhZ2VTaGltQ2FsbGJhY2tzIGNvb2tpZVN0b3Jh
Z2VTaGltQ2FsbGJhY2tzOworCitjbGFzcyBTaGltUHJvdGVjdG9yIHsKK3B1YmxpYzoKKyAgICBT
aGltUHJvdGVjdG9yKCkgeyArK21fY291bnQ7IH0KKyAgICB+U2hpbVByb3RlY3RvcigpIHsgLS1t
X2NvdW50OyB9CisgICAgc3RhdGljIHVuc2lnbmVkIGNvdW50KCkgeyByZXR1cm4gbV9jb3VudDsg
fQorcHJpdmF0ZToKKyAgICBzdGF0aWMgdW5zaWduZWQgbV9jb3VudDsKK307CisKK3Vuc2lnbmVk
IFNoaW1Qcm90ZWN0b3I6Om1fY291bnQgPSAwOworCitzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHNo
aW1DRkhUVFBDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwoQ0ZBbGxv
Y2F0b3JSZWYgaW5BbGxvY2F0b3IsIENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgaW5Db29raWVTdG9y
YWdlLCBDRlVSTFJlZiBpblJlcXVlc3RVUkwpCit7CisgICAgU2hpbVByb3RlY3RvciBwcm90ZWN0
b3I7CisKKyAgICBkbyB7CisgICAgICAgIC8vIFByb3RlY3QgYWdhaW5zdCB1bmluaXRpYWxpemVk
IGNhbGxiYWNrczoKKyAgICAgICAgaWYgKCFjb29raWVTdG9yYWdlU2hpbUNhbGxiYWNrcy5jb29r
aWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwpCisgICAgICAgICAgICBicmVh
azsKKworICAgICAgICAvLyBQcm90ZWN0IGFnYWluc3QgYWNjaWRlbnRhbCByZWN1cnNpb246Cisg
ICAgICAgIGlmIChTaGltUHJvdGVjdG9yOjpjb3VudCgpID4gMSkKKyAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgIENGRGljdGlvbmFyeVJlZiByZXN1bHRzID0gY29va2llU3RvcmFnZVNoaW1D
YWxsYmFja3MuY29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKGluQ29v
a2llU3RvcmFnZSwgaW5SZXF1ZXN0VVJMKTsKKyAgICAgICAgaWYgKCFyZXN1bHRzKQorICAgICAg
ICAgICAgYnJlYWs7CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdHM7CisgICAgfSB3aGlsZSAoMCk7
CisKKyAgICAvLyBJZiB3ZSd2ZSBmYWlsZWQgdG8gcmV0cmlldmUgdGhlIGNvb2tpZXMgbWFudWFs
bHksIGZhbGwgYmFjayB0byB0aGUgb3JpZ2luYWwgaW1wb3NlZCBmdW5jdGlvbjoKKyAgICByZXR1
cm4gX0NGSFRUUENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0ZvclVSTChpbkFs
bG9jYXRvciwgaW5Db29raWVTdG9yYWdlLCBpblJlcXVlc3RVUkwpOworfQorCitEWUxEX0lOVEVS
UE9TRShzaGltQ0ZIVFRQQ29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJM
LCBfQ0ZIVFRQQ29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKTsKKwor
X19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKK3ZvaWQgV2ViS2l0Q29va2ll
U3RvcmFnZVNoaW1Jbml0aWFsaXplKGNvbnN0IENvb2tpZVN0b3JhZ2VTaGltQ2FsbGJhY2tzJiBj
YWxsYmFja3MpCit7CisgICAgY29va2llU3RvcmFnZVNoaW1DYWxsYmFja3MgPSBjYWxsYmFja3M7
Cit9CisgICAgCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbUxpYnJhcnku
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjBmMGEyZmMzODY5ODUwZWVhNTUwOTE1MmI0ZTAyMjIzNmFhZWRhZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNo
aW1MaWJyYXJ5LmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29va2ll
U3RvcmFnZVNoaW1MaWJyYXJ5X2gKKyNkZWZpbmUgQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5X2gK
KworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKK3R5cGVkZWYgc3RydWN0IE9wYXF1ZUNG
SFRUUENvb2tpZVN0b3JhZ2UqICBDRkhUVFBDb29raWVTdG9yYWdlUmVmOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworc3RydWN0IENvb2tpZVN0b3JhZ2VTaGltQ2FsbGJhY2tzIHsKKyAgICBDRkRp
Y3Rpb25hcnlSZWYgKCpjb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwp
KENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgaW5Db29raWVTdG9yYWdlLCBDRlVSTFJlZiBpblJlcXVl
c3RVUkwpOworfTsKKwordHlwZWRlZiB2b2lkICgqQ29va2llU3RvcmFnZVNoaW1Jbml0aWFsaXpl
RnVuYykoY29uc3QgQ29va2llU3RvcmFnZVNoaW1DYWxsYmFja3MmIGNhbGxiYWNrcyk7CisKK30K
KworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNlbmRpZiAvLyBDb29raWVT
dG9yYWdlU2hpbUxpYnJhcnlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRleCA3YjJlZGM4YWM2
NzFmZTFmZTc4YTI0NDIxNjVlZjUwMzU0ZWMxZTYwLi5kYjdjMDg0ZTQ1YTUyOTU0NWIzNzE3NzJh
MDNkNzU1OTcyODRjZmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMTIxLDcgKzEyMSw3
IEBAIHN0YXRpYyB2b2lkIGFkZERZTERFbnZpcm9ubWVudEFkZGl0aW9ucyhjb25zdCBQcm9jZXNz
TGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhCiAgICAgICAgIE5TU3RyaW5nICpwcm9jZXNzUGF0
aCA9IFt3ZWJLaXQyQnVuZGxlIHBhdGhGb3JBdXhpbGlhcnlFeGVjdXRhYmxlOkAiV2ViUHJvY2Vz
cy5hcHAiXTsKICAgICAgICAgTlNTdHJpbmcgKnByb2Nlc3NBcHBFeGVjdXRhYmxlUGF0aCA9IFtb
TlNCdW5kbGUgYnVuZGxlV2l0aFBhdGg6cHJvY2Vzc1BhdGhdIGV4ZWN1dGFibGVQYXRoXTsKIAot
ICAgICAgICBwcm9jZXNzU2hpbVBhdGhOU1N0cmluZyA9IFtbcHJvY2Vzc0FwcEV4ZWN1dGFibGVQ
YXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF0gc3RyaW5nQnlBcHBlbmRpbmdQ
YXRoQ29tcG9uZW50OkAiU2VjSXRlbVNoaW0uZHlsaWIiXTsKKyAgICAgICAgcHJvY2Vzc1NoaW1Q
YXRoTlNTdHJpbmcgPSBbW3Byb2Nlc3NBcHBFeGVjdXRhYmxlUGF0aCBzdHJpbmdCeURlbGV0aW5n
TGFzdFBhdGhDb21wb25lbnRdIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYlBy
b2Nlc3NTaGltLmR5bGliIl07CiAgICAgfSBlbHNlIGlmIChsYXVuY2hPcHRpb25zLnByb2Nlc3NU
eXBlID09IFByb2Nlc3NMYXVuY2hlcjo6TmV0d29ya1Byb2Nlc3MpIHsKICAgICAgICAgTlNTdHJp
bmcgKnByb2Nlc3NQYXRoID0gW3dlYktpdDJCdW5kbGUgcGF0aEZvckF1eGlsaWFyeUV4ZWN1dGFi
bGU6QCJOZXR3b3JrUHJvY2Vzcy5hcHAiXTsKICAgICAgICAgTlNTdHJpbmcgKnByb2Nlc3NBcHBF
eGVjdXRhYmxlUGF0aCA9IFtbTlNCdW5kbGUgYnVuZGxlV2l0aFBhdGg6cHJvY2Vzc1BhdGhdIGV4
ZWN1dGFibGVQYXRoXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA4ZmFkM2Q4YzU4MWI1YzJhNTEzM2M3YjViODVlNDE1MjIyNTI1
ZmJhLi4zNTgyZWM3YmQzMmM4YjI2ZWQyMGJlYTg4ZThlZGEzOWU0YTM1MTVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00ODgs
NyArNDg4LDYgQEAKIAkJNTE4MjlEQTYxNjM3QzcwQzAwMDk1M0Q2IC8qIE5ldHdvcmtSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxODI5REE0MTYzN0M3MEMwMDA5NTNENiAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmggKi87IH07CiAJCTUxODM0NTkyMTM0NTMyRTkwMDkyQjY5NiAvKiBXZWJJY29uRGF0
YWJhc2VDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE4MzQ1OTAxMzQ1MzJFODAwOTJCNjk2IC8qIFdlYkljb25EYXRhYmFzZUNsaWVudC5j
cHAgKi87IH07CiAJCTUxODM0NTkzMTM0NTMyRTkwMDkyQjY5NiAvKiBXZWJJY29uRGF0YWJhc2VD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
ODM0NTkxMTM0NTMyRTgwMDkyQjY5NiAvKiBXZWJJY29uRGF0YWJhc2VDbGllbnQuaCAqLzsgfTsK
LQkJNTE4M0IzOTIxMzc5RjdCODAwRTg3NTRFIC8qIFNlY0l0ZW1TaGltLmR5bGliIGluIENvcHkg
U2VjIEl0ZW0gU2hpbSAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAwMzFG
NjEzNzlDQUNCMDBDOERGRTQgLyogU2VjSXRlbVNoaW0uZHlsaWIgKi87IH07CiAJCTUxODNEREVD
MTYzMEJERkMwMDhCRTVDNyAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwNUIwRDQxNjJGN0E3QTAw
RTI3NzA5IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi87IH07CiAJCTUxODcxQjVC
MTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg3MUI1OTEyN0NCODlEMDBGNzYyMzIgLyog
V2ViQ29udGV4dE1lbnUuY3BwICovOyB9OwogCQk1MTg3MUI1QzEyN0NCODlEMDBGNzYyMzIgLyog
V2ViQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxODcxQjVBMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oICovOyB9
OwpAQCAtMTA4Nyw2ICsxMDg2LDEzIEBACiAJCUNENzNCQTQ3MTMxQUNDOUEwMEVFREVEMiAvKiBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzNCQTQ1MTMxQUNDODgwMEVFREVE
MiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJQ0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENzNCQTQ4MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUNENzNCQTUzMTMxQjY0NUIwMEVFREVEMiAvKiBXZWJG
dWxsU2NyZWVuTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDczQkEzNzEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFn
ZXIuY3BwICovOyB9OworCQlDREMzODJGRTE3MjExNzk5MDA4QTJGQzMgLyogU2VjSXRlbVNoaW1M
aWJyYXJ5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTExRjhBNzgxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5tbSAqLzsgfTsK
KwkJQ0RDMzgzMDAxNzIxMTc5OTAwOEEyRkMzIC8qIENGTmV0d29yay5mcmFtZXdvcmsgaW4gRnJh
bWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREMzODJGNzE3MjEx
NTA2MDA4QTJGQzMgLyogQ0ZOZXR3b3JrLmZyYW1ld29yayAqLzsgfTsKKwkJQ0RDMzgzMDExNzIx
MTc5OTAwOEEyRkMzIC8qIFNlY3VyaXR5LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjUwNjg0MTI0MzE4NjEwMDU5NTVBRSAvKiBT
ZWN1cml0eS5mcmFtZXdvcmsgKi87IH07CisJCUNEQzM4MzA3MTcyMTE3REQwMDhBMkZDMyAvKiBD
b29raWVTdG9yYWdlU2hpbUxpYnJhcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RDMzgyRjkxNzIxMTZEMzAwOEEyRkMzIC8qIENvb2tpZVN0b3Jh
Z2VTaGltTGlicmFyeS5jcHAgKi87IH07CisJCUNEQzM4MzA4MTcyMTE4OTAwMDhBMkZDMyAvKiBX
ZWJQcm9jZXNzU2hpbS5keWxpYiBpbiBDb3B5IFdlYlByb2Nlc3NTaGltICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzM4MzA2MTcyMTE3OTkwMDhBMkZDMyAvKiBXZWJQcm9j
ZXNzU2hpbS5keWxpYiAqLzsgfTsKKwkJQ0RDMzgzMEMxNzIxMjI4MjAwOEEyRkMzIC8qIENvb2tp
ZVN0b3JhZ2VTaGltTGlicmFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RDMzgzMEIxNzIxMjFDRTAwOEEyRkMzIC8qIENvb2tpZVN0b3JhZ2VTaGlt
TGlicmFyeS5oICovOyB9OworCQlDREMzODMxMDE3MjEyNDQwMDA4QTJGQzMgLyogQ29va2llU3Rv
cmFnZVNoaW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0RDMzgzMEQxNzIxMjQyRDAwOEEyRkMzIC8qIENvb2tpZVN0b3JhZ2VTaGltLmNwcCAqLzsg
fTsKIAkJQ0RDQTg1QzgxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RENBODVDNjEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5t
bSAqLzsgfTsKIAkJQ0RDQTg1QzkxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENEQ0E4NUM3MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyLmggKi87IH07CiAJCUNEQ0E4NUVFMTMyQUQ3MDEwMEU5NjFERiAvKiBXZWJGdWxsU2NyZWVu
TWFuYWdlclByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RDQTg1REUxMzJBRDA1MzAwRTk2MURGIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlNYWMubW0gKi87IH07CkBAIC0xMjE4LDEzICsxMjI0LDYgQEAKIAkJCXJlbW90ZUdsb2Jh
bElEU3RyaW5nID0gOERDMkVGNEYwNDg2QTY5NDAwOThCMjE2OwogCQkJcmVtb3RlSW5mbyA9IFdl
YktpdDI7CiAJCX07Ci0JCTUxODNCMzhEMTM3OUY1NDYwMEU4NzU0RSAvKiBQQlhDb250YWluZXJJ
dGVtUHJveHkgKi8gPSB7Ci0JCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7Ci0JCQljb250
YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3Qg
Ki87Ci0JCQlwcm94eVR5cGUgPSAxOwotCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA1MTAwMzFF
QTEzNzlDQUNCMDBDOERGRTQ7Ci0JCQlyZW1vdGVJbmZvID0gU2VjSXRlbVNoaW07Ci0JCX07CiAJ
CUJDNzdGOTU1MTZEMDQ1OTEwMEY4Rjc4QSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7
CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CiAJCQljb250YWluZXJQb3J0YWwgPSAw
ODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87CkBAIC0xMzIzLDYg
KzEzMjIsMTMgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gQkNERTA5MzMxMzI3MjQ5NjAw
MTI1OUZCOwogCQkJcmVtb3RlSW5mbyA9ICJQbHVnaW4gUHJvY2VzcyI7CiAJCX07CisJCUNEQzM4
MzA5MTcyMTFBQkUwMDhBMkZDMyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CisJCQlp
c2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJCQljb250YWluZXJQb3J0YWwgPSAwODY3RDY5
MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87CisJCQlwcm94eVR5cGUgPSAx
OworCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSBDREMzODJGQjE3MjExNzk5MDA4QTJGQzM7CisJ
CQlyZW1vdGVJbmZvID0gV2ViUHJvY2Vzc1NoaW07CisJCX07CiAJCUUxM0E4QTRDMTYyODdBNUIw
MDM5MjkyOSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb250
YWluZXJJdGVtUHJveHk7CiAJCQljb250YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAy
QUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87CkBAIC0xMzUzLDE1ICsxMzU5LDE1IEBACiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07Ci0JCTUx
ODNCMzhGMTM3OUY1NjgwMEU4NzU0RSAvKiBDb3B5IFNlYyBJdGVtIFNoaW0gKi8gPSB7CisJCTUx
ODNCMzhGMTM3OUY1NjgwMEU4NzU0RSAvKiBDb3B5IFdlYlByb2Nlc3NTaGltICovID0gewogCQkJ
aXNhID0gUEJYQ29weUZpbGVzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0
ODM2NDc7CiAJCQlkc3RQYXRoID0gV2ViUHJvY2Vzcy5hcHAvQ29udGVudHMvTWFjT1M7CiAJCQlk
c3RTdWJmb2xkZXJTcGVjID0gMTY7CiAJCQlmaWxlcyA9ICgKLQkJCQk1MTgzQjM5MjEzNzlGN0I4
MDBFODc1NEUgLyogU2VjSXRlbVNoaW0uZHlsaWIgaW4gQ29weSBTZWMgSXRlbSBTaGltICovLAor
CQkJCUNEQzM4MzA4MTcyMTE4OTAwMDhBMkZDMyAvKiBXZWJQcm9jZXNzU2hpbS5keWxpYiBpbiBD
b3B5IFdlYlByb2Nlc3NTaGltICovLAogCQkJKTsKLQkJCW5hbWUgPSAiQ29weSBTZWMgSXRlbSBT
aGltIjsKKwkJCW5hbWUgPSAiQ29weSBXZWJQcm9jZXNzU2hpbSI7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKIAkJNUQxQTIzOTAxNUU3NUIxMDAwMjNF
OTgxIC8qIENvcHkgTWVzc2FnZSBHZW5lcmF0aW9uIFNjcmlwdHMgKi8gPSB7CkBAIC0yNTQ3LDYg
KzI1NTMsMTIgQEAKIAkJQ0Q3M0JBNDgxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JBNDkxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDczQkE0QTEzMUFDRDhGMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
REMzODJGNzE3MjExNTA2MDA4QTJGQzMgLyogQ0ZOZXR3b3JrLmZyYW1ld29yayAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3Jr
OyBuYW1lID0gQ0ZOZXR3b3JrLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0NGTmV0d29yay5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07
CisJCUNEQzM4MkY5MTcyMTE2RDMwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDMzgzMDYxNzIxMTc5OTAwOEEyRkMzIC8qIFdl
YlByb2Nlc3NTaGltLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gV2ViUHJvY2Vzc1NoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CisJCUNEQzM4MzBCMTcyMTIxQ0UwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxp
YnJhcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQzM4MzBEMTcyMTI0MkQwMDhBMkZDMyAvKiBDb29r
aWVTdG9yYWdlU2hpbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
b29raWVTdG9yYWdlU2hpbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQzM4
MzBFMTcyMTI0MkQwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWVTdG9yYWdlU2hpbS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRENBODVDNjEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNEQ0E4NUM3MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTg1RDQx
MzJBQzJCMzAwRTk2MURGIC8qIElPS2l0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gSU9L
aXQuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvSU9LaXQuZnJh
bWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwpAQCAtMjc4Nyw2ICsyNzk5LDE1
IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CisJCUNEQzM4MkZGMTcyMTE3OTkwMDhBMkZDMyAvKiBGcmFtZXdvcmtzICovID0geworCQkJ
aXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJQ0RDMzgzMDAxNzIxMTc5OTAwOEEyRkMzIC8qIENG
TmV0d29yay5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQlDREMzODMwMTE3MjExNzk5
MDA4QTJGQzMgLyogU2VjdXJpdHkuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCisJCQkpOwor
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCUUxM0E4
QTI5MTYyODc5QUMwMDM5MjkyOSAvKiBGcmFtZXdvcmtzICovID0gewogCQkJaXNhID0gUEJYRnJh
bWV3b3Jrc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAt
MjgxOCw2ICsyODM5LDcgQEAKIAkJCQlCQ0FGMzU5QTE2Q0ExRDU3MDBENEU5RkMgLyogT2ZmbGlu
ZVN0b3JhZ2VQcm9jZXNzLmFwcCAqLywKIAkJCQlCQ0FGMzVGMTE2Q0EyNjM4MDBENEU5RkMgLyog
Y29tLmFwcGxlLldlYktpdC5PZmZsaW5lU3RvcmFnZS54cGMgKi8sCiAJCQkJQkNBRjM2MDQxNkNB
MjY2OTAwRDRFOUZDIC8qIGNvbS5hcHBsZS5XZWJLaXQuT2ZmbGluZVN0b3JhZ2UuRGV2ZWxvcG1l
bnQueHBjICovLAorCQkJCUNEQzM4MzA2MTcyMTE3OTkwMDhBMkZDMyAvKiBXZWJQcm9jZXNzU2hp
bS5keWxpYiAqLywKIAkJCSk7CiAJCQluYW1lID0gUHJvZHVjdHM7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtMjg3Nyw2ICsyODk5LDcgQEAKIAkJMTA1OEM3QjBGRUE1NTg1RTExQ0Ey
Q0JCIC8qIExpbmtlZCBGcmFtZXdvcmtzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQlDREMzODJGNzE3MjExNTA2MDA4QTJGQzMgLyogQ0ZOZXR3b3JrLmZy
YW1ld29yayAqLywKIAkJCQkwODY3RDZBNUZFODQwMzA3QzAyQUFDMDcgLyogQXBwS2l0LmZyYW1l
d29yayAqLywKIAkJCQkxQUFERTZGRTEwRDg1NUZDMDBEM0Q2M0QgLyogQXBwbGljYXRpb25TZXJ2
aWNlcy5mcmFtZXdvcmsgKi8sCiAJCQkJMUFBMUNEMDYxMDBGQTFCQTAwNzhERUJDIC8qIENhcmJv
bi5mcmFtZXdvcmsgKi8sCkBAIC00MjIzLDYgKzQyNDYsMTAgQEAKIAkJCQk5MDU2MjBFNTEyQkMy
NDc2MDAwNzk5QjYgLyogV2ViTWVtb3J5U2FtcGxlci5tYWMubW0gKi8sCiAJCQkJQkNFMjMxQzAx
MjJDNDY2RTAwRDVDMzVBIC8qIFdlYlVSTFJlcXVlc3RNYWMubW0gKi8sCiAJCQkJQkM5MEExRDUx
MjJERDY2QTAwQ0M4QzUwIC8qIFdlYlVSTFJlc3BvbnNlTWFjLm1tICovLAorCQkJCUNEQzM4MkY5
MTcyMTE2RDMwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuY3BwICovLAorCQkJ
CUNEQzM4MzBCMTcyMTIxQ0UwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCAq
LywKKwkJCQlDREMzODMwRDE3MjEyNDJEMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW0uY3Bw
ICovLAorCQkJCUNEQzM4MzBFMTcyMTI0MkQwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbS5o
ICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtNTI5Miw2ICs1MzE5LDcgQEAKIAkJCQkxQThFRjRDQjEyNTI0MDM3MDBGNzA2N0YgLyogUGx1
Z2luQ29udHJvbGxlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThFRjk2RjEyNTJBRjZC
MDBGNzA2N0YgLyogUGx1Z2luQ29udHJvbGxlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBMTc5NzgwMTM3RUU4MkMwMEY5N0Q0NSAvKiBQbHVnaW5DcmVhdGlvblBhcmFtZXRl
cnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEQzM4MzBDMTcyMTIyODIwMDhBMkZDMyAvKiBDb29r
aWVTdG9yYWdlU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRUZDQzEyMTFEMDFG
OTYwMDgyMTlEMyAvKiBQbHVnaW5JbmZvU3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBM0Q2
MTAyMTNBN0NDMkEwMEY5NUQ0RSAvKiBQbHVnaW5Nb2R1bGVJbmZvLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQTA0Mzk3NjEyNEQwMzQ4MDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzcy5oIGluIEhlYWRl
cnMgKi8sCkBAIC01Njc3LDYgKzU3MDUsMTMgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJQ0RDMzgyRkMxNzIxMTc5OTAwOEEyRkMz
IC8qIEhlYWRlcnMgKi8gPSB7CisJCQlpc2EgPSBQQlhIZWFkZXJzQnVpbGRQaGFzZTsKKwkJCWJ1
aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIC8qIEVuZCBQQlhIZWFk
ZXJzQnVpbGRQaGFzZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWE5hdGl2ZVRhcmdldCBzZWN0
aW9uICovCkBAIC01Njg2LDEzICs1NzIxLDEzIEBACiAJCQlidWlsZFBoYXNlcyA9ICgKIAkJCQkx
QTUwREIxQTExMEEzQkRDMDAwRDNGRTUgLyogUmVzb3VyY2VzICovLAogCQkJCTFBNTBEQjFCMTEw
QTNCREMwMDBEM0ZFNSAvKiBTb3VyY2VzICovLAotCQkJCTUxODNCMzhGMTM3OUY1NjgwMEU4NzU0
RSAvKiBDb3B5IFNlYyBJdGVtIFNoaW0gKi8sCisJCQkJNTE4M0IzOEYxMzc5RjU2ODAwRTg3NTRF
IC8qIENvcHkgV2ViUHJvY2Vzc1NoaW0gKi8sCiAJCQkJQkM1RDI0QjAxNkNDM0YyODAwN0Q1NDYx
IC8qIEZyYW1ld29ya3MgKi8sCiAJCQkpOwogCQkJYnVpbGRSdWxlcyA9ICgKIAkJCSk7CiAJCQlk
ZXBlbmRlbmNpZXMgPSAoCi0JCQkJNTE4M0IzOEUxMzc5RjU0NjAwRTg3NTRFIC8qIFBCWFRhcmdl
dERlcGVuZGVuY3kgKi8sCisJCQkJQ0RDMzgzMEExNzIxMUFCRTAwOEEyRkMzIC8qIFBCWFRhcmdl
dERlcGVuZGVuY3kgKi8sCiAJCQkJMUE1MERCMjcxMTBBM0JFRjAwMEQzRkU1IC8qIFBCWFRhcmdl
dERlcGVuZGVuY3kgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFdlYlByb2Nlc3M7CkBAIC01OTcxLDYg
KzYwMDYsMjMgQEAKIAkJCXByb2R1Y3RSZWZlcmVuY2UgPSBCQ0RFMDk0MjEzMjcyNDk2MDAxMjU5
RkIgLyogUGx1Z2luUHJvY2Vzcy5hcHAgKi87CiAJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUu
cHJvZHVjdC10eXBlLmFwcGxpY2F0aW9uIjsKIAkJfTsKKwkJQ0RDMzgyRkIxNzIxMTc5OTAwOEEy
RkMzIC8qIFdlYlByb2Nlc3NTaGltICovID0geworCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0Owor
CQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IENEQzM4MzAyMTcyMTE3OTkwMDhBMkZDMyAvKiBC
dWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiV2ViUHJvY2Vzc1No
aW0iICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJCQkJQ0RDMzgyRkMxNzIxMTc5OTAwOEEyRkMz
IC8qIEhlYWRlcnMgKi8sCisJCQkJQ0RDMzgyRkQxNzIxMTc5OTAwOEEyRkMzIC8qIFNvdXJjZXMg
Ki8sCisJCQkJQ0RDMzgyRkYxNzIxMTc5OTAwOEEyRkMzIC8qIEZyYW1ld29ya3MgKi8sCisJCQkp
OworCQkJYnVpbGRSdWxlcyA9ICgKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkpOwor
CQkJbmFtZSA9IFdlYlByb2Nlc3NTaGltOworCQkJcHJvZHVjdE5hbWUgPSBQbHVnaW5Qcm9jZXNz
U2hpbTsKKwkJCXByb2R1Y3RSZWZlcmVuY2UgPSBDREMzODMwNjE3MjExNzk5MDA4QTJGQzMgLyog
V2ViUHJvY2Vzc1NoaW0uZHlsaWIgKi87CisJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJv
ZHVjdC10eXBlLmxpYnJhcnkuZHluYW1pYyI7CisJCX07CiAJCUUxM0E4QTJCMTYyODc5QUMwMDM5
MjkyOSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzICovID0gewogCQkJaXNhID0gUEJYTmF0aXZlVGFy
Z2V0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IEUxM0E4QTRBMTYyODc5QUMwMDM5Mjky
OSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiU2hhcmVk
V29ya2VyUHJvY2VzcyIgKi87CkBAIC02MDIzLDYgKzYwNzUsNyBAQAogCQkJCUMwQ0U3Mjg1MTI0
N0U2NjgwMEJDMEVDNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMUFDMjVGQUYxMkE0OEVB
NzAwQkQyNjcxIC8qIFBsdWdpblByb2Nlc3NTaGltICovLAogCQkJCTUxMDAzMUVBMTM3OUNBQ0Iw
MEM4REZFNCAvKiBTZWNJdGVtU2hpbSAqLywKKwkJCQlDREMzODJGQjE3MjExNzk5MDA4QTJGQzMg
LyogV2ViUHJvY2Vzc1NoaW0gKi8sCiAJCQkJQkMzREU0NjUxNUE5MTc2MzAwOEQyNkZDIC8qIFdl
YkNvbnRlbnQgKi8sCiAJCQkJQkNBRTlERTgxNjBDMDk3NDAwQTMzMjE3IC8qIFdlYkNvbnRlbnQu
RGV2ZWxvcG1lbnQgKi8sCiAJCQkJQkM4MjgzQjAxNkI0QkY3NzAwQTI3OEZFIC8qIE5ldHdvcmtp
bmcgKi8sCkBAIC02NjI3LDYgKzY2ODAsNyBAQAogCQkJCTkzOUFFNzY2MTMxNkU5OUMwMEFFMDZB
NiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFMjMy
NjMxMjJDNkNGMzAwRDVDMzVBIC8qIFdlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxMkY1ODlBMTJBODgzODgwMDYyOTUzMCAvKiBXZWJDcmVkZW50aWFsLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUNEQzM4MzEwMTcyMTI0NDAwMDhBMkZDMyAvKiBDb29raWVT
dG9yYWdlU2hpbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNkEyNUZEQzEyQURDNkNDMDBEQzQw
Q0MgLyogV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY2MkE3NkI2
MTJCMUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRjYyQTc2NUMxMkIxQUJDMzAwMDVGMUI2IC8qIFdlYkRhdGFi
YXNlTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjk3OCw2ICs3MDMyLDE1IEBA
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CisJCUNEQzM4MkZEMTcyMTE3OTkwMDhBMkZDMyAvKiBTb3VyY2VzICovID0geworCQkJaXNhID0g
UEJYU291cmNlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3Owor
CQkJZmlsZXMgPSAoCisJCQkJQ0RDMzgzMDcxNzIxMTdERDAwOEEyRkMzIC8qIENvb2tpZVN0b3Jh
Z2VTaGltTGlicmFyeS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREMzODJGRTE3MjExNzk5MDA4
QTJGQzMgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkpOworCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCUUxM0E4QTI4
MTYyODc5QUMwMDM5MjkyOSAvKiBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYU291cmNlc0J1
aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtNzAxNCwxMSAr
NzA3Nyw2IEBACiAJCQl0YXJnZXQgPSA4REMyRUY0RjA0ODZBNjk0MDA5OEIyMTYgLyogV2ViS2l0
MiAqLzsKIAkJCXRhcmdldFByb3h5ID0gNTEwQ0M4NTAxNjEzQzk4RDAwRDAzRUQzIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKLQkJNTE4M0IzOEUxMzc5RjU0NjAwRTg3NTRFIC8q
IFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5
OwotCQkJdGFyZ2V0ID0gNTEwMDMxRUExMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltICov
OwotCQkJdGFyZ2V0UHJveHkgPSA1MTgzQjM4RDEzNzlGNTQ2MDBFODc1NEUgLyogUEJYQ29udGFp
bmVySXRlbVByb3h5ICovOwotCQl9OwogCQlCQzc3Rjk1NjE2RDA0NTkxMDBGOEY3OEEgLyogUEJY
VGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJ
CQl0YXJnZXQgPSBCQzgyODNGODE2QjRGRERFMDBBMjc4RkUgLyogUGx1Z2luLjMyICovOwpAQCAt
NzA4OSw2ICs3MTQ3LDExIEBACiAJCQl0YXJnZXQgPSBCQ0RFMDkzMzEzMjcyNDk2MDAxMjU5RkIg
LyogUGx1Z2luUHJvY2VzcyAqLzsKIAkJCXRhcmdldFByb3h5ID0gQkNERTBBQzAxMzI3MjcxMjAw
MTI1OUZCIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJQ0RDMzgzMEExNzIx
MUFCRTAwOEEyRkMzIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhU
YXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0gQ0RDMzgyRkIxNzIxMTc5OTAwOEEyRkMzIC8q
IFdlYlByb2Nlc3NTaGltICovOworCQkJdGFyZ2V0UHJveHkgPSBDREMzODMwOTE3MjExQUJFMDA4
QTJGQzMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9OwogCQlFMTNBOEE0RDE2Mjg3
QTVCMDAzOTI5MjkgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRh
cmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSBFMTNBOEEyQjE2Mjg3OUFDMDAzOTI5MjkgLyog
U2hhcmVkV29ya2VyUHJvY2VzcyAqLzsKQEAgLTc1NTQsNiArNzYxNywzMCBAQAogCQkJfTsKIAkJ
CW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQlDREMzODMwMzE3MjExNzk5MDA4QTJGQzMgLyog
RGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25m
aWd1cmF0aW9uUmVmZXJlbmNlID0gNTE4M0IzOTMxMzc5Rjg1QzAwRTg3NTRFIC8qIFNoaW0ueGNj
b25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9IFdlYlBy
b2Nlc3NTaGltOworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJQ0RDMzgzMDQxNzIx
MTc5OTAwOEEyRkMzIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJh
dGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTE4M0IzOTMxMzc5Rjg1QzAw
RTg3NTRFIC8qIFNoaW0ueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBS
T0RVQ1RfTkFNRSA9IFdlYlByb2Nlc3NTaGltOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOwor
CQl9OworCQlDREMzODMwNTE3MjExNzk5MDA4QTJGQzMgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJ
CWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVu
Y2UgPSA1MTgzQjM5MzEzNzlGODVDMDBFODc1NEUgLyogU2hpbS54Y2NvbmZpZyAqLzsKKwkJCWJ1
aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gV2ViUHJvY2Vzc1NoaW07CisJCQl9
OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCUUxM0E4QTQ3MTYyODc5QUMwMDM5Mjky
OSAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFz
ZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSBFMTNBOEE0QjE2Mjg3QTFCMDAzOTI5MjkgLyogU2hh
cmVkV29ya2VyUHJvY2Vzcy54Y2NvbmZpZyAqLzsKQEAgLTc3NjgsNiArNzg1NSwxNiBAQAogCQkJ
ZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENvbmZpZ3VyYXRp
b25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJQ0RDMzgzMDIxNzIxMTc5OTAwOEEyRkMzIC8q
IEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJXZWJQcm9jZXNz
U2hpbSIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25m
aWd1cmF0aW9ucyA9ICgKKwkJCQlDREMzODMwMzE3MjExNzk5MDA4QTJGQzMgLyogRGVidWcgKi8s
CisJCQkJQ0RDMzgzMDQxNzIxMTc5OTAwOEEyRkMzIC8qIFJlbGVhc2UgKi8sCisJCQkJQ0RDMzgz
MDUxNzIxMTc5OTAwOEEyRkMzIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENv
bmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0g
UHJvZHVjdGlvbjsKKwkJfTsKIAkJRTEzQThBNEExNjI4NzlBQzAwMzkyOTI5IC8qIEJ1aWxkIGNv
bmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJTaGFyZWRXb3JrZXJQcm9jZXNz
IiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZpZ3Vy
YXRpb25zID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50
UHJvY2Vzc01haW4ubW0KaW5kZXggM2FiMTJkMDBkNzQzNzdiNTY5NWEwMThkZjdiZjdlZWI5ZDYx
NWVjZS4uNTQ4ZDM3NTQxZGI4MzM5YmU0Nzc0NmUyNWIyMzBmMWIxODFjZGY0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNz
L1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tCkBA
IC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIC8vIFJlbW92ZSB0aGUgV2Vi
UHJvY2VzcyBzaGltIGZyb20gdGhlIERZTERfSU5TRVJUX0xJQlJBUklFUyBlbnZpcm9ubWVudCB2
YXJpYWJsZSBzbyBhbnkgcHJvY2Vzc2VzIHNwYXduZWQgYnkKICAgICAgICAgLy8gdGhlIFdlYlBy
b2Nlc3MgZG9uJ3QgdHJ5IHRvIGluc2VydCB0aGUgc2hpbSBhbmQgY3Jhc2guCi0gICAgICAgIEVu
dmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5T
RVJUX0xJQlJBUklFUyIsICIvU2VjSXRlbVNoaW0uZHlsaWIiKTsKKyAgICAgICAgRW52aXJvbm1l
bnRVdGlsaXRpZXM6OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZygiRFlMRF9JTlNFUlRfTElC
UkFSSUVTIiwgIi9XZWJDb250ZW50U2hpbS5keWxpYiIpOwogICAgIAogI2lmIFVTRShBUFBLSVQp
CiAgICAgICAgIFJ1bkxvb3A6OnNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3Ao
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMv
WFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZvLnBsaXN0IGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlL0lu
Zm8ucGxpc3QKaW5kZXggMGMzM2Q2Y2MzMWNkZmRjN2I3NGE0YTkyOThhNjE3YTZlMWUwMTliOC4u
OTFhYTc3NDUxYmQ5NGU0ZTUxMGMyZmU5NmE4MDI2YTcxNmFiZmVjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRl
bnRTZXJ2aWNlL0luZm8ucGxpc3QKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlL0luZm8ucGxpc3QKQEAgLTQ1
LDcgKzQ1LDcgQEAKIAkJPGtleT5FbnZpcm9ubWVudFZhcmlhYmxlczwva2V5PgogCQk8ZGljdD4K
IAkJCTxrZXk+RFlMRF9JTlNFUlRfTElCUkFSSUVTPC9rZXk+Ci0JCQk8c3RyaW5nPiQoV0VCS0lU
Ml9GUkFNRVdPUktTX0RJUikvV2ViS2l0Mi5mcmFtZXdvcmsvV2ViUHJvY2Vzcy5hcHAvQ29udGVu
dHMvTWFjT1MvU2VjSXRlbVNoaW0uZHlsaWI8L3N0cmluZz4KKwkJCTxzdHJpbmc+JChXRUJLSVQy
X0ZSQU1FV09SS1NfRElSKS9XZWJLaXQyLmZyYW1ld29yay9XZWJQcm9jZXNzLmFwcC9Db250ZW50
cy9NYWNPUy9XZWJDb250ZW50U2hpbS5keWxpYjwvc3RyaW5nPgogCQk8L2RpY3Q+CiAJPC9kaWN0
PgogPC9kaWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50
U2VydmljZUVudHJ5UG9pbnQubW0KaW5kZXggMzRhYjhkYWMxMzE2M2Y5MTEzOTY4MTNiNThjMzg4
YTNmYTcwYTRmNS4uNTg4ODBjY2E1ODgyZGY4MGJlYzNkNWI3YTM5MTYyZGI0ODY4OWFkYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2
aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRy
eVBvaW50Lm1tCkBAIC00Miw3ICs0Miw3IEBAIHZvaWQgV2ViQ29udGVudFNlcnZpY2VJbml0aWFs
aXplcih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0CiB7CiAg
ICAgLy8gUmVtb3ZlIHRoZSBTZWNJdGVtU2hpbSBmcm9tIHRoZSBEWUxEX0lOU0VSVF9MSUJSQVJJ
RVMgZW52aXJvbm1lbnQgdmFyaWFibGUgc28gYW55IHByb2Nlc3NlcyBzcGF3bmVkIGJ5CiAgICAg
Ly8gdGhlIHRoaXMgcHJvY2VzcyBkb24ndCB0cnkgdG8gaW5zZXJ0IHRoZSBzaGltIGFuZCBjcmFz
aC4KLSAgICBFbnZpcm9ubWVudFV0aWxpdGllczo6c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3RyaW5n
KCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCAiL1NlY0l0ZW1TaGltLmR5bGliIik7CisgICAgRW52
aXJvbm1lbnRVdGlsaXRpZXM6OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZygiRFlMRF9JTlNF
UlRfTElCUkFSSUVTIiwgIi9XZWJDb250ZW50U2hpbS5keWxpYiIpOwogCiAgICAgUnVuTG9vcDo6
c2V0VXNlQXBwbGljYXRpb25SdW5Mb29wT25NYWluUnVuTG9vcCgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAyNGVmOGFiMmQwYjQyZGRlODM4OGM1MTI0
MzBmODRiMWVkZDVjMGJlLi4yMTgxMjI5OTEyZmM3YzhmYzMwOTExNjc1NjcwMWIxMjFmYjA2MWQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTkwLDYgKzkw
LDcgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpbmNsdWRlICJD
b29raWVTdG9yYWdlU2hpbS5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5o
IgogI2VuZGlmCiAKQEAgLTMzMyw2ICszMzQsOSBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxp
emVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZQog
I2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgbV91c2VzTmV0d29ya1Byb2Nlc3MgPSBw
YXJhbWV0ZXJzLnVzZXNOZXR3b3JrUHJvY2VzczsKICAgICBlbnN1cmVOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24oKTsKKworICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSkKKyAgICAgICAgQ29v
a2llU3RvcmFnZVNoaW06OnNoYXJlZCgpLmluaXRpYWxpemUoKTsKICNlbmRpZgogICAgIHNldFRl
cm1pbmF0aW9uVGltZW91dChwYXJhbWV0ZXJzLnRlcm1pbmF0aW9uVGltZW91dCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198899</attachid>
            <date>2013-04-19 11:00:46 -0700</date>
            <delta_ts>2013-04-19 11:51:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114858-20130419110015.patch</filename>
            <type>text/plain</type>
            <size>43665</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NzIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2FlOWRlMjIzMWZjNWEz
NzRjMGE2YjBhZDgwNWVjZjEyNjczZDFiMy4uMDY1MGMzNWUyNjFmOGZmZjNlYWY5OWMyYTJmMGFh
YzI0ZmIzY2YyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEzLTA0LTE5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFdXREMgc2Vzc2lvbiB2aWRl
b3MgZG9u4oCZdCBwbGF5IGF0IGRldmVsb3Blci5hcHBsZS5jb20KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDg1OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFWRm91bmRhdGlvbiB1c2VzIENGTmV0d29y
ayB0byBzdG9yZSBhbmQgcmV0cmlldmUgY29va2llcyBmcm9tIHRoZSBnbG9iYWwgc3RvcmUuCisg
ICAgICAgIEhvd2V2ZXIsIGluIHRoZSBjYXNlIHdoZXJlIG5ldHdvcmsgYWNjZXNzIGhhcHBlbnMg
aW4gdGhlIE5ldHdvcmtQcm9jZXNzLCBzZXNzaW9uCisgICAgICAgIGNvb2tpZXMgYXJlIHN0b3Jl
ZCBpbi1tZW1vcnksIGFuZCBhcmUgbm90IGFjY2Vzc2FibGUgaW4gdGhlIFdlYlByb2Nlc3MuIFVu
dGlsIHN1Y2gKKyAgICAgICAgYSB0aW1lIGFzIEFWRm91bmRhdGlvbiBjYW4gcHJvdmlkZSBhbiBB
UEkgd2hpY2ggd291bGQgYWxsb3cgdXMgdG8gcHJvdmlkZSBjb29raWVzCisgICAgICAgIGZvciBh
IHNwZWNpZmljIHJlcXVlc3QsIHdlIHdpbGwgaW50ZXJwb3NlIHRoZSBDRk5ldHdvcmsgbWV0aG9k
IHdoaWNoIHRoZXkgdXNlIHRvCisgICAgICAgIHJldHJpZXZlIHRoZSBjb29raWUgc3RyaW5nIGZy
b20gdGhlIGNvb2tpZSBzdG9yZSBmb3IgdGhlaXIgcGVuZGluZyByZXF1ZXN0LgorCisgICAgICAg
IER1cGxpY2F0ZSB0aGUgcHJldmlvdXMgU2VjSXRlbVNoaW0gdGFyZ2V0IHRvIGEgbmV3LCBXZWJQ
cm9jZXNzU2hpbSB0YXJnZXQuIFRoaXMKKyAgICAgICAgdGFyZ2V0IGluY2x1ZGVzIHRoZSBTZWNJ
dGVtU2hpbSBmdW5jdGlvbmFsaXR5LCBidXQgd2lsbCBhZGQgYSBuZXcgc2hpbSBmb3IgY29va2ll
CisgICAgICAgIHJldHJpZXZhbDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VT
aGltTGlicmFyeS5oOiBBZGRlZAorICAgICAgICAoQ29va2llU3RvcmFnZVNoaW1DYWxsYmFja3Mp
OgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlNoaW1Qcm90ZWN0b3I6OlNoaW1Qcm90ZWN0b3IpOiBBIHNp
bXBsZSBzdGFjay1iYXNlZCBjb3VudGVyIGNsYXNzLgorICAgICAgICAoV2ViS2l0OjpTaGltUHJv
dGVjdG9yOjp+U2hpbVByb3RlY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OlNoaW1Qcm90ZWN0b3I6
OmNvdW50KToKKyAgICAgICAgKFdlYktpdDo6c2hpbUNGSFRUUENvb2tpZVN0b3JhZ2VDb3B5UmVx
dWVzdEhlYWRlckZpZWxkc0ZvclVSTCk6IEludGVycG9zZQorICAgICAgICAgICAgdGhlIENGTmV0
d29yayBjYWxsLCBhbmQgcGFzcyB0byB0aGUgcmVnaXN0ZXJlZCBjYWxsYmFjay4KKyAgICAgICAg
KFdlYktpdDo6V2ViS2l0Q29va2llU3RvcmFnZVNoaW1Jbml0aWFsaXplKTogUmVnaXN0ZXIgdGhl
IGNhbGxiYWNrcy4KKworICAgICAgICBBZGQgYSBoZWxwZXIgc2luZ2xldG9uIGNsYXNzIHdoaWNo
IHdpbGwgdGFsayB0byB0aGUgc2hpbSB0aHJvdWdoIHRoZSAKKyAgICAgICAgcmVnaXN0ZXJlZCBj
YWxsYmFja3M6CisgICAgICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5oOiBBZGRl
ZAorICAgICAgICAoV2ViS2l0OjpDb29raWVTdG9yYWdlU2hpbTo6Q29va2llU3RvcmFnZVNoaW0p
OgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0uY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6d2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRz
Rm9yVVJMKTogUGFzcyB0aGUgcmVxdWVzdAorICAgICAgICAgICAgb3ZlciB0byB0aGUgTmV0d29y
a1Byb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OkNvb2tpZVN0b3JhZ2VTaGltOjpzaGFyZWQpOiBT
aW1wbGUgc2luZ2xldG9uLgorICAgICAgICAoV2ViS2l0OjpDb29raWVTdG9yYWdlU2hpbTo6aW5p
dGlhbGl6ZSk6IENhbGwgdGhlIGxpYnJhcnkgaW5pdGlhbGl6ZXIuCisKKyAgICAgICAgSW5pdGlh
bGl6ZSB0aGUgc2hpbSBvbmx5IHdoZW4gdGhlIFdlYlByb2Nlc3MgaXMgZGVsZWdhdGluZyBuZXR3
b3JrIGxvYWRpbmcKKyAgICAgICAgdG8gdGhlIE5ldHdvcmtQcm9jZXNzOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6Omlu
aXRpYWxpemVXZWJQcm9jZXNzKToKKworICAgICAgICBSZW5hbWUgdGhlIFdlYlByb2Nlc3MncyBz
aGltIGZyb20gU2VjSXRlbVNoaW0gLT4gV2ViUHJvY2Vzc1NoaW06CisgICAgICAgICogVUlQcm9j
ZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6
OmFkZERZTERFbnZpcm9ubWVudEFkZGl0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29udGVudFByb2Nlc3NNYWluRGVsZWdhdGU6OmRvUHJlSW5pdGlhbGl6
YXRpb25Xb3JrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZp
Y2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby5wbGlzdDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tOgor
ICAgICAgICAoV2ViQ29udGVudFNlcnZpY2VJbml0aWFsaXplcik6CisKKyAgICAgICAgQXMgdGhl
IERZTERfSU5URVJQT1NFIG1hY3JvIGlzIHVzZWQgaW4gbXVsdGlwbGUgZmlsZXMgbm93LCBwdXQg
aXQgaW4gaXRzCisgICAgICAgIG93biBoZWFkZXI6CisgICAgICAgICogU2hhcmVkL21hYy9EWUxE
SW50ZXJwb3NlLmg6IEFkZGVkLgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblBy
b2Nlc3NTaGltLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFy
eS5tbToKKworICAgICAgICBBZGQgbmV3IGZpbGVzIHRvIHRoZSBwcm9qZWN0OgorICAgICAgICAq
IFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxMy0wNC0xOCAgVGltIEhv
cnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBQREZQbHVnaW46IFVw
ZGF0ZSBQREZMYXllckNvbnRyb2xsZXIncyBzY2FsZSBmYWN0b3JzIGVhcmxpZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NTaGltLm1t
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0K
aW5kZXggNGZkMGU1ODcwNWJlNmM3OTZhY2JkNzQ4MjNkNzdkYjJhZTg2OWM5OS4uYjI1ZjFmZjMz
YTZmMmZiMmM2YTc5MDU3ZTU2ZGJjN2EwMzEwYjk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0KKysrIGIvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0KQEAgLTI2LDYgKzI2
LDcgQEAKICNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgogI2ltcG9ydCAiUGx1Z2luUHJvY2Vzc1No
aW0uaCIKIAorI2ltcG9ydCAiRFlMREludGVycG9zZS5oIgogI2ltcG9ydCA8QXBwS2l0L0FwcEtp
dC5oPgogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50
ZXJmYWNlLmg+CkBAIC0zNiwxMCArMzcsNiBAQAogI2luY2x1ZGUgPHN5cy9pcGMuaD4KICNpbmNs
dWRlIDxzeXMvbW1hbi5oPgogCi0jZGVmaW5lIERZTERfSU5URVJQT1NFKF9yZXBsYWNlbWVudCxf
cmVwbGFjZWUpIFwKLSAgICBfX2F0dHJpYnV0ZV9fKCh1c2VkKSkgc3RhdGljIHN0cnVjdHsgY29u
c3Qgdm9pZCogcmVwbGFjZW1lbnQ7IGNvbnN0IHZvaWQqIHJlcGxhY2VlOyB9IF9pbnRlcnBvc2Vf
IyNfcmVwbGFjZWUgXAotICAgIF9fYXR0cmlidXRlX18gKChzZWN0aW9uICgiX19EQVRBLF9faW50
ZXJwb3NlIikpKSA9IHsgKGNvbnN0IHZvaWQqKSh1bnNpZ25lZCBsb25nKSZfcmVwbGFjZW1lbnQs
IChjb25zdCB2b2lkKikodW5zaWduZWQgbG9uZykmX3JlcGxhY2VlIH07Ci0KIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBleHRlcm4gIkMiIHZvaWQgV2ViS2l0UGx1Z2luUHJvY2Vzc1NoaW1Jbml0aWFs
aXplKGNvbnN0IFBsdWdpblByb2Nlc3NTaGltQ2FsbGJhY2tzJiBjYWxsYmFja3MpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wMjgwOWZhMzFkOTA4NzkzMWU2NGNhYmVkYThhYTlhOGJiY2ZlMTk4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5jcHAKQEAg
LTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJDb29raWVTdG9yYWdlU2hpbS5oIgorCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5oIgorI2luY2x1ZGUgIk5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvS1VSTC5oPgorI2luY2x1ZGUgPGRsZmNuLmg+
CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIENGRGljdGlvbmFyeVJlZiB3ZWJL
aXRDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwoQ0ZIVFRQQ29va2ll
U3RvcmFnZVJlZiBpbkNvb2tpZVN0b3JhZ2UsIENGVVJMUmVmIGluUmVxdWVzdFVSTCkKK3sKKyAg
ICBTdHJpbmcgY29va2llczsKKyAgICBLVVJMIGZpcnN0UGFydHlGb3JDb29raWVzVVJMOworICAg
IGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlv
bigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNv
b2tpZXNGb3JET00oZmFsc2UsIGZpcnN0UGFydHlGb3JDb29raWVzVVJMLCBpblJlcXVlc3RVUkwp
LCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JET006
OlJlcGx5KGNvb2tpZXMpLCAwKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IGNmQ29va2llcyA9IGNvb2tpZXMuY3JlYXRlQ0ZTdHJpbmcoKTsKKyAgICBz
dGF0aWMgY29uc3Qgdm9pZCogY29va2llS2V5c1tdID0geyBDRlNUUigiQ29va2llIikgfTsKKyAg
ICBjb25zdCB2b2lkKiBjb29raWVWYWx1ZXNbXSA9IHsgY2ZDb29raWVzLmdldCgpIH07CisgICAg
cmV0dXJuIENGRGljdGlvbmFyeUNyZWF0ZSgwLCBjb29raWVLZXlzLCBjb29raWVWYWx1ZXMsIDEs
ICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVD
YWxsQmFja3MpOworfQorCitDb29raWVTdG9yYWdlU2hpbSYgQ29va2llU3RvcmFnZVNoaW06OnNo
YXJlZCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChDb29raWVTdG9yYWdlU2hpbSwgc3Rv
cmFnZSwgKCkpOworICAgIHJldHVybiBzdG9yYWdlOworfQorCit2b2lkIENvb2tpZVN0b3JhZ2VT
aGltOjppbml0aWFsaXplKCkKK3sKKyAgICBDb29raWVTdG9yYWdlU2hpbUNhbGxiYWNrcyBjYWxs
YmFja3MgPSB7ICZ3ZWJLaXRDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JV
UkwgfTsKKyAgICBDb29raWVTdG9yYWdlU2hpbUluaXRpYWxpemVGdW5jIGZ1bmMgPSByZWludGVy
cHJldF9jYXN0PENvb2tpZVN0b3JhZ2VTaGltSW5pdGlhbGl6ZUZ1bmM+KGRsc3ltKFJUTERfREVG
QVVMVCwgIldlYktpdENvb2tpZVN0b3JhZ2VTaGltSW5pdGlhbGl6ZSIpKTsKKyAgICBpZiAoZnVu
YykKKyAgICAgICAgZnVuYyhjYWxsYmFja3MpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9D
b29raWVTdG9yYWdlU2hpbS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9y
YWdlU2hpbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMzE0MWI3OGYxNTlhZmZjMjA1YmU5NGYyYTU0YWYxOGM3
YmQ2NzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tp
ZVN0b3JhZ2VTaGltLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29v
a2llU3RvcmFnZVNoaW1faAorI2RlZmluZSBDb29raWVTdG9yYWdlU2hpbV9oCisKKyNpZiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBDb29raWVTdG9yYWdlU2hpbSB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQ29va2llU3RvcmFnZVNoaW0pOworcHVibGljOgorICAgIHN0YXRpYyBD
b29raWVTdG9yYWdlU2hpbSYgc2hhcmVkKCk7CisKKyAgICB2b2lkIGluaXRpYWxpemUoKTsKKwor
cHJpdmF0ZToKKyAgICBDb29raWVTdG9yYWdlU2hpbSgpIHsgfTsKK307CisKK30KKworI2VuZGlm
IC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNlbmRpZiAvLyBDb29raWVTdG9yYWdlU2hp
bV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VT
aGltTGlicmFyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VT
aGltTGlicmFyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGVmOGU4Y2UzYTAxZTRlM2IzYjQ1Mzk4ODI2OWFh
ZTcxNzJiODliOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
Q29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2VTaGltTGlicmFy
eS5oIgorCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKworI2luY2x1ZGUgIkRZTERJbnRl
cnBvc2UuaCIKKworZXh0ZXJuICJDIiBDRkRpY3Rpb25hcnlSZWYgX0NGSFRUUENvb2tpZVN0b3Jh
Z2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0ZvclVSTChDRkFsbG9jYXRvclJlZiBpbkFsbG9jYXRv
ciwgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBpbkNvb2tpZVN0b3JhZ2UsIENGVVJMUmVmIGluUmVx
dWVzdFVSTCk7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitleHRlcm4gIkMiIHZvaWQgV2ViS2l0
Q29va2llU3RvcmFnZVNoaW1Jbml0aWFsaXplKGNvbnN0IENvb2tpZVN0b3JhZ2VTaGltQ2FsbGJh
Y2tzJik7CisKK3N0YXRpYyBDb29raWVTdG9yYWdlU2hpbUNhbGxiYWNrcyBjb29raWVTdG9yYWdl
U2hpbUNhbGxiYWNrczsKKworY2xhc3MgU2hpbVByb3RlY3RvciB7CitwdWJsaWM6CisgICAgU2hp
bVByb3RlY3RvcigpIHsgKyttX2NvdW50OyB9CisgICAgflNoaW1Qcm90ZWN0b3IoKSB7IC0tbV9j
b3VudDsgfQorICAgIHN0YXRpYyB1bnNpZ25lZCBjb3VudCgpIHsgcmV0dXJuIG1fY291bnQ7IH0K
K3ByaXZhdGU6CisgICAgc3RhdGljIHVuc2lnbmVkIG1fY291bnQ7Cit9OworCit1bnNpZ25lZCBT
aGltUHJvdGVjdG9yOjptX2NvdW50ID0gMDsKKworc3RhdGljIENGRGljdGlvbmFyeVJlZiBzaGlt
Q0ZIVFRQQ29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKENGQWxsb2Nh
dG9yUmVmIGluQWxsb2NhdG9yLCBDRkhUVFBDb29raWVTdG9yYWdlUmVmIGluQ29va2llU3RvcmFn
ZSwgQ0ZVUkxSZWYgaW5SZXF1ZXN0VVJMKQoreworICAgIFNoaW1Qcm90ZWN0b3IgcHJvdGVjdG9y
OworCisgICAgZG8geworICAgICAgICAvLyBQcm90ZWN0IGFnYWluc3QgdW5pbml0aWFsaXplZCBj
YWxsYmFja3M6CisgICAgICAgIGlmICghY29va2llU3RvcmFnZVNoaW1DYWxsYmFja3MuY29va2ll
U3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKQorICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IGFjY2lkZW50YWwgcmVjdXJzaW9uOgorICAg
ICAgICBBU1NFUlQoU2hpbVByb3RlY3Rvcjo6Y291bnQoKSA9PSAxKTsKKyAgICAgICAgaWYgKFNo
aW1Qcm90ZWN0b3I6OmNvdW50KCkgPiAxKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
Q0ZEaWN0aW9uYXJ5UmVmIHJlc3VsdHMgPSBjb29raWVTdG9yYWdlU2hpbUNhbGxiYWNrcy5jb29r
aWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwoaW5Db29raWVTdG9yYWdlLCBp
blJlcXVlc3RVUkwpOworICAgICAgICBpZiAoIXJlc3VsdHMpCisgICAgICAgICAgICBicmVhazsK
KworICAgICAgICByZXR1cm4gcmVzdWx0czsKKyAgICB9IHdoaWxlICgwKTsKKworICAgIC8vIElm
IHdlJ3ZlIGZhaWxlZCB0byByZXRyaWV2ZSB0aGUgY29va2llcyBtYW51YWxseSwgZmFsbCBiYWNr
IHRvIHRoZSBvcmlnaW5hbCBpbXBvc2VkIGZ1bmN0aW9uOgorICAgIHJldHVybiBfQ0ZIVFRQQ29v
a2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKGluQWxsb2NhdG9yLCBpbkNv
b2tpZVN0b3JhZ2UsIGluUmVxdWVzdFVSTCk7Cit9CisKK0RZTERfSU5URVJQT1NFKHNoaW1DRkhU
VFBDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwsIF9DRkhUVFBDb29r
aWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwpOworCitfX2F0dHJpYnV0ZV9f
KCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQordm9pZCBXZWJLaXRDb29raWVTdG9yYWdlU2hpbUlu
aXRpYWxpemUoY29uc3QgQ29va2llU3RvcmFnZVNoaW1DYWxsYmFja3MmIGNhbGxiYWNrcykKK3sK
KyAgICBjb29raWVTdG9yYWdlU2hpbUNhbGxiYWNrcyA9IGNhbGxiYWNrczsKK30KKyAgICAKK30K
KworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
MGYwYTJmYzM4Njk4NTBlZWE1NTA5MTUyYjRlMDIyMjM2YWFlZGFkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaApA
QCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb29raWVTdG9yYWdlU2hpbUxp
YnJhcnlfaAorI2RlZmluZSBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnlfaAorCisjaWYgRU5BQkxF
KE5FVFdPUktfUFJPQ0VTUykKKwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ0ZIVFRQQ29va2llU3Rv
cmFnZSogIENGSFRUUENvb2tpZVN0b3JhZ2VSZWY7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitz
dHJ1Y3QgQ29va2llU3RvcmFnZVNoaW1DYWxsYmFja3MgeworICAgIENGRGljdGlvbmFyeVJlZiAo
KmNvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0ZvclVSTCkoQ0ZIVFRQQ29va2ll
U3RvcmFnZVJlZiBpbkNvb2tpZVN0b3JhZ2UsIENGVVJMUmVmIGluUmVxdWVzdFVSTCk7Cit9Owor
Cit0eXBlZGVmIHZvaWQgKCpDb29raWVTdG9yYWdlU2hpbUluaXRpYWxpemVGdW5jKShjb25zdCBD
b29raWVTdG9yYWdlU2hpbUNhbGxiYWNrcyYgY2FsbGJhY2tzKTsKKworfQorCisjZW5kaWYgLy8g
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKworI2VuZGlmIC8vIENvb2tpZVN0b3JhZ2VTaGltTGli
cmFyeV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0RZTERJbnRlcnBv
c2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvRFlMREludGVycG9zZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU4NjliNDRmMzMzNmQ0ZTZiZjcwYzFhZTY0NmVkZGExYzkzNzA1ZDUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0RZTERJbnRlcnBvc2UuaApAQCAtMCww
ICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEWUxESW50ZXJwb3NlX2gKKyNkZWZpbmUg
RFlMREludGVycG9zZV9oCisKKyNpZmRlZiBEWUxEX0lOVEVSUE9TRQorI3VuZGVmIERZTERfSU5U
RVJQT1NFCisjZW5kaWYKKworI2RlZmluZSBEWUxEX0lOVEVSUE9TRShfcmVwbGFjZW1lbnQsIF9y
ZXBsYWNlZSkgXAorICAgIF9fYXR0cmlidXRlX18oKHVzZWQpKSBzdGF0aWMgc3RydWN0IHsgY29u
c3Qgdm9pZCogcmVwbGFjZW1lbnQ7IGNvbnN0IHZvaWQqIHJlcGxhY2VlOyB9IF9pbnRlcnBvc2Vf
IyNfcmVwbGFjZWUgXAorICAgIF9fYXR0cmlidXRlX18gKChzZWN0aW9uICgiX19EQVRBLF9faW50
ZXJwb3NlIikpKSA9IHsgKGNvbnN0IHZvaWQqKSh1bnNpZ25lZCBsb25nKSZfcmVwbGFjZW1lbnQs
IChjb25zdCB2b2lkKikodW5zaWduZWQgbG9uZykmX3JlcGxhY2VlIH07CisKKyNlbmRpZiAvLyBE
WUxESW50ZXJwb3NlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggN2IyZWRjOGFjNjcxZmUx
ZmU3OGEyNDQyMTY1ZWY1MDM1NGVjMWU2MC4uZGI3YzA4NGU0NWE1Mjk1NDViMzcxNzcyYTAzZDc1
NTk3Mjg0Y2ZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0KQEAgLTEyMSw3ICsxMjEsNyBAQCBz
dGF0aWMgdm9pZCBhZGREWUxERW52aXJvbm1lbnRBZGRpdGlvbnMoY29uc3QgUHJvY2Vzc0xhdW5j
aGVyOjpMYXVuY2hPcHRpb25zJiBsYQogICAgICAgICBOU1N0cmluZyAqcHJvY2Vzc1BhdGggPSBb
d2ViS2l0MkJ1bmRsZSBwYXRoRm9yQXV4aWxpYXJ5RXhlY3V0YWJsZTpAIldlYlByb2Nlc3MuYXBw
Il07CiAgICAgICAgIE5TU3RyaW5nICpwcm9jZXNzQXBwRXhlY3V0YWJsZVBhdGggPSBbW05TQnVu
ZGxlIGJ1bmRsZVdpdGhQYXRoOnByb2Nlc3NQYXRoXSBleGVjdXRhYmxlUGF0aF07CiAKLSAgICAg
ICAgcHJvY2Vzc1NoaW1QYXRoTlNTdHJpbmcgPSBbW3Byb2Nlc3NBcHBFeGVjdXRhYmxlUGF0aCBz
dHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENv
bXBvbmVudDpAIlNlY0l0ZW1TaGltLmR5bGliIl07CisgICAgICAgIHByb2Nlc3NTaGltUGF0aE5T
U3RyaW5nID0gW1twcm9jZXNzQXBwRXhlY3V0YWJsZVBhdGggc3RyaW5nQnlEZWxldGluZ0xhc3RQ
YXRoQ29tcG9uZW50XSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJXZWJQcm9jZXNz
U2hpbS5keWxpYiJdOwogICAgIH0gZWxzZSBpZiAobGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9
PSBQcm9jZXNzTGF1bmNoZXI6Ok5ldHdvcmtQcm9jZXNzKSB7CiAgICAgICAgIE5TU3RyaW5nICpw
cm9jZXNzUGF0aCA9IFt3ZWJLaXQyQnVuZGxlIHBhdGhGb3JBdXhpbGlhcnlFeGVjdXRhYmxlOkAi
TmV0d29ya1Byb2Nlc3MuYXBwIl07CiAgICAgICAgIE5TU3RyaW5nICpwcm9jZXNzQXBwRXhlY3V0
YWJsZVBhdGggPSBbW05TQnVuZGxlIGJ1bmRsZVdpdGhQYXRoOnByb2Nlc3NQYXRoXSBleGVjdXRh
YmxlUGF0aF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggOGZhZDNkOGM1ODFiNWMyYTUxMzNjN2I1Yjg1ZTQxNTIyMjUyNWZiYS4u
ZDIzNDI5ZGJlZjczOGEzNmM0NGI5NWEwMDFhMmJkMWEwNmM3YTUzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDg4LDcgKzQ4
OCw2IEBACiAJCTUxODI5REE2MTYzN0M3MEMwMDA5NTNENiAvKiBOZXR3b3JrUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTgyOURBNDE2MzdDNzBDMDAwOTUzRDYgLyogTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxl
ci5oICovOyB9OwogCQk1MTgzNDU5MjEzNDUzMkU5MDA5MkI2OTYgLyogV2ViSWNvbkRhdGFiYXNl
Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxODM0NTkwMTM0NTMyRTgwMDkyQjY5NiAvKiBXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwICov
OyB9OwogCQk1MTgzNDU5MzEzNDUzMkU5MDA5MkI2OTYgLyogV2ViSWNvbkRhdGFiYXNlQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTgzNDU5
MTEzNDUzMkU4MDA5MkI2OTYgLyogV2ViSWNvbkRhdGFiYXNlQ2xpZW50LmggKi87IH07Ci0JCTUx
ODNCMzkyMTM3OUY3QjgwMEU4NzU0RSAvKiBTZWNJdGVtU2hpbS5keWxpYiBpbiBDb3B5IFNlYyBJ
dGVtIFNoaW0gKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMDMxRjYxMzc5
Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5bGliICovOyB9OwogCQk1MTgzRERFQzE2MzBC
REZDMDA4QkU1QzcgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDVCMEQ0MTYyRjdBN0EwMEUyNzcw
OSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovOyB9OwogCQk1MTg3MUI1QjEyN0NC
ODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4NzFCNTkxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNv
bnRleHRNZW51LmNwcCAqLzsgfTsKIAkJNTE4NzFCNUMxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNv
bnRleHRNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTg3MUI1QTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCAqLzsgfTsKQEAg
LTEwODAsNiArMTA3OSw3IEBACiAJCUM1RTFBRkVEMTZCMjEwMTcwMDZDQzFGMiAvKiBXZWJBcmNo
aXZlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMy
OUQ5QTE2QUNDRTk5MDAzMTZERTIgLyogV2ViQXJjaGl2ZS5oICovOyB9OwogCQlDNUUxQUZFRTE2
QjIxMDI1MDA2Q0MxRjIgLyogV2ViQXJjaGl2ZVJlc291cmNlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzI5RDlFMTZBQ0Q0NzgwMDMxNkRFMiAv
KiBXZWJBcmNoaXZlUmVzb3VyY2UuY3BwICovOyB9OwogCQlDNUUxQUZFRjE2QjIxMDI5MDA2Q0Mx
RjIgLyogV2ViQXJjaGl2ZVJlc291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzMyOUQ5RjE2QUNENDc4MDAzMTZERTIgLyogV2ViQXJjaGl2ZVJl
c291cmNlLmggKi87IH07CisJCUNENDcxRjVEMTcyMUJDM0UwMEQ2NUNEQSAvKiBsaWJXVEYuYSBp
biBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDcxRjVD
MTcyMUJDM0UwMEQ2NUNEQSAvKiBsaWJXVEYuYSAqLzsgfTsKIAkJQ0Q1QzY2QTAxMzRCOUQzODAw
NEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1QzY2OUUxMzRCOUQzNjAw
NEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwICovOyB9Owog
CQlDRDVDNjZBMTEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVl
bkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q1QzY2OUYxMzRCOUQzNzAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5D
bGllbnQuaCAqLzsgfTsKIAkJQ0Q2N0QzMEUxNUMwOEY5QTAwODQzQURGIC8qIEluamVjdGVkQnVu
ZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjdEMzA4MTVDMDdCRTAwMDg0M0FERiAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgKi87IH07CkBAIC0xMDg3
LDYgKzEwODcsMTMgQEAKIAkJQ0Q3M0JBNDcxMzFBQ0M5QTAwRUVERUQyIC8qIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBNDUxMzFBQ0M4ODAwRUVERUQyIC8qIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDRDczQkE0
RTEzMUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JB
NDgxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKIAkJQ0Q3M0JBNTMxMzFCNjQ1QjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENENzNCQTM3MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgKi87
IH07CisJCUNEQzM4MkZFMTcyMTE3OTkwMDhBMkZDMyAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3ODEz
OEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tICovOyB9OworCQlDREMzODMw
MDE3MjExNzk5MDA4QTJGQzMgLyogQ0ZOZXR3b3JrLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzM4MkY3MTcyMTE1MDYwMDhBMkZD
MyAvKiBDRk5ldHdvcmsuZnJhbWV3b3JrICovOyB9OworCQlDREMzODMwMTE3MjExNzk5MDA4QTJG
QzMgLyogU2VjdXJpdHkuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNGNTA2ODQxMjQzMTg2MTAwNTk1NUFFIC8qIFNlY3VyaXR5LmZy
YW1ld29yayAqLzsgfTsKKwkJQ0RDMzgzMDcxNzIxMTdERDAwOEEyRkMzIC8qIENvb2tpZVN0b3Jh
Z2VTaGltTGlicmFyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREMzODJGOTE3MjExNkQzMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW1MaWJy
YXJ5LmNwcCAqLzsgfTsKKwkJQ0RDMzgzMDgxNzIxMTg5MDAwOEEyRkMzIC8qIFdlYlByb2Nlc3NT
aGltLmR5bGliIGluIENvcHkgV2ViUHJvY2Vzc1NoaW0gKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RDMzgzMDYxNzIxMTc5OTAwOEEyRkMzIC8qIFdlYlByb2Nlc3NTaGltLmR5
bGliICovOyB9OworCQlDREMzODMwQzE3MjEyMjgyMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNo
aW1MaWJyYXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREMzODMwQjE3MjEyMUNFMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5Lmgg
Ki87IH07CisJCUNEQzM4MzEwMTcyMTI0NDAwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREMzODMw
RDE3MjEyNDJEMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW0uY3BwICovOyB9OwogCQlDRENB
ODVDODEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E4NUM2MTMy
QUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tICovOyB9Owog
CQlDRENBODVDOTEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDQTg1
QzcxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCAqLzsg
fTsKIAkJQ0RDQTg1RUUxMzJBRDcwMTAwRTk2MURGIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RENBODVERTEzMkFEMDUzMDBFOTYxREYgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5t
bSAqLzsgfTsKQEAgLTEyMTgsMTMgKzEyMjUsNiBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcg
PSA4REMyRUY0RjA0ODZBNjk0MDA5OEIyMTY7CiAJCQlyZW1vdGVJbmZvID0gV2ViS2l0MjsKIAkJ
fTsKLQkJNTE4M0IzOEQxMzc5RjU0NjAwRTg3NTRFIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAq
LyA9IHsKLQkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKLQkJCWNvbnRhaW5lclBvcnRh
bCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKLQkJCXBy
b3h5VHlwZSA9IDE7Ci0JCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDUxMDAzMUVBMTM3OUNBQ0Iw
MEM4REZFNDsKLQkJCXJlbW90ZUluZm8gPSBTZWNJdGVtU2hpbTsKLQkJfTsKIAkJQkM3N0Y5NTUx
NkQwNDU5MTAwRjhGNzhBIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9
IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4
NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTEzMjMsNiArMTMyMywxMyBA
QAogCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSBCQ0RFMDkzMzEzMjcyNDk2MDAxMjU5RkI7CiAJ
CQlyZW1vdGVJbmZvID0gIlBsdWdpbiBQcm9jZXNzIjsKIAkJfTsKKwkJQ0RDMzgzMDkxNzIxMUFC
RTAwOEEyRkMzIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENv
bnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZD
MDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1v
dGVHbG9iYWxJRFN0cmluZyA9IENEQzM4MkZCMTcyMTE3OTkwMDhBMkZDMzsKKwkJCXJlbW90ZUlu
Zm8gPSBXZWJQcm9jZXNzU2hpbTsKKwkJfTsKIAkJRTEzQThBNEMxNjI4N0E1QjAwMzkyOTI5IC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Q
cm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQ
cm9qZWN0IG9iamVjdCAqLzsKQEAgLTEzNTMsMTUgKzEzNjAsMTUgQEAKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKLQkJNTE4M0IzOEYxMzc5
RjU2ODAwRTg3NTRFIC8qIENvcHkgU2VjIEl0ZW0gU2hpbSAqLyA9IHsKKwkJNTE4M0IzOEYxMzc5
RjU2ODAwRTg3NTRFIC8qIENvcHkgV2ViUHJvY2Vzc1NoaW0gKi8gPSB7CiAJCQlpc2EgPSBQQlhD
b3B5RmlsZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJ
CWRzdFBhdGggPSBXZWJQcm9jZXNzLmFwcC9Db250ZW50cy9NYWNPUzsKIAkJCWRzdFN1YmZvbGRl
clNwZWMgPSAxNjsKIAkJCWZpbGVzID0gKAotCQkJCTUxODNCMzkyMTM3OUY3QjgwMEU4NzU0RSAv
KiBTZWNJdGVtU2hpbS5keWxpYiBpbiBDb3B5IFNlYyBJdGVtIFNoaW0gKi8sCisJCQkJQ0RDMzgz
MDgxNzIxMTg5MDAwOEEyRkMzIC8qIFdlYlByb2Nlc3NTaGltLmR5bGliIGluIENvcHkgV2ViUHJv
Y2Vzc1NoaW0gKi8sCiAJCQkpOwotCQkJbmFtZSA9ICJDb3B5IFNlYyBJdGVtIFNoaW0iOworCQkJ
bmFtZSA9ICJDb3B5IFdlYlByb2Nlc3NTaGltIjsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwogCQk1RDFBMjM5MDE1RTc1QjEwMDAyM0U5ODEgLyogQ29w
eSBNZXNzYWdlIEdlbmVyYXRpb24gU2NyaXB0cyAqLyA9IHsKQEAgLTI1MzMsNiArMjU0MCw4IEBA
CiAJCUM1NTRGRkEyMTJFNEU4RUEwMDJGMjJDMCAvKiBXZWJEcmFnQ2xpZW50TWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRHJhZ0NsaWVudE1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzU3NEE1N0YxMkU2NjY4MTAwMkRGRTk4IC8q
IFBhc3RlYm9hcmRUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0
ZWJvYXJkVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzU3NEE1ODAxMkU2
NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFBhc3RlYm9hcmRUeXBlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0Q0NzFGNUIxNzIxQjk5OTAwRDY1Q0RBIC8qIERZTERJbnRlcnBvc2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRFlMREludGVycG9zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDQ3MUY1QzE3MjFCQzNFMDBENjVDREEgLyogbGliV1RGLmEgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBuYW1lID0gbGli
V1RGLmE7IHBhdGggPSAuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi91c3IvbG9jYWwvbGliL2xpYldU
Ri5hOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDVDNjY5RTEzNEI5RDM2MDA0RkUy
QTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xp
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1QzY2OUYxMzRCOUQzNzAw
NEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDY3RDMwODE1QzA3QkUwMDA4NDNB
REYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjU0
Nyw2ICsyNTU2LDEyIEBACiAJCUNENzNCQTQ4MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2Ny
ZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzNCQTQ5MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJG
dWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0Q3M0JBNEExMzFBQ0Q4RjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0RDMzgyRjcxNzIxMTUwNjAwOEEyRkMzIC8qIENGTmV0d29yay5mcmFtZXdvcmsgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1l
d29yazsgbmFtZSA9IENGTmV0d29yay5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9DRk5ldHdvcmsuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4i
OyB9OworCQlDREMzODJGOTE3MjExNkQzMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW1MaWJy
YXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQzM4MzA2MTcyMTE3OTkwMDhBMkZDMyAv
KiBXZWJQcm9jZXNzU2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBs
aWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0g
MDsgcGF0aCA9IFdlYlByb2Nlc3NTaGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OworCQlDREMzODMwQjE3MjEyMUNFMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNo
aW1MaWJyYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREMzODMwRDE3MjEyNDJEMDA4QTJGQzMgLyog
Q29va2llU3RvcmFnZVNoaW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ29va2llU3RvcmFnZVNoaW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
REMzODMwRTE3MjEyNDJEMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW0uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llU3RvcmFnZVNoaW0uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTg1QzYxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E4
NUQ0MTMyQUMyQjMwMEU5NjFERiAvKiBJT0tpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9
IElPS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0lPS2l0
LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKQEAgLTI3ODcsNiArMjgw
MiwxNiBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OworCQlDREMzODJGRjE3MjExNzk5MDA4QTJGQzMgLyogRnJhbWV3b3JrcyAqLyA9IHsK
KwkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0g
MjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCUNENDcxRjVEMTcyMUJDM0UwMEQ2NUNEQSAv
KiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICovLAorCQkJCUNEQzM4MzAwMTcyMTE3OTkwMDhBMkZD
MyAvKiBDRk5ldHdvcmsuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCisJCQkJQ0RDMzgzMDEx
NzIxMTc5OTAwOEEyRkMzIC8qIFNlY3VyaXR5LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAor
CQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9Owog
CQlFMTNBOEEyOTE2Mjg3OUFDMDAzOTI5MjkgLyogRnJhbWV3b3JrcyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKQEAgLTI4MTgsNiArMjg0Myw3IEBACiAJCQkJQkNBRjM1OUExNkNBMUQ1NzAwRDRFOUZDIC8q
IE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy5hcHAgKi8sCiAJCQkJQkNBRjM1RjExNkNBMjYzODAwRDRF
OUZDIC8qIGNvbS5hcHBsZS5XZWJLaXQuT2ZmbGluZVN0b3JhZ2UueHBjICovLAogCQkJCUJDQUYz
NjA0MTZDQTI2NjkwMEQ0RTlGQyAvKiBjb20uYXBwbGUuV2ViS2l0Lk9mZmxpbmVTdG9yYWdlLkRl
dmVsb3BtZW50LnhwYyAqLywKKwkJCQlDREMzODMwNjE3MjExNzk5MDA4QTJGQzMgLyogV2ViUHJv
Y2Vzc1NoaW0uZHlsaWIgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFByb2R1Y3RzOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI4MjcsNiArMjg1Myw3IEBACiAJCTA4NjdENjkxRkU4NDAy
OEZDMDJBQUMwNyAvKiBXZWJLaXQyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQlDRDQ3MUY1QzE3MjFCQzNFMDBENjVDREEgLyogbGliV1RGLmEgKi8sCiAJ
CQkJQjM5NkVBNTUxMkUwRUQyRDAwRjRGRUI3IC8qIGNvbmZpZy5oICovLAogCQkJCTMyREJDRjVF
MDM3MEFERUUwMEM5MTc4MyAvKiBXZWJLaXQyUHJlZml4LmggKi8sCiAJCQkJQzBDRTcyREIxMjQ3
RThGNzAwQkMwRUM0IC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8sCkBAIC0yODc3LDYgKzI5MDQs
NyBAQAogCQkxMDU4QzdCMEZFQTU1ODVFMTFDQTJDQkIgLyogTGlua2VkIEZyYW1ld29ya3MgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUNEQzM4MkY3MTcy
MTE1MDYwMDhBMkZDMyAvKiBDRk5ldHdvcmsuZnJhbWV3b3JrICovLAogCQkJCTA4NjdENkE1RkU4
NDAzMDdDMDJBQUMwNyAvKiBBcHBLaXQuZnJhbWV3b3JrICovLAogCQkJCTFBQURFNkZFMTBEODU1
RkMwMEQzRDYzRCAvKiBBcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yayAqLywKIAkJCQkxQUEx
Q0QwNjEwMEZBMUJBMDA3OERFQkMgLyogQ2FyYm9uLmZyYW1ld29yayAqLywKQEAgLTQxODksNiAr
NDIxNywxMSBAQAogCQkJCTFBMkE0QUZFMTU4NjkzOTIwMDkwQzlFOSAvKiBDb2xvclNwYWNlRGF0
YS5oICovLAogCQkJCTFBMkE0QUZEMTU4NjkzOTIwMDkwQzlFOSAvKiBDb2xvclNwYWNlRGF0YS5t
bSAqLywKIAkJCQkxQTZGOUZCNjExRTE0MDg1MDBEQjEzNzEgLyogQ29tbWFuZExpbmVNYWMuY3Bw
ICovLAorCQkJCUNEQzM4MkY5MTcyMTE2RDMwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxp
YnJhcnkuY3BwICovLAorCQkJCUNEQzM4MzBCMTcyMTIxQ0UwMDhBMkZDMyAvKiBDb29raWVTdG9y
YWdlU2hpbUxpYnJhcnkuaCAqLywKKwkJCQlDREMzODMwRDE3MjEyNDJEMDA4QTJGQzMgLyogQ29v
a2llU3RvcmFnZVNoaW0uY3BwICovLAorCQkJCUNEQzM4MzBFMTcyMTI0MkQwMDhBMkZDMyAvKiBD
b29raWVTdG9yYWdlU2hpbS5oICovLAorCQkJCUNENDcxRjVCMTcyMUI5OTkwMEQ2NUNEQSAvKiBE
WUxESW50ZXJwb3NlLmggKi8sCiAJCQkJMUE5MkRDMTIxMkY4QkFCOTAwMTdBRjY1IC8qIExheWVy
VHJlZUNvbnRleHRNYWMubW0gKi8sCiAJCQkJQzAyQkZGMUQxMjUxNTAyRTAwOUNDQkVBIC8qIE5h
dGl2ZVdlYktleWJvYXJkRXZlbnRNYWMubW0gKi8sCiAJCQkJMzFFQTI1RDAxMzRGNzhCMjAwNUIx
NDUyIC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnRNYWMubW0gKi8sCkBAIC01MjkyLDYgKzUzMjUsNyBA
QAogCQkJCTFBOEVGNENCMTI1MjQwMzcwMEY3MDY3RiAvKiBQbHVnaW5Db250cm9sbGVyUHJveHku
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEVGOTZGMTI1MkFGNkIwMEY3MDY3RiAvKiBQbHVnaW5D
b250cm9sbGVyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUExNzk3ODAxMzdF
RTgyQzAwRjk3RDQ1IC8qIFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0RDMzgzMEMxNzIxMjI4MjAwOEEyRkMzIC8qIENvb2tpZVN0b3JhZ2VTaGltTGlicmFy
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFRkNDMTIxMUQwMUY5NjAwODIxOUQzIC8qIFBsdWdp
bkluZm9TdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEzRDYxMDIxM0E3Q0MyQTAwRjk1RDRF
IC8qIFBsdWdpbk1vZHVsZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMDQzOTc2MTI0RDAz
NDgwMEZGQkZCNSAvKiBQbHVnaW5Qcm9jZXNzLmggaW4gSGVhZGVycyAqLywKQEAgLTU2NzcsNiAr
NTcxMSwxMyBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OworCQlDREMzODJGQzE3MjExNzk5MDA4QTJGQzMgLyogSGVhZGVycyAqLyA9IHsK
KwkJCWlzYSA9IFBCWEhlYWRlcnNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOworCQl9OwogLyogRW5kIFBCWEhlYWRlcnNCdWlsZFBoYXNlIHNlY3Rp
b24gKi8KIAogLyogQmVnaW4gUEJYTmF0aXZlVGFyZ2V0IHNlY3Rpb24gKi8KQEAgLTU2ODYsMTMg
KzU3MjcsMTMgQEAKIAkJCWJ1aWxkUGhhc2VzID0gKAogCQkJCTFBNTBEQjFBMTEwQTNCREMwMDBE
M0ZFNSAvKiBSZXNvdXJjZXMgKi8sCiAJCQkJMUE1MERCMUIxMTBBM0JEQzAwMEQzRkU1IC8qIFNv
dXJjZXMgKi8sCi0JCQkJNTE4M0IzOEYxMzc5RjU2ODAwRTg3NTRFIC8qIENvcHkgU2VjIEl0ZW0g
U2hpbSAqLywKKwkJCQk1MTgzQjM4RjEzNzlGNTY4MDBFODc1NEUgLyogQ29weSBXZWJQcm9jZXNz
U2hpbSAqLywKIAkJCQlCQzVEMjRCMDE2Q0MzRjI4MDA3RDU0NjEgLyogRnJhbWV3b3JrcyAqLywK
IAkJCSk7CiAJCQlidWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRlcGVuZGVuY2llcyA9ICgKLQkJ
CQk1MTgzQjM4RTEzNzlGNTQ2MDBFODc1NEUgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKKwkJ
CQlDREMzODMwQTE3MjExQUJFMDA4QTJGQzMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJ
CQkxQTUwREIyNzExMEEzQkVGMDAwRDNGRTUgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJ
CSk7CiAJCQluYW1lID0gV2ViUHJvY2VzczsKQEAgLTU5NzEsNiArNjAxMiwyMyBAQAogCQkJcHJv
ZHVjdFJlZmVyZW5jZSA9IEJDREUwOTQyMTMyNzI0OTYwMDEyNTlGQiAvKiBQbHVnaW5Qcm9jZXNz
LmFwcCAqLzsKIAkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUuYXBwbGlj
YXRpb24iOwogCQl9OworCQlDREMzODJGQjE3MjExNzk5MDA4QTJGQzMgLyogV2ViUHJvY2Vzc1No
aW0gKi8gPSB7CisJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRp
b25MaXN0ID0gQ0RDMzgzMDIxNzIxMTc5OTAwOEEyRkMzIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24g
bGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJXZWJQcm9jZXNzU2hpbSIgKi87CisJCQlidWlsZFBo
YXNlcyA9ICgKKwkJCQlDREMzODJGQzE3MjExNzk5MDA4QTJGQzMgLyogSGVhZGVycyAqLywKKwkJ
CQlDREMzODJGRDE3MjExNzk5MDA4QTJGQzMgLyogU291cmNlcyAqLywKKwkJCQlDREMzODJGRjE3
MjExNzk5MDA4QTJGQzMgLyogRnJhbWV3b3JrcyAqLywKKwkJCSk7CisJCQlidWlsZFJ1bGVzID0g
KAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1lID0gV2ViUHJvY2Vz
c1NoaW07CisJCQlwcm9kdWN0TmFtZSA9IFBsdWdpblByb2Nlc3NTaGltOworCQkJcHJvZHVjdFJl
ZmVyZW5jZSA9IENEQzM4MzA2MTcyMTE3OTkwMDhBMkZDMyAvKiBXZWJQcm9jZXNzU2hpbS5keWxp
YiAqLzsKKwkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUubGlicmFyeS5k
eW5hbWljIjsKKwkJfTsKIAkJRTEzQThBMkIxNjI4NzlBQzAwMzkyOTI5IC8qIFNoYXJlZFdvcmtl
clByb2Nlc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CiAJCQlidWlsZENvbmZp
Z3VyYXRpb25MaXN0ID0gRTEzQThBNEExNjI4NzlBQzAwMzkyOTI5IC8qIEJ1aWxkIGNvbmZpZ3Vy
YXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJTaGFyZWRXb3JrZXJQcm9jZXNzIiAqLzsK
QEAgLTYwMjMsNiArNjA4MSw3IEBACiAJCQkJQzBDRTcyODUxMjQ3RTY2ODAwQkMwRUM0IC8qIERl
cml2ZWQgU291cmNlcyAqLywKIAkJCQkxQUMyNUZBRjEyQTQ4RUE3MDBCRDI2NzEgLyogUGx1Z2lu
UHJvY2Vzc1NoaW0gKi8sCiAJCQkJNTEwMDMxRUExMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1T
aGltICovLAorCQkJCUNEQzM4MkZCMTcyMTE3OTkwMDhBMkZDMyAvKiBXZWJQcm9jZXNzU2hpbSAq
LywKIAkJCQlCQzNERTQ2NTE1QTkxNzYzMDA4RDI2RkMgLyogV2ViQ29udGVudCAqLywKIAkJCQlC
Q0FFOURFODE2MEMwOTc0MDBBMzMyMTcgLyogV2ViQ29udGVudC5EZXZlbG9wbWVudCAqLywKIAkJ
CQlCQzgyODNCMDE2QjRCRjc3MDBBMjc4RkUgLyogTmV0d29ya2luZyAqLywKQEAgLTY2MjcsNiAr
NjY4Niw3IEBACiAJCQkJOTM5QUU3NjYxMzE2RTk5QzAwQUUwNkE2IC8qIFdlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0UyMzI2MzEyMkM2Q0YzMDBENUMzNUEg
LyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyRjU4
OUExMkE4ODM4ODAwNjI5NTMwIC8qIFdlYkNyZWRlbnRpYWwuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQ0RDMzgzMTAxNzIxMjQ0MDAwOEEyRkMzIC8qIENvb2tpZVN0b3JhZ2VTaGltLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUY2QTI1RkRDMTJBREM2Q0MwMERDNDBDQyAvKiBXZWJEYXRhYmFzZU1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjYyQTc2QjYxMkIxQjI1RjAwMDVGMUI2IC8q
IFdlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGNjJBNzY1QzEyQjFBQkMzMDAwNUYxQjYgLyogV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC02OTc4LDYgKzcwMzgsMTUgQEAKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJQ0RDMzgyRkQxNzIxMTc5
OTAwOEEyRkMzIC8qIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFz
ZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQlD
REMzODMwNzE3MjExN0REMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUNEQzM4MkZFMTcyMTE3OTkwMDhBMkZDMyAvKiBTZWNJdGVtU2hp
bUxpYnJhcnkubW0gaW4gU291cmNlcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIAkJRTEzQThBMjgxNjI4NzlBQzAwMzkyOTI5IC8q
IFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxk
QWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC03MDE0LDExICs3MDgzLDYgQEAKIAkJCXRhcmdl
dCA9IDhEQzJFRjRGMDQ4NkE2OTQwMDk4QjIxNiAvKiBXZWJLaXQyICovOwogCQkJdGFyZ2V0UHJv
eHkgPSA1MTBDQzg1MDE2MTNDOThEMDBEMDNFRDMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICov
OwogCQl9OwotCQk1MTgzQjM4RTEzNzlGNTQ2MDBFODc1NEUgLyogUEJYVGFyZ2V0RGVwZW5kZW5j
eSAqLyA9IHsKLQkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7Ci0JCQl0YXJnZXQgPSA1MTAw
MzFFQTEzNzlDQUNCMDBDOERGRTQgLyogU2VjSXRlbVNoaW0gKi87Ci0JCQl0YXJnZXRQcm94eSA9
IDUxODNCMzhEMTM3OUY1NDYwMEU4NzU0RSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87Ci0J
CX07CiAJCUJDNzdGOTU2MTZEMDQ1OTEwMEY4Rjc4QSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICov
ID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdldCA9IEJDODI4M0Y4
MTZCNEZEREUwMEEyNzhGRSAvKiBQbHVnaW4uMzIgKi87CkBAIC03MDg5LDYgKzcxNTMsMTEgQEAK
IAkJCXRhcmdldCA9IEJDREUwOTMzMTMyNzI0OTYwMDEyNTlGQiAvKiBQbHVnaW5Qcm9jZXNzICov
OwogCQkJdGFyZ2V0UHJveHkgPSBCQ0RFMEFDMDEzMjcyNzEyMDAxMjU5RkIgLyogUEJYQ29udGFp
bmVySXRlbVByb3h5ICovOwogCQl9OworCQlDREMzODMwQTE3MjExQUJFMDA4QTJGQzMgLyogUEJY
VGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJ
CQl0YXJnZXQgPSBDREMzODJGQjE3MjExNzk5MDA4QTJGQzMgLyogV2ViUHJvY2Vzc1NoaW0gKi87
CisJCQl0YXJnZXRQcm94eSA9IENEQzM4MzA5MTcyMTFBQkUwMDhBMkZDMyAvKiBQQlhDb250YWlu
ZXJJdGVtUHJveHkgKi87CisJCX07CiAJCUUxM0E4QTREMTYyODdBNUIwMDM5MjkyOSAvKiBQQlhU
YXJnZXREZXBlbmRlbmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJ
CXRhcmdldCA9IEUxM0E4QTJCMTYyODc5QUMwMDM5MjkyOSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNz
ICovOwpAQCAtNzU1NCw2ICs3NjIzLDMwIEBACiAJCQl9OwogCQkJbmFtZSA9IFByb2R1Y3Rpb247
CiAJCX07CisJCUNEQzM4MzAzMTcyMTE3OTkwMDhBMkZDMyAvKiBEZWJ1ZyAqLyA9IHsKKwkJCWlz
YSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2Ug
PSA1MTgzQjM5MzEzNzlGODVDMDBFODc1NEUgLyogU2hpbS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxk
U2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gV2ViUHJvY2Vzc1NoaW07CisJCQl9Owor
CQkJbmFtZSA9IERlYnVnOworCQl9OworCQlDREMzODMwNDE3MjExNzk5MDA4QTJGQzMgLyogUmVs
ZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZp
Z3VyYXRpb25SZWZlcmVuY2UgPSA1MTgzQjM5MzEzNzlGODVDMDBFODc1NEUgLyogU2hpbS54Y2Nv
bmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gV2ViUHJv
Y2Vzc1NoaW07CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCUNEQzM4MzA1MTcy
MTE3OTkwMDhBMkZDMyAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZp
Z3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxODNCMzkzMTM3OUY4
NUMwMEU4NzU0RSAvKiBTaGltLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJ
CQlQUk9EVUNUX05BTUUgPSBXZWJQcm9jZXNzU2hpbTsKKwkJCX07CisJCQluYW1lID0gUHJvZHVj
dGlvbjsKKwkJfTsKIAkJRTEzQThBNDcxNjI4NzlBQzAwMzkyOTI5IC8qIERlYnVnICovID0gewog
CQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVy
ZW5jZSA9IEUxM0E4QTRCMTYyODdBMUIwMDM5MjkyOSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzLnhj
Y29uZmlnICovOwpAQCAtNzc2OCw2ICs3ODYxLDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlv
bklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9u
OwogCQl9OworCQlDREMzODMwMjE3MjExNzk5MDA4QTJGQzMgLyogQnVpbGQgY29uZmlndXJhdGlv
biBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIldlYlByb2Nlc3NTaGltIiAqLyA9IHsKKwkJCWlz
YSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJ
CUNEQzM4MzAzMTcyMTE3OTkwMDhBMkZDMyAvKiBEZWJ1ZyAqLywKKwkJCQlDREMzODMwNDE3MjEx
Nzk5MDA4QTJGQzMgLyogUmVsZWFzZSAqLywKKwkJCQlDREMzODMwNTE3MjExNzk5MDA4QTJGQzMg
LyogUHJvZHVjdGlvbiAqLywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJs
ZSA9IDA7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOworCQl9Owog
CQlFMTNBOEE0QTE2Mjg3OUFDMDAzOTI5MjkgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZv
ciBQQlhOYXRpdmVUYXJnZXQgIlNoYXJlZFdvcmtlclByb2Nlc3MiICovID0gewogCQkJaXNhID0g
WENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nl
c3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9F
bnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbQppbmRl
eCAzYWIxMmQwMGQ3NDM3N2I1Njk1YTAxOGRmN2JmN2VlYjlkNjE1ZWNlLi41NDhkMzc1NDFkYjgz
MzliZTQ3NzQ2ZTI1YjIzMGYxYjE4MWNkZjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NN
YWluLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVn
YWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4ubW0KQEAgLTYzLDcgKzYzLDcgQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgLy8gUmVtb3ZlIHRoZSBXZWJQcm9jZXNzIHNoaW0gZnJvbSB0
aGUgRFlMRF9JTlNFUlRfTElCUkFSSUVTIGVudmlyb25tZW50IHZhcmlhYmxlIHNvIGFueSBwcm9j
ZXNzZXMgc3Bhd25lZCBieQogICAgICAgICAvLyB0aGUgV2ViUHJvY2VzcyBkb24ndCB0cnkgdG8g
aW5zZXJ0IHRoZSBzaGltIGFuZCBjcmFzaC4KLSAgICAgICAgRW52aXJvbm1lbnRVdGlsaXRpZXM6
OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZygiRFlMRF9JTlNFUlRfTElCUkFSSUVTIiwgIi9T
ZWNJdGVtU2hpbS5keWxpYiIpOworICAgICAgICBFbnZpcm9ubWVudFV0aWxpdGllczo6c3RyaXBW
YWx1ZXNFbmRpbmdXaXRoU3RyaW5nKCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCAiL1dlYkNvbnRl
bnRTaGltLmR5bGliIik7CiAgICAgCiAjaWYgVVNFKEFQUEtJVCkKICAgICAgICAgUnVuTG9vcDo6
c2V0VXNlQXBwbGljYXRpb25SdW5Mb29wT25NYWluUnVuTG9vcCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRl
bnRTZXJ2aWNlL0luZm8ucGxpc3QgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby5wbGlzdAppbmRleCAwYzMz
ZDZjYzMxY2RmZGM3Yjc0YTRhOTI5OGE2MTdhNmUxZTAxOWI4Li45MWFhNzc0NTFiZDk0ZTRlNTEw
YzJmZTk2YTgwMjZhNzE2YWJmZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby5wbGlz
dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZp
Y2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby5wbGlzdApAQCAtNDUsNyArNDUsNyBAQAogCQk8a2V5
PkVudmlyb25tZW50VmFyaWFibGVzPC9rZXk+CiAJCTxkaWN0PgogCQkJPGtleT5EWUxEX0lOU0VS
VF9MSUJSQVJJRVM8L2tleT4KLQkJCTxzdHJpbmc+JChXRUJLSVQyX0ZSQU1FV09SS1NfRElSKS9X
ZWJLaXQyLmZyYW1ld29yay9XZWJQcm9jZXNzLmFwcC9Db250ZW50cy9NYWNPUy9TZWNJdGVtU2hp
bS5keWxpYjwvc3RyaW5nPgorCQkJPHN0cmluZz4kKFdFQktJVDJfRlJBTUVXT1JLU19ESVIpL1dl
YktpdDIuZnJhbWV3b3JrL1dlYlByb2Nlc3MuYXBwL0NvbnRlbnRzL01hY09TL1dlYkNvbnRlbnRT
aGltLmR5bGliPC9zdHJpbmc+CiAJCTwvZGljdD4KIAk8L2RpY3Q+CiA8L2RpY3Q+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2Uv
V2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5t
bQppbmRleCAzNGFiOGRhYzEzMTYzZjkxMTM5NjgxM2I1OGMzODhhM2ZhNzBhNGY1Li41ODg4MGNj
YTU4ODJkZjgwYmVjM2Q1YjdhMzkxNjJkYjQ4Njg5YWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZp
Y2VFbnRyeVBvaW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2lu
dC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KQEAgLTQyLDcg
KzQyLDcgQEAgdm9pZCBXZWJDb250ZW50U2VydmljZUluaXRpYWxpemVyKHhwY19jb25uZWN0aW9u
X3QgY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXQKIHsKICAgICAvLyBSZW1vdmUgdGhlIFNl
Y0l0ZW1TaGltIGZyb20gdGhlIERZTERfSU5TRVJUX0xJQlJBUklFUyBlbnZpcm9ubWVudCB2YXJp
YWJsZSBzbyBhbnkgcHJvY2Vzc2VzIHNwYXduZWQgYnkKICAgICAvLyB0aGUgdGhpcyBwcm9jZXNz
IGRvbid0IHRyeSB0byBpbnNlcnQgdGhlIHNoaW0gYW5kIGNyYXNoLgotICAgIEVudmlyb25tZW50
VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJB
UklFUyIsICIvU2VjSXRlbVNoaW0uZHlsaWIiKTsKKyAgICBFbnZpcm9ubWVudFV0aWxpdGllczo6
c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3RyaW5nKCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCAiL1dl
YkNvbnRlbnRTaGltLmR5bGliIik7CiAKICAgICBSdW5Mb29wOjpzZXRVc2VBcHBsaWNhdGlvblJ1
bkxvb3BPbk1haW5SdW5Mb29wKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCmluZGV4IDI0ZWY4YWIyZDBiNDJkZGU4Mzg4YzUxMjQzMGY4NGIxZWRkNWMwYmUuLjIx
ODEyMjk5MTJmYzdjOGZjMzA5MTE2NzU2NzAxYjEyMWZiMDYxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtOTAsNiArOTAsNyBAQAogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorI2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2VTaGltLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCiAjZW5kaWYKIApAQCAtMzMz
LDYgKzMzNCw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3Qg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1lCiAjaWYgRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKICAgICBtX3VzZXNOZXR3b3JrUHJvY2VzcyA9IHBhcmFtZXRlcnMudXNlc05ldHdv
cmtQcm9jZXNzOwogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpOworCisgICAg
aWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpKQorICAgICAgICBDb29raWVTdG9yYWdlU2hpbTo6c2hh
cmVkKCkuaW5pdGlhbGl6ZSgpOwogI2VuZGlmCiAgICAgc2V0VGVybWluYXRpb25UaW1lb3V0KHBh
cmFtZXRlcnMudGVybWluYXRpb25UaW1lb3V0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tCmluZGV4IDQ4OGY4YWNjZTgzMmQ1
MDNmYWYyOWIwZDZjNTcxNTIzOTAwZjdkZjkuLmY4YjAyOWE5YzBhYTlhODdkMDU4ZWE2ZjQyNTA1
ZjM1ZDFlM2ZlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1Nl
Y0l0ZW1TaGltTGlicmFyeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9T
ZWNJdGVtU2hpbUxpYnJhcnkubW0KQEAgLTI0LDEzICsyNCwxMCBAQAogICovCiAjaW1wb3J0ICJT
ZWNJdGVtU2hpbUxpYnJhcnkuaCIKIAorI2ltcG9ydCAiRFlMREludGVycG9zZS5oIgogI2ltcG9y
dCA8U2VjdXJpdHkvU2VjSXRlbS5oPgogI2ltcG9ydCA8d3RmL1BsYXRmb3JtLmg+CiAKLSNkZWZp
bmUgRFlMRF9JTlRFUlBPU0UoX3JlcGxhY2VtZW50LF9yZXBsYWNlZSkgXAotICAgIF9fYXR0cmli
dXRlX18oKHVzZWQpKSBzdGF0aWMgc3RydWN0eyBjb25zdCB2b2lkKiByZXBsYWNlbWVudDsgY29u
c3Qgdm9pZCogcmVwbGFjZWU7IH0gX2ludGVycG9zZV8jI19yZXBsYWNlZSBcCi0gICAgX19hdHRy
aWJ1dGVfXyAoKHNlY3Rpb24gKCJfX0RBVEEsX19pbnRlcnBvc2UiKSkpID0geyAoY29uc3Qgdm9p
ZCopKHVuc2lnbmVkIGxvbmcpJl9yZXBsYWNlbWVudCwgKGNvbnN0IHZvaWQqKSh1bnNpZ25lZCBs
b25nKSZfcmVwbGFjZWUgfTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGV4dGVybiAiQyIgdm9p
ZCBXZWJLaXRTZWNJdGVtU2hpbUluaXRpYWxpemUoY29uc3QgU2VjSXRlbVNoaW1DYWxsYmFja3Mm
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198905</attachid>
            <date>2013-04-19 11:51:50 -0700</date>
            <delta_ts>2013-04-22 15:05:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114858-20130419115119.patch</filename>
            <type>text/plain</type>
            <size>43970</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NzIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2FlOWRlMjIzMWZjNWEz
NzRjMGE2YjBhZDgwNWVjZjEyNjczZDFiMy4uMDY1MGMzNWUyNjFmOGZmZjNlYWY5OWMyYTJmMGFh
YzI0ZmIzY2YyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEzLTA0LTE5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFdXREMgc2Vzc2lvbiB2aWRl
b3MgZG9u4oCZdCBwbGF5IGF0IGRldmVsb3Blci5hcHBsZS5jb20KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDg1OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFWRm91bmRhdGlvbiB1c2VzIENGTmV0d29y
ayB0byBzdG9yZSBhbmQgcmV0cmlldmUgY29va2llcyBmcm9tIHRoZSBnbG9iYWwgc3RvcmUuCisg
ICAgICAgIEhvd2V2ZXIsIGluIHRoZSBjYXNlIHdoZXJlIG5ldHdvcmsgYWNjZXNzIGhhcHBlbnMg
aW4gdGhlIE5ldHdvcmtQcm9jZXNzLCBzZXNzaW9uCisgICAgICAgIGNvb2tpZXMgYXJlIHN0b3Jl
ZCBpbi1tZW1vcnksIGFuZCBhcmUgbm90IGFjY2Vzc2FibGUgaW4gdGhlIFdlYlByb2Nlc3MuIFVu
dGlsIHN1Y2gKKyAgICAgICAgYSB0aW1lIGFzIEFWRm91bmRhdGlvbiBjYW4gcHJvdmlkZSBhbiBB
UEkgd2hpY2ggd291bGQgYWxsb3cgdXMgdG8gcHJvdmlkZSBjb29raWVzCisgICAgICAgIGZvciBh
IHNwZWNpZmljIHJlcXVlc3QsIHdlIHdpbGwgaW50ZXJwb3NlIHRoZSBDRk5ldHdvcmsgbWV0aG9k
IHdoaWNoIHRoZXkgdXNlIHRvCisgICAgICAgIHJldHJpZXZlIHRoZSBjb29raWUgc3RyaW5nIGZy
b20gdGhlIGNvb2tpZSBzdG9yZSBmb3IgdGhlaXIgcGVuZGluZyByZXF1ZXN0LgorCisgICAgICAg
IER1cGxpY2F0ZSB0aGUgcHJldmlvdXMgU2VjSXRlbVNoaW0gdGFyZ2V0IHRvIGEgbmV3LCBXZWJQ
cm9jZXNzU2hpbSB0YXJnZXQuIFRoaXMKKyAgICAgICAgdGFyZ2V0IGluY2x1ZGVzIHRoZSBTZWNJ
dGVtU2hpbSBmdW5jdGlvbmFsaXR5LCBidXQgd2lsbCBhZGQgYSBuZXcgc2hpbSBmb3IgY29va2ll
CisgICAgICAgIHJldHJpZXZhbDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VT
aGltTGlicmFyeS5oOiBBZGRlZAorICAgICAgICAoQ29va2llU3RvcmFnZVNoaW1DYWxsYmFja3Mp
OgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlNoaW1Qcm90ZWN0b3I6OlNoaW1Qcm90ZWN0b3IpOiBBIHNp
bXBsZSBzdGFjay1iYXNlZCBjb3VudGVyIGNsYXNzLgorICAgICAgICAoV2ViS2l0OjpTaGltUHJv
dGVjdG9yOjp+U2hpbVByb3RlY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OlNoaW1Qcm90ZWN0b3I6
OmNvdW50KToKKyAgICAgICAgKFdlYktpdDo6c2hpbUNGSFRUUENvb2tpZVN0b3JhZ2VDb3B5UmVx
dWVzdEhlYWRlckZpZWxkc0ZvclVSTCk6IEludGVycG9zZQorICAgICAgICAgICAgdGhlIENGTmV0
d29yayBjYWxsLCBhbmQgcGFzcyB0byB0aGUgcmVnaXN0ZXJlZCBjYWxsYmFjay4KKyAgICAgICAg
KFdlYktpdDo6V2ViS2l0Q29va2llU3RvcmFnZVNoaW1Jbml0aWFsaXplKTogUmVnaXN0ZXIgdGhl
IGNhbGxiYWNrcy4KKworICAgICAgICBBZGQgYSBoZWxwZXIgc2luZ2xldG9uIGNsYXNzIHdoaWNo
IHdpbGwgdGFsayB0byB0aGUgc2hpbSB0aHJvdWdoIHRoZSAKKyAgICAgICAgcmVnaXN0ZXJlZCBj
YWxsYmFja3M6CisgICAgICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5oOiBBZGRl
ZAorICAgICAgICAoV2ViS2l0OjpDb29raWVTdG9yYWdlU2hpbTo6Q29va2llU3RvcmFnZVNoaW0p
OgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0uY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6d2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRz
Rm9yVVJMKTogUGFzcyB0aGUgcmVxdWVzdAorICAgICAgICAgICAgb3ZlciB0byB0aGUgTmV0d29y
a1Byb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OkNvb2tpZVN0b3JhZ2VTaGltOjpzaGFyZWQpOiBT
aW1wbGUgc2luZ2xldG9uLgorICAgICAgICAoV2ViS2l0OjpDb29raWVTdG9yYWdlU2hpbTo6aW5p
dGlhbGl6ZSk6IENhbGwgdGhlIGxpYnJhcnkgaW5pdGlhbGl6ZXIuCisKKyAgICAgICAgSW5pdGlh
bGl6ZSB0aGUgc2hpbSBvbmx5IHdoZW4gdGhlIFdlYlByb2Nlc3MgaXMgZGVsZWdhdGluZyBuZXR3
b3JrIGxvYWRpbmcKKyAgICAgICAgdG8gdGhlIE5ldHdvcmtQcm9jZXNzOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6Omlu
aXRpYWxpemVXZWJQcm9jZXNzKToKKworICAgICAgICBSZW5hbWUgdGhlIFdlYlByb2Nlc3MncyBz
aGltIGZyb20gU2VjSXRlbVNoaW0gLT4gV2ViUHJvY2Vzc1NoaW06CisgICAgICAgICogVUlQcm9j
ZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6
OmFkZERZTERFbnZpcm9ubWVudEFkZGl0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29udGVudFByb2Nlc3NNYWluRGVsZWdhdGU6OmRvUHJlSW5pdGlhbGl6
YXRpb25Xb3JrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZp
Y2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby5wbGlzdDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tOgor
ICAgICAgICAoV2ViQ29udGVudFNlcnZpY2VJbml0aWFsaXplcik6CisKKyAgICAgICAgQXMgdGhl
IERZTERfSU5URVJQT1NFIG1hY3JvIGlzIHVzZWQgaW4gbXVsdGlwbGUgZmlsZXMgbm93LCBwdXQg
aXQgaW4gaXRzCisgICAgICAgIG93biBoZWFkZXI6CisgICAgICAgICogU2hhcmVkL21hYy9EWUxE
SW50ZXJwb3NlLmg6IEFkZGVkLgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblBy
b2Nlc3NTaGltLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFy
eS5tbToKKworICAgICAgICBBZGQgbmV3IGZpbGVzIHRvIHRoZSBwcm9qZWN0OgorICAgICAgICAq
IFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxMy0wNC0xOCAgVGltIEhv
cnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBQREZQbHVnaW46IFVw
ZGF0ZSBQREZMYXllckNvbnRyb2xsZXIncyBzY2FsZSBmYWN0b3JzIGVhcmxpZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NTaGltLm1t
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0K
aW5kZXggNGZkMGU1ODcwNWJlNmM3OTZhY2JkNzQ4MjNkNzdkYjJhZTg2OWM5OS4uYjI1ZjFmZjMz
YTZmMmZiMmM2YTc5MDU3ZTU2ZGJjN2EwMzEwYjk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0KKysrIGIvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0KQEAgLTI2LDYgKzI2
LDcgQEAKICNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgogI2ltcG9ydCAiUGx1Z2luUHJvY2Vzc1No
aW0uaCIKIAorI2ltcG9ydCAiRFlMREludGVycG9zZS5oIgogI2ltcG9ydCA8QXBwS2l0L0FwcEtp
dC5oPgogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50
ZXJmYWNlLmg+CkBAIC0zNiwxMCArMzcsNiBAQAogI2luY2x1ZGUgPHN5cy9pcGMuaD4KICNpbmNs
dWRlIDxzeXMvbW1hbi5oPgogCi0jZGVmaW5lIERZTERfSU5URVJQT1NFKF9yZXBsYWNlbWVudCxf
cmVwbGFjZWUpIFwKLSAgICBfX2F0dHJpYnV0ZV9fKCh1c2VkKSkgc3RhdGljIHN0cnVjdHsgY29u
c3Qgdm9pZCogcmVwbGFjZW1lbnQ7IGNvbnN0IHZvaWQqIHJlcGxhY2VlOyB9IF9pbnRlcnBvc2Vf
IyNfcmVwbGFjZWUgXAotICAgIF9fYXR0cmlidXRlX18gKChzZWN0aW9uICgiX19EQVRBLF9faW50
ZXJwb3NlIikpKSA9IHsgKGNvbnN0IHZvaWQqKSh1bnNpZ25lZCBsb25nKSZfcmVwbGFjZW1lbnQs
IChjb25zdCB2b2lkKikodW5zaWduZWQgbG9uZykmX3JlcGxhY2VlIH07Ci0KIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBleHRlcm4gIkMiIHZvaWQgV2ViS2l0UGx1Z2luUHJvY2Vzc1NoaW1Jbml0aWFs
aXplKGNvbnN0IFBsdWdpblByb2Nlc3NTaGltQ2FsbGJhY2tzJiBjYWxsYmFja3MpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wMjgwOWZhMzFkOTA4NzkzMWU2NGNhYmVkYThhYTlhOGJiY2ZlMTk4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5jcHAKQEAg
LTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJDb29raWVTdG9yYWdlU2hpbS5oIgorCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5oIgorI2luY2x1ZGUgIk5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvS1VSTC5oPgorI2luY2x1ZGUgPGRsZmNuLmg+
CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIENGRGljdGlvbmFyeVJlZiB3ZWJL
aXRDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwoQ0ZIVFRQQ29va2ll
U3RvcmFnZVJlZiBpbkNvb2tpZVN0b3JhZ2UsIENGVVJMUmVmIGluUmVxdWVzdFVSTCkKK3sKKyAg
ICBTdHJpbmcgY29va2llczsKKyAgICBLVVJMIGZpcnN0UGFydHlGb3JDb29raWVzVVJMOworICAg
IGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlv
bigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNv
b2tpZXNGb3JET00oZmFsc2UsIGZpcnN0UGFydHlGb3JDb29raWVzVVJMLCBpblJlcXVlc3RVUkwp
LCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JET006
OlJlcGx5KGNvb2tpZXMpLCAwKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IGNmQ29va2llcyA9IGNvb2tpZXMuY3JlYXRlQ0ZTdHJpbmcoKTsKKyAgICBz
dGF0aWMgY29uc3Qgdm9pZCogY29va2llS2V5c1tdID0geyBDRlNUUigiQ29va2llIikgfTsKKyAg
ICBjb25zdCB2b2lkKiBjb29raWVWYWx1ZXNbXSA9IHsgY2ZDb29raWVzLmdldCgpIH07CisgICAg
cmV0dXJuIENGRGljdGlvbmFyeUNyZWF0ZSgwLCBjb29raWVLZXlzLCBjb29raWVWYWx1ZXMsIDEs
ICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVD
YWxsQmFja3MpOworfQorCitDb29raWVTdG9yYWdlU2hpbSYgQ29va2llU3RvcmFnZVNoaW06OnNo
YXJlZCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChDb29raWVTdG9yYWdlU2hpbSwgc3Rv
cmFnZSwgKCkpOworICAgIHJldHVybiBzdG9yYWdlOworfQorCit2b2lkIENvb2tpZVN0b3JhZ2VT
aGltOjppbml0aWFsaXplKCkKK3sKKyAgICBDb29raWVTdG9yYWdlU2hpbUNhbGxiYWNrcyBjYWxs
YmFja3MgPSB7ICZ3ZWJLaXRDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JV
UkwgfTsKKyAgICBDb29raWVTdG9yYWdlU2hpbUluaXRpYWxpemVGdW5jIGZ1bmMgPSByZWludGVy
cHJldF9jYXN0PENvb2tpZVN0b3JhZ2VTaGltSW5pdGlhbGl6ZUZ1bmM+KGRsc3ltKFJUTERfREVG
QVVMVCwgIldlYktpdENvb2tpZVN0b3JhZ2VTaGltSW5pdGlhbGl6ZSIpKTsKKyAgICBpZiAoZnVu
YykKKyAgICAgICAgZnVuYyhjYWxsYmFja3MpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9D
b29raWVTdG9yYWdlU2hpbS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9y
YWdlU2hpbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMzE0MWI3OGYxNTlhZmZjMjA1YmU5NGYyYTU0YWYxOGM3
YmQ2NzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tp
ZVN0b3JhZ2VTaGltLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29v
a2llU3RvcmFnZVNoaW1faAorI2RlZmluZSBDb29raWVTdG9yYWdlU2hpbV9oCisKKyNpZiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBDb29raWVTdG9yYWdlU2hpbSB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQ29va2llU3RvcmFnZVNoaW0pOworcHVibGljOgorICAgIHN0YXRpYyBD
b29raWVTdG9yYWdlU2hpbSYgc2hhcmVkKCk7CisKKyAgICB2b2lkIGluaXRpYWxpemUoKTsKKwor
cHJpdmF0ZToKKyAgICBDb29raWVTdG9yYWdlU2hpbSgpIHsgfTsKK307CisKK30KKworI2VuZGlm
IC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNlbmRpZiAvLyBDb29raWVTdG9yYWdlU2hp
bV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VT
aGltTGlicmFyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VT
aGltTGlicmFyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ1YmUyNjBlMWE1Yzc2YmYxMWY1ODM3MTBhM2Mx
ZTg1MzI3ZDg5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
Q29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcApAQCAtMCwwICsxLDk1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2VTaGltTGlicmFy
eS5oIgorCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKworI2luY2x1ZGUgIkRZTERJbnRl
cnBvc2UuaCIKKworZXh0ZXJuICJDIiBDRkRpY3Rpb25hcnlSZWYgX0NGSFRUUENvb2tpZVN0b3Jh
Z2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0ZvclVSTChDRkFsbG9jYXRvclJlZiBpbkFsbG9jYXRv
ciwgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBpbkNvb2tpZVN0b3JhZ2UsIENGVVJMUmVmIGluUmVx
dWVzdFVSTCk7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitleHRlcm4gIkMiIHZvaWQgV2ViS2l0
Q29va2llU3RvcmFnZVNoaW1Jbml0aWFsaXplKGNvbnN0IENvb2tpZVN0b3JhZ2VTaGltQ2FsbGJh
Y2tzJik7CisKK3N0YXRpYyBDb29raWVTdG9yYWdlU2hpbUNhbGxiYWNrcyBjb29raWVTdG9yYWdl
U2hpbUNhbGxiYWNrczsKKworY2xhc3MgU2hpbVByb3RlY3RvciB7CitwdWJsaWM6CisgICAgU2hp
bVByb3RlY3RvcigpIHsgKyttX2NvdW50OyB9CisgICAgflNoaW1Qcm90ZWN0b3IoKSB7IC0tbV9j
b3VudDsgfQorICAgIHN0YXRpYyB1bnNpZ25lZCBjb3VudCgpIHsgcmV0dXJuIG1fY291bnQ7IH0K
K3ByaXZhdGU6CisgICAgX190aHJlYWQgc3RhdGljIHVuc2lnbmVkIG1fY291bnQ7Cit9OworCitf
X3RocmVhZCB1bnNpZ25lZCBTaGltUHJvdGVjdG9yOjptX2NvdW50ID0gMDsKKworc3RhdGljIENG
RGljdGlvbmFyeVJlZiBzaGltQ0ZIVFRQQ29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmll
bGRzRm9yVVJMKENGQWxsb2NhdG9yUmVmIGluQWxsb2NhdG9yLCBDRkhUVFBDb29raWVTdG9yYWdl
UmVmIGluQ29va2llU3RvcmFnZSwgQ0ZVUkxSZWYgaW5SZXF1ZXN0VVJMKQoreworICAgIFNoaW1Q
cm90ZWN0b3IgcHJvdGVjdG9yOworCisgICAgZG8geworICAgICAgICAvLyBQcm90ZWN0IGFnYWlu
c3QgdW5pbml0aWFsaXplZCBjYWxsYmFja3M6CisgICAgICAgIGlmICghY29va2llU3RvcmFnZVNo
aW1DYWxsYmFja3MuY29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKQor
ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IGFjY2lkZW50
YWwgcmVjdXJzaW9uOgorICAgICAgICBBU1NFUlQoU2hpbVByb3RlY3Rvcjo6Y291bnQoKSA9PSAx
KTsKKyAgICAgICAgaWYgKFNoaW1Qcm90ZWN0b3I6OmNvdW50KCkgPiAxKQorICAgICAgICAgICAg
YnJlYWs7CisKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5UmVmIHJlc3VsdHMgPSBjb29raWVTdG9yYWdl
U2hpbUNhbGxiYWNrcy5jb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwo
aW5Db29raWVTdG9yYWdlLCBpblJlcXVlc3RVUkwpOworICAgICAgICBpZiAoIXJlc3VsdHMpCisg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICByZXR1cm4gcmVzdWx0czsKKyAgICB9IHdoaWxl
ICgwKTsKKworICAgIC8vIElmIHdlJ3ZlIGZhaWxlZCB0byByZXRyaWV2ZSB0aGUgY29va2llcyBt
YW51YWxseSwgZmFsbCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBpbXBvc2VkIGZ1bmN0aW9uOgorICAg
IHJldHVybiBfQ0ZIVFRQQ29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJM
KGluQWxsb2NhdG9yLCBpbkNvb2tpZVN0b3JhZ2UsIGluUmVxdWVzdFVSTCk7Cit9CisKK0RZTERf
SU5URVJQT1NFKHNoaW1DRkhUVFBDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNG
b3JVUkwsIF9DRkhUVFBDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwp
OworCitfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQordm9pZCBXZWJLaXRD
b29raWVTdG9yYWdlU2hpbUluaXRpYWxpemUoY29uc3QgQ29va2llU3RvcmFnZVNoaW1DYWxsYmFj
a3MmIGNhbGxiYWNrcykKK3sKKyAgICAvLyBCZWNhdXNlIHRoZSB2YWx1ZSBvZiBjb29raWVTdG9y
YWdlU2hpbUNhbGxiYWNrcyB3aWxsIGJlIHJlYWQgZnJvbSBtdWxpdHBsZSB0aHJlYWRzLAorICAg
IC8vIG9ubHkgYWxsb3cgaXQgdG8gYmUgaW5pdGlhbGl6ZWQgb25jZS4KKyAgICBzdGF0aWMgaW50
IGluaXRpYWxpemVkID0gMDsKKyAgICBpZiAoIU9TQXRvbWljQ29tcGFyZUFuZFN3YXBJbnQoMCwg
MSwgJmluaXRpYWxpemVkKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGNvb2tpZVN0b3JhZ2VTaGltQ2FsbGJhY2tzID0gY2Fs
bGJhY2tzOworfQorICAgIAorfQorCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1M
aWJyYXJ5LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltTGli
cmFyeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIwZjBhMmZjMzg2OTg1MGVlYTU1MDkxNTJiNGUwMjIyMzZhYWVk
YWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0
b3JhZ2VTaGltTGlicmFyeS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IENvb2tpZVN0b3JhZ2VTaGltTGlicmFyeV9oCisjZGVmaW5lIENvb2tpZVN0b3JhZ2VTaGltTGli
cmFyeV9oCisKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCit0eXBlZGVmIHN0cnVjdCBP
cGFxdWVDRkhUVFBDb29raWVTdG9yYWdlKiAgQ0ZIVFRQQ29va2llU3RvcmFnZVJlZjsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBDb29raWVTdG9yYWdlU2hpbUNhbGxiYWNrcyB7Cisg
ICAgQ0ZEaWN0aW9uYXJ5UmVmICgqY29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRz
Rm9yVVJMKShDRkhUVFBDb29raWVTdG9yYWdlUmVmIGluQ29va2llU3RvcmFnZSwgQ0ZVUkxSZWYg
aW5SZXF1ZXN0VVJMKTsKK307CisKK3R5cGVkZWYgdm9pZCAoKkNvb2tpZVN0b3JhZ2VTaGltSW5p
dGlhbGl6ZUZ1bmMpKGNvbnN0IENvb2tpZVN0b3JhZ2VTaGltQ2FsbGJhY2tzJiBjYWxsYmFja3Mp
OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisjZW5kaWYgLy8g
Q29va2llU3RvcmFnZVNoaW1MaWJyYXJ5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvRFlMREludGVycG9zZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9EWUxE
SW50ZXJwb3NlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTg2OWI0NGYzMzM2ZDRlNmJmNzBjMWFlNjQ2ZWRkYTFj
OTM3MDVkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvRFlM
REludGVycG9zZS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERZTERJ
bnRlcnBvc2VfaAorI2RlZmluZSBEWUxESW50ZXJwb3NlX2gKKworI2lmZGVmIERZTERfSU5URVJQ
T1NFCisjdW5kZWYgRFlMRF9JTlRFUlBPU0UKKyNlbmRpZgorCisjZGVmaW5lIERZTERfSU5URVJQ
T1NFKF9yZXBsYWNlbWVudCwgX3JlcGxhY2VlKSBcCisgICAgX19hdHRyaWJ1dGVfXygodXNlZCkp
IHN0YXRpYyBzdHJ1Y3QgeyBjb25zdCB2b2lkKiByZXBsYWNlbWVudDsgY29uc3Qgdm9pZCogcmVw
bGFjZWU7IH0gX2ludGVycG9zZV8jI19yZXBsYWNlZSBcCisgICAgX19hdHRyaWJ1dGVfXyAoKHNl
Y3Rpb24gKCJfX0RBVEEsX19pbnRlcnBvc2UiKSkpID0geyAoY29uc3Qgdm9pZCopKHVuc2lnbmVk
IGxvbmcpJl9yZXBsYWNlbWVudCwgKGNvbnN0IHZvaWQqKSh1bnNpZ25lZCBsb25nKSZfcmVwbGFj
ZWUgfTsKKworI2VuZGlmIC8vIERZTERJbnRlcnBvc2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpp
bmRleCA3YjJlZGM4YWM2NzFmZTFmZTc4YTI0NDIxNjVlZjUwMzU0ZWMxZTYwLi5kYjdjMDg0ZTQ1
YTUyOTU0NWIzNzE3NzJhMDNkNzU1OTcyODRjZmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpA
QCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyB2b2lkIGFkZERZTERFbnZpcm9ubWVudEFkZGl0aW9u
cyhjb25zdCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhCiAgICAgICAgIE5TU3Ry
aW5nICpwcm9jZXNzUGF0aCA9IFt3ZWJLaXQyQnVuZGxlIHBhdGhGb3JBdXhpbGlhcnlFeGVjdXRh
YmxlOkAiV2ViUHJvY2Vzcy5hcHAiXTsKICAgICAgICAgTlNTdHJpbmcgKnByb2Nlc3NBcHBFeGVj
dXRhYmxlUGF0aCA9IFtbTlNCdW5kbGUgYnVuZGxlV2l0aFBhdGg6cHJvY2Vzc1BhdGhdIGV4ZWN1
dGFibGVQYXRoXTsKIAotICAgICAgICBwcm9jZXNzU2hpbVBhdGhOU1N0cmluZyA9IFtbcHJvY2Vz
c0FwcEV4ZWN1dGFibGVQYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF0gc3Ry
aW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiU2VjSXRlbVNoaW0uZHlsaWIiXTsKKyAgICAg
ICAgcHJvY2Vzc1NoaW1QYXRoTlNTdHJpbmcgPSBbW3Byb2Nlc3NBcHBFeGVjdXRhYmxlUGF0aCBz
dHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENv
bXBvbmVudDpAIldlYlByb2Nlc3NTaGltLmR5bGliIl07CiAgICAgfSBlbHNlIGlmIChsYXVuY2hP
cHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVuY2hlcjo6TmV0d29ya1Byb2Nlc3MpIHsK
ICAgICAgICAgTlNTdHJpbmcgKnByb2Nlc3NQYXRoID0gW3dlYktpdDJCdW5kbGUgcGF0aEZvckF1
eGlsaWFyeUV4ZWN1dGFibGU6QCJOZXR3b3JrUHJvY2Vzcy5hcHAiXTsKICAgICAgICAgTlNTdHJp
bmcgKnByb2Nlc3NBcHBFeGVjdXRhYmxlUGF0aCA9IFtbTlNCdW5kbGUgYnVuZGxlV2l0aFBhdGg6
cHJvY2Vzc1BhdGhdIGV4ZWN1dGFibGVQYXRoXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4ZmFkM2Q4YzU4MWI1YzJhNTEzM2M3
YjViODVlNDE1MjIyNTI1ZmJhLi5kMjM0MjlkYmVmNzM4YTM2YzQ0Yjk1YTAwMWEyYmQxYTA2Yzdh
NTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC00ODgsNyArNDg4LDYgQEAKIAkJNTE4MjlEQTYxNjM3QzcwQzAwMDk1M0Q2IC8q
IE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODI5REE0MTYzN0M3MEMwMDA5NTNENiAvKiBOZXR3b3Jr
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggKi87IH07CiAJCTUxODM0NTkyMTM0NTMyRTkwMDkyQjY5
NiAvKiBXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4MzQ1OTAxMzQ1MzJFODAwOTJCNjk2IC8qIFdlYkljb25E
YXRhYmFzZUNsaWVudC5jcHAgKi87IH07CiAJCTUxODM0NTkzMTM0NTMyRTkwMDkyQjY5NiAvKiBX
ZWJJY29uRGF0YWJhc2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxODM0NTkxMTM0NTMyRTgwMDkyQjY5NiAvKiBXZWJJY29uRGF0YWJhc2VD
bGllbnQuaCAqLzsgfTsKLQkJNTE4M0IzOTIxMzc5RjdCODAwRTg3NTRFIC8qIFNlY0l0ZW1TaGlt
LmR5bGliIGluIENvcHkgU2VjIEl0ZW0gU2hpbSAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyogU2VjSXRlbVNoaW0uZHlsaWIgKi87
IH07CiAJCTUxODNEREVDMTYzMEJERkMwMDhCRTVDNyAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEw
NUIwRDQxNjJGN0E3QTAwRTI3NzA5IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi87
IH07CiAJCTUxODcxQjVCMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg3MUI1OTEyN0NC
ODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuY3BwICovOyB9OwogCQk1MTg3MUI1QzEyN0NC
ODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODcxQjVBMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250
ZXh0TWVudS5oICovOyB9OwpAQCAtMTA4MCw2ICsxMDc5LDcgQEAKIAkJQzVFMUFGRUQxNkIyMTAx
NzAwNkNDMUYyIC8qIFdlYkFyY2hpdmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDMzI5RDlBMTZBQ0NFOTkwMDMxNkRFMiAvKiBXZWJBcmNoaXZlLmgg
Ki87IH07CiAJCUM1RTFBRkVFMTZCMjEwMjUwMDZDQzFGMiAvKiBXZWJBcmNoaXZlUmVzb3VyY2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzMjlE
OUUxNkFDRDQ3ODAwMzE2REUyIC8qIFdlYkFyY2hpdmVSZXNvdXJjZS5jcHAgKi87IH07CiAJCUM1
RTFBRkVGMTZCMjEwMjkwMDZDQzFGMiAvKiBXZWJBcmNoaXZlUmVzb3VyY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzI5RDlGMTZBQ0Q0NzgwMDMx
NkRFMiAvKiBXZWJBcmNoaXZlUmVzb3VyY2UuaCAqLzsgfTsKKwkJQ0Q0NzFGNUQxNzIxQkMzRTAw
RDY1Q0RBIC8qIGxpYldURi5hIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q0NzFGNUMxNzIxQkMzRTAwRDY1Q0RBIC8qIGxpYldURi5hICovOyB9Owog
CQlDRDVDNjZBMDEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVl
bkNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDVDNjY5RTEzNEI5RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVl
bkNsaWVudC5jcHAgKi87IH07CiAJCUNENUM2NkExMTM0QjlEMzgwMDRGRTJBOCAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oICovOyB9OwogCQlDRDY3RDMwRTE1QzA4RjlBMDA4
NDNBREYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2N0QzMDgxNUMw
N0JFMDAwODQzQURGIC8qIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmNwcCAqLzsgfTsKQEAgLTEwODcsNiArMTA4NywxMyBAQAogCQlDRDczQkE0NzEzMUFDQzlBMDBF
RURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0NTEzMUFD
Qzg4MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi87IH07CiAJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDczQkE0ODEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDRDczQkE1MzEzMUI2NDVCMDBFRURF
RDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBMzcxMzFBMjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmNwcCAqLzsgfTsKKwkJQ0RDMzgyRkUxNzIxMTc5OTAwOEEyRkMzIC8qIFNl
Y0l0ZW1TaGltTGlicmFyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMUY4QTc4MTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnku
bW0gKi87IH07CisJCUNEQzM4MzAwMTcyMTE3OTkwMDhBMkZDMyAvKiBDRk5ldHdvcmsuZnJhbWV3
b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RD
MzgyRjcxNzIxMTUwNjAwOEEyRkMzIC8qIENGTmV0d29yay5mcmFtZXdvcmsgKi87IH07CisJCUNE
QzM4MzAxMTcyMTE3OTkwMDhBMkZDMyAvKiBTZWN1cml0eS5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y1MDY4NDEyNDMxODYxMDA1
OTU1QUUgLyogU2VjdXJpdHkuZnJhbWV3b3JrICovOyB9OworCQlDREMzODMwNzE3MjExN0REMDA4
QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzM4MkY5MTcyMTE2RDMwMDhBMkZDMyAvKiBD
b29raWVTdG9yYWdlU2hpbUxpYnJhcnkuY3BwICovOyB9OworCQlDREMzODMwODE3MjExODkwMDA4
QTJGQzMgLyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIgaW4gQ29weSBXZWJQcm9jZXNzU2hpbSAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREMzODMwNjE3MjExNzk5MDA4QTJGQzMg
LyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIgKi87IH07CisJCUNEQzM4MzBDMTcyMTIyODIwMDhBMkZD
MyAvKiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzM4MzBCMTcyMTIxQ0UwMDhBMkZDMyAvKiBDb29raWVT
dG9yYWdlU2hpbUxpYnJhcnkuaCAqLzsgfTsKKwkJQ0RDMzgzMTAxNzIxMjQ0MDAwOEEyRkMzIC8q
IENvb2tpZVN0b3JhZ2VTaGltLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEQzM4MzBEMTcyMTI0MkQwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hp
bS5jcHAgKi87IH07CiAJCUNEQ0E4NUM4MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RDQTg1QzYxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIubW0gKi87IH07CiAJCUNEQ0E4NUM5MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlci5oICovOyB9OwogCQlDRENBODVFRTEzMkFENzAxMDBFOTYxREYgLyogV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E4NURFMTMyQUQwNTMwMEU5NjFERiAvKiBXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5TWFjLm1tICovOyB9OwpAQCAtMTIxOCwxMyArMTIyNSw2IEBACiAJCQly
ZW1vdGVHbG9iYWxJRFN0cmluZyA9IDhEQzJFRjRGMDQ4NkE2OTQwMDk4QjIxNjsKIAkJCXJlbW90
ZUluZm8gPSBXZWJLaXQyOwogCQl9OwotCQk1MTgzQjM4RDEzNzlGNTQ2MDBFODc1NEUgLyogUEJY
Q29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5
OwotCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2pl
Y3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJlbW90ZUdsb2JhbElEU3RyaW5n
ID0gNTEwMDMxRUExMzc5Q0FDQjAwQzhERkU0OwotCQkJcmVtb3RlSW5mbyA9IFNlY0l0ZW1TaGlt
OwotCQl9OwogCQlCQzc3Rjk1NTE2RDA0NTkxMDBGOEY3OEEgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwogCQkJY29udGFpbmVy
UG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwpA
QCAtMTMyMyw2ICsxMzIzLDEzIEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IEJDREUwOTMz
MTMyNzI0OTYwMDEyNTlGQjsKIAkJCXJlbW90ZUluZm8gPSAiUGx1Z2luIFByb2Nlc3MiOwogCQl9
OworCQlDREMzODMwOTE3MjExQUJFMDA4QTJGQzMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICov
ID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFs
ID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJv
eHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gQ0RDMzgyRkIxNzIxMTc5OTAw
OEEyRkMzOworCQkJcmVtb3RlSW5mbyA9IFdlYlByb2Nlc3NTaGltOworCQl9OwogCQlFMTNBOEE0
QzE2Mjg3QTVCMDAzOTI5MjkgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewogCQkJaXNh
ID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwogCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBG
RTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwpAQCAtMTM1MywxNSArMTM2MCwx
NSBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwotCQk1MTgzQjM4RjEzNzlGNTY4MDBFODc1NEUgLyogQ29weSBTZWMgSXRlbSBTaGltICov
ID0geworCQk1MTgzQjM4RjEzNzlGNTY4MDBFODc1NEUgLyogQ29weSBXZWJQcm9jZXNzU2hpbSAq
LyA9IHsKIAkJCWlzYSA9IFBCWENvcHlGaWxlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1h
c2sgPSAyMTQ3NDgzNjQ3OwogCQkJZHN0UGF0aCA9IFdlYlByb2Nlc3MuYXBwL0NvbnRlbnRzL01h
Y09TOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDE2OwogCQkJZmlsZXMgPSAoCi0JCQkJNTE4M0Iz
OTIxMzc5RjdCODAwRTg3NTRFIC8qIFNlY0l0ZW1TaGltLmR5bGliIGluIENvcHkgU2VjIEl0ZW0g
U2hpbSAqLywKKwkJCQlDREMzODMwODE3MjExODkwMDA4QTJGQzMgLyogV2ViUHJvY2Vzc1NoaW0u
ZHlsaWIgaW4gQ29weSBXZWJQcm9jZXNzU2hpbSAqLywKIAkJCSk7Ci0JCQluYW1lID0gIkNvcHkg
U2VjIEl0ZW0gU2hpbSI7CisJCQluYW1lID0gIkNvcHkgV2ViUHJvY2Vzc1NoaW0iOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CiAJCTVEMUEyMzkwMTVF
NzVCMTAwMDIzRTk4MSAvKiBDb3B5IE1lc3NhZ2UgR2VuZXJhdGlvbiBTY3JpcHRzICovID0gewpA
QCAtMjUzMyw2ICsyNTQwLDggQEAKIAkJQzU1NEZGQTIxMkU0RThFQTAwMkYyMkMwIC8qIFdlYkRy
YWdDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJEcmFnQ2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTc0QTU3
RjEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBhc3RlYm9hcmRUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDNTc0QTU4MDEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFzdGVib2FyZFR5cGVzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ3MUY1QjE3MjFCOTk5MDBENjVDREEg
LyogRFlMREludGVycG9zZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEWUxESW50ZXJwb3NlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDcxRjVDMTcyMUJDM0UwMEQ2NUNEQSAvKiBsaWJX
VEYuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGFy
Y2hpdmUuYXI7IG5hbWUgPSBsaWJXVEYuYTsgcGF0aCA9IC4uLy4uLy4uLy4uLy4uLy4uLy4uLy4u
L3Vzci9sb2NhbC9saWIvbGliV1RGLmE7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
NUM2NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xp
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVu
ZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVl
bkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
NjdEMzA4MTVDMDdCRTAwMDg0M0FERiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmpl
Y3RlZEJ1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNTQ3LDYgKzI1NTYsMTIgQEAKIAkJQ0Q3M0JBNDgxMzFBQ0Q4RTAw
RUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JBNDkxMzFB
Q0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDczQkE0QTEzMUFDRDhGMDBFRURFRDIgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDREMzODJGNzE3MjExNTA2MDA4QTJGQzMgLyogQ0ZOZXR3
b3JrLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ0ZOZXR3b3JrLmZyYW1ld29yazsgcGF0
aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NGTmV0d29yay5mcmFtZXdvcms7IHNvdXJj
ZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CisJCUNEQzM4MkY5MTcyMTE2RDMwMDhBMkZDMyAvKiBD
b29raWVTdG9yYWdlU2hpbUxpYnJhcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29va2llU3Rv
cmFnZVNoaW1MaWJyYXJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDMzgz
MDYxNzIxMTc5OTAwOEEyRkMzIC8qIFdlYlByb2Nlc3NTaGltLmR5bGliICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGli
IjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gV2ViUHJvY2Vzc1NoaW0uZHlsaWI7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUNEQzM4MzBCMTcyMTIxQ0UwMDhBMkZD
MyAvKiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llU3Rv
cmFnZVNoaW1MaWJyYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQzM4MzBE
MTcyMTI0MkQwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb29raWVTdG9yYWdlU2hpbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNEQzM4MzBFMTcyMTI0MkQwMDhBMkZDMyAvKiBDb29raWVTdG9y
YWdlU2hpbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWVTdG9yYWdl
U2hpbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRENBODVDNjEzMkFCQTRFMDBF
OTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E4NUM3MTMyQUJBNEUwMEU5NjFERiAv
KiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0RDQTg1RDQxMzJBQzJCMzAwRTk2MURGIC8qIElPS2l0LmZyYW1ld29y
ayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBw
ZXIuZnJhbWV3b3JrOyBuYW1lID0gSU9LaXQuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvSU9LaXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4i
OyB9OwpAQCAtMjc4Nyw2ICsyODAyLDE2IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CisJCUNEQzM4MkZGMTcyMTE3OTkwMDhBMkZDMyAv
KiBGcmFtZXdvcmtzICovID0geworCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJQ0Q0NzFG
NUQxNzIxQkMzRTAwRDY1Q0RBIC8qIGxpYldURi5hIGluIEZyYW1ld29ya3MgKi8sCisJCQkJQ0RD
MzgzMDAxNzIxMTc5OTAwOEEyRkMzIC8qIENGTmV0d29yay5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLywKKwkJCQlDREMzODMwMTE3MjExNzk5MDA4QTJGQzMgLyogU2VjdXJpdHkuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CisJCX07CiAJCUUxM0E4QTI5MTYyODc5QUMwMDM5MjkyOSAvKiBGcmFtZXdv
cmtzICovID0gewogCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMjgxOCw2ICsyODQzLDcgQEAKIAkJCQlCQ0FGMzU5
QTE2Q0ExRDU3MDBENEU5RkMgLyogT2ZmbGluZVN0b3JhZ2VQcm9jZXNzLmFwcCAqLywKIAkJCQlC
Q0FGMzVGMTE2Q0EyNjM4MDBENEU5RkMgLyogY29tLmFwcGxlLldlYktpdC5PZmZsaW5lU3RvcmFn
ZS54cGMgKi8sCiAJCQkJQkNBRjM2MDQxNkNBMjY2OTAwRDRFOUZDIC8qIGNvbS5hcHBsZS5XZWJL
aXQuT2ZmbGluZVN0b3JhZ2UuRGV2ZWxvcG1lbnQueHBjICovLAorCQkJCUNEQzM4MzA2MTcyMTE3
OTkwMDhBMkZDMyAvKiBXZWJQcm9jZXNzU2hpbS5keWxpYiAqLywKIAkJCSk7CiAJCQluYW1lID0g
UHJvZHVjdHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjgyNyw2ICsyODUzLDcg
QEAKIAkJMDg2N0Q2OTFGRTg0MDI4RkMwMkFBQzA3IC8qIFdlYktpdDIgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUNENDcxRjVDMTcyMUJDM0UwMEQ2NUNE
QSAvKiBsaWJXVEYuYSAqLywKIAkJCQlCMzk2RUE1NTEyRTBFRDJEMDBGNEZFQjcgLyogY29uZmln
LmggKi8sCiAJCQkJMzJEQkNGNUUwMzcwQURFRTAwQzkxNzgzIC8qIFdlYktpdDJQcmVmaXguaCAq
LywKIAkJCQlDMENFNzJEQjEyNDdFOEY3MDBCQzBFQzQgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAq
LywKQEAgLTI4NzcsNiArMjkwNCw3IEBACiAJCTEwNThDN0IwRkVBNTU4NUUxMUNBMkNCQiAvKiBM
aW5rZWQgRnJhbWV3b3JrcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJQ0RDMzgyRjcxNzIxMTUwNjAwOEEyRkMzIC8qIENGTmV0d29yay5mcmFtZXdvcmsg
Ki8sCiAJCQkJMDg2N0Q2QTVGRTg0MDMwN0MwMkFBQzA3IC8qIEFwcEtpdC5mcmFtZXdvcmsgKi8s
CiAJCQkJMUFBREU2RkUxMEQ4NTVGQzAwRDNENjNEIC8qIEFwcGxpY2F0aW9uU2VydmljZXMuZnJh
bWV3b3JrICovLAogCQkJCTFBQTFDRDA2MTAwRkExQkEwMDc4REVCQyAvKiBDYXJib24uZnJhbWV3
b3JrICovLApAQCAtNDE4OSw2ICs0MjE3LDExIEBACiAJCQkJMUEyQTRBRkUxNTg2OTM5MjAwOTBD
OUU5IC8qIENvbG9yU3BhY2VEYXRhLmggKi8sCiAJCQkJMUEyQTRBRkQxNTg2OTM5MjAwOTBDOUU5
IC8qIENvbG9yU3BhY2VEYXRhLm1tICovLAogCQkJCTFBNkY5RkI2MTFFMTQwODUwMERCMTM3MSAv
KiBDb21tYW5kTGluZU1hYy5jcHAgKi8sCisJCQkJQ0RDMzgyRjkxNzIxMTZEMzAwOEEyRkMzIC8q
IENvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5jcHAgKi8sCisJCQkJQ0RDMzgzMEIxNzIxMjFDRTAw
OEEyRkMzIC8qIENvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5oICovLAorCQkJCUNEQzM4MzBEMTcy
MTI0MkQwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbS5jcHAgKi8sCisJCQkJQ0RDMzgzMEUx
NzIxMjQyRDAwOEEyRkMzIC8qIENvb2tpZVN0b3JhZ2VTaGltLmggKi8sCisJCQkJQ0Q0NzFGNUIx
NzIxQjk5OTAwRDY1Q0RBIC8qIERZTERJbnRlcnBvc2UuaCAqLywKIAkJCQkxQTkyREMxMjEyRjhC
QUI5MDAxN0FGNjUgLyogTGF5ZXJUcmVlQ29udGV4dE1hYy5tbSAqLywKIAkJCQlDMDJCRkYxRDEy
NTE1MDJFMDA5Q0NCRUEgLyogTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbSAqLywKIAkJCQkz
MUVBMjVEMDEzNEY3OEIyMDA1QjE0NTIgLyogTmF0aXZlV2ViTW91c2VFdmVudE1hYy5tbSAqLywK
QEAgLTUyOTIsNiArNTMyNSw3IEBACiAJCQkJMUE4RUY0Q0IxMjUyNDAzNzAwRjcwNjdGIC8qIFBs
dWdpbkNvbnRyb2xsZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RUY5NkYxMjUyQUY2
QjAwRjcwNjdGIC8qIFBsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTE3OTc4MDEzN0VFODJDMDBGOTdENDUgLyogUGx1Z2luQ3JlYXRpb25QYXJhbWV0
ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDREMzODMwQzE3MjEyMjgyMDA4QTJGQzMgLyogQ29v
a2llU3RvcmFnZVNoaW1MaWJyYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUVGQ0MxMjExRDAx
Rjk2MDA4MjE5RDMgLyogUGx1Z2luSW5mb1N0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTNE
NjEwMjEzQTdDQzJBMDBGOTVENEUgLyogUGx1Z2luTW9kdWxlSW5mby5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUEwNDM5NzYxMjREMDM0ODAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3MuaCBpbiBIZWFk
ZXJzICovLApAQCAtNTY3Nyw2ICs1NzExLDEzIEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CisJCUNEQzM4MkZDMTcyMTE3OTkwMDhBMkZD
MyAvKiBIZWFkZXJzICovID0geworCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CisJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAvKiBFbmQgUEJYSGVh
ZGVyc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhOYXRpdmVUYXJnZXQgc2Vj
dGlvbiAqLwpAQCAtNTY4NiwxMyArNTcyNywxMyBAQAogCQkJYnVpbGRQaGFzZXMgPSAoCiAJCQkJ
MUE1MERCMUExMTBBM0JEQzAwMEQzRkU1IC8qIFJlc291cmNlcyAqLywKIAkJCQkxQTUwREIxQjEx
MEEzQkRDMDAwRDNGRTUgLyogU291cmNlcyAqLywKLQkJCQk1MTgzQjM4RjEzNzlGNTY4MDBFODc1
NEUgLyogQ29weSBTZWMgSXRlbSBTaGltICovLAorCQkJCTUxODNCMzhGMTM3OUY1NjgwMEU4NzU0
RSAvKiBDb3B5IFdlYlByb2Nlc3NTaGltICovLAogCQkJCUJDNUQyNEIwMTZDQzNGMjgwMDdENTQ2
MSAvKiBGcmFtZXdvcmtzICovLAogCQkJKTsKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwogCQkJ
ZGVwZW5kZW5jaWVzID0gKAotCQkJCTUxODNCMzhFMTM3OUY1NDYwMEU4NzU0RSAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAorCQkJCUNEQzM4MzBBMTcyMTFBQkUwMDhBMkZDMyAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAogCQkJCTFBNTBEQjI3MTEwQTNCRUYwMDBEM0ZFNSAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBXZWJQcm9jZXNzOwpAQCAtNTk3MSw2
ICs2MDEyLDIzIEBACiAJCQlwcm9kdWN0UmVmZXJlbmNlID0gQkNERTA5NDIxMzI3MjQ5NjAwMTI1
OUZCIC8qIFBsdWdpblByb2Nlc3MuYXBwICovOwogCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxl
LnByb2R1Y3QtdHlwZS5hcHBsaWNhdGlvbiI7CiAJCX07CisJCUNEQzM4MkZCMTcyMTE3OTkwMDhB
MkZDMyAvKiBXZWJQcm9jZXNzU2hpbSAqLyA9IHsKKwkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsK
KwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBDREMzODMwMjE3MjExNzk5MDA4QTJGQzMgLyog
QnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIldlYlByb2Nlc3NT
aGltIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCUNEQzM4MkZDMTcyMTE3OTkwMDhBMkZD
MyAvKiBIZWFkZXJzICovLAorCQkJCUNEQzM4MkZEMTcyMTE3OTkwMDhBMkZDMyAvKiBTb3VyY2Vz
ICovLAorCQkJCUNEQzM4MkZGMTcyMTE3OTkwMDhBMkZDMyAvKiBGcmFtZXdvcmtzICovLAorCQkJ
KTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsK
KwkJCW5hbWUgPSBXZWJQcm9jZXNzU2hpbTsKKwkJCXByb2R1Y3ROYW1lID0gUGx1Z2luUHJvY2Vz
c1NoaW07CisJCQlwcm9kdWN0UmVmZXJlbmNlID0gQ0RDMzgzMDYxNzIxMTc5OTAwOEEyRkMzIC8q
IFdlYlByb2Nlc3NTaGltLmR5bGliICovOworCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnBy
b2R1Y3QtdHlwZS5saWJyYXJ5LmR5bmFtaWMiOworCQl9OwogCQlFMTNBOEEyQjE2Mjg3OUFDMDAz
OTI5MjkgLyogU2hhcmVkV29ya2VyUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWE5hdGl2ZVRh
cmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBFMTNBOEE0QTE2Mjg3OUFDMDAzOTI5
MjkgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIlNoYXJl
ZFdvcmtlclByb2Nlc3MiICovOwpAQCAtNjAyMyw2ICs2MDgxLDcgQEAKIAkJCQlDMENFNzI4NTEy
NDdFNjY4MDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTFBQzI1RkFGMTJBNDhF
QTcwMEJEMjY3MSAvKiBQbHVnaW5Qcm9jZXNzU2hpbSAqLywKIAkJCQk1MTAwMzFFQTEzNzlDQUNC
MDBDOERGRTQgLyogU2VjSXRlbVNoaW0gKi8sCisJCQkJQ0RDMzgyRkIxNzIxMTc5OTAwOEEyRkMz
IC8qIFdlYlByb2Nlc3NTaGltICovLAogCQkJCUJDM0RFNDY1MTVBOTE3NjMwMDhEMjZGQyAvKiBX
ZWJDb250ZW50ICovLAogCQkJCUJDQUU5REU4MTYwQzA5NzQwMEEzMzIxNyAvKiBXZWJDb250ZW50
LkRldmVsb3BtZW50ICovLAogCQkJCUJDODI4M0IwMTZCNEJGNzcwMEEyNzhGRSAvKiBOZXR3b3Jr
aW5nICovLApAQCAtNjYyNyw2ICs2Njg2LDcgQEAKIAkJCQk5MzlBRTc2NjEzMTZFOTlDMDBBRTA2
QTYgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTIz
MjYzMTIyQzZDRjMwMEQ1QzM1QSAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQk1MTJGNTg5QTEyQTg4Mzg4MDA2Mjk1MzAgLyogV2ViQ3JlZGVudGlhbC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlDREMzODMxMDE3MjEyNDQwMDA4QTJGQzMgLyogQ29va2ll
U3RvcmFnZVNoaW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjZBMjVGREMxMkFEQzZDQzAwREM0
MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNjJBNzZC
NjEyQjFCMjVGMDAwNUYxQjYgLyogV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUY2MkE3NjVDMTJCMUFCQzMwMDA1RjFCNiAvKiBXZWJEYXRh
YmFzZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTY5NzgsNiArNzAzOCwxNSBA
QAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OworCQlDREMzODJGRDE3MjExNzk5MDA4QTJGQzMgLyogU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
KwkJCWZpbGVzID0gKAorCQkJCUNEQzM4MzA3MTcyMTE3REQwMDhBMkZDMyAvKiBDb29raWVTdG9y
YWdlU2hpbUxpYnJhcnkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RDMzgyRkUxNzIxMTc5OTAw
OEEyRkMzIC8qIFNlY0l0ZW1TaGltTGlicmFyeS5tbSBpbiBTb3VyY2VzICovLAorCQkJKTsKKwkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQlFMTNBOEEy
ODE2Mjg3OUFDMDAzOTI5MjkgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNC
dWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTcwMTQsMTEg
KzcwODMsNiBAQAogCQkJdGFyZ2V0ID0gOERDMkVGNEYwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktp
dDIgKi87CiAJCQl0YXJnZXRQcm94eSA9IDUxMENDODUwMTYxM0M5OEQwMEQwM0VEMyAvKiBQQlhD
b250YWluZXJJdGVtUHJveHkgKi87CiAJCX07Ci0JCTUxODNCMzhFMTM3OUY1NDYwMEU4NzU0RSAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewotCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5j
eTsKLQkJCXRhcmdldCA9IDUxMDAzMUVBMTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVtU2hpbSAq
LzsKLQkJCXRhcmdldFByb3h5ID0gNTE4M0IzOEQxMzc5RjU0NjAwRTg3NTRFIC8qIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKIAkJQkM3N0Y5NTYxNkQwNDU5MTAwRjhGNzhBIC8qIFBC
WFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5Owog
CQkJdGFyZ2V0ID0gQkM4MjgzRjgxNkI0RkRERTAwQTI3OEZFIC8qIFBsdWdpbi4zMiAqLzsKQEAg
LTcwODksNiArNzE1MywxMSBAQAogCQkJdGFyZ2V0ID0gQkNERTA5MzMxMzI3MjQ5NjAwMTI1OUZC
IC8qIFBsdWdpblByb2Nlc3MgKi87CiAJCQl0YXJnZXRQcm94eSA9IEJDREUwQUMwMTMyNzI3MTIw
MDEyNTlGQiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07CisJCUNEQzM4MzBBMTcy
MTFBQkUwMDhBMkZDMyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJY
VGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IENEQzM4MkZCMTcyMTE3OTkwMDhBMkZDMyAv
KiBXZWJQcm9jZXNzU2hpbSAqLzsKKwkJCXRhcmdldFByb3h5ID0gQ0RDMzgzMDkxNzIxMUFCRTAw
OEEyRkMzIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJRTEzQThBNEQxNjI4
N0E1QjAwMzkyOTI5IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhU
YXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gRTEzQThBMkIxNjI4NzlBQzAwMzkyOTI5IC8q
IFNoYXJlZFdvcmtlclByb2Nlc3MgKi87CkBAIC03NTU0LDYgKzc2MjMsMzAgQEAKIAkJCX07CiAJ
CQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJQ0RDMzgzMDMxNzIxMTc5OTAwOEEyRkMzIC8q
IERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29u
ZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxODNCMzkzMTM3OUY4NUMwMEU4NzU0RSAvKiBTaGltLnhj
Y29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSBXZWJQ
cm9jZXNzU2hpbTsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCUNEQzM4MzA0MTcy
MTE3OTkwMDhBMkZDMyAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3Vy
YXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxODNCMzkzMTM3OUY4NUMw
MEU4NzU0RSAvKiBTaGltLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQ
Uk9EVUNUX05BTUUgPSBXZWJQcm9jZXNzU2hpbTsKKwkJCX07CisJCQluYW1lID0gUmVsZWFzZTsK
KwkJfTsKKwkJQ0RDMzgzMDUxNzIxMTc5OTAwOEEyRkMzIC8qIFByb2R1Y3Rpb24gKi8gPSB7CisJ
CQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJl
bmNlID0gNTE4M0IzOTMxMzc5Rjg1QzAwRTg3NTRFIC8qIFNoaW0ueGNjb25maWcgKi87CisJCQli
dWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9IFdlYlByb2Nlc3NTaGltOworCQkJ
fTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQlFMTNBOEE0NzE2Mjg3OUFDMDAzOTI5
MjkgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJh
c2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gRTEzQThBNEIxNjI4N0ExQjAwMzkyOTI5IC8qIFNo
YXJlZFdvcmtlclByb2Nlc3MueGNjb25maWcgKi87CkBAIC03NzY4LDYgKzc4NjEsMTYgQEAKIAkJ
CWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1bHRDb25maWd1cmF0
aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJCUNEQzM4MzAyMTcyMTE3OTkwMDhBMkZDMyAv
KiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiV2ViUHJvY2Vz
c1NoaW0iICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29u
ZmlndXJhdGlvbnMgPSAoCisJCQkJQ0RDMzgzMDMxNzIxMTc5OTAwOEEyRkMzIC8qIERlYnVnICov
LAorCQkJCUNEQzM4MzA0MTcyMTE3OTkwMDhBMkZDMyAvKiBSZWxlYXNlICovLAorCQkJCUNEQzM4
MzA1MTcyMTE3OTkwMDhBMkZDMyAvKiBQcm9kdWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRD
b25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9
IFByb2R1Y3Rpb247CisJCX07CiAJCUUxM0E4QTRBMTYyODc5QUMwMDM5MjkyOSAvKiBCdWlsZCBj
b25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiU2hhcmVkV29ya2VyUHJvY2Vz
cyIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1
cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVu
dFByb2Nlc3NNYWluLm1tCmluZGV4IDNhYjEyZDAwZDc0Mzc3YjU2OTVhMDE4ZGY3YmY3ZWViOWQ2
MTVlY2UuLjU0OGQzNzU0MWRiODMzOWJlNDc3NDZlMjViMjMwZjFiMTgxY2RmNDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vz
cy9XZWJDb250ZW50UHJvY2Vzc01haW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbQpA
QCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICAvLyBSZW1vdmUgdGhlIFdl
YlByb2Nlc3Mgc2hpbSBmcm9tIHRoZSBEWUxEX0lOU0VSVF9MSUJSQVJJRVMgZW52aXJvbm1lbnQg
dmFyaWFibGUgc28gYW55IHByb2Nlc3NlcyBzcGF3bmVkIGJ5CiAgICAgICAgIC8vIHRoZSBXZWJQ
cm9jZXNzIGRvbid0IHRyeSB0byBpbnNlcnQgdGhlIHNoaW0gYW5kIGNyYXNoLgotICAgICAgICBF
bnZpcm9ubWVudFV0aWxpdGllczo6c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3RyaW5nKCJEWUxEX0lO
U0VSVF9MSUJSQVJJRVMiLCAiL1NlY0l0ZW1TaGltLmR5bGliIik7CisgICAgICAgIEVudmlyb25t
ZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJ
QlJBUklFUyIsICIvV2ViQ29udGVudFNoaW0uZHlsaWIiKTsKICAgICAKICNpZiBVU0UoQVBQS0lU
KQogICAgICAgICBSdW5Mb29wOjpzZXRVc2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5Mb29w
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby5wbGlzdCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9J
bmZvLnBsaXN0CmluZGV4IDBjMzNkNmNjMzFjZGZkYzdiNzRhNGE5Mjk4YTYxN2E2ZTFlMDE5Yjgu
LjkxYWE3NzQ1MWJkOTRlNGU1MTBjMmZlOTZhODAyNmE3MTZhYmZlYzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250
ZW50U2VydmljZS9JbmZvLnBsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50
cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZvLnBsaXN0CkBAIC00
NSw3ICs0NSw3IEBACiAJCTxrZXk+RW52aXJvbm1lbnRWYXJpYWJsZXM8L2tleT4KIAkJPGRpY3Q+
CiAJCQk8a2V5PkRZTERfSU5TRVJUX0xJQlJBUklFUzwva2V5PgotCQkJPHN0cmluZz4kKFdFQktJ
VDJfRlJBTUVXT1JLU19ESVIpL1dlYktpdDIuZnJhbWV3b3JrL1dlYlByb2Nlc3MuYXBwL0NvbnRl
bnRzL01hY09TL1NlY0l0ZW1TaGltLmR5bGliPC9zdHJpbmc+CisJCQk8c3RyaW5nPiQoV0VCS0lU
Ml9GUkFNRVdPUktTX0RJUikvV2ViS2l0Mi5mcmFtZXdvcmsvV2ViUHJvY2Vzcy5hcHAvQ29udGVu
dHMvTWFjT1MvV2ViQ29udGVudFNoaW0uZHlsaWI8L3N0cmluZz4KIAkJPC9kaWN0PgogCTwvZGlj
dD4KIDwvZGljdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVu
dFNlcnZpY2VFbnRyeVBvaW50Lm1tCmluZGV4IDM0YWI4ZGFjMTMxNjNmOTExMzk2ODEzYjU4YzM4
OGEzZmE3MGE0ZjUuLjU4ODgwY2NhNTg4MmRmODBiZWMzZDViN2EzOTE2MmRiNDg2ODlhZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vy
dmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50
cnlQb2ludC5tbQpAQCAtNDIsNyArNDIsNyBAQCB2b2lkIFdlYkNvbnRlbnRTZXJ2aWNlSW5pdGlh
bGl6ZXIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdAogewog
ICAgIC8vIFJlbW92ZSB0aGUgU2VjSXRlbVNoaW0gZnJvbSB0aGUgRFlMRF9JTlNFUlRfTElCUkFS
SUVTIGVudmlyb25tZW50IHZhcmlhYmxlIHNvIGFueSBwcm9jZXNzZXMgc3Bhd25lZCBieQogICAg
IC8vIHRoZSB0aGlzIHByb2Nlc3MgZG9uJ3QgdHJ5IHRvIGluc2VydCB0aGUgc2hpbSBhbmQgY3Jh
c2guCi0gICAgRW52aXJvbm1lbnRVdGlsaXRpZXM6OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmlu
ZygiRFlMRF9JTlNFUlRfTElCUkFSSUVTIiwgIi9TZWNJdGVtU2hpbS5keWxpYiIpOworICAgIEVu
dmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5T
RVJUX0xJQlJBUklFUyIsICIvV2ViQ29udGVudFNoaW0uZHlsaWIiKTsKIAogICAgIFJ1bkxvb3A6
OnNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3AoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMjRlZjhhYjJkMGI0MmRkZTgzODhjNTEy
NDMwZjg0YjFlZGQ1YzBiZS4uMjE4MTIyOTkxMmZjN2M4ZmMzMDkxMTY3NTY3MDFiMTIxZmIwNjFk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC05MCw2ICs5
MCw3IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisjaW5jbHVkZSAi
Q29va2llU3RvcmFnZVNoaW0uaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
aCIKICNlbmRpZgogCkBAIC0zMzMsNiArMzM0LDkgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFs
aXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWUK
ICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIG1fdXNlc05ldHdvcmtQcm9jZXNzID0g
cGFyYW1ldGVycy51c2VzTmV0d29ya1Byb2Nlc3M7CiAgICAgZW5zdXJlTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKCk7CisKKyAgICBpZiAodXNlc05ldHdvcmtQcm9jZXNzKCkpCisgICAgICAgIENv
b2tpZVN0b3JhZ2VTaGltOjpzaGFyZWQoKS5pbml0aWFsaXplKCk7CiAjZW5kaWYKICAgICBzZXRU
ZXJtaW5hdGlvblRpbWVvdXQocGFyYW1ldGVycy50ZXJtaW5hdGlvblRpbWVvdXQpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbUxpYnJhcnku
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbUxpYnJhcnkubW0K
aW5kZXggNDg4ZjhhY2NlODMyZDUwM2ZhZjI5YjBkNmM1NzE1MjM5MDBmN2RmOS4uZjhiMDI5YTlj
MGFhOWE4N2QwNThlYTZmNDI1MDVmMzVkMWUzZmViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFyeS5tbQpAQCAtMjQsMTMgKzI0LDEw
IEBACiAgKi8KICNpbXBvcnQgIlNlY0l0ZW1TaGltTGlicmFyeS5oIgogCisjaW1wb3J0ICJEWUxE
SW50ZXJwb3NlLmgiCiAjaW1wb3J0IDxTZWN1cml0eS9TZWNJdGVtLmg+CiAjaW1wb3J0IDx3dGYv
UGxhdGZvcm0uaD4KIAotI2RlZmluZSBEWUxEX0lOVEVSUE9TRShfcmVwbGFjZW1lbnQsX3JlcGxh
Y2VlKSBcCi0gICAgX19hdHRyaWJ1dGVfXygodXNlZCkpIHN0YXRpYyBzdHJ1Y3R7IGNvbnN0IHZv
aWQqIHJlcGxhY2VtZW50OyBjb25zdCB2b2lkKiByZXBsYWNlZTsgfSBfaW50ZXJwb3NlXyMjX3Jl
cGxhY2VlIFwKLSAgICBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbiAoIl9fREFUQSxfX2ludGVycG9z
ZSIpKSkgPSB7IChjb25zdCB2b2lkKikodW5zaWduZWQgbG9uZykmX3JlcGxhY2VtZW50LCAoY29u
c3Qgdm9pZCopKHVuc2lnbmVkIGxvbmcpJl9yZXBsYWNlZSB9OwotCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogZXh0ZXJuICJDIiB2b2lkIFdlYktpdFNlY0l0ZW1TaGltSW5pdGlhbGl6ZShjb25zdCBT
ZWNJdGVtU2hpbUNhbGxiYWNrcyYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199114</attachid>
            <date>2013-04-22 15:05:33 -0700</date>
            <delta_ts>2013-04-22 16:56:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114858-20130422150457.patch</filename>
            <type>text/plain</type>
            <size>45338</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjBkZGIwYmEzNDk4MjI3
OTMzOThlNGRmZTdmYmQ2YWU0NWUwMWI3YS4uNWJmZTUyNDhjMWEyNzRjOTM3MjgyZDljMWQyZmYx
M2MwM2E3YWViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEzLTA0LTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFdXREMgc2Vzc2lvbiB2aWRl
b3MgZG9u4oCZdCBwbGF5IGF0IGRldmVsb3Blci5hcHBsZS5jb20KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDg1OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSEuCisKKyAgICAgICAgQVZGb3VuZGF0aW9uIHVzZXMgQ0ZOZXR3b3JrIHRvIHN0
b3JlIGFuZCByZXRyaWV2ZSBjb29raWVzIGZyb20gdGhlIGdsb2JhbCBzdG9yZS4KKyAgICAgICAg
SG93ZXZlciwgaW4gdGhlIGNhc2Ugd2hlcmUgbmV0d29yayBhY2Nlc3MgaGFwcGVucyBpbiB0aGUg
TmV0d29ya1Byb2Nlc3MsIHNlc3Npb24KKyAgICAgICAgY29va2llcyBhcmUgc3RvcmVkIGluLW1l
bW9yeSwgYW5kIGFyZSBub3QgYWNjZXNzYWJsZSBpbiB0aGUgV2ViUHJvY2Vzcy4gVW50aWwgc3Vj
aAorICAgICAgICBhIHRpbWUgYXMgQVZGb3VuZGF0aW9uIGNhbiBwcm92aWRlIGFuIEFQSSB3aGlj
aCB3b3VsZCBhbGxvdyB1cyB0byBwcm92aWRlIGNvb2tpZXMKKyAgICAgICAgZm9yIGEgc3BlY2lm
aWMgcmVxdWVzdCwgd2Ugd2lsbCBpbnRlcnBvc2UgdGhlIENGTmV0d29yayBtZXRob2Qgd2hpY2gg
dGhleSB1c2UgdG8KKyAgICAgICAgcmV0cmlldmUgdGhlIGNvb2tpZSBzdHJpbmcgZnJvbSB0aGUg
Y29va2llIHN0b3JlIGZvciB0aGVpciBwZW5kaW5nIHJlcXVlc3QuCisKKyAgICAgICAgRHVwbGlj
YXRlIHRoZSBwcmV2aW91cyBTZWNJdGVtU2hpbSB0YXJnZXQgdG8gYSBuZXcsIFdlYlByb2Nlc3NT
aGltIHRhcmdldC4gVGhpcworICAgICAgICB0YXJnZXQgaW5jbHVkZXMgdGhlIFNlY0l0ZW1TaGlt
IGZ1bmN0aW9uYWxpdHksIGJ1dCB3aWxsIGFkZCBhIG5ldyBzaGltIGZvciBjb29raWUKKyAgICAg
ICAgcmV0cmlldmFsOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1MaWJy
YXJ5Lmg6IEFkZGVkCisgICAgICAgIChDb29raWVTdG9yYWdlU2hpbUNhbGxiYWNrcyk6CisgICAg
ICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbUxpYnJhcnkuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6U2hpbVByb3RlY3Rvcjo6U2hpbVByb3RlY3Rvcik6IEEgc2ltcGxlIHN0
YWNrLWJhc2VkIGNvdW50ZXIgY2xhc3MuCisgICAgICAgIChXZWJLaXQ6OlNoaW1Qcm90ZWN0b3I6
On5TaGltUHJvdGVjdG9yKToKKyAgICAgICAgKFdlYktpdDo6U2hpbVByb3RlY3Rvcjo6Y291bnQp
OgorICAgICAgICAoV2ViS2l0OjpzaGltQ0ZIVFRQQ29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVh
ZGVyRmllbGRzRm9yVVJMKTogSW50ZXJwb3NlCisgICAgICAgICAgICB0aGUgQ0ZOZXR3b3JrIGNh
bGwsIGFuZCBwYXNzIHRvIHRoZSByZWdpc3RlcmVkIGNhbGxiYWNrLgorICAgICAgICAoV2ViS2l0
OjpXZWJLaXRDb29raWVTdG9yYWdlU2hpbUluaXRpYWxpemUpOiBSZWdpc3RlciB0aGUgY2FsbGJh
Y2tzLgorCisgICAgICAgIEFkZCBhIGhlbHBlciBzaW5nbGV0b24gY2xhc3Mgd2hpY2ggd2lsbCB0
YWxrIHRvIHRoZSBzaGltIHRocm91Z2ggdGhlIAorICAgICAgICByZWdpc3RlcmVkIGNhbGxiYWNr
czoKKyAgICAgICAgKiBTaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmg6IEFkZGVkCisgICAg
ICAgIChXZWJLaXQ6OkNvb2tpZVN0b3JhZ2VTaGltOjpDb29raWVTdG9yYWdlU2hpbSk6CisgICAg
ICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0Ojp3ZWJLaXRDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwp
OiBQYXNzIHRoZSByZXF1ZXN0CisgICAgICAgICAgICBvdmVyIHRvIHRoZSBOZXR3b3JrUHJvY2Vz
cy4KKyAgICAgICAgKFdlYktpdDo6Q29va2llU3RvcmFnZVNoaW06OnNoYXJlZCk6IFNpbXBsZSBz
aW5nbGV0b24uCisgICAgICAgIChXZWJLaXQ6OkNvb2tpZVN0b3JhZ2VTaGltOjppbml0aWFsaXpl
KTogQ2FsbCB0aGUgbGlicmFyeSBpbml0aWFsaXplci4KKworICAgICAgICBJbml0aWFsaXplIHRo
ZSBzaGltIG9ubHkgd2hlbiB0aGUgV2ViUHJvY2VzcyBpcyBkZWxlZ2F0aW5nIG5ldHdvcmsgbG9h
ZGluZworICAgICAgICB0byB0aGUgTmV0d29ya1Byb2Nlc3M6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6
ZVdlYlByb2Nlc3MpOgorCisgICAgICAgIFJlbmFtZSB0aGUgV2ViUHJvY2VzcydzIHNoaW0gZnJv
bSBTZWNJdGVtU2hpbSAtPiBXZWJQcm9jZXNzU2hpbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1
bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6YWRkRFlM
REVudmlyb25tZW50QWRkaXRpb25zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZW50UHJvY2Vzc01haW5EZWxlZ2F0ZTo6ZG9QcmVJbml0aWFsaXphdGlvbldv
cmspOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJD
b250ZW50U2VydmljZS9JbmZvLnBsaXN0OgorICAgICAgICAqIFdlYlByb2Nlc3MvRW50cnlQb2lu
dC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW06CisgICAgICAg
IChXZWJDb250ZW50U2VydmljZUluaXRpYWxpemVyKToKKworICAgICAgICBBcyB0aGUgRFlMRF9J
TlRFUlBPU0UgbWFjcm8gaXMgdXNlZCBpbiBtdWx0aXBsZSBmaWxlcyBub3csIHB1dCBpdCBpbiBp
dHMKKyAgICAgICAgb3duIGhlYWRlcjoKKyAgICAgICAgKiBTaGFyZWQvbWFjL0R5bGRJbnRlcnBv
c2UuaDogQWRkZWQuCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1No
aW0ubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tOgor
CisgICAgICAgIEFkZCBuZXcgZmlsZXMgdG8gdGhlIHByb2plY3Q6CisgICAgICAgICogV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEzLTA0LTE1ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yIGNyZWF0aW9uIG9mIHRoZSBm
dWxsIHNjcmVlbiB3aW5kb3cgaW50byBhbiAob3ZlcnJpZGFibGUpIG1ldGhvZC4KQEAgLTE2Myw3
ICsyMjMsNyBAQAogICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0uaDogUmVt
b3ZlZC4KICAgICAgICAgKiBTaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5jcHA6
IFJlbW92ZWQuCiAgICAgICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbUxpYnJhcnku
aDogUmVtb3ZlZC4KLSAgICAgICAgKiBTaGFyZWQvbWFjL0RZTERJbnRlcnBvc2UuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBTaGFyZWQvbWFjL0R5bGRJbnRlcnBvc2UuaDogUmVtb3ZlZC4KICAgICAg
ICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKICAgICAg
ICAgKFdlYktpdDo6YWRkRFlMREVudmlyb25tZW50QWRkaXRpb25zKToKICAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CkBAIC0yMzIsNyArMjkyLDcgQEAKIAogICAg
ICAgICBBcyB0aGUgRFlMRF9JTlRFUlBPU0UgbWFjcm8gaXMgdXNlZCBpbiBtdWx0aXBsZSBmaWxl
cyBub3csIHB1dCBpdCBpbiBpdHMKICAgICAgICAgb3duIGhlYWRlcjoKLSAgICAgICAgKiBTaGFy
ZWQvbWFjL0RZTERJbnRlcnBvc2UuaDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL21hYy9EeWxk
SW50ZXJwb3NlLmg6IEFkZGVkLgogICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblBy
b2Nlc3NTaGltLm1tOgogICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFy
eS5tbToKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1
Z2luUHJvY2Vzc1NoaW0ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVn
aW5Qcm9jZXNzU2hpbS5tbQppbmRleCA0ZmQwZTU4NzA1YmU2Yzc5NmFjYmQ3NDgyM2Q3N2RiMmFl
ODY5Yzk5Li5iMjVmMWZmMzNhNmYyZmIyYzZhNzkwNTdlNTZkYmM3YTAzMTBiOTdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hpbS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hp
bS5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCA8d3RmL1BsYXRmb3JtLmg+CiAjaW1wb3J0
ICJQbHVnaW5Qcm9jZXNzU2hpbS5oIgogCisjaW1wb3J0ICJEWUxESW50ZXJwb3NlLmgiCiAjaW1w
b3J0IDxBcHBLaXQvQXBwS2l0Lmg+CiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0
IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KQEAgLTM2LDEwICszNyw2IEBACiAjaW5jbHVkZSA8
c3lzL2lwYy5oPgogI2luY2x1ZGUgPHN5cy9tbWFuLmg+CiAKLSNkZWZpbmUgRFlMRF9JTlRFUlBP
U0UoX3JlcGxhY2VtZW50LF9yZXBsYWNlZSkgXAotICAgIF9fYXR0cmlidXRlX18oKHVzZWQpKSBz
dGF0aWMgc3RydWN0eyBjb25zdCB2b2lkKiByZXBsYWNlbWVudDsgY29uc3Qgdm9pZCogcmVwbGFj
ZWU7IH0gX2ludGVycG9zZV8jI19yZXBsYWNlZSBcCi0gICAgX19hdHRyaWJ1dGVfXyAoKHNlY3Rp
b24gKCJfX0RBVEEsX19pbnRlcnBvc2UiKSkpID0geyAoY29uc3Qgdm9pZCopKHVuc2lnbmVkIGxv
bmcpJl9yZXBsYWNlbWVudCwgKGNvbnN0IHZvaWQqKSh1bnNpZ25lZCBsb25nKSZfcmVwbGFjZWUg
fTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGV4dGVybiAiQyIgdm9pZCBXZWJLaXRQbHVnaW5Q
cm9jZXNzU2hpbUluaXRpYWxpemUoY29uc3QgUGx1Z2luUHJvY2Vzc1NoaW1DYWxsYmFja3MmIGNh
bGxiYWNrcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0
b3JhZ2VTaGltLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNo
aW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAyODA5ZmEzMWQ5MDg3OTMxZTY0Y2FiZWRhOGFhOWE4YmJjZmUx
OTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0
b3JhZ2VTaGltLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2VTaGltLmgiCisKKyNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQorCisjaW5jbHVkZSAiQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgiCisj
aW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9LVVJMLmg+Cisj
aW5jbHVkZSA8ZGxmY24uaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgQ0ZE
aWN0aW9uYXJ5UmVmIHdlYktpdENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0Zv
clVSTChDRkhUVFBDb29raWVTdG9yYWdlUmVmIGluQ29va2llU3RvcmFnZSwgQ0ZVUkxSZWYgaW5S
ZXF1ZXN0VVJMKQoreworICAgIFN0cmluZyBjb29raWVzOworICAgIEtVUkwgZmlyc3RQYXJ0eUZv
ckNvb2tpZXNVUkw7CisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVj
dGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTShmYWxzZSwgZmlyc3RQYXJ0eUZvckNvb2tpZXNV
UkwsIGluUmVxdWVzdFVSTCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Q29va2llc0ZvckRPTTo6UmVwbHkoY29va2llcyksIDApKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gY2ZDb29raWVzID0gY29va2llcy5jcmVhdGVD
RlN0cmluZygpOworICAgIHN0YXRpYyBjb25zdCB2b2lkKiBjb29raWVLZXlzW10gPSB7IENGU1RS
KCJDb29raWUiKSB9OworICAgIGNvbnN0IHZvaWQqIGNvb2tpZVZhbHVlc1tdID0geyBjZkNvb2tp
ZXMuZ2V0KCkgfTsKKyAgICByZXR1cm4gQ0ZEaWN0aW9uYXJ5Q3JlYXRlKDAsIGNvb2tpZUtleXMs
IGNvb2tpZVZhbHVlcywgMSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlw
ZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcyk7Cit9CisKK0Nvb2tpZVN0b3JhZ2VTaGltJiBDb29r
aWVTdG9yYWdlU2hpbTo6c2hhcmVkKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvb2tp
ZVN0b3JhZ2VTaGltLCBzdG9yYWdlLCAoKSk7CisgICAgcmV0dXJuIHN0b3JhZ2U7Cit9CisKK3Zv
aWQgQ29va2llU3RvcmFnZVNoaW06OmluaXRpYWxpemUoKQoreworICAgIENvb2tpZVN0b3JhZ2VT
aGltQ2FsbGJhY2tzIGNhbGxiYWNrcyA9IHsgJndlYktpdENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVz
dEhlYWRlckZpZWxkc0ZvclVSTCB9OworICAgIENvb2tpZVN0b3JhZ2VTaGltSW5pdGlhbGl6ZUZ1
bmMgZnVuYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q29va2llU3RvcmFnZVNoaW1Jbml0aWFsaXplRnVu
Yz4oZGxzeW0oUlRMRF9ERUZBVUxULCAiV2ViS2l0Q29va2llU3RvcmFnZVNoaW1Jbml0aWFsaXpl
IikpOworICAgIGlmIChmdW5jKQorICAgICAgICBmdW5jKGNhbGxiYWNrcyk7Cit9CisKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMzMTQxYjc4ZjE1OWFmZmMy
MDViZTk0ZjJhNTRhZjE4YzdiZDY3MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0uaApAQCAtMCwwICsxLDUwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBDb29raWVTdG9yYWdlU2hpbV9oCisjZGVmaW5lIENvb2tpZVN0b3JhZ2VT
aGltX2gKKworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENvb2tpZVN0b3JhZ2VT
aGltIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb29raWVTdG9yYWdlU2hpbSk7CitwdWJs
aWM6CisgICAgc3RhdGljIENvb2tpZVN0b3JhZ2VTaGltJiBzaGFyZWQoKTsKKworICAgIHZvaWQg
aW5pdGlhbGl6ZSgpOworCitwcml2YXRlOgorICAgIENvb2tpZVN0b3JhZ2VTaGltKCkgeyB9Owor
fTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKworI2VuZGlmIC8v
IENvb2tpZVN0b3JhZ2VTaGltX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjM4NzlkZTQxZjNh
YmM2NGRkODQ3OWNhMjZiNGY5MjQxOTE0NGVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbUxpYnJhcnkuY3BwCkBAIC0wLDAgKzEs
OTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29va2ll
U3RvcmFnZVNoaW1MaWJyYXJ5LmgiCisKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisj
aW5jbHVkZSAiRHlsZEludGVycG9zZS5oIgorCitleHRlcm4gIkMiIENGRGljdGlvbmFyeVJlZiBf
Q0ZIVFRQQ29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKENGQWxsb2Nh
dG9yUmVmIGluQWxsb2NhdG9yLCBDRkhUVFBDb29raWVTdG9yYWdlUmVmIGluQ29va2llU3RvcmFn
ZSwgQ0ZVUkxSZWYgaW5SZXF1ZXN0VVJMKTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2V4dGVy
biAiQyIgdm9pZCBXZWJLaXRDb29raWVTdG9yYWdlU2hpbUluaXRpYWxpemUoY29uc3QgQ29va2ll
U3RvcmFnZVNoaW1DYWxsYmFja3MmKTsKKworc3RhdGljIENvb2tpZVN0b3JhZ2VTaGltQ2FsbGJh
Y2tzIGNvb2tpZVN0b3JhZ2VTaGltQ2FsbGJhY2tzOworCitjbGFzcyBTaGltUHJvdGVjdG9yIHsK
K3B1YmxpYzoKKyAgICBTaGltUHJvdGVjdG9yKCkgeyArK21fY291bnQ7IH0KKyAgICB+U2hpbVBy
b3RlY3RvcigpIHsgLS1tX2NvdW50OyB9CisgICAgc3RhdGljIHVuc2lnbmVkIGNvdW50KCkgeyBy
ZXR1cm4gbV9jb3VudDsgfQorcHJpdmF0ZToKKyAgICBfX3RocmVhZCBzdGF0aWMgdW5zaWduZWQg
bV9jb3VudDsKK307CisKK19fdGhyZWFkIHVuc2lnbmVkIFNoaW1Qcm90ZWN0b3I6Om1fY291bnQg
PSAwOworCitzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHNoaW1DRkhUVFBDb29raWVTdG9yYWdlQ29w
eVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwoQ0ZBbGxvY2F0b3JSZWYgaW5BbGxvY2F0b3IsIENG
SFRUUENvb2tpZVN0b3JhZ2VSZWYgaW5Db29raWVTdG9yYWdlLCBDRlVSTFJlZiBpblJlcXVlc3RV
UkwpCit7CisgICAgU2hpbVByb3RlY3RvciBwcm90ZWN0b3I7CisKKyAgICBkbyB7CisgICAgICAg
IC8vIFByb3RlY3QgYWdhaW5zdCB1bmluaXRpYWxpemVkIGNhbGxiYWNrczoKKyAgICAgICAgaWYg
KCFjb29raWVTdG9yYWdlU2hpbUNhbGxiYWNrcy5jb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFk
ZXJGaWVsZHNGb3JVUkwpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBQcm90ZWN0
IGFnYWluc3QgYWNjaWRlbnRhbCByZWN1cnNpb246CisgICAgICAgIEFTU0VSVChTaGltUHJvdGVj
dG9yOjpjb3VudCgpID09IDEpOworICAgICAgICBpZiAoU2hpbVByb3RlY3Rvcjo6Y291bnQoKSA+
IDEpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBDRkRpY3Rpb25hcnlSZWYgcmVzdWx0
cyA9IGNvb2tpZVN0b3JhZ2VTaGltQ2FsbGJhY2tzLmNvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhl
YWRlckZpZWxkc0ZvclVSTChpbkNvb2tpZVN0b3JhZ2UsIGluUmVxdWVzdFVSTCk7CisgICAgICAg
IGlmICghcmVzdWx0cykKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHJldHVybiByZXN1
bHRzOworICAgIH0gd2hpbGUgKDApOworCisgICAgLy8gSWYgd2UndmUgZmFpbGVkIHRvIHJldHJp
ZXZlIHRoZSBjb29raWVzIG1hbnVhbGx5LCBmYWxsIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGltcG9z
ZWQgZnVuY3Rpb246CisgICAgcmV0dXJuIF9DRkhUVFBDb29raWVTdG9yYWdlQ29weVJlcXVlc3RI
ZWFkZXJGaWVsZHNGb3JVUkwoaW5BbGxvY2F0b3IsIGluQ29va2llU3RvcmFnZSwgaW5SZXF1ZXN0
VVJMKTsKK30KKworRFlMRF9JTlRFUlBPU0Uoc2hpbUNGSFRUUENvb2tpZVN0b3JhZ2VDb3B5UmVx
dWVzdEhlYWRlckZpZWxkc0ZvclVSTCwgX0NGSFRUUENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhl
YWRlckZpZWxkc0ZvclVSTCk7CisKK19fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQi
KSkpCit2b2lkIFdlYktpdENvb2tpZVN0b3JhZ2VTaGltSW5pdGlhbGl6ZShjb25zdCBDb29raWVT
dG9yYWdlU2hpbUNhbGxiYWNrcyYgY2FsbGJhY2tzKQoreworICAgIC8vIEJlY2F1c2UgdGhlIHZh
bHVlIG9mIGNvb2tpZVN0b3JhZ2VTaGltQ2FsbGJhY2tzIHdpbGwgYmUgcmVhZCBmcm9tIG11bGl0
cGxlIHRocmVhZHMsCisgICAgLy8gb25seSBhbGxvdyBpdCB0byBiZSBpbml0aWFsaXplZCBvbmNl
LgorICAgIHN0YXRpYyBpbnQgaW5pdGlhbGl6ZWQgPSAwOworICAgIGlmICghT1NBdG9taWNDb21w
YXJlQW5kU3dhcEludCgwLCAxLCAmaW5pdGlhbGl6ZWQpKSB7CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29va2llU3RvcmFnZVNo
aW1DYWxsYmFja3MgPSBjYWxsYmFja3M7Cit9CisgICAgCit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9D
b29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29v
a2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBmMGEyZmMzODY5ODUwZWVhNTUw
OTE1MmI0ZTAyMjIzNmFhZWRhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgKQEAgLTAsMCArMSw0NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5X2gKKyNkZWZpbmUgQ29v
a2llU3RvcmFnZVNoaW1MaWJyYXJ5X2gKKworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisK
K3R5cGVkZWYgc3RydWN0IE9wYXF1ZUNGSFRUUENvb2tpZVN0b3JhZ2UqICBDRkhUVFBDb29raWVT
dG9yYWdlUmVmOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IENvb2tpZVN0b3JhZ2VT
aGltQ2FsbGJhY2tzIHsKKyAgICBDRkRpY3Rpb25hcnlSZWYgKCpjb29raWVTdG9yYWdlQ29weVJl
cXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgaW5Db29raWVT
dG9yYWdlLCBDRlVSTFJlZiBpblJlcXVlc3RVUkwpOworfTsKKwordHlwZWRlZiB2b2lkICgqQ29v
a2llU3RvcmFnZVNoaW1Jbml0aWFsaXplRnVuYykoY29uc3QgQ29va2llU3RvcmFnZVNoaW1DYWxs
YmFja3MmIGNhbGxiYWNrcyk7CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCisKKyNlbmRpZiAvLyBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnlfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9EeWxkSW50ZXJwb3NlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL0R5bGRJbnRlcnBvc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTUyY2QyYWFiMzY2ZjUz
MzczNTk0MDBmMGQ0N2VlYjk5NWM4MGNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9EeWxkSW50ZXJwb3NlLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgRHlsZEludGVycG9zZV9oCisjZGVmaW5lIER5bGRJbnRlcnBvc2VfaAorCisj
aWZkZWYgRFlMRF9JTlRFUlBPU0UKKyN1bmRlZiBEWUxEX0lOVEVSUE9TRQorI2VuZGlmCisKKyNk
ZWZpbmUgRFlMRF9JTlRFUlBPU0UoX3JlcGxhY2VtZW50LCBfcmVwbGFjZWUpIFwKKyAgICBfX2F0
dHJpYnV0ZV9fKCh1c2VkKSkgc3RhdGljIHN0cnVjdCB7IFwKKyAgICAgICAgY29uc3Qgdm9pZCog
cmVwbGFjZW1lbnQ7IFwKKyAgICAgICAgY29uc3Qgdm9pZCogcmVwbGFjZWU7IFwKKyAgICB9IF9p
bnRlcnBvc2VfIyNfcmVwbGFjZWUgXAorICAgIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIl9fREFU
QSxfX2ludGVycG9zZSIpKSkgPSB7IFwKKyAgICAgICAgKGNvbnN0IHZvaWQqKSh1bnNpZ25lZCBs
b25nKSZfcmVwbGFjZW1lbnQsIFwKKyAgICAgICAgKGNvbnN0IHZvaWQqKSh1bnNpZ25lZCBsb25n
KSZfcmVwbGFjZWUgXAorICAgIH07IFwKKworI2VuZGlmIC8vIER5bGRJbnRlcnBvc2VfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1
bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nl
c3NMYXVuY2hlck1hYy5tbQppbmRleCA3YjJlZGM4YWM2NzFmZTFmZTc4YTI0NDIxNjVlZjUwMzU0
ZWMxZTYwLi5kYjdjMDg0ZTQ1YTUyOTU0NWIzNzE3NzJhMDNkNzU1OTcyODRjZmMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hl
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nl
c3NMYXVuY2hlck1hYy5tbQpAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyB2b2lkIGFkZERZTERF
bnZpcm9ubWVudEFkZGl0aW9ucyhjb25zdCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMm
IGxhCiAgICAgICAgIE5TU3RyaW5nICpwcm9jZXNzUGF0aCA9IFt3ZWJLaXQyQnVuZGxlIHBhdGhG
b3JBdXhpbGlhcnlFeGVjdXRhYmxlOkAiV2ViUHJvY2Vzcy5hcHAiXTsKICAgICAgICAgTlNTdHJp
bmcgKnByb2Nlc3NBcHBFeGVjdXRhYmxlUGF0aCA9IFtbTlNCdW5kbGUgYnVuZGxlV2l0aFBhdGg6
cHJvY2Vzc1BhdGhdIGV4ZWN1dGFibGVQYXRoXTsKIAotICAgICAgICBwcm9jZXNzU2hpbVBhdGhO
U1N0cmluZyA9IFtbcHJvY2Vzc0FwcEV4ZWN1dGFibGVQYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0
UGF0aENvbXBvbmVudF0gc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiU2VjSXRlbVNo
aW0uZHlsaWIiXTsKKyAgICAgICAgcHJvY2Vzc1NoaW1QYXRoTlNTdHJpbmcgPSBbW3Byb2Nlc3NB
cHBFeGVjdXRhYmxlUGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdIHN0cmlu
Z0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYlByb2Nlc3NTaGltLmR5bGliIl07CiAgICAg
fSBlbHNlIGlmIChsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVuY2hlcjo6
TmV0d29ya1Byb2Nlc3MpIHsKICAgICAgICAgTlNTdHJpbmcgKnByb2Nlc3NQYXRoID0gW3dlYktp
dDJCdW5kbGUgcGF0aEZvckF1eGlsaWFyeUV4ZWN1dGFibGU6QCJOZXR3b3JrUHJvY2Vzcy5hcHAi
XTsKICAgICAgICAgTlNTdHJpbmcgKnByb2Nlc3NBcHBFeGVjdXRhYmxlUGF0aCA9IFtbTlNCdW5k
bGUgYnVuZGxlV2l0aFBhdGg6cHJvY2Vzc1BhdGhdIGV4ZWN1dGFibGVQYXRoXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4ZmFk
M2Q4YzU4MWI1YzJhNTEzM2M3YjViODVlNDE1MjIyNTI1ZmJhLi5mY2E2OTBjZWIwODAxNzAwNTgw
MDI2Y2QzZWFhYjRlYThkMWI1MTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00ODgsNyArNDg4LDYgQEAKIAkJNTE4MjlEQTYx
NjM3QzcwQzAwMDk1M0Q2IC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODI5REE0MTYzN0M3MEMw
MDA5NTNENiAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggKi87IH07CiAJCTUxODM0
NTkyMTM0NTMyRTkwMDkyQjY5NiAvKiBXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4MzQ1OTAxMzQ1MzJFODAw
OTJCNjk2IC8qIFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAgKi87IH07CiAJCTUxODM0NTkzMTM0
NTMyRTkwMDkyQjY5NiAvKiBXZWJJY29uRGF0YWJhc2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODM0NTkxMTM0NTMyRTgwMDkyQjY5NiAv
KiBXZWJJY29uRGF0YWJhc2VDbGllbnQuaCAqLzsgfTsKLQkJNTE4M0IzOTIxMzc5RjdCODAwRTg3
NTRFIC8qIFNlY0l0ZW1TaGltLmR5bGliIGluIENvcHkgU2VjIEl0ZW0gU2hpbSAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyogU2Vj
SXRlbVNoaW0uZHlsaWIgKi87IH07CiAJCTUxODNEREVDMTYzMEJERkMwMDhCRTVDNyAvKiBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTEwNUIwRDQxNjJGN0E3QTAwRTI3NzA5IC8qIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgKi87IH07CiAJCTUxODcxQjVCMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJD
b250ZXh0TWVudS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTg3MUI1OTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuY3BwICovOyB9
OwogCQk1MTg3MUI1QzEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODcxQjVBMTI3Q0I4OUQw
MEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oICovOyB9OwpAQCAtMTA4MCw2ICsxMDc5LDcgQEAK
IAkJQzVFMUFGRUQxNkIyMTAxNzAwNkNDMUYyIC8qIFdlYkFyY2hpdmUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzI5RDlBMTZBQ0NFOTkwMDMxNkRF
MiAvKiBXZWJBcmNoaXZlLmggKi87IH07CiAJCUM1RTFBRkVFMTZCMjEwMjUwMDZDQzFGMiAvKiBX
ZWJBcmNoaXZlUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMzMjlEOUUxNkFDRDQ3ODAwMzE2REUyIC8qIFdlYkFyY2hpdmVSZXNvdXJj
ZS5jcHAgKi87IH07CiAJCUM1RTFBRkVGMTZCMjEwMjkwMDZDQzFGMiAvKiBXZWJBcmNoaXZlUmVz
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MzI5RDlGMTZBQ0Q0NzgwMDMxNkRFMiAvKiBXZWJBcmNoaXZlUmVzb3VyY2UuaCAqLzsgfTsKKwkJ
Q0Q0NzFGNUQxNzIxQkMzRTAwRDY1Q0RBIC8qIGxpYldURi5hIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0NzFGNUMxNzIxQkMzRTAwRDY1Q0RBIC8q
IGxpYldURi5hICovOyB9OwogCQlDRDVDNjZBMDEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVDNjY5RTEzNEI5RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgKi87IH07CiAJCUNENUM2NkExMTM0QjlEMzgw
MDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVDNjY5RjEzNEI5RDM3MDA0
RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oICovOyB9OwogCQlD
RDY3RDMwRTE1QzA4RjlBMDA4NDNBREYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q2N0QzMDgxNUMwN0JFMDAwODQzQURGIC8qIEluamVjdGVkQnVuZGxlUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLzsgfTsKQEAgLTEwODcsNiArMTA4NywxNCBAQAogCQlD
RDczQkE0NzEzMUFDQzlBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDczQkE0NTEzMUFDQzg4MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAv
KiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0ODEzMUFDRDhFMDBFRURFRDIg
LyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDRDcz
QkE1MzEzMUI2NDVCMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBMzcxMzFBMjlGRTAw
RUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCAqLzsgfTsKKwkJQ0RDMzgyRkUxNzIx
MTc5OTAwOEEyRkMzIC8qIFNlY0l0ZW1TaGltTGlicmFyeS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY4QTc4MTM4QjQ2MDkwMEE5NUY0NCAvKiBT
ZWNJdGVtU2hpbUxpYnJhcnkubW0gKi87IH07CisJCUNEQzM4MzAwMTcyMTE3OTkwMDhBMkZDMyAv
KiBDRk5ldHdvcmsuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RDMzgyRjcxNzIxMTUwNjAwOEEyRkMzIC8qIENGTmV0d29yay5mcmFt
ZXdvcmsgKi87IH07CisJCUNEQzM4MzAxMTcyMTE3OTkwMDhBMkZDMyAvKiBTZWN1cml0eS5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0Y1MDY4NDEyNDMxODYxMDA1OTU1QUUgLyogU2VjdXJpdHkuZnJhbWV3b3JrICovOyB9OworCQlD
REMzODMwNzE3MjExN0REMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzM4MkY5MTcy
MTE2RDMwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuY3BwICovOyB9OworCQlD
REMzODMwODE3MjExODkwMDA4QTJGQzMgLyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIgaW4gQ29weSBX
ZWJQcm9jZXNzU2hpbSAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREMzODMw
NjE3MjExNzk5MDA4QTJGQzMgLyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIgKi87IH07CisJCUNEQzM4
MzBDMTcyMTIyODIwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzM4MzBCMTcyMTIxQ0Uw
MDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCAqLzsgfTsKKwkJQ0RDMzgzMTAx
NzIxMjQ0MDAwOEEyRkMzIC8qIENvb2tpZVN0b3JhZ2VTaGltLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzM4MzBEMTcyMTI0MkQwMDhBMkZDMyAv
KiBDb29raWVTdG9yYWdlU2hpbS5jcHAgKi87IH07CisJCUNEQzhGNDg5MTcyNUU2NzgwMDE2NkY2
RSAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4RjQ4ODE3MjVFNjc4MDAxNjZGNkUgLyogQ29yZUZv
dW5kYXRpb24uZnJhbWV3b3JrICovOyB9OwogCQlDRENBODVDODEzMkFCQTRFMDBFOTYxREYgLyog
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E4NUM2MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyLm1tICovOyB9OwogCQlDRENBODVDOTEzMkFCQTRFMDBFOTYx
REYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDQTg1QzcxMzJBQkE0RTAwRTk2MURGIC8qIFdL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCAqLzsgfTsKIAkJQ0RDQTg1RUUxMzJBRDcwMTAw
RTk2MURGIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENBODVERTEzMkFEMDUzMDBFOTYxREYg
LyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5tbSAqLzsgfTsKQEAgLTEyMTgsMTMgKzEy
MjYsNiBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA4REMyRUY0RjA0ODZBNjk0MDA5OEIy
MTY7CiAJCQlyZW1vdGVJbmZvID0gV2ViS2l0MjsKIAkJfTsKLQkJNTE4M0IzOEQxMzc5RjU0NjAw
RTg3NTRFIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKLQkJCWlzYSA9IFBCWENvbnRh
aW5lckl0ZW1Qcm94eTsKLQkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJB
QUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKLQkJCXByb3h5VHlwZSA9IDE7Ci0JCQlyZW1vdGVH
bG9iYWxJRFN0cmluZyA9IDUxMDAzMUVBMTM3OUNBQ0IwMEM4REZFNDsKLQkJCXJlbW90ZUluZm8g
PSBTZWNJdGVtU2hpbTsKLQkJfTsKIAkJQkM3N0Y5NTUxNkQwNDU5MTAwRjhGNzhBIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsK
IAkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0
IG9iamVjdCAqLzsKQEAgLTEzMjMsNiArMTMyNCwxMyBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJp
bmcgPSBCQ0RFMDkzMzEzMjcyNDk2MDAxMjU5RkI7CiAJCQlyZW1vdGVJbmZvID0gIlBsdWdpbiBQ
cm9jZXNzIjsKIAkJfTsKKwkJQ0RDMzgzMDkxNzIxMUFCRTAwOEEyRkMzIC8qIFBCWENvbnRhaW5l
ckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNv
bnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVj
dCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IENEQzM4
MkZCMTcyMTE3OTkwMDhBMkZDMzsKKwkJCXJlbW90ZUluZm8gPSBXZWJQcm9jZXNzU2hpbTsKKwkJ
fTsKIAkJRTEzQThBNEMxNjI4N0E1QjAwMzkyOTI5IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAq
LyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRh
bCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTEz
NTMsMTUgKzEzNjEsMTUgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKLQkJNTE4M0IzOEYxMzc5RjU2ODAwRTg3NTRFIC8qIENvcHkgU2Vj
IEl0ZW0gU2hpbSAqLyA9IHsKKwkJNTE4M0IzOEYxMzc5RjU2ODAwRTg3NTRFIC8qIENvcHkgV2Vi
UHJvY2Vzc1NoaW0gKi8gPSB7CiAJCQlpc2EgPSBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlOwogCQkJ
YnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWRzdFBhdGggPSBXZWJQcm9jZXNzLmFw
cC9Db250ZW50cy9NYWNPUzsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSAxNjsKIAkJCWZpbGVzID0g
KAotCQkJCTUxODNCMzkyMTM3OUY3QjgwMEU4NzU0RSAvKiBTZWNJdGVtU2hpbS5keWxpYiBpbiBD
b3B5IFNlYyBJdGVtIFNoaW0gKi8sCisJCQkJQ0RDMzgzMDgxNzIxMTg5MDAwOEEyRkMzIC8qIFdl
YlByb2Nlc3NTaGltLmR5bGliIGluIENvcHkgV2ViUHJvY2Vzc1NoaW0gKi8sCiAJCQkpOwotCQkJ
bmFtZSA9ICJDb3B5IFNlYyBJdGVtIFNoaW0iOworCQkJbmFtZSA9ICJDb3B5IFdlYlByb2Nlc3NT
aGltIjsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owog
CQk1RDFBMjM5MDE1RTc1QjEwMDAyM0U5ODEgLyogQ29weSBNZXNzYWdlIEdlbmVyYXRpb24gU2Ny
aXB0cyAqLyA9IHsKQEAgLTI1MzMsNiArMjU0MSw4IEBACiAJCUM1NTRGRkEyMTJFNEU4RUEwMDJG
MjJDMCAvKiBXZWJEcmFnQ2xpZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViRHJhZ0NsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzU3NEE1N0YxMkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZWJvYXJkVHlwZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzU3NEE1ODAxMkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9h
cmRUeXBlcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhc3Rl
Ym9hcmRUeXBlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0NzFGNUIxNzIx
Qjk5OTAwRDY1Q0RBIC8qIER5bGRJbnRlcnBvc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHlsZEludGVy
cG9zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ3MUY1QzE3MjFCQzNFMDBE
NjVDREEgLyogbGliV1RGLmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBuYW1lID0gbGliV1RGLmE7IHBhdGggPSAuLi8uLi8uLi8u
Li8uLi8uLi8uLi8uLi91c3IvbG9jYWwvbGliL2xpYldURi5hOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDVDNjY5RTEzNEI5RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdl
RnVsbFNjcmVlbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0Q1QzY2OUYxMzRCOUQzNzAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxl
UGFnZUZ1bGxTY3JlZW5DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDY3RDMwODE1QzA3QkUwMDA4NDNBREYgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjU0Nyw2ICsyNTU3LDEzIEBACiAJCUNENzNC
QTQ4MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGdWxsU2NyZWVu
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNENzNCQTQ5MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JBNEExMzFBQ0Q4
RjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDMzgyRjcxNzIxMTUwNjAwOEEy
RkMzIC8qIENGTmV0d29yay5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENGTmV0d29yay5m
cmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DRk5ldHdvcmsuZnJh
bWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQlDREMzODJGOTE3MjExNkQz
MDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNEQzM4MzA2MTcyMTE3OTkwMDhBMkZDMyAvKiBXZWJQcm9jZXNzU2hpbS5keWxpYiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVk
Lm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFdlYlByb2Nlc3NTaGlt
LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlDREMzODMwQjE3
MjEyMUNFMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDREMzODMwRDE3MjEyNDJEMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW0uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29va2llU3RvcmFnZVNoaW0uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREMzODMwRTE3MjEyNDJEMDA4QTJGQzMg
LyogQ29va2llU3RvcmFnZVNoaW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q29va2llU3RvcmFnZVNoaW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDOEY0
ODgxNzI1RTY3ODAwMTY2RjZFIC8qIENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3Jr
OyBuYW1lID0gQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNv
bHV0ZT4iOyB9OwogCQlDRENBODVDNjEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNEQ0E4NUM3MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTg1RDQx
MzJBQzJCMzAwRTk2MURGIC8qIElPS2l0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gSU9L
aXQuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvSU9LaXQuZnJh
bWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwpAQCAtMjc4Nyw2ICsyODA0LDE3
IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CisJCUNEQzM4MkZGMTcyMTE3OTkwMDhBMkZDMyAvKiBGcmFtZXdvcmtzICovID0geworCQkJ
aXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJQ0Q0NzFGNUQxNzIxQkMzRTAwRDY1Q0RBIC8qIGxp
YldURi5hIGluIEZyYW1ld29ya3MgKi8sCisJCQkJQ0RDMzgzMDAxNzIxMTc5OTAwOEEyRkMzIC8q
IENGTmV0d29yay5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQlDREM4RjQ4OTE3MjVF
Njc4MDAxNjZGNkUgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8s
CisJCQkJQ0RDMzgzMDExNzIxMTc5OTAwOEEyRkMzIC8qIFNlY3VyaXR5LmZyYW1ld29yayBpbiBG
cmFtZXdvcmtzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOworCQl9OwogCQlFMTNBOEEyOTE2Mjg3OUFDMDAzOTI5MjkgLyogRnJhbWV3b3JrcyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25N
YXNrID0gMjE0NzQ4MzY0NzsKQEAgLTI4MTgsNiArMjg0Niw3IEBACiAJCQkJQkNBRjM1OUExNkNB
MUQ1NzAwRDRFOUZDIC8qIE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy5hcHAgKi8sCiAJCQkJQkNBRjM1
RjExNkNBMjYzODAwRDRFOUZDIC8qIGNvbS5hcHBsZS5XZWJLaXQuT2ZmbGluZVN0b3JhZ2UueHBj
ICovLAogCQkJCUJDQUYzNjA0MTZDQTI2NjkwMEQ0RTlGQyAvKiBjb20uYXBwbGUuV2ViS2l0Lk9m
ZmxpbmVTdG9yYWdlLkRldmVsb3BtZW50LnhwYyAqLywKKwkJCQlDREMzODMwNjE3MjExNzk5MDA4
QTJGQzMgLyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFByb2R1
Y3RzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI4MjcsNiArMjg1Niw3IEBACiAJ
CTA4NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAvKiBXZWJLaXQyICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDQ3MUY1QzE3MjFCQzNFMDBENjVDREEgLyog
bGliV1RGLmEgKi8sCiAJCQkJQjM5NkVBNTUxMkUwRUQyRDAwRjRGRUI3IC8qIGNvbmZpZy5oICov
LAogCQkJCTMyREJDRjVFMDM3MEFERUUwMEM5MTc4MyAvKiBXZWJLaXQyUHJlZml4LmggKi8sCiAJ
CQkJQzBDRTcyREIxMjQ3RThGNzAwQkMwRUM0IC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8sCkBA
IC0yODc3LDYgKzI5MDcsOCBAQAogCQkxMDU4QzdCMEZFQTU1ODVFMTFDQTJDQkIgLyogTGlua2Vk
IEZyYW1ld29ya3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCUNEQzhGNDg4MTcyNUU2NzgwMDE2NkY2RSAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsg
Ki8sCisJCQkJQ0RDMzgyRjcxNzIxMTUwNjAwOEEyRkMzIC8qIENGTmV0d29yay5mcmFtZXdvcmsg
Ki8sCiAJCQkJMDg2N0Q2QTVGRTg0MDMwN0MwMkFBQzA3IC8qIEFwcEtpdC5mcmFtZXdvcmsgKi8s
CiAJCQkJMUFBREU2RkUxMEQ4NTVGQzAwRDNENjNEIC8qIEFwcGxpY2F0aW9uU2VydmljZXMuZnJh
bWV3b3JrICovLAogCQkJCTFBQTFDRDA2MTAwRkExQkEwMDc4REVCQyAvKiBDYXJib24uZnJhbWV3
b3JrICovLApAQCAtNDE4OSw2ICs0MjIxLDExIEBACiAJCQkJMUEyQTRBRkUxNTg2OTM5MjAwOTBD
OUU5IC8qIENvbG9yU3BhY2VEYXRhLmggKi8sCiAJCQkJMUEyQTRBRkQxNTg2OTM5MjAwOTBDOUU5
IC8qIENvbG9yU3BhY2VEYXRhLm1tICovLAogCQkJCTFBNkY5RkI2MTFFMTQwODUwMERCMTM3MSAv
KiBDb21tYW5kTGluZU1hYy5jcHAgKi8sCisJCQkJQ0RDMzgyRjkxNzIxMTZEMzAwOEEyRkMzIC8q
IENvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5jcHAgKi8sCisJCQkJQ0RDMzgzMEIxNzIxMjFDRTAw
OEEyRkMzIC8qIENvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5oICovLAorCQkJCUNEQzM4MzBEMTcy
MTI0MkQwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbS5jcHAgKi8sCisJCQkJQ0RDMzgzMEUx
NzIxMjQyRDAwOEEyRkMzIC8qIENvb2tpZVN0b3JhZ2VTaGltLmggKi8sCisJCQkJQ0Q0NzFGNUIx
NzIxQjk5OTAwRDY1Q0RBIC8qIER5bGRJbnRlcnBvc2UuaCAqLywKIAkJCQkxQTkyREMxMjEyRjhC
QUI5MDAxN0FGNjUgLyogTGF5ZXJUcmVlQ29udGV4dE1hYy5tbSAqLywKIAkJCQlDMDJCRkYxRDEy
NTE1MDJFMDA5Q0NCRUEgLyogTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbSAqLywKIAkJCQkz
MUVBMjVEMDEzNEY3OEIyMDA1QjE0NTIgLyogTmF0aXZlV2ViTW91c2VFdmVudE1hYy5tbSAqLywK
QEAgLTUyOTIsNiArNTMyOSw3IEBACiAJCQkJMUE4RUY0Q0IxMjUyNDAzNzAwRjcwNjdGIC8qIFBs
dWdpbkNvbnRyb2xsZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RUY5NkYxMjUyQUY2
QjAwRjcwNjdGIC8qIFBsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTE3OTc4MDEzN0VFODJDMDBGOTdENDUgLyogUGx1Z2luQ3JlYXRpb25QYXJhbWV0
ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDREMzODMwQzE3MjEyMjgyMDA4QTJGQzMgLyogQ29v
a2llU3RvcmFnZVNoaW1MaWJyYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUVGQ0MxMjExRDAx
Rjk2MDA4MjE5RDMgLyogUGx1Z2luSW5mb1N0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTNE
NjEwMjEzQTdDQzJBMDBGOTVENEUgLyogUGx1Z2luTW9kdWxlSW5mby5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUEwNDM5NzYxMjREMDM0ODAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3MuaCBpbiBIZWFk
ZXJzICovLApAQCAtNTY3Nyw2ICs1NzE1LDEzIEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CisJCUNEQzM4MkZDMTcyMTE3OTkwMDhBMkZD
MyAvKiBIZWFkZXJzICovID0geworCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CisJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAvKiBFbmQgUEJYSGVh
ZGVyc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhOYXRpdmVUYXJnZXQgc2Vj
dGlvbiAqLwpAQCAtNTY4NiwxMyArNTczMSwxMyBAQAogCQkJYnVpbGRQaGFzZXMgPSAoCiAJCQkJ
MUE1MERCMUExMTBBM0JEQzAwMEQzRkU1IC8qIFJlc291cmNlcyAqLywKIAkJCQkxQTUwREIxQjEx
MEEzQkRDMDAwRDNGRTUgLyogU291cmNlcyAqLywKLQkJCQk1MTgzQjM4RjEzNzlGNTY4MDBFODc1
NEUgLyogQ29weSBTZWMgSXRlbSBTaGltICovLAorCQkJCTUxODNCMzhGMTM3OUY1NjgwMEU4NzU0
RSAvKiBDb3B5IFdlYlByb2Nlc3NTaGltICovLAogCQkJCUJDNUQyNEIwMTZDQzNGMjgwMDdENTQ2
MSAvKiBGcmFtZXdvcmtzICovLAogCQkJKTsKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwogCQkJ
ZGVwZW5kZW5jaWVzID0gKAotCQkJCTUxODNCMzhFMTM3OUY1NDYwMEU4NzU0RSAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAorCQkJCUNEQzM4MzBBMTcyMTFBQkUwMDhBMkZDMyAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAogCQkJCTFBNTBEQjI3MTEwQTNCRUYwMDBEM0ZFNSAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBXZWJQcm9jZXNzOwpAQCAtNTk3MSw2
ICs2MDE2LDIzIEBACiAJCQlwcm9kdWN0UmVmZXJlbmNlID0gQkNERTA5NDIxMzI3MjQ5NjAwMTI1
OUZCIC8qIFBsdWdpblByb2Nlc3MuYXBwICovOwogCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxl
LnByb2R1Y3QtdHlwZS5hcHBsaWNhdGlvbiI7CiAJCX07CisJCUNEQzM4MkZCMTcyMTE3OTkwMDhB
MkZDMyAvKiBXZWJQcm9jZXNzU2hpbSAqLyA9IHsKKwkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsK
KwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBDREMzODMwMjE3MjExNzk5MDA4QTJGQzMgLyog
QnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIldlYlByb2Nlc3NT
aGltIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCUNEQzM4MkZDMTcyMTE3OTkwMDhBMkZD
MyAvKiBIZWFkZXJzICovLAorCQkJCUNEQzM4MkZEMTcyMTE3OTkwMDhBMkZDMyAvKiBTb3VyY2Vz
ICovLAorCQkJCUNEQzM4MkZGMTcyMTE3OTkwMDhBMkZDMyAvKiBGcmFtZXdvcmtzICovLAorCQkJ
KTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsK
KwkJCW5hbWUgPSBXZWJQcm9jZXNzU2hpbTsKKwkJCXByb2R1Y3ROYW1lID0gUGx1Z2luUHJvY2Vz
c1NoaW07CisJCQlwcm9kdWN0UmVmZXJlbmNlID0gQ0RDMzgzMDYxNzIxMTc5OTAwOEEyRkMzIC8q
IFdlYlByb2Nlc3NTaGltLmR5bGliICovOworCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnBy
b2R1Y3QtdHlwZS5saWJyYXJ5LmR5bmFtaWMiOworCQl9OwogCQlFMTNBOEEyQjE2Mjg3OUFDMDAz
OTI5MjkgLyogU2hhcmVkV29ya2VyUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWE5hdGl2ZVRh
cmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBFMTNBOEE0QTE2Mjg3OUFDMDAzOTI5
MjkgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIlNoYXJl
ZFdvcmtlclByb2Nlc3MiICovOwpAQCAtNjAyMyw2ICs2MDg1LDcgQEAKIAkJCQlDMENFNzI4NTEy
NDdFNjY4MDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTFBQzI1RkFGMTJBNDhF
QTcwMEJEMjY3MSAvKiBQbHVnaW5Qcm9jZXNzU2hpbSAqLywKIAkJCQk1MTAwMzFFQTEzNzlDQUNC
MDBDOERGRTQgLyogU2VjSXRlbVNoaW0gKi8sCisJCQkJQ0RDMzgyRkIxNzIxMTc5OTAwOEEyRkMz
IC8qIFdlYlByb2Nlc3NTaGltICovLAogCQkJCUJDM0RFNDY1MTVBOTE3NjMwMDhEMjZGQyAvKiBX
ZWJDb250ZW50ICovLAogCQkJCUJDQUU5REU4MTYwQzA5NzQwMEEzMzIxNyAvKiBXZWJDb250ZW50
LkRldmVsb3BtZW50ICovLAogCQkJCUJDODI4M0IwMTZCNEJGNzcwMEEyNzhGRSAvKiBOZXR3b3Jr
aW5nICovLApAQCAtNjYyNyw2ICs2NjkwLDcgQEAKIAkJCQk5MzlBRTc2NjEzMTZFOTlDMDBBRTA2
QTYgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTIz
MjYzMTIyQzZDRjMwMEQ1QzM1QSAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQk1MTJGNTg5QTEyQTg4Mzg4MDA2Mjk1MzAgLyogV2ViQ3JlZGVudGlhbC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlDREMzODMxMDE3MjEyNDQwMDA4QTJGQzMgLyogQ29va2ll
U3RvcmFnZVNoaW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjZBMjVGREMxMkFEQzZDQzAwREM0
MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNjJBNzZC
NjEyQjFCMjVGMDAwNUYxQjYgLyogV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUY2MkE3NjVDMTJCMUFCQzMwMDA1RjFCNiAvKiBXZWJEYXRh
YmFzZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTY5NzgsNiArNzA0MiwxNSBA
QAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OworCQlDREMzODJGRDE3MjExNzk5MDA4QTJGQzMgLyogU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
KwkJCWZpbGVzID0gKAorCQkJCUNEQzM4MzA3MTcyMTE3REQwMDhBMkZDMyAvKiBDb29raWVTdG9y
YWdlU2hpbUxpYnJhcnkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RDMzgyRkUxNzIxMTc5OTAw
OEEyRkMzIC8qIFNlY0l0ZW1TaGltTGlicmFyeS5tbSBpbiBTb3VyY2VzICovLAorCQkJKTsKKwkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQlFMTNBOEEy
ODE2Mjg3OUFDMDAzOTI5MjkgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNC
dWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTcwMTQsMTEg
KzcwODcsNiBAQAogCQkJdGFyZ2V0ID0gOERDMkVGNEYwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktp
dDIgKi87CiAJCQl0YXJnZXRQcm94eSA9IDUxMENDODUwMTYxM0M5OEQwMEQwM0VEMyAvKiBQQlhD
b250YWluZXJJdGVtUHJveHkgKi87CiAJCX07Ci0JCTUxODNCMzhFMTM3OUY1NDYwMEU4NzU0RSAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewotCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5j
eTsKLQkJCXRhcmdldCA9IDUxMDAzMUVBMTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVtU2hpbSAq
LzsKLQkJCXRhcmdldFByb3h5ID0gNTE4M0IzOEQxMzc5RjU0NjAwRTg3NTRFIC8qIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKIAkJQkM3N0Y5NTYxNkQwNDU5MTAwRjhGNzhBIC8qIFBC
WFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5Owog
CQkJdGFyZ2V0ID0gQkM4MjgzRjgxNkI0RkRERTAwQTI3OEZFIC8qIFBsdWdpbi4zMiAqLzsKQEAg
LTcwODksNiArNzE1NywxMSBAQAogCQkJdGFyZ2V0ID0gQkNERTA5MzMxMzI3MjQ5NjAwMTI1OUZC
IC8qIFBsdWdpblByb2Nlc3MgKi87CiAJCQl0YXJnZXRQcm94eSA9IEJDREUwQUMwMTMyNzI3MTIw
MDEyNTlGQiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07CisJCUNEQzM4MzBBMTcy
MTFBQkUwMDhBMkZDMyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJY
VGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IENEQzM4MkZCMTcyMTE3OTkwMDhBMkZDMyAv
KiBXZWJQcm9jZXNzU2hpbSAqLzsKKwkJCXRhcmdldFByb3h5ID0gQ0RDMzgzMDkxNzIxMUFCRTAw
OEEyRkMzIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJRTEzQThBNEQxNjI4
N0E1QjAwMzkyOTI5IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhU
YXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gRTEzQThBMkIxNjI4NzlBQzAwMzkyOTI5IC8q
IFNoYXJlZFdvcmtlclByb2Nlc3MgKi87CkBAIC03NTU0LDYgKzc2MjcsMzAgQEAKIAkJCX07CiAJ
CQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJQ0RDMzgzMDMxNzIxMTc5OTAwOEEyRkMzIC8q
IERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29u
ZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxODNCMzkzMTM3OUY4NUMwMEU4NzU0RSAvKiBTaGltLnhj
Y29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSBXZWJQ
cm9jZXNzU2hpbTsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCUNEQzM4MzA0MTcy
MTE3OTkwMDhBMkZDMyAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3Vy
YXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxODNCMzkzMTM3OUY4NUMw
MEU4NzU0RSAvKiBTaGltLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQ
Uk9EVUNUX05BTUUgPSBXZWJQcm9jZXNzU2hpbTsKKwkJCX07CisJCQluYW1lID0gUmVsZWFzZTsK
KwkJfTsKKwkJQ0RDMzgzMDUxNzIxMTc5OTAwOEEyRkMzIC8qIFByb2R1Y3Rpb24gKi8gPSB7CisJ
CQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJl
bmNlID0gNTE4M0IzOTMxMzc5Rjg1QzAwRTg3NTRFIC8qIFNoaW0ueGNjb25maWcgKi87CisJCQli
dWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9IFdlYlByb2Nlc3NTaGltOworCQkJ
fTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQlFMTNBOEE0NzE2Mjg3OUFDMDAzOTI5
MjkgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJh
c2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gRTEzQThBNEIxNjI4N0ExQjAwMzkyOTI5IC8qIFNo
YXJlZFdvcmtlclByb2Nlc3MueGNjb25maWcgKi87CkBAIC03NzY4LDYgKzc4NjUsMTYgQEAKIAkJ
CWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1bHRDb25maWd1cmF0
aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJCUNEQzM4MzAyMTcyMTE3OTkwMDhBMkZDMyAv
KiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiV2ViUHJvY2Vz
c1NoaW0iICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29u
ZmlndXJhdGlvbnMgPSAoCisJCQkJQ0RDMzgzMDMxNzIxMTc5OTAwOEEyRkMzIC8qIERlYnVnICov
LAorCQkJCUNEQzM4MzA0MTcyMTE3OTkwMDhBMkZDMyAvKiBSZWxlYXNlICovLAorCQkJCUNEQzM4
MzA1MTcyMTE3OTkwMDhBMkZDMyAvKiBQcm9kdWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRD
b25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9
IFByb2R1Y3Rpb247CisJCX07CiAJCUUxM0E4QTRBMTYyODc5QUMwMDM5MjkyOSAvKiBCdWlsZCBj
b25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiU2hhcmVkV29ya2VyUHJvY2Vz
cyIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1
cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVu
dFByb2Nlc3NNYWluLm1tCmluZGV4IDNhYjEyZDAwZDc0Mzc3YjU2OTVhMDE4ZGY3YmY3ZWViOWQ2
MTVlY2UuLjU0OGQzNzU0MWRiODMzOWJlNDc3NDZlMjViMjMwZjFiMTgxY2RmNDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vz
cy9XZWJDb250ZW50UHJvY2Vzc01haW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbQpA
QCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICAvLyBSZW1vdmUgdGhlIFdl
YlByb2Nlc3Mgc2hpbSBmcm9tIHRoZSBEWUxEX0lOU0VSVF9MSUJSQVJJRVMgZW52aXJvbm1lbnQg
dmFyaWFibGUgc28gYW55IHByb2Nlc3NlcyBzcGF3bmVkIGJ5CiAgICAgICAgIC8vIHRoZSBXZWJQ
cm9jZXNzIGRvbid0IHRyeSB0byBpbnNlcnQgdGhlIHNoaW0gYW5kIGNyYXNoLgotICAgICAgICBF
bnZpcm9ubWVudFV0aWxpdGllczo6c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3RyaW5nKCJEWUxEX0lO
U0VSVF9MSUJSQVJJRVMiLCAiL1NlY0l0ZW1TaGltLmR5bGliIik7CisgICAgICAgIEVudmlyb25t
ZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJ
QlJBUklFUyIsICIvV2ViQ29udGVudFNoaW0uZHlsaWIiKTsKICAgICAKICNpZiBVU0UoQVBQS0lU
KQogICAgICAgICBSdW5Mb29wOjpzZXRVc2VBcHBsaWNhdGlvblJ1bkxvb3BPbk1haW5SdW5Mb29w
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby5wbGlzdCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9J
bmZvLnBsaXN0CmluZGV4IGJmZjVjZjY3YTFhZDg2MjkxMzQ2ZTY1MjU3ODVjZDQyZTYzYjhhMzYu
LmZjNjQwNWUxOGJiZjEzMzQ0ODBjZDA5ODIxMmRhYWEzM2JiMjlmMTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250
ZW50U2VydmljZS9JbmZvLnBsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50
cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZvLnBsaXN0CkBAIC00
Nyw3ICs0Nyw3IEBACiAJCTxrZXk+RW52aXJvbm1lbnRWYXJpYWJsZXM8L2tleT4KIAkJPGRpY3Q+
CiAJCQk8a2V5PkRZTERfSU5TRVJUX0xJQlJBUklFUzwva2V5PgotCQkJPHN0cmluZz4kKFdFQktJ
VDJfRlJBTUVXT1JLU19ESVIpL1dlYktpdDIuZnJhbWV3b3JrL1dlYlByb2Nlc3MuYXBwL0NvbnRl
bnRzL01hY09TL1NlY0l0ZW1TaGltLmR5bGliPC9zdHJpbmc+CisJCQk8c3RyaW5nPiQoV0VCS0lU
Ml9GUkFNRVdPUktTX0RJUikvV2ViS2l0Mi5mcmFtZXdvcmsvV2ViUHJvY2Vzcy5hcHAvQ29udGVu
dHMvTWFjT1MvV2ViQ29udGVudFNoaW0uZHlsaWI8L3N0cmluZz4KIAkJPC9kaWN0PgogCTwvZGlj
dD4KIDwvZGljdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVu
dFNlcnZpY2VFbnRyeVBvaW50Lm1tCmluZGV4IDM0YWI4ZGFjMTMxNjNmOTExMzk2ODEzYjU4YzM4
OGEzZmE3MGE0ZjUuLjU4ODgwY2NhNTg4MmRmODBiZWMzZDViN2EzOTE2MmRiNDg2ODlhZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vy
dmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50
cnlQb2ludC5tbQpAQCAtNDIsNyArNDIsNyBAQCB2b2lkIFdlYkNvbnRlbnRTZXJ2aWNlSW5pdGlh
bGl6ZXIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdAogewog
ICAgIC8vIFJlbW92ZSB0aGUgU2VjSXRlbVNoaW0gZnJvbSB0aGUgRFlMRF9JTlNFUlRfTElCUkFS
SUVTIGVudmlyb25tZW50IHZhcmlhYmxlIHNvIGFueSBwcm9jZXNzZXMgc3Bhd25lZCBieQogICAg
IC8vIHRoZSB0aGlzIHByb2Nlc3MgZG9uJ3QgdHJ5IHRvIGluc2VydCB0aGUgc2hpbSBhbmQgY3Jh
c2guCi0gICAgRW52aXJvbm1lbnRVdGlsaXRpZXM6OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmlu
ZygiRFlMRF9JTlNFUlRfTElCUkFSSUVTIiwgIi9TZWNJdGVtU2hpbS5keWxpYiIpOworICAgIEVu
dmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5T
RVJUX0xJQlJBUklFUyIsICIvV2ViQ29udGVudFNoaW0uZHlsaWIiKTsKIAogICAgIFJ1bkxvb3A6
OnNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFpblJ1bkxvb3AoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMjRlZjhhYjJkMGI0MmRkZTgzODhjNTEy
NDMwZjg0YjFlZGQ1YzBiZS4uMjE4MTIyOTkxMmZjN2M4ZmMzMDkxMTY3NTY3MDFiMTIxZmIwNjFk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC05MCw2ICs5
MCw3IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisjaW5jbHVkZSAi
Q29va2llU3RvcmFnZVNoaW0uaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
aCIKICNlbmRpZgogCkBAIC0zMzMsNiArMzM0LDkgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFs
aXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWUK
ICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIG1fdXNlc05ldHdvcmtQcm9jZXNzID0g
cGFyYW1ldGVycy51c2VzTmV0d29ya1Byb2Nlc3M7CiAgICAgZW5zdXJlTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKCk7CisKKyAgICBpZiAodXNlc05ldHdvcmtQcm9jZXNzKCkpCisgICAgICAgIENv
b2tpZVN0b3JhZ2VTaGltOjpzaGFyZWQoKS5pbml0aWFsaXplKCk7CiAjZW5kaWYKICAgICBzZXRU
ZXJtaW5hdGlvblRpbWVvdXQocGFyYW1ldGVycy50ZXJtaW5hdGlvblRpbWVvdXQpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbUxpYnJhcnku
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9TZWNJdGVtU2hpbUxpYnJhcnkubW0K
aW5kZXggNDg4ZjhhY2NlODMyZDUwM2ZhZjI5YjBkNmM1NzE1MjM5MDBmN2RmOS4uZjhiMDI5YTlj
MGFhOWE4N2QwNThlYTZmNDI1MDVmMzVkMWUzZmViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFyeS5tbQpAQCAtMjQsMTMgKzI0LDEw
IEBACiAgKi8KICNpbXBvcnQgIlNlY0l0ZW1TaGltTGlicmFyeS5oIgogCisjaW1wb3J0ICJEWUxE
SW50ZXJwb3NlLmgiCiAjaW1wb3J0IDxTZWN1cml0eS9TZWNJdGVtLmg+CiAjaW1wb3J0IDx3dGYv
UGxhdGZvcm0uaD4KIAotI2RlZmluZSBEWUxEX0lOVEVSUE9TRShfcmVwbGFjZW1lbnQsX3JlcGxh
Y2VlKSBcCi0gICAgX19hdHRyaWJ1dGVfXygodXNlZCkpIHN0YXRpYyBzdHJ1Y3R7IGNvbnN0IHZv
aWQqIHJlcGxhY2VtZW50OyBjb25zdCB2b2lkKiByZXBsYWNlZTsgfSBfaW50ZXJwb3NlXyMjX3Jl
cGxhY2VlIFwKLSAgICBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbiAoIl9fREFUQSxfX2ludGVycG9z
ZSIpKSkgPSB7IChjb25zdCB2b2lkKikodW5zaWduZWQgbG9uZykmX3JlcGxhY2VtZW50LCAoY29u
c3Qgdm9pZCopKHVuc2lnbmVkIGxvbmcpJl9yZXBsYWNlZSB9OwotCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogZXh0ZXJuICJDIiB2b2lkIFdlYktpdFNlY0l0ZW1TaGltSW5pdGlhbGl6ZShjb25zdCBT
ZWNJdGVtU2hpbUNhbGxiYWNrcyYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199122</attachid>
            <date>2013-04-22 15:57:02 -0700</date>
            <delta_ts>2013-04-22 16:57:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114858-20130422155627.patch</filename>
            <type>text/plain</type>
            <size>46049</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjBkZGIwYmEzNDk4MjI3
OTMzOThlNGRmZTdmYmQ2YWU0NWUwMWI3YS4uNWJmZTUyNDhjMWEyNzRjOTM3MjgyZDljMWQyZmYx
M2MwM2E3YWViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEzLTA0LTIyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFdXREMgc2Vzc2lvbiB2aWRl
b3MgZG9u4oCZdCBwbGF5IGF0IGRldmVsb3Blci5hcHBsZS5jb20KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDg1OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSEuCisKKyAgICAgICAgQVZGb3VuZGF0aW9uIHVzZXMgQ0ZOZXR3b3JrIHRvIHN0
b3JlIGFuZCByZXRyaWV2ZSBjb29raWVzIGZyb20gdGhlIGdsb2JhbCBzdG9yZS4KKyAgICAgICAg
SG93ZXZlciwgaW4gdGhlIGNhc2Ugd2hlcmUgbmV0d29yayBhY2Nlc3MgaGFwcGVucyBpbiB0aGUg
TmV0d29ya1Byb2Nlc3MsIHNlc3Npb24KKyAgICAgICAgY29va2llcyBhcmUgc3RvcmVkIGluLW1l
bW9yeSwgYW5kIGFyZSBub3QgYWNjZXNzYWJsZSBpbiB0aGUgV2ViUHJvY2Vzcy4gVW50aWwgc3Vj
aAorICAgICAgICBhIHRpbWUgYXMgQVZGb3VuZGF0aW9uIGNhbiBwcm92aWRlIGFuIEFQSSB3aGlj
aCB3b3VsZCBhbGxvdyB1cyB0byBwcm92aWRlIGNvb2tpZXMKKyAgICAgICAgZm9yIGEgc3BlY2lm
aWMgcmVxdWVzdCwgd2Ugd2lsbCBpbnRlcnBvc2UgdGhlIENGTmV0d29yayBtZXRob2Qgd2hpY2gg
dGhleSB1c2UgdG8KKyAgICAgICAgcmV0cmlldmUgdGhlIGNvb2tpZSBzdHJpbmcgZnJvbSB0aGUg
Y29va2llIHN0b3JlIGZvciB0aGVpciBwZW5kaW5nIHJlcXVlc3QuCisKKyAgICAgICAgRHVwbGlj
YXRlIHRoZSBwcmV2aW91cyBTZWNJdGVtU2hpbSB0YXJnZXQgdG8gYSBuZXcsIFdlYlByb2Nlc3NT
aGltIHRhcmdldC4gVGhpcworICAgICAgICB0YXJnZXQgaW5jbHVkZXMgdGhlIFNlY0l0ZW1TaGlt
IGZ1bmN0aW9uYWxpdHksIGJ1dCB3aWxsIGFkZCBhIG5ldyBzaGltIGZvciBjb29raWUKKyAgICAg
ICAgcmV0cmlldmFsOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1MaWJy
YXJ5Lmg6IEFkZGVkCisgICAgICAgIChDb29raWVTdG9yYWdlU2hpbUNhbGxiYWNrcyk6CisgICAg
ICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbUxpYnJhcnkuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6U2hpbVByb3RlY3Rvcjo6U2hpbVByb3RlY3Rvcik6IEEgc2ltcGxlIHN0
YWNrLWJhc2VkIGNvdW50ZXIgY2xhc3MuCisgICAgICAgIChXZWJLaXQ6OlNoaW1Qcm90ZWN0b3I6
On5TaGltUHJvdGVjdG9yKToKKyAgICAgICAgKFdlYktpdDo6U2hpbVByb3RlY3Rvcjo6Y291bnQp
OgorICAgICAgICAoV2ViS2l0OjpzaGltQ0ZIVFRQQ29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVh
ZGVyRmllbGRzRm9yVVJMKTogSW50ZXJwb3NlCisgICAgICAgICAgICB0aGUgQ0ZOZXR3b3JrIGNh
bGwsIGFuZCBwYXNzIHRvIHRoZSByZWdpc3RlcmVkIGNhbGxiYWNrLgorICAgICAgICAoV2ViS2l0
OjpXZWJLaXRDb29raWVTdG9yYWdlU2hpbUluaXRpYWxpemUpOiBSZWdpc3RlciB0aGUgY2FsbGJh
Y2tzLgorCisgICAgICAgIEFkZCBhIGhlbHBlciBzaW5nbGV0b24gY2xhc3Mgd2hpY2ggd2lsbCB0
YWxrIHRvIHRoZSBzaGltIHRocm91Z2ggdGhlIAorICAgICAgICByZWdpc3RlcmVkIGNhbGxiYWNr
czoKKyAgICAgICAgKiBTaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmg6IEFkZGVkCisgICAg
ICAgIChXZWJLaXQ6OkNvb2tpZVN0b3JhZ2VTaGltOjpDb29raWVTdG9yYWdlU2hpbSk6CisgICAg
ICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0Ojp3ZWJLaXRDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwp
OiBQYXNzIHRoZSByZXF1ZXN0CisgICAgICAgICAgICBvdmVyIHRvIHRoZSBOZXR3b3JrUHJvY2Vz
cy4KKyAgICAgICAgKFdlYktpdDo6Q29va2llU3RvcmFnZVNoaW06OnNoYXJlZCk6IFNpbXBsZSBz
aW5nbGV0b24uCisgICAgICAgIChXZWJLaXQ6OkNvb2tpZVN0b3JhZ2VTaGltOjppbml0aWFsaXpl
KTogQ2FsbCB0aGUgbGlicmFyeSBpbml0aWFsaXplci4KKworICAgICAgICBJbml0aWFsaXplIHRo
ZSBzaGltIG9ubHkgd2hlbiB0aGUgV2ViUHJvY2VzcyBpcyBkZWxlZ2F0aW5nIG5ldHdvcmsgbG9h
ZGluZworICAgICAgICB0byB0aGUgTmV0d29ya1Byb2Nlc3M6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6
ZVdlYlByb2Nlc3MpOgorCisgICAgICAgIFJlbmFtZSB0aGUgV2ViUHJvY2VzcydzIHNoaW0gZnJv
bSBTZWNJdGVtU2hpbSAtPiBXZWJQcm9jZXNzU2hpbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1
bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6YWRkRFlM
REVudmlyb25tZW50QWRkaXRpb25zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZW50UHJvY2Vzc01haW5EZWxlZ2F0ZTo6ZG9QcmVJbml0aWFsaXphdGlvbldv
cmspOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJD
b250ZW50U2VydmljZS9JbmZvLnBsaXN0OgorICAgICAgICAqIFdlYlByb2Nlc3MvRW50cnlQb2lu
dC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW06CisgICAgICAg
IChXZWJDb250ZW50U2VydmljZUluaXRpYWxpemVyKToKKworICAgICAgICBBcyB0aGUgRFlMRF9J
TlRFUlBPU0UgbWFjcm8gaXMgdXNlZCBpbiBtdWx0aXBsZSBmaWxlcyBub3csIHB1dCBpdCBpbiBp
dHMKKyAgICAgICAgb3duIGhlYWRlcjoKKyAgICAgICAgKiBTaGFyZWQvbWFjL0R5bGRJbnRlcnBv
c2UuaDogQWRkZWQuCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1No
aW0ubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1MaWJyYXJ5Lm1tOgor
CisgICAgICAgIEFkZCBuZXcgZmlsZXMgdG8gdGhlIHByb2plY3Q6CisgICAgICAgICogV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEzLTA0LTE1ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yIGNyZWF0aW9uIG9mIHRoZSBm
dWxsIHNjcmVlbiB3aW5kb3cgaW50byBhbiAob3ZlcnJpZGFibGUpIG1ldGhvZC4KQEAgLTE2Myw3
ICsyMjMsNyBAQAogICAgICAgICAqIFNoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0uaDogUmVt
b3ZlZC4KICAgICAgICAgKiBTaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5jcHA6
IFJlbW92ZWQuCiAgICAgICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbUxpYnJhcnku
aDogUmVtb3ZlZC4KLSAgICAgICAgKiBTaGFyZWQvbWFjL0RZTERJbnRlcnBvc2UuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBTaGFyZWQvbWFjL0R5bGRJbnRlcnBvc2UuaDogUmVtb3ZlZC4KICAgICAg
ICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKICAgICAg
ICAgKFdlYktpdDo6YWRkRFlMREVudmlyb25tZW50QWRkaXRpb25zKToKICAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CkBAIC0yMzIsNyArMjkyLDcgQEAKIAogICAg
ICAgICBBcyB0aGUgRFlMRF9JTlRFUlBPU0UgbWFjcm8gaXMgdXNlZCBpbiBtdWx0aXBsZSBmaWxl
cyBub3csIHB1dCBpdCBpbiBpdHMKICAgICAgICAgb3duIGhlYWRlcjoKLSAgICAgICAgKiBTaGFy
ZWQvbWFjL0RZTERJbnRlcnBvc2UuaDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL21hYy9EeWxk
SW50ZXJwb3NlLmg6IEFkZGVkLgogICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblBy
b2Nlc3NTaGltLm1tOgogICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltTGlicmFy
eS5tbToKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1
Z2luUHJvY2Vzc1NoaW0ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVn
aW5Qcm9jZXNzU2hpbS5tbQppbmRleCA0ZmQwZTU4NzA1YmU2Yzc5NmFjYmQ3NDgyM2Q3N2RiMmFl
ODY5Yzk5Li5iMjVmMWZmMzNhNmYyZmIyYzZhNzkwNTdlNTZkYmM3YTAzMTBiOTdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hpbS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzU2hp
bS5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCA8d3RmL1BsYXRmb3JtLmg+CiAjaW1wb3J0
ICJQbHVnaW5Qcm9jZXNzU2hpbS5oIgogCisjaW1wb3J0ICJEWUxESW50ZXJwb3NlLmgiCiAjaW1w
b3J0IDxBcHBLaXQvQXBwS2l0Lmg+CiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0
IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KQEAgLTM2LDEwICszNyw2IEBACiAjaW5jbHVkZSA8
c3lzL2lwYy5oPgogI2luY2x1ZGUgPHN5cy9tbWFuLmg+CiAKLSNkZWZpbmUgRFlMRF9JTlRFUlBP
U0UoX3JlcGxhY2VtZW50LF9yZXBsYWNlZSkgXAotICAgIF9fYXR0cmlidXRlX18oKHVzZWQpKSBz
dGF0aWMgc3RydWN0eyBjb25zdCB2b2lkKiByZXBsYWNlbWVudDsgY29uc3Qgdm9pZCogcmVwbGFj
ZWU7IH0gX2ludGVycG9zZV8jI19yZXBsYWNlZSBcCi0gICAgX19hdHRyaWJ1dGVfXyAoKHNlY3Rp
b24gKCJfX0RBVEEsX19pbnRlcnBvc2UiKSkpID0geyAoY29uc3Qgdm9pZCopKHVuc2lnbmVkIGxv
bmcpJl9yZXBsYWNlbWVudCwgKGNvbnN0IHZvaWQqKSh1bnNpZ25lZCBsb25nKSZfcmVwbGFjZWUg
fTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGV4dGVybiAiQyIgdm9pZCBXZWJLaXRQbHVnaW5Q
cm9jZXNzU2hpbUluaXRpYWxpemUoY29uc3QgUGx1Z2luUHJvY2Vzc1NoaW1DYWxsYmFja3MmIGNh
bGxiYWNrcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0
b3JhZ2VTaGltLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNo
aW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAyODA5ZmEzMWQ5MDg3OTMxZTY0Y2FiZWRhOGFhOWE4YmJjZmUx
OTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0
b3JhZ2VTaGltLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2VTaGltLmgiCisKKyNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQorCisjaW5jbHVkZSAiQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgiCisj
aW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9LVVJMLmg+Cisj
aW5jbHVkZSA8ZGxmY24uaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgQ0ZE
aWN0aW9uYXJ5UmVmIHdlYktpdENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhlYWRlckZpZWxkc0Zv
clVSTChDRkhUVFBDb29raWVTdG9yYWdlUmVmIGluQ29va2llU3RvcmFnZSwgQ0ZVUkxSZWYgaW5S
ZXF1ZXN0VVJMKQoreworICAgIFN0cmluZyBjb29raWVzOworICAgIEtVUkwgZmlyc3RQYXJ0eUZv
ckNvb2tpZXNVUkw7CisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVj
dGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTShmYWxzZSwgZmlyc3RQYXJ0eUZvckNvb2tpZXNV
UkwsIGluUmVxdWVzdFVSTCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Q29va2llc0ZvckRPTTo6UmVwbHkoY29va2llcyksIDApKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gY2ZDb29raWVzID0gY29va2llcy5jcmVhdGVD
RlN0cmluZygpOworICAgIHN0YXRpYyBjb25zdCB2b2lkKiBjb29raWVLZXlzW10gPSB7IENGU1RS
KCJDb29raWUiKSB9OworICAgIGNvbnN0IHZvaWQqIGNvb2tpZVZhbHVlc1tdID0geyBjZkNvb2tp
ZXMuZ2V0KCkgfTsKKyAgICByZXR1cm4gQ0ZEaWN0aW9uYXJ5Q3JlYXRlKDAsIGNvb2tpZUtleXMs
IGNvb2tpZVZhbHVlcywgMSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlw
ZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcyk7Cit9CisKK0Nvb2tpZVN0b3JhZ2VTaGltJiBDb29r
aWVTdG9yYWdlU2hpbTo6c2hhcmVkKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvb2tp
ZVN0b3JhZ2VTaGltLCBzdG9yYWdlLCAoKSk7CisgICAgcmV0dXJuIHN0b3JhZ2U7Cit9CisKK3Zv
aWQgQ29va2llU3RvcmFnZVNoaW06OmluaXRpYWxpemUoKQoreworICAgIENvb2tpZVN0b3JhZ2VT
aGltQ2FsbGJhY2tzIGNhbGxiYWNrcyA9IHsgJndlYktpdENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVz
dEhlYWRlckZpZWxkc0ZvclVSTCB9OworICAgIENvb2tpZVN0b3JhZ2VTaGltSW5pdGlhbGl6ZUZ1
bmMgZnVuYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q29va2llU3RvcmFnZVNoaW1Jbml0aWFsaXplRnVu
Yz4oZGxzeW0oUlRMRF9ERUZBVUxULCAiV2ViS2l0Q29va2llU3RvcmFnZVNoaW1Jbml0aWFsaXpl
IikpOworICAgIGlmIChmdW5jKQorICAgICAgICBmdW5jKGNhbGxiYWNrcyk7Cit9CisKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMzMTQxYjc4ZjE1OWFmZmMy
MDViZTk0ZjJhNTRhZjE4YzdiZDY3MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0uaApAQCAtMCwwICsxLDUwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBDb29raWVTdG9yYWdlU2hpbV9oCisjZGVmaW5lIENvb2tpZVN0b3JhZ2VT
aGltX2gKKworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENvb2tpZVN0b3JhZ2VT
aGltIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb29raWVTdG9yYWdlU2hpbSk7CitwdWJs
aWM6CisgICAgc3RhdGljIENvb2tpZVN0b3JhZ2VTaGltJiBzaGFyZWQoKTsKKworICAgIHZvaWQg
aW5pdGlhbGl6ZSgpOworCitwcml2YXRlOgorICAgIENvb2tpZVN0b3JhZ2VTaGltKCkgeyB9Owor
fTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKworI2VuZGlmIC8v
IENvb2tpZVN0b3JhZ2VTaGltX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjM4NzlkZTQxZjNh
YmM2NGRkODQ3OWNhMjZiNGY5MjQxOTE0NGVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbUxpYnJhcnkuY3BwCkBAIC0wLDAgKzEs
OTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29va2ll
U3RvcmFnZVNoaW1MaWJyYXJ5LmgiCisKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisj
aW5jbHVkZSAiRHlsZEludGVycG9zZS5oIgorCitleHRlcm4gIkMiIENGRGljdGlvbmFyeVJlZiBf
Q0ZIVFRQQ29va2llU3RvcmFnZUNvcHlSZXF1ZXN0SGVhZGVyRmllbGRzRm9yVVJMKENGQWxsb2Nh
dG9yUmVmIGluQWxsb2NhdG9yLCBDRkhUVFBDb29raWVTdG9yYWdlUmVmIGluQ29va2llU3RvcmFn
ZSwgQ0ZVUkxSZWYgaW5SZXF1ZXN0VVJMKTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2V4dGVy
biAiQyIgdm9pZCBXZWJLaXRDb29raWVTdG9yYWdlU2hpbUluaXRpYWxpemUoY29uc3QgQ29va2ll
U3RvcmFnZVNoaW1DYWxsYmFja3MmKTsKKworc3RhdGljIENvb2tpZVN0b3JhZ2VTaGltQ2FsbGJh
Y2tzIGNvb2tpZVN0b3JhZ2VTaGltQ2FsbGJhY2tzOworCitjbGFzcyBTaGltUHJvdGVjdG9yIHsK
K3B1YmxpYzoKKyAgICBTaGltUHJvdGVjdG9yKCkgeyArK21fY291bnQ7IH0KKyAgICB+U2hpbVBy
b3RlY3RvcigpIHsgLS1tX2NvdW50OyB9CisgICAgc3RhdGljIHVuc2lnbmVkIGNvdW50KCkgeyBy
ZXR1cm4gbV9jb3VudDsgfQorcHJpdmF0ZToKKyAgICBfX3RocmVhZCBzdGF0aWMgdW5zaWduZWQg
bV9jb3VudDsKK307CisKK19fdGhyZWFkIHVuc2lnbmVkIFNoaW1Qcm90ZWN0b3I6Om1fY291bnQg
PSAwOworCitzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHNoaW1DRkhUVFBDb29raWVTdG9yYWdlQ29w
eVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwoQ0ZBbGxvY2F0b3JSZWYgaW5BbGxvY2F0b3IsIENG
SFRUUENvb2tpZVN0b3JhZ2VSZWYgaW5Db29raWVTdG9yYWdlLCBDRlVSTFJlZiBpblJlcXVlc3RV
UkwpCit7CisgICAgU2hpbVByb3RlY3RvciBwcm90ZWN0b3I7CisKKyAgICBkbyB7CisgICAgICAg
IC8vIFByb3RlY3QgYWdhaW5zdCB1bmluaXRpYWxpemVkIGNhbGxiYWNrczoKKyAgICAgICAgaWYg
KCFjb29raWVTdG9yYWdlU2hpbUNhbGxiYWNrcy5jb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFk
ZXJGaWVsZHNGb3JVUkwpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBQcm90ZWN0
IGFnYWluc3QgYWNjaWRlbnRhbCByZWN1cnNpb246CisgICAgICAgIEFTU0VSVChTaGltUHJvdGVj
dG9yOjpjb3VudCgpID09IDEpOworICAgICAgICBpZiAoU2hpbVByb3RlY3Rvcjo6Y291bnQoKSA+
IDEpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBDRkRpY3Rpb25hcnlSZWYgcmVzdWx0
cyA9IGNvb2tpZVN0b3JhZ2VTaGltQ2FsbGJhY2tzLmNvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhl
YWRlckZpZWxkc0ZvclVSTChpbkNvb2tpZVN0b3JhZ2UsIGluUmVxdWVzdFVSTCk7CisgICAgICAg
IGlmICghcmVzdWx0cykKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHJldHVybiByZXN1
bHRzOworICAgIH0gd2hpbGUgKDApOworCisgICAgLy8gSWYgd2UndmUgZmFpbGVkIHRvIHJldHJp
ZXZlIHRoZSBjb29raWVzIG1hbnVhbGx5LCBmYWxsIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGltcG9z
ZWQgZnVuY3Rpb246CisgICAgcmV0dXJuIF9DRkhUVFBDb29raWVTdG9yYWdlQ29weVJlcXVlc3RI
ZWFkZXJGaWVsZHNGb3JVUkwoaW5BbGxvY2F0b3IsIGluQ29va2llU3RvcmFnZSwgaW5SZXF1ZXN0
VVJMKTsKK30KKworRFlMRF9JTlRFUlBPU0Uoc2hpbUNGSFRUUENvb2tpZVN0b3JhZ2VDb3B5UmVx
dWVzdEhlYWRlckZpZWxkc0ZvclVSTCwgX0NGSFRUUENvb2tpZVN0b3JhZ2VDb3B5UmVxdWVzdEhl
YWRlckZpZWxkc0ZvclVSTCk7CisKK19fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQi
KSkpCit2b2lkIFdlYktpdENvb2tpZVN0b3JhZ2VTaGltSW5pdGlhbGl6ZShjb25zdCBDb29raWVT
dG9yYWdlU2hpbUNhbGxiYWNrcyYgY2FsbGJhY2tzKQoreworICAgIC8vIEJlY2F1c2UgdGhlIHZh
bHVlIG9mIGNvb2tpZVN0b3JhZ2VTaGltQ2FsbGJhY2tzIHdpbGwgYmUgcmVhZCBmcm9tIG11bGl0
cGxlIHRocmVhZHMsCisgICAgLy8gb25seSBhbGxvdyBpdCB0byBiZSBpbml0aWFsaXplZCBvbmNl
LgorICAgIHN0YXRpYyBpbnQgaW5pdGlhbGl6ZWQgPSAwOworICAgIGlmICghT1NBdG9taWNDb21w
YXJlQW5kU3dhcEludCgwLCAxLCAmaW5pdGlhbGl6ZWQpKSB7CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29va2llU3RvcmFnZVNo
aW1DYWxsYmFja3MgPSBjYWxsYmFja3M7Cit9CisgICAgCit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9D
b29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29v
a2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBmMGEyZmMzODY5ODUwZWVhNTUw
OTE1MmI0ZTAyMjIzNmFhZWRhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgKQEAgLTAsMCArMSw0NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5X2gKKyNkZWZpbmUgQ29v
a2llU3RvcmFnZVNoaW1MaWJyYXJ5X2gKKworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisK
K3R5cGVkZWYgc3RydWN0IE9wYXF1ZUNGSFRUUENvb2tpZVN0b3JhZ2UqICBDRkhUVFBDb29raWVT
dG9yYWdlUmVmOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IENvb2tpZVN0b3JhZ2VT
aGltQ2FsbGJhY2tzIHsKKyAgICBDRkRpY3Rpb25hcnlSZWYgKCpjb29raWVTdG9yYWdlQ29weVJl
cXVlc3RIZWFkZXJGaWVsZHNGb3JVUkwpKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgaW5Db29raWVT
dG9yYWdlLCBDRlVSTFJlZiBpblJlcXVlc3RVUkwpOworfTsKKwordHlwZWRlZiB2b2lkICgqQ29v
a2llU3RvcmFnZVNoaW1Jbml0aWFsaXplRnVuYykoY29uc3QgQ29va2llU3RvcmFnZVNoaW1DYWxs
YmFja3MmIGNhbGxiYWNrcyk7CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCisKKyNlbmRpZiAvLyBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnlfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9EeWxkSW50ZXJwb3NlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL0R5bGRJbnRlcnBvc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTUyY2QyYWFiMzY2ZjUz
MzczNTk0MDBmMGQ0N2VlYjk5NWM4MGNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9EeWxkSW50ZXJwb3NlLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgRHlsZEludGVycG9zZV9oCisjZGVmaW5lIER5bGRJbnRlcnBvc2VfaAorCisj
aWZkZWYgRFlMRF9JTlRFUlBPU0UKKyN1bmRlZiBEWUxEX0lOVEVSUE9TRQorI2VuZGlmCisKKyNk
ZWZpbmUgRFlMRF9JTlRFUlBPU0UoX3JlcGxhY2VtZW50LCBfcmVwbGFjZWUpIFwKKyAgICBfX2F0
dHJpYnV0ZV9fKCh1c2VkKSkgc3RhdGljIHN0cnVjdCB7IFwKKyAgICAgICAgY29uc3Qgdm9pZCog
cmVwbGFjZW1lbnQ7IFwKKyAgICAgICAgY29uc3Qgdm9pZCogcmVwbGFjZWU7IFwKKyAgICB9IF9p
bnRlcnBvc2VfIyNfcmVwbGFjZWUgXAorICAgIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIl9fREFU
QSxfX2ludGVycG9zZSIpKSkgPSB7IFwKKyAgICAgICAgKGNvbnN0IHZvaWQqKSh1bnNpZ25lZCBs
b25nKSZfcmVwbGFjZW1lbnQsIFwKKyAgICAgICAgKGNvbnN0IHZvaWQqKSh1bnNpZ25lZCBsb25n
KSZfcmVwbGFjZWUgXAorICAgIH07IFwKKworI2VuZGlmIC8vIER5bGRJbnRlcnBvc2VfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1
bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nl
c3NMYXVuY2hlck1hYy5tbQppbmRleCA3YjJlZGM4YWM2NzFmZTFmZTc4YTI0NDIxNjVlZjUwMzU0
ZWMxZTYwLi5kYjdjMDg0ZTQ1YTUyOTU0NWIzNzE3NzJhMDNkNzU1OTcyODRjZmMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hl
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nl
c3NMYXVuY2hlck1hYy5tbQpAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyB2b2lkIGFkZERZTERF
bnZpcm9ubWVudEFkZGl0aW9ucyhjb25zdCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMm
IGxhCiAgICAgICAgIE5TU3RyaW5nICpwcm9jZXNzUGF0aCA9IFt3ZWJLaXQyQnVuZGxlIHBhdGhG
b3JBdXhpbGlhcnlFeGVjdXRhYmxlOkAiV2ViUHJvY2Vzcy5hcHAiXTsKICAgICAgICAgTlNTdHJp
bmcgKnByb2Nlc3NBcHBFeGVjdXRhYmxlUGF0aCA9IFtbTlNCdW5kbGUgYnVuZGxlV2l0aFBhdGg6
cHJvY2Vzc1BhdGhdIGV4ZWN1dGFibGVQYXRoXTsKIAotICAgICAgICBwcm9jZXNzU2hpbVBhdGhO
U1N0cmluZyA9IFtbcHJvY2Vzc0FwcEV4ZWN1dGFibGVQYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0
UGF0aENvbXBvbmVudF0gc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiU2VjSXRlbVNo
aW0uZHlsaWIiXTsKKyAgICAgICAgcHJvY2Vzc1NoaW1QYXRoTlNTdHJpbmcgPSBbW3Byb2Nlc3NB
cHBFeGVjdXRhYmxlUGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdIHN0cmlu
Z0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYlByb2Nlc3NTaGltLmR5bGliIl07CiAgICAg
fSBlbHNlIGlmIChsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVuY2hlcjo6
TmV0d29ya1Byb2Nlc3MpIHsKICAgICAgICAgTlNTdHJpbmcgKnByb2Nlc3NQYXRoID0gW3dlYktp
dDJCdW5kbGUgcGF0aEZvckF1eGlsaWFyeUV4ZWN1dGFibGU6QCJOZXR3b3JrUHJvY2Vzcy5hcHAi
XTsKICAgICAgICAgTlNTdHJpbmcgKnByb2Nlc3NBcHBFeGVjdXRhYmxlUGF0aCA9IFtbTlNCdW5k
bGUgYnVuZGxlV2l0aFBhdGg6cHJvY2Vzc1BhdGhdIGV4ZWN1dGFibGVQYXRoXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4ZmFk
M2Q4YzU4MWI1YzJhNTEzM2M3YjViODVlNDE1MjIyNTI1ZmJhLi40YmZmY2MzNThhZTA2ODZkNWJk
NmQyODE0MDE0NGQyNWI4N2U2MmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00ODgsNyArNDg4LDYgQEAKIAkJNTE4MjlEQTYx
NjM3QzcwQzAwMDk1M0Q2IC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODI5REE0MTYzN0M3MEMw
MDA5NTNENiAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggKi87IH07CiAJCTUxODM0
NTkyMTM0NTMyRTkwMDkyQjY5NiAvKiBXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4MzQ1OTAxMzQ1MzJFODAw
OTJCNjk2IC8qIFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAgKi87IH07CiAJCTUxODM0NTkzMTM0
NTMyRTkwMDkyQjY5NiAvKiBXZWJJY29uRGF0YWJhc2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODM0NTkxMTM0NTMyRTgwMDkyQjY5NiAv
KiBXZWJJY29uRGF0YWJhc2VDbGllbnQuaCAqLzsgfTsKLQkJNTE4M0IzOTIxMzc5RjdCODAwRTg3
NTRFIC8qIFNlY0l0ZW1TaGltLmR5bGliIGluIENvcHkgU2VjIEl0ZW0gU2hpbSAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAwMzFGNjEzNzlDQUNCMDBDOERGRTQgLyogU2Vj
SXRlbVNoaW0uZHlsaWIgKi87IH07CiAJCTUxODNEREVDMTYzMEJERkMwMDhCRTVDNyAvKiBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTEwNUIwRDQxNjJGN0E3QTAwRTI3NzA5IC8qIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgKi87IH07CiAJCTUxODcxQjVCMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJD
b250ZXh0TWVudS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTg3MUI1OTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuY3BwICovOyB9
OwogCQk1MTg3MUI1QzEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODcxQjVBMTI3Q0I4OUQw
MEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5oICovOyB9OwpAQCAtMTA4MCw2ICsxMDc5LDcgQEAK
IAkJQzVFMUFGRUQxNkIyMTAxNzAwNkNDMUYyIC8qIFdlYkFyY2hpdmUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzI5RDlBMTZBQ0NFOTkwMDMxNkRF
MiAvKiBXZWJBcmNoaXZlLmggKi87IH07CiAJCUM1RTFBRkVFMTZCMjEwMjUwMDZDQzFGMiAvKiBX
ZWJBcmNoaXZlUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMzMjlEOUUxNkFDRDQ3ODAwMzE2REUyIC8qIFdlYkFyY2hpdmVSZXNvdXJj
ZS5jcHAgKi87IH07CiAJCUM1RTFBRkVGMTZCMjEwMjkwMDZDQzFGMiAvKiBXZWJBcmNoaXZlUmVz
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MzI5RDlGMTZBQ0Q0NzgwMDMxNkRFMiAvKiBXZWJBcmNoaXZlUmVzb3VyY2UuaCAqLzsgfTsKKwkJ
Q0Q0NzFGNUQxNzIxQkMzRTAwRDY1Q0RBIC8qIGxpYldURi5hIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0NzFGNUMxNzIxQkMzRTAwRDY1Q0RBIC8q
IGxpYldURi5hICovOyB9OwogCQlDRDVDNjZBMDEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVDNjY5RTEzNEI5RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAgKi87IH07CiAJCUNENUM2NkExMTM0QjlEMzgw
MDRGRTJBOCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDVDNjY5RjEzNEI5RDM3MDA0
RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oICovOyB9OwogCQlD
RDY3RDMwRTE1QzA4RjlBMDA4NDNBREYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q2N0QzMDgxNUMwN0JFMDAwODQzQURGIC8qIEluamVjdGVkQnVuZGxlUGFnZURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLzsgfTsKQEAgLTEwODcsNiArMTA4NywxNCBAQAogCQlD
RDczQkE0NzEzMUFDQzlBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDczQkE0NTEzMUFDQzg4MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAv
KiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0ODEzMUFDRDhFMDBFRURFRDIg
LyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDRDcz
QkE1MzEzMUI2NDVCMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBMzcxMzFBMjlGRTAw
RUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCAqLzsgfTsKKwkJQ0RDMzgyRkUxNzIx
MTc5OTAwOEEyRkMzIC8qIFNlY0l0ZW1TaGltTGlicmFyeS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUY4QTc4MTM4QjQ2MDkwMEE5NUY0NCAvKiBT
ZWNJdGVtU2hpbUxpYnJhcnkubW0gKi87IH07CisJCUNEQzM4MzAwMTcyMTE3OTkwMDhBMkZDMyAv
KiBDRk5ldHdvcmsuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RDMzgyRjcxNzIxMTUwNjAwOEEyRkMzIC8qIENGTmV0d29yay5mcmFt
ZXdvcmsgKi87IH07CisJCUNEQzM4MzAxMTcyMTE3OTkwMDhBMkZDMyAvKiBTZWN1cml0eS5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0Y1MDY4NDEyNDMxODYxMDA1OTU1QUUgLyogU2VjdXJpdHkuZnJhbWV3b3JrICovOyB9OworCQlD
REMzODMwNzE3MjExN0REMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzM4MkY5MTcy
MTE2RDMwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuY3BwICovOyB9OworCQlD
REMzODMwODE3MjExODkwMDA4QTJGQzMgLyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIgaW4gQ29weSBX
ZWJQcm9jZXNzU2hpbSAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREMzODMw
NjE3MjExNzk5MDA4QTJGQzMgLyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIgKi87IH07CisJCUNEQzM4
MzBDMTcyMTIyODIwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzM4MzBCMTcyMTIxQ0Uw
MDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCAqLzsgfTsKKwkJQ0RDMzgzMTAx
NzIxMjQ0MDAwOEEyRkMzIC8qIENvb2tpZVN0b3JhZ2VTaGltLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzM4MzBEMTcyMTI0MkQwMDhBMkZDMyAv
KiBDb29raWVTdG9yYWdlU2hpbS5jcHAgKi87IH07CisJCUNEQzhGNDg5MTcyNUU2NzgwMDE2NkY2
RSAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4RjQ4ODE3MjVFNjc4MDAxNjZGNkUgLyogQ29yZUZv
dW5kYXRpb24uZnJhbWV3b3JrICovOyB9OwogCQlDRENBODVDODEzMkFCQTRFMDBFOTYxREYgLyog
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E4NUM2MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyLm1tICovOyB9OwogCQlDRENBODVDOTEzMkFCQTRFMDBFOTYx
REYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDQTg1QzcxMzJBQkE0RTAwRTk2MURGIC8qIFdL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCAqLzsgfTsKIAkJQ0RDQTg1RUUxMzJBRDcwMTAw
RTk2MURGIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENBODVERTEzMkFEMDUzMDBFOTYxREYg
LyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5tbSAqLzsgfTsKQEAgLTEyMTgsMTMgKzEy
MjYsNiBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA4REMyRUY0RjA0ODZBNjk0MDA5OEIy
MTY7CiAJCQlyZW1vdGVJbmZvID0gV2ViS2l0MjsKIAkJfTsKLQkJNTE4M0IzOEQxMzc5RjU0NjAw
RTg3NTRFIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKLQkJCWlzYSA9IFBCWENvbnRh
aW5lckl0ZW1Qcm94eTsKLQkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJB
QUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKLQkJCXByb3h5VHlwZSA9IDE7Ci0JCQlyZW1vdGVH
bG9iYWxJRFN0cmluZyA9IDUxMDAzMUVBMTM3OUNBQ0IwMEM4REZFNDsKLQkJCXJlbW90ZUluZm8g
PSBTZWNJdGVtU2hpbTsKLQkJfTsKIAkJQkM3N0Y5NTUxNkQwNDU5MTAwRjhGNzhBIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsK
IAkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0
IG9iamVjdCAqLzsKQEAgLTEzMjMsNiArMTMyNCwyMCBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJp
bmcgPSBCQ0RFMDkzMzEzMjcyNDk2MDAxMjU5RkI7CiAJCQlyZW1vdGVJbmZvID0gIlBsdWdpbiBQ
cm9jZXNzIjsKIAkJfTsKKwkJQ0RDMzgzMDkxNzIxMUFCRTAwOEEyRkMzIC8qIFBCWENvbnRhaW5l
ckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNv
bnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVj
dCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IENEQzM4
MkZCMTcyMTE3OTkwMDhBMkZDMzsKKwkJCXJlbW90ZUluZm8gPSBXZWJQcm9jZXNzU2hpbTsKKwkJ
fTsKKwkJQ0RDOEY0RDQxNzI1RjczRjAwMTY2RjZFIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAq
LyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRh
bCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXBy
b3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDUxMDAzMUVBMTM3OUNBQ0Iw
MEM4REZFNDsKKwkJCXJlbW90ZUluZm8gPSBTZWNJdGVtU2hpbTsKKwkJfTsKIAkJRTEzQThBNEMx
NjI4N0E1QjAwMzkyOTI5IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9
IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4
NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTEzNTMsMTUgKzEzNjgsMTUg
QEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKLQkJNTE4M0IzOEYxMzc5RjU2ODAwRTg3NTRFIC8qIENvcHkgU2VjIEl0ZW0gU2hpbSAqLyA9
IHsKKwkJNTE4M0IzOEYxMzc5RjU2ODAwRTg3NTRFIC8qIENvcHkgV2ViUHJvY2Vzc1NoaW0gKi8g
PSB7CiAJCQlpc2EgPSBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNr
ID0gMjE0NzQ4MzY0NzsKIAkJCWRzdFBhdGggPSBXZWJQcm9jZXNzLmFwcC9Db250ZW50cy9NYWNP
UzsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSAxNjsKIAkJCWZpbGVzID0gKAotCQkJCTUxODNCMzky
MTM3OUY3QjgwMEU4NzU0RSAvKiBTZWNJdGVtU2hpbS5keWxpYiBpbiBDb3B5IFNlYyBJdGVtIFNo
aW0gKi8sCisJCQkJQ0RDMzgzMDgxNzIxMTg5MDAwOEEyRkMzIC8qIFdlYlByb2Nlc3NTaGltLmR5
bGliIGluIENvcHkgV2ViUHJvY2Vzc1NoaW0gKi8sCiAJCQkpOwotCQkJbmFtZSA9ICJDb3B5IFNl
YyBJdGVtIFNoaW0iOworCQkJbmFtZSA9ICJDb3B5IFdlYlByb2Nlc3NTaGltIjsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwogCQk1RDFBMjM5MDE1RTc1
QjEwMDAyM0U5ODEgLyogQ29weSBNZXNzYWdlIEdlbmVyYXRpb24gU2NyaXB0cyAqLyA9IHsKQEAg
LTI1MzMsNiArMjU0OCw4IEBACiAJCUM1NTRGRkEyMTJFNEU4RUEwMDJGMjJDMCAvKiBXZWJEcmFn
Q2xpZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
RHJhZ0NsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzU3NEE1N0Yx
MkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQYXN0ZWJvYXJkVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzU3NEE1ODAxMkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhc3RlYm9hcmRUeXBlcy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0NzFGNUIxNzIxQjk5OTAwRDY1Q0RBIC8q
IER5bGRJbnRlcnBvc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHlsZEludGVycG9zZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ3MUY1QzE3MjFCQzNFMDBENjVDREEgLyogbGliV1RG
LmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhcmNo
aXZlLmFyOyBuYW1lID0gbGliV1RGLmE7IHBhdGggPSAuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi91
c3IvbG9jYWwvbGliL2xpYldURi5hOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDVD
NjY5RTEzNEI5RDM2MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q1QzY2OUYxMzRCOUQzNzAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5D
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQ
YWdlRnVsbFNjcmVlbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDY3
RDMwODE1QzA3QkUwMDA4NDNBREYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0
ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjU0Nyw2ICsyNTY0LDEzIEBACiAJCUNENzNCQTQ4MTMxQUNEOEUwMEVF
REVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzNCQTQ5MTMxQUNE
OEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JBNEExMzFBQ0Q4RjAwRUVERUQyIC8qIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDMzgyRjcxNzIxMTUwNjAwOEEyRkMzIC8qIENGTmV0d29y
ay5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENGTmV0d29yay5mcmFtZXdvcms7IHBhdGgg
PSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DRk5ldHdvcmsuZnJhbWV3b3JrOyBzb3VyY2VU
cmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQlDREMzODJGOTE3MjExNkQzMDA4QTJGQzMgLyogQ29v
a2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvb2tpZVN0b3Jh
Z2VTaGltTGlicmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQzM4MzA2
MTcyMTE3OTkwMDhBMkZDMyAvKiBXZWJQcm9jZXNzU2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7
IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFdlYlByb2Nlc3NTaGltLmR5bGliOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlDREMzODMwQjE3MjEyMUNFMDA4QTJGQzMg
LyogQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvb2tpZVN0b3Jh
Z2VTaGltTGlicmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREMzODMwRDE3
MjEyNDJEMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW0uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ29va2llU3RvcmFnZVNoaW0uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDREMzODMwRTE3MjEyNDJEMDA4QTJGQzMgLyogQ29va2llU3RvcmFn
ZVNoaW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llU3RvcmFnZVNo
aW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDOEY0ODgxNzI1RTY3ODAwMTY2
RjZFIC8qIENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ29yZUZv
dW5kYXRpb24uZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29y
ZUZvdW5kYXRpb24uZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQlD
RENBODVDNjEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0E4NUM3
MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTg1RDQxMzJBQzJCMzAwRTk2MURG
IC8qIElPS2l0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gSU9LaXQuZnJhbWV3b3JrOyBw
YXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvSU9LaXQuZnJhbWV3b3JrOyBzb3VyY2VU
cmVlID0gIjxhYnNvbHV0ZT4iOyB9OwpAQCAtMjc4Nyw2ICsyODExLDE3IEBACiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CisJCUNEQzM4MkZG
MTcyMTE3OTkwMDhBMkZDMyAvKiBGcmFtZXdvcmtzICovID0geworCQkJaXNhID0gUEJYRnJhbWV3
b3Jrc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmls
ZXMgPSAoCisJCQkJQ0Q0NzFGNUQxNzIxQkMzRTAwRDY1Q0RBIC8qIGxpYldURi5hIGluIEZyYW1l
d29ya3MgKi8sCisJCQkJQ0RDMzgzMDAxNzIxMTc5OTAwOEEyRkMzIC8qIENGTmV0d29yay5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQlDREM4RjQ4OTE3MjVFNjc4MDAxNjZGNkUgLyog
Q29yZUZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCisJCQkJQ0RDMzgzMDEx
NzIxMTc5OTAwOEEyRkMzIC8qIFNlY3VyaXR5LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAor
CQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9Owog
CQlFMTNBOEEyOTE2Mjg3OUFDMDAzOTI5MjkgLyogRnJhbWV3b3JrcyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKQEAgLTI4MTgsNiArMjg1Myw3IEBACiAJCQkJQkNBRjM1OUExNkNBMUQ1NzAwRDRFOUZDIC8q
IE9mZmxpbmVTdG9yYWdlUHJvY2Vzcy5hcHAgKi8sCiAJCQkJQkNBRjM1RjExNkNBMjYzODAwRDRF
OUZDIC8qIGNvbS5hcHBsZS5XZWJLaXQuT2ZmbGluZVN0b3JhZ2UueHBjICovLAogCQkJCUJDQUYz
NjA0MTZDQTI2NjkwMEQ0RTlGQyAvKiBjb20uYXBwbGUuV2ViS2l0Lk9mZmxpbmVTdG9yYWdlLkRl
dmVsb3BtZW50LnhwYyAqLywKKwkJCQlDREMzODMwNjE3MjExNzk5MDA4QTJGQzMgLyogV2ViUHJv
Y2Vzc1NoaW0uZHlsaWIgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFByb2R1Y3RzOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI4MjcsNiArMjg2Myw3IEBACiAJCTA4NjdENjkxRkU4NDAy
OEZDMDJBQUMwNyAvKiBXZWJLaXQyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQlDRDQ3MUY1QzE3MjFCQzNFMDBENjVDREEgLyogbGliV1RGLmEgKi8sCiAJ
CQkJQjM5NkVBNTUxMkUwRUQyRDAwRjRGRUI3IC8qIGNvbmZpZy5oICovLAogCQkJCTMyREJDRjVF
MDM3MEFERUUwMEM5MTc4MyAvKiBXZWJLaXQyUHJlZml4LmggKi8sCiAJCQkJQzBDRTcyREIxMjQ3
RThGNzAwQkMwRUM0IC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8sCkBAIC0yODc3LDYgKzI5MTQs
OCBAQAogCQkxMDU4QzdCMEZFQTU1ODVFMTFDQTJDQkIgLyogTGlua2VkIEZyYW1ld29ya3MgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUNEQzhGNDg4MTcy
NUU2NzgwMDE2NkY2RSAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCisJCQkJQ0RDMzgy
RjcxNzIxMTUwNjAwOEEyRkMzIC8qIENGTmV0d29yay5mcmFtZXdvcmsgKi8sCiAJCQkJMDg2N0Q2
QTVGRTg0MDMwN0MwMkFBQzA3IC8qIEFwcEtpdC5mcmFtZXdvcmsgKi8sCiAJCQkJMUFBREU2RkUx
MEQ4NTVGQzAwRDNENjNEIC8qIEFwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrICovLAogCQkJ
CTFBQTFDRDA2MTAwRkExQkEwMDc4REVCQyAvKiBDYXJib24uZnJhbWV3b3JrICovLApAQCAtNDE4
OSw2ICs0MjI4LDExIEBACiAJCQkJMUEyQTRBRkUxNTg2OTM5MjAwOTBDOUU5IC8qIENvbG9yU3Bh
Y2VEYXRhLmggKi8sCiAJCQkJMUEyQTRBRkQxNTg2OTM5MjAwOTBDOUU5IC8qIENvbG9yU3BhY2VE
YXRhLm1tICovLAogCQkJCTFBNkY5RkI2MTFFMTQwODUwMERCMTM3MSAvKiBDb21tYW5kTGluZU1h
Yy5jcHAgKi8sCisJCQkJQ0RDMzgyRjkxNzIxMTZEMzAwOEEyRkMzIC8qIENvb2tpZVN0b3JhZ2VT
aGltTGlicmFyeS5jcHAgKi8sCisJCQkJQ0RDMzgzMEIxNzIxMjFDRTAwOEEyRkMzIC8qIENvb2tp
ZVN0b3JhZ2VTaGltTGlicmFyeS5oICovLAorCQkJCUNEQzM4MzBEMTcyMTI0MkQwMDhBMkZDMyAv
KiBDb29raWVTdG9yYWdlU2hpbS5jcHAgKi8sCisJCQkJQ0RDMzgzMEUxNzIxMjQyRDAwOEEyRkMz
IC8qIENvb2tpZVN0b3JhZ2VTaGltLmggKi8sCisJCQkJQ0Q0NzFGNUIxNzIxQjk5OTAwRDY1Q0RB
IC8qIER5bGRJbnRlcnBvc2UuaCAqLywKIAkJCQkxQTkyREMxMjEyRjhCQUI5MDAxN0FGNjUgLyog
TGF5ZXJUcmVlQ29udGV4dE1hYy5tbSAqLywKIAkJCQlDMDJCRkYxRDEyNTE1MDJFMDA5Q0NCRUEg
LyogTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbSAqLywKIAkJCQkzMUVBMjVEMDEzNEY3OEIy
MDA1QjE0NTIgLyogTmF0aXZlV2ViTW91c2VFdmVudE1hYy5tbSAqLywKQEAgLTUyOTIsNiArNTMz
Niw3IEBACiAJCQkJMUE4RUY0Q0IxMjUyNDAzNzAwRjcwNjdGIC8qIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RUY5NkYxMjUyQUY2QjAwRjcwNjdGIC8qIFBs
dWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTE3OTc4
MDEzN0VFODJDMDBGOTdENDUgLyogUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlDREMzODMwQzE3MjEyMjgyMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW1M
aWJyYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUVGQ0MxMjExRDAxRjk2MDA4MjE5RDMgLyog
UGx1Z2luSW5mb1N0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTNENjEwMjEzQTdDQzJBMDBG
OTVENEUgLyogUGx1Z2luTW9kdWxlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwNDM5NzYx
MjREMDM0ODAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3MuaCBpbiBIZWFkZXJzICovLApAQCAtNTY3
Nyw2ICs1NzIyLDEzIEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CisJCUNEQzM4MkZDMTcyMTE3OTkwMDhBMkZDMyAvKiBIZWFkZXJzICov
ID0geworCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAvKiBFbmQgUEJYSGVhZGVyc0J1aWxkUGhhc2Ug
c2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAqLwpAQCAtNTY4
NiwxMyArNTczOCwxMyBAQAogCQkJYnVpbGRQaGFzZXMgPSAoCiAJCQkJMUE1MERCMUExMTBBM0JE
QzAwMEQzRkU1IC8qIFJlc291cmNlcyAqLywKIAkJCQkxQTUwREIxQjExMEEzQkRDMDAwRDNGRTUg
LyogU291cmNlcyAqLywKLQkJCQk1MTgzQjM4RjEzNzlGNTY4MDBFODc1NEUgLyogQ29weSBTZWMg
SXRlbSBTaGltICovLAorCQkJCTUxODNCMzhGMTM3OUY1NjgwMEU4NzU0RSAvKiBDb3B5IFdlYlBy
b2Nlc3NTaGltICovLAogCQkJCUJDNUQyNEIwMTZDQzNGMjgwMDdENTQ2MSAvKiBGcmFtZXdvcmtz
ICovLAogCQkJKTsKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0g
KAotCQkJCTUxODNCMzhFMTM3OUY1NDYwMEU4NzU0RSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICov
LAorCQkJCUNEQzM4MzBBMTcyMTFBQkUwMDhBMkZDMyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICov
LAogCQkJCTFBNTBEQjI3MTEwQTNCRUYwMDBEM0ZFNSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICov
LAogCQkJKTsKIAkJCW5hbWUgPSBXZWJQcm9jZXNzOwpAQCAtNTc0Niw2ICs1Nzk4LDcgQEAKIAkJ
CWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCUNEQzhGNEQ1
MTcyNUY3M0YwMDE2NkY2RSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTUxMENDODUx
MTYxM0M5OEQwMEQwM0VEMyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5h
bWUgPSBOZXR3b3JrUHJvY2VzczsKQEAgLTU5NzEsNiArNjAyNCwyMyBAQAogCQkJcHJvZHVjdFJl
ZmVyZW5jZSA9IEJDREUwOTQyMTMyNzI0OTYwMDEyNTlGQiAvKiBQbHVnaW5Qcm9jZXNzLmFwcCAq
LzsKIAkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUuYXBwbGljYXRpb24i
OwogCQl9OworCQlDREMzODJGQjE3MjExNzk5MDA4QTJGQzMgLyogV2ViUHJvY2Vzc1NoaW0gKi8g
PSB7CisJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0
ID0gQ0RDMzgzMDIxNzIxMTc5OTAwOEEyRkMzIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYTmF0aXZlVGFyZ2V0ICJXZWJQcm9jZXNzU2hpbSIgKi87CisJCQlidWlsZFBoYXNlcyA9
ICgKKwkJCQlDREMzODJGQzE3MjExNzk5MDA4QTJGQzMgLyogSGVhZGVycyAqLywKKwkJCQlDREMz
ODJGRDE3MjExNzk5MDA4QTJGQzMgLyogU291cmNlcyAqLywKKwkJCQlDREMzODJGRjE3MjExNzk5
MDA4QTJGQzMgLyogRnJhbWV3b3JrcyAqLywKKwkJCSk7CisJCQlidWlsZFJ1bGVzID0gKAorCQkJ
KTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1lID0gV2ViUHJvY2Vzc1NoaW07
CisJCQlwcm9kdWN0TmFtZSA9IFBsdWdpblByb2Nlc3NTaGltOworCQkJcHJvZHVjdFJlZmVyZW5j
ZSA9IENEQzM4MzA2MTcyMTE3OTkwMDhBMkZDMyAvKiBXZWJQcm9jZXNzU2hpbS5keWxpYiAqLzsK
KwkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUubGlicmFyeS5keW5hbWlj
IjsKKwkJfTsKIAkJRTEzQThBMkIxNjI4NzlBQzAwMzkyOTI5IC8qIFNoYXJlZFdvcmtlclByb2Nl
c3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRp
b25MaXN0ID0gRTEzQThBNEExNjI4NzlBQzAwMzkyOTI5IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24g
bGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJTaGFyZWRXb3JrZXJQcm9jZXNzIiAqLzsKQEAgLTYw
MjMsNiArNjA5Myw3IEBACiAJCQkJQzBDRTcyODUxMjQ3RTY2ODAwQkMwRUM0IC8qIERlcml2ZWQg
U291cmNlcyAqLywKIAkJCQkxQUMyNUZBRjEyQTQ4RUE3MDBCRDI2NzEgLyogUGx1Z2luUHJvY2Vz
c1NoaW0gKi8sCiAJCQkJNTEwMDMxRUExMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltICov
LAorCQkJCUNEQzM4MkZCMTcyMTE3OTkwMDhBMkZDMyAvKiBXZWJQcm9jZXNzU2hpbSAqLywKIAkJ
CQlCQzNERTQ2NTE1QTkxNzYzMDA4RDI2RkMgLyogV2ViQ29udGVudCAqLywKIAkJCQlCQ0FFOURF
ODE2MEMwOTc0MDBBMzMyMTcgLyogV2ViQ29udGVudC5EZXZlbG9wbWVudCAqLywKIAkJCQlCQzgy
ODNCMDE2QjRCRjc3MDBBMjc4RkUgLyogTmV0d29ya2luZyAqLywKQEAgLTY2MjcsNiArNjY5OCw3
IEBACiAJCQkJOTM5QUU3NjYxMzE2RTk5QzAwQUUwNkE2IC8qIFdlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0UyMzI2MzEyMkM2Q0YzMDBENUMzNUEgLyogV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyRjU4OUExMkE4
ODM4ODAwNjI5NTMwIC8qIFdlYkNyZWRlbnRpYWwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RD
MzgzMTAxNzIxMjQ0MDAwOEEyRkMzIC8qIENvb2tpZVN0b3JhZ2VTaGltLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUY2QTI1RkRDMTJBREM2Q0MwMERDNDBDQyAvKiBXZWJEYXRhYmFzZU1hbmFnZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjYyQTc2QjYxMkIxQjI1RjAwMDVGMUI2IC8qIFdlYkRh
dGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNjJB
NzY1QzEyQjFBQkMzMDAwNUYxQjYgLyogV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC02OTc4LDYgKzcwNTAsMTUgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJQ0RDMzgyRkQxNzIxMTc5OTAwOEEy
RkMzIC8qIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKKwkJ
CWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQlDREMzODMw
NzE3MjExN0REMDA4QTJGQzMgLyogQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUNEQzM4MkZFMTcyMTE3OTkwMDhBMkZDMyAvKiBTZWNJdGVtU2hpbUxpYnJh
cnkubW0gaW4gU291cmNlcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKKwkJfTsKIAkJRTEzQThBMjgxNjI4NzlBQzAwMzkyOTI5IC8qIFNvdXJj
ZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9u
TWFzayA9IDIxNDc0ODM2NDc7CkBAIC03MDE0LDExICs3MDk1LDYgQEAKIAkJCXRhcmdldCA9IDhE
QzJFRjRGMDQ4NkE2OTQwMDk4QjIxNiAvKiBXZWJLaXQyICovOwogCQkJdGFyZ2V0UHJveHkgPSA1
MTBDQzg1MDE2MTNDOThEMDBEMDNFRDMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9
OwotCQk1MTgzQjM4RTEzNzlGNTQ2MDBFODc1NEUgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9
IHsKLQkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7Ci0JCQl0YXJnZXQgPSA1MTAwMzFFQTEz
NzlDQUNCMDBDOERGRTQgLyogU2VjSXRlbVNoaW0gKi87Ci0JCQl0YXJnZXRQcm94eSA9IDUxODNC
MzhEMTM3OUY1NDYwMEU4NzU0RSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87Ci0JCX07CiAJ
CUJDNzdGOTU2MTZEMDQ1OTEwMEY4Rjc4QSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewog
CQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdldCA9IEJDODI4M0Y4MTZCNEZE
REUwMEEyNzhGRSAvKiBQbHVnaW4uMzIgKi87CkBAIC03MDg5LDYgKzcxNjUsMTYgQEAKIAkJCXRh
cmdldCA9IEJDREUwOTMzMTMyNzI0OTYwMDEyNTlGQiAvKiBQbHVnaW5Qcm9jZXNzICovOwogCQkJ
dGFyZ2V0UHJveHkgPSBCQ0RFMEFDMDEzMjcyNzEyMDAxMjU5RkIgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovOwogCQl9OworCQlDREMzODMwQTE3MjExQUJFMDA4QTJGQzMgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJn
ZXQgPSBDREMzODJGQjE3MjExNzk5MDA4QTJGQzMgLyogV2ViUHJvY2Vzc1NoaW0gKi87CisJCQl0
YXJnZXRQcm94eSA9IENEQzM4MzA5MTcyMTFBQkUwMDhBMkZDMyAvKiBQQlhDb250YWluZXJJdGVt
UHJveHkgKi87CisJCX07CisJCUNEQzhGNEQ1MTcyNUY3M0YwMDE2NkY2RSAvKiBQQlhUYXJnZXRE
ZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdl
dCA9IDUxMDAzMUVBMTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVtU2hpbSAqLzsKKwkJCXRhcmdl
dFByb3h5ID0gQ0RDOEY0RDQxNzI1RjczRjAwMTY2RjZFIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94
eSAqLzsKKwkJfTsKIAkJRTEzQThBNEQxNjI4N0E1QjAwMzkyOTI5IC8qIFBCWFRhcmdldERlcGVu
ZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0g
RTEzQThBMkIxNjI4NzlBQzAwMzkyOTI5IC8qIFNoYXJlZFdvcmtlclByb2Nlc3MgKi87CkBAIC03
NTU0LDYgKzc2NDAsMzAgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJ
Q0RDMzgzMDMxNzIxMTc5OTAwOEEyRkMzIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWls
ZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxODNCMzkz
MTM3OUY4NUMwMEU4NzU0RSAvKiBTaGltLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9
IHsKKwkJCQlQUk9EVUNUX05BTUUgPSBXZWJQcm9jZXNzU2hpbTsKKwkJCX07CisJCQluYW1lID0g
RGVidWc7CisJCX07CisJCUNEQzM4MzA0MTcyMTE3OTkwMDhBMkZDMyAvKiBSZWxlYXNlICovID0g
eworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJl
ZmVyZW5jZSA9IDUxODNCMzkzMTM3OUY4NUMwMEU4NzU0RSAvKiBTaGltLnhjY29uZmlnICovOwor
CQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSBXZWJQcm9jZXNzU2hpbTsK
KwkJCX07CisJCQluYW1lID0gUmVsZWFzZTsKKwkJfTsKKwkJQ0RDMzgzMDUxNzIxMTc5OTAwOEEy
RkMzIC8qIFByb2R1Y3Rpb24gKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsK
KwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTE4M0IzOTMxMzc5Rjg1QzAwRTg3NTRF
IC8qIFNoaW0ueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1Rf
TkFNRSA9IFdlYlByb2Nlc3NTaGltOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9
OwogCQlFMTNBOEE0NzE2Mjg3OUFDMDAzOTI5MjkgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBY
Q0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gRTEz
QThBNEIxNjI4N0ExQjAwMzkyOTI5IC8qIFNoYXJlZFdvcmtlclByb2Nlc3MueGNjb25maWcgKi87
CkBAIC03NzY4LDYgKzc4NzgsMTYgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxl
ID0gMDsKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJ
CUNEQzM4MzAyMTcyMTE3OTkwMDhBMkZDMyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWE5hdGl2ZVRhcmdldCAiV2ViUHJvY2Vzc1NoaW0iICovID0geworCQkJaXNhID0gWENDb25m
aWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJQ0RDMzgzMDMx
NzIxMTc5OTAwOEEyRkMzIC8qIERlYnVnICovLAorCQkJCUNEQzM4MzA0MTcyMTE3OTkwMDhBMkZD
MyAvKiBSZWxlYXNlICovLAorCQkJCUNEQzM4MzA1MTcyMTE3OTkwMDhBMkZDMyAvKiBQcm9kdWN0
aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJ
CWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCUUxM0E4QTRB
MTYyODc5QUMwMDM5MjkyOSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2
ZVRhcmdldCAiU2hhcmVkV29ya2VyUHJvY2VzcyIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3Vy
YXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250
ZW50UHJvY2Vzc01haW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tCmluZGV4IDNhYjEyZDAw
ZDc0Mzc3YjU2OTVhMDE4ZGY3YmY3ZWViOWQ2MTVlY2UuLjU0OGQzNzU0MWRiODMzOWJlNDc3NDZl
MjViMjMwZjFiMTgxY2RmNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
RW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4ubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNz
L1dlYkNvbnRlbnRQcm9jZXNzTWFpbi5tbQpAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICAvLyBSZW1vdmUgdGhlIFdlYlByb2Nlc3Mgc2hpbSBmcm9tIHRoZSBEWUxEX0lO
U0VSVF9MSUJSQVJJRVMgZW52aXJvbm1lbnQgdmFyaWFibGUgc28gYW55IHByb2Nlc3NlcyBzcGF3
bmVkIGJ5CiAgICAgICAgIC8vIHRoZSBXZWJQcm9jZXNzIGRvbid0IHRyeSB0byBpbnNlcnQgdGhl
IHNoaW0gYW5kIGNyYXNoLgotICAgICAgICBFbnZpcm9ubWVudFV0aWxpdGllczo6c3RyaXBWYWx1
ZXNFbmRpbmdXaXRoU3RyaW5nKCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCAiL1NlY0l0ZW1TaGlt
LmR5bGliIik7CisgICAgICAgIEVudmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGlu
Z1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIvV2ViQ29udGVudFNoaW0uZHls
aWIiKTsKICAgICAKICNpZiBVU0UoQVBQS0lUKQogICAgICAgICBSdW5Mb29wOjpzZXRVc2VBcHBs
aWNhdGlvblJ1bkxvb3BPbk1haW5SdW5Mb29wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2Uv
SW5mby5wbGlzdCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBD
U2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZvLnBsaXN0CmluZGV4IGJmZjVjZjY3YTFhZDg2
MjkxMzQ2ZTY1MjU3ODVjZDQyZTYzYjhhMzYuLmZjNjQwNWUxOGJiZjEzMzQ0ODBjZDA5ODIxMmRh
YWEzM2JiMjlmMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQ
b2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZvLnBsaXN0CisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250
ZW50U2VydmljZS9JbmZvLnBsaXN0CkBAIC00Nyw3ICs0Nyw3IEBACiAJCTxrZXk+RW52aXJvbm1l
bnRWYXJpYWJsZXM8L2tleT4KIAkJPGRpY3Q+CiAJCQk8a2V5PkRZTERfSU5TRVJUX0xJQlJBUklF
Uzwva2V5PgotCQkJPHN0cmluZz4kKFdFQktJVDJfRlJBTUVXT1JLU19ESVIpL1dlYktpdDIuZnJh
bWV3b3JrL1dlYlByb2Nlc3MuYXBwL0NvbnRlbnRzL01hY09TL1NlY0l0ZW1TaGltLmR5bGliPC9z
dHJpbmc+CisJCQk8c3RyaW5nPiQoV0VCS0lUMl9GUkFNRVdPUktTX0RJUikvV2ViS2l0Mi5mcmFt
ZXdvcmsvV2ViUHJvY2Vzcy5hcHAvQ29udGVudHMvTWFjT1MvV2ViQ29udGVudFNoaW0uZHlsaWI8
L3N0cmluZz4KIAkJPC9kaWN0PgogCTwvZGljdD4KIDwvZGljdD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50
U2VydmljZUVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCmluZGV4IDM0
YWI4ZGFjMTMxNjNmOTExMzk2ODEzYjU4YzM4OGEzZmE3MGE0ZjUuLjU4ODgwY2NhNTg4MmRmODBi
ZWMzZDViN2EzOTE2MmRiNDg2ODlhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9p
bnQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENT
ZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQpAQCAtNDIsNyArNDIsNyBAQCB2
b2lkIFdlYkNvbnRlbnRTZXJ2aWNlSW5pdGlhbGl6ZXIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0
aW9uLCB4cGNfb2JqZWN0X3QgaW5pdAogewogICAgIC8vIFJlbW92ZSB0aGUgU2VjSXRlbVNoaW0g
ZnJvbSB0aGUgRFlMRF9JTlNFUlRfTElCUkFSSUVTIGVudmlyb25tZW50IHZhcmlhYmxlIHNvIGFu
eSBwcm9jZXNzZXMgc3Bhd25lZCBieQogICAgIC8vIHRoZSB0aGlzIHByb2Nlc3MgZG9uJ3QgdHJ5
IHRvIGluc2VydCB0aGUgc2hpbSBhbmQgY3Jhc2guCi0gICAgRW52aXJvbm1lbnRVdGlsaXRpZXM6
OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZygiRFlMRF9JTlNFUlRfTElCUkFSSUVTIiwgIi9T
ZWNJdGVtU2hpbS5keWxpYiIpOworICAgIEVudmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVl
c0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIvV2ViQ29udGVudFNo
aW0uZHlsaWIiKTsKIAogICAgIFJ1bkxvb3A6OnNldFVzZUFwcGxpY2F0aW9uUnVuTG9vcE9uTWFp
blJ1bkxvb3AoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggMjRlZjhhYjJkMGI0MmRkZTgzODhjNTEyNDMwZjg0YjFlZGQ1YzBiZS4uMjE4MTIyOTkxMmZj
N2M4ZmMzMDkxMTY3NTY3MDFiMTIxZmIwNjFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCkBAIC05MCw2ICs5MCw3IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCisjaW5jbHVkZSAiQ29va2llU3RvcmFnZVNoaW0uaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNlbmRpZgogCkBAIC0zMzMsNiArMzM0LDkg
QEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWUKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQog
ICAgIG1fdXNlc05ldHdvcmtQcm9jZXNzID0gcGFyYW1ldGVycy51c2VzTmV0d29ya1Byb2Nlc3M7
CiAgICAgZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CisKKyAgICBpZiAodXNlc05l
dHdvcmtQcm9jZXNzKCkpCisgICAgICAgIENvb2tpZVN0b3JhZ2VTaGltOjpzaGFyZWQoKS5pbml0
aWFsaXplKCk7CiAjZW5kaWYKICAgICBzZXRUZXJtaW5hdGlvblRpbWVvdXQocGFyYW1ldGVycy50
ZXJtaW5hdGlvblRpbWVvdXQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL21hYy9TZWNJdGVtU2hpbUxpYnJhcnkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L21hYy9TZWNJdGVtU2hpbUxpYnJhcnkubW0KaW5kZXggNDg4ZjhhY2NlODMyZDUwM2ZhZjI5YjBk
NmM1NzE1MjM5MDBmN2RmOS4uZjhiMDI5YTljMGFhOWE4N2QwNThlYTZmNDI1MDVmMzVkMWUzZmVi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1M
aWJyYXJ5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1NlY0l0ZW1TaGlt
TGlicmFyeS5tbQpAQCAtMjQsMTMgKzI0LDEwIEBACiAgKi8KICNpbXBvcnQgIlNlY0l0ZW1TaGlt
TGlicmFyeS5oIgogCisjaW1wb3J0ICJEWUxESW50ZXJwb3NlLmgiCiAjaW1wb3J0IDxTZWN1cml0
eS9TZWNJdGVtLmg+CiAjaW1wb3J0IDx3dGYvUGxhdGZvcm0uaD4KIAotI2RlZmluZSBEWUxEX0lO
VEVSUE9TRShfcmVwbGFjZW1lbnQsX3JlcGxhY2VlKSBcCi0gICAgX19hdHRyaWJ1dGVfXygodXNl
ZCkpIHN0YXRpYyBzdHJ1Y3R7IGNvbnN0IHZvaWQqIHJlcGxhY2VtZW50OyBjb25zdCB2b2lkKiBy
ZXBsYWNlZTsgfSBfaW50ZXJwb3NlXyMjX3JlcGxhY2VlIFwKLSAgICBfX2F0dHJpYnV0ZV9fICgo
c2VjdGlvbiAoIl9fREFUQSxfX2ludGVycG9zZSIpKSkgPSB7IChjb25zdCB2b2lkKikodW5zaWdu
ZWQgbG9uZykmX3JlcGxhY2VtZW50LCAoY29uc3Qgdm9pZCopKHVuc2lnbmVkIGxvbmcpJl9yZXBs
YWNlZSB9OwotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogZXh0ZXJuICJDIiB2b2lkIFdlYktpdFNl
Y0l0ZW1TaGltSW5pdGlhbGl6ZShjb25zdCBTZWNJdGVtU2hpbUNhbGxiYWNrcyYpOwo=
</data>
<flag name="review"
          id="220793"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>