<?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>155383</bug_id>
          
          <creation_ts>2016-03-11 14:56:34 -0800</creation_ts>
          <short_desc>Make preview inline navigation work API</short_desc>
          <delta_ts>2016-03-17 06:14:00 -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>WebKit API</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=155395</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>enrica</cc>
    
    <cc>mitz</cc>
    
    <cc>ossy</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1173887</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-03-11 14:56:34 -0800</bug_when>
    <thetext>Make preview inline navigation work API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173889</commentid>
    <comment_count>1</comment_count>
      <attachid>273773</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-03-11 15:05:11 -0800</bug_when>
    <thetext>Created attachment 273773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173918</commentid>
    <comment_count>2</comment_count>
      <attachid>273784</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-03-11 16:44:41 -0800</bug_when>
    <thetext>Created attachment 273784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173921</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-11 16:46:32 -0800</bug_when>
    <thetext>Attachment 273784 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKPreviewElementInfo.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKElementInfoInternal.h:32:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 2 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173964</commentid>
    <comment_count>4</comment_count>
      <attachid>273784</attachid>
    <who name="">mitz</who>
    <bug_when>2016-03-11 21:56:00 -0800</bug_when>
    <thetext>Comment on attachment 273784
Patch

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

r- because this breaks the Mac build. Some more comments below.

&gt; Source/WebKit2/ChangeLog:16
&gt; +        _WKPreviewActionItem is now WKPreviewActionItem, but the _WKPreviewAction 
&gt; +        class is still a private implementation detail, so it still has an underscore 
&gt; +        even though the filenames do not.

If it’s an *internal* implementation detail, i.e, the class isn’t available even to SPI clients and isn’t exposed in a framework header (which I think is the case or at least should be the case), then per our convention it should *not* be underscore-prefixed.

&gt; Source/WebKit2/ChangeLog:19
&gt; +        nowWKPreviewActionItemIdentifiers.h/mm and all the the identifiers have been 

nowWK

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKElementInfoInternal.h:39
&gt; +#endif // WK_API_ENABLED

I think we normally don’t // WK_API_ENABLED.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItemInternal.h:32
&gt; +@interface _WKPreviewAction : UIPreviewAction &lt;NSCopying, WKPreviewActionItem&gt;

So the underscore should go.

Not new, but you’re claiming NSCopying conformance here but I don’t see that class overrides -copyWithZone:, so at the very least it fails to copy the identifier (and that’s assuming UIPreviewAction is copyable, in which case, there’s no need to declare that its subclass is NSCopying-conformant).

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h:150
&gt; +- (BOOL)webView:(WKWebView *)webView shouldPreviewElement:(WKPreviewElementInfo *)elementInfo WK_AVAILABLE(NA, WK_IOS_TBA);
&gt; +
&gt; +/*! @abstract Allows your app to provide a custom view controller to show when the given element is peeked.
&gt; + @param webView The web view invoking the delegate method.
&gt; + @param elementInfo The elementInfo for the element the user is peeking.
&gt; + @param defaultActions An array of the actions that WebKit would use as previewActionItems for this element by 
&gt; + default. These actions would be used if allowsLinkPreview is YES but these delegate methods have not been 
&gt; + implemented, or if this delegate method returns nil.
&gt; + @discussion Returning a view controller will result in that view controller being displayed as a peek preview.
&gt; + To use the defaultActions, your app is responsible for returning whichever of those actions it wants in your 
&gt; + view controller&apos;s implementation of -previewActionItems.
&gt; + 
&gt; + Returning nil will result in WebKit&apos;s default preview behavior. webView:commitPreviewingViewController: will only be invoked
&gt; + if a non-nil view controller was returned.
&gt; + */
&gt; +- (nullable UIViewController *)webView:(WKWebView *)webView previewingViewControllerForElement:(WKPreviewElementInfo *)elementInfo defaultActions:(NSArray &lt;id &lt;WKPreviewActionItem&gt;&gt; *)previewActions WK_AVAILABLE(NA, WK_IOS_TBA);
&gt; +
&gt; +/*! @abstract Allows your app to pop to the view controller it created.
&gt; + @param webView The web view invoking the delegate method.
&gt; + @param previewingViewController The view controller that is being popped.
&gt; + */
&gt; +- (void)webView:(WKWebView *)webView commitPreviewingViewController:(UIViewController *)previewingViewController WK_AVAILABLE(NA, WK_IOS_TBA);

These should all be in an #if TARGET_OS_IPHONE block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174062</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2016-03-12 12:05:11 -0800</bug_when>
    <thetext>I filed bug 155395 for the NSCopying issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174073</commentid>
    <comment_count>6</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-03-12 14:11:41 -0800</bug_when>
    <thetext>Thanks Dan!!

(In reply to comment #4)
&gt; Comment on attachment 273784 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=273784&amp;action=review
&gt; 
&gt; r- because this breaks the Mac build. Some more comments below.
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:16
&gt; &gt; +        _WKPreviewActionItem is now WKPreviewActionItem, but the _WKPreviewAction 
&gt; &gt; +        class is still a private implementation detail, so it still has an underscore 
&gt; &gt; +        even though the filenames do not.
&gt; 
&gt; If it’s an *internal* implementation detail, i.e, the class isn’t available
&gt; even to SPI clients and isn’t exposed in a framework header (which I think
&gt; is the case or at least should be the case), then per our convention it
&gt; should *not* be underscore-prefixed.
&gt; 

Oops! I fixed this.

&gt; &gt; Source/WebKit2/ChangeLog:19
&gt; &gt; +        nowWKPreviewActionItemIdentifiers.h/mm and all the the identifiers have been 
&gt; 
&gt; nowWK
&gt; 

Fixed.

&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKElementInfoInternal.h:39
&gt; &gt; +#endif // WK_API_ENABLED
&gt; 
&gt; I think we normally don’t // WK_API_ENABLED.
&gt; 

I found 173 occurrences of &apos;// WK_API_ENABLED&apos; when I searched for it in the WebKit2 xcoeproj, so I left it in for now. :-O

&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItemInternal.h:32
&gt; &gt; +@interface _WKPreviewAction : UIPreviewAction &lt;NSCopying, WKPreviewActionItem&gt;
&gt; 
&gt; So the underscore should go.
&gt; 

Gone!

&gt; Not new, but you’re claiming NSCopying conformance here but I don’t see that
&gt; class overrides -copyWithZone:, so at the very least it fails to copy the
&gt; identifier (and that’s assuming UIPreviewAction is copyable, in which case,
&gt; there’s no need to declare that its subclass is NSCopying-conformant).
&gt; 

I haven&apos;t fixed this yet since there is a new bug filed about it. Also since it will be easier to review that bit in the context of a smaller patch.

&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h:150
&gt; &gt; +- (BOOL)webView:(WKWebView *)webView shouldPreviewElement:(WKPreviewElementInfo *)elementInfo WK_AVAILABLE(NA, WK_IOS_TBA);
&gt; &gt; +
&gt; &gt; +/*! @abstract Allows your app to provide a custom view controller to show when the given element is peeked.
&gt; &gt; + @param webView The web view invoking the delegate method.
&gt; &gt; + @param elementInfo The elementInfo for the element the user is peeking.
&gt; &gt; + @param defaultActions An array of the actions that WebKit would use as previewActionItems for this element by 
&gt; &gt; + default. These actions would be used if allowsLinkPreview is YES but these delegate methods have not been 
&gt; &gt; + implemented, or if this delegate method returns nil.
&gt; &gt; + @discussion Returning a view controller will result in that view controller being displayed as a peek preview.
&gt; &gt; + To use the defaultActions, your app is responsible for returning whichever of those actions it wants in your 
&gt; &gt; + view controller&apos;s implementation of -previewActionItems.
&gt; &gt; + 
&gt; &gt; + Returning nil will result in WebKit&apos;s default preview behavior. webView:commitPreviewingViewController: will only be invoked
&gt; &gt; + if a non-nil view controller was returned.
&gt; &gt; + */
&gt; &gt; +- (nullable UIViewController *)webView:(WKWebView *)webView previewingViewControllerForElement:(WKPreviewElementInfo *)elementInfo defaultActions:(NSArray &lt;id &lt;WKPreviewActionItem&gt;&gt; *)previewActions WK_AVAILABLE(NA, WK_IOS_TBA);
&gt; &gt; +
&gt; &gt; +/*! @abstract Allows your app to pop to the view controller it created.
&gt; &gt; + @param webView The web view invoking the delegate method.
&gt; &gt; + @param previewingViewController The view controller that is being popped.
&gt; &gt; + */
&gt; &gt; +- (void)webView:(WKWebView *)webView commitPreviewingViewController:(UIViewController *)previewingViewController WK_AVAILABLE(NA, WK_IOS_TBA);
&gt; 
&gt; These should all be in an #if TARGET_OS_IPHONE block.

Fixed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174075</commentid>
    <comment_count>7</comment_count>
      <attachid>273849</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-03-12 14:14:55 -0800</bug_when>
    <thetext>Created attachment 273849
Patch that addresses Dan&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174076</commentid>
    <comment_count>8</comment_count>
    <who name="">mitz</who>
    <bug_when>2016-03-12 14:15:17 -0800</bug_when>
    <thetext>(In reply to comment #6)

&gt; &gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKElementInfoInternal.h:39
&gt; &gt; &gt; +#endif // WK_API_ENABLED
&gt; &gt; 
&gt; &gt; I think we normally don’t // WK_API_ENABLED.
&gt; &gt; 
&gt; 
&gt; I found 173 occurrences of &apos;// WK_API_ENABLED&apos; when I searched for it in the
&gt; WebKit2 xcoeproj, so I left it in for now. :-O

I should have been more specific. I think we normally avoid // WK_API_ENABLED in our API and SPI headers, or at least in our API headers :-P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174077</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-12 14:16:47 -0800</bug_when>
    <thetext>Attachment 273849 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3951:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKPreviewElementInfo.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKElementInfoInternal.h:32:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174078</commentid>
    <comment_count>10</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-03-12 14:21:34 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; 
&gt; &gt; &gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKElementInfoInternal.h:39
&gt; &gt; &gt; &gt; +#endif // WK_API_ENABLED
&gt; &gt; &gt; 
&gt; &gt; &gt; I think we normally don’t // WK_API_ENABLED.
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; I found 173 occurrences of &apos;// WK_API_ENABLED&apos; when I searched for it in the
&gt; &gt; WebKit2 xcoeproj, so I left it in for now. :-O
&gt; 
&gt; I should have been more specific. I think we normally avoid //
&gt; WK_API_ENABLED in our API and SPI headers, or at least in our API headers :-P

OOoooOooOooOOoO. I have a bunch of them in the API headers. Will remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174079</commentid>
    <comment_count>11</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-03-12 14:23:39 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #6)
&gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKElementInfoInternal.h:39
&gt; &gt; &gt; &gt; &gt; +#endif // WK_API_ENABLED
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I think we normally don’t // WK_API_ENABLED.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; I found 173 occurrences of &apos;// WK_API_ENABLED&apos; when I searched for it in the
&gt; &gt; &gt; WebKit2 xcoeproj, so I left it in for now. :-O
&gt; &gt; 
&gt; &gt; I should have been more specific. I think we normally avoid //
&gt; &gt; WK_API_ENABLED in our API and SPI headers, or at least in our API headers :-P
&gt; 
&gt; OOoooOooOooOOoO. I have a bunch of them in the API headers. Will remove.

Although we do seem to have one in WKUIDelegate.h, but I will still remove the ones I added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174080</commentid>
    <comment_count>12</comment_count>
      <attachid>273850</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-03-12 14:25:22 -0800</bug_when>
    <thetext>Created attachment 273850
New patch that addresses more of Dan&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174081</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-12 14:27:54 -0800</bug_when>
    <thetext>Attachment 273850 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3951:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKPreviewElementInfo.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKElementInfoInternal.h:30:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 4 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174085</commentid>
    <comment_count>14</comment_count>
      <attachid>273852</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-03-12 14:36:07 -0800</bug_when>
    <thetext>Created attachment 273852
Patch with WK_API_ENABLED back</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174087</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-12 14:38:59 -0800</bug_when>
    <thetext>Attachment 273852 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3951:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKPreviewElementInfo.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKElementInfoInternal.h:32:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174088</commentid>
    <comment_count>16</comment_count>
      <attachid>273854</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-03-12 14:48:40 -0800</bug_when>
    <thetext>Created attachment 273854
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174090</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-12 14:50:33 -0800</bug_when>
    <thetext>Attachment 273854 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3951:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKPreviewElementInfo.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKElementInfoInternal.h:32:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174097</commentid>
    <comment_count>18</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-03-12 15:16:28 -0800</bug_when>
    <thetext>Thanks Dan! http://trac.webkit.org/changeset/198070</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175715</commentid>
    <comment_count>19</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-03-17 06:13:03 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Thanks Dan! http://trac.webkit.org/changeset/198070

It broke the Apple Mac cmake build:
CMake Error at Source/cmake/WebKitMacros.cmake:248 (add_library):
  Cannot find source file:

    UIProcess/API/Cocoa/_WKElementInfo.mm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175716</commentid>
    <comment_count>20</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-03-17 06:14:00 -0700</bug_when>
    <thetext>fix landed in http://trac.webkit.org/changeset/198329</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273773</attachid>
            <date>2016-03-11 15:05:11 -0800</date>
            <delta_ts>2016-03-11 16:44:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>74653</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODA0OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYxIEBACisyMDE2LTAzLTExICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHByZXZpZXcgaW5saW5lIG5h
dmlnYXRpb24gd29yayBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NTM4MworICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisgICAgICAgIHJk
YXI6Ly9wcm9ibGVtLzI1MTE3OTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2l0aCB0aGlzIHBhdGNoOgorICAgICAgICBfV0tFbGVtZW50SW5mbyBp
cyBub3cgV0tFbGVtZW50SW5mbyBpbiBmaWxlIGFuZCBjbGFzcyBuYW1lcy4KKyAgICAgICAgX1dL
UHJldmlld0VsZW1lbnRJbmZvIGlzIG5vdyBXS1ByZXZpZXdFbGVtZW50SW5mbyBpbiBmaWxlIGFu
ZCBjbGFzcyBuYW1lcy4KKyAgICAgICAgX1dLUHJldmlld0FjdGlvbiBpcyBub3cgV0tQcmV2aWV3
QWN0aW9uSXRlbSBpbiBmaWxlbmFtZXMsIHRoZSBwcm90b2NvbCAKKyAgICAgICAgX1dLUHJldmll
d0FjdGlvbkl0ZW0gaXMgbm93IFdLUHJldmlld0FjdGlvbkl0ZW0sIGJ1dCB0aGUgX1dLUHJldmll
d0FjdGlvbiAKKyAgICAgICAgY2xhc3MgaXMgc3RpbGwgYSBwcml2YXRlIGltcGxlbWVudGF0aW9u
IGRldGFpbCwgc28gaXQgc3RpbGwgaGFzIGFuIHVuZGVyc2NvcmUgCisgICAgICAgIGV2ZW4gdGhv
dWdoIHRoZSBmaWxlbmFtZXMgZG8gbm90LgorICAgICAgICBhbmQKKyAgICAgICAgV0tQcmV2aWV3
QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmgvbW0gaXMgCisgICAgICAgIG5vd1dLUHJldmlld0Fj
dGlvbkl0ZW1JZGVudGlmaWVycy5oL21tIGFuZCBhbGwgdGhlIHRoZSBpZGVudGlmaWVycyBoYXZl
IGJlZW4gCisgICAgICAgIHVwZGF0ZWQuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL1dl
YktpdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5oOiBD
b3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLmguCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLm1tOiBDb3BpZWQgZnJvbSBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLm1tLgorICAgICAgICAoLVtXS0VsZW1lbnRJ
bmZvIGNvcHlXaXRoWm9uZTpdKToKKyAgICAgICAgKC1bX1dLRWxlbWVudEluZm8gY29weVdpdGha
b25lOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50
SW5mb0ludGVybmFsLmg6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVu
dEluZm9JbnRlcm5hbC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3
QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUubW06IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLmg6IENv
cGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbi5oLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbTogQ29waWVkIGZy
b20gVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLm1tLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmg6IENvcGll
ZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2
YXRlLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVt
SWRlbnRpZmllcnMubW06IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3
QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmg6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbkludGVybmFsLmguCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8ubW06IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tLgorICAgICAgICAoLVtXS1ByZXZpZXdF
bGVtZW50SW5mbyBfaW5pdFdpdGhMaW5rVVJMOl0pOgorICAgICAgICAoLVtfV0tQcmV2aWV3RWxl
bWVudEluZm8gX2luaXRXaXRoTGlua1VSTDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaDogQ29waWVkIGZyb20g
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8ubW06IFJlbW92ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mb0ludGVybmFsLmg6IFJlbW92ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLmg6IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLm1tOiBSZW1v
dmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbkludGVy
bmFsLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3
RWxlbWVudEluZm8uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1ByZXZpZXdFbGVtZW50SW5mby5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmg6IFJlbW92ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX2ludGVyYWN0aW9uU2hvdWxkQmVnaW5Gcm9tUHJldmlld0l0ZW1Db250
cm9sbGVyOmZvclBvc2l0aW9uOl0pOgorICAgICAgICAocHJldmlld0lkZW50aWZpZXJGb3JFbGVt
ZW50QWN0aW9uKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcHJlc2VudGVkVmlld0NvbnRy
b2xsZXJGb3JQcmV2aWV3SXRlbUNvbnRyb2xsZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX3ByZXZpZXdJdGVtQ29udHJvbGxlcjpjb21taXRQcmV2aWV3Ol0pOgorICAgICAgICAqIFdl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNi0wMy0xMSAgRW5yaWNhIENh
c3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBvbmx5IHNlbGVjdGVkIHRl
eHQgZm9yIExvb2sgdXAuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dl
YktpdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV2Vi
S2l0LmgJKHJldmlzaW9uIDE5Nzk2MikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29j
b2EvV2ViS2l0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCA8
V2ViS2l0L1dLQmFja0ZvcndhcmRMaXN0Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tCYWNrRm9yd2Fy
ZExpc3RJdGVtLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tFbGVtZW50SW5mby5oPgogI2ltcG9ydCA8
V2ViS2l0L1dLRXJyb3IuaD4KICNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KICNpbXBv
cnQgPFdlYktpdC9XS0ZyYW1lSW5mby5oPgpAQCAtMzMsNiArMzQsOSBAQAogI2ltcG9ydCA8V2Vi
S2l0L1dLTmF2aWdhdGlvbkRlbGVnYXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tOYXZpZ2F0aW9u
UmVzcG9uc2UuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzLmg+CisjaW1wb3J0IDxX
ZWJLaXQvV0tQcmV2aWV3QWN0aW9uSXRlbS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUHJldmlld0Fj
dGlvbkl0ZW1JZGVudGlmaWVycy5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUHJldmlld0VsZW1lbnRJ
bmZvLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbC5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLU2NyaXB0TWVzc2FnZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLU2NyaXB0TWVzc2FnZUhhbmRs
ZXIuaD4KSW5kZXg6IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5oCShyZXZpc2lvbiAxOTc5
NjIpCShmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8uaDoxOTc5NjIpCisr
KyBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJ
bmZvLmgJKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiBOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgogCiBXS19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSkKLUBpbnRlcmZhY2UgX1dLRWxlbWVudEluZm8gOiBOU09iamVjdCA8TlNDb3B5aW5n
PgorQGludGVyZmFjZSBXS0VsZW1lbnRJbmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqbGlua1VSTDsKIApJbmRleDogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5tbQkocmV2aXNpb24gMTk3OTYyKQkoZnJvbSBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLm1tOjE5Nzk2MikKKysrIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5tbQkod29y
a2luZyBjb3B5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1l
bnRJbmZvLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMSArMjQsMTEgQEAKICAqLwogCiAjaW1w
b3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIl9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKKyNpbXBv
cnQgIldLRWxlbWVudEluZm9JbnRlcm5hbC5oIgogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotQGlt
cGxlbWVudGF0aW9uIF9XS0VsZW1lbnRJbmZvCitAaW1wbGVtZW50YXRpb24gV0tFbGVtZW50SW5m
bwogCiAtIChpZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKIHsKSW5kZXg6IFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mb0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkocmV2aXNpb24gMTk3OTYyKQko
ZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaDoxOTc5NjIp
CisrKyBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCSh3b3JraW5n
IGNvcHkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRWxlbWVu
dEluZm9JbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tFbGVtZW50SW5mb0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mb0ludGVybmFsLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIzLDEzICsyMywxMyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLSNpbXBvcnQgIl9XS0VsZW1lbnRJbmZvLmgiCisjaW1wb3J0ICJX
S0VsZW1lbnRJbmZvLmgiCiAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIFdLX0FQ
SV9FTkFCTEVECiAKLUBpbnRlcmZhY2UgX1dLRWxlbWVudEluZm8gKCkgeworQGludGVyZmFjZSBX
S0VsZW1lbnRJbmZvICgpIHsKIEBwYWNrYWdlCiAgICAgUmV0YWluUHRyPE5TVVJMPiBfbGlua1VS
TDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3
QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaAko
cmV2aXNpb24gMTk3OTczKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSwz
OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotCi0jaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+
Ci0KLSNpZiBXS19BUElfRU5BQkxFRAotCi0jaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24u
aD4KLSNpbXBvcnQgPFdlYktpdC9XS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oPgotCi1XS19FWFBP
UlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJPcGVuIFdLX0FW
QUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29u
c3QgX1dLUHJldmlld0lkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0IFdLX0FWQUlMQUJMRShOQSwg
V0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJldmll
d0lkZW50aWZpZXJDb3B5IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJTaGFyZSBXS19BVkFJ
TEFCTEUoTkEsIFdLX0lPU19UQkEpOwotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3
QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tCShyZXZpc2lvbiAxOTc5NzMpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJp
dmF0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMSwzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJp
dmF0ZS5oIgotCi0jaWYgV0tfQVBJX0VOQUJMRUQKLQotTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2
aWV3SWRlbnRpZmllck9wZW4gPSBAIldLUHJldmlld0lkZW50aWZpZXJPcGVuIjsKLU5TU3RyaW5n
ICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0ID0gQCJXS1ByZXZp
ZXdJZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdCI7Ci1OU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZp
ZXdJZGVudGlmaWVyQ29weSA9IEAiV0tQcmV2aWV3SWRlbnRpZmllckNvcHkiOwotTlNTdHJpbmcg
KiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllclNoYXJlID0gQCJXS1ByZXZpZXdJZGVudGlmaWVy
U2hhcmUiOwotCi0jZW5kaWYKSW5kZXg6IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0
aW9uSXRlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0
aW9uSXRlbS5oCShyZXZpc2lvbiAxOTgwMzMpCShmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UHJldmlld0FjdGlvbi5oOjE5ODAzMykKKysrIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3
QWN0aW9uSXRlbS5oCSh3b3JraW5nIGNvcHkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0uaAkod29ya2lu
ZyBjb3B5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdB
Y3Rpb25JdGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEwICsyOSwxMCBAQAogCiAjaW1wb3J0
IDxVSUtpdC9VSVZpZXdDb250cm9sbGVyLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShOQSwgV0tf
SU9TX1RCQSkKLUBwcm90b2NvbCBfV0tQcmV2aWV3QWN0aW9uSXRlbSA8TlNPYmplY3QsIFVJUHJl
dmlld0FjdGlvbkl0ZW0+CitXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpCitAcHJvdG9jb2wg
V0tQcmV2aWV3QWN0aW9uSXRlbSA8VUlQcmV2aWV3QWN0aW9uSXRlbT4KIAotQHByb3BlcnR5KG5v
bmF0b21pYywgY29weSwgcmVhZG9ubHkpIE5TU3RyaW5nICppZGVudGlmaWVyOworQHByb3BlcnR5
IChub25hdG9taWMsIGNvcHksIHJlYWRvbmx5KSBOU1N0cmluZyAqaWRlbnRpZmllcjsKIAogQGVu
ZAogCkluZGV4OiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0ubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLm1tCShy
ZXZpc2lvbiAxOTgwMzMpCShmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlv
bi5tbToxOTgwMzMpCisrKyBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0u
bW0JKHdvcmtpbmcgY29weSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0ubW0JKHdvcmtpbmcgY29weSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRl
bS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbXBvcnQgImNv
bmZpZy5oIgotI2ltcG9ydCAiX1dLUHJldmlld0FjdGlvbkludGVybmFsLmgiCisjaW1wb3J0ICJX
S1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaCIKIAogI2lmIFdLX0FQSV9FTkFCTEVEICYmIFRB
UkdFVF9PU19JUEhPTkUKIApJbmRleDogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rp
b25JdGVtSWRlbnRpZmllcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oCShyZXZpc2lvbiAxOTc5NzMpCShmcm9tIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmg6MTk3
OTczKQorKysgVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmll
cnMuaAkod29ya2luZyBjb3B5KQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlm
aWVycy5oCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSwxMSArMjksMTAgQEAKICNpZiBXS19BUElfRU5BQkxFRAogCiAjaW1wb3J0IDxGb3VuZGF0aW9u
L0ZvdW5kYXRpb24uaD4KLSNpbXBvcnQgPFdlYktpdC9XS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5o
PgogCi1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZp
ZXJPcGVuIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5T
U3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0IFdLX0FW
QUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29u
c3QgX1dLUHJldmlld0lkZW50aWZpZXJDb3B5IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7
Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJT
aGFyZSBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5nICog
Y29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJPcGVuIFdLX0FWQUlMQUJMRShOQSwg
V0tfSU9TX1RCQSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25J
dGVtSWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJB
KTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlm
aWVyQ29weSBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5n
ICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJTaGFyZSBXS19BVkFJTEFCTEUo
TkEsIFdLX0lPU19UQkEpOwogCiAjZW5kaWYKSW5kZXg6IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tCShyZXZpc2lvbiAxOTc5
NzMpCShmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQ
cml2YXRlLm1tOjE5Nzk3MykKKysrIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9u
SXRlbUlkZW50aWZpZXJzLm1tCSh3b3JraW5nIGNvcHkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0Fj
dGlvbkl0ZW1JZGVudGlmaWVycy5tbQkod29ya2luZyBjb3B5KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTI0LDEzICsyNCwxMyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaCIKKyNpbmNs
dWRlICJXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaCIKIAogI2lmIFdLX0FQSV9FTkFC
TEVECiAKLU5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJPcGVuID0gQCJXS1By
ZXZpZXdJZGVudGlmaWVyT3BlbiI7Ci1OU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlm
aWVyQWRkVG9SZWFkaW5nTGlzdCA9IEAiV0tQcmV2aWV3SWRlbnRpZmllckFkZFRvUmVhZGluZ0xp
c3QiOwotTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckNvcHkgPSBAIldLUHJl
dmlld0lkZW50aWZpZXJDb3B5IjsKLU5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZp
ZXJTaGFyZSA9IEAiV0tQcmV2aWV3SWRlbnRpZmllclNoYXJlIjsKK05TU3RyaW5nICogY29uc3Qg
V0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJPcGVuID0gQCJXS1ByZXZpZXdBY3Rpb25JdGVt
SWRlbnRpZmllck9wZW4iOworTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRl
bnRpZmllckFkZFRvUmVhZGluZ0xpc3QgPSBAIldLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVy
QWRkVG9SZWFkaW5nTGlzdCI7CitOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1J
ZGVudGlmaWVyQ29weSA9IEAiV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJDb3B5IjsKK05T
U3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJTaGFyZSA9IEAiV0tQ
cmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJTaGFyZSI7CiAKICNlbmRpZgpJbmRleDogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oCShyZXZp
c2lvbiAxOTgwMzcpCShmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbklu
dGVybmFsLmg6MTk4MDM3KQorKysgVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25J
dGVtSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1J
bnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
Nyw5ICsyNyw5IEBACiAKICNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCiAK
LSNpbXBvcnQgIl9XS1ByZXZpZXdBY3Rpb24uaCIKKyNpbXBvcnQgIldLUHJldmlld0FjdGlvbkl0
ZW0uaCIKIAotQGludGVyZmFjZSBfV0tQcmV2aWV3QWN0aW9uIDogVUlQcmV2aWV3QWN0aW9uIDxO
U0NvcHlpbmcsIF9XS1ByZXZpZXdBY3Rpb25JdGVtPgorQGludGVyZmFjZSBfV0tQcmV2aWV3QWN0
aW9uIDogVUlQcmV2aWV3QWN0aW9uIDxOU0NvcHlpbmcsIFdLUHJldmlld0FjdGlvbkl0ZW0+CiAK
ICsgKGluc3RhbmNldHlwZSlhY3Rpb25XaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlm
aWVyIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIHN0eWxlOihVSVByZXZpZXdBY3Rpb25TdHlsZSlz
dHlsZSBoYW5kbGVyOih2b2lkICheKShVSVByZXZpZXdBY3Rpb24gKmFjdGlvbiwgVUlWaWV3Q29u
dHJvbGxlciAqcHJldmlld1ZpZXdDb250cm9sbGVyKSloYW5kbGVyOwogCkluZGV4OiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCShyZXZpc2lvbiAxOTc5NjIpCShm
cm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmg6MTk3OTYyKQor
KysgVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCSh3b3JraW5nIGNv
cHkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0Vs
ZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDEyICsyNywxMiBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VU
X09TX0lQSE9ORQogCi0jaW1wb3J0IDxXZWJLaXQvX1dLRWxlbWVudEluZm8uaD4KKyNpbXBvcnQg
PFdlYktpdC9XS0VsZW1lbnRJbmZvLmg+CiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIFdL
X0NMQVNTX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSkKLUBpbnRlcmZhY2UgX1dLUHJldmlld0Vs
ZW1lbnRJbmZvIDogX1dLRWxlbWVudEluZm8KK0BpbnRlcmZhY2UgV0tQcmV2aWV3RWxlbWVudElu
Zm8gOiBXS0VsZW1lbnRJbmZvCiAKIEBlbmQKIApJbmRleDogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZXZpZXdFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJldmlld0VsZW1lbnRJbmZvLm1tCShyZXZpc2lvbiAxOTc5NjIpCShmcm9tIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tOjE5Nzk2MikKKysrIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8ubW0JKHdvcmtpbmcgY29weSkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8u
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZXZpZXdFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQpA
QCAtMjQsMTQgKzI0LDE0IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJf
V0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tQcmV2aWV3RWxlbWVu
dEluZm9JbnRlcm5hbC5oIgogCi0jaW1wb3J0ICJfV0tFbGVtZW50SW5mb0ludGVybmFsLmgiCisj
aW1wb3J0ICJXS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KIAogI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKElPUykKIAotQGltcGxlbWVudGF0
aW9uIF9XS1ByZXZpZXdFbGVtZW50SW5mbworQGltcGxlbWVudGF0aW9uIFdLUHJldmlld0VsZW1l
bnRJbmZvCiAKIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhMaW5rVVJMOihOU1VSTCAqKXVybAog
ewpJbmRleDogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFs
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5m
b0ludGVybmFsLmgJKHJldmlzaW9uIDE5Nzk2MikJKGZyb20gVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oOjE5Nzk2MikKKysrIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZv
SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVy
bmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDExICsyMywxMSBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbXBvcnQgIl9XS1ByZXZpZXdFbGVtZW50SW5m
by5oIgorI2ltcG9ydCAiV0tQcmV2aWV3RWxlbWVudEluZm8uaCIKIAogI2lmIFdLX0FQSV9FTkFC
TEVEICYmIFRBUkdFVF9PU19JUEhPTkUKIAotQGludGVyZmFjZSBfV0tQcmV2aWV3RWxlbWVudElu
Zm8gKCkKK0BpbnRlcmZhY2UgV0tQcmV2aWV3RWxlbWVudEluZm8gKCkKIAogLSAoaW5zdGFuY2V0
eXBlKV9pbml0V2l0aExpbmtVUkw6KE5TVVJMICopdXJsOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgJKHJldmlzaW9uIDE5
Nzk2MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDExICsyOCwxMyBAQAogI2lmIFdLX0FQSV9FTkFCTEVE
CiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2ltcG9ydCA8V2ViS2l0L1dL
UHJldmlld0FjdGlvbkl0ZW0uaD4KIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogQGNsYXNz
IFdLRnJhbWVJbmZvOwogQGNsYXNzIFdLTmF2aWdhdGlvbkFjdGlvbjsKK0BjbGFzcyBXS1ByZXZp
ZXdFbGVtZW50SW5mbzsKIEBjbGFzcyBXS1dlYlZpZXdDb25maWd1cmF0aW9uOwogQGNsYXNzIFdL
V2luZG93RmVhdHVyZXM7CiAKQEAgLTExNCw2ICsxMTYsMzkgQEAgTlNfQVNTVU1FX05PTk5VTExf
QkVHSU4KICAqLwogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFT
Y3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6KE5TU3RyaW5nICopcHJvbXB0IGRlZmF1bHRU
ZXh0OihudWxsYWJsZSBOU1N0cmluZyAqKWRlZmF1bHRUZXh0IGluaXRpYXRlZEJ5RnJhbWU6KFdL
RnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICog
V0tfTlVMTEFCTEVfU1BFQ0lGSUVSIHJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXI7CiAKKy8qISBA
YWJzdHJhY3QgQWxsb3dzIHlvdXIgYXBwIHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0aGUg
Z2l2ZW4gZWxlbWVudCBzaG91bGQgc2hvdyBhIHByZXZpZXcuCisgQHBhcmFtIHdlYlZpZXcgVGhl
IHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2QuCisgQHBhcmFtIGVsZW1lbnRJ
bmZvIFRoZSBlbGVtZW50SW5mbyBmb3IgdGhlIGVsZW1lbnQgdGhlIHVzZXIgaGFzIHN0YXJ0ZWQg
dG91Y2hpbmcuCisgQGRpc2N1c3Npb24gVG8gZGlzYWJsZSBwcmV2aWV3cyBlbnRpcmVseSBmb3Ig
dGhlIGdpdmVuIGVsZW1lbnQsIHJldHVybiBOTy4gUmV0dXJuaW5nIE5PIHdpbGwgcHJldmVudCAK
KyB3ZWJWaWV3OnByZXZpZXdpbmdWaWV3Q29udHJvbGxlckZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlv
bnM6IGFuZCB3ZWJWaWV3OmNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjoKKyBmcm9tIGJl
aW5nIGludm9rZWQuCisgCisgVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGludm9rZWQgZm9yIGVs
ZW1lbnRzIHRoYXQgaGF2ZSBkZWZhdWx0IHByZXZpZXcgaW4gV2ViS2l0LCB3aGljaCBpcworIGxp
bWl0ZWQgdG8gbGlua3MuIEluIHRoZSBmdXR1cmUsIGl0IGNvdWxkIGJlIGludm9rZWQgZm9yIGFk
ZGl0aW9uYWwgZWxlbWVudHMuCisgKi8KKy0gKEJPT0wpd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBzaG91bGRQcmV2aWV3RWxlbWVudDooV0tQcmV2aWV3RWxlbWVudEluZm8gKillbGVtZW50
SW5mbyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworCisvKiEgQGFic3RyYWN0IEFsbG93
cyB5b3VyIGFwcCB0byBwcm92aWRlIGEgY3VzdG9tIHZpZXcgY29udHJvbGxlciB0byBzaG93IHdo
ZW4gdGhlIGdpdmVuIGVsZW1lbnQgaXMgcGVla2VkLgorIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIg
dmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgorIEBwYXJhbSBlbGVtZW50SW5mbyBU
aGUgZWxlbWVudEluZm8gZm9yIHRoZSBlbGVtZW50IHRoZSB1c2VyIGlzIHBlZWtpbmcuCisgQHBh
cmFtIGRlZmF1bHRBY3Rpb25zIEFuIGFycmF5IG9mIHRoZSBhY3Rpb25zIHRoYXQgV2ViS2l0IHdv
dWxkIHVzZSBhcyBwcmV2aWV3QWN0aW9uSXRlbXMgZm9yIHRoaXMgZWxlbWVudCBieSAKKyBkZWZh
dWx0LiBUaGVzZSBhY3Rpb25zIHdvdWxkIGJlIHVzZWQgaWYgYWxsb3dzTGlua1ByZXZpZXcgaXMg
WUVTIGJ1dCB0aGVzZSBkZWxlZ2F0ZSBtZXRob2RzIGhhdmUgbm90IGJlZW4gCisgaW1wbGVtZW50
ZWQsIG9yIGlmIHRoaXMgZGVsZWdhdGUgbWV0aG9kIHJldHVybnMgbmlsLgorIEBkaXNjdXNzaW9u
IFJldHVybmluZyBhIHZpZXcgY29udHJvbGxlciB3aWxsIHJlc3VsdCBpbiB0aGF0IHZpZXcgY29u
dHJvbGxlciBiZWluZyBkaXNwbGF5ZWQgYXMgYSBwZWVrIHByZXZpZXcuCisgVG8gdXNlIHRoZSBk
ZWZhdWx0QWN0aW9ucywgeW91ciBhcHAgaXMgcmVzcG9uc2libGUgZm9yIHJldHVybmluZyB3aGlj
aGV2ZXIgb2YgdGhvc2UgYWN0aW9ucyBpdCB3YW50cyBpbiB5b3VyIAorIHZpZXcgY29udHJvbGxl
cidzIGltcGxlbWVudGF0aW9uIG9mIC1wcmV2aWV3QWN0aW9uSXRlbXMuCisgCisgUmV0dXJuaW5n
IG5pbCB3aWxsIHJlc3VsdCBpbiBXZWJLaXQncyBkZWZhdWx0IHByZXZpZXcgYmVoYXZpb3IuIHdl
YlZpZXc6Y29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOiB3aWxsIG9ubHkgYmUgaW52b2tl
ZAorIGlmIGEgbm9uLW5pbCB2aWV3IGNvbnRyb2xsZXIgd2FzIHJldHVybmVkLgorICovCistIChu
dWxsYWJsZSBVSVZpZXdDb250cm9sbGVyICopd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBw
cmV2aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVtZW50OihXS1ByZXZpZXdFbGVtZW50SW5mbyAq
KWVsZW1lbnRJbmZvIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5IDxpZCA8V0tQcmV2aWV3QWN0aW9u
SXRlbT4+ICopcHJldmlld0FjdGlvbnMgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKwor
LyohIEBhYnN0cmFjdCBBbGxvd3MgeW91ciBhcHAgdG8gcG9wIHRvIHRoZSB2aWV3IGNvbnRyb2xs
ZXIgaXQgY3JlYXRlZC4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhl
IGRlbGVnYXRlIG1ldGhvZC4KKyBAcGFyYW0gcHJldmlld2luZ1ZpZXdDb250cm9sbGVyIFRoZSB2
aWV3IGNvbnRyb2xsZXIgdGhhdCBpcyBiZWluZyBwb3BwZWQuCisgKi8KKy0gKHZvaWQpd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBjb21taXRQcmV2aWV3aW5nVmlld0NvbnRyb2xsZXI6KFVJ
Vmlld0NvbnRyb2xsZXIgKilwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXIgV0tfQVZBSUxBQkxFKE5B
LCBXS19JT1NfVEJBKTsKKwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVn
YXRlUHJpdmF0ZS5oCShyZXZpc2lvbiAxOTc5NzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjks
NyArMjksNiBAQAogCiAjaW1wb3J0IDxXZWJLaXQvV0tTZWN1cml0eU9yaWdpbi5oPgogI2ltcG9y
dCA8V2ViS2l0L19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmg+Ci0jaW1wb3J0IDxXZWJLaXQvX1dL
UHJldmlld0FjdGlvbi5oPgogCiBAY2xhc3MgVUlTY3JvbGxWaWV3OwogQGNsYXNzIFVJVmlld0Nv
bnRyb2xsZXI7CkBAIC0zNyw3ICszNiw2IEBACiBAY2xhc3MgX1dLQWN0aXZhdGVkRWxlbWVudElu
Zm87CiBAY2xhc3MgX1dLRWxlbWVudEFjdGlvbjsKIEBjbGFzcyBfV0tGcmFtZUhhbmRsZTsKLUBj
bGFzcyBfV0tQcmV2aWV3RWxlbWVudEluZm87CiAKIEBwcm90b2NvbCBXS1VJRGVsZWdhdGVQcml2
YXRlIDxXS1VJRGVsZWdhdGU+CiAKQEAgLTc4LDE3ICs3Niw2IEBAIHN0cnVjdCBVSUVkZ2VJbnNl
dHM7CiAtIChVSUVkZ2VJbnNldHMpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZmluYWxP
YnNjdXJlZEluc2V0c0ZvclNjcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0
aFZlbG9jaXR5OihDR1BvaW50KXZlbG9jaXR5IHRhcmdldENvbnRlbnRPZmZzZXQ6KGlub3V0IENH
UG9pbnQgKil0YXJnZXRDb250ZW50T2Zmc2V0IFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKIC0gKFVJ
Vmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmll
d0NvbnRyb2xsZXJGb3JVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihXS19BUlJBWShf
V0tFbGVtZW50QWN0aW9uICopICopYWN0aW9ucyBlbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxl
bWVudEluZm8gKillbGVtZW50SW5mbyBXS19BVkFJTEFCTEUoTkEsIDlfMCk7CiAtIChVSVZpZXdD
b250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250
cm9sbGVyRm9yQW5pbWF0ZWRJbWFnZUF0VVJMOihOU1VSTCAqKXVybCBkZWZhdWx0QWN0aW9uczoo
V0tfQVJSQVkoX1dLRWxlbWVudEFjdGlvbiAqKSAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gaW1hZ2VTaXplOihDR1NpemUpaW1hZ2VT
aXplIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLQotLy8gSWYgYSBjbGllbnQgd2FudHMgdG8gZGlz
YWJsZSBwcmV2aWV3cyBlbnRpcmVseSBmb3IgdGhlIGdpdmVuIGVsZW1lbnQsIHRoZXkgc2hvdWxk
IHJldHVybiBOTyBpbgotLy8gc2hvdWxkUHJldmlld0VsZW1lbnQuIFJldHVybmluZyBOTyBpbiBz
aG91bGRQcmV2aWV3RWxlbWVudCB3aWxsIHByZXZlbnQgdGhlIG90aGVyIG1ldGhvZHMgZnJvbSBi
ZWluZyBpbnZva2VkLgotLy8gVGhlIGNsaWVudCBjYW4gcHJvdmlkZSBhIGN1c3RvbSBwcmV2aWV3
IGJ5IHJldHVybmluZyB0aGVpciBvd24gVUlWaWV3Q29udHJvbGxlciBmcm9tCi0vLyBwcmV2aWV3
aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25zOi4gUmV0dXJuaW5nIG5p
bCB3aWxsIHJlc3VsdCBpbiB0aGUgZGVmYXVsdCBwcmV2aWV3IGJlaGF2aW9yCi0vLyBmb3IgdGhh
dCBlbGVtZW50LiBJZiB0aGUgY2xpZW50IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0QWN0aW9ucywg
dGhlbiB0aGUgY2xpZW50IGlzIHJlc3BvbnNpYmxlIGZvcgotLy8gcmV0dXJuaW5nIHRob3NlIGFj
dGlvbnMgaW4gdGhlaXIgVUlWaWV3Q29udHJvbGxlcidzIGltcGxlbWVudGF0aW9uIG9mIHByZXZp
ZXdBY3Rpb25JdGVtcy4KLS0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hv
dWxkUHJldmlld0VsZW1lbnQ6KF9XS1ByZXZpZXdFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvOwot
LSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZp
ZXdpbmdWaWV3Q29udHJvbGxlckZvckVsZW1lbnQ6KF9XS1ByZXZpZXdFbGVtZW50SW5mbyAqKWVs
ZW1lbnRJbmZvIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5IDxpZCA8X1dLUHJldmlld0FjdGlvbkl0
ZW0+PiAqKXByZXZpZXdBY3Rpb25zIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci0tICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdpbmdWaWV3Q29u
dHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXByZXZpZXdpbmdWaWV3Q29udHJvbGxlciBXS19B
VkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotCiAtIChVSVZpZXdDb250cm9sbGVyICopX3ByZXNl
bnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZB
SUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKICNlbHNlCiAtIChOU01lbnUgKilfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50Oihf
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BVkFJTEFCTEUoV0tfTUFDX1RC
QSwgTkEpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDb250
ZXh0TWVudUVsZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgJKHJldmlzaW9uIDE5Nzk2
MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ29udGV4dE1lbnVF
bGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMiArMjcsMTIgQEAKIAogI2lmIFdL
X0FQSV9FTkFCTEVEICYmICFUQVJHRVRfT1NfSVBIT05FCiAKLSNpbXBvcnQgPFdlYktpdC9fV0tF
bGVtZW50SW5mby5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRWxlbWVudEluZm8uaD4KIAogTlNfQVNT
VU1FX05PTk5VTExfQkVHSU4KIAogV0tfQ0xBU1NfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKQot
QGludGVyZmFjZSBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvIDogX1dLRWxlbWVudEluZm8KK0Bp
bnRlcmZhY2UgX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyA6IFdLRWxlbWVudEluZm8KIAogQGVu
ZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJ
bmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tFbGVtZW50SW5mby5oCShyZXZpc2lvbiAxOTc5NjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNDEg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KLQot
I2lmIFdLX0FQSV9FTkFCTEVECi0KLU5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCi0KLVdLX0NMQVNT
X0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQotQGludGVyZmFjZSBfV0tFbGVtZW50
SW5mbyA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+Ci0KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgTlNVUkwgKmxpbmtVUkw7Ci0KLUBlbmQKLQotTlNfQVNTVU1FX05PTk5VTExfRU5ECi0K
LSNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVt
ZW50SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0VsZW1lbnRJbmZvLm1tCShyZXZpc2lvbiAxOTc5NjIpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQg
Il9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKLQotI2lmIFdLX0FQSV9FTkFCTEVECi0KLUBpbXBs
ZW1lbnRhdGlvbiBfV0tFbGVtZW50SW5mbwotCi0tIChpZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAq
KXpvbmUKLXsKLSAgICByZXR1cm4gW3NlbGYgcmV0YWluXTsKLX0KLQotLSAoTlNVUkwgKilsaW5r
VVJMCi17Ci0gICAgcmV0dXJuIF9saW5rVVJMLmdldCgpOwotfQotCi1AZW5kCi0KLSNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mb0lu
dGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tFbGVtZW50SW5mb0ludGVybmFsLmgJKHJldmlzaW9uIDE5Nzk2MikKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJfV0tFbGVt
ZW50SW5mby5oIgotCi0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0KLSNpZiBXS19BUElfRU5B
QkxFRAotCi1AaW50ZXJmYWNlIF9XS0VsZW1lbnRJbmZvICgpIHsKLUBwYWNrYWdlCi0gICAgUmV0
YWluUHRyPE5TVVJMPiBfbGlua1VSTDsKLX0KLQotQGVuZAotCi0jZW5kaWYgLy8gV0tfQVBJX0VO
QUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmll
d0FjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJldmlld0FjdGlvbi5oCShyZXZpc2lvbiAxOTgwMzMpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdBY3Rpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlv
bi5oPgotCi0jaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQotCi0jaW1wb3J0
IDxVSUtpdC9VSVZpZXdDb250cm9sbGVyLmg+Ci0KLVdLX0NMQVNTX0FWQUlMQUJMRShOQSwgV0tf
SU9TX1RCQSkKLUBwcm90b2NvbCBfV0tQcmV2aWV3QWN0aW9uSXRlbSA8TlNPYmplY3QsIFVJUHJl
dmlld0FjdGlvbkl0ZW0+Ci0KLUBwcm9wZXJ0eShub25hdG9taWMsIGNvcHksIHJlYWRvbmx5KSBO
U1N0cmluZyAqaWRlbnRpZmllcjsKLQotQGVuZAotCi0jZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQg
JiYgVEFSR0VUX09TX0lQSE9ORQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcmV2aWV3QWN0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbi5tbQkocmV2aXNpb24gMTk4MDMzKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJj
b25maWcuaCIKLSNpbXBvcnQgIl9XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oIgotCi0jaWYgV0tf
QVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQotCi1AaW1wbGVtZW50YXRpb24gX1dLUHJl
dmlld0FjdGlvbgotQHN5bnRoZXNpemUgaWRlbnRpZmllcj1faWRlbnRpZmllcjsKLQotKyAoaW5z
dGFuY2V0eXBlKWFjdGlvbldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIgdGl0
bGU6KE5TU3RyaW5nICopdGl0bGUgc3R5bGU6KFVJUHJldmlld0FjdGlvblN0eWxlKXN0eWxlIGhh
bmRsZXI6KHZvaWQgKF4pKFVJUHJldmlld0FjdGlvbiAqYWN0aW9uLCBVSVZpZXdDb250cm9sbGVy
ICpwcmV2aWV3Vmlld0NvbnRyb2xsZXIpKWhhbmRsZXIKLXsKLSAgICBfV0tQcmV2aWV3QWN0aW9u
ICphY3Rpb24gPSBbc2VsZiBhY3Rpb25XaXRoVGl0bGU6dGl0bGUgc3R5bGU6c3R5bGUgaGFuZGxl
cjpoYW5kbGVyXTsKLSAgICBhY3Rpb24tPl9pZGVudGlmaWVyID0gaWRlbnRpZmllcjsKLSAgICBy
ZXR1cm4gYWN0aW9uOwotfQotCi1AZW5kCi0KLSNlbmRpZiAvLyBXS19BUElfRU5BQkxFRCAmJiBU
QVJHRVRfT1NfSVBIT05FCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbkludGVybmFsLmgJKHJldmlzaW9u
IDE5ODAzNykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmll
d0FjdGlvbkludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMzggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbXBvcnQgIldLRm91bmRhdGlvbi5oIgotCi0jaWYgV0tfQVBJX0VOQUJMRUQgJiYg
VEFSR0VUX09TX0lQSE9ORQotCi0jaW1wb3J0ICJfV0tQcmV2aWV3QWN0aW9uLmgiCi0KLUBpbnRl
cmZhY2UgX1dLUHJldmlld0FjdGlvbiA6IFVJUHJldmlld0FjdGlvbiA8TlNDb3B5aW5nLCBfV0tQ
cmV2aWV3QWN0aW9uSXRlbT4KLQotKyAoaW5zdGFuY2V0eXBlKWFjdGlvbldpdGhJZGVudGlmaWVy
OihOU1N0cmluZyAqKWlkZW50aWZpZXIgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgc3R5bGU6KFVJ
UHJldmlld0FjdGlvblN0eWxlKXN0eWxlIGhhbmRsZXI6KHZvaWQgKF4pKFVJUHJldmlld0FjdGlv
biAqYWN0aW9uLCBVSVZpZXdDb250cm9sbGVyICpwcmV2aWV3Vmlld0NvbnRyb2xsZXIpKWhhbmRs
ZXI7Ci0KLUBlbmQKLQotI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhP
TkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0Vs
ZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8uaAkocmV2aXNpb24gMTk3OTYyKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8uaAkod29y
a2luZyBjb3B5KQpAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCA8V2ViS2l0
L1dLRm91bmRhdGlvbi5oPgotCi0jaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9O
RQotCi0jaW1wb3J0IDxXZWJLaXQvX1dLRWxlbWVudEluZm8uaD4KLQotTlNfQVNTVU1FX05PTk5V
TExfQkVHSU4KLQotV0tfQ0xBU1NfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKQotQGludGVyZmFj
ZSBfV0tQcmV2aWV3RWxlbWVudEluZm8gOiBfV0tFbGVtZW50SW5mbwotCi1AZW5kCi0KLU5TX0FT
U1VNRV9OT05OVUxMX0VORAotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tCShy
ZXZpc2lvbiAxOTc5NjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1ByZXZpZXdFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw0OCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJfV0tQcmV2aWV3RWxlbWVu
dEluZm9JbnRlcm5hbC5oIgotCi0jaW1wb3J0ICJfV0tFbGVtZW50SW5mb0ludGVybmFsLmgiCi0j
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0KLSNpZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9S
TShJT1MpCi0KLUBpbXBsZW1lbnRhdGlvbiBfV0tQcmV2aWV3RWxlbWVudEluZm8KLQotLSAoaW5z
dGFuY2V0eXBlKV9pbml0V2l0aExpbmtVUkw6KE5TVVJMICopdXJsCi17Ci0gICAgaWYgKCEoc2Vs
ZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBfbGlua1VSTCA9
IGFkb3B0TlMoW3VybCBjb3B5XSk7Ci0KLSAgICByZXR1cm4gc2VsZjsKLX0KLQotQGVuZAotCi0j
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmll
d0VsZW1lbnRJbmZvSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgJKHJldmlzaW9u
IDE5Nzk2MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmll
d0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMSwzNiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2ltcG9ydCAiX1dLUHJldmlld0VsZW1lbnRJbmZvLmgiCi0KLSNpZiBXS19B
UElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCi0KLUBpbnRlcmZhY2UgX1dLUHJldmlld0Vs
ZW1lbnRJbmZvICgpCi0KLS0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhMaW5rVVJMOihOU1VSTCAq
KXVybDsKLQotQGVuZAotCi0jZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCShyZXZpc2lvbiAxOTgwMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMs
OSBAQAogI2ltcG9ydCAiV0tJbWFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5oIgogI2ltcG9ydCAi
V0tJbnNwZWN0b3JOb2RlU2VhcmNoR2VzdHVyZVJlY29nbml6ZXIuaCIKICNpbXBvcnQgIldLTlNV
UkxFeHRyYXMuaCIKLSNpbXBvcnQgIldLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5o
IgorI2ltcG9ydCAiV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmgiCisjaW1wb3J0ICJX
S1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLUHJldmlld0VsZW1lbnRJ
bmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLVUlEZWxlZ2F0ZVByaXZhdGUuaCIKICNpbXBvcnQg
IldLV2ViVmlld0NvbmZpZ3VyYXRpb24uaCIKICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgi
CkBAIC01Nyw4ICs1OSw2IEBACiAjaW1wb3J0ICJfV0tGb2N1c2VkRWxlbWVudEluZm8uaCIKICNp
bXBvcnQgIl9XS0Zvcm1JbnB1dFNlc3Npb24uaCIKICNpbXBvcnQgIl9XS0lucHV0RGVsZWdhdGUu
aCIKLSNpbXBvcnQgIl9XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oIgotI2ltcG9ydCAiX1dLUHJl
dmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgPENvcmVUZXh0L0NURm9udC5oPgog
I2ltcG9ydCA8Q29yZVRleHQvQ1RGb250RGVzY3JpcHRvci5oPgogI2ltcG9ydCA8TW9iaWxlQ29y
ZVNlcnZpY2VzL1VUQ29yZVR5cGVzLmg+CkBAIC0zNzc2LDkgKzM3NzYsOSBAQCAtIChCT09MKV9p
bnRlcmFjdGlvblNob3VsZEJlZ2luRnJvbVByZXZpCiAgICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0
aW9uLmlzTGluaykgewogICAgICAgICBOU1VSTCAqdGFyZ2V0VVJMID0gW05TVVJMIF93ZWJfVVJM
V2l0aFdURlN0cmluZzpfcG9zaXRpb25JbmZvcm1hdGlvbi51cmxdOwogICAgICAgICBpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHN0YXRpY19jYXN0PGlkIDxXS1VJRGVsZWdh
dGVQcml2YXRlPj4oW193ZWJWaWV3IFVJRGVsZWdhdGVdKTsKLSAgICAgICAgaWYgKFt1aURlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6c2hvdWxkUHJldmlld0Vs
ZW1lbnQ6KV0pIHsKLSAgICAgICAgICAgIGF1dG8gcHJldmlld0VsZW1lbnRJbmZvID0gYWRvcHRO
UyhbW19XS1ByZXZpZXdFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoTGlua1VSTDp0YXJnZXRV
UkxdKTsKLSAgICAgICAgICAgIHJldHVybiBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBz
aG91bGRQcmV2aWV3RWxlbWVudDpwcmV2aWV3RWxlbWVudEluZm8uZ2V0KCldOworICAgICAgICBp
ZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnNob3Vs
ZFByZXZpZXdFbGVtZW50OildKSB7CisgICAgICAgICAgICBhdXRvIHByZXZpZXdFbGVtZW50SW5m
byA9IGFkb3B0TlMoW1tXS1ByZXZpZXdFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoTGlua1VS
TDp0YXJnZXRVUkxdKTsKKyAgICAgICAgICAgIHJldHVybiBbdWlEZWxlZ2F0ZSB3ZWJWaWV3Ol93
ZWJWaWV3IHNob3VsZFByZXZpZXdFbGVtZW50OnByZXZpZXdFbGVtZW50SW5mby5nZXQoKV07CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKGFic29sdXRlTGlua1VSTC5pc0VtcHR5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gTk87CkBAIC0zODc2LDE1ICszODc2LDE1IEBAIHN0YXRpYyBOU1N0cmluZyAq
cHJldmlld0lkZW50aWZpZXJGb3JFbGUKIHsKICAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7CiAg
ICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZU9wZW46Ci0gICAgICAgIHJldHVybiBfV0tQcmV2
aWV3SWRlbnRpZmllck9wZW47CisgICAgICAgIHJldHVybiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRl
bnRpZmllck9wZW47CiAgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZUNvcHk6Ci0gICAgICAg
IHJldHVybiBfV0tQcmV2aWV3SWRlbnRpZmllckNvcHk7CisgICAgICAgIHJldHVybiBXS1ByZXZp
ZXdBY3Rpb25JdGVtSWRlbnRpZmllckNvcHk7CiAjaWYgIWRlZmluZWQoVEFSR0VUX09TX0lPUykg
fHwgVEFSR0VUX09TX0lPUwogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVBZGRUb1JlYWRp
bmdMaXN0OgotICAgICAgICByZXR1cm4gX1dLUHJldmlld0lkZW50aWZpZXJBZGRUb1JlYWRpbmdM
aXN0OworICAgICAgICByZXR1cm4gV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJBZGRUb1Jl
YWRpbmdMaXN0OwogI2VuZGlmCiAgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZVNoYXJlOgot
ICAgICAgICByZXR1cm4gX1dLUHJldmlld0lkZW50aWZpZXJTaGFyZTsKKyAgICAgICAgcmV0dXJu
IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyU2hhcmU7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgcmV0dXJuIG5pbDsKICAgICB9CkBAIC0zOTE3LDcgKzM5MTcsNyBAQCAtIChVSVZpZXdDb250
cm9sbGVyICopX3ByZXNlbnRlZFZpZXdDb250CiAgICAgICAgIFJldGFpblB0cjxfV0tBY3RpdmF0
ZWRFbGVtZW50SW5mbz4gZWxlbWVudEluZm8gPSBhZG9wdE5TKFtbX1dLQWN0aXZhdGVkRWxlbWVu
dEluZm8gYWxsb2NdIF9pbml0V2l0aFR5cGU6X1dLQWN0aXZhdGVkRWxlbWVudFR5cGVMaW5rIFVS
TDp0YXJnZXRVUkwgbG9jYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb24ucG9pbnQgdGl0bGU6X3Bv
c2l0aW9uSW5mb3JtYXRpb24udGl0bGUgcmVjdDpfcG9zaXRpb25JbmZvcm1hdGlvbi5ib3VuZHMg
aW1hZ2U6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2UuZ2V0KCldKTsKIAogICAgICAgICBhdXRv
IGFjdGlvbnMgPSBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25zRm9yTGlua1No
ZWV0OmVsZW1lbnRJbmZvLmdldCgpXTsKLSAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cHJldmlld2luZ1ZpZXdDb250cm9sbGVyRm9y
RWxlbWVudDpkZWZhdWx0QWN0aW9uczopXSkgeworICAgICAgICBpZiAoW3VpRGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnByZXZpZXdpbmdWaWV3Q29udHJvbGxl
ckZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlvbnM6KV0pIHsKICAgICAgICAgICAgIGF1dG8gcHJldmll
d0FjdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKICAgICAg
ICAgICAgIGZvciAoX1dLRWxlbWVudEFjdGlvbiAqZWxlbWVudEFjdGlvbiBpbiBhY3Rpb25zLmdl
dCgpKSB7CiAgICAgICAgICAgICAgICAgX1dLUHJldmlld0FjdGlvbiAqcHJldmlld0FjdGlvbiA9
IFtfV0tQcmV2aWV3QWN0aW9uIGFjdGlvbldpdGhJZGVudGlmaWVyOnByZXZpZXdJZGVudGlmaWVy
Rm9yRWxlbWVudEFjdGlvbihlbGVtZW50QWN0aW9uKSB0aXRsZTpbZWxlbWVudEFjdGlvbiB0aXRs
ZV0gc3R5bGU6VUlQcmV2aWV3QWN0aW9uU3R5bGVEZWZhdWx0IGhhbmRsZXI6XihVSVByZXZpZXdB
Y3Rpb24gKiwgVUlWaWV3Q29udHJvbGxlciAqKSB7CkBAIC0zOTI1LDggKzM5MjUsOCBAQCAtIChV
SVZpZXdDb250cm9sbGVyICopX3ByZXNlbnRlZFZpZXdDb250CiAgICAgICAgICAgICAgICAgfV07
CiAgICAgICAgICAgICAgICAgW3ByZXZpZXdBY3Rpb25zIGFkZE9iamVjdDpwcmV2aWV3QWN0aW9u
XTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGF1dG8gcHJldmlld0VsZW1lbnRJbmZvID0g
YWRvcHROUyhbW19XS1ByZXZpZXdFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoTGlua1VSTDp0
YXJnZXRVUkxdKTsKLSAgICAgICAgICAgIGlmIChVSVZpZXdDb250cm9sbGVyICpjb250cm9sbGVy
ID0gW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgcHJldmlld2luZ1ZpZXdDb250cm9sbGVy
Rm9yRWxlbWVudDpwcmV2aWV3RWxlbWVudEluZm8uZ2V0KCkgZGVmYXVsdEFjdGlvbnM6cHJldmll
d0FjdGlvbnMuZ2V0KCldKSB7CisgICAgICAgICAgICBhdXRvIHByZXZpZXdFbGVtZW50SW5mbyA9
IGFkb3B0TlMoW1tXS1ByZXZpZXdFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoTGlua1VSTDp0
YXJnZXRVUkxdKTsKKyAgICAgICAgICAgIGlmIChVSVZpZXdDb250cm9sbGVyICpjb250cm9sbGVy
ID0gW3VpRGVsZWdhdGUgd2ViVmlldzpfd2ViVmlldyBwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXJG
b3JFbGVtZW50OnByZXZpZXdFbGVtZW50SW5mby5nZXQoKSBkZWZhdWx0QWN0aW9uczpwcmV2aWV3
QWN0aW9ucy5nZXQoKV0pIHsKICAgICAgICAgICAgICAgICBfdWlEZWxlZ2F0ZVByb3ZpZGVkUHJl
dmlld2luZ1ZpZXdDb250cm9sbGVyID0gWUVTOwogICAgICAgICAgICAgICAgIHJldHVybiBjb250
cm9sbGVyOwogICAgICAgICAgICAgfQpAQCAtMzk2OSw4ICszOTY5LDggQEAgLSAodm9pZClfcHJl
dmlld0l0ZW1Db250cm9sbGVyOihVSVByZXZpZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6
Y29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOildKSB7Ci0gICAgICAgIFt1aURlbGVnYXRl
IF93ZWJWaWV3Ol93ZWJWaWV3IGNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjp2aWV3Q29u
dHJvbGxlcl07CisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3Iod2ViVmlldzpjb21taXRQcmV2aWV3aW5nVmlld0NvbnRyb2xsZXI6KV0pIHsKKyAgICAgICAg
W3VpRGVsZWdhdGUgd2ViVmlldzpfd2ViVmlldyBjb21taXRQcmV2aWV3aW5nVmlld0NvbnRyb2xs
ZXI6dmlld0NvbnRyb2xsZXJdOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiAxOTgwMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI1NSw4ICsyNTUsOCBAQAogCQkxQTUzQzJBMjFB
MzIzMDA0MDA0RThDNzAgLyogSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEVE
MzI2MUEzMTE5RDkwMDc5QkQ0OSAvKiBJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGUuY3BwICovOyB9OwogCQkxQTUzQzJBOTFBMzI1NzJCMDA0RThDNzAgLyogV2Vic2l0ZURh
dGFTdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQTUzQzJBNDFBMzI1NjlGMDA0RThDNzAgLyogV2Vic2l0ZURhdGFTdG9yZS5jcHAgKi87IH07
CiAJCTFBNTNDMkFBMUEzMjU3MzAwMDRFOEM3MCAvKiBXZWJzaXRlRGF0YVN0b3JlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTUzQzJBNTFBMzI1NjlG
MDA0RThDNzAgLyogV2Vic2l0ZURhdGFTdG9yZS5oICovOyB9OwotCQkxQTU3MDRGMTFCRTAxNzNG
MDA4NzRBRjEgLyogX1dLRWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU3MDRFRjFCRTAxNzNGMDA4NzRBRjEgLyogX1dLRWxlbWVu
dEluZm8ubW0gKi87IH07Ci0JCTFBNTcwNEYyMUJFMDE3NDAwMDg3NEFGMSAvKiBfV0tFbGVtZW50
SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE1
NzA0RjAxQkUwMTczRjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZvLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUE1NzA0RjExQkUwMTczRjAwODc0
QUYxIC8qIFdLRWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQTU3MDRFRjFCRTAxNzNGMDA4NzRBRjEgLyogV0tFbGVtZW50SW5mby5t
bSAqLzsgfTsKKwkJMUE1NzA0RjIxQkUwMTc0MDAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNTcwNEYwMUJF
MDE3M0YwMDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHVibGljLCApOyB9OyB9OwogCQkxQTU3MDRGNzFCRTAxRkY0MDA4NzRBRjEgLyogX1dL
Q29udGV4dE1lbnVFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBNTcwNEY1MUJFMDFGRjQwMDg3NEFGMSAvKiBfV0tDb250ZXh0TWVu
dUVsZW1lbnRJbmZvLm1tICovOyB9OwogCQkxQTU3MDRGODFCRTAxRkY0MDA4NzRBRjEgLyogX1dL
Q29udGV4dE1lbnVFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUE1NzA0RjYxQkUwMUZGNDAwODc0QUYxIC8qIF9XS0NvbnRleHRNZW51
RWxlbWVudEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxQTU3MDRGQjFCRTE3NTExMDA4NzRBRjEgLyogUmVtb3RlT2JqZWN0SW52b2NhdGlv
bi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNTcw
NEY5MUJFMTc1MTEwMDg3NEFGMSAvKiBSZW1vdGVPYmplY3RJbnZvY2F0aW9uLm1tICovOyB9OwpA
QCAtMTE5NCwxOSArMTE5NCwxOSBAQAogCQk5MzVFRUJBMjEyNzc2MUQwMDAzMzIyQjggLyogSW5q
ZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUVFQjkwMTI3NzYxNUQwMDMzMjJCOCAvKiBJbmplY3RlZEJ1
bmRsZUJhY2tGb3J3YXJkTGlzdC5oICovOyB9OwogCQk5MzVFRUJBMzEyNzc2MUQzMDAzMzIyQjgg
LyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUVFQjkxMTI3NzYxNUQwMDMzMjJCOCAv
KiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovOyB9OwogCQk5MzVFRUJB
NDEyNzc2MUQ2MDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVFRUI5MjEy
Nzc2MTVEMDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggKi87
IH07Ci0JCTkzNzM1RUJCMUM5Mjk4NjMwMDMzNkZBNyAvKiBfV0tQcmV2aWV3QWN0aW9uSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNzM1
RUJBMUM5Mjk4NjMwMDMzNkZBNyAvKiBfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCAqLzsgfTsK
LQkJOTM5MTA3NEYxQkY2QkM2NTAwOEMxN0FEIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVy
bmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzkx
MDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAq
LzsgfTsKKwkJOTM3MzVFQkIxQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1J
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM3MzVFQkExQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5o
ICovOyB9OworCQk5MzkxMDc0RjFCRjZCQzY1MDA4QzE3QUQgLyogV0tQcmV2aWV3RWxlbWVudElu
Zm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJu
YWwuaCAqLzsgfTsKIAkJOTM5MUYyQ0ExMjFCNjc5QTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzkxRjI4NDEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5tbSAqLzsgfTsKIAkJOTM5MUYyQ0IxMjFCNjdBRDAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmggKi87IH07Ci0JCTkzOTVFNjhBMUJGMkMzMzIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVu
dEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
OTVFNjg5MUJGMkMzMzIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5Mzk1RTY4QzFCRjJD
MzUyMDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5NUU2OEIxQkYyQzM1MjAwRjQ5QkNFIC8q
IF9XS1ByZXZpZXdFbGVtZW50SW5mby5tbSAqLzsgfTsKLQkJOTM5NUU2OEUxQkY0MTBGRDAwRjQ5
QkNFIC8qIF9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTVFNjhEMUJGNDEwRkQwMEY0OUJDRSAvKiBfV0tFbGVt
ZW50SW5mb0ludGVybmFsLmggKi87IH07CisJCTkzOTVFNjhBMUJGMkMzMzIwMEY0OUJDRSAvKiBX
S1ByZXZpZXdFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNFIC8qIFdLUHJldmlld0VsZW1lbnRJ
bmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OworCQk5
Mzk1RTY4QzFCRjJDMzUyMDBGNDlCQ0UgLyogV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk1RTY4QjFCRjJDMzUy
MDBGNDlCQ0UgLyogV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gKi87IH07CisJCTkzOTVFNjhFMUJG
NDEwRkQwMEY0OUJDRSAvKiBXS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTVFNjhEMUJGNDEwRkQwMEY0OUJDRSAv
KiBXS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLzsgfTsKIAkJOTM5QUU3NjYxMzE2RTk5QzAwQUUw
NkE2IC8qIFdlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlBRTc2NTEzMTZFOTlDMDBBRTA2QTYgLyogV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcCAqLzsgfTsKIAkJOTM5RjQwMUMxOUZCMEJCQzAwMkIyQjQyIC8q
IFdLQWN0aW9uTWVudVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzlGNDAxQjE5RkIwQkJDMDAyQjJCNDIgLyogV0tBY3Rpb25NZW51VHlwZXMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5M0Ey
NTNFRDFDOTIyRTFFMDBGOUY2OEQgLyogX1dLUHJldmlld0FjdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMjUzRUMxQzkyMkUxRTAwRjlGNjhE
IC8qIF9XS1ByZXZpZXdBY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQk5M0EyNTNFRjFDOTIyRThFMDBGOUY2OEQgLyogX1dLUHJldmlld0Fj
dGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
QTI1M0VFMUM5MjJFOEUwMEY5RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9uLm1tICovOyB9OwotCQk5
M0EyNTNGMzFDOTI0MTEyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Ey
NTNGMjFDOTI0MTEyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTNB
MjUzRjUxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0
ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTI1
M0Y0MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUu
bW0gKi87IH07CisJCTkzQTI1M0VEMUM5MjJFMUUwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25J
dGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Ey
NTNFQzFDOTIyRTFFMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJOTNBMjUzRUYxQzkyMkU4RTAw
RjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW0ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EyNTNFRTFDOTIyRThFMDBGOUY2OEQgLyogV0tQcmV2
aWV3QWN0aW9uSXRlbS5tbSAqLzsgfTsKKwkJOTNBMjUzRjMxQzkyNDExMjAwRjlGNjhEIC8qIFdL
UHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMjUzRjIxQzkyNDExMjAwRjlGNjhEIC8qIFdLUHJldmll
d0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1
YmxpYywgKTsgfTsgfTsKKwkJOTNBMjUzRjUxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmlld0Fj
dGlvbkl0ZW1JZGVudGlmaWVycy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQTI1M0Y0MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25J
dGVtSWRlbnRpZmllcnMubW0gKi87IH07CiAJCTkzQTg4QjMwMUJDNkU5OTcwMEFCQTVDMiAvKiBX
ZWJIaXRUZXN0UmVzdWx0RGF0YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQTg4QjJFMUJDNkU5OEYwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0
RGF0YS5tbSAqLzsgfTsKIAkJOTNBODhCMzMxQkM2RTlDRDAwQUJBNUMyIC8qIFdlYkhpdFRlc3RS
ZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0E4OEIzMTFCQzZFOUMwMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEuaCAqLzsg
fTsKIAkJOTNBODhCMzYxQkM2RUFENTAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRhLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTg4QjM0
MUJDNkVBQkEwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5jcHAgKi87IH07CkBAIC0y
MTg2LDggKzIxODYsOCBAQAogCQkxQTUyQzBGNjFBMzhDREM3MDAxNjE2MEEgLyogV2ViU3RvcmFn
ZU5hbWVzcGFjZVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQTUzQzJBNDFBMzI1NjlGMDA0RThDNzAgLyogV2Vic2l0ZURhdGFTdG9yZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJzaXRlRGF0YVN0b3JlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE1M0MyQTUxQTMyNTY5RjAwNEU4QzcwIC8qIFdl
YnNpdGVEYXRhU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vic2l0
ZURhdGFTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQTU3MDRFRjFCRTAx
NzNGMDA4NzRBRjEgLyogX1dLRWxlbWVudEluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBfV0tFbGVtZW50SW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMUE1NzA0RjAxQkUwMTczRjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZvLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0VsZW1lbnRJbmZvLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBNTcwNEVGMUJFMDE3M0YwMDg3NEFGMSAvKiBXS0VsZW1l
bnRJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tFbGVt
ZW50SW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUE1NzA0RjAxQkUwMTcz
RjAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tFbGVtZW50SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTU3
MDRGNTFCRTAxRkY0MDA4NzRBRjEgLyogX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS0NvbnRleHRNZW51RWxlbWVu
dEluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNTcwNEY2MUJFMDFGRjQw
MDg3NEFGMSAvKiBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUE1NzA0RjkxQkUxNzUxMTAwODc0QUYxIC8qIFJlbW90ZU9iamVj
dEludm9jYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBS
ZW1vdGVPYmplY3RJbnZvY2F0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzIxNSwxOSArMzIxNSwxOSBAQAogCQk5MzVFRUI5NjEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5k
bGVCYWNrRm9yd2FyZExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tC
dW5kbGVCYWNrRm9yd2FyZExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1
RUVCOTcxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJk
TGlzdEl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzVFRUI5ODEyNzc2
MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5MzczNUVCQTFDOTI5ODYzMDAzMzZGQTcgLyogX1dL
UHJldmlld0FjdGlvbkludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IF9XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJu
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLUHJldmlld0VsZW1lbnRJ
bmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM3MzVFQkExQzky
OTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIFdL
UHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTFGMjg0MTIx
QjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNF
IC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBfV0tQcmV2aWV3RWxlbWVudEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOTM5NUU2OEIxQkYyQzM1MjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1ByZXZpZXdFbGVtZW50
SW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTM5NUU2OEQxQkY0MTBGRDAw
RjQ5QkNFIC8qIF9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5Mzk1RTY4OTFCRjJDMzMyMDBGNDlCQ0UgLyogV0tQcmV2aWV3RWxlbWVudElu
Zm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmV2aWV3RWxlbWVudElu
Zm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5NUU2OEIxQkYyQzM1MjAwRjQ5
QkNFIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV0tQcmV2aWV3RWxlbWVudEluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzOTVFNjhEMUJGNDEwRkQwMEY0OUJDRSAvKiBXS0VsZW1lbnRJbmZvSW50
ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tFbGVtZW50SW5mb0lu
dGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUFFNzY1MTMxNkU5OUMw
MEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTM5RjQwMUIxOUZCMEJCQzAwMkIyQjQyIC8qIFdLQWN0aW9uTWVu
dVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQWN0aW9uTWVudVR5
cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzQTI1M0VDMUM5MjJFMUUwMEY5
RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IF9XS1ByZXZpZXdBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNB
MjUzRUUxQzkyMkU4RTAwRjlGNjhEIC8qIF9XS1ByZXZpZXdBY3Rpb24ubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tQcmV2aWV3QWN0aW9uLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk5M0EyNTNGMjFDOTI0MTEyMDBGOUY2OEQgLyogV0tQcmV2
aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk5M0EyNTNGNDFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0
aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0EyNTNFQzFDOTIyRTFFMDBGOUY2OEQgLyogV0tQcmV2aWV3
QWN0aW9uSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1ByZXZpZXdB
Y3Rpb25JdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTI1M0VFMUM5MjJF
OEUwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV0tQcmV2aWV3QWN0aW9uSXRlbS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMjUzRjIxQzkyNDExMjAwRjlGNjhEIC8qIFdLUHJldmlld0Fj
dGlvbkl0ZW1JZGVudGlmaWVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNBMjUzRjQxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVu
dGlmaWVycy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLUHJl
dmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNBODhCMkUxQkM2RTk4RjAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRhLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViSGl0VGVzdFJlc3VsdERh
dGEubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTg4QjMxMUJDNkU5QzAwMEFC
QTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0E4OEIzNDFCQzZFQUJBMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSGl0VGVzdFJlc3VsdERh
dGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDk2Nyw5ICs0OTY3LDYgQEAK
IAkJCQkzNzlBODczODE4QkJGRTBGMDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbi5oICovLAog
CQkJCTM3OUE4NzM3MThCQkZFMEYwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uLm1tICovLAog
CQkJCTM3OUE4NzNCMThCQkZGMDcwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uSW50ZXJuYWwu
aCAqLywKLQkJCQkxQTU3MDRGMDFCRTAxNzNGMDA4NzRBRjEgLyogX1dLRWxlbWVudEluZm8uaCAq
LywKLQkJCQkxQTU3MDRFRjFCRTAxNzNGMDA4NzRBRjEgLyogX1dLRWxlbWVudEluZm8ubW0gKi8s
Ci0JCQkJOTM5NUU2OEQxQkY0MTBGRDAwRjQ5QkNFIC8qIF9XS0VsZW1lbnRJbmZvSW50ZXJuYWwu
aCAqLywKIAkJCQkxQUQwMUJDNzE5MDVEMzdFMDBDOUM0NUYgLyogX1dLRXJyb3JSZWNvdmVyeUF0
dGVtcHRpbmcuaCAqLywKIAkJCQkxQUQwMUJDNjE5MDVEMzdFMDBDOUM0NUYgLyogX1dLRXJyb3JS
ZWNvdmVyeUF0dGVtcHRpbmcubW0gKi8sCiAJCQkJMDA1RDE1OEUxOEU0QzRFQjAwNzM0NjE5IC8q
IF9XS0ZpbmREZWxlZ2F0ZS5oICovLApAQCAtNDk4MCwxMiArNDk3Nyw2IEBACiAJCQkJMzdBNjRF
NTQxOEYzOEUzQzAwRUIzMEYxIC8qIF9XS0lucHV0RGVsZWdhdGUuaCAqLywKIAkJCQkyRDc5MEE5
QzFBRDcwNTBEMDBBQjkwQjMgLyogX1dLTGF5b3V0TW9kZS5oICovLAogCQkJCTkzMjM2MTFEMUIw
MTVEQTgwMEZBOTIzMiAvKiBfV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUuaCAqLywKLQkJCQk5M0Ey
NTNFQzFDOTIyRTFFMDBGOUY2OEQgLyogX1dLUHJldmlld0FjdGlvbi5oICovLAotCQkJCTkzQTI1
M0VFMUM5MjJFOEUwMEY5RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9uLm1tICovLAotCQkJCTkzNzM1
RUJBMUM5Mjk4NjMwMDMzNkZBNyAvKiBfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCAqLywKLQkJ
CQk5Mzk1RTY4OTFCRjJDMzMyMDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvLmggKi8s
Ci0JCQkJOTM5NUU2OEIxQkYyQzM1MjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5t
bSAqLywKLQkJCQk5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogX1dLUHJldmlld0VsZW1lbnRJ
bmZvSW50ZXJuYWwuaCAqLywKIAkJCQkxQTQzRTgyODE4OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMUE0M0U4MjcxODhGM0NEQzAwOUU0RDMw
IC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSAqLywKIAkJCQk3Qzg5RDJENjFBNkM2
QkU2MDAzQTVGREUgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uSW50ZXJuYWwuaCAqLywK
QEAgLTUwMjUsNiArNTAxNiw5IEBACiAJCQkJMzdDNEMwODQxODE0OUM1QjAwMzY4OEI5IC8qIFdL
QmFja0ZvcndhcmRMaXN0SXRlbS5tbSAqLywKIAkJCQkzN0M0QzA4ODE4MTQ5RjIzMDAzNjg4Qjkg
LyogV0tCYWNrRm9yd2FyZExpc3RJdGVtSW50ZXJuYWwuaCAqLywKIAkJCQkxQTlGMjgxMDE5NThG
NDc4MDA4Q0FDNzIgLyogV0tCYWNrRm9yd2FyZExpc3RQcml2YXRlLmggKi8sCisJCQkJMUE1NzA0
RjAxQkUwMTczRjAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8uaCAqLywKKwkJCQkxQTU3MDRFRjFC
RTAxNzNGMDA4NzRBRjEgLyogV0tFbGVtZW50SW5mby5tbSAqLywKKwkJCQk5Mzk1RTY4RDFCRjQx
MEZEMDBGNDlCQ0UgLyogV0tFbGVtZW50SW5mb0ludGVybmFsLmggKi8sCiAJCQkJMUFGNDU5MkQx
OTQ2NEIyMDAwRjlENEEyIC8qIFdLRXJyb3IuaCAqLywKIAkJCQkxQUY0NTkyQzE5NDY0QjIwMDBG
OUQ0QTIgLyogV0tFcnJvci5tbSAqLywKIAkJCQkxQTJEMjUyQTE5NDY4OEZEMDA0NTM3QjAgLyog
V0tFcnJvckludGVybmFsLmggKi8sCkBAIC01MDU0LDggKzUwNDgsMTQgQEAKIAkJCQkxQUZERDMx
ODE4OTFDQTEyMDAxNTM5NzAgLyogV0tQcmVmZXJlbmNlcy5tbSAqLywKIAkJCQkxQTNDODg3RjE4
QTVBQkFFMDBDNEM5NjIgLyogV0tQcmVmZXJlbmNlc0ludGVybmFsLmggKi8sCiAJCQkJN0M4RUIx
MTYxOERCNkExOTAwNzkxN0MyIC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggKi8sCi0JCQkJOTNB
MjUzRjIxQzkyNDExMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0
ZS5oICovLAotCQkJCTkzQTI1M0Y0MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25J
ZGVudGlmaWVyc1ByaXZhdGUubW0gKi8sCisJCQkJOTNBMjUzRUMxQzkyMkUxRTAwRjlGNjhEIC8q
IFdLUHJldmlld0FjdGlvbkl0ZW0uaCAqLywKKwkJCQk5M0EyNTNFRTFDOTIyRThFMDBGOUY2OEQg
LyogV0tQcmV2aWV3QWN0aW9uSXRlbS5tbSAqLywKKwkJCQk5MzczNUVCQTFDOTI5ODYzMDAzMzZG
QTcgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmggKi8sCisJCQkJOTNBMjUzRjIxQzky
NDExMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oICovLAorCQkJ
CTkzQTI1M0Y0MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmll
cnMubW0gKi8sCisJCQkJOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNFIC8qIFdLUHJldmlld0VsZW1l
bnRJbmZvLmggKi8sCisJCQkJOTM5NUU2OEIxQkYyQzM1MjAwRjQ5QkNFIC8qIFdLUHJldmlld0Vs
ZW1lbnRJbmZvLm1tICovLAorCQkJCTkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAvKiBXS1ByZXZp
ZXdFbGVtZW50SW5mb0ludGVybmFsLmggKi8sCiAJCQkJMUExNTg0MTgxODkwNDRGNTAwMTc2MTZD
IC8qIFdLUHJvY2Vzc1Bvb2wuaCAqLywKIAkJCQkxQTE1ODQxNzE4OTA0NEY1MDAxNzYxNkMgLyog
V0tQcm9jZXNzUG9vbC5tbSAqLywKIAkJCQkxQTNDQzE2ODE4OTA3RUIwMDAxRTZFRDggLyogV0tQ
cm9jZXNzUG9vbEludGVybmFsLmggKi8sCkBAIC03MTQ1LDcgKzcxNDUsNyBAQAogCQkJCTM3OUE4
NzNBMThCQkZFMEYwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzNzlBODczQzE4QkJGRjA3MDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbkludGVybmFs
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTBEMjhCQjFDNjUzOUQzMDA5ODY5NzcgLyogQXV0b21h
dGlvblNlc3Npb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTFBNTcwNEYyMUJFMDE3NDAw
MDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE1NzA0RjIx
QkUwMTc0MDAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
RDAxQkM5MTkwNUQzN0UwMEM5QzQ1RiAvKiBfV0tFcnJvclJlY292ZXJ5QXR0ZW1wdGluZy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDA1RDE1OEYxOEU0QzRFQjAwNzM0NjE5IC8qIF9XS0ZpbmREZWxl
Z2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBNUVCQkMxQzdCQTQzRTAwQjlDQTY5IC8qIFdL
RnJhbWVIYW5kbGVSZWYuaCBpbiBIZWFkZXJzICovLApAQCAtNzIwNCw3ICs3MjA0LDcgQEAKIAkJ
CQk3QzFCQTMzRTFBNEEwRTYwMDA0M0UyNDkgLyogQVBJRGljdGlvbmFyeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUY3RDM2QzExOERBNTEzRjAwRDlENjU5IC8qIEFQSURvd25sb2FkQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTZBNEE1RDEyMEEyQ0NEMDBDMDVCN0YgLyogQVBJRXJyb3Iu
aCBpbiBIZWFkZXJzICovLAotCQkJCTkzOTVFNjhFMUJGNDEwRkQwMEY0OUJDRSAvKiBfV0tFbGVt
ZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk5Mzk1RTY4RTFCRjQxMEZEMDBG
NDlCQ0UgLyogV0tFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwMEI5
NjYxNjE4RTI0Q0JBMDBDRTFGODggLyogQVBJRmluZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkRENjdBMkUxQkQ4MTk3MzAwNTNCMjUxIC8qIEFQSUZpbmRNYXRjaGVzQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkzN0UyNUQ2RTE4RkRFNUQ2MDA1RDNBMDAgLyogQVBJRm9ybUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC03MzczLDE0ICs3MzczLDE0IEBACiAJCQkJMUFCQzNERjYx
ODk5RTQzNzAwNEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUE2RkJBMkExMUU2ODYyNzAwREIxMzcxIC8qIE5ldHNjYXBlQnJvd3NlckZ1bmNzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5OTBEMjhBQjFDNjQyMEM2MDA5ODY5NzcgLyogX1dLQXV0b21hdGlvblNl
c3Npb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTkzNzM1RUJCMUM5Mjk4NjMwMDMzNkZBNyAvKiBf
V0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNzM1RUJCMUM5
Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBRTI4NjgwMUM3RjkyQzAwMDY5QUM0RiAvKiBfV0tXZWJzaXRlRGF0YVNpemVJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2RkJEMjgxMUU2OUJDMjAwREIxMzcxIC8q
IE5ldHNjYXBlUGx1Z2luLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRBOUM1NjEyQjgxNkNGMDA4
RkU5ODQgLyogTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTU4
ODkyMTFFRTcwNDAwMDYxQjg4MiAvKiBOZXRzY2FwZVBsdWdpblN0cmVhbS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTE3OThDN0ExNkU2ODE4ODAwMjQwMTM5IC8qIE5ldHdvcmtCbG9iUmVnaXN0cnku
aCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDM2RUNDMUEwRDA0MEIwMEVBRDIwNCAvKiBOZXR3b3Jr
Q2FjaGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzOTVFNjhBMUJGMkMzMzIwMEY0OUJDRSAvKiBf
V0tQcmV2aWV3RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOTVFNjhBMUJGMkMz
MzIwMEY0OUJDRSAvKiBXS1ByZXZpZXdFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTQ5RDQwRDcxQUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFNDg5RDI4QTFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29ya0NhY2hl
Q29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0ODlEMjhDMUEwQTJEQjgwMDc4QzA2QSAvKiBO
ZXR3b3JrQ2FjaGVDb2RlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtNzQwNyw3ICs3NDA3LDcgQEAK
IAkJCQk1MTYzMTk5NTE2Mjg5QTYzMDBFMjJGMDAgLyogTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTE0QTk1NEExNkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQ
cm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTc5NTU2RTE2
Mjg3N0IzMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJOTNBMjUzRUQxQzkyMkUxRTAwRjlGNjhEIC8qIF9XS1ByZXZpZXdBY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzQTI1M0VEMUM5MjJFMUUwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25J
dGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTNBMTYzRDE2MzA4OEY2MDA1RDdEMjIgLyogTmV0
d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTU1QTZGNTFD
Nzk4NkUwMDBFQjZBOTMgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MUZEMThCNjE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTc3MjYsNyArNzcyNiw3IEBACiAJCQkJOTM5RjQwMUMx
OUZCMEJCQzAwMkIyQjQyIC8qIFdLQWN0aW9uTWVudVR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkNCNEU0ODE4QkJFMDQ0MDAwRkNGQzkgLyogV0tBY3Rpb25TaGVldC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZDQjRFNEExOEJCRTA0NDAwMEZDRkM5IC8qIFdLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzOTEwNzRGMUJGNkJDNjUwMDhDMTdBRCAvKiBfV0tQ
cmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5MTA3NEYx
QkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUM1RkExRUQzMThFMTA2MjIwMEIzRjQwMiAvKiBXS0FpclBsYXlSb3V0ZVBp
Y2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEREIzMkQxMjRFQzJFMTAwNDhEMTNDIC8qIFdL
QVBJQ2FzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyRTM0RTUxMzBCNEQwNTAwQUJEMTlBIC8q
IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLApAQCAtODAzNCw3ICs4
MDM0LDcgQEAKIAkJCQk3NUE4RDJDODE4N0NDRkFCMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0
b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NUE4RDJENjE4N0QxQzBFMDBDMzlDOUUgLyogV0tX
ZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTcxMDlGMUFC
QTAwMjcwMDJGQUJCRSAvKiBXS1dlYnNpdGVEYXRhU3RvcmVSZWYuaCBpbiBIZWFkZXJzICovLAot
CQkJCTkzQTI1M0YzMUM5MjQxMTIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVy
c1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTI1M0YzMUM5MjQxMTIwMEY5RjY4RCAv
KiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
M0NDMTY3MTg5MDZBQ0YwMDFFNkVEOCAvKiBXS1dlYlZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBREY1OTFCMTg5MDUyOEUwMDQzQzE0NSAvKiBXS1dlYlZpZXdDb25maWd1cmF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRDdBQUZENjE4Qzk1NkFGMDBBN0FDRDQgLyogV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTg2MzgsNyArODYzOCw3IEBA
CiAJCQkJOTk1NUE2RjQxQzc5ODZEQzAwRUI2QTkzIC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUE0RkU1QjE4RENFOUZBMDBCNUVBOEEgLyog
X1dLRG93bmxvYWQubW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzlBODczOTE4QkJGRTBGMDA1ODhB
RjIgLyogX1dLRWxlbWVudEFjdGlvbi5tbSBpbiBTb3VyY2VzICovLAotCQkJCTFBNTcwNEYxMUJF
MDE3M0YwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovLAorCQkJCTFB
NTcwNEYxMUJFMDE3M0YwMDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUFEMDFCQzgxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlBdHRlbXB0
aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzczRDEyMjIxOEE0NzMwMTAwNjZEOUNDIC8qIF9X
S0ZyYW1lSGFuZGxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNBODhCMzkxQkM3MEYzRjAwQUJB
NUMyIC8qIF9XS0hpdFRlc3RSZXN1bHQubW0gaW4gU291cmNlcyAqLywKQEAgLTg4MjgsNyArODgy
OCw3IEBACiAJCQkJRTQ4OUQyOEIxQTBBMkRCODAwNzhDMDZBIC8qIE5ldHdvcmtDYWNoZUNvZGVy
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDdEMUU5ODFCMDY0OUZCMDAyNjc2QTggLyogTmV0
d29ya0NhY2hlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDJFMDYxNDFBQTc1QjcwMDBC
MTE2OTkgLyogTmV0d29ya0NhY2hlRGF0YUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNB
MjUzRjUxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0
ZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTkzQTI1M0Y1MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1By
ZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW0gaW4gU291cmNlcyAqLywKIAkJCQlFNDg5RDI4
RDFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29ya0NhY2hlRGVjb2Rlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlFNDg5RDI4RjFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29ya0NhY2hlRW5jb2Rlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDEzRjU5RjFBQzFBRjlEMDAzNDUzNjAgLyogTmV0d29y
a0NhY2hlRW50cnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04OTMxLDcgKzg5MzEsNyBAQAogCQkJ
CUUxQ0MxQjkxMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm9NYWMubW0gaW4gU291cmNlcyAq
LywKIAkJCQkzNzcxNkE1QTE5NUI5MTA1MDBFRThCMUIgLyogUHJvY2Vzc0Fzc2VydGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk4NkY5NTM2NDE4RkY1ODNDMDAxREIyRUYgLyogUHJvY2Vzc0Fz
c2VydGlvbklPUy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTkzOTVFNjhDMUJGMkMzNTIwMEY0OUJD
RSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLywKKwkJCQk5Mzk1RTY4
QzFCRjJDMzUyMDBGNDlCQ0UgLyogV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAq
LywKIAkJCQlDNTVGOTE3MDFDNTk1RjYzMDAyOUU5MkQgLyogRGF0YURldGVjdGlvblJlc3VsdC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTFBRTExN0Y2MTFEQkIzMDkwMDk4MTYxNSAvKiBQcm9jZXNz
TGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFCMUQxMTJGNUZFNjAwMzM3QkFC
IC8qIFByb2Nlc3NMYXVuY2hlck1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtOTMwNCw3ICs5MzA0
LDcgQEAKIAkJCQlDRENBODVDODEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNTRDQzEzMTJENjc0RUUwMDVDNjdC
MCAvKiBXS0dlb2xvY2F0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzA2RjQ0
RjEyREJERjNGMDAyRDc4REUgLyogV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTkzQTI1M0VGMUM5MjJFOEUwMEY5RjY4RCAvKiBfV0tQcmV2aWV3
QWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTNBMjUzRUYxQzkyMkU4RTAwRjlGNjhEIC8q
IFdLUHJldmlld0FjdGlvbkl0ZW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzBFNjE5OTEyRDZD
RDEyMDAxMkE3MkEgLyogV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA3Mjk3RkEyMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVj
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkNCNEU1MDE4QkJFMDQ0MDAwRkNGQzkgLyogV0tH
ZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273784</attachid>
            <date>2016-03-11 16:44:41 -0800</date>
            <delta_ts>2016-03-12 14:14:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>for-review-2.txt</filename>
            <type>text/plain</type>
            <size>94607</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODA0OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYxIEBACisyMDE2LTAzLTExICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHByZXZpZXcgaW5saW5lIG5h
dmlnYXRpb24gd29yayBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NTM4MworICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisgICAgICAgIHJk
YXI6Ly9wcm9ibGVtLzI1MTE3OTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2l0aCB0aGlzIHBhdGNoOgorICAgICAgICBfV0tFbGVtZW50SW5mbyBp
cyBub3cgV0tFbGVtZW50SW5mbyBpbiBmaWxlIGFuZCBjbGFzcyBuYW1lcy4KKyAgICAgICAgX1dL
UHJldmlld0VsZW1lbnRJbmZvIGlzIG5vdyBXS1ByZXZpZXdFbGVtZW50SW5mbyBpbiBmaWxlIGFu
ZCBjbGFzcyBuYW1lcy4KKyAgICAgICAgX1dLUHJldmlld0FjdGlvbiBpcyBub3cgV0tQcmV2aWV3
QWN0aW9uSXRlbSBpbiBmaWxlbmFtZXMsIHRoZSBwcm90b2NvbCAKKyAgICAgICAgX1dLUHJldmll
d0FjdGlvbkl0ZW0gaXMgbm93IFdLUHJldmlld0FjdGlvbkl0ZW0sIGJ1dCB0aGUgX1dLUHJldmll
d0FjdGlvbiAKKyAgICAgICAgY2xhc3MgaXMgc3RpbGwgYSBwcml2YXRlIGltcGxlbWVudGF0aW9u
IGRldGFpbCwgc28gaXQgc3RpbGwgaGFzIGFuIHVuZGVyc2NvcmUgCisgICAgICAgIGV2ZW4gdGhv
dWdoIHRoZSBmaWxlbmFtZXMgZG8gbm90LgorICAgICAgICBhbmQKKyAgICAgICAgV0tQcmV2aWV3
QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmgvbW0gaXMgCisgICAgICAgIG5vd1dLUHJldmlld0Fj
dGlvbkl0ZW1JZGVudGlmaWVycy5oL21tIGFuZCBhbGwgdGhlIHRoZSBpZGVudGlmaWVycyBoYXZl
IGJlZW4gCisgICAgICAgIHVwZGF0ZWQuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL1dl
YktpdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5oOiBD
b3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLmguCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLm1tOiBDb3BpZWQgZnJvbSBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLm1tLgorICAgICAgICAoLVtXS0VsZW1lbnRJ
bmZvIGNvcHlXaXRoWm9uZTpdKToKKyAgICAgICAgKC1bX1dLRWxlbWVudEluZm8gY29weVdpdGha
b25lOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50
SW5mb0ludGVybmFsLmg6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVu
dEluZm9JbnRlcm5hbC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3
QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUubW06IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLmg6IENv
cGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbi5oLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbTogQ29waWVkIGZy
b20gVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLm1tLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmg6IENvcGll
ZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2
YXRlLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVt
SWRlbnRpZmllcnMubW06IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3
QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmg6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbkludGVybmFsLmguCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8ubW06IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tLgorICAgICAgICAoLVtXS1ByZXZpZXdF
bGVtZW50SW5mbyBfaW5pdFdpdGhMaW5rVVJMOl0pOgorICAgICAgICAoLVtfV0tQcmV2aWV3RWxl
bWVudEluZm8gX2luaXRXaXRoTGlua1VSTDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaDogQ29waWVkIGZyb20g
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8ubW06IFJlbW92ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mb0ludGVybmFsLmg6IFJlbW92ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLmg6IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLm1tOiBSZW1v
dmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbkludGVy
bmFsLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3
RWxlbWVudEluZm8uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1ByZXZpZXdFbGVtZW50SW5mby5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmg6IFJlbW92ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX2ludGVyYWN0aW9uU2hvdWxkQmVnaW5Gcm9tUHJldmlld0l0ZW1Db250
cm9sbGVyOmZvclBvc2l0aW9uOl0pOgorICAgICAgICAocHJldmlld0lkZW50aWZpZXJGb3JFbGVt
ZW50QWN0aW9uKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcHJlc2VudGVkVmlld0NvbnRy
b2xsZXJGb3JQcmV2aWV3SXRlbUNvbnRyb2xsZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX3ByZXZpZXdJdGVtQ29udHJvbGxlcjpjb21taXRQcmV2aWV3Ol0pOgorICAgICAgICAqIFdl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNi0wMy0xMSAgRW5yaWNhIENh
c3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBvbmx5IHNlbGVjdGVkIHRl
eHQgZm9yIExvb2sgdXAuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dl
YktpdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV2Vi
S2l0LmgJKHJldmlzaW9uIDE5Nzk2MikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29j
b2EvV2ViS2l0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCA8
V2ViS2l0L1dLQmFja0ZvcndhcmRMaXN0Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tCYWNrRm9yd2Fy
ZExpc3RJdGVtLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tFbGVtZW50SW5mby5oPgogI2ltcG9ydCA8
V2ViS2l0L1dLRXJyb3IuaD4KICNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KICNpbXBv
cnQgPFdlYktpdC9XS0ZyYW1lSW5mby5oPgpAQCAtMzMsNiArMzQsOSBAQAogI2ltcG9ydCA8V2Vi
S2l0L1dLTmF2aWdhdGlvbkRlbGVnYXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tOYXZpZ2F0aW9u
UmVzcG9uc2UuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzLmg+CisjaW1wb3J0IDxX
ZWJLaXQvV0tQcmV2aWV3QWN0aW9uSXRlbS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUHJldmlld0Fj
dGlvbkl0ZW1JZGVudGlmaWVycy5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUHJldmlld0VsZW1lbnRJ
bmZvLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbC5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLU2NyaXB0TWVzc2FnZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLU2NyaXB0TWVzc2FnZUhhbmRs
ZXIuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50
SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tFbGVtZW50SW5mby5oCShyZXZpc2lvbiAxOTc5NjIpCShmcm9tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8uaDoxOTc5NjIpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlv
bi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KKwor
V0tfQ0xBU1NfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpCitAaW50ZXJmYWNlIF9X
S0VsZW1lbnRJbmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KKworQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBOU1VSTCAqbGlua1VSTDsKKworQGVuZAorCitOU19BU1NVTUVfTk9OTlVM
TF9FTkQKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLRWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLRWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDcgKzMwLDcgQEAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIFdLX0NMQVNTX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQotQGludGVyZmFjZSBfV0tFbGVtZW50SW5mbyA6
IE5TT2JqZWN0IDxOU0NvcHlpbmc+CitAaW50ZXJmYWNlIFdLRWxlbWVudEluZm8gOiBOU09iamVj
dCA8TlNDb3B5aW5nPgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMICps
aW5rVVJMOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRWxl
bWVudEluZm8ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0VsZW1lbnRJbmZvLm1tCShyZXZpc2lvbiAxOTc5NjIpCShmcm9tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8ubW06MTk3OTYyKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KyNpbXBvcnQgIl9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVE
CisKK0BpbXBsZW1lbnRhdGlvbiBfV0tFbGVtZW50SW5mbworCistIChpZCljb3B5V2l0aFpvbmU6
KE5TWm9uZSAqKXpvbmUKK3sKKyAgICByZXR1cm4gW3NlbGYgcmV0YWluXTsKK30KKworLSAoTlNV
UkwgKilsaW5rVVJMCit7CisgICAgcmV0dXJuIF9saW5rVVJMLmdldCgpOworfQorCitAZW5kCisK
KyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1l
bnRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwx
MSArMjQsMTEgQEAKICAqLwogCiAjaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIl9XS0VsZW1l
bnRJbmZvSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLRWxlbWVudEluZm9JbnRlcm5hbC5oIgogCiAj
aWYgV0tfQVBJX0VOQUJMRUQKIAotQGltcGxlbWVudGF0aW9uIF9XS0VsZW1lbnRJbmZvCitAaW1w
bGVtZW50YXRpb24gV0tFbGVtZW50SW5mbwogCiAtIChpZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAq
KXpvbmUKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVt
ZW50SW5mb0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkocmV2aXNpb24gMTk3OTYyKQkoZnJv
bSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvSW50ZXJu
YWwuaDoxOTc5NjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRWxl
bWVudEluZm9JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJfV0tFbGVtZW50SW5mby5oIgorCisjaW1wb3J0IDx3dGYvUmV0YWlu
UHRyLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCitAaW50ZXJmYWNlIF9XS0VsZW1lbnRJbmZv
ICgpIHsKK0BwYWNrYWdlCisgICAgUmV0YWluUHRyPE5TVVJMPiBfbGlua1VSTDsKK30KKworQGVu
ZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mb0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaAko
d29ya2luZyBjb3B5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTMgKzIzLDEzIEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2ltcG9ydCAiX1dLRWxl
bWVudEluZm8uaCIKKyNpbXBvcnQgIldLRWxlbWVudEluZm8uaCIKIAogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotQGludGVyZmFjZSBfV0tFbGVtZW50
SW5mbyAoKSB7CitAaW50ZXJmYWNlIFdLRWxlbWVudEluZm8gKCkgewogQHBhY2thZ2UKICAgICBS
ZXRhaW5QdHI8TlNVUkw+IF9saW5rVVJMOwogfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlv
bklkZW50aWZpZXJzUHJpdmF0ZS5oCShyZXZpc2lvbiAxOTc5NzMpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0KLSNpbXBvcnQg
PFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0FQSV9FTkFCTEVECi0KLSNpbXBvcnQg
PEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotI2ltcG9ydCA8V2ViS2l0L1dLRGVjbGFyYXRpb25T
cGVjaWZpZXJzLmg+Ci0KLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2
aWV3SWRlbnRpZmllck9wZW4gV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckFkZFRvUmVhZGlu
Z0xpc3QgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNT
dHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckNvcHkgV0tfQVZBSUxBQkxFKE5BLCBX
S19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3
SWRlbnRpZmllclNoYXJlIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci0KLSNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25J
ZGVudGlmaWVyc1ByaXZhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUubW0JKHJldmlz
aW9uIDE5Nzk3MykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2
aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM2ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV0tQcmV2
aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmgiCi0KLSNpZiBXS19BUElfRU5BQkxFRAotCi1O
U1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyT3BlbiA9IEAiV0tQcmV2aWV3SWRl
bnRpZmllck9wZW4iOwotTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckFkZFRv
UmVhZGluZ0xpc3QgPSBAIldLUHJldmlld0lkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0IjsKLU5T
U3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJDb3B5ID0gQCJXS1ByZXZpZXdJZGVu
dGlmaWVyQ29weSI7Ci1OU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyU2hhcmUg
PSBAIldLUHJldmlld0lkZW50aWZpZXJTaGFyZSI7Ci0KLSNlbmRpZgpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25J
dGVtLmgJKHJldmlzaW9uIDE5ODAzMykJKGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLmg6MTk4MDMzKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24u
aD4KKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKKworI2ltcG9ydCA8
VUlLaXQvVUlWaWV3Q29udHJvbGxlci5oPgorCitXS19DTEFTU19BVkFJTEFCTEUoTkEsIFdLX0lP
U19UQkEpCitAcHJvdG9jb2wgX1dLUHJldmlld0FjdGlvbkl0ZW0gPE5TT2JqZWN0LCBVSVByZXZp
ZXdBY3Rpb25JdGVtPgorCitAcHJvcGVydHkobm9uYXRvbWljLCBjb3B5LCByZWFkb25seSkgTlNT
dHJpbmcgKmlkZW50aWZpZXI7CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYm
IFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5oCSh3b3JraW5nIGNvcHkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0u
aAkod29ya2luZyBjb3B5KQpAQCAtMjksMTAgKzI5LDEwIEBACiAKICNpbXBvcnQgPFVJS2l0L1VJ
Vmlld0NvbnRyb2xsZXIuaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKQot
QHByb3RvY29sIF9XS1ByZXZpZXdBY3Rpb25JdGVtIDxOU09iamVjdCwgVUlQcmV2aWV3QWN0aW9u
SXRlbT4KK1dLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSkKK0Bwcm90b2NvbCBXS1ByZXZpZXdB
Y3Rpb25JdGVtIDxVSVByZXZpZXdBY3Rpb25JdGVtPgogCi1AcHJvcGVydHkobm9uYXRvbWljLCBj
b3B5LCByZWFkb25seSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSwgcmVhZG9ubHkpIE5TU3RyaW5nICppZGVudGlmaWVyOwogCiBAZW5kCiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
dmlld0FjdGlvbkl0ZW0ubW0JKHJldmlzaW9uIDE5ODAzMykJKGZyb20gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLm1tOjE5ODAzMykKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbQkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCIKKworI2lmIFdLX0FQSV9F
TkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKKworQGltcGxlbWVudGF0aW9uIF9XS1ByZXZpZXdB
Y3Rpb24KK0BzeW50aGVzaXplIGlkZW50aWZpZXI9X2lkZW50aWZpZXI7CisKKysgKGluc3RhbmNl
dHlwZSlhY3Rpb25XaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIHRpdGxlOihO
U1N0cmluZyAqKXRpdGxlIHN0eWxlOihVSVByZXZpZXdBY3Rpb25TdHlsZSlzdHlsZSBoYW5kbGVy
Oih2b2lkICheKShVSVByZXZpZXdBY3Rpb24gKmFjdGlvbiwgVUlWaWV3Q29udHJvbGxlciAqcHJl
dmlld1ZpZXdDb250cm9sbGVyKSloYW5kbGVyCit7CisgICAgX1dLUHJldmlld0FjdGlvbiAqYWN0
aW9uID0gW3NlbGYgYWN0aW9uV2l0aFRpdGxlOnRpdGxlIHN0eWxlOnN0eWxlIGhhbmRsZXI6aGFu
ZGxlcl07CisgICAgYWN0aW9uLT5faWRlbnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgcmV0dXJu
IGFjdGlvbjsKK30KKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VU
X09TX0lQSE9ORQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZXZpZXdBY3Rpb25JdGVtLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbQkod29ya2luZyBjb3B5KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgi
Ci0jaW1wb3J0ICJfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLUHJldmll
d0FjdGlvbkl0ZW1JbnRlcm5hbC5oIgogCiAjaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09T
X0lQSE9ORQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
dmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmgJKHJl
dmlzaW9uIDE5Nzk3MykJKGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaDoxOTc5NzMpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbXBvcnQg
PFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQg
PEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRGVjbGFyYXRpb25T
cGVjaWZpZXJzLmg+CisKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2
aWV3SWRlbnRpZmllck9wZW4gV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKK1dLX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckFkZFRvUmVhZGlu
Z0xpc3QgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNT
dHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckNvcHkgV0tfQVZBSUxBQkxFKE5BLCBX
S19JT1NfVEJBKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3
SWRlbnRpZmllclNoYXJlIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CisKKyNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25J
dGVtSWRlbnRpZmllcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oCSh3b3JraW5nIGNvcHkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0
ZW1JZGVudGlmaWVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMSArMjksMTAgQEAKICNpZiBX
S19BUElfRU5BQkxFRAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KLSNpbXBv
cnQgPFdlYktpdC9XS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oPgogCi1XS19FWFBPUlQgZXh0ZXJu
IE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJPcGVuIFdLX0FWQUlMQUJMRShO
QSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJl
dmlld0lkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RC
QSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZp
ZXJDb3B5IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5T
U3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJTaGFyZSBXS19BVkFJTEFCTEUoTkEs
IFdLX0lPU19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9u
SXRlbUlkZW50aWZpZXJPcGVuIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CitXS19FWFRF
Uk4gTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckFkZFRvUmVh
ZGluZ0xpc3QgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKK1dLX0VYVEVSTiBOU1N0cmlu
ZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyQ29weSBXS19BVkFJTEFCTEUo
TkEsIFdLX0lPU19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0
aW9uSXRlbUlkZW50aWZpZXJTaGFyZSBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwogCiAj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3
QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tCShyZXZp
c2lvbiAxOTc5NzMpCShmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tOjE5Nzk3MykKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmgi
CisKKyNpZiBXS19BUElfRU5BQkxFRAorCitOU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVu
dGlmaWVyT3BlbiA9IEAiV0tQcmV2aWV3SWRlbnRpZmllck9wZW4iOworTlNTdHJpbmcgKiBjb25z
dCBfV0tQcmV2aWV3SWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QgPSBAIldLUHJldmlld0lkZW50
aWZpZXJBZGRUb1JlYWRpbmdMaXN0IjsKK05TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50
aWZpZXJDb3B5ID0gQCJXS1ByZXZpZXdJZGVudGlmaWVyQ29weSI7CitOU1N0cmluZyAqIGNvbnN0
IF9XS1ByZXZpZXdJZGVudGlmaWVyU2hhcmUgPSBAIldLUHJldmlld0lkZW50aWZpZXJTaGFyZSI7
CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW0J
KHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMyAr
MjQsMTMgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV0tQcmV2aWV3
QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmgiCisjaW5jbHVkZSAiV0tQcmV2aWV3QWN0aW9uSXRl
bUlkZW50aWZpZXJzLmgiCiAKICNpZiBXS19BUElfRU5BQkxFRAogCi1OU1N0cmluZyAqIGNvbnN0
IF9XS1ByZXZpZXdJZGVudGlmaWVyT3BlbiA9IEAiV0tQcmV2aWV3SWRlbnRpZmllck9wZW4iOwot
TlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QgPSBA
IldLUHJldmlld0lkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0IjsKLU5TU3RyaW5nICogY29uc3Qg
X1dLUHJldmlld0lkZW50aWZpZXJDb3B5ID0gQCJXS1ByZXZpZXdJZGVudGlmaWVyQ29weSI7Ci1O
U1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyU2hhcmUgPSBAIldLUHJldmlld0lk
ZW50aWZpZXJTaGFyZSI7CitOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVu
dGlmaWVyT3BlbiA9IEAiV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJPcGVuIjsKK05TU3Ry
aW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0
ID0gQCJXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QiOworTlNT
dHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckNvcHkgPSBAIldLUHJl
dmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyQ29weSI7CitOU1N0cmluZyAqIGNvbnN0IFdLUHJldmll
d0FjdGlvbkl0ZW1JZGVudGlmaWVyU2hhcmUgPSBAIldLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlm
aWVyU2hhcmUiOwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwu
aAkocmV2aXNpb24gMTk4MDM3KQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oOjE5ODAzNykKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIldLRm91bmRh
dGlvbi5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQorCisjaW1w
b3J0ICJfV0tQcmV2aWV3QWN0aW9uLmgiCisKK0BpbnRlcmZhY2UgX1dLUHJldmlld0FjdGlvbiA6
IFVJUHJldmlld0FjdGlvbiA8TlNDb3B5aW5nLCBfV0tQcmV2aWV3QWN0aW9uSXRlbT4KKworKyAo
aW5zdGFuY2V0eXBlKWFjdGlvbldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIg
dGl0bGU6KE5TU3RyaW5nICopdGl0bGUgc3R5bGU6KFVJUHJldmlld0FjdGlvblN0eWxlKXN0eWxl
IGhhbmRsZXI6KHZvaWQgKF4pKFVJUHJldmlld0FjdGlvbiAqYWN0aW9uLCBVSVZpZXdDb250cm9s
bGVyICpwcmV2aWV3Vmlld0NvbnRyb2xsZXIpKWhhbmRsZXI7CisKK0BlbmQKKworI2VuZGlmIC8v
IFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rp
b25JdGVtSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaAkod29ya2luZyBjb3B5
KQpAQCAtMjcsOSArMjcsOSBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQ
SE9ORQogCi0jaW1wb3J0ICJfV0tQcmV2aWV3QWN0aW9uLmgiCisjaW1wb3J0ICJXS1ByZXZpZXdB
Y3Rpb25JdGVtLmgiCiAKLUBpbnRlcmZhY2UgX1dLUHJldmlld0FjdGlvbiA6IFVJUHJldmlld0Fj
dGlvbiA8TlNDb3B5aW5nLCBfV0tQcmV2aWV3QWN0aW9uSXRlbT4KK0BpbnRlcmZhY2UgX1dLUHJl
dmlld0FjdGlvbiA6IFVJUHJldmlld0FjdGlvbiA8TlNDb3B5aW5nLCBXS1ByZXZpZXdBY3Rpb25J
dGVtPgogCiArIChpbnN0YW5jZXR5cGUpYWN0aW9uV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICop
aWRlbnRpZmllciB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBzdHlsZTooVUlQcmV2aWV3QWN0aW9u
U3R5bGUpc3R5bGUgaGFuZGxlcjoodm9pZCAoXikoVUlQcmV2aWV3QWN0aW9uICphY3Rpb24sIFVJ
Vmlld0NvbnRyb2xsZXIgKnByZXZpZXdWaWV3Q29udHJvbGxlcikpaGFuZGxlcjsKIApJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2
aWV3RWxlbWVudEluZm8uaAkocmV2aXNpb24gMTk3OTYyKQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5oOjE5Nzk2MikKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8uaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2Vi
S2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQ
SE9ORQorCisjaW1wb3J0IDxXZWJLaXQvX1dLRWxlbWVudEluZm8uaD4KKworTlNfQVNTVU1FX05P
Tk5VTExfQkVHSU4KKworV0tfQ0xBU1NfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKQorQGludGVy
ZmFjZSBfV0tQcmV2aWV3RWxlbWVudEluZm8gOiBfV0tFbGVtZW50SW5mbworCitAZW5kCisKK05T
X0FTU1VNRV9OT05OVUxMX0VORAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLmgJKHdv
cmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2
aWV3RWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTIgKzI3LDEyIEBACiAKICNp
ZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCiAKLSNpbXBvcnQgPFdlYktpdC9f
V0tFbGVtZW50SW5mby5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRWxlbWVudEluZm8uaD4KIAogTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KIAogV0tfQ0xBU1NfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJB
KQotQGludGVyZmFjZSBfV0tQcmV2aWV3RWxlbWVudEluZm8gOiBfV0tFbGVtZW50SW5mbworQGlu
dGVyZmFjZSBXS1ByZXZpZXdFbGVtZW50SW5mbyA6IFdLRWxlbWVudEluZm8KIAogQGVuZAogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJ
bmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmV2aWV3RWxlbWVudEluZm8ubW0JKHJldmlzaW9uIDE5Nzk2MikJKGZyb20gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8ubW06MTk3OTYy
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50
SW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJfV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5o
IgorCisjaW1wb3J0ICJfV0tFbGVtZW50SW5mb0ludGVybmFsLmgiCisjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShJT1MpCisKK0BpbXBs
ZW1lbnRhdGlvbiBfV0tQcmV2aWV3RWxlbWVudEluZm8KKworLSAoaW5zdGFuY2V0eXBlKV9pbml0
V2l0aExpbmtVUkw6KE5TVVJMICopdXJsCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0
XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfbGlua1VSTCA9IGFkb3B0TlMoW3VybCBj
b3B5XSk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworQGVuZAorCisjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8ubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZp
ZXdFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAt
MjQsMTQgKzI0LDE0IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJfV0tQ
cmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tQcmV2aWV3RWxlbWVudElu
Zm9JbnRlcm5hbC5oIgogCi0jaW1wb3J0ICJfV0tFbGVtZW50SW5mb0ludGVybmFsLmgiCisjaW1w
b3J0ICJXS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
IAogI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKElPUykKIAotQGltcGxlbWVudGF0aW9u
IF9XS1ByZXZpZXdFbGVtZW50SW5mbworQGltcGxlbWVudGF0aW9uIFdLUHJldmlld0VsZW1lbnRJ
bmZvCiAKIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhMaW5rVVJMOihOU1VSTCAqKXVybAogewpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50
SW5mb0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgJKHJldmlzaW9uIDE5Nzk2MikJ
KGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVu
dEluZm9JbnRlcm5hbC5oOjE5Nzk2MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJfV0tQcmV2aWV3RWxlbWVudEluZm8u
aCIKKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKKworQGludGVyZmFj
ZSBfV0tQcmV2aWV3RWxlbWVudEluZm8gKCkKKworLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aExp
bmtVUkw6KE5TVVJMICopdXJsOworCitAZW5kCisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50
SW5mb0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm9J
bnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMSArMjMsMTEgQEAKICAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW1wb3J0ICJfV0tQcmV2aWV3RWxlbWVu
dEluZm8uaCIKKyNpbXBvcnQgIldLUHJldmlld0VsZW1lbnRJbmZvLmgiCiAKICNpZiBXS19BUElf
RU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCiAKLUBpbnRlcmZhY2UgX1dLUHJldmlld0VsZW1l
bnRJbmZvICgpCitAaW50ZXJmYWNlIFdLUHJldmlld0VsZW1lbnRJbmZvICgpCiAKIC0gKGluc3Rh
bmNldHlwZSlfaW5pdFdpdGhMaW5rVVJMOihOU1VSTCAqKXVybDsKIApJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oCShyZXZpc2lv
biAxOTc5NjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMSArMjgsMTMgQEAKICNpZiBXS19BUElfRU5B
QkxFRAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1ByZXZpZXdBY3Rpb25JdGVtLmg+CiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIEBj
bGFzcyBXS0ZyYW1lSW5mbzsKIEBjbGFzcyBXS05hdmlnYXRpb25BY3Rpb247CitAY2xhc3MgV0tQ
cmV2aWV3RWxlbWVudEluZm87CiBAY2xhc3MgV0tXZWJWaWV3Q29uZmlndXJhdGlvbjsKIEBjbGFz
cyBXS1dpbmRvd0ZlYXR1cmVzOwogCkBAIC0xMTQsNiArMTE2LDM5IEBAIE5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCiAgKi8KIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBydW5K
YXZhU2NyaXB0VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0OihOU1N0cmluZyAqKXByb21wdCBkZWZh
dWx0VGV4dDoobnVsbGFibGUgTlNTdHJpbmcgKilkZWZhdWx0VGV4dCBpbml0aWF0ZWRCeUZyYW1l
OihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmlu
ZyAqIFdLX05VTExBQkxFX1NQRUNJRklFUiByZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVyOwogCisv
KiEgQGFic3RyYWN0IEFsbG93cyB5b3VyIGFwcCB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3Qg
dGhlIGdpdmVuIGVsZW1lbnQgc2hvdWxkIHNob3cgYSBwcmV2aWV3LgorIEBwYXJhbSB3ZWJWaWV3
IFRoZSB3ZWIgdmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgorIEBwYXJhbSBlbGVt
ZW50SW5mbyBUaGUgZWxlbWVudEluZm8gZm9yIHRoZSBlbGVtZW50IHRoZSB1c2VyIGhhcyBzdGFy
dGVkIHRvdWNoaW5nLgorIEBkaXNjdXNzaW9uIFRvIGRpc2FibGUgcHJldmlld3MgZW50aXJlbHkg
Zm9yIHRoZSBnaXZlbiBlbGVtZW50LCByZXR1cm4gTk8uIFJldHVybmluZyBOTyB3aWxsIHByZXZl
bnQgCisgd2ViVmlldzpwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVtZW50OmRlZmF1bHRB
Y3Rpb25zOiBhbmQgd2ViVmlldzpjb21taXRQcmV2aWV3aW5nVmlld0NvbnRyb2xsZXI6CisgZnJv
bSBiZWluZyBpbnZva2VkLgorIAorIFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBpbnZva2VkIGZv
ciBlbGVtZW50cyB0aGF0IGhhdmUgZGVmYXVsdCBwcmV2aWV3IGluIFdlYktpdCwgd2hpY2ggaXMK
KyBsaW1pdGVkIHRvIGxpbmtzLiBJbiB0aGUgZnV0dXJlLCBpdCBjb3VsZCBiZSBpbnZva2VkIGZv
ciBhZGRpdGlvbmFsIGVsZW1lbnRzLgorICovCistIChCT09MKXdlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgc2hvdWxkUHJldmlld0VsZW1lbnQ6KFdLUHJldmlld0VsZW1lbnRJbmZvICopZWxl
bWVudEluZm8gV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKworLyohIEBhYnN0cmFjdCBB
bGxvd3MgeW91ciBhcHAgdG8gcHJvdmlkZSBhIGN1c3RvbSB2aWV3IGNvbnRyb2xsZXIgdG8gc2hv
dyB3aGVuIHRoZSBnaXZlbiBlbGVtZW50IGlzIHBlZWtlZC4KKyBAcGFyYW0gd2ViVmlldyBUaGUg
d2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KKyBAcGFyYW0gZWxlbWVudElu
Zm8gVGhlIGVsZW1lbnRJbmZvIGZvciB0aGUgZWxlbWVudCB0aGUgdXNlciBpcyBwZWVraW5nLgor
IEBwYXJhbSBkZWZhdWx0QWN0aW9ucyBBbiBhcnJheSBvZiB0aGUgYWN0aW9ucyB0aGF0IFdlYktp
dCB3b3VsZCB1c2UgYXMgcHJldmlld0FjdGlvbkl0ZW1zIGZvciB0aGlzIGVsZW1lbnQgYnkgCisg
ZGVmYXVsdC4gVGhlc2UgYWN0aW9ucyB3b3VsZCBiZSB1c2VkIGlmIGFsbG93c0xpbmtQcmV2aWV3
IGlzIFlFUyBidXQgdGhlc2UgZGVsZWdhdGUgbWV0aG9kcyBoYXZlIG5vdCBiZWVuIAorIGltcGxl
bWVudGVkLCBvciBpZiB0aGlzIGRlbGVnYXRlIG1ldGhvZCByZXR1cm5zIG5pbC4KKyBAZGlzY3Vz
c2lvbiBSZXR1cm5pbmcgYSB2aWV3IGNvbnRyb2xsZXIgd2lsbCByZXN1bHQgaW4gdGhhdCB2aWV3
IGNvbnRyb2xsZXIgYmVpbmcgZGlzcGxheWVkIGFzIGEgcGVlayBwcmV2aWV3LgorIFRvIHVzZSB0
aGUgZGVmYXVsdEFjdGlvbnMsIHlvdXIgYXBwIGlzIHJlc3BvbnNpYmxlIGZvciByZXR1cm5pbmcg
d2hpY2hldmVyIG9mIHRob3NlIGFjdGlvbnMgaXQgd2FudHMgaW4geW91ciAKKyB2aWV3IGNvbnRy
b2xsZXIncyBpbXBsZW1lbnRhdGlvbiBvZiAtcHJldmlld0FjdGlvbkl0ZW1zLgorIAorIFJldHVy
bmluZyBuaWwgd2lsbCByZXN1bHQgaW4gV2ViS2l0J3MgZGVmYXVsdCBwcmV2aWV3IGJlaGF2aW9y
LiB3ZWJWaWV3OmNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjogd2lsbCBvbmx5IGJlIGlu
dm9rZWQKKyBpZiBhIG5vbi1uaWwgdmlldyBjb250cm9sbGVyIHdhcyByZXR1cm5lZC4KKyAqLwor
LSAobnVsbGFibGUgVUlWaWV3Q29udHJvbGxlciAqKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgcHJldmlld2luZ1ZpZXdDb250cm9sbGVyRm9yRWxlbWVudDooV0tQcmV2aWV3RWxlbWVudElu
Zm8gKillbGVtZW50SW5mbyBkZWZhdWx0QWN0aW9uczooTlNBcnJheSA8aWQgPFdLUHJldmlld0Fj
dGlvbkl0ZW0+PiAqKXByZXZpZXdBY3Rpb25zIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7
CisKKy8qISBAYWJzdHJhY3QgQWxsb3dzIHlvdXIgYXBwIHRvIHBvcCB0byB0aGUgdmlldyBjb250
cm9sbGVyIGl0IGNyZWF0ZWQuCisgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5n
IHRoZSBkZWxlZ2F0ZSBtZXRob2QuCisgQHBhcmFtIHByZXZpZXdpbmdWaWV3Q29udHJvbGxlciBU
aGUgdmlldyBjb250cm9sbGVyIHRoYXQgaXMgYmVpbmcgcG9wcGVkLgorICovCistICh2b2lkKXdl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVy
OihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2luZ1ZpZXdDb250cm9sbGVyIFdLX0FWQUlMQUJM
RShOQSwgV0tfSU9TX1RCQSk7CisKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlE
ZWxlZ2F0ZVByaXZhdGUuaAkocmV2aXNpb24gMTk3OTczKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDcgKzI5LDYgQEAKIAogI2ltcG9ydCA8V2ViS2l0L1dLU2VjdXJpdHlPcmlnaW4uaD4KICNp
bXBvcnQgPFdlYktpdC9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oPgotI2ltcG9ydCA8V2ViS2l0
L19XS1ByZXZpZXdBY3Rpb24uaD4KIAogQGNsYXNzIFVJU2Nyb2xsVmlldzsKIEBjbGFzcyBVSVZp
ZXdDb250cm9sbGVyOwpAQCAtMzcsNyArMzYsNiBAQAogQGNsYXNzIF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvOwogQGNsYXNzIF9XS0VsZW1lbnRBY3Rpb247CiBAY2xhc3MgX1dLRnJhbWVIYW5kbGU7
Ci1AY2xhc3MgX1dLUHJldmlld0VsZW1lbnRJbmZvOwogCiBAcHJvdG9jb2wgV0tVSURlbGVnYXRl
UHJpdmF0ZSA8V0tVSURlbGVnYXRlPgogCkBAIC03OCwxNyArNzYsNiBAQCBzdHJ1Y3QgVUlFZGdl
SW5zZXRzOwogLSAoVUlFZGdlSW5zZXRzKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGZp
bmFsT2JzY3VyZWRJbnNldHNGb3JTY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3
IHdpdGhWZWxvY2l0eTooQ0dQb2ludCl2ZWxvY2l0eSB0YXJnZXRDb250ZW50T2Zmc2V0Oihpbm91
dCBDR1BvaW50ICopdGFyZ2V0Q29udGVudE9mZnNldCBXS19BVkFJTEFCTEUoTkEsIDlfMCk7CiAt
IChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmll
d1ZpZXdDb250cm9sbGVyRm9yVVJMOihOU1VSTCAqKXVybCBkZWZhdWx0QWN0aW9uczooV0tfQVJS
QVkoX1dLRWxlbWVudEFjdGlvbiAqKSAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gV0tfQVZBSUxBQkxFKE5BLCA5XzApOwogLSAoVUlW
aWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3
Q29udHJvbGxlckZvckFuaW1hdGVkSW1hZ2VBdFVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlv
bnM6KFdLX0FSUkFZKF9XS0VsZW1lbnRBY3Rpb24gKikgKilhY3Rpb25zIGVsZW1lbnRJbmZvOihf
V0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIGltYWdlU2l6ZTooQ0dTaXplKWlt
YWdlU2l6ZSBXS19BVkFJTEFCTEUoTkEsIDlfMCk7Ci0KLS8vIElmIGEgY2xpZW50IHdhbnRzIHRv
IGRpc2FibGUgcHJldmlld3MgZW50aXJlbHkgZm9yIHRoZSBnaXZlbiBlbGVtZW50LCB0aGV5IHNo
b3VsZCByZXR1cm4gTk8gaW4KLS8vIHNob3VsZFByZXZpZXdFbGVtZW50LiBSZXR1cm5pbmcgTk8g
aW4gc2hvdWxkUHJldmlld0VsZW1lbnQgd2lsbCBwcmV2ZW50IHRoZSBvdGhlciBtZXRob2RzIGZy
b20gYmVpbmcgaW52b2tlZC4KLS8vIFRoZSBjbGllbnQgY2FuIHByb3ZpZGUgYSBjdXN0b20gcHJl
dmlldyBieSByZXR1cm5pbmcgdGhlaXIgb3duIFVJVmlld0NvbnRyb2xsZXIgZnJvbQotLy8gcHJl
dmlld2luZ1ZpZXdDb250cm9sbGVyRm9yRWxlbWVudDpkZWZhdWx0QWN0aW9uczouIFJldHVybmlu
ZyBuaWwgd2lsbCByZXN1bHQgaW4gdGhlIGRlZmF1bHQgcHJldmlldyBiZWhhdmlvcgotLy8gZm9y
IHRoYXQgZWxlbWVudC4gSWYgdGhlIGNsaWVudCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdEFjdGlv
bnMsIHRoZW4gdGhlIGNsaWVudCBpcyByZXNwb25zaWJsZSBmb3IKLS8vIHJldHVybmluZyB0aG9z
ZSBhY3Rpb25zIGluIHRoZWlyIFVJVmlld0NvbnRyb2xsZXIncyBpbXBsZW1lbnRhdGlvbiBvZiBw
cmV2aWV3QWN0aW9uSXRlbXMuCi0tIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHNob3VsZFByZXZpZXdFbGVtZW50OihfV0tQcmV2aWV3RWxlbWVudEluZm8gKillbGVtZW50SW5m
bzsKLS0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBw
cmV2aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVtZW50OihfV0tQcmV2aWV3RWxlbWVudEluZm8g
KillbGVtZW50SW5mbyBkZWZhdWx0QWN0aW9uczooTlNBcnJheSA8aWQgPF9XS1ByZXZpZXdBY3Rp
b25JdGVtPj4gKilwcmV2aWV3QWN0aW9ucyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwot
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb21taXRQcmV2aWV3aW5nVmll
d0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXIg
V0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLQogLSAoVUlWaWV3Q29udHJvbGxlciAqKV9w
cmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdL
X0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CiAjZWxzZQogLSAoTlNNZW51ICopX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVu
dDooX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIE5BKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
Q29udGV4dE1lbnVFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oCShyZXZpc2lvbiAx
OTc5NjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0NvbnRleHRN
ZW51RWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTIgKzI3LDEyIEBACiAKICNp
ZiBXS19BUElfRU5BQkxFRCAmJiAhVEFSR0VUX09TX0lQSE9ORQogCi0jaW1wb3J0IDxXZWJLaXQv
X1dLRWxlbWVudEluZm8uaD4KKyNpbXBvcnQgPFdlYktpdC9XS0VsZW1lbnRJbmZvLmg+CiAKIE5T
X0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIFdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBO
QSkKLUBpbnRlcmZhY2UgX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyA6IF9XS0VsZW1lbnRJbmZv
CitAaW50ZXJmYWNlIF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gOiBXS0VsZW1lbnRJbmZvCiAK
IEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVt
ZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLRWxlbWVudEluZm8uaAkocmV2aXNpb24gMTk3OTYyKQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+
Ci0KLSNpZiBXS19BUElfRU5BQkxFRAotCi1OU19BU1NVTUVfTk9OTlVMTF9CRUdJTgotCi1XS19D
TEFTU19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSkKLUBpbnRlcmZhY2UgX1dLRWxl
bWVudEluZm8gOiBOU09iamVjdCA8TlNDb3B5aW5nPgotCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIE5TVVJMICpsaW5rVVJMOwotCi1AZW5kCi0KLU5TX0FTU1VNRV9OT05OVUxMX0VO
RAotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
RWxlbWVudEluZm8ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tFbGVtZW50SW5mby5tbQkocmV2aXNpb24gMTk3OTYyKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5
KQpAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1w
b3J0ICJfV0tFbGVtZW50SW5mb0ludGVybmFsLmgiCi0KLSNpZiBXS19BUElfRU5BQkxFRAotCi1A
aW1wbGVtZW50YXRpb24gX1dLRWxlbWVudEluZm8KLQotLSAoaWQpY29weVdpdGhab25lOihOU1pv
bmUgKil6b25lCi17Ci0gICAgcmV0dXJuIFtzZWxmIHJldGFpbl07Ci19Ci0KLS0gKE5TVVJMICop
bGlua1VSTAotewotICAgIHJldHVybiBfbGlua1VSTC5nZXQoKTsKLX0KLQotQGVuZAotCi0jZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudElu
Zm9JbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCShyZXZpc2lvbiAxOTc5NjIpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaAko
d29ya2luZyBjb3B5KQpAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiX1dL
RWxlbWVudEluZm8uaCIKLQotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgotCi0jaWYgV0tfQVBJ
X0VOQUJMRUQKLQotQGludGVyZmFjZSBfV0tFbGVtZW50SW5mbyAoKSB7Ci1AcGFja2FnZQotICAg
IFJldGFpblB0cjxOU1VSTD4gX2xpbmtVUkw7Ci19Ci0KLUBlbmQKLQotI2VuZGlmIC8vIFdLX0FQ
SV9FTkFCTEVECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
ZXZpZXdBY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1ByZXZpZXdBY3Rpb24uaAkocmV2aXNpb24gMTk4MDMzKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgPFdlYktpdC9XS0ZvdW5k
YXRpb24uaD4KLQotI2lmIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKLQotI2lt
cG9ydCA8VUlLaXQvVUlWaWV3Q29udHJvbGxlci5oPgotCi1XS19DTEFTU19BVkFJTEFCTEUoTkEs
IFdLX0lPU19UQkEpCi1AcHJvdG9jb2wgX1dLUHJldmlld0FjdGlvbkl0ZW0gPE5TT2JqZWN0LCBV
SVByZXZpZXdBY3Rpb25JdGVtPgotCi1AcHJvcGVydHkobm9uYXRvbWljLCBjb3B5LCByZWFkb25s
eSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7Ci0KLUBlbmQKLQotI2VuZGlmIC8vIFdLX0FQSV9FTkFC
TEVEICYmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdBY3Rpb24ubW0JKHJldmlzaW9uIDE5ODAz
MykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlv
bi5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9y
dCAiY29uZmlnLmgiCi0jaW1wb3J0ICJfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCIKLQotI2lm
IFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKLQotQGltcGxlbWVudGF0aW9uIF9X
S1ByZXZpZXdBY3Rpb24KLUBzeW50aGVzaXplIGlkZW50aWZpZXI9X2lkZW50aWZpZXI7Ci0KLSsg
KGluc3RhbmNldHlwZSlhY3Rpb25XaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVy
IHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIHN0eWxlOihVSVByZXZpZXdBY3Rpb25TdHlsZSlzdHls
ZSBoYW5kbGVyOih2b2lkICheKShVSVByZXZpZXdBY3Rpb24gKmFjdGlvbiwgVUlWaWV3Q29udHJv
bGxlciAqcHJldmlld1ZpZXdDb250cm9sbGVyKSloYW5kbGVyCi17Ci0gICAgX1dLUHJldmlld0Fj
dGlvbiAqYWN0aW9uID0gW3NlbGYgYWN0aW9uV2l0aFRpdGxlOnRpdGxlIHN0eWxlOnN0eWxlIGhh
bmRsZXI6aGFuZGxlcl07Ci0gICAgYWN0aW9uLT5faWRlbnRpZmllciA9IGlkZW50aWZpZXI7Ci0g
ICAgcmV0dXJuIGFjdGlvbjsKLX0KLQotQGVuZAotCi0jZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQg
JiYgVEFSR0VUX09TX0lQSE9ORQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oCShyZXZp
c2lvbiAxOTgwMzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
ZXZpZXdBY3Rpb25JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW1wb3J0ICJXS0ZvdW5kYXRpb24uaCIKLQotI2lmIFdLX0FQSV9FTkFCTEVE
ICYmIFRBUkdFVF9PU19JUEhPTkUKLQotI2ltcG9ydCAiX1dLUHJldmlld0FjdGlvbi5oIgotCi1A
aW50ZXJmYWNlIF9XS1ByZXZpZXdBY3Rpb24gOiBVSVByZXZpZXdBY3Rpb24gPE5TQ29weWluZywg
X1dLUHJldmlld0FjdGlvbkl0ZW0+Ci0KLSsgKGluc3RhbmNldHlwZSlhY3Rpb25XaXRoSWRlbnRp
ZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIHN0eWxl
OihVSVByZXZpZXdBY3Rpb25TdHlsZSlzdHlsZSBoYW5kbGVyOih2b2lkICheKShVSVByZXZpZXdB
Y3Rpb24gKmFjdGlvbiwgVUlWaWV3Q29udHJvbGxlciAqcHJldmlld1ZpZXdDb250cm9sbGVyKSlo
YW5kbGVyOwotCi1AZW5kCi0KLSNlbmRpZiAvLyBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1Nf
SVBIT05FCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZp
ZXdFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmgJKHJldmlzaW9uIDE5Nzk2MikKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgPFdl
YktpdC9XS0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19J
UEhPTkUKLQotI2ltcG9ydCA8V2ViS2l0L19XS0VsZW1lbnRJbmZvLmg+Ci0KLU5TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCi0KLVdLX0NMQVNTX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSkKLUBpbnRl
cmZhY2UgX1dLUHJldmlld0VsZW1lbnRJbmZvIDogX1dLRWxlbWVudEluZm8KLQotQGVuZAotCi1O
U19BU1NVTUVfTk9OTlVMTF9FTkQKLQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5t
bQkocmV2aXNpb24gMTk3OTYyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tQcmV2aWV3RWxlbWVudEluZm8ubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNDggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiX1dLUHJldmlld0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaCIKLQotI2ltcG9ydCAiX1dLRWxlbWVudEluZm9JbnRlcm5hbC5o
IgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgotCi0jaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExB
VEZPUk0oSU9TKQotCi1AaW1wbGVtZW50YXRpb24gX1dLUHJldmlld0VsZW1lbnRJbmZvCi0KLS0g
KGluc3RhbmNldHlwZSlfaW5pdFdpdGhMaW5rVVJMOihOU1VSTCAqKXVybAotewotICAgIGlmICgh
KHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgX2xpbmtV
UkwgPSBhZG9wdE5TKFt1cmwgY29weV0pOwotCi0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLUBlbmQK
LQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
ZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oCShyZXZp
c2lvbiAxOTc5NjIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
ZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMzYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbXBvcnQgIl9XS1ByZXZpZXdFbGVtZW50SW5mby5oIgotCi0jaWYg
V0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQotCi1AaW50ZXJmYWNlIF9XS1ByZXZp
ZXdFbGVtZW50SW5mbyAoKQotCi0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoTGlua1VSTDooTlNV
UkwgKil1cmw7Ci0KLUBlbmQKLQotI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQkocmV2aXNpb24gMTk4MDMzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTQzLDcg
KzQzLDkgQEAKICNpbXBvcnQgIldLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaCIKICNpbXBv
cnQgIldLSW5zcGVjdG9yTm9kZVNlYXJjaEdlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW1wb3J0ICJX
S05TVVJMRXh0cmFzLmgiCi0jaW1wb3J0ICJXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZh
dGUuaCIKKyNpbXBvcnQgIldLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oIgorI2ltcG9y
dCAiV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmgiCisjaW1wb3J0ICJXS1ByZXZpZXdFbGVt
ZW50SW5mb0ludGVybmFsLmgiCiAjaW1wb3J0ICJXS1VJRGVsZWdhdGVQcml2YXRlLmgiCiAjaW1w
b3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5h
bC5oIgpAQCAtNTcsOCArNTksNiBAQAogI2ltcG9ydCAiX1dLRm9jdXNlZEVsZW1lbnRJbmZvLmgi
CiAjaW1wb3J0ICJfV0tGb3JtSW5wdXRTZXNzaW9uLmgiCiAjaW1wb3J0ICJfV0tJbnB1dERlbGVn
YXRlLmgiCi0jaW1wb3J0ICJfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCIKLSNpbXBvcnQgIl9X
S1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgiCiAjaW1wb3J0IDxDb3JlVGV4dC9DVEZvbnQu
aD4KICNpbXBvcnQgPENvcmVUZXh0L0NURm9udERlc2NyaXB0b3IuaD4KICNpbXBvcnQgPE1vYmls
ZUNvcmVTZXJ2aWNlcy9VVENvcmVUeXBlcy5oPgpAQCAtMzc3Niw5ICszNzc2LDkgQEAgLSAoQk9P
TClfaW50ZXJhY3Rpb25TaG91bGRCZWdpbkZyb21QcmV2aQogICAgIGlmIChfcG9zaXRpb25JbmZv
cm1hdGlvbi5pc0xpbmspIHsKICAgICAgICAgTlNVUkwgKnRhcmdldFVSTCA9IFtOU1VSTCBfd2Vi
X1VSTFdpdGhXVEZTdHJpbmc6X3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsXTsKICAgICAgICAgaWQg
PFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzdGF0aWNfY2FzdDxpZCA8V0tVSURl
bGVnYXRlUHJpdmF0ZT4+KFtfd2ViVmlldyBVSURlbGVnYXRlXSk7Ci0gICAgICAgIGlmIChbdWlE
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnNob3VsZFByZXZp
ZXdFbGVtZW50OildKSB7Ci0gICAgICAgICAgICBhdXRvIHByZXZpZXdFbGVtZW50SW5mbyA9IGFk
b3B0TlMoW1tfV0tQcmV2aWV3RWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aExpbmtVUkw6dGFy
Z2V0VVJMXSk7Ci0gICAgICAgICAgICByZXR1cm4gW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZp
ZXcgc2hvdWxkUHJldmlld0VsZW1lbnQ6cHJldmlld0VsZW1lbnRJbmZvLmdldCgpXTsKKyAgICAg
ICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpz
aG91bGRQcmV2aWV3RWxlbWVudDopXSkgeworICAgICAgICAgICAgYXV0byBwcmV2aWV3RWxlbWVu
dEluZm8gPSBhZG9wdE5TKFtbV0tQcmV2aWV3RWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aExp
bmtVUkw6dGFyZ2V0VVJMXSk7CisgICAgICAgICAgICByZXR1cm4gW3VpRGVsZWdhdGUgd2ViVmll
dzpfd2ViVmlldyBzaG91bGRQcmV2aWV3RWxlbWVudDpwcmV2aWV3RWxlbWVudEluZm8uZ2V0KCld
OwogICAgICAgICB9CiAgICAgICAgIGlmIChhYnNvbHV0ZUxpbmtVUkwuaXNFbXB0eSgpKQogICAg
ICAgICAgICAgcmV0dXJuIE5POwpAQCAtMzg3NiwxNSArMzg3NiwxNSBAQCBzdGF0aWMgTlNTdHJp
bmcgKnByZXZpZXdJZGVudGlmaWVyRm9yRWxlCiB7CiAgICAgc3dpdGNoIChhY3Rpb24udHlwZSkg
ewogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVPcGVuOgotICAgICAgICByZXR1cm4gX1dL
UHJldmlld0lkZW50aWZpZXJPcGVuOworICAgICAgICByZXR1cm4gV0tQcmV2aWV3QWN0aW9uSXRl
bUlkZW50aWZpZXJPcGVuOwogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVDb3B5OgotICAg
ICAgICByZXR1cm4gX1dLUHJldmlld0lkZW50aWZpZXJDb3B5OworICAgICAgICByZXR1cm4gV0tQ
cmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJDb3B5OwogI2lmICFkZWZpbmVkKFRBUkdFVF9PU19J
T1MpIHx8IFRBUkdFVF9PU19JT1MKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlQWRkVG9S
ZWFkaW5nTGlzdDoKLSAgICAgICAgcmV0dXJuIF9XS1ByZXZpZXdJZGVudGlmaWVyQWRkVG9SZWFk
aW5nTGlzdDsKKyAgICAgICAgcmV0dXJuIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyQWRk
VG9SZWFkaW5nTGlzdDsKICNlbmRpZgogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVTaGFy
ZToKLSAgICAgICAgcmV0dXJuIF9XS1ByZXZpZXdJZGVudGlmaWVyU2hhcmU7CisgICAgICAgIHJl
dHVybiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllclNoYXJlOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIHJldHVybiBuaWw7CiAgICAgfQpAQCAtMzkxNyw3ICszOTE3LDcgQEAgLSAoVUlWaWV3
Q29udHJvbGxlciAqKV9wcmVzZW50ZWRWaWV3Q29udAogICAgICAgICBSZXRhaW5QdHI8X1dLQWN0
aXZhdGVkRWxlbWVudEluZm8+IGVsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlTGlu
ayBVUkw6dGFyZ2V0VVJMIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uLnBvaW50IHRpdGxl
Ol9wb3NpdGlvbkluZm9ybWF0aW9uLnRpdGxlIHJlY3Q6X3Bvc2l0aW9uSW5mb3JtYXRpb24uYm91
bmRzIGltYWdlOl9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlLmdldCgpXSk7CiAKICAgICAgICAg
YXV0byBhY3Rpb25zID0gW19hY3Rpb25TaGVldEFzc2lzdGFudCBkZWZhdWx0QWN0aW9uc0Zvckxp
bmtTaGVldDplbGVtZW50SW5mby5nZXQoKV07Ci0gICAgICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnByZXZpZXdpbmdWaWV3Q29udHJvbGxl
ckZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlvbnM6KV0pIHsKKyAgICAgICAgaWYgKFt1aURlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpwcmV2aWV3aW5nVmlld0NvbnRy
b2xsZXJGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25zOildKSB7CiAgICAgICAgICAgICBhdXRvIHBy
ZXZpZXdBY3Rpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CiAg
ICAgICAgICAgICBmb3IgKF9XS0VsZW1lbnRBY3Rpb24gKmVsZW1lbnRBY3Rpb24gaW4gYWN0aW9u
cy5nZXQoKSkgewogICAgICAgICAgICAgICAgIF9XS1ByZXZpZXdBY3Rpb24gKnByZXZpZXdBY3Rp
b24gPSBbX1dLUHJldmlld0FjdGlvbiBhY3Rpb25XaXRoSWRlbnRpZmllcjpwcmV2aWV3SWRlbnRp
ZmllckZvckVsZW1lbnRBY3Rpb24oZWxlbWVudEFjdGlvbikgdGl0bGU6W2VsZW1lbnRBY3Rpb24g
dGl0bGVdIHN0eWxlOlVJUHJldmlld0FjdGlvblN0eWxlRGVmYXVsdCBoYW5kbGVyOl4oVUlQcmV2
aWV3QWN0aW9uICosIFVJVmlld0NvbnRyb2xsZXIgKikgewpAQCAtMzkyNSw4ICszOTI1LDggQEAg
LSAoVUlWaWV3Q29udHJvbGxlciAqKV9wcmVzZW50ZWRWaWV3Q29udAogICAgICAgICAgICAgICAg
IH1dOwogICAgICAgICAgICAgICAgIFtwcmV2aWV3QWN0aW9ucyBhZGRPYmplY3Q6cHJldmlld0Fj
dGlvbl07CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhdXRvIHByZXZpZXdFbGVtZW50SW5m
byA9IGFkb3B0TlMoW1tfV0tQcmV2aWV3RWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aExpbmtV
Ukw6dGFyZ2V0VVJMXSk7Ci0gICAgICAgICAgICBpZiAoVUlWaWV3Q29udHJvbGxlciAqY29udHJv
bGxlciA9IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IHByZXZpZXdpbmdWaWV3Q29udHJv
bGxlckZvckVsZW1lbnQ6cHJldmlld0VsZW1lbnRJbmZvLmdldCgpIGRlZmF1bHRBY3Rpb25zOnBy
ZXZpZXdBY3Rpb25zLmdldCgpXSkgeworICAgICAgICAgICAgYXV0byBwcmV2aWV3RWxlbWVudElu
Zm8gPSBhZG9wdE5TKFtbV0tQcmV2aWV3RWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aExpbmtV
Ukw6dGFyZ2V0VVJMXSk7CisgICAgICAgICAgICBpZiAoVUlWaWV3Q29udHJvbGxlciAqY29udHJv
bGxlciA9IFt1aURlbGVnYXRlIHdlYlZpZXc6X3dlYlZpZXcgcHJldmlld2luZ1ZpZXdDb250cm9s
bGVyRm9yRWxlbWVudDpwcmV2aWV3RWxlbWVudEluZm8uZ2V0KCkgZGVmYXVsdEFjdGlvbnM6cHJl
dmlld0FjdGlvbnMuZ2V0KCldKSB7CiAgICAgICAgICAgICAgICAgX3VpRGVsZWdhdGVQcm92aWRl
ZFByZXZpZXdpbmdWaWV3Q29udHJvbGxlciA9IFlFUzsKICAgICAgICAgICAgICAgICByZXR1cm4g
Y29udHJvbGxlcjsKICAgICAgICAgICAgIH0KQEAgLTM5NjksOCArMzk2OSw4IEBAIC0gKHZvaWQp
X3ByZXZpZXdJdGVtQ29udHJvbGxlcjooVUlQcmV2aWUKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OmNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjopXSkgewotICAgICAgICBbdWlEZWxl
Z2F0ZSBfd2ViVmlldzpfd2ViVmlldyBjb21taXRQcmV2aWV3aW5nVmlld0NvbnRyb2xsZXI6dmll
d0NvbnRyb2xsZXJdOworICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKHdlYlZpZXc6Y29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOildKSB7CisgICAg
ICAgIFt1aURlbGVnYXRlIHdlYlZpZXc6X3dlYlZpZXcgY29tbWl0UHJldmlld2luZ1ZpZXdDb250
cm9sbGVyOnZpZXdDb250cm9sbGVyXTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApJbmRleDog
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMTk4MDMzKQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yNTUsOCArMjU1LDggQEAKIAkJMUE1M0My
QTIxQTMyMzAwNDAwNEU4QzcwIC8qIEluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhh
bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QzRFRDMyNjFBMzExOUQ5MDA3OUJENDkgLyogSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlLmNwcCAqLzsgfTsKIAkJMUE1M0MyQTkxQTMyNTcyQjAwNEU4QzcwIC8qIFdlYnNp
dGVEYXRhU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUE1M0MyQTQxQTMyNTY5RjAwNEU4QzcwIC8qIFdlYnNpdGVEYXRhU3RvcmUuY3BwICov
OyB9OwogCQkxQTUzQzJBQTFBMzI1NzMwMDA0RThDNzAgLyogV2Vic2l0ZURhdGFTdG9yZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE1M0MyQTUxQTMy
NTY5RjAwNEU4QzcwIC8qIFdlYnNpdGVEYXRhU3RvcmUuaCAqLzsgfTsKLQkJMUE1NzA0RjExQkUw
MTczRjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE1NzA0RUYxQkUwMTczRjAwODc0QUYxIC8qIF9XS0Vs
ZW1lbnRJbmZvLm1tICovOyB9OwotCQkxQTU3MDRGMjFCRTAxNzQwMDA4NzRBRjEgLyogX1dLRWxl
bWVudEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBNTcwNEYwMUJFMDE3M0YwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFBNTcwNEYxMUJFMDE3M0Yw
MDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUE1NzA0RUYxQkUwMTczRjAwODc0QUYxIC8qIFdLRWxlbWVudElu
Zm8ubW0gKi87IH07CisJCTFBNTcwNEYyMUJFMDE3NDAwMDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZv
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU3MDRG
MDFCRTAxNzNGMDA4NzRBRjEgLyogV0tFbGVtZW50SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJMUE1NzA0RjcxQkUwMUZGNDAwODc0QUYxIC8q
IF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU3MDRGNTFCRTAxRkY0MDA4NzRBRjEgLyogX1dLQ29udGV4
dE1lbnVFbGVtZW50SW5mby5tbSAqLzsgfTsKIAkJMUE1NzA0RjgxQkUwMUZGNDAwODc0QUYxIC8q
IF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBNTcwNEY2MUJFMDFGRjQwMDg3NEFGMSAvKiBfV0tDb250ZXh0
TWVudUVsZW1lbnRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMUE1NzA0RkIxQkUxNzUxMTAwODc0QUYxIC8qIFJlbW90ZU9iamVjdEludm9j
YXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QTU3MDRGOTFCRTE3NTExMDA4NzRBRjEgLyogUmVtb3RlT2JqZWN0SW52b2NhdGlvbi5tbSAqLzsg
fTsKQEAgLTExOTQsMTkgKzExOTQsMTkgQEAKIAkJOTM1RUVCQTIxMjc3NjFEMDAwMzMyMkI4IC8q
IEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVFRUI5MDEyNzc2MTVEMDAzMzIyQjggLyogSW5qZWN0
ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCAqLzsgfTsKIAkJOTM1RUVCQTMxMjc3NjFEMzAwMzMy
MkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVFRUI5MTEyNzc2MTVEMDAzMzIy
QjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCAqLzsgfTsKIAkJOTM1
RUVCQTQxMjc3NjFENjAwMzMyMkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRl
bS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RUVC
OTIxMjc3NjE1RDAwMzMyMkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5o
ICovOyB9OwotCQk5MzczNUVCQjFDOTI5ODYzMDAzMzZGQTcgLyogX1dLUHJldmlld0FjdGlvbklu
dGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzczNUVCQTFDOTI5ODYzMDAzMzZGQTcgLyogX1dLUHJldmlld0FjdGlvbkludGVybmFsLmggKi87
IH07Ci0JCTkzOTEwNzRGMUJGNkJDNjUwMDhDMTdBRCAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm9J
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFs
LmggKi87IH07CisJCTkzNzM1RUJCMUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25J
dGVtSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNzM1RUJBMUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJu
YWwuaCAqLzsgfTsKKwkJOTM5MTA3NEYxQkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1l
bnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAvKiBXS1ByZXZpZXdFbGVtZW50SW5mb0lu
dGVybmFsLmggKi87IH07CiAJCTkzOTFGMkNBMTIxQjY3OUEwMEVCRjdFOCAvKiBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM5MUYyODQxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQubW0gKi87IH07CiAJCTkzOTFGMkNCMTIxQjY3QUQwMEVCRjdFOCAvKiBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oICovOyB9OwotCQk5Mzk1RTY4QTFCRjJDMzMyMDBGNDlCQ0UgLyogX1dLUHJldmlld0Vs
ZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5Mzk1RTY4OTFCRjJDMzMyMDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTM5NUU2OEMx
QkYyQzM1MjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTVFNjhCMUJGMkMzNTIwMEY0OUJD
RSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gKi87IH07Ci0JCTkzOTVFNjhFMUJGNDEwRkQw
MEY0OUJDRSAvKiBfV0tFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk1RTY4RDFCRjQxMEZEMDBGNDlCQ0UgLyogX1dL
RWxlbWVudEluZm9JbnRlcm5hbC5oICovOyB9OworCQk5Mzk1RTY4QTFCRjJDMzMyMDBGNDlCQ0Ug
LyogV0tQcmV2aWV3RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzOTVFNjg5MUJGMkMzMzIwMEY0OUJDRSAvKiBXS1ByZXZpZXdFbGVt
ZW50SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsK
KwkJOTM5NUU2OEMxQkYyQzM1MjAwRjQ5QkNFIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5NUU2OEIxQkYy
QzM1MjAwRjQ5QkNFIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvLm1tICovOyB9OworCQk5Mzk1RTY4
RTFCRjQxMEZEMDBGNDlCQ0UgLyogV0tFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk1RTY4RDFCRjQxMEZEMDBGNDlC
Q0UgLyogV0tFbGVtZW50SW5mb0ludGVybmFsLmggKi87IH07CiAJCTkzOUFFNzY2MTMxNkU5OUMw
MEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QUU3NjUxMzE2RTk5QzAwQUUwNkE2IC8qIFdl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgKi87IH07CiAJCTkzOUY0MDFDMTlGQjBCQkMwMDJCMkI0
MiAvKiBXS0FjdGlvbk1lbnVUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5RjQwMUIxOUZCMEJCQzAwMkIyQjQyIC8qIFdLQWN0aW9uTWVudVR5
cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
OTNBMjUzRUQxQzkyMkUxRTAwRjlGNjhEIC8qIF9XS1ByZXZpZXdBY3Rpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTI1M0VDMUM5MjJFMUUwMEY5
RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTNBMjUzRUYxQzkyMkU4RTAwRjlGNjhEIC8qIF9XS1ByZXZp
ZXdBY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0EyNTNFRTFDOTIyRThFMDBGOUY2OEQgLyogX1dLUHJldmlld0FjdGlvbi5tbSAqLzsgfTsK
LQkJOTNBMjUzRjMxQzkyNDExMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJz
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNBMjUzRjIxQzkyNDExMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJp
dmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CTkzQTI1M0Y1MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1By
aXZhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0EyNTNGNDFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2
YXRlLm1tICovOyB9OworCQk5M0EyNTNFRDFDOTIyRTFFMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0
aW9uSXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNBMjUzRUMxQzkyMkUxRTAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW0uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTkzQTI1M0VGMUM5MjJF
OEUwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMjUzRUUxQzkyMkU4RTAwRjlGNjhEIC8qIFdL
UHJldmlld0FjdGlvbkl0ZW0ubW0gKi87IH07CisJCTkzQTI1M0YzMUM5MjQxMTIwMEY5RjY4RCAv
KiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTI1M0YyMUM5MjQxMTIwMEY5RjY4RCAvKiBXS1By
ZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQdWJsaWMsICk7IH07IH07CisJCTkzQTI1M0Y1MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZp
ZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0EyNTNGNDFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0
aW9uSXRlbUlkZW50aWZpZXJzLm1tICovOyB9OwogCQk5M0E4OEIzMDFCQzZFOTk3MDBBQkE1QzIg
LyogV2ViSGl0VGVzdFJlc3VsdERhdGEubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEIyRTFCQzZFOThGMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJl
c3VsdERhdGEubW0gKi87IH07CiAJCTkzQTg4QjMzMUJDNkU5Q0QwMEFCQTVDMiAvKiBXZWJIaXRU
ZXN0UmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNBODhCMzExQkM2RTlDMDAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRhLmgg
Ki87IH07CiAJCTkzQTg4QjM2MUJDNkVBRDUwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0
YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4
OEIzNDFCQzZFQUJBMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEuY3BwICovOyB9OwpA
QCAtMjE4Niw4ICsyMTg2LDggQEAKIAkJMUE1MkMwRjYxQTM4Q0RDNzAwMTYxNjBBIC8qIFdlYlN0
b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUE1M0MyQTQxQTMyNTY5RjAwNEU4QzcwIC8qIFdlYnNpdGVEYXRhU3RvcmUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vic2l0ZURhdGFTdG9yZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNTNDMkE1MUEzMjU2OUYwMDRFOEM3MCAv
KiBXZWJzaXRlRGF0YVN0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YnNpdGVEYXRhU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUE1NzA0RUYx
QkUwMTczRjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLRWxlbWVudEluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTFBNTcwNEYwMUJFMDE3M0YwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tFbGVtZW50SW5mby5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQTU3MDRFRjFCRTAxNzNGMDA4NzRBRjEgLyogV0tF
bGVtZW50SW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdL
RWxlbWVudEluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBNTcwNEYwMUJF
MDE3M0YwMDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLRWxlbWVudEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUE1NzA0RjUxQkUwMUZGNDAwODc0QUYxIC8qIF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8ubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tDb250ZXh0TWVudUVs
ZW1lbnRJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTU3MDRGNjFCRTAx
RkY0MDA4NzRBRjEgLyogX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNTcwNEY5MUJFMTc1MTEwMDg3NEFGMSAvKiBSZW1vdGVP
YmplY3RJbnZvY2F0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUmVtb3RlT2JqZWN0SW52b2NhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTMyMTUsMTkgKzMyMTUsMTkgQEAKIAkJOTM1RUVCOTYxMjc3NjE2RDAwMzMyMkI4IC8qIFdL
QnVuZGxlQmFja0ZvcndhcmRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzNUVFQjk3MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVCYWNrRm9y
d2FyZExpc3RJdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1RUVCOTgx
Mjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTM3MzVFQkExQzkyOTg2MzAwMzM2RkE3IC8q
IF9XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJOTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mb0lu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1ByZXZpZXdFbGVt
ZW50SW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNzM1RUJB
MUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAv
KiBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTM5MUYyODMxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkxRjI4
NDEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzOTVFNjg5MUJGMkMzMzIwMEY0
OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gX1dLUHJldmlld0VsZW1lbnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTkzOTVFNjhCMUJGMkMzNTIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8u
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tQcmV2aWV3RWxl
bWVudEluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzOTVFNjhEMUJGNDEw
RkQwMEY0OUJDRSAvKiBfV0tFbGVtZW50SW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IF9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNFIC8qIFdLUHJldmlld0VsZW1l
bnRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJldmlld0VsZW1l
bnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOTVFNjhCMUJGMkMzNTIw
MEY0OUJDRSAvKiBXS1ByZXZpZXdFbGVtZW50SW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdLUHJldmlld0VsZW1lbnRJbmZvLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5Mzk1RTY4RDFCRjQxMEZEMDBGNDlCQ0UgLyogV0tFbGVtZW50SW5m
b0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRWxlbWVudElu
Zm9JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlBRTc2NTEzMTZF
OTlDMDBBRTA2QTYgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVBcmd1bWVudENvZGVycy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUY0MDFCMTlGQjBCQkMwMDJCMkI0MiAvKiBXS0FjdGlv
bk1lbnVUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FjdGlvbk1l
bnVUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0EyNTNFQzFDOTIyRTFF
MDBGOUY2OEQgLyogX1dLUHJldmlld0FjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBfV0tQcmV2aWV3QWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTkzQTI1M0VFMUM5MjJFOEUwMEY5RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9uLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLUHJldmlld0FjdGlvbi5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNBMjUzRjIxQzkyNDExMjAwRjlGNjhEIC8qIFdL
UHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNBMjUzRjQxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmll
d0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMjUzRUMxQzkyMkUxRTAwRjlGNjhEIC8qIFdLUHJl
dmlld0FjdGlvbkl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmV2
aWV3QWN0aW9uSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EyNTNFRTFD
OTIyRThFMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLUHJldmlld0FjdGlvbkl0ZW0ubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTI1M0YyMUM5MjQxMTIwMEY5RjY4RCAvKiBXS1ByZXZp
ZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzQTI1M0Y0MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVt
SWRlbnRpZmllcnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
S1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzQTg4QjJFMUJDNkU5OEYwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkhpdFRlc3RSZXN1
bHREYXRhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEIzMTFCQzZFOUMw
MDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViSGl0VGVzdFJlc3VsdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNBODhCMzQxQkM2RUFCQTAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRh
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkhpdFRlc3RSZXN1
bHREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5NjcsOSArNDk2Nyw2
IEBACiAJCQkJMzc5QTg3MzgxOEJCRkUwRjAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb24uaCAq
LywKIAkJCQkzNzlBODczNzE4QkJGRTBGMDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbi5tbSAq
LywKIAkJCQkzNzlBODczQjE4QkJGRjA3MDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbkludGVy
bmFsLmggKi8sCi0JCQkJMUE1NzA0RjAxQkUwMTczRjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZv
LmggKi8sCi0JCQkJMUE1NzA0RUYxQkUwMTczRjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZvLm1t
ICovLAotCQkJCTkzOTVFNjhEMUJGNDEwRkQwMEY0OUJDRSAvKiBfV0tFbGVtZW50SW5mb0ludGVy
bmFsLmggKi8sCiAJCQkJMUFEMDFCQzcxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3Zl
cnlBdHRlbXB0aW5nLmggKi8sCiAJCQkJMUFEMDFCQzYxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vy
cm9yUmVjb3ZlcnlBdHRlbXB0aW5nLm1tICovLAogCQkJCTAwNUQxNThFMThFNEM0RUIwMDczNDYx
OSAvKiBfV0tGaW5kRGVsZWdhdGUuaCAqLywKQEAgLTQ5ODAsMTIgKzQ5NzcsNiBAQAogCQkJCTM3
QTY0RTU0MThGMzhFM0MwMEVCMzBGMSAvKiBfV0tJbnB1dERlbGVnYXRlLmggKi8sCiAJCQkJMkQ3
OTBBOUMxQUQ3MDUwRDAwQUI5MEIzIC8qIF9XS0xheW91dE1vZGUuaCAqLywKIAkJCQk5MzIzNjEx
RDFCMDE1REE4MDBGQTkyMzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmggKi8sCi0JCQkJ
OTNBMjUzRUMxQzkyMkUxRTAwRjlGNjhEIC8qIF9XS1ByZXZpZXdBY3Rpb24uaCAqLywKLQkJCQk5
M0EyNTNFRTFDOTIyRThFMDBGOUY2OEQgLyogX1dLUHJldmlld0FjdGlvbi5tbSAqLywKLQkJCQk5
MzczNUVCQTFDOTI5ODYzMDAzMzZGQTcgLyogX1dLUHJldmlld0FjdGlvbkludGVybmFsLmggKi8s
Ci0JCQkJOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5o
ICovLAotCQkJCTkzOTVFNjhCMUJGMkMzNTIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVudElu
Zm8ubW0gKi8sCi0JCQkJOTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIF9XS1ByZXZpZXdFbGVt
ZW50SW5mb0ludGVybmFsLmggKi8sCiAJCQkJMUE0M0U4MjgxODhGM0NEQzAwOUU0RDMwIC8qIF9X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTFBNDNFODI3MTg4RjNDREMwMDlF
NEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gKi8sCiAJCQkJN0M4OUQyRDYx
QTZDNkJFNjAwM0E1RkRFIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbkludGVybmFsLmgg
Ki8sCkBAIC01MDI1LDYgKzUwMTYsOSBAQAogCQkJCTM3QzRDMDg0MTgxNDlDNUIwMDM2ODhCOSAv
KiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0ubW0gKi8sCiAJCQkJMzdDNEMwODgxODE0OUYyMzAwMzY4
OEI5IC8qIFdLQmFja0ZvcndhcmRMaXN0SXRlbUludGVybmFsLmggKi8sCiAJCQkJMUE5RjI4MTAx
OTU4RjQ3ODAwOENBQzcyIC8qIFdLQmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oICovLAorCQkJCTFB
NTcwNEYwMUJFMDE3M0YwMDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZvLmggKi8sCisJCQkJMUE1NzA0
RUYxQkUwMTczRjAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8ubW0gKi8sCisJCQkJOTM5NUU2OEQx
QkY0MTBGRDAwRjQ5QkNFIC8qIFdLRWxlbWVudEluZm9JbnRlcm5hbC5oICovLAogCQkJCTFBRjQ1
OTJEMTk0NjRCMjAwMEY5RDRBMiAvKiBXS0Vycm9yLmggKi8sCiAJCQkJMUFGNDU5MkMxOTQ2NEIy
MDAwRjlENEEyIC8qIFdLRXJyb3IubW0gKi8sCiAJCQkJMUEyRDI1MkExOTQ2ODhGRDAwNDUzN0Iw
IC8qIFdLRXJyb3JJbnRlcm5hbC5oICovLApAQCAtNTA1NCw4ICs1MDQ4LDE0IEBACiAJCQkJMUFG
REQzMTgxODkxQ0ExMjAwMTUzOTcwIC8qIFdLUHJlZmVyZW5jZXMubW0gKi8sCiAJCQkJMUEzQzg4
N0YxOEE1QUJBRTAwQzRDOTYyIC8qIFdLUHJlZmVyZW5jZXNJbnRlcm5hbC5oICovLAogCQkJCTdD
OEVCMTE2MThEQjZBMTkwMDc5MTdDMiAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovLAotCQkJ
CTkzQTI1M0YyMUM5MjQxMTIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1By
aXZhdGUuaCAqLywKLQkJCQk5M0EyNTNGNDFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0
aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tICovLAorCQkJCTkzQTI1M0VDMUM5MjJFMUUwMEY5RjY4
RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtLmggKi8sCisJCQkJOTNBMjUzRUUxQzkyMkU4RTAwRjlG
NjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW0ubW0gKi8sCisJCQkJOTM3MzVFQkExQzkyOTg2MzAw
MzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oICovLAorCQkJCTkzQTI1M0Yy
MUM5MjQxMTIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaCAqLywK
KwkJCQk5M0EyNTNGNDFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50
aWZpZXJzLm1tICovLAorCQkJCTkzOTVFNjg5MUJGMkMzMzIwMEY0OUJDRSAvKiBXS1ByZXZpZXdF
bGVtZW50SW5mby5oICovLAorCQkJCTkzOTVFNjhCMUJGMkMzNTIwMEY0OUJDRSAvKiBXS1ByZXZp
ZXdFbGVtZW50SW5mby5tbSAqLywKKwkJCQk5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogV0tQ
cmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oICovLAogCQkJCTFBMTU4NDE4MTg5MDQ0RjUwMDE3
NjE2QyAvKiBXS1Byb2Nlc3NQb29sLmggKi8sCiAJCQkJMUExNTg0MTcxODkwNDRGNTAwMTc2MTZD
IC8qIFdLUHJvY2Vzc1Bvb2wubW0gKi8sCiAJCQkJMUEzQ0MxNjgxODkwN0VCMDAwMUU2RUQ4IC8q
IFdLUHJvY2Vzc1Bvb2xJbnRlcm5hbC5oICovLApAQCAtNzE0NSw3ICs3MTQ1LDcgQEAKIAkJCQkz
NzlBODczQTE4QkJGRTBGMDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzc5QTg3M0MxOEJCRkYwNzAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb25JbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTkwRDI4QkIxQzY1MzlEMzAwOTg2OTc3IC8qIEF1
dG9tYXRpb25TZXNzaW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQkxQTU3MDRGMjFCRTAx
NzQwMDA4NzRBRjEgLyogX1dLRWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTFBNTcw
NEYyMUJFMDE3NDAwMDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUQwMUJDOTE5MDVEMzdFMDBDOUM0NUYgLyogX1dLRXJyb3JSZWNvdmVyeUF0dGVtcHRpbmcu
aCBpbiBIZWFkZXJzICovLAogCQkJCTAwNUQxNThGMThFNEM0RUIwMDczNDYxOSAvKiBfV0tGaW5k
RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QTVFQkJDMUM3QkE0M0UwMEI5Q0E2OSAv
KiBXS0ZyYW1lSGFuZGxlUmVmLmggaW4gSGVhZGVycyAqLywKQEAgLTcyMDQsNyArNzIwNCw3IEBA
CiAJCQkJN0MxQkEzM0UxQTRBMEU2MDAwNDNFMjQ5IC8qIEFQSURpY3Rpb25hcnkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFGN0QzNkMxMThEQTUxM0YwMEQ5RDY1OSAvKiBBUElEb3dubG9hZENsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2QTRBNUQxMjBBMkNDRDAwQzA1QjdGIC8qIEFQSUVy
cm9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk5Mzk1RTY4RTFCRjQxMEZEMDBGNDlCQ0UgLyogX1dL
RWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5NUU2OEUxQkY0MTBG
RDAwRjQ5QkNFIC8qIFdLRWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDBCOTY2MTYxOEUyNENCQTAwQ0UxRjg4IC8qIEFQSUZpbmRDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTJERDY3QTJFMUJEODE5NzMwMDUzQjI1MSAvKiBBUElGaW5kTWF0Y2hlc0NsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzdFMjVENkUxOEZERTVENjAwNUQzQTAwIC8qIEFQSUZvcm1D
bGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtNzM3MywxNCArNzM3MywxNCBAQAogCQkJCTFBQkMz
REY2MTg5OUU0MzcwMDRGMDYyNiAvKiBOYXZpZ2F0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBNkZCQTJBMTFFNjg2MjcwMERCMTM3MSAvKiBOZXRzY2FwZUJyb3dzZXJGdW5jcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTkwRDI4QUIxQzY0MjBDNjAwOTg2OTc3IC8qIF9XS0F1dG9tYXRp
b25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQk5MzczNUVCQjFDOTI5ODYzMDAzMzZGQTcg
LyogX1dLUHJldmlld0FjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzczNUVC
QjFDOTI5ODYzMDAzMzZGQTcgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUUyODY4MDFDN0Y5MkMwMDA2OUFDNEYgLyogX1dLV2Vic2l0ZURhdGFT
aXplSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNkZCRDI4MTFFNjlCQzIwMERCMTM3
MSAvKiBOZXRzY2FwZVBsdWdpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTlDNTYxMkI4MTZD
RjAwOEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9kdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUE1ODg5MjExRUU3MDQwMDA2MUI4ODIgLyogTmV0c2NhcGVQbHVnaW5TdHJlYW0uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUxNzk4QzdBMTZFNjgxODgwMDI0MDEzOSAvKiBOZXR3b3JrQmxvYlJlZ2lz
dHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQzNkVDQzFBMEQwNDBCMDBFQUQyMDQgLyogTmV0
d29ya0NhY2hlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5Mzk1RTY4QTFCRjJDMzMyMDBGNDlCQ0Ug
LyogX1dLUHJldmlld0VsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk5Mzk1RTY4QTFC
RjJDMzMyMDBGNDlCQ0UgLyogV0tQcmV2aWV3RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAog
CQkJCUU0OUQ0MEQ3MUFEM0ZCMTcwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ4OUQyOEExQTBBMkRCODAwNzhDMDZBIC8qIE5ldHdvcmtD
YWNoZUNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg5RDI4QzFBMEEyREI4MDA3OEMwNkEg
LyogTmV0d29ya0NhY2hlQ29kZXJzLmggaW4gSGVhZGVycyAqLywKQEAgLTc0MDcsNyArNzQwNyw3
IEBACiAJCQkJNTE2MzE5OTUxNjI4OUE2MzAwRTIyRjAwIC8qIE5ldHdvcmtQcm9jZXNzTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNEE5NTRBMTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3
b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3OTU1
NkUxNjI4NzdCMzAwRkE0M0I2IC8qIE5ldHdvcmtQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICov
LAotCQkJCTkzQTI1M0VEMUM5MjJFMUUwMEY5RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5M0EyNTNFRDFDOTIyRTFFMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0
aW9uSXRlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEzQTE2M0QxNjMwODhGNjAwNUQ3RDIyIC8q
IE5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk1NUE2
RjUxQzc5ODZFMDAwRUI2QTkzIC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTFGRDE4QjYxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC03NzI2LDcgKzc3MjYsNyBAQAogCQkJCTkzOUY0
MDFDMTlGQjBCQkMwMDJCMkI0MiAvKiBXS0FjdGlvbk1lbnVUeXBlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDQjRFNDgxOEJCRTA0NDAwMEZDRkM5IC8qIFdLQWN0aW9uU2hlZXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGQ0I0RTRBMThCQkUwNDQwMDBGQ0ZDOSAvKiBXS0FjdGlvblNoZWV0QXNz
aXN0YW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk5MzkxMDc0RjFCRjZCQzY1MDA4QzE3QUQgLyog
X1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOTEw
NzRGMUJGNkJDNjUwMDhDMTdBRCAvKiBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNUZBMUVEMzE4RTEwNjIyMDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91
dGVQaWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRERCMzJEMTI0RUMyRTEwMDQ4RDEzQyAv
KiBXS0FQSUNhc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkUzNEU1MTMwQjREMDUwMEFCRDE5
QSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTgwMzQs
NyArODAzNCw3IEBACiAJCQkJNzVBOEQyQzgxODdDQ0ZBQjAwQzM5QzlFIC8qIFdLV2Vic2l0ZURh
dGFTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzVBOEQyRDYxODdEMUMwRTAwQzM5QzlFIC8q
IFdLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU3MTA5
RjFBQkEwMDI3MDAyRkFCQkUgLyogV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmggaW4gSGVhZGVycyAq
LywKLQkJCQk5M0EyNTNGMzFDOTI0MTEyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSWRlbnRp
ZmllcnNQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EyNTNGMzFDOTI0MTEyMDBGOUY2
OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTNDQzE2NzE4OTA2QUNGMDAxRTZFRDggLyogV0tXZWJWaWV3LmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQURGNTkxQjE4OTA1MjhFMDA0M0MxNDUgLyogV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ3QUFGRDYxOEM5NTZBRjAwQTdBQ0Q0IC8qIFdLV2ViVmll
d0NvbmZpZ3VyYXRpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC04NjM4LDcgKzg2Mzgs
NyBAQAogCQkJCTk5NTVBNkY0MUM3OTg2REMwMEVCNkE5MyAvKiBJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFBNEZFNUIxOERDRTlGQTAwQjVFQThB
IC8qIF9XS0Rvd25sb2FkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5QTg3MzkxOEJCRkUwRjAw
NTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb24ubW0gaW4gU291cmNlcyAqLywKLQkJCQkxQTU3MDRG
MTFCRTAxNzNGMDA4NzRBRjEgLyogX1dLRWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLywKKwkJ
CQkxQTU3MDRGMTFCRTAxNzNGMDA4NzRBRjEgLyogV0tFbGVtZW50SW5mby5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBRDAxQkM4MTkwNUQzN0UwMEM5QzQ1RiAvKiBfV0tFcnJvclJlY292ZXJ5QXR0
ZW1wdGluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3M0QxMjIyMThBNDczMDEwMDY2RDlDQyAv
KiBfV0tGcmFtZUhhbmRsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzQTg4QjM5MUJDNzBGM0Yw
MEFCQTVDMiAvKiBfV0tIaXRUZXN0UmVzdWx0Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC04ODI4LDcg
Kzg4MjgsNyBAQAogCQkJCUU0ODlEMjhCMUEwQTJEQjgwMDc4QzA2QSAvKiBOZXR3b3JrQ2FjaGVD
b2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ3RDFFOTgxQjA2NDlGQjAwMjY3NkE4IC8q
IE5ldHdvcmtDYWNoZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQyRTA2MTQxQUE3NUI3
MDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZURhdGFDb2NvYS5tbSBpbiBTb3VyY2VzICovLAotCQkJ
CTkzQTI1M0Y1MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1By
aXZhdGUubW0gaW4gU291cmNlcyAqLywKKwkJCQk5M0EyNTNGNTFDOTI0MTMyMDBGOUY2OEQgLyog
V0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ4
OUQyOEQxQTBBMkRCODAwNzhDMDZBIC8qIE5ldHdvcmtDYWNoZURlY29kZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRTQ4OUQyOEYxQTBBMkRCODAwNzhDMDZBIC8qIE5ldHdvcmtDYWNoZUVuY29k
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQxM0Y1OUYxQUMxQUY5RDAwMzQ1MzYwIC8qIE5l
dHdvcmtDYWNoZUVudHJ5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtODkzMSw3ICs4OTMxLDcgQEAK
IAkJCQlFMUNDMUI5MTEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvTWFjLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzc3MTZBNUExOTVCOTEwNTAwRUU4QjFCIC8qIFByb2Nlc3NBc3NlcnRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZGOTUzNjQxOEZGNTgzQzAwMURCMkVGIC8qIFByb2Nl
c3NBc3NlcnRpb25JT1MubW0gaW4gU291cmNlcyAqLywKLQkJCQk5Mzk1RTY4QzFCRjJDMzUyMDBG
NDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTM5
NUU2OEMxQkYyQzM1MjAwRjQ5QkNFIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQzU1RjkxNzAxQzU5NUY2MzAwMjlFOTJEIC8qIERhdGFEZXRlY3Rpb25SZXN1
bHQubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUUxMTdGNjExREJCMzA5MDA5ODE2MTUgLyogUHJv
Y2Vzc0xhdW5jaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQjFEMTEyRjVGRTYwMDMz
N0JBQiAvKiBQcm9jZXNzTGF1bmNoZXJNYWMubW0gaW4gU291cmNlcyAqLywKQEAgLTkzMDQsNyAr
OTMwNCw3IEBACiAJCQkJQ0RDQTg1QzgxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzU0Q0MxMzEyRDY3NEVFMDA1
QzY3QjAgLyogV0tHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMw
NkY0NEYxMkRCREYzRjAwMkQ3OERFIC8qIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQk5M0EyNTNFRjFDOTIyRThFMDBGOUY2OEQgLyogX1dLUHJl
dmlld0FjdGlvbi5tbSBpbiBTb3VyY2VzICovLAorCQkJCTkzQTI1M0VGMUM5MjJFOEUwMEY5RjY4
RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwRTYxOTkx
MkQ2Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwNzI5N0ZBMjFDMTg2QURCMDAzRjA3MzUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDQjRFNTAxOEJCRTA0NDAwMEZDRkM5IC8q
IFdLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBpbiBTb3VyY2VzICovLAo=
</data>
<flag name="review"
          id="298326"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273849</attachid>
            <date>2016-03-12 14:14:55 -0800</date>
            <delta_ts>2016-03-12 14:25:22 -0800</delta_ts>
            <desc>Patch that addresses Dan&apos;s comments</desc>
            <filename>for-review-api.txt</filename>
            <type>text/plain</type>
            <size>95630</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY1IEBACisyMDE2LTAzLTEyICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHByZXZpZXcgaW5saW5lIG5h
dmlnYXRpb24gd29yayBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NTM4MworICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisgICAgICAgIHJk
YXI6Ly9wcm9ibGVtLzI1MTE3OTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2l0aCB0aGlzIHBhdGNoOgorICAgICAgICBfV0tFbGVtZW50SW5mbyBp
cyBub3cgV0tFbGVtZW50SW5mbyBpbiBmaWxlIGFuZCBjbGFzcyBuYW1lcy4gSGVhZGVyIGlzIG5v
dyAKKyAgICAgICAgcHVibGljLgorCisgICAgICAgIF9XS1ByZXZpZXdFbGVtZW50SW5mbyBpcyBu
b3cgV0tQcmV2aWV3RWxlbWVudEluZm8gaW4gZmlsZSBhbmQgY2xhc3MgbmFtZXMuIAorICAgICAg
ICBIZWFkZXIgaXMgbm93IHB1YmxpYy4KKworICAgICAgICBfV0tQcmV2aWV3QWN0aW9uIGlzIG5v
dyBXS1ByZXZpZXdBY3Rpb25JdGVtIGluIGZpbGVuYW1lcyAoaGVhZGVyIGlzIG5vdyAKKyAgICAg
ICAgcHVibGljKSwgdGhlIHByb3RvY29sIF9XS1ByZXZpZXdBY3Rpb25JdGVtIGlzIG5vdyBXS1By
ZXZpZXdBY3Rpb25JdGVtLCBhbmQgCisgICAgICAgIHRoZSBfV0tQcmV2aWV3QWN0aW9uIGNsYXNz
IGlzIG5vdyBXS1ByZXZpZXdBY3Rpb24uIChUaGUgaW50ZXJuYWwgaGVhZGVyIGlzIAorICAgICAg
ICBzdGlsbCBwcm9qZWN0LCBvZiBjb3Vyc2UuKQorICAgICAgICBhbmQKKyAgICAgICAgV0tQcmV2
aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmgvbW0gaXMgbm93CisgICAgICAgIFdLUHJldmll
d0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oL21tIGFuZCBhbGwgdGhlIHRoZSBpZGVudGlmaWVycyBo
YXZlIGJlZW4gCisgICAgICAgIHVwZGF0ZWQuIEhlYWRlciBpcyBub3cgcHVibGljLgorCisgICAg
ICAgICogU2hhcmVkL0FQSS9Db2NvYS9XZWJLaXQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLRWxlbWVudEluZm8uaDogQ29waWVkIGZyb20gVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tFbGVtZW50SW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50
SW5mby5tbTogQ29waWVkIGZyb20gVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5t
bS4KKyAgICAgICAgKC1bV0tFbGVtZW50SW5mbyBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICgt
W19XS0VsZW1lbnRJbmZvIGNvcHlXaXRoWm9uZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm9JbnRlcm5hbC5oOiBDb3BpZWQgZnJvbSBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSWRlbnRp
ZmllcnNQcml2YXRlLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmV2aWV3QWN0aW9uSXRlbS5oOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1ByZXZpZXdBY3Rpb24uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmll
d0FjdGlvbkl0ZW0ubW06IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmll
d0FjdGlvbi5tbS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlv
bkl0ZW1JZGVudGlmaWVycy5oOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
dmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tOiBDb3BpZWQgZnJvbSBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5tbS4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5o
OiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdBY3Rpb25JbnRlcm5h
bC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8u
aDogQ29waWVkIGZyb20gVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8u
aC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLm1t
OiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5t
bS4KKyAgICAgICAgKC1bV0tQcmV2aWV3RWxlbWVudEluZm8gX2luaXRXaXRoTGlua1VSTDpdKToK
KyAgICAgICAgKC1bX1dLUHJldmlld0VsZW1lbnRJbmZvIF9pbml0V2l0aExpbmtVUkw6XSk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5m
b0ludGVybmFsLmg6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlE
ZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ29udGV4dE1lbnVFbGVt
ZW50SW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8u
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZv
Lm1tOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudElu
Zm9JbnRlcm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UHJldmlld0FjdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJldmlld0FjdGlvbi5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmg6IFJlbW92ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8ubW06IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm9JbnRl
cm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9pbnRlcmFjdGlvblNob3Vs
ZEJlZ2luRnJvbVByZXZpZXdJdGVtQ29udHJvbGxlcjpmb3JQb3NpdGlvbjpdKToKKyAgICAgICAg
KHByZXZpZXdJZGVudGlmaWVyRm9yRWxlbWVudEFjdGlvbik6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX3ByZXNlbnRlZFZpZXdDb250cm9sbGVyRm9yUHJldmlld0l0ZW1Db250cm9sbGVyOl0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI6Y29tbWl0
UHJldmlldzpdKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKIDIwMTYtMDMtMTIgIEplcmVteSBIdWRkbGVzdG9uIFNlcXVvaWEgIDxqZXJlbXlodUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0dUS11bTWFjXSBVc2UgRFlMRF9MSUJSQVJZX1BBVEggb24gT1NY
IHJhdGhlciB0aGVuIExEX0xJQlJBUllfUEFUSApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9Db2NvYS9XZWJLaXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0NvY29hL1dlYktpdC5oCShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL0NvY29hL1dlYktpdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBA
CiAKICNpbXBvcnQgPFdlYktpdC9XS0JhY2tGb3J3YXJkTGlzdC5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRWxlbWVudEluZm8u
aD4KICNpbXBvcnQgPFdlYktpdC9XS0Vycm9yLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0
aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tGcmFtZUluZm8uaD4KQEAgLTMzLDYgKzM0LDkgQEAK
ICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLTmF2aWdhdGlvblJlc3BvbnNlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlcy5o
PgorI2ltcG9ydCA8V2ViS2l0L1dLUHJldmlld0FjdGlvbkl0ZW0uaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1By
ZXZpZXdFbGVtZW50SW5mby5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2wuaD4KICNp
bXBvcnQgPFdlYktpdC9XS1NjcmlwdE1lc3NhZ2UuaD4KICNpbXBvcnQgPFdlYktpdC9XS1Njcmlw
dE1lc3NhZ2VIYW5kbGVyLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLRWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm8uaAkocmV2aXNpb24gMTk4MDY5KQkoZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLmg6MTk4MDY5KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktp
dC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKK05TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCisKK1dLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQor
QGludGVyZmFjZSBfV0tFbGVtZW50SW5mbyA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CisKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKmxpbmtVUkw7CisKK0BlbmQKKworTlNf
QVNTVU1FX05PTk5VTExfRU5ECisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBX
S19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSkKLUBpbnRlcmZhY2UgX1dL
RWxlbWVudEluZm8gOiBOU09iamVjdCA8TlNDb3B5aW5nPgorQGludGVyZmFjZSBXS0VsZW1lbnRJ
bmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBOU1VSTCAqbGlua1VSTDsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0VsZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5tbQkocmV2aXNpb24gMTk4MDY5KQkoZnJv
bSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLm1tOjE5
ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5m
by5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisjaW1wb3J0ICJfV0tFbGVtZW50SW5mb0ludGVybmFsLmgiCisKKyNpZiBX
S19BUElfRU5BQkxFRAorCitAaW1wbGVtZW50YXRpb24gX1dLRWxlbWVudEluZm8KKworLSAoaWQp
Y29weVdpdGhab25lOihOU1pvbmUgKil6b25lCit7CisgICAgcmV0dXJuIFtzZWxmIHJldGFpbl07
Cit9CisKKy0gKE5TVVJMICopbGlua1VSTAoreworICAgIHJldHVybiBfbGlua1VSTC5nZXQoKTsK
K30KKworQGVuZAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm8ubW0JKHdvcmtpbmcgY29weSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjQsMTEgKzI0LDExIEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1w
b3J0ICJfV0tFbGVtZW50SW5mb0ludGVybmFsLmgiCisjaW1wb3J0ICJXS0VsZW1lbnRJbmZvSW50
ZXJuYWwuaCIKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLUBpbXBsZW1lbnRhdGlvbiBfV0tFbGVt
ZW50SW5mbworQGltcGxlbWVudGF0aW9uIFdLRWxlbWVudEluZm8KIAogLSAoaWQpY29weVdpdGha
b25lOihOU1pvbmUgKil6b25lCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mb0ludGVybmFsLmgJKHJldmlzaW9u
IDE5ODA2OSkJKGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVt
ZW50SW5mb0ludGVybmFsLmg6MTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiX1dLRWxlbWVudEluZm8uaCIKKworI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworQGludGVyZmFjZSBf
V0tFbGVtZW50SW5mbyAoKSB7CitAcGFja2FnZQorICAgIFJldGFpblB0cjxOU1VSTD4gX2xpbmtV
Ukw7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5m
b0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tFbGVtZW50SW5mb0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDEz
ICsyMywxMyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNp
bXBvcnQgIl9XS0VsZW1lbnRJbmZvLmgiCisjaW1wb3J0ICJXS0VsZW1lbnRJbmZvLmgiCiAKICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLUBpbnRlcmZh
Y2UgX1dLRWxlbWVudEluZm8gKCkgeworQGludGVyZmFjZSBXS0VsZW1lbnRJbmZvICgpIHsKIEBw
YWNrYWdlCiAgICAgUmV0YWluUHRyPE5TVVJMPiBfbGlua1VSTDsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaAkocmV2aXNpb24gMTk4MDY5KQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JZGVudGlm
aWVyc1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotCi0jaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+Ci0KLSNpZiBXS19BUElfRU5BQkxF
RAotCi0jaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KLSNpbXBvcnQgPFdlYktpdC9X
S0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oPgotCi1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICog
Y29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJPcGVuIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RC
QSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZp
ZXJBZGRUb1JlYWRpbmdMaXN0IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBP
UlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJDb3B5IFdLX0FW
QUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29u
c3QgX1dLUHJldmlld0lkZW50aWZpZXJTaGFyZSBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEp
OwotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2
YXRlLm1tCShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5tbQkod29ya2luZyBjb3B5
KQpAQCAtMSwzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIldLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oIgotCi0jaWYgV0tfQVBJ
X0VOQUJMRUQKLQotTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllck9wZW4gPSBA
IldLUHJldmlld0lkZW50aWZpZXJPcGVuIjsKLU5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lk
ZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0ID0gQCJXS1ByZXZpZXdJZGVudGlmaWVyQWRkVG9SZWFk
aW5nTGlzdCI7Ci1OU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyQ29weSA9IEAi
V0tQcmV2aWV3SWRlbnRpZmllckNvcHkiOwotTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRl
bnRpZmllclNoYXJlID0gQCJXS1ByZXZpZXdJZGVudGlmaWVyU2hhcmUiOwotCi0jZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRl
bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmV2aWV3QWN0aW9uSXRlbS5oCShyZXZpc2lvbiAxOTgwNjkpCShmcm9tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbi5oOjE5ODA2OSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQv
V0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05F
CisKKyNpbXBvcnQgPFVJS2l0L1VJVmlld0NvbnRyb2xsZXIuaD4KKworV0tfQ0xBU1NfQVZBSUxB
QkxFKE5BLCBXS19JT1NfVEJBKQorQHByb3RvY29sIF9XS1ByZXZpZXdBY3Rpb25JdGVtIDxOU09i
amVjdCwgVUlQcmV2aWV3QWN0aW9uSXRlbT4KKworQHByb3BlcnR5KG5vbmF0b21pYywgY29weSwg
cmVhZG9ubHkpIE5TU3RyaW5nICppZGVudGlmaWVyOworCitAZW5kCisKKyNlbmRpZiAvLyBXS19B
UElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0uaAkod29y
a2luZyBjb3B5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZp
ZXdBY3Rpb25JdGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEwICsyOSwxMCBAQAogCiAjaW1w
b3J0IDxVSUtpdC9VSVZpZXdDb250cm9sbGVyLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShOQSwg
V0tfSU9TX1RCQSkKLUBwcm90b2NvbCBfV0tQcmV2aWV3QWN0aW9uSXRlbSA8TlNPYmplY3QsIFVJ
UHJldmlld0FjdGlvbkl0ZW0+CitXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpCitAcHJvdG9j
b2wgV0tQcmV2aWV3QWN0aW9uSXRlbSA8VUlQcmV2aWV3QWN0aW9uSXRlbT4KIAotQHByb3BlcnR5
KG5vbmF0b21pYywgY29weSwgcmVhZG9ubHkpIE5TU3RyaW5nICppZGVudGlmaWVyOworQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHksIHJlYWRvbmx5KSBOU1N0cmluZyAqaWRlbnRpZmllcjsKIAog
QGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmll
d0FjdGlvbkl0ZW0ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLm1tCShyZXZpc2lvbiAxOTgwNjkpCShmcm9tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbi5tbToxOTgw
NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlv
bkl0ZW0ubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiX1dLUHJldmlld0FjdGlvbkludGVybmFsLmgiCisK
KyNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCisKK0BpbXBsZW1lbnRhdGlv
biBfV0tQcmV2aWV3QWN0aW9uCitAc3ludGhlc2l6ZSBpZGVudGlmaWVyPV9pZGVudGlmaWVyOwor
CisrIChpbnN0YW5jZXR5cGUpYWN0aW9uV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRp
ZmllciB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBzdHlsZTooVUlQcmV2aWV3QWN0aW9uU3R5bGUp
c3R5bGUgaGFuZGxlcjoodm9pZCAoXikoVUlQcmV2aWV3QWN0aW9uICphY3Rpb24sIFVJVmlld0Nv
bnRyb2xsZXIgKnByZXZpZXdWaWV3Q29udHJvbGxlcikpaGFuZGxlcgoreworICAgIF9XS1ByZXZp
ZXdBY3Rpb24gKmFjdGlvbiA9IFtzZWxmIGFjdGlvbldpdGhUaXRsZTp0aXRsZSBzdHlsZTpzdHls
ZSBoYW5kbGVyOmhhbmRsZXJdOworICAgIGFjdGlvbi0+X2lkZW50aWZpZXIgPSBpZGVudGlmaWVy
OworICAgIHJldHVybiBhY3Rpb247Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFC
TEVEICYmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0ubW0JKHdvcmtpbmcg
Y29weSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0
aW9uSXRlbS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQsMTYgKzI0LDE2IEBACiAgKi8KIAogI2lt
cG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCIKKyNp
bXBvcnQgIldLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oIgogCiAjaWYgV0tfQVBJX0VOQUJM
RUQgJiYgVEFSR0VUX09TX0lQSE9ORQogCi1AaW1wbGVtZW50YXRpb24gX1dLUHJldmlld0FjdGlv
bgorQGltcGxlbWVudGF0aW9uIFdLUHJldmlld0FjdGlvbgogQHN5bnRoZXNpemUgaWRlbnRpZmll
cj1faWRlbnRpZmllcjsKIAogKyAoaW5zdGFuY2V0eXBlKWFjdGlvbldpdGhJZGVudGlmaWVyOihO
U1N0cmluZyAqKWlkZW50aWZpZXIgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgc3R5bGU6KFVJUHJl
dmlld0FjdGlvblN0eWxlKXN0eWxlIGhhbmRsZXI6KHZvaWQgKF4pKFVJUHJldmlld0FjdGlvbiAq
YWN0aW9uLCBVSVZpZXdDb250cm9sbGVyICpwcmV2aWV3Vmlld0NvbnRyb2xsZXIpKWhhbmRsZXIK
IHsKLSAgICBfV0tQcmV2aWV3QWN0aW9uICphY3Rpb24gPSBbc2VsZiBhY3Rpb25XaXRoVGl0bGU6
dGl0bGUgc3R5bGU6c3R5bGUgaGFuZGxlcjpoYW5kbGVyXTsKKyAgICBXS1ByZXZpZXdBY3Rpb24g
KmFjdGlvbiA9IFtzZWxmIGFjdGlvbldpdGhUaXRsZTp0aXRsZSBzdHlsZTpzdHlsZSBoYW5kbGVy
OmhhbmRsZXJdOwogICAgIGFjdGlvbi0+X2lkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIHJl
dHVybiBhY3Rpb247CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJz
LmgJKHJldmlzaW9uIDE5ODA2OSkJKGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaDoxOTgwNjkpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlm
aWVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNp
bXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNp
bXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRGVjbGFy
YXRpb25TcGVjaWZpZXJzLmg+CisKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBf
V0tQcmV2aWV3SWRlbnRpZmllck9wZW4gV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKK1dL
X0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckFkZFRv
UmVhZGluZ0xpc3QgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKK1dLX0VYUE9SVCBleHRl
cm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckNvcHkgV0tfQVZBSUxBQkxF
KE5BLCBXS19JT1NfVEJBKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQ
cmV2aWV3SWRlbnRpZmllclNoYXJlIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CisKKyNl
bmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdB
Y3Rpb25JdGVtSWRlbnRpZmllcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oCSh3b3JraW5n
IGNvcHkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0Fj
dGlvbkl0ZW1JZGVudGlmaWVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMSArMjksMTAgQEAK
ICNpZiBXS19BUElfRU5BQkxFRAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4K
LSNpbXBvcnQgPFdlYktpdC9XS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oPgogCi1XS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJPcGVuIFdLX0FWQUlM
QUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3Qg
X1dLUHJldmlld0lkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0IFdLX0FWQUlMQUJMRShOQSwgV0tf
SU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lk
ZW50aWZpZXJDb3B5IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0
ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJTaGFyZSBXS19BVkFJTEFC
TEUoTkEsIFdLX0lPU19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3
QWN0aW9uSXRlbUlkZW50aWZpZXJPcGVuIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CitX
S19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckFk
ZFRvUmVhZGluZ0xpc3QgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKK1dLX0VYVEVSTiBO
U1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyQ29weSBXS19BVkFJ
TEFCTEUoTkEsIFdLX0lPU19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tQcmV2
aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJTaGFyZSBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEp
OwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1t
CShyZXZpc2lvbiAxOTgwNjkpCShmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tOjE5ODA2OSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZp
ZXJzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2
YXRlLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCitOU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZp
ZXdJZGVudGlmaWVyT3BlbiA9IEAiV0tQcmV2aWV3SWRlbnRpZmllck9wZW4iOworTlNTdHJpbmcg
KiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QgPSBAIldLUHJldmll
d0lkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0IjsKK05TU3RyaW5nICogY29uc3QgX1dLUHJldmll
d0lkZW50aWZpZXJDb3B5ID0gQCJXS1ByZXZpZXdJZGVudGlmaWVyQ29weSI7CitOU1N0cmluZyAq
IGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyU2hhcmUgPSBAIldLUHJldmlld0lkZW50aWZpZXJT
aGFyZSI7CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmll
cnMubW0JKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0y
NCwxMyArMjQsMTMgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV0tQ
cmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmgiCisjaW5jbHVkZSAiV0tQcmV2aWV3QWN0
aW9uSXRlbUlkZW50aWZpZXJzLmgiCiAKICNpZiBXS19BUElfRU5BQkxFRAogCi1OU1N0cmluZyAq
IGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyT3BlbiA9IEAiV0tQcmV2aWV3SWRlbnRpZmllck9w
ZW4iOwotTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckFkZFRvUmVhZGluZ0xp
c3QgPSBAIldLUHJldmlld0lkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0IjsKLU5TU3RyaW5nICog
Y29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJDb3B5ID0gQCJXS1ByZXZpZXdJZGVudGlmaWVyQ29w
eSI7Ci1OU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyU2hhcmUgPSBAIldLUHJl
dmlld0lkZW50aWZpZXJTaGFyZSI7CitOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0
ZW1JZGVudGlmaWVyT3BlbiA9IEAiV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJPcGVuIjsK
K05TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJBZGRUb1JlYWRp
bmdMaXN0ID0gQCJXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3Qi
OworTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckNvcHkgPSBA
IldLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyQ29weSI7CitOU1N0cmluZyAqIGNvbnN0IFdL
UHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyU2hhcmUgPSBAIldLUHJldmlld0FjdGlvbkl0ZW1J
ZGVudGlmaWVyU2hhcmUiOwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSW50
ZXJuYWwuaAkocmV2aXNpb24gMTk4MDY5KQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oOjE5ODA2OSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIldL
Rm91bmRhdGlvbi5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQor
CisjaW1wb3J0ICJfV0tQcmV2aWV3QWN0aW9uLmgiCisKK0BpbnRlcmZhY2UgX1dLUHJldmlld0Fj
dGlvbiA6IFVJUHJldmlld0FjdGlvbiA8TlNDb3B5aW5nLCBfV0tQcmV2aWV3QWN0aW9uSXRlbT4K
KworKyAoaW5zdGFuY2V0eXBlKWFjdGlvbldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50
aWZpZXIgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgc3R5bGU6KFVJUHJldmlld0FjdGlvblN0eWxl
KXN0eWxlIGhhbmRsZXI6KHZvaWQgKF4pKFVJUHJldmlld0FjdGlvbiAqYWN0aW9uLCBVSVZpZXdD
b250cm9sbGVyICpwcmV2aWV3Vmlld0NvbnRyb2xsZXIpKWhhbmRsZXI7CisKK0BlbmQKKworI2Vu
ZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZp
ZXdBY3Rpb25JdGVtSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsOSArMjcsOSBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VU
X09TX0lQSE9ORQogCi0jaW1wb3J0ICJfV0tQcmV2aWV3QWN0aW9uLmgiCisjaW1wb3J0ICJXS1By
ZXZpZXdBY3Rpb25JdGVtLmgiCiAKLUBpbnRlcmZhY2UgX1dLUHJldmlld0FjdGlvbiA6IFVJUHJl
dmlld0FjdGlvbiA8TlNDb3B5aW5nLCBfV0tQcmV2aWV3QWN0aW9uSXRlbT4KK0BpbnRlcmZhY2Ug
V0tQcmV2aWV3QWN0aW9uIDogVUlQcmV2aWV3QWN0aW9uIDxOU0NvcHlpbmcsIFdLUHJldmlld0Fj
dGlvbkl0ZW0+CiAKICsgKGluc3RhbmNldHlwZSlhY3Rpb25XaXRoSWRlbnRpZmllcjooTlNTdHJp
bmcgKilpZGVudGlmaWVyIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIHN0eWxlOihVSVByZXZpZXdB
Y3Rpb25TdHlsZSlzdHlsZSBoYW5kbGVyOih2b2lkICheKShVSVByZXZpZXdBY3Rpb24gKmFjdGlv
biwgVUlWaWV3Q29udHJvbGxlciAqcHJldmlld1ZpZXdDb250cm9sbGVyKSloYW5kbGVyOwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJ
bmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZXZpZXdFbGVtZW50SW5mby5oCShyZXZpc2lvbiAxOTgwNjkpCShmcm9tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmg6MTk4MDY5KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5m
by5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRf
T1NfSVBIT05FCisKKyNpbXBvcnQgPFdlYktpdC9fV0tFbGVtZW50SW5mby5oPgorCitOU19BU1NV
TUVfTk9OTlVMTF9CRUdJTgorCitXS19DTEFTU19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpCitA
aW50ZXJmYWNlIF9XS1ByZXZpZXdFbGVtZW50SW5mbyA6IF9XS0VsZW1lbnRJbmZvCisKK0BlbmQK
KworTlNfQVNTVU1FX05PTk5VTExfRU5ECisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8u
aAkod29ya2luZyBjb3B5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZXZpZXdFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMiArMjcsMTIgQEAK
IAogI2lmIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKIAotI2ltcG9ydCA8V2Vi
S2l0L19XS0VsZW1lbnRJbmZvLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tFbGVtZW50SW5mby5oPgog
CiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBXS19DTEFTU19BVkFJTEFCTEUoTkEsIFdLX0lP
U19UQkEpCi1AaW50ZXJmYWNlIF9XS1ByZXZpZXdFbGVtZW50SW5mbyA6IF9XS0VsZW1lbnRJbmZv
CitAaW50ZXJmYWNlIFdLUHJldmlld0VsZW1lbnRJbmZvIDogV0tFbGVtZW50SW5mbwogCiBAZW5k
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxl
bWVudEluZm8ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5tbQkocmV2aXNpb24gMTk4MDY5KQkoZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5tbTox
OTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0Vs
ZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIl9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVy
bmFsLmgiCisKKyNpbXBvcnQgIl9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKKyNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKElPUykKKwor
QGltcGxlbWVudGF0aW9uIF9XS1ByZXZpZXdFbGVtZW50SW5mbworCistIChpbnN0YW5jZXR5cGUp
X2luaXRXaXRoTGlua1VSTDooTlNVUkwgKil1cmwKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVy
IGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9saW5rVVJMID0gYWRvcHROUyhb
dXJsIGNvcHldKTsKKworICAgIHJldHVybiBzZWxmOworfQorCitAZW5kCisKKyNlbmRpZgpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5m
by5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJldmlld0VsZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yNCwxNCArMjQsMTQgQEAKICAqLwogCiAjaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQg
Il9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgiCisjaW1wb3J0ICJXS1ByZXZpZXdFbGVt
ZW50SW5mb0ludGVybmFsLmgiCiAKLSNpbXBvcnQgIl9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIK
KyNpbXBvcnQgIldLRWxlbWVudEluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCA8d3RmL1JldGFpblB0
ci5oPgogCiAjaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oSU9TKQogCi1AaW1wbGVtZW50
YXRpb24gX1dLUHJldmlld0VsZW1lbnRJbmZvCitAaW1wbGVtZW50YXRpb24gV0tQcmV2aWV3RWxl
bWVudEluZm8KIAogLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aExpbmtVUkw6KE5TVVJMICopdXJs
CiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkocmV2aXNpb24gMTk4
MDY5KQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdF
bGVtZW50SW5mb0ludGVybmFsLmg6MTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIl9XS1ByZXZpZXdFbGVtZW50
SW5mby5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQorCitAaW50
ZXJmYWNlIF9XS1ByZXZpZXdFbGVtZW50SW5mbyAoKQorCistIChpbnN0YW5jZXR5cGUpX2luaXRX
aXRoTGlua1VSTDooTlNVUkwgKil1cmw7CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFC
TEVECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2luZyBjb3B5
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50
SW5mb0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDExICsyMywxMSBAQAogICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbXBvcnQgIl9XS1ByZXZpZXdF
bGVtZW50SW5mby5oIgorI2ltcG9ydCAiV0tQcmV2aWV3RWxlbWVudEluZm8uaCIKIAogI2lmIFdL
X0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKIAotQGludGVyZmFjZSBfV0tQcmV2aWV3
RWxlbWVudEluZm8gKCkKK0BpbnRlcmZhY2UgV0tQcmV2aWV3RWxlbWVudEluZm8gKCkKIAogLSAo
aW5zdGFuY2V0eXBlKV9pbml0V2l0aExpbmtVUkw6KE5TVVJMICopdXJsOwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgJKHJl
dmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
SURlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDExICsyOCwxMyBAQAogI2lmIFdLX0FQ
SV9FTkFCTEVECiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2ltcG9ydCA8
V2ViS2l0L1dLUHJldmlld0FjdGlvbkl0ZW0uaD4KIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4K
IAogQGNsYXNzIFdLRnJhbWVJbmZvOwogQGNsYXNzIFdLTmF2aWdhdGlvbkFjdGlvbjsKK0BjbGFz
cyBXS1ByZXZpZXdFbGVtZW50SW5mbzsKIEBjbGFzcyBXS1dlYlZpZXdDb25maWd1cmF0aW9uOwog
QGNsYXNzIFdLV2luZG93RmVhdHVyZXM7CiAKQEAgLTExNCw4ICsxMTYsNDUgQEAgTlNfQVNTVU1F
X05PTk5VTExfQkVHSU4KICAqLwogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHJ1bkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6KE5TU3RyaW5nICopcHJvbXB0
IGRlZmF1bHRUZXh0OihudWxsYWJsZSBOU1N0cmluZyAqKWRlZmF1bHRUZXh0IGluaXRpYXRlZEJ5
RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
U3RyaW5nICogV0tfTlVMTEFCTEVfU1BFQ0lGSUVSIHJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXI7
CiAKKyNpZiBUQVJHRVRfT1NfSVBIT05FCisKKy8qISBAYWJzdHJhY3QgQWxsb3dzIHlvdXIgYXBw
IHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0aGUgZ2l2ZW4gZWxlbWVudCBzaG91bGQgc2hv
dyBhIHByZXZpZXcuCisgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBk
ZWxlZ2F0ZSBtZXRob2QuCisgQHBhcmFtIGVsZW1lbnRJbmZvIFRoZSBlbGVtZW50SW5mbyBmb3Ig
dGhlIGVsZW1lbnQgdGhlIHVzZXIgaGFzIHN0YXJ0ZWQgdG91Y2hpbmcuCisgQGRpc2N1c3Npb24g
VG8gZGlzYWJsZSBwcmV2aWV3cyBlbnRpcmVseSBmb3IgdGhlIGdpdmVuIGVsZW1lbnQsIHJldHVy
biBOTy4gUmV0dXJuaW5nIE5PIHdpbGwgcHJldmVudCAKKyB3ZWJWaWV3OnByZXZpZXdpbmdWaWV3
Q29udHJvbGxlckZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlvbnM6IGFuZCB3ZWJWaWV3OmNvbW1pdFBy
ZXZpZXdpbmdWaWV3Q29udHJvbGxlcjoKKyBmcm9tIGJlaW5nIGludm9rZWQuCisgCisgVGhpcyBt
ZXRob2Qgd2lsbCBvbmx5IGJlIGludm9rZWQgZm9yIGVsZW1lbnRzIHRoYXQgaGF2ZSBkZWZhdWx0
IHByZXZpZXcgaW4gV2ViS2l0LCB3aGljaCBpcworIGxpbWl0ZWQgdG8gbGlua3MuIEluIHRoZSBm
dXR1cmUsIGl0IGNvdWxkIGJlIGludm9rZWQgZm9yIGFkZGl0aW9uYWwgZWxlbWVudHMuCisgKi8K
Ky0gKEJPT0wpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzaG91bGRQcmV2aWV3RWxlbWVu
dDooV0tQcmV2aWV3RWxlbWVudEluZm8gKillbGVtZW50SW5mbyBXS19BVkFJTEFCTEUoTkEsIFdL
X0lPU19UQkEpOworCisvKiEgQGFic3RyYWN0IEFsbG93cyB5b3VyIGFwcCB0byBwcm92aWRlIGEg
Y3VzdG9tIHZpZXcgY29udHJvbGxlciB0byBzaG93IHdoZW4gdGhlIGdpdmVuIGVsZW1lbnQgaXMg
cGVla2VkLgorIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBpbnZva2luZyB0aGUgZGVsZWdh
dGUgbWV0aG9kLgorIEBwYXJhbSBlbGVtZW50SW5mbyBUaGUgZWxlbWVudEluZm8gZm9yIHRoZSBl
bGVtZW50IHRoZSB1c2VyIGlzIHBlZWtpbmcuCisgQHBhcmFtIGRlZmF1bHRBY3Rpb25zIEFuIGFy
cmF5IG9mIHRoZSBhY3Rpb25zIHRoYXQgV2ViS2l0IHdvdWxkIHVzZSBhcyBwcmV2aWV3QWN0aW9u
SXRlbXMgZm9yIHRoaXMgZWxlbWVudCBieSAKKyBkZWZhdWx0LiBUaGVzZSBhY3Rpb25zIHdvdWxk
IGJlIHVzZWQgaWYgYWxsb3dzTGlua1ByZXZpZXcgaXMgWUVTIGJ1dCB0aGVzZSBkZWxlZ2F0ZSBt
ZXRob2RzIGhhdmUgbm90IGJlZW4gCisgaW1wbGVtZW50ZWQsIG9yIGlmIHRoaXMgZGVsZWdhdGUg
bWV0aG9kIHJldHVybnMgbmlsLgorIEBkaXNjdXNzaW9uIFJldHVybmluZyBhIHZpZXcgY29udHJv
bGxlciB3aWxsIHJlc3VsdCBpbiB0aGF0IHZpZXcgY29udHJvbGxlciBiZWluZyBkaXNwbGF5ZWQg
YXMgYSBwZWVrIHByZXZpZXcuCisgVG8gdXNlIHRoZSBkZWZhdWx0QWN0aW9ucywgeW91ciBhcHAg
aXMgcmVzcG9uc2libGUgZm9yIHJldHVybmluZyB3aGljaGV2ZXIgb2YgdGhvc2UgYWN0aW9ucyBp
dCB3YW50cyBpbiB5b3VyIAorIHZpZXcgY29udHJvbGxlcidzIGltcGxlbWVudGF0aW9uIG9mIC1w
cmV2aWV3QWN0aW9uSXRlbXMuCisgCisgUmV0dXJuaW5nIG5pbCB3aWxsIHJlc3VsdCBpbiBXZWJL
aXQncyBkZWZhdWx0IHByZXZpZXcgYmVoYXZpb3IuIHdlYlZpZXc6Y29tbWl0UHJldmlld2luZ1Zp
ZXdDb250cm9sbGVyOiB3aWxsIG9ubHkgYmUgaW52b2tlZAorIGlmIGEgbm9uLW5pbCB2aWV3IGNv
bnRyb2xsZXIgd2FzIHJldHVybmVkLgorICovCistIChudWxsYWJsZSBVSVZpZXdDb250cm9sbGVy
ICopd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXJG
b3JFbGVtZW50OihXS1ByZXZpZXdFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIGRlZmF1bHRBY3Rp
b25zOihOU0FycmF5IDxpZCA8V0tQcmV2aWV3QWN0aW9uSXRlbT4+ICopcHJldmlld0FjdGlvbnMg
V0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKworLyohIEBhYnN0cmFjdCBBbGxvd3MgeW91
ciBhcHAgdG8gcG9wIHRvIHRoZSB2aWV3IGNvbnRyb2xsZXIgaXQgY3JlYXRlZC4KKyBAcGFyYW0g
d2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KKyBAcGFy
YW0gcHJldmlld2luZ1ZpZXdDb250cm9sbGVyIFRoZSB2aWV3IGNvbnRyb2xsZXIgdGhhdCBpcyBi
ZWluZyBwb3BwZWQuCisgKi8KKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBj
b21taXRQcmV2aWV3aW5nVmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3
aW5nVmlld0NvbnRyb2xsZXIgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKwogQGVuZAog
CisjZW5kaWYgLy8gVEFSR0VUX09TX0lQSE9ORQorCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKIAog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkocmV2aXNpb24gMTk4MDY5KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2ltcG9ydCA8V2ViS2l0L1dLU2VjdXJpdHlP
cmlnaW4uaD4KICNpbXBvcnQgPFdlYktpdC9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oPgotI2lt
cG9ydCA8V2ViS2l0L19XS1ByZXZpZXdBY3Rpb24uaD4KIAogQGNsYXNzIFVJU2Nyb2xsVmlldzsK
IEBjbGFzcyBVSVZpZXdDb250cm9sbGVyOwpAQCAtMzcsNyArMzYsNiBAQAogQGNsYXNzIF9XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvOwogQGNsYXNzIF9XS0VsZW1lbnRBY3Rpb247CiBAY2xhc3MgX1dL
RnJhbWVIYW5kbGU7Ci1AY2xhc3MgX1dLUHJldmlld0VsZW1lbnRJbmZvOwogCiBAcHJvdG9jb2wg
V0tVSURlbGVnYXRlUHJpdmF0ZSA8V0tVSURlbGVnYXRlPgogCkBAIC03OCwxNyArNzYsNiBAQCBz
dHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAoVUlFZGdlSW5zZXRzKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IGZpbmFsT2JzY3VyZWRJbnNldHNGb3JTY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcg
KilzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eTooQ0dQb2ludCl2ZWxvY2l0eSB0YXJnZXRDb250ZW50
T2Zmc2V0Oihpbm91dCBDR1BvaW50ICopdGFyZ2V0Q29udGVudE9mZnNldCBXS19BVkFJTEFCTEUo
TkEsIDlfMCk7CiAtIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOihOU1VSTCAqKXVybCBkZWZhdWx0QWN0
aW9uczooV0tfQVJSQVkoX1dLRWxlbWVudEFjdGlvbiAqKSAqKWFjdGlvbnMgZWxlbWVudEluZm86
KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gV0tfQVZBSUxBQkxFKE5BLCA5
XzApOwogLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHByZXZpZXdWaWV3Q29udHJvbGxlckZvckFuaW1hdGVkSW1hZ2VBdFVSTDooTlNVUkwgKil1cmwg
ZGVmYXVsdEFjdGlvbnM6KFdLX0FSUkFZKF9XS0VsZW1lbnRBY3Rpb24gKikgKilhY3Rpb25zIGVs
ZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIGltYWdlU2l6
ZTooQ0dTaXplKWltYWdlU2l6ZSBXS19BVkFJTEFCTEUoTkEsIDlfMCk7Ci0KLS8vIElmIGEgY2xp
ZW50IHdhbnRzIHRvIGRpc2FibGUgcHJldmlld3MgZW50aXJlbHkgZm9yIHRoZSBnaXZlbiBlbGVt
ZW50LCB0aGV5IHNob3VsZCByZXR1cm4gTk8gaW4KLS8vIHNob3VsZFByZXZpZXdFbGVtZW50LiBS
ZXR1cm5pbmcgTk8gaW4gc2hvdWxkUHJldmlld0VsZW1lbnQgd2lsbCBwcmV2ZW50IHRoZSBvdGhl
ciBtZXRob2RzIGZyb20gYmVpbmcgaW52b2tlZC4KLS8vIFRoZSBjbGllbnQgY2FuIHByb3ZpZGUg
YSBjdXN0b20gcHJldmlldyBieSByZXR1cm5pbmcgdGhlaXIgb3duIFVJVmlld0NvbnRyb2xsZXIg
ZnJvbQotLy8gcHJldmlld2luZ1ZpZXdDb250cm9sbGVyRm9yRWxlbWVudDpkZWZhdWx0QWN0aW9u
czouIFJldHVybmluZyBuaWwgd2lsbCByZXN1bHQgaW4gdGhlIGRlZmF1bHQgcHJldmlldyBiZWhh
dmlvcgotLy8gZm9yIHRoYXQgZWxlbWVudC4gSWYgdGhlIGNsaWVudCB3YW50IHRvIHVzZSB0aGUg
ZGVmYXVsdEFjdGlvbnMsIHRoZW4gdGhlIGNsaWVudCBpcyByZXNwb25zaWJsZSBmb3IKLS8vIHJl
dHVybmluZyB0aG9zZSBhY3Rpb25zIGluIHRoZWlyIFVJVmlld0NvbnRyb2xsZXIncyBpbXBsZW1l
bnRhdGlvbiBvZiBwcmV2aWV3QWN0aW9uSXRlbXMuCi0tIChCT09MKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IHNob3VsZFByZXZpZXdFbGVtZW50OihfV0tQcmV2aWV3RWxlbWVudEluZm8g
KillbGVtZW50SW5mbzsKLS0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVtZW50OihfV0tQcmV2aWV3
RWxlbWVudEluZm8gKillbGVtZW50SW5mbyBkZWZhdWx0QWN0aW9uczooTlNBcnJheSA8aWQgPF9X
S1ByZXZpZXdBY3Rpb25JdGVtPj4gKilwcmV2aWV3QWN0aW9ucyBXS19BVkFJTEFCTEUoTkEsIFdL
X0lPU19UQkEpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb21taXRQ
cmV2aWV3aW5nVmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3aW5nVmll
d0NvbnRyb2xsZXIgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLQogLSAoVUlWaWV3Q29u
dHJvbGxlciAqKV9wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CiAjZWxzZQogLSAoTlNNZW51
ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1l
bnUgZm9yRWxlbWVudDooX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5o
CShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTIgKzI3
LDEyIEBACiAKICNpZiBXS19BUElfRU5BQkxFRCAmJiAhVEFSR0VUX09TX0lQSE9ORQogCi0jaW1w
b3J0IDxXZWJLaXQvX1dLRWxlbWVudEluZm8uaD4KKyNpbXBvcnQgPFdlYktpdC9XS0VsZW1lbnRJ
bmZvLmg+CiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIFdLX0NMQVNTX0FWQUlMQUJMRShX
S19NQUNfVEJBLCBOQSkKLUBpbnRlcmZhY2UgX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyA6IF9X
S0VsZW1lbnRJbmZvCitAaW50ZXJmYWNlIF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gOiBXS0Vs
ZW1lbnRJbmZvCiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8uaAkocmV2aXNpb24gMTk4MDY5KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0IDxXZWJLaXQvV0tG
b3VuZGF0aW9uLmg+Ci0KLSNpZiBXS19BUElfRU5BQkxFRAotCi1OU19BU1NVTUVfTk9OTlVMTF9C
RUdJTgotCi1XS19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSkKLUBpbnRl
cmZhY2UgX1dLRWxlbWVudEluZm8gOiBOU09iamVjdCA8TlNDb3B5aW5nPgotCi1AcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMICpsaW5rVVJMOwotCi1AZW5kCi0KLU5TX0FTU1VN
RV9OT05OVUxMX0VORAotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRWxlbWVudEluZm8ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5tbQkocmV2aXNpb24gMTk4MDY5KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5tbQko
d29ya2luZyBjb3B5KQpAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29u
ZmlnLmgiCi0jaW1wb3J0ICJfV0tFbGVtZW50SW5mb0ludGVybmFsLmgiCi0KLSNpZiBXS19BUElf
RU5BQkxFRAotCi1AaW1wbGVtZW50YXRpb24gX1dLRWxlbWVudEluZm8KLQotLSAoaWQpY29weVdp
dGhab25lOihOU1pvbmUgKil6b25lCi17Ci0gICAgcmV0dXJuIFtzZWxmIHJldGFpbl07Ci19Ci0K
LS0gKE5TVVJMICopbGlua1VSTAotewotICAgIHJldHVybiBfbGlua1VSTC5nZXQoKTsKLX0KLQot
QGVuZAotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCShyZXZpc2lvbiAxOTgw
NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZv
SW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2ltcG9ydCAiX1dLRWxlbWVudEluZm8uaCIKLQotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgot
Ci0jaWYgV0tfQVBJX0VOQUJMRUQKLQotQGludGVyZmFjZSBfV0tFbGVtZW50SW5mbyAoKSB7Ci1A
cGFja2FnZQotICAgIFJldGFpblB0cjxOU1VSTD4gX2xpbmtVUkw7Ci19Ci0KLUBlbmQKLQotI2Vu
ZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1ByZXZpZXdBY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdBY3Rpb24uaAkocmV2aXNpb24gMTk4MDY5KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgPFdl
YktpdC9XS0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19J
UEhPTkUKLQotI2ltcG9ydCA8VUlLaXQvVUlWaWV3Q29udHJvbGxlci5oPgotCi1XS19DTEFTU19B
VkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpCi1AcHJvdG9jb2wgX1dLUHJldmlld0FjdGlvbkl0ZW0g
PE5TT2JqZWN0LCBVSVByZXZpZXdBY3Rpb25JdGVtPgotCi1AcHJvcGVydHkobm9uYXRvbWljLCBj
b3B5LCByZWFkb25seSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7Ci0KLUBlbmQKLQotI2VuZGlmIC8v
IFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbi5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdBY3Rpb24ubW0JKHJl
dmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UHJldmlld0FjdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw0MyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJfV0tQcmV2aWV3QWN0aW9uSW50ZXJu
YWwuaCIKLQotI2lmIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKLQotQGltcGxl
bWVudGF0aW9uIF9XS1ByZXZpZXdBY3Rpb24KLUBzeW50aGVzaXplIGlkZW50aWZpZXI9X2lkZW50
aWZpZXI7Ci0KLSsgKGluc3RhbmNldHlwZSlhY3Rpb25XaXRoSWRlbnRpZmllcjooTlNTdHJpbmcg
KilpZGVudGlmaWVyIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIHN0eWxlOihVSVByZXZpZXdBY3Rp
b25TdHlsZSlzdHlsZSBoYW5kbGVyOih2b2lkICheKShVSVByZXZpZXdBY3Rpb24gKmFjdGlvbiwg
VUlWaWV3Q29udHJvbGxlciAqcHJldmlld1ZpZXdDb250cm9sbGVyKSloYW5kbGVyCi17Ci0gICAg
X1dLUHJldmlld0FjdGlvbiAqYWN0aW9uID0gW3NlbGYgYWN0aW9uV2l0aFRpdGxlOnRpdGxlIHN0
eWxlOnN0eWxlIGhhbmRsZXI6aGFuZGxlcl07Ci0gICAgYWN0aW9uLT5faWRlbnRpZmllciA9IGlk
ZW50aWZpZXI7Ci0gICAgcmV0dXJuIGFjdGlvbjsKLX0KLQotQGVuZAotCi0jZW5kaWYgLy8gV0tf
QVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdBY3Rpb25JbnRl
cm5hbC5oCShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJXS0ZvdW5kYXRpb24uaCIKLQotI2lmIFdL
X0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKLQotI2ltcG9ydCAiX1dLUHJldmlld0Fj
dGlvbi5oIgotCi1AaW50ZXJmYWNlIF9XS1ByZXZpZXdBY3Rpb24gOiBVSVByZXZpZXdBY3Rpb24g
PE5TQ29weWluZywgX1dLUHJldmlld0FjdGlvbkl0ZW0+Ci0KLSsgKGluc3RhbmNldHlwZSlhY3Rp
b25XaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIHRpdGxlOihOU1N0cmluZyAq
KXRpdGxlIHN0eWxlOihVSVByZXZpZXdBY3Rpb25TdHlsZSlzdHlsZSBoYW5kbGVyOih2b2lkIChe
KShVSVByZXZpZXdBY3Rpb24gKmFjdGlvbiwgVUlWaWV3Q29udHJvbGxlciAqcHJldmlld1ZpZXdD
b250cm9sbGVyKSloYW5kbGVyOwotCi1AZW5kCi0KLSNlbmRpZiAvLyBXS19BUElfRU5BQkxFRCAm
JiBUQVJHRVRfT1NfSVBIT05FCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmgJKHJldmlzaW9uIDE5
ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0Vs
ZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0FQSV9FTkFCTEVEICYm
IFRBUkdFVF9PU19JUEhPTkUKLQotI2ltcG9ydCA8V2ViS2l0L19XS0VsZW1lbnRJbmZvLmg+Ci0K
LU5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCi0KLVdLX0NMQVNTX0FWQUlMQUJMRShOQSwgV0tfSU9T
X1RCQSkKLUBpbnRlcmZhY2UgX1dLUHJldmlld0VsZW1lbnRJbmZvIDogX1dLRWxlbWVudEluZm8K
LQotQGVuZAotCi1OU19BU1NVTUVfTk9OTlVMTF9FTkQKLQotI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdF
bGVtZW50SW5mby5tbQkocmV2aXNpb24gMTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8ubW0JKHdvcmtpbmcgY29weSkKQEAg
LTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAi
X1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKLQotI2ltcG9ydCAiX1dLRWxlbWVudElu
Zm9JbnRlcm5hbC5oIgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgotCi0jaWYgV0tfQVBJX0VO
QUJMRUQgJiYgUExBVEZPUk0oSU9TKQotCi1AaW1wbGVtZW50YXRpb24gX1dLUHJldmlld0VsZW1l
bnRJbmZvCi0KLS0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhMaW5rVVJMOihOU1VSTCAqKXVybAot
ewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICByZXR1cm4gbmlsOwot
Ci0gICAgX2xpbmtVUkwgPSBhZG9wdE5TKFt1cmwgY29weV0pOwotCi0gICAgcmV0dXJuIHNlbGY7
Ci19Ci0KLUBlbmQKLQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm9JbnRl
cm5hbC5oCShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsMzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgIl9XS1ByZXZpZXdFbGVtZW50SW5m
by5oIgotCi0jaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQotCi1AaW50ZXJm
YWNlIF9XS1ByZXZpZXdFbGVtZW50SW5mbyAoKQotCi0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRo
TGlua1VSTDooTlNVUkwgKil1cmw7Ci0KLUBlbmQKLQotI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVE
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQkocmV2aXNpb24gMTk4MDY5KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTQzLDcgKzQzLDkgQEAKICNpbXBvcnQgIldLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xs
ZXIuaCIKICNpbXBvcnQgIldLSW5zcGVjdG9yTm9kZVNlYXJjaEdlc3R1cmVSZWNvZ25pemVyLmgi
CiAjaW1wb3J0ICJXS05TVVJMRXh0cmFzLmgiCi0jaW1wb3J0ICJXS1ByZXZpZXdBY3Rpb25JZGVu
dGlmaWVyc1ByaXZhdGUuaCIKKyNpbXBvcnQgIldLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVy
cy5oIgorI2ltcG9ydCAiV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmgiCisjaW1wb3J0ICJX
S1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgiCiAjaW1wb3J0ICJXS1VJRGVsZWdhdGVQcml2
YXRlLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uLmgiCiAjaW1wb3J0ICJXS1dl
YlZpZXdJbnRlcm5hbC5oIgpAQCAtNTcsOCArNTksNiBAQAogI2ltcG9ydCAiX1dLRm9jdXNlZEVs
ZW1lbnRJbmZvLmgiCiAjaW1wb3J0ICJfV0tGb3JtSW5wdXRTZXNzaW9uLmgiCiAjaW1wb3J0ICJf
V0tJbnB1dERlbGVnYXRlLmgiCi0jaW1wb3J0ICJfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCIK
LSNpbXBvcnQgIl9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgiCiAjaW1wb3J0IDxDb3Jl
VGV4dC9DVEZvbnQuaD4KICNpbXBvcnQgPENvcmVUZXh0L0NURm9udERlc2NyaXB0b3IuaD4KICNp
bXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9VVENvcmVUeXBlcy5oPgpAQCAtMzgwNCw5ICszODA0
LDkgQEAgLSAoQk9PTClfaW50ZXJhY3Rpb25TaG91bGRCZWdpbkZyb21QcmV2aQogICAgIGlmIChf
cG9zaXRpb25JbmZvcm1hdGlvbi5pc0xpbmspIHsKICAgICAgICAgTlNVUkwgKnRhcmdldFVSTCA9
IFtOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6X3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsXTsK
ICAgICAgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzdGF0aWNfY2Fz
dDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4+KFtfd2ViVmlldyBVSURlbGVnYXRlXSk7Ci0gICAg
ICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3
OnNob3VsZFByZXZpZXdFbGVtZW50OildKSB7Ci0gICAgICAgICAgICBhdXRvIHByZXZpZXdFbGVt
ZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tQcmV2aWV3RWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0
aExpbmtVUkw6dGFyZ2V0VVJMXSk7Ci0gICAgICAgICAgICByZXR1cm4gW3VpRGVsZWdhdGUgX3dl
YlZpZXc6X3dlYlZpZXcgc2hvdWxkUHJldmlld0VsZW1lbnQ6cHJldmlld0VsZW1lbnRJbmZvLmdl
dCgpXTsKKyAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3Iod2ViVmlldzpzaG91bGRQcmV2aWV3RWxlbWVudDopXSkgeworICAgICAgICAgICAgYXV0byBw
cmV2aWV3RWxlbWVudEluZm8gPSBhZG9wdE5TKFtbV0tQcmV2aWV3RWxlbWVudEluZm8gYWxsb2Nd
IF9pbml0V2l0aExpbmtVUkw6dGFyZ2V0VVJMXSk7CisgICAgICAgICAgICByZXR1cm4gW3VpRGVs
ZWdhdGUgd2ViVmlldzpfd2ViVmlldyBzaG91bGRQcmV2aWV3RWxlbWVudDpwcmV2aWV3RWxlbWVu
dEluZm8uZ2V0KCldOwogICAgICAgICB9CiAgICAgICAgIGlmIChhYnNvbHV0ZUxpbmtVUkwuaXNF
bXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIE5POwpAQCAtMzkwNCwxNSArMzkwNCwxNSBAQCBz
dGF0aWMgTlNTdHJpbmcgKnByZXZpZXdJZGVudGlmaWVyRm9yRWxlCiB7CiAgICAgc3dpdGNoIChh
Y3Rpb24udHlwZSkgewogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVPcGVuOgotICAgICAg
ICByZXR1cm4gX1dLUHJldmlld0lkZW50aWZpZXJPcGVuOworICAgICAgICByZXR1cm4gV0tQcmV2
aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJPcGVuOwogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5
cGVDb3B5OgotICAgICAgICByZXR1cm4gX1dLUHJldmlld0lkZW50aWZpZXJDb3B5OworICAgICAg
ICByZXR1cm4gV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJDb3B5OwogI2lmICFkZWZpbmVk
KFRBUkdFVF9PU19JT1MpIHx8IFRBUkdFVF9PU19JT1MKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rp
b25UeXBlQWRkVG9SZWFkaW5nTGlzdDoKLSAgICAgICAgcmV0dXJuIF9XS1ByZXZpZXdJZGVudGlm
aWVyQWRkVG9SZWFkaW5nTGlzdDsKKyAgICAgICAgcmV0dXJuIFdLUHJldmlld0FjdGlvbkl0ZW1J
ZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdDsKICNlbmRpZgogICAgIGNhc2UgX1dLRWxlbWVudEFj
dGlvblR5cGVTaGFyZToKLSAgICAgICAgcmV0dXJuIF9XS1ByZXZpZXdJZGVudGlmaWVyU2hhcmU7
CisgICAgICAgIHJldHVybiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllclNoYXJlOwogICAg
IGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQpAQCAtMzk0NSwxNiArMzk0NSwx
NiBAQCAtIChVSVZpZXdDb250cm9sbGVyICopX3ByZXNlbnRlZFZpZXdDb250CiAgICAgICAgIFJl
dGFpblB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gZWxlbWVudEluZm8gPSBhZG9wdE5TKFtb
X1dLQWN0aXZhdGVkRWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aFR5cGU6X1dLQWN0aXZhdGVk
RWxlbWVudFR5cGVMaW5rIFVSTDp0YXJnZXRVUkwgbG9jYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRp
b24ucG9pbnQgdGl0bGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUgcmVjdDpfcG9zaXRpb25J
bmZvcm1hdGlvbi5ib3VuZHMgaW1hZ2U6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2UuZ2V0KCld
KTsKIAogICAgICAgICBhdXRvIGFjdGlvbnMgPSBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1
bHRBY3Rpb25zRm9yTGlua1NoZWV0OmVsZW1lbnRJbmZvLmdldCgpXTsKLSAgICAgICAgaWYgKFt1
aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cHJldmlld2lu
Z1ZpZXdDb250cm9sbGVyRm9yRWxlbWVudDpkZWZhdWx0QWN0aW9uczopXSkgeworICAgICAgICBp
ZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnByZXZp
ZXdpbmdWaWV3Q29udHJvbGxlckZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlvbnM6KV0pIHsKICAgICAg
ICAgICAgIGF1dG8gcHJldmlld0FjdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxs
b2NdIGluaXRdKTsKICAgICAgICAgICAgIGZvciAoX1dLRWxlbWVudEFjdGlvbiAqZWxlbWVudEFj
dGlvbiBpbiBhY3Rpb25zLmdldCgpKSB7Ci0gICAgICAgICAgICAgICAgX1dLUHJldmlld0FjdGlv
biAqcHJldmlld0FjdGlvbiA9IFtfV0tQcmV2aWV3QWN0aW9uIGFjdGlvbldpdGhJZGVudGlmaWVy
OnByZXZpZXdJZGVudGlmaWVyRm9yRWxlbWVudEFjdGlvbihlbGVtZW50QWN0aW9uKSB0aXRsZTpb
ZWxlbWVudEFjdGlvbiB0aXRsZV0gc3R5bGU6VUlQcmV2aWV3QWN0aW9uU3R5bGVEZWZhdWx0IGhh
bmRsZXI6XihVSVByZXZpZXdBY3Rpb24gKiwgVUlWaWV3Q29udHJvbGxlciAqKSB7CisgICAgICAg
ICAgICAgICAgV0tQcmV2aWV3QWN0aW9uICpwcmV2aWV3QWN0aW9uID0gW1dLUHJldmlld0FjdGlv
biBhY3Rpb25XaXRoSWRlbnRpZmllcjpwcmV2aWV3SWRlbnRpZmllckZvckVsZW1lbnRBY3Rpb24o
ZWxlbWVudEFjdGlvbikgdGl0bGU6W2VsZW1lbnRBY3Rpb24gdGl0bGVdIHN0eWxlOlVJUHJldmll
d0FjdGlvblN0eWxlRGVmYXVsdCBoYW5kbGVyOl4oVUlQcmV2aWV3QWN0aW9uICosIFVJVmlld0Nv
bnRyb2xsZXIgKikgewogICAgICAgICAgICAgICAgICAgICBbZWxlbWVudEFjdGlvbiBydW5BY3Rp
b25XaXRoRWxlbWVudEluZm86ZWxlbWVudEluZm8uZ2V0KCldOwogICAgICAgICAgICAgICAgIH1d
OwogICAgICAgICAgICAgICAgIFtwcmV2aWV3QWN0aW9ucyBhZGRPYmplY3Q6cHJldmlld0FjdGlv
bl07CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhdXRvIHByZXZpZXdFbGVtZW50SW5mbyA9
IGFkb3B0TlMoW1tfV0tQcmV2aWV3RWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aExpbmtVUkw6
dGFyZ2V0VVJMXSk7Ci0gICAgICAgICAgICBpZiAoVUlWaWV3Q29udHJvbGxlciAqY29udHJvbGxl
ciA9IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IHByZXZpZXdpbmdWaWV3Q29udHJvbGxl
ckZvckVsZW1lbnQ6cHJldmlld0VsZW1lbnRJbmZvLmdldCgpIGRlZmF1bHRBY3Rpb25zOnByZXZp
ZXdBY3Rpb25zLmdldCgpXSkgeworICAgICAgICAgICAgYXV0byBwcmV2aWV3RWxlbWVudEluZm8g
PSBhZG9wdE5TKFtbV0tQcmV2aWV3RWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aExpbmtVUkw6
dGFyZ2V0VVJMXSk7CisgICAgICAgICAgICBpZiAoVUlWaWV3Q29udHJvbGxlciAqY29udHJvbGxl
ciA9IFt1aURlbGVnYXRlIHdlYlZpZXc6X3dlYlZpZXcgcHJldmlld2luZ1ZpZXdDb250cm9sbGVy
Rm9yRWxlbWVudDpwcmV2aWV3RWxlbWVudEluZm8uZ2V0KCkgZGVmYXVsdEFjdGlvbnM6cHJldmll
d0FjdGlvbnMuZ2V0KCldKSB7CiAgICAgICAgICAgICAgICAgX3VpRGVsZWdhdGVQcm92aWRlZFBy
ZXZpZXdpbmdWaWV3Q29udHJvbGxlciA9IFlFUzsKICAgICAgICAgICAgICAgICByZXR1cm4gY29u
dHJvbGxlcjsKICAgICAgICAgICAgIH0KQEAgLTM5OTcsOCArMzk5Nyw4IEBAIC0gKHZvaWQpX3By
ZXZpZXdJdGVtQ29udHJvbGxlcjooVUlQcmV2aWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3
OmNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjopXSkgewotICAgICAgICBbdWlEZWxlZ2F0
ZSBfd2ViVmlldzpfd2ViVmlldyBjb21taXRQcmV2aWV3aW5nVmlld0NvbnRyb2xsZXI6dmlld0Nv
bnRyb2xsZXJdOworICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKHdlYlZpZXc6Y29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOildKSB7CisgICAgICAg
IFt1aURlbGVnYXRlIHdlYlZpZXc6X3dlYlZpZXcgY29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9s
bGVyOnZpZXdDb250cm9sbGVyXTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApJbmRleDogU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yNTUsOCArMjU1LDggQEAKIAkJMUE1M0MyQTIx
QTMyMzAwNDAwNEU4QzcwIC8qIEluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRF
RDMyNjFBMzExOUQ5MDA3OUJENDkgLyogSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlLmNwcCAqLzsgfTsKIAkJMUE1M0MyQTkxQTMyNTcyQjAwNEU4QzcwIC8qIFdlYnNpdGVE
YXRhU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUE1M0MyQTQxQTMyNTY5RjAwNEU4QzcwIC8qIFdlYnNpdGVEYXRhU3RvcmUuY3BwICovOyB9
OwogCQkxQTUzQzJBQTFBMzI1NzMwMDA0RThDNzAgLyogV2Vic2l0ZURhdGFTdG9yZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE1M0MyQTUxQTMyNTY5
RjAwNEU4QzcwIC8qIFdlYnNpdGVEYXRhU3RvcmUuaCAqLzsgfTsKLQkJMUE1NzA0RjExQkUwMTcz
RjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUE1NzA0RUYxQkUwMTczRjAwODc0QUYxIC8qIF9XS0VsZW1l
bnRJbmZvLm1tICovOyB9OwotCQkxQTU3MDRGMjFCRTAxNzQwMDA4NzRBRjEgLyogX1dLRWxlbWVu
dEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFB
NTcwNEYwMUJFMDE3M0YwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFBNTcwNEYxMUJFMDE3M0YwMDg3
NEFGMSAvKiBXS0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUE1NzA0RUYxQkUwMTczRjAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8u
bW0gKi87IH07CisJCTFBNTcwNEYyMUJFMDE3NDAwMDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZvLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU3MDRGMDFC
RTAxNzNGMDA4NzRBRjEgLyogV0tFbGVtZW50SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJMUE1NzA0RjcxQkUwMUZGNDAwODc0QUYxIC8qIF9X
S0NvbnRleHRNZW51RWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQTU3MDRGNTFCRTAxRkY0MDA4NzRBRjEgLyogX1dLQ29udGV4dE1l
bnVFbGVtZW50SW5mby5tbSAqLzsgfTsKIAkJMUE1NzA0RjgxQkUwMUZGNDAwODc0QUYxIC8qIF9X
S0NvbnRleHRNZW51RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBNTcwNEY2MUJFMDFGRjQwMDg3NEFGMSAvKiBfV0tDb250ZXh0TWVu
dUVsZW1lbnRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMUE1NzA0RkIxQkUxNzUxMTAwODc0QUYxIC8qIFJlbW90ZU9iamVjdEludm9jYXRp
b24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU3
MDRGOTFCRTE3NTExMDA4NzRBRjEgLyogUmVtb3RlT2JqZWN0SW52b2NhdGlvbi5tbSAqLzsgfTsK
QEAgLTExOTQsMTkgKzExOTQsMTkgQEAKIAkJOTM1RUVCQTIxMjc3NjFEMDAwMzMyMkI4IC8qIElu
amVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVFRUI5MDEyNzc2MTVEMDAzMzIyQjggLyogSW5qZWN0ZWRC
dW5kbGVCYWNrRm9yd2FyZExpc3QuaCAqLzsgfTsKIAkJOTM1RUVCQTMxMjc3NjFEMzAwMzMyMkI4
IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVFRUI5MTEyNzc2MTVEMDAzMzIyQjgg
LyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCAqLzsgfTsKIAkJOTM1RUVC
QTQxMjc3NjFENjAwMzMyMkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RUVCOTIx
Mjc3NjE1RDAwMzMyMkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oICov
OyB9OwotCQk5MzczNUVCQjFDOTI5ODYzMDAzMzZGQTcgLyogX1dLUHJldmlld0FjdGlvbkludGVy
bmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzcz
NUVCQTFDOTI5ODYzMDAzMzZGQTcgLyogX1dLUHJldmlld0FjdGlvbkludGVybmFsLmggKi87IH07
Ci0JCTkzOTEwNzRGMUJGNkJDNjUwMDhDMTdBRCAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm9JbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5
MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgg
Ki87IH07CisJCTkzNzM1RUJCMUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVt
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNzM1RUJBMUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwu
aCAqLzsgfTsKKwkJOTM5MTA3NEYxQkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJ
bmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAvKiBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVy
bmFsLmggKi87IH07CiAJCTkzOTFGMkNBMTIxQjY3OUEwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTM5MUYyODQxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQubW0gKi87IH07CiAJCTkzOTFGMkNCMTIxQjY3QUQwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oICovOyB9OwotCQk5Mzk1RTY4QTFCRjJDMzMyMDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1l
bnRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
Mzk1RTY4OTFCRjJDMzMyMDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTM5NUU2OEMxQkYy
QzM1MjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTVFNjhCMUJGMkMzNTIwMEY0OUJDRSAv
KiBfV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gKi87IH07Ci0JCTkzOTVFNjhFMUJGNDEwRkQwMEY0
OUJDRSAvKiBfV0tFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk1RTY4RDFCRjQxMEZEMDBGNDlCQ0UgLyogX1dLRWxl
bWVudEluZm9JbnRlcm5hbC5oICovOyB9OworCQk5Mzk1RTY4QTFCRjJDMzMyMDBGNDlCQ0UgLyog
V0tQcmV2aWV3RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzOTVFNjg5MUJGMkMzMzIwMEY0OUJDRSAvKiBXS1ByZXZpZXdFbGVtZW50
SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJ
OTM5NUU2OEMxQkYyQzM1MjAwRjQ5QkNFIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5NUU2OEIxQkYyQzM1
MjAwRjQ5QkNFIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvLm1tICovOyB9OworCQk5Mzk1RTY4RTFC
RjQxMEZEMDBGNDlCQ0UgLyogV0tFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk1RTY4RDFCRjQxMEZEMDBGNDlCQ0Ug
LyogV0tFbGVtZW50SW5mb0ludGVybmFsLmggKi87IH07CiAJCTkzOUFFNzY2MTMxNkU5OUMwMEFF
MDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QUU3NjUxMzE2RTk5QzAwQUUwNkE2IC8qIFdlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAgKi87IH07CiAJCTkzOUY0MDFDMTlGQjBCQkMwMDJCMkI0MiAv
KiBXS0FjdGlvbk1lbnVUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM5RjQwMUIxOUZCMEJCQzAwMkIyQjQyIC8qIFdLQWN0aW9uTWVudVR5cGVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTNB
MjUzRUQxQzkyMkUxRTAwRjlGNjhEIC8qIF9XS1ByZXZpZXdBY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTI1M0VDMUM5MjJFMUUwMEY5RjY4
RCAvKiBfV0tQcmV2aWV3QWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJOTNBMjUzRUYxQzkyMkU4RTAwRjlGNjhEIC8qIF9XS1ByZXZpZXdB
Y3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0EyNTNFRTFDOTIyRThFMDBGOUY2OEQgLyogX1dLUHJldmlld0FjdGlvbi5tbSAqLzsgfTsKLQkJ
OTNBMjUzRjMxQzkyNDExMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
MjUzRjIxQzkyNDExMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTkz
QTI1M0Y1MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZh
dGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Ey
NTNGNDFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRl
Lm1tICovOyB9OworCQk5M0EyNTNFRDFDOTIyRTFFMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9u
SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
MjUzRUMxQzkyMkUxRTAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW0uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTkzQTI1M0VGMUM5MjJFOEUw
MEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMjUzRUUxQzkyMkU4RTAwRjlGNjhEIC8qIFdLUHJl
dmlld0FjdGlvbkl0ZW0ubW0gKi87IH07CisJCTkzQTI1M0YzMUM5MjQxMTIwMEY5RjY4RCAvKiBX
S1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTI1M0YyMUM5MjQxMTIwMEY5RjY4RCAvKiBXS1ByZXZp
ZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
dWJsaWMsICk7IH07IH07CisJCTkzQTI1M0Y1MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdB
Y3Rpb25JdGVtSWRlbnRpZmllcnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0EyNTNGNDFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9u
SXRlbUlkZW50aWZpZXJzLm1tICovOyB9OwogCQk5M0E4OEIzMDFCQzZFOTk3MDBBQkE1QzIgLyog
V2ViSGl0VGVzdFJlc3VsdERhdGEubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0E4OEIyRTFCQzZFOThGMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3Vs
dERhdGEubW0gKi87IH07CiAJCTkzQTg4QjMzMUJDNkU5Q0QwMEFCQTVDMiAvKiBXZWJIaXRUZXN0
UmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNBODhCMzExQkM2RTlDMDAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRhLmggKi87
IH07CiAJCTkzQTg4QjM2MUJDNkVBRDUwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEIz
NDFCQzZFQUJBMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEuY3BwICovOyB9OwpAQCAt
MjE4Niw4ICsyMTg2LDggQEAKIAkJMUE1MkMwRjYxQTM4Q0RDNzAwMTYxNjBBIC8qIFdlYlN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUE1M0MyQTQxQTMyNTY5RjAwNEU4QzcwIC8qIFdlYnNpdGVEYXRhU3RvcmUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vic2l0ZURhdGFTdG9yZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNTNDMkE1MUEzMjU2OUYwMDRFOEM3MCAvKiBX
ZWJzaXRlRGF0YVN0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNp
dGVEYXRhU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUE1NzA0RUYxQkUw
MTczRjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gX1dLRWxlbWVudEluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTFBNTcwNEYwMUJFMDE3M0YwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tFbGVtZW50SW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQTU3MDRFRjFCRTAxNzNGMDA4NzRBRjEgLyogV0tFbGVt
ZW50SW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLRWxl
bWVudEluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBNTcwNEYwMUJFMDE3
M0YwMDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLRWxlbWVudEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE1
NzA0RjUxQkUwMUZGNDAwODc0QUYxIC8qIF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8ubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tDb250ZXh0TWVudUVsZW1l
bnRJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTU3MDRGNjFCRTAxRkY0
MDA4NzRBRjEgLyogX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFBNTcwNEY5MUJFMTc1MTEwMDg3NEFGMSAvKiBSZW1vdGVPYmpl
Y3RJbnZvY2F0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UmVtb3RlT2JqZWN0SW52b2NhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTMyMTUsMTkgKzMyMTUsMTkgQEAKIAkJOTM1RUVCOTYxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVu
ZGxlQmFja0ZvcndhcmRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
QnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
NUVFQjk3MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2Fy
ZExpc3RJdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1RUVCOTgxMjc3
NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTM3MzVFQkExQzkyOTg2MzAwMzM2RkE3IC8qIF9X
S1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVy
bmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1ByZXZpZXdFbGVtZW50
SW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNzM1RUJBMUM5
Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAvKiBX
S1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM5MUYyODMxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkxRjI4NDEy
MUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzOTVFNjg5MUJGMkMzMzIwMEY0OUJD
RSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLUHJldmlld0VsZW1lbnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTkzOTVFNjhCMUJGMkMzNTIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8ubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tQcmV2aWV3RWxlbWVu
dEluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzOTVFNjhEMUJGNDEwRkQw
MEY0OUJDRSAvKiBfV0tFbGVtZW50SW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IF9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNFIC8qIFdLUHJldmlld0VsZW1lbnRJ
bmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJldmlld0VsZW1lbnRJ
bmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOTVFNjhCMUJGMkMzNTIwMEY0
OUJDRSAvKiBXS1ByZXZpZXdFbGVtZW50SW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdLUHJldmlld0VsZW1lbnRJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5Mzk1RTY4RDFCRjQxMEZEMDBGNDlCQ0UgLyogV0tFbGVtZW50SW5mb0lu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRWxlbWVudEluZm9J
bnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlBRTc2NTEzMTZFOTlD
MDBBRTA2QTYgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVBcmd1bWVudENvZGVycy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzOUY0MDFCMTlGQjBCQkMwMDJCMkI0MiAvKiBXS0FjdGlvbk1l
bnVUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FjdGlvbk1lbnVU
eXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0EyNTNFQzFDOTIyRTFFMDBG
OUY2OEQgLyogX1dLUHJldmlld0FjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBfV0tQcmV2aWV3QWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkz
QTI1M0VFMUM5MjJFOEUwMEY5RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9uLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLUHJldmlld0FjdGlvbi5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNBMjUzRjIxQzkyNDExMjAwRjlGNjhEIC8qIFdLUHJl
dmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJOTNBMjUzRjQxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmlld0Fj
dGlvbklkZW50aWZpZXJzUHJpdmF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMjUzRUMxQzkyMkUxRTAwRjlGNjhEIC8qIFdLUHJldmll
d0FjdGlvbkl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmV2aWV3
QWN0aW9uSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EyNTNFRTFDOTIy
RThFMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLUHJldmlld0FjdGlvbkl0ZW0ubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzQTI1M0YyMUM5MjQxMTIwMEY5RjY4RCAvKiBXS1ByZXZpZXdB
Y3Rpb25JdGVtSWRlbnRpZmllcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzQTI1M0Y0MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRl
bnRpZmllcnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1By
ZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzQTg4QjJFMUJDNkU5OEYwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkhpdFRlc3RSZXN1bHRE
YXRhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEIzMTFCQzZFOUMwMDBB
QkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViSGl0VGVzdFJlc3VsdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTNBODhCMzQxQkM2RUFCQTAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRhLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkhpdFRlc3RSZXN1bHRE
YXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5NjcsOSArNDk2Nyw2IEBA
CiAJCQkJMzc5QTg3MzgxOEJCRkUwRjAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb24uaCAqLywK
IAkJCQkzNzlBODczNzE4QkJGRTBGMDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbi5tbSAqLywK
IAkJCQkzNzlBODczQjE4QkJGRjA3MDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbkludGVybmFs
LmggKi8sCi0JCQkJMUE1NzA0RjAxQkUwMTczRjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZvLmgg
Ki8sCi0JCQkJMUE1NzA0RUYxQkUwMTczRjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZvLm1tICov
LAotCQkJCTkzOTVFNjhEMUJGNDEwRkQwMEY0OUJDRSAvKiBfV0tFbGVtZW50SW5mb0ludGVybmFs
LmggKi8sCiAJCQkJMUFEMDFCQzcxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlB
dHRlbXB0aW5nLmggKi8sCiAJCQkJMUFEMDFCQzYxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9y
UmVjb3ZlcnlBdHRlbXB0aW5nLm1tICovLAogCQkJCTAwNUQxNThFMThFNEM0RUIwMDczNDYxOSAv
KiBfV0tGaW5kRGVsZWdhdGUuaCAqLywKQEAgLTQ5ODAsMTIgKzQ5NzcsNiBAQAogCQkJCTM3QTY0
RTU0MThGMzhFM0MwMEVCMzBGMSAvKiBfV0tJbnB1dERlbGVnYXRlLmggKi8sCiAJCQkJMkQ3OTBB
OUMxQUQ3MDUwRDAwQUI5MEIzIC8qIF9XS0xheW91dE1vZGUuaCAqLywKIAkJCQk5MzIzNjExRDFC
MDE1REE4MDBGQTkyMzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmggKi8sCi0JCQkJOTNB
MjUzRUMxQzkyMkUxRTAwRjlGNjhEIC8qIF9XS1ByZXZpZXdBY3Rpb24uaCAqLywKLQkJCQk5M0Ey
NTNFRTFDOTIyRThFMDBGOUY2OEQgLyogX1dLUHJldmlld0FjdGlvbi5tbSAqLywKLQkJCQk5Mzcz
NUVCQTFDOTI5ODYzMDAzMzZGQTcgLyogX1dLUHJldmlld0FjdGlvbkludGVybmFsLmggKi8sCi0J
CQkJOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5oICov
LAotCQkJCTkzOTVFNjhCMUJGMkMzNTIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8u
bW0gKi8sCi0JCQkJOTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIF9XS1ByZXZpZXdFbGVtZW50
SW5mb0ludGVybmFsLmggKi8sCiAJCQkJMUE0M0U4MjgxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTFBNDNFODI3MTg4RjNDREMwMDlFNEQz
MCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gKi8sCiAJCQkJN0M4OUQyRDYxQTZD
NkJFNjAwM0E1RkRFIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbkludGVybmFsLmggKi8s
CkBAIC01MDI1LDYgKzUwMTYsOSBAQAogCQkJCTM3QzRDMDg0MTgxNDlDNUIwMDM2ODhCOSAvKiBX
S0JhY2tGb3J3YXJkTGlzdEl0ZW0ubW0gKi8sCiAJCQkJMzdDNEMwODgxODE0OUYyMzAwMzY4OEI5
IC8qIFdLQmFja0ZvcndhcmRMaXN0SXRlbUludGVybmFsLmggKi8sCiAJCQkJMUE5RjI4MTAxOTU4
RjQ3ODAwOENBQzcyIC8qIFdLQmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oICovLAorCQkJCTFBNTcw
NEYwMUJFMDE3M0YwMDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZvLmggKi8sCisJCQkJMUE1NzA0RUYx
QkUwMTczRjAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8ubW0gKi8sCisJCQkJOTM5NUU2OEQxQkY0
MTBGRDAwRjQ5QkNFIC8qIFdLRWxlbWVudEluZm9JbnRlcm5hbC5oICovLAogCQkJCTFBRjQ1OTJE
MTk0NjRCMjAwMEY5RDRBMiAvKiBXS0Vycm9yLmggKi8sCiAJCQkJMUFGNDU5MkMxOTQ2NEIyMDAw
RjlENEEyIC8qIFdLRXJyb3IubW0gKi8sCiAJCQkJMUEyRDI1MkExOTQ2ODhGRDAwNDUzN0IwIC8q
IFdLRXJyb3JJbnRlcm5hbC5oICovLApAQCAtNTA1NCw4ICs1MDQ4LDE0IEBACiAJCQkJMUFGREQz
MTgxODkxQ0ExMjAwMTUzOTcwIC8qIFdLUHJlZmVyZW5jZXMubW0gKi8sCiAJCQkJMUEzQzg4N0Yx
OEE1QUJBRTAwQzRDOTYyIC8qIFdLUHJlZmVyZW5jZXNJbnRlcm5hbC5oICovLAogCQkJCTdDOEVC
MTE2MThEQjZBMTkwMDc5MTdDMiAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovLAotCQkJCTkz
QTI1M0YyMUM5MjQxMTIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZh
dGUuaCAqLywKLQkJCQk5M0EyNTNGNDFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9u
SWRlbnRpZmllcnNQcml2YXRlLm1tICovLAorCQkJCTkzQTI1M0VDMUM5MjJFMUUwMEY5RjY4RCAv
KiBXS1ByZXZpZXdBY3Rpb25JdGVtLmggKi8sCisJCQkJOTNBMjUzRUUxQzkyMkU4RTAwRjlGNjhE
IC8qIFdLUHJldmlld0FjdGlvbkl0ZW0ubW0gKi8sCisJCQkJOTM3MzVFQkExQzkyOTg2MzAwMzM2
RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oICovLAorCQkJCTkzQTI1M0YyMUM5
MjQxMTIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaCAqLywKKwkJ
CQk5M0EyNTNGNDFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZp
ZXJzLm1tICovLAorCQkJCTkzOTVFNjg5MUJGMkMzMzIwMEY0OUJDRSAvKiBXS1ByZXZpZXdFbGVt
ZW50SW5mby5oICovLAorCQkJCTkzOTVFNjhCMUJGMkMzNTIwMEY0OUJDRSAvKiBXS1ByZXZpZXdF
bGVtZW50SW5mby5tbSAqLywKKwkJCQk5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogV0tQcmV2
aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oICovLAogCQkJCTFBMTU4NDE4MTg5MDQ0RjUwMDE3NjE2
QyAvKiBXS1Byb2Nlc3NQb29sLmggKi8sCiAJCQkJMUExNTg0MTcxODkwNDRGNTAwMTc2MTZDIC8q
IFdLUHJvY2Vzc1Bvb2wubW0gKi8sCiAJCQkJMUEzQ0MxNjgxODkwN0VCMDAwMUU2RUQ4IC8qIFdL
UHJvY2Vzc1Bvb2xJbnRlcm5hbC5oICovLApAQCAtNzE0NSw3ICs3MTQ1LDcgQEAKIAkJCQkzNzlB
ODczQTE4QkJGRTBGMDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzc5QTg3M0MxOEJCRkYwNzAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb25JbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTkwRDI4QkIxQzY1MzlEMzAwOTg2OTc3IC8qIEF1dG9t
YXRpb25TZXNzaW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQkxQTU3MDRGMjFCRTAxNzQw
MDA4NzRBRjEgLyogX1dLRWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTFBNTcwNEYy
MUJFMDE3NDAwMDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUQwMUJDOTE5MDVEMzdFMDBDOUM0NUYgLyogX1dLRXJyb3JSZWNvdmVyeUF0dGVtcHRpbmcuaCBp
biBIZWFkZXJzICovLAogCQkJCTAwNUQxNThGMThFNEM0RUIwMDczNDYxOSAvKiBfV0tGaW5kRGVs
ZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QTVFQkJDMUM3QkE0M0UwMEI5Q0E2OSAvKiBX
S0ZyYW1lSGFuZGxlUmVmLmggaW4gSGVhZGVycyAqLywKQEAgLTcyMDQsNyArNzIwNCw3IEBACiAJ
CQkJN0MxQkEzM0UxQTRBMEU2MDAwNDNFMjQ5IC8qIEFQSURpY3Rpb25hcnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFGN0QzNkMxMThEQTUxM0YwMEQ5RDY1OSAvKiBBUElEb3dubG9hZENsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2QTRBNUQxMjBBMkNDRDAwQzA1QjdGIC8qIEFQSUVycm9y
LmggaW4gSGVhZGVycyAqLywKLQkJCQk5Mzk1RTY4RTFCRjQxMEZEMDBGNDlCQ0UgLyogX1dLRWxl
bWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5NUU2OEUxQkY0MTBGRDAw
RjQ5QkNFIC8qIFdLRWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDBC
OTY2MTYxOEUyNENCQTAwQ0UxRjg4IC8qIEFQSUZpbmRDbGllbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTJERDY3QTJFMUJEODE5NzMwMDUzQjI1MSAvKiBBUElGaW5kTWF0Y2hlc0NsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzdFMjVENkUxOEZERTVENjAwNUQzQTAwIC8qIEFQSUZvcm1DbGll
bnQuaCBpbiBIZWFkZXJzICovLApAQCAtNzM3MywxNCArNzM3MywxNCBAQAogCQkJCTFBQkMzREY2
MTg5OUU0MzcwMDRGMDYyNiAvKiBOYXZpZ2F0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBNkZCQTJBMTFFNjg2MjcwMERCMTM3MSAvKiBOZXRzY2FwZUJyb3dzZXJGdW5jcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTkwRDI4QUIxQzY0MjBDNjAwOTg2OTc3IC8qIF9XS0F1dG9tYXRpb25T
ZXNzaW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQk5MzczNUVCQjFDOTI5ODYzMDAzMzZGQTcgLyog
X1dLUHJldmlld0FjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzczNUVCQjFD
OTI5ODYzMDAzMzZGQTcgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUUyODY4MDFDN0Y5MkMwMDA2OUFDNEYgLyogX1dLV2Vic2l0ZURhdGFTaXpl
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNkZCRDI4MTFFNjlCQzIwMERCMTM3MSAv
KiBOZXRzY2FwZVBsdWdpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTlDNTYxMkI4MTZDRjAw
OEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9kdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE1
ODg5MjExRUU3MDQwMDA2MUI4ODIgLyogTmV0c2NhcGVQbHVnaW5TdHJlYW0uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxNzk4QzdBMTZFNjgxODgwMDI0MDEzOSAvKiBOZXR3b3JrQmxvYlJlZ2lzdHJ5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQzNkVDQzFBMEQwNDBCMDBFQUQyMDQgLyogTmV0d29y
a0NhY2hlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5Mzk1RTY4QTFCRjJDMzMyMDBGNDlCQ0UgLyog
X1dLUHJldmlld0VsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk5Mzk1RTY4QTFCRjJD
MzMyMDBGNDlCQ0UgLyogV0tQcmV2aWV3RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUU0OUQ0MEQ3MUFEM0ZCMTcwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTQ4OUQyOEExQTBBMkRCODAwNzhDMDZBIC8qIE5ldHdvcmtDYWNo
ZUNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg5RDI4QzFBMEEyREI4MDA3OEMwNkEgLyog
TmV0d29ya0NhY2hlQ29kZXJzLmggaW4gSGVhZGVycyAqLywKQEAgLTc0MDcsNyArNzQwNyw3IEBA
CiAJCQkJNTE2MzE5OTUxNjI4OUE2MzAwRTIyRjAwIC8qIE5ldHdvcmtQcm9jZXNzTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUUxNEE5NTRBMTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3Jr
UHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3OTU1NkUx
NjI4NzdCMzAwRkE0M0I2IC8qIE5ldHdvcmtQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLAot
CQkJCTkzQTI1M0VEMUM5MjJFMUUwMEY5RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5M0EyNTNFRDFDOTIyRTFFMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9u
SXRlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEzQTE2M0QxNjMwODhGNjAwNUQ3RDIyIC8qIE5l
dHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk1NUE2RjUx
Qzc5ODZFMDAwRUI2QTkzIC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTFGRDE4QjYxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxv
YWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC03NzI2LDcgKzc3MjYsNyBAQAogCQkJCTkzOUY0MDFD
MTlGQjBCQkMwMDJCMkI0MiAvKiBXS0FjdGlvbk1lbnVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDQjRFNDgxOEJCRTA0NDAwMEZDRkM5IC8qIFdLQWN0aW9uU2hlZXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQ0I0RTRBMThCQkUwNDQwMDBGQ0ZDOSAvKiBXS0FjdGlvblNoZWV0QXNzaXN0
YW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk5MzkxMDc0RjFCRjZCQzY1MDA4QzE3QUQgLyogX1dL
UHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOTEwNzRG
MUJGNkJDNjUwMDhDMTdBRCAvKiBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDNUZBMUVEMzE4RTEwNjIyMDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91dGVQ
aWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRERCMzJEMTI0RUMyRTEwMDQ4RDEzQyAvKiBX
S0FQSUNhc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkUzNEU1MTMwQjREMDUwMEFCRDE5QSAv
KiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTgwMzQsNyAr
ODAzNCw3IEBACiAJCQkJNzVBOEQyQzgxODdDQ0ZBQjAwQzM5QzlFIC8qIFdLV2Vic2l0ZURhdGFT
dG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzVBOEQyRDYxODdEMUMwRTAwQzM5QzlFIC8qIFdL
V2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU3MTA5RjFB
QkEwMDI3MDAyRkFCQkUgLyogV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmggaW4gSGVhZGVycyAqLywK
LQkJCQk5M0EyNTNGMzFDOTI0MTEyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmll
cnNQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0EyNTNGMzFDOTI0MTEyMDBGOUY2OEQg
LyogV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QTNDQzE2NzE4OTA2QUNGMDAxRTZFRDggLyogV0tXZWJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQURGNTkxQjE4OTA1MjhFMDA0M0MxNDUgLyogV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMkQ3QUFGRDYxOEM5NTZBRjAwQTdBQ0Q0IC8qIFdLV2ViVmlld0Nv
bmZpZ3VyYXRpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC04NjM4LDcgKzg2MzgsNyBA
QAogCQkJCTk5NTVBNkY0MUM3OTg2REMwMEVCNkE5MyAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFBNEZFNUIxOERDRTlGQTAwQjVFQThBIC8q
IF9XS0Rvd25sb2FkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5QTg3MzkxOEJCRkUwRjAwNTg4
QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb24ubW0gaW4gU291cmNlcyAqLywKLQkJCQkxQTU3MDRGMTFC
RTAxNzNGMDA4NzRBRjEgLyogX1dLRWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLywKKwkJCQkx
QTU3MDRGMTFCRTAxNzNGMDA4NzRBRjEgLyogV0tFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTFBRDAxQkM4MTkwNUQzN0UwMEM5QzQ1RiAvKiBfV0tFcnJvclJlY292ZXJ5QXR0ZW1w
dGluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3M0QxMjIyMThBNDczMDEwMDY2RDlDQyAvKiBf
V0tGcmFtZUhhbmRsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzQTg4QjM5MUJDNzBGM0YwMEFC
QTVDMiAvKiBfV0tIaXRUZXN0UmVzdWx0Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC04ODI4LDcgKzg4
MjgsNyBAQAogCQkJCUU0ODlEMjhCMUEwQTJEQjgwMDc4QzA2QSAvKiBOZXR3b3JrQ2FjaGVDb2Rl
cnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ3RDFFOTgxQjA2NDlGQjAwMjY3NkE4IC8qIE5l
dHdvcmtDYWNoZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQyRTA2MTQxQUE3NUI3MDAw
QjExNjk5IC8qIE5ldHdvcmtDYWNoZURhdGFDb2NvYS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTkz
QTI1M0Y1MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZh
dGUubW0gaW4gU291cmNlcyAqLywKKwkJCQk5M0EyNTNGNTFDOTI0MTMyMDBGOUY2OEQgLyogV0tQ
cmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ4OUQy
OEQxQTBBMkRCODAwNzhDMDZBIC8qIE5ldHdvcmtDYWNoZURlY29kZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTQ4OUQyOEYxQTBBMkRCODAwNzhDMDZBIC8qIE5ldHdvcmtDYWNoZUVuY29kZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQxM0Y1OUYxQUMxQUY5RDAwMzQ1MzYwIC8qIE5ldHdv
cmtDYWNoZUVudHJ5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtODkzMSw3ICs4OTMxLDcgQEAKIAkJ
CQlFMUNDMUI5MTEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMzc3MTZBNUExOTVCOTEwNTAwRUU4QjFCIC8qIFByb2Nlc3NBc3NlcnRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJODZGOTUzNjQxOEZGNTgzQzAwMURCMkVGIC8qIFByb2Nlc3NB
c3NlcnRpb25JT1MubW0gaW4gU291cmNlcyAqLywKLQkJCQk5Mzk1RTY4QzFCRjJDMzUyMDBGNDlC
Q0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTM5NUU2
OEMxQkYyQzM1MjAwRjQ5QkNFIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQzU1RjkxNzAxQzU5NUY2MzAwMjlFOTJEIC8qIERhdGFEZXRlY3Rpb25SZXN1bHQu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUUxMTdGNjExREJCMzA5MDA5ODE2MTUgLyogUHJvY2Vz
c0xhdW5jaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQjFEMTEyRjVGRTYwMDMzN0JB
QiAvKiBQcm9jZXNzTGF1bmNoZXJNYWMubW0gaW4gU291cmNlcyAqLywKQEAgLTkzMDQsNyArOTMw
NCw3IEBACiAJCQkJQ0RDQTg1QzgxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzU0Q0MxMzEyRDY3NEVFMDA1QzY3
QjAgLyogV0tHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwNkY0
NEYxMkRCREYzRjAwMkQ3OERFIC8qIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQk5M0EyNTNFRjFDOTIyRThFMDBGOUY2OEQgLyogX1dLUHJldmll
d0FjdGlvbi5tbSBpbiBTb3VyY2VzICovLAorCQkJCTkzQTI1M0VGMUM5MjJFOEUwMEY5RjY4RCAv
KiBXS1ByZXZpZXdBY3Rpb25JdGVtLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwRTYxOTkxMkQ2
Q0QxMjAwMTJBNzJBIC8qIFdLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwNzI5N0ZBMjFDMTg2QURCMDAzRjA3MzUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDQjRFNTAxOEJCRTA0NDAwMEZDRkM5IC8qIFdL
R2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273850</attachid>
            <date>2016-03-12 14:25:22 -0800</date>
            <delta_ts>2016-03-12 14:36:07 -0800</delta_ts>
            <desc>New patch that addresses more of Dan&apos;s comments</desc>
            <filename>for-review-api-2.txt</filename>
            <type>text/plain</type>
            <size>96433</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY1IEBACisyMDE2LTAzLTEyICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHByZXZpZXcgaW5saW5lIG5h
dmlnYXRpb24gd29yayBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NTM4MworICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisgICAgICAgIHJk
YXI6Ly9wcm9ibGVtLzI1MTE3OTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2l0aCB0aGlzIHBhdGNoOgorICAgICAgICBfV0tFbGVtZW50SW5mbyBp
cyBub3cgV0tFbGVtZW50SW5mbyBpbiBmaWxlIGFuZCBjbGFzcyBuYW1lcy4gSGVhZGVyIGlzIG5v
dyAKKyAgICAgICAgcHVibGljLgorCisgICAgICAgIF9XS1ByZXZpZXdFbGVtZW50SW5mbyBpcyBu
b3cgV0tQcmV2aWV3RWxlbWVudEluZm8gaW4gZmlsZSBhbmQgY2xhc3MgbmFtZXMuIAorICAgICAg
ICBIZWFkZXIgaXMgbm93IHB1YmxpYy4KKworICAgICAgICBfV0tQcmV2aWV3QWN0aW9uIGlzIG5v
dyBXS1ByZXZpZXdBY3Rpb25JdGVtIGluIGZpbGVuYW1lcyAoaGVhZGVyIGlzIG5vdyAKKyAgICAg
ICAgcHVibGljKSwgdGhlIHByb3RvY29sIF9XS1ByZXZpZXdBY3Rpb25JdGVtIGlzIG5vdyBXS1By
ZXZpZXdBY3Rpb25JdGVtLCBhbmQgCisgICAgICAgIHRoZSBfV0tQcmV2aWV3QWN0aW9uIGNsYXNz
IGlzIG5vdyBXS1ByZXZpZXdBY3Rpb24uIChUaGUgaW50ZXJuYWwgaGVhZGVyIGlzIAorICAgICAg
ICBzdGlsbCBwcm9qZWN0LCBvZiBjb3Vyc2UuKQorICAgICAgICBhbmQKKyAgICAgICAgV0tQcmV2
aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmgvbW0gaXMgbm93CisgICAgICAgIFdLUHJldmll
d0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oL21tIGFuZCBhbGwgdGhlIHRoZSBpZGVudGlmaWVycyBo
YXZlIGJlZW4gCisgICAgICAgIHVwZGF0ZWQuIEhlYWRlciBpcyBub3cgcHVibGljLgorCisgICAg
ICAgICogU2hhcmVkL0FQSS9Db2NvYS9XZWJLaXQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLRWxlbWVudEluZm8uaDogQ29waWVkIGZyb20gVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tFbGVtZW50SW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50
SW5mby5tbTogQ29waWVkIGZyb20gVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5t
bS4KKyAgICAgICAgKC1bV0tFbGVtZW50SW5mbyBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICgt
W19XS0VsZW1lbnRJbmZvIGNvcHlXaXRoWm9uZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm9JbnRlcm5hbC5oOiBDb3BpZWQgZnJvbSBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSWRlbnRp
ZmllcnNQcml2YXRlLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmV2aWV3QWN0aW9uSXRlbS5oOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1ByZXZpZXdBY3Rpb24uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmll
d0FjdGlvbkl0ZW0ubW06IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmll
d0FjdGlvbi5tbS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlv
bkl0ZW1JZGVudGlmaWVycy5oOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
dmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tOiBDb3BpZWQgZnJvbSBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5tbS4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5o
OiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdBY3Rpb25JbnRlcm5h
bC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8u
aDogQ29waWVkIGZyb20gVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8u
aC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLm1t
OiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5t
bS4KKyAgICAgICAgKC1bV0tQcmV2aWV3RWxlbWVudEluZm8gX2luaXRXaXRoTGlua1VSTDpdKToK
KyAgICAgICAgKC1bX1dLUHJldmlld0VsZW1lbnRJbmZvIF9pbml0V2l0aExpbmtVUkw6XSk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5m
b0ludGVybmFsLmg6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlE
ZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ29udGV4dE1lbnVFbGVt
ZW50SW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8u
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZv
Lm1tOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudElu
Zm9JbnRlcm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UHJldmlld0FjdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJldmlld0FjdGlvbi5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmg6IFJlbW92ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8ubW06IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm9JbnRl
cm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9pbnRlcmFjdGlvblNob3Vs
ZEJlZ2luRnJvbVByZXZpZXdJdGVtQ29udHJvbGxlcjpmb3JQb3NpdGlvbjpdKToKKyAgICAgICAg
KHByZXZpZXdJZGVudGlmaWVyRm9yRWxlbWVudEFjdGlvbik6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX3ByZXNlbnRlZFZpZXdDb250cm9sbGVyRm9yUHJldmlld0l0ZW1Db250cm9sbGVyOl0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI6Y29tbWl0
UHJldmlldzpdKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKIDIwMTYtMDMtMTIgIEplcmVteSBIdWRkbGVzdG9uIFNlcXVvaWEgIDxqZXJlbXlodUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0dUS11bTWFjXSBVc2UgRFlMRF9MSUJSQVJZX1BBVEggb24gT1NY
IHJhdGhlciB0aGVuIExEX0xJQlJBUllfUEFUSApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9Db2NvYS9XZWJLaXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0NvY29hL1dlYktpdC5oCShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL0NvY29hL1dlYktpdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBA
CiAKICNpbXBvcnQgPFdlYktpdC9XS0JhY2tGb3J3YXJkTGlzdC5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRWxlbWVudEluZm8u
aD4KICNpbXBvcnQgPFdlYktpdC9XS0Vycm9yLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0
aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tGcmFtZUluZm8uaD4KQEAgLTMzLDYgKzM0LDkgQEAK
ICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLTmF2aWdhdGlvblJlc3BvbnNlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlcy5o
PgorI2ltcG9ydCA8V2ViS2l0L1dLUHJldmlld0FjdGlvbkl0ZW0uaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1By
ZXZpZXdFbGVtZW50SW5mby5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2wuaD4KICNp
bXBvcnQgPFdlYktpdC9XS1NjcmlwdE1lc3NhZ2UuaD4KICNpbXBvcnQgPFdlYktpdC9XS1Njcmlw
dE1lc3NhZ2VIYW5kbGVyLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLRWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm8uaAkocmV2aXNpb24gMTk4MDY5KQkoZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLmg6MTk4MDY5KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktp
dC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKK05TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCisKK1dLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQor
QGludGVyZmFjZSBfV0tFbGVtZW50SW5mbyA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CisKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKmxpbmtVUkw7CisKK0BlbmQKKworTlNf
QVNTVU1FX05PTk5VTExfRU5ECisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSwxNyArMjUsMTMgQEAKIAogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRh
dGlvbi5oPgogCi0jaWYgV0tfQVBJX0VOQUJMRUQKLQogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4K
IAogV0tfQ0xBU1NfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpCi1AaW50ZXJmYWNl
IF9XS0VsZW1lbnRJbmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KK0BpbnRlcmZhY2UgV0tFbGVt
ZW50SW5mbyA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgTlNVUkwgKmxpbmtVUkw7CiAKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5E
Ci0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vs
ZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tFbGVtZW50SW5mby5tbQkocmV2aXNpb24gMTk4MDY5KQkoZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLm1tOjE5ODA2OSkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJfV0tFbGVtZW50SW5mb0ludGVybmFsLmgiCisKKyNpZiBXS19BUElfRU5BQkxF
RAorCitAaW1wbGVtZW50YXRpb24gX1dLRWxlbWVudEluZm8KKworLSAoaWQpY29weVdpdGhab25l
OihOU1pvbmUgKil6b25lCit7CisgICAgcmV0dXJuIFtzZWxmIHJldGFpbl07Cit9CisKKy0gKE5T
VVJMICopbGlua1VSTAoreworICAgIHJldHVybiBfbGlua1VSTC5nZXQoKTsKK30KKworQGVuZAor
CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVt
ZW50SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLRWxlbWVudEluZm8ubW0JKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQs
MTEgKzI0LDkgQEAKICAqLwogCiAjaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIl9XS0VsZW1l
bnRJbmZvSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLRWxlbWVudEluZm9JbnRlcm5hbC5oIgogCi0j
aWYgV0tfQVBJX0VOQUJMRUQKLQotQGltcGxlbWVudGF0aW9uIF9XS0VsZW1lbnRJbmZvCitAaW1w
bGVtZW50YXRpb24gV0tFbGVtZW50SW5mbwogCiAtIChpZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAq
KXpvbmUKIHsKQEAgLTQxLDUgKzM5LDMgQEAgLSAoTlNVUkwgKilsaW5rVVJMCiB9CiAKIEBlbmQK
LQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRWxl
bWVudEluZm9JbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mb0ludGVybmFsLmgJKHJldmlzaW9uIDE5ODA2OSkJKGZy
b20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mb0ludGVy
bmFsLmg6MTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiX1dLRWxlbWVudEluZm8uaCIKKworI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworQGludGVyZmFjZSBfV0tFbGVtZW50SW5m
byAoKSB7CitAcGFja2FnZQorICAgIFJldGFpblB0cjxOU1VSTD4gX2xpbmtVUkw7Cit9CisKK0Bl
bmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mb0ludGVybmFsLmgJ
KHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tF
bGVtZW50SW5mb0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDE3ICsyMywxMyBAQAog
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbXBvcnQgIl9XS0Vs
ZW1lbnRJbmZvLmgiCisjaW1wb3J0ICJXS0VsZW1lbnRJbmZvLmgiCiAKICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KIAotI2lmIFdLX0FQSV9FTkFCTEVECi0KLUBpbnRlcmZhY2UgX1dLRWxlbWVu
dEluZm8gKCkgeworQGludGVyZmFjZSBXS0VsZW1lbnRJbmZvICgpIHsKIEBwYWNrYWdlCiAgICAg
UmV0YWluUHRyPE5TVVJMPiBfbGlua1VSTDsKIH0KIAogQGVuZAotCi0jZW5kaWYgLy8gV0tfQVBJ
X0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2
aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUu
aAkocmV2aXNpb24gMTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotCi0jaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9u
Lmg+Ci0KLSNpZiBXS19BUElfRU5BQkxFRAotCi0jaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRp
b24uaD4KLSNpbXBvcnQgPFdlYktpdC9XS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oPgotCi1XS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJPcGVuIFdL
X0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICog
Y29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0IFdLX0FWQUlMQUJMRShO
QSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJl
dmlld0lkZW50aWZpZXJDb3B5IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBP
UlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJTaGFyZSBXS19B
VkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2
aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tCShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbklkZW50aWZpZXJz
UHJpdmF0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMSwzNiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldLUHJldmlld0FjdGlvbklkZW50aWZpZXJz
UHJpdmF0ZS5oIgotCi0jaWYgV0tfQVBJX0VOQUJMRUQKLQotTlNTdHJpbmcgKiBjb25zdCBfV0tQ
cmV2aWV3SWRlbnRpZmllck9wZW4gPSBAIldLUHJldmlld0lkZW50aWZpZXJPcGVuIjsKLU5TU3Ry
aW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0ID0gQCJXS1By
ZXZpZXdJZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdCI7Ci1OU1N0cmluZyAqIGNvbnN0IF9XS1By
ZXZpZXdJZGVudGlmaWVyQ29weSA9IEAiV0tQcmV2aWV3SWRlbnRpZmllckNvcHkiOwotTlNTdHJp
bmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllclNoYXJlID0gQCJXS1ByZXZpZXdJZGVudGlm
aWVyU2hhcmUiOwotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5oCShyZXZpc2lvbiAxOTgw
NjkpCShmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0Fj
dGlvbi5oOjE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmV2aWV3QWN0aW9uSXRlbS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5B
QkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCisKKyNpbXBvcnQgPFVJS2l0L1VJVmlld0NvbnRyb2xs
ZXIuaD4KKworV0tfQ0xBU1NfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKQorQHByb3RvY29sIF9X
S1ByZXZpZXdBY3Rpb25JdGVtIDxOU09iamVjdCwgVUlQcmV2aWV3QWN0aW9uSXRlbT4KKworQHBy
b3BlcnR5KG5vbmF0b21pYywgY29weSwgcmVhZG9ubHkpIE5TU3RyaW5nICppZGVudGlmaWVyOwor
CitAZW5kCisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0
ZW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJldmlld0FjdGlvbkl0ZW0uaAkod29ya2luZyBjb3B5KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI1LDE1ICsyNSwxNSBAQAogCiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKLSNp
ZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCisjaWYgVEFSR0VUX09TX0lQSE9O
RQogCiAjaW1wb3J0IDxVSUtpdC9VSVZpZXdDb250cm9sbGVyLmg+CiAKLVdLX0NMQVNTX0FWQUlM
QUJMRShOQSwgV0tfSU9TX1RCQSkKLUBwcm90b2NvbCBfV0tQcmV2aWV3QWN0aW9uSXRlbSA8TlNP
YmplY3QsIFVJUHJldmlld0FjdGlvbkl0ZW0+CitXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEp
CitAcHJvdG9jb2wgV0tQcmV2aWV3QWN0aW9uSXRlbSA8VUlQcmV2aWV3QWN0aW9uSXRlbT4KIAot
QHByb3BlcnR5KG5vbmF0b21pYywgY29weSwgcmVhZG9ubHkpIE5TU3RyaW5nICppZGVudGlmaWVy
OworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHJlYWRvbmx5KSBOU1N0cmluZyAqaWRlbnRp
ZmllcjsKIAogQGVuZAogCi0jZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQ
SE9ORQorI2VuZGlmIC8vIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0ubW0J
KHJldmlzaW9uIDE5ODA2OSkJKGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tQcmV2aWV3QWN0aW9uLm1tOjE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbQkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJfV0tQ
cmV2aWV3QWN0aW9uSW50ZXJuYWwuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9P
U19JUEhPTkUKKworQGltcGxlbWVudGF0aW9uIF9XS1ByZXZpZXdBY3Rpb24KK0BzeW50aGVzaXpl
IGlkZW50aWZpZXI9X2lkZW50aWZpZXI7CisKKysgKGluc3RhbmNldHlwZSlhY3Rpb25XaXRoSWRl
bnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIHN0
eWxlOihVSVByZXZpZXdBY3Rpb25TdHlsZSlzdHlsZSBoYW5kbGVyOih2b2lkICheKShVSVByZXZp
ZXdBY3Rpb24gKmFjdGlvbiwgVUlWaWV3Q29udHJvbGxlciAqcHJldmlld1ZpZXdDb250cm9sbGVy
KSloYW5kbGVyCit7CisgICAgX1dLUHJldmlld0FjdGlvbiAqYWN0aW9uID0gW3NlbGYgYWN0aW9u
V2l0aFRpdGxlOnRpdGxlIHN0eWxlOnN0eWxlIGhhbmRsZXI6aGFuZGxlcl07CisgICAgYWN0aW9u
LT5faWRlbnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgcmV0dXJuIGFjdGlvbjsKK30KKworQGVu
ZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2
aWV3QWN0aW9uSXRlbS5tbQkod29ya2luZyBjb3B5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0y
NCwyMCArMjQsMjAgQEAKICAqLwogCiAjaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIl9XS1By
ZXZpZXdBY3Rpb25JbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tQcmV2aWV3QWN0aW9uSXRlbUludGVy
bmFsLmgiCiAKLSNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCisjaWYgVEFS
R0VUX09TX0lQSE9ORQogCi1AaW1wbGVtZW50YXRpb24gX1dLUHJldmlld0FjdGlvbgorQGltcGxl
bWVudGF0aW9uIFdLUHJldmlld0FjdGlvbgogQHN5bnRoZXNpemUgaWRlbnRpZmllcj1faWRlbnRp
ZmllcjsKIAogKyAoaW5zdGFuY2V0eXBlKWFjdGlvbldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAq
KWlkZW50aWZpZXIgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgc3R5bGU6KFVJUHJldmlld0FjdGlv
blN0eWxlKXN0eWxlIGhhbmRsZXI6KHZvaWQgKF4pKFVJUHJldmlld0FjdGlvbiAqYWN0aW9uLCBV
SVZpZXdDb250cm9sbGVyICpwcmV2aWV3Vmlld0NvbnRyb2xsZXIpKWhhbmRsZXIKIHsKLSAgICBf
V0tQcmV2aWV3QWN0aW9uICphY3Rpb24gPSBbc2VsZiBhY3Rpb25XaXRoVGl0bGU6dGl0bGUgc3R5
bGU6c3R5bGUgaGFuZGxlcjpoYW5kbGVyXTsKKyAgICBXS1ByZXZpZXdBY3Rpb24gKmFjdGlvbiA9
IFtzZWxmIGFjdGlvbldpdGhUaXRsZTp0aXRsZSBzdHlsZTpzdHlsZSBoYW5kbGVyOmhhbmRsZXJd
OwogICAgIGFjdGlvbi0+X2lkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIHJldHVybiBhY3Rp
b247CiB9CiAKIEBlbmQKIAotI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19J
UEhPTkUKKyNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05FCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0
aW9uSXRlbUlkZW50aWZpZXJzLmgJKHJldmlzaW9uIDE5ODA2OSkJKGZyb20gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUu
aDoxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmll
d0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdL
X0FQSV9FTkFCTEVECisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2ltcG9y
dCA8V2ViS2l0L1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmg+CisKK1dLX0VYUE9SVCBleHRlcm4g
TlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllck9wZW4gV0tfQVZBSUxBQkxFKE5B
LCBXS19JT1NfVEJBKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2
aWV3SWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJB
KTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmll
ckNvcHkgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNT
dHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllclNoYXJlIFdLX0FWQUlMQUJMRShOQSwg
V0tfSU9TX1RCQSk7CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVu
dGlmaWVycy5oCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiwxNCArMjYsOSBAQAogCiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKLSNp
ZiBXS19BUElfRU5BQkxFRAotCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KLSNp
bXBvcnQgPFdlYktpdC9XS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oPgotCi1XS19FWFBPUlQgZXh0
ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJPcGVuIFdLX0FWQUlMQUJM
RShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dL
UHJldmlld0lkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9T
X1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50
aWZpZXJDb3B5IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJu
IE5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJTaGFyZSBXS19BVkFJTEFCTEUo
TkEsIFdLX0lPU19UQkEpOwogCi0jZW5kaWYKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdL
UHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyT3BlbiBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19U
QkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50
aWZpZXJBZGRUb1JlYWRpbmdMaXN0IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CitXS19F
WFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckNvcHkg
V0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0
IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyU2hhcmUgV0tfQVZBSUxBQkxFKE5BLCBXS19J
T1NfVEJBKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2
aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tCShy
ZXZpc2lvbiAxOTgwNjkpCShmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tOjE5ODA2OSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJz
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRl
LmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCitOU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJ
ZGVudGlmaWVyT3BlbiA9IEAiV0tQcmV2aWV3SWRlbnRpZmllck9wZW4iOworTlNTdHJpbmcgKiBj
b25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QgPSBAIldLUHJldmlld0lk
ZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0IjsKK05TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lk
ZW50aWZpZXJDb3B5ID0gQCJXS1ByZXZpZXdJZGVudGlmaWVyQ29weSI7CitOU1N0cmluZyAqIGNv
bnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyU2hhcmUgPSBAIldLUHJldmlld0lkZW50aWZpZXJTaGFy
ZSI7CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMu
bW0JKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwx
MyArMjQsOSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXS1ByZXZp
ZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaCIKKyNpbmNsdWRlICJXS1ByZXZpZXdBY3Rpb25J
dGVtSWRlbnRpZmllcnMuaCIKIAotI2lmIFdLX0FQSV9FTkFCTEVECi0KLU5TU3RyaW5nICogY29u
c3QgX1dLUHJldmlld0lkZW50aWZpZXJPcGVuID0gQCJXS1ByZXZpZXdJZGVudGlmaWVyT3BlbiI7
Ci1OU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdCA9
IEAiV0tQcmV2aWV3SWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QiOwotTlNTdHJpbmcgKiBjb25z
dCBfV0tQcmV2aWV3SWRlbnRpZmllckNvcHkgPSBAIldLUHJldmlld0lkZW50aWZpZXJDb3B5IjsK
LU5TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJTaGFyZSA9IEAiV0tQcmV2aWV3
SWRlbnRpZmllclNoYXJlIjsKLQotI2VuZGlmCitOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0Fj
dGlvbkl0ZW1JZGVudGlmaWVyT3BlbiA9IEAiV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJP
cGVuIjsKK05TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJBZGRU
b1JlYWRpbmdMaXN0ID0gQCJXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckFkZFRvUmVhZGlu
Z0xpc3QiOworTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckNv
cHkgPSBAIldLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyQ29weSI7CitOU1N0cmluZyAqIGNv
bnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyU2hhcmUgPSBAIldLUHJldmlld0FjdGlv
bkl0ZW1JZGVudGlmaWVyU2hhcmUiOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5h
bC5oCShyZXZpc2lvbiAxOTgwNjkpCShmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLUHJldmlld0FjdGlvbkludGVybmFsLmg6MTk4MDY5KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV0tGb3Vu
ZGF0aW9uLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCisKKyNp
bXBvcnQgIl9XS1ByZXZpZXdBY3Rpb24uaCIKKworQGludGVyZmFjZSBfV0tQcmV2aWV3QWN0aW9u
IDogVUlQcmV2aWV3QWN0aW9uIDxOU0NvcHlpbmcsIF9XS1ByZXZpZXdBY3Rpb25JdGVtPgorCisr
IChpbnN0YW5jZXR5cGUpYWN0aW9uV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmll
ciB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBzdHlsZTooVUlQcmV2aWV3QWN0aW9uU3R5bGUpc3R5
bGUgaGFuZGxlcjoodm9pZCAoXikoVUlQcmV2aWV3QWN0aW9uICphY3Rpb24sIFVJVmlld0NvbnRy
b2xsZXIgKnByZXZpZXdWaWV3Q29udHJvbGxlcikpaGFuZGxlcjsKKworQGVuZAorCisjZW5kaWYg
Ly8gV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0Fj
dGlvbkl0ZW1JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSwxNCArMjUsMTQgQEAKIAogI2ltcG9ydCAiV0tGb3VuZGF0aW9uLmgiCiAKLSNp
ZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCisjaWYgVEFSR0VUX09TX0lQSE9O
RQogCi0jaW1wb3J0ICJfV0tQcmV2aWV3QWN0aW9uLmgiCisjaW1wb3J0ICJXS1ByZXZpZXdBY3Rp
b25JdGVtLmgiCiAKLUBpbnRlcmZhY2UgX1dLUHJldmlld0FjdGlvbiA6IFVJUHJldmlld0FjdGlv
biA8TlNDb3B5aW5nLCBfV0tQcmV2aWV3QWN0aW9uSXRlbT4KK0BpbnRlcmZhY2UgV0tQcmV2aWV3
QWN0aW9uIDogVUlQcmV2aWV3QWN0aW9uIDxOU0NvcHlpbmcsIFdLUHJldmlld0FjdGlvbkl0ZW0+
CiAKICsgKGluc3RhbmNldHlwZSlhY3Rpb25XaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVu
dGlmaWVyIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIHN0eWxlOihVSVByZXZpZXdBY3Rpb25TdHls
ZSlzdHlsZSBoYW5kbGVyOih2b2lkICheKShVSVByZXZpZXdBY3Rpb24gKmFjdGlvbiwgVUlWaWV3
Q29udHJvbGxlciAqcHJldmlld1ZpZXdDb250cm9sbGVyKSloYW5kbGVyOwogCiBAZW5kCiAKLSNl
bmRpZiAvLyBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCisjZW5kaWYgLy8gVEFS
R0VUX09TX0lQSE9ORQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZXZpZXdFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8uaAkocmV2aXNpb24gMTk4MDY5KQko
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50
SW5mby5oOjE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmV2aWV3RWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VO
QUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQorCisjaW1wb3J0IDxXZWJLaXQvX1dLRWxlbWVudElu
Zm8uaD4KKworTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KKworV0tfQ0xBU1NfQVZBSUxBQkxFKE5B
LCBXS19JT1NfVEJBKQorQGludGVyZmFjZSBfV0tQcmV2aWV3RWxlbWVudEluZm8gOiBfV0tFbGVt
ZW50SW5mbworCitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORAorCisjZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
dmlld0VsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAt
MjUsMTQgKzI1LDE0IEBACiAKICNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KIAotI2lm
IFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKKyNpZiBUQVJHRVRfT1NfSVBIT05F
CiAKLSNpbXBvcnQgPFdlYktpdC9fV0tFbGVtZW50SW5mby5oPgorI2ltcG9ydCA8V2ViS2l0L1dL
RWxlbWVudEluZm8uaD4KIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogV0tfQ0xBU1NfQVZB
SUxBQkxFKE5BLCBXS19JT1NfVEJBKQotQGludGVyZmFjZSBfV0tQcmV2aWV3RWxlbWVudEluZm8g
OiBfV0tFbGVtZW50SW5mbworQGludGVyZmFjZSBXS1ByZXZpZXdFbGVtZW50SW5mbyA6IFdLRWxl
bWVudEluZm8KIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJldmlld0VsZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8ubW0JKHJldmlzaW9uIDE5
ODA2OSkJKGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3
RWxlbWVudEluZm8ubW06MTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJfV0tQcmV2aWV3
RWxlbWVudEluZm9JbnRlcm5hbC5oIgorCisjaW1wb3J0ICJfV0tFbGVtZW50SW5mb0ludGVybmFs
LmgiCisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBQ
TEFURk9STShJT1MpCisKK0BpbXBsZW1lbnRhdGlvbiBfV0tQcmV2aWV3RWxlbWVudEluZm8KKwor
LSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aExpbmtVUkw6KE5TVVJMICopdXJsCit7CisgICAgaWYg
KCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfbGlu
a1VSTCA9IGFkb3B0TlMoW3VybCBjb3B5XSk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworQGVu
ZAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmV2aWV3RWxlbWVudEluZm8ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjQsMTQgKzI0LDE0IEBACiAgKi8KIAogI2ltcG9ydCAiY29u
ZmlnLmgiCi0jaW1wb3J0ICJfV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oIgorI2ltcG9y
dCAiV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oIgogCi0jaW1wb3J0ICJfV0tFbGVtZW50
SW5mb0ludGVybmFsLmgiCisjaW1wb3J0ICJXS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAotI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKElP
UykKKyNpZiBQTEFURk9STShJT1MpCiAKLUBpbXBsZW1lbnRhdGlvbiBfV0tQcmV2aWV3RWxlbWVu
dEluZm8KK0BpbXBsZW1lbnRhdGlvbiBXS1ByZXZpZXdFbGVtZW50SW5mbwogCiAtIChpbnN0YW5j
ZXR5cGUpX2luaXRXaXRoTGlua1VSTDooTlNVUkwgKil1cmwKIHsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3
RWxlbWVudEluZm9JbnRlcm5hbC5oCShyZXZpc2lvbiAxOTgwNjkpCShmcm9tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaDox
OTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiX1dLUHJldmlld0VsZW1lbnRJbmZvLmgiCisKKyNpZiBXS19BUElf
RU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCisKK0BpbnRlcmZhY2UgX1dLUHJldmlld0VsZW1l
bnRJbmZvICgpCisKKy0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhMaW5rVVJMOihOU1VSTCAqKXVy
bDsKKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3
RWxlbWVudEluZm9JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjMsMTQgKzIzLDE0IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotI2ltcG9ydCAiX1dLUHJldmlld0VsZW1lbnRJbmZvLmgiCisjaW1wb3J0
ICJXS1ByZXZpZXdFbGVtZW50SW5mby5oIgogCi0jaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VU
X09TX0lQSE9ORQorI2lmIFRBUkdFVF9PU19JUEhPTkUKIAotQGludGVyZmFjZSBfV0tQcmV2aWV3
RWxlbWVudEluZm8gKCkKK0BpbnRlcmZhY2UgV0tQcmV2aWV3RWxlbWVudEluZm8gKCkKIAogLSAo
aW5zdGFuY2V0eXBlKV9pbml0V2l0aExpbmtVUkw6KE5TVVJMICopdXJsOwogCiBAZW5kCiAKLSNl
bmRpZiAvLyBXS19BUElfRU5BQkxFRAorI2VuZGlmIC8vIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUu
aAkocmV2aXNpb24gMTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VJRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTEgKzI4LDEzIEBACiAjaWYg
V0tfQVBJX0VOQUJMRUQKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisjaW1w
b3J0IDxXZWJLaXQvV0tQcmV2aWV3QWN0aW9uSXRlbS5oPgogCiBOU19BU1NVTUVfTk9OTlVMTF9C
RUdJTgogCiBAY2xhc3MgV0tGcmFtZUluZm87CiBAY2xhc3MgV0tOYXZpZ2F0aW9uQWN0aW9uOwor
QGNsYXNzIFdLUHJldmlld0VsZW1lbnRJbmZvOwogQGNsYXNzIFdLV2ViVmlld0NvbmZpZ3VyYXRp
b247CiBAY2xhc3MgV0tXaW5kb3dGZWF0dXJlczsKIApAQCAtMTE0LDggKzExNiw0NSBAQCBOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgogICovCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDooTlNTdHJpbmcgKilw
cm9tcHQgZGVmYXVsdFRleHQ6KG51bGxhYmxlIE5TU3RyaW5nICopZGVmYXVsdFRleHQgaW5pdGlh
dGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoTlNTdHJpbmcgKiBXS19OVUxMQUJMRV9TUEVDSUZJRVIgcmVzdWx0KSljb21wbGV0aW9uSGFu
ZGxlcjsKIAorI2lmIFRBUkdFVF9PU19JUEhPTkUKKworLyohIEBhYnN0cmFjdCBBbGxvd3MgeW91
ciBhcHAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiBlbGVtZW50IHNob3Vs
ZCBzaG93IGEgcHJldmlldy4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcg
dGhlIGRlbGVnYXRlIG1ldGhvZC4KKyBAcGFyYW0gZWxlbWVudEluZm8gVGhlIGVsZW1lbnRJbmZv
IGZvciB0aGUgZWxlbWVudCB0aGUgdXNlciBoYXMgc3RhcnRlZCB0b3VjaGluZy4KKyBAZGlzY3Vz
c2lvbiBUbyBkaXNhYmxlIHByZXZpZXdzIGVudGlyZWx5IGZvciB0aGUgZ2l2ZW4gZWxlbWVudCwg
cmV0dXJuIE5PLiBSZXR1cm5pbmcgTk8gd2lsbCBwcmV2ZW50IAorIHdlYlZpZXc6cHJldmlld2lu
Z1ZpZXdDb250cm9sbGVyRm9yRWxlbWVudDpkZWZhdWx0QWN0aW9uczogYW5kIHdlYlZpZXc6Y29t
bWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOgorIGZyb20gYmVpbmcgaW52b2tlZC4KKyAKKyBU
aGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgaW52b2tlZCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGRl
ZmF1bHQgcHJldmlldyBpbiBXZWJLaXQsIHdoaWNoIGlzCisgbGltaXRlZCB0byBsaW5rcy4gSW4g
dGhlIGZ1dHVyZSwgaXQgY291bGQgYmUgaW52b2tlZCBmb3IgYWRkaXRpb25hbCBlbGVtZW50cy4K
KyAqLworLSAoQk9PTCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZFByZXZpZXdF
bGVtZW50OihXS1ByZXZpZXdFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FWQUlMQUJMRShO
QSwgV0tfSU9TX1RCQSk7CisKKy8qISBAYWJzdHJhY3QgQWxsb3dzIHlvdXIgYXBwIHRvIHByb3Zp
ZGUgYSBjdXN0b20gdmlldyBjb250cm9sbGVyIHRvIHNob3cgd2hlbiB0aGUgZ2l2ZW4gZWxlbWVu
dCBpcyBwZWVrZWQuCisgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBk
ZWxlZ2F0ZSBtZXRob2QuCisgQHBhcmFtIGVsZW1lbnRJbmZvIFRoZSBlbGVtZW50SW5mbyBmb3Ig
dGhlIGVsZW1lbnQgdGhlIHVzZXIgaXMgcGVla2luZy4KKyBAcGFyYW0gZGVmYXVsdEFjdGlvbnMg
QW4gYXJyYXkgb2YgdGhlIGFjdGlvbnMgdGhhdCBXZWJLaXQgd291bGQgdXNlIGFzIHByZXZpZXdB
Y3Rpb25JdGVtcyBmb3IgdGhpcyBlbGVtZW50IGJ5IAorIGRlZmF1bHQuIFRoZXNlIGFjdGlvbnMg
d291bGQgYmUgdXNlZCBpZiBhbGxvd3NMaW5rUHJldmlldyBpcyBZRVMgYnV0IHRoZXNlIGRlbGVn
YXRlIG1ldGhvZHMgaGF2ZSBub3QgYmVlbiAKKyBpbXBsZW1lbnRlZCwgb3IgaWYgdGhpcyBkZWxl
Z2F0ZSBtZXRob2QgcmV0dXJucyBuaWwuCisgQGRpc2N1c3Npb24gUmV0dXJuaW5nIGEgdmlldyBj
b250cm9sbGVyIHdpbGwgcmVzdWx0IGluIHRoYXQgdmlldyBjb250cm9sbGVyIGJlaW5nIGRpc3Bs
YXllZCBhcyBhIHBlZWsgcHJldmlldy4KKyBUbyB1c2UgdGhlIGRlZmF1bHRBY3Rpb25zLCB5b3Vy
IGFwcCBpcyByZXNwb25zaWJsZSBmb3IgcmV0dXJuaW5nIHdoaWNoZXZlciBvZiB0aG9zZSBhY3Rp
b25zIGl0IHdhbnRzIGluIHlvdXIgCisgdmlldyBjb250cm9sbGVyJ3MgaW1wbGVtZW50YXRpb24g
b2YgLXByZXZpZXdBY3Rpb25JdGVtcy4KKyAKKyBSZXR1cm5pbmcgbmlsIHdpbGwgcmVzdWx0IGlu
IFdlYktpdCdzIGRlZmF1bHQgcHJldmlldyBiZWhhdmlvci4gd2ViVmlldzpjb21taXRQcmV2aWV3
aW5nVmlld0NvbnRyb2xsZXI6IHdpbGwgb25seSBiZSBpbnZva2VkCisgaWYgYSBub24tbmlsIHZp
ZXcgY29udHJvbGxlciB3YXMgcmV0dXJuZWQuCisgKi8KKy0gKG51bGxhYmxlIFVJVmlld0NvbnRy
b2xsZXIgKil3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdpbmdWaWV3Q29udHJv
bGxlckZvckVsZW1lbnQ6KFdLUHJldmlld0VsZW1lbnRJbmZvICopZWxlbWVudEluZm8gZGVmYXVs
dEFjdGlvbnM6KE5TQXJyYXkgPGlkIDxXS1ByZXZpZXdBY3Rpb25JdGVtPj4gKilwcmV2aWV3QWN0
aW9ucyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworCisvKiEgQGFic3RyYWN0IEFsbG93
cyB5b3VyIGFwcCB0byBwb3AgdG8gdGhlIHZpZXcgY29udHJvbGxlciBpdCBjcmVhdGVkLgorIEBw
YXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgor
IEBwYXJhbSBwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXIgVGhlIHZpZXcgY29udHJvbGxlciB0aGF0
IGlzIGJlaW5nIHBvcHBlZC4KKyAqLworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXBy
ZXZpZXdpbmdWaWV3Q29udHJvbGxlciBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworCiBA
ZW5kCiAKKyNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05FCisKIE5TX0FTU1VNRV9OT05OVUxMX0VO
RAogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCShyZXZpc2lvbiAxOTgwNjkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogCiAjaW1wb3J0IDxXZWJLaXQvV0tTZWN1
cml0eU9yaWdpbi5oPgogI2ltcG9ydCA8V2ViS2l0L19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmg+
Ci0jaW1wb3J0IDxXZWJLaXQvX1dLUHJldmlld0FjdGlvbi5oPgogCiBAY2xhc3MgVUlTY3JvbGxW
aWV3OwogQGNsYXNzIFVJVmlld0NvbnRyb2xsZXI7CkBAIC0zNyw3ICszNiw2IEBACiBAY2xhc3Mg
X1dLQWN0aXZhdGVkRWxlbWVudEluZm87CiBAY2xhc3MgX1dLRWxlbWVudEFjdGlvbjsKIEBjbGFz
cyBfV0tGcmFtZUhhbmRsZTsKLUBjbGFzcyBfV0tQcmV2aWV3RWxlbWVudEluZm87CiAKIEBwcm90
b2NvbCBXS1VJRGVsZWdhdGVQcml2YXRlIDxXS1VJRGVsZWdhdGU+CiAKQEAgLTc4LDE3ICs3Niw2
IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtIChVSUVkZ2VJbnNldHMpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZmluYWxPYnNjdXJlZEluc2V0c0ZvclNjcm9sbFZpZXc6KFVJU2Nyb2xs
VmlldyAqKXNjcm9sbFZpZXcgd2l0aFZlbG9jaXR5OihDR1BvaW50KXZlbG9jaXR5IHRhcmdldENv
bnRlbnRPZmZzZXQ6KGlub3V0IENHUG9pbnQgKil0YXJnZXRDb250ZW50T2Zmc2V0IFdLX0FWQUlM
QUJMRShOQSwgOV8wKTsKIC0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JVUkw6KE5TVVJMICopdXJsIGRlZmF1
bHRBY3Rpb25zOihXS19BUlJBWShfV0tFbGVtZW50QWN0aW9uICopICopYWN0aW9ucyBlbGVtZW50
SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbyBXS19BVkFJTEFCTEUo
TkEsIDlfMCk7CiAtIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yQW5pbWF0ZWRJbWFnZUF0VVJMOihOU1VSTCAq
KXVybCBkZWZhdWx0QWN0aW9uczooV0tfQVJSQVkoX1dLRWxlbWVudEFjdGlvbiAqKSAqKWFjdGlv
bnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gaW1h
Z2VTaXplOihDR1NpemUpaW1hZ2VTaXplIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLQotLy8gSWYg
YSBjbGllbnQgd2FudHMgdG8gZGlzYWJsZSBwcmV2aWV3cyBlbnRpcmVseSBmb3IgdGhlIGdpdmVu
IGVsZW1lbnQsIHRoZXkgc2hvdWxkIHJldHVybiBOTyBpbgotLy8gc2hvdWxkUHJldmlld0VsZW1l
bnQuIFJldHVybmluZyBOTyBpbiBzaG91bGRQcmV2aWV3RWxlbWVudCB3aWxsIHByZXZlbnQgdGhl
IG90aGVyIG1ldGhvZHMgZnJvbSBiZWluZyBpbnZva2VkLgotLy8gVGhlIGNsaWVudCBjYW4gcHJv
dmlkZSBhIGN1c3RvbSBwcmV2aWV3IGJ5IHJldHVybmluZyB0aGVpciBvd24gVUlWaWV3Q29udHJv
bGxlciBmcm9tCi0vLyBwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVtZW50OmRlZmF1bHRB
Y3Rpb25zOi4gUmV0dXJuaW5nIG5pbCB3aWxsIHJlc3VsdCBpbiB0aGUgZGVmYXVsdCBwcmV2aWV3
IGJlaGF2aW9yCi0vLyBmb3IgdGhhdCBlbGVtZW50LiBJZiB0aGUgY2xpZW50IHdhbnQgdG8gdXNl
IHRoZSBkZWZhdWx0QWN0aW9ucywgdGhlbiB0aGUgY2xpZW50IGlzIHJlc3BvbnNpYmxlIGZvcgot
Ly8gcmV0dXJuaW5nIHRob3NlIGFjdGlvbnMgaW4gdGhlaXIgVUlWaWV3Q29udHJvbGxlcidzIGlt
cGxlbWVudGF0aW9uIG9mIHByZXZpZXdBY3Rpb25JdGVtcy4KLS0gKEJPT0wpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkUHJldmlld0VsZW1lbnQ6KF9XS1ByZXZpZXdFbGVtZW50
SW5mbyAqKWVsZW1lbnRJbmZvOwotLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHByZXZpZXdpbmdWaWV3Q29udHJvbGxlckZvckVsZW1lbnQ6KF9XS1By
ZXZpZXdFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5IDxp
ZCA8X1dLUHJldmlld0FjdGlvbkl0ZW0+PiAqKXByZXZpZXdBY3Rpb25zIFdLX0FWQUlMQUJMRShO
QSwgV0tfSU9TX1RCQSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNv
bW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXByZXZpZXdp
bmdWaWV3Q29udHJvbGxlciBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotCiAtIChVSVZp
ZXdDb250cm9sbGVyICopX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKICNlbHNlCiAtIChO
U01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudTooTlNNZW51
ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVudCBX
S19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDb250ZXh0TWVudUVsZW1lbnRJ
bmZvLmgJKHJldmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywx
MiArMjcsMTIgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVEICYmICFUQVJHRVRfT1NfSVBIT05FCiAK
LSNpbXBvcnQgPFdlYktpdC9fV0tFbGVtZW50SW5mby5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRWxl
bWVudEluZm8uaD4KIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogV0tfQ0xBU1NfQVZBSUxB
QkxFKFdLX01BQ19UQkEsIE5BKQotQGludGVyZmFjZSBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZv
IDogX1dLRWxlbWVudEluZm8KK0BpbnRlcmZhY2UgX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyA6
IFdLRWxlbWVudEluZm8KIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5oCShyZXZpc2lvbiAxOTgwNjkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgPFdlYktp
dC9XS0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0FQSV9FTkFCTEVECi0KLU5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCi0KLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQot
QGludGVyZmFjZSBfV0tFbGVtZW50SW5mbyA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+Ci0KLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKmxpbmtVUkw7Ci0KLUBlbmQKLQotTlNf
QVNTVU1FX05PTk5VTExfRU5ECi0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLm1tCShyZXZpc2lvbiAxOTgw
NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZv
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0
ICJjb25maWcuaCIKLSNpbXBvcnQgIl9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKLQotI2lmIFdL
X0FQSV9FTkFCTEVECi0KLUBpbXBsZW1lbnRhdGlvbiBfV0tFbGVtZW50SW5mbwotCi0tIChpZClj
b3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKLXsKLSAgICByZXR1cm4gW3NlbGYgcmV0YWluXTsK
LX0KLQotLSAoTlNVUkwgKilsaW5rVVJMCi17Ci0gICAgcmV0dXJuIF9saW5rVVJMLmdldCgpOwot
fQotCi1AZW5kCi0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tFbGVtZW50SW5mb0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mb0ludGVybmFsLmgJKHJldmlzaW9u
IDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVu
dEluZm9JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW1wb3J0ICJfV0tFbGVtZW50SW5mby5oIgotCi0jaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+Ci0KLSNpZiBXS19BUElfRU5BQkxFRAotCi1AaW50ZXJmYWNlIF9XS0VsZW1lbnRJbmZvICgp
IHsKLUBwYWNrYWdlCi0gICAgUmV0YWluUHRyPE5TVVJMPiBfbGlua1VSTDsKLX0KLQotQGVuZAot
Ci0jZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbi5oCShyZXZpc2lvbiAxOTgw
NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdBY3Rp
b24uaAkod29ya2luZyBjb3B5KQpAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9y
dCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgotCi0jaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VU
X09TX0lQSE9ORQotCi0jaW1wb3J0IDxVSUtpdC9VSVZpZXdDb250cm9sbGVyLmg+Ci0KLVdLX0NM
QVNTX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSkKLUBwcm90b2NvbCBfV0tQcmV2aWV3QWN0aW9u
SXRlbSA8TlNPYmplY3QsIFVJUHJldmlld0FjdGlvbkl0ZW0+Ci0KLUBwcm9wZXJ0eShub25hdG9t
aWMsIGNvcHksIHJlYWRvbmx5KSBOU1N0cmluZyAqaWRlbnRpZmllcjsKLQotQGVuZAotCi0jZW5k
aWYgLy8gV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbi5t
bQkocmV2aXNpb24gMTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tQcmV2aWV3QWN0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIl9XS1ByZXZpZXdBY3Rpb25J
bnRlcm5hbC5oIgotCi0jaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQotCi1A
aW1wbGVtZW50YXRpb24gX1dLUHJldmlld0FjdGlvbgotQHN5bnRoZXNpemUgaWRlbnRpZmllcj1f
aWRlbnRpZmllcjsKLQotKyAoaW5zdGFuY2V0eXBlKWFjdGlvbldpdGhJZGVudGlmaWVyOihOU1N0
cmluZyAqKWlkZW50aWZpZXIgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgc3R5bGU6KFVJUHJldmll
d0FjdGlvblN0eWxlKXN0eWxlIGhhbmRsZXI6KHZvaWQgKF4pKFVJUHJldmlld0FjdGlvbiAqYWN0
aW9uLCBVSVZpZXdDb250cm9sbGVyICpwcmV2aWV3Vmlld0NvbnRyb2xsZXIpKWhhbmRsZXIKLXsK
LSAgICBfV0tQcmV2aWV3QWN0aW9uICphY3Rpb24gPSBbc2VsZiBhY3Rpb25XaXRoVGl0bGU6dGl0
bGUgc3R5bGU6c3R5bGUgaGFuZGxlcjpoYW5kbGVyXTsKLSAgICBhY3Rpb24tPl9pZGVudGlmaWVy
ID0gaWRlbnRpZmllcjsKLSAgICByZXR1cm4gYWN0aW9uOwotfQotCi1AZW5kCi0KLSNlbmRpZiAv
LyBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlv
bkludGVybmFsLmgJKHJldmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbkludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgIldLRm91bmRhdGlvbi5oIgotCi0j
aWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQotCi0jaW1wb3J0ICJfV0tQcmV2
aWV3QWN0aW9uLmgiCi0KLUBpbnRlcmZhY2UgX1dLUHJldmlld0FjdGlvbiA6IFVJUHJldmlld0Fj
dGlvbiA8TlNDb3B5aW5nLCBfV0tQcmV2aWV3QWN0aW9uSXRlbT4KLQotKyAoaW5zdGFuY2V0eXBl
KWFjdGlvbldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIgdGl0bGU6KE5TU3Ry
aW5nICopdGl0bGUgc3R5bGU6KFVJUHJldmlld0FjdGlvblN0eWxlKXN0eWxlIGhhbmRsZXI6KHZv
aWQgKF4pKFVJUHJldmlld0FjdGlvbiAqYWN0aW9uLCBVSVZpZXdDb250cm9sbGVyICpwcmV2aWV3
Vmlld0NvbnRyb2xsZXIpKWhhbmRsZXI7Ci0KLUBlbmQKLQotI2VuZGlmIC8vIFdLX0FQSV9FTkFC
TEVEICYmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8uaAkocmV2aXNp
b24gMTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2
aWV3RWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMSw0MSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgotCi0jaWYgV0tfQVBJX0VOQUJM
RUQgJiYgVEFSR0VUX09TX0lQSE9ORQotCi0jaW1wb3J0IDxXZWJLaXQvX1dLRWxlbWVudEluZm8u
aD4KLQotTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KLQotV0tfQ0xBU1NfQVZBSUxBQkxFKE5BLCBX
S19JT1NfVEJBKQotQGludGVyZmFjZSBfV0tQcmV2aWV3RWxlbWVudEluZm8gOiBfV0tFbGVtZW50
SW5mbwotCi1AZW5kCi0KLU5TX0FTU1VNRV9OT05OVUxMX0VORAotCi0jZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJl
dmlld0VsZW1lbnRJbmZvLm1tCShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5
KQpAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1w
b3J0ICJfV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oIgotCi0jaW1wb3J0ICJfV0tFbGVt
ZW50SW5mb0ludGVybmFsLmgiCi0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0KLSNpZiBXS19B
UElfRU5BQkxFRCAmJiBQTEFURk9STShJT1MpCi0KLUBpbXBsZW1lbnRhdGlvbiBfV0tQcmV2aWV3
RWxlbWVudEluZm8KLQotLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aExpbmtVUkw6KE5TVVJMICop
dXJsCi17Ci0gICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAgIHJldHVybiBu
aWw7Ci0KLSAgICBfbGlua1VSTCA9IGFkb3B0TlMoW3VybCBjb3B5XSk7Ci0KLSAgICByZXR1cm4g
c2VsZjsKLX0KLQotQGVuZAotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5m
b0ludGVybmFsLmgJKHJldmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2luZyBjb3B5
KQpAQCAtMSwzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiX1dLUHJldmlld0VsZW1l
bnRJbmZvLmgiCi0KLSNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCi0KLUBp
bnRlcmZhY2UgX1dLUHJldmlld0VsZW1lbnRJbmZvICgpCi0KLS0gKGluc3RhbmNldHlwZSlfaW5p
dFdpdGhMaW5rVVJMOihOU1VSTCAqKXVybDsKLQotQGVuZAotCi0jZW5kaWYgLy8gV0tfQVBJX0VO
QUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNDMsNyArNDMsOSBAQAogI2ltcG9ydCAiV0tJbWFnZVByZXZpZXdWaWV3Q29u
dHJvbGxlci5oIgogI2ltcG9ydCAiV0tJbnNwZWN0b3JOb2RlU2VhcmNoR2VzdHVyZVJlY29nbml6
ZXIuaCIKICNpbXBvcnQgIldLTlNVUkxFeHRyYXMuaCIKLSNpbXBvcnQgIldLUHJldmlld0FjdGlv
bklkZW50aWZpZXJzUHJpdmF0ZS5oIgorI2ltcG9ydCAiV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50
aWZpZXJzLmgiCisjaW1wb3J0ICJXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaCIKKyNpbXBv
cnQgIldLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLVUlEZWxlZ2F0
ZVByaXZhdGUuaCIKICNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb24uaCIKICNpbXBvcnQg
IldLV2ViVmlld0ludGVybmFsLmgiCkBAIC01Nyw4ICs1OSw2IEBACiAjaW1wb3J0ICJfV0tGb2N1
c2VkRWxlbWVudEluZm8uaCIKICNpbXBvcnQgIl9XS0Zvcm1JbnB1dFNlc3Npb24uaCIKICNpbXBv
cnQgIl9XS0lucHV0RGVsZWdhdGUuaCIKLSNpbXBvcnQgIl9XS1ByZXZpZXdBY3Rpb25JbnRlcm5h
bC5oIgotI2ltcG9ydCAiX1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQg
PENvcmVUZXh0L0NURm9udC5oPgogI2ltcG9ydCA8Q29yZVRleHQvQ1RGb250RGVzY3JpcHRvci5o
PgogI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL1VUQ29yZVR5cGVzLmg+CkBAIC0zODA0LDkg
KzM4MDQsOSBAQCAtIChCT09MKV9pbnRlcmFjdGlvblNob3VsZEJlZ2luRnJvbVByZXZpCiAgICAg
aWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzTGluaykgewogICAgICAgICBOU1VSTCAqdGFyZ2V0
VVJMID0gW05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzpfcG9zaXRpb25JbmZvcm1hdGlvbi51
cmxdOwogICAgICAgICBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHN0YXRp
Y19jYXN0PGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPj4oW193ZWJWaWV3IFVJRGVsZWdhdGVdKTsK
LSAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6c2hvdWxkUHJldmlld0VsZW1lbnQ6KV0pIHsKLSAgICAgICAgICAgIGF1dG8gcHJldmll
d0VsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS1ByZXZpZXdFbGVtZW50SW5mbyBhbGxvY10gX2lu
aXRXaXRoTGlua1VSTDp0YXJnZXRVUkxdKTsKLSAgICAgICAgICAgIHJldHVybiBbdWlEZWxlZ2F0
ZSBfd2ViVmlldzpfd2ViVmlldyBzaG91bGRQcmV2aWV3RWxlbWVudDpwcmV2aWV3RWxlbWVudElu
Zm8uZ2V0KCldOworICAgICAgICBpZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcih3ZWJWaWV3OnNob3VsZFByZXZpZXdFbGVtZW50OildKSB7CisgICAgICAgICAgICBh
dXRvIHByZXZpZXdFbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tXS1ByZXZpZXdFbGVtZW50SW5mbyBh
bGxvY10gX2luaXRXaXRoTGlua1VSTDp0YXJnZXRVUkxdKTsKKyAgICAgICAgICAgIHJldHVybiBb
dWlEZWxlZ2F0ZSB3ZWJWaWV3Ol93ZWJWaWV3IHNob3VsZFByZXZpZXdFbGVtZW50OnByZXZpZXdF
bGVtZW50SW5mby5nZXQoKV07CiAgICAgICAgIH0KICAgICAgICAgaWYgKGFic29sdXRlTGlua1VS
TC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gTk87CkBAIC0zOTA0LDE1ICszOTA0LDE1
IEBAIHN0YXRpYyBOU1N0cmluZyAqcHJldmlld0lkZW50aWZpZXJGb3JFbGUKIHsKICAgICBzd2l0
Y2ggKGFjdGlvbi50eXBlKSB7CiAgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlwZU9wZW46Ci0g
ICAgICAgIHJldHVybiBfV0tQcmV2aWV3SWRlbnRpZmllck9wZW47CisgICAgICAgIHJldHVybiBX
S1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllck9wZW47CiAgICAgY2FzZSBfV0tFbGVtZW50QWN0
aW9uVHlwZUNvcHk6Ci0gICAgICAgIHJldHVybiBfV0tQcmV2aWV3SWRlbnRpZmllckNvcHk7Cisg
ICAgICAgIHJldHVybiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckNvcHk7CiAjaWYgIWRl
ZmluZWQoVEFSR0VUX09TX0lPUykgfHwgVEFSR0VUX09TX0lPUwogICAgIGNhc2UgX1dLRWxlbWVu
dEFjdGlvblR5cGVBZGRUb1JlYWRpbmdMaXN0OgotICAgICAgICByZXR1cm4gX1dLUHJldmlld0lk
ZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0OworICAgICAgICByZXR1cm4gV0tQcmV2aWV3QWN0aW9u
SXRlbUlkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0OwogI2VuZGlmCiAgICAgY2FzZSBfV0tFbGVt
ZW50QWN0aW9uVHlwZVNoYXJlOgotICAgICAgICByZXR1cm4gX1dLUHJldmlld0lkZW50aWZpZXJT
aGFyZTsKKyAgICAgICAgcmV0dXJuIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyU2hhcmU7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CkBAIC0zOTQ1LDE2ICsz
OTQ1LDE2IEBAIC0gKFVJVmlld0NvbnRyb2xsZXIgKilfcHJlc2VudGVkVmlld0NvbnQKICAgICAg
ICAgUmV0YWluUHRyPF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvPiBlbGVtZW50SW5mbyA9IGFkb3B0
TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3Rp
dmF0ZWRFbGVtZW50VHlwZUxpbmsgVVJMOnRhcmdldFVSTCBsb2NhdGlvbjpfcG9zaXRpb25JbmZv
cm1hdGlvbi5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1hdGlvbi50aXRsZSByZWN0Ol9wb3Np
dGlvbkluZm9ybWF0aW9uLmJvdW5kcyBpbWFnZTpfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZS5n
ZXQoKV0pOwogCiAgICAgICAgIGF1dG8gYWN0aW9ucyA9IFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQg
ZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6ZWxlbWVudEluZm8uZ2V0KCldOwotICAgICAgICBp
ZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmV2
aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25zOildKSB7CisgICAg
ICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6
cHJldmlld2luZ1ZpZXdDb250cm9sbGVyRm9yRWxlbWVudDpkZWZhdWx0QWN0aW9uczopXSkgewog
ICAgICAgICAgICAgYXV0byBwcmV2aWV3QWN0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJh
eSBhbGxvY10gaW5pdF0pOwogICAgICAgICAgICAgZm9yIChfV0tFbGVtZW50QWN0aW9uICplbGVt
ZW50QWN0aW9uIGluIGFjdGlvbnMuZ2V0KCkpIHsKLSAgICAgICAgICAgICAgICBfV0tQcmV2aWV3
QWN0aW9uICpwcmV2aWV3QWN0aW9uID0gW19XS1ByZXZpZXdBY3Rpb24gYWN0aW9uV2l0aElkZW50
aWZpZXI6cHJldmlld0lkZW50aWZpZXJGb3JFbGVtZW50QWN0aW9uKGVsZW1lbnRBY3Rpb24pIHRp
dGxlOltlbGVtZW50QWN0aW9uIHRpdGxlXSBzdHlsZTpVSVByZXZpZXdBY3Rpb25TdHlsZURlZmF1
bHQgaGFuZGxlcjpeKFVJUHJldmlld0FjdGlvbiAqLCBVSVZpZXdDb250cm9sbGVyICopIHsKKyAg
ICAgICAgICAgICAgICBXS1ByZXZpZXdBY3Rpb24gKnByZXZpZXdBY3Rpb24gPSBbV0tQcmV2aWV3
QWN0aW9uIGFjdGlvbldpdGhJZGVudGlmaWVyOnByZXZpZXdJZGVudGlmaWVyRm9yRWxlbWVudEFj
dGlvbihlbGVtZW50QWN0aW9uKSB0aXRsZTpbZWxlbWVudEFjdGlvbiB0aXRsZV0gc3R5bGU6VUlQ
cmV2aWV3QWN0aW9uU3R5bGVEZWZhdWx0IGhhbmRsZXI6XihVSVByZXZpZXdBY3Rpb24gKiwgVUlW
aWV3Q29udHJvbGxlciAqKSB7CiAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50QWN0aW9uIHJ1
bkFjdGlvbldpdGhFbGVtZW50SW5mbzplbGVtZW50SW5mby5nZXQoKV07CiAgICAgICAgICAgICAg
ICAgfV07CiAgICAgICAgICAgICAgICAgW3ByZXZpZXdBY3Rpb25zIGFkZE9iamVjdDpwcmV2aWV3
QWN0aW9uXTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGF1dG8gcHJldmlld0VsZW1lbnRJ
bmZvID0gYWRvcHROUyhbW19XS1ByZXZpZXdFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoTGlu
a1VSTDp0YXJnZXRVUkxdKTsKLSAgICAgICAgICAgIGlmIChVSVZpZXdDb250cm9sbGVyICpjb250
cm9sbGVyID0gW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgcHJldmlld2luZ1ZpZXdDb250
cm9sbGVyRm9yRWxlbWVudDpwcmV2aWV3RWxlbWVudEluZm8uZ2V0KCkgZGVmYXVsdEFjdGlvbnM6
cHJldmlld0FjdGlvbnMuZ2V0KCldKSB7CisgICAgICAgICAgICBhdXRvIHByZXZpZXdFbGVtZW50
SW5mbyA9IGFkb3B0TlMoW1tXS1ByZXZpZXdFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoTGlu
a1VSTDp0YXJnZXRVUkxdKTsKKyAgICAgICAgICAgIGlmIChVSVZpZXdDb250cm9sbGVyICpjb250
cm9sbGVyID0gW3VpRGVsZWdhdGUgd2ViVmlldzpfd2ViVmlldyBwcmV2aWV3aW5nVmlld0NvbnRy
b2xsZXJGb3JFbGVtZW50OnByZXZpZXdFbGVtZW50SW5mby5nZXQoKSBkZWZhdWx0QWN0aW9uczpw
cmV2aWV3QWN0aW9ucy5nZXQoKV0pIHsKICAgICAgICAgICAgICAgICBfdWlEZWxlZ2F0ZVByb3Zp
ZGVkUHJldmlld2luZ1ZpZXdDb250cm9sbGVyID0gWUVTOwogICAgICAgICAgICAgICAgIHJldHVy
biBjb250cm9sbGVyOwogICAgICAgICAgICAgfQpAQCAtMzk5Nyw4ICszOTk3LDggQEAgLSAodm9p
ZClfcHJldmlld0l0ZW1Db250cm9sbGVyOihVSVByZXZpZQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6Y29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOildKSB7Ci0gICAgICAgIFt1aURl
bGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjp2
aWV3Q29udHJvbGxlcl07CisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3Iod2ViVmlldzpjb21taXRQcmV2aWV3aW5nVmlld0NvbnRyb2xsZXI6KV0pIHsKKyAg
ICAgICAgW3VpRGVsZWdhdGUgd2ViVmlldzpfd2ViVmlldyBjb21taXRQcmV2aWV3aW5nVmlld0Nv
bnRyb2xsZXI6dmlld0NvbnRyb2xsZXJdOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI1NSw4ICsyNTUsOCBAQAogCQkxQTUz
QzJBMjFBMzIzMDA0MDA0RThDNzAgLyogSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDNEVEMzI2MUEzMTE5RDkwMDc5QkQ0OSAvKiBJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFy
YXRpb25IYW5kbGUuY3BwICovOyB9OwogCQkxQTUzQzJBOTFBMzI1NzJCMDA0RThDNzAgLyogV2Vi
c2l0ZURhdGFTdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQTUzQzJBNDFBMzI1NjlGMDA0RThDNzAgLyogV2Vic2l0ZURhdGFTdG9yZS5jcHAg
Ki87IH07CiAJCTFBNTNDMkFBMUEzMjU3MzAwMDRFOEM3MCAvKiBXZWJzaXRlRGF0YVN0b3JlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTUzQzJBNTFB
MzI1NjlGMDA0RThDNzAgLyogV2Vic2l0ZURhdGFTdG9yZS5oICovOyB9OwotCQkxQTU3MDRGMTFC
RTAxNzNGMDA4NzRBRjEgLyogX1dLRWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU3MDRFRjFCRTAxNzNGMDA4NzRBRjEgLyogX1dL
RWxlbWVudEluZm8ubW0gKi87IH07Ci0JCTFBNTcwNEYyMUJFMDE3NDAwMDg3NEFGMSAvKiBfV0tF
bGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUE1NzA0RjAxQkUwMTczRjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZvLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUE1NzA0RjExQkUwMTcz
RjAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU3MDRFRjFCRTAxNzNGMDA4NzRBRjEgLyogV0tFbGVtZW50
SW5mby5tbSAqLzsgfTsKKwkJMUE1NzA0RjIxQkUwMTc0MDAwODc0QUYxIC8qIFdLRWxlbWVudElu
Zm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNTcw
NEYwMUJFMDE3M0YwMDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZvLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQkxQTU3MDRGNzFCRTAxRkY0MDA4NzRBRjEg
LyogX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNTcwNEY1MUJFMDFGRjQwMDg3NEFGMSAvKiBfV0tDb250
ZXh0TWVudUVsZW1lbnRJbmZvLm1tICovOyB9OwogCQkxQTU3MDRGODFCRTAxRkY0MDA4NzRBRjEg
LyogX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUE1NzA0RjYxQkUwMUZGNDAwODc0QUYxIC8qIF9XS0NvbnRl
eHRNZW51RWxlbWVudEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkxQTU3MDRGQjFCRTE3NTExMDA4NzRBRjEgLyogUmVtb3RlT2JqZWN0SW52
b2NhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBNTcwNEY5MUJFMTc1MTEwMDg3NEFGMSAvKiBSZW1vdGVPYmplY3RJbnZvY2F0aW9uLm1tICov
OyB9OwpAQCAtMTE5NCwxOSArMTE5NCwxOSBAQAogCQk5MzVFRUJBMjEyNzc2MUQwMDAzMzIyQjgg
LyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUVFQjkwMTI3NzYxNUQwMDMzMjJCOCAvKiBJbmpl
Y3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oICovOyB9OwogCQk5MzVFRUJBMzEyNzc2MUQzMDAz
MzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUVFQjkxMTI3NzYxNUQwMDMz
MjJCOCAvKiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovOyB9OwogCQk5
MzVFRUJBNDEyNzc2MUQ2MDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJ
dGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVF
RUI5MjEyNzc2MTVEMDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVt
LmggKi87IH07Ci0JCTkzNzM1RUJCMUM5Mjk4NjMwMDMzNkZBNyAvKiBfV0tQcmV2aWV3QWN0aW9u
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNzM1RUJBMUM5Mjk4NjMwMDMzNkZBNyAvKiBfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCAq
LzsgfTsKLQkJOTM5MTA3NEYxQkY2QkM2NTAwOEMxN0FEIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5m
b0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJu
YWwuaCAqLzsgfTsKKwkJOTM3MzVFQkIxQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlv
bkl0ZW1JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTM3MzVFQkExQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JbnRl
cm5hbC5oICovOyB9OworCQk5MzkxMDc0RjFCRjZCQzY1MDA4QzE3QUQgLyogV0tQcmV2aWV3RWxl
bWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZv
SW50ZXJuYWwuaCAqLzsgfTsKIAkJOTM5MUYyQ0ExMjFCNjc5QTAwRUJGN0U4IC8qIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzkxRjI4NDEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbSAqLzsgfTsKIAkJOTM5MUYyQ0IxMjFCNjdBRDAwRUJGN0U4IC8qIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmggKi87IH07Ci0JCTkzOTVFNjhBMUJGMkMzMzIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3
RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOTVFNjg5MUJGMkMzMzIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5Mzk1RTY4
QzFCRjJDMzUyMDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5NUU2OEIxQkYyQzM1MjAwRjQ5
QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5tbSAqLzsgfTsKLQkJOTM5NUU2OEUxQkY0MTBG
RDAwRjQ5QkNFIC8qIF9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTVFNjhEMUJGNDEwRkQwMEY0OUJDRSAvKiBf
V0tFbGVtZW50SW5mb0ludGVybmFsLmggKi87IH07CisJCTkzOTVFNjhBMUJGMkMzMzIwMEY0OUJD
RSAvKiBXS1ByZXZpZXdFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNFIC8qIFdLUHJldmlld0Vs
ZW1lbnRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9
OworCQk5Mzk1RTY4QzFCRjJDMzUyMDBGNDlCQ0UgLyogV0tQcmV2aWV3RWxlbWVudEluZm8ubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk1RTY4QjFC
RjJDMzUyMDBGNDlCQ0UgLyogV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gKi87IH07CisJCTkzOTVF
NjhFMUJGNDEwRkQwMEY0OUJDRSAvKiBXS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTVFNjhEMUJGNDEwRkQwMEY0
OUJDRSAvKiBXS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLzsgfTsKIAkJOTM5QUU3NjYxMzE2RTk5
QzAwQUUwNkE2IC8qIFdlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlBRTc2NTEzMTZFOTlDMDBBRTA2QTYgLyog
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCAqLzsgfTsKIAkJOTM5RjQwMUMxOUZCMEJCQzAwMkIy
QjQyIC8qIFdLQWN0aW9uTWVudVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzlGNDAxQjE5RkIwQkJDMDAyQjJCNDIgLyogV0tBY3Rpb25NZW51
VHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk5M0EyNTNFRDFDOTIyRTFFMDBGOUY2OEQgLyogX1dLUHJldmlld0FjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMjUzRUMxQzkyMkUxRTAw
RjlGNjhEIC8qIF9XS1ByZXZpZXdBY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQk5M0EyNTNFRjFDOTIyRThFMDBGOUY2OEQgLyogX1dLUHJl
dmlld0FjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQTI1M0VFMUM5MjJFOEUwMEY5RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9uLm1tICovOyB9
OwotCQk5M0EyNTNGMzFDOTI0MTEyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmll
cnNQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0EyNTNGMjFDOTI0MTEyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQ
cml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJOTNBMjUzRjUxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJz
UHJpdmF0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQTI1M0Y0MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1By
aXZhdGUubW0gKi87IH07CisJCTkzQTI1M0VEMUM5MjJFMUUwMEY5RjY4RCAvKiBXS1ByZXZpZXdB
Y3Rpb25JdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0EyNTNFQzFDOTIyRTFFMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJOTNBMjUzRUYxQzky
MkU4RTAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW0ubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EyNTNFRTFDOTIyRThFMDBGOUY2OEQgLyog
V0tQcmV2aWV3QWN0aW9uSXRlbS5tbSAqLzsgfTsKKwkJOTNBMjUzRjMxQzkyNDExMjAwRjlGNjhE
IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMjUzRjIxQzkyNDExMjAwRjlGNjhEIC8qIFdL
UHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJOTNBMjUzRjUxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJl
dmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTI1M0Y0MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdB
Y3Rpb25JdGVtSWRlbnRpZmllcnMubW0gKi87IH07CiAJCTkzQTg4QjMwMUJDNkU5OTcwMEFCQTVD
MiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTg4QjJFMUJDNkU5OEYwMEFCQTVDMiAvKiBXZWJIaXRUZXN0
UmVzdWx0RGF0YS5tbSAqLzsgfTsKIAkJOTNBODhCMzMxQkM2RTlDRDAwQUJBNUMyIC8qIFdlYkhp
dFRlc3RSZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0E4OEIzMTFCQzZFOUMwMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEu
aCAqLzsgfTsKIAkJOTNBODhCMzYxQkM2RUFENTAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHRE
YXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
QTg4QjM0MUJDNkVBQkEwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5jcHAgKi87IH07
CkBAIC0yMTg2LDggKzIxODYsOCBAQAogCQkxQTUyQzBGNjFBMzhDREM3MDAxNjE2MEEgLyogV2Vi
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQTUzQzJBNDFBMzI1NjlGMDA0RThDNzAgLyogV2Vic2l0ZURhdGFTdG9yZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJzaXRlRGF0YVN0b3JlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE1M0MyQTUxQTMyNTY5RjAwNEU4Qzcw
IC8qIFdlYnNpdGVEYXRhU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2Vic2l0ZURhdGFTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQTU3MDRF
RjFCRTAxNzNGMDA4NzRBRjEgLyogX1dLRWxlbWVudEluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tFbGVtZW50SW5mby5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMUE1NzA0RjAxQkUwMTczRjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZv
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0VsZW1lbnRJbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBNTcwNEVGMUJFMDE3M0YwMDg3NEFGMSAvKiBX
S0VsZW1lbnRJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V0tFbGVtZW50SW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUE1NzA0RjAx
QkUwMTczRjAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tFbGVtZW50SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQTU3MDRGNTFCRTAxRkY0MDA4NzRBRjEgLyogX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS0NvbnRleHRNZW51
RWxlbWVudEluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNTcwNEY2MUJF
MDFGRjQwMDg3NEFGMSAvKiBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE1NzA0RjkxQkUxNzUxMTAwODc0QUYxIC8qIFJlbW90
ZU9iamVjdEludm9jYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBSZW1vdGVPYmplY3RJbnZvY2F0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMzIxNSwxOSArMzIxNSwxOSBAQAogCQk5MzVFRUI5NjEyNzc2MTZEMDAzMzIyQjggLyog
V0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTM1RUVCOTcxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRl
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRsZUJhY2tG
b3J3YXJkTGlzdEl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzVFRUI5
ODEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5MzczNUVCQTFDOTI5ODYzMDAzMzZGQTcg
LyogX1dLUHJldmlld0FjdGlvbkludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IF9XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogX1dLUHJldmlld0VsZW1lbnRJbmZv
SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLUHJldmlld0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM3MzVF
QkExQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FE
IC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTFG
Mjg0MTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTM5NUU2ODkxQkYyQzMzMjAw
RjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBfV0tQcmV2aWV3RWxlbWVudEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTM5NUU2OEIxQkYyQzM1MjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5m
by5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1ByZXZpZXdF
bGVtZW50SW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTM5NUU2OEQxQkY0
MTBGRDAwRjQ5QkNFIC8qIF9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5Mzk1RTY4OTFCRjJDMzMyMDBGNDlCQ0UgLyogV0tQcmV2aWV3RWxl
bWVudEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmV2aWV3RWxl
bWVudEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5NUU2OEIxQkYyQzM1
MjAwRjQ5QkNFIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV0tQcmV2aWV3RWxlbWVudEluZm8ubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzOTVFNjhEMUJGNDEwRkQwMEY0OUJDRSAvKiBXS0VsZW1lbnRJ
bmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tFbGVtZW50
SW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUFFNzY1MTMx
NkU5OUMwMEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5RjQwMUIxOUZCMEJCQzAwMkIyQjQyIC8qIFdLQWN0
aW9uTWVudVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQWN0aW9u
TWVudVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzQTI1M0VDMUM5MjJF
MUUwMEY5RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IF9XS1ByZXZpZXdBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOTNBMjUzRUUxQzkyMkU4RTAwRjlGNjhEIC8qIF9XS1ByZXZpZXdBY3Rpb24ubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tQcmV2aWV3QWN0aW9uLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0EyNTNGMjFDOTI0MTEyMDBGOUY2OEQgLyog
V0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk5M0EyNTNGNDFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2
aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EyNTNFQzFDOTIyRTFFMDBGOUY2OEQgLyogV0tQ
cmV2aWV3QWN0aW9uSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1By
ZXZpZXdBY3Rpb25JdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTI1M0VF
MUM5MjJFOEUwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tQcmV2aWV3QWN0aW9uSXRlbS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMjUzRjIxQzkyNDExMjAwRjlGNjhEIC8qIFdLUHJl
dmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNBMjUzRjQxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0
ZW1JZGVudGlmaWVycy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNBODhCMkUxQkM2RTk4RjAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRh
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViSGl0VGVzdFJl
c3VsdERhdGEubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTg4QjMxMUJDNkU5
QzAwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0E4OEIzNDFCQzZFQUJBMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERh
dGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSGl0VGVzdFJl
c3VsdERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDk2Nyw5ICs0OTY3
LDYgQEAKIAkJCQkzNzlBODczODE4QkJGRTBGMDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbi5o
ICovLAogCQkJCTM3OUE4NzM3MThCQkZFMEYwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uLm1t
ICovLAogCQkJCTM3OUE4NzNCMThCQkZGMDcwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uSW50
ZXJuYWwuaCAqLywKLQkJCQkxQTU3MDRGMDFCRTAxNzNGMDA4NzRBRjEgLyogX1dLRWxlbWVudElu
Zm8uaCAqLywKLQkJCQkxQTU3MDRFRjFCRTAxNzNGMDA4NzRBRjEgLyogX1dLRWxlbWVudEluZm8u
bW0gKi8sCi0JCQkJOTM5NUU2OEQxQkY0MTBGRDAwRjQ5QkNFIC8qIF9XS0VsZW1lbnRJbmZvSW50
ZXJuYWwuaCAqLywKIAkJCQkxQUQwMUJDNzE5MDVEMzdFMDBDOUM0NUYgLyogX1dLRXJyb3JSZWNv
dmVyeUF0dGVtcHRpbmcuaCAqLywKIAkJCQkxQUQwMUJDNjE5MDVEMzdFMDBDOUM0NUYgLyogX1dL
RXJyb3JSZWNvdmVyeUF0dGVtcHRpbmcubW0gKi8sCiAJCQkJMDA1RDE1OEUxOEU0QzRFQjAwNzM0
NjE5IC8qIF9XS0ZpbmREZWxlZ2F0ZS5oICovLApAQCAtNDk4MCwxMiArNDk3Nyw2IEBACiAJCQkJ
MzdBNjRFNTQxOEYzOEUzQzAwRUIzMEYxIC8qIF9XS0lucHV0RGVsZWdhdGUuaCAqLywKIAkJCQky
RDc5MEE5QzFBRDcwNTBEMDBBQjkwQjMgLyogX1dLTGF5b3V0TW9kZS5oICovLAogCQkJCTkzMjM2
MTFEMUIwMTVEQTgwMEZBOTIzMiAvKiBfV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUuaCAqLywKLQkJ
CQk5M0EyNTNFQzFDOTIyRTFFMDBGOUY2OEQgLyogX1dLUHJldmlld0FjdGlvbi5oICovLAotCQkJ
CTkzQTI1M0VFMUM5MjJFOEUwMEY5RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9uLm1tICovLAotCQkJ
CTkzNzM1RUJBMUM5Mjk4NjMwMDMzNkZBNyAvKiBfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCAq
LywKLQkJCQk5Mzk1RTY4OTFCRjJDMzMyMDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZv
LmggKi8sCi0JCQkJOTM5NUU2OEIxQkYyQzM1MjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50
SW5mby5tbSAqLywKLQkJCQk5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogX1dLUHJldmlld0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaCAqLywKIAkJCQkxQTQzRTgyODE4OEYzQ0RDMDA5RTREMzAgLyog
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMUE0M0U4MjcxODhGM0NEQzAw
OUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSAqLywKIAkJCQk3Qzg5RDJE
NjFBNkM2QkU2MDAzQTVGREUgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uSW50ZXJuYWwu
aCAqLywKQEAgLTUwMjUsNiArNTAxNiw5IEBACiAJCQkJMzdDNEMwODQxODE0OUM1QjAwMzY4OEI5
IC8qIFdLQmFja0ZvcndhcmRMaXN0SXRlbS5tbSAqLywKIAkJCQkzN0M0QzA4ODE4MTQ5RjIzMDAz
Njg4QjkgLyogV0tCYWNrRm9yd2FyZExpc3RJdGVtSW50ZXJuYWwuaCAqLywKIAkJCQkxQTlGMjgx
MDE5NThGNDc4MDA4Q0FDNzIgLyogV0tCYWNrRm9yd2FyZExpc3RQcml2YXRlLmggKi8sCisJCQkJ
MUE1NzA0RjAxQkUwMTczRjAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8uaCAqLywKKwkJCQkxQTU3
MDRFRjFCRTAxNzNGMDA4NzRBRjEgLyogV0tFbGVtZW50SW5mby5tbSAqLywKKwkJCQk5Mzk1RTY4
RDFCRjQxMEZEMDBGNDlCQ0UgLyogV0tFbGVtZW50SW5mb0ludGVybmFsLmggKi8sCiAJCQkJMUFG
NDU5MkQxOTQ2NEIyMDAwRjlENEEyIC8qIFdLRXJyb3IuaCAqLywKIAkJCQkxQUY0NTkyQzE5NDY0
QjIwMDBGOUQ0QTIgLyogV0tFcnJvci5tbSAqLywKIAkJCQkxQTJEMjUyQTE5NDY4OEZEMDA0NTM3
QjAgLyogV0tFcnJvckludGVybmFsLmggKi8sCkBAIC01MDU0LDggKzUwNDgsMTQgQEAKIAkJCQkx
QUZERDMxODE4OTFDQTEyMDAxNTM5NzAgLyogV0tQcmVmZXJlbmNlcy5tbSAqLywKIAkJCQkxQTND
ODg3RjE4QTVBQkFFMDBDNEM5NjIgLyogV0tQcmVmZXJlbmNlc0ludGVybmFsLmggKi8sCiAJCQkJ
N0M4RUIxMTYxOERCNkExOTAwNzkxN0MyIC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggKi8sCi0J
CQkJOTNBMjUzRjIxQzkyNDExMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJz
UHJpdmF0ZS5oICovLAotCQkJCTkzQTI1M0Y0MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdB
Y3Rpb25JZGVudGlmaWVyc1ByaXZhdGUubW0gKi8sCisJCQkJOTNBMjUzRUMxQzkyMkUxRTAwRjlG
NjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW0uaCAqLywKKwkJCQk5M0EyNTNFRTFDOTIyRThFMDBG
OUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbS5tbSAqLywKKwkJCQk5MzczNUVCQTFDOTI5ODYz
MDAzMzZGQTcgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmggKi8sCisJCQkJOTNBMjUz
RjIxQzkyNDExMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oICov
LAorCQkJCTkzQTI1M0Y0MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRl
bnRpZmllcnMubW0gKi8sCisJCQkJOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNFIC8qIFdLUHJldmll
d0VsZW1lbnRJbmZvLmggKi8sCisJCQkJOTM5NUU2OEIxQkYyQzM1MjAwRjQ5QkNFIC8qIFdLUHJl
dmlld0VsZW1lbnRJbmZvLm1tICovLAorCQkJCTkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAvKiBX
S1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggKi8sCiAJCQkJMUExNTg0MTgxODkwNDRGNTAw
MTc2MTZDIC8qIFdLUHJvY2Vzc1Bvb2wuaCAqLywKIAkJCQkxQTE1ODQxNzE4OTA0NEY1MDAxNzYx
NkMgLyogV0tQcm9jZXNzUG9vbC5tbSAqLywKIAkJCQkxQTNDQzE2ODE4OTA3RUIwMDAxRTZFRDgg
LyogV0tQcm9jZXNzUG9vbEludGVybmFsLmggKi8sCkBAIC03MTQ1LDcgKzcxNDUsNyBAQAogCQkJ
CTM3OUE4NzNBMThCQkZFMEYwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzNzlBODczQzE4QkJGRjA3MDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbklu
dGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTBEMjhCQjFDNjUzOUQzMDA5ODY5NzcgLyog
QXV0b21hdGlvblNlc3Npb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTFBNTcwNEYyMUJF
MDE3NDAwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE1
NzA0RjIxQkUwMTc0MDAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBRDAxQkM5MTkwNUQzN0UwMEM5QzQ1RiAvKiBfV0tFcnJvclJlY292ZXJ5QXR0ZW1wdGlu
Zy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDA1RDE1OEYxOEU0QzRFQjAwNzM0NjE5IC8qIF9XS0Zp
bmREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBNUVCQkMxQzdCQTQzRTAwQjlDQTY5
IC8qIFdLRnJhbWVIYW5kbGVSZWYuaCBpbiBIZWFkZXJzICovLApAQCAtNzIwNCw3ICs3MjA0LDcg
QEAKIAkJCQk3QzFCQTMzRTFBNEEwRTYwMDA0M0UyNDkgLyogQVBJRGljdGlvbmFyeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUY3RDM2QzExOERBNTEzRjAwRDlENjU5IC8qIEFQSURvd25sb2FkQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTZBNEE1RDEyMEEyQ0NEMDBDMDVCN0YgLyogQVBJ
RXJyb3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzOTVFNjhFMUJGNDEwRkQwMEY0OUJDRSAvKiBf
V0tFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk5Mzk1RTY4RTFCRjQx
MEZEMDBGNDlCQ0UgLyogV0tFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwMEI5NjYxNjE4RTI0Q0JBMDBDRTFGODggLyogQVBJRmluZENsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkRENjdBMkUxQkQ4MTk3MzAwNTNCMjUxIC8qIEFQSUZpbmRNYXRjaGVzQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0UyNUQ2RTE4RkRFNUQ2MDA1RDNBMDAgLyogQVBJRm9y
bUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC03MzczLDE0ICs3MzczLDE0IEBACiAJCQkJMUFC
QzNERjYxODk5RTQzNzAwNEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE2RkJBMkExMUU2ODYyNzAwREIxMzcxIC8qIE5ldHNjYXBlQnJvd3NlckZ1bmNzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5OTBEMjhBQjFDNjQyMEM2MDA5ODY5NzcgLyogX1dLQXV0b21h
dGlvblNlc3Npb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTkzNzM1RUJCMUM5Mjk4NjMwMDMzNkZB
NyAvKiBfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNzM1
RUJCMUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBRTI4NjgwMUM3RjkyQzAwMDY5QUM0RiAvKiBfV0tXZWJzaXRlRGF0
YVNpemVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2RkJEMjgxMUU2OUJDMjAwREIx
MzcxIC8qIE5ldHNjYXBlUGx1Z2luLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRBOUM1NjEyQjgx
NkNGMDA4RkU5ODQgLyogTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBQTU4ODkyMTFFRTcwNDAwMDYxQjg4MiAvKiBOZXRzY2FwZVBsdWdpblN0cmVhbS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTE3OThDN0ExNkU2ODE4ODAwMjQwMTM5IC8qIE5ldHdvcmtCbG9iUmVn
aXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDM2RUNDMUEwRDA0MEIwMEVBRDIwNCAvKiBO
ZXR3b3JrQ2FjaGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzOTVFNjhBMUJGMkMzMzIwMEY0OUJD
RSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOTVFNjhB
MUJGMkMzMzIwMEY0OUJDRSAvKiBXS1ByZXZpZXdFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTQ5RDQwRDcxQUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg5RDI4QTFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29y
a0NhY2hlQ29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0ODlEMjhDMUEwQTJEQjgwMDc4QzA2
QSAvKiBOZXR3b3JrQ2FjaGVDb2RlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtNzQwNyw3ICs3NDA3
LDcgQEAKIAkJCQk1MTYzMTk5NTE2Mjg5QTYzMDBFMjJGMDAgLyogTmV0d29ya1Byb2Nlc3NNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE0QTk1NEExNkUwMTZBNDAwNjhERTgyIC8qIE5l
dHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTc5
NTU2RTE2Mjg3N0IzMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJOTNBMjUzRUQxQzkyMkUxRTAwRjlGNjhEIC8qIF9XS1ByZXZpZXdBY3Rpb24uaCBp
biBIZWFkZXJzICovLAorCQkJCTkzQTI1M0VEMUM5MjJFMUUwMEY5RjY4RCAvKiBXS1ByZXZpZXdB
Y3Rpb25JdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTNBMTYzRDE2MzA4OEY2MDA1RDdEMjIg
LyogTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTU1
QTZGNTFDNzk4NkUwMDBFQjZBOTMgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MUZEMThCNjE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291
cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTc3MjYsNyArNzcyNiw3IEBACiAJCQkJOTM5
RjQwMUMxOUZCMEJCQzAwMkIyQjQyIC8qIFdLQWN0aW9uTWVudVR5cGVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkNCNEU0ODE4QkJFMDQ0MDAwRkNGQzkgLyogV0tBY3Rpb25TaGVldC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDQjRFNEExOEJCRTA0NDAwMEZDRkM5IC8qIFdLQWN0aW9uU2hlZXRB
c3Npc3RhbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzOTEwNzRGMUJGNkJDNjUwMDhDMTdBRCAv
KiBfV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5
MTA3NEYxQkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCUM1RkExRUQzMThFMTA2MjIwMEIzRjQwMiAvKiBXS0FpclBsYXlS
b3V0ZVBpY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEREIzMkQxMjRFQzJFMTAwNDhEMTND
IC8qIFdLQVBJQ2FzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyRTM0RTUxMzBCNEQwNTAwQUJE
MTlBIC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLApAQCAtODAz
NCw3ICs4MDM0LDcgQEAKIAkJCQk3NUE4RDJDODE4N0NDRkFCMDBDMzlDOUUgLyogV0tXZWJzaXRl
RGF0YVN0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NUE4RDJENjE4N0QxQzBFMDBDMzlDOUUg
LyogV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTcx
MDlGMUFCQTAwMjcwMDJGQUJCRSAvKiBXS1dlYnNpdGVEYXRhU3RvcmVSZWYuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTkzQTI1M0YzMUM5MjQxMTIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JZGVu
dGlmaWVyc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTI1M0YzMUM5MjQxMTIwMEY5
RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBM0NDMTY3MTg5MDZBQ0YwMDFFNkVEOCAvKiBXS1dlYlZpZXcuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBREY1OTFCMTg5MDUyOEUwMDQzQzE0NSAvKiBXS1dlYlZpZXdDb25maWd1cmF0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDdBQUZENjE4Qzk1NkFGMDBBN0FDRDQgLyogV0tXZWJW
aWV3Q29uZmlndXJhdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTg2MzgsNyArODYz
OCw3IEBACiAJCQkJOTk1NUE2RjQxQzc5ODZEQzAwRUI2QTkzIC8qIEluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUE0RkU1QjE4RENFOUZBMDBCNUVB
OEEgLyogX1dLRG93bmxvYWQubW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzlBODczOTE4QkJGRTBG
MDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbi5tbSBpbiBTb3VyY2VzICovLAotCQkJCTFBNTcw
NEYxMUJFMDE3M0YwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTFBNTcwNEYxMUJFMDE3M0YwMDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZvLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFEMDFCQzgxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlB
dHRlbXB0aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzczRDEyMjIxOEE0NzMwMTAwNjZEOUND
IC8qIF9XS0ZyYW1lSGFuZGxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNBODhCMzkxQkM3MEYz
RjAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHQubW0gaW4gU291cmNlcyAqLywKQEAgLTg4Mjgs
NyArODgyOCw3IEBACiAJCQkJRTQ4OUQyOEIxQTBBMkRCODAwNzhDMDZBIC8qIE5ldHdvcmtDYWNo
ZUNvZGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDdEMUU5ODFCMDY0OUZCMDAyNjc2QTgg
LyogTmV0d29ya0NhY2hlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDJFMDYxNDFBQTc1
QjcwMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlRGF0YUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCi0J
CQkJOTNBMjUzRjUxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJz
UHJpdmF0ZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTkzQTI1M0Y1MUM5MjQxMzIwMEY5RjY4RCAv
KiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW0gaW4gU291cmNlcyAqLywKIAkJCQlF
NDg5RDI4RDFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29ya0NhY2hlRGVjb2Rlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlFNDg5RDI4RjFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29ya0NhY2hlRW5j
b2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDEzRjU5RjFBQzFBRjlEMDAzNDUzNjAgLyog
TmV0d29ya0NhY2hlRW50cnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04OTMxLDcgKzg5MzEsNyBA
QAogCQkJCUUxQ0MxQjkxMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm9NYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQkzNzcxNkE1QTE5NUI5MTA1MDBFRThCMUIgLyogUHJvY2Vzc0Fzc2VydGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkY5NTM2NDE4RkY1ODNDMDAxREIyRUYgLyogUHJv
Y2Vzc0Fzc2VydGlvbklPUy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTkzOTVFNjhDMUJGMkMzNTIw
MEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLywKKwkJCQk5
Mzk1RTY4QzFCRjJDMzUyMDBGNDlCQ0UgLyogV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDNTVGOTE3MDFDNTk1RjYzMDAyOUU5MkQgLyogRGF0YURldGVjdGlvblJl
c3VsdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBRTExN0Y2MTFEQkIzMDkwMDk4MTYxNSAvKiBQ
cm9jZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFCMUQxMTJGNUZFNjAw
MzM3QkFCIC8qIFByb2Nlc3NMYXVuY2hlck1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtOTMwNCw3
ICs5MzA0LDcgQEAKIAkJCQlDRENBODVDODEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNTRDQzEzMTJENjc0RUUw
MDVDNjdCMCAvKiBXS0dlb2xvY2F0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzA2RjQ0RjEyREJERjNGMDAyRDc4REUgLyogV0tHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTkzQTI1M0VGMUM5MjJFOEUwMEY5RjY4RCAvKiBfV0tQ
cmV2aWV3QWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTNBMjUzRUYxQzkyMkU4RTAwRjlG
NjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzBFNjE5
OTEyRDZDRDEyMDAxMkE3MkEgLyogV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTA3Mjk3RkEyMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Np
b25DaGVjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkNCNEU1MDE4QkJFMDQ0MDAwRkNGQzkg
LyogV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273852</attachid>
            <date>2016-03-12 14:36:07 -0800</date>
            <delta_ts>2016-03-12 14:48:40 -0800</delta_ts>
            <desc>Patch with WK_API_ENABLED back</desc>
            <filename>for-review-api-3.txt</filename>
            <type>text/plain</type>
            <size>95872</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY1IEBACisyMDE2LTAzLTEyICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHByZXZpZXcgaW5saW5lIG5h
dmlnYXRpb24gd29yayBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NTM4MworICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisgICAgICAgIHJk
YXI6Ly9wcm9ibGVtLzI1MTE3OTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2l0aCB0aGlzIHBhdGNoOgorICAgICAgICBfV0tFbGVtZW50SW5mbyBp
cyBub3cgV0tFbGVtZW50SW5mbyBpbiBmaWxlIGFuZCBjbGFzcyBuYW1lcy4gSGVhZGVyIGlzIG5v
dyAKKyAgICAgICAgcHVibGljLgorCisgICAgICAgIF9XS1ByZXZpZXdFbGVtZW50SW5mbyBpcyBu
b3cgV0tQcmV2aWV3RWxlbWVudEluZm8gaW4gZmlsZSBhbmQgY2xhc3MgbmFtZXMuIAorICAgICAg
ICBIZWFkZXIgaXMgbm93IHB1YmxpYy4KKworICAgICAgICBfV0tQcmV2aWV3QWN0aW9uIGlzIG5v
dyBXS1ByZXZpZXdBY3Rpb25JdGVtIGluIGZpbGVuYW1lcyAoaGVhZGVyIGlzIG5vdyAKKyAgICAg
ICAgcHVibGljKSwgdGhlIHByb3RvY29sIF9XS1ByZXZpZXdBY3Rpb25JdGVtIGlzIG5vdyBXS1By
ZXZpZXdBY3Rpb25JdGVtLCBhbmQgCisgICAgICAgIHRoZSBfV0tQcmV2aWV3QWN0aW9uIGNsYXNz
IGlzIG5vdyBXS1ByZXZpZXdBY3Rpb24uIChUaGUgaW50ZXJuYWwgaGVhZGVyIGlzIAorICAgICAg
ICBzdGlsbCBwcm9qZWN0LCBvZiBjb3Vyc2UuKQorICAgICAgICBhbmQKKyAgICAgICAgV0tQcmV2
aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmgvbW0gaXMgbm93CisgICAgICAgIFdLUHJldmll
d0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oL21tIGFuZCBhbGwgdGhlIHRoZSBpZGVudGlmaWVycyBo
YXZlIGJlZW4gCisgICAgICAgIHVwZGF0ZWQuIEhlYWRlciBpcyBub3cgcHVibGljLgorCisgICAg
ICAgICogU2hhcmVkL0FQSS9Db2NvYS9XZWJLaXQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLRWxlbWVudEluZm8uaDogQ29waWVkIGZyb20gVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tFbGVtZW50SW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50
SW5mby5tbTogQ29waWVkIGZyb20gVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5t
bS4KKyAgICAgICAgKC1bV0tFbGVtZW50SW5mbyBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICgt
W19XS0VsZW1lbnRJbmZvIGNvcHlXaXRoWm9uZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm9JbnRlcm5hbC5oOiBDb3BpZWQgZnJvbSBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSWRlbnRp
ZmllcnNQcml2YXRlLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmV2aWV3QWN0aW9uSXRlbS5oOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1ByZXZpZXdBY3Rpb24uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmll
d0FjdGlvbkl0ZW0ubW06IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmll
d0FjdGlvbi5tbS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlv
bkl0ZW1JZGVudGlmaWVycy5oOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
dmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tOiBDb3BpZWQgZnJvbSBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5tbS4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5o
OiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdBY3Rpb25JbnRlcm5h
bC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8u
aDogQ29waWVkIGZyb20gVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8u
aC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLm1t
OiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5t
bS4KKyAgICAgICAgKC1bV0tQcmV2aWV3RWxlbWVudEluZm8gX2luaXRXaXRoTGlua1VSTDpdKToK
KyAgICAgICAgKC1bX1dLUHJldmlld0VsZW1lbnRJbmZvIF9pbml0V2l0aExpbmtVUkw6XSk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5m
b0ludGVybmFsLmg6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlE
ZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ29udGV4dE1lbnVFbGVt
ZW50SW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8u
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZv
Lm1tOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudElu
Zm9JbnRlcm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UHJldmlld0FjdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJldmlld0FjdGlvbi5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmg6IFJlbW92ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8ubW06IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm9JbnRl
cm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9pbnRlcmFjdGlvblNob3Vs
ZEJlZ2luRnJvbVByZXZpZXdJdGVtQ29udHJvbGxlcjpmb3JQb3NpdGlvbjpdKToKKyAgICAgICAg
KHByZXZpZXdJZGVudGlmaWVyRm9yRWxlbWVudEFjdGlvbik6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX3ByZXNlbnRlZFZpZXdDb250cm9sbGVyRm9yUHJldmlld0l0ZW1Db250cm9sbGVyOl0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI6Y29tbWl0
UHJldmlldzpdKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKIDIwMTYtMDMtMTIgIEplcmVteSBIdWRkbGVzdG9uIFNlcXVvaWEgIDxqZXJlbXlodUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0dUS11bTWFjXSBVc2UgRFlMRF9MSUJSQVJZX1BBVEggb24gT1NY
IHJhdGhlciB0aGVuIExEX0xJQlJBUllfUEFUSApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9Db2NvYS9XZWJLaXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0NvY29hL1dlYktpdC5oCShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL0NvY29hL1dlYktpdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBA
CiAKICNpbXBvcnQgPFdlYktpdC9XS0JhY2tGb3J3YXJkTGlzdC5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRWxlbWVudEluZm8u
aD4KICNpbXBvcnQgPFdlYktpdC9XS0Vycm9yLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0
aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tGcmFtZUluZm8uaD4KQEAgLTMzLDYgKzM0LDkgQEAK
ICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLTmF2aWdhdGlvblJlc3BvbnNlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlcy5o
PgorI2ltcG9ydCA8V2ViS2l0L1dLUHJldmlld0FjdGlvbkl0ZW0uaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1By
ZXZpZXdFbGVtZW50SW5mby5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2wuaD4KICNp
bXBvcnQgPFdlYktpdC9XS1NjcmlwdE1lc3NhZ2UuaD4KICNpbXBvcnQgPFdlYktpdC9XS1Njcmlw
dE1lc3NhZ2VIYW5kbGVyLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLRWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm8uaAkocmV2aXNpb24gMTk4MDY5KQkoZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLmg6MTk4MDY5KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktp
dC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKK05TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCisKK1dLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQor
QGludGVyZmFjZSBfV0tFbGVtZW50SW5mbyA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CisKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKmxpbmtVUkw7CisKK0BlbmQKKworTlNf
QVNTVU1FX05PTk5VTExfRU5ECisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBX
S19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSkKLUBpbnRlcmZhY2UgX1dL
RWxlbWVudEluZm8gOiBOU09iamVjdCA8TlNDb3B5aW5nPgorQGludGVyZmFjZSBXS0VsZW1lbnRJ
bmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBOU1VSTCAqbGlua1VSTDsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0VsZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5tbQkocmV2aXNpb24gMTk4MDY5KQkoZnJv
bSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLm1tOjE5
ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5m
by5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisjaW1wb3J0ICJfV0tFbGVtZW50SW5mb0ludGVybmFsLmgiCisKKyNpZiBX
S19BUElfRU5BQkxFRAorCitAaW1wbGVtZW50YXRpb24gX1dLRWxlbWVudEluZm8KKworLSAoaWQp
Y29weVdpdGhab25lOihOU1pvbmUgKil6b25lCit7CisgICAgcmV0dXJuIFtzZWxmIHJldGFpbl07
Cit9CisKKy0gKE5TVVJMICopbGlua1VSTAoreworICAgIHJldHVybiBfbGlua1VSTC5nZXQoKTsK
K30KKworQGVuZAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm8ubW0JKHdvcmtpbmcgY29weSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjQsMTEgKzI0LDExIEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1w
b3J0ICJfV0tFbGVtZW50SW5mb0ludGVybmFsLmgiCisjaW1wb3J0ICJXS0VsZW1lbnRJbmZvSW50
ZXJuYWwuaCIKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLUBpbXBsZW1lbnRhdGlvbiBfV0tFbGVt
ZW50SW5mbworQGltcGxlbWVudGF0aW9uIFdLRWxlbWVudEluZm8KIAogLSAoaWQpY29weVdpdGha
b25lOihOU1pvbmUgKil6b25lCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mb0ludGVybmFsLmgJKHJldmlzaW9u
IDE5ODA2OSkJKGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVt
ZW50SW5mb0ludGVybmFsLmg6MTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiX1dLRWxlbWVudEluZm8uaCIKKworI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworQGludGVyZmFjZSBf
V0tFbGVtZW50SW5mbyAoKSB7CitAcGFja2FnZQorICAgIFJldGFpblB0cjxOU1VSTD4gX2xpbmtV
Ukw7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5m
b0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tFbGVtZW50SW5mb0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDE3
ICsyMywxNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNp
bXBvcnQgIl9XS0VsZW1lbnRJbmZvLmgiCisjaW1wb3J0ICJXS0VsZW1lbnRJbmZvLmgiCiAKICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLUBpbnRlcmZh
Y2UgX1dLRWxlbWVudEluZm8gKCkgeworQGludGVyZmFjZSBXS0VsZW1lbnRJbmZvICgpIHsKIEBw
YWNrYWdlCiAgICAgUmV0YWluUHRyPE5TVVJMPiBfbGlua1VSTDsKIH0KIAogQGVuZAogCi0jZW5k
aWYgLy8gV0tfQVBJX0VOQUJMRUQKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlv
bklkZW50aWZpZXJzUHJpdmF0ZS5oCShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0KLSNpbXBvcnQg
PFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0FQSV9FTkFCTEVECi0KLSNpbXBvcnQg
PEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotI2ltcG9ydCA8V2ViS2l0L1dLRGVjbGFyYXRpb25T
cGVjaWZpZXJzLmg+Ci0KLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2
aWV3SWRlbnRpZmllck9wZW4gV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckFkZFRvUmVhZGlu
Z0xpc3QgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNT
dHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckNvcHkgV0tfQVZBSUxBQkxFKE5BLCBX
S19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3
SWRlbnRpZmllclNoYXJlIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci0KLSNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25J
ZGVudGlmaWVyc1ByaXZhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUubW0JKHJldmlz
aW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2
aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM2ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV0tQcmV2
aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmgiCi0KLSNpZiBXS19BUElfRU5BQkxFRAotCi1O
U1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyT3BlbiA9IEAiV0tQcmV2aWV3SWRl
bnRpZmllck9wZW4iOwotTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckFkZFRv
UmVhZGluZ0xpc3QgPSBAIldLUHJldmlld0lkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0IjsKLU5T
U3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJDb3B5ID0gQCJXS1ByZXZpZXdJZGVu
dGlmaWVyQ29weSI7Ci1OU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyU2hhcmUg
PSBAIldLUHJldmlld0lkZW50aWZpZXJTaGFyZSI7Ci0KLSNlbmRpZgpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25J
dGVtLmgJKHJldmlzaW9uIDE5ODA2OSkJKGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLmg6MTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24u
aD4KKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKKworI2ltcG9ydCA8
VUlLaXQvVUlWaWV3Q29udHJvbGxlci5oPgorCitXS19DTEFTU19BVkFJTEFCTEUoTkEsIFdLX0lP
U19UQkEpCitAcHJvdG9jb2wgX1dLUHJldmlld0FjdGlvbkl0ZW0gPE5TT2JqZWN0LCBVSVByZXZp
ZXdBY3Rpb25JdGVtPgorCitAcHJvcGVydHkobm9uYXRvbWljLCBjb3B5LCByZWFkb25seSkgTlNT
dHJpbmcgKmlkZW50aWZpZXI7CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYm
IFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5oCSh3b3JraW5nIGNvcHkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0u
aAkod29ya2luZyBjb3B5KQpAQCAtMjksMTEgKzI5LDExIEBACiAKICNpbXBvcnQgPFVJS2l0L1VJ
Vmlld0NvbnRyb2xsZXIuaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKQot
QHByb3RvY29sIF9XS1ByZXZpZXdBY3Rpb25JdGVtIDxOU09iamVjdCwgVUlQcmV2aWV3QWN0aW9u
SXRlbT4KK1dLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSkKK0Bwcm90b2NvbCBXS1ByZXZpZXdB
Y3Rpb25JdGVtIDxVSVByZXZpZXdBY3Rpb25JdGVtPgogCi1AcHJvcGVydHkobm9uYXRvbWljLCBj
b3B5LCByZWFkb25seSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSwgcmVhZG9ubHkpIE5TU3RyaW5nICppZGVudGlmaWVyOwogCiBAZW5kCiAKLSNlbmRp
ZiAvLyBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCisjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmll
d0FjdGlvbkl0ZW0ubW0JKHJldmlzaW9uIDE5ODA2OSkJKGZyb20gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLm1tOjE5ODA2OSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCIKKworI2lmIFdLX0FQSV9FTkFC
TEVEICYmIFRBUkdFVF9PU19JUEhPTkUKKworQGltcGxlbWVudGF0aW9uIF9XS1ByZXZpZXdBY3Rp
b24KK0BzeW50aGVzaXplIGlkZW50aWZpZXI9X2lkZW50aWZpZXI7CisKKysgKGluc3RhbmNldHlw
ZSlhY3Rpb25XaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIHRpdGxlOihOU1N0
cmluZyAqKXRpdGxlIHN0eWxlOihVSVByZXZpZXdBY3Rpb25TdHlsZSlzdHlsZSBoYW5kbGVyOih2
b2lkICheKShVSVByZXZpZXdBY3Rpb24gKmFjdGlvbiwgVUlWaWV3Q29udHJvbGxlciAqcHJldmll
d1ZpZXdDb250cm9sbGVyKSloYW5kbGVyCit7CisgICAgX1dLUHJldmlld0FjdGlvbiAqYWN0aW9u
ID0gW3NlbGYgYWN0aW9uV2l0aFRpdGxlOnRpdGxlIHN0eWxlOnN0eWxlIGhhbmRsZXI6aGFuZGxl
cl07CisgICAgYWN0aW9uLT5faWRlbnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgcmV0dXJuIGFj
dGlvbjsKK30KKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09T
X0lQSE9ORQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZp
ZXdBY3Rpb25JdGVtLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbQkod29ya2luZyBjb3B5KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNCwxNiArMjQsMTYgQEAKICAqLwogCiAjaW1wb3J0ICJjb25maWcuaCIK
LSNpbXBvcnQgIl9XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tQcmV2aWV3
QWN0aW9uSXRlbUludGVybmFsLmgiCiAKICNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1Nf
SVBIT05FCiAKLUBpbXBsZW1lbnRhdGlvbiBfV0tQcmV2aWV3QWN0aW9uCitAaW1wbGVtZW50YXRp
b24gV0tQcmV2aWV3QWN0aW9uCiBAc3ludGhlc2l6ZSBpZGVudGlmaWVyPV9pZGVudGlmaWVyOwog
CiArIChpbnN0YW5jZXR5cGUpYWN0aW9uV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRp
ZmllciB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBzdHlsZTooVUlQcmV2aWV3QWN0aW9uU3R5bGUp
c3R5bGUgaGFuZGxlcjoodm9pZCAoXikoVUlQcmV2aWV3QWN0aW9uICphY3Rpb24sIFVJVmlld0Nv
bnRyb2xsZXIgKnByZXZpZXdWaWV3Q29udHJvbGxlcikpaGFuZGxlcgogewotICAgIF9XS1ByZXZp
ZXdBY3Rpb24gKmFjdGlvbiA9IFtzZWxmIGFjdGlvbldpdGhUaXRsZTp0aXRsZSBzdHlsZTpzdHls
ZSBoYW5kbGVyOmhhbmRsZXJdOworICAgIFdLUHJldmlld0FjdGlvbiAqYWN0aW9uID0gW3NlbGYg
YWN0aW9uV2l0aFRpdGxlOnRpdGxlIHN0eWxlOnN0eWxlIGhhbmRsZXI6aGFuZGxlcl07CiAgICAg
YWN0aW9uLT5faWRlbnRpZmllciA9IGlkZW50aWZpZXI7CiAgICAgcmV0dXJuIGFjdGlvbjsKIH0K
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9u
SXRlbUlkZW50aWZpZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaAkocmV2aXNpb24gMTk4
MDY5KQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0Fj
dGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oOjE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKworI2ltcG9ydCA8V2ViS2l0L1dL
Rm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCA8Rm91bmRhdGlv
bi9Gb3VuZGF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tEZWNsYXJhdGlvblNwZWNpZmllcnMu
aD4KKworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlm
aWVyT3BlbiBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworV0tfRVhQT1JUIGV4dGVybiBO
U1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdCBXS19B
VkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNv
bnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyQ29weSBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEp
OworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVy
U2hhcmUgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKworI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlm
aWVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmgJKHdvcmtpbmcgY29weSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZp
ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDExICsyOSwxMCBAQAogI2lmIFdLX0FQSV9FTkFC
TEVECiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotI2ltcG9ydCA8V2ViS2l0
L1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmg+CiAKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcg
KiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllck9wZW4gV0tfQVZBSUxBQkxFKE5BLCBXS19JT1Nf
VEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRp
ZmllckFkZFRvUmVhZGluZ0xpc3QgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLVdLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckNvcHkgV0tf
QVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBj
b25zdCBfV0tQcmV2aWV3SWRlbnRpZmllclNoYXJlIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RC
QSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRp
Zmllck9wZW4gV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKK1dLX0VYVEVSTiBOU1N0cmlu
ZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdCBX
S19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3Qg
V0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJDb3B5IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9T
X1RCQSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRl
bnRpZmllclNoYXJlIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CiAKICNlbmRpZgpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVt
SWRlbnRpZmllcnMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW0JKHJldmlzaW9uIDE5ODA2
OSkJKGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rp
b25JZGVudGlmaWVyc1ByaXZhdGUubW06MTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaCIKKworI2lmIFdL
X0FQSV9FTkFCTEVECisKK05TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJPcGVu
ID0gQCJXS1ByZXZpZXdJZGVudGlmaWVyT3BlbiI7CitOU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZp
ZXdJZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdCA9IEAiV0tQcmV2aWV3SWRlbnRpZmllckFkZFRv
UmVhZGluZ0xpc3QiOworTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckNvcHkg
PSBAIldLUHJldmlld0lkZW50aWZpZXJDb3B5IjsKK05TU3RyaW5nICogY29uc3QgX1dLUHJldmll
d0lkZW50aWZpZXJTaGFyZSA9IEAiV0tQcmV2aWV3SWRlbnRpZmllclNoYXJlIjsKKworI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlv
bkl0ZW1JZGVudGlmaWVycy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5tbQkod29ya2luZyBj
b3B5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rp
b25JdGVtSWRlbnRpZmllcnMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI0LDEzICsyNCwxMyBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXS1ByZXZpZXdBY3Rpb25JZGVu
dGlmaWVyc1ByaXZhdGUuaCIKKyNpbmNsdWRlICJXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmll
cnMuaCIKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLU5TU3RyaW5nICogY29uc3QgX1dLUHJldmll
d0lkZW50aWZpZXJPcGVuID0gQCJXS1ByZXZpZXdJZGVudGlmaWVyT3BlbiI7Ci1OU1N0cmluZyAq
IGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdCA9IEAiV0tQcmV2aWV3
SWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QiOwotTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3
SWRlbnRpZmllckNvcHkgPSBAIldLUHJldmlld0lkZW50aWZpZXJDb3B5IjsKLU5TU3RyaW5nICog
Y29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJTaGFyZSA9IEAiV0tQcmV2aWV3SWRlbnRpZmllclNo
YXJlIjsKK05TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJPcGVu
ID0gQCJXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllck9wZW4iOworTlNTdHJpbmcgKiBjb25z
dCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QgPSBAIldLUHJl
dmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdCI7CitOU1N0cmluZyAqIGNv
bnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyQ29weSA9IEAiV0tQcmV2aWV3QWN0aW9u
SXRlbUlkZW50aWZpZXJDb3B5IjsKK05TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRl
bUlkZW50aWZpZXJTaGFyZSA9IEAiV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJTaGFyZSI7
CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oCShyZXZpc2lv
biAxOTgwNjkpCShmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJl
dmlld0FjdGlvbkludGVybmFsLmg6MTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV0tGb3VuZGF0aW9uLmgiCisK
KyNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCisKKyNpbXBvcnQgIl9XS1By
ZXZpZXdBY3Rpb24uaCIKKworQGludGVyZmFjZSBfV0tQcmV2aWV3QWN0aW9uIDogVUlQcmV2aWV3
QWN0aW9uIDxOU0NvcHlpbmcsIF9XS1ByZXZpZXdBY3Rpb25JdGVtPgorCisrIChpbnN0YW5jZXR5
cGUpYWN0aW9uV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciB0aXRsZTooTlNT
dHJpbmcgKil0aXRsZSBzdHlsZTooVUlQcmV2aWV3QWN0aW9uU3R5bGUpc3R5bGUgaGFuZGxlcjoo
dm9pZCAoXikoVUlQcmV2aWV3QWN0aW9uICphY3Rpb24sIFVJVmlld0NvbnRyb2xsZXIgKnByZXZp
ZXdWaWV3Q29udHJvbGxlcikpaGFuZGxlcjsKKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VO
QUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JbnRl
cm5hbC5oCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywx
MiArMjcsMTIgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKIAot
I2ltcG9ydCAiX1dLUHJldmlld0FjdGlvbi5oIgorI2ltcG9ydCAiV0tQcmV2aWV3QWN0aW9uSXRl
bS5oIgogCi1AaW50ZXJmYWNlIF9XS1ByZXZpZXdBY3Rpb24gOiBVSVByZXZpZXdBY3Rpb24gPE5T
Q29weWluZywgX1dLUHJldmlld0FjdGlvbkl0ZW0+CitAaW50ZXJmYWNlIFdLUHJldmlld0FjdGlv
biA6IFVJUHJldmlld0FjdGlvbiA8TlNDb3B5aW5nLCBXS1ByZXZpZXdBY3Rpb25JdGVtPgogCiAr
IChpbnN0YW5jZXR5cGUpYWN0aW9uV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmll
ciB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBzdHlsZTooVUlQcmV2aWV3QWN0aW9uU3R5bGUpc3R5
bGUgaGFuZGxlcjoodm9pZCAoXikoVUlQcmV2aWV3QWN0aW9uICphY3Rpb24sIFVJVmlld0NvbnRy
b2xsZXIgKnByZXZpZXdWaWV3Q29udHJvbGxlcikpaGFuZGxlcjsKIAogQGVuZAogCi0jZW5kaWYg
Ly8gV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQorI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdF
bGVtZW50SW5mby5oCShyZXZpc2lvbiAxOTgwNjkpCShmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmg6MTk4MDY5KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQv
V0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05F
CisKKyNpbXBvcnQgPFdlYktpdC9fV0tFbGVtZW50SW5mby5oPgorCitOU19BU1NVTUVfTk9OTlVM
TF9CRUdJTgorCitXS19DTEFTU19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpCitAaW50ZXJmYWNl
IF9XS1ByZXZpZXdFbGVtZW50SW5mbyA6IF9XS0VsZW1lbnRJbmZvCisKK0BlbmQKKworTlNfQVNT
VU1FX05PTk5VTExfRU5ECisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8uaAkod29ya2lu
ZyBjb3B5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdF
bGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMiArMjcsMTIgQEAKIAogI2lmIFdL
X0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKIAotI2ltcG9ydCA8V2ViS2l0L19XS0Vs
ZW1lbnRJbmZvLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tFbGVtZW50SW5mby5oPgogCiBOU19BU1NV
TUVfTk9OTlVMTF9CRUdJTgogCiBXS19DTEFTU19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpCi1A
aW50ZXJmYWNlIF9XS1ByZXZpZXdFbGVtZW50SW5mbyA6IF9XS0VsZW1lbnRJbmZvCitAaW50ZXJm
YWNlIFdLUHJldmlld0VsZW1lbnRJbmZvIDogV0tFbGVtZW50SW5mbwogCiBAZW5kCiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8u
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZXZpZXdFbGVtZW50SW5mby5tbQkocmV2aXNpb24gMTk4MDY5KQkoZnJvbSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5tbToxOTgwNjkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZv
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgIl9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgiCisK
KyNpbXBvcnQgIl9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKElPUykKKworQGltcGxlbWVu
dGF0aW9uIF9XS1ByZXZpZXdFbGVtZW50SW5mbworCistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRo
TGlua1VSTDooTlNVUkwgKil1cmwKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkK
KyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9saW5rVVJMID0gYWRvcHROUyhbdXJsIGNvcHld
KTsKKworICAgIHJldHVybiBzZWxmOworfQorCitAZW5kCisKKyNlbmRpZgpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0Vs
ZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwx
NCArMjQsMTQgQEAKICAqLwogCiAjaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIl9XS1ByZXZp
ZXdFbGVtZW50SW5mb0ludGVybmFsLmgiCisjaW1wb3J0ICJXS1ByZXZpZXdFbGVtZW50SW5mb0lu
dGVybmFsLmgiCiAKLSNpbXBvcnQgIl9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKKyNpbXBvcnQg
IldLRWxlbWVudEluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiAj
aWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oSU9TKQogCi1AaW1wbGVtZW50YXRpb24gX1dL
UHJldmlld0VsZW1lbnRJbmZvCitAaW1wbGVtZW50YXRpb24gV0tQcmV2aWV3RWxlbWVudEluZm8K
IAogLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aExpbmtVUkw6KE5TVVJMICopdXJsCiB7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZv
SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkocmV2aXNpb24gMTk4MDY5KQkoZnJv
bSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5m
b0ludGVybmFsLmg6MTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIl9XS1ByZXZpZXdFbGVtZW50SW5mby5oIgor
CisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQorCitAaW50ZXJmYWNlIF9X
S1ByZXZpZXdFbGVtZW50SW5mbyAoKQorCistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoTGlua1VS
TDooTlNVUkwgKil1cmw7CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZv
SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVy
bmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDE0ICsyMywxNCBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbXBvcnQgIl9XS1ByZXZpZXdFbGVtZW50SW5m
by5oIgorI2ltcG9ydCAiV0tQcmV2aWV3RWxlbWVudEluZm8uaCIKIAogI2lmIFdLX0FQSV9FTkFC
TEVEICYmIFRBUkdFVF9PU19JUEhPTkUKIAotQGludGVyZmFjZSBfV0tQcmV2aWV3RWxlbWVudElu
Zm8gKCkKK0BpbnRlcmZhY2UgV0tQcmV2aWV3RWxlbWVudEluZm8gKCkKIAogLSAoaW5zdGFuY2V0
eXBlKV9pbml0V2l0aExpbmtVUkw6KE5TVVJMICopdXJsOwogCiBAZW5kCiAKLSNlbmRpZiAvLyBX
S19BUElfRU5BQkxFRAorI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhP
TkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGUuaAkocmV2aXNpb24gMTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTEgKzI4LDEz
IEBACiAjaWYgV0tfQVBJX0VOQUJMRUQKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9u
Lmg+CisjaW1wb3J0IDxXZWJLaXQvV0tQcmV2aWV3QWN0aW9uSXRlbS5oPgogCiBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogCiBAY2xhc3MgV0tGcmFtZUluZm87CiBAY2xhc3MgV0tOYXZpZ2F0aW9u
QWN0aW9uOworQGNsYXNzIFdLUHJldmlld0VsZW1lbnRJbmZvOwogQGNsYXNzIFdLV2ViVmlld0Nv
bmZpZ3VyYXRpb247CiBAY2xhc3MgV0tXaW5kb3dGZWF0dXJlczsKIApAQCAtMTE0LDggKzExNiw0
NSBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogICovCiAtICh2b2lkKXdlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDooTlNT
dHJpbmcgKilwcm9tcHQgZGVmYXVsdFRleHQ6KG51bGxhYmxlIE5TU3RyaW5nICopZGVmYXVsdFRl
eHQgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoTlNTdHJpbmcgKiBXS19OVUxMQUJMRV9TUEVDSUZJRVIgcmVzdWx0KSljb21w
bGV0aW9uSGFuZGxlcjsKIAorI2lmIFRBUkdFVF9PU19JUEhPTkUKKworLyohIEBhYnN0cmFjdCBB
bGxvd3MgeW91ciBhcHAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiBlbGVt
ZW50IHNob3VsZCBzaG93IGEgcHJldmlldy4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcg
aW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KKyBAcGFyYW0gZWxlbWVudEluZm8gVGhlIGVs
ZW1lbnRJbmZvIGZvciB0aGUgZWxlbWVudCB0aGUgdXNlciBoYXMgc3RhcnRlZCB0b3VjaGluZy4K
KyBAZGlzY3Vzc2lvbiBUbyBkaXNhYmxlIHByZXZpZXdzIGVudGlyZWx5IGZvciB0aGUgZ2l2ZW4g
ZWxlbWVudCwgcmV0dXJuIE5PLiBSZXR1cm5pbmcgTk8gd2lsbCBwcmV2ZW50IAorIHdlYlZpZXc6
cHJldmlld2luZ1ZpZXdDb250cm9sbGVyRm9yRWxlbWVudDpkZWZhdWx0QWN0aW9uczogYW5kIHdl
YlZpZXc6Y29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOgorIGZyb20gYmVpbmcgaW52b2tl
ZC4KKyAKKyBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgaW52b2tlZCBmb3IgZWxlbWVudHMgdGhh
dCBoYXZlIGRlZmF1bHQgcHJldmlldyBpbiBXZWJLaXQsIHdoaWNoIGlzCisgbGltaXRlZCB0byBs
aW5rcy4gSW4gdGhlIGZ1dHVyZSwgaXQgY291bGQgYmUgaW52b2tlZCBmb3IgYWRkaXRpb25hbCBl
bGVtZW50cy4KKyAqLworLSAoQk9PTCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3Vs
ZFByZXZpZXdFbGVtZW50OihXS1ByZXZpZXdFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FW
QUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CisKKy8qISBAYWJzdHJhY3QgQWxsb3dzIHlvdXIgYXBw
IHRvIHByb3ZpZGUgYSBjdXN0b20gdmlldyBjb250cm9sbGVyIHRvIHNob3cgd2hlbiB0aGUgZ2l2
ZW4gZWxlbWVudCBpcyBwZWVrZWQuCisgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9r
aW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2QuCisgQHBhcmFtIGVsZW1lbnRJbmZvIFRoZSBlbGVtZW50
SW5mbyBmb3IgdGhlIGVsZW1lbnQgdGhlIHVzZXIgaXMgcGVla2luZy4KKyBAcGFyYW0gZGVmYXVs
dEFjdGlvbnMgQW4gYXJyYXkgb2YgdGhlIGFjdGlvbnMgdGhhdCBXZWJLaXQgd291bGQgdXNlIGFz
IHByZXZpZXdBY3Rpb25JdGVtcyBmb3IgdGhpcyBlbGVtZW50IGJ5IAorIGRlZmF1bHQuIFRoZXNl
IGFjdGlvbnMgd291bGQgYmUgdXNlZCBpZiBhbGxvd3NMaW5rUHJldmlldyBpcyBZRVMgYnV0IHRo
ZXNlIGRlbGVnYXRlIG1ldGhvZHMgaGF2ZSBub3QgYmVlbiAKKyBpbXBsZW1lbnRlZCwgb3IgaWYg
dGhpcyBkZWxlZ2F0ZSBtZXRob2QgcmV0dXJucyBuaWwuCisgQGRpc2N1c3Npb24gUmV0dXJuaW5n
IGEgdmlldyBjb250cm9sbGVyIHdpbGwgcmVzdWx0IGluIHRoYXQgdmlldyBjb250cm9sbGVyIGJl
aW5nIGRpc3BsYXllZCBhcyBhIHBlZWsgcHJldmlldy4KKyBUbyB1c2UgdGhlIGRlZmF1bHRBY3Rp
b25zLCB5b3VyIGFwcCBpcyByZXNwb25zaWJsZSBmb3IgcmV0dXJuaW5nIHdoaWNoZXZlciBvZiB0
aG9zZSBhY3Rpb25zIGl0IHdhbnRzIGluIHlvdXIgCisgdmlldyBjb250cm9sbGVyJ3MgaW1wbGVt
ZW50YXRpb24gb2YgLXByZXZpZXdBY3Rpb25JdGVtcy4KKyAKKyBSZXR1cm5pbmcgbmlsIHdpbGwg
cmVzdWx0IGluIFdlYktpdCdzIGRlZmF1bHQgcHJldmlldyBiZWhhdmlvci4gd2ViVmlldzpjb21t
aXRQcmV2aWV3aW5nVmlld0NvbnRyb2xsZXI6IHdpbGwgb25seSBiZSBpbnZva2VkCisgaWYgYSBu
b24tbmlsIHZpZXcgY29udHJvbGxlciB3YXMgcmV0dXJuZWQuCisgKi8KKy0gKG51bGxhYmxlIFVJ
Vmlld0NvbnRyb2xsZXIgKil3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdpbmdW
aWV3Q29udHJvbGxlckZvckVsZW1lbnQ6KFdLUHJldmlld0VsZW1lbnRJbmZvICopZWxlbWVudElu
Zm8gZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXkgPGlkIDxXS1ByZXZpZXdBY3Rpb25JdGVtPj4gKilw
cmV2aWV3QWN0aW9ucyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworCisvKiEgQGFic3Ry
YWN0IEFsbG93cyB5b3VyIGFwcCB0byBwb3AgdG8gdGhlIHZpZXcgY29udHJvbGxlciBpdCBjcmVh
dGVkLgorIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUg
bWV0aG9kLgorIEBwYXJhbSBwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXIgVGhlIHZpZXcgY29udHJv
bGxlciB0aGF0IGlzIGJlaW5nIHBvcHBlZC4KKyAqLworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJv
bGxlciAqKXByZXZpZXdpbmdWaWV3Q29udHJvbGxlciBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19U
QkEpOworCiBAZW5kCiAKKyNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05FCisKIE5TX0FTU1VNRV9O
T05OVUxMX0VORAogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCShyZXZpc2lvbiAxOTgw
NjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVBy
aXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogCiAjaW1wb3J0IDxXZWJL
aXQvV0tTZWN1cml0eU9yaWdpbi5oPgogI2ltcG9ydCA8V2ViS2l0L19XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvLmg+Ci0jaW1wb3J0IDxXZWJLaXQvX1dLUHJldmlld0FjdGlvbi5oPgogCiBAY2xhc3Mg
VUlTY3JvbGxWaWV3OwogQGNsYXNzIFVJVmlld0NvbnRyb2xsZXI7CkBAIC0zNyw3ICszNiw2IEBA
CiBAY2xhc3MgX1dLQWN0aXZhdGVkRWxlbWVudEluZm87CiBAY2xhc3MgX1dLRWxlbWVudEFjdGlv
bjsKIEBjbGFzcyBfV0tGcmFtZUhhbmRsZTsKLUBjbGFzcyBfV0tQcmV2aWV3RWxlbWVudEluZm87
CiAKIEBwcm90b2NvbCBXS1VJRGVsZWdhdGVQcml2YXRlIDxXS1VJRGVsZWdhdGU+CiAKQEAgLTc4
LDE3ICs3Niw2IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtIChVSUVkZ2VJbnNldHMpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZmluYWxPYnNjdXJlZEluc2V0c0ZvclNjcm9sbFZpZXc6
KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0aFZlbG9jaXR5OihDR1BvaW50KXZlbG9jaXR5
IHRhcmdldENvbnRlbnRPZmZzZXQ6KGlub3V0IENHUG9pbnQgKil0YXJnZXRDb250ZW50T2Zmc2V0
IFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKIC0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JVUkw6KE5TVVJMICop
dXJsIGRlZmF1bHRBY3Rpb25zOihXS19BUlJBWShfV0tFbGVtZW50QWN0aW9uICopICopYWN0aW9u
cyBlbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbyBXS19B
VkFJTEFCTEUoTkEsIDlfMCk7CiAtIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yQW5pbWF0ZWRJbWFnZUF0VVJM
OihOU1VSTCAqKXVybCBkZWZhdWx0QWN0aW9uczooV0tfQVJSQVkoX1dLRWxlbWVudEFjdGlvbiAq
KSAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVu
dEluZm8gaW1hZ2VTaXplOihDR1NpemUpaW1hZ2VTaXplIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsK
LQotLy8gSWYgYSBjbGllbnQgd2FudHMgdG8gZGlzYWJsZSBwcmV2aWV3cyBlbnRpcmVseSBmb3Ig
dGhlIGdpdmVuIGVsZW1lbnQsIHRoZXkgc2hvdWxkIHJldHVybiBOTyBpbgotLy8gc2hvdWxkUHJl
dmlld0VsZW1lbnQuIFJldHVybmluZyBOTyBpbiBzaG91bGRQcmV2aWV3RWxlbWVudCB3aWxsIHBy
ZXZlbnQgdGhlIG90aGVyIG1ldGhvZHMgZnJvbSBiZWluZyBpbnZva2VkLgotLy8gVGhlIGNsaWVu
dCBjYW4gcHJvdmlkZSBhIGN1c3RvbSBwcmV2aWV3IGJ5IHJldHVybmluZyB0aGVpciBvd24gVUlW
aWV3Q29udHJvbGxlciBmcm9tCi0vLyBwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVtZW50
OmRlZmF1bHRBY3Rpb25zOi4gUmV0dXJuaW5nIG5pbCB3aWxsIHJlc3VsdCBpbiB0aGUgZGVmYXVs
dCBwcmV2aWV3IGJlaGF2aW9yCi0vLyBmb3IgdGhhdCBlbGVtZW50LiBJZiB0aGUgY2xpZW50IHdh
bnQgdG8gdXNlIHRoZSBkZWZhdWx0QWN0aW9ucywgdGhlbiB0aGUgY2xpZW50IGlzIHJlc3BvbnNp
YmxlIGZvcgotLy8gcmV0dXJuaW5nIHRob3NlIGFjdGlvbnMgaW4gdGhlaXIgVUlWaWV3Q29udHJv
bGxlcidzIGltcGxlbWVudGF0aW9uIG9mIHByZXZpZXdBY3Rpb25JdGVtcy4KLS0gKEJPT0wpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkUHJldmlld0VsZW1lbnQ6KF9XS1ByZXZp
ZXdFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvOwotLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdpbmdWaWV3Q29udHJvbGxlckZvckVsZW1l
bnQ6KF9XS1ByZXZpZXdFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIGRlZmF1bHRBY3Rpb25zOihO
U0FycmF5IDxpZCA8X1dLUHJldmlld0FjdGlvbkl0ZW0+PiAqKXByZXZpZXdBY3Rpb25zIFdLX0FW
QUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAq
KXByZXZpZXdpbmdWaWV3Q29udHJvbGxlciBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwot
CiAtIChVSVZpZXdDb250cm9sbGVyICopX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKICNl
bHNlCiAtIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVu
dTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICop
ZWxlbWVudCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOwpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDb250ZXh0TWVu
dUVsZW1lbnRJbmZvLmgJKHJldmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNywxMiArMjcsMTIgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVEICYmICFUQVJHRVRfT1Nf
SVBIT05FCiAKLSNpbXBvcnQgPFdlYktpdC9fV0tFbGVtZW50SW5mby5oPgorI2ltcG9ydCA8V2Vi
S2l0L1dLRWxlbWVudEluZm8uaD4KIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogV0tfQ0xB
U1NfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKQotQGludGVyZmFjZSBfV0tDb250ZXh0TWVudUVs
ZW1lbnRJbmZvIDogX1dLRWxlbWVudEluZm8KK0BpbnRlcmZhY2UgX1dLQ29udGV4dE1lbnVFbGVt
ZW50SW5mbyA6IFdLRWxlbWVudEluZm8KIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5oCShyZXZpc2lvbiAx
OTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJ
bmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBv
cnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0FQSV9FTkFCTEVECi0KLU5TX0FT
U1VNRV9OT05OVUxMX0JFR0lOCi0KLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19J
T1NfVEJBKQotQGludGVyZmFjZSBfV0tFbGVtZW50SW5mbyA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+
Ci0KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKmxpbmtVUkw7Ci0KLUBl
bmQKLQotTlNfQVNTVU1FX05PTk5VTExfRU5ECi0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLm1tCShyZXZp
c2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Vs
ZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIl9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIK
LQotI2lmIFdLX0FQSV9FTkFCTEVECi0KLUBpbXBsZW1lbnRhdGlvbiBfV0tFbGVtZW50SW5mbwot
Ci0tIChpZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKLXsKLSAgICByZXR1cm4gW3NlbGYg
cmV0YWluXTsKLX0KLQotLSAoTlNVUkwgKilsaW5rVVJMCi17Ci0gICAgcmV0dXJuIF9saW5rVVJM
LmdldCgpOwotfQotCi1AZW5kCi0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mb0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mb0ludGVybmFsLmgJ
KHJldmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM5ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW1wb3J0ICJfV0tFbGVtZW50SW5mby5oIgotCi0jaW1wb3J0IDx3dGYv
UmV0YWluUHRyLmg+Ci0KLSNpZiBXS19BUElfRU5BQkxFRAotCi1AaW50ZXJmYWNlIF9XS0VsZW1l
bnRJbmZvICgpIHsKLUBwYWNrYWdlCi0gICAgUmV0YWluUHRyPE5TVVJMPiBfbGlua1VSTDsKLX0K
LQotQGVuZAotCi0jZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbi5oCShyZXZp
c2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
ZXZpZXdBY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgotCi0jaWYgV0tfQVBJX0VOQUJMRUQg
JiYgVEFSR0VUX09TX0lQSE9ORQotCi0jaW1wb3J0IDxVSUtpdC9VSVZpZXdDb250cm9sbGVyLmg+
Ci0KLVdLX0NMQVNTX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSkKLUBwcm90b2NvbCBfV0tQcmV2
aWV3QWN0aW9uSXRlbSA8TlNPYmplY3QsIFVJUHJldmlld0FjdGlvbkl0ZW0+Ci0KLUBwcm9wZXJ0
eShub25hdG9taWMsIGNvcHksIHJlYWRvbmx5KSBOU1N0cmluZyAqaWRlbnRpZmllcjsKLQotQGVu
ZAotCi0jZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmll
d0FjdGlvbi5tbQkocmV2aXNpb24gMTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIl9XS1ByZXZp
ZXdBY3Rpb25JbnRlcm5hbC5oIgotCi0jaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQ
SE9ORQotCi1AaW1wbGVtZW50YXRpb24gX1dLUHJldmlld0FjdGlvbgotQHN5bnRoZXNpemUgaWRl
bnRpZmllcj1faWRlbnRpZmllcjsKLQotKyAoaW5zdGFuY2V0eXBlKWFjdGlvbldpdGhJZGVudGlm
aWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIgdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgc3R5bGU6
KFVJUHJldmlld0FjdGlvblN0eWxlKXN0eWxlIGhhbmRsZXI6KHZvaWQgKF4pKFVJUHJldmlld0Fj
dGlvbiAqYWN0aW9uLCBVSVZpZXdDb250cm9sbGVyICpwcmV2aWV3Vmlld0NvbnRyb2xsZXIpKWhh
bmRsZXIKLXsKLSAgICBfV0tQcmV2aWV3QWN0aW9uICphY3Rpb24gPSBbc2VsZiBhY3Rpb25XaXRo
VGl0bGU6dGl0bGUgc3R5bGU6c3R5bGUgaGFuZGxlcjpoYW5kbGVyXTsKLSAgICBhY3Rpb24tPl9p
ZGVudGlmaWVyID0gaWRlbnRpZmllcjsKLSAgICByZXR1cm4gYWN0aW9uOwotfQotCi1AZW5kCi0K
LSNlbmRpZiAvLyBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJl
dmlld0FjdGlvbkludGVybmFsLmgJKHJldmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbkludGVybmFsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgIldLRm91bmRhdGlv
bi5oIgotCi0jaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQotCi0jaW1wb3J0
ICJfV0tQcmV2aWV3QWN0aW9uLmgiCi0KLUBpbnRlcmZhY2UgX1dLUHJldmlld0FjdGlvbiA6IFVJ
UHJldmlld0FjdGlvbiA8TlNDb3B5aW5nLCBfV0tQcmV2aWV3QWN0aW9uSXRlbT4KLQotKyAoaW5z
dGFuY2V0eXBlKWFjdGlvbldpdGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIgdGl0
bGU6KE5TU3RyaW5nICopdGl0bGUgc3R5bGU6KFVJUHJldmlld0FjdGlvblN0eWxlKXN0eWxlIGhh
bmRsZXI6KHZvaWQgKF4pKFVJUHJldmlld0FjdGlvbiAqYWN0aW9uLCBVSVZpZXdDb250cm9sbGVy
ICpwcmV2aWV3Vmlld0NvbnRyb2xsZXIpKWhhbmRsZXI7Ci0KLUBlbmQKLQotI2VuZGlmIC8vIFdL
X0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8u
aAkocmV2aXNpb24gMTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tQcmV2aWV3RWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMSw0MSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgotCi0jaWYgV0tf
QVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQotCi0jaW1wb3J0IDxXZWJLaXQvX1dLRWxl
bWVudEluZm8uaD4KLQotTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KLQotV0tfQ0xBU1NfQVZBSUxB
QkxFKE5BLCBXS19JT1NfVEJBKQotQGludGVyZmFjZSBfV0tQcmV2aWV3RWxlbWVudEluZm8gOiBf
V0tFbGVtZW50SW5mbwotCi1AZW5kCi0KLU5TX0FTU1VNRV9OT05OVUxMX0VORAotCi0jZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1l
bnRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tCShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5tbQkod29y
a2luZyBjb3B5KQpAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmln
LmgiCi0jaW1wb3J0ICJfV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oIgotCi0jaW1wb3J0
ICJfV0tFbGVtZW50SW5mb0ludGVybmFsLmgiCi0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0K
LSNpZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShJT1MpCi0KLUBpbXBsZW1lbnRhdGlvbiBf
V0tQcmV2aWV3RWxlbWVudEluZm8KLQotLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aExpbmtVUkw6
KE5TVVJMICopdXJsCi17Ci0gICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAg
IHJldHVybiBuaWw7Ci0KLSAgICBfbGlua1VSTCA9IGFkb3B0TlMoW3VybCBjb3B5XSk7Ci0KLSAg
ICByZXR1cm4gc2VsZjsKLX0KLQotQGVuZAotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdF
bGVtZW50SW5mb0ludGVybmFsLmgJKHJldmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkod29y
a2luZyBjb3B5KQpAQCAtMSwzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiX1dLUHJl
dmlld0VsZW1lbnRJbmZvLmgiCi0KLSNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBI
T05FCi0KLUBpbnRlcmZhY2UgX1dLUHJldmlld0VsZW1lbnRJbmZvICgpCi0KLS0gKGluc3RhbmNl
dHlwZSlfaW5pdFdpdGhMaW5rVVJMOihOU1VSTCAqKXVybDsKLQotQGVuZAotCi0jZW5kaWYgLy8g
V0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCShyZXZpc2lvbiAxOTgwNjkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsOSBAQAogI2ltcG9ydCAiV0tJbWFnZVByZXZp
ZXdWaWV3Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tJbnNwZWN0b3JOb2RlU2VhcmNoR2VzdHVy
ZVJlY29nbml6ZXIuaCIKICNpbXBvcnQgIldLTlNVUkxFeHRyYXMuaCIKLSNpbXBvcnQgIldLUHJl
dmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oIgorI2ltcG9ydCAiV0tQcmV2aWV3QWN0aW9u
SXRlbUlkZW50aWZpZXJzLmgiCisjaW1wb3J0ICJXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwu
aCIKKyNpbXBvcnQgIldLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldL
VUlEZWxlZ2F0ZVByaXZhdGUuaCIKICNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb24uaCIK
ICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCkBAIC01Nyw4ICs1OSw2IEBACiAjaW1wb3J0
ICJfV0tGb2N1c2VkRWxlbWVudEluZm8uaCIKICNpbXBvcnQgIl9XS0Zvcm1JbnB1dFNlc3Npb24u
aCIKICNpbXBvcnQgIl9XS0lucHV0RGVsZWdhdGUuaCIKLSNpbXBvcnQgIl9XS1ByZXZpZXdBY3Rp
b25JbnRlcm5hbC5oIgotI2ltcG9ydCAiX1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIK
ICNpbXBvcnQgPENvcmVUZXh0L0NURm9udC5oPgogI2ltcG9ydCA8Q29yZVRleHQvQ1RGb250RGVz
Y3JpcHRvci5oPgogI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL1VUQ29yZVR5cGVzLmg+CkBA
IC0zODA0LDkgKzM4MDQsOSBAQCAtIChCT09MKV9pbnRlcmFjdGlvblNob3VsZEJlZ2luRnJvbVBy
ZXZpCiAgICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzTGluaykgewogICAgICAgICBOU1VS
TCAqdGFyZ2V0VVJMID0gW05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzpfcG9zaXRpb25JbmZv
cm1hdGlvbi51cmxdOwogICAgICAgICBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0
ZSA9IHN0YXRpY19jYXN0PGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPj4oW193ZWJWaWV3IFVJRGVs
ZWdhdGVdKTsKLSAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6c2hvdWxkUHJldmlld0VsZW1lbnQ6KV0pIHsKLSAgICAgICAgICAgIGF1
dG8gcHJldmlld0VsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS1ByZXZpZXdFbGVtZW50SW5mbyBh
bGxvY10gX2luaXRXaXRoTGlua1VSTDp0YXJnZXRVUkxdKTsKLSAgICAgICAgICAgIHJldHVybiBb
dWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBzaG91bGRQcmV2aWV3RWxlbWVudDpwcmV2aWV3
RWxlbWVudEluZm8uZ2V0KCldOworICAgICAgICBpZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnNob3VsZFByZXZpZXdFbGVtZW50OildKSB7CisgICAg
ICAgICAgICBhdXRvIHByZXZpZXdFbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tXS1ByZXZpZXdFbGVt
ZW50SW5mbyBhbGxvY10gX2luaXRXaXRoTGlua1VSTDp0YXJnZXRVUkxdKTsKKyAgICAgICAgICAg
IHJldHVybiBbdWlEZWxlZ2F0ZSB3ZWJWaWV3Ol93ZWJWaWV3IHNob3VsZFByZXZpZXdFbGVtZW50
OnByZXZpZXdFbGVtZW50SW5mby5nZXQoKV07CiAgICAgICAgIH0KICAgICAgICAgaWYgKGFic29s
dXRlTGlua1VSTC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gTk87CkBAIC0zOTA0LDE1
ICszOTA0LDE1IEBAIHN0YXRpYyBOU1N0cmluZyAqcHJldmlld0lkZW50aWZpZXJGb3JFbGUKIHsK
ICAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7CiAgICAgY2FzZSBfV0tFbGVtZW50QWN0aW9uVHlw
ZU9wZW46Ci0gICAgICAgIHJldHVybiBfV0tQcmV2aWV3SWRlbnRpZmllck9wZW47CisgICAgICAg
IHJldHVybiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllck9wZW47CiAgICAgY2FzZSBfV0tF
bGVtZW50QWN0aW9uVHlwZUNvcHk6Ci0gICAgICAgIHJldHVybiBfV0tQcmV2aWV3SWRlbnRpZmll
ckNvcHk7CisgICAgICAgIHJldHVybiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckNvcHk7
CiAjaWYgIWRlZmluZWQoVEFSR0VUX09TX0lPUykgfHwgVEFSR0VUX09TX0lPUwogICAgIGNhc2Ug
X1dLRWxlbWVudEFjdGlvblR5cGVBZGRUb1JlYWRpbmdMaXN0OgotICAgICAgICByZXR1cm4gX1dL
UHJldmlld0lkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0OworICAgICAgICByZXR1cm4gV0tQcmV2
aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0OwogI2VuZGlmCiAgICAgY2Fz
ZSBfV0tFbGVtZW50QWN0aW9uVHlwZVNoYXJlOgotICAgICAgICByZXR1cm4gX1dLUHJldmlld0lk
ZW50aWZpZXJTaGFyZTsKKyAgICAgICAgcmV0dXJuIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlm
aWVyU2hhcmU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CkBAIC0z
OTQ1LDE2ICszOTQ1LDE2IEBAIC0gKFVJVmlld0NvbnRyb2xsZXIgKilfcHJlc2VudGVkVmlld0Nv
bnQKICAgICAgICAgUmV0YWluUHRyPF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvPiBlbGVtZW50SW5m
byA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoVHlw
ZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbmsgVVJMOnRhcmdldFVSTCBsb2NhdGlvbjpfcG9z
aXRpb25JbmZvcm1hdGlvbi5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1hdGlvbi50aXRsZSBy
ZWN0Ol9wb3NpdGlvbkluZm9ybWF0aW9uLmJvdW5kcyBpbWFnZTpfcG9zaXRpb25JbmZvcm1hdGlv
bi5pbWFnZS5nZXQoKV0pOwogCiAgICAgICAgIGF1dG8gYWN0aW9ucyA9IFtfYWN0aW9uU2hlZXRB
c3Npc3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6ZWxlbWVudEluZm8uZ2V0KCldOwot
ICAgICAgICBpZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
VmlldzpwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25zOild
KSB7CisgICAgICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KHdlYlZpZXc6cHJldmlld2luZ1ZpZXdDb250cm9sbGVyRm9yRWxlbWVudDpkZWZhdWx0QWN0aW9u
czopXSkgewogICAgICAgICAgICAgYXV0byBwcmV2aWV3QWN0aW9ucyA9IGFkb3B0TlMoW1tOU011
dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwogICAgICAgICAgICAgZm9yIChfV0tFbGVtZW50QWN0
aW9uICplbGVtZW50QWN0aW9uIGluIGFjdGlvbnMuZ2V0KCkpIHsKLSAgICAgICAgICAgICAgICBf
V0tQcmV2aWV3QWN0aW9uICpwcmV2aWV3QWN0aW9uID0gW19XS1ByZXZpZXdBY3Rpb24gYWN0aW9u
V2l0aElkZW50aWZpZXI6cHJldmlld0lkZW50aWZpZXJGb3JFbGVtZW50QWN0aW9uKGVsZW1lbnRB
Y3Rpb24pIHRpdGxlOltlbGVtZW50QWN0aW9uIHRpdGxlXSBzdHlsZTpVSVByZXZpZXdBY3Rpb25T
dHlsZURlZmF1bHQgaGFuZGxlcjpeKFVJUHJldmlld0FjdGlvbiAqLCBVSVZpZXdDb250cm9sbGVy
ICopIHsKKyAgICAgICAgICAgICAgICBXS1ByZXZpZXdBY3Rpb24gKnByZXZpZXdBY3Rpb24gPSBb
V0tQcmV2aWV3QWN0aW9uIGFjdGlvbldpdGhJZGVudGlmaWVyOnByZXZpZXdJZGVudGlmaWVyRm9y
RWxlbWVudEFjdGlvbihlbGVtZW50QWN0aW9uKSB0aXRsZTpbZWxlbWVudEFjdGlvbiB0aXRsZV0g
c3R5bGU6VUlQcmV2aWV3QWN0aW9uU3R5bGVEZWZhdWx0IGhhbmRsZXI6XihVSVByZXZpZXdBY3Rp
b24gKiwgVUlWaWV3Q29udHJvbGxlciAqKSB7CiAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50
QWN0aW9uIHJ1bkFjdGlvbldpdGhFbGVtZW50SW5mbzplbGVtZW50SW5mby5nZXQoKV07CiAgICAg
ICAgICAgICAgICAgfV07CiAgICAgICAgICAgICAgICAgW3ByZXZpZXdBY3Rpb25zIGFkZE9iamVj
dDpwcmV2aWV3QWN0aW9uXTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGF1dG8gcHJldmll
d0VsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS1ByZXZpZXdFbGVtZW50SW5mbyBhbGxvY10gX2lu
aXRXaXRoTGlua1VSTDp0YXJnZXRVUkxdKTsKLSAgICAgICAgICAgIGlmIChVSVZpZXdDb250cm9s
bGVyICpjb250cm9sbGVyID0gW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgcHJldmlld2lu
Z1ZpZXdDb250cm9sbGVyRm9yRWxlbWVudDpwcmV2aWV3RWxlbWVudEluZm8uZ2V0KCkgZGVmYXVs
dEFjdGlvbnM6cHJldmlld0FjdGlvbnMuZ2V0KCldKSB7CisgICAgICAgICAgICBhdXRvIHByZXZp
ZXdFbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tXS1ByZXZpZXdFbGVtZW50SW5mbyBhbGxvY10gX2lu
aXRXaXRoTGlua1VSTDp0YXJnZXRVUkxdKTsKKyAgICAgICAgICAgIGlmIChVSVZpZXdDb250cm9s
bGVyICpjb250cm9sbGVyID0gW3VpRGVsZWdhdGUgd2ViVmlldzpfd2ViVmlldyBwcmV2aWV3aW5n
Vmlld0NvbnRyb2xsZXJGb3JFbGVtZW50OnByZXZpZXdFbGVtZW50SW5mby5nZXQoKSBkZWZhdWx0
QWN0aW9uczpwcmV2aWV3QWN0aW9ucy5nZXQoKV0pIHsKICAgICAgICAgICAgICAgICBfdWlEZWxl
Z2F0ZVByb3ZpZGVkUHJldmlld2luZ1ZpZXdDb250cm9sbGVyID0gWUVTOwogICAgICAgICAgICAg
ICAgIHJldHVybiBjb250cm9sbGVyOwogICAgICAgICAgICAgfQpAQCAtMzk5Nyw4ICszOTk3LDgg
QEAgLSAodm9pZClfcHJldmlld0l0ZW1Db250cm9sbGVyOihVSVByZXZpZQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6Y29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOildKSB7Ci0gICAg
ICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGNvbW1pdFByZXZpZXdpbmdWaWV3Q29u
dHJvbGxlcjp2aWV3Q29udHJvbGxlcl07CisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpjb21taXRQcmV2aWV3aW5nVmlld0NvbnRyb2xsZXI6
KV0pIHsKKyAgICAgICAgW3VpRGVsZWdhdGUgd2ViVmlldzpfd2ViVmlldyBjb21taXRQcmV2aWV3
aW5nVmlld0NvbnRyb2xsZXI6dmlld0NvbnRyb2xsZXJdOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI1NSw4ICsyNTUsOCBA
QAogCQkxQTUzQzJBMjFBMzIzMDA0MDA0RThDNzAgLyogSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURl
Y2xhcmF0aW9uSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDNEVEMzI2MUEzMTE5RDkwMDc5QkQ0OSAvKiBJbmplY3RlZEJ1bmRsZUNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGUuY3BwICovOyB9OwogCQkxQTUzQzJBOTFBMzI1NzJCMDA0RThD
NzAgLyogV2Vic2l0ZURhdGFTdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQTUzQzJBNDFBMzI1NjlGMDA0RThDNzAgLyogV2Vic2l0ZURhdGFT
dG9yZS5jcHAgKi87IH07CiAJCTFBNTNDMkFBMUEzMjU3MzAwMDRFOEM3MCAvKiBXZWJzaXRlRGF0
YVN0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QTUzQzJBNTFBMzI1NjlGMDA0RThDNzAgLyogV2Vic2l0ZURhdGFTdG9yZS5oICovOyB9OwotCQkx
QTU3MDRGMTFCRTAxNzNGMDA4NzRBRjEgLyogX1dLRWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU3MDRFRjFCRTAxNzNGMDA4NzRB
RjEgLyogX1dLRWxlbWVudEluZm8ubW0gKi87IH07Ci0JCTFBNTcwNEYyMUJFMDE3NDAwMDg3NEFG
MSAvKiBfV0tFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUE1NzA0RjAxQkUwMTczRjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZvLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMUE1NzA0
RjExQkUwMTczRjAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU3MDRFRjFCRTAxNzNGMDA4NzRBRjEgLyog
V0tFbGVtZW50SW5mby5tbSAqLzsgfTsKKwkJMUE1NzA0RjIxQkUwMTc0MDAwODc0QUYxIC8qIFdL
RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBNTcwNEYwMUJFMDE3M0YwMDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZvLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQkxQTU3MDRGNzFCRTAxRkY0
MDA4NzRBRjEgLyogX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNTcwNEY1MUJFMDFGRjQwMDg3NEFGMSAv
KiBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLm1tICovOyB9OwogCQkxQTU3MDRGODFCRTAxRkY0
MDA4NzRBRjEgLyogX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE1NzA0RjYxQkUwMUZGNDAwODc0QUYxIC8q
IF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTU3MDRGQjFCRTE3NTExMDA4NzRBRjEgLyogUmVtb3Rl
T2JqZWN0SW52b2NhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBNTcwNEY5MUJFMTc1MTEwMDg3NEFGMSAvKiBSZW1vdGVPYmplY3RJbnZvY2F0
aW9uLm1tICovOyB9OwpAQCAtMTE5NCwxOSArMTE5NCwxOSBAQAogCQk5MzVFRUJBMjEyNzc2MUQw
MDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUVFQjkwMTI3NzYxNUQwMDMzMjJC
OCAvKiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oICovOyB9OwogCQk5MzVFRUJBMzEy
Nzc2MUQzMDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUVFQjkxMTI3
NzYxNUQwMDMzMjJCOCAvKiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICov
OyB9OwogCQk5MzVFRUJBNDEyNzc2MUQ2MDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9y
d2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzVFRUI5MjEyNzc2MTVEMDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2Fy
ZExpc3RJdGVtLmggKi87IH07Ci0JCTkzNzM1RUJCMUM5Mjk4NjMwMDMzNkZBNyAvKiBfV0tQcmV2
aWV3QWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzNzM1RUJBMUM5Mjk4NjMwMDMzNkZBNyAvKiBfV0tQcmV2aWV3QWN0aW9uSW50
ZXJuYWwuaCAqLzsgfTsKLQkJOTM5MTA3NEYxQkY2QkM2NTAwOEMxN0FEIC8qIF9XS1ByZXZpZXdF
bGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogX1dLUHJldmlld0VsZW1lbnRJ
bmZvSW50ZXJuYWwuaCAqLzsgfTsKKwkJOTM3MzVFQkIxQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJl
dmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM3MzVFQkExQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlv
bkl0ZW1JbnRlcm5hbC5oICovOyB9OworCQk5MzkxMDc0RjFCRjZCQzY1MDA4QzE3QUQgLyogV0tQ
cmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaCAqLzsgfTsKIAkJOTM5MUYyQ0ExMjFCNjc5QTAwRUJGN0U4IC8q
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxRjI4NDEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5tbSAqLzsgfTsKIAkJOTM5MUYyQ0IxMjFCNjdBRDAwRUJGN0U4IC8q
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggKi87IH07Ci0JCTkzOTVFNjhBMUJGMkMzMzIwMEY0OUJDRSAvKiBf
V0tQcmV2aWV3RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzOTVFNjg5MUJGMkMzMzIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVu
dEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk5Mzk1RTY4QzFCRjJDMzUyMDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5NUU2OEIxQkYy
QzM1MjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5tbSAqLzsgfTsKLQkJOTM5NUU2
OEUxQkY0MTBGRDAwRjQ5QkNFIC8qIF9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTVFNjhEMUJGNDEwRkQwMEY0
OUJDRSAvKiBfV0tFbGVtZW50SW5mb0ludGVybmFsLmggKi87IH07CisJCTkzOTVFNjhBMUJGMkMz
MzIwMEY0OUJDRSAvKiBXS1ByZXZpZXdFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNFIC8qIFdL
UHJldmlld0VsZW1lbnRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGlj
LCApOyB9OyB9OworCQk5Mzk1RTY4QzFCRjJDMzUyMDBGNDlCQ0UgLyogV0tQcmV2aWV3RWxlbWVu
dEluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
Mzk1RTY4QjFCRjJDMzUyMDBGNDlCQ0UgLyogV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gKi87IH07
CisJCTkzOTVFNjhFMUJGNDEwRkQwMEY0OUJDRSAvKiBXS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTVFNjhEMUJG
NDEwRkQwMEY0OUJDRSAvKiBXS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLzsgfTsKIAkJOTM5QUU3
NjYxMzE2RTk5QzAwQUUwNkE2IC8qIFdlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlBRTc2NTEzMTZFOTlDMDBB
RTA2QTYgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCAqLzsgfTsKIAkJOTM5RjQwMUMxOUZC
MEJCQzAwMkIyQjQyIC8qIFdLQWN0aW9uTWVudVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlGNDAxQjE5RkIwQkJDMDAyQjJCNDIgLyogV0tB
Y3Rpb25NZW51VHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQk5M0EyNTNFRDFDOTIyRTFFMDBGOUY2OEQgLyogX1dLUHJldmlld0FjdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMjUzRUMx
QzkyMkUxRTAwRjlGNjhEIC8qIF9XS1ByZXZpZXdBY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5M0EyNTNFRjFDOTIyRThFMDBGOUY2OEQg
LyogX1dLUHJldmlld0FjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQTI1M0VFMUM5MjJFOEUwMEY5RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9u
Lm1tICovOyB9OwotCQk5M0EyNTNGMzFDOTI0MTEyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9u
SWRlbnRpZmllcnNQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0EyNTNGMjFDOTI0MTEyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSWRl
bnRpZmllcnNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJOTNBMjUzRjUxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbklk
ZW50aWZpZXJzUHJpdmF0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQTI1M0Y0MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JZGVu
dGlmaWVyc1ByaXZhdGUubW0gKi87IH07CisJCTkzQTI1M0VEMUM5MjJFMUUwMEY5RjY4RCAvKiBX
S1ByZXZpZXdBY3Rpb25JdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0EyNTNFQzFDOTIyRTFFMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRl
bS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJOTNB
MjUzRUYxQzkyMkU4RTAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW0ubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EyNTNFRTFDOTIyRThFMDBG
OUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbS5tbSAqLzsgfTsKKwkJOTNBMjUzRjMxQzkyNDEx
MjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMjUzRjIxQzkyNDExMjAwRjlG
NjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJOTNBMjUzRjUxQzkyNDEzMjAwRjlGNjhE
IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTI1M0Y0MUM5MjQxMzIwMEY5RjY4RCAvKiBX
S1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW0gKi87IH07CiAJCTkzQTg4QjMwMUJDNkU5
OTcwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTg4QjJFMUJDNkU5OEYwMEFCQTVDMiAvKiBX
ZWJIaXRUZXN0UmVzdWx0RGF0YS5tbSAqLzsgfTsKIAkJOTNBODhCMzMxQkM2RTlDRDAwQUJBNUMy
IC8qIFdlYkhpdFRlc3RSZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEIzMTFCQzZFOUMwMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJl
c3VsdERhdGEuaCAqLzsgfTsKIAkJOTNBODhCMzYxQkM2RUFENTAwQUJBNUMyIC8qIFdlYkhpdFRl
c3RSZXN1bHREYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQTg4QjM0MUJDNkVBQkEwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5j
cHAgKi87IH07CkBAIC0yMTg2LDggKzIxODYsOCBAQAogCQkxQTUyQzBGNjFBMzhDREM3MDAxNjE2
MEEgLyogV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQTUzQzJBNDFBMzI1NjlGMDA0RThDNzAgLyogV2Vic2l0ZURhdGFT
dG9yZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJzaXRlRGF0
YVN0b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE1M0MyQTUxQTMyNTY5
RjAwNEU4QzcwIC8qIFdlYnNpdGVEYXRhU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2Vic2l0ZURhdGFTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkxQTU3MDRFRjFCRTAxNzNGMDA4NzRBRjEgLyogX1dLRWxlbWVudEluZm8ubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tFbGVtZW50SW5mby5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUE1NzA0RjAxQkUwMTczRjAwODc0QUYxIC8qIF9XS0Vs
ZW1lbnRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0VsZW1lbnRJ
bmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBNTcwNEVGMUJFMDE3M0YwMDg3
NEFGMSAvKiBXS0VsZW1lbnRJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV0tFbGVtZW50SW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUE1NzA0RjAxQkUwMTczRjAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tFbGVtZW50SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQTU3MDRGNTFCRTAxRkY0MDA4NzRBRjEgLyogX1dLQ29udGV4dE1lbnVFbGVt
ZW50SW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS0Nv
bnRleHRNZW51RWxlbWVudEluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFB
NTcwNEY2MUJFMDFGRjQwMDg3NEFGMSAvKiBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE1NzA0RjkxQkUxNzUxMTAwODc0QUYx
IC8qIFJlbW90ZU9iamVjdEludm9jYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBSZW1vdGVPYmplY3RJbnZvY2F0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMzIxNSwxOSArMzIxNSwxOSBAQAogCQk5MzVFRUI5NjEyNzc2MTZEMDAz
MzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM1RUVCOTcxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0Zvcndh
cmRMaXN0SXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1
bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzVFRUI5ODEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVt
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRM
aXN0SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5MzczNUVCQTFDOTI5ODYz
MDAzMzZGQTcgLyogX1dLUHJldmlld0FjdGlvbkludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IF9XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogX1dLUHJldmlld0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dL
UHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM3MzVFQkExQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5h
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1ByZXZpZXdBY3Rpb25JdGVt
SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5MTA3NEUxQkY2QkM2
NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzOTFGMjg0MTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTM5NUU2ODkx
QkYyQzMzMjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tQcmV2aWV3RWxlbWVudEluZm8uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJOTM5NUU2OEIxQkYyQzM1MjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdF
bGVtZW50SW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9X
S1ByZXZpZXdFbGVtZW50SW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTM5
NUU2OEQxQkY0MTBGRDAwRjQ5QkNFIC8qIF9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5Mzk1RTY4OTFCRjJDMzMyMDBGNDlCQ0UgLyogV0tQ
cmV2aWV3RWxlbWVudEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQ
cmV2aWV3RWxlbWVudEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5NUU2
OEIxQkYyQzM1MjAwRjQ5QkNFIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tQcmV2aWV3RWxlbWVudEluZm8ubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOTVFNjhEMUJGNDEwRkQwMEY0OUJDRSAvKiBX
S0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tFbGVtZW50SW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
OUFFNzY1MTMxNkU5OUMwMEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5RjQwMUIxOUZCMEJCQzAwMkIyQjQy
IC8qIFdLQWN0aW9uTWVudVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLQWN0aW9uTWVudVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzQTI1
M0VDMUM5MjJFMUUwMEY5RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1ByZXZpZXdBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJOTNBMjUzRUUxQzkyMkU4RTAwRjlGNjhEIC8qIF9XS1ByZXZpZXdBY3Rpb24u
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tQcmV2aWV3QWN0
aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0EyNTNGMjFDOTI0MTEyMDBG
OUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0EyNTNGNDFDOTI0MTMyMDBGOUY2OEQg
LyogV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRl
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EyNTNFQzFDOTIyRTFFMDBGOUY2
OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS1ByZXZpZXdBY3Rpb25JdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQTI1M0VFMUM5MjJFOEUwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tQcmV2aWV3QWN0aW9uSXRlbS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMjUzRjIxQzkyNDExMjAwRjlGNjhE
IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMjUzRjQxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmll
d0FjdGlvbkl0ZW1JZGVudGlmaWVycy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODhCMkUxQkM2RTk4RjAwQUJBNUMyIC8qIFdlYkhpdFRlc3RS
ZXN1bHREYXRhLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
SGl0VGVzdFJlc3VsdERhdGEubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTg4
QjMxMUJDNkU5QzAwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEIzNDFCQzZFQUJBMDBBQkE1QzIgLyogV2ViSGl0VGVz
dFJlc3VsdERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
SGl0VGVzdFJlc3VsdERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDk2
Nyw5ICs0OTY3LDYgQEAKIAkJCQkzNzlBODczODE4QkJGRTBGMDA1ODhBRjIgLyogX1dLRWxlbWVu
dEFjdGlvbi5oICovLAogCQkJCTM3OUE4NzM3MThCQkZFMEYwMDU4OEFGMiAvKiBfV0tFbGVtZW50
QWN0aW9uLm1tICovLAogCQkJCTM3OUE4NzNCMThCQkZGMDcwMDU4OEFGMiAvKiBfV0tFbGVtZW50
QWN0aW9uSW50ZXJuYWwuaCAqLywKLQkJCQkxQTU3MDRGMDFCRTAxNzNGMDA4NzRBRjEgLyogX1dL
RWxlbWVudEluZm8uaCAqLywKLQkJCQkxQTU3MDRFRjFCRTAxNzNGMDA4NzRBRjEgLyogX1dLRWxl
bWVudEluZm8ubW0gKi8sCi0JCQkJOTM5NUU2OEQxQkY0MTBGRDAwRjQ5QkNFIC8qIF9XS0VsZW1l
bnRJbmZvSW50ZXJuYWwuaCAqLywKIAkJCQkxQUQwMUJDNzE5MDVEMzdFMDBDOUM0NUYgLyogX1dL
RXJyb3JSZWNvdmVyeUF0dGVtcHRpbmcuaCAqLywKIAkJCQkxQUQwMUJDNjE5MDVEMzdFMDBDOUM0
NUYgLyogX1dLRXJyb3JSZWNvdmVyeUF0dGVtcHRpbmcubW0gKi8sCiAJCQkJMDA1RDE1OEUxOEU0
QzRFQjAwNzM0NjE5IC8qIF9XS0ZpbmREZWxlZ2F0ZS5oICovLApAQCAtNDk4MCwxMiArNDk3Nyw2
IEBACiAJCQkJMzdBNjRFNTQxOEYzOEUzQzAwRUIzMEYxIC8qIF9XS0lucHV0RGVsZWdhdGUuaCAq
LywKIAkJCQkyRDc5MEE5QzFBRDcwNTBEMDBBQjkwQjMgLyogX1dLTGF5b3V0TW9kZS5oICovLAog
CQkJCTkzMjM2MTFEMUIwMTVEQTgwMEZBOTIzMiAvKiBfV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUu
aCAqLywKLQkJCQk5M0EyNTNFQzFDOTIyRTFFMDBGOUY2OEQgLyogX1dLUHJldmlld0FjdGlvbi5o
ICovLAotCQkJCTkzQTI1M0VFMUM5MjJFOEUwMEY5RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9uLm1t
ICovLAotCQkJCTkzNzM1RUJBMUM5Mjk4NjMwMDMzNkZBNyAvKiBfV0tQcmV2aWV3QWN0aW9uSW50
ZXJuYWwuaCAqLywKLQkJCQk5Mzk1RTY4OTFCRjJDMzMyMDBGNDlCQ0UgLyogX1dLUHJldmlld0Vs
ZW1lbnRJbmZvLmggKi8sCi0JCQkJOTM5NUU2OEIxQkYyQzM1MjAwRjQ5QkNFIC8qIF9XS1ByZXZp
ZXdFbGVtZW50SW5mby5tbSAqLywKLQkJCQk5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogX1dL
UHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLywKIAkJCQkxQTQzRTgyODE4OEYzQ0RDMDA5
RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMUE0M0U4Mjcx
ODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSAqLywKIAkJ
CQk3Qzg5RDJENjFBNkM2QkU2MDAzQTVGREUgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
SW50ZXJuYWwuaCAqLywKQEAgLTUwMjUsNiArNTAxNiw5IEBACiAJCQkJMzdDNEMwODQxODE0OUM1
QjAwMzY4OEI5IC8qIFdLQmFja0ZvcndhcmRMaXN0SXRlbS5tbSAqLywKIAkJCQkzN0M0QzA4ODE4
MTQ5RjIzMDAzNjg4QjkgLyogV0tCYWNrRm9yd2FyZExpc3RJdGVtSW50ZXJuYWwuaCAqLywKIAkJ
CQkxQTlGMjgxMDE5NThGNDc4MDA4Q0FDNzIgLyogV0tCYWNrRm9yd2FyZExpc3RQcml2YXRlLmgg
Ki8sCisJCQkJMUE1NzA0RjAxQkUwMTczRjAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8uaCAqLywK
KwkJCQkxQTU3MDRFRjFCRTAxNzNGMDA4NzRBRjEgLyogV0tFbGVtZW50SW5mby5tbSAqLywKKwkJ
CQk5Mzk1RTY4RDFCRjQxMEZEMDBGNDlCQ0UgLyogV0tFbGVtZW50SW5mb0ludGVybmFsLmggKi8s
CiAJCQkJMUFGNDU5MkQxOTQ2NEIyMDAwRjlENEEyIC8qIFdLRXJyb3IuaCAqLywKIAkJCQkxQUY0
NTkyQzE5NDY0QjIwMDBGOUQ0QTIgLyogV0tFcnJvci5tbSAqLywKIAkJCQkxQTJEMjUyQTE5NDY4
OEZEMDA0NTM3QjAgLyogV0tFcnJvckludGVybmFsLmggKi8sCkBAIC01MDU0LDggKzUwNDgsMTQg
QEAKIAkJCQkxQUZERDMxODE4OTFDQTEyMDAxNTM5NzAgLyogV0tQcmVmZXJlbmNlcy5tbSAqLywK
IAkJCQkxQTNDODg3RjE4QTVBQkFFMDBDNEM5NjIgLyogV0tQcmVmZXJlbmNlc0ludGVybmFsLmgg
Ki8sCiAJCQkJN0M4RUIxMTYxOERCNkExOTAwNzkxN0MyIC8qIFdLUHJlZmVyZW5jZXNQcml2YXRl
LmggKi8sCi0JCQkJOTNBMjUzRjIxQzkyNDExMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbklk
ZW50aWZpZXJzUHJpdmF0ZS5oICovLAotCQkJCTkzQTI1M0Y0MUM5MjQxMzIwMEY5RjY4RCAvKiBX
S1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUubW0gKi8sCisJCQkJOTNBMjUzRUMxQzky
MkUxRTAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW0uaCAqLywKKwkJCQk5M0EyNTNFRTFD
OTIyRThFMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbS5tbSAqLywKKwkJCQk5MzczNUVC
QTFDOTI5ODYzMDAzMzZGQTcgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmggKi8sCisJ
CQkJOTNBMjUzRjIxQzkyNDExMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlm
aWVycy5oICovLAorCQkJCTkzQTI1M0Y0MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rp
b25JdGVtSWRlbnRpZmllcnMubW0gKi8sCisJCQkJOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNFIC8q
IFdLUHJldmlld0VsZW1lbnRJbmZvLmggKi8sCisJCQkJOTM5NUU2OEIxQkYyQzM1MjAwRjQ5QkNF
IC8qIFdLUHJldmlld0VsZW1lbnRJbmZvLm1tICovLAorCQkJCTkzOTEwNzRFMUJGNkJDNjUwMDhD
MTdBRCAvKiBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggKi8sCiAJCQkJMUExNTg0MTgx
ODkwNDRGNTAwMTc2MTZDIC8qIFdLUHJvY2Vzc1Bvb2wuaCAqLywKIAkJCQkxQTE1ODQxNzE4OTA0
NEY1MDAxNzYxNkMgLyogV0tQcm9jZXNzUG9vbC5tbSAqLywKIAkJCQkxQTNDQzE2ODE4OTA3RUIw
MDAxRTZFRDggLyogV0tQcm9jZXNzUG9vbEludGVybmFsLmggKi8sCkBAIC03MTQ1LDcgKzcxNDUs
NyBAQAogCQkJCTM3OUE4NzNBMThCQkZFMEYwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzNzlBODczQzE4QkJGRjA3MDA1ODhBRjIgLyogX1dLRWxlbWVu
dEFjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTBEMjhCQjFDNjUzOUQzMDA5
ODY5NzcgLyogQXV0b21hdGlvblNlc3Npb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTFB
NTcwNEYyMUJFMDE3NDAwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMUE1NzA0RjIxQkUwMTc0MDAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBRDAxQkM5MTkwNUQzN0UwMEM5QzQ1RiAvKiBfV0tFcnJvclJlY292ZXJ5
QXR0ZW1wdGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDA1RDE1OEYxOEU0QzRFQjAwNzM0NjE5
IC8qIF9XS0ZpbmREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBNUVCQkMxQzdCQTQz
RTAwQjlDQTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYuaCBpbiBIZWFkZXJzICovLApAQCAtNzIwNCw3
ICs3MjA0LDcgQEAKIAkJCQk3QzFCQTMzRTFBNEEwRTYwMDA0M0UyNDkgLyogQVBJRGljdGlvbmFy
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUY3RDM2QzExOERBNTEzRjAwRDlENjU5IC8qIEFQSURv
d25sb2FkQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTZBNEE1RDEyMEEyQ0NEMDBDMDVC
N0YgLyogQVBJRXJyb3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzOTVFNjhFMUJGNDEwRkQwMEY0
OUJDRSAvKiBfV0tFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk5Mzk1
RTY4RTFCRjQxMEZEMDBGNDlCQ0UgLyogV0tFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwMEI5NjYxNjE4RTI0Q0JBMDBDRTFGODggLyogQVBJRmluZENsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMkRENjdBMkUxQkQ4MTk3MzAwNTNCMjUxIC8qIEFQSUZpbmRNYXRj
aGVzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0UyNUQ2RTE4RkRFNUQ2MDA1RDNBMDAg
LyogQVBJRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC03MzczLDE0ICs3MzczLDE0IEBA
CiAJCQkJMUFCQzNERjYxODk5RTQzNzAwNEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUE2RkJBMkExMUU2ODYyNzAwREIxMzcxIC8qIE5ldHNjYXBlQnJvd3Nl
ckZ1bmNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTBEMjhBQjFDNjQyMEM2MDA5ODY5NzcgLyog
X1dLQXV0b21hdGlvblNlc3Npb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTkzNzM1RUJCMUM5Mjk4
NjMwMDMzNkZBNyAvKiBfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzNzM1RUJCMUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTI4NjgwMUM3RjkyQzAwMDY5QUM0RiAvKiBfV0tX
ZWJzaXRlRGF0YVNpemVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2RkJEMjgxMUU2
OUJDMjAwREIxMzcxIC8qIE5ldHNjYXBlUGx1Z2luLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRB
OUM1NjEyQjgxNkNGMDA4RkU5ODQgLyogTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBQTU4ODkyMTFFRTcwNDAwMDYxQjg4MiAvKiBOZXRzY2FwZVBsdWdpblN0cmVh
bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE3OThDN0ExNkU2ODE4ODAwMjQwMTM5IC8qIE5ldHdv
cmtCbG9iUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDM2RUNDMUEwRDA0MEIwMEVB
RDIwNCAvKiBOZXR3b3JrQ2FjaGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzOTVFNjhBMUJGMkMz
MzIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzOTVFNjhBMUJGMkMzMzIwMEY0OUJDRSAvKiBXS1ByZXZpZXdFbGVtZW50SW5mby5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTQ5RDQwRDcxQUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJs
b2JTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg5RDI4QTFBMEEyREI4MDA3OEMwNkEg
LyogTmV0d29ya0NhY2hlQ29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0ODlEMjhDMUEwQTJE
QjgwMDc4QzA2QSAvKiBOZXR3b3JrQ2FjaGVDb2RlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtNzQw
Nyw3ICs3NDA3LDcgQEAKIAkJCQk1MTYzMTk5NTE2Mjg5QTYzMDBFMjJGMDAgLyogTmV0d29ya1By
b2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE0QTk1NEExNkUwMTZBNDAwNjhE
RTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MTc5NTU2RTE2Mjg3N0IzMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3NQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJOTNBMjUzRUQxQzkyMkUxRTAwRjlGNjhEIC8qIF9XS1ByZXZpZXdB
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTI1M0VEMUM5MjJFMUUwMEY5RjY4RCAvKiBX
S1ByZXZpZXdBY3Rpb25JdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTNBMTYzRDE2MzA4OEY2
MDA1RDdEMjIgLyogTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5OTU1QTZGNTFDNzk4NkUwMDBFQjZBOTMgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUZEMThCNjE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0
d29ya1Jlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTc3MjYsNyArNzcyNiw3IEBA
CiAJCQkJOTM5RjQwMUMxOUZCMEJCQzAwMkIyQjQyIC8qIFdLQWN0aW9uTWVudVR5cGVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkNCNEU0ODE4QkJFMDQ0MDAwRkNGQzkgLyogV0tBY3Rpb25TaGVl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDQjRFNEExOEJCRTA0NDAwMEZDRkM5IC8qIFdLQWN0
aW9uU2hlZXRBc3Npc3RhbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzOTEwNzRGMUJGNkJDNjUw
MDhDMTdBRCAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTM5MTA3NEYxQkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1RkExRUQzMThFMTA2MjIwMEIzRjQwMiAvKiBX
S0FpclBsYXlSb3V0ZVBpY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEREIzMkQxMjRFQzJF
MTAwNDhEMTNDIC8qIFdLQVBJQ2FzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyRTM0RTUxMzBC
NEQwNTAwQUJEMTlBIC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICov
LApAQCAtODAzNCw3ICs4MDM0LDcgQEAKIAkJCQk3NUE4RDJDODE4N0NDRkFCMDBDMzlDOUUgLyog
V0tXZWJzaXRlRGF0YVN0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NUE4RDJENjE4N0QxQzBF
MDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3JlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBNTcxMDlGMUFCQTAwMjcwMDJGQUJCRSAvKiBXS1dlYnNpdGVEYXRhU3RvcmVSZWYuaCBp
biBIZWFkZXJzICovLAotCQkJCTkzQTI1M0YzMUM5MjQxMTIwMEY5RjY4RCAvKiBXS1ByZXZpZXdB
Y3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQTI1M0YzMUM5
MjQxMTIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBM0NDMTY3MTg5MDZBQ0YwMDFFNkVEOCAvKiBXS1dlYlZpZXcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBREY1OTFCMTg5MDUyOEUwMDQzQzE0NSAvKiBXS1dlYlZpZXdDb25m
aWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDdBQUZENjE4Qzk1NkFGMDBBN0FDRDQg
LyogV0tXZWJWaWV3Q29uZmlndXJhdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTg2
MzgsNyArODYzOCw3IEBACiAJCQkJOTk1NUE2RjQxQzc5ODZEQzAwRUI2QTkzIC8qIEluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUE0RkU1QjE4RENF
OUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWQubW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzlBODcz
OTE4QkJGRTBGMDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbi5tbSBpbiBTb3VyY2VzICovLAot
CQkJCTFBNTcwNEYxMUJFMDE3M0YwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTFBNTcwNEYxMUJFMDE3M0YwMDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZvLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUFEMDFCQzgxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9y
UmVjb3ZlcnlBdHRlbXB0aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzczRDEyMjIxOEE0NzMw
MTAwNjZEOUNDIC8qIF9XS0ZyYW1lSGFuZGxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNBODhC
MzkxQkM3MEYzRjAwQUJBNUMyIC8qIF9XS0hpdFRlc3RSZXN1bHQubW0gaW4gU291cmNlcyAqLywK
QEAgLTg4MjgsNyArODgyOCw3IEBACiAJCQkJRTQ4OUQyOEIxQTBBMkRCODAwNzhDMDZBIC8qIE5l
dHdvcmtDYWNoZUNvZGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDdEMUU5ODFCMDY0OUZC
MDAyNjc2QTggLyogTmV0d29ya0NhY2hlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDJF
MDYxNDFBQTc1QjcwMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlRGF0YUNvY29hLm1tIGluIFNvdXJj
ZXMgKi8sCi0JCQkJOTNBMjUzRjUxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbklk
ZW50aWZpZXJzUHJpdmF0ZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTkzQTI1M0Y1MUM5MjQxMzIw
MEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW0gaW4gU291cmNlcyAq
LywKIAkJCQlFNDg5RDI4RDFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29ya0NhY2hlRGVjb2Rlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDg5RDI4RjFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29y
a0NhY2hlRW5jb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDEzRjU5RjFBQzFBRjlEMDAz
NDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04OTMxLDcg
Kzg5MzEsNyBAQAogCQkJCUUxQ0MxQjkxMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm9NYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzcxNkE1QTE5NUI5MTA1MDBFRThCMUIgLyogUHJvY2Vz
c0Fzc2VydGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkY5NTM2NDE4RkY1ODNDMDAxREIy
RUYgLyogUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTkzOTVFNjhD
MUJGMkMzNTIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAq
LywKKwkJCQk5Mzk1RTY4QzFCRjJDMzUyMDBGNDlCQ0UgLyogV0tQcmV2aWV3RWxlbWVudEluZm8u
bW0gaW4gU291cmNlcyAqLywKIAkJCQlDNTVGOTE3MDFDNTk1RjYzMDAyOUU5MkQgLyogRGF0YURl
dGVjdGlvblJlc3VsdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBRTExN0Y2MTFEQkIzMDkwMDk4
MTYxNSAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFCMUQx
MTJGNUZFNjAwMzM3QkFCIC8qIFByb2Nlc3NMYXVuY2hlck1hYy5tbSBpbiBTb3VyY2VzICovLApA
QCAtOTMwNCw3ICs5MzA0LDcgQEAKIAkJCQlDRENBODVDODEzMkFCQTRFMDBFOTYxREYgLyogV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNTRDQzEz
MTJENjc0RUUwMDVDNjdCMCAvKiBXS0dlb2xvY2F0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzA2RjQ0RjEyREJERjNGMDAyRDc4REUgLyogV0tHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTkzQTI1M0VGMUM5MjJFOEUwMEY5RjY4
RCAvKiBfV0tQcmV2aWV3QWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTNBMjUzRUYxQzky
MkU4RTAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW0ubW0gaW4gU291cmNlcyAqLywKIAkJ
CQlCQzBFNjE5OTEyRDZDRDEyMDAxMkE3MkEgLyogV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTA3Mjk3RkEyMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRp
YVBlcm1pc3Npb25DaGVjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkNCNEU1MDE4QkJFMDQ0
MDAwRkNGQzkgLyogV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273854</attachid>
            <date>2016-03-12 14:48:40 -0800</date>
            <delta_ts>2016-03-12 15:09:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>for-review-api-4.txt</filename>
            <type>text/plain</type>
            <size>95862</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY1IEBACisyMDE2LTAzLTEyICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHByZXZpZXcgaW5saW5lIG5h
dmlnYXRpb24gd29yayBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NTM4MworICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisgICAgICAgIHJk
YXI6Ly9wcm9ibGVtLzI1MTE3OTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2l0aCB0aGlzIHBhdGNoOgorICAgICAgICBfV0tFbGVtZW50SW5mbyBp
cyBub3cgV0tFbGVtZW50SW5mbyBpbiBmaWxlIGFuZCBjbGFzcyBuYW1lcy4gSGVhZGVyIGlzIG5v
dyAKKyAgICAgICAgcHVibGljLgorCisgICAgICAgIF9XS1ByZXZpZXdFbGVtZW50SW5mbyBpcyBu
b3cgV0tQcmV2aWV3RWxlbWVudEluZm8gaW4gZmlsZSBhbmQgY2xhc3MgbmFtZXMuIAorICAgICAg
ICBIZWFkZXIgaXMgbm93IHB1YmxpYy4KKworICAgICAgICBfV0tQcmV2aWV3QWN0aW9uIGlzIG5v
dyBXS1ByZXZpZXdBY3Rpb25JdGVtIGluIGZpbGVuYW1lcyAoaGVhZGVyIGlzIG5vdyAKKyAgICAg
ICAgcHVibGljKSwgdGhlIHByb3RvY29sIF9XS1ByZXZpZXdBY3Rpb25JdGVtIGlzIG5vdyBXS1By
ZXZpZXdBY3Rpb25JdGVtLCBhbmQgCisgICAgICAgIHRoZSBfV0tQcmV2aWV3QWN0aW9uIGNsYXNz
IGlzIG5vdyBXS1ByZXZpZXdBY3Rpb24uIChUaGUgaW50ZXJuYWwgaGVhZGVyIGlzIAorICAgICAg
ICBzdGlsbCBwcm9qZWN0LCBvZiBjb3Vyc2UuKQorICAgICAgICBhbmQKKyAgICAgICAgV0tQcmV2
aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmgvbW0gaXMgbm93CisgICAgICAgIFdLUHJldmll
d0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oL21tIGFuZCBhbGwgdGhlIHRoZSBpZGVudGlmaWVycyBo
YXZlIGJlZW4gCisgICAgICAgIHVwZGF0ZWQuIEhlYWRlciBpcyBub3cgcHVibGljLgorCisgICAg
ICAgICogU2hhcmVkL0FQSS9Db2NvYS9XZWJLaXQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLRWxlbWVudEluZm8uaDogQ29waWVkIGZyb20gVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tFbGVtZW50SW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50
SW5mby5tbTogQ29waWVkIGZyb20gVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5t
bS4KKyAgICAgICAgKC1bV0tFbGVtZW50SW5mbyBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICgt
W19XS0VsZW1lbnRJbmZvIGNvcHlXaXRoWm9uZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm9JbnRlcm5hbC5oOiBDb3BpZWQgZnJvbSBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSWRlbnRp
ZmllcnNQcml2YXRlLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmV2aWV3QWN0aW9uSXRlbS5oOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1ByZXZpZXdBY3Rpb24uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmll
d0FjdGlvbkl0ZW0ubW06IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmll
d0FjdGlvbi5tbS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlv
bkl0ZW1JZGVudGlmaWVycy5oOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
dmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tOiBDb3BpZWQgZnJvbSBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5tbS4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5o
OiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdBY3Rpb25JbnRlcm5h
bC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8u
aDogQ29waWVkIGZyb20gVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8u
aC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLm1t
OiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5t
bS4KKyAgICAgICAgKC1bV0tQcmV2aWV3RWxlbWVudEluZm8gX2luaXRXaXRoTGlua1VSTDpdKToK
KyAgICAgICAgKC1bX1dLUHJldmlld0VsZW1lbnRJbmZvIF9pbml0V2l0aExpbmtVUkw6XSk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5m
b0ludGVybmFsLmg6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlE
ZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ29udGV4dE1lbnVFbGVt
ZW50SW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8u
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZv
Lm1tOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudElu
Zm9JbnRlcm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UHJldmlld0FjdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJldmlld0FjdGlvbi5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmg6IFJlbW92ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8ubW06IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm9JbnRl
cm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9pbnRlcmFjdGlvblNob3Vs
ZEJlZ2luRnJvbVByZXZpZXdJdGVtQ29udHJvbGxlcjpmb3JQb3NpdGlvbjpdKToKKyAgICAgICAg
KHByZXZpZXdJZGVudGlmaWVyRm9yRWxlbWVudEFjdGlvbik6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX3ByZXNlbnRlZFZpZXdDb250cm9sbGVyRm9yUHJldmlld0l0ZW1Db250cm9sbGVyOl0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI6Y29tbWl0
UHJldmlldzpdKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKIDIwMTYtMDMtMTIgIEplcmVteSBIdWRkbGVzdG9uIFNlcXVvaWEgIDxqZXJlbXlodUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0dUS11bTWFjXSBVc2UgRFlMRF9MSUJSQVJZX1BBVEggb24gT1NY
IHJhdGhlciB0aGVuIExEX0xJQlJBUllfUEFUSApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9Db2NvYS9XZWJLaXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0NvY29hL1dlYktpdC5oCShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL0NvY29hL1dlYktpdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBA
CiAKICNpbXBvcnQgPFdlYktpdC9XS0JhY2tGb3J3YXJkTGlzdC5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRWxlbWVudEluZm8u
aD4KICNpbXBvcnQgPFdlYktpdC9XS0Vycm9yLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0
aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tGcmFtZUluZm8uaD4KQEAgLTMzLDYgKzM0LDkgQEAK
ICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLTmF2aWdhdGlvblJlc3BvbnNlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlcy5o
PgorI2ltcG9ydCA8V2ViS2l0L1dLUHJldmlld0FjdGlvbkl0ZW0uaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1By
ZXZpZXdFbGVtZW50SW5mby5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2wuaD4KICNp
bXBvcnQgPFdlYktpdC9XS1NjcmlwdE1lc3NhZ2UuaD4KICNpbXBvcnQgPFdlYktpdC9XS1Njcmlw
dE1lc3NhZ2VIYW5kbGVyLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLRWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm8uaAkocmV2aXNpb24gMTk4MDY5KQkoZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLmg6MTk4MDY5KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktp
dC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKK05TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCisKK1dLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQor
QGludGVyZmFjZSBfV0tFbGVtZW50SW5mbyA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CisKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKmxpbmtVUkw7CisKK0BlbmQKKworTlNf
QVNTVU1FX05PTk5VTExfRU5ECisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0VsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBX
S19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSkKLUBpbnRlcmZhY2UgX1dL
RWxlbWVudEluZm8gOiBOU09iamVjdCA8TlNDb3B5aW5nPgorQGludGVyZmFjZSBXS0VsZW1lbnRJ
bmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBOU1VSTCAqbGlua1VSTDsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0VsZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5tbQkocmV2aXNpb24gMTk4MDY5KQkoZnJv
bSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLm1tOjE5
ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5m
by5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisjaW1wb3J0ICJfV0tFbGVtZW50SW5mb0ludGVybmFsLmgiCisKKyNpZiBX
S19BUElfRU5BQkxFRAorCitAaW1wbGVtZW50YXRpb24gX1dLRWxlbWVudEluZm8KKworLSAoaWQp
Y29weVdpdGhab25lOihOU1pvbmUgKil6b25lCit7CisgICAgcmV0dXJuIFtzZWxmIHJldGFpbl07
Cit9CisKKy0gKE5TVVJMICopbGlua1VSTAoreworICAgIHJldHVybiBfbGlua1VSTC5nZXQoKTsK
K30KKworQGVuZAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm8ubW0JKHdvcmtpbmcgY29weSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mby5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjQsMTEgKzI0LDExIEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1w
b3J0ICJfV0tFbGVtZW50SW5mb0ludGVybmFsLmgiCisjaW1wb3J0ICJXS0VsZW1lbnRJbmZvSW50
ZXJuYWwuaCIKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLUBpbXBsZW1lbnRhdGlvbiBfV0tFbGVt
ZW50SW5mbworQGltcGxlbWVudGF0aW9uIFdLRWxlbWVudEluZm8KIAogLSAoaWQpY29weVdpdGha
b25lOihOU1pvbmUgKil6b25lCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5mb0ludGVybmFsLmgJKHJldmlzaW9u
IDE5ODA2OSkJKGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVt
ZW50SW5mb0ludGVybmFsLmg6MTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiX1dLRWxlbWVudEluZm8uaCIKKworI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworQGludGVyZmFjZSBf
V0tFbGVtZW50SW5mbyAoKSB7CitAcGFja2FnZQorICAgIFJldGFpblB0cjxOU1VSTD4gX2xpbmtV
Ukw7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFbGVtZW50SW5m
b0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tFbGVtZW50SW5mb0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDE3
ICsyMywxNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNp
bXBvcnQgIl9XS0VsZW1lbnRJbmZvLmgiCisjaW1wb3J0ICJXS0VsZW1lbnRJbmZvLmgiCiAKICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLUBpbnRlcmZh
Y2UgX1dLRWxlbWVudEluZm8gKCkgeworQGludGVyZmFjZSBXS0VsZW1lbnRJbmZvICgpIHsKIEBw
YWNrYWdlCiAgICAgUmV0YWluUHRyPE5TVVJMPiBfbGlua1VSTDsKIH0KIAogQGVuZAogCi0jZW5k
aWYgLy8gV0tfQVBJX0VOQUJMRUQKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlv
bklkZW50aWZpZXJzUHJpdmF0ZS5oCShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJpdmF0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0KLSNpbXBvcnQg
PFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0FQSV9FTkFCTEVECi0KLSNpbXBvcnQg
PEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotI2ltcG9ydCA8V2ViS2l0L1dLRGVjbGFyYXRpb25T
cGVjaWZpZXJzLmg+Ci0KLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2
aWV3SWRlbnRpZmllck9wZW4gV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckFkZFRvUmVhZGlu
Z0xpc3QgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNT
dHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckNvcHkgV0tfQVZBSUxBQkxFKE5BLCBX
S19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3
SWRlbnRpZmllclNoYXJlIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci0KLSNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25J
ZGVudGlmaWVyc1ByaXZhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUubW0JKHJldmlz
aW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2
aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM2ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV0tQcmV2
aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmgiCi0KLSNpZiBXS19BUElfRU5BQkxFRAotCi1O
U1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyT3BlbiA9IEAiV0tQcmV2aWV3SWRl
bnRpZmllck9wZW4iOwotTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckFkZFRv
UmVhZGluZ0xpc3QgPSBAIldLUHJldmlld0lkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0IjsKLU5T
U3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJDb3B5ID0gQCJXS1ByZXZpZXdJZGVu
dGlmaWVyQ29weSI7Ci1OU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyU2hhcmUg
PSBAIldLUHJldmlld0lkZW50aWZpZXJTaGFyZSI7Ci0KLSNlbmRpZgpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25J
dGVtLmgJKHJldmlzaW9uIDE5ODA2OSkJKGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLmg6MTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24u
aD4KKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKKworI2ltcG9ydCA8
VUlLaXQvVUlWaWV3Q29udHJvbGxlci5oPgorCitXS19DTEFTU19BVkFJTEFCTEUoTkEsIFdLX0lP
U19UQkEpCitAcHJvdG9jb2wgX1dLUHJldmlld0FjdGlvbkl0ZW0gPE5TT2JqZWN0LCBVSVByZXZp
ZXdBY3Rpb25JdGVtPgorCitAcHJvcGVydHkobm9uYXRvbWljLCBjb3B5LCByZWFkb25seSkgTlNT
dHJpbmcgKmlkZW50aWZpZXI7CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYm
IFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5oCSh3b3JraW5nIGNvcHkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0u
aAkod29ya2luZyBjb3B5KQpAQCAtMjksMTEgKzI5LDExIEBACiAKICNpbXBvcnQgPFVJS2l0L1VJ
Vmlld0NvbnRyb2xsZXIuaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKQot
QHByb3RvY29sIF9XS1ByZXZpZXdBY3Rpb25JdGVtIDxOU09iamVjdCwgVUlQcmV2aWV3QWN0aW9u
SXRlbT4KK1dLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSkKK0Bwcm90b2NvbCBXS1ByZXZpZXdB
Y3Rpb25JdGVtIDxVSVByZXZpZXdBY3Rpb25JdGVtPgogCi1AcHJvcGVydHkobm9uYXRvbWljLCBj
b3B5LCByZWFkb25seSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSwgcmVhZG9ubHkpIE5TU3RyaW5nICppZGVudGlmaWVyOwogCiBAZW5kCiAKLSNlbmRp
ZiAvLyBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCisjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmll
d0FjdGlvbkl0ZW0ubW0JKHJldmlzaW9uIDE5ODA2OSkJKGZyb20gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLm1tOjE5ODA2OSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCIKKworI2lmIFdLX0FQSV9FTkFC
TEVEICYmIFRBUkdFVF9PU19JUEhPTkUKKworQGltcGxlbWVudGF0aW9uIF9XS1ByZXZpZXdBY3Rp
b24KK0BzeW50aGVzaXplIGlkZW50aWZpZXI9X2lkZW50aWZpZXI7CisKKysgKGluc3RhbmNldHlw
ZSlhY3Rpb25XaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIHRpdGxlOihOU1N0
cmluZyAqKXRpdGxlIHN0eWxlOihVSVByZXZpZXdBY3Rpb25TdHlsZSlzdHlsZSBoYW5kbGVyOih2
b2lkICheKShVSVByZXZpZXdBY3Rpb24gKmFjdGlvbiwgVUlWaWV3Q29udHJvbGxlciAqcHJldmll
d1ZpZXdDb250cm9sbGVyKSloYW5kbGVyCit7CisgICAgX1dLUHJldmlld0FjdGlvbiAqYWN0aW9u
ID0gW3NlbGYgYWN0aW9uV2l0aFRpdGxlOnRpdGxlIHN0eWxlOnN0eWxlIGhhbmRsZXI6aGFuZGxl
cl07CisgICAgYWN0aW9uLT5faWRlbnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgcmV0dXJuIGFj
dGlvbjsKK30KKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09T
X0lQSE9ORQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZp
ZXdBY3Rpb25JdGVtLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5tbQkod29ya2luZyBjb3B5KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNCwxNiArMjQsMTYgQEAKICAqLwogCiAjaW1wb3J0ICJjb25maWcuaCIK
LSNpbXBvcnQgIl9XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tQcmV2aWV3
QWN0aW9uSXRlbUludGVybmFsLmgiCiAKICNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1Nf
SVBIT05FCiAKLUBpbXBsZW1lbnRhdGlvbiBfV0tQcmV2aWV3QWN0aW9uCitAaW1wbGVtZW50YXRp
b24gV0tQcmV2aWV3QWN0aW9uCiBAc3ludGhlc2l6ZSBpZGVudGlmaWVyPV9pZGVudGlmaWVyOwog
CiArIChpbnN0YW5jZXR5cGUpYWN0aW9uV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRp
ZmllciB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBzdHlsZTooVUlQcmV2aWV3QWN0aW9uU3R5bGUp
c3R5bGUgaGFuZGxlcjoodm9pZCAoXikoVUlQcmV2aWV3QWN0aW9uICphY3Rpb24sIFVJVmlld0Nv
bnRyb2xsZXIgKnByZXZpZXdWaWV3Q29udHJvbGxlcikpaGFuZGxlcgogewotICAgIF9XS1ByZXZp
ZXdBY3Rpb24gKmFjdGlvbiA9IFtzZWxmIGFjdGlvbldpdGhUaXRsZTp0aXRsZSBzdHlsZTpzdHls
ZSBoYW5kbGVyOmhhbmRsZXJdOworICAgIFdLUHJldmlld0FjdGlvbiAqYWN0aW9uID0gW3NlbGYg
YWN0aW9uV2l0aFRpdGxlOnRpdGxlIHN0eWxlOnN0eWxlIGhhbmRsZXI6aGFuZGxlcl07CiAgICAg
YWN0aW9uLT5faWRlbnRpZmllciA9IGlkZW50aWZpZXI7CiAgICAgcmV0dXJuIGFjdGlvbjsKIH0K
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9u
SXRlbUlkZW50aWZpZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaAkocmV2aXNpb24gMTk4
MDY5KQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0Fj
dGlvbklkZW50aWZpZXJzUHJpdmF0ZS5oOjE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKworI2ltcG9ydCA8V2ViS2l0L1dL
Rm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCA8Rm91bmRhdGlv
bi9Gb3VuZGF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tEZWNsYXJhdGlvblNwZWNpZmllcnMu
aD4KKworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlm
aWVyT3BlbiBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworV0tfRVhQT1JUIGV4dGVybiBO
U1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdCBXS19B
VkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNv
bnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyQ29weSBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEp
OworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVy
U2hhcmUgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKworI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlm
aWVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmgJKHdvcmtpbmcgY29weSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZp
ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDExICsyOSwxMCBAQAogI2lmIFdLX0FQSV9FTkFC
TEVECiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotI2ltcG9ydCA8V2ViS2l0
L1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmg+CiAKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcg
KiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllck9wZW4gV0tfQVZBSUxBQkxFKE5BLCBXS19JT1Nf
VEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRp
ZmllckFkZFRvUmVhZGluZ0xpc3QgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLVdLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckNvcHkgV0tf
QVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBj
b25zdCBfV0tQcmV2aWV3SWRlbnRpZmllclNoYXJlIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RC
QSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRp
Zmllck9wZW4gV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKK1dLX0VYVEVSTiBOU1N0cmlu
ZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdCBX
S19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3Qg
V0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJDb3B5IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9T
X1RCQSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRl
bnRpZmllclNoYXJlIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CiAKICNlbmRpZgpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVt
SWRlbnRpZmllcnMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW0JKHJldmlzaW9uIDE5ODA2
OSkJKGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rp
b25JZGVudGlmaWVyc1ByaXZhdGUubW06MTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaCIKKworI2lmIFdL
X0FQSV9FTkFCTEVECisKK05TU3RyaW5nICogY29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJPcGVu
ID0gQCJXS1ByZXZpZXdJZGVudGlmaWVyT3BlbiI7CitOU1N0cmluZyAqIGNvbnN0IF9XS1ByZXZp
ZXdJZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdCA9IEAiV0tQcmV2aWV3SWRlbnRpZmllckFkZFRv
UmVhZGluZ0xpc3QiOworTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3SWRlbnRpZmllckNvcHkg
PSBAIldLUHJldmlld0lkZW50aWZpZXJDb3B5IjsKK05TU3RyaW5nICogY29uc3QgX1dLUHJldmll
d0lkZW50aWZpZXJTaGFyZSA9IEAiV0tQcmV2aWV3SWRlbnRpZmllclNoYXJlIjsKKworI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlv
bkl0ZW1JZGVudGlmaWVycy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5tbQkod29ya2luZyBj
b3B5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rp
b25JdGVtSWRlbnRpZmllcnMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI0LDEzICsyNCwxMyBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXS1ByZXZpZXdBY3Rpb25JZGVu
dGlmaWVyc1ByaXZhdGUuaCIKKyNpbmNsdWRlICJXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmll
cnMuaCIKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLU5TU3RyaW5nICogY29uc3QgX1dLUHJldmll
d0lkZW50aWZpZXJPcGVuID0gQCJXS1ByZXZpZXdJZGVudGlmaWVyT3BlbiI7Ci1OU1N0cmluZyAq
IGNvbnN0IF9XS1ByZXZpZXdJZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdCA9IEAiV0tQcmV2aWV3
SWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QiOwotTlNTdHJpbmcgKiBjb25zdCBfV0tQcmV2aWV3
SWRlbnRpZmllckNvcHkgPSBAIldLUHJldmlld0lkZW50aWZpZXJDb3B5IjsKLU5TU3RyaW5nICog
Y29uc3QgX1dLUHJldmlld0lkZW50aWZpZXJTaGFyZSA9IEAiV0tQcmV2aWV3SWRlbnRpZmllclNo
YXJlIjsKK05TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJPcGVu
ID0gQCJXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllck9wZW4iOworTlNTdHJpbmcgKiBjb25z
dCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QgPSBAIldLUHJl
dmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdCI7CitOU1N0cmluZyAqIGNv
bnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyQ29weSA9IEAiV0tQcmV2aWV3QWN0aW9u
SXRlbUlkZW50aWZpZXJDb3B5IjsKK05TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRl
bUlkZW50aWZpZXJTaGFyZSA9IEAiV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJTaGFyZSI7
CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oCShyZXZpc2lv
biAxOTgwNjkpCShmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJl
dmlld0FjdGlvbkludGVybmFsLmg6MTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV0tGb3VuZGF0aW9uLmgiCisK
KyNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCisKKyNpbXBvcnQgIl9XS1By
ZXZpZXdBY3Rpb24uaCIKKworQGludGVyZmFjZSBfV0tQcmV2aWV3QWN0aW9uIDogVUlQcmV2aWV3
QWN0aW9uIDxOU0NvcHlpbmcsIF9XS1ByZXZpZXdBY3Rpb25JdGVtPgorCisrIChpbnN0YW5jZXR5
cGUpYWN0aW9uV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciB0aXRsZTooTlNT
dHJpbmcgKil0aXRsZSBzdHlsZTooVUlQcmV2aWV3QWN0aW9uU3R5bGUpc3R5bGUgaGFuZGxlcjoo
dm9pZCAoXikoVUlQcmV2aWV3QWN0aW9uICphY3Rpb24sIFVJVmlld0NvbnRyb2xsZXIgKnByZXZp
ZXdWaWV3Q29udHJvbGxlcikpaGFuZGxlcjsKKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VO
QUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JbnRl
cm5hbC5oCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywx
MiArMjcsMTIgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKIAot
I2ltcG9ydCAiX1dLUHJldmlld0FjdGlvbi5oIgorI2ltcG9ydCAiV0tQcmV2aWV3QWN0aW9uSXRl
bS5oIgogCi1AaW50ZXJmYWNlIF9XS1ByZXZpZXdBY3Rpb24gOiBVSVByZXZpZXdBY3Rpb24gPE5T
Q29weWluZywgX1dLUHJldmlld0FjdGlvbkl0ZW0+CitAaW50ZXJmYWNlIFdLUHJldmlld0FjdGlv
biA6IFVJUHJldmlld0FjdGlvbiA8TlNDb3B5aW5nLCBXS1ByZXZpZXdBY3Rpb25JdGVtPgogCiAr
IChpbnN0YW5jZXR5cGUpYWN0aW9uV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmll
ciB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBzdHlsZTooVUlQcmV2aWV3QWN0aW9uU3R5bGUpc3R5
bGUgaGFuZGxlcjoodm9pZCAoXikoVUlQcmV2aWV3QWN0aW9uICphY3Rpb24sIFVJVmlld0NvbnRy
b2xsZXIgKnByZXZpZXdWaWV3Q29udHJvbGxlcikpaGFuZGxlcjsKIAogQGVuZAogCi0jZW5kaWYg
Ly8gV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQorI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdF
bGVtZW50SW5mby5oCShyZXZpc2lvbiAxOTgwNjkpCShmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmg6MTk4MDY5KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQv
V0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05F
CisKKyNpbXBvcnQgPFdlYktpdC9fV0tFbGVtZW50SW5mby5oPgorCitOU19BU1NVTUVfTk9OTlVM
TF9CRUdJTgorCitXS19DTEFTU19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpCitAaW50ZXJmYWNl
IF9XS1ByZXZpZXdFbGVtZW50SW5mbyA6IF9XS0VsZW1lbnRJbmZvCisKK0BlbmQKKworTlNfQVNT
VU1FX05PTk5VTExfRU5ECisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8uaAkod29ya2lu
ZyBjb3B5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdF
bGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMiArMjcsMTIgQEAKIAogI2lmIFdL
X0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKIAotI2ltcG9ydCA8V2ViS2l0L19XS0Vs
ZW1lbnRJbmZvLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tFbGVtZW50SW5mby5oPgogCiBOU19BU1NV
TUVfTk9OTlVMTF9CRUdJTgogCiBXS19DTEFTU19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpCi1A
aW50ZXJmYWNlIF9XS1ByZXZpZXdFbGVtZW50SW5mbyA6IF9XS0VsZW1lbnRJbmZvCitAaW50ZXJm
YWNlIFdLUHJldmlld0VsZW1lbnRJbmZvIDogV0tFbGVtZW50SW5mbwogCiBAZW5kCiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8u
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZXZpZXdFbGVtZW50SW5mby5tbQkocmV2aXNpb24gMTk4MDY5KQkoZnJvbSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5tbToxOTgwNjkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZv
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgIl9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgiCisK
KyNpbXBvcnQgIl9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKElPUykKKworQGltcGxlbWVu
dGF0aW9uIF9XS1ByZXZpZXdFbGVtZW50SW5mbworCistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRo
TGlua1VSTDooTlNVUkwgKil1cmwKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkK
KyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9saW5rVVJMID0gYWRvcHROUyhbdXJsIGNvcHld
KTsKKworICAgIHJldHVybiBzZWxmOworfQorCitAZW5kCisKKyNlbmRpZgpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0Vs
ZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwx
NCArMjQsMTQgQEAKICAqLwogCiAjaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIl9XS1ByZXZp
ZXdFbGVtZW50SW5mb0ludGVybmFsLmgiCisjaW1wb3J0ICJXS1ByZXZpZXdFbGVtZW50SW5mb0lu
dGVybmFsLmgiCiAKLSNpbXBvcnQgIl9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKKyNpbXBvcnQg
IldLRWxlbWVudEluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiAj
aWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oSU9TKQogCi1AaW1wbGVtZW50YXRpb24gX1dL
UHJldmlld0VsZW1lbnRJbmZvCitAaW1wbGVtZW50YXRpb24gV0tQcmV2aWV3RWxlbWVudEluZm8K
IAogLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aExpbmtVUkw6KE5TVVJMICopdXJsCiB7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZv
SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkocmV2aXNpb24gMTk4MDY5KQkoZnJv
bSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5m
b0ludGVybmFsLmg6MTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIl9XS1ByZXZpZXdFbGVtZW50SW5mby5oIgor
CisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgVEFSR0VUX09TX0lQSE9ORQorCitAaW50ZXJmYWNlIF9X
S1ByZXZpZXdFbGVtZW50SW5mbyAoKQorCistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoTGlua1VS
TDooTlNVUkwgKil1cmw7CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZv
SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVy
bmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDE0ICsyMywxNCBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbXBvcnQgIl9XS1ByZXZpZXdFbGVtZW50SW5m
by5oIgorI2ltcG9ydCAiV0tQcmV2aWV3RWxlbWVudEluZm8uaCIKIAogI2lmIFdLX0FQSV9FTkFC
TEVEICYmIFRBUkdFVF9PU19JUEhPTkUKIAotQGludGVyZmFjZSBfV0tQcmV2aWV3RWxlbWVudElu
Zm8gKCkKK0BpbnRlcmZhY2UgV0tQcmV2aWV3RWxlbWVudEluZm8gKCkKIAogLSAoaW5zdGFuY2V0
eXBlKV9pbml0V2l0aExpbmtVUkw6KE5TVVJMICopdXJsOwogCiBAZW5kCiAKLSNlbmRpZiAvLyBX
S19BUElfRU5BQkxFRAorI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhP
TkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGUuaAkocmV2aXNpb24gMTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTEgKzI4LDEz
IEBACiAjaWYgV0tfQVBJX0VOQUJMRUQKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9u
Lmg+CisjaW1wb3J0IDxXZWJLaXQvV0tQcmV2aWV3QWN0aW9uSXRlbS5oPgogCiBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogCiBAY2xhc3MgV0tGcmFtZUluZm87CiBAY2xhc3MgV0tOYXZpZ2F0aW9u
QWN0aW9uOworQGNsYXNzIFdLUHJldmlld0VsZW1lbnRJbmZvOwogQGNsYXNzIFdLV2ViVmlld0Nv
bmZpZ3VyYXRpb247CiBAY2xhc3MgV0tXaW5kb3dGZWF0dXJlczsKIApAQCAtMTE0LDYgKzExNiw0
MyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogICovCiAtICh2b2lkKXdlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDooTlNT
dHJpbmcgKilwcm9tcHQgZGVmYXVsdFRleHQ6KG51bGxhYmxlIE5TU3RyaW5nICopZGVmYXVsdFRl
eHQgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoTlNTdHJpbmcgKiBXS19OVUxMQUJMRV9TUEVDSUZJRVIgcmVzdWx0KSljb21w
bGV0aW9uSGFuZGxlcjsKIAorI2lmIFRBUkdFVF9PU19JUEhPTkUKKworLyohIEBhYnN0cmFjdCBB
bGxvd3MgeW91ciBhcHAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiBlbGVt
ZW50IHNob3VsZCBzaG93IGEgcHJldmlldy4KKyBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcg
aW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KKyBAcGFyYW0gZWxlbWVudEluZm8gVGhlIGVs
ZW1lbnRJbmZvIGZvciB0aGUgZWxlbWVudCB0aGUgdXNlciBoYXMgc3RhcnRlZCB0b3VjaGluZy4K
KyBAZGlzY3Vzc2lvbiBUbyBkaXNhYmxlIHByZXZpZXdzIGVudGlyZWx5IGZvciB0aGUgZ2l2ZW4g
ZWxlbWVudCwgcmV0dXJuIE5PLiBSZXR1cm5pbmcgTk8gd2lsbCBwcmV2ZW50IAorIHdlYlZpZXc6
cHJldmlld2luZ1ZpZXdDb250cm9sbGVyRm9yRWxlbWVudDpkZWZhdWx0QWN0aW9uczogYW5kIHdl
YlZpZXc6Y29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOgorIGZyb20gYmVpbmcgaW52b2tl
ZC4KKyAKKyBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgaW52b2tlZCBmb3IgZWxlbWVudHMgdGhh
dCBoYXZlIGRlZmF1bHQgcHJldmlldyBpbiBXZWJLaXQsIHdoaWNoIGlzCisgbGltaXRlZCB0byBs
aW5rcy4gSW4gdGhlIGZ1dHVyZSwgaXQgY291bGQgYmUgaW52b2tlZCBmb3IgYWRkaXRpb25hbCBl
bGVtZW50cy4KKyAqLworLSAoQk9PTCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3Vs
ZFByZXZpZXdFbGVtZW50OihXS1ByZXZpZXdFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FW
QUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CisKKy8qISBAYWJzdHJhY3QgQWxsb3dzIHlvdXIgYXBw
IHRvIHByb3ZpZGUgYSBjdXN0b20gdmlldyBjb250cm9sbGVyIHRvIHNob3cgd2hlbiB0aGUgZ2l2
ZW4gZWxlbWVudCBpcyBwZWVrZWQuCisgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9r
aW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2QuCisgQHBhcmFtIGVsZW1lbnRJbmZvIFRoZSBlbGVtZW50
SW5mbyBmb3IgdGhlIGVsZW1lbnQgdGhlIHVzZXIgaXMgcGVla2luZy4KKyBAcGFyYW0gZGVmYXVs
dEFjdGlvbnMgQW4gYXJyYXkgb2YgdGhlIGFjdGlvbnMgdGhhdCBXZWJLaXQgd291bGQgdXNlIGFz
IHByZXZpZXdBY3Rpb25JdGVtcyBmb3IgdGhpcyBlbGVtZW50IGJ5IAorIGRlZmF1bHQuIFRoZXNl
IGFjdGlvbnMgd291bGQgYmUgdXNlZCBpZiBhbGxvd3NMaW5rUHJldmlldyBpcyBZRVMgYnV0IHRo
ZXNlIGRlbGVnYXRlIG1ldGhvZHMgaGF2ZSBub3QgYmVlbiAKKyBpbXBsZW1lbnRlZCwgb3IgaWYg
dGhpcyBkZWxlZ2F0ZSBtZXRob2QgcmV0dXJucyBuaWwuCisgQGRpc2N1c3Npb24gUmV0dXJuaW5n
IGEgdmlldyBjb250cm9sbGVyIHdpbGwgcmVzdWx0IGluIHRoYXQgdmlldyBjb250cm9sbGVyIGJl
aW5nIGRpc3BsYXllZCBhcyBhIHBlZWsgcHJldmlldy4KKyBUbyB1c2UgdGhlIGRlZmF1bHRBY3Rp
b25zLCB5b3VyIGFwcCBpcyByZXNwb25zaWJsZSBmb3IgcmV0dXJuaW5nIHdoaWNoZXZlciBvZiB0
aG9zZSBhY3Rpb25zIGl0IHdhbnRzIGluIHlvdXIgCisgdmlldyBjb250cm9sbGVyJ3MgaW1wbGVt
ZW50YXRpb24gb2YgLXByZXZpZXdBY3Rpb25JdGVtcy4KKyAKKyBSZXR1cm5pbmcgbmlsIHdpbGwg
cmVzdWx0IGluIFdlYktpdCdzIGRlZmF1bHQgcHJldmlldyBiZWhhdmlvci4gd2ViVmlldzpjb21t
aXRQcmV2aWV3aW5nVmlld0NvbnRyb2xsZXI6IHdpbGwgb25seSBiZSBpbnZva2VkCisgaWYgYSBu
b24tbmlsIHZpZXcgY29udHJvbGxlciB3YXMgcmV0dXJuZWQuCisgKi8KKy0gKG51bGxhYmxlIFVJ
Vmlld0NvbnRyb2xsZXIgKil3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdpbmdW
aWV3Q29udHJvbGxlckZvckVsZW1lbnQ6KFdLUHJldmlld0VsZW1lbnRJbmZvICopZWxlbWVudElu
Zm8gZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXkgPGlkIDxXS1ByZXZpZXdBY3Rpb25JdGVtPj4gKilw
cmV2aWV3QWN0aW9ucyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworCisvKiEgQGFic3Ry
YWN0IEFsbG93cyB5b3VyIGFwcCB0byBwb3AgdG8gdGhlIHZpZXcgY29udHJvbGxlciBpdCBjcmVh
dGVkLgorIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUg
bWV0aG9kLgorIEBwYXJhbSBwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXIgVGhlIHZpZXcgY29udHJv
bGxlciB0aGF0IGlzIGJlaW5nIHBvcHBlZC4KKyAqLworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJv
bGxlciAqKXByZXZpZXdpbmdWaWV3Q29udHJvbGxlciBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19U
QkEpOworCisjZW5kaWYgLy8gVEFSR0VUX09TX0lQSE9ORQorCiBAZW5kCiAKIE5TX0FTU1VNRV9O
T05OVUxMX0VORApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHJldmlzaW9uIDE5ODA2OSkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbXBvcnQgPFdlYktpdC9XS1NlY3Vy
aXR5T3JpZ2luLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaD4K
LSNpbXBvcnQgPFdlYktpdC9fV0tQcmV2aWV3QWN0aW9uLmg+CiAKIEBjbGFzcyBVSVNjcm9sbFZp
ZXc7CiBAY2xhc3MgVUlWaWV3Q29udHJvbGxlcjsKQEAgLTM3LDcgKzM2LDYgQEAKIEBjbGFzcyBf
V0tBY3RpdmF0ZWRFbGVtZW50SW5mbzsKIEBjbGFzcyBfV0tFbGVtZW50QWN0aW9uOwogQGNsYXNz
IF9XS0ZyYW1lSGFuZGxlOwotQGNsYXNzIF9XS1ByZXZpZXdFbGVtZW50SW5mbzsKIAogQHByb3Rv
Y29sIFdLVUlEZWxlZ2F0ZVByaXZhdGUgPFdLVUlEZWxlZ2F0ZT4KIApAQCAtNzgsMTcgKzc2LDYg
QEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKFVJRWRnZUluc2V0cylfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBmaW5hbE9ic2N1cmVkSW5zZXRzRm9yU2Nyb2xsVmlldzooVUlTY3JvbGxW
aWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2NpdHk6KENHUG9pbnQpdmVsb2NpdHkgdGFyZ2V0Q29u
dGVudE9mZnNldDooaW5vdXQgQ0dQb2ludCAqKXRhcmdldENvbnRlbnRPZmZzZXQgV0tfQVZBSUxB
QkxFKE5BLCA5XzApOwogLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDooTlNVUkwgKil1cmwgZGVmYXVs
dEFjdGlvbnM6KFdLX0FSUkFZKF9XS0VsZW1lbnRBY3Rpb24gKikgKilhY3Rpb25zIGVsZW1lbnRJ
bmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FWQUlMQUJMRShO
QSwgOV8wKTsKIC0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JBbmltYXRlZEltYWdlQXRVUkw6KE5TVVJMICop
dXJsIGRlZmF1bHRBY3Rpb25zOihXS19BUlJBWShfV0tFbGVtZW50QWN0aW9uICopICopYWN0aW9u
cyBlbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbyBpbWFn
ZVNpemU6KENHU2l6ZSlpbWFnZVNpemUgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotCi0vLyBJZiBh
IGNsaWVudCB3YW50cyB0byBkaXNhYmxlIHByZXZpZXdzIGVudGlyZWx5IGZvciB0aGUgZ2l2ZW4g
ZWxlbWVudCwgdGhleSBzaG91bGQgcmV0dXJuIE5PIGluCi0vLyBzaG91bGRQcmV2aWV3RWxlbWVu
dC4gUmV0dXJuaW5nIE5PIGluIHNob3VsZFByZXZpZXdFbGVtZW50IHdpbGwgcHJldmVudCB0aGUg
b3RoZXIgbWV0aG9kcyBmcm9tIGJlaW5nIGludm9rZWQuCi0vLyBUaGUgY2xpZW50IGNhbiBwcm92
aWRlIGEgY3VzdG9tIHByZXZpZXcgYnkgcmV0dXJuaW5nIHRoZWlyIG93biBVSVZpZXdDb250cm9s
bGVyIGZyb20KLS8vIHByZXZpZXdpbmdWaWV3Q29udHJvbGxlckZvckVsZW1lbnQ6ZGVmYXVsdEFj
dGlvbnM6LiBSZXR1cm5pbmcgbmlsIHdpbGwgcmVzdWx0IGluIHRoZSBkZWZhdWx0IHByZXZpZXcg
YmVoYXZpb3IKLS8vIGZvciB0aGF0IGVsZW1lbnQuIElmIHRoZSBjbGllbnQgd2FudCB0byB1c2Ug
dGhlIGRlZmF1bHRBY3Rpb25zLCB0aGVuIHRoZSBjbGllbnQgaXMgcmVzcG9uc2libGUgZm9yCi0v
LyByZXR1cm5pbmcgdGhvc2UgYWN0aW9ucyBpbiB0aGVpciBVSVZpZXdDb250cm9sbGVyJ3MgaW1w
bGVtZW50YXRpb24gb2YgcHJldmlld0FjdGlvbkl0ZW1zLgotLSAoQk9PTClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBzaG91bGRQcmV2aWV3RWxlbWVudDooX1dLUHJldmlld0VsZW1lbnRJ
bmZvICopZWxlbWVudEluZm87Ci0tIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcHJldmlld2luZ1ZpZXdDb250cm9sbGVyRm9yRWxlbWVudDooX1dLUHJl
dmlld0VsZW1lbnRJbmZvICopZWxlbWVudEluZm8gZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXkgPGlk
IDxfV0tQcmV2aWV3QWN0aW9uSXRlbT4+ICopcHJldmlld0FjdGlvbnMgV0tfQVZBSUxBQkxFKE5B
LCBXS19JT1NfVEJBKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29t
bWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2lu
Z1ZpZXdDb250cm9sbGVyIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci0KIC0gKFVJVmll
d0NvbnRyb2xsZXIgKilfcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwogI2Vsc2UKIC0gKE5T
TWVudSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUg
KiltZW51IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IFdL
X0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0NvbnRleHRNZW51RWxlbWVudElu
Zm8uaAkocmV2aXNpb24gMTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEy
ICsyNywxMiBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQgJiYgIVRBUkdFVF9PU19JUEhPTkUKIAot
I2ltcG9ydCA8V2ViS2l0L19XS0VsZW1lbnRJbmZvLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tFbGVt
ZW50SW5mby5oPgogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBXS19DTEFTU19BVkFJTEFC
TEUoV0tfTUFDX1RCQSwgTkEpCi1AaW50ZXJmYWNlIF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8g
OiBfV0tFbGVtZW50SW5mbworQGludGVyZmFjZSBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvIDog
V0tFbGVtZW50SW5mbwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLmgJKHJldmlzaW9uIDE5ODA2OSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8uaAkod29y
a2luZyBjb3B5KQpAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCA8V2ViS2l0
L1dLRm91bmRhdGlvbi5oPgotCi0jaWYgV0tfQVBJX0VOQUJMRUQKLQotTlNfQVNTVU1FX05PTk5V
TExfQkVHSU4KLQotV0tfQ0xBU1NfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpCi1A
aW50ZXJmYWNlIF9XS0VsZW1lbnRJbmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KLQotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqbGlua1VSTDsKLQotQGVuZAotCi1OU19B
U1NVTUVfTk9OTlVMTF9FTkQKLQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8ubW0JKHJldmlzaW9uIDE5ODA2
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8u
bW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQg
ImNvbmZpZy5oIgotI2ltcG9ydCAiX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oIgotCi0jaWYgV0tf
QVBJX0VOQUJMRUQKLQotQGltcGxlbWVudGF0aW9uIF9XS0VsZW1lbnRJbmZvCi0KLS0gKGlkKWNv
cHlXaXRoWm9uZTooTlNab25lICopem9uZQotewotICAgIHJldHVybiBbc2VsZiByZXRhaW5dOwot
fQotCi0tIChOU1VSTCAqKWxpbmtVUkwKLXsKLSAgICByZXR1cm4gX2xpbmtVUkwuZ2V0KCk7Ci19
Ci0KLUBlbmQKLQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkocmV2aXNpb24g
MTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50
SW5mb0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbXBvcnQgIl9XS0VsZW1lbnRJbmZvLmgiCi0KLSNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KLQotI2lmIFdLX0FQSV9FTkFCTEVECi0KLUBpbnRlcmZhY2UgX1dLRWxlbWVudEluZm8gKCkg
ewotQHBhY2thZ2UKLSAgICBSZXRhaW5QdHI8TlNVUkw+IF9saW5rVVJMOwotfQotCi1AZW5kCi0K
LSNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLmgJKHJldmlzaW9uIDE5ODA2
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlv
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0
IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+Ci0KLSNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRf
T1NfSVBIT05FCi0KLSNpbXBvcnQgPFVJS2l0L1VJVmlld0NvbnRyb2xsZXIuaD4KLQotV0tfQ0xB
U1NfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKQotQHByb3RvY29sIF9XS1ByZXZpZXdBY3Rpb25J
dGVtIDxOU09iamVjdCwgVUlQcmV2aWV3QWN0aW9uSXRlbT4KLQotQHByb3BlcnR5KG5vbmF0b21p
YywgY29weSwgcmVhZG9ubHkpIE5TU3RyaW5nICppZGVudGlmaWVyOwotCi1AZW5kCi0KLSNlbmRp
ZiAvLyBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdBY3Rpb24ubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uLm1t
CShyZXZpc2lvbiAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1ByZXZpZXdBY3Rpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNDMgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiX1dLUHJldmlld0FjdGlvbklu
dGVybmFsLmgiCi0KLSNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCi0KLUBp
bXBsZW1lbnRhdGlvbiBfV0tQcmV2aWV3QWN0aW9uCi1Ac3ludGhlc2l6ZSBpZGVudGlmaWVyPV9p
ZGVudGlmaWVyOwotCi0rIChpbnN0YW5jZXR5cGUpYWN0aW9uV2l0aElkZW50aWZpZXI6KE5TU3Ry
aW5nICopaWRlbnRpZmllciB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBzdHlsZTooVUlQcmV2aWV3
QWN0aW9uU3R5bGUpc3R5bGUgaGFuZGxlcjoodm9pZCAoXikoVUlQcmV2aWV3QWN0aW9uICphY3Rp
b24sIFVJVmlld0NvbnRyb2xsZXIgKnByZXZpZXdWaWV3Q29udHJvbGxlcikpaGFuZGxlcgotewot
ICAgIF9XS1ByZXZpZXdBY3Rpb24gKmFjdGlvbiA9IFtzZWxmIGFjdGlvbldpdGhUaXRsZTp0aXRs
ZSBzdHlsZTpzdHlsZSBoYW5kbGVyOmhhbmRsZXJdOwotICAgIGFjdGlvbi0+X2lkZW50aWZpZXIg
PSBpZGVudGlmaWVyOwotICAgIHJldHVybiBhY3Rpb247Ci19Ci0KLUBlbmQKLQotI2VuZGlmIC8v
IFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0FjdGlvbkludGVybmFsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9u
SW50ZXJuYWwuaAkocmV2aXNpb24gMTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAt
MSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiV0tGb3VuZGF0aW9uLmgiCi0KLSNp
ZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCi0KLSNpbXBvcnQgIl9XS1ByZXZp
ZXdBY3Rpb24uaCIKLQotQGludGVyZmFjZSBfV0tQcmV2aWV3QWN0aW9uIDogVUlQcmV2aWV3QWN0
aW9uIDxOU0NvcHlpbmcsIF9XS1ByZXZpZXdBY3Rpb25JdGVtPgotCi0rIChpbnN0YW5jZXR5cGUp
YWN0aW9uV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciB0aXRsZTooTlNTdHJp
bmcgKil0aXRsZSBzdHlsZTooVUlQcmV2aWV3QWN0aW9uU3R5bGUpc3R5bGUgaGFuZGxlcjoodm9p
ZCAoXikoVUlQcmV2aWV3QWN0aW9uICphY3Rpb24sIFVJVmlld0NvbnRyb2xsZXIgKnByZXZpZXdW
aWV3Q29udHJvbGxlcikpaGFuZGxlcjsKLQotQGVuZAotCi0jZW5kaWYgLy8gV0tfQVBJX0VOQUJM
RUQgJiYgVEFSR0VUX09TX0lQSE9ORQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5oCShyZXZpc2lv
biAxOTgwNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZp
ZXdFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+Ci0KLSNpZiBXS19BUElfRU5BQkxF
RCAmJiBUQVJHRVRfT1NfSVBIT05FCi0KLSNpbXBvcnQgPFdlYktpdC9fV0tFbGVtZW50SW5mby5o
PgotCi1OU19BU1NVTUVfTk9OTlVMTF9CRUdJTgotCi1XS19DTEFTU19BVkFJTEFCTEUoTkEsIFdL
X0lPU19UQkEpCi1AaW50ZXJmYWNlIF9XS1ByZXZpZXdFbGVtZW50SW5mbyA6IF9XS0VsZW1lbnRJ
bmZvCi0KLUBlbmQKLQotTlNfQVNTVU1FX05PTk5VTExfRU5ECi0KLSNlbmRpZgpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8ubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2
aWV3RWxlbWVudEluZm8ubW0JKHJldmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBv
cnQgIl9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgiCi0KLSNpbXBvcnQgIl9XS0VsZW1l
bnRJbmZvSW50ZXJuYWwuaCIKLSNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KLQotI2lmIFdLX0FQ
SV9FTkFCTEVEICYmIFBMQVRGT1JNKElPUykKLQotQGltcGxlbWVudGF0aW9uIF9XS1ByZXZpZXdF
bGVtZW50SW5mbwotCi0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoTGlua1VSTDooTlNVUkwgKil1
cmwKLXsKLSAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKLSAgICAgICAgcmV0dXJuIG5p
bDsKLQotICAgIF9saW5rVVJMID0gYWRvcHROUyhbdXJsIGNvcHldKTsKLQotICAgIHJldHVybiBz
ZWxmOwotfQotCi1AZW5kCi0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZv
SW50ZXJuYWwuaAkocmV2aXNpb24gMTk4MDY5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJfV0tQcmV2aWV3RWxlbWVu
dEluZm8uaCIKLQotI2lmIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKLQotQGlu
dGVyZmFjZSBfV0tQcmV2aWV3RWxlbWVudEluZm8gKCkKLQotLSAoaW5zdGFuY2V0eXBlKV9pbml0
V2l0aExpbmtVUkw6KE5TVVJMICopdXJsOwotCi1AZW5kCi0KLSNlbmRpZiAvLyBXS19BUElfRU5B
QkxFRApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0JKHJldmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC00Myw3ICs0Myw5IEBACiAjaW1wb3J0ICJXS0ltYWdlUHJldmlld1ZpZXdDb250
cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0luc3BlY3Rvck5vZGVTZWFyY2hHZXN0dXJlUmVjb2duaXpl
ci5oIgogI2ltcG9ydCAiV0tOU1VSTEV4dHJhcy5oIgotI2ltcG9ydCAiV0tQcmV2aWV3QWN0aW9u
SWRlbnRpZmllcnNQcml2YXRlLmgiCisjaW1wb3J0ICJXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRp
ZmllcnMuaCIKKyNpbXBvcnQgIldLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oIgorI2ltcG9y
dCAiV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tVSURlbGVnYXRl
UHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oIgogI2ltcG9ydCAi
V0tXZWJWaWV3SW50ZXJuYWwuaCIKQEAgLTU3LDggKzU5LDYgQEAKICNpbXBvcnQgIl9XS0ZvY3Vz
ZWRFbGVtZW50SW5mby5oIgogI2ltcG9ydCAiX1dLRm9ybUlucHV0U2Vzc2lvbi5oIgogI2ltcG9y
dCAiX1dLSW5wdXREZWxlZ2F0ZS5oIgotI2ltcG9ydCAiX1dLUHJldmlld0FjdGlvbkludGVybmFs
LmgiCi0jaW1wb3J0ICJfV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCA8
Q29yZVRleHQvQ1RGb250Lmg+CiAjaW1wb3J0IDxDb3JlVGV4dC9DVEZvbnREZXNjcmlwdG9yLmg+
CiAjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvVVRDb3JlVHlwZXMuaD4KQEAgLTM4MDQsOSAr
MzgwNCw5IEBAIC0gKEJPT0wpX2ludGVyYWN0aW9uU2hvdWxkQmVnaW5Gcm9tUHJldmkKICAgICBp
ZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNMaW5rKSB7CiAgICAgICAgIE5TVVJMICp0YXJnZXRV
UkwgPSBbTlNVUkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5nOl9wb3NpdGlvbkluZm9ybWF0aW9uLnVy
bF07CiAgICAgICAgIGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlID0gc3RhdGlj
X2Nhc3Q8aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+PihbX3dlYlZpZXcgVUlEZWxlZ2F0ZV0pOwot
ICAgICAgICBpZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
VmlldzpzaG91bGRQcmV2aWV3RWxlbWVudDopXSkgewotICAgICAgICAgICAgYXV0byBwcmV2aWV3
RWxlbWVudEluZm8gPSBhZG9wdE5TKFtbX1dLUHJldmlld0VsZW1lbnRJbmZvIGFsbG9jXSBfaW5p
dFdpdGhMaW5rVVJMOnRhcmdldFVSTF0pOwotICAgICAgICAgICAgcmV0dXJuIFt1aURlbGVnYXRl
IF93ZWJWaWV3Ol93ZWJWaWV3IHNob3VsZFByZXZpZXdFbGVtZW50OnByZXZpZXdFbGVtZW50SW5m
by5nZXQoKV07CisgICAgICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKHdlYlZpZXc6c2hvdWxkUHJldmlld0VsZW1lbnQ6KV0pIHsKKyAgICAgICAgICAgIGF1
dG8gcHJldmlld0VsZW1lbnRJbmZvID0gYWRvcHROUyhbW1dLUHJldmlld0VsZW1lbnRJbmZvIGFs
bG9jXSBfaW5pdFdpdGhMaW5rVVJMOnRhcmdldFVSTF0pOworICAgICAgICAgICAgcmV0dXJuIFt1
aURlbGVnYXRlIHdlYlZpZXc6X3dlYlZpZXcgc2hvdWxkUHJldmlld0VsZW1lbnQ6cHJldmlld0Vs
ZW1lbnRJbmZvLmdldCgpXTsKICAgICAgICAgfQogICAgICAgICBpZiAoYWJzb2x1dGVMaW5rVVJM
LmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBOTzsKQEAgLTM5MDQsMTUgKzM5MDQsMTUg
QEAgc3RhdGljIE5TU3RyaW5nICpwcmV2aWV3SWRlbnRpZmllckZvckVsZQogewogICAgIHN3aXRj
aCAoYWN0aW9uLnR5cGUpIHsKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlT3BlbjoKLSAg
ICAgICAgcmV0dXJuIF9XS1ByZXZpZXdJZGVudGlmaWVyT3BlbjsKKyAgICAgICAgcmV0dXJuIFdL
UHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyT3BlbjsKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rp
b25UeXBlQ29weToKLSAgICAgICAgcmV0dXJuIF9XS1ByZXZpZXdJZGVudGlmaWVyQ29weTsKKyAg
ICAgICAgcmV0dXJuIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyQ29weTsKICNpZiAhZGVm
aW5lZChUQVJHRVRfT1NfSU9TKSB8fCBUQVJHRVRfT1NfSU9TCiAgICAgY2FzZSBfV0tFbGVtZW50
QWN0aW9uVHlwZUFkZFRvUmVhZGluZ0xpc3Q6Ci0gICAgICAgIHJldHVybiBfV0tQcmV2aWV3SWRl
bnRpZmllckFkZFRvUmVhZGluZ0xpc3Q7CisgICAgICAgIHJldHVybiBXS1ByZXZpZXdBY3Rpb25J
dGVtSWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3Q7CiAjZW5kaWYKICAgICBjYXNlIF9XS0VsZW1l
bnRBY3Rpb25UeXBlU2hhcmU6Ci0gICAgICAgIHJldHVybiBfV0tQcmV2aWV3SWRlbnRpZmllclNo
YXJlOworICAgICAgICByZXR1cm4gV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJTaGFyZTsK
ICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KQEAgLTM5NDUsMTYgKzM5
NDUsMTYgQEAgLSAoVUlWaWV3Q29udHJvbGxlciAqKV9wcmVzZW50ZWRWaWV3Q29udAogICAgICAg
ICBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IGVsZW1lbnRJbmZvID0gYWRvcHRO
UyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2
YXRlZEVsZW1lbnRUeXBlTGluayBVUkw6dGFyZ2V0VVJMIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9y
bWF0aW9uLnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9ybWF0aW9uLnRpdGxlIHJlY3Q6X3Bvc2l0
aW9uSW5mb3JtYXRpb24uYm91bmRzIGltYWdlOl9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlLmdl
dCgpXSk7CiAKICAgICAgICAgYXV0byBhY3Rpb25zID0gW19hY3Rpb25TaGVldEFzc2lzdGFudCBk
ZWZhdWx0QWN0aW9uc0ZvckxpbmtTaGVldDplbGVtZW50SW5mby5nZXQoKV07Ci0gICAgICAgIGlm
IChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnByZXZp
ZXdpbmdWaWV3Q29udHJvbGxlckZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlvbnM6KV0pIHsKKyAgICAg
ICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpw
cmV2aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25zOildKSB7CiAg
ICAgICAgICAgICBhdXRvIHByZXZpZXdBY3Rpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5
IGFsbG9jXSBpbml0XSk7CiAgICAgICAgICAgICBmb3IgKF9XS0VsZW1lbnRBY3Rpb24gKmVsZW1l
bnRBY3Rpb24gaW4gYWN0aW9ucy5nZXQoKSkgewotICAgICAgICAgICAgICAgIF9XS1ByZXZpZXdB
Y3Rpb24gKnByZXZpZXdBY3Rpb24gPSBbX1dLUHJldmlld0FjdGlvbiBhY3Rpb25XaXRoSWRlbnRp
ZmllcjpwcmV2aWV3SWRlbnRpZmllckZvckVsZW1lbnRBY3Rpb24oZWxlbWVudEFjdGlvbikgdGl0
bGU6W2VsZW1lbnRBY3Rpb24gdGl0bGVdIHN0eWxlOlVJUHJldmlld0FjdGlvblN0eWxlRGVmYXVs
dCBoYW5kbGVyOl4oVUlQcmV2aWV3QWN0aW9uICosIFVJVmlld0NvbnRyb2xsZXIgKikgeworICAg
ICAgICAgICAgICAgIFdLUHJldmlld0FjdGlvbiAqcHJldmlld0FjdGlvbiA9IFtXS1ByZXZpZXdB
Y3Rpb24gYWN0aW9uV2l0aElkZW50aWZpZXI6cHJldmlld0lkZW50aWZpZXJGb3JFbGVtZW50QWN0
aW9uKGVsZW1lbnRBY3Rpb24pIHRpdGxlOltlbGVtZW50QWN0aW9uIHRpdGxlXSBzdHlsZTpVSVBy
ZXZpZXdBY3Rpb25TdHlsZURlZmF1bHQgaGFuZGxlcjpeKFVJUHJldmlld0FjdGlvbiAqLCBVSVZp
ZXdDb250cm9sbGVyICopIHsKICAgICAgICAgICAgICAgICAgICAgW2VsZW1lbnRBY3Rpb24gcnVu
QWN0aW9uV2l0aEVsZW1lbnRJbmZvOmVsZW1lbnRJbmZvLmdldCgpXTsKICAgICAgICAgICAgICAg
ICB9XTsKICAgICAgICAgICAgICAgICBbcHJldmlld0FjdGlvbnMgYWRkT2JqZWN0OnByZXZpZXdB
Y3Rpb25dOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXV0byBwcmV2aWV3RWxlbWVudElu
Zm8gPSBhZG9wdE5TKFtbX1dLUHJldmlld0VsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhMaW5r
VVJMOnRhcmdldFVSTF0pOwotICAgICAgICAgICAgaWYgKFVJVmlld0NvbnRyb2xsZXIgKmNvbnRy
b2xsZXIgPSBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBwcmV2aWV3aW5nVmlld0NvbnRy
b2xsZXJGb3JFbGVtZW50OnByZXZpZXdFbGVtZW50SW5mby5nZXQoKSBkZWZhdWx0QWN0aW9uczpw
cmV2aWV3QWN0aW9ucy5nZXQoKV0pIHsKKyAgICAgICAgICAgIGF1dG8gcHJldmlld0VsZW1lbnRJ
bmZvID0gYWRvcHROUyhbW1dLUHJldmlld0VsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhMaW5r
VVJMOnRhcmdldFVSTF0pOworICAgICAgICAgICAgaWYgKFVJVmlld0NvbnRyb2xsZXIgKmNvbnRy
b2xsZXIgPSBbdWlEZWxlZ2F0ZSB3ZWJWaWV3Ol93ZWJWaWV3IHByZXZpZXdpbmdWaWV3Q29udHJv
bGxlckZvckVsZW1lbnQ6cHJldmlld0VsZW1lbnRJbmZvLmdldCgpIGRlZmF1bHRBY3Rpb25zOnBy
ZXZpZXdBY3Rpb25zLmdldCgpXSkgewogICAgICAgICAgICAgICAgIF91aURlbGVnYXRlUHJvdmlk
ZWRQcmV2aWV3aW5nVmlld0NvbnRyb2xsZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IGNvbnRyb2xsZXI7CiAgICAgICAgICAgICB9CkBAIC0zOTk3LDggKzM5OTcsOCBAQCAtICh2b2lk
KV9wcmV2aWV3SXRlbUNvbnRyb2xsZXI6KFVJUHJldmllCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBpZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
Vmlldzpjb21taXRQcmV2aWV3aW5nVmlld0NvbnRyb2xsZXI6KV0pIHsKLSAgICAgICAgW3VpRGVs
ZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgY29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOnZp
ZXdDb250cm9sbGVyXTsKKyAgICBpZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcih3ZWJWaWV3OmNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjopXSkgeworICAg
ICAgICBbdWlEZWxlZ2F0ZSB3ZWJWaWV3Ol93ZWJWaWV3IGNvbW1pdFByZXZpZXdpbmdWaWV3Q29u
dHJvbGxlcjp2aWV3Q29udHJvbGxlcl07CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDE5ODA2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjU1LDggKzI1NSw4IEBACiAJCTFBNTND
MkEyMUEzMjMwMDQwMDRFOEM3MCAvKiBJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0M0RUQzMjYxQTMxMTlEOTAwNzlCRDQ5IC8qIEluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJh
dGlvbkhhbmRsZS5jcHAgKi87IH07CiAJCTFBNTNDMkE5MUEzMjU3MkIwMDRFOEM3MCAvKiBXZWJz
aXRlRGF0YVN0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFBNTNDMkE0MUEzMjU2OUYwMDRFOEM3MCAvKiBXZWJzaXRlRGF0YVN0b3JlLmNwcCAq
LzsgfTsKIAkJMUE1M0MyQUExQTMyNTczMDAwNEU4QzcwIC8qIFdlYnNpdGVEYXRhU3RvcmUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNTNDMkE1MUEz
MjU2OUYwMDRFOEM3MCAvKiBXZWJzaXRlRGF0YVN0b3JlLmggKi87IH07Ci0JCTFBNTcwNEYxMUJF
MDE3M0YwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNTcwNEVGMUJFMDE3M0YwMDg3NEFGMSAvKiBfV0tF
bGVtZW50SW5mby5tbSAqLzsgfTsKLQkJMUE1NzA0RjIxQkUwMTc0MDAwODc0QUYxIC8qIF9XS0Vs
ZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQTU3MDRGMDFCRTAxNzNGMDA4NzRBRjEgLyogX1dLRWxlbWVudEluZm8uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkxQTU3MDRGMTFCRTAxNzNG
MDA4NzRBRjEgLyogV0tFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBNTcwNEVGMUJFMDE3M0YwMDg3NEFGMSAvKiBXS0VsZW1lbnRJ
bmZvLm1tICovOyB9OworCQkxQTU3MDRGMjFCRTAxNzQwMDA4NzRBRjEgLyogV0tFbGVtZW50SW5m
by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE1NzA0
RjAxQkUwMTczRjAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTFBNTcwNEY3MUJFMDFGRjQwMDg3NEFGMSAv
KiBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUE1NzA0RjUxQkUwMUZGNDAwODc0QUYxIC8qIF9XS0NvbnRl
eHRNZW51RWxlbWVudEluZm8ubW0gKi87IH07CiAJCTFBNTcwNEY4MUJFMDFGRjQwMDg3NEFGMSAv
KiBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU3MDRGNjFCRTAxRkY0MDA4NzRBRjEgLyogX1dLQ29udGV4
dE1lbnVFbGVtZW50SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTFBNTcwNEZCMUJFMTc1MTEwMDg3NEFGMSAvKiBSZW1vdGVPYmplY3RJbnZv
Y2F0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUE1NzA0RjkxQkUxNzUxMTAwODc0QUYxIC8qIFJlbW90ZU9iamVjdEludm9jYXRpb24ubW0gKi87
IH07CkBAIC0xMTk0LDE5ICsxMTk0LDE5IEBACiAJCTkzNUVFQkEyMTI3NzYxRDAwMDMzMjJCOCAv
KiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RUVCOTAxMjc3NjE1RDAwMzMyMkI4IC8qIEluamVj
dGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0LmggKi87IH07CiAJCTkzNUVFQkEzMTI3NzYxRDMwMDMz
MjJCOCAvKiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RUVCOTExMjc3NjE1RDAwMzMy
MkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgKi87IH07CiAJCTkz
NUVFQkE0MTI3NzYxRDYwMDMzMjJCOCAvKiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0
ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUVF
QjkyMTI3NzYxNUQwMDMzMjJCOCAvKiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0u
aCAqLzsgfTsKLQkJOTM3MzVFQkIxQzkyOTg2MzAwMzM2RkE3IC8qIF9XS1ByZXZpZXdBY3Rpb25J
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM3MzVFQkExQzkyOTg2MzAwMzM2RkE3IC8qIF9XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oICov
OyB9OwotCQk5MzkxMDc0RjFCRjZCQzY1MDA4QzE3QUQgLyogX1dLUHJldmlld0VsZW1lbnRJbmZv
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5h
bC5oICovOyB9OworCQk5MzczNUVCQjFDOTI5ODYzMDAzMzZGQTcgLyogV0tQcmV2aWV3QWN0aW9u
SXRlbUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzczNUVCQTFDOTI5ODYzMDAzMzZGQTcgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUludGVy
bmFsLmggKi87IH07CisJCTkzOTEwNzRGMUJGNkJDNjUwMDhDMTdBRCAvKiBXS1ByZXZpZXdFbGVt
ZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogV0tQcmV2aWV3RWxlbWVudEluZm9J
bnRlcm5hbC5oICovOyB9OwogCQk5MzkxRjJDQTEyMUI2NzlBMDBFQkY3RTggLyogV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzOTFGMjg0MTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tICovOyB9OwogCQk5MzkxRjJDQjEyMUI2N0FEMDBFQkY3RTggLyogV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM5MUYyODMxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaCAqLzsgfTsKLQkJOTM5NUU2OEExQkYyQzMzMjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdF
bGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTkzOTVFNjhD
MUJGMkMzNTIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk1RTY4QjFCRjJDMzUyMDBGNDlC
Q0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tICovOyB9OwotCQk5Mzk1RTY4RTFCRjQxMEZE
MDBGNDlCQ0UgLyogX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5NUU2OEQxQkY0MTBGRDAwRjQ5QkNFIC8qIF9X
S0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLzsgfTsKKwkJOTM5NUU2OEExQkYyQzMzMjAwRjQ5QkNF
IC8qIFdLUHJldmlld0VsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5Mzk1RTY4OTFCRjJDMzMyMDBGNDlCQ0UgLyogV0tQcmV2aWV3RWxl
bWVudEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07
CisJCTkzOTVFNjhDMUJGMkMzNTIwMEY0OUJDRSAvKiBXS1ByZXZpZXdFbGVtZW50SW5mby5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTVFNjhCMUJG
MkMzNTIwMEY0OUJDRSAvKiBXS1ByZXZpZXdFbGVtZW50SW5mby5tbSAqLzsgfTsKKwkJOTM5NUU2
OEUxQkY0MTBGRDAwRjQ5QkNFIC8qIFdLRWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5NUU2OEQxQkY0MTBGRDAwRjQ5
QkNFIC8qIFdLRWxlbWVudEluZm9JbnRlcm5hbC5oICovOyB9OwogCQk5MzlBRTc2NjEzMTZFOTlD
MDBBRTA2QTYgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUFFNzY1MTMxNkU5OUMwMEFFMDZBNiAvKiBX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICovOyB9OwogCQk5MzlGNDAxQzE5RkIwQkJDMDAyQjJC
NDIgLyogV0tBY3Rpb25NZW51VHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzOUY0MDFCMTlGQjBCQkMwMDJCMkI0MiAvKiBXS0FjdGlvbk1lbnVU
eXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CTkzQTI1M0VEMUM5MjJFMUUwMEY5RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EyNTNFQzFDOTIyRTFFMDBG
OUY2OEQgLyogX1dLUHJldmlld0FjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCTkzQTI1M0VGMUM5MjJFOEUwMEY5RjY4RCAvKiBfV0tQcmV2
aWV3QWN0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNBMjUzRUUxQzkyMkU4RTAwRjlGNjhEIC8qIF9XS1ByZXZpZXdBY3Rpb24ubW0gKi87IH07
Ci0JCTkzQTI1M0YzMUM5MjQxMTIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVy
c1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQTI1M0YyMUM5MjQxMTIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1By
aXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk5M0EyNTNGNTFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQ
cml2YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNBMjUzRjQxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbklkZW50aWZpZXJzUHJp
dmF0ZS5tbSAqLzsgfTsKKwkJOTNBMjUzRUQxQzkyMkUxRTAwRjlGNjhEIC8qIFdLUHJldmlld0Fj
dGlvbkl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQTI1M0VDMUM5MjJFMUUwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OworCQk5M0EyNTNFRjFDOTIy
RThFMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTI1M0VFMUM5MjJFOEUwMEY5RjY4RCAvKiBX
S1ByZXZpZXdBY3Rpb25JdGVtLm1tICovOyB9OworCQk5M0EyNTNGMzFDOTI0MTEyMDBGOUY2OEQg
LyogV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EyNTNGMjFDOTI0MTEyMDBGOUY2OEQgLyogV0tQ
cmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHVibGljLCApOyB9OyB9OworCQk5M0EyNTNGNTFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2
aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNBMjUzRjQxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmlld0Fj
dGlvbkl0ZW1JZGVudGlmaWVycy5tbSAqLzsgfTsKIAkJOTNBODhCMzAxQkM2RTk5NzAwQUJBNUMy
IC8qIFdlYkhpdFRlc3RSZXN1bHREYXRhLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNBODhCMkUxQkM2RTk4RjAwQUJBNUMyIC8qIFdlYkhpdFRlc3RS
ZXN1bHREYXRhLm1tICovOyB9OwogCQk5M0E4OEIzMzFCQzZFOUNEMDBBQkE1QzIgLyogV2ViSGl0
VGVzdFJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQTg4QjMxMUJDNkU5QzAwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5o
ICovOyB9OwogCQk5M0E4OEIzNjFCQzZFQUQ1MDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERh
dGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
ODhCMzQxQkM2RUFCQTAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRhLmNwcCAqLzsgfTsK
QEAgLTIxODYsOCArMjE4Niw4IEBACiAJCTFBNTJDMEY2MUEzOENEQzcwMDE2MTYwQSAvKiBXZWJT
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFBNTNDMkE0MUEzMjU2OUYwMDRFOEM3MCAvKiBXZWJzaXRlRGF0YVN0b3JlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYnNpdGVEYXRhU3RvcmUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTUzQzJBNTFBMzI1NjlGMDA0RThDNzAg
LyogV2Vic2l0ZURhdGFTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJzaXRlRGF0YVN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBNTcwNEVG
MUJFMDE3M0YwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS0VsZW1lbnRJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkxQTU3MDRGMDFCRTAxNzNGMDA4NzRBRjEgLyogX1dLRWxlbWVudEluZm8u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLRWxlbWVudEluZm8uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUE1NzA0RUYxQkUwMTczRjAwODc0QUYxIC8qIFdL
RWxlbWVudEluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
S0VsZW1lbnRJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQTU3MDRGMDFC
RTAxNzNGMDA4NzRBRjEgLyogV0tFbGVtZW50SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0VsZW1lbnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFBNTcwNEY1MUJFMDFGRjQwMDg3NEFGMSAvKiBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLQ29udGV4dE1lbnVF
bGVtZW50SW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE1NzA0RjYxQkUw
MUZGNDAwODc0QUYxIC8qIF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQTU3MDRGOTFCRTE3NTExMDA4NzRBRjEgLyogUmVtb3Rl
T2JqZWN0SW52b2NhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFJlbW90ZU9iamVjdEludm9jYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0zMjE1LDE5ICszMjE1LDE5IEBACiAJCTkzNUVFQjk2MTI3NzYxNkQwMDMzMjJCOCAvKiBX
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzVFRUI5NzEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVt
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlQmFja0Zv
cndhcmRMaXN0SXRlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUVFQjk4
MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzNzM1RUJBMUM5Mjk4NjMwMDMzNkZBNyAv
KiBfV0tQcmV2aWV3QWN0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLUHJldmlld0FjdGlvbkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm9J
bnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tQcmV2aWV3RWxl
bWVudEluZm9JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzczNUVC
QTFDOTI5ODYzMDAzMzZGQTcgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQg
LyogV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MUYy
ODQxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5Mzk1RTY4OTFCRjJDMzMyMDBG
NDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IF9XS1ByZXZpZXdFbGVtZW50SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk5Mzk1RTY4QjFCRjJDMzUyMDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZv
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLUHJldmlld0Vs
ZW1lbnRJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5Mzk1RTY4RDFCRjQx
MEZEMDBGNDlCQ0UgLyogX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBfV0tFbGVtZW50SW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzOTVFNjg5MUJGMkMzMzIwMEY0OUJDRSAvKiBXS1ByZXZpZXdFbGVt
ZW50SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1ByZXZpZXdFbGVt
ZW50SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5Mzk1RTY4QjFCRjJDMzUy
MDBGNDlCQ0UgLyogV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXS1ByZXZpZXdFbGVtZW50SW5mby5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM5NUU2OEQxQkY0MTBGRDAwRjQ5QkNFIC8qIFdLRWxlbWVudElu
Zm9JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0VsZW1lbnRJ
bmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5QUU3NjUxMzE2
RTk5QzAwQUUwNkE2IC8qIFdlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlGNDAxQjE5RkIwQkJDMDAyQjJCNDIgLyogV0tBY3Rp
b25NZW51VHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tBY3Rpb25N
ZW51VHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNBMjUzRUMxQzkyMkUx
RTAwRjlGNjhEIC8qIF9XS1ByZXZpZXdBY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gX1dLUHJldmlld0FjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk5M0EyNTNFRTFDOTIyRThFMDBGOUY2OEQgLyogX1dLUHJldmlld0FjdGlvbi5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1ByZXZpZXdBY3Rpb24ubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzQTI1M0YyMUM5MjQxMTIwMEY5RjY4RCAvKiBX
S1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQcml2YXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzQTI1M0Y0MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZp
ZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXS1ByZXZpZXdBY3Rpb25JZGVudGlmaWVyc1ByaXZhdGUubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTI1M0VDMUM5MjJFMUUwMEY5RjY4RCAvKiBXS1By
ZXZpZXdBY3Rpb25JdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJl
dmlld0FjdGlvbkl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMjUzRUUx
QzkyMkU4RTAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW0ubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1ByZXZpZXdBY3Rpb25JdGVtLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0EyNTNGMjFDOTI0MTEyMDBGOUY2OEQgLyogV0tQcmV2
aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0EyNTNGNDFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRl
bUlkZW50aWZpZXJzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0E4OEIyRTFCQzZFOThGMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJIaXRUZXN0UmVz
dWx0RGF0YS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBODhCMzExQkM2RTlD
MDAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkhpdFRlc3RSZXN1bHREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzQTg4QjM0MUJDNkVBQkEwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0
YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJIaXRUZXN0UmVz
dWx0RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00OTY3LDkgKzQ5Njcs
NiBAQAogCQkJCTM3OUE4NzM4MThCQkZFMEYwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uLmgg
Ki8sCiAJCQkJMzc5QTg3MzcxOEJCRkUwRjAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb24ubW0g
Ki8sCiAJCQkJMzc5QTg3M0IxOEJCRkYwNzAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb25JbnRl
cm5hbC5oICovLAotCQkJCTFBNTcwNEYwMUJFMDE3M0YwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5m
by5oICovLAotCQkJCTFBNTcwNEVGMUJFMDE3M0YwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5t
bSAqLywKLQkJCQk5Mzk1RTY4RDFCRjQxMEZEMDBGNDlCQ0UgLyogX1dLRWxlbWVudEluZm9JbnRl
cm5hbC5oICovLAogCQkJCTFBRDAxQkM3MTkwNUQzN0UwMEM5QzQ1RiAvKiBfV0tFcnJvclJlY292
ZXJ5QXR0ZW1wdGluZy5oICovLAogCQkJCTFBRDAxQkM2MTkwNUQzN0UwMEM5QzQ1RiAvKiBfV0tF
cnJvclJlY292ZXJ5QXR0ZW1wdGluZy5tbSAqLywKIAkJCQkwMDVEMTU4RTE4RTRDNEVCMDA3MzQ2
MTkgLyogX1dLRmluZERlbGVnYXRlLmggKi8sCkBAIC00OTgwLDEyICs0OTc3LDYgQEAKIAkJCQkz
N0E2NEU1NDE4RjM4RTNDMDBFQjMwRjEgLyogX1dLSW5wdXREZWxlZ2F0ZS5oICovLAogCQkJCTJE
NzkwQTlDMUFENzA1MEQwMEFCOTBCMyAvKiBfV0tMYXlvdXRNb2RlLmggKi8sCiAJCQkJOTMyMzYx
MUQxQjAxNURBODAwRkE5MjMyIC8qIF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5oICovLAotCQkJ
CTkzQTI1M0VDMUM5MjJFMUUwMEY5RjY4RCAvKiBfV0tQcmV2aWV3QWN0aW9uLmggKi8sCi0JCQkJ
OTNBMjUzRUUxQzkyMkU4RTAwRjlGNjhEIC8qIF9XS1ByZXZpZXdBY3Rpb24ubW0gKi8sCi0JCQkJ
OTM3MzVFQkExQzkyOTg2MzAwMzM2RkE3IC8qIF9XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oICov
LAotCQkJCTkzOTVFNjg5MUJGMkMzMzIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8u
aCAqLywKLQkJCQk5Mzk1RTY4QjFCRjJDMzUyMDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJ
bmZvLm1tICovLAotCQkJCTkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAvKiBfV0tQcmV2aWV3RWxl
bWVudEluZm9JbnRlcm5hbC5oICovLAogCQkJCTFBNDNFODI4MTg4RjNDREMwMDlFNEQzMCAvKiBf
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkxQTQzRTgyNzE4OEYzQ0RDMDA5
RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tICovLAogCQkJCTdDODlEMkQ2
MUE2QzZCRTYwMDNBNUZERSAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb25JbnRlcm5hbC5o
ICovLApAQCAtNTAyNSw2ICs1MDE2LDkgQEAKIAkJCQkzN0M0QzA4NDE4MTQ5QzVCMDAzNjg4Qjkg
LyogV0tCYWNrRm9yd2FyZExpc3RJdGVtLm1tICovLAogCQkJCTM3QzRDMDg4MTgxNDlGMjMwMDM2
ODhCOSAvKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1JbnRlcm5hbC5oICovLAogCQkJCTFBOUYyODEw
MTk1OEY0NzgwMDhDQUM3MiAvKiBXS0JhY2tGb3J3YXJkTGlzdFByaXZhdGUuaCAqLywKKwkJCQkx
QTU3MDRGMDFCRTAxNzNGMDA4NzRBRjEgLyogV0tFbGVtZW50SW5mby5oICovLAorCQkJCTFBNTcw
NEVGMUJFMDE3M0YwMDg3NEFGMSAvKiBXS0VsZW1lbnRJbmZvLm1tICovLAorCQkJCTkzOTVFNjhE
MUJGNDEwRkQwMEY0OUJDRSAvKiBXS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLywKIAkJCQkxQUY0
NTkyRDE5NDY0QjIwMDBGOUQ0QTIgLyogV0tFcnJvci5oICovLAogCQkJCTFBRjQ1OTJDMTk0NjRC
MjAwMEY5RDRBMiAvKiBXS0Vycm9yLm1tICovLAogCQkJCTFBMkQyNTJBMTk0Njg4RkQwMDQ1MzdC
MCAvKiBXS0Vycm9ySW50ZXJuYWwuaCAqLywKQEAgLTUwNTQsOCArNTA0OCwxNCBAQAogCQkJCTFB
RkREMzE4MTg5MUNBMTIwMDE1Mzk3MCAvKiBXS1ByZWZlcmVuY2VzLm1tICovLAogCQkJCTFBM0M4
ODdGMThBNUFCQUUwMEM0Qzk2MiAvKiBXS1ByZWZlcmVuY2VzSW50ZXJuYWwuaCAqLywKIAkJCQk3
QzhFQjExNjE4REI2QTE5MDA3OTE3QzIgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLywKLQkJ
CQk5M0EyNTNGMjFDOTI0MTEyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQ
cml2YXRlLmggKi8sCi0JCQkJOTNBMjUzRjQxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmlld0Fj
dGlvbklkZW50aWZpZXJzUHJpdmF0ZS5tbSAqLywKKwkJCQk5M0EyNTNFQzFDOTIyRTFFMDBGOUY2
OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbS5oICovLAorCQkJCTkzQTI1M0VFMUM5MjJFOEUwMEY5
RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtLm1tICovLAorCQkJCTkzNzM1RUJBMUM5Mjk4NjMw
MDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaCAqLywKKwkJCQk5M0EyNTNG
MjFDOTI0MTEyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmggKi8s
CisJCQkJOTNBMjUzRjQxQzkyNDEzMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVu
dGlmaWVycy5tbSAqLywKKwkJCQk5Mzk1RTY4OTFCRjJDMzMyMDBGNDlCQ0UgLyogV0tQcmV2aWV3
RWxlbWVudEluZm8uaCAqLywKKwkJCQk5Mzk1RTY4QjFCRjJDMzUyMDBGNDlCQ0UgLyogV0tQcmV2
aWV3RWxlbWVudEluZm8ubW0gKi8sCisJCQkJOTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIFdL
UHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLywKIAkJCQkxQTE1ODQxODE4OTA0NEY1MDAx
NzYxNkMgLyogV0tQcm9jZXNzUG9vbC5oICovLAogCQkJCTFBMTU4NDE3MTg5MDQ0RjUwMDE3NjE2
QyAvKiBXS1Byb2Nlc3NQb29sLm1tICovLAogCQkJCTFBM0NDMTY4MTg5MDdFQjAwMDFFNkVEOCAv
KiBXS1Byb2Nlc3NQb29sSW50ZXJuYWwuaCAqLywKQEAgLTcxNDUsNyArNzE0NSw3IEBACiAJCQkJ
Mzc5QTg3M0ExOEJCRkUwRjAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTM3OUE4NzNDMThCQkZGMDcwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uSW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5MEQyOEJCMUM2NTM5RDMwMDk4Njk3NyAvKiBB
dXRvbWF0aW9uU2Vzc2lvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMUE1NzA0RjIxQkUw
MTc0MDAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTU3
MDRGMjFCRTAxNzQwMDA4NzRBRjEgLyogV0tFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUFEMDFCQzkxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5n
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwMDVEMTU4RjE4RTRDNEVCMDA3MzQ2MTkgLyogX1dLRmlu
ZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0E1RUJCQzFDN0JBNDNFMDBCOUNBNjkg
LyogV0tGcmFtZUhhbmRsZVJlZi5oIGluIEhlYWRlcnMgKi8sCkBAIC03MjA0LDcgKzcyMDQsNyBA
QAogCQkJCTdDMUJBMzNFMUE0QTBFNjAwMDQzRTI0OSAvKiBBUElEaWN0aW9uYXJ5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxRjdEMzZDMTE4REE1MTNGMDBEOUQ2NTkgLyogQVBJRG93bmxvYWRDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNkE0QTVEMTIwQTJDQ0QwMEMwNUI3RiAvKiBBUElF
cnJvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTM5NUU2OEUxQkY0MTBGRDAwRjQ5QkNFIC8qIF9X
S0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOTVFNjhFMUJGNDEw
RkQwMEY0OUJDRSAvKiBXS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTAwQjk2NjE2MThFMjRDQkEwMENFMUY4OCAvKiBBUElGaW5kQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkyREQ2N0EyRTFCRDgxOTczMDA1M0IyNTEgLyogQVBJRmluZE1hdGNoZXNDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTM3RTI1RDZFMThGREU1RDYwMDVEM0EwMCAvKiBBUElGb3Jt
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTczNzMsMTQgKzczNzMsMTQgQEAKIAkJCQkxQUJD
M0RGNjE4OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQTZGQkEyQTExRTY4NjI3MDBEQjEzNzEgLyogTmV0c2NhcGVCcm93c2VyRnVuY3MuaCBp
biBIZWFkZXJzICovLAogCQkJCTk5MEQyOEFCMUM2NDIwQzYwMDk4Njk3NyAvKiBfV0tBdXRvbWF0
aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTM3MzVFQkIxQzkyOTg2MzAwMzM2RkE3
IC8qIF9XS1ByZXZpZXdBY3Rpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM3MzVF
QkIxQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFFMjg2ODAxQzdGOTJDMDAwNjlBQzRGIC8qIF9XS1dlYnNpdGVEYXRh
U2l6ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTZGQkQyODExRTY5QkMyMDBEQjEz
NzEgLyogTmV0c2NhcGVQbHVnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNEE5QzU2MTJCODE2
Q0YwMDhGRTk4NCAvKiBOZXRzY2FwZVBsdWdpbk1vZHVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFBNTg4OTIxMUVFNzA0MDAwNjFCODgyIC8qIE5ldHNjYXBlUGx1Z2luU3RyZWFtLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMTc5OEM3QTE2RTY4MTg4MDAyNDAxMzkgLyogTmV0d29ya0Jsb2JSZWdp
c3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0MzZFQ0MxQTBEMDQwQjAwRUFEMjA0IC8qIE5l
dHdvcmtDYWNoZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTM5NUU2OEExQkYyQzMzMjAwRjQ5QkNF
IC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5NUU2OEEx
QkYyQzMzMjAwRjQ5QkNFIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNDlENDBENzFBRDNGQjE3MDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCUU0ODlEMjhBMUEwQTJEQjgwMDc4QzA2QSAvKiBOZXR3b3Jr
Q2FjaGVDb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ4OUQyOEMxQTBBMkRCODAwNzhDMDZB
IC8qIE5ldHdvcmtDYWNoZUNvZGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC03NDA3LDcgKzc0MDcs
NyBAQAogCQkJCTUxNjMxOTk1MTYyODlBNjMwMEUyMkYwMCAvKiBOZXR3b3JrUHJvY2Vzc01lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTRBOTU0QTE2RTAxNkE0MDA2OERFODIgLyogTmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNzk1
NTZFMTYyODc3QjMwMEZBNDNCNiAvKiBOZXR3b3JrUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAq
LywKLQkJCQk5M0EyNTNFRDFDOTIyRTFFMDBGOUY2OEQgLyogX1dLUHJldmlld0FjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTNBMjUzRUQxQzkyMkUxRTAwRjlGNjhEIC8qIFdLUHJldmlld0Fj
dGlvbkl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxM0ExNjNEMTYzMDg4RjYwMDVEN0QyMiAv
KiBOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NTVB
NkY1MUM3OTg2RTAwMEVCNkE5MyAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxRkQxOEI2MTY1MUZCQUQwMERCRTFDRSAvKiBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNzcyNiw3ICs3NzI2LDcgQEAKIAkJCQk5MzlG
NDAxQzE5RkIwQkJDMDAyQjJCNDIgLyogV0tBY3Rpb25NZW51VHlwZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQ0I0RTQ4MThCQkUwNDQwMDBGQ0ZDOSAvKiBXS0FjdGlvblNoZWV0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkNCNEU0QTE4QkJFMDQ0MDAwRkNGQzkgLyogV0tBY3Rpb25TaGVldEFz
c2lzdGFudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTM5MTA3NEYxQkY2QkM2NTAwOEMxN0FEIC8q
IF9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk5Mzkx
MDc0RjFCRjZCQzY1MDA4QzE3QUQgLyogV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzVGQTFFRDMxOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxheVJv
dXRlUGlja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0REQjMyRDEyNEVDMkUxMDA0OEQxM0Mg
LyogV0tBUElDYXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJFMzRFNTEzMEI0RDA1MDBBQkQx
OUEgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCkBAIC04MDM0
LDcgKzgwMzQsNyBAQAogCQkJCTc1QThEMkM4MTg3Q0NGQUIwMEMzOUM5RSAvKiBXS1dlYnNpdGVE
YXRhU3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1QThEMkQ2MTg3RDFDMEUwMEMzOUM5RSAv
KiBXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NzEw
OUYxQUJBMDAyNzAwMkZBQkJFIC8qIFdLV2Vic2l0ZURhdGFTdG9yZVJlZi5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJOTNBMjUzRjMxQzkyNDExMjAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbklkZW50
aWZpZXJzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNBMjUzRjMxQzkyNDExMjAwRjlG
NjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUEzQ0MxNjcxODkwNkFDRjAwMUU2RUQ4IC8qIFdLV2ViVmlldy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUFERjU5MUIxODkwNTI4RTAwNDNDMTQ1IC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTJEN0FBRkQ2MThDOTU2QUYwMEE3QUNENCAvKiBXS1dlYlZp
ZXdDb25maWd1cmF0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtODYzOCw3ICs4NjM4
LDcgQEAKIAkJCQk5OTU1QTZGNDFDNzk4NkRDMDBFQjZBOTMgLyogSW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExQTRGRTVCMThEQ0U5RkEwMEI1RUE4
QSAvKiBfV0tEb3dubG9hZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3OUE4NzM5MThCQkZFMEYw
MDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJMUE1NzA0
RjExQkUwMTczRjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJMUE1NzA0RjExQkUwMTczRjAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8ubW0gaW4gU291cmNl
cyAqLywKIAkJCQkxQUQwMUJDODE5MDVEMzdFMDBDOUM0NUYgLyogX1dLRXJyb3JSZWNvdmVyeUF0
dGVtcHRpbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzNEMTIyMjE4QTQ3MzAxMDA2NkQ5Q0Mg
LyogX1dLRnJhbWVIYW5kbGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0E4OEIzOTFCQzcwRjNG
MDBBQkE1QzIgLyogX1dLSGl0VGVzdFJlc3VsdC5tbSBpbiBTb3VyY2VzICovLApAQCAtODgyOCw3
ICs4ODI4LDcgQEAKIAkJCQlFNDg5RDI4QjFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29ya0NhY2hl
Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0N0QxRTk4MUIwNjQ5RkIwMDI2NzZBOCAv
KiBOZXR3b3JrQ2FjaGVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0MkUwNjE0MUFBNzVC
NzAwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVEYXRhQ29jb2EubW0gaW4gU291cmNlcyAqLywKLQkJ
CQk5M0EyNTNGNTFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSWRlbnRpZmllcnNQ
cml2YXRlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTNBMjUzRjUxQzkyNDEzMjAwRjlGNjhEIC8q
IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUU0
ODlEMjhEMUEwQTJEQjgwMDc4QzA2QSAvKiBOZXR3b3JrQ2FjaGVEZWNvZGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUU0ODlEMjhGMUEwQTJEQjgwMDc4QzA2QSAvKiBOZXR3b3JrQ2FjaGVFbmNv
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0MTNGNTlGMUFDMUFGOUQwMDM0NTM2MCAvKiBO
ZXR3b3JrQ2FjaGVFbnRyeS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTg5MzEsNyArODkzMSw3IEBA
CiAJCQkJRTFDQzFCOTExMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mb01hYy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTM3NzE2QTVBMTk1QjkxMDUwMEVFOEIxQiAvKiBQcm9jZXNzQXNzZXJ0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2Rjk1MzY0MThGRjU4M0MwMDFEQjJFRiAvKiBQcm9j
ZXNzQXNzZXJ0aW9uSU9TLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJOTM5NUU2OEMxQkYyQzM1MjAw
RjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovLAorCQkJCTkz
OTVFNjhDMUJGMkMzNTIwMEY0OUJDRSAvKiBXS1ByZXZpZXdFbGVtZW50SW5mby5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUM1NUY5MTcwMUM1OTVGNjMwMDI5RTkyRCAvKiBEYXRhRGV0ZWN0aW9uUmVz
dWx0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFMTE3RjYxMURCQjMwOTAwOTgxNjE1IC8qIFBy
b2Nlc3NMYXVuY2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzExMUIxRDExMkY1RkU2MDAz
MzdCQUIgLyogUHJvY2Vzc0xhdW5jaGVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC05MzA0LDcg
KzkzMDQsNyBAQAogCQkJCUNEQ0E4NUM4MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1NENDMTMxMkQ2NzRFRTAw
NUM2N0IwIC8qIFdLR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
MDZGNDRGMTJEQkRGM0YwMDJENzhERSAvKiBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNBMjUzRUYxQzkyMkU4RTAwRjlGNjhEIC8qIF9XS1By
ZXZpZXdBY3Rpb24ubW0gaW4gU291cmNlcyAqLywKKwkJCQk5M0EyNTNFRjFDOTIyRThFMDBGOUY2
OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDMEU2MTk5
MTJENkNEMTIwMDEyQTcyQSAvKiBXS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDcyOTdGQTIxQzE4NkFEQjAwM0YwNzM1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0I0RTUwMThCQkUwNDQwMDBGQ0ZDOSAv
KiBXS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0gaW4gU291cmNlcyAqLywK
</data>
<flag name="review"
          id="298388"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>