<?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>197841</bug_id>
          
          <creation_ts>2019-05-13 09:57:09 -0700</creation_ts>
          <short_desc>Update TBA macros for API / SPI that has already shipped</short_desc>
          <delta_ts>2019-05-14 11:52:52 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>krollin</cc>
    
    <cc>mitz</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1535644</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-13 09:57:09 -0700</bug_when>
    <thetext>Update TBA macros for API / SPI that has already shipped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535645</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-13 09:57:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/50698499&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535647</commentid>
    <comment_count>2</comment_count>
      <attachid>369740</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-13 09:58:19 -0700</bug_when>
    <thetext>Created attachment 369740
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535673</commentid>
    <comment_count>3</comment_count>
      <attachid>369740</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-13 10:56:30 -0700</bug_when>
    <thetext>Comment on attachment 369740
Patch

Clearing flags on attachment: 369740

Committed r245240: &lt;https://trac.webkit.org/changeset/245240&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535674</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-13 10:56:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535723</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-13 12:40:06 -0700</bug_when>
    <thetext>Reverted r245240 for reason:

Broke the build

Committed r245245: &lt;https://trac.webkit.org/changeset/245245&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535724</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-13 12:40:39 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; Reverted r245240 for reason:
&gt; 
&gt; Broke the build
&gt; 
&gt; Committed r245245: &lt;https://trac.webkit.org/changeset/245245&gt;

/Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/AppDelegate.m:111:17: error: &apos;_WKInternalDebugFeature&apos; is only available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
/Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/AppDelegate.m:111:84: error: &apos;_internalDebugFeatures&apos; is only available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
/Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/AppDelegate.m:112:14: error: &apos;_WKInternalDebugFeature&apos; is only available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
/Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/AppDelegate.m:118:40: error: &apos;_setEnabled:forInternalDebugFeature:&apos; is only available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
/Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/SettingsController.m:226:13: error: &apos;_WKInternalDebugFeature&apos; is only available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
/Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/SettingsController.m:226:80: error: &apos;_internalDebugFeatures&apos; is only available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
/Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/SettingsController.m:228:10: error: &apos;_WKInternalDebugFeature&apos; is only available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
/Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/SettingsController.m:312:9: error: &apos;_WKInternalDebugFeature&apos; is only available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
/Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/SettingsController.m:313:50: error: &apos;_isEnabledForInternalDebugFeature:&apos; is only available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
/Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/SettingsController.m:652:5: error: &apos;_WKInternalDebugFeature&apos; is only available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
/Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/SettingsController.m:655:42: error: &apos;_isEnabledForInternalDebugFeature:&apos; is only available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
/Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/SettingsController.m:656:18: error: &apos;_setEnabled:forInternalDebugFeature:&apos; is only available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
/Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/WK2BrowserWindowController.m:209:37: error: &apos;_inspector&apos; is only available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
/Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/WK2BrowserWindowController.m:289:5: error: &apos;_WKInspector&apos; is only available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
/Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/WK2BrowserWindowController.m:289:40: error: &apos;_inspector&apos; is only available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535727</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2019-05-13 12:44:00 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; (In reply to Chris Dumez from comment #5)
&gt; &gt; Reverted r245240 for reason:
&gt; &gt; 
&gt; &gt; Broke the build
&gt; &gt; 
&gt; &gt; Committed r245245: &lt;https://trac.webkit.org/changeset/245245&gt;
&gt; 
&gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/AppDelegate.m:
&gt; 111:17: error: &apos;_WKInternalDebugFeature&apos; is only available on macOS 10.14.4
&gt; or newer [-Werror,-Wunguarded-availability-new]
&gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/AppDelegate.m:
&gt; 111:84: error: &apos;_internalDebugFeatures&apos; is only available on macOS 10.14.4
&gt; or newer [-Werror,-Wunguarded-availability-new]
&gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/AppDelegate.m:
&gt; 112:14: error: &apos;_WKInternalDebugFeature&apos; is only available on macOS 10.14.4
&gt; or newer [-Werror,-Wunguarded-availability-new]
&gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/AppDelegate.m:
&gt; 118:40: error: &apos;_setEnabled:forInternalDebugFeature:&apos; is only available on
&gt; macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; SettingsController.m:226:13: error: &apos;_WKInternalDebugFeature&apos; is only
&gt; available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; SettingsController.m:226:80: error: &apos;_internalDebugFeatures&apos; is only
&gt; available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; SettingsController.m:228:10: error: &apos;_WKInternalDebugFeature&apos; is only
&gt; available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; SettingsController.m:312:9: error: &apos;_WKInternalDebugFeature&apos; is only
&gt; available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; SettingsController.m:313:50: error: &apos;_isEnabledForInternalDebugFeature:&apos; is
&gt; only available on macOS 10.14.4 or newer
&gt; [-Werror,-Wunguarded-availability-new]
&gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; SettingsController.m:652:5: error: &apos;_WKInternalDebugFeature&apos; is only
&gt; available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; SettingsController.m:655:42: error: &apos;_isEnabledForInternalDebugFeature:&apos; is
&gt; only available on macOS 10.14.4 or newer
&gt; [-Werror,-Wunguarded-availability-new]
&gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; SettingsController.m:656:18: error: &apos;_setEnabled:forInternalDebugFeature:&apos;
&gt; is only available on macOS 10.14.4 or newer
&gt; [-Werror,-Wunguarded-availability-new]
&gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; WK2BrowserWindowController.m:209:37: error: &apos;_inspector&apos; is only available
&gt; on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; WK2BrowserWindowController.m:289:5: error: &apos;_WKInspector&apos; is only available
&gt; on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; WK2BrowserWindowController.m:289:40: error: &apos;_inspector&apos; is only available
&gt; on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]

Was this before or after disabling postprocessing for 10.14?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535728</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-05-13 12:51:55 -0700</bug_when>
    <thetext>Perhaps MiniBrowser needs to disable checking availability annotations? It needs to build and to use trunk features on 10.13.6 anyway, so seems like it has to ignore the annotations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535729</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-13 12:52:33 -0700</bug_when>
    <thetext>(In reply to mitz from comment #7)
&gt; (In reply to Chris Dumez from comment #6)
&gt; &gt; (In reply to Chris Dumez from comment #5)
&gt; &gt; &gt; Reverted r245240 for reason:
&gt; &gt; &gt; 
&gt; &gt; &gt; Broke the build
&gt; &gt; &gt; 
&gt; &gt; &gt; Committed r245245: &lt;https://trac.webkit.org/changeset/245245&gt;
&gt; &gt; 
&gt; &gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/AppDelegate.m:
&gt; &gt; 111:17: error: &apos;_WKInternalDebugFeature&apos; is only available on macOS 10.14.4
&gt; &gt; or newer [-Werror,-Wunguarded-availability-new]
&gt; &gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/AppDelegate.m:
&gt; &gt; 111:84: error: &apos;_internalDebugFeatures&apos; is only available on macOS 10.14.4
&gt; &gt; or newer [-Werror,-Wunguarded-availability-new]
&gt; &gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/AppDelegate.m:
&gt; &gt; 112:14: error: &apos;_WKInternalDebugFeature&apos; is only available on macOS 10.14.4
&gt; &gt; or newer [-Werror,-Wunguarded-availability-new]
&gt; &gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/AppDelegate.m:
&gt; &gt; 118:40: error: &apos;_setEnabled:forInternalDebugFeature:&apos; is only available on
&gt; &gt; macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; &gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; &gt; SettingsController.m:226:13: error: &apos;_WKInternalDebugFeature&apos; is only
&gt; &gt; available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; &gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; &gt; SettingsController.m:226:80: error: &apos;_internalDebugFeatures&apos; is only
&gt; &gt; available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; &gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; &gt; SettingsController.m:228:10: error: &apos;_WKInternalDebugFeature&apos; is only
&gt; &gt; available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; &gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; &gt; SettingsController.m:312:9: error: &apos;_WKInternalDebugFeature&apos; is only
&gt; &gt; available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; &gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; &gt; SettingsController.m:313:50: error: &apos;_isEnabledForInternalDebugFeature:&apos; is
&gt; &gt; only available on macOS 10.14.4 or newer
&gt; &gt; [-Werror,-Wunguarded-availability-new]
&gt; &gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; &gt; SettingsController.m:652:5: error: &apos;_WKInternalDebugFeature&apos; is only
&gt; &gt; available on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; &gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; &gt; SettingsController.m:655:42: error: &apos;_isEnabledForInternalDebugFeature:&apos; is
&gt; &gt; only available on macOS 10.14.4 or newer
&gt; &gt; [-Werror,-Wunguarded-availability-new]
&gt; &gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; &gt; SettingsController.m:656:18: error: &apos;_setEnabled:forInternalDebugFeature:&apos;
&gt; &gt; is only available on macOS 10.14.4 or newer
&gt; &gt; [-Werror,-Wunguarded-availability-new]
&gt; &gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; &gt; WK2BrowserWindowController.m:209:37: error: &apos;_inspector&apos; is only available
&gt; &gt; on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; &gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; &gt; WK2BrowserWindowController.m:289:5: error: &apos;_WKInspector&apos; is only available
&gt; &gt; on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; &gt; /Volumes/Data/slave/mojave-debug/build/Tools/MiniBrowser/mac/
&gt; &gt; WK2BrowserWindowController.m:289:40: error: &apos;_inspector&apos; is only available
&gt; &gt; on macOS 10.14.4 or newer [-Werror,-Wunguarded-availability-new]
&gt; 
&gt; Was this before or after disabling postprocessing for 10.14?

That was before since my other patch has not landed yet. That said, I am not sure this is the issue because:
1. I have not updated the versions TBA resolve to yet.
2. The SPIs it is complaining about are no longer TBA in my patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535796</commentid>
    <comment_count>10</comment_count>
      <attachid>369783</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-13 14:54:46 -0700</bug_when>
    <thetext>Created attachment 369783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535798</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-13 14:55:00 -0700</bug_when>
    <thetext>*** Bug 197846 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535799</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-13 14:55:39 -0700</bug_when>
    <thetext>Ok, I merged Bug 197846 into this as it seems we need to land both changes at the same time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535803</commentid>
    <comment_count>13</comment_count>
      <attachid>369783</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-05-13 15:01:21 -0700</bug_when>
    <thetext>Comment on attachment 369783
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535861</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-13 16:17:32 -0700</bug_when>
    <thetext>Looks like iOS is unhappy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535863</commentid>
    <comment_count>15</comment_count>
      <attachid>369800</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-13 16:20:06 -0700</bug_when>
    <thetext>Created attachment 369800
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535906</commentid>
    <comment_count>16</comment_count>
      <attachid>369800</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-13 18:22:52 -0700</bug_when>
    <thetext>Comment on attachment 369800
Patch

Looks like iOS is still unhappy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536058</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-14 08:41:26 -0700</bug_when>
    <thetext>/Volumes/Data/worker/iOS-12-Simulator-Build-EWS/build/WebKitBuild/Release-iphonesimulator/WebKit.framework/PrivateHeaders/WKProcessPoolPrivate.h:73:28: error: expected &apos;;&apos; after method prototype
- (void)_warmInitialProcess WK_API_AVAILABLE(macos(10.12), ios(10.0));
                           ^
                           ;
/Volumes/Data/worker/iOS-12-Simulator-Build-EWS/build/WebKitBuild/Release-iphonesimulator/WebKit.framework/PrivateHeaders/WKProcessPoolPrivate.h:74:41: error: expected &apos;;&apos; after method prototype
- (void)_automationCapabilitiesDidChange WK_API_AVAILABLE(macos(10.12), ios(10.0));
                                        ^
                                        ;
/Volumes/Data/worker/iOS-12-Simulator-Build-EWS/build/WebKitBuild/Release-iphonesimulator/WebKit.framework/PrivateHeaders/WKProcessPoolPrivate.h:75:89: error: expected &apos;:&apos;
- (void)_setAutomationSession:(_WKAutomationSession *)automationSession WK_API_AVAILABLE(macos(10.12), ios(10.0));
                                                                                        ^
                                                                                        :
/Volumes/Data/worker/iOS-12-Simulator-Build-EWS/build/WebKitBuild/Release-iphonesimulator/WebKit.framework/PrivateHeaders/WKProcessPoolPrivate.h:75:89: error: expected &apos;;&apos; after method prototype
- (void)_setAutomationSession:(_WKAutomationSession *)automationSession WK_API_AVAILABLE(macos(10.12), ios(10.0));
                                                                                        ^
                                                                                        ;
/Volumes/Data/worker/iOS-12-Simulator-Build-EWS/build/WebKitBuild/Release-iphonesimulator/WebKit.framework/PrivateHeaders/WKProcessPoolPrivate.h:77:185: error: expected &apos;:&apos;
- (void)_addSupportedPlugin:(NSString *) domain named:(NSString *) name withMimeTypes: (NSSet&lt;NSString *&gt; *) mimeTypes withExtensions: (NSSet&lt;NSString *&gt; *) extensions WK_API_AVAILABLE(macos(10.14), ios(12.0));
                                                                                                                                                                                        ^
                                                                                                                                                                                        :
/Volumes/Data/worker/iOS-12-Simulator-Build-EWS/build/WebKitBuild/Release-iphonesimulator/WebKit.framework/PrivateHeaders/WKProcessPoolPrivate.h:77:185: error: expected &apos;;&apos; after method prototype
- (void)_addSupportedPlugin:(NSString *) domain named:(NSString *) name withMimeTypes: (NSSet&lt;NSString *&gt; *) mimeTypes withExtensions: (NSSet&lt;NSString *&gt; *) extensions WK_API_AVAILABLE(macos(10.14), ios(12.0));
                                                                                                                                                                                        ^
                                                                   
                                                                                                                     ;
/Volumes/Data/worker/iOS-12-Simulator-Build-EWS/build/WebKitBuild/Release-iphonesimulator/WebKit.framework/PrivateHeaders/WKProcessPoolPrivate.h:78:31: error: expected &apos;;&apos; after method prototype
- (void)_clearSupportedPlugins WK_API_AVAILABLE(macos(10.14), ios(12.0));
                              ^
                              ;
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536059</commentid>
    <comment_count>18</comment_count>
      <attachid>369800</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-14 08:42:30 -0700</bug_when>
    <thetext>Comment on attachment 369800
Patch

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

&gt; Source/WebKit/Configurations/WebKit.xcconfig:163
&gt; +WK_FRAMEWORK_HEADER_POSTPROCESSING_DISABLED[sdk=iphone*12.*] = YES;

I thought this would take care of the issues on iOS but it did not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536070</commentid>
    <comment_count>19</comment_count>
      <attachid>369856</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-14 08:58:56 -0700</bug_when>
    <thetext>Created attachment 369856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536071</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-14 09:00:07 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #17)
&gt; /Volumes/Data/worker/iOS-12-Simulator-Build-EWS/build/WebKitBuild/Release-
&gt; iphonesimulator/WebKit.framework/PrivateHeaders/WKProcessPoolPrivate.h:73:28:
&gt; error: expected &apos;;&apos; after method prototype
&gt; - (void)_warmInitialProcess WK_API_AVAILABLE(macos(10.12), ios(10.0));
&gt;                            ^
&gt;                            ;
&gt; /Volumes/Data/worker/iOS-12-Simulator-Build-EWS/build/WebKitBuild/Release-
&gt; iphonesimulator/WebKit.framework/PrivateHeaders/WKProcessPoolPrivate.h:74:41:
&gt; error: expected &apos;;&apos; after method prototype
&gt; - (void)_automationCapabilitiesDidChange WK_API_AVAILABLE(macos(10.12),
&gt; ios(10.0));
&gt;                                         ^
&gt;                                         ;
&gt; /Volumes/Data/worker/iOS-12-Simulator-Build-EWS/build/WebKitBuild/Release-
&gt; iphonesimulator/WebKit.framework/PrivateHeaders/WKProcessPoolPrivate.h:75:89:
&gt; error: expected &apos;:&apos;
&gt; - (void)_setAutomationSession:(_WKAutomationSession *)automationSession
&gt; WK_API_AVAILABLE(macos(10.12), ios(10.0));
&gt;                                                                             
&gt; ^
&gt;                                                                             
&gt; :
&gt; /Volumes/Data/worker/iOS-12-Simulator-Build-EWS/build/WebKitBuild/Release-
&gt; iphonesimulator/WebKit.framework/PrivateHeaders/WKProcessPoolPrivate.h:75:89:
&gt; error: expected &apos;;&apos; after method prototype
&gt; - (void)_setAutomationSession:(_WKAutomationSession *)automationSession
&gt; WK_API_AVAILABLE(macos(10.12), ios(10.0));
&gt;                                                                             
&gt; ^
&gt;                                                                             
&gt; ;
&gt; /Volumes/Data/worker/iOS-12-Simulator-Build-EWS/build/WebKitBuild/Release-
&gt; iphonesimulator/WebKit.framework/PrivateHeaders/WKProcessPoolPrivate.h:77:
&gt; 185: error: expected &apos;:&apos;
&gt; - (void)_addSupportedPlugin:(NSString *) domain named:(NSString *) name
&gt; withMimeTypes: (NSSet&lt;NSString *&gt; *) mimeTypes withExtensions:
&gt; (NSSet&lt;NSString *&gt; *) extensions WK_API_AVAILABLE(macos(10.14), ios(12.0));
&gt;                                                                             
&gt; ^
&gt;                                                                             
&gt; :
&gt; /Volumes/Data/worker/iOS-12-Simulator-Build-EWS/build/WebKitBuild/Release-
&gt; iphonesimulator/WebKit.framework/PrivateHeaders/WKProcessPoolPrivate.h:77:
&gt; 185: error: expected &apos;;&apos; after method prototype
&gt; - (void)_addSupportedPlugin:(NSString *) domain named:(NSString *) name
&gt; withMimeTypes: (NSSet&lt;NSString *&gt; *) mimeTypes withExtensions:
&gt; (NSSet&lt;NSString *&gt; *) extensions WK_API_AVAILABLE(macos(10.14), ios(12.0));
&gt;                                                                             
&gt; ^
&gt;                                                                    
&gt;                                                                             
&gt; ;
&gt; /Volumes/Data/worker/iOS-12-Simulator-Build-EWS/build/WebKitBuild/Release-
&gt; iphonesimulator/WebKit.framework/PrivateHeaders/WKProcessPoolPrivate.h:78:31:
&gt; error: expected &apos;;&apos; after method prototype
&gt; - (void)_clearSupportedPlugins WK_API_AVAILABLE(macos(10.14), ios(12.0));
&gt;                               ^
&gt;                               ;
&gt; fatal error: too many errors emitted, stopping now [-ferror-limit=]
&gt; 20 errors generated.

Trying to fix this by adding #import &lt;WebKit/WKFoundation.h&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536126</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-14 10:28:09 -0700</bug_when>
    <thetext>If anybody has an idea to fix iOS EWS, please let me know. Keith just did a local iOS 12 simulator build with my patch and it built. I have no idea why EWS is having trouble. It looks like it is not finding the WK_API_AVAILABLE define, even though it is supposed to come from WKFoundation.h to be a no-op.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536131</commentid>
    <comment_count>22</comment_count>
    <who name="">mitz</who>
    <bug_when>2019-05-14 10:43:31 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #21)
&gt; If anybody has an idea to fix iOS EWS, please let me know. Keith just did a
&gt; local iOS 12 simulator build with my patch and it built. I have no idea why
&gt; EWS is having trouble. It looks like it is not finding the WK_API_AVAILABLE
&gt; define, even though it is supposed to come from WKFoundation.h to be a no-op.

You may want to force a clean build on the EWS machine (or touch WKFoundation.h in your patch) because otherwise the postprocessed header might not get replaced by the unprocessed one when you disable postprocessing in the xcconfig.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536135</commentid>
    <comment_count>23</comment_count>
      <attachid>369868</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-14 10:49:50 -0700</bug_when>
    <thetext>Created attachment 369868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536152</commentid>
    <comment_count>24</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-05-14 11:25:35 -0700</bug_when>
    <thetext>(In reply to mitz from comment #22)
&gt; (In reply to Chris Dumez from comment #21)
&gt; &gt; If anybody has an idea to fix iOS EWS, please let me know. Keith just did a
&gt; &gt; local iOS 12 simulator build with my patch and it built. I have no idea why
&gt; &gt; EWS is having trouble. It looks like it is not finding the WK_API_AVAILABLE
&gt; &gt; define, even though it is supposed to come from WKFoundation.h to be a no-op.
&gt; 
&gt; You may want to force a clean build on the EWS machine (or touch
&gt; WKFoundation.h in your patch) because otherwise the postprocessed header
&gt; might not get replaced by the unprocessed one when you disable
&gt; postprocessing in the xcconfig.

Yoohoo, it looks like this did the trick. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536167</commentid>
    <comment_count>25</comment_count>
      <attachid>369868</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-14 11:52:50 -0700</bug_when>
    <thetext>Comment on attachment 369868
Patch

Clearing flags on attachment: 369868

Committed r245294: &lt;https://trac.webkit.org/changeset/245294&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536168</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-14 11:52:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369740</attachid>
            <date>2019-05-13 09:58:19 -0700</date>
            <delta_ts>2019-05-13 14:54:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197841-20190513095818.patch</filename>
            <type>text/plain</type>
            <size>73643</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYyMTIyMzkzOTBhZjU0ZTcy
Mjg5OWYxY2JkMWE3MjNkNWY4MzQ1ZDMuLjM3MDgyY2IwNmU0Yjk5ZWU4OGI4NDU5MGRjYTdiYjZh
NmYzODhkOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTktMDUtMTMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgVEJBIG1hY3JvcyBmb3Ig
QVBJIC8gU1BJIHRoYXQgaGFzIGFscmVhZHkgc2hpcHBlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODQxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81MDY5ODQ5OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1Qcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGlzdG9yeURlbGVnYXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRQb2xp
Y3lEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb25uZWN0aW9u
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0
ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVHlwZVJlZldyYXBwZXIuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlldy5oOgorICAgICAgICAoV0tfQ0xBU1NfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tBdHRhY2htZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRv
bWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0Rvd25sb2FkLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGb3Jt
SW5wdXRTZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0
b3IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0ludGVybmFsRGVidWdGZWF0
dXJlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tX
ZWJzaXRlUG9saWNpZXMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlBy
b2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9X
S1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZVByaXZhdGUu
aDoKKwogMjAxOS0wNS0xMyAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgog
CiAgICAgICAgIEFYOiBOZWVkIGFuIGVudGl0bGVtZW50IGZvciBXZWJDb250ZW50IHRvIHNlbmQg
YWNjZXNzaWJpbGl0eSBub3RpZmljYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQ29jb2EvX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oCmluZGV4IDgx
YTQ2M2RjNjA5OGM4OWM1Y2EwYWE2ZmYzOGMyM2YzMjU5Y2JlZTMuLjVjZTU4MjhhZTA0NDJmNzZi
Y2M2NjYyOTBjMGQxN2I1ZTg1YTRlNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9Db2NvYS9fV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oCkBAIC0zNCw1
ICszNCw1IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZW5kZXJpbmdQcm9n
cmVzc0V2ZW50cykgewogICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdFBhaW50QWZ0
ZXJTdXBwcmVzc2VkSW5jcmVtZW50YWxSZW5kZXJpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMSksIGlvcyg5LjApKSA9IDEgPDwgNSwKICAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50
Rmlyc3RQYWludCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpID0gMSA8
PCA2LAogICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnREaWRSZW5kZXJTaWduaWZpY2FudEFt
b3VudE9mVGV4dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKSA9IDEg
PDwgNywKLSAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RNZWFuaW5nZnVsUGFpbnQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKSA9IDEg
PDwgOCwKKyAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RNZWFuaW5nZnVsUGFpbnQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKSA9IDEgPDwgOCwKIH0g
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmgKaW5kZXggNmNkYWE3MmRkZGY5OGMwNWQ0MGFhOTQ5YmQyNmU4
ZmIxMWNiMzk5NS4uZjU2N2Q0NjgzNzM2MDM5OWE5ZDBjNTRjM2EwNGE1NDBkMDZmMDU5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTIyNSw4ICsyMjUsOCBAQCBX
S19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0
IFdLUGFnZVVJQ2xpZW50QmFzZSogYwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZUluamVj
dGVkQnVuZGxlQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VJbmplY3RlZEJ1bmRs
ZUNsaWVudEJhc2UqIGNsaWVudCk7CiAKIC8vIEEgY2xpZW50IGNhbiBpbXBsZW1lbnQgZWl0aGVy
IGEgbmF2aWdhdGlvbiBjbGllbnQgb3IgbG9hZGVyIGFuZCBwb2xpY3kgY2xpZW50cywgYnV0IG5l
dmVyIGJvdGguCi1XS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KFdLUGFn
ZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VMb2FkZXJDbGllbnRCYXNlKiBjbGllbnQpIFdLX0NfQVBJ
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVu
dCwgbWFjb3MoV0tfTUFDX1RCQSkpOwotV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZVBvbGlj
eUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlUG9saWN5Q2xpZW50QmFzZSogY2xp
ZW50KSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tQYWdlU2V0UGFnZU5h
dmlnYXRpb25DbGllbnQsIG1hY29zKFdLX01BQ19UQkEpKTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFn
ZVNldFBhZ2VMb2FkZXJDbGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFnZUxvYWRlckNs
aWVudEJhc2UqIGNsaWVudCkgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdL
UGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50LCBtYWNvcygxMC4xNC40KSk7CitXS19FWFBPUlQg
dm9pZCBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1Bh
Z2VQb2xpY3lDbGllbnRCYXNlKiBjbGllbnQpIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVChXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCwgbWFjb3MoMTAuMTQuNCkpOwog
V0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQoV0tQYWdlUmVmIHBh
Z2UsIGNvbnN0IFdLUGFnZU5hdmlnYXRpb25DbGllbnRCYXNlKiBjbGllbnQpOwogCiB0eXBlZGVm
IHZvaWQgKCpXS1BhZ2VSdW5KYXZhU2NyaXB0RnVuY3Rpb24pKFdLU2VyaWFsaXplZFNjcmlwdFZh
bHVlUmVmLCBXS0Vycm9yUmVmLCB2b2lkKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUu
aAppbmRleCA1YjBkMjhkYjZhNDZhMjA0ZDg4MDRhM2FlY2U1NjE5NDNkNDBhNWQ4Li42YjM0NjQ5
NzU4ZGNjNzU3NWZiY2I2NWVkYzhmY2Q5NWQ2MjBmOGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0
ZW1Qcml2YXRlLmgKQEAgLTMwLDYgKzMwLDYgQEAKIC8vIEZvciB0ZXN0aW5nIG9ubHkuCiAtIChD
R0ltYWdlUmVmKV9jb3B5U25hcHNob3RGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTIuMyksIGlvcygxMC4zKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBDR1BvaW50IF9z
Y3JvbGxQb3NpdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIENHUG9pbnQgX3Njcm9sbFBvc2l0aW9u
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKIEBlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIuaAppbmRleCA1OWJlZjM0OWJiODFjZDc5OTkwOTg3Mzdm
ZDI0MmU0NDJhZmEzZTJkLi5kOTViNDgzY2M3MjgzMjM0OTQ1MzJkODcyMGYwZDMwOGQwNDdkNGU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5oCkBAIC0zNCw3ICszNCw3IEBACiBAcHJv
dG9jb2wgV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGU7CiBAcHJvdG9jb2wgV0tCcm93c2lu
Z0NvbnRleHRQb2xpY3lEZWxlZ2F0ZTsKIAotV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExB
Q0VNRU5UKCJXS1dlYlZpZXciLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdL
X0lPU19UQkEpKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZp
ZXciLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAsIDEyLjIpKQogQGludGVyZmFjZSBX
S0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgOiBOU09iamVjdAogCiAjcHJhZ21hIG1hcmsgRGVs
ZWdhdGVzCkBAIC00NSw4ICs0NSw4IEBAIFdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgiV0tXZWJWaWV3IiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoCiAKICNwcmFn
bWEgbWFyayBMb2FkaW5nCiAKLSsgKHZvaWQpcmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2Nv
bDooTlNTdHJpbmcgKilzY2hlbWUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
V0tVUkxTY2hlbWVIYW5kbGVyIiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBX
S19JT1NfVEJBKSk7Ci0rICh2b2lkKXVucmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbDoo
TlNTdHJpbmcgKilzY2hlbWUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tV
UkxTY2hlbWVIYW5kbGVyIiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19J
T1NfVEJBKSk7CisrICh2b2lkKXJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJvdG9jb2w6KE5TU3Ry
aW5nICopc2NoZW1lIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLVVJMU2No
ZW1lSGFuZGxlciIsIG1hY29zKDEwLjEwLCAxMC4xNC40KSwgaW9zKDguMCwgMTIuMikpOworKyAo
dm9pZCl1bnJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJvdG9jb2w6KE5TU3RyaW5nICopc2NoZW1l
IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLVVJMU2NoZW1lSGFuZGxlciIs
IG1hY29zKDEwLjEwLCAxMC4xNC40KSwgaW9zKDguMCwgMTIuMikpOwogCiAvKiBMb2FkIGEgcmVx
dWVzdC4gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciByZXF1ZXN0cyBvZiBub24tZmlsZTogVVJMcy4g
UGFzc2luZyBhCiAgICBmaWxlOiBVUkwgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24uICovCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRHcm91cC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdD
b250ZXh0R3JvdXAuaAppbmRleCA4MTEzMGYzNjdhNjNmNWI1ODFkODQ0MDc1OWY0OTA3YWJkY2Q3
MTlkLi4xZjgyY2M0ZWM0M2MyNTk2MzVhOGEwZmFlNDAxMjQxMWMzMTBkNTg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91
cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29u
dGV4dEdyb3VwLmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRh
dGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLVXNlclNjcmlwdEluamVjdGlvblRpbWUuaD4KIAot
V0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1VzZXJDb250ZW50Q29udHJv
bGxlciBhbmQgV0tQcmVmZXJlbmNlcyIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDgu
MCwgV0tfSU9TX1RCQSkpCitXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldL
VXNlckNvbnRlbnRDb250cm9sbGVyIGFuZCBXS1ByZWZlcmVuY2VzIiwgbWFjb3MoMTAuMTAsIDEw
LjE0LjQpLCBpb3MoOC4wLCAxMi4yKSkKIEBpbnRlcmZhY2UgV0tCcm93c2luZ0NvbnRleHRHcm91
cCA6IE5TT2JqZWN0CiAKIC0gKGlkKWluaXRXaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVu
dGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
QnJvd3NpbmdDb250ZXh0SGlzdG9yeURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIaXN0b3J5RGVsZWdhdGUuaAppbmRleCA1ZjU2
YTIyMjU2MDJmNTkzZDM4OGE1ZGEzMzQ1ZTY0MDA2M2M4Mzg2Li5mZmFlY2I3NGZhOWI2OWExZWY5
ODIxZGU4MDNjOTdhNmZhOTMzMmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIaXN0b3J5RGVsZWdhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIaXN0b3J5RGVs
ZWdhdGUuaApAQCAtMjksNyArMjksNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvbkRhdGEuaD4KIAot
V0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS0JhY2tGb3J3YXJkTGlzdCIs
IG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpCitXS19DTEFT
U19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLQmFja0ZvcndhcmRMaXN0IiwgbWFjb3Mo
MTAuMTAsIDEwLjE0LjQpLCBpb3MoOC4wLCAxMi4yKSkKIEBwcm90b2NvbCBXS0Jyb3dzaW5nQ29u
dGV4dEhpc3RvcnlEZWxlZ2F0ZSA8TlNPYmplY3Q+CiBAb3B0aW9uYWwKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0TG9hZERl
bGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0Nv
bnRleHRMb2FkRGVsZWdhdGUuaAppbmRleCAxODM0Y2JlOGQyMzNiNzBlOGQyYzExNDNmMGZkMDc5
MTU1ODllZWY0Li5mNTRhZGMyNTIwMTYwZGU4ZjEyZTIyODA5Mjc5ZTlmNDQ4NDc2MzdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRMb2FkRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUuaApAQCAtMzAsNyArMzAsNyBAQAogCiBAY2xh
c3MgV0tCYWNrRm9yd2FyZExpc3RJdGVtOwogCi1XS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIldLTmF2aWdhdGlvbkRlbGVnYXRlIiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEp
LCBpb3MoOC4wLCBXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgiV0tOYXZpZ2F0aW9uRGVsZWdhdGUiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4
LjAsIDEyLjIpKQogQHByb3RvY29sIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlIDxOU09i
amVjdD4KIEBvcHRpb25hbAogCkBAIC01MiwxMCArNTIsMTAgQEAgV0tfQ0xBU1NfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCJXS05hdmlnYXRpb25EZWxlZ2F0ZSIsIG1hY29zKDEwLjEwLCBX
S19NQUMKIC8qIFNlbnQgaWYgdGhlIGNvbW1pdGVkIGxvYWQgZmFpbHMuICovCiAtICh2b2lkKWJy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXI6KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKXNl
bmRlciBkaWRGYWlsTG9hZFdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yOwogCi0tICh2b2lkKWJy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRTdGFydFByb2dyZXNzOihXS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIgKilzZW5kZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
V0tXZWJWaWV3LmVzdGltYXRlZFByb2dyZXNzIiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBp
b3MoOC4wLCBXS19JT1NfVEJBKSk7Ci0tICh2b2lkKWJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6
KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKXNlbmRlciBlc3RpbWF0ZWRQcm9ncmVzc0No
YW5nZWRUbzooZG91YmxlKWVzdGltYXRlZFByb2dyZXNzIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoIldLV2ViVmlldy5lc3RpbWF0ZWRQcm9ncmVzcyIsIG1hY29zKDEwLjEwLCBX
S19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOwotLSAodm9pZClicm93c2luZ0NvbnRl
eHRDb250cm9sbGVyRGlkRmluaXNoUHJvZ3Jlc3M6KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ciAqKXNlbmRlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXcu
ZXN0aW1hdGVkUHJvZ3Jlc3MiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdL
X0lPU19UQkEpKTsKKy0gKHZvaWQpYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZFN0YXJ0UHJv
Z3Jlc3M6KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKXNlbmRlciBXS19BUElfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXcuZXN0aW1hdGVkUHJvZ3Jlc3MiLCBtYWNv
cygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAsIDEyLjIpKTsKKy0gKHZvaWQpYnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlcjooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVyIGVzdGlt
YXRlZFByb2dyZXNzQ2hhbmdlZFRvOihkb3VibGUpZXN0aW1hdGVkUHJvZ3Jlc3MgV0tfQVBJX0RF
UFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3LmVzdGltYXRlZFByb2dyZXNzIiwg
bWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBpb3MoOC4wLCAxMi4yKSk7CistICh2b2lkKWJyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXJEaWRGaW5pc2hQcm9ncmVzczooV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyICopc2VuZGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2Vi
Vmlldy5lc3RpbWF0ZWRQcm9ncmVzcyIsIG1hY29zKDEwLjEwLCAxMC4xNC40KSwgaW9zKDguMCwg
MTIuMikpOwogCi0tICh2b2lkKWJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRDaGFuZ2VCYWNr
Rm9yd2FyZExpc3Q6KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKXNlbmRlciBhZGRlZEl0
ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWFkZGVkSXRlbSByZW1vdmVkSXRlbXM6KE5TQXJy
YXkgKilyZW1vdmVkSXRlbXMgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tX
ZWJWaWV3LmJhY2tGb3J3YXJkTGlzdCIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDgu
MCwgV0tfSU9TX1RCQSkpOworLSAodm9pZClicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkQ2hh
bmdlQmFja0ZvcndhcmRMaXN0OihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXIg
YWRkZWRJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilhZGRlZEl0ZW0gcmVtb3ZlZEl0ZW1z
OihOU0FycmF5ICopcmVtb3ZlZEl0ZW1zIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1F
TlQoIldLV2ViVmlldy5iYWNrRm9yd2FyZExpc3QiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlv
cyg4LjAsIDEyLjIpKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0UG9saWN5RGVsZWdhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dFBvbGljeURlbGVnYXRl
LmgKaW5kZXggZWM0OTU4NDczODQ2ZjQxZWZkMDNlMTA4YTNkYjM3NjY5MTg0MDUyOS4uZjM1OWI1
OTk0NGRiMzVhMWYxMzcxZDk5MzgzMzRlMDhlNmFjODQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0UG9saWN5RGVsZWdhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRQb2xpY3lEZWxlZ2F0ZS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJ
bnRlZ2VyLCBXS1BvbGljeURlY2lzaW9uKSB7CiAKIHR5cGVkZWYgdm9pZCAoXldLUG9saWN5RGVj
aXNpb25IYW5kbGVyKShXS1BvbGljeURlY2lzaW9uKTsKIAotV0tfQ0xBU1NfREVQUkVDQVRFRF9X
SVRIX1JFUExBQ0VNRU5UKCJXS05hdmlnYXRpb25EZWxlZ2F0ZSIsIG1hY29zKDEwLjEwLCBXS19N
QUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpCitXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoIldLTmF2aWdhdGlvbkRlbGVnYXRlIiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQp
LCBpb3MoOC4wLCAxMi4yKSkKIEBwcm90b2NvbCBXS0Jyb3dzaW5nQ29udGV4dFBvbGljeURlbGVn
YXRlIDxOU09iamVjdD4KIEBvcHRpb25hbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tDb25uZWN0aW9uLmgKaW5kZXggZTIxZDk4MTk4Mzg1MWU3MWQ5MTAxNWUz
NDZiZmQxN2MxNzllODhlYi4uNmQ2YmVkNmFkNmE1ZGEzNjM0NWI1ZjYwZjQwYzc2YzNhOTFhZGRl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Nvbm5lY3Rp
b24uaApAQCAtMzYsNyArMzYsNyBAQAogCiBAZW5kCiAKLVdLX0NMQVNTX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgiX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkiLCBtYWNvcygxMC4xMCwgV0tf
TUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCJfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSIsIG1hY29zKDEwLjEwLCAxMC4x
NC40KSwgaW9zKDguMCwgMTIuMikpCiBAaW50ZXJmYWNlIFdLQ29ubmVjdGlvbiA6IE5TT2JqZWN0
CiAKIC0gKHZvaWQpc2VuZE1lc3NhZ2VXaXRoTmFtZTooTlNTdHJpbmcgKiltZXNzYWdlTmFtZSBi
b2R5OihpZCltZXNzYWdlQm9keTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oCmluZGV4IDA4Y2Jm
NTAwYTY3ZWNkMWY4MmE2MDBjNjI3N2M5MmE5OTA1OTRjMmIuLjgzYjRlMDJlMzFkMmJhZDUxMWE5
YWE4Y2QwYzM1YTgzYWEyODRjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaApAQCAtNTks
NiArNTksNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS1N5bnRoZXRpY0NsaWNrVHlw
ZSkgewogI2VuZGlmCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaXNS
ZWRpcmVjdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tOYXZpZ2F0aW9uICpfbWFpbkZyYW1lTmF2aWdh
dGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS05hdmlnYXRpb24gKl9tYWluRnJh
bWVOYXZpZ2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAppbmRleCBjMzAyZjE0YWRmNTkw
ZjUxMmZjYzczZTUzNzNkNTMwMjc3NjZlYTNlLi5lOWJlMDRkNWMzNTlhNTNlYjhjNDc0MzY1ZGI5
NmQxYTVkZTFjYTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCkBAIC01Niw3ICs1
Niw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1Byb2Nlc3NUZXJtaW5hdGlvblJl
YXNvbikgewogCiBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IF9XS05hdmln
YXRpb25BY3Rpb25Qb2xpY3lEb3dubG9hZCA9IChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93ICsgMSk7CiBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSkg
X1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93V2l0aG91dFRyeWluZ0FwcExpbmsgPSAoV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5KShfV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5RG93bmxvYWQg
KyAxKTsKLXN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKSBfV0tOYXZpZ2F0aW9uQWN0
aW9uUG9saWN5QWxsb3dJbk5ld1Byb2Nlc3MgPSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KShf
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3dXaXRob3V0VHJ5aW5nQXBwTGluayArIDEpOwor
c3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE0LjQpLCBpb3MoMTIuMikpIF9XS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvd0lu
TmV3UHJvY2VzcyA9IChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKF9XS05hdmlnYXRpb25BY3Rp
b25Qb2xpY3lBbGxvd1dpdGhvdXRUcnlpbmdBcHBMaW5rICsgMSk7CiAKIHN0YXRpYyBjb25zdCBX
S05hdmlnYXRpb25SZXNwb25zZVBvbGljeSBfV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lCZWNv
bWVEb3dubG9hZCA9IChXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkoV0tOYXZpZ2F0aW9uUmVz
cG9uc2VQb2xpY3lBbGxvdyArIDEpOwogCkBAIC04OCw3ICs4OCw3IEBAIHN0YXRpYyBjb25zdCBX
S05hdmlnYXRpb25SZXNwb25zZVBvbGljeSBfV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lCZWNv
bWVEb3dubG9hCiAtICh2b2lkKV93ZWJWaWV3V2lsbEVuZE5hdmlnYXRpb25HZXN0dXJlOihXS1dl
YlZpZXcgKil3ZWJWaWV3IHdpdGhOYXZpZ2F0aW9uVG9CYWNrRm9yd2FyZExpc3RJdGVtOihXS0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyB3aWxsU25hcHNob3RCYWNrRm9yd2FyZExpc3RJdGVtOihXS0JhY2tGb3J3YXJkTGlz
dEl0ZW0gKilpdGVtOwogLSAodm9pZClfd2ViVmlld0RpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJl
U25hcHNob3Q6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MiksIGlvcygxMC4wKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmln
YXRpb25BY3Rpb24gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Q
b2xpY3ksIF9XS1dlYnNpdGVQb2xpY2llcyAqKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbjp1c2VySW5mbzpkZWNpc2lvbkhhbmRsZXI6IiwgbWFjb3MoMTAuMTIuMywgV0tfTUFD
X1RCQSksIGlvcygxMC4zLCBXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlv
bkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3ksIF9XS1dlYnNpdGVQb2xpY2llcyAqKSlkZWNpc2lvbkhhbmRs
ZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX3dlYlZpZXc6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp1c2VySW5mbzpkZWNpc2lvbkhhbmRsZXI6IiwgbWFjb3Mo
MTAuMTIuMywgMTAuMTQuNCksIGlvcygxMC4zLCAxMi4yKSk7CiAtICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2
aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gdXNlckluZm86KGlkIDxOU1NlY3VyZUNv
ZGluZz4pdXNlckluZm8gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25BY3Rp
b25Qb2xpY3ksIF9XS1dlYnNpdGVQb2xpY2llcyAqKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb246KFdLTmF2aWdh
dGlvbiAqKW5hdmlnYXRpb24gdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8g
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIC0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmFpbE5hdmlnYXRpb246KFdLTmF2aWdhdGlv
biAqKW5hdmlnYXRpb24gd2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IgdXNlckluZm86KGlkIDxO
U1NlY3VyZUNvZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwg
aW9zKDExLjMpKTsKQEAgLTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9u
UmVzcG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYQog
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxsR29Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW0gaW5QYWdlQ2FjaGU6KEJPT0wp
aW5QYWdlQ2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAtICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZhaWxUb0luaXRpYWxpemVQbHVnSW5XaXRo
SW5mbzooTlNEaWN0aW9uYXJ5ICopaW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
KTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkQmxvY2tJbnNlY3Vy
ZVBsdWdpblZlcnNpb25XaXRoSW5mbzooTlNEaWN0aW9uYXJ5ICopaW5mbyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0KSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBvbGljeTooX1dLUGx1Z2luTW9k
dWxlTG9hZFBvbGljeSlwb2xpY3kgcGx1Z2luSW5mbzooTlNEaWN0aW9uYXJ5ICopaW5mbyBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBwb2xpY3ks
IE5TU3RyaW5nICogdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbikpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvclBsdWdpbkxvYWRXaXRoQ3VycmVudFBv
bGljeTooX1dLUGx1Z2luTW9kdWxlTG9hZFBvbGljeSlwb2xpY3kgcGx1Z2luSW5mbzooTlNEaWN0
aW9uYXJ5ICopaW5mbyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLUGx1Z2luTW9kdWxl
TG9hZFBvbGljeSBwb2xpY3ksIE5TU3RyaW5nICogdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbikp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSk7CiAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGJhY2tGb3J3YXJkTGlzdEl0ZW1BZGRl
ZDooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbUFkZGVkIHJlbW92ZWQ6KE5TQXJyYXk8V0tC
YWNrRm9yd2FyZExpc3RJdGVtICo+ICopaXRlbXNSZW1vdmVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCkpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggNWU2NjUxNjc3OGE0
YTE1NmQyZTA5MjkzMjAyM2RkNDdkNDg3NzY3YS4uZTJiOTZjN2I5YmJhNTU0MjMyN2EyNmZmYTUz
NWY2M2Y0YzE3ODFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTEzMCw5ICsxMzAsOSBAQCB0eXBl
ZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvcikgewogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBVkZvdW5kYXRpb25FbmFibGVkOikgQk9PTCBf
YXZGb3VuZGF0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDEy
LjApKTsKIAotKyAoTlNBcnJheTxfV0tJbnRlcm5hbERlYnVnRmVhdHVyZSAqPiAqKV9pbnRlcm5h
bERlYnVnRmVhdHVyZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKLS0gKEJPT0wpX2lzRW5hYmxlZEZvckludGVybmFsRGVidWdGZWF0dXJlOihf
V0tJbnRlcm5hbERlYnVnRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3NldEVuYWJsZWQ6KEJPT0wp
dmFsdWUgZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6KF9XS0ludGVybmFsRGVidWdGZWF0dXJlICop
ZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworKyAoTlNBcnJheTxfV0tJbnRlcm5hbERlYnVnRmVhdHVyZSAqPiAqKV9pbnRlcm5hbERl
YnVnRmVhdHVyZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsK
Ky0gKEJPT0wpX2lzRW5hYmxlZEZvckludGVybmFsRGVidWdGZWF0dXJlOihfV0tJbnRlcm5hbERl
YnVnRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9z
KDEyLjIpKTsKKy0gKHZvaWQpX3NldEVuYWJsZWQ6KEJPT0wpdmFsdWUgZm9ySW50ZXJuYWxEZWJ1
Z0ZlYXR1cmU6KF9XS0ludGVybmFsRGVidWdGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiArIChOU0FycmF5PF9XS0V4cGVyaW1l
bnRhbEZlYXR1cmUgKj4gKilfZXhwZXJpbWVudGFsRmVhdHVyZXMgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAtIChCT09MKV9pc0VuYWJsZWRGb3JGZWF0dXJlOihf
V0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEyKSwgaW9zKDEwLjApKTsKQEAgLTE0MiwxNSArMTQyLDE1IEBAIHR5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yKSB7CiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFNob3VsZEVuYWJsZVRleHRBdXRvc2l6aW5nQm9vc3Q6KSBCT09MIF9z
aG91bGRFbmFibGVUZXh0QXV0b3NpemluZ0Jvb3N0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQpLCBpb3MoMTIuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc1NhZmVC
cm93c2luZ0VuYWJsZWQsIHNldHRlcj1fc2V0U2FmZUJyb3dzaW5nRW5hYmxlZDopIEJPT0wgX3Nh
ZmVCcm93c2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzU2FmZUJyb3dz
aW5nRW5hYmxlZCwgc2V0dGVyPV9zZXRTYWZlQnJvd3NpbmdFbmFibGVkOikgQk9PTCBfc2FmZUJy
b3dzaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb2xvckZpbHRlckVuYWJsZWQ6
KSBCT09MIF9jb2xvckZpbHRlckVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCks
IGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQdW5jaE91dFdo
aXRlQmFja2dyb3VuZHNJbkRhcmtNb2RlOikgQk9PTCBfcHVuY2hPdXRXaGl0ZUJhY2tncm91bmRz
SW5EYXJrTW9kZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldExvd1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNp
emVFbmFibGVkOikgQk9PTCBfbG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6ZUVuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZElnbm9yZU1ldGFWaWV3cG9ydDopIEJP
T0wgX3Nob3VsZElnbm9yZU1ldGFWaWV3cG9ydCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0VmlkZW9RdWFsaXR5SW5jbHVkZXNEaXNwbGF5Q29tcG9zaXRpbmdFbmFibGVkOikgQk9PTCBf
dmlkZW9RdWFsaXR5SW5jbHVkZXNEaXNwbGF5Q29tcG9zaXRpbmdFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRXZWJBbmltYXRpb25zQ1NTSW50ZWdyYXRpb25FbmFibGVkOikg
Qk9PTCBfd2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0KSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldERldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkOikgQk9PTCBfZGV2aWNlT3Jp
ZW50YXRpb25FdmVudEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldExvd1Bv
d2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkOikgQk9PTCBfbG93UG93ZXJWaWRlb0F1ZGlv
QnVmZmVyU2l6ZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZElnbm9yZU1ldGFW
aWV3cG9ydDopIEJPT0wgX3Nob3VsZElnbm9yZU1ldGFWaWV3cG9ydCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0VmlkZW9RdWFsaXR5SW5jbHVkZXNEaXNwbGF5Q29tcG9zaXRpbmdFbmFibGVkOikgQk9P
TCBfdmlkZW9RdWFsaXR5SW5jbHVkZXNEaXNwbGF5Q29tcG9zaXRpbmdFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRXZWJBbmltYXRpb25zQ1NTSW50ZWdyYXRpb25FbmFibGVkOikgQk9PTCBf
d2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE0KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERl
dmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkOikgQk9PTCBfZGV2aWNlT3JpZW50YXRpb25FdmVu
dEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzOikg
Qk9PTCBfbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
My40KSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEl0cERlYnVnTW9kZUVuYWJsZWQ6KSBCT09MIF9pdHBEZWJ1Z01vZGVFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYVNvdXJjZUVuYWJsZWQ6KSBCT09MIF9tZWRpYVNv
dXJjZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKFdLX0lPU19U
QkEpKTsKQEAgLTE3Myw3ICsxNzMsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tF
ZGl0YWJsZUxpbmtCZWhhdmlvcikgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
U3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nOikgQk9PTCBfc3VwcHJlc3Nlc0luY3JlbWVu
dGFsUmVuZGVyaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0QXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25F
bmFibGVkOikgQk9PTCBfYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0QXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkOikgQk9P
TCBfYXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
RXhwZXJpbWVudGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZDopIEJPT0wgX2V4cGVyaW1l
bnRhbFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRFeHBlcmltZW50
YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkOikgQk9PTCBfZXhwZXJpbWVudGFsUGx1Z0lu
U2FuZGJveFByb2ZpbGVzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpKTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENvb2tpZUVuYWJsZWQ6KSBCT09MIF9j
b29raWVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0UGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZDopIEJPT0wg
X3BsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTdWJwaXhlbENTU09NRWxlbWVu
dE1ldHJpY3NFbmFibGVkOikgQk9PTCBfc3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgKaW5kZXggNTEzM2RiYzhiMDY3
Y2Y5MmNmNjFhZGU5NTliMDJlMWVlOWYzZWZiNy4uMTkzOGJmOWQxMTYyMTJkNzI1NTdlY2Q5YTY1
ZjMyMjg4OThiZjY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc0dyb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc0dyb3VwLmgKQEAgLTQ0LDcgKzQ0LDcgQEAKIAogQGVuZAogCi1XS19DTEFT
U19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLUHJvY2Vzc1Bvb2wiLCBtYWNvcygxMC4x
MCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCJXS1Byb2Nlc3NQb29sIiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQp
LCBpb3MoOC4wLCAxMi4yKSkKIEBpbnRlcmZhY2UgV0tQcm9jZXNzR3JvdXAgOiBOU09iamVjdAog
CiAtIChpZClpbml0V2l0aEluamVjdGVkQnVuZGxlVVJMOihOU1VSTCAqKWJ1bmRsZVVSTDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bv
b2xQcml2YXRlLmgKaW5kZXggMGUxZjA2ZDg0NmJlMmE0ZjkxYzNmOWM4ODk4MGExZDExYzc1MTIy
Ni4uMzk3MzIxZGU4MDA5ODBlMzczOTViMmQyZTE0Zjc2MDJhMGY5MDViMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2
YXRlLmgKQEAgLTc5LDggKzc5LDggQEAKIAogLSAodm9pZClfcmVnaXN0ZXJVUkxTY2hlbWVBc0Nh
bkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0OihOU1N0cmluZyAqKXNjaGVtZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAotLSAoX1dLRG93bmxvYWQgKilfZG93bmxv
YWRVUkxSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IG9yaWdpbmF0aW5nV2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwotLSAoX1dLRG93bmxvYWQgKilfcmVzdW1lRG93bmxvYWRGcm9tRGF0
YTooTlNEYXRhICopcmVzdW1lRGF0YSBwYXRoOihOU1N0cmluZyAqKXBhdGggb3JpZ2luYXRpbmdX
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChfV0tEb3dubG9hZCAqKV9kb3dubG9hZFVSTFJl
cXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Qgb3JpZ2luYXRpbmdXZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CistIChfV0tEb3dubG9hZCAqKV9yZXN1bWVEb3dubG9hZEZyb21EYXRhOihOU0RhdGEgKilyZXN1
bWVEYXRhIHBhdGg6KE5TU3RyaW5nICopcGF0aCBvcmlnaW5hdGluZ1dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsK
IAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2FsbGVkIG9ubHkgd2hpbGUgbm8gd2ViIGNvbnRl
bnQgcHJvY2Vzc2VzIGFyZSBydW5uaW5nLgogLSAodm9pZClfdGVybWluYXRlTmV0d29ya1Byb2Nl
c3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
QEAgLTk1LDE2ICs5NSwxNiBAQAogCiAvLyBUZXN0IG9ubHkuCiAtIChzaXplX3QpX3dlYlByb2Nl
c3NDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKLS0gKEJP
T0wpX2hhc1ByZXdhcm1lZFdlYlByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKEJPT0wpX2hhc1ByZXdhcm1lZFdlYlByb2Nlc3Mg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIC0gKHNpemVfdClf
d2ViUHJvY2Vzc0NvdW50SWdub3JpbmdQcmV3YXJtZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNCksIGlvcygxMi4wKSk7Ci0tIChzaXplX3QpX3dlYlByb2Nlc3NDb3VudElnbm9yaW5nUHJl
d2FybWVkQW5kQ2FjaGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CistIChzaXplX3QpX3dlYlByb2Nlc3NDb3VudElnbm9yaW5nUHJld2FybWVk
QW5kQ2FjaGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAt
IChzaXplX3QpX3BsdWdpblByb2Nlc3NDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
LjQpLCBpb3MoMTEuMykpOwogLSAoc2l6ZV90KV9zZXJ2aWNlV29ya2VyUHJvY2Vzc0NvdW50IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogLSAodm9pZClfc3luY05l
dHdvcmtQcm9jZXNzQ29va2llcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDEx
LjApKTsKIC0gKHZvaWQpX21ha2VOZXh0V2ViUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogLSAodm9pZClfbWFrZU5l
eHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTQpLCBpb3MoMTIuMCkpOwotLSAoTlNVSW50ZWdlcilfbWF4aW11bVN1c3BlbmRlZFBh
Z2VDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwotLSAoTlNVSW50ZWdlcilfcHJvY2Vzc0NhY2hlQ2FwYWNpdHkgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKE5TVUludGVnZXIpX21h
eGltdW1TdXNwZW5kZWRQYWdlQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKKy0gKE5TVUludGVnZXIpX3Byb2Nlc3NDYWNoZUNhcGFjaXR5IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAtIChOU1VJbnRlZ2VyKV9wcm9j
ZXNzQ2FjaGVTaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CiAKIC8vIFRlc3Qgb25seS4gUmV0dXJucyB3ZWIgcHJvY2Vzc2VzIHJ1bm5pbmcg
d2ViIHBhZ2VzIChkb2VzIG5vdCBpbmNsdWRlIHdlYiBwcm9jZXNzZXMgcnVubmluZyBzZXJ2aWNl
IHdvcmtlcnMpCkBAIC0xMTgsMTAgKzExOCwxMCBAQAogLy8gVGVzdCBvbmx5LgogLSAodm9pZClf
c2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyOihCT09MKWFsbG93cyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAodm9pZClfcmVn
aXN0ZXJVUkxTY2hlbWVTZXJ2aWNlV29ya2Vyc0NhbkhhbmRsZTooTlNTdHJpbmcgKilzY2hlbWUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKLS0gKHZvaWQpX2dl
dEFjdGl2ZVBhZ2VzT3JpZ2luc0luV2ViUHJvY2Vzc0ZvclRlc3Rpbmc6KHBpZF90KXBpZCBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCheKShOU0FycmF5PE5TU3RyaW5nICo+ICopKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7Ci0tIChCT09MKV9uZXR3b3JrUHJvY2Vzc0hhc0VudGl0bGVtZW50Rm9yVGVzdGluZzooTlNT
dHJpbmcgKillbnRpdGxlbWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfZ2V0QWN0aXZlUGFnZXNPcmlnaW5zSW5XZWJQcm9j
ZXNzRm9yVGVzdGluZzoocGlkX3QpcGlkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKE5TQXJy
YXk8TlNTdHJpbmcgKj4gKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKEJPT0wpX25ldHdvcmtQcm9jZXNzSGFzRW50aXRs
ZW1lbnRGb3JUZXN0aW5nOihOU1N0cmluZyAqKWVudGl0bGVtZW50IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0
ZXI9X2lzQ29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQsIHNldHRlcj1fc2V0Q29va2ll
U3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQ6KSBCT09MIF9jb29raWVTdG9yYWdlUGFydGl0aW9u
aW5nRW5hYmxlZCBXS19BUElfREVQUkVDQVRFRCgiUGFydGl0aW9uZWQgY29va2llcyBhcmUgbm8g
bG9uZ2VyIHN1cHBvcnRlZCIsIG1hY29zKDEwLjEyLjMsIFdLX01BQ19UQkEpLCBpb3MoMTAuMywg
V0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNDb29raWVTdG9y
YWdlUGFydGl0aW9uaW5nRW5hYmxlZCwgc2V0dGVyPV9zZXRDb29raWVTdG9yYWdlUGFydGl0aW9u
aW5nRW5hYmxlZDopIEJPT0wgX2Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkIFdLX0FQ
SV9ERVBSRUNBVEVEKCJQYXJ0aXRpb25lZCBjb29raWVzIGFyZSBubyBsb25nZXIgc3VwcG9ydGVk
IiwgbWFjb3MoMTAuMTIuMywgMTAuMTQuNCksIGlvcygxMC4zLCAxMi4yKSk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgZ2V0dGVyPV9pc1N0b3JhZ2VBY2Nlc3NBUElFbmFibGVkLCBzZXR0ZXI9X3Nl
dFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkOikgQk9PTCBfc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIC0gKHZvaWQpX3N5
bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3VuZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tUeXBlUmVmV3JhcHBlci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVHlwZVJlZldyYXBwZXIuaAppbmRleCA0ODAz
YjIyZmVlM2UyY2FiZTNlZGY3MWU2NzQ4YWNhOGIxMzM0YWIxLi5hNzNlYmUzMWI2ZGVkZTU5MjVm
OTY0YzBlZjNjZjg5NmFkODBjYWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tUeXBlUmVmV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1R5cGVSZWZXcmFwcGVyLmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpbXBv
cnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQmFzZS5oPgog
Ci1XS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLT2JqZWN0IiwgbWFjb3Mo
MTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tPYmplY3QiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCks
IGlvcyg4LjAsIDEyLjIpKQogQGludGVyZmFjZSBXS1R5cGVSZWZXcmFwcGVyIDogTlNPYmplY3QK
IAogLSAoaWQpaW5pdFdpdGhPYmplY3Q6KFdLVHlwZVJlZilvYmplY3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApp
bmRleCA0ZDcwZWUyZmYwZjFkMjQxMmUzNmZiNzgzMTk0NTU2NjM0MzQ4MGRmLi5iZWMyZDY0ODZh
NjBjNjRjY2FmNjk5OWNlOGFiZmZjMTc3NGE0Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTc0LDcg
Kzc0LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS0F1dG9wbGF5RXZlbnRG
bGFncykgewogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRm9jdXNEaXJlY3Rpb24pIHsK
ICAgICBfV0tGb2N1c0RpcmVjdGlvbkJhY2t3YXJkLAogICAgIF9XS0ZvY3VzRGlyZWN0aW9uRm9y
d2FyZCwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEp
KTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDEyLjIpKTsKIAogQHBy
b3RvY29sIFdLVUlEZWxlZ2F0ZVByaXZhdGUgPFdLVUlEZWxlZ2F0ZT4KIApAQCAtOTgsOCArOTgs
OCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlld0RpZEVudGVyRnVsbHNj
cmVlbjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwg
aW9zKDguMykpOwogLSAodm9pZClfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOihXS1dlYlZpZXcg
Kil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOC4zKSk7CiAtICh2
b2lkKV93ZWJWaWV3UmVxdWVzdFBvaW50ZXJMb2NrOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMykpOwotLSAodm9pZClfd2ViVmlld0RpZFJlcXVlc3RQ
b2ludGVyTG9jazooV0tXZWJWaWV3ICopd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3dlYlZpZXdEaWRTaG93U2FmZUJyb3dz
aW5nV2FybmluZzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlld0RpZFJlcXVlc3RQ
b2ludGVyTG9jazooV0tXZWJWaWV3ICopd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40
KSwgaW9zKDEyLjIpKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWRTaG93U2FmZUJyb3dzaW5nV2Fybmlu
ZzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBp
b3MoMTIuMikpOwogLSAodm9pZClfd2ViVmlld0RpZExvc2VQb2ludGVyTG9jazooV0tXZWJWaWV3
ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpKTsKIC0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRD
aGFuZ2U6KEJPT0wpaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKQEAgLTExOSwxNSArMTE5LDE1IEBAIHN0cnVjdCBV
SUVkZ2VJbnNldHM7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlk
UmVtb3ZlQXR0YWNobWVudDooX1dLQXR0YWNobWVudCAqKWF0dGFjaG1lbnQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZGlkSW5zZXJ0QXR0YWNobWVudDooX1dLQXR0YWNobWVudCAqKWF0dGFj
aG1lbnQgd2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNCksIGlvcygxMi4wKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGRpZEludmFsaWRhdGVEYXRhRm9yQXR0YWNobWVudDooX1dLQXR0YWNobWVudCAqKWF0dGFj
aG1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkSW52YWxpZGF0ZURh
dGFGb3JBdHRhY2htZW50OihfV0tBdHRhY2htZW50ICopYXR0YWNobWVudCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFy
YW5jZVdpdGhVc2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0U3RvcmFnZUFjY2Vzc1BhbmVsRm9yRG9tYWluOihOU1N0
cmluZyAqKXJlcXVlc3RpbmdEb21haW4gdW5kZXJDdXJyZW50RG9tYWluOihOU1N0cmluZyAqKWN1
cnJlbnREb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgcmVzdWx0KSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsK
IAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRDaGFuZ2VGb250QXR0
cmlidXRlczooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWZvbnRBdHRyaWJ1dGVzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVz
OihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopZm9udEF0dHJpYnV0ZXMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAotLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyB0YWtlRm9jdXM6KF9XS0ZvY3VzRGlyZWN0aW9uKWRpcmVjdGlv
biBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB0YWtlRm9jdXM6KF9XS0ZvY3VzRGly
ZWN0aW9uKWRpcmVjdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTIu
MikpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBzaG91bGRJbmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50OihfV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7CkBA
IC0xNjEsNyArMTYxLDcgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGF0YUludGVyYWN0aW9uT3BlcmF0aW9uV2FzSGFuZGxlZDoo
Qk9PTCloYW5kbGVkIGZvclNlc3Npb246KGlkKXNlc3Npb24gaXRlbVByb3ZpZGVyczooTlNBcnJh
eSAqKWl0ZW1Qcm92aWRlcnMgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogLSAoTlNVSW50
ZWdlcilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxsVXBkYXRlRGF0YUludGVyYWN0
aW9uT3BlcmF0aW9uVG9PcGVyYXRpb246KE5TVUludGVnZXIpb3BlcmF0aW9uIGZvclNlc3Npb246
KGlkKXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogI2lmIFRBUkdFVF9PU19J
T1MKLS0gKFVJRHJvcFByb3Bvc2FsICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2ls
bFVwZGF0ZURyb3BQcm9wb3NhbFRvUHJvcG9zYWw6KFVJRHJvcFByb3Bvc2FsICopcHJvcG9zYWwg
Zm9yU2Vzc2lvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShp
b3MoV0tfSU9TX1RCQSkpOworLSAoVUlEcm9wUHJvcG9zYWwgKilfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyB3aWxsVXBkYXRlRHJvcFByb3Bvc2FsVG9Qcm9wb3NhbDooVUlEcm9wUHJvcG9z
YWwgKilwcm9wb3NhbCBmb3JTZXNzaW9uOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBXS19B
UElfQVZBSUxBQkxFKGlvcygxMi4yKSk7CiAtIChVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKilfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Rm9yTGlmdGluZ0l0ZW06KFVJRHJhZ0l0
ZW0gKilpdGVtIHNlc3Npb246KGlkIDxVSURyYWdTZXNzaW9uPilzZXNzaW9uIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKDExLjApKTsKIC0gKFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdGb3JDYW5jZWxsaW5nSXRlbTooVUlEcmFnSXRlbSAq
KWl0ZW0gd2l0aERlZmF1bHQ6KFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqKWRlZmF1bHRQcmV2aWV3
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKIC0gKE5TQXJyYXk8VUlEcmFnSXRlbSAqPiAq
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJmb3JtRHJvcFdpdGhTZXNzaW9u
OihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7
CkBAIC0yMDUsMTAgKzIwNSwxMCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBnZXRXaW5kb3dGcmFtZVdpdGhDb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCAoXikoQ0dSZWN0KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
c2V0V2luZG93RnJhbWU6KENHUmVjdClmcmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
LjQpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgdW5hdmFpbGFibGVQ
bHVnSW5CdXR0b25DbGlja2VkV2l0aFJlYXNvbjooX1dLUGx1Z0luVW5hdmFpbGFiaWxpdHlSZWFz
b24pcmVhc29uIHBsdWdJbkluZm86KE5TRGljdGlvbmFyeSAqKXBsdWdJbkluZm87Ci0tIChOU01l
bnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudTooTlNNZW51ICop
bWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVudCBXS19B
UElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpnZXRDb250ZXh0TWVudUZy
b21Qcm9wb3NlZE1lbnU6Zm9yRWxlbWVudDp1c2VySW5mbzpjb21wbGV0aW9uSGFuZGxlcjoiLCBt
YWNvcygxMC4xMiwgV0tfTUFDX1RCQSkpOwotLSAoTlNNZW51ICopX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29u
dGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGlu
Zz4pdXNlckluZm8gV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX3dlYlZpZXc6
Z2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51OmZvckVsZW1lbnQ6dXNlckluZm86Y29tcGxl
dGlvbkhhbmRsZXI6IiwgbWFjb3MoMTAuMTIsIFdLX01BQ19UQkEpKTsKKy0gKE5TTWVudSAqKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZv
ckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl93ZWJWaWV3OmdldENvbnRleHRNZW51RnJvbVByb3Bv
c2VkTWVudTpmb3JFbGVtZW50OnVzZXJJbmZvOmNvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDEw
LjEyLCAxMC4xNC40KSk7CistIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBjb250ZXh0TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVs
ZW1lbnRJbmZvICopZWxlbWVudCB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5m
byBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpnZXRDb250ZXh0
TWVudUZyb21Qcm9wb3NlZE1lbnU6Zm9yRWxlbWVudDp1c2VySW5mbzpjb21wbGV0aW9uSGFuZGxl
cjoiLCBtYWNvcygxMC4xMiwgMTAuMTQuNCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBnZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnU6KE5TTWVudSAqKW1lbnUg
Zm9yRWxlbWVudDooX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgdXNlckluZm86
KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KE5TTWVudSAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0
KSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFBlcmZvcm1EcmFn
T3BlcmF0aW9uOihCT09MKWhhbmRsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFBlcmZvcm1EcmFn
T3BlcmF0aW9uOihCT09MKWhhbmRsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSk7
CiAjZW5kaWYgLy8gVEFSR0VUX09TX0lQSE9ORQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tWaWV3LmgKaW5kZXggZmZiNjhmMTVlYmM1YzE2NWM5YjE3NzM3NTJk
YzMzMmQ5ZWRiNWIzNy4uNmUzZDc5YTVmYzViNmEzMDhlNzM5MjYxMjE0MjY2ZjM1MTVlYzI0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXcuaApAQCAtMzUsNyAr
MzUsNyBAQAogQGNsYXNzIFdLUHJvY2Vzc0dyb3VwOwogQGNsYXNzIFdLVmlld0RhdGE7CiAKLVdL
X0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3IiwgbWFjb3MoMTAu
MTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FU
RURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3IiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBp
b3MoOC4wLCAxMi4yKSkKIEBpbnRlcmZhY2UgV0tWaWV3IDogTlNWaWV3IDxOU1RleHRJbnB1dENs
aWVudD4gewogQHByaXZhdGUKICAgICBXS1ZpZXdEYXRhICpfZGF0YTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZp
Z3VyYXRpb25Qcml2YXRlLmgKaW5kZXggOGNiZTBhNGRhYTczMTg1YmQzZWMyMDVlNTg4NzMxYWJl
YTRjNTM0ZC4uNjBhZTA2ZTQ5NTFlMjkyZTVkMmE2OGRlNGVlZTAxODdhMGMzNGFjZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb25Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKQEAgLTYzLDcgKzYzLDcgQEAgdHlwZWRlZiBO
U19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEludmlzaWJsZUF1dG9wbGF5Tm90UGVybWl0dGVkOikgQk9PTCBfaW52
aXNpYmxlQXV0b3BsYXlOb3RQZXJtaXR0ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiks
IGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYURhdGFM
b2Fkc0F1dG9tYXRpY2FsbHk6KSBCT09MIF9tZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRBdHRhY2htZW50RWxlbWVudEVuYWJsZWQ6KSBCT09MIF9hdHRhY2ht
ZW50RWxlbWVudEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4w
KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBdHRhY2htZW50RmlsZVdyYXBw
ZXJDbGFzczopIENsYXNzIF9hdHRhY2htZW50RmlsZVdyYXBwZXJDbGFzcyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0QXR0YWNobWVudEZpbGVXcmFwcGVyQ2xhc3M6KSBDbGFzcyBfYXR0
YWNobWVudEZpbGVXcmFwcGVyQ2xhc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEluaXRpYWxDYXBp
dGFsaXphdGlvbkVuYWJsZWQ6KSBCT09MIF9pbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0QXBwbGVQYXlFbmFibGVkOikgQk9PTCBfYXBwbGVQYXlFbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0V2FpdHNGb3JQYWludEFmdGVyVmlld0RpZE1vdmVUb1dpbmRv
dzopIEJPT0wgX3dhaXRzRm9yUGFpbnRBZnRlclZpZXdEaWRNb3ZlVG9XaW5kb3cgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKQEAgLTEwMyw5ICsxMDMsOSBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxheSkgewogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydEFzRmFsbGJhY2s6KSBCT09MIF9hbGxvd01lZGlhQ29udGVudFR5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0QXNGYWxsYmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzKSwgaW9zKDExLjApKTsKIAogLy8gVGhlIGlucHV0IG9mIHRoaXMgU1BJIGlzIGFuIGFycmF5
IG9mIGltYWdlIFVUSSAoVW5pZm9ybSBUeXBlIElkZW50aWZpZXIpLgotQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHksIHNldHRlcj1fc2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM6KSBO
U0FycmF5PE5TU3RyaW5nICo+ICpfYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5
cGVzOikgTlNBcnJheTxOU1N0cmluZyAqPiAqX2FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEVkaXRhYmxlSW1hZ2VzRW5hYmxlZDopIEJPT0wgX2Vk
aXRhYmxlSW1hZ2VzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RWRpdGFi
bGVJbWFnZXNFbmFibGVkOikgQk9PTCBfZWRpdGFibGVJbWFnZXNFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRVbmRvTWFuYWdlckFQSUVuYWJsZWQ6KSBCT09MIF91bmRvTWFuYWdlckFQSUVu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMDZjMWViNGE2ODU2ZDc5Nzg4Y2QyM2JlZTQ2NjdiNjUx
ODdhMjQ3Zi4uMGYxNzhjMDk4M2M3ZWYwZjViNGJlZDFjNGI3ZDcxODE1ODE2NzBiMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oCkBAIC0xNTUsNyArMTU1LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9X
S1JlY3RFZGdlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRVc2VyQ29udGVu
dEV4dGVuc2lvbnNFbmFibGVkOikgQk9PTCBfdXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwogCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIHBpZF90IF93ZWJQcm9jZXNzSWRlbnRpZmllcjsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgcGlkX3QgX3Byb3Zpc2lvbmFsV2ViUHJvY2Vzc0lkZW50
aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgcGlkX3QgX3Byb3Zpc2lvbmFsV2Vi
UHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNFZGl0YWJsZSwgc2V0dGVy
PV9zZXRFZGl0YWJsZTopIEJPT0wgX2VkaXRhYmxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTEpLCBpb3MoOS4wKSk7CiAKQEAgLTE5MCw1NCArMTkwLDU0IEBAIHR5cGVkZWYgTlNfT1BUSU9O
UyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRWaWV3U2NhbGU6KSBDR0Zsb2F0IF92aWV3U2NhbGUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoOikgQ0dGbG9hdCBfbWluaW11bUVmZmVjdGl2
ZURldmljZVdpZHRoIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNaW5pbXVtRWZmZWN0
aXZlRGV2aWNlV2lkdGg6KSBDR0Zsb2F0IF9taW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGggV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0QmFja2dyb3VuZEV4dGVuZHNCZXlvbmRQYWdlOikgQk9PTCBf
YmFja2dyb3VuZEV4dGVuZHNCZXlvbmRQYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCksIGlvcyg4LjApKTsKIAotLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRBdHRhY2htZW50V2l0
aEZpbGVuYW1lOihOU1N0cmluZyAqKWZpbGVuYW1lIGNvbnRlbnRUeXBlOihOU1N0cmluZyAqKWNv
bnRlbnRUeXBlIGRhdGE6KE5TRGF0YSAqKWRhdGEgb3B0aW9uczooX1dLQXR0YWNobWVudERpc3Bs
YXlPcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3VjY2VzcykpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLV9pbnNl
cnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOmNvbnRlbnRUeXBlOm9wdGlvbnM6Y29tcGxldGlv
bjoiLCBtYWNvcygxMC4xMy40LCBXS19NQUNfVEJBKSwgaW9zKDExLjMsIFdLX0lPU19UQkEpKTsK
LS0gKF9XS0F0dGFjaG1lbnQgKilfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjooTlNG
aWxlV3JhcHBlciAqKWZpbGVXcmFwcGVyIGNvbnRlbnRUeXBlOihOU1N0cmluZyAqKWNvbnRlbnRU
eXBlIG9wdGlvbnM6KF9XS0F0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyAqKW9wdGlvbnMgY29tcGxl
dGlvbjoodm9pZCheKShCT09MIHN1Y2Nlc3MpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIi1faW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBl
cjpjb250ZW50VHlwZTpjb21wbGV0aW9uOiIsIG1hY29zKFdLX01BQ19UQkEsIFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSkpOwotLSAoX1dLQXR0YWNobWVudCAqKV9pbnNl
cnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOihOU0ZpbGVXcmFwcGVyICopZmlsZVdyYXBwZXIg
Y29udGVudFR5cGU6KE5TU3RyaW5nICopY29udGVudFR5cGUgY29tcGxldGlvbjoodm9pZCheKShC
T09MIHN1Y2Nlc3MpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChfV0tBdHRhY2htZW50ICopX2F0dGFjaG1l
bnRGb3JJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLQotLSAodm9pZClfc2ltdWxhdGVE
ZXZpY2VPcmllbnRhdGlvbkNoYW5nZVdpdGhBbHBoYTooZG91YmxlKWFscGhhIGJldGE6KGRvdWJs
ZSliZXRhIGdhbW1hOihkb3VibGUpZ2FtbWEgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLQotKyAoQk9PTClfaGFuZGxlc1NhZmVCcm93c2luZyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotKyAo
TlNVUkwgKilfY29uZmlybU1hbHdhcmVTZW50aW5lbCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotKyAoTlNVUkwgKilfdmlzaXRVbnNhZmVXZWJz
aXRlU2VudGluZWwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKLS0gKHZvaWQpX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nV2l0aFRpdGxlOihOU1N0
cmluZyAqKXRpdGxlIHdhcm5pbmc6KE5TU3RyaW5nICopd2FybmluZyBkZXRhaWxzOihOU0F0dHJp
YnV0ZWRTdHJpbmcgKilkZXRhaWxzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wpKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7Ci0tICh2b2lkKV9zaG93U2FmZUJyb3dzaW5nV2FybmluZ1dpdGhVUkw6KE5T
VVJMICopdXJsIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIHdhcm5pbmc6KE5TU3RyaW5nICopd2Fy
bmluZyBkZXRhaWxzOihOU0F0dHJpYnV0ZWRTdHJpbmcgKilkZXRhaWxzIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0KLS0gKHZvaWQpX2lzSklURW5hYmxl
ZDoodm9pZCheKShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfcmVtb3ZlRGF0YURldGVj
dGVkTGlua3M6KGRpc3BhdGNoX2Jsb2NrX3QpY29tcGxldGlvbiBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotCi0tIChJQkFjdGlvbilfYWxpZ25D
ZW50ZXI6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2FsaWduSnVzdGlmaWVkOihpZClzZW5kZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElC
QWN0aW9uKV9hbGlnbkxlZnQ6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2FsaWduUmlnaHQ6KGlkKXNl
bmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwotLSAoSUJBY3Rpb24pX2luZGVudDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfb3V0ZGVudDooaWQp
c2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7Ci0tIChJQkFjdGlvbilfdG9nZ2xlU3RyaWtlVGhyb3VnaDooaWQpc2VuZGVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlv
bilfaW5zZXJ0T3JkZXJlZExpc3Q6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2luc2VydFVub3JkZXJl
ZExpc3Q6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2luc2VydE5lc3RlZE9yZGVyZWRMaXN0OihpZClz
ZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKLS0gKElCQWN0aW9uKV9pbnNlcnROZXN0ZWRVbm9yZGVyZWRMaXN0OihpZClzZW5kZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElC
QWN0aW9uKV9pbmNyZWFzZUxpc3RMZXZlbDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfZGVjcmVhc2VM
aXN0TGV2ZWw6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2NoYW5nZUxpc3RUeXBlOihpZClzZW5kZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0g
KElCQWN0aW9uKV9wYXN0ZUFzUXVvdGF0aW9uOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV9wYXN0ZUFu
ZE1hdGNoU3R5bGU6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX3Rha2VGaW5kU3RyaW5nRnJvbVNlbGVj
dGlvbjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7Ci0KLUBwcm9wZXJ0eSAoY2xhc3MsIG5vbmF0b21pYywgY29weSwgc2V0dGVy
PV9zZXRTdHJpbmdGb3JGaW5kOikgTlNTdHJpbmcgKl9zdHJpbmdGb3JGaW5kIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChfV0tBdHRhY2ht
ZW50ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZW5hbWU6KE5TU3RyaW5nICopZmlsZW5hbWUg
Y29udGVudFR5cGU6KE5TU3RyaW5nICopY29udGVudFR5cGUgZGF0YTooTlNEYXRhICopZGF0YSBv
cHRpb25zOihfV0tBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgKilvcHRpb25zIGNvbXBsZXRpb246
KHZvaWQoXikoQk9PTCBzdWNjZXNzKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCItX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6Y29u
dGVudFR5cGU6b3B0aW9uczpjb21wbGV0aW9uOiIsIG1hY29zKDEwLjEzLjQsIDEwLjE0LjQpLCBp
b3MoMTEuMywgMTIuMikpOworLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRBdHRhY2htZW50V2l0
aEZpbGVXcmFwcGVyOihOU0ZpbGVXcmFwcGVyICopZmlsZVdyYXBwZXIgY29udGVudFR5cGU6KE5T
U3RyaW5nICopY29udGVudFR5cGUgb3B0aW9uczooX1dLQXR0YWNobWVudERpc3BsYXlPcHRpb25z
ICopb3B0aW9ucyBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3VjY2VzcykpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLV9pbnNlcnRBdHRhY2ht
ZW50V2l0aEZpbGVXcmFwcGVyOmNvbnRlbnRUeXBlOmNvbXBsZXRpb246IiwgbWFjb3MoMTAuMTQu
NCwgMTAuMTQuNCksIGlvcygxMi4yLCAxMi4yKSk7CistIChfV0tBdHRhY2htZW50ICopX2luc2Vy
dEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIgKilmaWxlV3JhcHBlciBj
b250ZW50VHlwZTooTlNTdHJpbmcgKiljb250ZW50VHlwZSBjb21wbGV0aW9uOih2b2lkKF4pKEJP
T0wgc3VjY2VzcykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NC40KSwgaW9zKDEyLjIpKTsKKy0gKF9XS0F0dGFjaG1lbnQgKilfYXR0YWNobWVudEZvcklkZW50
aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0
LjQpLCBpb3MoMTIuMikpOworCistICh2b2lkKV9zaW11bGF0ZURldmljZU9yaWVudGF0aW9uQ2hh
bmdlV2l0aEFscGhhOihkb3VibGUpYWxwaGEgYmV0YTooZG91YmxlKWJldGEgZ2FtbWE6KGRvdWJs
ZSlnYW1tYSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworCisr
IChCT09MKV9oYW5kbGVzU2FmZUJyb3dzaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQu
NCksIGlvcygxMi4yKSk7CisrIChOU1VSTCAqKV9jb25maXJtTWFsd2FyZVNlbnRpbmVsIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CisrIChOU1VSTCAqKV92aXNp
dFVuc2FmZVdlYnNpdGVTZW50aW5lbCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBp
b3MoMTIuMikpOworLSAodm9pZClfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmdXaXRoVGl0bGU6KE5T
U3RyaW5nICopdGl0bGUgd2FybmluZzooTlNTdHJpbmcgKil3YXJuaW5nIGRldGFpbHM6KE5TQXR0
cmlidXRlZFN0cmluZyAqKWRldGFpbHMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCkp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKKy0gKHZvaWQpX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nV2l0aFVSTDooTlNVUkwgKil1
cmwgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgd2FybmluZzooTlNTdHJpbmcgKil3YXJuaW5nIGRl
dGFpbHM6KE5TQXR0cmlidXRlZFN0cmluZyAqKWRldGFpbHMgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NC40KSwgaW9zKDEyLjIpKTsKKworLSAodm9pZClfaXNKSVRFbmFibGVkOih2b2lkKF4pKEJPT0wp
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygx
Mi4yKSk7CistICh2b2lkKV9yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rczooZGlzcGF0Y2hfYmxvY2tf
dCljb21wbGV0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CisKKy0gKElCQWN0aW9uKV9hbGlnbkNlbnRlcjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfYWxpZ25KdXN0aWZpZWQ6
KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwor
LSAoSUJBY3Rpb24pX2FsaWduTGVmdDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfYWxpZ25SaWdodDooaWQpc2VuZGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlv
bilfaW5kZW50OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9z
KDEyLjIpKTsKKy0gKElCQWN0aW9uKV9vdXRkZW50OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKElCQWN0aW9uKV90b2dnbGVTdHJpa2VU
aHJvdWdoOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKKy0gKElCQWN0aW9uKV9pbnNlcnRPcmRlcmVkTGlzdDooaWQpc2VuZGVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfaW5zZXJ0
VW5vcmRlcmVkTGlzdDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfaW5zZXJ0TmVzdGVkT3JkZXJlZExpc3Q6KGlkKXNl
bmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAoSUJB
Y3Rpb24pX2luc2VydE5lc3RlZFVub3JkZXJlZExpc3Q6KGlkKXNlbmRlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAoSUJBY3Rpb24pX2luY3JlYXNlTGlz
dExldmVsOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKKy0gKElCQWN0aW9uKV9kZWNyZWFzZUxpc3RMZXZlbDooaWQpc2VuZGVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfY2hhbmdl
TGlzdFR5cGU6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3Mo
MTIuMikpOworLSAoSUJBY3Rpb24pX3Bhc3RlQXNRdW90YXRpb246KGlkKXNlbmRlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAoSUJBY3Rpb24pX3Bhc3Rl
QW5kTWF0Y2hTdHlsZTooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfdGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uOihp
ZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKwor
QHByb3BlcnR5IChjbGFzcywgbm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFN0cmluZ0ZvckZp
bmQ6KSBOU1N0cmluZyAqX3N0cmluZ0ZvckZpbmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NC40KSwgaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLU2Vs
ZWN0aW9uQXR0cmlidXRlcyBfc2VsZWN0aW9uQXR0cmlidXRlcyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9O
RQogCi0tICh2b2lkKV9zZXRGb250OihVSUZvbnQgKilmb250IHNlbmRlcjooaWQpc2VuZGVyIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3NldEZvbnRTaXplOihD
R0Zsb2F0KWZvbnRTaXplIHNlbmRlcjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKTsKLS0gKHZvaWQpX3NldFRleHRDb2xvcjooVUlDb2xvciAqKWNvbG9yIHNlbmRl
cjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQp
X3NldEZvbnQ6KFVJRm9udCAqKWZvbnQgc2VuZGVyOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJM
RShpb3MoMTIuMikpOworLSAodm9pZClfc2V0Rm9udFNpemU6KENHRmxvYXQpZm9udFNpemUgc2Vu
ZGVyOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMikpOworLSAodm9pZClfc2V0
VGV4dENvbG9yOihVSUNvbG9yICopY29sb3Igc2VuZGVyOihpZClzZW5kZXIgV0tfQVBJX0FWQUlM
QUJMRShpb3MoMTIuMikpOwogCi0tICh2b2lkKV9kZXRlY3REYXRhV2l0aFR5cGVzOihXS0RhdGFE
ZXRlY3RvclR5cGVzKXR5cGVzIGNvbXBsZXRpb25IYW5kbGVyOihkaXNwYXRjaF9ibG9ja190KWNv
bXBsZXRpb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfZGV0
ZWN0RGF0YVdpdGhUeXBlczooV0tEYXRhRGV0ZWN0b3JUeXBlcyl0eXBlcyBjb21wbGV0aW9uSGFu
ZGxlcjooZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEy
LjIpKTsKIAogLy8gREVSRUNBVEVEOiBUaGUgc2V0dGVycyBvZiB0aGUgdGhyZWUgZm9sbG93aW5n
IGZ1bmN0aW9uIGFyZSBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIG92ZXJyaWRlTGF5b3V0UGFyYW1l
dGVycy4KIC8vIERlZmluZSB0aGUgc21hbGxlc3Qgc2l6ZSBhIHBhZ2UgdGFrZSB3aXRoIGEgcmVn
dWxhciB2aWV3cG9ydC4KQEAgLTMwMyw5ICszMDMsOSBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNV
SW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlSZXRyaWV2ZVNw
ZWFrU2VsZWN0aW9uQ29udGVudCBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtICh2b2lk
KV9hY2Nlc3NpYmlsaXR5RGlkR2V0U3BlYWtTZWxlY3Rpb25Db250ZW50OihOU1N0cmluZyAqKWNv
bnRlbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIFVJVmlldyAqX3NhZmVCcm93c2luZ1dhcm5pbmcgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgVUlWaWV3ICpfc2FmZUJyb3dzaW5nV2FybmluZyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogI2Vsc2UKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgTlNWaWV3ICpfc2FmZUJyb3dzaW5nV2FybmluZyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBOU1ZpZXcgKl9zYWZlQnJvd3NpbmdXYXJuaW5nIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgX1dLUmVjdEVkZ2UgX3Bpbm5lZFN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UnViYmVyQmFu
ZGluZ0VuYWJsZWQ6KSBfV0tSZWN0RWRnZSBfcnViYmVyQmFuZGluZ0VuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMy40KSk7CkBAIC00OTUsNyArNDk1LDcgQEAgdHlwZWRlZiBOU19P
UFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5
Q2xlYXJTZWxlY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMykpOwogLSAoVUlWaWV3ICop
X2Z1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMCkpOwog
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2NvbnRlbnRWaWV3SXNGaXJz
dFJlc3BvbmRlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2NvbnRlbnRWaWV3SXNGaXJzdFJlc3BvbmRlciBX
S19BUElfQVZBSUxBQkxFKGlvcygxMi4yKSk7CiAjZWxzZQogLSAodm9pZClfZGlzbWlzc0NvbnRl
bnRSZWxhdGl2ZUNoaWxkV2luZG93cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsK
IC0gKHZvaWQpX3NldEZyYW1lOihOU1JlY3QpcmVjdCBhbmRTY3JvbGxCeTooTlNTaXplKW9mZnNl
dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKQEAgLTUzMyw3ICs1MzMsNyBAQCB0
eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIAogLSAodm9pZClf
c2V0SGVhZGVyQmFubmVySGVpZ2h0OihpbnQpaGVpZ2h0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTIuMykpOwogLSAodm9pZClfc2V0Rm9vdGVyQmFubmVySGVpZ2h0OihpbnQpaGVpZ2h0IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMykpOwotLSAodm9pZClfZG9BZnRlclByb2Nlc3Np
bmdBbGxQZW5kaW5nTW91c2VFdmVudHM6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworLSAodm9pZClfZG9BZnRlclByb2Nlc3NpbmdB
bGxQZW5kaW5nTW91c2VFdmVudHM6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTQuNCkpOwogI2VuZGlmCiAKIC0gKHZvaWQpX3JlcXVlc3RBY3RpdmVO
b3dQbGF5aW5nU2Vzc2lvbkluZm86KHZvaWQoXikoQk9PTCwgQk9PTCwgTlNTdHJpbmcqLCBkb3Vi
bGUsIGRvdWJsZSwgTlNJbnRlZ2VyKSljYWxsYmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzLjQpLCBpb3MoMTEuMykpOwpAQCAtNTU1LDExICs1NTUsMTEgQEAgdHlwZWRlZiBOU19PUFRJ
T05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAtIChCT09MKV9jb21wbGV0ZUJhY2tTd2lw
ZUZvclRlc3Rpbmc7CiAtICh2b2lkKV9zZXREZWZlcnNMb2FkaW5nRm9yVGVzdGluZzooQk9PTClk
ZWZlcnNMb2FkaW5nOwogCi0tICh2b2lkKV9zZXRTaGFyZVNoZWV0Q29tcGxldGVzSW1tZWRpYXRl
bHlXaXRoUmVzb2x1dGlvbkZvclRlc3Rpbmc6KEJPT0wpcmVzb2x2ZWQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3NldFNoYXJl
U2hlZXRDb21wbGV0ZXNJbW1lZGlhdGVseVdpdGhSZXNvbHV0aW9uRm9yVGVzdGluZzooQk9PTCly
ZXNvbHZlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2hhc0luc3BlY3RvckZyb250ZW5k
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS0luc3BlY3RvciAqX2luc3BlY3RvciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tGcmFtZUhhbmRsZSAqX21haW5GcmFtZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9oYXNJbnNwZWN0b3JGcm9udGVuZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBfV0tJbnNwZWN0b3IgKl9pbnNwZWN0b3IgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgX1dLRnJhbWVIYW5kbGUgKl9tYWluRnJhbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0U2Nyb2xsaW5nVXBkYXRlc0Rpc2FibGVkRm9yVGVzdGluZzopIEJPT0wgX3Njcm9sbGluZ1Vw
ZGF0ZXNEaXNhYmxlZEZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKaW5kZXggNmQw
ZTdmODNiNGMxNGUzZmEzNDQ4M2FkY2I2MmQ3MDkzNmI0ZDYyYS4uMmY4ZjQ2MjgwNjhjNjdiZjU2
MDE3MGM1Zjg3MzgwOTM0NzM1MmMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCkBAIC01
NSw4ICs1NSw4IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0
YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRC
b3VuZEludGVyZmFjZUlkZW50aWZpZXI6KSBOU1N0cmluZyAqX2JvdW5kSW50ZXJmYWNlSWRlbnRp
ZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3M6KSBCT09MIF9h
bGxvd3NDZWxsdWxhckFjY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3Mo
MTEuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJveHlDb25maWd1cmF0
aW9uOikgTlNEaWN0aW9uYXJ5ICpfcHJveHlDb25maWd1cmF0aW9uIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNl
dHRlcj1fc2V0U291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyOikgTlNTdHJpbmcgKl9z
b3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
LCBzZXR0ZXI9X3NldFNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjopIE5TU3Ry
aW5nICpfc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSwgc2V0dGVyPV9zZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI6
KSBOU1N0cmluZyAqX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHksIHNldHRlcj1fc2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOikg
TlNTdHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEFsbG93c1RMU0ZhbGxiYWNrOikgQk9PTCBfYWxsb3dzVExTRmFsbGJhY2sg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqX2luZGV4ZWREQkRhdGFiYXNl
RGlyZWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0F0dGFjaG1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tB
dHRhY2htZW50LmgKaW5kZXggM2MzNTc4ODU0ZjliZmJkMzVmMTcyODc4ZjBjNmVjMDJjZjBhOWZi
Mi4uMzdlODIzOTljMWNmMDgyMWRjOWZjZGM0NmQwMDYyOThjMWEzOTcxYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5oCkBAIC01Miwx
NSArNTIsMTUgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKQog
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpCiBAaW50ZXJmYWNl
IF9XS0F0dGFjaG1lbnQgOiBOU09iamVjdAogCi0tICh2b2lkKXNldEZpbGVXcmFwcGVyOihOU0Zp
bGVXcmFwcGVyICopZmlsZVdyYXBwZXIgY29udGVudFR5cGU6KG51bGxhYmxlIE5TU3RyaW5nICop
Y29udGVudFR5cGUgY29tcGxldGlvbjoodm9pZCheIF9OdWxsYWJsZSkoTlNFcnJvciAqIF9OdWxs
YWJsZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpc2V0RmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBw
ZXIgKilmaWxlV3JhcHBlciBjb250ZW50VHlwZToobnVsbGFibGUgTlNTdHJpbmcgKiljb250ZW50
VHlwZSBjb21wbGV0aW9uOih2b2lkKF4gX051bGxhYmxlKShOU0Vycm9yICogX051bGxhYmxlKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIu
MikpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIG51bGxhYmxlKSBfV0tBdHRh
Y2htZW50SW5mbyAqaW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSkg
X1dLQXR0YWNobWVudEluZm8gKmluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKnVu
aXF1ZUlkZW50aWZpZXI7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1p
c0Nvbm5lY3RlZCkgQk9PTCBjb25uZWN0ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwg
Z2V0dGVyPWlzQ29ubmVjdGVkKSBCT09MIGNvbm5lY3RlZCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiAvLyBEZXByZWNhdGVkIFNQSS4KLS0gKHZvaWQpcmVx
dWVzdEluZm86KHZvaWQoXikoX1dLQXR0YWNobWVudEluZm8gKiBfTnVsbGFibGUsIE5TRXJyb3Ig
KiBfTnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIi1pbmZvIiwgbWFjb3MoMTAuMTQsIFdLX01BQ19UQkEpLCBpb3MoMTIuMCwgV0tf
SU9TX1RCQSkpOwotLSAodm9pZClzZXREYXRhOihOU0RhdGEgKilkYXRhIG5ld0NvbnRlbnRUeXBl
OihudWxsYWJsZSBOU1N0cmluZyAqKW5ld0NvbnRlbnRUeXBlIG5ld0ZpbGVuYW1lOihudWxsYWJs
ZSBOU1N0cmluZyAqKW5ld0ZpbGVuYW1lIGNvbXBsZXRpb246KHZvaWQoXiBfTnVsbGFibGUpKE5T
RXJyb3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoIlBsZWFzZSB1c2UgLXNldEZpbGVXcmFwcGVyOmNvbnRlbnRUeXBlOmNv
bXBsZXRpb246IGluc3RlYWQuIiwgbWFjb3MoMTAuMTMuNCwgV0tfTUFDX1RCQSksIGlvcygxMS4z
LCBXS19JT1NfVEJBKSk7CistICh2b2lkKXJlcXVlc3RJbmZvOih2b2lkKF4pKF9XS0F0dGFjaG1l
bnRJbmZvICogX051bGxhYmxlLCBOU0Vycm9yICogX051bGxhYmxlKSljb21wbGV0aW9uSGFuZGxl
ciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCItaW5mbyIsIG1hY29zKDEwLjE0
LCAxMC4xNC40KSwgaW9zKDEyLjAsIDEyLjIpKTsKKy0gKHZvaWQpc2V0RGF0YTooTlNEYXRhICop
ZGF0YSBuZXdDb250ZW50VHlwZToobnVsbGFibGUgTlNTdHJpbmcgKiluZXdDb250ZW50VHlwZSBu
ZXdGaWxlbmFtZToobnVsbGFibGUgTlNTdHJpbmcgKiluZXdGaWxlbmFtZSBjb21wbGV0aW9uOih2
b2lkKF4gX051bGxhYmxlKShOU0Vycm9yICogX051bGxhYmxlKSljb21wbGV0aW9uSGFuZGxlciBX
S19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJQbGVhc2UgdXNlIC1zZXRGaWxlV3Jh
cHBlcjpjb250ZW50VHlwZTpjb21wbGV0aW9uOiBpbnN0ZWFkLiIsIG1hY29zKDEwLjEzLjQsIDEw
LjE0LjQpLCBpb3MoMTEuMywgMTIuMikpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRp
b24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vz
c2lvbkNvbmZpZ3VyYXRpb24uaAppbmRleCA4NmFlYzQ5MjViYzg2NjI5OWMxYzQ3ZGNhNTc4ZmMx
NGI5ZDZiMTAyLi5hMmRmOTQ4YjYyNzc5ZjBkZjE0ODY0MDYxNzkwMDE1Njg1YjkxZGI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNl
c3Npb25Db25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oCkBAIC0yOSw3ICsyOSw3IEBA
CiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygx
MC4xMy40KSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEz
LjQpLCBpb3MoMTIuMikpCiBAaW50ZXJmYWNlIF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJh
dGlvbiA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IGFsbG93c0luc2VjdXJlTWVkaWFDYXB0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaAppbmRleCA2YTZmOWM1ZmI5YzE3ODc5Yzk5ODcxYTE0
OGI0ZjlhNzdmMjAwNGUwLi5lZWE5OWJiZGQ0M2M5YWNiNGE5YjQ4N2M5ZDAwM2Y2MTFjZGFmOTg1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxv
YWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQu
aApAQCAtMzQsMTIgKzM0LDEyIEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlv
cyg4LjApKQogCiAtICh2b2lkKWNhbmNlbDsKIAotLSAodm9pZClwdWJsaXNoUHJvZ3Jlc3NBdFVS
TDooTlNVUkwgKilVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKy0gKHZvaWQpcHVibGlzaFByb2dyZXNzQXRVUkw6KE5TVVJMICopVVJMIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0OwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5LCB3ZWFrKSBXS1dlYlZpZXcgKm9yaWdpbmF0aW5nV2ViVmlldzsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNBcnJheTxOU1VSTCAqPiAq
cmVkaXJlY3RDaGFpbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykp
OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHdhc1VzZXJJbml0aWF0ZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgTlNEYXRhICpyZXN1bWVEYXRhIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TRGF0YSAqcmVzdW1lRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE0LjQpLCBpb3MoMTIuMikpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9ybUlucHV0U2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0Zvcm1JbnB1dFNlc3Npb24uaAppbmRleCA1YzZiYmFlYjll
M2ZmZDIwM2E1NzNjMmMwZTI5YjRlZWMzYjgwZjFmLi5mNTlkN2NiMmViMDNhMWNlNmZkZTg2Yjhk
MDE1YTYzNmVlMDIyNjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRm9ybUlucHV0U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tGb3JtSW5wdXRTZXNzaW9uLmgKQEAgLTM5LDcgKzM5LDcgQEAKICNpZiBU
QVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmFj
Y2Vzc29yeVZpZXdDdXN0b21CdXR0b25UaXRsZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJv
bmcpIFVJVmlldyAqY3VzdG9tSW5wdXRWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIFVJVmlldyAqY3VzdG9tSW5wdXRBY2Nlc3Nv
cnlWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzdHJvbmcpIFVJVmlldyAqY3VzdG9tSW5wdXRBY2Nlc3NvcnlWaWV3IFdLX0FQSV9B
VkFJTEFCTEUoaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0FycmF5
PFVJVGV4dFN1Z2dlc3Rpb24gKj4gKnN1Z2dlc3Rpb25zIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEw
LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFjY2Vzc29yeVZpZXdTaG91bGROb3RT
aG93IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIGZvcmNlU2VjdXJlVGV4dEVudHJ5IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3Iu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IuaAppbmRl
eCBhY2E4ZGY0MWRiY2E5OGY4NTkxMzk5Nzc1ZDg5ZGRmZDc3OWE5ZWU5Li4yZTRjYTA3MTA0YTM5
MGEwZDk3OTcxYWMwMGMzZmQ5YzBiMDVlZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5oCkBAIC0zMSw3ICszMSw3IEBACiAKIE5TX0FT
U1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBp
b3MoMTIuMikpCiBAaW50ZXJmYWNlIF9XS0luc3BlY3RvciA6IE5TT2JqZWN0CiAKIC0gKGluc3Rh
bmNldHlwZSlpbml0IE5TX1VOQVZBSUxBQkxFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0ludGVybmFsRGVidWdGZWF0dXJlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaAppbmRleCA2
NWM2NmI5NzdhMTNjMDczMzVlNGVkNWJkYjdhYjQ0ZGUxNmQ5ZmIzLi40NTc5NWYyZTVlYjZjNzE4
OWMwMDkwNTNmNDNkNzk4ZWQyZGIzMjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaApAQCAtMjcs
NyArMjcsNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFT
U19BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSkKIEBpbnRlcmZhY2UgX1dLSW50
ZXJuYWxEZWJ1Z0ZlYXR1cmUgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHksIGNvcHkpIE5TU3RyaW5nICprZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgK
aW5kZXggMGYzYTU0MWNkZjhlYTU0OWFjNDJkYzI2MjE5MWFhOTgwZWVkNDkzMC4uZmRkNDExZjM5
ODkyNmM2ZTI2NjA3MWQ2OTBhYTFhNGY0MWEzMDI4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uaApAQCAtMzQsMTAgKzM0LDEwIEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4x
MCksIGlvcyg4LjApKQogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TVVJMICppbmplY3Rl
ZEJ1bmRsZVVSTDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIG1heGltdW1Qcm9j
ZXNzQ291bnQgV0tfQVBJX0RFUFJFQ0FURUQoIkl0IGlzIG5vIGxvbmdlciBwb3NzaWJsZSB0byBs
aW1pdCB0aGUgbnVtYmVyIG9mIHByb2Nlc3NlcyIsIG1hY29zKFdLX01BQ19UQkEsIFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgdXNlc1NpbmdsZVdlYlByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwg
Y29weSkgTlNTdHJpbmcgKmN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tV2ViQ29u
dGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQu
NCksIGlvcygxMi4yKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGlnbm9yZVN5bmNo
cm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYXR0clN0eWxl
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYXR0clN0eWxlRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSkgTlNBcnJheTxOU1VSTCAqPiAqYWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2Vk
VVJMcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIApAQCAtNDgs
MTIgKzQ4LDEyIEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQog
Ly8gTmV0d29yayBQcm9jZXNzIHByb3BlcnRpZXMKIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUg
YmUgcGVyLXNlc3Npb24vZGF0YSBzdG9yZSB3aGVuIHdlIHN1cHBvcnQgbXVsdGlwbGUgbm9uLXBl
cnNpc3RlbnQgc2Vzc2lvbnMvZGF0YSBzdG9yZXMuCiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBO
U0ludGVnZXIgZGlza0NhY2hlU2l6ZU92ZXJyaWRlIFdLX0FQSV9ERVBSRUNBVEVEKCJVc2UgW1dL
V2Vic2l0ZURhdGFTdG9yZSBub25QZXJzaXN0ZW50RGF0YVN0b3JlXSB0byBsaW1pdCBkaXNrIGNh
Y2hlIHNpemUgdG8gMCIsIG1hY29zKDEwLjExLCBXS19NQUNfVEJBKSwgaW9zKDkuMCwgV0tfSU9T
X1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIE5TSW50ZWdlciBkaXNrQ2FjaGVTaXplT3Zl
cnJpZGUgV0tfQVBJX0RFUFJFQ0FURUQoIlVzZSBbV0tXZWJzaXRlRGF0YVN0b3JlIG5vblBlcnNp
c3RlbnREYXRhU3RvcmVdIHRvIGxpbWl0IGRpc2sgY2FjaGUgc2l6ZSB0byAwIiwgbWFjb3MoMTAu
MTEsIDEwLjE0LjQpLCBpb3MoOS4wLCAxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSkgTlNBcnJheSAqY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXM7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSkgTlNBcnJheTxOU1N0cmluZyAqPiAqYWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hl
bWVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgZGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIi
LCBtYWNvcygxMC4xMi4zLCBXS19NQUNfVEJBKSwgaW9zKDEwLjMsIFdLX0lPU19UQkEpKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxp
Y2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlvblNl
Y29uZGFyeUlkZW50aWZpZXIiLCBtYWNvcygxMC4xMi4zLCBXS19NQUNfVEJBKSwgaW9zKDEwLjMs
IFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNT
dHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5zb3Vy
Y2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIiLCBtYWNvcygxMC4xMi4zLCAxMC4xNC40KSwg
aW9zKDEwLjMsIDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkg
TlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciBXS19BUElfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIiLCBtYWNvcygxMC4xMi4zLCAx
MC4xNC40KSwgaW9zKDEwLjMsIDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNo
b3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMp
LCBpb3MoMTEuMCkpOwogI2lmIFRBUkdFVF9PU19JUEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKkNURGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZSBX
S19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7CkBAIC02NCwxMSArNjQsMTEgQEAgV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBwcm9jZXNzU3dhcHNPbk5hdmlnYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NCksIGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbHdheXNLZWVwQW5k
UmV1c2VTd2FwcGVkUHJvY2Vzc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3Mo
MTIuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcHJvY2Vzc1N3YXBzT25XaW5kb3dP
cGVuV2l0aE9wZW5lciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHByZXdhcm1zUHJvY2Vzc2VzQXV0b21hdGljYWxs
eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwot
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdXNlc1dlYlByb2Nlc3NDYWNoZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgcHJld2FybXNQcm9jZXNzZXNBdXRvbWF0aWNhbGx5IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCB1c2VzV2ViUHJvY2Vzc0NhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwYWdlQ2FjaGVFbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgc3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hh
bmdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwotQHByb3BlcnR5
IChub25hdG9taWMsIGdldHRlcj1pc0pJVEVuYWJsZWQpIEJPT0wgSklURW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5
IChub25hdG9taWMsIGdldHRlcj1pc0pJVEVuYWJsZWQpIEJPT0wgSklURW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9t
aWMpIE5TVUludGVnZXIgZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyRm9yVGVzdGluZyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFNUU1N0b3JhZ2VE
aXJlY3Rvcnk6KSBOU1VSTCAqaHN0c1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCAwOWUyNTFlNzdjMDc2OTI1YjkzNGVjYzNmNmE5ZDBm
ZDA4NDliMzUxLi41OWY5ODRlNDg3YWRmM2YwNDJkOTY3MzdhOWI0N2RhNzllMjJkM2IwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtMzksMTAgKzM5LDEwIEBA
IFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnk6KSBOU1VSTCAqX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBj
b3B5LCBzZXR0ZXI9X3NldENhY2hlU3RvcmFnZURpcmVjdG9yeTopIE5TVVJMICpfY2FjaGVTdG9y
YWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGlyZWN0b3J5OikgTlNVUkwgKl9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGly
ZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpzb3VyY2VBcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkg
TlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFByb3h5OikgTlNVUkwgKmh0
dHBQcm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRU
UFNQcm94eTopIE5TVVJMICpodHRwc1Byb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUs
IGNvcHkpIE5TU3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5
SWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwor
QHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFByb3h5
OikgTlNVUkwgKmh0dHBQcm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3Mo
MTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0
SFRUUFNQcm94eTopIE5TVVJMICpodHRwc1Byb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQuNCksIGlvcygxMi4yKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5oCmluZGV4IGY4Y2E5MDhjY2Vj
NWZmOGNhNDFiYzkxN2JmZDg5ZjYwZTA4ZTFjYjEuLjQ5MGJjYjZjZWY5MjY0OWIwZjBiODQwMzI1
ZWVlYzEyMWRmMjZjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tXZWJzaXRlUG9saWNpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLmgKQEAgLTM3LDkgKzM3LDkgQEAgV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSkgTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TU3RyaW5nICo+ICpjdXN0b21IZWFk
ZXJGaWVsZHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljKSBfV0tXZWJzaXRlUG9wVXBQb2xpY3kgcG9wVXBQb2xpY3kgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc3Ryb25nKSBXS1dlYnNpdGVEYXRhU3RvcmUgKndlYnNpdGVEYXRhU3RvcmUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tVXNlckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
Y29weSkgTlNTdHJpbmcgKmN1c3RvbVVzZXJBZ2VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5n
ICpjdXN0b21KYXZhU2NyaXB0VXNlckFnZW50QXNTaXRlU3BlY2lmaWNRdWlya3MgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tTmF2aWdhdG9yUGxhdGZvcm0gV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tTmF2aWdhdG9yUGxhdGZvcm0gV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljKSBfV0tXZWJzaXRlRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQb2xpY3kg
ZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQb2xpY3kgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLmgKaW5kZXggNzJjYTAz
M2NmNzliYWUxYmQ2Zjc0MDgwNGY4OWU4NDBlZjNkODcxMS4uODk2OGYzOGQxNDdkYzkxOWRlOGEz
OGYxODI1ZTM0MTNjNjY4NzY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5oCkBAIC0zMiw3ICszMiw3IEBACiBleHRlcm4gIkMiIHsK
ICNlbmRpZgogCi1XS19FWFBPUlQgaW50IFdLV2ViUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNvbnN0
IGNoYXIqKiBhcmd2KSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworV0tfRVhQT1JUIGludCBXS1dlYlByb2Nlc3NNYWluKGludCBhcmdjLCBjb25z
dCBjaGFyKiogYXJndikgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIp
KTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVI
YW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oCmluZGV4IGI3MzNlOWU4M2M2MTE3Y2Ix
OWYyYWQyMGNlMmZlYzRkOGU3N2NjY2IuLjllYmEyODNkZmVhMGNmNjhjNmE5ZGZmZjk5YzFhOWMw
ZmQyZTg3YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luTm9kZUhhbmRsZS5oCkBAIC01NSw3ICs1NSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSht
YWNvcygxMC4xMCksIGlvcyg4LjApKQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIEhUTUxUZXh0QXJlYUVsZW1lbnRJc1VzZXJFZGl0ZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKkhUTUxUYWJsZUNlbGxF
bGVtZW50Q2VsbEFib3ZlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1dlYlBy
b2Nlc3NQbHVnSW5GcmFtZSAqZnJhbWU7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IEJPT0wgaXNTZWxlY3RFbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wg
aXNTZWxlY3RFbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4y
KSk7CiAKIC0gKEJPT0wpaXNUZXh0RmllbGQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9k
ZUhhbmRsZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZVByaXZhdGUuaAppbmRleCAx
NTRjNGRiYWJhZjU0YTVkZmE5ODUzN2I1NjI4MzRhZmIwNjk5ZDAzLi42ODExMzMzZjU5ZDdmM2E3
MmExYTkzYjVjNzViMTU2ZWUxMDUyM2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5k
bGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlUHJpdmF0ZS5oCkBAIC0zMCw3
ICszMCw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0F1dG9GaWxsQnV0dG9uVHlw
ZSkgewogICAgIF9XS0F1dG9GaWxsQnV0dG9uVHlwZUNyZWRlbnRpYWxzLAogICAgIF9XS0F1dG9G
aWxsQnV0dG9uVHlwZUNvbnRhY3RzLAogICAgIF9XS0F1dG9GaWxsQnV0dG9uVHlwZVN0cm9uZ1Bh
c3N3b3JkLAotICAgIF9XS0F1dG9GaWxsQnV0dG9uVHlwZUNyZWRpdENhcmQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKSwKKyAgICBfV0tBdXRvRmls
bEJ1dHRvblR5cGVDcmVkaXRDYXJkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlv
cygxMi4yKSksCiB9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7
CiAKIEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAoV0tQcml2YXRlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369783</attachid>
            <date>2019-05-13 14:54:46 -0700</date>
            <delta_ts>2019-05-13 16:20:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197841-20190513145445.patch</filename>
            <type>text/plain</type>
            <size>74773</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1MjUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM0MWQ1NGQ0OTc2NTdhMjc0
MmI2Nzk0NWMzZGE5OTc0OWU0MmFhODQuLjgyNTgyOGE1Y2ZjYzI3NDczMTU3ZTkzMDQwMDc0Mzk4
NGI3NmI5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTktMDUtMTMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgVEJBIG1hY3JvcyBmb3Ig
QVBJIC8gU1BJIHRoYXQgaGFzIGFscmVhZHkgc2hpcHBlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODQxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81MDY5ODQ5OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAgICAgRGlzYWJsZSBo
ZWFkZXIgcG9zdHByb2Nlc3Npbmcgd2hlbiBidWlsZGluZyBmb3IgbWFjT1MgTW9qYXZlCisKKyAg
ICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhpc3RvcnlEZWxlZ2F0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0UG9s
aWN5RGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdh
dGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1R5cGVSZWZXcmFwcGVyLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXcuaDoKKyAgICAgICAgKFdLX0NMQVNTX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLQXR0YWNobWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tEb3dubG9hZC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9y
bUlucHV0U2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVj
dG9yLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnRlcm5hbERlYnVnRmVh
dHVyZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2Vic2l0ZVBvbGljaWVzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVQcml2YXRl
Lmg6CisKIDIwMTktMDUtMTMgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ29ycmVjdCB0aGUgc2FuZGJveCB0byBhbGxvdyBsb2FkaW5nIGxpYnJhcmllcyBm
cm9tIC9MaWJyYXJ5L0FwcGxlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0
aW9ucy9XZWJLaXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktp
dC54Y2NvbmZpZwppbmRleCBhZDRlMjA0MDUyZmM1OGMzMWY2ZDk4OTIzYThiZDE0MTMwYTRkODRl
Li41MTc2NTg3OTAzMGI0YzIzNjBlYmZkMjE1NDI4N2ZkYmViZGRkNWIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtMTU3LDggKzE1Nyw4IEBA
IEVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTW3Nkaz1pcGhvbmUqXSA9IFBsdWdpblByb2Nlc3NT
aGltLmR5bGliIFNlY0l0ZW1TaGltLmR5CiBJTlNUQUxMSERSU19TQ1JJUFRfUEhBU0UgPSBZRVM7
CiBBUFBMWV9SVUxFU19JTl9DT1BZX0hFQURFUlMgPSAkKFVTRV9ORVdfQlVJTERfU1lTVEVNKTsK
IAotV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRFtzZGs9bWFjb3N4
Kl0gPSAkKFdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRUQkKFdLX01B
Q09TXzEwMTQpKTsKLVdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURf
TUFDT1NfQkVGT1JFXzEwMTQgPSBZRVM7CitXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNT
SU5HX0RJU0FCTEVEW3Nkaz1tYWNvc3gqXSA9ICQoV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJP
Q0VTU0lOR19ESVNBQkxFRCQoV0tfTUFDT1NfMTAxNSkpOworV0tfRlJBTUVXT1JLX0hFQURFUl9Q
T1NUUFJPQ0VTU0lOR19ESVNBQkxFRF9NQUNPU19CRUZPUkVfMTAxNSA9IFlFUzsKIFdLX0ZSQU1F
V09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURbc2RrPWlwaG9uZSoxMS4qXSA9IFlF
UzsKIFdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURbc2RrPWlwaG9u
ZSoxMi4wKl0gPSBZRVM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9D
b2NvYS9fV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgKaW5kZXggODFhNDYzZGM2MDk4
Yzg5YzVjYTBhYTZmZjM4YzIzZjMyNTljYmVlMy4uNWNlNTgyOGFlMDQ0MmY3NmJjYzY2NjI5MGMw
ZDE3YjVlODVhNGU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgKQEAgLTM0LDUgKzM0LDUgQEAg
dHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRz
KSB7CiAgICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0UGFpbnRBZnRlclN1cHByZXNz
ZWRJbmNyZW1lbnRhbFJlbmRlcmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9z
KDkuMCkpID0gMSA8PCA1LAogICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdFBhaW50
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSkgPSAxIDw8IDYsCiAgICAg
X1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudERpZFJlbmRlclNpZ25pZmljYW50QW1vdW50T2ZUZXh0
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpID0gMSA8PCA3LAotICAg
IF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdE1lYW5pbmdmdWxQYWludCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpID0gMSA8PCA4LAorICAg
IF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdE1lYW5pbmdmdWxQYWludCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpID0gMSA8PCA4LAogfSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuaAppbmRleCA2Y2RhYTcyZGRkZjk4YzA1ZDQwYWE5NDliZDI2ZThmYjExY2IzOTk1
Li5mNTY3ZDQ2ODM3MzYwMzk5YTlkMGM1NGMzYTA0YTU0MGQwNmYwNTlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaApAQCAtMjI1LDggKzIyNSw4IEBAIFdLX0VYUE9SVCB2
b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlVUlD
bGllbnRCYXNlKiBjCiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlSW5qZWN0ZWRCdW5kbGVD
bGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50QmFz
ZSogY2xpZW50KTsKIAogLy8gQSBjbGllbnQgY2FuIGltcGxlbWVudCBlaXRoZXIgYSBuYXZpZ2F0
aW9uIGNsaWVudCBvciBsb2FkZXIgYW5kIHBvbGljeSBjbGllbnRzLCBidXQgbmV2ZXIgYm90aC4K
LVdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQoV0tQYWdlUmVmIHBhZ2Us
IGNvbnN0IFdLUGFnZUxvYWRlckNsaWVudEJhc2UqIGNsaWVudCkgV0tfQ19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50LCBtYWNvcyhX
S19NQUNfVEJBKSk7Ci1XS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KFdL
UGFnZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VQb2xpY3lDbGllbnRCYXNlKiBjbGllbnQpIFdLX0Nf
QVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNs
aWVudCwgbWFjb3MoV0tfTUFDX1RCQSkpOworV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZUxv
YWRlckNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlTG9hZGVyQ2xpZW50QmFzZSog
Y2xpZW50KSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tQYWdlU2V0UGFn
ZU5hdmlnYXRpb25DbGllbnQsIG1hY29zKDEwLjE0LjQpKTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFn
ZVNldFBhZ2VQb2xpY3lDbGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFnZVBvbGljeUNs
aWVudEJhc2UqIGNsaWVudCkgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdL
UGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50LCBtYWNvcygxMC4xNC40KSk7CiBXS19FWFBPUlQg
dm9pZCBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3Qg
V0tQYWdlTmF2aWdhdGlvbkNsaWVudEJhc2UqIGNsaWVudCk7CiAKIHR5cGVkZWYgdm9pZCAoKldL
UGFnZVJ1bkphdmFTY3JpcHRGdW5jdGlvbikoV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYsIFdL
RXJyb3JSZWYsIHZvaWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1Qcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oCmluZGV4IDVi
MGQyOGRiNmE0NmEyMDRkODgwNGEzYWVjZTU2MTk0M2Q0MGE1ZDguLjZiMzQ2NDk3NThkY2M3NTc1
ZmJjYjY1ZWRjOGZjZDk1ZDYyMGY4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1Qcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUu
aApAQCAtMzAsNiArMzAsNiBAQAogLy8gRm9yIHRlc3Rpbmcgb25seS4KIC0gKENHSW1hZ2VSZWYp
X2NvcHlTbmFwc2hvdEZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSwg
aW9zKDEwLjMpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMpIENHUG9pbnQgX3Njcm9sbFBvc2l0
aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dQb2ludCBfc2Nyb2xsUG9zaXRpb24gV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlci5oCmluZGV4IDU5YmVmMzQ5YmI4MWNkNzk5OTA5ODczN2ZkMjQyZTQ0MmFm
YTNlMmQuLmQ5NWI0ODNjYzcyODMyMzQ5NDUzMmQ4NzIwZjBkMzA4ZDA0N2Q0ZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyLmgKQEAgLTM0LDcgKzM0LDcgQEAKIEBwcm90b2NvbCBXS0Jy
b3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZTsKIEBwcm90b2NvbCBXS0Jyb3dzaW5nQ29udGV4dFBv
bGljeURlbGVnYXRlOwogCi1XS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldL
V2ViVmlldyIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkp
CitXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViVmlldyIsIG1hY29z
KDEwLjEwLCAxMC4xNC40KSwgaW9zKDguMCwgMTIuMikpCiBAaW50ZXJmYWNlIFdLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlciA6IE5TT2JqZWN0CiAKICNwcmFnbWEgbWFyayBEZWxlZ2F0ZXMKQEAg
LTQ1LDggKzQ1LDggQEAgV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dl
YlZpZXciLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcygKIAogI3ByYWdtYSBtYXJrIExv
YWRpbmcKIAotKyAodm9pZClyZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sOihOU1N0cmlu
ZyAqKXNjaGVtZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1VSTFNjaGVt
ZUhhbmRsZXIiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEp
KTsKLSsgKHZvaWQpdW5yZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sOihOU1N0cmluZyAq
KXNjaGVtZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1VSTFNjaGVtZUhh
bmRsZXIiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsK
KysgKHZvaWQpcmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbDooTlNTdHJpbmcgKilzY2hl
bWUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tVUkxTY2hlbWVIYW5kbGVy
IiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBpb3MoOC4wLCAxMi4yKSk7CisrICh2b2lkKXVucmVn
aXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbDooTlNTdHJpbmcgKilzY2hlbWUgV0tfQVBJX0RF
UFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tVUkxTY2hlbWVIYW5kbGVyIiwgbWFjb3MoMTAu
MTAsIDEwLjE0LjQpLCBpb3MoOC4wLCAxMi4yKSk7CiAKIC8qIExvYWQgYSByZXF1ZXN0LiBUaGlz
IGlzIG9ubHkgdmFsaWQgZm9yIHJlcXVlc3RzIG9mIG5vbi1maWxlOiBVUkxzLiBQYXNzaW5nIGEK
ICAgIGZpbGU6IFVSTCB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbi4gKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91
cC5oCmluZGV4IDgxMTMwZjM2N2E2M2Y1YjU4MWQ4NDQwNzU5ZjQ5MDdhYmRjZDcxOWQuLjFmODJj
YzRlYzQzYzI1OTYzNWE4YTBmYWU0MDEyNDExYzMxMGQ1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAu
aApAQCAtMjgsNyArMjgsNyBAQAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oPgogCi1XS19DTEFTU19E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLVXNlckNvbnRlbnRDb250cm9sbGVyIGFuZCBX
S1ByZWZlcmVuY2VzIiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1Nf
VEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tVc2VyQ29udGVu
dENvbnRyb2xsZXIgYW5kIFdLUHJlZmVyZW5jZXMiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlv
cyg4LjAsIDEyLjIpKQogQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dEdyb3VwIDogTlNPYmpl
Y3QKIAogLSAoaWQpaW5pdFdpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0Nv
bnRleHRIaXN0b3J5RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0Jyb3dzaW5nQ29udGV4dEhpc3RvcnlEZWxlZ2F0ZS5oCmluZGV4IDVmNTZhMjIyNTYwMmY1
OTNkMzg4YTVkYTMzNDVlNjQwMDYzYzgzODYuLmZmYWVjYjc0ZmE5YjY5YTFlZjk4MjFkZTgwM2M5
N2E2ZmE5MzMyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0Jyb3dzaW5nQ29udGV4dEhpc3RvcnlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhpc3RvcnlEZWxlZ2F0ZS5oCkBA
IC0yOSw3ICsyOSw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tCcm93c2luZ0NvbnRleHRDb250cm9s
bGVyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tOYXZpZ2F0aW9uRGF0YS5oPgogCi1XS19DTEFTU19E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLQmFja0ZvcndhcmRMaXN0IiwgbWFjb3MoMTAu
MTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FU
RURfV0lUSF9SRVBMQUNFTUVOVCgiV0tCYWNrRm9yd2FyZExpc3QiLCBtYWNvcygxMC4xMCwgMTAu
MTQuNCksIGlvcyg4LjAsIDEyLjIpKQogQHByb3RvY29sIFdLQnJvd3NpbmdDb250ZXh0SGlzdG9y
eURlbGVnYXRlIDxOU09iamVjdD4KIEBvcHRpb25hbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dExvYWRE
ZWxlZ2F0ZS5oCmluZGV4IDE4MzRjYmU4ZDIzM2I3MGU4ZDJjMTE0M2YwZmQwNzkxNTU4OWVlZjQu
LmY1NGFkYzI1MjAxNjBkZThmMTJlMjI4MDkyNzllOWY0NDg0NzYzN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dExvYWREZWxl
Z2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5n
Q29udGV4dExvYWREZWxlZ2F0ZS5oCkBAIC0zMCw3ICszMCw3IEBACiAKIEBjbGFzcyBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW07CiAKLVdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
V0tOYXZpZ2F0aW9uRGVsZWdhdGUiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAs
IFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS05h
dmlnYXRpb25EZWxlZ2F0ZSIsIG1hY29zKDEwLjEwLCAxMC4xNC40KSwgaW9zKDguMCwgMTIuMikp
CiBAcHJvdG9jb2wgV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUgPE5TT2JqZWN0PgogQG9w
dGlvbmFsCiAKQEAgLTUyLDEwICs1MiwxMCBAQCBXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIldLTmF2aWdhdGlvbkRlbGVnYXRlIiwgbWFjb3MoMTAuMTAsIFdLX01BQwogLyog
U2VudCBpZiB0aGUgY29tbWl0ZWQgbG9hZCBmYWlscy4gKi8KIC0gKHZvaWQpYnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlcjooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVyIGRpZEZh
aWxMb2FkV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3I7CiAKLS0gKHZvaWQpYnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlckRpZFN0YXJ0UHJvZ3Jlc3M6KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ciAqKXNlbmRlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXcu
ZXN0aW1hdGVkUHJvZ3Jlc3MiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdL
X0lPU19UQkEpKTsKLS0gKHZvaWQpYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjooV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVyICopc2VuZGVyIGVzdGltYXRlZFByb2dyZXNzQ2hhbmdlZFRvOihk
b3VibGUpZXN0aW1hdGVkUHJvZ3Jlc3MgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgiV0tXZWJWaWV3LmVzdGltYXRlZFByb2dyZXNzIiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEp
LCBpb3MoOC4wLCBXS19JT1NfVEJBKSk7Ci0tICh2b2lkKWJyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXJEaWRGaW5pc2hQcm9ncmVzczooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVy
IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViVmlldy5lc3RpbWF0ZWRQ
cm9ncmVzcyIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkp
OworLSAodm9pZClicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkU3RhcnRQcm9ncmVzczooV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoIldLV2ViVmlldy5lc3RpbWF0ZWRQcm9ncmVzcyIsIG1hY29zKDEwLjEwLCAx
MC4xNC40KSwgaW9zKDguMCwgMTIuMikpOworLSAodm9pZClicm93c2luZ0NvbnRleHRDb250cm9s
bGVyOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXIgZXN0aW1hdGVkUHJvZ3Jl
c3NDaGFuZ2VkVG86KGRvdWJsZSllc3RpbWF0ZWRQcm9ncmVzcyBXS19BUElfREVQUkVDQVRFRF9X
SVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXcuZXN0aW1hdGVkUHJvZ3Jlc3MiLCBtYWNvcygxMC4x
MCwgMTAuMTQuNCksIGlvcyg4LjAsIDEyLjIpKTsKKy0gKHZvaWQpYnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlckRpZEZpbmlzaFByb2dyZXNzOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilz
ZW5kZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3LmVzdGlt
YXRlZFByb2dyZXNzIiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBpb3MoOC4wLCAxMi4yKSk7CiAK
LS0gKHZvaWQpYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZENoYW5nZUJhY2tGb3J3YXJkTGlz
dDooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVyIGFkZGVkSXRlbTooV0tCYWNr
Rm9yd2FyZExpc3RJdGVtICopYWRkZWRJdGVtIHJlbW92ZWRJdGVtczooTlNBcnJheSAqKXJlbW92
ZWRJdGVtcyBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXcuYmFj
a0ZvcndhcmRMaXN0IiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1Nf
VEJBKSk7CistICh2b2lkKWJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRDaGFuZ2VCYWNrRm9y
d2FyZExpc3Q6KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKXNlbmRlciBhZGRlZEl0ZW06
KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWFkZGVkSXRlbSByZW1vdmVkSXRlbXM6KE5TQXJyYXkg
KilyZW1vdmVkSXRlbXMgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJW
aWV3LmJhY2tGb3J3YXJkTGlzdCIsIG1hY29zKDEwLjEwLCAxMC4xNC40KSwgaW9zKDguMCwgMTIu
MikpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tCcm93c2luZ0NvbnRleHRQb2xpY3lEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0UG9saWN5RGVsZWdhdGUuaAppbmRleCBl
YzQ5NTg0NzM4NDZmNDFlZmQwM2UxMDhhM2RiMzc2NjkxODQwNTI5Li5mMzU5YjU5OTQ0ZGIzNWEx
ZjEzNzFkOTkzODMzNGUwOGU2YWM4NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRQb2xpY3lEZWxlZ2F0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dFBvbGljeURl
bGVnYXRlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIFdL
UG9saWN5RGVjaXNpb24pIHsKIAogdHlwZWRlZiB2b2lkICheV0tQb2xpY3lEZWNpc2lvbkhhbmRs
ZXIpKFdLUG9saWN5RGVjaXNpb24pOwogCi1XS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFD
RU1FTlQoIldLTmF2aWdhdGlvbkRlbGVnYXRlIiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBp
b3MoOC4wLCBXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgiV0tOYXZpZ2F0aW9uRGVsZWdhdGUiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAs
IDEyLjIpKQogQHByb3RvY29sIFdLQnJvd3NpbmdDb250ZXh0UG9saWN5RGVsZWdhdGUgPE5TT2Jq
ZWN0PgogQG9wdGlvbmFsCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0Nvbm5lY3Rpb24uaAppbmRleCBlMjFkOTgxOTgzODUxZTcxZDkxMDE1ZTM0NmJmZDE3YzE3
OWU4OGViLi42ZDZiZWQ2YWQ2YTVkYTM2MzQ1YjVmNjBmNDBjNzZjM2E5MWFkZGVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29ubmVjdGlvbi5oCkBAIC0z
Niw3ICszNiw3IEBACiAKIEBlbmQKIAotV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwg
aW9zKDguMCwgV0tfSU9TX1RCQSkpCitXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1F
TlQoIl9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBpb3Mo
OC4wLCAxMi4yKSkKIEBpbnRlcmZhY2UgV0tDb25uZWN0aW9uIDogTlNPYmplY3QKIAogLSAodm9p
ZClzZW5kTWVzc2FnZVdpdGhOYW1lOihOU1N0cmluZyAqKW1lc3NhZ2VOYW1lIGJvZHk6KGlkKW1l
c3NhZ2VCb2R5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgKaW5kZXggMDhjYmY1MDBhNjdlY2Qx
ZjgyYTYwMGM2Mjc3YzkyYTk5MDU5NGMyYi4uODNiNGUwMmUzMWQyYmFkNTExYTlhYThjZDBjMzVh
ODNhYTI4NGM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oCkBAIC01OSw2ICs1OSw2IEBA
IHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLU3ludGhldGljQ2xpY2tUeXBlKSB7CiAjZW5k
aWYKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9pc1JlZGlyZWN0IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwotQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBXS05hdmlnYXRpb24gKl9tYWluRnJhbWVOYXZpZ2F0aW9uIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLTmF2aWdhdGlvbiAqX21haW5GcmFtZU5hdmlnYXRp
b24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlv
bkRlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
TmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IGMzMDJmMTRhZGY1OTBmNTEyZmNjNzNl
NTM3M2Q1MzAyNzc2NmVhM2UuLmU5YmUwNGQ1YzM1OWE1M2ViOGM0NzQzNjVkYjk2ZDFhNWRlMWNh
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmln
YXRpb25EZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKQEAgLTU2LDcgKzU2LDcgQEAgdHlw
ZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKSB7CiAK
IHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgX1dLTmF2aWdhdGlvbkFjdGlv
blBvbGljeURvd25sb2FkID0gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkoV0tOYXZpZ2F0aW9u
QWN0aW9uUG9saWN5QWxsb3cgKyAxKTsKIHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25BY3Rpb25Q
b2xpY3kgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKSBfV0tOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5QWxsb3dXaXRob3V0VHJ5aW5nQXBwTGluayA9IChXS05hdmlnYXRpb25B
Y3Rpb25Qb2xpY3kpKF9XS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lEb3dubG9hZCArIDEpOwotc3Rh
dGljIGNvbnN0IFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpIF9XS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lB
bGxvd0luTmV3UHJvY2VzcyA9IChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKF9XS05hdmlnYXRp
b25BY3Rpb25Qb2xpY3lBbGxvd1dpdGhvdXRUcnlpbmdBcHBMaW5rICsgMSk7CitzdGF0aWMgY29u
c3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQu
NCksIGlvcygxMi4yKSkgX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93SW5OZXdQcm9jZXNz
ID0gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkoX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFs
bG93V2l0aG91dFRyeWluZ0FwcExpbmsgKyAxKTsKIAogc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlv
blJlc3BvbnNlUG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29tZURvd25sb2Fk
ID0gKFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KShXS05hdmlnYXRpb25SZXNwb25zZVBvbGlj
eUFsbG93ICsgMSk7CiAKQEAgLTg4LDcgKzg4LDcgQEAgc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlv
blJlc3BvbnNlUG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29tZURvd25sb2EK
IC0gKHZvaWQpX3dlYlZpZXdXaWxsRW5kTmF2aWdhdGlvbkdlc3R1cmU6KFdLV2ViVmlldyAqKXdl
YlZpZXcgd2l0aE5hdmlnYXRpb25Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRM
aXN0SXRlbSAqKWl0ZW07CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdp
bGxTbmFwc2hvdEJhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0
ZW07CiAtICh2b2lkKV93ZWJWaWV3RGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDoo
V0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEw
LjApKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlv
biBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgX1dL
V2Vic2l0ZVBvbGljaWVzICopKWRlY2lzaW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCJfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnVz
ZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjoiLCBtYWNvcygxMC4xMi4zLCBXS19NQUNfVEJBKSwgaW9z
KDEwLjMsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICop
bmF2aWdhdGlvbkFjdGlvbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeSwgX1dLV2Vic2l0ZVBvbGljaWVzICopKWRlY2lzaW9uSGFuZGxlciBXS19BUElf
REVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uOnVzZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjoiLCBtYWNvcygxMC4xMi4zLCAx
MC4xNC40KSwgaW9zKDEwLjMsIDEyLjIpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0
aW9uICopbmF2aWdhdGlvbkFjdGlvbiB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2Vy
SW5mbyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwg
X1dLV2Vic2l0ZVBvbGljaWVzICopKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2
aWdhdGlvbiB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBkaWRGYWlsTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2aWdh
dGlvbiB3aXRoRXJyb3I6KE5TRXJyb3IgKillcnJvciB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29k
aW5nPil1c2VySW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykp
OwpAQCAtMTA3LDcgKzEwNyw3IEBAIHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25SZXNwb25zZVBv
bGljeSBfV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lCZWNvbWVEb3dubG9hCiAtICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbToo
V0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbSBpblBhZ2VDYWNoZTooQk9PTClpblBhZ2VDYWNo
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdJbldpdGhJbmZvOihOU0Rp
Y3Rpb25hcnkgKilpbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVy
c2lvbldpdGhJbmZvOihOU0RpY3Rpb25hcnkgKilpbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9s
aWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5OihfV0tQbHVnaW5Nb2R1bGVMb2FkUG9s
aWN5KXBvbGljeSBwbHVnaW5JbmZvOihOU0RpY3Rpb25hcnkgKilpbmZvIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IHBvbGljeSwgTlNTdHJpbmcg
KiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5OihfV0tQ
bHVnaW5Nb2R1bGVMb2FkUG9saWN5KXBvbGljeSBwbHVnaW5JbmZvOihOU0RpY3Rpb25hcnkgKilp
bmZvIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5
IHBvbGljeSwgTlNTdHJpbmcgKiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKSljb21wbGV0aW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpKTsKIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYmFja0ZvcndhcmRMaXN0SXRlbUFkZGVkOihXS0JhY2tG
b3J3YXJkTGlzdEl0ZW0gKilpdGVtQWRkZWQgcmVtb3ZlZDooTlNBcnJheTxXS0JhY2tGb3J3YXJk
TGlzdEl0ZW0gKj4gKilpdGVtc1JlbW92ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA1ZTY2NTE2Nzc4YTRhMTU2ZDJlMDky
OTMyMDIzZGQ0N2Q0ODc3NjdhLi5lMmI5NmM3YjliYmE1NTQyMzI3YTI2ZmZhNTM1ZjYzZjRjMTc4
MWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMTMwLDkgKzEzMCw5IEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yKSB7CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEFWRm91bmRhdGlvbkVuYWJsZWQ6KSBCT09MIF9hdkZvdW5kYXRp
b25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoMTIuMCkpOwogCi0r
IChOU0FycmF5PF9XS0ludGVybmFsRGVidWdGZWF0dXJlICo+ICopX2ludGVybmFsRGVidWdGZWF0
dXJlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwotLSAoQk9PTClfaXNFbmFibGVkRm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6KF9XS0ludGVybmFs
RGVidWdGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBmb3JJ
bnRlcm5hbERlYnVnRmVhdHVyZTooX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKilmZWF0dXJlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisrIChO
U0FycmF5PF9XS0ludGVybmFsRGVidWdGZWF0dXJlICo+ICopX2ludGVybmFsRGVidWdGZWF0dXJl
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAoQk9PTClf
aXNFbmFibGVkRm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6KF9XS0ludGVybmFsRGVidWdGZWF0dXJl
ICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwor
LSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBmb3JJbnRlcm5hbERlYnVnRmVhdHVyZToo
X1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQuNCksIGlvcygxMi4yKSk7CiAKICsgKE5TQXJyYXk8X1dLRXhwZXJpbWVudGFsRmVhdHVy
ZSAqPiAqKV9leHBlcmltZW50YWxGZWF0dXJlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEy
KSwgaW9zKDEwLjApKTsKIC0gKEJPT0wpX2lzRW5hYmxlZEZvckZlYXR1cmU6KF9XS0V4cGVyaW1l
bnRhbEZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3Mo
MTAuMCkpOwpAQCAtMTQyLDE1ICsxNDIsMTUgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
X1dLRWRpdGFibGVMaW5rQmVoYXZpb3IpIHsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0U2hvdWxkRW5hYmxlVGV4dEF1dG9zaXppbmdCb29zdDopIEJPT0wgX3Nob3VsZEVuYWJs
ZVRleHRBdXRvc2l6aW5nQm9vc3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygx
Mi4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzU2FmZUJyb3dzaW5nRW5h
YmxlZCwgc2V0dGVyPV9zZXRTYWZlQnJvd3NpbmdFbmFibGVkOikgQk9PTCBfc2FmZUJyb3dzaW5n
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNTYWZlQnJvd3NpbmdFbmFibGVk
LCBzZXR0ZXI9X3NldFNhZmVCcm93c2luZ0VuYWJsZWQ6KSBCT09MIF9zYWZlQnJvd3NpbmdFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENvbG9yRmlsdGVyRW5hYmxlZDopIEJPT0wgX2Nv
bG9yRmlsdGVyRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjAp
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFB1bmNoT3V0V2hpdGVCYWNrZ3Jv
dW5kc0luRGFya01vZGU6KSBCT09MIF9wdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2Rl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0TG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6ZUVuYWJsZWQ6
KSBCT09MIF9sb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0U2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0OikgQk9PTCBfc2hvdWxk
SWdub3JlTWV0YVZpZXdwb3J0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRWaWRlb1F1
YWxpdHlJbmNsdWRlc0Rpc3BsYXlDb21wb3NpdGluZ0VuYWJsZWQ6KSBCT09MIF92aWRlb1F1YWxp
dHlJbmNsdWRlc0Rpc3BsYXlDb21wb3NpdGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFdlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQ6KSBCT09MIF93ZWJB
bmltYXRpb25zQ1NTSW50ZWdyYXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
RGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQ6KSBCT09MIF9kZXZpY2VPcmllbnRhdGlvbkV2
ZW50RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TG93UG93ZXJWaWRlb0F1
ZGlvQnVmZmVyU2l6ZUVuYWJsZWQ6KSBCT09MIF9sb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXpl
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0Oikg
Qk9PTCBfc2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQuNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRWaWRl
b1F1YWxpdHlJbmNsdWRlc0Rpc3BsYXlDb21wb3NpdGluZ0VuYWJsZWQ6KSBCT09MIF92aWRlb1F1
YWxpdHlJbmNsdWRlc0Rpc3BsYXlDb21wb3NpdGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFdlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQ6KSBCT09MIF93ZWJBbmltYXRp
b25zQ1NTSW50ZWdyYXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBp
b3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGV2aWNlT3JpZW50
YXRpb25FdmVudEVuYWJsZWQ6KSBCT09MIF9kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3M6KSBCT09MIF9uZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3Mo
V0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SXRwRGVidWdN
b2RlRW5hYmxlZDopIEJPT0wgX2l0cERlYnVnTW9kZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldE1lZGlhU291cmNlRW5hYmxlZDopIEJPT0wgX21lZGlhU291cmNlRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoV0tfSU9TX1RCQSkpOwpAQCAt
MTczLDcgKzE3Myw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0VkaXRhYmxlTGlu
a0JlaGF2aW9yKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTdXBwcmVzc2Vz
SW5jcmVtZW50YWxSZW5kZXJpbmc6KSBCT09MIF9zdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJp
bmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQ6KSBC
T09MIF9hc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRB
cnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQ6KSBCT09MIF9hcnRpZmlj
aWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRFeHBlcmltZW50
YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkOikgQk9PTCBfZXhwZXJpbWVudGFsUGx1Z0lu
U2FuZGJveFByb2ZpbGVzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEV4cGVyaW1lbnRhbFBsdWdJblNh
bmRib3hQcm9maWxlc0VuYWJsZWQ6KSBCT09MIF9leHBlcmltZW50YWxQbHVnSW5TYW5kYm94UHJv
ZmlsZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCkpOwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29va2llRW5hYmxlZDopIEJPT0wgX2Nvb2tpZUVuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRQbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkOikgQk9PTCBfcGx1Z0luU25h
cHNob3R0aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0Vu
YWJsZWQ6KSBCT09MIF9zdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaAppbmRleCA1MTMzZGJjOGIwNjdjZjkyY2Y2MWFk
ZTk1OWIwMmUxZWU5ZjNlZmI3Li4xOTM4YmY5ZDExNjIxMmQ3MjU1N2VjZDlhNjVmMzIyODg5OGJm
NjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzR3JvdXAuaApAQCAtNDQsNyArNDQsNyBAQAogCiBAZW5kCiAKLVdLX0NMQVNTX0RFUFJFQ0FU
RURfV0lUSF9SRVBMQUNFTUVOVCgiV0tQcm9jZXNzUG9vbCIsIG1hY29zKDEwLjEwLCBXS19NQUNf
VEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpCitXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIldLUHJvY2Vzc1Bvb2wiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAs
IDEyLjIpKQogQGludGVyZmFjZSBXS1Byb2Nlc3NHcm91cCA6IE5TT2JqZWN0CiAKIC0gKGlkKWlu
aXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6KE5TVVJMICopYnVuZGxlVVJMOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUu
aAppbmRleCAwZTFmMDZkODQ2YmUyYTRmOTFjM2Y5Yzg4OTgwYTFkMTFjNzUxMjI2Li4zOTczMjFk
ZTgwMDk4MGUzNzM5NWIyZDJlMTRmNzYwMmEwZjkwNWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaApAQCAt
NzksOCArNzksOCBAQAogCiAtICh2b2lkKV9yZWdpc3RlclVSTFNjaGVtZUFzQ2FuRGlzcGxheU9u
bHlJZkNhblJlcXVlc3Q6KE5TU3RyaW5nICopc2NoZW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQpLCBpb3MoMTIuMCkpOwogCi0tIChfV0tEb3dubG9hZCAqKV9kb3dubG9hZFVSTFJlcXVl
c3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Qgb3JpZ2luYXRpbmdXZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7Ci0tIChfV0tEb3dubG9hZCAqKV9yZXN1bWVEb3dubG9hZEZyb21EYXRhOihOU0RhdGEg
KilyZXN1bWVEYXRhIHBhdGg6KE5TU3RyaW5nICopcGF0aCBvcmlnaW5hdGluZ1dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKKy0gKF9XS0Rvd25sb2FkICopX2Rvd25sb2FkVVJMUmVxdWVzdDooTlNV
UkxSZXF1ZXN0ICopcmVxdWVzdCBvcmlnaW5hdGluZ1dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKF9XS0Rv
d25sb2FkICopX3Jlc3VtZURvd25sb2FkRnJvbURhdGE6KE5TRGF0YSAqKXJlc3VtZURhdGEgcGF0
aDooTlNTdHJpbmcgKilwYXRoIG9yaWdpbmF0aW5nV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiAvLyBUZXN0
IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgb25seSB3aGlsZSBubyB3ZWIgY29udGVudCBwcm9jZXNz
ZXMgYXJlIHJ1bm5pbmcuCiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwpAQCAtOTUsMTYg
Kzk1LDE2IEBACiAKIC8vIFRlc3Qgb25seS4KIC0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwotLSAoQk9PTClfaGFzUHJl
d2FybWVkV2ViUHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworLSAoQk9PTClfaGFzUHJld2FybWVkV2ViUHJvY2VzcyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogLSAoc2l6ZV90KV93ZWJQcm9jZXNz
Q291bnRJZ25vcmluZ1ByZXdhcm1lZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9z
KDEyLjApKTsKLS0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50SWdub3JpbmdQcmV3YXJtZWRBbmRD
YWNoZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKy0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50SWdub3JpbmdQcmV3YXJtZWRBbmRDYWNoZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIC0gKHNpemVfdClf
cGx1Z2luUHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygx
MS4zKSk7CiAtIChzaXplX3QpX3NlcnZpY2VXb3JrZXJQcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAtICh2b2lkKV9zeW5jTmV0d29ya1Byb2Nl
c3NDb29raWVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAo
dm9pZClfbWFrZU5leHRXZWJQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAtICh2b2lkKV9tYWtlTmV4dE5ldHdvcmtQ
cm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCks
IGlvcygxMi4wKSk7Ci0tIChOU1VJbnRlZ2VyKV9tYXhpbXVtU3VzcGVuZGVkUGFnZUNvdW50IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChO
U1VJbnRlZ2VyKV9wcm9jZXNzQ2FjaGVDYXBhY2l0eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoTlNVSW50ZWdlcilfbWF4aW11bVN1c3Bl
bmRlZFBhZ2VDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OworLSAoTlNVSW50ZWdlcilfcHJvY2Vzc0NhY2hlQ2FwYWNpdHkgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIC0gKE5TVUludGVnZXIpX3Byb2Nlc3NDYWNoZVNp
emUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogLy8gVGVzdCBvbmx5LiBSZXR1cm5zIHdlYiBwcm9jZXNzZXMgcnVubmluZyB3ZWIgcGFnZXMg
KGRvZXMgbm90IGluY2x1ZGUgd2ViIHByb2Nlc3NlcyBydW5uaW5nIHNlcnZpY2Ugd29ya2VycykK
QEAgLTExOCwxMCArMTE4LDEwIEBACiAvLyBUZXN0IG9ubHkuCiAtICh2b2lkKV9zZXRBbGxvd3NB
bnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXI6KEJPT0wpYWxsb3dzIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAtICh2b2lkKV9yZWdpc3RlclVSTFNj
aGVtZVNlcnZpY2VXb3JrZXJzQ2FuSGFuZGxlOihOU1N0cmluZyAqKXNjaGVtZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwotLSAodm9pZClfZ2V0QWN0aXZlUGFn
ZXNPcmlnaW5zSW5XZWJQcm9jZXNzRm9yVGVzdGluZzoocGlkX3QpcGlkIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkKF4pKE5TQXJyYXk8TlNTdHJpbmcgKj4gKikpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKEJP
T0wpX25ldHdvcmtQcm9jZXNzSGFzRW50aXRsZW1lbnRGb3JUZXN0aW5nOihOU1N0cmluZyAqKWVu
dGl0bGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CistICh2b2lkKV9nZXRBY3RpdmVQYWdlc09yaWdpbnNJbldlYlByb2Nlc3NGb3JUZXN0
aW5nOihwaWRfdClwaWQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoTlNBcnJheTxOU1N0cmlu
ZyAqPiAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQp
LCBpb3MoMTIuMikpOworLSAoQk9PTClfbmV0d29ya1Byb2Nlc3NIYXNFbnRpdGxlbWVudEZvclRl
c3Rpbmc6KE5TU3RyaW5nICopZW50aXRsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NC40KSwgaW9zKDEyLjIpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNDb29r
aWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZCwgc2V0dGVyPV9zZXRDb29raWVTdG9yYWdlUGFy
dGl0aW9uaW5nRW5hYmxlZDopIEJPT0wgX2Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVk
IFdLX0FQSV9ERVBSRUNBVEVEKCJQYXJ0aXRpb25lZCBjb29raWVzIGFyZSBubyBsb25nZXIgc3Vw
cG9ydGVkIiwgbWFjb3MoMTAuMTIuMywgV0tfTUFDX1RCQSksIGlvcygxMC4zLCBXS19JT1NfVEJB
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0Nvb2tpZVN0b3JhZ2VQYXJ0aXRp
b25pbmdFbmFibGVkLCBzZXR0ZXI9X3NldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVk
OikgQk9PTCBfY29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQgV0tfQVBJX0RFUFJFQ0FU
RUQoIlBhcnRpdGlvbmVkIGNvb2tpZXMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvcygx
MC4xMi4zLCAxMC4xNC40KSwgaW9zKDEwLjMsIDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBnZXR0ZXI9X2lzU3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQsIHNldHRlcj1fc2V0U3RvcmFnZUFj
Y2Vzc0FQSUVuYWJsZWQ6KSBCT09MIF9zdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAodm9pZClfc3ludGhlc2l6ZUFw
cElzQmFja2dyb3VuZDooQk9PTCliYWNrZ3JvdW5kIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1R5cGVSZWZXcmFwcGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tUeXBlUmVmV3JhcHBlci5oCmluZGV4IDQ4MDNiMjJmZWUzZTJj
YWJlM2VkZjcxZTY3NDhhY2E4YjEzMzRhYjEuLmE3M2ViZTMxYjZkZWRlNTkyNWY5NjRjMGVmM2Nm
ODk2YWQ4MGNhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1R5cGVSZWZXcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVHlwZVJlZldyYXBwZXIuaApAQCAtMjgsNyArMjgsNyBAQAogI2ltcG9ydCA8Rm91bmRh
dGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tCYXNlLmg+CiAKLVdLX0NMQVNT
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tPYmplY3QiLCBtYWNvcygxMC4xMCwgV0tf
TUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCJXS09iamVjdCIsIG1hY29zKDEwLjEwLCAxMC4xNC40KSwgaW9zKDguMCwg
MTIuMikpCiBAaW50ZXJmYWNlIFdLVHlwZVJlZldyYXBwZXIgOiBOU09iamVjdAogCiAtIChpZClp
bml0V2l0aE9iamVjdDooV0tUeXBlUmVmKW9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDRkNzBl
ZTJmZjBmMWQyNDEyZTM2ZmI3ODMxOTQ1NTY2MzQzNDgwZGYuLmJlYzJkNjQ4NmE2MGM2NGNjYWY2
OTk5Y2U4YWJmZmMxNzc0YTRjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtNzQsNyArNzQsNyBAQCB0
eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLQXV0b3BsYXlFdmVudEZsYWdzKSB7CiB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tGb2N1c0RpcmVjdGlvbikgewogICAgIF9XS0Zv
Y3VzRGlyZWN0aW9uQmFja3dhcmQsCiAgICAgX1dLRm9jdXNEaXJlY3Rpb25Gb3J3YXJkLAotfSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTIuMikpOwogCiBAcHJvdG9jb2wgV0tV
SURlbGVnYXRlUHJpdmF0ZSA8V0tVSURlbGVnYXRlPgogCkBAIC05OCw4ICs5OCw4IEBAIHN0cnVj
dCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuOihXS1dl
YlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOC4zKSk7
CiAtICh2b2lkKV93ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXcg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg4LjMpKTsKIC0gKHZvaWQpX3dlYlZp
ZXdSZXF1ZXN0UG9pbnRlckxvY2s6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMi4zKSk7Ci0tICh2b2lkKV93ZWJWaWV3RGlkUmVxdWVzdFBvaW50ZXJMb2Nr
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotLSAodm9pZClfd2ViVmlld0RpZFNob3dTYWZlQnJvd3NpbmdXYXJuaW5n
OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3RGlkUmVxdWVzdFBvaW50ZXJMb2Nr
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIu
MikpOworLSAodm9pZClfd2ViVmlld0RpZFNob3dTYWZlQnJvd3NpbmdXYXJuaW5nOihXS1dlYlZp
ZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CiAtICh2b2lkKV93ZWJWaWV3RGlkTG9zZVBvaW50ZXJMb2NrOihXS1dlYlZpZXcgKil3ZWJWaWV3
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMykpOwogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZTooQk9P
TCloYXNWaWRlb0luUGljdHVyZUluUGljdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
KSwgaW9zKDExLjApKTsKIApAQCAtMTE5LDE1ICsxMTksMTUgQEAgc3RydWN0IFVJRWRnZUluc2V0
czsKIAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRSZW1vdmVBdHRh
Y2htZW50OihfV0tBdHRhY2htZW50ICopYXR0YWNobWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBkaWRJbnNlcnRBdHRhY2htZW50OihfV0tBdHRhY2htZW50ICopYXR0YWNobWVudCB3aXRo
U291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwg
aW9zKDEyLjApKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkSW52
YWxpZGF0ZURhdGFGb3JBdHRhY2htZW50OihfV0tBdHRhY2htZW50ICopYXR0YWNobWVudCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRJbnZhbGlkYXRlRGF0YUZvckF0dGFj
aG1lbnQ6KF9XS0F0dGFjaG1lbnQgKilhdHRhY2htZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQuNCksIGlvcygxMi4yKSk7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlV2l0aFVz
ZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHJlcXVlc3RTdG9yYWdlQWNjZXNzUGFuZWxGb3JEb21haW46KE5TU3RyaW5nICopcmVx
dWVzdGluZ0RvbWFpbiB1bmRlckN1cnJlbnREb21haW46KE5TU3RyaW5nICopY3VycmVudERvbWFp
biBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCByZXN1bHQpKWNvbXBsZXRpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogCi0tICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOihO
U0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopZm9udEF0dHJpYnV0ZXMgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXM6KE5TRGljdGlv
bmFyeTxOU1N0cmluZyAqLCBpZD4gKilmb250QXR0cmlidXRlcyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IHRha2VGb2N1czooX1dLRm9jdXNEaXJlY3Rpb24pZGlyZWN0aW9uIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHRha2VGb2N1czooX1dLRm9jdXNEaXJlY3Rpb24pZGly
ZWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMi4yKSk7CiAKICNp
ZiBUQVJHRVRfT1NfSVBIT05FCiAtIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKQEAgLTE2MSw3ICsx
NjEsNyBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBkYXRhSW50ZXJhY3Rpb25PcGVyYXRpb25XYXNIYW5kbGVkOihCT09MKWhhbmRs
ZWQgZm9yU2Vzc2lvbjooaWQpc2Vzc2lvbiBpdGVtUHJvdmlkZXJzOihOU0FycmF5ICopaXRlbVBy
b3ZpZGVycyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtIChOU1VJbnRlZ2VyKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxVcGRhdGVEYXRhSW50ZXJhY3Rpb25PcGVyYXRp
b25Ub09wZXJhdGlvbjooTlNVSW50ZWdlcilvcGVyYXRpb24gZm9yU2Vzc2lvbjooaWQpc2Vzc2lv
biBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAjaWYgVEFSR0VUX09TX0lPUwotLSAoVUlE
cm9wUHJvcG9zYWwgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxsVXBkYXRlRHJv
cFByb3Bvc2FsVG9Qcm9wb3NhbDooVUlEcm9wUHJvcG9zYWwgKilwcm9wb3NhbCBmb3JTZXNzaW9u
OihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1Nf
VEJBKSk7CistIChVSURyb3BQcm9wb3NhbCAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHdpbGxVcGRhdGVEcm9wUHJvcG9zYWxUb1Byb3Bvc2FsOihVSURyb3BQcm9wb3NhbCAqKXByb3Bv
c2FsIGZvclNlc3Npb246KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKDEyLjIpKTsKIC0gKFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHByZXZpZXdGb3JMaWZ0aW5nSXRlbTooVUlEcmFnSXRlbSAqKWl0ZW0g
c2Vzc2lvbjooaWQgPFVJRHJhZ1Nlc3Npb24+KXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3Mo
MTEuMCkpOwogLSAoVUlUYXJnZXRlZERyYWdQcmV2aWV3ICopX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgcHJldmlld0ZvckNhbmNlbGxpbmdJdGVtOihVSURyYWdJdGVtICopaXRlbSB3aXRo
RGVmYXVsdDooVUlUYXJnZXRlZERyYWdQcmV2aWV3ICopZGVmYXVsdFByZXZpZXcgV0tfQVBJX0FW
QUlMQUJMRShpb3MoMTEuMCkpOwogLSAoTlNBcnJheTxVSURyYWdJdGVtICo+ICopX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFBlcmZvcm1Ecm9wV2l0aFNlc3Npb246KGlkIDxVSURy
b3BTZXNzaW9uPilzZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKQEAgLTIwNSwx
MCArMjA1LDEwIEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGdldFdpbmRvd0ZyYW1lV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShDR1JlY3QpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMuNCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzZXRXaW5kb3dG
cmFtZTooQ0dSZWN0KWZyYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB1bmF2YWlsYWJsZVBsdWdJbkJ1dHRv
bkNsaWNrZWRXaXRoUmVhc29uOihfV0tQbHVnSW5VbmF2YWlsYWJpbGl0eVJlYXNvbilyZWFzb24g
cGx1Z0luSW5mbzooTlNEaWN0aW9uYXJ5ICopcGx1Z0luSW5mbzsKLS0gKE5TTWVudSAqKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZvckVs
ZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoIl93ZWJWaWV3OmdldENvbnRleHRNZW51RnJvbVByb3Bvc2Vk
TWVudTpmb3JFbGVtZW50OnVzZXJJbmZvOmNvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEy
LCBXS19NQUNfVEJBKSk7Ci0tIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBjb250ZXh0TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVs
ZW1lbnRJbmZvICopZWxlbWVudCB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5m
byBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpnZXRDb250ZXh0
TWVudUZyb21Qcm9wb3NlZE1lbnU6Zm9yRWxlbWVudDp1c2VySW5mbzpjb21wbGV0aW9uSGFuZGxl
cjoiLCBtYWNvcygxMC4xMiwgV0tfTUFDX1RCQSkpOworLSAoTlNNZW51ICopX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDoo
X1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgiX3dlYlZpZXc6Z2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51OmZv
ckVsZW1lbnQ6dXNlckluZm86Y29tcGxldGlvbkhhbmRsZXI6IiwgbWFjb3MoMTAuMTIsIDEwLjE0
LjQpKTsKKy0gKE5TTWVudSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRN
ZW51OihOU01lbnUgKiltZW51IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8g
KillbGVtZW50IHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl93ZWJWaWV3OmdldENvbnRleHRNZW51RnJvbVBy
b3Bvc2VkTWVudTpmb3JFbGVtZW50OnVzZXJJbmZvOmNvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29z
KDEwLjEyLCAxMC4xNC40KSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGdldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50
OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVudCB1c2VySW5mbzooaWQgPE5TU2Vj
dXJlQ29kaW5nPil1c2VySW5mbyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNNZW51ICop
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsKLS0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUGVyZm9ybURyYWdPcGVyYXRpb246
KEJPT0wpaGFuZGxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKTsKKy0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUGVyZm9ybURyYWdPcGVyYXRpb246
KEJPT0wpaGFuZGxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpKTsKICNlbmRpZiAv
LyBUQVJHRVRfT1NfSVBIT05FCiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ZpZXcuaAppbmRleCBmZmI2OGYxNWViYzVjMTY1YzliMTc3Mzc1MmRjMzMyZDllZGI1
YjM3Li42ZTNkNzlhNWZjNWI2YTMwOGU3MzkyNjEyMTQyNjZmMzUxNWVjMjQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlldy5oCkBAIC0zNSw3ICszNSw3IEBACiBA
Y2xhc3MgV0tQcm9jZXNzR3JvdXA7CiBAY2xhc3MgV0tWaWV3RGF0YTsKIAotV0tfQ0xBU1NfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXciLCBtYWNvcygxMC4xMCwgV0tfTUFD
X1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JF
UExBQ0VNRU5UKCJXS1dlYlZpZXciLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAsIDEy
LjIpKQogQGludGVyZmFjZSBXS1ZpZXcgOiBOU1ZpZXcgPE5TVGV4dElucHV0Q2xpZW50PiB7CiBA
cHJpdmF0ZQogICAgIFdLVmlld0RhdGEgKl9kYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblBy
aXZhdGUuaAppbmRleCA4Y2JlMGE0ZGFhNzMxODViZDNlYzIwNWU1ODg3MzFhYmVhNGM1MzRkLi42
MGFlMDZlNDk1MWUyOTJlNWQyYTY4ZGU0ZWVlMDE4N2EwYzM0YWNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvblByaXZhdGUuaApAQCAtNjMsNyArNjMsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNV
SW50ZWdlciwgX1dLRHJhZ0xpZnREZWxheSkgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0SW52aXNpYmxlQXV0b3BsYXlOb3RQZXJtaXR0ZWQ6KSBCT09MIF9pbnZpc2libGVBdXRv
cGxheU5vdFBlcm1pdHRlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjAp
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhRGF0YUxvYWRzQXV0b21h
dGljYWxseTopIEJPT0wgX21lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldEF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZDopIEJPT0wgX2F0dGFjaG1lbnRFbGVtZW50
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEF0dGFjaG1lbnRGaWxlV3JhcHBlckNsYXNzOikg
Q2xhc3MgX2F0dGFjaG1lbnRGaWxlV3JhcHBlckNsYXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRBdHRhY2htZW50RmlsZVdyYXBwZXJDbGFzczopIENsYXNzIF9hdHRhY2htZW50Rmls
ZVdyYXBwZXJDbGFzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW5pdGlhbENhcGl0YWxpemF0aW9u
RW5hYmxlZDopIEJPT0wgX2luaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRBcHBsZVBheUVuYWJsZWQ6KSBCT09MIF9hcHBsZVBheUVuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRXYWl0c0ZvclBhaW50QWZ0ZXJWaWV3RGlkTW92ZVRvV2luZG93OikgQk9PTCBf
d2FpdHNGb3JQYWludEFmdGVyVmlld0RpZE1vdmVUb1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEyLjMpLCBpb3MoMTAuMykpOwpAQCAtMTAzLDkgKzEwMyw5IEBAIHR5cGVkZWYgTlNf
RU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRBbGxvd01lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0QXNGYWxsYmFjazopIEJPT0wgX2FsbG93TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnRBc0ZhbGxiYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3Mo
MTEuMCkpOwogCiAvLyBUaGUgaW5wdXQgb2YgdGhpcyBTUEkgaXMgYW4gYXJyYXkgb2YgaW1hZ2Ug
VVRJIChVbmlmb3JtIFR5cGUgSWRlbnRpZmllcikuCi1AcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSwgc2V0dGVyPV9zZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlczopIE5TQXJyYXk8TlNT
dHJpbmcgKj4gKl9hZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHksIHNldHRlcj1fc2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM6KSBOU0Fy
cmF5PE5TU3RyaW5nICo+ICpfYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAotQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0RWRpdGFibGVJbWFnZXNFbmFibGVkOikgQk9PTCBfZWRpdGFibGVJbWFn
ZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRFZGl0YWJsZUltYWdlc0Vu
YWJsZWQ6KSBCT09MIF9lZGl0YWJsZUltYWdlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFVuZG9NYW5hZ2VyQVBJRW5hYmxlZDopIEJPT0wgX3VuZG9NYW5hZ2VyQVBJRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5k
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaAppbmRleCAwNmMxZWI0YTY4NTZkNzk3ODhjZDIzYmVlNDY2N2I2NTE4N2EyNDdmLi4w
ZjE3OGMwOTgzYzdlZjBmNWI0YmVkMWM0YjdkNzE4MTU4MTY3MGIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTE1
NSw3ICsxNTUsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2Up
IHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFVzZXJDb250ZW50RXh0ZW5zaW9u
c0VuYWJsZWQ6KSBCT09MIF91c2VyQ29udGVudEV4dGVuc2lvbnNFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgcGlkX3QgX3dlYlByb2Nlc3NJZGVudGlmaWVyOwotQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBwaWRfdCBfcHJvdmlzaW9uYWxXZWJQcm9jZXNzSWRlbnRpZmllciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBwaWRfdCBfcHJvdmlzaW9uYWxXZWJQcm9jZXNzSWRl
bnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0VkaXRhYmxlLCBzZXR0ZXI9X3NldEVkaXRh
YmxlOikgQk9PTCBfZWRpdGFibGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5
LjApKTsKIApAQCAtMTkwLDU0ICsxOTAsNTQgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVn
ZXIsIF9XS1JlY3RFZGdlKSB7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFZp
ZXdTY2FsZTopIENHRmxvYXQgX3ZpZXdTY2FsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEx
KSwgaW9zKDkuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNaW5pbXVt
RWZmZWN0aXZlRGV2aWNlV2lkdGg6KSBDR0Zsb2F0IF9taW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lk
dGggV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aDopIENHRmxvYXQgX21pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRCYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2U6KSBCT09MIF9iYWNrZ3JvdW5k
RXh0ZW5kc0JleW9uZFBhZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDgu
MCkpOwogCi0tIChfV0tBdHRhY2htZW50ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZW5hbWU6
KE5TU3RyaW5nICopZmlsZW5hbWUgY29udGVudFR5cGU6KE5TU3RyaW5nICopY29udGVudFR5cGUg
ZGF0YTooTlNEYXRhICopZGF0YSBvcHRpb25zOihfV0tBdHRhY2htZW50RGlzcGxheU9wdGlvbnMg
KilvcHRpb25zIGNvbXBsZXRpb246KHZvaWQoXikoQk9PTCBzdWNjZXNzKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCItX2luc2VydEF0dGFjaG1l
bnRXaXRoRmlsZVdyYXBwZXI6Y29udGVudFR5cGU6b3B0aW9uczpjb21wbGV0aW9uOiIsIG1hY29z
KDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywgV0tfSU9TX1RCQSkpOwotLSAoX1dLQXR0
YWNobWVudCAqKV9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOihOU0ZpbGVXcmFwcGVy
ICopZmlsZVdyYXBwZXIgY29udGVudFR5cGU6KE5TU3RyaW5nICopY29udGVudFR5cGUgb3B0aW9u
czooX1dLQXR0YWNobWVudERpc3BsYXlPcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uOih2b2lk
KF4pKEJPT0wgc3VjY2VzcykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgiLV9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOmNvbnRlbnRU
eXBlOmNvbXBsZXRpb246IiwgbWFjb3MoV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBLCBXS19JT1NfVEJBKSk7Ci0tIChfV0tBdHRhY2htZW50ICopX2luc2VydEF0dGFjaG1l
bnRXaXRoRmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIgKilmaWxlV3JhcHBlciBjb250ZW50VHlw
ZTooTlNTdHJpbmcgKiljb250ZW50VHlwZSBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3VjY2Vz
cykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKLS0gKF9XS0F0dGFjaG1lbnQgKilfYXR0YWNobWVudEZvcklkZW50
aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotCi0tICh2b2lkKV9zaW11bGF0ZURldmljZU9yaWVu
dGF0aW9uQ2hhbmdlV2l0aEFscGhhOihkb3VibGUpYWxwaGEgYmV0YTooZG91YmxlKWJldGEgZ2Ft
bWE6KGRvdWJsZSlnYW1tYSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotCi0rIChCT09MKV9oYW5kbGVzU2FmZUJyb3dzaW5nIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0rIChOU1VSTCAqKV9j
b25maXJtTWFsd2FyZVNlbnRpbmVsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7Ci0rIChOU1VSTCAqKV92aXNpdFVuc2FmZVdlYnNpdGVTZW50aW5l
bCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwot
LSAodm9pZClfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmdXaXRoVGl0bGU6KE5TU3RyaW5nICopdGl0
bGUgd2FybmluZzooTlNTdHJpbmcgKil3YXJuaW5nIGRldGFpbHM6KE5TQXR0cmlidXRlZFN0cmlu
ZyAqKWRldGFpbHMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKLS0gKHZvaWQpX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nV2l0aFVSTDooTlNVUkwgKil1cmwg
dGl0bGU6KE5TU3RyaW5nICopdGl0bGUgd2FybmluZzooTlNTdHJpbmcgKil3YXJuaW5nIGRldGFp
bHM6KE5TQXR0cmlidXRlZFN0cmluZyAqKWRldGFpbHMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQo
XikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLQotLSAodm9pZClfaXNKSVRFbmFibGVkOih2b2lkKF4p
KEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rczoo
ZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0KLS0gKElCQWN0aW9uKV9hbGlnbkNlbnRlcjooaWQp
c2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7Ci0tIChJQkFjdGlvbilfYWxpZ25KdXN0aWZpZWQ6KGlkKXNlbmRlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2Fs
aWduTGVmdDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfYWxpZ25SaWdodDooaWQpc2VuZGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFj
dGlvbilfaW5kZW50OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV9vdXRkZW50OihpZClzZW5kZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElC
QWN0aW9uKV90b2dnbGVTdHJpa2VUaHJvdWdoOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV9pbnNlcnRP
cmRlcmVkTGlzdDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfaW5zZXJ0VW5vcmRlcmVkTGlzdDooaWQp
c2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7Ci0tIChJQkFjdGlvbilfaW5zZXJ0TmVzdGVkT3JkZXJlZExpc3Q6KGlkKXNlbmRlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJB
Y3Rpb24pX2luc2VydE5lc3RlZFVub3JkZXJlZExpc3Q6KGlkKXNlbmRlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2lu
Y3JlYXNlTGlzdExldmVsOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV9kZWNyZWFzZUxpc3RMZXZlbDoo
aWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7Ci0tIChJQkFjdGlvbilfY2hhbmdlTGlzdFR5cGU6KGlkKXNlbmRlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24p
X3Bhc3RlQXNRdW90YXRpb246KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX3Bhc3RlQW5kTWF0Y2hTdHls
ZTooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfdGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uOihpZClz
ZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKLQotQHByb3BlcnR5IChjbGFzcywgbm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFN0cmlu
Z0ZvckZpbmQ6KSBOU1N0cmluZyAqX3N0cmluZ0ZvckZpbmQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKF9XS0F0dGFjaG1lbnQgKilfaW5z
ZXJ0QXR0YWNobWVudFdpdGhGaWxlbmFtZTooTlNTdHJpbmcgKilmaWxlbmFtZSBjb250ZW50VHlw
ZTooTlNTdHJpbmcgKiljb250ZW50VHlwZSBkYXRhOihOU0RhdGEgKilkYXRhIG9wdGlvbnM6KF9X
S0F0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyAqKW9wdGlvbnMgY29tcGxldGlvbjoodm9pZCheKShC
T09MIHN1Y2Nlc3MpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIi1faW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjpjb250ZW50VHlwZTpv
cHRpb25zOmNvbXBsZXRpb246IiwgbWFjb3MoMTAuMTMuNCwgMTAuMTQuNCksIGlvcygxMS4zLCAx
Mi4yKSk7CistIChfV0tBdHRhY2htZW50ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBw
ZXI6KE5TRmlsZVdyYXBwZXIgKilmaWxlV3JhcHBlciBjb250ZW50VHlwZTooTlNTdHJpbmcgKilj
b250ZW50VHlwZSBvcHRpb25zOihfV0tBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgKilvcHRpb25z
IGNvbXBsZXRpb246KHZvaWQoXikoQk9PTCBzdWNjZXNzKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCItX2luc2VydEF0dGFjaG1lbnRXaXRoRmls
ZVdyYXBwZXI6Y29udGVudFR5cGU6Y29tcGxldGlvbjoiLCBtYWNvcygxMC4xNC40LCAxMC4xNC40
KSwgaW9zKDEyLjIsIDEyLjIpKTsKKy0gKF9XS0F0dGFjaG1lbnQgKilfaW5zZXJ0QXR0YWNobWVu
dFdpdGhGaWxlV3JhcHBlcjooTlNGaWxlV3JhcHBlciAqKWZpbGVXcmFwcGVyIGNvbnRlbnRUeXBl
OihOU1N0cmluZyAqKWNvbnRlbnRUeXBlIGNvbXBsZXRpb246KHZvaWQoXikoQk9PTCBzdWNjZXNz
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3Mo
MTIuMikpOworLSAoX1dLQXR0YWNobWVudCAqKV9hdHRhY2htZW50Rm9ySWRlbnRpZmllcjooTlNT
dHJpbmcgKilpZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygx
Mi4yKSk7CisKKy0gKHZvaWQpX3NpbXVsYXRlRGV2aWNlT3JpZW50YXRpb25DaGFuZ2VXaXRoQWxw
aGE6KGRvdWJsZSlhbHBoYSBiZXRhOihkb3VibGUpYmV0YSBnYW1tYTooZG91YmxlKWdhbW1hIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CisKKysgKEJPT0wpX2hh
bmRsZXNTYWZlQnJvd3NpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKKysgKE5TVVJMICopX2NvbmZpcm1NYWx3YXJlU2VudGluZWwgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKysgKE5TVVJMICopX3Zpc2l0VW5zYWZlV2Vi
c2l0ZVNlbnRpbmVsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CistICh2b2lkKV9zaG93U2FmZUJyb3dzaW5nV2FybmluZ1dpdGhUaXRsZTooTlNTdHJpbmcgKil0
aXRsZSB3YXJuaW5nOihOU1N0cmluZyAqKXdhcm5pbmcgZGV0YWlsczooTlNBdHRyaWJ1dGVkU3Ry
aW5nICopZGV0YWlscyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShCT09MKSljb21wbGV0aW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAo
dm9pZClfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmdXaXRoVVJMOihOU1VSTCAqKXVybCB0aXRsZToo
TlNTdHJpbmcgKil0aXRsZSB3YXJuaW5nOihOU1N0cmluZyAqKXdhcm5pbmcgZGV0YWlsczooTlNB
dHRyaWJ1dGVkU3RyaW5nICopZGV0YWlscyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShCT09M
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3Mo
MTIuMikpOworCistICh2b2lkKV9pc0pJVEVuYWJsZWQ6KHZvaWQoXikoQk9PTCkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0g
KHZvaWQpX3JlbW92ZURhdGFEZXRlY3RlZExpbmtzOihkaXNwYXRjaF9ibG9ja190KWNvbXBsZXRp
b24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKworLSAoSUJB
Y3Rpb24pX2FsaWduQ2VudGVyOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NC40KSwgaW9zKDEyLjIpKTsKKy0gKElCQWN0aW9uKV9hbGlnbkp1c3RpZmllZDooaWQpc2VuZGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlv
bilfYWxpZ25MZWZ0OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKKy0gKElCQWN0aW9uKV9hbGlnblJpZ2h0OihpZClzZW5kZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKElCQWN0aW9uKV9pbmRlbnQ6
KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwor
LSAoSUJBY3Rpb24pX291dGRlbnQ6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE0LjQpLCBpb3MoMTIuMikpOworLSAoSUJBY3Rpb24pX3RvZ2dsZVN0cmlrZVRocm91Z2g6KGlk
KXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAo
SUJBY3Rpb24pX2luc2VydE9yZGVyZWRMaXN0OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKElCQWN0aW9uKV9pbnNlcnRVbm9yZGVyZWRM
aXN0OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIp
KTsKKy0gKElCQWN0aW9uKV9pbnNlcnROZXN0ZWRPcmRlcmVkTGlzdDooaWQpc2VuZGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfaW5z
ZXJ0TmVzdGVkVW5vcmRlcmVkTGlzdDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfaW5jcmVhc2VMaXN0TGV2ZWw6KGlk
KXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAo
SUJBY3Rpb24pX2RlY3JlYXNlTGlzdExldmVsOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKElCQWN0aW9uKV9jaGFuZ2VMaXN0VHlwZToo
aWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7Cist
IChJQkFjdGlvbilfcGFzdGVBc1F1b3RhdGlvbjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfcGFzdGVBbmRNYXRjaFN0
eWxlOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIp
KTsKKy0gKElCQWN0aW9uKV90YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb246KGlkKXNlbmRlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworCitAcHJvcGVydHkg
KGNsYXNzLCBub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U3RyaW5nRm9yRmluZDopIE5TU3Ry
aW5nICpfc3RyaW5nRm9yRmluZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3Mo
MTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tTZWxlY3Rpb25BdHRy
aWJ1dGVzIF9zZWxlY3Rpb25BdHRyaWJ1dGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAKLS0gKHZv
aWQpX3NldEZvbnQ6KFVJRm9udCAqKWZvbnQgc2VuZGVyOihpZClzZW5kZXIgV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfc2V0Rm9udFNpemU6KENHRmxvYXQpZm9u
dFNpemUgc2VuZGVyOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkp
OwotLSAodm9pZClfc2V0VGV4dENvbG9yOihVSUNvbG9yICopY29sb3Igc2VuZGVyOihpZClzZW5k
ZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0Rm9udDoo
VUlGb250ICopZm9udCBzZW5kZXI6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4y
KSk7CistICh2b2lkKV9zZXRGb250U2l6ZTooQ0dGbG9hdClmb250U2l6ZSBzZW5kZXI6KGlkKXNl
bmRlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4yKSk7CistICh2b2lkKV9zZXRUZXh0Q29sb3I6
KFVJQ29sb3IgKiljb2xvciBzZW5kZXI6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKGlvcygx
Mi4yKSk7CiAKLS0gKHZvaWQpX2RldGVjdERhdGFXaXRoVHlwZXM6KFdLRGF0YURldGVjdG9yVHlw
ZXMpdHlwZXMgY29tcGxldGlvbkhhbmRsZXI6KGRpc3BhdGNoX2Jsb2NrX3QpY29tcGxldGlvbiBX
S19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9kZXRlY3REYXRhV2l0
aFR5cGVzOihXS0RhdGFEZXRlY3RvclR5cGVzKXR5cGVzIGNvbXBsZXRpb25IYW5kbGVyOihkaXNw
YXRjaF9ibG9ja190KWNvbXBsZXRpb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMikpOwogCiAv
LyBERVJFQ0FURUQ6IFRoZSBzZXR0ZXJzIG9mIHRoZSB0aHJlZSBmb2xsb3dpbmcgZnVuY3Rpb24g
YXJlIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2Ugb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzLgogLy8g
RGVmaW5lIHRoZSBzbWFsbGVzdCBzaXplIGEgcGFnZSB0YWtlIHdpdGggYSByZWd1bGFyIHZpZXdw
b3J0LgpAQCAtMzAzLDkgKzMwMyw5IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBf
V0tSZWN0RWRnZSkgewogLSAodm9pZClfYWNjZXNzaWJpbGl0eVJldHJpZXZlU3BlYWtTZWxlY3Rp
b25Db250ZW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKIC0gKHZvaWQpX2FjY2Vzc2li
aWxpdHlEaWRHZXRTcGVha1NlbGVjdGlvbkNvbnRlbnQ6KE5TU3RyaW5nICopY29udGVudCBXS19B
UElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgVUlWaWV3ICpfc2FmZUJyb3dzaW5nV2FybmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBVSVZpZXcgKl9zYWZlQnJvd3NpbmdXYXJuaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQuNCksIGlvcygxMi4yKSk7CiAjZWxzZQotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBOU1ZpZXcgKl9zYWZlQnJvd3NpbmdXYXJuaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIE5TVmlldyAqX3NhZmVCcm93c2luZ1dhcm5pbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBfV0tSZWN0RWRnZSBfcGlubmVkU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSdWJiZXJCYW5kaW5nRW5hYmxl
ZDopIF9XS1JlY3RFZGdlIF9ydWJiZXJCYW5kaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpKTsKQEAgLTQ5NSw3ICs0OTUsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNV
SW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlDbGVhclNlbGVj
dGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4zKSk7CiAtIChVSVZpZXcgKilfZnVsbFNjcmVl
blBsYWNlaG9sZGVyVmlldyBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CiAKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfY29udGVudFZpZXdJc0ZpcnN0UmVzcG9uZGVy
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgQk9PTCBfY29udGVudFZpZXdJc0ZpcnN0UmVzcG9uZGVyIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKDEyLjIpKTsKICNlbHNlCiAtICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0aXZl
Q2hpbGRXaW5kb3dzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAodm9pZClf
c2V0RnJhbWU6KE5TUmVjdClyZWN0IGFuZFNjcm9sbEJ5OihOU1NpemUpb2Zmc2V0IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwpAQCAtNTMzLDcgKzUzMyw3IEBAIHR5cGVkZWYgTlNf
T1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogCiAtICh2b2lkKV9zZXRIZWFkZXJC
YW5uZXJIZWlnaHQ6KGludCloZWlnaHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSk7
CiAtICh2b2lkKV9zZXRGb290ZXJCYW5uZXJIZWlnaHQ6KGludCloZWlnaHQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMi4zKSk7Ci0tICh2b2lkKV9kb0FmdGVyUHJvY2Vzc2luZ0FsbFBlbmRp
bmdNb3VzZUV2ZW50czooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb24gV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSk7CistICh2b2lkKV9kb0FmdGVyUHJvY2Vzc2luZ0FsbFBlbmRpbmdN
b3VzZUV2ZW50czooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNC40KSk7CiAjZW5kaWYKIAogLSAodm9pZClfcmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdT
ZXNzaW9uSW5mbzoodm9pZCheKShCT09MLCBCT09MLCBOU1N0cmluZyosIGRvdWJsZSwgZG91Ymxl
LCBOU0ludGVnZXIpKWNhbGxiYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlv
cygxMS4zKSk7CkBAIC01NTUsMTEgKzU1NSwxMSBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50
ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIC0gKEJPT0wpX2NvbXBsZXRlQmFja1N3aXBlRm9yVGVzdGlu
ZzsKIC0gKHZvaWQpX3NldERlZmVyc0xvYWRpbmdGb3JUZXN0aW5nOihCT09MKWRlZmVyc0xvYWRp
bmc7CiAKLS0gKHZvaWQpX3NldFNoYXJlU2hlZXRDb21wbGV0ZXNJbW1lZGlhdGVseVdpdGhSZXNv
bHV0aW9uRm9yVGVzdGluZzooQk9PTClyZXNvbHZlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0U2hhcmVTaGVldENvbXBs
ZXRlc0ltbWVkaWF0ZWx5V2l0aFJlc29sdXRpb25Gb3JUZXN0aW5nOihCT09MKXJlc29sdmVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaGFzSW5zcGVjdG9yRnJvbnRlbmQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgX1dLSW5zcGVjdG9yICpfaW5zcGVjdG9yIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIF9XS0ZyYW1lSGFuZGxlICpfbWFpbkZyYW1lIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2hhc0luc3BlY3RvckZyb250ZW5kIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIF9XS0luc3BlY3RvciAqX2luc3BlY3RvciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBf
V0tGcmFtZUhhbmRsZSAqX21haW5GcmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQp
LCBpb3MoMTIuMikpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTY3JvbGxp
bmdVcGRhdGVzRGlzYWJsZWRGb3JUZXN0aW5nOikgQk9PTCBfc2Nyb2xsaW5nVXBkYXRlc0Rpc2Fi
bGVkRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCA2ZDBlN2Y4M2I0YzE0
ZTNmYTM0NDgzYWRjYjYyZDcwOTM2YjRkNjJhLi4yZjhmNDYyODA2OGM2N2JmNTYwMTcwYzVmODcz
ODA5MzQ3MzUyYzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTU1LDggKzU1LDgg
QEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRj
aE9wdGlvbnMpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEJvdW5kSW50ZXJm
YWNlSWRlbnRpZmllcjopIE5TU3RyaW5nICpfYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRBbGxvd3NDZWxsdWxhckFjY2VzczopIEJPT0wgX2FsbG93c0NlbGx1
bGFyQWNjZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQcm94eUNvbmZpZ3VyYXRpb246KSBOU0Rp
Y3Rpb25hcnkgKl9wcm94eUNvbmZpZ3VyYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NCksIGlvcygxMi4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRT
b3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI6KSBOU1N0cmluZyAqX3NvdXJjZUFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1f
c2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOikgTlNTdHJpbmcgKl9zb3Vy
Y2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
LCBzZXR0ZXI9X3NldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjopIE5TU3RyaW5n
ICpfc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0
dGVyPV9zZXRTb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI6KSBOU1N0cmluZyAq
X3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0QWxsb3dzVExTRmFsbGJhY2s6KSBCT09MIF9hbGxvd3NUTFNGYWxsYmFjayBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMICpfaW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNo
bWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQu
aAppbmRleCAzYzM1Nzg4NTRmOWJmYmQzNWYxNzI4NzhmMGM2ZWMwMmNmMGE5ZmIyLi4zN2U4MjM5
OWMxY2YwODIxZGM5ZmNkYzQ2ZDAwNjI5OGMxYTM5NzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50LmgKQEAgLTUyLDE1ICs1MiwxNSBA
QCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpCiBXS19DTEFTU19B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSkKIEBpbnRlcmZhY2UgX1dLQXR0YWNo
bWVudCA6IE5TT2JqZWN0CiAKLS0gKHZvaWQpc2V0RmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIg
KilmaWxlV3JhcHBlciBjb250ZW50VHlwZToobnVsbGFibGUgTlNTdHJpbmcgKiljb250ZW50VHlw
ZSBjb21wbGV0aW9uOih2b2lkKF4gX051bGxhYmxlKShOU0Vycm9yICogX051bGxhYmxlKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworLSAodm9pZClzZXRGaWxlV3JhcHBlcjooTlNGaWxlV3JhcHBlciAqKWZpbGVX
cmFwcGVyIGNvbnRlbnRUeXBlOihudWxsYWJsZSBOU1N0cmluZyAqKWNvbnRlbnRUeXBlIGNvbXBs
ZXRpb246KHZvaWQoXiBfTnVsbGFibGUpKE5TRXJyb3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUpIF9XS0F0dGFjaG1lbnRJbmZv
ICppbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIG51bGxhYmxlKSBfV0tBdHRhY2ht
ZW50SW5mbyAqaW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqdW5pcXVlSWRlbnRp
ZmllcjsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzQ29ubmVjdGVk
KSBCT09MIGNvbm5lY3RlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXND
b25uZWN0ZWQpIEJPT0wgY29ubmVjdGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7CiAKIC8vIERlcHJlY2F0ZWQgU1BJLgotLSAodm9pZClyZXF1ZXN0SW5mbzoo
dm9pZCheKShfV0tBdHRhY2htZW50SW5mbyAqIF9OdWxsYWJsZSwgTlNFcnJvciAqIF9OdWxsYWJs
ZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
LWluZm8iLCBtYWNvcygxMC4xNCwgV0tfTUFDX1RCQSksIGlvcygxMi4wLCBXS19JT1NfVEJBKSk7
Ci0tICh2b2lkKXNldERhdGE6KE5TRGF0YSAqKWRhdGEgbmV3Q29udGVudFR5cGU6KG51bGxhYmxl
IE5TU3RyaW5nICopbmV3Q29udGVudFR5cGUgbmV3RmlsZW5hbWU6KG51bGxhYmxlIE5TU3RyaW5n
ICopbmV3RmlsZW5hbWUgY29tcGxldGlvbjoodm9pZCheIF9OdWxsYWJsZSkoTlNFcnJvciAqIF9O
dWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgiUGxlYXNlIHVzZSAtc2V0RmlsZVdyYXBwZXI6Y29udGVudFR5cGU6Y29tcGxldGlvbjog
aW5zdGVhZC4iLCBtYWNvcygxMC4xMy40LCBXS19NQUNfVEJBKSwgaW9zKDExLjMsIFdLX0lPU19U
QkEpKTsKKy0gKHZvaWQpcmVxdWVzdEluZm86KHZvaWQoXikoX1dLQXR0YWNobWVudEluZm8gKiBf
TnVsbGFibGUsIE5TRXJyb3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIi1pbmZvIiwgbWFjb3MoMTAuMTQsIDEwLjE0LjQp
LCBpb3MoMTIuMCwgMTIuMikpOworLSAodm9pZClzZXREYXRhOihOU0RhdGEgKilkYXRhIG5ld0Nv
bnRlbnRUeXBlOihudWxsYWJsZSBOU1N0cmluZyAqKW5ld0NvbnRlbnRUeXBlIG5ld0ZpbGVuYW1l
OihudWxsYWJsZSBOU1N0cmluZyAqKW5ld0ZpbGVuYW1lIGNvbXBsZXRpb246KHZvaWQoXiBfTnVs
bGFibGUpKE5TRXJyb3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIlBsZWFzZSB1c2UgLXNldEZpbGVXcmFwcGVyOmNvbnRl
bnRUeXBlOmNvbXBsZXRpb246IGluc3RlYWQuIiwgbWFjb3MoMTAuMTMuNCwgMTAuMTQuNCksIGlv
cygxMS4zLCAxMi4yKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmln
dXJhdGlvbi5oCmluZGV4IDg2YWVjNDkyNWJjODY2Mjk5YzFjNDdkY2E1NzhmYzE0YjlkNmIxMDIu
LmEyZGY5NDhiNjI3NzlmMGRmMTQ4NjQwNjE3OTAwMTU2ODViOTFkYjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZp
Z3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogTlNfQVNT
VU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBp
b3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygx
Mi4yKSkKIEBpbnRlcmZhY2UgX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uIDogTlNP
YmplY3QgPE5TQ29weWluZz4KIAogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzSW5z
ZWN1cmVNZWRpYUNhcHR1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRG93bmxvYWQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tEb3dubG9hZC5oCmluZGV4IDZhNmY5YzVmYjljMTc4NzljOTk4NzFhMTQ4YjRmOWE3N2Yy
MDA0ZTAuLmVlYTk5YmJkZDQzYzlhY2I0YTliNDg3YzlkMDAzZjYxMWNkYWY5ODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCkBAIC0zNCwx
MiArMzQsMTIgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAK
IC0gKHZvaWQpY2FuY2VsOwogCi0tICh2b2lkKXB1Ymxpc2hQcm9ncmVzc0F0VVJMOihOU1VSTCAq
KVVSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworLSAodm9pZClwdWJsaXNoUHJvZ3Jlc3NBdFVSTDooTlNVUkwgKilVUkwgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBOU1VSTFJlcXVlc3QgKnJlcXVlc3Q7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHksIHdlYWspIFdLV2ViVmlldyAqb3JpZ2luYXRpbmdXZWJWaWV3OwogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PE5TVVJMICo+ICpyZWRpcmVjdENo
YWluIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgd2FzVXNlckluaXRpYXRlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwotQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBOU0RhdGEgKnJlc3VtZURhdGEgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgTlNEYXRhICpyZXN1bWVEYXRhIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlv
cygxMi4yKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tGb3JtSW5wdXRTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRm9ybUlucHV0U2Vzc2lvbi5oCmluZGV4IDVjNmJiYWViOWUzZmZkMjAzYTU3
M2MyYzBlMjliNGVlYzNiODBmMWYuLmY1OWQ3Y2IyZWIwM2ExY2U2ZmRlODZiOGQwMTVhNjM2ZWUw
MjI2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tG
b3JtSW5wdXRTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0Zvcm1JbnB1dFNlc3Npb24uaApAQCAtMzksNyArMzksNyBAQAogI2lmIFRBUkdFVF9PU19J
UEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqYWNjZXNzb3J5Vmll
d0N1c3RvbUJ1dHRvblRpdGxlOwogQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgVUlWaWV3
ICpjdXN0b21JbnB1dFZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwotQHByb3BlcnR5
IChub25hdG9taWMsIHN0cm9uZykgVUlWaWV3ICpjdXN0b21JbnB1dEFjY2Vzc29yeVZpZXcgV0tf
QVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHN0
cm9uZykgVUlWaWV3ICpjdXN0b21JbnB1dEFjY2Vzc29yeVZpZXcgV0tfQVBJX0FWQUlMQUJMRShp
b3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXk8VUlUZXh0U3Vn
Z2VzdGlvbiAqPiAqc3VnZ2VzdGlvbnMgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwogQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgYWNjZXNzb3J5Vmlld1Nob3VsZE5vdFNob3cgV0tfQVBJ
X0FWQUlMQUJMRShpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgZm9yY2VT
ZWN1cmVUZXh0RW50cnkgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5oCmluZGV4IGFjYThkZjQx
ZGJjYTk4Zjg1OTEzOTk3NzVkODlkZGZkNzc5YTllZTkuLjJlNGNhMDcxMDRhMzkwYTBkOTc5NzFh
YzAwYzNmZDljMGIwNWVlOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLSW5zcGVjdG9yLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogTlNfQVNTVU1FX05PTk5V
TExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSkK
IEBpbnRlcmZhY2UgX1dLSW5zcGVjdG9yIDogTlNPYmplY3QKIAogLSAoaW5zdGFuY2V0eXBlKWlu
aXQgTlNfVU5BVkFJTEFCTEU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnRlcm5hbERlYnVnRmVhdHVyZS5oCmluZGV4IDY1YzY2Yjk3N2Ex
M2MwNzMzNWU0ZWQ1YmRiN2FiNDRkZTE2ZDlmYjMuLjQ1Nzk1ZjJlNWViNmM3MTg5YzAwOTA1M2Y0
M2Q3OThlZDJkYjMyNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tJbnRlcm5hbERlYnVnRmVhdHVyZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnRlcm5hbERlYnVnRmVhdHVyZS5oCkBAIC0yNyw3ICsyNyw3IEBA
CiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1XS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKQogQGludGVyZmFjZSBfV0tJbnRlcm5hbERlYnVn
RmVhdHVyZSA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29w
eSkgTlNTdHJpbmcgKmtleTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCAwZjNh
NTQxY2RmOGVhNTQ5YWM0MmRjMjYyMTkxYWE5ODBlZWQ0OTMwLi5mZGQ0MTFmMzk4OTI2YzZlMjY2
MDcxZDY5MGFhMWE0ZjQxYTMwMjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBA
IC0zNCwxMCArMzQsMTAgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDgu
MCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNVUkwgKmluamVjdGVkQnVuZGxlVVJM
OwogQHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIgbWF4aW11bVByb2Nlc3NDb3VudCBX
S19BUElfREVQUkVDQVRFRCgiSXQgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIHRvIGxpbWl0IHRoZSBu
dW1iZXIgb2YgcHJvY2Vzc2VzIiwgbWFjb3MoV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBLCBXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB1c2Vz
U2luZ2xlV2ViUHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0
cmluZyAqY3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21XZWJDb250ZW50U2Vydmlj
ZUJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgaWdub3JlU3luY2hyb25vdXNNZXNz
YWdpbmdUaW1lb3V0c0ZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlv
cygxMC4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhdHRyU3R5bGVFbmFibGVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBhdHRyU3R5bGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
KSBOU0FycmF5PE5TVVJMICo+ICphZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRVUkxzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCkBAIC00OCwxMiArNDgsMTIg
QEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAvLyBOZXR3b3Jr
IFByb2Nlc3MgcHJvcGVydGllcwogLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSBiZSBwZXItc2Vz
c2lvbi9kYXRhIHN0b3JlIHdoZW4gd2Ugc3VwcG9ydCBtdWx0aXBsZSBub24tcGVyc2lzdGVudCBz
ZXNzaW9ucy9kYXRhIHN0b3Jlcy4KIAotQHByb3BlcnR5IChub25hdG9taWMpIE5TSW50ZWdlciBk
aXNrQ2FjaGVTaXplT3ZlcnJpZGUgV0tfQVBJX0RFUFJFQ0FURUQoIlVzZSBbV0tXZWJzaXRlRGF0
YVN0b3JlIG5vblBlcnNpc3RlbnREYXRhU3RvcmVdIHRvIGxpbWl0IGRpc2sgY2FjaGUgc2l6ZSB0
byAwIiwgbWFjb3MoMTAuMTEsIFdLX01BQ19UQkEpLCBpb3MoOS4wLCBXS19JT1NfVEJBKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgTlNJbnRlZ2VyIGRpc2tDYWNoZVNpemVPdmVycmlkZSBXS19B
UElfREVQUkVDQVRFRCgiVXNlIFtXS1dlYnNpdGVEYXRhU3RvcmUgbm9uUGVyc2lzdGVudERhdGFT
dG9yZV0gdG8gbGltaXQgZGlzayBjYWNoZSBzaXplIHRvIDAiLCBtYWNvcygxMC4xMSwgMTAuMTQu
NCksIGlvcyg5LjAsIDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0FycmF5
ICpjYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lczsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
KSBOU0FycmF5PE5TU3RyaW5nICo+ICphbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXMgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBkaXNrQ2FjaGVTcGVjdWxhdGl2ZVZhbGlkYXRpb25FbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIG51
bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciIsIG1hY29zKDEw
LjEyLjMsIFdLX01BQ19UQkEpLCBpb3MoMTAuMywgV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRpb25TZWNv
bmRhcnlJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRl
bnRpZmllciIsIG1hY29zKDEwLjEyLjMsIFdLX01BQ19UQkEpLCBpb3MoMTAuMywgV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291
cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciIsIG1hY29zKDEwLjEyLjMsIDEwLjE0LjQpLCBpb3MoMTAuMywg
MTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAq
c291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLnNvdXJjZUFw
cGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciIsIG1hY29zKDEwLjEyLjMsIDEwLjE0LjQpLCBp
b3MoMTAuMywgMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgc2hvdWxkQ2FwdHVy
ZUF1ZGlvSW5VSVByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4w
KSk7CiAjaWYgVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxl
LCBjb3B5KSBOU1N0cmluZyAqQ1REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKDEwLjMpKTsKQEAgLTY0LDExICs2NCwxMSBAQCBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHByb2Nl
c3NTd2Fwc09uTmF2aWdhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEy
LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsd2F5c0tlZXBBbmRSZXVzZVN3YXBw
ZWRQcm9jZXNzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3Bl
bmVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwotQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgcHJld2FybXNQcm9jZXNzZXNBdXRvbWF0aWNhbGx5IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYykgQk9PTCB1c2VzV2ViUHJvY2Vzc0NhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBwcmV3YXJtc1Byb2Nlc3Nlc0F1dG9tYXRpY2FsbHkgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHVzZXNX
ZWJQcm9jZXNzQ2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIp
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHBhZ2VDYWNoZUVuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBzdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
YywgZ2V0dGVyPWlzSklURW5hYmxlZCkgQk9PTCBKSVRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgZ2V0dGVyPWlzSklURW5hYmxlZCkgQk9PTCBKSVRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50
ZWdlciBkb3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXJGb3JUZXN0aW5nIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIU1RTU3RvcmFnZURpcmVjdG9yeTop
IE5TVVJMICpoc3RzU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oCmluZGV4IDA5ZTI1MWU3N2MwNzY5MjViOTM0ZWNjM2Y2YTlkMGZkMDg0OWIzNTEu
LjU5Zjk4NGU0ODdhZGYzZjA0MmQ5NjczN2E5YjQ3ZGE3OWUyMmQzYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCkBAIC0zOSwxMCArMzksMTAgQEAgV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHksIHNldHRlcj1fc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTopIE5TVVJM
ICpfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpLCBpb3MoMTEuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRl
cj1fc2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl9jYWNoZVN0b3JhZ2VEaXJlY3Rv
cnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
aXJlY3Rvcnk6KSBOU1VSTCAqX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAq
c291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
bnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIVFRQUHJveHk6KSBOU1VSTCAqaHR0cFByb3h5IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIVFRQU1Byb3h5Oikg
TlNVUkwgKmh0dHBzUHJveHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNT
dHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxh
YmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIVFRQUHJveHk6KSBOU1VSTCAq
aHR0cFByb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIVFRQU1Byb3h5
OikgTlNVUkwgKmh0dHBzUHJveHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9z
KDEyLjIpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLmgKaW5kZXggZjhjYTkwOGNjZWM1ZmY4Y2E0MWJj
OTE3YmZkODlmNjBlMDhlMWNiMS4uNDkwYmNiNmNlZjkyNjQ5YjBmMGI4NDAzMjVlZWVjMTIxZGYy
NmM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YnNpdGVQb2xpY2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlUG9saWNpZXMuaApAQCAtMzcsOSArMzcsOSBAQCBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTAuMTIuMyksIGlvcygxMC4zKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBO
U0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKmN1c3RvbUhlYWRlckZpZWxkcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogQHByb3BlcnR5IChu
b25hdG9taWMpIF9XS1dlYnNpdGVQb3BVcFBvbGljeSBwb3BVcFBvbGljeSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJv
bmcpIFdLV2Vic2l0ZURhdGFTdG9yZSAqd2Vic2l0ZURhdGFTdG9yZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkp
IE5TU3RyaW5nICpjdXN0b21Vc2VyQWdlbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0
cmluZyAqY3VzdG9tVXNlckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlv
cygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmN1c3RvbUph
dmFTY3JpcHRVc2VyQWdlbnRBc1NpdGVTcGVjaWZpY1F1aXJrcyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHkpIE5TU3RyaW5nICpjdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMpIF9X
S1dlYnNpdGVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeSBkZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuaAppbmRleCA3MmNhMDMzY2Y3OWJhZTFi
ZDZmNzQwODA0Zjg5ZTg0MGVmM2Q4NzExLi44OTY4ZjM4ZDE0N2RjOTE5ZGU4YTM4ZjE4MjVlMzQx
M2M2Njg3NjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzLmgKQEAgLTMyLDcgKzMyLDcgQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAK
LVdLX0VYUE9SVCBpbnQgV0tXZWJQcm9jZXNzTWFpbihpbnQgYXJnYywgY29uc3QgY2hhcioqIGFy
Z3YpIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitXS19FWFBPUlQgaW50IFdLV2ViUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBh
cmd2KSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiAjaWZk
ZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlBy
b2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLmgKaW5kZXggYjczM2U5ZTgzYzYxMTdjYjE5ZjJhZDIwY2Uy
ZmVjNGQ4ZTc3Y2NjYi4uOWViYTI4M2RmZWEwY2Y2OGM2YTlkZmZmOTljMWE5YzBmZDJlODdhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2Rl
SGFuZGxlLmgKQEAgLTU1LDcgKzU1LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEw
KSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgSFRNTFRl
eHRBcmVhRWxlbWVudElzVXNlckVkaXRlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAqSFRNTFRhYmxlQ2VsbEVsZW1lbnRDZWxs
QWJvdmU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLV2ViUHJvY2Vzc1BsdWdJ
bkZyYW1lICpmcmFtZTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBpc1Nl
bGVjdEVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBpc1NlbGVjdEVs
ZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogLSAo
Qk9PTClpc1RleHRGaWVsZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlUHJpdmF0ZS5oCmluZGV4IDE1NGM0ZGJhYmFm
NTRhNWRmYTk4NTM3YjU2MjgzNGFmYjA2OTlkMDMuLjY4MTEzMzNmNTlkN2YzYTcyYTFhOTNiNWM3
NWIxNTZlZTEwNTIzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZVByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29h
L1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVQcml2YXRlLmgKQEAgLTMwLDcgKzMwLDcgQEAg
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLQXV0b0ZpbGxCdXR0b25UeXBlKSB7CiAgICAg
X1dLQXV0b0ZpbGxCdXR0b25UeXBlQ3JlZGVudGlhbHMsCiAgICAgX1dLQXV0b0ZpbGxCdXR0b25U
eXBlQ29udGFjdHMsCiAgICAgX1dLQXV0b0ZpbGxCdXR0b25UeXBlU3Ryb25nUGFzc3dvcmQsCi0g
ICAgX1dLQXV0b0ZpbGxCdXR0b25UeXBlQ3JlZGl0Q2FyZCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpLAorICAgIF9XS0F1dG9GaWxsQnV0dG9uVHlw
ZUNyZWRpdENhcmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKSwK
IH0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIAogQGludGVy
ZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlIChXS1ByaXZhdGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369800</attachid>
            <date>2019-05-13 16:20:06 -0700</date>
            <delta_ts>2019-05-14 08:58:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197841-20190513162005.patch</filename>
            <type>text/plain</type>
            <size>75006</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1MjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFlMTIzNzlkYzExOTQ2NjAy
ODczY2NmOWE2Nzc0MmQ1NTYxZmNjZDkuLjI0MDVkYTc2NWY2OTlhZTU0ODExY2Y5ZGQ3ZTJkMzll
OGYxMjMxYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTktMDUtMTMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgVEJBIG1hY3JvcyBmb3Ig
QVBJIC8gU1BJIHRoYXQgaGFzIGFscmVhZHkgc2hpcHBlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODQxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81MDY5ODQ5OT4KKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAgICAgRGlzYWJsZSBo
ZWFkZXIgcG9zdHByb2Nlc3Npbmcgd2hlbiBidWlsZGluZyBmb3IgbWFjT1MgTW9qYXZlCisKKyAg
ICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhpc3RvcnlEZWxlZ2F0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0UG9s
aWN5RGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdh
dGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1R5cGVSZWZXcmFwcGVyLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXcuaDoKKyAgICAgICAgKFdLX0NMQVNTX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLQXR0YWNobWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tEb3dubG9hZC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9y
bUlucHV0U2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVj
dG9yLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnRlcm5hbERlYnVnRmVh
dHVyZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2Vic2l0ZVBvbGljaWVzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVQcml2YXRl
Lmg6CisKIDIwMTktMDUtMTMgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbV2ViQXV0aE5dIEludmFsaWRTdGF0ZUVycm9yIHNob3VsZCBiZSByZXBvcnRlZCB0
byBzaXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQu
eGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpp
bmRleCBhZDRlMjA0MDUyZmM1OGMzMWY2ZDk4OTIzYThiZDE0MTMwYTRkODRlLi5mZWUxNDc5MWE4
MWYyZjM2YTI1ZDNhYjZiN2ZhNTk3MzAyZTcyYjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtMTU3LDEwICsxNTcsMTAgQEAgRVhDTFVERURf
U09VUkNFX0ZJTEVfTkFNRVNbc2RrPWlwaG9uZSpdID0gUGx1Z2luUHJvY2Vzc1NoaW0uZHlsaWIg
U2VjSXRlbVNoaW0uZHkKIElOU1RBTExIRFJTX1NDUklQVF9QSEFTRSA9IFlFUzsKIEFQUExZX1JV
TEVTX0lOX0NPUFlfSEVBREVSUyA9ICQoVVNFX05FV19CVUlMRF9TWVNURU0pOwogCi1XS19GUkFN
RVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEW3Nkaz1tYWNvc3gqXSA9ICQoV0tf
RlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRCQoV0tfTUFDT1NfMTAxNCkp
OwotV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRF9NQUNPU19CRUZP
UkVfMTAxNCA9IFlFUzsKK1dLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJM
RURbc2RrPW1hY29zeCpdID0gJChXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJ
U0FCTEVEJChXS19NQUNPU18xMDE1KSk7CitXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNT
SU5HX0RJU0FCTEVEX01BQ09TX0JFRk9SRV8xMDE1ID0gWUVTOwogV0tfRlJBTUVXT1JLX0hFQURF
Ul9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRFtzZGs9aXBob25lKjExLipdID0gWUVTOwotV0tfRlJB
TUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRFtzZGs9aXBob25lKjEyLjAqXSA9
IFlFUzsKK1dLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURbc2RrPWlw
aG9uZSoxMi4qXSA9IFlFUzsKIAogV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLX0xERkxBR1MgPSAk
KFdLX1JFTE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdTXyQoV0tfUkVMT0NBVEFCTEVfRlJBTUVX
T1JLUykpOwogV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLX0xERkxBR1NfWUVTID0gLVdsLC1ub3Rf
Zm9yX2R5bGRfc2hhcmVkX2NhY2hlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQ29jb2EvX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaAppbmRleCA4MWE0NjNk
YzYwOThjODljNWNhMGFhNmZmMzhjMjNmMzI1OWNiZWUzLi41Y2U1ODI4YWUwNDQyZjc2YmNjNjY2
MjkwYzBkMTdiNWU4NWE0ZTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Q29jb2EvX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQ29jb2EvX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaApAQCAtMzQsNSArMzQs
NSBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NF
dmVudHMpIHsKICAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RQYWludEFmdGVyU3Vw
cHJlc3NlZEluY3JlbWVudGFsUmVuZGVyaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEp
LCBpb3MoOS4wKSkgPSAxIDw8IDUsCiAgICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0
UGFpbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKSA9IDEgPDwgNiwK
ICAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50RGlkUmVuZGVyU2lnbmlmaWNhbnRBbW91bnRP
ZlRleHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSkgPSAxIDw8IDcs
Ci0gICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0TWVhbmluZ2Z1bFBhaW50IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkgPSAxIDw8IDgs
CisgICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0TWVhbmluZ2Z1bFBhaW50IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSkgPSAxIDw8IDgsCiB9IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5oCmluZGV4IDZjZGFhNzJkZGRmOThjMDVkNDBhYTk0OWJkMjZlOGZiMTFj
YjM5OTUuLmY1NjdkNDY4MzczNjAzOTlhOWQwYzU0YzNhMDRhNTQwZDA2ZjA1OWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC0yMjUsOCArMjI1LDggQEAgV0tfRVhQ
T1JUIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1Bh
Z2VVSUNsaWVudEJhc2UqIGMKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VJbmplY3RlZEJ1
bmRsZUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlSW5qZWN0ZWRCdW5kbGVDbGll
bnRCYXNlKiBjbGllbnQpOwogCiAvLyBBIGNsaWVudCBjYW4gaW1wbGVtZW50IGVpdGhlciBhIG5h
dmlnYXRpb24gY2xpZW50IG9yIGxvYWRlciBhbmQgcG9saWN5IGNsaWVudHMsIGJ1dCBuZXZlciBi
b3RoLgotV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChXS1BhZ2VSZWYg
cGFnZSwgY29uc3QgV0tQYWdlTG9hZGVyQ2xpZW50QmFzZSogY2xpZW50KSBXS19DX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQsIG1h
Y29zKFdLX01BQ19UQkEpKTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VQb2xpY3lDbGll
bnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFnZVBvbGljeUNsaWVudEJhc2UqIGNsaWVudCkg
V0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLUGFnZVNldFBhZ2VOYXZpZ2F0
aW9uQ2xpZW50LCBtYWNvcyhXS19NQUNfVEJBKSk7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQ
YWdlTG9hZGVyQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VMb2FkZXJDbGllbnRC
YXNlKiBjbGllbnQpIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1BhZ2VT
ZXRQYWdlTmF2aWdhdGlvbkNsaWVudCwgbWFjb3MoMTAuMTQuNCkpOworV0tfRVhQT1JUIHZvaWQg
V0tQYWdlU2V0UGFnZVBvbGljeUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlUG9s
aWN5Q2xpZW50QmFzZSogY2xpZW50KSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1F
TlQoV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQsIG1hY29zKDEwLjE0LjQpKTsKIFdLX0VY
UE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBj
b25zdCBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50QmFzZSogY2xpZW50KTsKIAogdHlwZWRlZiB2b2lk
ICgqV0tQYWdlUnVuSmF2YVNjcmlwdEZ1bmN0aW9uKShXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVJl
ZiwgV0tFcnJvclJlZiwgdm9pZCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1Qcml2YXRlLmgKaW5k
ZXggNWIwZDI4ZGI2YTQ2YTIwNGQ4ODA0YTNhZWNlNTYxOTQzZDQwYTVkOC4uNmIzNDY0OTc1OGRj
Yzc1NzVmYmNiNjVlZGM4ZmNkOTVkNjIwZjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJp
dmF0ZS5oCkBAIC0zMCw2ICszMCw2IEBACiAvLyBGb3IgdGVzdGluZyBvbmx5LgogLSAoQ0dJbWFn
ZVJlZilfY29weVNuYXBzaG90Rm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEy
LjMpLCBpb3MoMTAuMykpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYykgQ0dQb2ludCBfc2Nyb2xs
UG9zaXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDR1BvaW50IF9zY3JvbGxQb3NpdGlvbiBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiBAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVyLmgKaW5kZXggNTliZWYzNDliYjgxY2Q3OTk5MDk4NzM3ZmQyNDJl
NDQyYWZhM2UyZC4uZDk1YjQ4M2NjNzI4MzIzNDk0NTMyZDg3MjBmMGQzMDhkMDQ3ZDRlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIuaApAQCAtMzQsNyArMzQsNyBAQAogQHByb3RvY29s
IFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlOwogQHByb3RvY29sIFdLQnJvd3NpbmdDb250
ZXh0UG9saWN5RGVsZWdhdGU7CiAKLVdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgiV0tXZWJWaWV3IiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1Nf
VEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3Iiwg
bWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBpb3MoOC4wLCAxMi4yKSkKIEBpbnRlcmZhY2UgV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyIDogTlNPYmplY3QKIAogI3ByYWdtYSBtYXJrIERlbGVnYXRl
cwpAQCAtNDUsOCArNDUsOCBAQCBXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
IldLV2ViVmlldyIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKAogCiAjcHJhZ21hIG1h
cmsgTG9hZGluZwogCi0rICh2b2lkKXJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJvdG9jb2w6KE5T
U3RyaW5nICopc2NoZW1lIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLVVJM
U2NoZW1lSGFuZGxlciIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9T
X1RCQSkpOwotKyAodm9pZCl1bnJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJvdG9jb2w6KE5TU3Ry
aW5nICopc2NoZW1lIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLVVJMU2No
ZW1lSGFuZGxlciIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RC
QSkpOworKyAodm9pZClyZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sOihOU1N0cmluZyAq
KXNjaGVtZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1VSTFNjaGVtZUhh
bmRsZXIiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAsIDEyLjIpKTsKKysgKHZvaWQp
dW5yZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sOihOU1N0cmluZyAqKXNjaGVtZSBXS19B
UElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1VSTFNjaGVtZUhhbmRsZXIiLCBtYWNv
cygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAsIDEyLjIpKTsKIAogLyogTG9hZCBhIHJlcXVlc3Qu
IFRoaXMgaXMgb25seSB2YWxpZCBmb3IgcmVxdWVzdHMgb2Ygbm9uLWZpbGU6IFVSTHMuIFBhc3Np
bmcgYQogICAgZmlsZTogVVJMIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uLiAqLwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3Jv
dXAuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4
dEdyb3VwLmgKaW5kZXggODExMzBmMzY3YTYzZjViNTgxZDg0NDA3NTlmNDkwN2FiZGNkNzE5ZC4u
MWY4MmNjNGVjNDNjMjU5NjM1YThhMGZhZTQwMTI0MTFjMzEwZDU4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRH
cm91cC5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24u
aD4KICNpbXBvcnQgPFdlYktpdC9XS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmg+CiAKLVdLX0NM
QVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tVc2VyQ29udGVudENvbnRyb2xsZXIg
YW5kIFdLUHJlZmVyZW5jZXMiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdL
X0lPU19UQkEpKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1VzZXJD
b250ZW50Q29udHJvbGxlciBhbmQgV0tQcmVmZXJlbmNlcyIsIG1hY29zKDEwLjEwLCAxMC4xNC40
KSwgaW9zKDguMCwgMTIuMikpCiBAaW50ZXJmYWNlIFdLQnJvd3NpbmdDb250ZXh0R3JvdXAgOiBO
U09iamVjdAogCiAtIChpZClpbml0V2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmll
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dz
aW5nQ29udGV4dEhpc3RvcnlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGlzdG9yeURlbGVnYXRlLmgKaW5kZXggNWY1NmEyMjI1
NjAyZjU5M2QzODhhNWRhMzM0NWU2NDAwNjNjODM4Ni4uZmZhZWNiNzRmYTliNjlhMWVmOTgyMWRl
ODAzYzk3YTZmYTkzMzJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGlzdG9yeURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGlzdG9yeURlbGVnYXRl
LmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25EYXRhLmg+CiAKLVdLX0NM
QVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tCYWNrRm9yd2FyZExpc3QiLCBtYWNv
cygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS0JhY2tGb3J3YXJkTGlzdCIsIG1hY29zKDEwLjEw
LCAxMC4xNC40KSwgaW9zKDguMCwgMTIuMikpCiBAcHJvdG9jb2wgV0tCcm93c2luZ0NvbnRleHRI
aXN0b3J5RGVsZWdhdGUgPE5TT2JqZWN0PgogQG9wdGlvbmFsCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
TG9hZERlbGVnYXRlLmgKaW5kZXggMTgzNGNiZThkMjMzYjcwZThkMmMxMTQzZjBmZDA3OTE1NTg5
ZWVmNC4uZjU0YWRjMjUyMDE2MGRlOGYxMmUyMjgwOTI3OWU5ZjQ0ODQ3NjM3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0TG9h
ZERlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJv
d3NpbmdDb250ZXh0TG9hZERlbGVnYXRlLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogQGNsYXNzIFdL
QmFja0ZvcndhcmRMaXN0SXRlbTsKIAotV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJXS05hdmlnYXRpb25EZWxlZ2F0ZSIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9z
KDguMCwgV0tfSU9TX1RCQSkpCitXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
IldLTmF2aWdhdGlvbkRlbGVnYXRlIiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBpb3MoOC4wLCAx
Mi4yKSkKIEBwcm90b2NvbCBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZSA8TlNPYmplY3Q+
CiBAb3B0aW9uYWwKIApAQCAtNTIsMTAgKzUyLDEwIEBAIFdLX0NMQVNTX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgiV0tOYXZpZ2F0aW9uRGVsZWdhdGUiLCBtYWNvcygxMC4xMCwgV0tfTUFD
CiAvKiBTZW50IGlmIHRoZSBjb21taXRlZCBsb2FkIGZhaWxzLiAqLwogLSAodm9pZClicm93c2lu
Z0NvbnRleHRDb250cm9sbGVyOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXIg
ZGlkRmFpbExvYWRXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcjsKIAotLSAodm9pZClicm93c2lu
Z0NvbnRleHRDb250cm9sbGVyRGlkU3RhcnRQcm9ncmVzczooV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyICopc2VuZGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2Vi
Vmlldy5lc3RpbWF0ZWRQcm9ncmVzcyIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDgu
MCwgV0tfSU9TX1RCQSkpOwotLSAodm9pZClicm93c2luZ0NvbnRleHRDb250cm9sbGVyOihXS0Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXIgZXN0aW1hdGVkUHJvZ3Jlc3NDaGFuZ2Vk
VG86KGRvdWJsZSllc3RpbWF0ZWRQcm9ncmVzcyBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExB
Q0VNRU5UKCJXS1dlYlZpZXcuZXN0aW1hdGVkUHJvZ3Jlc3MiLCBtYWNvcygxMC4xMCwgV0tfTUFD
X1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpYnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlckRpZEZpbmlzaFByb2dyZXNzOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilz
ZW5kZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3LmVzdGlt
YXRlZFByb2dyZXNzIiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1Nf
VEJBKSk7CistICh2b2lkKWJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRTdGFydFByb2dyZXNz
OihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXIgV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3LmVzdGltYXRlZFByb2dyZXNzIiwgbWFjb3MoMTAu
MTAsIDEwLjE0LjQpLCBpb3MoOC4wLCAxMi4yKSk7CistICh2b2lkKWJyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXI6KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKXNlbmRlciBlc3RpbWF0ZWRQ
cm9ncmVzc0NoYW5nZWRUbzooZG91YmxlKWVzdGltYXRlZFByb2dyZXNzIFdLX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViVmlldy5lc3RpbWF0ZWRQcm9ncmVzcyIsIG1hY29z
KDEwLjEwLCAxMC4xNC40KSwgaW9zKDguMCwgMTIuMikpOworLSAodm9pZClicm93c2luZ0NvbnRl
eHRDb250cm9sbGVyRGlkRmluaXNoUHJvZ3Jlc3M6KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ciAqKXNlbmRlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXcu
ZXN0aW1hdGVkUHJvZ3Jlc3MiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAsIDEyLjIp
KTsKIAotLSAodm9pZClicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkQ2hhbmdlQmFja0Zvcndh
cmRMaXN0OihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXIgYWRkZWRJdGVtOihX
S0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilhZGRlZEl0ZW0gcmVtb3ZlZEl0ZW1zOihOU0FycmF5ICop
cmVtb3ZlZEl0ZW1zIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViVmll
dy5iYWNrRm9yd2FyZExpc3QiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdL
X0lPU19UQkEpKTsKKy0gKHZvaWQpYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZENoYW5nZUJh
Y2tGb3J3YXJkTGlzdDooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVyIGFkZGVk
SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopYWRkZWRJdGVtIHJlbW92ZWRJdGVtczooTlNB
cnJheSAqKXJlbW92ZWRJdGVtcyBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJX
S1dlYlZpZXcuYmFja0ZvcndhcmRMaXN0IiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBpb3MoOC4w
LCAxMi4yKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dFBvbGljeURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRQb2xpY3lEZWxlZ2F0ZS5oCmlu
ZGV4IGVjNDk1ODQ3Mzg0NmY0MWVmZDAzZTEwOGEzZGIzNzY2OTE4NDA1MjkuLmYzNTliNTk5NDRk
YjM1YTFmMTM3MWQ5OTM4MzM0ZTA4ZTZhYzg0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dFBvbGljeURlbGVnYXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0UG9s
aWN5RGVsZWdhdGUuaApAQCAtNDcsNyArNDcsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdl
ciwgV0tQb2xpY3lEZWNpc2lvbikgewogCiB0eXBlZGVmIHZvaWQgKF5XS1BvbGljeURlY2lzaW9u
SGFuZGxlcikoV0tQb2xpY3lEZWNpc2lvbik7CiAKLVdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9S
RVBMQUNFTUVOVCgiV0tOYXZpZ2F0aW9uRGVsZWdhdGUiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RC
QSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExB
Q0VNRU5UKCJXS05hdmlnYXRpb25EZWxlZ2F0ZSIsIG1hY29zKDEwLjEwLCAxMC4xNC40KSwgaW9z
KDguMCwgMTIuMikpCiBAcHJvdG9jb2wgV0tCcm93c2luZ0NvbnRleHRQb2xpY3lEZWxlZ2F0ZSA8
TlNPYmplY3Q+CiBAb3B0aW9uYWwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQ29ubmVjdGlvbi5oCmluZGV4IGUyMWQ5ODE5ODM4NTFlNzFkOTEwMTVlMzQ2YmZk
MTdjMTc5ZTg4ZWIuLjZkNmJlZDZhZDZhNWRhMzYzNDViNWY2MGY0MGM3NmMzYTkxYWRkZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Nvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb25uZWN0aW9uLmgK
QEAgLTM2LDcgKzM2LDcgQEAKIAogQGVuZAogCi1XS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIl9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IiwgbWFjb3MoMTAuMTAsIFdLX01BQ19U
QkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVCgiX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCks
IGlvcyg4LjAsIDEyLjIpKQogQGludGVyZmFjZSBXS0Nvbm5lY3Rpb24gOiBOU09iamVjdAogCiAt
ICh2b2lkKXNlbmRNZXNzYWdlV2l0aE5hbWU6KE5TU3RyaW5nICopbWVzc2FnZU5hbWUgYm9keToo
aWQpbWVzc2FnZUJvZHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaAppbmRleCAwOGNiZjUwMGE2
N2VjZDFmODJhNjAwYzYyNzdjOTJhOTkwNTk0YzJiLi44M2I0ZTAyZTMxZDJiYWQ1MTFhOWFhOGNk
MGMzNWE4M2FhMjg0YzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgKQEAgLTU5LDYgKzU5
LDYgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tTeW50aGV0aWNDbGlja1R5cGUpIHsK
ICNlbmRpZgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2lzUmVkaXJl
Y3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIFdLTmF2aWdhdGlvbiAqX21haW5GcmFtZU5hdmlnYXRpb24g
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tOYXZpZ2F0aW9uICpfbWFpbkZyYW1lTmF2
aWdhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiBA
ZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZp
Z2F0aW9uRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggYzMwMmYxNGFkZjU5MGY1MTJm
Y2M3M2U1MzczZDUzMDI3NzY2ZWEzZS4uZTliZTA0ZDVjMzU5YTUzZWI4YzQ3NDM2NWRiOTZkMWE1
ZGUxY2E0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
TmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaApAQCAtNTYsNyArNTYsNyBA
QCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24p
IHsKIAogc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBfV0tOYXZpZ2F0aW9u
QWN0aW9uUG9saWN5RG93bmxvYWQgPSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KShXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3lBbGxvdyArIDEpOwogc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpIF9XS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvd1dpdGhvdXRUcnlpbmdBcHBMaW5rID0gKFdLTmF2aWdh
dGlvbkFjdGlvblBvbGljeSkoX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeURvd25sb2FkICsgMSk7
Ci1zdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkgX1dLTmF2aWdhdGlvbkFjdGlvblBv
bGljeUFsbG93SW5OZXdQcm9jZXNzID0gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkoX1dLTmF2
aWdhdGlvbkFjdGlvblBvbGljeUFsbG93V2l0aG91dFRyeWluZ0FwcExpbmsgKyAxKTsKK3N0YXRp
YyBjb25zdCBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNC40KSwgaW9zKDEyLjIpKSBfV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3dJbk5ld1By
b2Nlc3MgPSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KShfV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5QWxsb3dXaXRob3V0VHJ5aW5nQXBwTGluayArIDEpOwogCiBzdGF0aWMgY29uc3QgV0tOYXZp
Z2F0aW9uUmVzcG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93
bmxvYWQgPSAoV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kpKFdLTmF2aWdhdGlvblJlc3BvbnNl
UG9saWN5QWxsb3cgKyAxKTsKIApAQCAtODgsNyArODgsNyBAQCBzdGF0aWMgY29uc3QgV0tOYXZp
Z2F0aW9uUmVzcG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93
bmxvYQogLSAodm9pZClfd2ViVmlld1dpbGxFbmROYXZpZ2F0aW9uR2VzdHVyZTooV0tXZWJWaWV3
ICopd2ViVmlldyB3aXRoTmF2aWdhdGlvblRvQmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9y
d2FyZExpc3RJdGVtICopaXRlbTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgd2lsbFNuYXBzaG90QmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVt
ICopaXRlbTsKIC0gKHZvaWQpX3dlYlZpZXdEaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBz
aG90OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBp
b3MoMTAuMCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9u
QWN0aW9uIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5
LCBfV0tXZWJzaXRlUG9saWNpZXMgKikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVE
X1dJVEhfUkVQTEFDRU1FTlQoIl93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b246dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEyLjMsIFdLX01BQ19UQkEp
LCBpb3MoMTAuMywgV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rp
b24gKiluYXZpZ2F0aW9uQWN0aW9uIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5LCBfV0tXZWJzaXRlUG9saWNpZXMgKikpZGVjaXNpb25IYW5kbGVyIFdL
X0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl93ZWJWaWV3OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb246dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEy
LjMsIDEwLjE0LjQpLCBpb3MoMTAuMywgMTIuMikpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRp
b25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+
KXVzZXJJbmZvIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5LCBfV0tXZWJzaXRlUG9saWNpZXMgKikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24g
KiluYXZpZ2F0aW9uIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZhaWxOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKilu
YXZpZ2F0aW9uIHdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yIHVzZXJJbmZvOihpZCA8TlNTZWN1
cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygx
MS4zKSk7CkBAIC0xMDcsNyArMTA3LDcgQEAgc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvblJlc3Bv
bnNlUG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29tZURvd25sb2EKIC0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJ
dGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtIGluUGFnZUNhY2hlOihCT09MKWluUGFn
ZUNhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z0luV2l0aEluZm86
KE5TRGljdGlvbmFyeSAqKWluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAt
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEJsb2NrSW5zZWN1cmVQbHVn
aW5WZXJzaW9uV2l0aEluZm86KE5TRGljdGlvbmFyeSAqKWluZm8gV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNp
ZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3k6KF9XS1BsdWdpbk1vZHVsZUxv
YWRQb2xpY3kpcG9saWN5IHBsdWdpbkluZm86KE5TRGljdGlvbmFyeSAqKWluZm8gY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKF9XS1BsdWdpbk1vZHVsZUxvYWRQb2xpY3kgcG9saWN5LCBOU1N0
cmluZyAqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3k6
KF9XS1BsdWdpbk1vZHVsZUxvYWRQb2xpY3kpcG9saWN5IHBsdWdpbkluZm86KE5TRGljdGlvbmFy
eSAqKWluZm8gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS1BsdWdpbk1vZHVsZUxvYWRQ
b2xpY3kgcG9saWN5LCBOU1N0cmluZyAqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCkpOwogLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBiYWNrRm9yd2FyZExpc3RJdGVtQWRkZWQ6KFdL
QmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW1BZGRlZCByZW1vdmVkOihOU0FycmF5PFdLQmFja0Zv
cndhcmRMaXN0SXRlbSAqPiAqKWl0ZW1zUmVtb3ZlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzLjQpKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDVlNjY1MTY3NzhhNGExNTZk
MmUwOTI5MzIwMjNkZDQ3ZDQ4Nzc2N2EuLmUyYjk2YzdiOWJiYTU1NDIzMjdhMjZmZmE1MzVmNjNm
NGMxNzgxYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC0xMzAsOSArMTMwLDkgQEAgdHlwZWRlZiBO
U19FTlVNKE5TSW50ZWdlciwgX1dLRWRpdGFibGVMaW5rQmVoYXZpb3IpIHsKIAogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0QVZGb3VuZGF0aW9uRW5hYmxlZDopIEJPT0wgX2F2Rm91
bmRhdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcygxMi4wKSk7
CiAKLSsgKE5TQXJyYXk8X1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKj4gKilfaW50ZXJuYWxEZWJ1
Z0ZlYXR1cmVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7Ci0tIChCT09MKV9pc0VuYWJsZWRGb3JJbnRlcm5hbERlYnVnRmVhdHVyZTooX1dLSW50
ZXJuYWxEZWJ1Z0ZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9zZXRFbmFibGVkOihCT09MKXZhbHVl
IGZvckludGVybmFsRGVidWdGZWF0dXJlOihfV0tJbnRlcm5hbERlYnVnRmVhdHVyZSAqKWZlYXR1
cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
KysgKE5TQXJyYXk8X1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKj4gKilfaW50ZXJuYWxEZWJ1Z0Zl
YXR1cmVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChC
T09MKV9pc0VuYWJsZWRGb3JJbnRlcm5hbERlYnVnRmVhdHVyZTooX1dLSW50ZXJuYWxEZWJ1Z0Zl
YXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4y
KSk7CistICh2b2lkKV9zZXRFbmFibGVkOihCT09MKXZhbHVlIGZvckludGVybmFsRGVidWdGZWF0
dXJlOihfV0tJbnRlcm5hbERlYnVnRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogKyAoTlNBcnJheTxfV0tFeHBlcmltZW50YWxG
ZWF0dXJlICo+ICopX2V4cGVyaW1lbnRhbEZlYXR1cmVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTIpLCBpb3MoMTAuMCkpOwogLSAoQk9PTClfaXNFbmFibGVkRm9yRmVhdHVyZTooX1dLRXhw
ZXJpbWVudGFsRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiks
IGlvcygxMC4wKSk7CkBAIC0xNDIsMTUgKzE0MiwxNSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvcikgewogCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRTaG91bGRFbmFibGVUZXh0QXV0b3NpemluZ0Jvb3N0OikgQk9PTCBfc2hvdWxk
RW5hYmxlVGV4dEF1dG9zaXppbmdCb29zdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwg
aW9zKDEyLjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNTYWZlQnJvd3Np
bmdFbmFibGVkLCBzZXR0ZXI9X3NldFNhZmVCcm93c2luZ0VuYWJsZWQ6KSBCT09MIF9zYWZlQnJv
d3NpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc1NhZmVCcm93c2luZ0Vu
YWJsZWQsIHNldHRlcj1fc2V0U2FmZUJyb3dzaW5nRW5hYmxlZDopIEJPT0wgX3NhZmVCcm93c2lu
Z0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAog
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29sb3JGaWx0ZXJFbmFibGVkOikgQk9P
TCBfY29sb3JGaWx0ZXJFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3Mo
MTIuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHVuY2hPdXRXaGl0ZUJh
Y2tncm91bmRzSW5EYXJrTW9kZTopIEJPT0wgX3B1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFy
a01vZGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5h
YmxlZDopIEJPT0wgX2xvd1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRJZ25vcmVNZXRhVmlld3BvcnQ6KSBCT09MIF9z
aG91bGRJZ25vcmVNZXRhVmlld3BvcnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFZp
ZGVvUXVhbGl0eUluY2x1ZGVzRGlzcGxheUNvbXBvc2l0aW5nRW5hYmxlZDopIEJPT0wgX3ZpZGVv
UXVhbGl0eUluY2x1ZGVzRGlzcGxheUNvbXBvc2l0aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0V2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZDopIEJPT0wg
X3dlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNCksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXREZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZDopIEJPT0wgX2RldmljZU9yaWVudGF0
aW9uRXZlbnRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb3dQb3dlclZp
ZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZDopIEJPT0wgX2xvd1Bvd2VyVmlkZW9BdWRpb0J1ZmZl
clNpemVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRJZ25vcmVNZXRhVmlld3Bv
cnQ6KSBCT09MIF9zaG91bGRJZ25vcmVNZXRhVmlld3BvcnQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFZpZGVvUXVhbGl0eUluY2x1ZGVzRGlzcGxheUNvbXBvc2l0aW5nRW5hYmxlZDopIEJPT0wgX3Zp
ZGVvUXVhbGl0eUluY2x1ZGVzRGlzcGxheUNvbXBvc2l0aW5nRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0V2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZDopIEJPT0wgX3dlYkFu
aW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZXZpY2VP
cmllbnRhdGlvbkV2ZW50RW5hYmxlZDopIEJPT0wgX2RldmljZU9yaWVudGF0aW9uRXZlbnRFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrczopIEJPT0wg
X25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCks
IGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJdHBE
ZWJ1Z01vZGVFbmFibGVkOikgQk9PTCBfaXRwRGVidWdNb2RlRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0TWVkaWFTb3VyY2VFbmFibGVkOikgQk9PTCBfbWVkaWFTb3VyY2VF
bmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcyhXS19JT1NfVEJBKSk7
CkBAIC0xNzMsNyArMTczLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRWRpdGFi
bGVMaW5rQmVoYXZpb3IpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN1cHBy
ZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZzopIEJPT0wgX3N1cHByZXNzZXNJbmNyZW1lbnRhbFJl
bmRlcmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxl
ZDopIEJPT0wgX2FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldEFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZDopIEJPT0wgX2Fy
dGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEV4cGVy
aW1lbnRhbFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQ6KSBCT09MIF9leHBlcmltZW50YWxQ
bHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RXhwZXJpbWVudGFsUGx1
Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZDopIEJPT0wgX2V4cGVyaW1lbnRhbFBsdWdJblNhbmRi
b3hQcm9maWxlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb29raWVFbmFibGVkOikgQk9PTCBfY29va2ll
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQ6KSBCT09MIF9wbHVn
SW5TbmFwc2hvdHRpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwog
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRy
aWNzRW5hYmxlZDopIEJPT0wgX3N1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5oCmluZGV4IDUxMzNkYmM4YjA2N2NmOTJj
ZjYxYWRlOTU5YjAyZTFlZTlmM2VmYjcuLjE5MzhiZjlkMTE2MjEyZDcyNTU3ZWNkOWE2NWYzMjI4
ODk4YmY2NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NHcm91cC5oCkBAIC00NCw3ICs0NCw3IEBACiAKIEBlbmQKIAotV0tfQ0xBU1NfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1Byb2Nlc3NQb29sIiwgbWFjb3MoMTAuMTAsIFdL
X01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgiV0tQcm9jZXNzUG9vbCIsIG1hY29zKDEwLjEwLCAxMC4xNC40KSwgaW9z
KDguMCwgMTIuMikpCiBAaW50ZXJmYWNlIFdLUHJvY2Vzc0dyb3VwIDogTlNPYmplY3QKIAogLSAo
aWQpaW5pdFdpdGhJbmplY3RlZEJ1bmRsZVVSTDooTlNVUkwgKilidW5kbGVVUkw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJp
dmF0ZS5oCmluZGV4IDBlMWYwNmQ4NDZiZTJhNGY5MWMzZjljODg5ODBhMWQxMWM3NTEyMjYuLjM5
NzMyMWRlODAwOTgwZTM3Mzk1YjJkMmUxNGY3NjAyYTBmOTA1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
CkBAIC03OSw4ICs3OSw4IEBACiAKIC0gKHZvaWQpX3JlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNw
bGF5T25seUlmQ2FuUmVxdWVzdDooTlNTdHJpbmcgKilzY2hlbWUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKLS0gKF9XS0Rvd25sb2FkICopX2Rvd25sb2FkVVJM
UmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBvcmlnaW5hdGluZ1dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKLS0gKF9XS0Rvd25sb2FkICopX3Jlc3VtZURvd25sb2FkRnJvbURhdGE6KE5T
RGF0YSAqKXJlc3VtZURhdGEgcGF0aDooTlNTdHJpbmcgKilwYXRoIG9yaWdpbmF0aW5nV2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAoX1dLRG93bmxvYWQgKilfZG93bmxvYWRVUkxSZXF1ZXN0
OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IG9yaWdpbmF0aW5nV2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAo
X1dLRG93bmxvYWQgKilfcmVzdW1lRG93bmxvYWRGcm9tRGF0YTooTlNEYXRhICopcmVzdW1lRGF0
YSBwYXRoOihOU1N0cmluZyAqKXBhdGggb3JpZ2luYXRpbmdXZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKIC8v
IFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdlYiBjb250ZW50IHBy
b2Nlc3NlcyBhcmUgcnVubmluZy4KIC0gKHZvaWQpX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CkBAIC05
NSwxNiArOTUsMTYgQEAKIAogLy8gVGVzdCBvbmx5LgogLSAoc2l6ZV90KV93ZWJQcm9jZXNzQ291
bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7Ci0tIChCT09MKV9o
YXNQcmV3YXJtZWRXZWJQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CistIChCT09MKV9oYXNQcmV3YXJtZWRXZWJQcm9jZXNzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAtIChzaXplX3QpX3dlYlBy
b2Nlc3NDb3VudElnbm9yaW5nUHJld2FybWVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQp
LCBpb3MoMTIuMCkpOwotLSAoc2l6ZV90KV93ZWJQcm9jZXNzQ291bnRJZ25vcmluZ1ByZXdhcm1l
ZEFuZENhY2hlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworLSAoc2l6ZV90KV93ZWJQcm9jZXNzQ291bnRJZ25vcmluZ1ByZXdhcm1lZEFuZENh
Y2hlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogLSAoc2l6
ZV90KV9wbHVnaW5Qcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwg
aW9zKDExLjMpKTsKIC0gKHNpemVfdClfc2VydmljZVdvcmtlclByb2Nlc3NDb3VudCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIC0gKHZvaWQpX3N5bmNOZXR3b3Jr
UHJvY2Vzc0Nvb2tpZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7
CiAtICh2b2lkKV9tYWtlTmV4dFdlYlByb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZyBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIC0gKHZvaWQpX21ha2VOZXh0TmV0
d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE0KSwgaW9zKDEyLjApKTsKLS0gKE5TVUludGVnZXIpX21heGltdW1TdXNwZW5kZWRQYWdlQ291
bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
LS0gKE5TVUludGVnZXIpX3Byb2Nlc3NDYWNoZUNhcGFjaXR5IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChOU1VJbnRlZ2VyKV9tYXhpbXVt
U3VzcGVuZGVkUGFnZUNvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygx
Mi4yKSk7CistIChOU1VJbnRlZ2VyKV9wcm9jZXNzQ2FjaGVDYXBhY2l0eSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogLSAoTlNVSW50ZWdlcilfcHJvY2Vzc0Nh
Y2hlU2l6ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogCiAvLyBUZXN0IG9ubHkuIFJldHVybnMgd2ViIHByb2Nlc3NlcyBydW5uaW5nIHdlYiBw
YWdlcyAoZG9lcyBub3QgaW5jbHVkZSB3ZWIgcHJvY2Vzc2VzIHJ1bm5pbmcgc2VydmljZSB3b3Jr
ZXJzKQpAQCAtMTE4LDEwICsxMTgsMTAgQEAKIC8vIFRlc3Qgb25seS4KIC0gKHZvaWQpX3NldEFs
bG93c0FueVNTTENlcnRpZmljYXRlRm9yU2VydmljZVdvcmtlcjooQk9PTClhbGxvd3MgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIC0gKHZvaWQpX3JlZ2lzdGVy
VVJMU2NoZW1lU2VydmljZVdvcmtlcnNDYW5IYW5kbGU6KE5TU3RyaW5nICopc2NoZW1lIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci0tICh2b2lkKV9nZXRBY3Rp
dmVQYWdlc09yaWdpbnNJbldlYlByb2Nlc3NGb3JUZXN0aW5nOihwaWRfdClwaWQgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQoXikoTlNBcnJheTxOU1N0cmluZyAqPiAqKSljb21wbGV0aW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwot
LSAoQk9PTClfbmV0d29ya1Byb2Nlc3NIYXNFbnRpdGxlbWVudEZvclRlc3Rpbmc6KE5TU3RyaW5n
ICopZW50aXRsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKy0gKHZvaWQpX2dldEFjdGl2ZVBhZ2VzT3JpZ2luc0luV2ViUHJvY2Vzc0Zv
clRlc3Rpbmc6KHBpZF90KXBpZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShOU0FycmF5PE5T
U3RyaW5nICo+ICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQuNCksIGlvcygxMi4yKSk7CistIChCT09MKV9uZXR3b3JrUHJvY2Vzc0hhc0VudGl0bGVtZW50
Rm9yVGVzdGluZzooTlNTdHJpbmcgKillbnRpdGxlbWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9p
c0Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkLCBzZXR0ZXI9X3NldENvb2tpZVN0b3Jh
Z2VQYXJ0aXRpb25pbmdFbmFibGVkOikgQk9PTCBfY29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0Vu
YWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIlBhcnRpdGlvbmVkIGNvb2tpZXMgYXJlIG5vIGxvbmdl
ciBzdXBwb3J0ZWQiLCBtYWNvcygxMC4xMi4zLCBXS19NQUNfVEJBKSwgaW9zKDEwLjMsIFdLX0lP
U19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzQ29va2llU3RvcmFnZVBh
cnRpdGlvbmluZ0VuYWJsZWQsIHNldHRlcj1fc2V0Q29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0Vu
YWJsZWQ6KSBCT09MIF9jb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZCBXS19BUElfREVQ
UkVDQVRFRCgiUGFydGl0aW9uZWQgY29va2llcyBhcmUgbm8gbG9uZ2VyIHN1cHBvcnRlZCIsIG1h
Y29zKDEwLjEyLjMsIDEwLjE0LjQpLCBpb3MoMTAuMywgMTIuMikpOwogQHByb3BlcnR5IChub25h
dG9taWMsIGdldHRlcj1faXNTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCwgc2V0dGVyPV9zZXRTdG9y
YWdlQWNjZXNzQVBJRW5hYmxlZDopIEJPT0wgX3N0b3JhZ2VBY2Nlc3NBUElFbmFibGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAtICh2b2lkKV9zeW50aGVz
aXplQXBwSXNCYWNrZ3JvdW5kOihCT09MKWJhY2tncm91bmQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVHlwZVJlZldyYXBwZXIuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1R5cGVSZWZXcmFwcGVyLmgKaW5kZXggNDgwM2IyMmZl
ZTNlMmNhYmUzZWRmNzFlNjc0OGFjYThiMTMzNGFiMS4uYTczZWJlMzFiNmRlZGU1OTI1Zjk2NGMw
ZWYzY2Y4OTZhZDgwY2FmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVHlwZVJlZldyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tUeXBlUmVmV3JhcHBlci5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaW1wb3J0IDxG
b3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS0Jhc2UuaD4KIAotV0tf
Q0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS09iamVjdCIsIG1hY29zKDEwLjEw
LCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpCitXS19DTEFTU19ERVBSRUNBVEVE
X1dJVEhfUkVQTEFDRU1FTlQoIldLT2JqZWN0IiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBpb3Mo
OC4wLCAxMi4yKSkKIEBpbnRlcmZhY2UgV0tUeXBlUmVmV3JhcHBlciA6IE5TT2JqZWN0CiAKIC0g
KGlkKWluaXRXaXRoT2JqZWN0OihXS1R5cGVSZWYpb2JqZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXgg
NGQ3MGVlMmZmMGYxZDI0MTJlMzZmYjc4MzE5NDU1NjYzNDM0ODBkZi4uYmVjMmQ2NDg2YTYwYzY0
Y2NhZjY5OTljZThhYmZmYzE3NzRhNGNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC03NCw3ICs3NCw3
IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tBdXRvcGxheUV2ZW50RmxhZ3Mp
IHsKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ZvY3VzRGlyZWN0aW9uKSB7CiAgICAg
X1dLRm9jdXNEaXJlY3Rpb25CYWNrd2FyZCwKICAgICBfV0tGb2N1c0RpcmVjdGlvbkZvcndhcmQs
Ci19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcyhXS19JT1NfVEJBKSk7Cit9
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMi4yKSk7CiAKIEBwcm90b2Nv
bCBXS1VJRGVsZWdhdGVQcml2YXRlIDxXS1VJRGVsZWdhdGU+CiAKQEAgLTk4LDggKzk4LDggQEAg
c3RydWN0IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW46
KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg4
LjMpKTsKIC0gKHZvaWQpX3dlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbjooV0tXZWJWaWV3ICopd2Vi
VmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDguMykpOwogLSAodm9pZClf
d2ViVmlld1JlcXVlc3RQb2ludGVyTG9jazooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEyLjMpKTsKLS0gKHZvaWQpX3dlYlZpZXdEaWRSZXF1ZXN0UG9pbnRl
ckxvY2s6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJP
T0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV93ZWJWaWV3RGlkU2hvd1NhZmVCcm93c2luZ1dh
cm5pbmc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWRSZXF1ZXN0UG9pbnRl
ckxvY2s6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJP
T0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlv
cygxMi4yKSk7CistICh2b2lkKV93ZWJWaWV3RGlkU2hvd1NhZmVCcm93c2luZ1dhcm5pbmc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKIC0gKHZvaWQpX3dlYlZpZXdEaWRMb3NlUG9pbnRlckxvY2s6KFdLV2ViVmlldyAqKXdl
YlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSk7CiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdl
OihCT09MKWhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMpLCBpb3MoMTEuMCkpOwogCkBAIC0xMTksMTUgKzExOSwxNSBAQCBzdHJ1Y3QgVUlFZGdl
SW5zZXRzOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFJlbW92
ZUF0dGFjaG1lbnQ6KF9XS0F0dGFjaG1lbnQgKilhdHRhY2htZW50IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IGRpZEluc2VydEF0dGFjaG1lbnQ6KF9XS0F0dGFjaG1lbnQgKilhdHRhY2htZW50
IHdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQpLCBpb3MoMTIuMCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
aWRJbnZhbGlkYXRlRGF0YUZvckF0dGFjaG1lbnQ6KF9XS0F0dGFjaG1lbnQgKilhdHRhY2htZW50
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cist
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEludmFsaWRhdGVEYXRhRm9y
QXR0YWNobWVudDooX1dLQXR0YWNobWVudCAqKWF0dGFjaG1lbnQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VX
aXRoVXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NQYW5lbEZvckRvbWFpbjooTlNTdHJpbmcg
KilyZXF1ZXN0aW5nRG9tYWluIHVuZGVyQ3VycmVudERvbWFpbjooTlNTdHJpbmcgKiljdXJyZW50
RG9tYWluIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIHJlc3VsdCkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKLS0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkQ2hhbmdlRm9udEF0dHJpYnV0
ZXM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilmb250QXR0cmlidXRlcyBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRDaGFuZ2VGb250QXR0cmlidXRlczooTlNE
aWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWZvbnRBdHRyaWJ1dGVzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgdGFrZUZvY3VzOihfV0tGb2N1c0RpcmVjdGlvbilkaXJlY3Rpb24gV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgdGFrZUZvY3VzOihfV0tGb2N1c0RpcmVjdGlv
bilkaXJlY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDEyLjIpKTsK
IAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgc2hvdWxkSW5jbHVkZUFwcExpbmtBY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVk
RWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwpAQCAtMTYx
LDcgKzE2MSw3IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGRhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbldhc0hhbmRsZWQ6KEJPT0wp
aGFuZGxlZCBmb3JTZXNzaW9uOihpZClzZXNzaW9uIGl0ZW1Qcm92aWRlcnM6KE5TQXJyYXkgKilp
dGVtUHJvdmlkZXJzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKIC0gKE5TVUludGVnZXIp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFVwZGF0ZURhdGFJbnRlcmFjdGlvbk9w
ZXJhdGlvblRvT3BlcmF0aW9uOihOU1VJbnRlZ2VyKW9wZXJhdGlvbiBmb3JTZXNzaW9uOihpZClz
ZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKICNpZiBUQVJHRVRfT1NfSU9TCi0t
IChVSURyb3BQcm9wb3NhbCAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxVcGRh
dGVEcm9wUHJvcG9zYWxUb1Byb3Bvc2FsOihVSURyb3BQcm9wb3NhbCAqKXByb3Bvc2FsIGZvclNl
c3Npb246KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKTsKKy0gKFVJRHJvcFByb3Bvc2FsICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgd2lsbFVwZGF0ZURyb3BQcm9wb3NhbFRvUHJvcG9zYWw6KFVJRHJvcFByb3Bvc2FsICop
cHJvcG9zYWwgZm9yU2Vzc2lvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gV0tfQVBJX0FW
QUlMQUJMRShpb3MoMTIuMikpOwogLSAoVUlUYXJnZXRlZERyYWdQcmV2aWV3ICopX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld0ZvckxpZnRpbmdJdGVtOihVSURyYWdJdGVtICop
aXRlbSBzZXNzaW9uOihpZCA8VUlEcmFnU2Vzc2lvbj4pc2Vzc2lvbiBXS19BUElfQVZBSUxBQkxF
KGlvcygxMS4wKSk7CiAtIChVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKilfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBwcmV2aWV3Rm9yQ2FuY2VsbGluZ0l0ZW06KFVJRHJhZ0l0ZW0gKilpdGVt
IHdpdGhEZWZhdWx0OihVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKilkZWZhdWx0UHJldmlldyBXS19B
UElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtIChOU0FycmF5PFVJRHJhZ0l0ZW0gKj4gKilfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxsUGVyZm9ybURyb3BXaXRoU2Vzc2lvbjooaWQg
PFVJRHJvcFNlc3Npb24+KXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwpAQCAt
MjA1LDEwICsyMDUsMTAgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZ2V0V2luZG93RnJhbWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6
KHZvaWQgKF4pKENHUmVjdCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMy40KSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNldFdp
bmRvd0ZyYW1lOihDR1JlY3QpZnJhbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHVuYXZhaWxhYmxlUGx1Z0lu
QnV0dG9uQ2xpY2tlZFdpdGhSZWFzb246KF9XS1BsdWdJblVuYXZhaWxhYmlsaXR5UmVhc29uKXJl
YXNvbiBwbHVnSW5JbmZvOihOU0RpY3Rpb25hcnkgKilwbHVnSW5JbmZvOwotLSAoTlNNZW51ICop
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUg
Zm9yRWxlbWVudDooX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0RF
UFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX3dlYlZpZXc6Z2V0Q29udGV4dE1lbnVGcm9tUHJv
cG9zZWRNZW51OmZvckVsZW1lbnQ6dXNlckluZm86Y29tcGxldGlvbkhhbmRsZXI6IiwgbWFjb3Mo
MTAuMTIsIFdLX01BQ19UQkEpKTsKLS0gKE5TTWVudSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRN
ZW51RWxlbWVudEluZm8gKillbGVtZW50IHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVz
ZXJJbmZvIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl93ZWJWaWV3OmdldENv
bnRleHRNZW51RnJvbVByb3Bvc2VkTWVudTpmb3JFbGVtZW50OnVzZXJJbmZvOmNvbXBsZXRpb25I
YW5kbGVyOiIsIG1hY29zKDEwLjEyLCBXS19NQUNfVEJBKSk7CistIChOU01lbnUgKilfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVt
ZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpnZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1l
bnU6Zm9yRWxlbWVudDp1c2VySW5mbzpjb21wbGV0aW9uSGFuZGxlcjoiLCBtYWNvcygxMC4xMiwg
MTAuMTQuNCkpOworLSAoTlNNZW51ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29u
dGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29udGV4dE1lbnVFbGVtZW50
SW5mbyAqKWVsZW1lbnQgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gV0tf
QVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX3dlYlZpZXc6Z2V0Q29udGV4dE1lbnVG
cm9tUHJvcG9zZWRNZW51OmZvckVsZW1lbnQ6dXNlckluZm86Y29tcGxldGlvbkhhbmRsZXI6Iiwg
bWFjb3MoMTAuMTIsIDEwLjE0LjQpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgZ2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51OihOU01lbnUgKiltZW51IGZvckVs
ZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IHVzZXJJbmZvOihpZCA8
TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU01l
bnUgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCkpOwot
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRQZXJmb3JtRHJhZ09wZXJh
dGlvbjooQk9PTCloYW5kbGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOwor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRQZXJmb3JtRHJhZ09wZXJh
dGlvbjooQk9PTCloYW5kbGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCkpOwogI2Vu
ZGlmIC8vIFRBUkdFVF9PU19JUEhPTkUKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVmlldy5oCmluZGV4IGZmYjY4ZjE1ZWJjNWMxNjVjOWIxNzczNzUyZGMzMzJk
OWVkYjViMzcuLjZlM2Q3OWE1ZmM1YjZhMzA4ZTczOTI2MTIxNDI2NmYzNTE1ZWMyNDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXcuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3LmgKQEAgLTM1LDcgKzM1LDcg
QEAKIEBjbGFzcyBXS1Byb2Nlc3NHcm91cDsKIEBjbGFzcyBXS1ZpZXdEYXRhOwogCi1XS19DTEFT
U19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViVmlldyIsIG1hY29zKDEwLjEwLCBX
S19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpCitXS19DTEFTU19ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoIldLV2ViVmlldyIsIG1hY29zKDEwLjEwLCAxMC4xNC40KSwgaW9zKDgu
MCwgMTIuMikpCiBAaW50ZXJmYWNlIFdLVmlldyA6IE5TVmlldyA8TlNUZXh0SW5wdXRDbGllbnQ+
IHsKIEBwcml2YXRlCiAgICAgV0tWaWV3RGF0YSAqX2RhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uUHJpdmF0ZS5oCmluZGV4IDhjYmUwYTRkYWE3MzE4NWJkM2VjMjA1ZTU4ODczMWFiZWE0YzUz
NGQuLjYwYWUwNmU0OTUxZTI5MmU1ZDJhNjhkZTRlZWUwMTg3YTBjMzRhY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9u
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC02Myw3ICs2Myw3IEBAIHR5cGVkZWYgTlNfRU5V
TShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRJbnZpc2libGVBdXRvcGxheU5vdFBlcm1pdHRlZDopIEJPT0wgX2ludmlzaWJs
ZUF1dG9wbGF5Tm90UGVybWl0dGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3Mo
MTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFEYXRhTG9hZHNB
dXRvbWF0aWNhbGx5OikgQk9PTCBfbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0QXR0YWNobWVudEVsZW1lbnRFbmFibGVkOikgQk9PTCBfYXR0YWNobWVudEVs
ZW1lbnRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwot
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXR0YWNobWVudEZpbGVXcmFwcGVyQ2xh
c3M6KSBDbGFzcyBfYXR0YWNobWVudEZpbGVXcmFwcGVyQ2xhc3MgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEF0dGFjaG1lbnRGaWxlV3JhcHBlckNsYXNzOikgQ2xhc3MgX2F0dGFjaG1l
bnRGaWxlV3JhcHBlckNsYXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygx
Mi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbml0aWFsQ2FwaXRhbGl6
YXRpb25FbmFibGVkOikgQk9PTCBfaW5pdGlhbENhcGl0YWxpemF0aW9uRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEFwcGxlUGF5RW5hYmxlZDopIEJPT0wgX2FwcGxlUGF5RW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFdhaXRzRm9yUGFpbnRBZnRlclZpZXdEaWRNb3ZlVG9XaW5kb3c6KSBC
T09MIF93YWl0c0ZvclBhaW50QWZ0ZXJWaWV3RGlkTW92ZVRvV2luZG93IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTIuMyksIGlvcygxMC4zKSk7CkBAIC0xMDMsOSArMTAzLDkgQEAgdHlwZWRl
ZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEFsbG93TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnRBc0ZhbGxiYWNrOikgQk9PTCBfYWxsb3dNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydEFzRmFsbGJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyks
IGlvcygxMS4wKSk7CiAKIC8vIFRoZSBpbnB1dCBvZiB0aGlzIFNQSSBpcyBhbiBhcnJheSBvZiBp
bWFnZSBVVEkgKFVuaWZvcm0gVHlwZSBJZGVudGlmaWVyKS4KLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5LCBzZXR0ZXI9X3NldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzOikgTlNBcnJh
eTxOU1N0cmluZyAqPiAqX2FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlczop
IE5TQXJyYXk8TlNTdHJpbmcgKj4gKl9hZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCi1AcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRFZGl0YWJsZUltYWdlc0VuYWJsZWQ6KSBCT09MIF9lZGl0YWJs
ZUltYWdlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEVkaXRhYmxlSW1h
Z2VzRW5hYmxlZDopIEJPT0wgX2VkaXRhYmxlSW1hZ2VzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0VW5kb01hbmFnZXJBUElFbmFibGVkOikgQk9PTCBfdW5kb01hbmFnZXJBUElFbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAK
IEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oCmluZGV4IDA2YzFlYjRhNjg1NmQ3OTc4OGNkMjNiZWU0NjY3YjY1MTg3YTI0
N2YuLjBmMTc4YzA5ODNjN2VmMGY1YjRiZWQxYzRiN2Q3MTgxNTgxNjcwYjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApA
QCAtMTU1LDcgKzE1NSw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0
RWRnZSkgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VXNlckNvbnRlbnRFeHRl
bnNpb25zRW5hYmxlZDopIEJPT0wgX3VzZXJDb250ZW50RXh0ZW5zaW9uc0VuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKTsKIAogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBwaWRfdCBfd2ViUHJvY2Vzc0lkZW50aWZpZXI7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIHBpZF90IF9wcm92aXNpb25hbFdlYlByb2Nlc3NJZGVudGlmaWVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIHBpZF90IF9wcm92aXNpb25hbFdlYlByb2Nl
c3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzRWRpdGFibGUsIHNldHRlcj1fc2V0
RWRpdGFibGU6KSBCT09MIF9lZGl0YWJsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwg
aW9zKDkuMCkpOwogCkBAIC0xOTAsNTQgKzE5MCw1NCBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNV
SW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0Vmlld1NjYWxlOikgQ0dGbG9hdCBfdmlld1NjYWxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1p
bmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aDopIENHRmxvYXQgX21pbmltdW1FZmZlY3RpdmVEZXZp
Y2VXaWR0aCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWluaW11bUVmZmVjdGl2ZURl
dmljZVdpZHRoOikgQ0dGbG9hdCBfbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEJhY2tncm91bmRFeHRlbmRzQmV5b25kUGFnZTopIEJPT0wgX2JhY2tn
cm91bmRFeHRlbmRzQmV5b25kUGFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBp
b3MoOC4wKSk7CiAKLS0gKF9XS0F0dGFjaG1lbnQgKilfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxl
bmFtZTooTlNTdHJpbmcgKilmaWxlbmFtZSBjb250ZW50VHlwZTooTlNTdHJpbmcgKiljb250ZW50
VHlwZSBkYXRhOihOU0RhdGEgKilkYXRhIG9wdGlvbnM6KF9XS0F0dGFjaG1lbnREaXNwbGF5T3B0
aW9ucyAqKW9wdGlvbnMgY29tcGxldGlvbjoodm9pZCheKShCT09MIHN1Y2Nlc3MpKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIi1faW5zZXJ0QXR0
YWNobWVudFdpdGhGaWxlV3JhcHBlcjpjb250ZW50VHlwZTpvcHRpb25zOmNvbXBsZXRpb246Iiwg
bWFjb3MoMTAuMTMuNCwgV0tfTUFDX1RCQSksIGlvcygxMS4zLCBXS19JT1NfVEJBKSk7Ci0tIChf
V0tBdHRhY2htZW50ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6KE5TRmlsZVdy
YXBwZXIgKilmaWxlV3JhcHBlciBjb250ZW50VHlwZTooTlNTdHJpbmcgKiljb250ZW50VHlwZSBv
cHRpb25zOihfV0tBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgKilvcHRpb25zIGNvbXBsZXRpb246
KHZvaWQoXikoQk9PTCBzdWNjZXNzKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCItX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6Y29u
dGVudFR5cGU6Y29tcGxldGlvbjoiLCBtYWNvcyhXS19NQUNfVEJBLCBXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEsIFdLX0lPU19UQkEpKTsKLS0gKF9XS0F0dGFjaG1lbnQgKilfaW5zZXJ0QXR0
YWNobWVudFdpdGhGaWxlV3JhcHBlcjooTlNGaWxlV3JhcHBlciAqKWZpbGVXcmFwcGVyIGNvbnRl
bnRUeXBlOihOU1N0cmluZyAqKWNvbnRlbnRUeXBlIGNvbXBsZXRpb246KHZvaWQoXikoQk9PTCBz
dWNjZXNzKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoX1dLQXR0YWNobWVudCAqKV9hdHRhY2htZW50Rm9y
SWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0KLS0gKHZvaWQpX3NpbXVsYXRlRGV2aWNl
T3JpZW50YXRpb25DaGFuZ2VXaXRoQWxwaGE6KGRvdWJsZSlhbHBoYSBiZXRhOihkb3VibGUpYmV0
YSBnYW1tYTooZG91YmxlKWdhbW1hIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7Ci0KLSsgKEJPT0wpX2hhbmRsZXNTYWZlQnJvd3NpbmcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLSsgKE5TVVJM
ICopX2NvbmZpcm1NYWx3YXJlU2VudGluZWwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLSsgKE5TVVJMICopX3Zpc2l0VW5zYWZlV2Vic2l0ZVNl
bnRpbmVsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7Ci0tICh2b2lkKV9zaG93U2FmZUJyb3dzaW5nV2FybmluZ1dpdGhUaXRsZTooTlNTdHJpbmcg
Kil0aXRsZSB3YXJuaW5nOihOU1N0cmluZyAqKXdhcm5pbmcgZGV0YWlsczooTlNBdHRyaWJ1dGVk
U3RyaW5nICopZGV0YWlscyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShCT09MKSljb21wbGV0
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwotLSAodm9pZClfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmdXaXRoVVJMOihOU1VSTCAq
KXVybCB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSB3YXJuaW5nOihOU1N0cmluZyAqKXdhcm5pbmcg
ZGV0YWlsczooTlNBdHRyaWJ1dGVkU3RyaW5nICopZGV0YWlscyBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCheKShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotCi0tICh2b2lkKV9pc0pJVEVuYWJsZWQ6KHZv
aWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3JlbW92ZURhdGFEZXRlY3RlZExp
bmtzOihkaXNwYXRjaF9ibG9ja190KWNvbXBsZXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLQotLSAoSUJBY3Rpb24pX2FsaWduQ2VudGVy
OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKLS0gKElCQWN0aW9uKV9hbGlnbkp1c3RpZmllZDooaWQpc2VuZGVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlv
bilfYWxpZ25MZWZ0OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV9hbGlnblJpZ2h0OihpZClzZW5kZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0g
KElCQWN0aW9uKV9pbmRlbnQ6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX291dGRlbnQ6KGlkKXNlbmRl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwot
LSAoSUJBY3Rpb24pX3RvZ2dsZVN0cmlrZVRocm91Z2g6KGlkKXNlbmRlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2lu
c2VydE9yZGVyZWRMaXN0OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV9pbnNlcnRVbm9yZGVyZWRMaXN0
OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKLS0gKElCQWN0aW9uKV9pbnNlcnROZXN0ZWRPcmRlcmVkTGlzdDooaWQpc2VuZGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0t
IChJQkFjdGlvbilfaW5zZXJ0TmVzdGVkVW5vcmRlcmVkTGlzdDooaWQpc2VuZGVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlv
bilfaW5jcmVhc2VMaXN0TGV2ZWw6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2RlY3JlYXNlTGlzdExl
dmVsOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV9jaGFuZ2VMaXN0VHlwZTooaWQpc2VuZGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFj
dGlvbilfcGFzdGVBc1F1b3RhdGlvbjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfcGFzdGVBbmRNYXRj
aFN0eWxlOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV90YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb246
KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwotCi1AcHJvcGVydHkgKGNsYXNzLCBub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0
U3RyaW5nRm9yRmluZDopIE5TU3RyaW5nICpfc3RyaW5nRm9yRmluZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoX1dLQXR0YWNobWVudCAq
KV9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVuYW1lOihOU1N0cmluZyAqKWZpbGVuYW1lIGNvbnRl
bnRUeXBlOihOU1N0cmluZyAqKWNvbnRlbnRUeXBlIGRhdGE6KE5TRGF0YSAqKWRhdGEgb3B0aW9u
czooX1dLQXR0YWNobWVudERpc3BsYXlPcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uOih2b2lk
KF4pKEJPT0wgc3VjY2VzcykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgiLV9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOmNvbnRlbnRU
eXBlOm9wdGlvbnM6Y29tcGxldGlvbjoiLCBtYWNvcygxMC4xMy40LCAxMC4xNC40KSwgaW9zKDEx
LjMsIDEyLjIpKTsKKy0gKF9XS0F0dGFjaG1lbnQgKilfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxl
V3JhcHBlcjooTlNGaWxlV3JhcHBlciAqKWZpbGVXcmFwcGVyIGNvbnRlbnRUeXBlOihOU1N0cmlu
ZyAqKWNvbnRlbnRUeXBlIG9wdGlvbnM6KF9XS0F0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyAqKW9w
dGlvbnMgY29tcGxldGlvbjoodm9pZCheKShCT09MIHN1Y2Nlc3MpKWNvbXBsZXRpb25IYW5kbGVy
IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIi1faW5zZXJ0QXR0YWNobWVudFdp
dGhGaWxlV3JhcHBlcjpjb250ZW50VHlwZTpjb21wbGV0aW9uOiIsIG1hY29zKDEwLjE0LjQsIDEw
LjE0LjQpLCBpb3MoMTIuMiwgMTIuMikpOworLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRBdHRh
Y2htZW50V2l0aEZpbGVXcmFwcGVyOihOU0ZpbGVXcmFwcGVyICopZmlsZVdyYXBwZXIgY29udGVu
dFR5cGU6KE5TU3RyaW5nICopY29udGVudFR5cGUgY29tcGxldGlvbjoodm9pZCheKShCT09MIHN1
Y2Nlc3MpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7CistIChfV0tBdHRhY2htZW50ICopX2F0dGFjaG1lbnRGb3JJZGVudGlmaWVy
OihOU1N0cmluZyAqKWlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKKworLSAodm9pZClfc2ltdWxhdGVEZXZpY2VPcmllbnRhdGlvbkNoYW5nZVdp
dGhBbHBoYTooZG91YmxlKWFscGhhIGJldGE6KGRvdWJsZSliZXRhIGdhbW1hOihkb3VibGUpZ2Ft
bWEgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKworKyAoQk9P
TClfaGFuZGxlc1NhZmVCcm93c2luZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBp
b3MoMTIuMikpOworKyAoTlNVUkwgKilfY29uZmlybU1hbHdhcmVTZW50aW5lbCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworKyAoTlNVUkwgKilfdmlzaXRVbnNh
ZmVXZWJzaXRlU2VudGluZWwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKKy0gKHZvaWQpX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nV2l0aFRpdGxlOihOU1N0cmlu
ZyAqKXRpdGxlIHdhcm5pbmc6KE5TU3RyaW5nICopd2FybmluZyBkZXRhaWxzOihOU0F0dHJpYnV0
ZWRTdHJpbmcgKilkZXRhaWxzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wpKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CistICh2b2lkKV9zaG93U2FmZUJyb3dzaW5nV2FybmluZ1dpdGhVUkw6KE5TVVJMICopdXJsIHRp
dGxlOihOU1N0cmluZyAqKXRpdGxlIHdhcm5pbmc6KE5TU3RyaW5nICopd2FybmluZyBkZXRhaWxz
OihOU0F0dHJpYnV0ZWRTdHJpbmcgKilkZXRhaWxzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4p
KEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7CisKKy0gKHZvaWQpX2lzSklURW5hYmxlZDoodm9pZCheKShCT09MKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OworLSAodm9pZClfcmVtb3ZlRGF0YURldGVjdGVkTGlua3M6KGRpc3BhdGNoX2Jsb2NrX3QpY29t
cGxldGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworCist
IChJQkFjdGlvbilfYWxpZ25DZW50ZXI6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAoSUJBY3Rpb24pX2FsaWduSnVzdGlmaWVkOihpZClz
ZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKElC
QWN0aW9uKV9hbGlnbkxlZnQ6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0
LjQpLCBpb3MoMTIuMikpOworLSAoSUJBY3Rpb24pX2FsaWduUmlnaHQ6KGlkKXNlbmRlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAoSUJBY3Rpb24pX2lu
ZGVudDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4y
KSk7CistIChJQkFjdGlvbilfb3V0ZGVudDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfdG9nZ2xlU3RyaWtlVGhyb3Vn
aDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CistIChJQkFjdGlvbilfaW5zZXJ0T3JkZXJlZExpc3Q6KGlkKXNlbmRlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAoSUJBY3Rpb24pX2luc2VydFVub3Jk
ZXJlZExpc3Q6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3Mo
MTIuMikpOworLSAoSUJBY3Rpb24pX2luc2VydE5lc3RlZE9yZGVyZWRMaXN0OihpZClzZW5kZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKElCQWN0aW9u
KV9pbnNlcnROZXN0ZWRVbm9yZGVyZWRMaXN0OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKElCQWN0aW9uKV9pbmNyZWFzZUxpc3RMZXZl
bDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CistIChJQkFjdGlvbilfZGVjcmVhc2VMaXN0TGV2ZWw6KGlkKXNlbmRlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAoSUJBY3Rpb24pX2NoYW5nZUxpc3RU
eXBlOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIp
KTsKKy0gKElCQWN0aW9uKV9wYXN0ZUFzUXVvdGF0aW9uOihpZClzZW5kZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKElCQWN0aW9uKV9wYXN0ZUFuZE1h
dGNoU3R5bGU6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3Mo
MTIuMikpOworLSAoSUJBY3Rpb24pX3Rha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbjooaWQpc2Vu
ZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CisKK0Bwcm9w
ZXJ0eSAoY2xhc3MsIG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRTdHJpbmdGb3JGaW5kOikg
TlNTdHJpbmcgKl9zdHJpbmdGb3JGaW5kIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1NlbGVjdGlv
bkF0dHJpYnV0ZXMgX3NlbGVjdGlvbkF0dHJpYnV0ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIAot
LSAodm9pZClfc2V0Rm9udDooVUlGb250ICopZm9udCBzZW5kZXI6KGlkKXNlbmRlciBXS19BUElf
QVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9zZXRGb250U2l6ZTooQ0dGbG9h
dClmb250U2l6ZSBzZW5kZXI6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1Nf
VEJBKSk7Ci0tICh2b2lkKV9zZXRUZXh0Q29sb3I6KFVJQ29sb3IgKiljb2xvciBzZW5kZXI6KGlk
KXNlbmRlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zZXRG
b250OihVSUZvbnQgKilmb250IHNlbmRlcjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9z
KDEyLjIpKTsKKy0gKHZvaWQpX3NldEZvbnRTaXplOihDR0Zsb2F0KWZvbnRTaXplIHNlbmRlcjoo
aWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEyLjIpKTsKKy0gKHZvaWQpX3NldFRleHRD
b2xvcjooVUlDb2xvciAqKWNvbG9yIHNlbmRlcjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUo
aW9zKDEyLjIpKTsKIAotLSAodm9pZClfZGV0ZWN0RGF0YVdpdGhUeXBlczooV0tEYXRhRGV0ZWN0
b3JUeXBlcyl0eXBlcyBjb21wbGV0aW9uSGFuZGxlcjooZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0
aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX2RldGVjdERh
dGFXaXRoVHlwZXM6KFdLRGF0YURldGVjdG9yVHlwZXMpdHlwZXMgY29tcGxldGlvbkhhbmRsZXI6
KGRpc3BhdGNoX2Jsb2NrX3QpY29tcGxldGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4yKSk7
CiAKIC8vIERFUkVDQVRFRDogVGhlIHNldHRlcnMgb2YgdGhlIHRocmVlIGZvbGxvd2luZyBmdW5j
dGlvbiBhcmUgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBvdmVycmlkZUxheW91dFBhcmFtZXRlcnMu
CiAvLyBEZWZpbmUgdGhlIHNtYWxsZXN0IHNpemUgYSBwYWdlIHRha2Ugd2l0aCBhIHJlZ3VsYXIg
dmlld3BvcnQuCkBAIC0zMDMsOSArMzAzLDkgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVn
ZXIsIF9XS1JlY3RFZGdlKSB7CiAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5UmV0cmlldmVTcGVha1Nl
bGVjdGlvbkNvbnRlbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogLSAodm9pZClfYWNj
ZXNzaWJpbGl0eURpZEdldFNwZWFrU2VsZWN0aW9uQ29udGVudDooTlNTdHJpbmcgKiljb250ZW50
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBVSVZpZXcgKl9zYWZlQnJvd3NpbmdXYXJuaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIFVJVmlldyAqX3NhZmVCcm93c2luZ1dhcm5pbmcgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKICNlbHNlCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIE5TVmlldyAqX3NhZmVCcm93c2luZ1dhcm5pbmcgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgTlNWaWV3ICpfc2FmZUJyb3dzaW5nV2FybmluZyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIF9XS1JlY3RFZGdlIF9waW5uZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzLjQpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJ1YmJlckJhbmRpbmdF
bmFibGVkOikgX1dLUmVjdEVkZ2UgX3J1YmJlckJhbmRpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMuNCkpOwpAQCAtNDk1LDcgKzQ5NSw3IEBAIHR5cGVkZWYgTlNfT1BUSU9O
UyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogLSAodm9pZClfYWNjZXNzaWJpbGl0eUNsZWFy
U2VsZWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjMpKTsKIC0gKFVJVmlldyAqKV9mdWxs
U2NyZWVuUGxhY2Vob2xkZXJWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEyLjApKTsKIAotQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9jb250ZW50Vmlld0lzRmlyc3RSZXNw
b25kZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBCT09MIF9jb250ZW50Vmlld0lzRmlyc3RSZXNwb25kZXIgV0tfQVBJ
X0FWQUlMQUJMRShpb3MoMTIuMikpOwogI2Vsc2UKIC0gKHZvaWQpX2Rpc21pc3NDb250ZW50UmVs
YXRpdmVDaGlsZFdpbmRvd3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAtICh2
b2lkKV9zZXRGcmFtZTooTlNSZWN0KXJlY3QgYW5kU2Nyb2xsQnk6KE5TU2l6ZSlvZmZzZXQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CkBAIC01MzMsNyArNTMzLDcgQEAgdHlwZWRl
ZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAKIC0gKHZvaWQpX3NldEhl
YWRlckJhbm5lckhlaWdodDooaW50KWhlaWdodCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEy
LjMpKTsKIC0gKHZvaWQpX3NldEZvb3RlckJhbm5lckhlaWdodDooaW50KWhlaWdodCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpKTsKLS0gKHZvaWQpX2RvQWZ0ZXJQcm9jZXNzaW5nQWxs
UGVuZGluZ01vdXNlRXZlbnRzOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbiBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX2RvQWZ0ZXJQcm9jZXNzaW5nQWxsUGVu
ZGluZ01vdXNlRXZlbnRzOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbiBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0LjQpKTsKICNlbmRpZgogCiAtICh2b2lkKV9yZXF1ZXN0QWN0aXZlTm93UGxh
eWluZ1Nlc3Npb25JbmZvOih2b2lkKF4pKEJPT0wsIEJPT0wsIE5TU3RyaW5nKiwgZG91YmxlLCBk
b3VibGUsIE5TSW50ZWdlcikpY2FsbGJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSwgaW9zKDExLjMpKTsKQEAgLTU1NSwxMSArNTU1LDExIEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhO
U1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogLSAoQk9PTClfY29tcGxldGVCYWNrU3dpcGVGb3JU
ZXN0aW5nOwogLSAodm9pZClfc2V0RGVmZXJzTG9hZGluZ0ZvclRlc3Rpbmc6KEJPT0wpZGVmZXJz
TG9hZGluZzsKIAotLSAodm9pZClfc2V0U2hhcmVTaGVldENvbXBsZXRlc0ltbWVkaWF0ZWx5V2l0
aFJlc29sdXRpb25Gb3JUZXN0aW5nOihCT09MKXJlc29sdmVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zZXRTaGFyZVNoZWV0
Q29tcGxldGVzSW1tZWRpYXRlbHlXaXRoUmVzb2x1dGlvbkZvclRlc3Rpbmc6KEJPT0wpcmVzb2x2
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9oYXNJbnNwZWN0b3JGcm9udGVuZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tJbnNwZWN0b3IgKl9pbnNwZWN0b3IgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLRnJhbWVIYW5kbGUgKl9tYWluRnJhbWUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaGFzSW5zcGVjdG9yRnJvbnRlbmQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgX1dLSW5zcGVjdG9yICpfaW5zcGVjdG9yIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIF9XS0ZyYW1lSGFuZGxlICpfbWFpbkZyYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQuNCksIGlvcygxMi4yKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNj
cm9sbGluZ1VwZGF0ZXNEaXNhYmxlZEZvclRlc3Rpbmc6KSBCT09MIF9zY3JvbGxpbmdVcGRhdGVz
RGlzYWJsZWRGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCmluZGV4IDZkMGU3Zjgz
YjRjMTRlM2ZhMzQ0ODNhZGNiNjJkNzA5MzZiNGQ2MmEuLjJmOGY0NjI4MDY4YzY3YmY1NjAxNzBj
NWY4NzM4MDkzNDczNTJjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaApAQCAtNTUsOCAr
NTUsOCBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9y
ZUZldGNoT3B0aW9ucykgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Qm91bmRJ
bnRlcmZhY2VJZGVudGlmaWVyOikgTlNTdHJpbmcgKl9ib3VuZEludGVyZmFjZUlkZW50aWZpZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93c0NlbGx1bGFyQWNjZXNzOikgQk9PTCBfYWxsb3dz
Q2VsbHVsYXJBY2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMp
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFByb3h5Q29uZmlndXJhdGlvbjop
IE5TRGljdGlvbmFyeSAqX3Byb3h5Q29uZmlndXJhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE0KSwgaW9zKDEyLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9
X3NldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjopIE5TU3RyaW5nICpfc291cmNl
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0
dGVyPV9zZXRTb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI6KSBOU1N0cmluZyAq
X3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHksIHNldHRlcj1fc2V0U291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyOikgTlNT
dHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
LCBzZXR0ZXI9X3NldFNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjopIE5TU3Ry
aW5nICpfc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRBbGxvd3NUTFNGYWxsYmFjazopIEJPT0wgX2FsbG93c1RMU0ZhbGxiYWNrIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKl9pbmRleGVkREJEYXRhYmFzZURpcmVj
dG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tB
dHRhY2htZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNo
bWVudC5oCmluZGV4IDNjMzU3ODg1NGY5YmZiZDM1ZjE3Mjg3OGYwYzZlYzAyY2YwYTlmYjIuLjM3
ZTgyMzk5YzFjZjA4MjFkYzlmY2RjNDZkMDA2Mjk4YzFhMzk3MWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQuaApAQCAtNTIsMTUgKzUy
LDE1IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSkKIFdLX0NM
QVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKQogQGludGVyZmFjZSBfV0tB
dHRhY2htZW50IDogTlNPYmplY3QKIAotLSAodm9pZClzZXRGaWxlV3JhcHBlcjooTlNGaWxlV3Jh
cHBlciAqKWZpbGVXcmFwcGVyIGNvbnRlbnRUeXBlOihudWxsYWJsZSBOU1N0cmluZyAqKWNvbnRl
bnRUeXBlIGNvbXBsZXRpb246KHZvaWQoXiBfTnVsbGFibGUpKE5TRXJyb3IgKiBfTnVsbGFibGUp
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CistICh2b2lkKXNldEZpbGVXcmFwcGVyOihOU0ZpbGVXcmFwcGVyICop
ZmlsZVdyYXBwZXIgY29udGVudFR5cGU6KG51bGxhYmxlIE5TU3RyaW5nICopY29udGVudFR5cGUg
Y29tcGxldGlvbjoodm9pZCheIF9OdWxsYWJsZSkoTlNFcnJvciAqIF9OdWxsYWJsZSkpY29tcGxl
dGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsK
IAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSkgX1dLQXR0YWNobWVu
dEluZm8gKmluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUpIF9XS0F0
dGFjaG1lbnRJbmZvICppbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygx
Mi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICp1bmlxdWVJ
ZGVudGlmaWVyOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNDb25u
ZWN0ZWQpIEJPT0wgY29ubmVjdGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRl
cj1pc0Nvbm5lY3RlZCkgQk9PTCBjb25uZWN0ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NC40KSwgaW9zKDEyLjIpKTsKIAogLy8gRGVwcmVjYXRlZCBTUEkuCi0tICh2b2lkKXJlcXVlc3RJ
bmZvOih2b2lkKF4pKF9XS0F0dGFjaG1lbnRJbmZvICogX051bGxhYmxlLCBOU0Vycm9yICogX051
bGxhYmxlKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCItaW5mbyIsIG1hY29zKDEwLjE0LCBXS19NQUNfVEJBKSwgaW9zKDEyLjAsIFdLX0lPU19U
QkEpKTsKLS0gKHZvaWQpc2V0RGF0YTooTlNEYXRhICopZGF0YSBuZXdDb250ZW50VHlwZToobnVs
bGFibGUgTlNTdHJpbmcgKiluZXdDb250ZW50VHlwZSBuZXdGaWxlbmFtZToobnVsbGFibGUgTlNT
dHJpbmcgKiluZXdGaWxlbmFtZSBjb21wbGV0aW9uOih2b2lkKF4gX051bGxhYmxlKShOU0Vycm9y
ICogX051bGxhYmxlKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JF
UExBQ0VNRU5UKCJQbGVhc2UgdXNlIC1zZXRGaWxlV3JhcHBlcjpjb250ZW50VHlwZTpjb21wbGV0
aW9uOiBpbnN0ZWFkLiIsIG1hY29zKDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywgV0tf
SU9TX1RCQSkpOworLSAodm9pZClyZXF1ZXN0SW5mbzoodm9pZCheKShfV0tBdHRhY2htZW50SW5m
byAqIF9OdWxsYWJsZSwgTlNFcnJvciAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLWluZm8iLCBtYWNvcygxMC4xNCwgMTAu
MTQuNCksIGlvcygxMi4wLCAxMi4yKSk7CistICh2b2lkKXNldERhdGE6KE5TRGF0YSAqKWRhdGEg
bmV3Q29udGVudFR5cGU6KG51bGxhYmxlIE5TU3RyaW5nICopbmV3Q29udGVudFR5cGUgbmV3Rmls
ZW5hbWU6KG51bGxhYmxlIE5TU3RyaW5nICopbmV3RmlsZW5hbWUgY29tcGxldGlvbjoodm9pZChe
IF9OdWxsYWJsZSkoTlNFcnJvciAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiUGxlYXNlIHVzZSAtc2V0RmlsZVdyYXBwZXI6
Y29udGVudFR5cGU6Y29tcGxldGlvbjogaW5zdGVhZC4iLCBtYWNvcygxMC4xMy40LCAxMC4xNC40
KSwgaW9zKDExLjMsIDEyLjIpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb25D
b25maWd1cmF0aW9uLmgKaW5kZXggODZhZWM0OTI1YmM4NjYyOTljMWM0N2RjYTU3OGZjMTRiOWQ2
YjEwMi4uYTJkZjk0OGI2Mjc3OWYwZGYxNDg2NDA2MTc5MDAxNTY4NWI5MWRiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9u
Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaApAQCAtMjksNyArMjksNyBAQAogCiBO
U19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwg
aW9zKDEyLjIpKQogQGludGVyZmFjZSBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24g
OiBOU09iamVjdCA8TlNDb3B5aW5nPgogCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxv
d3NJbnNlY3VyZU1lZGlhQ2FwdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0Rvd25sb2FkLmgKaW5kZXggNmE2ZjljNWZiOWMxNzg3OWM5OTg3MWExNDhiNGY5
YTc3ZjIwMDRlMC4uZWVhOTliYmRkNDNjOWFjYjRhOWI0ODdjOWQwMDNmNjExY2RhZjk4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLmgKQEAg
LTM0LDEyICszNCwxMiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4w
KSkKIAogLSAodm9pZCljYW5jZWw7CiAKLS0gKHZvaWQpcHVibGlzaFByb2dyZXNzQXRVUkw6KE5T
VVJMICopVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CistICh2b2lkKXB1Ymxpc2hQcm9ncmVzc0F0VVJMOihOU1VSTCAqKVVSTCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIE5TVVJMUmVxdWVzdCAqcmVxdWVzdDsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSwgd2VhaykgV0tXZWJWaWV3ICpvcmlnaW5hdGluZ1dlYlZpZXc7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TQXJyYXk8TlNVUkwgKj4gKnJlZGly
ZWN0Q2hhaW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCB3YXNVc2VySW5pdGlhdGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIE5TRGF0YSAqcmVzdW1lRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBOU0RhdGEgKnJlc3VtZURhdGEgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40
KSwgaW9zKDEyLjIpKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0Zvcm1JbnB1dFNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tGb3JtSW5wdXRTZXNzaW9uLmgKaW5kZXggNWM2YmJhZWI5ZTNmZmQy
MDNhNTczYzJjMGUyOWI0ZWVjM2I4MGYxZi4uZjU5ZDdjYjJlYjAzYTFjZTZmZGU4NmI4ZDAxNWE2
MzZlZTAyMjYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0Zvcm1JbnB1dFNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRm9ybUlucHV0U2Vzc2lvbi5oCkBAIC0zOSw3ICszOSw3IEBACiAjaWYgVEFSR0VU
X09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICphY2Nlc3Nv
cnlWaWV3Q3VzdG9tQnV0dG9uVGl0bGU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBV
SVZpZXcgKmN1c3RvbUlucHV0VmlldyBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4wKSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBVSVZpZXcgKmN1c3RvbUlucHV0QWNjZXNzb3J5Vmll
dyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc3Ryb25nKSBVSVZpZXcgKmN1c3RvbUlucHV0QWNjZXNzb3J5VmlldyBXS19BUElfQVZBSUxB
QkxFKGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJheTxVSVRl
eHRTdWdnZXN0aW9uICo+ICpzdWdnZXN0aW9ucyBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4wKSk7
CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhY2Nlc3NvcnlWaWV3U2hvdWxkTm90U2hvdyBX
S19BUElfQVZBSUxBQkxFKGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBm
b3JjZVNlY3VyZVRleHRFbnRyeSBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4wKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLmgKaW5kZXggYWNh
OGRmNDFkYmNhOThmODU5MTM5OTc3NWQ4OWRkZmQ3NzlhOWVlOS4uMmU0Y2EwNzEwNGEzOTBhMGQ5
Nzk3MWFjMDBjM2ZkOWMwYjA1ZWU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IuaApAQCAtMzEsNyArMzEsNyBAQAogCiBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKQogQGludGVyZmFjZSBfV0tJbnNwZWN0b3IgOiBOU09iamVjdAogCiAtIChpbnN0YW5jZXR5
cGUpaW5pdCBOU19VTkFWQUlMQUJMRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnRlcm5hbERlYnVnRmVhdHVyZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0ludGVybmFsRGVidWdGZWF0dXJlLmgKaW5kZXggNjVjNjZi
OTc3YTEzYzA3MzM1ZTRlZDViZGI3YWI0NGRlMTZkOWZiMy4uNDU3OTVmMmU1ZWI2YzcxODljMDA5
MDUzZjQzZDc5OGVkMmRiMzI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0ludGVybmFsRGVidWdGZWF0dXJlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0ludGVybmFsRGVidWdGZWF0dXJlLmgKQEAgLTI3LDcgKzI3
LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpCiBAaW50ZXJmYWNlIF9XS0ludGVybmFs
RGVidWdGZWF0dXJlIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
LCBjb3B5KSBOU1N0cmluZyAqa2V5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCmluZGV4
IDBmM2E1NDFjZGY4ZWE1NDlhYzQyZGMyNjIxOTFhYTk4MGVlZDQ5MzAuLmZkZDQxMWYzOTg5MjZj
NmUyNjYwNzFkNjkwYWExYTRmNDFhMzAyODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LmgKQEAgLTM0LDEwICszNCwxMCBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBp
b3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1VSTCAqaW5qZWN0ZWRCdW5k
bGVVUkw7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdlciBtYXhpbXVtUHJvY2Vzc0Nv
dW50IFdLX0FQSV9ERVBSRUNBVEVEKCJJdCBpcyBubyBsb25nZXIgcG9zc2libGUgdG8gbGltaXQg
dGhlIG51bWJlciBvZiBwcm9jZXNzZXMiLCBtYWNvcyhXS19NQUNfVEJBLCBXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEsIFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IHVzZXNTaW5nbGVXZWJQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkp
IE5TU3RyaW5nICpjdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmN1c3RvbVdlYkNvbnRlbnRT
ZXJ2aWNlQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBp
b3MoMTIuMikpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBpZ25vcmVTeW5jaHJvbm91
c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEy
KSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGF0dHJTdHlsZUVuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGF0dHJTdHlsZUVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHkpIE5TQXJyYXk8TlNVUkwgKj4gKmFkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFVSTHMg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKQEAgLTQ4LDEyICs0
OCwxMiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIC8vIE5l
dHdvcmsgUHJvY2VzcyBwcm9wZXJ0aWVzCiAvLyBGSVhNRTogVGhlc2Ugc2hvdWxkIGJlIGJlIHBl
ci1zZXNzaW9uL2RhdGEgc3RvcmUgd2hlbiB3ZSBzdXBwb3J0IG11bHRpcGxlIG5vbi1wZXJzaXN0
ZW50IHNlc3Npb25zL2RhdGEgc3RvcmVzLgogCi1AcHJvcGVydHkgKG5vbmF0b21pYykgTlNJbnRl
Z2VyIGRpc2tDYWNoZVNpemVPdmVycmlkZSBXS19BUElfREVQUkVDQVRFRCgiVXNlIFtXS1dlYnNp
dGVEYXRhU3RvcmUgbm9uUGVyc2lzdGVudERhdGFTdG9yZV0gdG8gbGltaXQgZGlzayBjYWNoZSBz
aXplIHRvIDAiLCBtYWNvcygxMC4xMSwgV0tfTUFDX1RCQSksIGlvcyg5LjAsIFdLX0lPU19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU0ludGVnZXIgZGlza0NhY2hlU2l6ZU92ZXJyaWRl
IFdLX0FQSV9ERVBSRUNBVEVEKCJVc2UgW1dLV2Vic2l0ZURhdGFTdG9yZSBub25QZXJzaXN0ZW50
RGF0YVN0b3JlXSB0byBsaW1pdCBkaXNrIGNhY2hlIHNpemUgdG8gMCIsIG1hY29zKDEwLjExLCAx
MC4xNC40KSwgaW9zKDkuMCwgMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5T
QXJyYXkgKmNhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVzOwogQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmFsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljKSBCT09MIGRpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
YywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIiwgbWFj
b3MoMTAuMTIuMywgV0tfTUFDX1RCQSksIGlvcygxMC4zLCBXS19JT1NfVEJBKSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpzb3VyY2VBcHBsaWNhdGlv
blNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uc291cmNlQXBwbGljYXRpb25TZWNvbmRh
cnlJZGVudGlmaWVyIiwgbWFjb3MoMTAuMTIuMywgV0tfTUFDX1RCQSksIGlvcygxMC4zLCBXS19J
T1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5n
ICpzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgiX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uc291cmNlQXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyIiwgbWFjb3MoMTAuMTIuMywgMTAuMTQuNCksIGlvcygx
MC4zLCAxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3Ry
aW5nICpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0RFUFJFQ0FU
RURfV0lUSF9SRVBMQUNFTUVOVCgiX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uc291
cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIiwgbWFjb3MoMTAuMTIuMywgMTAuMTQu
NCksIGlvcygxMC4zLCAxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzaG91bGRD
YXB0dXJlQXVkaW9JblVJUHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9z
KDExLjApKTsKICNpZiBUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVs
bGFibGUsIGNvcHkpIE5TU3RyaW5nICpDVERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUgV0tfQVBJ
X0FWQUlMQUJMRShpb3MoMTAuMykpOwpAQCAtNjQsMTEgKzY0LDExIEBAIFdLX0NMQVNTX0FWQUlM
QUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
cHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBp
b3MoMTIuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWx3YXlzS2VlcEFuZFJldXNl
U3dhcHBlZFByb2Nlc3NlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjAp
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHByb2Nlc3NTd2Fwc09uV2luZG93T3Blbldp
dGhPcGVuZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBwcmV3YXJtc1Byb2Nlc3Nlc0F1dG9tYXRpY2FsbHkgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIHVzZXNXZWJQcm9jZXNzQ2FjaGUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIHByZXdhcm1zUHJvY2Vzc2VzQXV0b21hdGljYWxseSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
dXNlc1dlYlByb2Nlc3NDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3Mo
MTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcGFnZUNhY2hlRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIHN1cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25PblN5c3RlbUNoYW5nZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBnZXR0ZXI9aXNKSVRFbmFibGVkKSBCT09MIEpJVEVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBnZXR0ZXI9aXNKSVRFbmFibGVkKSBCT09MIEpJVEVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBO
U1VJbnRlZ2VyIGRvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGllckZvclRlc3RpbmcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhTVFNTdG9yYWdlRGlyZWN0
b3J5OikgTlNVUkwgKmhzdHNTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmgKaW5kZXggMDllMjUxZTc3YzA3NjkyNWI5MzRlY2MzZjZhOWQwZmQwODQ5
YjM1MS4uNTlmOTg0ZTQ4N2FkZjNmMDQyZDk2NzM3YTliNDdkYTc5ZTIyZDNiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTM5LDEwICszOSwxMCBAQCBXS19D
TEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSwgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5Oikg
TlNVUkwgKl9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwg
c2V0dGVyPV9zZXRDYWNoZVN0b3JhZ2VEaXJlY3Rvcnk6KSBOU1VSTCAqX2NhY2hlU3RvcmFnZURp
cmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRpcmVjdG9yeTopIE5TVVJMICpfc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9y
eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwotQHByb3BlcnR5
IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3Ry
aW5nICpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhUVFBQcm94eTopIE5TVVJMICpodHRwUHJv
eHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhUVFBTUHJv
eHk6KSBOU1VSTCAqaHR0cHNQcm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5
KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
bnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50
aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhUVFBQcm94eTopIE5T
VVJMICpodHRwUHJveHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhUVFBT
UHJveHk6KSBOU1VSTCAqaHR0cHNQcm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQp
LCBpb3MoMTIuMikpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXMuaAppbmRleCBmOGNhOTA4Y2NlYzVmZjhj
YTQxYmM5MTdiZmQ4OWY2MGUwOGUxY2IxLi40OTBiY2I2Y2VmOTI2NDliMGYwYjg0MDMyNWVlZWMx
MjFkZjI2YzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZVBvbGljaWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVQb2xpY2llcy5oCkBAIC0zNyw5ICszNyw5IEBAIFdLX0NMQVNTX0FWQUlM
QUJMRShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKQogQHByb3BlcnR5IChub25hdG9taWMsIGNv
cHkpIE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqY3VzdG9tSGVhZGVyRmll
bGRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYykgX1dLV2Vic2l0ZVBvcFVwUG9saWN5IHBvcFVwUG9saWN5IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMs
IHN0cm9uZykgV0tXZWJzaXRlRGF0YVN0b3JlICp3ZWJzaXRlRGF0YVN0b3JlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
Y29weSkgTlNTdHJpbmcgKmN1c3RvbVVzZXJBZ2VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkp
IE5TU3RyaW5nICpjdXN0b21Vc2VyQWdlbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40
KSwgaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3Vz
dG9tSmF2YVNjcmlwdFVzZXJBZ2VudEFzU2l0ZVNwZWNpZmljUXVpcmtzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSkgTlNTdHJpbmcgKmN1c3RvbU5hdmlnYXRvclBsYXRmb3JtIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSkgTlNTdHJpbmcgKmN1c3RvbU5hdmlnYXRvclBsYXRmb3JtIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
YykgX1dLV2Vic2l0ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUG9saWN5IGRldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5oCmluZGV4IDcyY2EwMzNjZjc5
YmFlMWJkNmY3NDA4MDRmODllODQwZWYzZDg3MTEuLjg5NjhmMzhkMTQ3ZGM5MTlkZThhMzhmMTgy
NWUzNDEzYzY2ODc2NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3MuaApAQCAtMzIsNyArMzIsNyBAQAogZXh0ZXJuICJDIiB7CiAjZW5k
aWYKIAotV0tfRVhQT1JUIGludCBXS1dlYlByb2Nlc3NNYWluKGludCBhcmdjLCBjb25zdCBjaGFy
KiogYXJndikgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK1dLX0VYUE9SVCBpbnQgV0tXZWJQcm9jZXNzTWFpbihpbnQgYXJnYywgY29uc3QgY2hh
cioqIGFyZ3YpIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAK
ICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxl
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaAppbmRleCBiNzMzZTllODNjNjExN2NiMTlmMmFk
MjBjZTJmZWM0ZDhlNzdjY2NiLi45ZWJhMjgzZGZlYTBjZjY4YzZhOWRmZmY5OWMxYTljMGZkMmU4
N2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJ
bk5vZGVIYW5kbGUuaApAQCAtNTUsNyArNTUsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3Mo
MTAuMTApLCBpb3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBI
VE1MVGV4dEFyZWFFbGVtZW50SXNVc2VyRWRpdGVkOwogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICpIVE1MVGFibGVDZWxsRWxlbWVu
dENlbGxBYm92ZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tXZWJQcm9jZXNz
UGx1Z0luRnJhbWUgKmZyYW1lOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09M
IGlzU2VsZWN0RWxlbWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGlzU2Vs
ZWN0RWxlbWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwog
CiAtIChCT09MKWlzVGV4dEZpZWxkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5k
bGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVQcml2YXRlLmgKaW5kZXggMTU0YzRk
YmFiYWY1NGE1ZGZhOTg1MzdiNTYyODM0YWZiMDY5OWQwMy4uNjgxMTMzM2Y1OWQ3ZjNhNzJhMWE5
M2I1Yzc1YjE1NmVlMTA1MjNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Q29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZVByaXZhdGUuaApAQCAtMzAsNyArMzAs
NyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tBdXRvRmlsbEJ1dHRvblR5cGUpIHsK
ICAgICBfV0tBdXRvRmlsbEJ1dHRvblR5cGVDcmVkZW50aWFscywKICAgICBfV0tBdXRvRmlsbEJ1
dHRvblR5cGVDb250YWN0cywKICAgICBfV0tBdXRvRmlsbEJ1dHRvblR5cGVTdHJvbmdQYXNzd29y
ZCwKLSAgICBfV0tBdXRvRmlsbEJ1dHRvblR5cGVDcmVkaXRDYXJkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSksCisgICAgX1dLQXV0b0ZpbGxCdXR0
b25UeXBlQ3JlZGl0Q2FyZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIu
MikpLAogfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogCiBA
aW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKFdLUHJpdmF0ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369856</attachid>
            <date>2019-05-14 08:58:56 -0700</date>
            <delta_ts>2019-05-14 10:49:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197841-20190514085855.patch</filename>
            <type>text/plain</type>
            <size>75179</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1MjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg3YjdmZTRkY2EyMmM1NTg2
Y2VlMDg2YzBiMzA2MDQ5ZDI1NzkxMWQuLjY0ZjYxMWNjZGRlOTIxMmNhOTU4YzMwMjI2NjkzZDUw
NTU0MjlmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTktMDUtMTQgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgVEJBIG1hY3JvcyBmb3Ig
QVBJIC8gU1BJIHRoYXQgaGFzIGFscmVhZHkgc2hpcHBlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODQxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81MDY5ODQ5OT4KKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAgICAgRGlzYWJsZSBo
ZWFkZXIgcG9zdHByb2Nlc3Npbmcgd2hlbiBidWlsZGluZyBmb3IgbWFjT1MgTW9qYXZlCisKKyAg
ICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhpc3RvcnlEZWxlZ2F0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0UG9s
aWN5RGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdh
dGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1R5cGVSZWZXcmFwcGVyLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXcuaDoKKyAgICAgICAgKFdLX0NMQVNTX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLQXR0YWNobWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tEb3dubG9hZC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9y
bUlucHV0U2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVj
dG9yLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnRlcm5hbERlYnVnRmVh
dHVyZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2Vic2l0ZVBvbGljaWVzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVQcml2YXRl
Lmg6CisKIDIwMTktMDUtMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBBZGQgYSB1bml0IHRlc3QgZm9yIGNsaWVudCBjZXJ0aWZpY2F0ZSBh
dXRoZW50aWNhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9X
ZWJLaXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2Nv
bmZpZwppbmRleCBhZDRlMjA0MDUyZmM1OGMzMWY2ZDk4OTIzYThiZDE0MTMwYTRkODRlLi5mZWUx
NDc5MWE4MWYyZjM2YTI1ZDNhYjZiN2ZhNTk3MzAyZTcyYjU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtMTU3LDEwICsxNTcsMTAgQEAgRVhD
TFVERURfU09VUkNFX0ZJTEVfTkFNRVNbc2RrPWlwaG9uZSpdID0gUGx1Z2luUHJvY2Vzc1NoaW0u
ZHlsaWIgU2VjSXRlbVNoaW0uZHkKIElOU1RBTExIRFJTX1NDUklQVF9QSEFTRSA9IFlFUzsKIEFQ
UExZX1JVTEVTX0lOX0NPUFlfSEVBREVSUyA9ICQoVVNFX05FV19CVUlMRF9TWVNURU0pOwogCi1X
S19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEW3Nkaz1tYWNvc3gqXSA9
ICQoV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRCQoV0tfTUFDT1Nf
MTAxNCkpOwotV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRF9NQUNP
U19CRUZPUkVfMTAxNCA9IFlFUzsKK1dLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdf
RElTQUJMRURbc2RrPW1hY29zeCpdID0gJChXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNT
SU5HX0RJU0FCTEVEJChXS19NQUNPU18xMDE1KSk7CitXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQ
Uk9DRVNTSU5HX0RJU0FCTEVEX01BQ09TX0JFRk9SRV8xMDE1ID0gWUVTOwogV0tfRlJBTUVXT1JL
X0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRFtzZGs9aXBob25lKjExLipdID0gWUVTOwot
V0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRFtzZGs9aXBob25lKjEy
LjAqXSA9IFlFUzsKK1dLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURb
c2RrPWlwaG9uZSoxMi4qXSA9IFlFUzsKIAogV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLX0xERkxB
R1MgPSAkKFdLX1JFTE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdTXyQoV0tfUkVMT0NBVEFCTEVf
RlJBTUVXT1JLUykpOwogV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLX0xERkxBR1NfWUVTID0gLVds
LC1ub3RfZm9yX2R5bGRfc2hhcmVkX2NhY2hlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaAppbmRleCA4
MWE0NjNkYzYwOThjODljNWNhMGFhNmZmMzhjMjNmMzI1OWNiZWUzLi41Y2U1ODI4YWUwNDQyZjc2
YmNjNjY2MjkwYzBkMTdiNWU4NWE0ZTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvQ29jb2EvX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaApAQCAtMzQs
NSArMzQsNSBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVuZGVyaW5nUHJv
Z3Jlc3NFdmVudHMpIHsKICAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RQYWludEFm
dGVyU3VwcHJlc3NlZEluY3JlbWVudGFsUmVuZGVyaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTEpLCBpb3MoOS4wKSkgPSAxIDw8IDUsCiAgICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVu
dEZpcnN0UGFpbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKSA9IDEg
PDwgNiwKICAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50RGlkUmVuZGVyU2lnbmlmaWNhbnRB
bW91bnRPZlRleHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSkgPSAx
IDw8IDcsCi0gICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0TWVhbmluZ2Z1bFBhaW50
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkgPSAx
IDw8IDgsCisgICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0TWVhbmluZ2Z1bFBhaW50
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSkgPSAxIDw8IDgsCiB9
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5oCmluZGV4IDZjZGFhNzJkZGRmOThjMDVkNDBhYTk0OWJkMjZl
OGZiMTFjYjM5OTUuLmY1NjdkNDY4MzczNjAzOTlhOWQwYzU0YzNhMDRhNTQwZDA2ZjA1OWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC0yMjUsOCArMjI1LDggQEAg
V0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25z
dCBXS1BhZ2VVSUNsaWVudEJhc2UqIGMKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VJbmpl
Y3RlZEJ1bmRsZUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlSW5qZWN0ZWRCdW5k
bGVDbGllbnRCYXNlKiBjbGllbnQpOwogCiAvLyBBIGNsaWVudCBjYW4gaW1wbGVtZW50IGVpdGhl
ciBhIG5hdmlnYXRpb24gY2xpZW50IG9yIGxvYWRlciBhbmQgcG9saWN5IGNsaWVudHMsIGJ1dCBu
ZXZlciBib3RoLgotV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChXS1Bh
Z2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlTG9hZGVyQ2xpZW50QmFzZSogY2xpZW50KSBXS19DX0FQ
SV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGll
bnQsIG1hY29zKFdLX01BQ19UQkEpKTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VQb2xp
Y3lDbGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFnZVBvbGljeUNsaWVudEJhc2UqIGNs
aWVudCkgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLUGFnZVNldFBhZ2VO
YXZpZ2F0aW9uQ2xpZW50LCBtYWNvcyhXS19NQUNfVEJBKSk7CitXS19FWFBPUlQgdm9pZCBXS1Bh
Z2VTZXRQYWdlTG9hZGVyQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VMb2FkZXJD
bGllbnRCYXNlKiBjbGllbnQpIFdLX0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChX
S1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCwgbWFjb3MoMTAuMTQuNCkpOworV0tfRVhQT1JU
IHZvaWQgV0tQYWdlU2V0UGFnZVBvbGljeUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQ
YWdlUG9saWN5Q2xpZW50QmFzZSogY2xpZW50KSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQsIG1hY29zKDEwLjE0LjQpKTsK
IFdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KFdLUGFnZVJlZiBw
YWdlLCBjb25zdCBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50QmFzZSogY2xpZW50KTsKIAogdHlwZWRl
ZiB2b2lkICgqV0tQYWdlUnVuSmF2YVNjcmlwdEZ1bmN0aW9uKShXS1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZVJlZiwgV0tFcnJvclJlZiwgdm9pZCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1Qcml2YXRl
LmgKaW5kZXggNWIwZDI4ZGI2YTQ2YTIwNGQ4ODA0YTNhZWNlNTYxOTQzZDQwYTVkOC4uNmIzNDY0
OTc1OGRjYzc1NzVmYmNiNjVlZGM4ZmNkOTVkNjIwZjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJ
dGVtUHJpdmF0ZS5oCkBAIC0zMCw2ICszMCw2IEBACiAvLyBGb3IgdGVzdGluZyBvbmx5LgogLSAo
Q0dJbWFnZVJlZilfY29weVNuYXBzaG90Rm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEyLjMpLCBpb3MoMTAuMykpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYykgQ0dQb2ludCBf
c2Nyb2xsUG9zaXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDR1BvaW50IF9zY3JvbGxQb3NpdGlv
biBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiBAZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyLmgKaW5kZXggNTliZWYzNDliYjgxY2Q3OTk5MDk4NzM3
ZmQyNDJlNDQyYWZhM2UyZC4uZDk1YjQ4M2NjNzI4MzIzNDk0NTMyZDg3MjBmMGQzMDhkMDQ3ZDRl
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIuaApAQCAtMzQsNyArMzQsNyBAQAogQHBy
b3RvY29sIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlOwogQHByb3RvY29sIFdLQnJvd3Np
bmdDb250ZXh0UG9saWN5RGVsZWdhdGU7CiAKLVdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVCgiV0tXZWJWaWV3IiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBX
S19JT1NfVEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJW
aWV3IiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBpb3MoOC4wLCAxMi4yKSkKIEBpbnRlcmZhY2Ug
V0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIDogTlNPYmplY3QKIAogI3ByYWdtYSBtYXJrIERl
bGVnYXRlcwpAQCAtNDUsOCArNDUsOCBAQCBXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFD
RU1FTlQoIldLV2ViVmlldyIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKAogCiAjcHJh
Z21hIG1hcmsgTG9hZGluZwogCi0rICh2b2lkKXJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJvdG9j
b2w6KE5TU3RyaW5nICopc2NoZW1lIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
IldLVVJMU2NoZW1lSGFuZGxlciIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwg
V0tfSU9TX1RCQSkpOwotKyAodm9pZCl1bnJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJvdG9jb2w6
KE5TU3RyaW5nICopc2NoZW1lIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldL
VVJMU2NoZW1lSGFuZGxlciIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tf
SU9TX1RCQSkpOworKyAodm9pZClyZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sOihOU1N0
cmluZyAqKXNjaGVtZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1VSTFNj
aGVtZUhhbmRsZXIiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAsIDEyLjIpKTsKKysg
KHZvaWQpdW5yZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sOihOU1N0cmluZyAqKXNjaGVt
ZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1VSTFNjaGVtZUhhbmRsZXIi
LCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAsIDEyLjIpKTsKIAogLyogTG9hZCBhIHJl
cXVlc3QuIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgcmVxdWVzdHMgb2Ygbm9uLWZpbGU6IFVSTHMu
IFBhc3NpbmcgYQogICAgZmlsZTogVVJMIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uLiAqLwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250
ZXh0R3JvdXAuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5n
Q29udGV4dEdyb3VwLmgKaW5kZXggODExMzBmMzY3YTYzZjViNTgxZDg0NDA3NTlmNDkwN2FiZGNk
NzE5ZC4uMWY4MmNjNGVjNDNjMjU5NjM1YThhMGZhZTQwMTI0MTFjMzEwZDU4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3Jv
dXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0Nv
bnRleHRHcm91cC5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5k
YXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmg+CiAK
LVdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tVc2VyQ29udGVudENvbnRy
b2xsZXIgYW5kIFdLUHJlZmVyZW5jZXMiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4
LjAsIFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJX
S1VzZXJDb250ZW50Q29udHJvbGxlciBhbmQgV0tQcmVmZXJlbmNlcyIsIG1hY29zKDEwLjEwLCAx
MC4xNC40KSwgaW9zKDguMCwgMTIuMikpCiBAaW50ZXJmYWNlIFdLQnJvd3NpbmdDb250ZXh0R3Jv
dXAgOiBOU09iamVjdAogCiAtIChpZClpbml0V2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopaWRl
bnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0Jyb3dzaW5nQ29udGV4dEhpc3RvcnlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGlzdG9yeURlbGVnYXRlLmgKaW5kZXggNWY1
NmEyMjI1NjAyZjU5M2QzODhhNWRhMzM0NWU2NDAwNjNjODM4Ni4uZmZhZWNiNzRmYTliNjlhMWVm
OTgyMWRlODAzYzk3YTZmYTkzMzJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGlzdG9yeURlbGVnYXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGlzdG9yeURl
bGVnYXRlLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS0Jyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25EYXRhLmg+CiAK
LVdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tCYWNrRm9yd2FyZExpc3Qi
LCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKQorV0tfQ0xB
U1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS0JhY2tGb3J3YXJkTGlzdCIsIG1hY29z
KDEwLjEwLCAxMC4xNC40KSwgaW9zKDguMCwgMTIuMikpCiBAcHJvdG9jb2wgV0tCcm93c2luZ0Nv
bnRleHRIaXN0b3J5RGVsZWdhdGUgPE5TT2JqZWN0PgogQG9wdGlvbmFsCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dExvYWRE
ZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdD
b250ZXh0TG9hZERlbGVnYXRlLmgKaW5kZXggMTgzNGNiZThkMjMzYjcwZThkMmMxMTQzZjBmZDA3
OTE1NTg5ZWVmNC4uZjU0YWRjMjUyMDE2MGRlOGYxMmUyMjgwOTI3OWU5ZjQ0ODQ3NjM3YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250
ZXh0TG9hZERlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogQGNs
YXNzIFdLQmFja0ZvcndhcmRMaXN0SXRlbTsKIAotV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JF
UExBQ0VNRU5UKCJXS05hdmlnYXRpb25EZWxlZ2F0ZSIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJB
KSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpCitXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFD
RU1FTlQoIldLTmF2aWdhdGlvbkRlbGVnYXRlIiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBpb3Mo
OC4wLCAxMi4yKSkKIEBwcm90b2NvbCBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZSA8TlNP
YmplY3Q+CiBAb3B0aW9uYWwKIApAQCAtNTIsMTAgKzUyLDEwIEBAIFdLX0NMQVNTX0RFUFJFQ0FU
RURfV0lUSF9SRVBMQUNFTUVOVCgiV0tOYXZpZ2F0aW9uRGVsZWdhdGUiLCBtYWNvcygxMC4xMCwg
V0tfTUFDCiAvKiBTZW50IGlmIHRoZSBjb21taXRlZCBsb2FkIGZhaWxzLiAqLwogLSAodm9pZCli
cm93c2luZ0NvbnRleHRDb250cm9sbGVyOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilz
ZW5kZXIgZGlkRmFpbExvYWRXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcjsKIAotLSAodm9pZCli
cm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkU3RhcnRQcm9ncmVzczooV0tCcm93c2luZ0NvbnRl
eHRDb250cm9sbGVyICopc2VuZGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
IldLV2ViVmlldy5lc3RpbWF0ZWRQcm9ncmVzcyIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwg
aW9zKDguMCwgV0tfSU9TX1RCQSkpOwotLSAodm9pZClicm93c2luZ0NvbnRleHRDb250cm9sbGVy
OihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXIgZXN0aW1hdGVkUHJvZ3Jlc3ND
aGFuZ2VkVG86KGRvdWJsZSllc3RpbWF0ZWRQcm9ncmVzcyBXS19BUElfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCJXS1dlYlZpZXcuZXN0aW1hdGVkUHJvZ3Jlc3MiLCBtYWNvcygxMC4xMCwg
V0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpYnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlckRpZEZpbmlzaFByb2dyZXNzOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIgKilzZW5kZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3
LmVzdGltYXRlZFByb2dyZXNzIiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBX
S19JT1NfVEJBKSk7CistICh2b2lkKWJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRTdGFydFBy
b2dyZXNzOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXIgV0tfQVBJX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3LmVzdGltYXRlZFByb2dyZXNzIiwgbWFj
b3MoMTAuMTAsIDEwLjE0LjQpLCBpb3MoOC4wLCAxMi4yKSk7CistICh2b2lkKWJyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXI6KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKXNlbmRlciBlc3Rp
bWF0ZWRQcm9ncmVzc0NoYW5nZWRUbzooZG91YmxlKWVzdGltYXRlZFByb2dyZXNzIFdLX0FQSV9E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViVmlldy5lc3RpbWF0ZWRQcm9ncmVzcyIs
IG1hY29zKDEwLjEwLCAxMC4xNC40KSwgaW9zKDguMCwgMTIuMikpOworLSAodm9pZClicm93c2lu
Z0NvbnRleHRDb250cm9sbGVyRGlkRmluaXNoUHJvZ3Jlc3M6KFdLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlciAqKXNlbmRlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dl
YlZpZXcuZXN0aW1hdGVkUHJvZ3Jlc3MiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAs
IDEyLjIpKTsKIAotLSAodm9pZClicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkQ2hhbmdlQmFj
a0ZvcndhcmRMaXN0OihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXIgYWRkZWRJ
dGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilhZGRlZEl0ZW0gcmVtb3ZlZEl0ZW1zOihOU0Fy
cmF5ICopcmVtb3ZlZEl0ZW1zIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldL
V2ViVmlldy5iYWNrRm9yd2FyZExpc3QiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4
LjAsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZENo
YW5nZUJhY2tGb3J3YXJkTGlzdDooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVy
IGFkZGVkSXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopYWRkZWRJdGVtIHJlbW92ZWRJdGVt
czooTlNBcnJheSAqKXJlbW92ZWRJdGVtcyBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJXS1dlYlZpZXcuYmFja0ZvcndhcmRMaXN0IiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBp
b3MoOC4wLCAxMi4yKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dFBvbGljeURlbGVnYXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRQb2xpY3lEZWxlZ2F0
ZS5oCmluZGV4IGVjNDk1ODQ3Mzg0NmY0MWVmZDAzZTEwOGEzZGIzNzY2OTE4NDA1MjkuLmYzNTli
NTk5NDRkYjM1YTFmMTM3MWQ5OTM4MzM0ZTA4ZTZhYzg0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dFBvbGljeURlbGVnYXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250
ZXh0UG9saWN5RGVsZWdhdGUuaApAQCAtNDcsNyArNDcsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNV
SW50ZWdlciwgV0tQb2xpY3lEZWNpc2lvbikgewogCiB0eXBlZGVmIHZvaWQgKF5XS1BvbGljeURl
Y2lzaW9uSGFuZGxlcikoV0tQb2xpY3lEZWNpc2lvbik7CiAKLVdLX0NMQVNTX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiV0tOYXZpZ2F0aW9uRGVsZWdhdGUiLCBtYWNvcygxMC4xMCwgV0tf
TUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCJXS05hdmlnYXRpb25EZWxlZ2F0ZSIsIG1hY29zKDEwLjEwLCAxMC4xNC40
KSwgaW9zKDguMCwgMTIuMikpCiBAcHJvdG9jb2wgV0tCcm93c2luZ0NvbnRleHRQb2xpY3lEZWxl
Z2F0ZSA8TlNPYmplY3Q+CiBAb3B0aW9uYWwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQ29ubmVjdGlvbi5oCmluZGV4IGUyMWQ5ODE5ODM4NTFlNzFkOTEwMTVl
MzQ2YmZkMTdjMTc5ZTg4ZWIuLjZkNmJlZDZhZDZhNWRhMzYzNDViNWY2MGY0MGM3NmMzYTkxYWRk
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Nvbm5l
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb25uZWN0
aW9uLmgKQEAgLTM2LDcgKzM2LDcgQEAKIAogQGVuZAogCi1XS19DTEFTU19ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoIl9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IiwgbWFjb3MoMTAuMTAsIFdL
X01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgiX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkiLCBtYWNvcygxMC4xMCwgMTAu
MTQuNCksIGlvcyg4LjAsIDEyLjIpKQogQGludGVyZmFjZSBXS0Nvbm5lY3Rpb24gOiBOU09iamVj
dAogCiAtICh2b2lkKXNlbmRNZXNzYWdlV2l0aE5hbWU6KE5TU3RyaW5nICopbWVzc2FnZU5hbWUg
Ym9keTooaWQpbWVzc2FnZUJvZHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaAppbmRleCAwOGNi
ZjUwMGE2N2VjZDFmODJhNjAwYzYyNzdjOTJhOTkwNTk0YzJiLi44M2I0ZTAyZTMxZDJiYWQ1MTFh
OWFhOGNkMGMzNWE4M2FhMjg0YzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgKQEAgLTU5
LDYgKzU5LDYgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tTeW50aGV0aWNDbGlja1R5
cGUpIHsKICNlbmRpZgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2lz
UmVkaXJlY3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLTmF2aWdhdGlvbiAqX21haW5GcmFtZU5hdmln
YXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tOYXZpZ2F0aW9uICpfbWFpbkZy
YW1lTmF2aWdhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggYzMwMmYxNGFkZjU5
MGY1MTJmY2M3M2U1MzczZDUzMDI3NzY2ZWEzZS4uZTliZTA0ZDVjMzU5YTUzZWI4YzQ3NDM2NWRi
OTZkMWE1ZGUxY2E0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaApAQCAtNTYsNyAr
NTYsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tQcm9jZXNzVGVybWluYXRpb25S
ZWFzb24pIHsKIAogc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBfV0tOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5RG93bmxvYWQgPSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KShX
S05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdyArIDEpOwogc3RhdGljIGNvbnN0IFdLTmF2aWdh
dGlvbkFjdGlvblBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkp
IF9XS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvd1dpdGhvdXRUcnlpbmdBcHBMaW5rID0gKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeSkoX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeURvd25sb2Fk
ICsgMSk7Ci1zdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkgX1dLTmF2aWdhdGlvbkFj
dGlvblBvbGljeUFsbG93SW5OZXdQcm9jZXNzID0gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSko
X1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93V2l0aG91dFRyeWluZ0FwcExpbmsgKyAxKTsK
K3N0YXRpYyBjb25zdCBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKSBfV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3dJ
bk5ld1Byb2Nlc3MgPSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KShfV0tOYXZpZ2F0aW9uQWN0
aW9uUG9saWN5QWxsb3dXaXRob3V0VHJ5aW5nQXBwTGluayArIDEpOwogCiBzdGF0aWMgY29uc3Qg
V0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVj
b21lRG93bmxvYWQgPSAoV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kpKFdLTmF2aWdhdGlvblJl
c3BvbnNlUG9saWN5QWxsb3cgKyAxKTsKIApAQCAtODgsNyArODgsNyBAQCBzdGF0aWMgY29uc3Qg
V0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVj
b21lRG93bmxvYQogLSAodm9pZClfd2ViVmlld1dpbGxFbmROYXZpZ2F0aW9uR2VzdHVyZTooV0tX
ZWJWaWV3ICopd2ViVmlldyB3aXRoTmF2aWdhdGlvblRvQmFja0ZvcndhcmRMaXN0SXRlbTooV0tC
YWNrRm9yd2FyZExpc3RJdGVtICopaXRlbTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgd2lsbFNuYXBzaG90QmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExp
c3RJdGVtICopaXRlbTsKIC0gKHZvaWQpX3dlYlZpZXdEaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVy
ZVNuYXBzaG90OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTIpLCBpb3MoMTAuMCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZp
Z2F0aW9uQWN0aW9uIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9u
UG9saWN5LCBfV0tXZWJzaXRlUG9saWNpZXMgKikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb246dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEyLjMsIFdLX01B
Q19UQkEpLCBpb3MoMTAuMywgV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRp
b25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBfV0tXZWJzaXRlUG9saWNpZXMgKikpZGVjaXNpb25IYW5k
bGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl93ZWJWaWV3OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb246dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOiIsIG1hY29z
KDEwLjEyLjMsIDEwLjE0LjQpLCBpb3MoMTAuMywgMTIuMikpOwogLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05h
dmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVD
b2Rpbmc+KXVzZXJJbmZvIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0
aW9uUG9saWN5LCBfV0tXZWJzaXRlUG9saWNpZXMgKikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAtICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOihXS05hdmln
YXRpb24gKiluYXZpZ2F0aW9uIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZv
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAtICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZhaWxOYXZpZ2F0aW9uOihXS05hdmlnYXRp
b24gKiluYXZpZ2F0aW9uIHdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yIHVzZXJJbmZvOihpZCA8
TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCks
IGlvcygxMS4zKSk7CkBAIC0xMDcsNyArMTA3LDcgQEAgc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlv
blJlc3BvbnNlUG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29tZURvd25sb2EK
IC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbEdvVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtIGluUGFnZUNhY2hlOihCT09M
KWluUGFnZUNhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z0luV2l0
aEluZm86KE5TRGljdGlvbmFyeSAqKWluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEJsb2NrSW5zZWN1
cmVQbHVnaW5WZXJzaW9uV2l0aEluZm86KE5TRGljdGlvbmFyeSAqKWluZm8gV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3k6KF9XS1BsdWdpbk1v
ZHVsZUxvYWRQb2xpY3kpcG9saWN5IHBsdWdpbkluZm86KE5TRGljdGlvbmFyeSAqKWluZm8gY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS1BsdWdpbk1vZHVsZUxvYWRQb2xpY3kgcG9saWN5
LCBOU1N0cmluZyAqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24pKWNvbXBsZXRpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQ
b2xpY3k6KF9XS1BsdWdpbk1vZHVsZUxvYWRQb2xpY3kpcG9saWN5IHBsdWdpbkluZm86KE5TRGlj
dGlvbmFyeSAqKWluZm8gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS1BsdWdpbk1vZHVs
ZUxvYWRQb2xpY3kgcG9saWN5LCBOU1N0cmluZyAqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24p
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCkpOwogLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBiYWNrRm9yd2FyZExpc3RJdGVtQWRk
ZWQ6KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW1BZGRlZCByZW1vdmVkOihOU0FycmF5PFdL
QmFja0ZvcndhcmRMaXN0SXRlbSAqPiAqKWl0ZW1zUmVtb3ZlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDVlNjY1MTY3Nzhh
NGExNTZkMmUwOTI5MzIwMjNkZDQ3ZDQ4Nzc2N2EuLmUyYjk2YzdiOWJiYTU1NDIzMjdhMjZmZmE1
MzVmNjNmNGMxNzgxYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC0xMzAsOSArMTMwLDkgQEAgdHlw
ZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRWRpdGFibGVMaW5rQmVoYXZpb3IpIHsKIAogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QVZGb3VuZGF0aW9uRW5hYmxlZDopIEJPT0wg
X2F2Rm91bmRhdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcygx
Mi4wKSk7CiAKLSsgKE5TQXJyYXk8X1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKj4gKilfaW50ZXJu
YWxEZWJ1Z0ZlYXR1cmVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7Ci0tIChCT09MKV9pc0VuYWJsZWRGb3JJbnRlcm5hbERlYnVnRmVhdHVyZToo
X1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9zZXRFbmFibGVkOihCT09M
KXZhbHVlIGZvckludGVybmFsRGVidWdGZWF0dXJlOihfV0tJbnRlcm5hbERlYnVnRmVhdHVyZSAq
KWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKysgKE5TQXJyYXk8X1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKj4gKilfaW50ZXJuYWxE
ZWJ1Z0ZlYXR1cmVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CistIChCT09MKV9pc0VuYWJsZWRGb3JJbnRlcm5hbERlYnVnRmVhdHVyZTooX1dLSW50ZXJuYWxE
ZWJ1Z0ZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlv
cygxMi4yKSk7CistICh2b2lkKV9zZXRFbmFibGVkOihCT09MKXZhbHVlIGZvckludGVybmFsRGVi
dWdGZWF0dXJlOihfV0tJbnRlcm5hbERlYnVnRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogKyAoTlNBcnJheTxfV0tFeHBlcmlt
ZW50YWxGZWF0dXJlICo+ICopX2V4cGVyaW1lbnRhbEZlYXR1cmVzIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogLSAoQk9PTClfaXNFbmFibGVkRm9yRmVhdHVyZToo
X1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMiksIGlvcygxMC4wKSk7CkBAIC0xNDIsMTUgKzE0MiwxNSBAQCB0eXBlZGVmIE5TX0VOVU0o
TlNJbnRlZ2VyLCBfV0tFZGl0YWJsZUxpbmtCZWhhdmlvcikgewogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRTaG91bGRFbmFibGVUZXh0QXV0b3NpemluZ0Jvb3N0OikgQk9PTCBf
c2hvdWxkRW5hYmxlVGV4dEF1dG9zaXppbmdCb29zdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE0KSwgaW9zKDEyLjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNTYWZl
QnJvd3NpbmdFbmFibGVkLCBzZXR0ZXI9X3NldFNhZmVCcm93c2luZ0VuYWJsZWQ6KSBCT09MIF9z
YWZlQnJvd3NpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc1NhZmVCcm93
c2luZ0VuYWJsZWQsIHNldHRlcj1fc2V0U2FmZUJyb3dzaW5nRW5hYmxlZDopIEJPT0wgX3NhZmVC
cm93c2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIp
KTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29sb3JGaWx0ZXJFbmFibGVk
OikgQk9PTCBfY29sb3JGaWx0ZXJFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQp
LCBpb3MoMTIuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHVuY2hPdXRX
aGl0ZUJhY2tncm91bmRzSW5EYXJrTW9kZTopIEJPT0wgX3B1bmNoT3V0V2hpdGVCYWNrZ3JvdW5k
c0luRGFya01vZGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJT
aXplRW5hYmxlZDopIEJPT0wgX2xvd1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRJZ25vcmVNZXRhVmlld3BvcnQ6KSBC
T09MIF9zaG91bGRJZ25vcmVNZXRhVmlld3BvcnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFZpZGVvUXVhbGl0eUluY2x1ZGVzRGlzcGxheUNvbXBvc2l0aW5nRW5hYmxlZDopIEJPT0wg
X3ZpZGVvUXVhbGl0eUluY2x1ZGVzRGlzcGxheUNvbXBvc2l0aW5nRW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0V2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZDop
IEJPT0wgX3dlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNCksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXREZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZDopIEJPT0wgX2RldmljZU9y
aWVudGF0aW9uRXZlbnRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb3dQ
b3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZDopIEJPT0wgX2xvd1Bvd2VyVmlkZW9BdWRp
b0J1ZmZlclNpemVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygx
Mi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRJZ25vcmVNZXRh
Vmlld3BvcnQ6KSBCT09MIF9zaG91bGRJZ25vcmVNZXRhVmlld3BvcnQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFZpZGVvUXVhbGl0eUluY2x1ZGVzRGlzcGxheUNvbXBvc2l0aW5nRW5hYmxlZDopIEJP
T0wgX3ZpZGVvUXVhbGl0eUluY2x1ZGVzRGlzcGxheUNvbXBvc2l0aW5nRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0V2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZDopIEJPT0wg
X3dlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRE
ZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZDopIEJPT0wgX2RldmljZU9yaWVudGF0aW9uRXZl
bnRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrczop
IEJPT0wgX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMuNCksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRJdHBEZWJ1Z01vZGVFbmFibGVkOikgQk9PTCBfaXRwRGVidWdNb2RlRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFTb3VyY2VFbmFibGVkOikgQk9PTCBfbWVkaWFT
b3VyY2VFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcyhXS19JT1Nf
VEJBKSk7CkBAIC0xNzMsNyArMTczLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dL
RWRpdGFibGVMaW5rQmVoYXZpb3IpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFN1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZzopIEJPT0wgX3N1cHByZXNzZXNJbmNyZW1l
bnRhbFJlbmRlcmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9u
RW5hYmxlZDopIEJPT0wgX2FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldEFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZDopIEJP
T0wgX2FydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEV4cGVyaW1lbnRhbFBsdWdJblNhbmRib3hQcm9maWxlc0VuYWJsZWQ6KSBCT09MIF9leHBlcmlt
ZW50YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RXhwZXJpbWVu
dGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZDopIEJPT0wgX2V4cGVyaW1lbnRhbFBsdWdJ
blNhbmRib3hQcm9maWxlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSk7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb29raWVFbmFibGVkOikgQk9PTCBf
Y29va2llRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQ6KSBCT09M
IF9wbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U3VicGl4ZWxDU1NPTUVsZW1l
bnRNZXRyaWNzRW5hYmxlZDopIEJPT0wgX3N1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5oCmluZGV4IDUxMzNkYmM4YjA2
N2NmOTJjZjYxYWRlOTU5YjAyZTFlZTlmM2VmYjcuLjE5MzhiZjlkMTE2MjEyZDcyNTU3ZWNkOWE2
NWYzMjI4ODk4YmY2NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NHcm91cC5oCkBAIC00NCw3ICs0NCw3IEBACiAKIEBlbmQKIAotV0tfQ0xB
U1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1Byb2Nlc3NQb29sIiwgbWFjb3MoMTAu
MTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FU
RURfV0lUSF9SRVBMQUNFTUVOVCgiV0tQcm9jZXNzUG9vbCIsIG1hY29zKDEwLjEwLCAxMC4xNC40
KSwgaW9zKDguMCwgMTIuMikpCiBAaW50ZXJmYWNlIFdLUHJvY2Vzc0dyb3VwIDogTlNPYmplY3QK
IAogLSAoaWQpaW5pdFdpdGhJbmplY3RlZEJ1bmRsZVVSTDooTlNVUkwgKilidW5kbGVVUkw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sUHJpdmF0ZS5oCmluZGV4IDBlMWYwNmQ4NDZiZTJhNGY5MWMzZjljODg5ODBhMWQxMWM3NTEy
MjYuLjgzZWVjZGM3MDYxZGM4MTg0NTAzY2FmYTBiZGViZWJkZWU2YjlhZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJp
dmF0ZS5oCkBAIC0yMyw2ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAorI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8V2Vi
S2l0L1dLUHJvY2Vzc1Bvb2wuaD4KICNpbXBvcnQgPFdlYktpdC9XS1NlY3VyaXR5T3JpZ2luLmg+
CiAKQEAgLTc5LDggKzgwLDggQEAKIAogLSAodm9pZClfcmVnaXN0ZXJVUkxTY2hlbWVBc0NhbkRp
c3BsYXlPbmx5SWZDYW5SZXF1ZXN0OihOU1N0cmluZyAqKXNjaGVtZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAotLSAoX1dLRG93bmxvYWQgKilfZG93bmxvYWRV
UkxSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IG9yaWdpbmF0aW5nV2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotLSAoX1dLRG93bmxvYWQgKilfcmVzdW1lRG93bmxvYWRGcm9tRGF0YToo
TlNEYXRhICopcmVzdW1lRGF0YSBwYXRoOihOU1N0cmluZyAqKXBhdGggb3JpZ2luYXRpbmdXZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistIChfV0tEb3dubG9hZCAqKV9kb3dubG9hZFVSTFJlcXVl
c3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Qgb3JpZ2luYXRpbmdXZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7Cist
IChfV0tEb3dubG9hZCAqKV9yZXN1bWVEb3dubG9hZEZyb21EYXRhOihOU0RhdGEgKilyZXN1bWVE
YXRhIHBhdGg6KE5TU3RyaW5nICopcGF0aCBvcmlnaW5hdGluZ1dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAog
Ly8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2FsbGVkIG9ubHkgd2hpbGUgbm8gd2ViIGNvbnRlbnQg
cHJvY2Vzc2VzIGFyZSBydW5uaW5nLgogLSAodm9pZClfdGVybWluYXRlTmV0d29ya1Byb2Nlc3Mg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKQEAg
LTk1LDE2ICs5NiwxNiBAQAogCiAvLyBUZXN0IG9ubHkuCiAtIChzaXplX3QpX3dlYlByb2Nlc3ND
b3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKLS0gKEJPT0wp
X2hhc1ByZXdhcm1lZFdlYlByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKEJPT0wpX2hhc1ByZXdhcm1lZFdlYlByb2Nlc3MgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIC0gKHNpemVfdClfd2Vi
UHJvY2Vzc0NvdW50SWdub3JpbmdQcmV3YXJtZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NCksIGlvcygxMi4wKSk7Ci0tIChzaXplX3QpX3dlYlByb2Nlc3NDb3VudElnbm9yaW5nUHJld2Fy
bWVkQW5kQ2FjaGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CistIChzaXplX3QpX3dlYlByb2Nlc3NDb3VudElnbm9yaW5nUHJld2FybWVkQW5k
Q2FjaGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAtIChz
aXplX3QpX3BsdWdpblByb2Nlc3NDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
LCBpb3MoMTEuMykpOwogLSAoc2l6ZV90KV9zZXJ2aWNlV29ya2VyUHJvY2Vzc0NvdW50IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogLSAodm9pZClfc3luY05ldHdv
cmtQcm9jZXNzQ29va2llcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjAp
KTsKIC0gKHZvaWQpX21ha2VOZXh0V2ViUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogLSAodm9pZClfbWFrZU5leHRO
ZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQpLCBpb3MoMTIuMCkpOwotLSAoTlNVSW50ZWdlcilfbWF4aW11bVN1c3BlbmRlZFBhZ2VD
b3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwotLSAoTlNVSW50ZWdlcilfcHJvY2Vzc0NhY2hlQ2FwYWNpdHkgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKE5TVUludGVnZXIpX21heGlt
dW1TdXNwZW5kZWRQYWdlQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9z
KDEyLjIpKTsKKy0gKE5TVUludGVnZXIpX3Byb2Nlc3NDYWNoZUNhcGFjaXR5IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAtIChOU1VJbnRlZ2VyKV9wcm9jZXNz
Q2FjaGVTaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAKIC8vIFRlc3Qgb25seS4gUmV0dXJucyB3ZWIgcHJvY2Vzc2VzIHJ1bm5pbmcgd2Vi
IHBhZ2VzIChkb2VzIG5vdCBpbmNsdWRlIHdlYiBwcm9jZXNzZXMgcnVubmluZyBzZXJ2aWNlIHdv
cmtlcnMpCkBAIC0xMTgsMTAgKzExOSwxMCBAQAogLy8gVGVzdCBvbmx5LgogLSAodm9pZClfc2V0
QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyOihCT09MKWFsbG93cyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAodm9pZClfcmVnaXN0
ZXJVUkxTY2hlbWVTZXJ2aWNlV29ya2Vyc0NhbkhhbmRsZTooTlNTdHJpbmcgKilzY2hlbWUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKLS0gKHZvaWQpX2dldEFj
dGl2ZVBhZ2VzT3JpZ2luc0luV2ViUHJvY2Vzc0ZvclRlc3Rpbmc6KHBpZF90KXBpZCBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCheKShOU0FycmF5PE5TU3RyaW5nICo+ICopKWNvbXBsZXRpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
Ci0tIChCT09MKV9uZXR3b3JrUHJvY2Vzc0hhc0VudGl0bGVtZW50Rm9yVGVzdGluZzooTlNTdHJp
bmcgKillbnRpdGxlbWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworLSAodm9pZClfZ2V0QWN0aXZlUGFnZXNPcmlnaW5zSW5XZWJQcm9jZXNz
Rm9yVGVzdGluZzoocGlkX3QpcGlkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKE5TQXJyYXk8
TlNTdHJpbmcgKj4gKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKEJPT0wpX25ldHdvcmtQcm9jZXNzSGFzRW50aXRsZW1l
bnRGb3JUZXN0aW5nOihOU1N0cmluZyAqKWVudGl0bGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9
X2lzQ29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQsIHNldHRlcj1fc2V0Q29va2llU3Rv
cmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQ6KSBCT09MIF9jb29raWVTdG9yYWdlUGFydGl0aW9uaW5n
RW5hYmxlZCBXS19BUElfREVQUkVDQVRFRCgiUGFydGl0aW9uZWQgY29va2llcyBhcmUgbm8gbG9u
Z2VyIHN1cHBvcnRlZCIsIG1hY29zKDEwLjEyLjMsIFdLX01BQ19UQkEpLCBpb3MoMTAuMywgV0tf
SU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNDb29raWVTdG9yYWdl
UGFydGl0aW9uaW5nRW5hYmxlZCwgc2V0dGVyPV9zZXRDb29raWVTdG9yYWdlUGFydGl0aW9uaW5n
RW5hYmxlZDopIEJPT0wgX2Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkIFdLX0FQSV9E
RVBSRUNBVEVEKCJQYXJ0aXRpb25lZCBjb29raWVzIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkIiwg
bWFjb3MoMTAuMTIuMywgMTAuMTQuNCksIGlvcygxMC4zLCAxMi4yKSk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgZ2V0dGVyPV9pc1N0b3JhZ2VBY2Nlc3NBUElFbmFibGVkLCBzZXR0ZXI9X3NldFN0
b3JhZ2VBY2Nlc3NBUElFbmFibGVkOikgQk9PTCBfc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIC0gKHZvaWQpX3N5bnRo
ZXNpemVBcHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3VuZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tUeXBlUmVmV3JhcHBlci5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVHlwZVJlZldyYXBwZXIuaAppbmRleCA0ODAzYjIy
ZmVlM2UyY2FiZTNlZGY3MWU2NzQ4YWNhOGIxMzM0YWIxLi5hNzNlYmUzMWI2ZGVkZTU5MjVmOTY0
YzBlZjNjZjg5NmFkODBjYWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tUeXBlUmVmV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1R5cGVSZWZXcmFwcGVyLmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpbXBvcnQg
PEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQmFzZS5oPgogCi1X
S19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLT2JqZWN0IiwgbWFjb3MoMTAu
MTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FU
RURfV0lUSF9SRVBMQUNFTUVOVCgiV0tPYmplY3QiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlv
cyg4LjAsIDEyLjIpKQogQGludGVyZmFjZSBXS1R5cGVSZWZXcmFwcGVyIDogTlNPYmplY3QKIAog
LSAoaWQpaW5pdFdpdGhPYmplY3Q6KFdLVHlwZVJlZilvYmplY3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRl
eCA0ZDcwZWUyZmYwZjFkMjQxMmUzNmZiNzgzMTk0NTU2NjM0MzQ4MGRmLi5iZWMyZDY0ODZhNjBj
NjRjY2FmNjk5OWNlOGFiZmZjMTc3NGE0Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTc0LDcgKzc0
LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS0F1dG9wbGF5RXZlbnRGbGFn
cykgewogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRm9jdXNEaXJlY3Rpb24pIHsKICAg
ICBfV0tGb2N1c0RpcmVjdGlvbkJhY2t3YXJkLAogICAgIF9XS0ZvY3VzRGlyZWN0aW9uRm9yd2Fy
ZCwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEpKTsK
K30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDEyLjIpKTsKIAogQHByb3Rv
Y29sIFdLVUlEZWxlZ2F0ZVByaXZhdGUgPFdLVUlEZWxlZ2F0ZT4KIApAQCAtOTgsOCArOTgsOCBA
QCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlld0RpZEVudGVyRnVsbHNjcmVl
bjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9z
KDguMykpOwogLSAodm9pZClfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil3
ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOC4zKSk7CiAtICh2b2lk
KV93ZWJWaWV3UmVxdWVzdFBvaW50ZXJMb2NrOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTIuMykpOwotLSAodm9pZClfd2ViVmlld0RpZFJlcXVlc3RQb2lu
dGVyTG9jazooV0tXZWJWaWV3ICopd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
Qk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3dlYlZpZXdEaWRTaG93U2FmZUJyb3dzaW5n
V2FybmluZzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlld0RpZFJlcXVlc3RQb2lu
dGVyTG9jazooV0tXZWJWaWV3ICopd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
Qk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWRTaG93U2FmZUJyb3dzaW5nV2FybmluZzoo
V0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3Mo
MTIuMikpOwogLSAodm9pZClfd2ViVmlld0RpZExvc2VQb2ludGVyTG9jazooV0tXZWJWaWV3ICop
d2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpKTsKIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRDaGFu
Z2U6KEJPT0wpaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMyksIGlvcygxMS4wKSk7CiAKQEAgLTExOSwxNSArMTE5LDE1IEBAIHN0cnVjdCBVSUVk
Z2VJbnNldHM7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUmVt
b3ZlQXR0YWNobWVudDooX1dLQXR0YWNobWVudCAqKWF0dGFjaG1lbnQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgZGlkSW5zZXJ0QXR0YWNobWVudDooX1dLQXR0YWNobWVudCAqKWF0dGFjaG1l
bnQgd2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNCksIGlvcygxMi4wKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGRpZEludmFsaWRhdGVEYXRhRm9yQXR0YWNobWVudDooX1dLQXR0YWNobWVudCAqKWF0dGFjaG1l
bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
Ky0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkSW52YWxpZGF0ZURhdGFG
b3JBdHRhY2htZW50OihfV0tBdHRhY2htZW50ICopYXR0YWNobWVudCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5j
ZVdpdGhVc2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyByZXF1ZXN0U3RvcmFnZUFjY2Vzc1BhbmVsRm9yRG9tYWluOihOU1N0cmlu
ZyAqKXJlcXVlc3RpbmdEb21haW4gdW5kZXJDdXJyZW50RG9tYWluOihOU1N0cmluZyAqKWN1cnJl
bnREb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgcmVzdWx0KSljb21wbGV0
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAot
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRDaGFuZ2VGb250QXR0cmli
dXRlczooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWZvbnRBdHRyaWJ1dGVzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOihO
U0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopZm9udEF0dHJpYnV0ZXMgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAotLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyB0YWtlRm9jdXM6KF9XS0ZvY3VzRGlyZWN0aW9uKWRpcmVjdGlvbiBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB0YWtlRm9jdXM6KF9XS0ZvY3VzRGlyZWN0
aW9uKWRpcmVjdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTIuMikp
OwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBzaG91bGRJbmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50OihfV0tBY3RpdmF0
ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7CkBAIC0x
NjEsNyArMTYxLDcgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgZGF0YUludGVyYWN0aW9uT3BlcmF0aW9uV2FzSGFuZGxlZDooQk9P
TCloYW5kbGVkIGZvclNlc3Npb246KGlkKXNlc3Npb24gaXRlbVByb3ZpZGVyczooTlNBcnJheSAq
KWl0ZW1Qcm92aWRlcnMgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogLSAoTlNVSW50ZWdl
cilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxsVXBkYXRlRGF0YUludGVyYWN0aW9u
T3BlcmF0aW9uVG9PcGVyYXRpb246KE5TVUludGVnZXIpb3BlcmF0aW9uIGZvclNlc3Npb246KGlk
KXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogI2lmIFRBUkdFVF9PU19JT1MK
LS0gKFVJRHJvcFByb3Bvc2FsICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFVw
ZGF0ZURyb3BQcm9wb3NhbFRvUHJvcG9zYWw6KFVJRHJvcFByb3Bvc2FsICopcHJvcG9zYWwgZm9y
U2Vzc2lvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3Mo
V0tfSU9TX1RCQSkpOworLSAoVUlEcm9wUHJvcG9zYWwgKilfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyB3aWxsVXBkYXRlRHJvcFByb3Bvc2FsVG9Qcm9wb3NhbDooVUlEcm9wUHJvcG9zYWwg
Kilwcm9wb3NhbCBmb3JTZXNzaW9uOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBXS19BUElf
QVZBSUxBQkxFKGlvcygxMi4yKSk7CiAtIChVSVRhcmdldGVkRHJhZ1ByZXZpZXcgKilfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Rm9yTGlmdGluZ0l0ZW06KFVJRHJhZ0l0ZW0g
KilpdGVtIHNlc3Npb246KGlkIDxVSURyYWdTZXNzaW9uPilzZXNzaW9uIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKDExLjApKTsKIC0gKFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHByZXZpZXdGb3JDYW5jZWxsaW5nSXRlbTooVUlEcmFnSXRlbSAqKWl0
ZW0gd2l0aERlZmF1bHQ6KFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqKWRlZmF1bHRQcmV2aWV3IFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKIC0gKE5TQXJyYXk8VUlEcmFnSXRlbSAqPiAqKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJmb3JtRHJvcFdpdGhTZXNzaW9uOihp
ZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CkBA
IC0yMDUsMTAgKzIwNSwxMCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBnZXRXaW5kb3dGcmFtZVdpdGhDb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoQ0dSZWN0KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2V0
V2luZG93RnJhbWU6KENHUmVjdClmcmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
KTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgdW5hdmFpbGFibGVQbHVn
SW5CdXR0b25DbGlja2VkV2l0aFJlYXNvbjooX1dLUGx1Z0luVW5hdmFpbGFiaWxpdHlSZWFzb24p
cmVhc29uIHBsdWdJbkluZm86KE5TRGljdGlvbmFyeSAqKXBsdWdJbkluZm87Ci0tIChOU01lbnUg
Kilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudTooTlNNZW51ICopbWVu
dSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElf
REVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpnZXRDb250ZXh0TWVudUZyb21Q
cm9wb3NlZE1lbnU6Zm9yRWxlbWVudDp1c2VySW5mbzpjb21wbGV0aW9uSGFuZGxlcjoiLCBtYWNv
cygxMC4xMiwgV0tfTUFDX1RCQSkpOwotLSAoTlNNZW51ICopX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29udGV4
dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4p
dXNlckluZm8gV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX3dlYlZpZXc6Z2V0
Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51OmZvckVsZW1lbnQ6dXNlckluZm86Y29tcGxldGlv
bkhhbmRsZXI6IiwgbWFjb3MoMTAuMTIsIFdLX01BQ19UQkEpKTsKKy0gKE5TTWVudSAqKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZvckVs
ZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoIl93ZWJWaWV3OmdldENvbnRleHRNZW51RnJvbVByb3Bvc2Vk
TWVudTpmb3JFbGVtZW50OnVzZXJJbmZvOmNvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEy
LCAxMC4xNC40KSk7CistIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBj
b250ZXh0TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1l
bnRJbmZvICopZWxlbWVudCB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBX
S19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpnZXRDb250ZXh0TWVu
dUZyb21Qcm9wb3NlZE1lbnU6Zm9yRWxlbWVudDp1c2VySW5mbzpjb21wbGV0aW9uSGFuZGxlcjoi
LCBtYWNvcygxMC4xMiwgMTAuMTQuNCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBnZXRDb250ZXh0TWVudUZyb21Qcm9wb3NlZE1lbnU6KE5TTWVudSAqKW1lbnUgZm9y
RWxlbWVudDooX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgdXNlckluZm86KGlk
IDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
TWVudSAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSk7
Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFBlcmZvcm1EcmFnT3Bl
cmF0aW9uOihCT09MKWhhbmRsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSk7
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFBlcmZvcm1EcmFnT3Bl
cmF0aW9uOihCT09MKWhhbmRsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSk7CiAj
ZW5kaWYgLy8gVEFSR0VUX09TX0lQSE9ORQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tWaWV3LmgKaW5kZXggZmZiNjhmMTVlYmM1YzE2NWM5YjE3NzM3NTJkYzMz
MmQ5ZWRiNWIzNy4uNmUzZDc5YTVmYzViNmEzMDhlNzM5MjYxMjE0MjY2ZjM1MTVlYzI0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXcuaApAQCAtMzUsNyArMzUs
NyBAQAogQGNsYXNzIFdLUHJvY2Vzc0dyb3VwOwogQGNsYXNzIFdLVmlld0RhdGE7CiAKLVdLX0NM
QVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3IiwgbWFjb3MoMTAuMTAs
IFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3IiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBpb3Mo
OC4wLCAxMi4yKSkKIEBpbnRlcmZhY2UgV0tWaWV3IDogTlNWaWV3IDxOU1RleHRJbnB1dENsaWVu
dD4gewogQHByaXZhdGUKICAgICBXS1ZpZXdEYXRhICpfZGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb25Qcml2YXRlLmgKaW5kZXggOGNiZTBhNGRhYTczMTg1YmQzZWMyMDVlNTg4NzMxYWJlYTRj
NTM0ZC4uNjBhZTA2ZTQ5NTFlMjkyZTVkMmE2OGRlNGVlZTAxODdhMGMzNGFjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRp
b25Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKQEAgLTYzLDcgKzYzLDcgQEAgdHlwZWRlZiBOU19F
TlVNKE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEludmlzaWJsZUF1dG9wbGF5Tm90UGVybWl0dGVkOikgQk9PTCBfaW52aXNp
YmxlQXV0b3BsYXlOb3RQZXJtaXR0ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlv
cygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYURhdGFMb2Fk
c0F1dG9tYXRpY2FsbHk6KSBCT09MIF9tZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRBdHRhY2htZW50RWxlbWVudEVuYWJsZWQ6KSBCT09MIF9hdHRhY2htZW50
RWxlbWVudEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBdHRhY2htZW50RmlsZVdyYXBwZXJD
bGFzczopIENsYXNzIF9hdHRhY2htZW50RmlsZVdyYXBwZXJDbGFzcyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0QXR0YWNobWVudEZpbGVXcmFwcGVyQ2xhc3M6KSBDbGFzcyBfYXR0YWNo
bWVudEZpbGVXcmFwcGVyQ2xhc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9z
KDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEluaXRpYWxDYXBpdGFs
aXphdGlvbkVuYWJsZWQ6KSBCT09MIF9pbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0QXBwbGVQYXlFbmFibGVkOikgQk9PTCBfYXBwbGVQYXlFbmFibGVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0V2FpdHNGb3JQYWludEFmdGVyVmlld0RpZE1vdmVUb1dpbmRvdzop
IEJPT0wgX3dhaXRzRm9yUGFpbnRBZnRlclZpZXdEaWRNb3ZlVG9XaW5kb3cgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKQEAgLTEwMyw5ICsxMDMsOSBAQCB0eXBl
ZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxheSkgewogQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydEFzRmFsbGJhY2s6KSBCT09MIF9hbGxvd01lZGlhQ29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0QXNGYWxsYmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
KSwgaW9zKDExLjApKTsKIAogLy8gVGhlIGlucHV0IG9mIHRoaXMgU1BJIGlzIGFuIGFycmF5IG9m
IGltYWdlIFVUSSAoVW5pZm9ybSBUeXBlIElkZW50aWZpZXIpLgotQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHksIHNldHRlcj1fc2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM6KSBOU0Fy
cmF5PE5TU3RyaW5nICo+ICpfYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVz
OikgTlNBcnJheTxOU1N0cmluZyAqPiAqX2FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEVkaXRhYmxlSW1hZ2VzRW5hYmxlZDopIEJPT0wgX2VkaXRh
YmxlSW1hZ2VzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RWRpdGFibGVJ
bWFnZXNFbmFibGVkOikgQk9PTCBfZWRpdGFibGVJbWFnZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRVbmRvTWFuYWdlckFQSUVuYWJsZWQ6KSBCT09MIF91bmRvTWFuYWdlckFQSUVuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmgKaW5kZXggMDZjMWViNGE2ODU2ZDc5Nzg4Y2QyM2JlZTQ2NjdiNjUxODdh
MjQ3Zi4uMGYxNzhjMDk4M2M3ZWYwZjViNGJlZDFjNGI3ZDcxODE1ODE2NzBiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
CkBAIC0xNTUsNyArMTU1LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1Jl
Y3RFZGdlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRVc2VyQ29udGVudEV4
dGVuc2lvbnNFbmFibGVkOikgQk9PTCBfdXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIHBpZF90IF93ZWJQcm9jZXNzSWRlbnRpZmllcjsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgcGlkX3QgX3Byb3Zpc2lvbmFsV2ViUHJvY2Vzc0lkZW50aWZp
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgcGlkX3QgX3Byb3Zpc2lvbmFsV2ViUHJv
Y2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIp
KTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNFZGl0YWJsZSwgc2V0dGVyPV9z
ZXRFZGl0YWJsZTopIEJPT0wgX2VkaXRhYmxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEp
LCBpb3MoOS4wKSk7CiAKQEAgLTE5MCw1NCArMTkwLDU0IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhO
U1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRWaWV3U2NhbGU6KSBDR0Zsb2F0IF92aWV3U2NhbGUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMSksIGlvcyg5LjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
TWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoOikgQ0dGbG9hdCBfbWluaW11bUVmZmVjdGl2ZURl
dmljZVdpZHRoIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNaW5pbXVtRWZmZWN0aXZl
RGV2aWNlV2lkdGg6KSBDR0Zsb2F0IF9taW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGggV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0QmFja2dyb3VuZEV4dGVuZHNCZXlvbmRQYWdlOikgQk9PTCBfYmFj
a2dyb3VuZEV4dGVuZHNCZXlvbmRQYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCks
IGlvcyg4LjApKTsKIAotLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRBdHRhY2htZW50V2l0aEZp
bGVuYW1lOihOU1N0cmluZyAqKWZpbGVuYW1lIGNvbnRlbnRUeXBlOihOU1N0cmluZyAqKWNvbnRl
bnRUeXBlIGRhdGE6KE5TRGF0YSAqKWRhdGEgb3B0aW9uczooX1dLQXR0YWNobWVudERpc3BsYXlP
cHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3VjY2VzcykpY29tcGxl
dGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLV9pbnNlcnRB
dHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOmNvbnRlbnRUeXBlOm9wdGlvbnM6Y29tcGxldGlvbjoi
LCBtYWNvcygxMC4xMy40LCBXS19NQUNfVEJBKSwgaW9zKDExLjMsIFdLX0lPU19UQkEpKTsKLS0g
KF9XS0F0dGFjaG1lbnQgKilfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjooTlNGaWxl
V3JhcHBlciAqKWZpbGVXcmFwcGVyIGNvbnRlbnRUeXBlOihOU1N0cmluZyAqKWNvbnRlbnRUeXBl
IG9wdGlvbnM6KF9XS0F0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyAqKW9wdGlvbnMgY29tcGxldGlv
bjoodm9pZCheKShCT09MIHN1Y2Nlc3MpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoIi1faW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjpj
b250ZW50VHlwZTpjb21wbGV0aW9uOiIsIG1hY29zKFdLX01BQ19UQkEsIFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSkpOwotLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRB
dHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOihOU0ZpbGVXcmFwcGVyICopZmlsZVdyYXBwZXIgY29u
dGVudFR5cGU6KE5TU3RyaW5nICopY29udGVudFR5cGUgY29tcGxldGlvbjoodm9pZCheKShCT09M
IHN1Y2Nlc3MpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChfV0tBdHRhY2htZW50ICopX2F0dGFjaG1lbnRG
b3JJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLQotLSAodm9pZClfc2ltdWxhdGVEZXZp
Y2VPcmllbnRhdGlvbkNoYW5nZVdpdGhBbHBoYTooZG91YmxlKWFscGhhIGJldGE6KGRvdWJsZSli
ZXRhIGdhbW1hOihkb3VibGUpZ2FtbWEgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKLQotKyAoQk9PTClfaGFuZGxlc1NhZmVCcm93c2luZyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotKyAoTlNV
UkwgKilfY29uZmlybU1hbHdhcmVTZW50aW5lbCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotKyAoTlNVUkwgKilfdmlzaXRVbnNhZmVXZWJzaXRl
U2VudGluZWwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKLS0gKHZvaWQpX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nV2l0aFRpdGxlOihOU1N0cmlu
ZyAqKXRpdGxlIHdhcm5pbmc6KE5TU3RyaW5nICopd2FybmluZyBkZXRhaWxzOihOU0F0dHJpYnV0
ZWRTdHJpbmcgKilkZXRhaWxzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wpKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7Ci0tICh2b2lkKV9zaG93U2FmZUJyb3dzaW5nV2FybmluZ1dpdGhVUkw6KE5TVVJM
ICopdXJsIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIHdhcm5pbmc6KE5TU3RyaW5nICopd2Fybmlu
ZyBkZXRhaWxzOihOU0F0dHJpYnV0ZWRTdHJpbmcgKilkZXRhaWxzIGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0KLS0gKHZvaWQpX2lzSklURW5hYmxlZDoo
dm9pZCheKShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfcmVtb3ZlRGF0YURldGVjdGVk
TGlua3M6KGRpc3BhdGNoX2Jsb2NrX3QpY29tcGxldGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotCi0tIChJQkFjdGlvbilfYWxpZ25DZW50
ZXI6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2FsaWduSnVzdGlmaWVkOihpZClzZW5kZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0
aW9uKV9hbGlnbkxlZnQ6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2FsaWduUmlnaHQ6KGlkKXNlbmRl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwot
LSAoSUJBY3Rpb24pX2luZGVudDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfb3V0ZGVudDooaWQpc2Vu
ZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
Ci0tIChJQkFjdGlvbilfdG9nZ2xlU3RyaWtlVGhyb3VnaDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilf
aW5zZXJ0T3JkZXJlZExpc3Q6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2luc2VydFVub3JkZXJlZExp
c3Q6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2luc2VydE5lc3RlZE9yZGVyZWRMaXN0OihpZClzZW5k
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
LS0gKElCQWN0aW9uKV9pbnNlcnROZXN0ZWRVbm9yZGVyZWRMaXN0OihpZClzZW5kZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0
aW9uKV9pbmNyZWFzZUxpc3RMZXZlbDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfZGVjcmVhc2VMaXN0
TGV2ZWw6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2NoYW5nZUxpc3RUeXBlOihpZClzZW5kZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElC
QWN0aW9uKV9wYXN0ZUFzUXVvdGF0aW9uOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV9wYXN0ZUFuZE1h
dGNoU3R5bGU6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX3Rha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlv
bjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7Ci0KLUBwcm9wZXJ0eSAoY2xhc3MsIG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9z
ZXRTdHJpbmdGb3JGaW5kOikgTlNTdHJpbmcgKl9zdHJpbmdGb3JGaW5kIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChfV0tBdHRhY2htZW50
ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZW5hbWU6KE5TU3RyaW5nICopZmlsZW5hbWUgY29u
dGVudFR5cGU6KE5TU3RyaW5nICopY29udGVudFR5cGUgZGF0YTooTlNEYXRhICopZGF0YSBvcHRp
b25zOihfV0tBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgKilvcHRpb25zIGNvbXBsZXRpb246KHZv
aWQoXikoQk9PTCBzdWNjZXNzKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRFRF9X
SVRIX1JFUExBQ0VNRU5UKCItX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6Y29udGVu
dFR5cGU6b3B0aW9uczpjb21wbGV0aW9uOiIsIG1hY29zKDEwLjEzLjQsIDEwLjE0LjQpLCBpb3Mo
MTEuMywgMTIuMikpOworLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRBdHRhY2htZW50V2l0aEZp
bGVXcmFwcGVyOihOU0ZpbGVXcmFwcGVyICopZmlsZVdyYXBwZXIgY29udGVudFR5cGU6KE5TU3Ry
aW5nICopY29udGVudFR5cGUgb3B0aW9uczooX1dLQXR0YWNobWVudERpc3BsYXlPcHRpb25zICop
b3B0aW9ucyBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3VjY2VzcykpY29tcGxldGlvbkhhbmRs
ZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLV9pbnNlcnRBdHRhY2htZW50
V2l0aEZpbGVXcmFwcGVyOmNvbnRlbnRUeXBlOmNvbXBsZXRpb246IiwgbWFjb3MoMTAuMTQuNCwg
MTAuMTQuNCksIGlvcygxMi4yLCAxMi4yKSk7CistIChfV0tBdHRhY2htZW50ICopX2luc2VydEF0
dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIgKilmaWxlV3JhcHBlciBjb250
ZW50VHlwZTooTlNTdHJpbmcgKiljb250ZW50VHlwZSBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wg
c3VjY2VzcykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40
KSwgaW9zKDEyLjIpKTsKKy0gKF9XS0F0dGFjaG1lbnQgKilfYXR0YWNobWVudEZvcklkZW50aWZp
ZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQp
LCBpb3MoMTIuMikpOworCistICh2b2lkKV9zaW11bGF0ZURldmljZU9yaWVudGF0aW9uQ2hhbmdl
V2l0aEFscGhhOihkb3VibGUpYWxwaGEgYmV0YTooZG91YmxlKWJldGEgZ2FtbWE6KGRvdWJsZSln
YW1tYSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworCisrIChC
T09MKV9oYW5kbGVzU2FmZUJyb3dzaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7CisrIChOU1VSTCAqKV9jb25maXJtTWFsd2FyZVNlbnRpbmVsIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CisrIChOU1VSTCAqKV92aXNpdFVu
c2FmZVdlYnNpdGVTZW50aW5lbCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3Mo
MTIuMikpOworLSAodm9pZClfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmdXaXRoVGl0bGU6KE5TU3Ry
aW5nICopdGl0bGUgd2FybmluZzooTlNTdHJpbmcgKil3YXJuaW5nIGRldGFpbHM6KE5TQXR0cmli
dXRlZFN0cmluZyAqKWRldGFpbHMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCkpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIp
KTsKKy0gKHZvaWQpX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nV2l0aFVSTDooTlNVUkwgKil1cmwg
dGl0bGU6KE5TU3RyaW5nICopdGl0bGUgd2FybmluZzooTlNTdHJpbmcgKil3YXJuaW5nIGRldGFp
bHM6KE5TQXR0cmlidXRlZFN0cmluZyAqKWRldGFpbHMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQo
XikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40
KSwgaW9zKDEyLjIpKTsKKworLSAodm9pZClfaXNKSVRFbmFibGVkOih2b2lkKF4pKEJPT0wpKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4y
KSk7CistICh2b2lkKV9yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rczooZGlzcGF0Y2hfYmxvY2tfdClj
b21wbGV0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CisK
Ky0gKElCQWN0aW9uKV9hbGlnbkNlbnRlcjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfYWxpZ25KdXN0aWZpZWQ6KGlk
KXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAo
SUJBY3Rpb24pX2FsaWduTGVmdDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfYWxpZ25SaWdodDooaWQpc2VuZGVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilf
aW5kZW50OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKKy0gKElCQWN0aW9uKV9vdXRkZW50OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKElCQWN0aW9uKV90b2dnbGVTdHJpa2VUaHJv
dWdoOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIp
KTsKKy0gKElCQWN0aW9uKV9pbnNlcnRPcmRlcmVkTGlzdDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfaW5zZXJ0VW5v
cmRlcmVkTGlzdDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlv
cygxMi4yKSk7CistIChJQkFjdGlvbilfaW5zZXJ0TmVzdGVkT3JkZXJlZExpc3Q6KGlkKXNlbmRl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAoSUJBY3Rp
b24pX2luc2VydE5lc3RlZFVub3JkZXJlZExpc3Q6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAoSUJBY3Rpb24pX2luY3JlYXNlTGlzdExl
dmVsOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIp
KTsKKy0gKElCQWN0aW9uKV9kZWNyZWFzZUxpc3RMZXZlbDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfY2hhbmdlTGlz
dFR5cGU6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIu
MikpOworLSAoSUJBY3Rpb24pX3Bhc3RlQXNRdW90YXRpb246KGlkKXNlbmRlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAoSUJBY3Rpb24pX3Bhc3RlQW5k
TWF0Y2hTdHlsZTooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlv
cygxMi4yKSk7CistIChJQkFjdGlvbilfdGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uOihpZClz
ZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKworQHBy
b3BlcnR5IChjbGFzcywgbm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFN0cmluZ0ZvckZpbmQ6
KSBOU1N0cmluZyAqX3N0cmluZ0ZvckZpbmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40
KSwgaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLU2VsZWN0
aW9uQXR0cmlidXRlcyBfc2VsZWN0aW9uQXR0cmlidXRlcyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQog
Ci0tICh2b2lkKV9zZXRGb250OihVSUZvbnQgKilmb250IHNlbmRlcjooaWQpc2VuZGVyIFdLX0FQ
SV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3NldEZvbnRTaXplOihDR0Zs
b2F0KWZvbnRTaXplIHNlbmRlcjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lP
U19UQkEpKTsKLS0gKHZvaWQpX3NldFRleHRDb2xvcjooVUlDb2xvciAqKWNvbG9yIHNlbmRlcjoo
aWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3Nl
dEZvbnQ6KFVJRm9udCAqKWZvbnQgc2VuZGVyOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShp
b3MoMTIuMikpOworLSAodm9pZClfc2V0Rm9udFNpemU6KENHRmxvYXQpZm9udFNpemUgc2VuZGVy
OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMikpOworLSAodm9pZClfc2V0VGV4
dENvbG9yOihVSUNvbG9yICopY29sb3Igc2VuZGVyOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJM
RShpb3MoMTIuMikpOwogCi0tICh2b2lkKV9kZXRlY3REYXRhV2l0aFR5cGVzOihXS0RhdGFEZXRl
Y3RvclR5cGVzKXR5cGVzIGNvbXBsZXRpb25IYW5kbGVyOihkaXNwYXRjaF9ibG9ja190KWNvbXBs
ZXRpb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfZGV0ZWN0
RGF0YVdpdGhUeXBlczooV0tEYXRhRGV0ZWN0b3JUeXBlcyl0eXBlcyBjb21wbGV0aW9uSGFuZGxl
cjooZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEyLjIp
KTsKIAogLy8gREVSRUNBVEVEOiBUaGUgc2V0dGVycyBvZiB0aGUgdGhyZWUgZm9sbG93aW5nIGZ1
bmN0aW9uIGFyZSBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIG92ZXJyaWRlTGF5b3V0UGFyYW1ldGVy
cy4KIC8vIERlZmluZSB0aGUgc21hbGxlc3Qgc2l6ZSBhIHBhZ2UgdGFrZSB3aXRoIGEgcmVndWxh
ciB2aWV3cG9ydC4KQEAgLTMwMyw5ICszMDMsOSBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50
ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlSZXRyaWV2ZVNwZWFr
U2VsZWN0aW9uQ29udGVudCBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtICh2b2lkKV9h
Y2Nlc3NpYmlsaXR5RGlkR2V0U3BlYWtTZWxlY3Rpb25Db250ZW50OihOU1N0cmluZyAqKWNvbnRl
bnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIFVJVmlldyAqX3NhZmVCcm93c2luZ1dhcm5pbmcgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgVUlWaWV3ICpfc2FmZUJyb3dzaW5nV2FybmluZyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogI2Vsc2UKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgTlNWaWV3ICpfc2FmZUJyb3dzaW5nV2FybmluZyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBOU1ZpZXcgKl9zYWZlQnJvd3NpbmdXYXJuaW5nIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgX1dLUmVjdEVkZ2UgX3Bpbm5lZFN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMuNCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UnViYmVyQmFuZGlu
Z0VuYWJsZWQ6KSBfV0tSZWN0RWRnZSBfcnViYmVyQmFuZGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSk7CkBAIC00OTUsNyArNDk1LDcgQEAgdHlwZWRlZiBOU19PUFRJ
T05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5Q2xl
YXJTZWxlY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMykpOwogLSAoVUlWaWV3ICopX2Z1
bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMCkpOwogCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2NvbnRlbnRWaWV3SXNGaXJzdFJl
c3BvbmRlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2NvbnRlbnRWaWV3SXNGaXJzdFJlc3BvbmRlciBXS19B
UElfQVZBSUxBQkxFKGlvcygxMi4yKSk7CiAjZWxzZQogLSAodm9pZClfZGlzbWlzc0NvbnRlbnRS
ZWxhdGl2ZUNoaWxkV2luZG93cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIC0g
KHZvaWQpX3NldEZyYW1lOihOU1JlY3QpcmVjdCBhbmRTY3JvbGxCeTooTlNTaXplKW9mZnNldCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKQEAgLTUzMyw3ICs1MzMsNyBAQCB0eXBl
ZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIAogLSAodm9pZClfc2V0
SGVhZGVyQmFubmVySGVpZ2h0OihpbnQpaGVpZ2h0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTIuMykpOwogLSAodm9pZClfc2V0Rm9vdGVyQmFubmVySGVpZ2h0OihpbnQpaGVpZ2h0IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMykpOwotLSAodm9pZClfZG9BZnRlclByb2Nlc3NpbmdB
bGxQZW5kaW5nTW91c2VFdmVudHM6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworLSAodm9pZClfZG9BZnRlclByb2Nlc3NpbmdBbGxQ
ZW5kaW5nTW91c2VFdmVudHM6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTQuNCkpOwogI2VuZGlmCiAKIC0gKHZvaWQpX3JlcXVlc3RBY3RpdmVOb3dQ
bGF5aW5nU2Vzc2lvbkluZm86KHZvaWQoXikoQk9PTCwgQk9PTCwgTlNTdHJpbmcqLCBkb3VibGUs
IGRvdWJsZSwgTlNJbnRlZ2VyKSljYWxsYmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
LjQpLCBpb3MoMTEuMykpOwpAQCAtNTU1LDExICs1NTUsMTEgQEAgdHlwZWRlZiBOU19PUFRJT05T
KE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAtIChCT09MKV9jb21wbGV0ZUJhY2tTd2lwZUZv
clRlc3Rpbmc7CiAtICh2b2lkKV9zZXREZWZlcnNMb2FkaW5nRm9yVGVzdGluZzooQk9PTClkZWZl
cnNMb2FkaW5nOwogCi0tICh2b2lkKV9zZXRTaGFyZVNoZWV0Q29tcGxldGVzSW1tZWRpYXRlbHlX
aXRoUmVzb2x1dGlvbkZvclRlc3Rpbmc6KEJPT0wpcmVzb2x2ZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3NldFNoYXJlU2hl
ZXRDb21wbGV0ZXNJbW1lZGlhdGVseVdpdGhSZXNvbHV0aW9uRm9yVGVzdGluZzooQk9PTClyZXNv
bHZlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCi1AcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2hhc0luc3BlY3RvckZyb250ZW5kIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS0luc3BlY3RvciAqX2luc3BlY3RvciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tGcmFtZUhhbmRsZSAqX21haW5GcmFtZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9oYXNJbnNwZWN0b3JGcm9udGVuZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBfV0tJbnNwZWN0b3IgKl9pbnNwZWN0b3IgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgX1dLRnJhbWVIYW5kbGUgKl9tYWluRnJhbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
U2Nyb2xsaW5nVXBkYXRlc0Rpc2FibGVkRm9yVGVzdGluZzopIEJPT0wgX3Njcm9sbGluZ1VwZGF0
ZXNEaXNhYmxlZEZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKaW5kZXggNmQwZTdm
ODNiNGMxNGUzZmEzNDQ4M2FkY2I2MmQ3MDkzNmI0ZDYyYS4uMmY4ZjQ2MjgwNjhjNjdiZjU2MDE3
MGM1Zjg3MzgwOTM0NzM1MmMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCkBAIC01NSw4
ICs1NSw4IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0
b3JlRmV0Y2hPcHRpb25zKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRCb3Vu
ZEludGVyZmFjZUlkZW50aWZpZXI6KSBOU1N0cmluZyAqX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmll
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3M6KSBCT09MIF9hbGxv
d3NDZWxsdWxhckFjY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEu
MykpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJveHlDb25maWd1cmF0aW9u
OikgTlNEaWN0aW9uYXJ5ICpfcHJveHlDb25maWd1cmF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTQpLCBpb3MoMTIuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRl
cj1fc2V0U291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyOikgTlNTdHJpbmcgKl9zb3Vy
Y2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBz
ZXR0ZXI9X3NldFNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcjopIE5TU3RyaW5n
ICpfc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSwgc2V0dGVyPV9zZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI6KSBO
U1N0cmluZyAqX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMsIGNv
cHksIHNldHRlcj1fc2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOikgTlNT
dHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldEFsbG93c1RMU0ZhbGxiYWNrOikgQk9PTCBfYWxsb3dzVExTRmFsbGJhY2sgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqX2luZGV4ZWREQkRhdGFiYXNlRGly
ZWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0F0dGFjaG1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRh
Y2htZW50LmgKaW5kZXggM2MzNTc4ODU0ZjliZmJkMzVmMTcyODc4ZjBjNmVjMDJjZjBhOWZiMi4u
MzdlODIzOTljMWNmMDgyMWRjOWZjZGM0NmQwMDYyOThjMWEzOTcxYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5oCkBAIC01MiwxNSAr
NTIsMTUgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKQogV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpCiBAaW50ZXJmYWNlIF9X
S0F0dGFjaG1lbnQgOiBOU09iamVjdAogCi0tICh2b2lkKXNldEZpbGVXcmFwcGVyOihOU0ZpbGVX
cmFwcGVyICopZmlsZVdyYXBwZXIgY29udGVudFR5cGU6KG51bGxhYmxlIE5TU3RyaW5nICopY29u
dGVudFR5cGUgY29tcGxldGlvbjoodm9pZCheIF9OdWxsYWJsZSkoTlNFcnJvciAqIF9OdWxsYWJs
ZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpc2V0RmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIg
KilmaWxlV3JhcHBlciBjb250ZW50VHlwZToobnVsbGFibGUgTlNTdHJpbmcgKiljb250ZW50VHlw
ZSBjb21wbGV0aW9uOih2b2lkKF4gX051bGxhYmxlKShOU0Vycm9yICogX051bGxhYmxlKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIG51bGxhYmxlKSBfV0tBdHRhY2ht
ZW50SW5mbyAqaW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSkgX1dL
QXR0YWNobWVudEluZm8gKmluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9z
KDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKnVuaXF1
ZUlkZW50aWZpZXI7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0Nv
bm5lY3RlZCkgQk9PTCBjb25uZWN0ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0
dGVyPWlzQ29ubmVjdGVkKSBCT09MIGNvbm5lY3RlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE0LjQpLCBpb3MoMTIuMikpOwogCiAvLyBEZXByZWNhdGVkIFNQSS4KLS0gKHZvaWQpcmVxdWVz
dEluZm86KHZvaWQoXikoX1dLQXR0YWNobWVudEluZm8gKiBfTnVsbGFibGUsIE5TRXJyb3IgKiBf
TnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFD
RU1FTlQoIi1pbmZvIiwgbWFjb3MoMTAuMTQsIFdLX01BQ19UQkEpLCBpb3MoMTIuMCwgV0tfSU9T
X1RCQSkpOwotLSAodm9pZClzZXREYXRhOihOU0RhdGEgKilkYXRhIG5ld0NvbnRlbnRUeXBlOihu
dWxsYWJsZSBOU1N0cmluZyAqKW5ld0NvbnRlbnRUeXBlIG5ld0ZpbGVuYW1lOihudWxsYWJsZSBO
U1N0cmluZyAqKW5ld0ZpbGVuYW1lIGNvbXBsZXRpb246KHZvaWQoXiBfTnVsbGFibGUpKE5TRXJy
b3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoIlBsZWFzZSB1c2UgLXNldEZpbGVXcmFwcGVyOmNvbnRlbnRUeXBlOmNvbXBs
ZXRpb246IGluc3RlYWQuIiwgbWFjb3MoMTAuMTMuNCwgV0tfTUFDX1RCQSksIGlvcygxMS4zLCBX
S19JT1NfVEJBKSk7CistICh2b2lkKXJlcXVlc3RJbmZvOih2b2lkKF4pKF9XS0F0dGFjaG1lbnRJ
bmZvICogX051bGxhYmxlLCBOU0Vycm9yICogX051bGxhYmxlKSljb21wbGV0aW9uSGFuZGxlciBX
S19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCItaW5mbyIsIG1hY29zKDEwLjE0LCAx
MC4xNC40KSwgaW9zKDEyLjAsIDEyLjIpKTsKKy0gKHZvaWQpc2V0RGF0YTooTlNEYXRhICopZGF0
YSBuZXdDb250ZW50VHlwZToobnVsbGFibGUgTlNTdHJpbmcgKiluZXdDb250ZW50VHlwZSBuZXdG
aWxlbmFtZToobnVsbGFibGUgTlNTdHJpbmcgKiluZXdGaWxlbmFtZSBjb21wbGV0aW9uOih2b2lk
KF4gX051bGxhYmxlKShOU0Vycm9yICogX051bGxhYmxlKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJQbGVhc2UgdXNlIC1zZXRGaWxlV3JhcHBl
cjpjb250ZW50VHlwZTpjb21wbGV0aW9uOiBpbnN0ZWFkLiIsIG1hY29zKDEwLjEzLjQsIDEwLjE0
LjQpLCBpb3MoMTEuMywgMTIuMikpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lv
bkNvbmZpZ3VyYXRpb24uaAppbmRleCA4NmFlYzQ5MjViYzg2NjI5OWMxYzQ3ZGNhNTc4ZmMxNGI5
ZDZiMTAyLi5hMmRmOTQ4YjYyNzc5ZjBkZjE0ODY0MDYxNzkwMDE1Njg1YjkxZGI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Np
b25Db25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oCkBAIC0yOSw3ICsyOSw3IEBACiAK
IE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4x
My40KSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
LCBpb3MoMTIuMikpCiBAaW50ZXJmYWNlIF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlv
biA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFs
bG93c0luc2VjdXJlTWVkaWFDYXB0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRG93bmxvYWQuaAppbmRleCA2YTZmOWM1ZmI5YzE3ODc5Yzk5ODcxYTE0OGI0
ZjlhNzdmMjAwNGUwLi5lZWE5OWJiZGQ0M2M5YWNiNGE5YjQ4N2M5ZDAwM2Y2MTFjZGFmOTg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaApA
QCAtMzQsMTIgKzM0LDEyIEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4
LjApKQogCiAtICh2b2lkKWNhbmNlbDsKIAotLSAodm9pZClwdWJsaXNoUHJvZ3Jlc3NBdFVSTDoo
TlNVUkwgKilVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKKy0gKHZvaWQpcHVibGlzaFByb2dyZXNzQXRVUkw6KE5TVVJMICopVVJMIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0OwogQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5LCB3ZWFrKSBXS1dlYlZpZXcgKm9yaWdpbmF0aW5nV2ViVmlldzsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNBcnJheTxOU1VSTCAqPiAqcmVk
aXJlY3RDaGFpbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHdhc1VzZXJJbml0aWF0ZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgTlNEYXRhICpyZXN1bWVEYXRhIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIE5TRGF0YSAqcmVzdW1lRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0
LjQpLCBpb3MoMTIuMikpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLRm9ybUlucHV0U2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0Zvcm1JbnB1dFNlc3Npb24uaAppbmRleCA1YzZiYmFlYjllM2Zm
ZDIwM2E1NzNjMmMwZTI5YjRlZWMzYjgwZjFmLi5mNTlkN2NiMmViMDNhMWNlNmZkZTg2YjhkMDE1
YTYzNmVlMDIyNjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLRm9ybUlucHV0U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tGb3JtSW5wdXRTZXNzaW9uLmgKQEAgLTM5LDcgKzM5LDcgQEAKICNpZiBUQVJH
RVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmFjY2Vz
c29yeVZpZXdDdXN0b21CdXR0b25UaXRsZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcp
IFVJVmlldyAqY3VzdG9tSW5wdXRWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIFVJVmlldyAqY3VzdG9tSW5wdXRBY2Nlc3NvcnlW
aWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzdHJvbmcpIFVJVmlldyAqY3VzdG9tSW5wdXRBY2Nlc3NvcnlWaWV3IFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0FycmF5PFVJ
VGV4dFN1Z2dlc3Rpb24gKj4gKnN1Z2dlc3Rpb25zIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjAp
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFjY2Vzc29yeVZpZXdTaG91bGROb3RTaG93
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IGZvcmNlU2VjdXJlVGV4dEVudHJ5IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IuaAppbmRleCBh
Y2E4ZGY0MWRiY2E5OGY4NTkxMzk5Nzc1ZDg5ZGRmZDc3OWE5ZWU5Li4yZTRjYTA3MTA0YTM5MGEw
ZDk3OTcxYWMwMGMzZmQ5YzBiMDVlZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5oCkBAIC0zMSw3ICszMSw3IEBACiAKIE5TX0FTU1VN
RV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3Mo
MTIuMikpCiBAaW50ZXJmYWNlIF9XS0luc3BlY3RvciA6IE5TT2JqZWN0CiAKIC0gKGluc3RhbmNl
dHlwZSlpbml0IE5TX1VOQVZBSUxBQkxFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0ludGVybmFsRGVidWdGZWF0dXJlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaAppbmRleCA2NWM2
NmI5NzdhMTNjMDczMzVlNGVkNWJkYjdhYjQ0ZGUxNmQ5ZmIzLi40NTc5NWYyZTVlYjZjNzE4OWMw
MDkwNTNmNDNkNzk4ZWQyZGIzMjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaApAQCAtMjcsNyAr
MjcsNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19B
VkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSkKIEBpbnRlcmZhY2UgX1dLSW50ZXJu
YWxEZWJ1Z0ZlYXR1cmUgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHksIGNvcHkpIE5TU3RyaW5nICprZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKaW5k
ZXggMGYzYTU0MWNkZjhlYTU0OWFjNDJkYzI2MjE5MWFhOTgwZWVkNDkzMC4uZmRkNDExZjM5ODky
NmM2ZTI2NjA3MWQ2OTBhYTFhNGY0MWEzMDI4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uaApAQCAtMzQsMTAgKzM0LDEwIEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCks
IGlvcyg4LjApKQogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TVVJMICppbmplY3RlZEJ1
bmRsZVVSTDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIG1heGltdW1Qcm9jZXNz
Q291bnQgV0tfQVBJX0RFUFJFQ0FURUQoIkl0IGlzIG5vIGxvbmdlciBwb3NzaWJsZSB0byBsaW1p
dCB0aGUgbnVtYmVyIG9mIHByb2Nlc3NlcyIsIG1hY29zKFdLX01BQ19UQkEsIFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgdXNlc1NpbmdsZVdlYlByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29w
eSkgTlNTdHJpbmcgKmN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3Bl
cnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tV2ViQ29udGVu
dFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGlnbm9yZVN5bmNocm9u
b3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYXR0clN0eWxlRW5h
YmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYXR0clN0eWxlRW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSkgTlNBcnJheTxOU1VSTCAqPiAqYWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2VkVVJM
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIApAQCAtNDgsMTIg
KzQ4LDEyIEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogLy8g
TmV0d29yayBQcm9jZXNzIHByb3BlcnRpZXMKIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgYmUg
cGVyLXNlc3Npb24vZGF0YSBzdG9yZSB3aGVuIHdlIHN1cHBvcnQgbXVsdGlwbGUgbm9uLXBlcnNp
c3RlbnQgc2Vzc2lvbnMvZGF0YSBzdG9yZXMuCiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBOU0lu
dGVnZXIgZGlza0NhY2hlU2l6ZU92ZXJyaWRlIFdLX0FQSV9ERVBSRUNBVEVEKCJVc2UgW1dLV2Vi
c2l0ZURhdGFTdG9yZSBub25QZXJzaXN0ZW50RGF0YVN0b3JlXSB0byBsaW1pdCBkaXNrIGNhY2hl
IHNpemUgdG8gMCIsIG1hY29zKDEwLjExLCBXS19NQUNfVEJBKSwgaW9zKDkuMCwgV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMpIE5TSW50ZWdlciBkaXNrQ2FjaGVTaXplT3ZlcnJp
ZGUgV0tfQVBJX0RFUFJFQ0FURUQoIlVzZSBbV0tXZWJzaXRlRGF0YVN0b3JlIG5vblBlcnNpc3Rl
bnREYXRhU3RvcmVdIHRvIGxpbWl0IGRpc2sgY2FjaGUgc2l6ZSB0byAwIiwgbWFjb3MoMTAuMTEs
IDEwLjE0LjQpLCBpb3MoOS4wLCAxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkg
TlNBcnJheSAqY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXM7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSkgTlNBcnJheTxOU1N0cmluZyAqPiAqYWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hlbWVz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgZGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIiLCBt
YWNvcygxMC4xMi4zLCBXS19NQUNfVEJBKSwgaW9zKDEwLjMsIFdLX0lPU19UQkEpKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0
aW9uU2Vjb25kYXJ5SWRlbnRpZmllciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5U
KCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlvblNlY29u
ZGFyeUlkZW50aWZpZXIiLCBtYWNvcygxMC4xMi4zLCBXS19NQUNfVEJBKSwgaW9zKDEwLjMsIFdL
X0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJp
bmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19BUElfREVQUkVDQVRFRF9X
SVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5zb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIiLCBtYWNvcygxMC4xMi4zLCAxMC4xNC40KSwgaW9z
KDEwLjMsIDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNT
dHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciBXS19BUElfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5z
b3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIiLCBtYWNvcygxMC4xMi4zLCAxMC4x
NC40KSwgaW9zKDEwLjMsIDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNob3Vs
ZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBp
b3MoMTEuMCkpOwogI2lmIFRBUkdFVF9PU19JUEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBu
dWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKkNURGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZSBXS19B
UElfQVZBSUxBQkxFKGlvcygxMC4zKSk7CkBAIC02NCwxMSArNjQsMTEgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBwcm9jZXNzU3dhcHNPbk5hdmlnYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCks
IGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbHdheXNLZWVwQW5kUmV1
c2VTd2FwcGVkUHJvY2Vzc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIu
MCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVu
V2l0aE9wZW5lciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHByZXdhcm1zUHJvY2Vzc2VzQXV0b21hdGljYWxseSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgdXNlc1dlYlByb2Nlc3NDYWNoZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgcHJld2FybXNQcm9jZXNzZXNBdXRvbWF0aWNhbGx5IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCB1c2VzV2ViUHJvY2Vzc0NhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlv
cygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwYWdlQ2FjaGVFbmFibGVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgc3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIGdldHRlcj1pc0pJVEVuYWJsZWQpIEJPT0wgSklURW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIGdldHRlcj1pc0pJVEVuYWJsZWQpIEJPT0wgSklURW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMp
IE5TVUludGVnZXIgZG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVyRm9yVGVzdGluZyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFNUU1N0b3JhZ2VEaXJl
Y3Rvcnk6KSBOU1VSTCAqaHN0c1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uaAppbmRleCAwOWUyNTFlNzdjMDc2OTI1YjkzNGVjYzNmNmE5ZDBmZDA4
NDliMzUxLi41OWY5ODRlNDg3YWRmM2YwNDJkOTY3MzdhOWI0N2RhNzllMjJkM2IwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtMzksMTAgKzM5LDEwIEBAIFdL
X0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk6
KSBOU1VSTCAqX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
LCBzZXR0ZXI9X3NldENhY2hlU3RvcmFnZURpcmVjdG9yeTopIE5TVVJMICpfY2FjaGVTdG9yYWdl
RGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uRGlyZWN0b3J5OikgTlNVUkwgKl9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0
b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpzb3VyY2VBcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNT
dHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25h
dG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFByb3h5OikgTlNVUkwgKmh0dHBQ
cm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFNQ
cm94eTopIE5TVVJMICpodHRwc1Byb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNv
cHkpIE5TU3RyaW5nICpzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRl
bnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFByb3h5Oikg
TlNVUkwgKmh0dHBQcm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIu
MikpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRU
UFNQcm94eTopIE5TVVJMICpodHRwc1Byb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQu
NCksIGlvcygxMi4yKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5oCmluZGV4IGY4Y2E5MDhjY2VjNWZm
OGNhNDFiYzkxN2JmZDg5ZjYwZTA4ZTFjYjEuLjQ5MGJjYjZjZWY5MjY0OWIwZjBiODQwMzI1ZWVl
YzEyMWRmMjZjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlUG9saWNpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLmgKQEAgLTM3LDkgKzM3LDkgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
Y29weSkgTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TU3RyaW5nICo+ICpjdXN0b21IZWFkZXJG
aWVsZHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBfV0tXZWJzaXRlUG9wVXBQb2xpY3kgcG9wVXBQb2xpY3kgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc3Ryb25nKSBXS1dlYnNpdGVEYXRhU3RvcmUgKndlYnNpdGVEYXRhU3RvcmUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tVXNlckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSkgTlNTdHJpbmcgKmN1c3RvbVVzZXJBZ2VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0
LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpj
dXN0b21KYXZhU2NyaXB0VXNlckFnZW50QXNTaXRlU3BlY2lmaWNRdWlya3MgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tTmF2aWdhdG9yUGxhdGZvcm0gV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tTmF2aWdhdG9yUGxhdGZvcm0gV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBfV0tXZWJzaXRlRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQb2xpY3kgZGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQb2xpY3kgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzLmgKaW5kZXggNzJjYTAzM2Nm
NzliYWUxYmQ2Zjc0MDgwNGY4OWU4NDBlZjNkODcxMS4uODk2OGYzOGQxNDdkYzkxOWRlOGEzOGYx
ODI1ZTM0MTNjNjY4NzY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzcy5oCkBAIC0zMiw3ICszMiw3IEBACiBleHRlcm4gIkMiIHsKICNl
bmRpZgogCi1XS19FWFBPUlQgaW50IFdLV2ViUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNvbnN0IGNo
YXIqKiBhcmd2KSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworV0tfRVhQT1JUIGludCBXS1dlYlByb2Nlc3NNYWluKGludCBhcmdjLCBjb25zdCBj
aGFyKiogYXJndikgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsK
IAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5k
bGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oCmluZGV4IGI3MzNlOWU4M2M2MTE3Y2IxOWYy
YWQyMGNlMmZlYzRkOGU3N2NjY2IuLjllYmEyODNkZmVhMGNmNjhjNmE5ZGZmZjk5YzFhOWMwZmQy
ZTg3YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luTm9kZUhhbmRsZS5oCkBAIC01NSw3ICs1NSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNv
cygxMC4xMCksIGlvcyg4LjApKQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09M
IEhUTUxUZXh0QXJlYUVsZW1lbnRJc1VzZXJFZGl0ZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKkhUTUxUYWJsZUNlbGxFbGVt
ZW50Q2VsbEFib3ZlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1dlYlByb2Nl
c3NQbHVnSW5GcmFtZSAqZnJhbWU7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgaXNTZWxlY3RFbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgaXNT
ZWxlY3RFbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CiAKIC0gKEJPT0wpaXNUZXh0RmllbGQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhh
bmRsZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZVByaXZhdGUuaAppbmRleCAxNTRj
NGRiYWJhZjU0YTVkZmE5ODUzN2I1NjI4MzRhZmIwNjk5ZDAzLi42ODExMzMzZjU5ZDdmM2E3MmEx
YTkzYjVjNzViMTU2ZWUxMDUyM2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlUHJpdmF0ZS5oCkBAIC0zMCw3ICsz
MCw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0F1dG9GaWxsQnV0dG9uVHlwZSkg
ewogICAgIF9XS0F1dG9GaWxsQnV0dG9uVHlwZUNyZWRlbnRpYWxzLAogICAgIF9XS0F1dG9GaWxs
QnV0dG9uVHlwZUNvbnRhY3RzLAogICAgIF9XS0F1dG9GaWxsQnV0dG9uVHlwZVN0cm9uZ1Bhc3N3
b3JkLAotICAgIF9XS0F1dG9GaWxsQnV0dG9uVHlwZUNyZWRpdENhcmQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKSwKKyAgICBfV0tBdXRvRmlsbEJ1
dHRvblR5cGVDcmVkaXRDYXJkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygx
Mi4yKSksCiB9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAK
IEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAoV0tQcml2YXRlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369868</attachid>
            <date>2019-05-14 10:49:50 -0700</date>
            <delta_ts>2019-05-14 11:52:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197841-20190514104948.patch</filename>
            <type>text/plain</type>
            <size>75799</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1Mjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY1OTI0ZDA1ZDczNmRjYzhm
YTMxMzc5NjhlYzBmOWMyNjQzZTAyZjkuLjQ1YjVlZDJiMzI5ZmNlMmQ3MGFjMmMzMjBkNTg4MTRi
NTVmYWFjODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTktMDUtMTQgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgVEJBIG1hY3JvcyBmb3Ig
QVBJIC8gU1BJIHRoYXQgaGFzIGFscmVhZHkgc2hpcHBlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3ODQxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81MDY5ODQ5OT4KKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAgICAgRGlzYWJsZSBo
ZWFkZXIgcG9zdHByb2Nlc3Npbmcgd2hlbiBidWlsZGluZyBmb3IgbWFjT1MgTW9qYXZlCisKKyAg
ICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhpc3RvcnlEZWxlZ2F0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0UG9s
aWN5RGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdh
dGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1R5cGVSZWZXcmFwcGVyLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXcuaDoKKyAgICAgICAgKFdLX0NMQVNTX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLQXR0YWNobWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tEb3dubG9hZC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9y
bUlucHV0U2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVj
dG9yLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnRlcm5hbERlYnVnRmVh
dHVyZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
V2Vic2l0ZVBvbGljaWVzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVQcml2YXRl
Lmg6CisKIDIwMTktMDUtMTQgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1NdIENhbm5vdCBzY3JvbGwgdG8gYmVnaW5uaW5nIG9mIGRvY3VtZW50IGFmdGVy
IHNjcm9sbGluZyB0byBlbmQgb2YgZG9jdW1lbnQgYW5kIHZpY2UgdmVyc2EgdmlhIGtleSBjb21t
YW5kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNj
b25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwppbmRl
eCBhZDRlMjA0MDUyZmM1OGMzMWY2ZDk4OTIzYThiZDE0MTMwYTRkODRlLi5mZWUxNDc5MWE4MWYy
ZjM2YTI1ZDNhYjZiN2ZhNTk3MzAyZTcyYjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Nv
bmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtMTU3LDEwICsxNTcsMTAgQEAgRVhDTFVERURfU09V
UkNFX0ZJTEVfTkFNRVNbc2RrPWlwaG9uZSpdID0gUGx1Z2luUHJvY2Vzc1NoaW0uZHlsaWIgU2Vj
SXRlbVNoaW0uZHkKIElOU1RBTExIRFJTX1NDUklQVF9QSEFTRSA9IFlFUzsKIEFQUExZX1JVTEVT
X0lOX0NPUFlfSEVBREVSUyA9ICQoVVNFX05FV19CVUlMRF9TWVNURU0pOwogCi1XS19GUkFNRVdP
UktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEW3Nkaz1tYWNvc3gqXSA9ICQoV0tfRlJB
TUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRCQoV0tfTUFDT1NfMTAxNCkpOwot
V0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRF9NQUNPU19CRUZPUkVf
MTAxNCA9IFlFUzsKK1dLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURb
c2RrPW1hY29zeCpdID0gJChXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FC
TEVEJChXS19NQUNPU18xMDE1KSk7CitXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5H
X0RJU0FCTEVEX01BQ09TX0JFRk9SRV8xMDE1ID0gWUVTOwogV0tfRlJBTUVXT1JLX0hFQURFUl9Q
T1NUUFJPQ0VTU0lOR19ESVNBQkxFRFtzZGs9aXBob25lKjExLipdID0gWUVTOwotV0tfRlJBTUVX
T1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRFtzZGs9aXBob25lKjEyLjAqXSA9IFlF
UzsKK1dLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURbc2RrPWlwaG9u
ZSoxMi4qXSA9IFlFUzsKIAogV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLX0xERkxBR1MgPSAkKFdL
X1JFTE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdTXyQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JL
UykpOwogV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLX0xERkxBR1NfWUVTID0gLVdsLC1ub3RfZm9y
X2R5bGRfc2hhcmVkX2NhY2hlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0NvY29hL1dLRm91bmRhdGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dL
Rm91bmRhdGlvbi5oCmluZGV4IDkwYzVlYWRlZDgxNmFkYmIzNjk0YjNmYTVlOGY1NDQ5ZDAxNTFm
NWEuLjRkYTIzNzc1MzJkMjQ1MDBlOWRiZWUwYzcyMTdhMmZjMjVmMjNmZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0ZvdW5kYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tGb3VuZGF0aW9uLmgKQEAgLTM0LDcgKzM0LDcg
QEAKIAogI2lmbmRlZiBXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0VOQUJMRUQK
IAotI2RlZmluZSBXS19BUElfQVZBSUxBQkxFKC4uLikKKyNkZWZpbmUgV0tfQVBJX0FWQUlMQUJM
RSguLi4pIAogI2RlZmluZSBXS19DTEFTU19BVkFJTEFCTEUoLi4uKSBfX2F0dHJpYnV0ZV9fKCh2
aXNpYmlsaXR5KCJkZWZhdWx0IikpKSBXS19BUElfQVZBSUxBQkxFKF9fVkFfQVJHU19fKQogI2Rl
ZmluZSBXS19BUElfREVQUkVDQVRFRChfbWVzc2FnZSwgLi4uKSBfX2F0dHJpYnV0ZV9fKChkZXBy
ZWNhdGVkKF9tZXNzYWdlKSkpCiAjZGVmaW5lIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFD
RU1FTlQoX3JlcGxhY2VtZW50LCAuLi4pIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQoInVzZSAi
ICNfcmVwbGFjZW1lbnQpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9D
b2NvYS9fV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgKaW5kZXggODFhNDYzZGM2MDk4
Yzg5YzVjYTBhYTZmZjM4YzIzZjMyNTljYmVlMy4uNWNlNTgyOGFlMDQ0MmY3NmJjYzY2NjI5MGMw
ZDE3YjVlODVhNGU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgKQEAgLTM0LDUgKzM0LDUgQEAg
dHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRz
KSB7CiAgICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0UGFpbnRBZnRlclN1cHByZXNz
ZWRJbmNyZW1lbnRhbFJlbmRlcmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9z
KDkuMCkpID0gMSA8PCA1LAogICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdFBhaW50
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSkgPSAxIDw8IDYsCiAgICAg
X1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudERpZFJlbmRlclNpZ25pZmljYW50QW1vdW50T2ZUZXh0
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpID0gMSA8PCA3LAotICAg
IF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdE1lYW5pbmdmdWxQYWludCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpID0gMSA8PCA4LAorICAg
IF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdE1lYW5pbmdmdWxQYWludCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpID0gMSA8PCA4LAogfSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuaAppbmRleCA2Y2RhYTcyZGRkZjk4YzA1ZDQwYWE5NDliZDI2ZThmYjExY2IzOTk1
Li5mNTY3ZDQ2ODM3MzYwMzk5YTlkMGM1NGMzYTA0YTU0MGQwNmYwNTlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaApAQCAtMjI1LDggKzIyNSw4IEBAIFdLX0VYUE9SVCB2
b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlVUlD
bGllbnRCYXNlKiBjCiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlSW5qZWN0ZWRCdW5kbGVD
bGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50QmFz
ZSogY2xpZW50KTsKIAogLy8gQSBjbGllbnQgY2FuIGltcGxlbWVudCBlaXRoZXIgYSBuYXZpZ2F0
aW9uIGNsaWVudCBvciBsb2FkZXIgYW5kIHBvbGljeSBjbGllbnRzLCBidXQgbmV2ZXIgYm90aC4K
LVdLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQoV0tQYWdlUmVmIHBhZ2Us
IGNvbnN0IFdLUGFnZUxvYWRlckNsaWVudEJhc2UqIGNsaWVudCkgV0tfQ19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50LCBtYWNvcyhX
S19NQUNfVEJBKSk7Ci1XS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KFdL
UGFnZVJlZiBwYWdlLCBjb25zdCBXS1BhZ2VQb2xpY3lDbGllbnRCYXNlKiBjbGllbnQpIFdLX0Nf
QVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNs
aWVudCwgbWFjb3MoV0tfTUFDX1RCQSkpOworV0tfRVhQT1JUIHZvaWQgV0tQYWdlU2V0UGFnZUxv
YWRlckNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3QgV0tQYWdlTG9hZGVyQ2xpZW50QmFzZSog
Y2xpZW50KSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tQYWdlU2V0UGFn
ZU5hdmlnYXRpb25DbGllbnQsIG1hY29zKDEwLjE0LjQpKTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFn
ZVNldFBhZ2VQb2xpY3lDbGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IFdLUGFnZVBvbGljeUNs
aWVudEJhc2UqIGNsaWVudCkgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdL
UGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50LCBtYWNvcygxMC4xNC40KSk7CiBXS19FWFBPUlQg
dm9pZCBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3Qg
V0tQYWdlTmF2aWdhdGlvbkNsaWVudEJhc2UqIGNsaWVudCk7CiAKIHR5cGVkZWYgdm9pZCAoKldL
UGFnZVJ1bkphdmFTY3JpcHRGdW5jdGlvbikoV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYsIFdL
RXJyb3JSZWYsIHZvaWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1Qcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oCmluZGV4IDVi
MGQyOGRiNmE0NmEyMDRkODgwNGEzYWVjZTU2MTk0M2Q0MGE1ZDguLjZiMzQ2NDk3NThkY2M3NTc1
ZmJjYjY1ZWRjOGZjZDk1ZDYyMGY4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1Qcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUu
aApAQCAtMzAsNiArMzAsNiBAQAogLy8gRm9yIHRlc3Rpbmcgb25seS4KIC0gKENHSW1hZ2VSZWYp
X2NvcHlTbmFwc2hvdEZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSwg
aW9zKDEwLjMpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMpIENHUG9pbnQgX3Njcm9sbFBvc2l0
aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dQb2ludCBfc2Nyb2xsUG9zaXRpb24gV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlci5oCmluZGV4IDU5YmVmMzQ5YmI4MWNkNzk5OTA5ODczN2ZkMjQyZTQ0MmFm
YTNlMmQuLmQ5NWI0ODNjYzcyODMyMzQ5NDUzMmQ4NzIwZjBkMzA4ZDA0N2Q0ZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyLmgKQEAgLTM0LDcgKzM0LDcgQEAKIEBwcm90b2NvbCBXS0Jy
b3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZTsKIEBwcm90b2NvbCBXS0Jyb3dzaW5nQ29udGV4dFBv
bGljeURlbGVnYXRlOwogCi1XS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldL
V2ViVmlldyIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkp
CitXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViVmlldyIsIG1hY29z
KDEwLjEwLCAxMC4xNC40KSwgaW9zKDguMCwgMTIuMikpCiBAaW50ZXJmYWNlIFdLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlciA6IE5TT2JqZWN0CiAKICNwcmFnbWEgbWFyayBEZWxlZ2F0ZXMKQEAg
LTQ1LDggKzQ1LDggQEAgV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dl
YlZpZXciLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcygKIAogI3ByYWdtYSBtYXJrIExv
YWRpbmcKIAotKyAodm9pZClyZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sOihOU1N0cmlu
ZyAqKXNjaGVtZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1VSTFNjaGVt
ZUhhbmRsZXIiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEp
KTsKLSsgKHZvaWQpdW5yZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sOihOU1N0cmluZyAq
KXNjaGVtZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1VSTFNjaGVtZUhh
bmRsZXIiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsK
KysgKHZvaWQpcmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbDooTlNTdHJpbmcgKilzY2hl
bWUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tVUkxTY2hlbWVIYW5kbGVy
IiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBpb3MoOC4wLCAxMi4yKSk7CisrICh2b2lkKXVucmVn
aXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbDooTlNTdHJpbmcgKilzY2hlbWUgV0tfQVBJX0RF
UFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tVUkxTY2hlbWVIYW5kbGVyIiwgbWFjb3MoMTAu
MTAsIDEwLjE0LjQpLCBpb3MoOC4wLCAxMi4yKSk7CiAKIC8qIExvYWQgYSByZXF1ZXN0LiBUaGlz
IGlzIG9ubHkgdmFsaWQgZm9yIHJlcXVlc3RzIG9mIG5vbi1maWxlOiBVUkxzLiBQYXNzaW5nIGEK
ICAgIGZpbGU6IFVSTCB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbi4gKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91
cC5oCmluZGV4IDgxMTMwZjM2N2E2M2Y1YjU4MWQ4NDQwNzU5ZjQ5MDdhYmRjZDcxOWQuLjFmODJj
YzRlYzQzYzI1OTYzNWE4YTBmYWU0MDEyNDExYzMxMGQ1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAu
aApAQCAtMjgsNyArMjgsNyBAQAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oPgogCi1XS19DTEFTU19E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLVXNlckNvbnRlbnRDb250cm9sbGVyIGFuZCBX
S1ByZWZlcmVuY2VzIiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1Nf
VEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tVc2VyQ29udGVu
dENvbnRyb2xsZXIgYW5kIFdLUHJlZmVyZW5jZXMiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlv
cyg4LjAsIDEyLjIpKQogQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dEdyb3VwIDogTlNPYmpl
Y3QKIAogLSAoaWQpaW5pdFdpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0Nv
bnRleHRIaXN0b3J5RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0Jyb3dzaW5nQ29udGV4dEhpc3RvcnlEZWxlZ2F0ZS5oCmluZGV4IDVmNTZhMjIyNTYwMmY1
OTNkMzg4YTVkYTMzNDVlNjQwMDYzYzgzODYuLmZmYWVjYjc0ZmE5YjY5YTFlZjk4MjFkZTgwM2M5
N2E2ZmE5MzMyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0Jyb3dzaW5nQ29udGV4dEhpc3RvcnlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhpc3RvcnlEZWxlZ2F0ZS5oCkBA
IC0yOSw3ICsyOSw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tCcm93c2luZ0NvbnRleHRDb250cm9s
bGVyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tOYXZpZ2F0aW9uRGF0YS5oPgogCi1XS19DTEFTU19E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLQmFja0ZvcndhcmRMaXN0IiwgbWFjb3MoMTAu
MTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FU
RURfV0lUSF9SRVBMQUNFTUVOVCgiV0tCYWNrRm9yd2FyZExpc3QiLCBtYWNvcygxMC4xMCwgMTAu
MTQuNCksIGlvcyg4LjAsIDEyLjIpKQogQHByb3RvY29sIFdLQnJvd3NpbmdDb250ZXh0SGlzdG9y
eURlbGVnYXRlIDxOU09iamVjdD4KIEBvcHRpb25hbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dExvYWRE
ZWxlZ2F0ZS5oCmluZGV4IDE4MzRjYmU4ZDIzM2I3MGU4ZDJjMTE0M2YwZmQwNzkxNTU4OWVlZjQu
LmY1NGFkYzI1MjAxNjBkZThmMTJlMjI4MDkyNzllOWY0NDg0NzYzN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dExvYWREZWxl
Z2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5n
Q29udGV4dExvYWREZWxlZ2F0ZS5oCkBAIC0zMCw3ICszMCw3IEBACiAKIEBjbGFzcyBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW07CiAKLVdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
V0tOYXZpZ2F0aW9uRGVsZWdhdGUiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAs
IFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS05h
dmlnYXRpb25EZWxlZ2F0ZSIsIG1hY29zKDEwLjEwLCAxMC4xNC40KSwgaW9zKDguMCwgMTIuMikp
CiBAcHJvdG9jb2wgV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUgPE5TT2JqZWN0PgogQG9w
dGlvbmFsCiAKQEAgLTUyLDEwICs1MiwxMCBAQCBXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIldLTmF2aWdhdGlvbkRlbGVnYXRlIiwgbWFjb3MoMTAuMTAsIFdLX01BQwogLyog
U2VudCBpZiB0aGUgY29tbWl0ZWQgbG9hZCBmYWlscy4gKi8KIC0gKHZvaWQpYnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlcjooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVyIGRpZEZh
aWxMb2FkV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3I7CiAKLS0gKHZvaWQpYnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlckRpZFN0YXJ0UHJvZ3Jlc3M6KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ciAqKXNlbmRlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXcu
ZXN0aW1hdGVkUHJvZ3Jlc3MiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdL
X0lPU19UQkEpKTsKLS0gKHZvaWQpYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjooV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVyICopc2VuZGVyIGVzdGltYXRlZFByb2dyZXNzQ2hhbmdlZFRvOihk
b3VibGUpZXN0aW1hdGVkUHJvZ3Jlc3MgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgiV0tXZWJWaWV3LmVzdGltYXRlZFByb2dyZXNzIiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEp
LCBpb3MoOC4wLCBXS19JT1NfVEJBKSk7Ci0tICh2b2lkKWJyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXJEaWRGaW5pc2hQcm9ncmVzczooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVy
IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViVmlldy5lc3RpbWF0ZWRQ
cm9ncmVzcyIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkp
OworLSAodm9pZClicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkU3RhcnRQcm9ncmVzczooV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoIldLV2ViVmlldy5lc3RpbWF0ZWRQcm9ncmVzcyIsIG1hY29zKDEwLjEwLCAx
MC4xNC40KSwgaW9zKDguMCwgMTIuMikpOworLSAodm9pZClicm93c2luZ0NvbnRleHRDb250cm9s
bGVyOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXIgZXN0aW1hdGVkUHJvZ3Jl
c3NDaGFuZ2VkVG86KGRvdWJsZSllc3RpbWF0ZWRQcm9ncmVzcyBXS19BUElfREVQUkVDQVRFRF9X
SVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXcuZXN0aW1hdGVkUHJvZ3Jlc3MiLCBtYWNvcygxMC4x
MCwgMTAuMTQuNCksIGlvcyg4LjAsIDEyLjIpKTsKKy0gKHZvaWQpYnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlckRpZEZpbmlzaFByb2dyZXNzOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilz
ZW5kZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3LmVzdGlt
YXRlZFByb2dyZXNzIiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBpb3MoOC4wLCAxMi4yKSk7CiAK
LS0gKHZvaWQpYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZENoYW5nZUJhY2tGb3J3YXJkTGlz
dDooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVyIGFkZGVkSXRlbTooV0tCYWNr
Rm9yd2FyZExpc3RJdGVtICopYWRkZWRJdGVtIHJlbW92ZWRJdGVtczooTlNBcnJheSAqKXJlbW92
ZWRJdGVtcyBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXcuYmFj
a0ZvcndhcmRMaXN0IiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1Nf
VEJBKSk7CistICh2b2lkKWJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRDaGFuZ2VCYWNrRm9y
d2FyZExpc3Q6KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKXNlbmRlciBhZGRlZEl0ZW06
KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWFkZGVkSXRlbSByZW1vdmVkSXRlbXM6KE5TQXJyYXkg
KilyZW1vdmVkSXRlbXMgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJW
aWV3LmJhY2tGb3J3YXJkTGlzdCIsIG1hY29zKDEwLjEwLCAxMC4xNC40KSwgaW9zKDguMCwgMTIu
MikpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tCcm93c2luZ0NvbnRleHRQb2xpY3lEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0UG9saWN5RGVsZWdhdGUuaAppbmRleCBl
YzQ5NTg0NzM4NDZmNDFlZmQwM2UxMDhhM2RiMzc2NjkxODQwNTI5Li5mMzU5YjU5OTQ0ZGIzNWEx
ZjEzNzFkOTkzODMzNGUwOGU2YWM4NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRQb2xpY3lEZWxlZ2F0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dFBvbGljeURl
bGVnYXRlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIFdL
UG9saWN5RGVjaXNpb24pIHsKIAogdHlwZWRlZiB2b2lkICheV0tQb2xpY3lEZWNpc2lvbkhhbmRs
ZXIpKFdLUG9saWN5RGVjaXNpb24pOwogCi1XS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFD
RU1FTlQoIldLTmF2aWdhdGlvbkRlbGVnYXRlIiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBp
b3MoOC4wLCBXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgiV0tOYXZpZ2F0aW9uRGVsZWdhdGUiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAs
IDEyLjIpKQogQHByb3RvY29sIFdLQnJvd3NpbmdDb250ZXh0UG9saWN5RGVsZWdhdGUgPE5TT2Jq
ZWN0PgogQG9wdGlvbmFsCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0Nvbm5lY3Rpb24uaAppbmRleCBlMjFkOTgxOTgzODUxZTcxZDkxMDE1ZTM0NmJmZDE3YzE3
OWU4OGViLi42ZDZiZWQ2YWQ2YTVkYTM2MzQ1YjVmNjBmNDBjNzZjM2E5MWFkZGVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29ubmVjdGlvbi5oCkBAIC0z
Niw3ICszNiw3IEBACiAKIEBlbmQKIAotV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwg
aW9zKDguMCwgV0tfSU9TX1RCQSkpCitXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1F
TlQoIl9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBpb3Mo
OC4wLCAxMi4yKSkKIEBpbnRlcmZhY2UgV0tDb25uZWN0aW9uIDogTlNPYmplY3QKIAogLSAodm9p
ZClzZW5kTWVzc2FnZVdpdGhOYW1lOihOU1N0cmluZyAqKW1lc3NhZ2VOYW1lIGJvZHk6KGlkKW1l
c3NhZ2VCb2R5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgKaW5kZXggMDhjYmY1MDBhNjdlY2Qx
ZjgyYTYwMGM2Mjc3YzkyYTk5MDU5NGMyYi4uODNiNGUwMmUzMWQyYmFkNTExYTlhYThjZDBjMzVh
ODNhYTI4NGM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oCkBAIC01OSw2ICs1OSw2IEBA
IHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLU3ludGhldGljQ2xpY2tUeXBlKSB7CiAjZW5k
aWYKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9pc1JlZGlyZWN0IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwotQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBXS05hdmlnYXRpb24gKl9tYWluRnJhbWVOYXZpZ2F0aW9uIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLTmF2aWdhdGlvbiAqX21haW5GcmFtZU5hdmlnYXRp
b24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlv
bkRlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
TmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IGMzMDJmMTRhZGY1OTBmNTEyZmNjNzNl
NTM3M2Q1MzAyNzc2NmVhM2UuLmU5YmUwNGQ1YzM1OWE1M2ViOGM0NzQzNjVkYjk2ZDFhNWRlMWNh
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmln
YXRpb25EZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKQEAgLTU2LDcgKzU2LDcgQEAgdHlw
ZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKSB7CiAK
IHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgX1dLTmF2aWdhdGlvbkFjdGlv
blBvbGljeURvd25sb2FkID0gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkoV0tOYXZpZ2F0aW9u
QWN0aW9uUG9saWN5QWxsb3cgKyAxKTsKIHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25BY3Rpb25Q
b2xpY3kgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKSBfV0tOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5QWxsb3dXaXRob3V0VHJ5aW5nQXBwTGluayA9IChXS05hdmlnYXRpb25B
Y3Rpb25Qb2xpY3kpKF9XS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lEb3dubG9hZCArIDEpOwotc3Rh
dGljIGNvbnN0IFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpIF9XS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lB
bGxvd0luTmV3UHJvY2VzcyA9IChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKF9XS05hdmlnYXRp
b25BY3Rpb25Qb2xpY3lBbGxvd1dpdGhvdXRUcnlpbmdBcHBMaW5rICsgMSk7CitzdGF0aWMgY29u
c3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQu
NCksIGlvcygxMi4yKSkgX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93SW5OZXdQcm9jZXNz
ID0gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkoX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFs
bG93V2l0aG91dFRyeWluZ0FwcExpbmsgKyAxKTsKIAogc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlv
blJlc3BvbnNlUG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29tZURvd25sb2Fk
ID0gKFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KShXS05hdmlnYXRpb25SZXNwb25zZVBvbGlj
eUFsbG93ICsgMSk7CiAKQEAgLTg4LDcgKzg4LDcgQEAgc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlv
blJlc3BvbnNlUG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29tZURvd25sb2EK
IC0gKHZvaWQpX3dlYlZpZXdXaWxsRW5kTmF2aWdhdGlvbkdlc3R1cmU6KFdLV2ViVmlldyAqKXdl
YlZpZXcgd2l0aE5hdmlnYXRpb25Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRM
aXN0SXRlbSAqKWl0ZW07CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdp
bGxTbmFwc2hvdEJhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0
ZW07CiAtICh2b2lkKV93ZWJWaWV3RGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDoo
V0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEw
LjApKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlv
biBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgX1dL
V2Vic2l0ZVBvbGljaWVzICopKWRlY2lzaW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCJfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnVz
ZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjoiLCBtYWNvcygxMC4xMi4zLCBXS19NQUNfVEJBKSwgaW9z
KDEwLjMsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICop
bmF2aWdhdGlvbkFjdGlvbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeSwgX1dLV2Vic2l0ZVBvbGljaWVzICopKWRlY2lzaW9uSGFuZGxlciBXS19BUElf
REVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uOnVzZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjoiLCBtYWNvcygxMC4xMi4zLCAx
MC4xNC40KSwgaW9zKDEwLjMsIDEyLjIpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0
aW9uICopbmF2aWdhdGlvbkFjdGlvbiB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2Vy
SW5mbyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwg
X1dLV2Vic2l0ZVBvbGljaWVzICopKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2
aWdhdGlvbiB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBkaWRGYWlsTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2aWdh
dGlvbiB3aXRoRXJyb3I6KE5TRXJyb3IgKillcnJvciB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29k
aW5nPil1c2VySW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykp
OwpAQCAtMTA3LDcgKzEwNyw3IEBAIHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25SZXNwb25zZVBv
bGljeSBfV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lCZWNvbWVEb3dubG9hCiAtICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbToo
V0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbSBpblBhZ2VDYWNoZTooQk9PTClpblBhZ2VDYWNo
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdJbldpdGhJbmZvOihOU0Rp
Y3Rpb25hcnkgKilpbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVy
c2lvbldpdGhJbmZvOihOU0RpY3Rpb25hcnkgKilpbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9s
aWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5OihfV0tQbHVnaW5Nb2R1bGVMb2FkUG9s
aWN5KXBvbGljeSBwbHVnaW5JbmZvOihOU0RpY3Rpb25hcnkgKilpbmZvIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IHBvbGljeSwgTlNTdHJpbmcg
KiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZFdpdGhDdXJyZW50UG9saWN5OihfV0tQ
bHVnaW5Nb2R1bGVMb2FkUG9saWN5KXBvbGljeSBwbHVnaW5JbmZvOihOU0RpY3Rpb25hcnkgKilp
bmZvIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShfV0tQbHVnaW5Nb2R1bGVMb2FkUG9saWN5
IHBvbGljeSwgTlNTdHJpbmcgKiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKSljb21wbGV0aW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpKTsKIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYmFja0ZvcndhcmRMaXN0SXRlbUFkZGVkOihXS0JhY2tG
b3J3YXJkTGlzdEl0ZW0gKilpdGVtQWRkZWQgcmVtb3ZlZDooTlNBcnJheTxXS0JhY2tGb3J3YXJk
TGlzdEl0ZW0gKj4gKilpdGVtc1JlbW92ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA1ZTY2NTE2Nzc4YTRhMTU2ZDJlMDky
OTMyMDIzZGQ0N2Q0ODc3NjdhLi5lMmI5NmM3YjliYmE1NTQyMzI3YTI2ZmZhNTM1ZjYzZjRjMTc4
MWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMTMwLDkgKzEzMCw5IEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIF9XS0VkaXRhYmxlTGlua0JlaGF2aW9yKSB7CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEFWRm91bmRhdGlvbkVuYWJsZWQ6KSBCT09MIF9hdkZvdW5kYXRp
b25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoMTIuMCkpOwogCi0r
IChOU0FycmF5PF9XS0ludGVybmFsRGVidWdGZWF0dXJlICo+ICopX2ludGVybmFsRGVidWdGZWF0
dXJlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwotLSAoQk9PTClfaXNFbmFibGVkRm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6KF9XS0ludGVybmFs
RGVidWdGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBmb3JJ
bnRlcm5hbERlYnVnRmVhdHVyZTooX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKilmZWF0dXJlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisrIChO
U0FycmF5PF9XS0ludGVybmFsRGVidWdGZWF0dXJlICo+ICopX2ludGVybmFsRGVidWdGZWF0dXJl
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAoQk9PTClf
aXNFbmFibGVkRm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6KF9XS0ludGVybmFsRGVidWdGZWF0dXJl
ICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwor
LSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBmb3JJbnRlcm5hbERlYnVnRmVhdHVyZToo
X1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQuNCksIGlvcygxMi4yKSk7CiAKICsgKE5TQXJyYXk8X1dLRXhwZXJpbWVudGFsRmVhdHVy
ZSAqPiAqKV9leHBlcmltZW50YWxGZWF0dXJlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEy
KSwgaW9zKDEwLjApKTsKIC0gKEJPT0wpX2lzRW5hYmxlZEZvckZlYXR1cmU6KF9XS0V4cGVyaW1l
bnRhbEZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3Mo
MTAuMCkpOwpAQCAtMTQyLDE1ICsxNDIsMTUgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
X1dLRWRpdGFibGVMaW5rQmVoYXZpb3IpIHsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0U2hvdWxkRW5hYmxlVGV4dEF1dG9zaXppbmdCb29zdDopIEJPT0wgX3Nob3VsZEVuYWJs
ZVRleHRBdXRvc2l6aW5nQm9vc3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygx
Mi4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzU2FmZUJyb3dzaW5nRW5h
YmxlZCwgc2V0dGVyPV9zZXRTYWZlQnJvd3NpbmdFbmFibGVkOikgQk9PTCBfc2FmZUJyb3dzaW5n
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNTYWZlQnJvd3NpbmdFbmFibGVk
LCBzZXR0ZXI9X3NldFNhZmVCcm93c2luZ0VuYWJsZWQ6KSBCT09MIF9zYWZlQnJvd3NpbmdFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENvbG9yRmlsdGVyRW5hYmxlZDopIEJPT0wgX2Nv
bG9yRmlsdGVyRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjAp
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFB1bmNoT3V0V2hpdGVCYWNrZ3Jv
dW5kc0luRGFya01vZGU6KSBCT09MIF9wdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtNb2Rl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0TG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6ZUVuYWJsZWQ6
KSBCT09MIF9sb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0U2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0OikgQk9PTCBfc2hvdWxk
SWdub3JlTWV0YVZpZXdwb3J0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRWaWRlb1F1
YWxpdHlJbmNsdWRlc0Rpc3BsYXlDb21wb3NpdGluZ0VuYWJsZWQ6KSBCT09MIF92aWRlb1F1YWxp
dHlJbmNsdWRlc0Rpc3BsYXlDb21wb3NpdGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFdlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQ6KSBCT09MIF93ZWJB
bmltYXRpb25zQ1NTSW50ZWdyYXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
RGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQ6KSBCT09MIF9kZXZpY2VPcmllbnRhdGlvbkV2
ZW50RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TG93UG93ZXJWaWRlb0F1
ZGlvQnVmZmVyU2l6ZUVuYWJsZWQ6KSBCT09MIF9sb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXpl
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0Oikg
Qk9PTCBfc2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQuNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRWaWRl
b1F1YWxpdHlJbmNsdWRlc0Rpc3BsYXlDb21wb3NpdGluZ0VuYWJsZWQ6KSBCT09MIF92aWRlb1F1
YWxpdHlJbmNsdWRlc0Rpc3BsYXlDb21wb3NpdGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFdlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQ6KSBCT09MIF93ZWJBbmltYXRp
b25zQ1NTSW50ZWdyYXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBp
b3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGV2aWNlT3JpZW50
YXRpb25FdmVudEVuYWJsZWQ6KSBCT09MIF9kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3M6KSBCT09MIF9uZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3Mo
V0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SXRwRGVidWdN
b2RlRW5hYmxlZDopIEJPT0wgX2l0cERlYnVnTW9kZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldE1lZGlhU291cmNlRW5hYmxlZDopIEJPT0wgX21lZGlhU291cmNlRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoV0tfSU9TX1RCQSkpOwpAQCAt
MTczLDcgKzE3Myw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0VkaXRhYmxlTGlu
a0JlaGF2aW9yKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTdXBwcmVzc2Vz
SW5jcmVtZW50YWxSZW5kZXJpbmc6KSBCT09MIF9zdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJp
bmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQ6KSBC
T09MIF9hc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRB
cnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQ6KSBCT09MIF9hcnRpZmlj
aWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRFeHBlcmltZW50
YWxQbHVnSW5TYW5kYm94UHJvZmlsZXNFbmFibGVkOikgQk9PTCBfZXhwZXJpbWVudGFsUGx1Z0lu
U2FuZGJveFByb2ZpbGVzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEV4cGVyaW1lbnRhbFBsdWdJblNh
bmRib3hQcm9maWxlc0VuYWJsZWQ6KSBCT09MIF9leHBlcmltZW50YWxQbHVnSW5TYW5kYm94UHJv
ZmlsZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCkpOwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29va2llRW5hYmxlZDopIEJPT0wgX2Nvb2tpZUVuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRQbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkOikgQk9PTCBfcGx1Z0luU25h
cHNob3R0aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0Vu
YWJsZWQ6KSBCT09MIF9zdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaAppbmRleCA1MTMzZGJjOGIwNjdjZjkyY2Y2MWFk
ZTk1OWIwMmUxZWU5ZjNlZmI3Li4xOTM4YmY5ZDExNjIxMmQ3MjU1N2VjZDlhNjVmMzIyODg5OGJm
NjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzR3JvdXAuaApAQCAtNDQsNyArNDQsNyBAQAogCiBAZW5kCiAKLVdLX0NMQVNTX0RFUFJFQ0FU
RURfV0lUSF9SRVBMQUNFTUVOVCgiV0tQcm9jZXNzUG9vbCIsIG1hY29zKDEwLjEwLCBXS19NQUNf
VEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpCitXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIldLUHJvY2Vzc1Bvb2wiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAs
IDEyLjIpKQogQGludGVyZmFjZSBXS1Byb2Nlc3NHcm91cCA6IE5TT2JqZWN0CiAKIC0gKGlkKWlu
aXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6KE5TVVJMICopYnVuZGxlVVJMOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUu
aAppbmRleCAwZTFmMDZkODQ2YmUyYTRmOTFjM2Y5Yzg4OTgwYTFkMTFjNzUxMjI2Li4zOTczMjFk
ZTgwMDk4MGUzNzM5NWIyZDJlMTRmNzYwMmEwZjkwNWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaApAQCAt
NzksOCArNzksOCBAQAogCiAtICh2b2lkKV9yZWdpc3RlclVSTFNjaGVtZUFzQ2FuRGlzcGxheU9u
bHlJZkNhblJlcXVlc3Q6KE5TU3RyaW5nICopc2NoZW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQpLCBpb3MoMTIuMCkpOwogCi0tIChfV0tEb3dubG9hZCAqKV9kb3dubG9hZFVSTFJlcXVl
c3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Qgb3JpZ2luYXRpbmdXZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7Ci0tIChfV0tEb3dubG9hZCAqKV9yZXN1bWVEb3dubG9hZEZyb21EYXRhOihOU0RhdGEg
KilyZXN1bWVEYXRhIHBhdGg6KE5TU3RyaW5nICopcGF0aCBvcmlnaW5hdGluZ1dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKKy0gKF9XS0Rvd25sb2FkICopX2Rvd25sb2FkVVJMUmVxdWVzdDooTlNV
UkxSZXF1ZXN0ICopcmVxdWVzdCBvcmlnaW5hdGluZ1dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKF9XS0Rv
d25sb2FkICopX3Jlc3VtZURvd25sb2FkRnJvbURhdGE6KE5TRGF0YSAqKXJlc3VtZURhdGEgcGF0
aDooTlNTdHJpbmcgKilwYXRoIG9yaWdpbmF0aW5nV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiAvLyBUZXN0
IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgb25seSB3aGlsZSBubyB3ZWIgY29udGVudCBwcm9jZXNz
ZXMgYXJlIHJ1bm5pbmcuCiAtICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwpAQCAtOTUsMTYg
Kzk1LDE2IEBACiAKIC8vIFRlc3Qgb25seS4KIC0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwotLSAoQk9PTClfaGFzUHJl
d2FybWVkV2ViUHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworLSAoQk9PTClfaGFzUHJld2FybWVkV2ViUHJvY2VzcyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogLSAoc2l6ZV90KV93ZWJQcm9jZXNz
Q291bnRJZ25vcmluZ1ByZXdhcm1lZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9z
KDEyLjApKTsKLS0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50SWdub3JpbmdQcmV3YXJtZWRBbmRD
YWNoZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKy0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50SWdub3JpbmdQcmV3YXJtZWRBbmRDYWNoZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIC0gKHNpemVfdClf
cGx1Z2luUHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygx
MS4zKSk7CiAtIChzaXplX3QpX3NlcnZpY2VXb3JrZXJQcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAtICh2b2lkKV9zeW5jTmV0d29ya1Byb2Nl
c3NDb29raWVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAo
dm9pZClfbWFrZU5leHRXZWJQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAtICh2b2lkKV9tYWtlTmV4dE5ldHdvcmtQ
cm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCks
IGlvcygxMi4wKSk7Ci0tIChOU1VJbnRlZ2VyKV9tYXhpbXVtU3VzcGVuZGVkUGFnZUNvdW50IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChO
U1VJbnRlZ2VyKV9wcm9jZXNzQ2FjaGVDYXBhY2l0eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoTlNVSW50ZWdlcilfbWF4aW11bVN1c3Bl
bmRlZFBhZ2VDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OworLSAoTlNVSW50ZWdlcilfcHJvY2Vzc0NhY2hlQ2FwYWNpdHkgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIC0gKE5TVUludGVnZXIpX3Byb2Nlc3NDYWNoZVNp
emUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogLy8gVGVzdCBvbmx5LiBSZXR1cm5zIHdlYiBwcm9jZXNzZXMgcnVubmluZyB3ZWIgcGFnZXMg
KGRvZXMgbm90IGluY2x1ZGUgd2ViIHByb2Nlc3NlcyBydW5uaW5nIHNlcnZpY2Ugd29ya2VycykK
QEAgLTExOCwxMCArMTE4LDEwIEBACiAvLyBUZXN0IG9ubHkuCiAtICh2b2lkKV9zZXRBbGxvd3NB
bnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXI6KEJPT0wpYWxsb3dzIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAtICh2b2lkKV9yZWdpc3RlclVSTFNj
aGVtZVNlcnZpY2VXb3JrZXJzQ2FuSGFuZGxlOihOU1N0cmluZyAqKXNjaGVtZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwotLSAodm9pZClfZ2V0QWN0aXZlUGFn
ZXNPcmlnaW5zSW5XZWJQcm9jZXNzRm9yVGVzdGluZzoocGlkX3QpcGlkIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkKF4pKE5TQXJyYXk8TlNTdHJpbmcgKj4gKikpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKEJP
T0wpX25ldHdvcmtQcm9jZXNzSGFzRW50aXRsZW1lbnRGb3JUZXN0aW5nOihOU1N0cmluZyAqKWVu
dGl0bGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CistICh2b2lkKV9nZXRBY3RpdmVQYWdlc09yaWdpbnNJbldlYlByb2Nlc3NGb3JUZXN0
aW5nOihwaWRfdClwaWQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoTlNBcnJheTxOU1N0cmlu
ZyAqPiAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQp
LCBpb3MoMTIuMikpOworLSAoQk9PTClfbmV0d29ya1Byb2Nlc3NIYXNFbnRpdGxlbWVudEZvclRl
c3Rpbmc6KE5TU3RyaW5nICopZW50aXRsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NC40KSwgaW9zKDEyLjIpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNDb29r
aWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZCwgc2V0dGVyPV9zZXRDb29raWVTdG9yYWdlUGFy
dGl0aW9uaW5nRW5hYmxlZDopIEJPT0wgX2Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVk
IFdLX0FQSV9ERVBSRUNBVEVEKCJQYXJ0aXRpb25lZCBjb29raWVzIGFyZSBubyBsb25nZXIgc3Vw
cG9ydGVkIiwgbWFjb3MoMTAuMTIuMywgV0tfTUFDX1RCQSksIGlvcygxMC4zLCBXS19JT1NfVEJB
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0Nvb2tpZVN0b3JhZ2VQYXJ0aXRp
b25pbmdFbmFibGVkLCBzZXR0ZXI9X3NldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVk
OikgQk9PTCBfY29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQgV0tfQVBJX0RFUFJFQ0FU
RUQoIlBhcnRpdGlvbmVkIGNvb2tpZXMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvcygx
MC4xMi4zLCAxMC4xNC40KSwgaW9zKDEwLjMsIDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBnZXR0ZXI9X2lzU3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQsIHNldHRlcj1fc2V0U3RvcmFnZUFj
Y2Vzc0FQSUVuYWJsZWQ6KSBCT09MIF9zdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAodm9pZClfc3ludGhlc2l6ZUFw
cElzQmFja2dyb3VuZDooQk9PTCliYWNrZ3JvdW5kIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1R5cGVSZWZXcmFwcGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tUeXBlUmVmV3JhcHBlci5oCmluZGV4IDQ4MDNiMjJmZWUzZTJj
YWJlM2VkZjcxZTY3NDhhY2E4YjEzMzRhYjEuLmE3M2ViZTMxYjZkZWRlNTkyNWY5NjRjMGVmM2Nm
ODk2YWQ4MGNhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1R5cGVSZWZXcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVHlwZVJlZldyYXBwZXIuaApAQCAtMjgsNyArMjgsNyBAQAogI2ltcG9ydCA8Rm91bmRh
dGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tCYXNlLmg+CiAKLVdLX0NMQVNT
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tPYmplY3QiLCBtYWNvcygxMC4xMCwgV0tf
TUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCJXS09iamVjdCIsIG1hY29zKDEwLjEwLCAxMC4xNC40KSwgaW9zKDguMCwg
MTIuMikpCiBAaW50ZXJmYWNlIFdLVHlwZVJlZldyYXBwZXIgOiBOU09iamVjdAogCiAtIChpZClp
bml0V2l0aE9iamVjdDooV0tUeXBlUmVmKW9iamVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDRkNzBl
ZTJmZjBmMWQyNDEyZTM2ZmI3ODMxOTQ1NTY2MzQzNDgwZGYuLmJlYzJkNjQ4NmE2MGM2NGNjYWY2
OTk5Y2U4YWJmZmMxNzc0YTRjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtNzQsNyArNzQsNyBAQCB0
eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLQXV0b3BsYXlFdmVudEZsYWdzKSB7CiB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tGb2N1c0RpcmVjdGlvbikgewogICAgIF9XS0Zv
Y3VzRGlyZWN0aW9uQmFja3dhcmQsCiAgICAgX1dLRm9jdXNEaXJlY3Rpb25Gb3J3YXJkLAotfSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTIuMikpOwogCiBAcHJvdG9jb2wgV0tV
SURlbGVnYXRlUHJpdmF0ZSA8V0tVSURlbGVnYXRlPgogCkBAIC05OCw4ICs5OCw4IEBAIHN0cnVj
dCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuOihXS1dl
YlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOC4zKSk7
CiAtICh2b2lkKV93ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXcg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg4LjMpKTsKIC0gKHZvaWQpX3dlYlZp
ZXdSZXF1ZXN0UG9pbnRlckxvY2s6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMi4zKSk7Ci0tICh2b2lkKV93ZWJWaWV3RGlkUmVxdWVzdFBvaW50ZXJMb2Nr
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotLSAodm9pZClfd2ViVmlld0RpZFNob3dTYWZlQnJvd3NpbmdXYXJuaW5n
OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3RGlkUmVxdWVzdFBvaW50ZXJMb2Nr
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIu
MikpOworLSAodm9pZClfd2ViVmlld0RpZFNob3dTYWZlQnJvd3NpbmdXYXJuaW5nOihXS1dlYlZp
ZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CiAtICh2b2lkKV93ZWJWaWV3RGlkTG9zZVBvaW50ZXJMb2NrOihXS1dlYlZpZXcgKil3ZWJWaWV3
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIuMykpOwogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZTooQk9P
TCloYXNWaWRlb0luUGljdHVyZUluUGljdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
KSwgaW9zKDExLjApKTsKIApAQCAtMTE5LDE1ICsxMTksMTUgQEAgc3RydWN0IFVJRWRnZUluc2V0
czsKIAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRSZW1vdmVBdHRh
Y2htZW50OihfV0tBdHRhY2htZW50ICopYXR0YWNobWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBkaWRJbnNlcnRBdHRhY2htZW50OihfV0tBdHRhY2htZW50ICopYXR0YWNobWVudCB3aXRo
U291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwg
aW9zKDEyLjApKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkSW52
YWxpZGF0ZURhdGFGb3JBdHRhY2htZW50OihfV0tBdHRhY2htZW50ICopYXR0YWNobWVudCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRJbnZhbGlkYXRlRGF0YUZvckF0dGFj
aG1lbnQ6KF9XS0F0dGFjaG1lbnQgKilhdHRhY2htZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQuNCksIGlvcygxMi4yKSk7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlV2l0aFVz
ZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHJlcXVlc3RTdG9yYWdlQWNjZXNzUGFuZWxGb3JEb21haW46KE5TU3RyaW5nICopcmVx
dWVzdGluZ0RvbWFpbiB1bmRlckN1cnJlbnREb21haW46KE5TU3RyaW5nICopY3VycmVudERvbWFp
biBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCByZXN1bHQpKWNvbXBsZXRpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogCi0tICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzOihO
U0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopZm9udEF0dHJpYnV0ZXMgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXM6KE5TRGljdGlv
bmFyeTxOU1N0cmluZyAqLCBpZD4gKilmb250QXR0cmlidXRlcyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IHRha2VGb2N1czooX1dLRm9jdXNEaXJlY3Rpb24pZGlyZWN0aW9uIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHRha2VGb2N1czooX1dLRm9jdXNEaXJlY3Rpb24pZGly
ZWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMi4yKSk7CiAKICNp
ZiBUQVJHRVRfT1NfSVBIT05FCiAtIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKQEAgLTE2MSw3ICsx
NjEsNyBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBkYXRhSW50ZXJhY3Rpb25PcGVyYXRpb25XYXNIYW5kbGVkOihCT09MKWhhbmRs
ZWQgZm9yU2Vzc2lvbjooaWQpc2Vzc2lvbiBpdGVtUHJvdmlkZXJzOihOU0FycmF5ICopaXRlbVBy
b3ZpZGVycyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtIChOU1VJbnRlZ2VyKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxVcGRhdGVEYXRhSW50ZXJhY3Rpb25PcGVyYXRp
b25Ub09wZXJhdGlvbjooTlNVSW50ZWdlcilvcGVyYXRpb24gZm9yU2Vzc2lvbjooaWQpc2Vzc2lv
biBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAjaWYgVEFSR0VUX09TX0lPUwotLSAoVUlE
cm9wUHJvcG9zYWwgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxsVXBkYXRlRHJv
cFByb3Bvc2FsVG9Qcm9wb3NhbDooVUlEcm9wUHJvcG9zYWwgKilwcm9wb3NhbCBmb3JTZXNzaW9u
OihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1Nf
VEJBKSk7CistIChVSURyb3BQcm9wb3NhbCAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHdpbGxVcGRhdGVEcm9wUHJvcG9zYWxUb1Byb3Bvc2FsOihVSURyb3BQcm9wb3NhbCAqKXByb3Bv
c2FsIGZvclNlc3Npb246KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKDEyLjIpKTsKIC0gKFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHByZXZpZXdGb3JMaWZ0aW5nSXRlbTooVUlEcmFnSXRlbSAqKWl0ZW0g
c2Vzc2lvbjooaWQgPFVJRHJhZ1Nlc3Npb24+KXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3Mo
MTEuMCkpOwogLSAoVUlUYXJnZXRlZERyYWdQcmV2aWV3ICopX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgcHJldmlld0ZvckNhbmNlbGxpbmdJdGVtOihVSURyYWdJdGVtICopaXRlbSB3aXRo
RGVmYXVsdDooVUlUYXJnZXRlZERyYWdQcmV2aWV3ICopZGVmYXVsdFByZXZpZXcgV0tfQVBJX0FW
QUlMQUJMRShpb3MoMTEuMCkpOwogLSAoTlNBcnJheTxVSURyYWdJdGVtICo+ICopX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFBlcmZvcm1Ecm9wV2l0aFNlc3Npb246KGlkIDxVSURy
b3BTZXNzaW9uPilzZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKQEAgLTIwNSwx
MCArMjA1LDEwIEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGdldFdpbmRvd0ZyYW1lV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShDR1JlY3QpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMuNCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzZXRXaW5kb3dG
cmFtZTooQ0dSZWN0KWZyYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB1bmF2YWlsYWJsZVBsdWdJbkJ1dHRv
bkNsaWNrZWRXaXRoUmVhc29uOihfV0tQbHVnSW5VbmF2YWlsYWJpbGl0eVJlYXNvbilyZWFzb24g
cGx1Z0luSW5mbzooTlNEaWN0aW9uYXJ5ICopcGx1Z0luSW5mbzsKLS0gKE5TTWVudSAqKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZvckVs
ZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoIl93ZWJWaWV3OmdldENvbnRleHRNZW51RnJvbVByb3Bvc2Vk
TWVudTpmb3JFbGVtZW50OnVzZXJJbmZvOmNvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEy
LCBXS19NQUNfVEJBKSk7Ci0tIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBjb250ZXh0TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVs
ZW1lbnRJbmZvICopZWxlbWVudCB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5m
byBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpnZXRDb250ZXh0
TWVudUZyb21Qcm9wb3NlZE1lbnU6Zm9yRWxlbWVudDp1c2VySW5mbzpjb21wbGV0aW9uSGFuZGxl
cjoiLCBtYWNvcygxMC4xMiwgV0tfTUFDX1RCQSkpOworLSAoTlNNZW51ICopX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDoo
X1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgiX3dlYlZpZXc6Z2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51OmZv
ckVsZW1lbnQ6dXNlckluZm86Y29tcGxldGlvbkhhbmRsZXI6IiwgbWFjb3MoMTAuMTIsIDEwLjE0
LjQpKTsKKy0gKE5TTWVudSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRN
ZW51OihOU01lbnUgKiltZW51IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8g
KillbGVtZW50IHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl93ZWJWaWV3OmdldENvbnRleHRNZW51RnJvbVBy
b3Bvc2VkTWVudTpmb3JFbGVtZW50OnVzZXJJbmZvOmNvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29z
KDEwLjEyLCAxMC4xNC40KSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGdldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50
OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVudCB1c2VySW5mbzooaWQgPE5TU2Vj
dXJlQ29kaW5nPil1c2VySW5mbyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNNZW51ICop
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpKTsKLS0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUGVyZm9ybURyYWdPcGVyYXRpb246
KEJPT0wpaGFuZGxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKTsKKy0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUGVyZm9ybURyYWdPcGVyYXRpb246
KEJPT0wpaGFuZGxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpKTsKICNlbmRpZiAv
LyBUQVJHRVRfT1NfSVBIT05FCiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ZpZXcuaAppbmRleCBmZmI2OGYxNWViYzVjMTY1YzliMTc3Mzc1MmRjMzMyZDllZGI1
YjM3Li42ZTNkNzlhNWZjNWI2YTMwOGU3MzkyNjEyMTQyNjZmMzUxNWVjMjQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlldy5oCkBAIC0zNSw3ICszNSw3IEBACiBA
Y2xhc3MgV0tQcm9jZXNzR3JvdXA7CiBAY2xhc3MgV0tWaWV3RGF0YTsKIAotV0tfQ0xBU1NfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXciLCBtYWNvcygxMC4xMCwgV0tfTUFD
X1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JF
UExBQ0VNRU5UKCJXS1dlYlZpZXciLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAsIDEy
LjIpKQogQGludGVyZmFjZSBXS1ZpZXcgOiBOU1ZpZXcgPE5TVGV4dElucHV0Q2xpZW50PiB7CiBA
cHJpdmF0ZQogICAgIFdLVmlld0RhdGEgKl9kYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblBy
aXZhdGUuaAppbmRleCA4Y2JlMGE0ZGFhNzMxODViZDNlYzIwNWU1ODg3MzFhYmVhNGM1MzRkLi42
MGFlMDZlNDk1MWUyOTJlNWQyYTY4ZGU0ZWVlMDE4N2EwYzM0YWNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvblByaXZhdGUuaApAQCAtNjMsNyArNjMsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNV
SW50ZWdlciwgX1dLRHJhZ0xpZnREZWxheSkgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0SW52aXNpYmxlQXV0b3BsYXlOb3RQZXJtaXR0ZWQ6KSBCT09MIF9pbnZpc2libGVBdXRv
cGxheU5vdFBlcm1pdHRlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjAp
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhRGF0YUxvYWRzQXV0b21h
dGljYWxseTopIEJPT0wgX21lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldEF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZDopIEJPT0wgX2F0dGFjaG1lbnRFbGVtZW50
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEF0dGFjaG1lbnRGaWxlV3JhcHBlckNsYXNzOikg
Q2xhc3MgX2F0dGFjaG1lbnRGaWxlV3JhcHBlckNsYXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRBdHRhY2htZW50RmlsZVdyYXBwZXJDbGFzczopIENsYXNzIF9hdHRhY2htZW50Rmls
ZVdyYXBwZXJDbGFzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW5pdGlhbENhcGl0YWxpemF0aW9u
RW5hYmxlZDopIEJPT0wgX2luaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRBcHBsZVBheUVuYWJsZWQ6KSBCT09MIF9hcHBsZVBheUVuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRXYWl0c0ZvclBhaW50QWZ0ZXJWaWV3RGlkTW92ZVRvV2luZG93OikgQk9PTCBf
d2FpdHNGb3JQYWludEFmdGVyVmlld0RpZE1vdmVUb1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEyLjMpLCBpb3MoMTAuMykpOwpAQCAtMTAzLDkgKzEwMyw5IEBAIHR5cGVkZWYgTlNf
RU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRBbGxvd01lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0QXNGYWxsYmFjazopIEJPT0wgX2FsbG93TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnRBc0ZhbGxiYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3Mo
MTEuMCkpOwogCiAvLyBUaGUgaW5wdXQgb2YgdGhpcyBTUEkgaXMgYW4gYXJyYXkgb2YgaW1hZ2Ug
VVRJIChVbmlmb3JtIFR5cGUgSWRlbnRpZmllcikuCi1AcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSwgc2V0dGVyPV9zZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlczopIE5TQXJyYXk8TlNT
dHJpbmcgKj4gKl9hZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHksIHNldHRlcj1fc2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM6KSBOU0Fy
cmF5PE5TU3RyaW5nICo+ICpfYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAotQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0RWRpdGFibGVJbWFnZXNFbmFibGVkOikgQk9PTCBfZWRpdGFibGVJbWFn
ZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRFZGl0YWJsZUltYWdlc0Vu
YWJsZWQ6KSBCT09MIF9lZGl0YWJsZUltYWdlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFVuZG9NYW5hZ2VyQVBJRW5hYmxlZDopIEJPT0wgX3VuZG9NYW5hZ2VyQVBJRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5k
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaAppbmRleCAwNmMxZWI0YTY4NTZkNzk3ODhjZDIzYmVlNDY2N2I2NTE4N2EyNDdmLi4w
ZjE3OGMwOTgzYzdlZjBmNWI0YmVkMWM0YjdkNzE4MTU4MTY3MGIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTE1
NSw3ICsxNTUsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2Up
IHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFVzZXJDb250ZW50RXh0ZW5zaW9u
c0VuYWJsZWQ6KSBCT09MIF91c2VyQ29udGVudEV4dGVuc2lvbnNFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgcGlkX3QgX3dlYlByb2Nlc3NJZGVudGlmaWVyOwotQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBwaWRfdCBfcHJvdmlzaW9uYWxXZWJQcm9jZXNzSWRlbnRpZmllciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBwaWRfdCBfcHJvdmlzaW9uYWxXZWJQcm9jZXNzSWRl
bnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0VkaXRhYmxlLCBzZXR0ZXI9X3NldEVkaXRh
YmxlOikgQk9PTCBfZWRpdGFibGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5
LjApKTsKIApAQCAtMTkwLDU0ICsxOTAsNTQgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVn
ZXIsIF9XS1JlY3RFZGdlKSB7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFZp
ZXdTY2FsZTopIENHRmxvYXQgX3ZpZXdTY2FsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEx
KSwgaW9zKDkuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNaW5pbXVt
RWZmZWN0aXZlRGV2aWNlV2lkdGg6KSBDR0Zsb2F0IF9taW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lk
dGggV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aDopIENHRmxvYXQgX21pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRCYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2U6KSBCT09MIF9iYWNrZ3JvdW5k
RXh0ZW5kc0JleW9uZFBhZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDgu
MCkpOwogCi0tIChfV0tBdHRhY2htZW50ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZW5hbWU6
KE5TU3RyaW5nICopZmlsZW5hbWUgY29udGVudFR5cGU6KE5TU3RyaW5nICopY29udGVudFR5cGUg
ZGF0YTooTlNEYXRhICopZGF0YSBvcHRpb25zOihfV0tBdHRhY2htZW50RGlzcGxheU9wdGlvbnMg
KilvcHRpb25zIGNvbXBsZXRpb246KHZvaWQoXikoQk9PTCBzdWNjZXNzKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCItX2luc2VydEF0dGFjaG1l
bnRXaXRoRmlsZVdyYXBwZXI6Y29udGVudFR5cGU6b3B0aW9uczpjb21wbGV0aW9uOiIsIG1hY29z
KDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywgV0tfSU9TX1RCQSkpOwotLSAoX1dLQXR0
YWNobWVudCAqKV9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOihOU0ZpbGVXcmFwcGVy
ICopZmlsZVdyYXBwZXIgY29udGVudFR5cGU6KE5TU3RyaW5nICopY29udGVudFR5cGUgb3B0aW9u
czooX1dLQXR0YWNobWVudERpc3BsYXlPcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uOih2b2lk
KF4pKEJPT0wgc3VjY2VzcykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgiLV9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOmNvbnRlbnRU
eXBlOmNvbXBsZXRpb246IiwgbWFjb3MoV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBLCBXS19JT1NfVEJBKSk7Ci0tIChfV0tBdHRhY2htZW50ICopX2luc2VydEF0dGFjaG1l
bnRXaXRoRmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIgKilmaWxlV3JhcHBlciBjb250ZW50VHlw
ZTooTlNTdHJpbmcgKiljb250ZW50VHlwZSBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3VjY2Vz
cykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKLS0gKF9XS0F0dGFjaG1lbnQgKilfYXR0YWNobWVudEZvcklkZW50
aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotCi0tICh2b2lkKV9zaW11bGF0ZURldmljZU9yaWVu
dGF0aW9uQ2hhbmdlV2l0aEFscGhhOihkb3VibGUpYWxwaGEgYmV0YTooZG91YmxlKWJldGEgZ2Ft
bWE6KGRvdWJsZSlnYW1tYSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotCi0rIChCT09MKV9oYW5kbGVzU2FmZUJyb3dzaW5nIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0rIChOU1VSTCAqKV9j
b25maXJtTWFsd2FyZVNlbnRpbmVsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7Ci0rIChOU1VSTCAqKV92aXNpdFVuc2FmZVdlYnNpdGVTZW50aW5l
bCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwot
LSAodm9pZClfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmdXaXRoVGl0bGU6KE5TU3RyaW5nICopdGl0
bGUgd2FybmluZzooTlNTdHJpbmcgKil3YXJuaW5nIGRldGFpbHM6KE5TQXR0cmlidXRlZFN0cmlu
ZyAqKWRldGFpbHMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKLS0gKHZvaWQpX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nV2l0aFVSTDooTlNVUkwgKil1cmwg
dGl0bGU6KE5TU3RyaW5nICopdGl0bGUgd2FybmluZzooTlNTdHJpbmcgKil3YXJuaW5nIGRldGFp
bHM6KE5TQXR0cmlidXRlZFN0cmluZyAqKWRldGFpbHMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQo
XikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLQotLSAodm9pZClfaXNKSVRFbmFibGVkOih2b2lkKF4p
KEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9yZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rczoo
ZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0KLS0gKElCQWN0aW9uKV9hbGlnbkNlbnRlcjooaWQp
c2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7Ci0tIChJQkFjdGlvbilfYWxpZ25KdXN0aWZpZWQ6KGlkKXNlbmRlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2Fs
aWduTGVmdDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfYWxpZ25SaWdodDooaWQpc2VuZGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFj
dGlvbilfaW5kZW50OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV9vdXRkZW50OihpZClzZW5kZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElC
QWN0aW9uKV90b2dnbGVTdHJpa2VUaHJvdWdoOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV9pbnNlcnRP
cmRlcmVkTGlzdDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfaW5zZXJ0VW5vcmRlcmVkTGlzdDooaWQp
c2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7Ci0tIChJQkFjdGlvbilfaW5zZXJ0TmVzdGVkT3JkZXJlZExpc3Q6KGlkKXNlbmRlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJB
Y3Rpb24pX2luc2VydE5lc3RlZFVub3JkZXJlZExpc3Q6KGlkKXNlbmRlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX2lu
Y3JlYXNlTGlzdExldmVsOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKElCQWN0aW9uKV9kZWNyZWFzZUxpc3RMZXZlbDoo
aWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7Ci0tIChJQkFjdGlvbilfY2hhbmdlTGlzdFR5cGU6KGlkKXNlbmRlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24p
X3Bhc3RlQXNRdW90YXRpb246KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoSUJBY3Rpb24pX3Bhc3RlQW5kTWF0Y2hTdHls
ZTooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7Ci0tIChJQkFjdGlvbilfdGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uOihpZClz
ZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKLQotQHByb3BlcnR5IChjbGFzcywgbm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFN0cmlu
Z0ZvckZpbmQ6KSBOU1N0cmluZyAqX3N0cmluZ0ZvckZpbmQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKF9XS0F0dGFjaG1lbnQgKilfaW5z
ZXJ0QXR0YWNobWVudFdpdGhGaWxlbmFtZTooTlNTdHJpbmcgKilmaWxlbmFtZSBjb250ZW50VHlw
ZTooTlNTdHJpbmcgKiljb250ZW50VHlwZSBkYXRhOihOU0RhdGEgKilkYXRhIG9wdGlvbnM6KF9X
S0F0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyAqKW9wdGlvbnMgY29tcGxldGlvbjoodm9pZCheKShC
T09MIHN1Y2Nlc3MpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIi1faW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjpjb250ZW50VHlwZTpv
cHRpb25zOmNvbXBsZXRpb246IiwgbWFjb3MoMTAuMTMuNCwgMTAuMTQuNCksIGlvcygxMS4zLCAx
Mi4yKSk7CistIChfV0tBdHRhY2htZW50ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBw
ZXI6KE5TRmlsZVdyYXBwZXIgKilmaWxlV3JhcHBlciBjb250ZW50VHlwZTooTlNTdHJpbmcgKilj
b250ZW50VHlwZSBvcHRpb25zOihfV0tBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgKilvcHRpb25z
IGNvbXBsZXRpb246KHZvaWQoXikoQk9PTCBzdWNjZXNzKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCItX2luc2VydEF0dGFjaG1lbnRXaXRoRmls
ZVdyYXBwZXI6Y29udGVudFR5cGU6Y29tcGxldGlvbjoiLCBtYWNvcygxMC4xNC40LCAxMC4xNC40
KSwgaW9zKDEyLjIsIDEyLjIpKTsKKy0gKF9XS0F0dGFjaG1lbnQgKilfaW5zZXJ0QXR0YWNobWVu
dFdpdGhGaWxlV3JhcHBlcjooTlNGaWxlV3JhcHBlciAqKWZpbGVXcmFwcGVyIGNvbnRlbnRUeXBl
OihOU1N0cmluZyAqKWNvbnRlbnRUeXBlIGNvbXBsZXRpb246KHZvaWQoXikoQk9PTCBzdWNjZXNz
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3Mo
MTIuMikpOworLSAoX1dLQXR0YWNobWVudCAqKV9hdHRhY2htZW50Rm9ySWRlbnRpZmllcjooTlNT
dHJpbmcgKilpZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygx
Mi4yKSk7CisKKy0gKHZvaWQpX3NpbXVsYXRlRGV2aWNlT3JpZW50YXRpb25DaGFuZ2VXaXRoQWxw
aGE6KGRvdWJsZSlhbHBoYSBiZXRhOihkb3VibGUpYmV0YSBnYW1tYTooZG91YmxlKWdhbW1hIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CisKKysgKEJPT0wpX2hh
bmRsZXNTYWZlQnJvd3NpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKKysgKE5TVVJMICopX2NvbmZpcm1NYWx3YXJlU2VudGluZWwgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKysgKE5TVVJMICopX3Zpc2l0VW5zYWZlV2Vi
c2l0ZVNlbnRpbmVsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7
CistICh2b2lkKV9zaG93U2FmZUJyb3dzaW5nV2FybmluZ1dpdGhUaXRsZTooTlNTdHJpbmcgKil0
aXRsZSB3YXJuaW5nOihOU1N0cmluZyAqKXdhcm5pbmcgZGV0YWlsczooTlNBdHRyaWJ1dGVkU3Ry
aW5nICopZGV0YWlscyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShCT09MKSljb21wbGV0aW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAo
dm9pZClfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmdXaXRoVVJMOihOU1VSTCAqKXVybCB0aXRsZToo
TlNTdHJpbmcgKil0aXRsZSB3YXJuaW5nOihOU1N0cmluZyAqKXdhcm5pbmcgZGV0YWlsczooTlNB
dHRyaWJ1dGVkU3RyaW5nICopZGV0YWlscyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShCT09M
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3Mo
MTIuMikpOworCistICh2b2lkKV9pc0pJVEVuYWJsZWQ6KHZvaWQoXikoQk9PTCkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0g
KHZvaWQpX3JlbW92ZURhdGFEZXRlY3RlZExpbmtzOihkaXNwYXRjaF9ibG9ja190KWNvbXBsZXRp
b24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKworLSAoSUJB
Y3Rpb24pX2FsaWduQ2VudGVyOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NC40KSwgaW9zKDEyLjIpKTsKKy0gKElCQWN0aW9uKV9hbGlnbkp1c3RpZmllZDooaWQpc2VuZGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlv
bilfYWxpZ25MZWZ0OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKKy0gKElCQWN0aW9uKV9hbGlnblJpZ2h0OihpZClzZW5kZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKElCQWN0aW9uKV9pbmRlbnQ6
KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwor
LSAoSUJBY3Rpb24pX291dGRlbnQ6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE0LjQpLCBpb3MoMTIuMikpOworLSAoSUJBY3Rpb24pX3RvZ2dsZVN0cmlrZVRocm91Z2g6KGlk
KXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAo
SUJBY3Rpb24pX2luc2VydE9yZGVyZWRMaXN0OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKElCQWN0aW9uKV9pbnNlcnRVbm9yZGVyZWRM
aXN0OihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIp
KTsKKy0gKElCQWN0aW9uKV9pbnNlcnROZXN0ZWRPcmRlcmVkTGlzdDooaWQpc2VuZGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfaW5z
ZXJ0TmVzdGVkVW5vcmRlcmVkTGlzdDooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfaW5jcmVhc2VMaXN0TGV2ZWw6KGlk
KXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworLSAo
SUJBY3Rpb24pX2RlY3JlYXNlTGlzdExldmVsOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKKy0gKElCQWN0aW9uKV9jaGFuZ2VMaXN0VHlwZToo
aWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7Cist
IChJQkFjdGlvbilfcGFzdGVBc1F1b3RhdGlvbjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CistIChJQkFjdGlvbilfcGFzdGVBbmRNYXRjaFN0
eWxlOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIp
KTsKKy0gKElCQWN0aW9uKV90YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb246KGlkKXNlbmRlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworCitAcHJvcGVydHkg
KGNsYXNzLCBub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U3RyaW5nRm9yRmluZDopIE5TU3Ry
aW5nICpfc3RyaW5nRm9yRmluZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3Mo
MTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tTZWxlY3Rpb25BdHRy
aWJ1dGVzIF9zZWxlY3Rpb25BdHRyaWJ1dGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAKLS0gKHZv
aWQpX3NldEZvbnQ6KFVJRm9udCAqKWZvbnQgc2VuZGVyOihpZClzZW5kZXIgV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfc2V0Rm9udFNpemU6KENHRmxvYXQpZm9u
dFNpemUgc2VuZGVyOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkp
OwotLSAodm9pZClfc2V0VGV4dENvbG9yOihVSUNvbG9yICopY29sb3Igc2VuZGVyOihpZClzZW5k
ZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0Rm9udDoo
VUlGb250ICopZm9udCBzZW5kZXI6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4y
KSk7CistICh2b2lkKV9zZXRGb250U2l6ZTooQ0dGbG9hdClmb250U2l6ZSBzZW5kZXI6KGlkKXNl
bmRlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4yKSk7CistICh2b2lkKV9zZXRUZXh0Q29sb3I6
KFVJQ29sb3IgKiljb2xvciBzZW5kZXI6KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKGlvcygx
Mi4yKSk7CiAKLS0gKHZvaWQpX2RldGVjdERhdGFXaXRoVHlwZXM6KFdLRGF0YURldGVjdG9yVHlw
ZXMpdHlwZXMgY29tcGxldGlvbkhhbmRsZXI6KGRpc3BhdGNoX2Jsb2NrX3QpY29tcGxldGlvbiBX
S19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9kZXRlY3REYXRhV2l0
aFR5cGVzOihXS0RhdGFEZXRlY3RvclR5cGVzKXR5cGVzIGNvbXBsZXRpb25IYW5kbGVyOihkaXNw
YXRjaF9ibG9ja190KWNvbXBsZXRpb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMikpOwogCiAv
LyBERVJFQ0FURUQ6IFRoZSBzZXR0ZXJzIG9mIHRoZSB0aHJlZSBmb2xsb3dpbmcgZnVuY3Rpb24g
YXJlIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2Ugb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzLgogLy8g
RGVmaW5lIHRoZSBzbWFsbGVzdCBzaXplIGEgcGFnZSB0YWtlIHdpdGggYSByZWd1bGFyIHZpZXdw
b3J0LgpAQCAtMzAzLDkgKzMwMyw5IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBf
V0tSZWN0RWRnZSkgewogLSAodm9pZClfYWNjZXNzaWJpbGl0eVJldHJpZXZlU3BlYWtTZWxlY3Rp
b25Db250ZW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKIC0gKHZvaWQpX2FjY2Vzc2li
aWxpdHlEaWRHZXRTcGVha1NlbGVjdGlvbkNvbnRlbnQ6KE5TU3RyaW5nICopY29udGVudCBXS19B
UElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgVUlWaWV3ICpfc2FmZUJyb3dzaW5nV2FybmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBVSVZpZXcgKl9zYWZlQnJvd3NpbmdXYXJuaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTQuNCksIGlvcygxMi4yKSk7CiAjZWxzZQotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBOU1ZpZXcgKl9zYWZlQnJvd3NpbmdXYXJuaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIE5TVmlldyAqX3NhZmVCcm93c2luZ1dhcm5pbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBfV0tSZWN0RWRnZSBfcGlubmVkU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSdWJiZXJCYW5kaW5nRW5hYmxl
ZDopIF9XS1JlY3RFZGdlIF9ydWJiZXJCYW5kaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpKTsKQEAgLTQ5NSw3ICs0OTUsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNV
SW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlDbGVhclNlbGVj
dGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4zKSk7CiAtIChVSVZpZXcgKilfZnVsbFNjcmVl
blBsYWNlaG9sZGVyVmlldyBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CiAKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfY29udGVudFZpZXdJc0ZpcnN0UmVzcG9uZGVy
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgQk9PTCBfY29udGVudFZpZXdJc0ZpcnN0UmVzcG9uZGVyIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKDEyLjIpKTsKICNlbHNlCiAtICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0aXZl
Q2hpbGRXaW5kb3dzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAodm9pZClf
c2V0RnJhbWU6KE5TUmVjdClyZWN0IGFuZFNjcm9sbEJ5OihOU1NpemUpb2Zmc2V0IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwpAQCAtNTMzLDcgKzUzMyw3IEBAIHR5cGVkZWYgTlNf
T1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogCiAtICh2b2lkKV9zZXRIZWFkZXJC
YW5uZXJIZWlnaHQ6KGludCloZWlnaHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSk7
CiAtICh2b2lkKV9zZXRGb290ZXJCYW5uZXJIZWlnaHQ6KGludCloZWlnaHQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMi4zKSk7Ci0tICh2b2lkKV9kb0FmdGVyUHJvY2Vzc2luZ0FsbFBlbmRp
bmdNb3VzZUV2ZW50czooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb24gV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSk7CistICh2b2lkKV9kb0FmdGVyUHJvY2Vzc2luZ0FsbFBlbmRpbmdN
b3VzZUV2ZW50czooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNC40KSk7CiAjZW5kaWYKIAogLSAodm9pZClfcmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdT
ZXNzaW9uSW5mbzoodm9pZCheKShCT09MLCBCT09MLCBOU1N0cmluZyosIGRvdWJsZSwgZG91Ymxl
LCBOU0ludGVnZXIpKWNhbGxiYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlv
cygxMS4zKSk7CkBAIC01NTUsMTEgKzU1NSwxMSBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50
ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIC0gKEJPT0wpX2NvbXBsZXRlQmFja1N3aXBlRm9yVGVzdGlu
ZzsKIC0gKHZvaWQpX3NldERlZmVyc0xvYWRpbmdGb3JUZXN0aW5nOihCT09MKWRlZmVyc0xvYWRp
bmc7CiAKLS0gKHZvaWQpX3NldFNoYXJlU2hlZXRDb21wbGV0ZXNJbW1lZGlhdGVseVdpdGhSZXNv
bHV0aW9uRm9yVGVzdGluZzooQk9PTClyZXNvbHZlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0U2hhcmVTaGVldENvbXBs
ZXRlc0ltbWVkaWF0ZWx5V2l0aFJlc29sdXRpb25Gb3JUZXN0aW5nOihCT09MKXJlc29sdmVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaGFzSW5zcGVjdG9yRnJvbnRlbmQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgX1dLSW5zcGVjdG9yICpfaW5zcGVjdG9yIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIF9XS0ZyYW1lSGFuZGxlICpfbWFpbkZyYW1lIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2hhc0luc3BlY3RvckZyb250ZW5kIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIF9XS0luc3BlY3RvciAqX2luc3BlY3RvciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBf
V0tGcmFtZUhhbmRsZSAqX21haW5GcmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQp
LCBpb3MoMTIuMikpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTY3JvbGxp
bmdVcGRhdGVzRGlzYWJsZWRGb3JUZXN0aW5nOikgQk9PTCBfc2Nyb2xsaW5nVXBkYXRlc0Rpc2Fi
bGVkRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCA2ZDBlN2Y4M2I0YzE0
ZTNmYTM0NDgzYWRjYjYyZDcwOTM2YjRkNjJhLi4yZjhmNDYyODA2OGM2N2JmNTYwMTcwYzVmODcz
ODA5MzQ3MzUyYzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTU1LDggKzU1LDgg
QEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRj
aE9wdGlvbnMpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEJvdW5kSW50ZXJm
YWNlSWRlbnRpZmllcjopIE5TU3RyaW5nICpfYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRBbGxvd3NDZWxsdWxhckFjY2VzczopIEJPT0wgX2FsbG93c0NlbGx1
bGFyQWNjZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQcm94eUNvbmZpZ3VyYXRpb246KSBOU0Rp
Y3Rpb25hcnkgKl9wcm94eUNvbmZpZ3VyYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NCksIGlvcygxMi4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRT
b3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI6KSBOU1N0cmluZyAqX3NvdXJjZUFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1f
c2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOikgTlNTdHJpbmcgKl9zb3Vy
Y2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
LCBzZXR0ZXI9X3NldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjopIE5TU3RyaW5n
ICpfc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0
dGVyPV9zZXRTb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI6KSBOU1N0cmluZyAq
X3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0QWxsb3dzVExTRmFsbGJhY2s6KSBCT09MIF9hbGxvd3NUTFNGYWxsYmFjayBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMICpfaW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNo
bWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQu
aAppbmRleCAzYzM1Nzg4NTRmOWJmYmQzNWYxNzI4NzhmMGM2ZWMwMmNmMGE5ZmIyLi4zN2U4MjM5
OWMxY2YwODIxZGM5ZmNkYzQ2ZDAwNjI5OGMxYTM5NzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50LmgKQEAgLTUyLDE1ICs1MiwxNSBA
QCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpCiBXS19DTEFTU19B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSkKIEBpbnRlcmZhY2UgX1dLQXR0YWNo
bWVudCA6IE5TT2JqZWN0CiAKLS0gKHZvaWQpc2V0RmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIg
KilmaWxlV3JhcHBlciBjb250ZW50VHlwZToobnVsbGFibGUgTlNTdHJpbmcgKiljb250ZW50VHlw
ZSBjb21wbGV0aW9uOih2b2lkKF4gX051bGxhYmxlKShOU0Vycm9yICogX051bGxhYmxlKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworLSAodm9pZClzZXRGaWxlV3JhcHBlcjooTlNGaWxlV3JhcHBlciAqKWZpbGVX
cmFwcGVyIGNvbnRlbnRUeXBlOihudWxsYWJsZSBOU1N0cmluZyAqKWNvbnRlbnRUeXBlIGNvbXBs
ZXRpb246KHZvaWQoXiBfTnVsbGFibGUpKE5TRXJyb3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUpIF9XS0F0dGFjaG1lbnRJbmZv
ICppbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIG51bGxhYmxlKSBfV0tBdHRhY2ht
ZW50SW5mbyAqaW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqdW5pcXVlSWRlbnRp
ZmllcjsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzQ29ubmVjdGVk
KSBCT09MIGNvbm5lY3RlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXND
b25uZWN0ZWQpIEJPT0wgY29ubmVjdGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7CiAKIC8vIERlcHJlY2F0ZWQgU1BJLgotLSAodm9pZClyZXF1ZXN0SW5mbzoo
dm9pZCheKShfV0tBdHRhY2htZW50SW5mbyAqIF9OdWxsYWJsZSwgTlNFcnJvciAqIF9OdWxsYWJs
ZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
LWluZm8iLCBtYWNvcygxMC4xNCwgV0tfTUFDX1RCQSksIGlvcygxMi4wLCBXS19JT1NfVEJBKSk7
Ci0tICh2b2lkKXNldERhdGE6KE5TRGF0YSAqKWRhdGEgbmV3Q29udGVudFR5cGU6KG51bGxhYmxl
IE5TU3RyaW5nICopbmV3Q29udGVudFR5cGUgbmV3RmlsZW5hbWU6KG51bGxhYmxlIE5TU3RyaW5n
ICopbmV3RmlsZW5hbWUgY29tcGxldGlvbjoodm9pZCheIF9OdWxsYWJsZSkoTlNFcnJvciAqIF9O
dWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgiUGxlYXNlIHVzZSAtc2V0RmlsZVdyYXBwZXI6Y29udGVudFR5cGU6Y29tcGxldGlvbjog
aW5zdGVhZC4iLCBtYWNvcygxMC4xMy40LCBXS19NQUNfVEJBKSwgaW9zKDExLjMsIFdLX0lPU19U
QkEpKTsKKy0gKHZvaWQpcmVxdWVzdEluZm86KHZvaWQoXikoX1dLQXR0YWNobWVudEluZm8gKiBf
TnVsbGFibGUsIE5TRXJyb3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIi1pbmZvIiwgbWFjb3MoMTAuMTQsIDEwLjE0LjQp
LCBpb3MoMTIuMCwgMTIuMikpOworLSAodm9pZClzZXREYXRhOihOU0RhdGEgKilkYXRhIG5ld0Nv
bnRlbnRUeXBlOihudWxsYWJsZSBOU1N0cmluZyAqKW5ld0NvbnRlbnRUeXBlIG5ld0ZpbGVuYW1l
OihudWxsYWJsZSBOU1N0cmluZyAqKW5ld0ZpbGVuYW1lIGNvbXBsZXRpb246KHZvaWQoXiBfTnVs
bGFibGUpKE5TRXJyb3IgKiBfTnVsbGFibGUpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIlBsZWFzZSB1c2UgLXNldEZpbGVXcmFwcGVyOmNvbnRl
bnRUeXBlOmNvbXBsZXRpb246IGluc3RlYWQuIiwgbWFjb3MoMTAuMTMuNCwgMTAuMTQuNCksIGlv
cygxMS4zLCAxMi4yKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmln
dXJhdGlvbi5oCmluZGV4IDg2YWVjNDkyNWJjODY2Mjk5YzFjNDdkY2E1NzhmYzE0YjlkNmIxMDIu
LmEyZGY5NDhiNjI3NzlmMGRmMTQ4NjQwNjE3OTAwMTU2ODViOTFkYjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZp
Z3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogTlNfQVNT
VU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBp
b3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygx
Mi4yKSkKIEBpbnRlcmZhY2UgX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uIDogTlNP
YmplY3QgPE5TQ29weWluZz4KIAogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzSW5z
ZWN1cmVNZWRpYUNhcHR1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRG93bmxvYWQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tEb3dubG9hZC5oCmluZGV4IDZhNmY5YzVmYjljMTc4NzljOTk4NzFhMTQ4YjRmOWE3N2Yy
MDA0ZTAuLmVlYTk5YmJkZDQzYzlhY2I0YTliNDg3YzlkMDAzZjYxMWNkYWY5ODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCkBAIC0zNCwx
MiArMzQsMTIgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAK
IC0gKHZvaWQpY2FuY2VsOwogCi0tICh2b2lkKXB1Ymxpc2hQcm9ncmVzc0F0VVJMOihOU1VSTCAq
KVVSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworLSAodm9pZClwdWJsaXNoUHJvZ3Jlc3NBdFVSTDooTlNVUkwgKilVUkwgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBOU1VSTFJlcXVlc3QgKnJlcXVlc3Q7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHksIHdlYWspIFdLV2ViVmlldyAqb3JpZ2luYXRpbmdXZWJWaWV3OwogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PE5TVVJMICo+ICpyZWRpcmVjdENo
YWluIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgd2FzVXNlckluaXRpYXRlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwotQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBOU0RhdGEgKnJlc3VtZURhdGEgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgTlNEYXRhICpyZXN1bWVEYXRhIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlv
cygxMi4yKSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tGb3JtSW5wdXRTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRm9ybUlucHV0U2Vzc2lvbi5oCmluZGV4IDVjNmJiYWViOWUzZmZkMjAzYTU3
M2MyYzBlMjliNGVlYzNiODBmMWYuLmY1OWQ3Y2IyZWIwM2ExY2U2ZmRlODZiOGQwMTVhNjM2ZWUw
MjI2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tG
b3JtSW5wdXRTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0Zvcm1JbnB1dFNlc3Npb24uaApAQCAtMzksNyArMzksNyBAQAogI2lmIFRBUkdFVF9PU19J
UEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqYWNjZXNzb3J5Vmll
d0N1c3RvbUJ1dHRvblRpdGxlOwogQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgVUlWaWV3
ICpjdXN0b21JbnB1dFZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwotQHByb3BlcnR5
IChub25hdG9taWMsIHN0cm9uZykgVUlWaWV3ICpjdXN0b21JbnB1dEFjY2Vzc29yeVZpZXcgV0tf
QVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHN0
cm9uZykgVUlWaWV3ICpjdXN0b21JbnB1dEFjY2Vzc29yeVZpZXcgV0tfQVBJX0FWQUlMQUJMRShp
b3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXk8VUlUZXh0U3Vn
Z2VzdGlvbiAqPiAqc3VnZ2VzdGlvbnMgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwogQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgYWNjZXNzb3J5Vmlld1Nob3VsZE5vdFNob3cgV0tfQVBJ
X0FWQUlMQUJMRShpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgZm9yY2VT
ZWN1cmVUZXh0RW50cnkgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5oCmluZGV4IGFjYThkZjQx
ZGJjYTk4Zjg1OTEzOTk3NzVkODlkZGZkNzc5YTllZTkuLjJlNGNhMDcxMDRhMzkwYTBkOTc5NzFh
YzAwYzNmZDljMGIwNWVlOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLSW5zcGVjdG9yLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogTlNfQVNTVU1FX05PTk5V
TExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSkK
IEBpbnRlcmZhY2UgX1dLSW5zcGVjdG9yIDogTlNPYmplY3QKIAogLSAoaW5zdGFuY2V0eXBlKWlu
aXQgTlNfVU5BVkFJTEFCTEU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnRlcm5hbERlYnVnRmVhdHVyZS5oCmluZGV4IDY1YzY2Yjk3N2Ex
M2MwNzMzNWU0ZWQ1YmRiN2FiNDRkZTE2ZDlmYjMuLjQ1Nzk1ZjJlNWViNmM3MTg5YzAwOTA1M2Y0
M2Q3OThlZDJkYjMyNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tJbnRlcm5hbERlYnVnRmVhdHVyZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnRlcm5hbERlYnVnRmVhdHVyZS5oCkBAIC0yNyw3ICsyNyw3IEBA
CiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1XS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKQogQGludGVyZmFjZSBfV0tJbnRlcm5hbERlYnVn
RmVhdHVyZSA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29w
eSkgTlNTdHJpbmcgKmtleTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCAwZjNh
NTQxY2RmOGVhNTQ5YWM0MmRjMjYyMTkxYWE5ODBlZWQ0OTMwLi5mZGQ0MTFmMzk4OTI2YzZlMjY2
MDcxZDY5MGFhMWE0ZjQxYTMwMjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBA
IC0zNCwxMCArMzQsMTAgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDgu
MCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNVUkwgKmluamVjdGVkQnVuZGxlVVJM
OwogQHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIgbWF4aW11bVByb2Nlc3NDb3VudCBX
S19BUElfREVQUkVDQVRFRCgiSXQgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIHRvIGxpbWl0IHRoZSBu
dW1iZXIgb2YgcHJvY2Vzc2VzIiwgbWFjb3MoV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBLCBXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB1c2Vz
U2luZ2xlV2ViUHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0
cmluZyAqY3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21XZWJDb250ZW50U2Vydmlj
ZUJ1bmRsZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgaWdub3JlU3luY2hyb25vdXNNZXNz
YWdpbmdUaW1lb3V0c0ZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlv
cygxMC4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhdHRyU3R5bGVFbmFibGVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBhdHRyU3R5bGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
KSBOU0FycmF5PE5TVVJMICo+ICphZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRVUkxzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCkBAIC00OCwxMiArNDgsMTIg
QEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAvLyBOZXR3b3Jr
IFByb2Nlc3MgcHJvcGVydGllcwogLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSBiZSBwZXItc2Vz
c2lvbi9kYXRhIHN0b3JlIHdoZW4gd2Ugc3VwcG9ydCBtdWx0aXBsZSBub24tcGVyc2lzdGVudCBz
ZXNzaW9ucy9kYXRhIHN0b3Jlcy4KIAotQHByb3BlcnR5IChub25hdG9taWMpIE5TSW50ZWdlciBk
aXNrQ2FjaGVTaXplT3ZlcnJpZGUgV0tfQVBJX0RFUFJFQ0FURUQoIlVzZSBbV0tXZWJzaXRlRGF0
YVN0b3JlIG5vblBlcnNpc3RlbnREYXRhU3RvcmVdIHRvIGxpbWl0IGRpc2sgY2FjaGUgc2l6ZSB0
byAwIiwgbWFjb3MoMTAuMTEsIFdLX01BQ19UQkEpLCBpb3MoOS4wLCBXS19JT1NfVEJBKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgTlNJbnRlZ2VyIGRpc2tDYWNoZVNpemVPdmVycmlkZSBXS19B
UElfREVQUkVDQVRFRCgiVXNlIFtXS1dlYnNpdGVEYXRhU3RvcmUgbm9uUGVyc2lzdGVudERhdGFT
dG9yZV0gdG8gbGltaXQgZGlzayBjYWNoZSBzaXplIHRvIDAiLCBtYWNvcygxMC4xMSwgMTAuMTQu
NCksIGlvcyg5LjAsIDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0FycmF5
ICpjYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lczsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
KSBOU0FycmF5PE5TU3RyaW5nICo+ICphbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXMgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBkaXNrQ2FjaGVTcGVjdWxhdGl2ZVZhbGlkYXRpb25FbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIG51
bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciIsIG1hY29zKDEw
LjEyLjMsIFdLX01BQ19UQkEpLCBpb3MoMTAuMywgV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRpb25TZWNv
bmRhcnlJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRl
bnRpZmllciIsIG1hY29zKDEwLjEyLjMsIFdLX01BQ19UQkEpLCBpb3MoMTAuMywgV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqc291
cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciIsIG1hY29zKDEwLjEyLjMsIDEwLjE0LjQpLCBpb3MoMTAuMywg
MTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAq
c291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLnNvdXJjZUFw
cGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciIsIG1hY29zKDEwLjEyLjMsIDEwLjE0LjQpLCBp
b3MoMTAuMywgMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgc2hvdWxkQ2FwdHVy
ZUF1ZGlvSW5VSVByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4w
KSk7CiAjaWYgVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxl
LCBjb3B5KSBOU1N0cmluZyAqQ1REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKDEwLjMpKTsKQEAgLTY0LDExICs2NCwxMSBAQCBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHByb2Nl
c3NTd2Fwc09uTmF2aWdhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEy
LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsd2F5c0tlZXBBbmRSZXVzZVN3YXBw
ZWRQcm9jZXNzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3Bl
bmVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwotQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgcHJld2FybXNQcm9jZXNzZXNBdXRvbWF0aWNhbGx5IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYykgQk9PTCB1c2VzV2ViUHJvY2Vzc0NhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBwcmV3YXJtc1Byb2Nlc3Nlc0F1dG9tYXRpY2FsbHkgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHVzZXNX
ZWJQcm9jZXNzQ2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIp
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHBhZ2VDYWNoZUVuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBzdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
YywgZ2V0dGVyPWlzSklURW5hYmxlZCkgQk9PTCBKSVRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgZ2V0dGVyPWlzSklURW5hYmxlZCkgQk9PTCBKSVRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50
ZWdlciBkb3dubG9hZE1vbml0b3JTcGVlZE11bHRpcGxpZXJGb3JUZXN0aW5nIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIU1RTU3RvcmFnZURpcmVjdG9yeTop
IE5TVVJMICpoc3RzU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oCmluZGV4IDA5ZTI1MWU3N2MwNzY5MjViOTM0ZWNjM2Y2YTlkMGZkMDg0OWIzNTEu
LjU5Zjk4NGU0ODdhZGYzZjA0MmQ5NjczN2E5YjQ3ZGE3OWUyMmQzYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCkBAIC0zOSwxMCArMzksMTAgQEAgV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHksIHNldHRlcj1fc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTopIE5TVVJM
ICpfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpLCBpb3MoMTEuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRl
cj1fc2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl9jYWNoZVN0b3JhZ2VEaXJlY3Rv
cnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
aXJlY3Rvcnk6KSBOU1VSTCAqX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAq
c291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
bnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIVFRQUHJveHk6KSBOU1VSTCAqaHR0cFByb3h5IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIVFRQU1Byb3h5Oikg
TlNVUkwgKmh0dHBzUHJveHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNT
dHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxh
YmxlLCBjb3B5KSBOU1N0cmluZyAqc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIVFRQUHJveHk6KSBOU1VSTCAq
aHR0cFByb3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIVFRQU1Byb3h5
OikgTlNVUkwgKmh0dHBzUHJveHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9z
KDEyLjIpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLmgKaW5kZXggZjhjYTkwOGNjZWM1ZmY4Y2E0MWJj
OTE3YmZkODlmNjBlMDhlMWNiMS4uNDkwYmNiNmNlZjkyNjQ5YjBmMGI4NDAzMjVlZWVjMTIxZGYy
NmM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YnNpdGVQb2xpY2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlUG9saWNpZXMuaApAQCAtMzcsOSArMzcsOSBAQCBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTAuMTIuMyksIGlvcygxMC4zKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBO
U0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKmN1c3RvbUhlYWRlckZpZWxkcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogQHByb3BlcnR5IChu
b25hdG9taWMpIF9XS1dlYnNpdGVQb3BVcFBvbGljeSBwb3BVcFBvbGljeSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJv
bmcpIFdLV2Vic2l0ZURhdGFTdG9yZSAqd2Vic2l0ZURhdGFTdG9yZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkp
IE5TU3RyaW5nICpjdXN0b21Vc2VyQWdlbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0
cmluZyAqY3VzdG9tVXNlckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlv
cygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmN1c3RvbUph
dmFTY3JpcHRVc2VyQWdlbnRBc1NpdGVTcGVjaWZpY1F1aXJrcyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHkpIE5TU3RyaW5nICpjdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMpIF9X
S1dlYnNpdGVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeSBkZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuaAppbmRleCA3MmNhMDMzY2Y3OWJhZTFi
ZDZmNzQwODA0Zjg5ZTg0MGVmM2Q4NzExLi44OTY4ZjM4ZDE0N2RjOTE5ZGU4YTM4ZjE4MjVlMzQx
M2M2Njg3NjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzLmgKQEAgLTMyLDcgKzMyLDcgQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAK
LVdLX0VYUE9SVCBpbnQgV0tXZWJQcm9jZXNzTWFpbihpbnQgYXJnYywgY29uc3QgY2hhcioqIGFy
Z3YpIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitXS19FWFBPUlQgaW50IFdLV2ViUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBh
cmd2KSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiAjaWZk
ZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlBy
b2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLmgKaW5kZXggYjczM2U5ZTgzYzYxMTdjYjE5ZjJhZDIwY2Uy
ZmVjNGQ4ZTc3Y2NjYi4uOWViYTI4M2RmZWEwY2Y2OGM2YTlkZmZmOTljMWE5YzBmZDJlODdhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2Rl
SGFuZGxlLmgKQEAgLTU1LDcgKzU1LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEw
KSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgSFRNTFRl
eHRBcmVhRWxlbWVudElzVXNlckVkaXRlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAqSFRNTFRhYmxlQ2VsbEVsZW1lbnRDZWxs
QWJvdmU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLV2ViUHJvY2Vzc1BsdWdJ
bkZyYW1lICpmcmFtZTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBpc1Nl
bGVjdEVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBpc1NlbGVjdEVs
ZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogLSAo
Qk9PTClpc1RleHRGaWVsZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlUHJpdmF0ZS5oCmluZGV4IDE1NGM0ZGJhYmFm
NTRhNWRmYTk4NTM3YjU2MjgzNGFmYjA2OTlkMDMuLjY4MTEzMzNmNTlkN2YzYTcyYTFhOTNiNWM3
NWIxNTZlZTEwNTIzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZVByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29h
L1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVQcml2YXRlLmgKQEAgLTMwLDcgKzMwLDcgQEAg
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLQXV0b0ZpbGxCdXR0b25UeXBlKSB7CiAgICAg
X1dLQXV0b0ZpbGxCdXR0b25UeXBlQ3JlZGVudGlhbHMsCiAgICAgX1dLQXV0b0ZpbGxCdXR0b25U
eXBlQ29udGFjdHMsCiAgICAgX1dLQXV0b0ZpbGxCdXR0b25UeXBlU3Ryb25nUGFzc3dvcmQsCi0g
ICAgX1dLQXV0b0ZpbGxCdXR0b25UeXBlQ3JlZGl0Q2FyZCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpLAorICAgIF9XS0F1dG9GaWxsQnV0dG9uVHlw
ZUNyZWRpdENhcmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKSwK
IH0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIAogQGludGVy
ZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlIChXS1ByaXZhdGUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>