<?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>165968</bug_id>
          
          <creation_ts>2016-12-16 12:31:23 -0800</creation_ts>
          <short_desc>[CSS Values] Make separate wrapper classes for the deprecated CSS Values OM</short_desc>
          <delta_ts>2016-12-19 08:54:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1260704</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-12-16 12:31:23 -0800</bug_when>
    <thetext>[CSS Values] Make separate wrapper classes for the deprecated CSS Values OM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260709</commentid>
    <comment_count>1</comment_count>
      <attachid>297345</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-12-16 12:46:23 -0800</bug_when>
    <thetext>Created attachment 297345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260710</commentid>
    <comment_count>2</comment_count>
      <attachid>297346</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-12-16 12:51:30 -0800</bug_when>
    <thetext>Created attachment 297346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260711</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-16 12:52:59 -0800</bug_when>
    <thetext>Attachment 297346 did not pass style-queue:


ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:44:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:45:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:46:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:47:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:48:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:49:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:50:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:51:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:52:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:53:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:54:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:55:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:56:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:57:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:59:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:60:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:61:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:62:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:63:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:64:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:65:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:66:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:67:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:68:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:69:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:70:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMValue.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMValue.h:44:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMValue.h:45:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMValue.h:46:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 34 in 57 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>1260727</commentid>
    <comment_count>4</comment_count>
      <attachid>297351</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-12-16 13:30:16 -0800</bug_when>
    <thetext>Created attachment 297351
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260728</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-16 13:33:19 -0800</bug_when>
    <thetext>Attachment 297351 did not pass style-queue:


ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:44:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:45:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:46:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:47:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:48:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:49:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:50:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:51:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:52:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:53:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:54:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:55:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:56:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:57:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:59:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:60:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:61:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:62:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:63:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:64:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:65:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:66:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:67:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:68:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:69:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:70:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMValue.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMValue.h:44:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMValue.h:45:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMValue.h:46:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 34 in 57 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>1260733</commentid>
    <comment_count>6</comment_count>
      <attachid>297352</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-12-16 13:46:54 -0800</bug_when>
    <thetext>Created attachment 297352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260734</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-16 13:48:46 -0800</bug_when>
    <thetext>Attachment 297352 did not pass style-queue:


ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:44:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:45:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:46:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:47:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:48:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:49:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:50:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:51:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:52:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:53:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:54:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:55:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:56:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:57:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:59:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:60:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:61:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:62:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:63:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:64:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:65:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:66:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:67:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:68:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:69:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMPrimitiveValue.h:70:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValuePrivate.h&quot;
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.cpp&quot;
ERROR: Source/WebCore/css/DeprecatedCSSOMValue.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMValue.h:44:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMValue.h:45:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/css/DeprecatedCSSOMValue.h:46:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 34 in 60 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>1260805</commentid>
    <comment_count>8</comment_count>
      <attachid>297352</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-12-16 16:23:12 -0800</bug_when>
    <thetext>Comment on attachment 297352
Patch

Awesome! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261001</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-12-18 00:13:44 -0800</bug_when>
    <thetext>Link error fixed in https://trac.webkit.org/r209971</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261002</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-12-18 00:14:23 -0800</bug_when>
    <thetext>Main patch landed in https://trac.webkit.org/changeset/209969</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261124</commentid>
    <comment_count>11</comment_count>
      <attachid>297352</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-12-19 08:54:37 -0800</bug_when>
    <thetext>Comment on attachment 297352
Patch

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

&gt; Source/WebCore/css/DeprecatedCSSOMValue.h:86
&gt; +    // NOTE: This class is non-virtual for memory and performance reasons.
&gt; +    // Don&apos;t go making it virtual again unless you know exactly what you&apos;re doing!
&gt; +    ~DeprecatedCSSOMValue() { }

These could be virtual. Only the internal types are (possibly) worth this optimization.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297345</attachid>
            <date>2016-12-16 12:46:23 -0800</date>
            <delta_ts>2016-12-16 12:51:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165968-20161216144528.patch</filename>
            <type>text/plain</type>
            <size>180481</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1NCBAQAorMjAxNi0xMi0xNiAgRGF2ZSBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIFZhbHVlc10gTWFrZSBzZXBh
cmF0ZSB3cmFwcGVyIGNsYXNzZXMgZm9yIHRoZSBkZXByZWNhdGVkIENTUyBWYWx1ZXMgT00KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTk2OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
Y2hhbmdlcyB0aGUgQ1NTIE9NIG1vZGVsIGZvciB2YWx1ZXMgdG8gdXNlIGRpc3RpbmN0IHdyYXBw
ZXIKKyAgICAgICAgY2xhc3NlcyBpbnN0ZWFkIG9mIGNsb25pbmcgdGhlIGV4aXN0aW5nIGNsYXNz
ZXMuIEJ5IGFjdHVhbGx5IHdyYXBwaW5nCisgICAgICAgIHZhbHVlcyBpbmV0YWQgb2YgY2xvbmlu
Zywgd2UgYXJlIGZyZWVkIHVwIHRvIGNoYW5nZSBvdXIgQ1NTIHZhbHVlIGhpZXJhcmNoeQorICAg
ICAgICBob3dldmVyIHdlJ2QgbGlrZSBhbmQgdG8gY2hhbmdlIG91ciBpbnRlcm5hbCBDU1NWYWx1
ZSBjbGFzcyBoaWVhcmNoeSB0bworICAgICAgICBiZXR0ZXIgbWF0Y2ggdGhlIG5ldyBDU1MgVmFs
dWVzIE9NIHRoYXQgaXMgY29taW5nIHNvb24uCisKKyAgICAgICAgQWxsIG9mIHRoZSBDU1MgVmFs
dWVzIE9NIHdyYXBwZXIgY2xhc3NlcyBhcmUgcHJlZml4ZWQgd2l0aCAiRGVwcmVjYXRlZENTU09N
IgorICAgICAgICB0byByZWZsZWN0IG91ciBkZXNpcmUgKHVsdGltYXRlbHkpIHRvIHJlbW92ZSB0
aGlzIEFQSSBmcm9tIG91ciB0cmVlLiBXZSdyZQorICAgICAgICB0aGUgb25seSBvbmVzIHRoYXQg
c3VwcG9ydCBpdCwgYW5kIGl0J3Mgbm90IHVzZWQgb24gdGhlIFdlYiwgYnV0IGl0IGlzIHBhcnQK
KyAgICAgICAgb2YgdGhlIFdlYktpdExlZ2FjeSBBUEkgYW5kIG1pZ2h0IGJlIHVzZWQgaW50ZXJu
YWxseS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ET01X
cmFwcGVyV29ybGQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRp
b25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDU1NTdHlsZURlY2xhcmF0aW9uOjpn
ZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NTU1ZhbHVlQ3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRGVwcmVjYXRlZENTU09NVmFsdWVPd25lcjo6
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAoV2ViQ29yZTo6SlNEZXByZWNh
dGVkQ1NTT01WYWx1ZU93bmVyOjpmaW5hbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3
bHlDcmVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAoV2ViQ29yZTo6
SlNDU1NWYWx1ZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU0NTU1ZhbHVlT3duZXI6OmZpbmFsaXplKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6
CisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAq
IGNzcy9DU1NHcmlkTGluZU5hbWVzVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3Jp
ZExpbmVOYW1lc1ZhbHVlOjpjbG9uZUZvckNTU09NKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3Mv
Q1NTR3JpZExpbmVOYW1lc1ZhbHVlLmg6CisgICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFsdWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VTZXRWYWx1ZTo6Y2xvbmVGb3JDU1NPTSk6
IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFsdWUuaDoKKyAgICAgICAgKiBj
c3MvQ1NTSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVZhbHVlOjpj
cmVhdGVEZXByZWNhdGVkQ1NTT01XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdl
VmFsdWU6OmNsb25lRm9yQ1NTT00pOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9DU1NJbWFnZVZh
bHVlLmg6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVX
cmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjbG9uZUZvckNT
U09NKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKyAgICAg
ICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9D
U1NTdHlsZURlY2xhcmF0aW9uLmg6CisgICAgICAgICogY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24u
aWRsOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NW
YWx1ZTo6dHJhdmVyc2VTdWJyZXNvdXJjZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6
OmVxdWFscyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NWYWx1ZTo6ZGVzdHJveSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1
ZTo6Y3JlYXRlRGVwcmVjYXRlZENTU09NV3JhcHBlcik6CisgICAgICAgICgpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmNsb25lRm9yQ1NTT00pOiBEZWxldGVkLgorICAg
ICAgICAqIGNzcy9DU1NWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OkNTU1Zh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjpzZXRDc3NUZXh0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc0NTU09NU2FmZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNTdWJ0eXBlRXhwb3NlZFRvQ1NTT00pOiBEZWxldGVk
LgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5pZGw6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NT
U1ZhbHVlTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZUxpc3Q6OmNsb25lRm9y
Q1NTT00pOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUxpc3QuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ZhbHVlTGlzdDo6c2VwYXJhdG9yKToKKyAgICAgICAgKiBjc3MvQ1NTVmFs
dWVMaXN0LmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MvQ291bnRlci5oOgorICAgICAgICAq
IGNzcy9Db3VudGVyLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09N
Q291bnRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NQ291bnRlci5p
ZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVyLmlkbC4KKyAgICAgICAg
KiBjc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpnZXRDb3VudGVyVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmdldFJl
Y3RWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1
ZTo6Z2V0UkdCQ29sb3JWYWx1ZSk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1p
dGl2ZVZhbHVlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01Q
cmltaXRpdmVWYWx1ZTo6ZXF1YWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NP
TVByaW1pdGl2ZVZhbHVlOjpjc3NWYWx1ZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVj
YXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmNzc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6RGVw
cmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OnByaW1pdGl2ZVR5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OnNldEZsb2F0VmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmdldEZsb2F0VmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OnNl
dFN0cmluZ1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2
ZVZhbHVlOjpnZXRTdHJpbmdWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NT
T01QcmltaXRpdmVWYWx1ZTo6c3RyaW5nVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVj
YXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKToK
KyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaWRsOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsLgorICAgICAgICAq
IGNzcy9EZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvRGVw
cmVjYXRlZENTU09NUkdCQ29sb3IuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3Mv
UkdCQ29sb3IuaWRsLgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01SZWN0Lmg6IEFkZGVk
LgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01SZWN0LmlkbDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvY3NzL1JlY3QuaWRsLgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01W
YWx1ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZUNTU09NVmFsdWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjplcXVhbHMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWU6OmRlc3Ryb3kpOgorICAgICAgICAoV2Vi
Q29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWU6OmNzc1ZhbHVlVHlwZSk6CisgICAgICAgIChXZWJD
b3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZTo6Y3NzVGV4dCk6CisgICAgICAgICogY3NzL0RlcHJl
Y2F0ZWRDU1NPTVZhbHVlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENT
U09NVmFsdWU6OmRlcmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVl
OjpzZXRDc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpv
cGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjppc0Nv
bXBsZXhWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZTo6aXNQ
cmltaXRpdmVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZTo6
aXNWYWx1ZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWU6OmNs
YXNzVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZTo6RGVwcmVj
YXRlZENTU09NVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWU6
On5EZXByZWNhdGVkQ1NTT01WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NT
T01Db21wbGV4VmFsdWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NT
T01Db21wbGV4VmFsdWU6OmVxdWFscyk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NT
T01Db21wbGV4VmFsdWU6OmNzc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENT
U09NQ29tcGxleFZhbHVlOjpjc3NWYWx1ZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVj
YXRlZENTU09NQ29tcGxleFZhbHVlOjpEZXByZWNhdGVkQ1NTT01Db21wbGV4VmFsdWUpOgorICAg
ICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZS5pZGwuCisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVZh
bHVlTGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFs
dWVMaXN0OjplcXVhbHMpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWVM
aXN0Ojpjc3NUZXh0KToKKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Lmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Ojpjc3NWYWx1
ZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0OjpsZW5n
dGgpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0OjppdGVtKToK
KyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdDo6RGVwcmVjYXRlZENT
U09NVmFsdWVMaXN0KToKKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Lmlk
bDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5pZGwuCisgICAg
ICAgICogY3NzL0xlbmd0aFJlcGVhdC5oOgorICAgICAgICAqIGNzcy9Qcm9wZXJ0eVNldENTU1N0
eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlTZXRDU1NTdHls
ZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6d3JhcEZvckRlcHJlY2F0ZWRDU1NPTSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpkaWRNdXRhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lQ1NTU3R5bGVEZWNsYXJhdGlvbjo6ZGlkTXV0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6Y2xv
bmVBbmRDYWNoZUZvckNTU09NKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvUHJvcGVydHlTZXRD
U1NTdHlsZURlY2xhcmF0aW9uLmg6CisgICAgICAgICogY3NzL1JHQkNvbG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJHQkNvbG9yOjpyZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UkdCQ29sb3I6OmdyZWVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJHQkNvbG9yOjpi
bHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJHQkNvbG9yOjphbHBoYSk6IERlbGV0
ZWQuCisgICAgICAgICogY3NzL1JHQkNvbG9yLmg6CisgICAgICAgICogY3NzL1JHQkNvbG9yLmlk
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MvUmVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVj
dEJhc2U6OlJlY3RCYXNlKToKKyAgICAgICAgKiBjc3MvUmVjdC5pZGw6IFJlbW92ZWQuCisgICAg
ICAgICogc3ZnL1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6
Z2V0UHJlc2VudGF0aW9uQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmlkbDoKKwogMjAxNi0xMi0xNCAgRGF2ZSBIeWF0dCAg
PGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ1NTIFBhcnNlcl0gUmVuYW1lIFN0eWxlS2V5
ZnJhbWUgdG8gU3R5bGVSdWxlS2V5ZnJhbWUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZp
c2lvbiAyMDk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMzQ3LDcgKzM0Nyw2IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAg
ICAgY3NzL0NTU01lZGlhUnVsZS5pZGwKICAgICBjc3MvQ1NTTmFtZXNwYWNlUnVsZS5pZGwKICAg
ICBjc3MvQ1NTUGFnZVJ1bGUuaWRsCi0gICAgY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlkbAogICAg
IGNzcy9DU1NSdWxlLmlkbAogICAgIGNzcy9DU1NSdWxlTGlzdC5pZGwKICAgICBjc3MvQ1NTU3R5
bGVEZWNsYXJhdGlvbi5pZGwKQEAgLTM1NSwxNyArMzU0LDE4IEBAIHNldChXZWJDb3JlX05PTl9T
VkdfSURMX0ZJTEVTCiAgICAgY3NzL0NTU1N0eWxlU2hlZXQuaWRsCiAgICAgY3NzL0NTU1N1cHBv
cnRzUnVsZS5pZGwKICAgICBjc3MvQ1NTVW5rbm93blJ1bGUuaWRsCi0gICAgY3NzL0NTU1ZhbHVl
LmlkbAotICAgIGNzcy9DU1NWYWx1ZUxpc3QuaWRsCi0gICAgY3NzL0NvdW50ZXIuaWRsCisgICAg
Y3NzL0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaWRsCisgICAgY3NzL0RlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlLmlkbAorICAgIGNzcy9EZXByZWNhdGVkQ1NTT01SR0JDb2xvci5pZGwKKyAg
ICBjc3MvRGVwcmVjYXRlZENTU09NUmVjdC5pZGwKKyAgICBjc3MvRGVwcmVjYXRlZENTU09NVmFs
dWUuaWRsCisgICAgY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5pZGwKICAgICBjc3MvRE9N
Q1NTTmFtZXNwYWNlLmlkbAogICAgIGNzcy9Gb250RmFjZS5pZGwKICAgICBjc3MvRm9udEZhY2VT
ZXQuaWRsCiAgICAgY3NzL01lZGlhTGlzdC5pZGwKICAgICBjc3MvTWVkaWFRdWVyeUxpc3QuaWRs
CiAgICAgY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCi0gICAgY3NzL1JHQkNvbG9yLmlk
bAotICAgIGNzcy9SZWN0LmlkbAogICAgIGNzcy9TdHlsZU1lZGlhLmlkbAogICAgIGNzcy9TdHls
ZVNoZWV0LmlkbAogICAgIGNzcy9TdHlsZVNoZWV0TGlzdC5pZGwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5jcHAJKHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDcgKzExNiw2IEBACiAjaW5jbHVk
ZSAiSlNDb21tZW50LmNwcCIKICNpbmNsdWRlICJKU0NvbXBvc2l0aW9uRXZlbnQuY3BwIgogI2lu
Y2x1ZGUgIkpTQ29vcmRpbmF0ZXMuY3BwIgotI2luY2x1ZGUgIkpTQ291bnRlci5jcHAiCiAjaW5j
bHVkZSAiSlNDcnlwdG8uY3BwIgogI2lmIEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQogI2luY2x1
ZGUgIkpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIgpAQCAtMTI3LDcgKzEyNiw2IEBACiAjaW5j
bHVkZSAiSlNDU1NLZXlmcmFtZXNSdWxlLmNwcCIKICNpbmNsdWRlICJKU0NTU01lZGlhUnVsZS5j
cHAiCiAjaW5jbHVkZSAiSlNDU1NQYWdlUnVsZS5jcHAiCi0jaW5jbHVkZSAiSlNDU1NQcmltaXRp
dmVWYWx1ZS5jcHAiCiAjaW5jbHVkZSAiSlNDU1NSdWxlLmNwcCIKICNpbmNsdWRlICJKU0NTU1J1
bGVMaXN0LmNwcCIKICNpbmNsdWRlICJKU0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwIgpAQCAtMTM1
LDggKzEzMyw2IEBACiAjaW5jbHVkZSAiSlNDU1NTdHlsZVNoZWV0LmNwcCIKICNpbmNsdWRlICJK
U0NTU1N1cHBvcnRzUnVsZS5jcHAiCiAjaW5jbHVkZSAiSlNDU1NVbmtub3duUnVsZS5jcHAiCi0j
aW5jbHVkZSAiSlNDU1NWYWx1ZS5jcHAiCi0jaW5jbHVkZSAiSlNDU1NWYWx1ZUxpc3QuY3BwIgog
I2luY2x1ZGUgIkpTQ2xpcGJvYXJkRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVu
dFJlZ2lzdHJ5LmNwcCIKICNpbmNsdWRlICJKU0N1c3RvbUV2ZW50LmNwcCIKQEAgLTE0OSw2ICsx
NDUsMTIgQEAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogI2luY2x1ZGUgIkpTRGVsYXlOb2RlLmNw
cCIKICNlbmRpZgorI2luY2x1ZGUgIkpTRGVwcmVjYXRlZENTU09NQ291bnRlci5jcHAiCisjaW5j
bHVkZSAiSlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAiCisjaW5jbHVkZSAiSlNE
ZXByZWNhdGVkQ1NTT01SR0JDb2xvci5jcHAiCisjaW5jbHVkZSAiSlNEZXByZWNhdGVkQ1NTT01S
ZWN0LmNwcCIKKyNpbmNsdWRlICJKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcCIKKyNpbmNsdWRl
ICJKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAiCiAjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKICNpbmNsdWRlICJKU0RldmljZU1vdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiSlNE
ZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCIKQEAgLTQwMSw5ICs0MDMsNyBAQAogI2luY2x1ZGUg
IkpTUmVhZGFibGVTdHJlYW0uY3BwIgogI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIu
Y3BwIgotI2luY2x1ZGUgIkpTUmVjdC5jcHAiCiAjaW5jbHVkZSAiSlNSZXF1ZXN0QW5pbWF0aW9u
RnJhbWVDYWxsYmFjay5jcHAiCi0jaW5jbHVkZSAiSlNSR0JDb2xvci5jcHAiCiAjaW5jbHVkZSAi
SlNSVENDb25maWd1cmF0aW9uLmNwcCIKICNpbmNsdWRlICJKU1JUQ0RhdGFDaGFubmVsLmNwcCIK
ICNpbmNsdWRlICJKU1JUQ0RhdGFDaGFubmVsRXZlbnQuY3BwIgpJbmRleDogU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyMDk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yNzIsNyArMjcyLDYgQEAgSlNfQklO
RElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU01lZGlhUnVsZS5pZGwgXAogCSQo
V2ViQ29yZSkvY3NzL0NTU05hbWVzcGFjZVJ1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9D
U1NQYWdlUnVsZS5pZGwgXAotICAgICQoV2ViQ29yZSkvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3Nz
L0NTU1J1bGVMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlv
bi5pZGwgXApAQCAtMjgwLDE3ICsyNzksMTggQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQo
V2ViQ29yZSkvY3NzL0NTU1N0eWxlU2hlZXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NT
dXBwb3J0c1J1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NVbmtub3duUnVsZS5pZGwg
XAotICAgICQoV2ViQ29yZSkvY3NzL0NTU1ZhbHVlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3Mv
Q1NTVmFsdWVMaXN0LmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvQ291bnRlci5pZGwgXAorICAg
ICQoV2ViQ29yZSkvY3NzL0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaWRsIFwKKwkkKFdlYkNvcmUp
L2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5pZGwgXAorCSQoV2ViQ29yZSkvY3Nz
L0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvRGVwcmVjYXRl
ZENTU09NUmVjdC5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmlk
bCBcCisgICAgJChXZWJDb3JlKS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9j
c3MvRm9udEZhY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9Gb250RmFjZVNldC5pZGwgXAog
ICAgICQoV2ViQ29yZSkvY3NzL01lZGlhTGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL01l
ZGlhUXVlcnlMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5pZGwgXAotICAgICQoV2ViQ29yZSkvY3NzL1JHQkNvbG9yLmlkbCBcCi0gICAgJChXZWJD
b3JlKS9jc3MvUmVjdC5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL1N0eWxlTWVkaWEuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2Nzcy9TdHlsZVNoZWV0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3Mv
U3R5bGVTaGVldExpc3QuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtNjM0LDggKzYzNCw2IEBACiAJCTE0OTkzQkU1MEIyRjJCMUMwMDUwNDk3RiAvKiBGb2N1c0Nv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTQ5OTNCRTMwQjJGMkIxQzAwNTA0OTdGIC8qIEZvY3VzQ29udHJvbGxlci5jcHAgKi87IH07
CiAJCTE0OTkzQkU2MEIyRjJCMUMwMDUwNDk3RiAvKiBGb2N1c0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0OTkzQkU0MEIyRjJCMUMw
MDUwNDk3RiAvKiBGb2N1c0NvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxNEM5QTVFQTBCM0QxMDVGMDA1QTAyMzIgLyogU2V0dGlu
Z3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRD
OUE1RTkwQjNEMTA1RjAwNUEwMjMyIC8qIFNldHRpbmdzLmNwcCAqLzsgfTsKLQkJMTRDRjc4QTQw
OUY1OENCRjAwRUIzNjY1IC8qIEpTQ1NTVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRDRjc4QTMwOUY1OENCRjAwRUIzNjY1IC8qIEpTQ1NT
VmFsdWUuY3BwICovOyB9OwotCQkxNENGNzhBNjA5RjU4Q0Q4MDBFQjM2NjUgLyogSlNDU1NWYWx1
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRDRjc4
QTUwOUY1OENEODAwRUIzNjY1IC8qIEpTQ1NTVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNENGN0IzMzA5RjZFQ0Q3MDBFQjM2NjUgLyog
SlNDU1NSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE0Q0Y3QjMxMDlGNkVDRDcwMEVCMzY2NSAvKiBKU0NTU1J1bGUuY3BwICovOyB9OwogCQkx
NENGN0IzNDA5RjZFQ0Q3MDBFQjM2NjUgLyogSlNDU1NSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNENGN0IzMjA5RjZFQ0Q3MDBFQjM2NjUgLyog
SlNDU1NSdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMTRENjRCNUMxMzRBNUI2QjAwRTU4RkRBIC8qIFRyZWVTY29wZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEQ2NEI1QTEzNEE1QjZCMDBF
NThGREEgLyogVHJlZVNjb3BlLmNwcCAqLzsgfTsKQEAgLTMyMzYsMTAgKzMyMzQsNiBAQAogCQk5
MzAyQjBCRDBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAv
KiBQYWdlR3JvdXAuY3BwICovOyB9OwogCQk5MzAyQjBCRjBENzlGODJDMDBDN0VFODMgLyogUGFn
ZUdyb3VwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzAyQjBCRTBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMwNUIyNEQwOThGMUI2QjAwQzI4ODU1
IC8qIFRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzA1QjI0QzA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5MzA3MDVEODA5RTBDOUI3MDBCMTdGRTQg
LyogSlNDb3VudGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMDcwNUQ3MDlFMEM5QjcwMEIxN0ZFNCAvKiBKU0NvdW50ZXIuY3BwICovOyB9Owot
CQk5MzA3MDVEQTA5RTBDOUJGMDBCMTdGRTQgLyogSlNDb3VudGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA3MDVEOTA5RTBDOUJGMDBCMTdGRTQg
LyogSlNDb3VudGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJOTMwNzA1RTkwOUUwQzlGMDAwQjE3RkU0IC8qIEpTQ1NTUHJpbWl0aXZlVmFsdWUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwNzA1
RTgwOUUwQzlGMDAwQjE3RkU0IC8qIEpTQ1NTUHJpbWl0aXZlVmFsdWUuY3BwICovOyB9OwotCQk5
MzA3MDVFQjA5RTBDOUY2MDBCMTdGRTQgLyogSlNDU1NQcmltaXRpdmVWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwNzA1RUEwOUUwQzlGNjAw
QjE3RkU0IC8qIEpTQ1NTUHJpbWl0aXZlVmFsdWUuaCAqLzsgfTsKIAkJOTMwN0YxRDcwQUYyRDU5
MDAwREJBMzFBIC8qIEhpdFRlc3RSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwN0YxRDUwQUYyRDU5MDAwREJBMzFBIC8qIEhpdFRlc3RS
ZXN1bHQuY3BwICovOyB9OwogCQk5MzA3RjFEODBBRjJENTkwMDBEQkEzMUEgLyogSGl0VGVzdFJl
c3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMw
N0YxRDYwQUYyRDU5MDAwREJBMzFBIC8qIEhpdFRlc3RSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzA4NDEzNDFDRERCMTU1MDBCMDk1
OEMgLyogSlNET01Db252ZXJ0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzA4NDEzMzFDRERCMTU1MDBCMDk1OEMgLyogSlNET01Db252ZXJ0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM1MjUsNiAr
MzUxOSwyNyBAQAogCQk5NDZEMzc0QTFENkQwNjI4MDA3NzA4NEYgLyogQ1NTTWFya3VwLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDZEMzc0ODFENkQw
NjBDMDA3NzA4NEYgLyogQ1NTTWFya3VwLmggKi87IH07CiAJCTk0NkQzNzREMUQ2RDA4QTYwMDc3
MDg0RiAvKiBDU1NQYXJzZXJUb2tlblJhbmdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0NkQzNzRCMUQ2RDA3RjUwMDc3MDg0RiAvKiBDU1NQYXJz
ZXJUb2tlblJhbmdlLmNwcCAqLzsgfTsKIAkJOTQ2RDM3NEUxRDZEMDhBQTAwNzcwODRGIC8qIENT
U1BhcnNlclRva2VuUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk0NkQzNzRDMUQ2RDA3RjUwMDc3MDg0RiAvKiBDU1NQYXJzZXJUb2tlblJhbmdl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTQ3
OTQ5MjQxRTAzMDhBNDAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0Nzk0OTIyMUUwMkY5MEIw
MDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAgKi87IH07CisJCTk0Nzk0OTI1MUUw
MzA4QUYwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MjMxRTAyRjkwQjAwMDE4RDg1IC8q
IERlcHJlY2F0ZWRDU1NPTVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOTQ3OTQ5MkUxRTA0NTdCQTAwMDE4RDg1IC8qIERlcHJlY2F0ZWRD
U1NPTVZhbHVlTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NDc5NDkyRDFFMDQ1NzhEMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWVM
aXN0LmNwcCAqLzsgfTsKKwkJOTQ3OTQ5MkYxRTA0NTlFQjAwMDE4RDg1IC8qIEpTRGVwcmVjYXRl
ZENTU09NQ291bnRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NDc5NDkxODFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01Db3Vu
dGVyLmNwcCAqLzsgfTsKKwkJOTQ3OTQ5MzAxRTA0NTlFRTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRl
ZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTQ3OTQ5MUExRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENT
U09NUHJpbWl0aXZlVmFsdWUuY3BwICovOyB9OworCQk5NDc5NDkzMTFFMDQ1OUZBMDAwMThEODUg
LyogSlNEZXByZWNhdGVkQ1NTT01Db3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkxOTFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNh
dGVkQ1NTT01Db3VudGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJOTQ3OTQ5MzIxRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk0Nzk0OTFCMUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVByaW1p
dGl2ZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJOTQ3OTQ5MzMxRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUmVjdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkx
QzFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01SZWN0LmNwcCAqLzsgfTsKKwkJ
OTQ3OTQ5MzQxRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUmVjdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MUQxRTAyRjZE
RTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk0Nzk0OTM1MUUwNDU5RkEwMDAxOEQ4NSAv
KiBKU0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0Nzk0OTFFMUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJl
Y2F0ZWRDU1NPTVJHQkNvbG9yLmNwcCAqLzsgfTsKKwkJOTQ3OTQ5MzYxRTA0NTlGQTAwMDE4RDg1
IC8qIEpTRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0Nzk0OTFGMUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJl
Y2F0ZWRDU1NPTVJHQkNvbG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOTQ3OTQ5MzcxRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENT
U09NVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTQ3OTQ5MjAxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWUuY3Bw
ICovOyB9OworCQk5NDc5NDkzODFFMDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01W
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTQ3
OTQ5MjExRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NDc5NDkzOTFFMDQ1
OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MkIxRTAzM0IyODAwMDE4
RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcCAqLzsgfTsKKwkJOTQ3OTQ5M0Ex
RTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkyQzFFMDMzQjI4MDAw
MThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NDc5NDkzQzFFMDQ1Q0YzMDAwMThEODUg
LyogRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5M0IxRTA0NUNFMTAwMDE4RDg1IC8qIERl
cHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcCAqLzsgfTsKKwkJOTQ3OTQ5M0QxRTA0NjNC
NjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MjcxRTAzMTMyMDAwMDE4RDg1IC8q
IERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTk0Nzk0OTNFMUUwNDYzQkUwMDAxOEQ4NSAvKiBEZXByZWNh
dGVkQ1NTT01SR0JDb2xvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTQ3OTQ5MjkxRTAzMkQ1ODAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVJHQkNv
bG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
OTQ3OTQ5M0YxRTA0NjNDNjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVJlY3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0Nzk0OTI4MUUwMzJBRTkw
MDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01SZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTQ3OTQ5NDAxRTA0NjNDRTAwMDE4RDg1IC8qIERl
cHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkyNjFFMDMxMzIwMDAwMThEODUgLyogRGVwcmVjYXRl
ZENTU09NUHJpbWl0aXZlVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk5NDc5NDk0MTFFMDQ2M0Q0MDAwMThEODUgLyogRGVwcmVjYXRlZENT
U09NQ291bnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTQ3OTQ5MkExRTAzMkVEQjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NDkzQjZC
RTFENzRCNDEyMDA4OEU3ODAgLyogTWVkaWFRdWVyeUJsb2NrV2F0Y2hlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDkzQjZCNjFENzRCMzk1MDA4
OEU3ODAgLyogTWVkaWFRdWVyeUJsb2NrV2F0Y2hlci5jcHAgKi87IH07CiAJCTk0OTNCNkJGMUQ3
NEI0MTIwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5QmxvY2tXYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDkzQjZCNzFENzRCMzk1MDA4OEU3ODAg
LyogTWVkaWFRdWVyeUJsb2NrV2F0Y2hlci5oICovOyB9OwogCQk5NDkzQjZDMDFENzRCNDEyMDA4
OEU3ODAgLyogTWVkaWFRdWVyeVBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NDkzQjZCODFENzRCMzk1MDA4OEU3ODAgLyogTWVkaWFRdWVy
eVBhcnNlci5jcHAgKi87IH07CkBAIC00MzM4LDggKzQzNTMsNiBAQAogCQlBOENGRjdBQjBBMTU2
OTc4MDAwQTQyMzQgLyogSFRNTEFuY2hvckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4Q0ZGN0ExMEExNTY5NzgwMDBBNDIzNCAvKiBIVE1M
QW5jaG9yRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE4RDA1RkE3MEEyM0IzMDEwMDVFNzIwMyAvKiBKU0NTU1J1bGVMaXN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RDA1RkE1MEEy
M0IzMDEwMDVFNzIwMyAvKiBKU0NTU1J1bGVMaXN0LmNwcCAqLzsgfTsKIAkJQThEMDVGQTgwQTIz
QjMwMTAwNUU3MjAzIC8qIEpTQ1NTUnVsZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RDA1RkE2MEEyM0IzMDEwMDVFNzIwMyAvKiBKU0NTU1J1
bGVMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJQThEMDVGQUIwQTIzQjMwRjAwNUU3MjAzIC8qIEpTQ1NTVmFsdWVMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RDA1RkE5MEEyM0IzMEYw
MDVFNzIwMyAvKiBKU0NTU1ZhbHVlTGlzdC5jcHAgKi87IH07Ci0JCUE4RDA1RkFDMEEyM0IzMEYw
MDVFNzIwMyAvKiBKU0NTU1ZhbHVlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThEMDVGQUEwQTIzQjMwRjAwNUU3MjAzIC8qIEpTQ1NTVmFsdWVM
aXN0LmggKi87IH07CiAJCUE4RDA2NEZCMEEyM0MwQ0MwMDVFNzIwMyAvKiBKU0hUTUxGb3JtRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEQwNjRGOTBBMjNDMENDMDA1RTcyMDMgLyogSlNIVE1MRm9ybUVsZW1lbnQuY3BwICovOyB9Owog
CQlBOEQwNjRGQzBBMjNDMENDMDA1RTcyMDMgLyogSlNIVE1MRm9ybUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RDA2NEZBMEEyM0MwQ0Mw
MDVFNzIwMyAvKiBKU0hUTUxGb3JtRWxlbWVudC5oICovOyB9OwogCQlBOEQwNjVBRTBBMjQ0NkNE
MDA1RTcyMDMgLyogSlNIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThEMDY1QUQwQTI0NDZDRDAwNUU3MjAzIC8q
IEpTSFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsKQEAgLTUzMjcsOCArNTM0MCw2IEBA
CiAJCUJDNkQ2RTI2MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxWaWV3LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzZENkUyNTA5QUY5NDM1MDBGNTk3
NTkgLyogU2Nyb2xsVmlldy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUJDNzREQTM3MTAxM0YzRjcwMDc5ODdBRCAvKiBSR0JDb2xvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NERBMzUxMDEzRjNG
NzAwNzk4N0FEIC8qIFJHQkNvbG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQkM3NERBMzgxMDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNvbG9yLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzREQTM2
MTAxM0YzRjcwMDc5ODdBRCAvKiBSR0JDb2xvci5jcHAgKi87IH07Ci0JCUJDNzREQTQ4MTAxM0Y0
NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzREQTQ2MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9y
LmNwcCAqLzsgfTsKLQkJQkM3NERBNDkxMDEzRjQ2ODAwNzk4N0FEIC8qIEpTUkdCQ29sb3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzREQTQ3MTAx
M0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3NkFDMTMwREQ3QUQ1QzAwNDE1RjM0IC8qIFBhcnNl
clV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkM3NkFDMTEwREQ3QUQ1QzAwNDE1RjM0IC8qIFBhcnNlclV0aWxpdGllcy5oICovOyB9Owog
CQlCQzc3MkIzQzBDNEVBOTFFMDA4MzI4NUYgLyogQ1NTSGVscGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc3MkIzNjBDNEVBOTFFMDA4MzI4NUYg
LyogQ1NTSGVscGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQkM3NzJDNDYwQzRFQjJDNjAwODMyODVGIC8qIFhNTEh0dHBSZXF1ZXN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzcyQzQ0MEM0
RUIyQzYwMDgzMjg1RiAvKiBYTUxIdHRwUmVxdWVzdC5jcHAgKi87IH07CkBAIC01NTQ3LDggKzU1
NTgsNiBAQAogCQlCQ0Y3RTQ5MTEzN0NEN0M3MDAxRERBRTcgLyogQWRqdXN0Vmlld1NpemVPck5v
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNDhD
RTYxMzcwRDExNDAwNEU4N0Q2IC8qIEFkanVzdFZpZXdTaXplT3JOb3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0ZBOTMwODEwMzMzMTkzMDA3
QjI1RDEgLyogUmVuZGVyT3ZlcmZsb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDRkE5MzA3MTAzMzMxOTMwMDdCMjVEMSAvKiBSZW5kZXJPdmVyZmxv
dy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJD
RkIyRTVFMDk3OUU0NjQwMEJBNzAzRCAvKiBDYWNoZWRSZXNvdXJjZUNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGQjJFNUQwOTc5RTQ2NDAw
QkE3MDNEIC8qIENhY2hlZFJlc291cmNlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNGRTJGMTEwQzFCNTgzNzAwMjAyMzVGIC8qIEpT
UmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0ZFMkYwRjBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmNwcCAqLzsgfTsKLQkJQkNGRTJGMTIw
QzFCNTgzODAwMjAyMzVGIC8qIEpTUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNGRTJGMTAwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDRkY2NDkx
MEVBRDE1QzIwMEMxRDZGNyAvKiBMZW5ndGhCb3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkY2NDhGMEVBRDE1QzIwMEMxRDZGNyAvKiBMZW5ndGhC
b3guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlC
Q0ZGNjQ5MjBFQUQxNUMyMDBDMUQ2RjcgLyogTGVuZ3RoU2l6ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGRjY0OTAwRUFEMTVDMjAwQzFENkY3IC8q
IExlbmd0aFNpemUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCRTE2QzU5MjE3Q0ZFMTcyMDA4NTJDMDQgLyogSW5iYW5kR2VuZXJpY1RleHRUcmFj
ay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCRTE2
QzU4RTE3Q0ZFMTcyMDA4NTJDMDQgLyogSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHAgKi87IH07
CkBAIC03NjMyLDkgKzc2NDEsNyBAQAogCQkxNEE5OEUwNTEzNjM4NkEyMDBDOUZFRDIgLyogQmxv
Yi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQmxvYi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTE0QkRGNTlBMTM2NTM5OTEwMDE0ODM5MyAvKiBGaWxlUmVhZGVyLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGaWxlUmVhZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMTRDOUE1RTkwQjNEMTA1RjAwNUEwMjMyIC8qIFNldHRpbmdzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXR0aW5ncy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTE0Q0Y3ODcxMDlGNTg3Q0EwMEVCMzY2NSAvKiBDU1NWYWx1
ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU1ZhbHVlLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMTRDRjc4QTMwOUY1OENCRjAwRUIzNjY1IC8qIEpTQ1NTVmFsdWUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTVmFsdWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNENGNzhBNTA5RjU4Q0Q4MDBFQjM2NjUg
LyogSlNDU1NWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NW
YWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxNENGNzg3MTA5RjU4N0NBMDBF
QjM2NjUgLyogRGVwcmVjYXRlZENTU09NVmFsdWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBEZXByZWNhdGVkQ1NTT01WYWx1ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTE0Q0Y3QTcwMDlGNUNGOUEwMEVCMzY2NSAvKiBDU1NSdWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQ1NTUnVsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0Q0Y3
QjMxMDlGNkVDRDcwMEVCMzY2NSAvKiBKU0NTU1J1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTE0Q0Y3QjMyMDlGNkVDRDcwMEVCMzY2NSAvKiBKU0NTU1J1bGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTA2OTQsNyArMTA3MDEsNyBAQAogCQk4NTc0RDFGNjBBREU2MTIyMDA0Q0JB
MTEgLyogSlNTVkdQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmg7IHBhdGggPSBK
U1NWR1BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NzREMUY3MEFERTYx
MjIwMDRDQkExMSAvKiBKU1NWR1JlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTU1ZHUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1
NzREMUY4MEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR1JlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5oOyBwYXRoID0gSlNTVkdSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTg1OEMzOEVGMEFBOEZERDEwMEIxODdBNCAvKiBSR0JDb2xvci5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJHQkNvbG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
ODU4QzM4RUYwQUE4RkREMTAwQjE4N0E0IC8qIERlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NThDMzkxMDBBQThGRjAwMDBCMTg3QTQgLyogQ1NT
U3R5bGVTaGVldC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU1N0eWxlU2hlZXQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTkxMjg3OTBBQjIyMkVDMDAyMDIyNjUg
LyogSFRNTEVtYmVkRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxFbWJl
ZEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUFDQTlGOTBBOUI2
MzEwMDA2NzFFOTAgLyogTmFtZWROb2RlTWFwLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TmFtZWROb2RlTWFwLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNzg3LDEy
ICsxMDc5NCw4IEBACiAJCTkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdlR3JvdXAuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUdyb3VwLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBh
Z2VHcm91cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlR3JvdXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwNUIyNEMwOThGMUI2QjAwQzI4ODU1IC8q
IFRpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzMDcwNTkwMDlFMEM3NTgwMEIxN0ZFNCAvKiBDU1NQ
cmltaXRpdmVWYWx1ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ1NTUHJpbWl0aXZlVmFs
dWUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5MzA3MDVDNzA5RTBDOTVGMDBC
MTdGRTQgLyogQ291bnRlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ291bnRlci5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzMDcwNUQ3MDlFMEM5QjcwMEIxN0ZFNCAv
KiBKU0NvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlND
b3VudGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTMwNzA1RDkwOUUwQzlC
RjAwQjE3RkU0IC8qIEpTQ291bnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0NvdW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTMwNzA1RTgwOUUw
QzlGMDAwQjE3RkU0IC8qIEpTQ1NTUHJpbWl0aXZlVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NQcmltaXRpdmVWYWx1ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTkzMDcwNUVBMDlFMEM5RjYwMEIxN0ZFNCAvKiBKU0NTU1ByaW1p
dGl2ZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTUHJpbWl0
aXZlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMwNzA1OTAwOUUwQzc1
ODAwQjE3RkU0IC8qIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDcwNUM3MDlFMEM5NUYwMEIxN0ZFNCAvKiBEZXByZWNh
dGVkQ1NTT01Db3VudGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEZXByZWNhdGVkQ1NT
T01Db3VudGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwNzA2MTMwOUUw
Q0E4MjAwQjE3RkU0IC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUubWFrZTsgZmlsZUVuY29kaW5n
ID0gNDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHVzZXNUYWJzID0gMTsgfTsKIAkJOTMwN0YxRDUwQUYyRDU5MDAwREJBMzFBIC8qIEhpdFRlc3RS
ZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpdFRlc3RS
ZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA3RjFENjBBRjJENTkw
MDBEQkEzMUEgLyogSGl0VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEw
NzksNiArMTEwODIsMjcgQEAKIAkJOTQ2RDM3NDgxRDZEMDYwQzAwNzcwODRGIC8qIENTU01hcmt1
cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NNYXJrdXAuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTQ2RDM3NEIxRDZEMDdGNTAwNzcwODRGIC8qIENTU1Bh
cnNlclRva2VuUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
Q1NTUGFyc2VyVG9rZW5SYW5nZS5jcHA7IHBhdGggPSBwYXJzZXIvQ1NTUGFyc2VyVG9rZW5SYW5n
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk0NkQzNzRDMUQ2RDA3RjUwMDc3
MDg0RiAvKiBDU1NQYXJzZXJUb2tlblJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IENTU1BhcnNlclRva2VuUmFuZ2UuaDsgcGF0aCA9IHBhcnNlci9DU1NQYXJzZXJUb2tl
blJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk0Nzk0OTE4MUUwMkY2REUw
MDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNEZXByZWNhdGVkQ1NTT01Db3VudGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MTkxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVw
cmVjYXRlZENTU09NQ291bnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTQ3OTQ5MUExRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFs
dWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk0
Nzk0OTFCMUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MUMxRTAy
RjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RlcHJlY2F0ZWRDU1NPTVJlY3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkxRDFFMDJGNkRFMDAwMThEODUgLyogSlNEZXBy
ZWNhdGVkQ1NTT01SZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGVw
cmVjYXRlZENTU09NUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkx
RTFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MUYxRTAyRjZERTAwMDE4
RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5NDc5NDkyMDFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NT
T01WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RlcHJl
Y2F0ZWRDU1NPTVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5
MjExRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkyMjFFMDJGOTBCMDAwMThEODUgLyogRGVwcmVj
YXRlZENTU09NVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGVwcmVjYXRlZENTU09NVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NDc5NDkyMzFFMDJGOTBCMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVwcmVjYXRlZENTU09NVmFsdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MjYxRTAzMTMyMDAwMDE4RDg1IC8qIERlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk0Nzk0OTI3MUUwMzEzMjAwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1
ZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVwcmVjYXRlZENTU09N
VmFsdWVMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk0Nzk0OTI4MUUwMzJB
RTkwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01SZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERlcHJlY2F0ZWRDU1NPTVJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTQ3OTQ5MjkxRTAzMkQ1ODAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVJHQkNv
bG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlcHJlY2F0ZWRDU1NPTVJH
QkNvbG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk0Nzk0OTJBMUUwMzJFREIw
MDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01Db3VudGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTQ3OTQ5MkIxRTAzM0IyODAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09N
VmFsdWVMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGVw
cmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTQ3OTQ5MkMxRTAzM0IyODAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGVwcmVjYXRlZENTU09NVmFsdWVM
aXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk0Nzk0OTJEMUUwNDU3OEQwMDAx
OEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5M0IxRTA0NUNFMTAwMDE4RDg1IC8qIERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTQ5M0I2QjYxRDc0QjM5NTAwODhFNzgwIC8qIE1lZGlhUXVlcnlCbG9j
a1dhdGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWVkaWFR
dWVyeUJsb2NrV2F0Y2hlci5jcHA7IHBhdGggPSBwYXJzZXIvTWVkaWFRdWVyeUJsb2NrV2F0Y2hl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk0OTNCNkI3MUQ3NEIzOTUwMDg4
RTc4MCAvKiBNZWRpYVF1ZXJ5QmxvY2tXYXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE1lZGlhUXVlcnlCbG9ja1dhdGNoZXIuaDsgcGF0aCA9IHBhcnNlci9NZWRpYVF1
ZXJ5QmxvY2tXYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk0OTNCNkI4
MUQ3NEIzOTUwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5UGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1lZGlhUXVlcnlQYXJzZXIuY3BwOyBwYXRoID0gcGFyc2Vy
L01lZGlhUXVlcnlQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE3
ODQsNyArMTE4MDgsNyBAQAogCQlBODBFNkUwRDBBMTk5MTFDMDA3RkI4QzUgLyogQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNzM0ODBBMTk5
Qzc3MDA3RkI4QzUgLyogQ1NTU2VsZWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENTU1NlbGVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTgwRTczNEIwQTE5OUM3NzAwN0ZCOEM1IC8qIENTU1NlbGVjdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NTZWxlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBODBFNzk5NjBBMTlCRDIxMDA3RkI4QzUgLyogUmVjdC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJlY3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
ODBFNzk5NjBBMTlCRDIxMDA3RkI4QzUgLyogRGVwcmVjYXRlZENTU09NUmVjdC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IERlcHJlY2F0ZWRDU1NPTVJlY3QuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBODBFNzlGQzBBMTlDMzA3MDA3RkI4QzUgLyogSFRNTE1ldGFFbGVt
ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1ldGFFbGVtZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTdBMTUwQTE5QzNENjAwN0ZCOEM1IC8qIEpT
SFRNTE1ldGFFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0hUTUxNZXRhRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
MEU3QTE2MEExOUMzRDYwMDdGQjhDNSAvKiBKU0hUTUxNZXRhRWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MTWV0YUVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMDEyLDEzICsxMjAzNiwxMSBAQAogCQlBOENGRjdBMTBBMTU2
OTc4MDAwQTQyMzQgLyogSFRNTEFuY2hvckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhUTUxBbmNob3JFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE4RDA1RkE1MEEyM0IzMDEwMDVFNzIwMyAvKiBKU0NTU1J1bGVMaXN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU1J1bGVMaXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThEMDVGQTYwQTIzQjMwMTAwNUU3MjAzIC8qIEpT
Q1NTUnVsZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTUnVs
ZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThEMDVGQTkwQTIzQjMwRjAw
NUU3MjAzIC8qIEpTQ1NTVmFsdWVMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0NTU1ZhbHVlTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE4RDA1RkFBMEEyM0IzMEYwMDVFNzIwMyAvKiBKU0NTU1ZhbHVlTGlzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NWYWx1ZUxpc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQThEMDY0RUYwQTIzQkZFQTAwNUU3MjAzIC8qIEhUTUxGb3JtRWxl
bWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxGb3JtRWxlbWVudC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RDA2NEY5MEEyM0MwQ0MwMDVFNzIwMyAvKiBK
U0hUTUxGb3JtRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNIVE1MRm9ybUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
OEQwNjRGQTBBMjNDMENDMDA1RTcyMDMgLyogSlNIVE1MRm9ybUVsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTEZvcm1FbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4RDA2NTFCMEEyM0MxRkUwMDVFNzIwMyAvKiBDU1NSdWxlTGlz
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU1J1bGVMaXN0LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThEMDY1MUMwQTIzQzFGRTAwNUU3MjAzIC8qIENTU1ZhbHVl
TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU1ZhbHVlTGlzdC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4RDA2NTFDMEEyM0MxRkUwMDVFNzIwMyAvKiBEZXBy
ZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEZXByZWNh
dGVkQ1NTT01WYWx1ZUxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEQw
NjVBRDBBMjQ0NkNEMDA1RTcyMDMgLyogSlNIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MRm9ybUVsZW1lbnRDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEQwNkIzNzBBMjY1RENEMDA1RTcy
MDMgLyogSFRNTE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1M
TmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThEMDZCMzgwQTI2NURDRDAw
NUU3MjAzIC8qIEhUTUxOYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSFRNTE5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMTc3
LDggKzEzMTk5LDYgQEAKIAkJQkM2RDZFMjUwOUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9sbFZpZXcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbFZpZXcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3NERBMzUxMDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNv
bG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJHQkNvbG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzREQTM2MTAxM0YzRjcwMDc5ODdBRCAvKiBSR0JD
b2xvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSR0JDb2xvci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDNzREQTQ2MTAxM0Y0NjgwMDc5ODdB
RCAvKiBKU1JHQkNvbG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTUkdCQ29sb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzc0REE0NzEw
MTNGNDY4MDA3OTg3QUQgLyogSlNSR0JDb2xvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1JHQkNvbG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzZB
QzExMEREN0FENUMwMDQxNUYzNCAvKiBQYXJzZXJVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGFyc2VyVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDNzcyQjM2MEM0RUE5MUUwMDgzMjg1RiAvKiBDU1NIZWxwZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0hlbHBlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzc3MkM0NDBDNEVCMkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNDI2LDggKzEzNDQ2LDYgQEAK
IAkJQkNGQjJFNUQwOTc5RTQ2NDAwQkE3MDNEIC8qIENhY2hlZFJlc291cmNlQ2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJjZUNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0ZCNDVGMzE3RDhFMzkyMDA0NDQ0NDYgLyog
UmVuZGVyQmxvY2tGbG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckJsb2NrRmxvdy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0ZCNDVGNDE3RDhFNDk0MDA0NDQ0NDYgLyogUmVu
ZGVyQmxvY2tGbG93LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bmRlckJsb2NrRmxvdy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDRkUyRjBG
MEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJD
RkUyRjEwMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0ZG
NjQ4RjBFQUQxNUMyMDBDMUQ2RjcgLyogTGVuZ3RoQm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExlbmd0aEJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Q0ZGNjQ5MDBFQUQxNUMyMDBDMUQ2RjcgLyogTGVuZ3RoU2l6ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMZW5ndGhTaXplLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJFMTZDNThFMTdDRkUxNzIwMDg1MkMwNCAvKiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluYmFuZEdlbmVyaWNUZXh0
VHJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjAzMDYsOCArMjAzMjQs
NiBAQAogCQkJCUJDQzA2NTg0MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuaCAqLywK
IAkJCQlCQ0MwNjU4NTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5jcHAgKi8s
CiAJCQkJQkNDMDY1ODYwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuaCAqLywK
LQkJCQk5MzA3MDVENzA5RTBDOUI3MDBCMTdGRTQgLyogSlNDb3VudGVyLmNwcCAqLywKLQkJCQk5
MzA3MDVEOTA5RTBDOUJGMDBCMTdGRTQgLyogSlNDb3VudGVyLmggKi8sCiAJCQkJQkM0NkMxRjIw
QzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTRm9udEZhY2VSdWxlLmNwcCAqLywKIAkJCQlCQzQ2QzFG
MzBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NGb250RmFjZVJ1bGUuaCAqLywKIAkJCQlCQzQ2QzFG
NDBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NJbXBvcnRSdWxlLmNwcCAqLywKQEAgLTIwMzIyLDgg
KzIwMzM4LDYgQEAKIAkJCQk5NEU4Mzk1NDFERkIyQkE2MDA3QkM2QTcgLyogSlNDU1NOYW1lc3Bh
Y2VSdWxlLmggKi8sCiAJCQkJQkM0NkMxRjgwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTUGFnZVJ1
bGUuY3BwICovLAogCQkJCUJDNDZDMUY5MEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU1BhZ2VSdWxl
LmggKi8sCi0JCQkJOTMwNzA1RTgwOUUwQzlGMDAwQjE3RkU0IC8qIEpTQ1NTUHJpbWl0aXZlVmFs
dWUuY3BwICovLAotCQkJCTkzMDcwNUVBMDlFMEM5RjYwMEIxN0ZFNCAvKiBKU0NTU1ByaW1pdGl2
ZVZhbHVlLmggKi8sCiAJCQkJMTRDRjdCMzEwOUY2RUNENzAwRUIzNjY1IC8qIEpTQ1NTUnVsZS5j
cHAgKi8sCiAJCQkJMTRDRjdCMzIwOUY2RUNENzAwRUIzNjY1IC8qIEpTQ1NTUnVsZS5oICovLAog
CQkJCUE4RDA1RkE1MEEyM0IzMDEwMDVFNzIwMyAvKiBKU0NTU1J1bGVMaXN0LmNwcCAqLywKQEAg
LTIwMzM2LDEwICsyMDM1MCwxOCBAQAogCQkJCUJDQzVCREZGMEMwRTkzMTEwMDExQzJEQiAvKiBK
U0NTU1N0eWxlU2hlZXQuaCAqLywKIAkJCQlGRDY3NzczNjE5NUNBQjdEMDA3MkUwRDMgLyogSlND
U1NTdXBwb3J0c1J1bGUuY3BwICovLAogCQkJCUZDODQ4MDJFMTY3QUI0NDQwMDhDRDEwMCAvKiBK
U0NTU1N1cHBvcnRzUnVsZS5oICovLAotCQkJCTE0Q0Y3OEEzMDlGNThDQkYwMEVCMzY2NSAvKiBK
U0NTU1ZhbHVlLmNwcCAqLywKLQkJCQkxNENGNzhBNTA5RjU4Q0Q4MDBFQjM2NjUgLyogSlNDU1NW
YWx1ZS5oICovLAotCQkJCUE4RDA1RkE5MEEyM0IzMEYwMDVFNzIwMyAvKiBKU0NTU1ZhbHVlTGlz
dC5jcHAgKi8sCi0JCQkJQThEMDVGQUEwQTIzQjMwRjAwNUU3MjAzIC8qIEpTQ1NTVmFsdWVMaXN0
LmggKi8sCisJCQkJOTQ3OTQ5MTgxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09N
Q291bnRlci5jcHAgKi8sCisJCQkJOTQ3OTQ5MTkxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVj
YXRlZENTU09NQ291bnRlci5oICovLAorCQkJCTk0Nzk0OTFBMUUwMkY2REUwMDAxOEQ4NSAvKiBK
U0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcCAqLywKKwkJCQk5NDc5NDkxQjFFMDJG
NkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oICovLAorCQkJ
CTk0Nzk0OTFDMUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJlY3QuY3BwICov
LAorCQkJCTk0Nzk0OTFEMUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJlY3Qu
aCAqLywKKwkJCQk5NDc5NDkxRTFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01S
R0JDb2xvci5jcHAgKi8sCisJCQkJOTQ3OTQ5MUYxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVj
YXRlZENTU09NUkdCQ29sb3IuaCAqLywKKwkJCQk5NDc5NDkyMDFFMDJGNkRFMDAwMThEODUgLyog
SlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAgKi8sCisJCQkJOTQ3OTQ5MjExRTAyRjZERTAwMDE4
RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWUuaCAqLywKKwkJCQk5NDc5NDkyQjFFMDMzQjI4
MDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwICovLAorCQkJCTk0Nzk0
OTJDMUUwMzNCMjgwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oICovLAog
CQkJCUZENjc3NzM3MTk1Q0FCN0QwMDcyRTBEMyAvKiBKU0RPTUNTU05hbWVzcGFjZS5jcHAgKi8s
CiAJCQkJRkM5RTBFNEIxNjQxOUMxRTAwMzkyQkUzIC8qIEpTRE9NQ1NTTmFtZXNwYWNlLmggKi8s
CiAJCQkJQkMzQzM5QjQwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVkaWFMaXN0LmNwcCAqLywKQEAg
LTIwMzQ4LDEwICsyMDM3MCw2IEBACiAJCQkJRDNBOTRBNDMxMjJEQzQwRjAwQTM3QkJDIC8qIEpT
TWVkaWFRdWVyeUxpc3QuaCAqLywKIAkJCQk3QzUzNDNGQTE3Qjc0QjYzMDA0MjMyRjAgLyogSlNN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCAqLywKIAkJCQk3QzUzNDNGQjE3Qjc0QjYzMDA0MjMy
RjAgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggKi8sCi0JCQkJQkNGRTJGMEYwQzFCNTgz
NzAwMjAyMzVGIC8qIEpTUmVjdC5jcHAgKi8sCi0JCQkJQkNGRTJGMTAwQzFCNTgzNzAwMjAyMzVG
IC8qIEpTUmVjdC5oICovLAotCQkJCUJDNzREQTQ2MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNv
bG9yLmNwcCAqLywKLQkJCQlCQzc0REE0NzEwMTNGNDY4MDA3OTg3QUQgLyogSlNSR0JDb2xvci5o
ICovLAogCQkJCTBGRjUwMjY3MTAyQkE5NDMwMDY2RjM5QSAvKiBKU1N0eWxlTWVkaWEuY3BwICov
LAogCQkJCTBGRjUwMjY4MTAyQkE5NDMwMDY2RjM5QSAvKiBKU1N0eWxlTWVkaWEuaCAqLywKIAkJ
CQlCQ0UwMTM5ODBDMEJFRjE4MDA0Mzg2MEEgLyogSlNTdHlsZVNoZWV0LmNwcCAqLywKQEAgLTIz
MjY1LDcgKzIzMjgzLDYgQEAKIAkJCQlGQkQ2QUY4NDE1RUYyMUQ0MDA4QjcxMTAgLyogQmFzaWNT
aGFwZUZ1bmN0aW9ucy5jcHAgKi8sCiAJCQkJRkJENkFGODUxNUVGMjFENDAwOEI3MTEwIC8qIEJh
c2ljU2hhcGVGdW5jdGlvbnMuaCAqLywKIAkJCQlBODBFNkNEQTBBMTk4OUNBMDA3RkI4QzUgLyog
Q291bnRlci5oICovLAotCQkJCTkzMDcwNUM3MDlFMEM5NUYwMEIxN0ZFNCAvKiBDb3VudGVyLmlk
bCAqLywKIAkJCQkzMUJDNzQyQjFBQUZGNDVDMDA2QjQzNDAgLyogQ1NTQW5pbWF0aW9uVHJpZ2dl
clNjcm9sbFZhbHVlLmNwcCAqLywKIAkJCQkzMUJDNzQyQzFBQUZGNDVDMDA2QjQzNDAgLyogQ1NT
QW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmggKi8sCiAJCQkJQ0FFOUY5MEQxNDY0NDFGMDAw
QzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwICovLApAQCAtMjMzNzAsNyArMjMzODcs
NiBAQAogCQkJCTk0MTgyNzhEMUQ4Q0FFOTUwMDQ5Mjc2NCAvKiBDU1NQZW5kaW5nU3Vic3RpdHV0
aW9uVmFsdWUuaCAqLywKIAkJCQlBODBFNkNEQjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJpbWl0
aXZlVmFsdWUuY3BwICovLAogCQkJCUE4MEU2Q0JDMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcmlt
aXRpdmVWYWx1ZS5oICovLAotCQkJCTkzMDcwNTkwMDlFMEM3NTgwMEIxN0ZFNCAvKiBDU1NQcmlt
aXRpdmVWYWx1ZS5pZGwgKi8sCiAJCQkJRTFFRDhBQzIwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCAqLywKIAkJCQlBODBFNkNDRDBBMTk4OUNBMDA3RkI4QzUg
LyogQ1NTUHJvcGVydHkuY3BwICovLAogCQkJCUE4MEU2Q0Q1MEExOTg5Q0EwMDdGQjhDNSAvKiBD
U1NQcm9wZXJ0eS5oICovLApAQCAtMjM0MjEsMTEgKzIzNDM3LDkgQEAKIAkJCQlCQzdEOEZFRTFC
RDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5oICovLAogCQkJCUFEMDNBQUY4MTQ2ODQ1
MzkwMEEzOUI1QiAvKiBDU1NWYWx1ZS5jcHAgKi8sCiAJCQkJQTgwRTZDQzQwQTE5ODlDQTAwN0ZC
OEM1IC8qIENTU1ZhbHVlLmggKi8sCi0JCQkJMTRDRjc4NzEwOUY1ODdDQTAwRUIzNjY1IC8qIENT
U1ZhbHVlLmlkbCAqLywKIAkJCQlCQ0VBNDc4QzA5N0NBQUM4MDA5NEM5RTQgLyogQ1NTVmFsdWVL
ZXl3b3Jkcy5pbiAqLywKIAkJCQlBODBFNkNCQTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWVM
aXN0LmNwcCAqLywKIAkJCQlBODBFNkNCRjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWVMaXN0
LmggKi8sCi0JCQkJQThEMDY1MUMwQTIzQzFGRTAwNUU3MjAzIC8qIENTU1ZhbHVlTGlzdC5pZGwg
Ki8sCiAJCQkJRTQ5QkRBMEExMzFGRDNFNTAwM0M1NkYwIC8qIENTU1ZhbHVlUG9vbC5jcHAgKi8s
CiAJCQkJRTQ5QkQ5RjkxMzFGRDJFRDAwM0M1NkYwIC8qIENTU1ZhbHVlUG9vbC5oICovLAogCQkJ
CTk0NDRDQkRFMUQ4ODYxNTgwMDczQTA3NCAvKiBDU1NWYXJpYWJsZURhdGEuY3BwICovLApAQCAt
MjM0MzMsNiArMjM0NDcsMjEgQEAKIAkJCQk5NDQ0Q0JEQzFEODg2MTU4MDA3M0EwNzQgLyogQ1NT
VmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5jcHAgKi8sCiAJCQkJOTQ0NENCREIxRDg4NjE1ODAwNzNB
MDc0IC8qIENTU1ZhcmlhYmxlUmVmZXJlbmNlVmFsdWUuaCAqLywKIAkJCQlBODBFNkNFMTBBMTk4
OUNBMDA3RkI4QzUgLyogRGFzaGJvYXJkUmVnaW9uLmggKi8sCisJCQkJOTQ3OTQ5MkExRTAzMkVE
QjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaCAqLywKKwkJCQk5MzA3MDVDNzA5
RTBDOTVGMDBCMTdGRTQgLyogRGVwcmVjYXRlZENTU09NQ291bnRlci5pZGwgKi8sCisJCQkJOTQ3
OTQ5M0IxRTA0NUNFMTAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNw
cCAqLywKKwkJCQk5NDc5NDkyNjFFMDMxMzIwMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWUuaCAqLywKKwkJCQk5MzA3MDU5MDA5RTBDNzU4MDBCMTdGRTQgLyogRGVwcmVj
YXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaWRsICovLAorCQkJCTk0Nzk0OTI4MUUwMzJBRTkwMDAx
OEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01SZWN0LmggKi8sCisJCQkJQTgwRTc5OTYwQTE5QkQyMTAw
N0ZCOEM1IC8qIERlcHJlY2F0ZWRDU1NPTVJlY3QuaWRsICovLAorCQkJCTk0Nzk0OTI5MUUwMzJE
NTgwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oICovLAorCQkJCTg1OEMzOEVG
MEFBOEZERDEwMEIxODdBNCAvKiBEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5pZGwgKi8sCisJCQkJ
OTQ3OTQ5MjIxRTAyRjkwQjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcCAqLywK
KwkJCQk5NDc5NDkyMzFFMDJGOTBCMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWUuaCAq
LywKKwkJCQkxNENGNzg3MTA5RjU4N0NBMDBFQjM2NjUgLyogRGVwcmVjYXRlZENTU09NVmFsdWUu
aWRsICovLAorCQkJCTk0Nzk0OTJEMUUwNDU3OEQwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01W
YWx1ZUxpc3QuY3BwICovLAorCQkJCTk0Nzk0OTI3MUUwMzEzMjAwMDAxOEQ4NSAvKiBEZXByZWNh
dGVkQ1NTT01WYWx1ZUxpc3QuaCAqLywKKwkJCQlBOEQwNjUxQzBBMjNDMUZFMDA1RTcyMDMgLyog
RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmlkbCAqLywKIAkJCQk0QTRGNDhBNzE2QjBERkMwMDBF
REJCMjkgLyogRG9jdW1lbnRSdWxlU2V0cy5jcHAgKi8sCiAJCQkJNEE0RjQ4QTgxNkIwREZDMDAw
RURCQjI5IC8qIERvY3VtZW50UnVsZVNldHMuaCAqLywKIAkJCQlGRDY3NzczNTE5NUNBQjIwMDA3
MkUwRDMgLyogRE9NQ1NTTmFtZXNwYWNlLmNwcCAqLywKQEAgLTIzNDg4LDEwICsyMzUxNyw4IEBA
CiAJCQkJRTRCQkVEMEQxNEY0MDI1RDAwM0YwQjk4IC8qIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNs
YXJhdGlvbi5oICovLAogCQkJCTkzQ0E0QzlGMDlERjkzRkEwMERGODY3NyAvKiBxdWlya3MuY3Nz
ICovLAogCQkJCUJDNDM2OEU3MEMyMjZFMzIwMDVFRkI1RiAvKiBSZWN0LmggKi8sCi0JCQkJQTgw
RTc5OTYwQTE5QkQyMTAwN0ZCOEM1IC8qIFJlY3QuaWRsICovLAogCQkJCUJDNzREQTM2MTAxM0Yz
RjcwMDc5ODdBRCAvKiBSR0JDb2xvci5jcHAgKi8sCiAJCQkJQkM3NERBMzUxMDEzRjNGNzAwNzk4
N0FEIC8qIFJHQkNvbG9yLmggKi8sCi0JCQkJODU4QzM4RUYwQUE4RkREMTAwQjE4N0E0IC8qIFJH
QkNvbG9yLmlkbCAqLywKIAkJCQlBNzlCQUQ5RDE2MUU3RjNGMDBDMkU2NTIgLyogUnVsZUZlYXR1
cmUuY3BwICovLAogCQkJCUE3OUJBRDlFMTYxRTdGM0YwMEMyRTY1MiAvKiBSdWxlRmVhdHVyZS5o
ICovLAogCQkJCUE3OUJBRDlGMTYxRTdGM0YwMEMyRTY1MiAvKiBSdWxlU2V0LmNwcCAqLywKQEAg
LTI0OTg0LDYgKzI1MDExLDcgQEAKIAkJCQkxNEQ4MjQwODBBRjkzQUVCMDAwNEYwNTcgLyogQ2hy
b21lQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEE4MTRENDFDNkRFQzQwMDBCRjg1QUMg
LyogQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNDhCRkFD
MUI4NTcyOTgwMDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTk0Nzk0OTQwMUUwNDYzQ0UwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDMDY1N0UwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVu
dFJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQzA2NTgxMEYzQ0UxQjcwMENEMkQ4NyAvKiBD
bGllbnRSZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzQTkxRTYxQzk2M0I4ODAwRDFB
N0UzIC8qIENsaXBib2FyZEFjY2Vzc1BvbGljeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTIwNiw2
ICsyNTIzNCw3IEBACiAJCQkJQTgwRTZEMEMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1N0eWxlUnVs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTgwMDcwQTE5NTE2RTAwQThFRjVGIC8qIENTU1N0
eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0REU1QzkyMUQ4MzAxMUQwMDE2NEYyQSAv
KiBDU1NTdXBwb3J0c1BhcnNlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTQ3OTQ5M0QxRTA0NjNC
NjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkM1NEQwNTcxNkE3NjczMTAwNTc1RTREIC8qIENTU1N1cHBvcnRzUnVsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM4MEM5ODgwQ0QyOTRFRTAwQTBCN0IzIC8qIENTU1RpbWluZ0Z1bmN0aW9u
VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0NkQzNzNBMUQ2Q0RGQzAwMDc3MDg0RiAvKiBD
U1NUb2tlbml6ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjU4ODQsNiArMjU5MTMsNyBAQAogCQkJ
CUQwN0RFQUJBMEEzNjU1NEEwMENBMzBGOCAvKiBJbnNlcnRMaXN0Q29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTMzMDlERUUwOTlFNjQ5MjAwNTZFNTgxIC8qIEluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURGMDA5OUU2NDkyMDA1NkU1ODEgLyog
SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTQ3
OTQ5MzExRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NQ291bnRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTMzMDlERjIwOTlFNjQ5MjAwNTZFNTgxIC8qIEluc2VydFRleHRDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCODg1RThENTExRTA2REQyMDA5RkZCRjQgLyogSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzgxQjk1
QzBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVjdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAg
LTI1OTgxLDcgKzI2MDExLDYgQEAKIAkJCQk3OUFDOTIxOTEwOTk0NUM4MDAyMTI2NkUgLyogSlND
b21wb3NpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVCRTEyQjAzRjBCMDAz
QTU4M0EgLyogSlNDb252b2x2ZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTZGRDQ4RTBG
Njc2RTkzMDAwOTI4NzMgLyogSlNDb29yZGluYXRlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTMw
NzA1REEwOUUwQzlCRjAwQjE3RkU0IC8qIEpTQ291bnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MTREQ0YzQjMxQjZCRTIwODAwNjJENEMyIC8qIEpTQ291bnRRdWV1aW5nU3RyYXRlZ3kuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3NUNBMkEyMTMwMzY3OUQwMEU5OUFEOSAvKiBKU0NyeXB0by5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTE1N0E4RjExODE4NTQyNTAwOUY4MjFEIC8qIEpTQ3J5cHRvQWxn
b3JpdGhtQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTk5OCw3ICsyNjAyNyw2IEBACiAJ
CQkJMzE2RkUwNzQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM0NkMyMDEwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTTWVkaWFSdWxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQ2QzIwMzBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NQ
YWdlUnVsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTMwNzA1RUIwOUUwQzlGNjAwQjE3RkU0IC8q
IEpTQ1NTUHJpbWl0aXZlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0Q0Y3QjM0MDlGNkVD
RDcwMEVCMzY2NSAvKiBKU0NTU1J1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUFENzI2RkVGMTZE
QTExRjUwMDNBNEU2RCAvKiBKU0NTU1J1bGVDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
RDA1RkE4MEEyM0IzMDEwMDVFNzIwMyAvKiBKU0NTU1J1bGVMaXN0LmggaW4gSGVhZGVycyAqLywK
QEAgLTI2MDA3LDggKzI2MDM1LDYgQEAKIAkJCQlCQzQ2QzIwNzBDMEREQ0ExMDAyMENGQzMgLyog
SlNDU1NTdHlsZVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQzVCRTAxMEMwRTkzMTEwMDEx
QzJEQiAvKiBKU0NTU1N0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZDNTREMDU4MTZB
NzY3NkUwMDU3NUU0RCAvKiBKU0NTU1N1cHBvcnRzUnVsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MTRDRjc4QTYwOUY1OENEODAwRUIzNjY1IC8qIEpTQ1NTVmFsdWUuaCBpbiBIZWFkZXJzICovLAot
CQkJCUE4RDA1RkFDMEEyM0IzMEYwMDVFNzIwMyAvKiBKU0NTU1ZhbHVlTGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOUJENEU5MTcxQzQ2Mjg3MjAwNTA2NUJDIC8qIEpTQ3VzdG9tRWxlbWVudElu
dGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUJFNjcxMEMxRDVBRUIyNTAwMzQ1NTE0IC8q
IEpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDc3OEI4MDEx
NUE1ODFBMDBCNUQzNzIgLyogSlNDdXN0b21FdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjE2
MCw2ICsyNjE4Niw3IEBACiAJCQkJNDQ4QTI5QkYwQTQ2RDlDQjAwMzA3NTlGIC8qIEpTSFRNTE9w
dGlvbnNDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QUQwMTczRDEyN0U4Mjg2MDAx
NTAzNUYgLyogSlNIVE1MT3V0cHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEMDAx
OEQxREQ1NDEzMjAwRUQxOUQ5IC8qIEpTQ3J5cHRvS2V5VXNhZ2UuaCBpbiBIZWFkZXJzICovLAor
CQkJCTk0Nzk0OTM0MUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJlY3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBRTJBQkE3MEExQ0U5MDUwMEI0MkIyNSAvKiBKU0hUTUxQYXJh
Z3JhcGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUUyQUJBOTBBMUNFOTA1MDBCNDJC
MjUgLyogSlNIVE1MUGFyYW1FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzNEODVCQzFD
MEUyRTdBMDBEM0I2MTAgLyogSlNIVE1MUGljdHVyZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApA
QCAtMjYyOTUsMTAgKzI2MzIyLDkgQEAKIAkJCQk3QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyog
SlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMjlE
Rjg2MUJCNUI4MEMwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9y
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0U0Qzk2REQxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVh
ZGFibGVTdHJlYW1Tb3VyY2UuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDRkUyRjEyMEMxQjU4Mzgw
MDIwMjM1RiAvKiBKU1JlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5OThBRUNFMTNGOUQ2Qzkw
MDkwQjFBQSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKLQkJCQlCQzc0REE0OTEwMTNGNDY4MDA3OTg3QUQgLyogSlNSR0JDb2xvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTdFMjMzNzExRENENDY4RjAwRjI4RDAxIC8qIEpTUnNhSGFzaGVkSW1wb3J0
UGFyYW1zLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NDc5NDkzMjFFMDQ1OUZBMDAwMThEODUgLyog
SlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc2
OEU0MzQxREI3NTI0NTAwRDBBNEY3IC8qIEpTUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1N0ZFREQ0MTFEQjZENzNBMDBFQjk2RjUgLyogSlNSc2FLZXlHZW5QYXJh
bXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RTIzMzVEMURDN0Q2MDgwMEYyOEQwMSAvKiBKU1Jz
YU90aGVyUHJpbWVzSW5mby5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjczOCw2ICsyNjc2NCw3IEBA
CiAJCQkJQzk2RjVFQzgxQjU4NzIyNjAwOTFFQTlEIC8qIE1lZGlhU2Vzc2lvbkludGVycnVwdGlv
blByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDOTZGNUVDNTFCNTg3MjI2MDA5MUVBOUQg
LyogTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uUHJvdmlkZXJNYWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUM5MEY2NTU2MUIyMjUzQkUwMDIxNjNBMSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5NDc5NDkzRjFFMDQ2M0M2MDAwMThEODUgLyogRGVwcmVjYXRlZENT
U09NUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8q
IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5RDg1MUYwMUIz
OURDNzgwMDg1MDYyRSAvKiBNZWRpYVNlc3Npb25NZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0QzQTQ5NUYxN0E5RDAxQjAwMjc0RTQyIC8qIE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAq
LywKQEAgLTI3MTUxLDYgKzI3MTc4LDcgQEAKIAkJCQkzQzI0NEZFQUEzNzVBQzYzM0Y4OEJFNkYg
LyogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEJFMDMwQTIw
RjMxMTJGQjAwM0MxQTQ2IC8qIFJlbmRlckxpbmVCb3hMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0VBNDg2NDA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyTGluZUJyZWFrLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5NDc5NDkzQTFFMDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01W
YWx1ZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUFCQjU0MTlGMEFDRERGRTQwMDI4MjBFQiAv
KiBSZW5kZXJMaXN0Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0E1MjBBMTkxQTUyMDBB
OEVGNUYgLyogUmVuZGVyTGlzdEl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3QTUwMEEx
OTFBNTIwMEE4RUY1RiAvKiBSZW5kZXJMaXN0TWFya2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTI3
MTYxLDYgKzI3MTg5LDcgQEAKIAkJCQk0MzkwNDZEQzEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVy
TWF0aE1MRnJhY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQzOTA0NkRFMTJEQTI1RTgwMEFG
ODBBMiAvKiBSZW5kZXJNYXRoTUxNYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzkwNDZFMDEy
REEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MT3BlcmF0b3IuaCBpbiBIZWFkZXJzICovLAor
CQkJCTk0Nzk0OTNFMUUwNDYzQkUwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5MDQ2RTIxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1h
dGhNTFJvb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzOTA0NkU0MTJEQTI1RTgwMEFGODBBMiAv
KiBSZW5kZXJNYXRoTUxSb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzOTA0NkU4MTJEQTI1RTgw
MEFGODBBMiAvKiBSZW5kZXJNYXRoTUxTY3JpcHRzLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NTI4
LDYgKzI3NTU3LDcgQEAKIAkJCQk5M0YxOTk2MzA4MjQ1RTU5MDAxRTlBQkMgLyogU1NMS2V5R2Vu
ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNkI5OTk5MTE4MDNCM0M5MDBEMDExMjEgLyog
U3RhY2tBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0ZBNjJEMEQxRjBFRkYwMERC
MjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTQ3OTQ5MjUxRTAz
MDhBRjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNDMzRTkwMzFEQkJEQkEyMDBFRjBEMTQgLyogU3RhdGljUGFzdGVib2FyZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRjQ0RUJCRDkxREI1RDIxNDAwMjc3MzM0IC8qIFN0YXRpY1JhbmdlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNUFGQjM1MDExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI3NjQxLDYgKzI3NjcxLDcgQEAKIAkJCQkwODVBMTU5MzEyODlB
OEREMDAyNzEwRTMgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MzlEMzM0MzEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0
ZWRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzlEMzM0NDEzQTY5MTFDMDBDMjBGNEYgLyog
U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTk0Nzk0OTM4MUUw
NDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMjIyNzk5MDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzMkI4NDM0MTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxl
bWVudEJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OTkzMEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdBbmltYXRlTW90aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzcxOCw2ICsy
Nzc0OSw3IEBACiAJCQkJMDg1NEIwMUYxMjU1RTRFNjAwQjlDREQwIC8qIFNWR0lubGluZUZsb3dC
b3guaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NTRCMDIxMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdJ
bmxpbmVUZXh0Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0EzMDBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHTGFuZ1NwYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NDc5NDkzNjFFMDQ1OUZB
MDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzEzNDQ5NkUxNDY5NDFCMzAwNzIwMzEyIC8qIFNWR0xlbmd0aENvbnRleHQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QTM2MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMZW5ndGhMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0EzOTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI3OTY2LDYgKzI3OTk4LDcgQEAK
IAkJCQkyRDIzMkMwMDFBMzI2RjAyMDA2QkYyREIgLyogVFVDYWxsU1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDMzc1RDdGRTE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFNDZBMkIxQzE3Q0E2NUI5MDAwREJDRDggLyogVHlwZWRFbGVtZW50RGVzY2Vu
ZGFudEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NDc5NDk0MTFFMDQ2M0Q0MDAwMThE
ODUgLyogRGVwcmVjYXRlZENTU09NQ291bnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlF
MUEwOTlFNjQ5MjAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg1MDMxQjRFMEE0NEVGQzcwMEY5OTJFMCAvKiBVSUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4M0ZFN0NBNzFEQTlGMUE3MDAzNzIzN0MgLyogVUlFdmVudEluaXQuaCBpbiBIZWFkZXJzICov
LApAQCAtMjkyMTYsNiArMjkyNDksNyBAQAogCQkJCTdDMzlDMzcxMUREQkI4QUUwMEZFRkIyOSAv
KiBTVkdQYXRoU2VnTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NDczMEQ3RTEyNDhGMEIz
MDBEM0E5QzkgLyogRkVGbG9vZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NDgwMTk1NDEwOEJB
RkIzMDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTQ3
OTQ5MzAxRTA0NTlFRTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODQ3MzBEODAxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTGln
aHRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODQ3MzBEODIxMjQ4RjBCMzAwRDNBOUM5IC8q
IEZFTWVyZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODQ3MzBEODQxMjQ4RjBCMzAwRDNBOUM5
IC8qIEZFTW9ycGhvbG9neS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5NDgxLDYgKzI5NTE1LDcg
QEAKIAkJCQk5NzdCMzg3NzEyMjg4M0U5MDBCODFGRjggLyogSFRNTFRva2VuaXplci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzA3NTY4QjE0MjI2MkQ2MDA0MTQxNjEgLyogSFRNTFRyYWNrRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdCMzcyNTEyMjg3MjE3MDBCODFGRjggLyog
SFRNTFRyZWVCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk0Nzk0OTI0MUUwMzA4QTQw
MDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
OEVBNzlGMzBBMTkxNkRGMDBBOEVGNUYgLyogSFRNTFVMaXN0RWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlFNDQ2MTNBQTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzlBQUZFQzFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdC
UkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTY2Niw2ICsyOTcwMSw3IEBACiAJCQkJ
RkRBMTVFQjMxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9QYXJhbS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGREExNUVCNTEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb1Byb2Nlc3NpbmdFdmVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCRThFRjA0MjE3MUM4RkY5MDA5QjQ4QzMgLyogSlNB
dWRpb1RyYWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk0Nzk0OTM3MUUwNDU5RkEwMDAxOEQ4
NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJFNkRG
NzExMTcxQ0EyREEwMERENTJCOCAvKiBKU0F1ZGlvVHJhY2tDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkU4RUYwNDQxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkU2REY3MTMxNzFDQTJEQTAwREQ1MkI4IC8qIEpTQXVkaW9U
cmFja0xpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTY5Niw3ICsyOTczMiw2IEBA
CiAJCQkJNzlBQzkyMTgxMDk5NDVDODAwMjEyNjZFIC8qIEpTQ29tcG9zaXRpb25FdmVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGREExNUVCRDEyQjAzRjBCMDAzQTU4M0EgLyogSlNDb252b2x2
ZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFNkZENDhEMEY2NzZFOTMwMDA5Mjg3MyAv
KiBKU0Nvb3JkaW5hdGVzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTkzMDcwNUQ4MDlFMEM5Qjcw
MEIxN0ZFNCAvKiBKU0NvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTREQ0YzQjIxQjZC
RTIwODAwNjJENEMyIC8qIEpTQ291bnRRdWV1aW5nU3RyYXRlZ3kuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTc1Q0EyQTExMzAzNjc5RDAwRTk5QUQ5IC8qIEpTQ3J5cHRvLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUUxNTdBOEYwMTgxODU0MjUwMDlGODIxRCAvKiBKU0NyeXB0b0FsZ29yaXRobUJ1
aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTcxNSw3ICsyOTc1MCw2IEBACiAJCQkJMzE2
RkUwNzMwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTQ1NTS2V5ZnJhbWVzUnVsZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzQ2QzIwMDBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NNZWRpYVJ1bGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0NkMyMDIwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTUGFn
ZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTMwNzA1RTkwOUUwQzlGMDAwQjE3RkU0IC8q
IEpTQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRDRjdCMzMwOUY2
RUNENzAwRUIzNjY1IC8qIEpTQ1NTUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQ2QzFF
RTBDMEREQkRGMDAyMENGQzMgLyogSlNDU1NSdWxlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4RDA1RkE3MEEyM0IzMDEwMDVFNzIwMyAvKiBKU0NTU1J1bGVMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMjk3MjUsOSArMjk3NTksNyBAQAogCQkJCUJDNDZDMjA2MEMwRERDQTEwMDIw
Q0ZDMyAvKiBKU0NTU1N0eWxlUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0M1QkUwMDBD
MEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZENjc3NzNBMTk1Q0IxNEEwMDcyRTBEMyAvKiBKU0NTU1N1cHBvcnRzUnVsZS5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQkxNENGNzhBNDA5RjU4Q0JGMDBFQjM2NjUgLyogSlNDU1NWYWx1ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzIwRkI3RjBDMEU4RTZDMDBEMTQ0N0YgLyogSlNDU1NWYWx1
ZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBOEQwNUZBQjBBMjNCMzBGMDA1RTcyMDMg
LyogSlNDU1NWYWx1ZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUJENEU5MTYxQzQ2Mjg3
MjAwNTA2NUJDIC8qIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5QkU2NzEwQjFENUFFQjIxMDAzNDU1MTQgLyogSlNDdXN0b21FbGVtZW50UmVnaXN0cnku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUJDNUY5RTAxRDVBQUY2QjAwMkI3NDlEIC8qIEpTQ3Vz
dG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk3NjQsNiAr
Mjk3OTYsNyBAQAogCQkJCUUxQzM2Q0JEMEVCMDgwNjIwMDc0MTBCQyAvKiBKU0RPTUdsb2JhbE9i
amVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzJCREQzRDE3QzdGOThDMDAzOEZGMTUgLyog
SlNET01HbG9iYWxPYmplY3RUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMUY3MDlE
MUNDNjAwMDBCRTMyNSAvKiBKU0RPTUltcGxlbWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTk0Nzk0OTNDMUUwNDVDRjMwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVW
YWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTM4Rjg1NzFEMjUzRjA4MDAxQ0I2MUUgLyog
SlNET01JdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUQyNDgwNjBENzU3RTdEMDBG
REY5NTkgLyogSlNET01NaW1lVHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUQyNDgwODBE
NzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjk4MDQsNiArMjk4MzcsNyBAQAogCQkJCTE0RTgzNzg0MDlGODVEMUMwMEI4NUFFNCAvKiBK
U0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUZBRjRFMEMzMTdFNjkwMEZBODFGNiAv
KiBKU0V2ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzNkQwMzJGMURBOEExM0Ew
MEZGRDk2QiAvKiBKU0V2ZW50SW5pdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5NDc5NDkzNTFF
MDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5M0I3MEQ2OTA5RUIwQzdDMDA5RDg0NjggLyogSlNFdmVudExpc3RlbmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUUwRkVGMzcyQjQ3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50
U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM2QTcwMzMyNUM5RDBCNkNEQ0JDNEQ3NyAv
KiBKU0V2ZW50VGFyZ2V0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzAwNzIsOSArMzAxMDYsNyBA
QAogCQkJCTQxMjlERjg1MUJCNUI4MDcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0
ZUNvbnN0cnVjdG9ycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RTRDOTZEQzFBRDQ0ODM1MDAz
NjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
MThDMzk2MDFDOEYwQUFFMDA1MUM4QTMgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZUN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0ZFMkYxMTBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5OThBRUNEMTNGOUQ2QzkwMDkwQjFBQSAvKiBKU1Jl
cXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDNzRE
QTQ4MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTU3RTIzMzczMURDRDQ2QjYwMEYyOEQwMSAvKiBKU1JzYUhhc2hlZEltcG9ydFBhcmFtcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1NzY4RTQzNjFEQjc1Mjc0MDBEMEE0RjcgLyogSlNSc2FIYXNo
ZWRLZXlHZW5QYXJhbXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTdGRURENDMxREI2RDc2MDAw
RUI5NkY1IC8qIEpTUnNhS2V5R2VuUGFyYW1zLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzAzODIs
NiArMzA0MTQsNyBAQAogCQkJCTFBQ0U1M0Y2MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlh
bGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NjJDNzMwQTA3NEYyNjAwOTg5RjVCIC8q
IEpTWFBhdGhFdmFsdWF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2MERCNDkwRDJBM0Qx
RTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTQ3
OTQ5MkUxRTA0NTdCQTAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQTc2MkM3NTBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV4cHJl
c3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NjJDNzcwQTA3NEYyNjAwOTg5RjVCIC8q
IEpTWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzNkMxNDQzMUNERUFG
RDgwMDczNDkzRiAvKiBKU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTMwNDczLDYgKzMwNTA2LDcgQEAKIAkJCQk0RkE2NUE2QjExMDhBQkVEMDAyNjE1RTAgLyog
TWF0aE1MU3BhY2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzOTE3NkRGMTJEQTI1
RTE3QkFGODBBMiAvKiBNYXRoTUxTdHlsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQTY1NEE2
QjExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MVG9rZW5FbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTk0Nzk0OTM5MUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVl
TGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQTY1NEE2QjExMDhBQkVEMDAyNjI2RjEgLyog
TWF0aE1MVW5kZXJPdmVyRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MzkwNDZFOTEy
REEyNUU4MTJBRjgwQUMgLyogTWF0aE9wZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5
RDVEQzJCMEY0MjNBNzMwMDhGMjBGRCAvKiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTMxMDIxLDYgKzMxMDU1LDcgQEAKIAkJCQkwRkU3MTQwNTE0MjE3
MEI4MDBEQjMzQkEgLyogU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBQTg0RjA0MTQzQkE3QkQwMDUxRDE1MyAvKiBTY3JvbGxDb250cm9sbGVyLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY2MDVBRUMxNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFp
bnRzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk0Nzk0OTJGMUUwNDU5RUIwMDAxOEQ4NSAvKiBK
U0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFGNjJFRTcx
NERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGQzRFNDBFMTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdDb29yZGluYXRvcklP
Uy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBRjYyRUU2MTREQTIyQTcwMDQxNTU2QyAvKiBTY3Jv
bGxpbmdDb29yZGluYXRvck1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMzEzNzgsNiArMzE0MTMs
NyBAQAogCQkJCUUxODA4MTEyMTZGQ0Y0MkYwMEI4MEQwNyAvKiBTeW5jaHJvbm91c0xvYWRlckNs
aWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTgwODExNjE2RkNGOUNCMDBCODBEMDcgLyog
U3luY2hyb25vdXNMb2FkZXJDbGllbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk0NDJBQkNENjE3
RDkyNjJGMDBEMzA3MTUgLyogU3luY2hyb25vdXNMb2FkZXJDbGllbnRDRk5ldC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk5NDc5NDkzMzFFMDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NT
T01SZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2RkFFNENFMTg1MkUzQTUwMDRDOEM0NiAv
KiBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRTQ1MzkwQUUwRUFGRjRCNTAwMzY5NUM4IC8qIFN5c3RlbU1lbW9y
eUlPUy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREEwN0ZCRDE4RTBBMTZBMDA0Njk5RkEgLyog
U3lzdGVtU2xlZXBMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5oCShyZXZpc2lvbiAyMDk4MzgpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01XcmFwcGVyV29ybGQuaAkod29ya2luZyBj
b3B5KQpAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENT
U1ZhbHVlOworY2xhc3MgRGVwcmVjYXRlZENTU09NVmFsdWU7CiBjbGFzcyBTY3JpcHRDb250cm9s
bGVyOwogCiB0eXBlZGVmIEhhc2hNYXA8dm9pZCosIEpTQzo6V2VhazxKU0M6OkpTT2JqZWN0Pj4g
RE9NT2JqZWN0V3JhcHBlck1hcDsKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogCiAgICAgLy8g
RklYTUU6IGNhbiB3ZSBtYWtlIHRoaXMgcHJpdmF0ZT8KICAgICBET01PYmplY3RXcmFwcGVyTWFw
IG1fd3JhcHBlcnM7Ci0gICAgSGFzaE1hcDxDU1NWYWx1ZSosIHZvaWQqPiBtX2Nzc1ZhbHVlUm9v
dHM7CisgICAgSGFzaE1hcDxEZXByZWNhdGVkQ1NTT01WYWx1ZSosIHZvaWQqPiBtX2RlcHJlY2F0
ZWRDU1NPTVZhbHVlUm9vdHM7CiAKICAgICBib29sIGlzTm9ybWFsKCkgY29uc3QgeyByZXR1cm4g
bV9pc05vcm1hbDsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0
eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAJKHJldmlzaW9uIDIwOTgz
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1
c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE3ICsyNiwxNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5oIgogCi0jaW5j
bHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgi
CiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NSdWxlLmgiCiAj
aW5jbHVkZSAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQu
aCIKLSNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkN1c3RvbUVsZW1lbnRSZWFjdGlv
blF1ZXVlLmgiCisjaW5jbHVkZSAiRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCIKICNp
bmNsdWRlICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJKU0NTU1N0eWxlRGVjbGFyYXRpb24uaCIK
LSNpbmNsdWRlICJKU0NTU1ZhbHVlLmgiCisjaW5jbHVkZSAiSlNEZXByZWNhdGVkQ1NTT01WYWx1
ZS5oIgogI2luY2x1ZGUgIkpTTm9kZS5oIgogI2luY2x1ZGUgIkpTU3R5bGVTaGVldEN1c3RvbS5o
IgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKQEAgLTM2NSw3ICszNjQsNyBA
QCBKU1ZhbHVlIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVyCiAgICAgaWYgKCF2YWx1
ZSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCi0gICAgZ2xvYmFsT2JqZWN0KCktPndvcmxk
KCkubV9jc3NWYWx1ZVJvb3RzLmFkZCh2YWx1ZS5nZXQoKSwgcm9vdCgmd3JhcHBlZCgpKSk7IC8v
IEJhbGFuY2VkIGJ5IEpTQ1NTVmFsdWVPd25lcjo6ZmluYWxpemUoKS4KKyAgICBnbG9iYWxPYmpl
Y3QoKS0+d29ybGQoKS5tX2RlcHJlY2F0ZWRDU1NPTVZhbHVlUm9vdHMuYWRkKHZhbHVlLmdldCgp
LCByb290KCZ3cmFwcGVkKCkpKTsgLy8gQmFsYW5jZWQgYnkgSlNEZXByZWNhdGVkQ1NTT01WYWx1
ZU93bmVyOjpmaW5hbGl6ZSgpLgogICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0
KCksICp2YWx1ZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NT
VmFsdWVDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ1NTVmFsdWVDdXN0b20uY3BwCShyZXZpc2lvbiAyMDk4MzgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NTU1ZhbHVlQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQs
NTYgKzI0LDQ5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTQ1NT
VmFsdWUuaCIKIAotI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NT
VmFsdWVMaXN0LmgiCi0jaW5jbHVkZSAiSlNDU1NQcmltaXRpdmVWYWx1ZS5oIgotI2luY2x1ZGUg
IkpTQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFs
dWUuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJK
U0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiSlNEZXByZWNhdGVk
Q1NTT01WYWx1ZS5oIgorI2luY2x1ZGUgIkpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmgiCiAj
aW5jbHVkZSAiSlNOb2RlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotYm9vbCBKU0NTU1ZhbHVlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0LCBTbG90
VmlzaXRvciYgdmlzaXRvcikKK2Jvb2wgSlNEZXByZWNhdGVkQ1NTT01WYWx1ZU93bmVyOjppc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dm9pZCogY29udGV4dCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgSlNDU1NWYWx1ZSog
anNDU1NWYWx1ZSA9IGpzQ2FzdDxKU0NTU1ZhbHVlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkp
OworICAgIEpTRGVwcmVjYXRlZENTU09NVmFsdWUqIGpzQ1NTVmFsdWUgPSBqc0Nhc3Q8SlNEZXBy
ZWNhdGVkQ1NTT01WYWx1ZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICBpZiAoIWpz
Q1NTVmFsdWUtPmhhc0N1c3RvbVByb3BlcnRpZXMoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIERPTVdyYXBwZXJXb3JsZCogd29ybGQgPSBzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQq
Pihjb250ZXh0KTsKLSAgICB2b2lkKiByb290ID0gd29ybGQtPm1fY3NzVmFsdWVSb290cy5nZXQo
JmpzQ1NTVmFsdWUtPndyYXBwZWQoKSk7CisgICAgdm9pZCogcm9vdCA9IHdvcmxkLT5tX2RlcHJl
Y2F0ZWRDU1NPTVZhbHVlUm9vdHMuZ2V0KCZqc0NTU1ZhbHVlLT53cmFwcGVkKCkpOwogICAgIGlm
ICghcm9vdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiB2aXNpdG9yLmNvbnRh
aW5zT3BhcXVlUm9vdChyb290KTsKIH0KIAotdm9pZCBKU0NTU1ZhbHVlT3duZXI6OmZpbmFsaXpl
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQordm9pZCBK
U0RlcHJlY2F0ZWRDU1NPTVZhbHVlT3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQogewotICAgIEpTQ1NTVmFsdWUqIGpzQ1NTVmFs
dWUgPSBqc0Nhc3Q8SlNDU1NWYWx1ZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKKyAgICBK
U0RlcHJlY2F0ZWRDU1NPTVZhbHVlKiBqc0NTU1ZhbHVlID0ganNDYXN0PEpTRGVwcmVjYXRlZENT
U09NVmFsdWUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgRE9NV3JhcHBlcldvcmxk
JiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KTsKLSAgICB3
b3JsZC5tX2Nzc1ZhbHVlUm9vdHMucmVtb3ZlKCZqc0NTU1ZhbHVlLT53cmFwcGVkKCkpOworICAg
IHdvcmxkLm1fZGVwcmVjYXRlZENTU09NVmFsdWVSb290cy5yZW1vdmUoJmpzQ1NTVmFsdWUtPndy
YXBwZWQoKSk7CiAgICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc0NTU1ZhbHVlLT53cmFwcGVk
KCksIGpzQ1NTVmFsdWUpOwogfQogCi1KU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPENTU1ZhbHVlPiYmIHZhbHVl
KQorSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFJlZjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4mJiB2YWx1ZSkKIHsKICAg
ICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0KCkpCi0gICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVy
PENTU1ZhbHVlTGlzdD4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CisgICAgICAgIHJl
dHVybiBjcmVhdGVXcmFwcGVyPERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdD4oZ2xvYmFsT2JqZWN0
LCBXVEZNb3ZlKHZhbHVlKSk7CiAgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCi0g
ICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU1ByaW1pdGl2ZVZhbHVlPihnbG9iYWxPYmpl
Y3QsIFdURk1vdmUodmFsdWUpKTsKLSAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NWYWx1ZT4o
Z2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVXcmFw
cGVyPERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPihnbG9iYWxPYmplY3QsIFdURk1vdmUo
dmFsdWUpKTsKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4o
Z2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CiB9CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3Rh
dGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDU1NWYWx1ZSYgdmFs
dWUpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRGVwcmVjYXRlZENTU09NVmFsdWUmIHZhbHVlKQogewotICAgIC8vIFNjcmlw
dHMgc2hvdWxkIG9ubHkgZXZlciBzZWUgY2xvbmVkIENTU1ZhbHVlcywgbmV2ZXIgdGhlIGludGVy
bmFsIG9uZXMuCi0gICAgQVNTRVJUKHZhbHVlLmlzQ1NTT01TYWZlKCkpOwotCi0gICAgLy8gSWYg
d2UncmUgaGVyZSB1bmRlciBlcnJvbmVvdXMgY2lyY3Vtc3RhbmNlcywgcHJlZmVyIHJldHVybmlu
ZyBudWxsIG92ZXIgYSBwb3RlbnRpYWxseSBpbnNlY3VyZSB2YWx1ZS4KLSAgICBpZiAoIXZhbHVl
LmlzQ1NTT01TYWZlKCkpCi0gICAgICAgIHJldHVybiBqc051bGwoKTsKLQogICAgIHJldHVybiB3
cmFwKHN0YXRlLCBnbG9iYWxPYmplY3QsIHZhbHVlKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9u
IDIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAiQ29udGVu
dERhdGEuaCIKICNpbmNsdWRlICJDb3VudGVyQ29udGVudC5oIgogI2luY2x1ZGUgIkN1cnNvckxp
c3QuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01WYWx1ZS5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZvbnRUYWdnZWRT
ZXR0aW5ncy5oIgpAQCAtNDExNiwxNiArNDExNywyMiBAQCBDU1NSdWxlKiBDU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb246OnBhCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVJlZlB0cjxDU1NW
YWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGNv
bnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKQorUmVmUHRyPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiBD
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgaWYgKGlzQ3VzdG9tUHJvcGVydHlOYW1lKHByb3Bl
cnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yKG1fZWxlbWVu
dC5wdHIoKSwgbV9hbGxvd1Zpc2l0ZWRTdHlsZSwgbV9wc2V1ZG9FbGVtZW50U3BlY2lmaWVyKS5j
dXN0b21Qcm9wZXJ0eVZhbHVlKHByb3BlcnR5TmFtZSk7CisgICAgaWYgKGlzQ3VzdG9tUHJvcGVy
dHlOYW1lKHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IENvbXB1dGVkU3R5
bGVFeHRyYWN0b3IobV9lbGVtZW50LnB0cigpLCBtX2FsbG93VmlzaXRlZFN0eWxlLCBtX3BzZXVk
b0VsZW1lbnRTcGVjaWZpZXIpLmN1c3RvbVByb3BlcnR5VmFsdWUocHJvcGVydHlOYW1lKTsKKyAg
ICAgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBy
ZXR1cm4gdmFsdWUtPmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIoKTsKKyAgICB9CiAKICAg
ICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQgPSBjc3NQcm9wZXJ0eUlEKHByb3BlcnR5TmFtZSk7
CiAgICAgaWYgKCFwcm9wZXJ0eUlEKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBSZWZQ
dHI8Q1NTVmFsdWU+IHZhbHVlID0gZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eUlEKTsKLSAg
ICByZXR1cm4gdmFsdWUgPyB2YWx1ZS0+Y2xvbmVGb3JDU1NPTSgpIDogbnVsbHB0cjsKKyAgICBp
ZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gdmFsdWUtPmNy
ZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIoKTsKIH0KIAogU3RyaW5nIENTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlWYWx1ZShjb25zdCBTdHJpbmcgJnByb3BlcnR5TmFt
ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmgJKHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw3IEBA
IHByaXZhdGU6CiAgICAgQ1NTUnVsZSogcGFyZW50UnVsZSgpIGNvbnN0IGZpbmFsOwogICAgIHVu
c2lnbmVkIGxlbmd0aCgpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyBpdGVtKHVuc2lnbmVkIGlu
ZGV4KSBjb25zdCBmaW5hbDsKLSAgICBSZWZQdHI8Q1NTVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFs
dWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOworICAgIFJlZlB0cjxEZXByZWNh
dGVkQ1NTT01WYWx1ZT4gZ2V0UHJvcGVydHlDU1NWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5
TmFtZSkgZmluYWw7CiAgICAgU3RyaW5nIGdldFByb3BlcnR5VmFsdWUoY29uc3QgU3RyaW5nJiBw
cm9wZXJ0eU5hbWUpIGZpbmFsOwogICAgIFN0cmluZyBnZXRQcm9wZXJ0eVByaW9yaXR5KGNvbnN0
IFN0cmluZyYgcHJvcGVydHlOYW1lKSBmaW5hbDsKICAgICBTdHJpbmcgZ2V0UHJvcGVydHlTaG9y
dGhhbmQoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOwpJbmRleDogU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyaWRMaW5lTmFtZXNWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3NzL0NTU0dyaWRMaW5lTmFtZXNWYWx1ZS5jcHAJKHJldmlzaW9uIDIwOTgzOCkK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkTGluZU5hbWVzVmFsdWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NCwxMSArNDQsNiBAQCBDU1NHcmlkTGluZU5hbWVzVmFsdWU6OkNTU0dyaWRM
aW5lTmFtZXNWCiB7CiB9CiAKLVJlZjxDU1NHcmlkTGluZU5hbWVzVmFsdWU+IENTU0dyaWRMaW5l
TmFtZXNWYWx1ZTo6Y2xvbmVGb3JDU1NPTSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQ1NTR3JpZExpbmVOYW1lc1ZhbHVlKCp0aGlzKSk7Ci19Ci0KIH0KIAogI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRMaW5lTmFtZXNWYWx1ZS5oCShyZXZpc2lv
biAyMDk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ1LDggKzQ1LDYgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGN1
c3RvbUNTU1RleHQoKSBjb25zdDsKIAotICAgIFJlZjxDU1NHcmlkTGluZU5hbWVzVmFsdWU+IGNs
b25lRm9yQ1NTT00oKSBjb25zdDsKLQogcHJpdmF0ZToKICAgICBDU1NHcmlkTGluZU5hbWVzVmFs
dWUoKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCShy
ZXZpc2lvbiAyMDk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OSwxNSArMTU5LDQgQEAgYm9vbCBDU1NJbWFnZVNldFZh
bHVlOjp0cmF2ZXJzZVN1YnJlc291cgogICAgIHJldHVybiBoYW5kbGVyKCptX2NhY2hlZEltYWdl
KTsKIH0KIAotQ1NTSW1hZ2VTZXRWYWx1ZTo6Q1NTSW1hZ2VTZXRWYWx1ZShjb25zdCBDU1NJbWFn
ZVNldFZhbHVlJiBjbG9uZUZyb20pCi0gICAgOiBDU1NWYWx1ZUxpc3QoY2xvbmVGcm9tKQotewot
ICAgIC8vIE5vbi1DU1NWYWx1ZUxpc3QgZGF0YSBpcyBub3QgYWNjZXNzaWJsZSB0aHJvdWdoIENT
UyBPTSwgbm8gbmVlZCB0byBjbG9uZS4KLX0KLQotUmVmPENTU0ltYWdlU2V0VmFsdWU+IENTU0lt
YWdlU2V0VmFsdWU6OmNsb25lRm9yQ1NTT00oKSBjb25zdAotewotICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IENTU0ltYWdlU2V0VmFsdWUoKnRoaXMpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5oCShyZXZpc2lvbiAy
MDk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC01NSw4ICs1NSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgdHJhdmVyc2VTdWJy
ZXNvdXJjZXMoY29uc3Qgc3RkOjpmdW5jdGlvbjxib29sIChjb25zdCBDYWNoZWRSZXNvdXJjZSYp
PiYgaGFuZGxlcikgY29uc3Q7CiAKLSAgICBSZWY8Q1NTSW1hZ2VTZXRWYWx1ZT4gY2xvbmVGb3JD
U1NPTSgpIGNvbnN0OwotCiAgICAgdm9pZCB1cGRhdGVEZXZpY2VTY2FsZUZhY3Rvcihjb25zdCBE
b2N1bWVudCYpOwogCiBwcm90ZWN0ZWQ6CkBAIC02NCw3ICs2Miw2IEBAIHByb3RlY3RlZDoKIAog
cHJpdmF0ZToKICAgICBDU1NJbWFnZVNldFZhbHVlKCk7Ci0gICAgQ1NTSW1hZ2VTZXRWYWx1ZShj
b25zdCBDU1NJbWFnZVNldFZhbHVlJiBjbG9uZUZyb20pOwogCiAgICAgdm9pZCBmaWxsSW1hZ2VT
ZXQoKTsKICAgICBzdGF0aWMgaW5saW5lIGJvb2wgY29tcGFyZUJ5U2NhbGVGYWN0b3IoSW1hZ2VX
aXRoU2NhbGUgZmlyc3QsIEltYWdlV2l0aFNjYWxlIHNlY29uZCkgeyByZXR1cm4gZmlyc3Quc2Nh
bGVGYWN0b3IgPCBzZWNvbmQuc2NhbGVGYWN0b3I7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZVZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW1hZ2VWYWx1ZS5jcHAJKHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZVZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIK
KyNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgi
CkBAIC05OCwxMiArOTksMTAgQEAgU3RyaW5nIENTU0ltYWdlVmFsdWU6OmN1c3RvbUNTU1RleHQo
KSBjbwogICAgIHJldHVybiBzZXJpYWxpemVVUkwobV91cmwpOwogfQogCi1SZWY8Q1NTVmFsdWU+
IENTU0ltYWdlVmFsdWU6OmNsb25lRm9yQ1NTT00oKSBjb25zdAorUmVmPERlcHJlY2F0ZWRDU1NP
TVZhbHVlPiBDU1NJbWFnZVZhbHVlOjpjcmVhdGVEZXByZWNhdGVkQ1NTT01XcmFwcGVyKCkgY29u
c3QKIHsKICAgICAvLyBOT1RFOiBXZSBleHBvc2UgQ1NTSW1hZ2VWYWx1ZXMgYXMgVVJJIHByaW1p
dGl2ZSB2YWx1ZXMgaW4gQ1NTT00gdG8gbWFpbnRhaW4gb2xkIGJlaGF2aW9yLgotICAgIFJlZjxD
U1NQcmltaXRpdmVWYWx1ZT4gdXJpVmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKG1f
dXJsLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSk7Ci0gICAgdXJpVmFsdWUtPnNldENTU09N
U2FmZSgpOwotICAgIHJldHVybiBXVEZNb3ZlKHVyaVZhbHVlKTsKKyAgICByZXR1cm4gRGVwcmVj
YXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRl
KG1fdXJsLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSkpOwogfQogCiBib29sIENTU0ltYWdl
VmFsdWU6Omtub3duVG9CZU9wYXF1ZShjb25zdCBSZW5kZXJFbGVtZW50KiByZW5kZXJlcikgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuaAkocmV2aXNpb24gMjA5ODM4KQor
KysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNiArMjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZEltYWdlOwog
Y2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CitjbGFzcyBEZXByZWNhdGVkQ1NTT01WYWx1ZTsK
IGNsYXNzIFJlbmRlckVsZW1lbnQ7CiBzdHJ1Y3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zOwogCkBA
IC00NSw3ICs0Niw3IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KCkgY29u
c3Q7CiAKLSAgICBSZWY8Q1NTVmFsdWU+IGNsb25lRm9yQ1NTT00oKSBjb25zdDsKKyAgICBSZWY8
RGVwcmVjYXRlZENTU09NVmFsdWU+IGNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIoKSBjb25z
dDsKIAogICAgIGJvb2wgdHJhdmVyc2VTdWJyZXNvdXJjZXMoY29uc3Qgc3RkOjpmdW5jdGlvbjxi
b29sIChjb25zdCBDYWNoZWRSZXNvdXJjZSYpPiYgaGFuZGxlcikgY29uc3Q7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAkocmV2aXNpb24gMjA5ODM4KQor
KysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkNhbGN1bGF0aW9uVmFsdWUuaCIKICNpbmNs
dWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkNvdW50ZXIuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlICJGb250Q2FzY2FkZS5oIgogI2luY2x1ZGUgIk5vZGUuaCIKQEAgLTExNzQsMTA0ICsxMTc1
LDYgQEAgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpjdXN0b21DU1NUZXh0KAogICAgIHJldHVy
biB0ZXh0OwogfQogCi1SZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1ByaW1pdGl2ZVZhbHVlOjpj
bG9uZUZvckNTU09NKCkgY29uc3QKLXsKLSAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHJl
c3VsdDsKLQotICAgIHN3aXRjaCAobV9wcmltaXRpdmVVbml0VHlwZSkgewotICAgIGNhc2UgQ1NT
X1NUUklORzoKLSAgICBjYXNlIENTU19VUkk6Ci0gICAgY2FzZSBDU1NfQVRUUjoKLSAgICBjYXNl
IENTU19DT1VOVEVSX05BTUU6Ci0gICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpj
cmVhdGUobV92YWx1ZS5zdHJpbmcsIHN0YXRpY19jYXN0PFVuaXRUeXBlPihtX3ByaW1pdGl2ZVVu
aXRUeXBlKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTX0ZPTlRfRkFNSUxZOgotICAg
ICAgICByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKCptX3ZhbHVlLmZvbnRGYW1p
bHkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU19DT1VOVEVSOgotICAgICAgICByZXN1
bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKG1fdmFsdWUuY291bnRlci0+Y2xvbmVGb3JD
U1NPTSgpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NfUkVDVDoKLSAgICAgICAgcmVz
dWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShtX3ZhbHVlLnJlY3QtPmNsb25lRm9yQ1NT
T00oKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTX1FVQUQ6Ci0gICAgICAgIHJlc3Vs
dCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUobV92YWx1ZS5xdWFkLT5jbG9uZUZvckNTU09N
KCkpOwotICAgICAgICBicmVhazsKLSNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQotICAgIGNh
c2UgQ1NTX0xFTkdUSF9SRVBFQVQ6Ci0gICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVl
OjpjcmVhdGUobV92YWx1ZS5sZW5ndGhSZXBlYXQtPmNsb25lRm9yQ1NTT00oKSk7Ci0gICAgICAg
IGJyZWFrOwotI2VuZGlmCi0gICAgY2FzZSBDU1NfUEFJUjoKLSAgICAgICAgLy8gUGFpciBpcyBu
b3QgZXhwb3NlZCB0byB0aGUgQ1NTT00sIG5vIG5lZWQgZm9yIGEgZGVlcCBjbG9uZS4KLSAgICAg
ICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShSZWY8UGFpcj4oKm1fdmFsdWUu
cGFpcikpOwotICAgICAgICBicmVhazsKLSNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCi0g
ICAgY2FzZSBDU1NfREFTSEJPQVJEX1JFR0lPTjoKLSAgICAgICAgLy8gRGFzaGJvYXJkUmVnaW9u
IGlzIG5vdCBleHBvc2VkIHRvIHRoZSBDU1NPTSwgbm8gbmVlZCBmb3IgYSBkZWVwIGNsb25lLgot
ICAgICAgICByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKFJlZlB0cjxEYXNoYm9h
cmRSZWdpb24+KG1fdmFsdWUucmVnaW9uKSk7Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmCi0gICAg
Y2FzZSBDU1NfQ0FMQzoKLSAgICAgICAgLy8gQ1NTQ2FsY1ZhbHVlIGlzIG5vdCBleHBvc2VkIHRv
IHRoZSBDU1NPTSwgbm8gbmVlZCBmb3IgYSBkZWVwIGNsb25lLgotICAgICAgICByZXN1bHQgPSBD
U1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKFJlZlB0cjxDU1NDYWxjVmFsdWU+KG1fdmFsdWUuY2Fs
YykpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU19TSEFQRToKLSAgICAgICAgLy8gQ1NT
U2hhcGVWYWx1ZSBpcyBub3QgZXhwb3NlZCB0byB0aGUgQ1NTT00sIG5vIG5lZWQgZm9yIGEgZGVl
cCBjbG9uZS4KLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShSZWY8
Q1NTQmFzaWNTaGFwZT4oKm1fdmFsdWUuc2hhcGUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBDU1NfTlVNQkVSOgotICAgIGNhc2UgQ1NTX1BFUkNFTlRBR0U6Ci0gICAgY2FzZSBDU1NfRU1T
OgotICAgIGNhc2UgQ1NTX1FVSVJLWV9FTVM6Ci0gICAgY2FzZSBDU1NfRVhTOgotICAgIGNhc2Ug
Q1NTX1JFTVM6Ci0gICAgY2FzZSBDU1NfQ0hTOgotICAgIGNhc2UgQ1NTX1BYOgotICAgIGNhc2Ug
Q1NTX0NNOgotICAgIGNhc2UgQ1NTX01NOgotICAgIGNhc2UgQ1NTX0lOOgotICAgIGNhc2UgQ1NT
X1BUOgotICAgIGNhc2UgQ1NTX1BDOgotICAgIGNhc2UgQ1NTX0RFRzoKLSAgICBjYXNlIENTU19S
QUQ6Ci0gICAgY2FzZSBDU1NfR1JBRDoKLSAgICBjYXNlIENTU19NUzoKLSAgICBjYXNlIENTU19T
OgotICAgIGNhc2UgQ1NTX0haOgotICAgIGNhc2UgQ1NTX0tIWjoKLSAgICBjYXNlIENTU19UVVJO
OgotICAgIGNhc2UgQ1NTX1ZXOgotICAgIGNhc2UgQ1NTX1ZIOgotICAgIGNhc2UgQ1NTX1ZNSU46
Ci0gICAgY2FzZSBDU1NfVk1BWDoKLSNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pIHx8
IEVOQUJMRShSRVNPTFVUSU9OX01FRElBX1FVRVJZKQotICAgIGNhc2UgQ1NTX0RQUFg6Ci0gICAg
Y2FzZSBDU1NfRFBJOgotICAgIGNhc2UgQ1NTX0RQQ006Ci0jZW5kaWYKLSAgICBjYXNlIENTU19G
UjoKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShtX3ZhbHVlLm51
bSwgc3RhdGljX2Nhc3Q8VW5pdFR5cGU+KG1fcHJpbWl0aXZlVW5pdFR5cGUpKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBDU1NfUFJPUEVSVFlfSUQ6Ci0gICAgICAgIHJlc3VsdCA9IENTU1By
aW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKG1fdmFsdWUucHJvcGVydHlJRCk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTX1ZBTFVFX0lEOgotICAgICAgICByZXN1bHQgPSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihtX3ZhbHVlLnZhbHVlSUQpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIENTU19SR0JDT0xPUjoKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJp
bWl0aXZlVmFsdWU6OmNyZWF0ZSgqbV92YWx1ZS5jb2xvcik7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQ1NTX0RJTUVOU0lPTjoKLSAgICBjYXNlIENTU19VTktOT1dOOgotICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcmVzdWx0LT5z
ZXRDU1NPTVNhZmUoKTsKLSAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VOb25OdWxsKCk7Ci19Ci0K
IGJvb2wgQ1NTUHJpbWl0aXZlVmFsdWU6OmVxdWFscyhjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYg
b3RoZXIpIGNvbnN0CiB7CiAgICAgaWYgKG1fcHJpbWl0aXZlVW5pdFR5cGUgIT0gb3RoZXIubV9w
cmltaXRpdmVVbml0VHlwZSkKQEAgLTEzNDgsNCArMTI1MSw5IEBAIGJvb2wgQ1NTUHJpbWl0aXZl
VmFsdWU6OmVxdWFscyhjb25zdCBDU1MKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1JlZjxEZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZURlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVdyYXBwZXIoKSBjb25zdAoreworICAgIHJldHVybiBEZXByZWNh
dGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKCp0aGlzKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgJKHJl
dmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBAIGNsYXNzIENTU0NhbGNWYWx1ZTsKIGNs
YXNzIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGE7CiBjbGFzcyBDb3VudGVyOwogY2xhc3MgRGFz
aGJvYXJkUmVnaW9uOworY2xhc3MgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU7CiBjbGFz
cyBMZW5ndGhSZXBlYXQ7CiBjbGFzcyBQYWlyOwogY2xhc3MgUXVhZDsKQEAgLTI4OSw5ICsyOTAs
NiBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUUtTkVXUEFSU0VSOiBDYW4gZGl0Y2ggdGhlIGJvb2xl
YW4gYW5kIGp1c3QgdXNlIHRoZSB1bml0IHR5cGUgb25jZSBvbGQgcGFyc2VyIGlzIGdvbmUuCiAg
ICAgYm9vbCBpc1F1aXJrVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2lzUXVpcmtWYWx1ZSB8fCBw
cmltaXRpdmVUeXBlKCkgPT0gQ1NTX1FVSVJLWV9FTVM7IH0KIAotICAgIFJlZjxDU1NQcmltaXRp
dmVWYWx1ZT4gY2xvbmVGb3JDU1NPTSgpIGNvbnN0OwotICAgIHZvaWQgc2V0Q1NTT01TYWZlKCkg
eyBtX2lzQ1NTT01TYWZlID0gdHJ1ZTsgfQotCiAgICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTUHJp
bWl0aXZlVmFsdWUmKSBjb25zdDsKIAogICAgIHN0YXRpYyBVbml0VHlwZSBjYW5vbmljYWxVbml0
VHlwZUZvckNhdGVnb3J5KFVuaXRDYXRlZ29yeSk7CkBAIC0yOTksNiArMjk3LDggQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIGRvdWJsZSBjb21wdXRlTm9uQ2FsY0xlbmd0aERvdWJsZShjb25zdCBD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiwgVW5pdFR5cGUsIGRvdWJsZSB2YWx1ZSk7CiAKKyAg
ICBSZWY8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZURlcHJlY2F0ZWRDU1NP
TVByaW1pdGl2ZVdyYXBwZXIoKSBjb25zdDsKKwogI2lmIENPTVBJTEVSKE1TVkMpCiAgICAgLy8g
RklYTUU6IFRoaXMgc2hvdWxkIGJlIHByaXZhdGUsIGJ1dCBmb3Igc29tZSByZWFzb24gTVNWQyB0
aGVuIGZhaWxzIHRvIGludm9rZSBpdCBmcm9tIExhenlOZXZlckRlc3Ryb3llZDo6Y29uc3RydWN0
LgogcHVibGljOgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRs
CShyZXZpc2lvbiAyMDk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuaWRsCShub25leGlzdGVudCkKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLVsKLSAgICBJbXBs
ZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotXSBpbnRlcmZhY2UgQ1NTUHJpbWl0aXZlVmFsdWUgOiBD
U1NWYWx1ZSB7Ci0gICAgLy8gVW5pdFR5cGVzCi0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NT
X1VOS05PV04gPSAwOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19OVU1CRVIgPSAxOwot
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19QRVJDRU5UQUdFID0gMjsKLSAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBDU1NfRU1TID0gMzsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1Nf
RVhTID0gNDsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUFggPSA1OwotICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IENTU19DTSA9IDY7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NT
X01NID0gNzsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfSU4gPSA4OwotICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IENTU19QVCA9IDk7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NT
X1BDID0gMTA7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0RFRyA9IDExOwotICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IENTU19SQUQgPSAxMjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBDU1NfR1JBRCA9IDEzOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19NUyA9IDE0Owot
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19TID0gMTU7Ci0gICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgQ1NTX0haID0gMTY7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0tIWiA9IDE3
OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19ESU1FTlNJT04gPSAxODsKLSAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBDU1NfU1RSSU5HID0gMTk7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgQ1NTX1VSSSA9IDIwOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19JREVOVCA9IDIx
OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19BVFRSID0gMjI7Ci0gICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgQ1NTX0NPVU5URVIgPSAyMzsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBD
U1NfUkVDVCA9IDI0OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19SR0JDT0xPUiA9IDI1
OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19WVyA9IDI2OwotICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IENTU19WSCA9IDI3OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19WTUlO
ID0gMjg7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1ZNQVggPSAyOTsKLSAgICAKLSAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcHJpbWl0aXZlVHlwZTsKLQotICAg
IFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBzZXRGbG9hdFZhbHVlKG9wdGlvbmFsIHVuc2lnbmVk
IHNob3J0IHVuaXRUeXBlID0gMCwgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGZsb2F0IGZsb2F0VmFs
dWUgPSBOYU4pOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdW5yZXN0cmljdGVkIGZsb2F0IGdl
dEZsb2F0VmFsdWUob3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgdW5pdFR5cGUgPSAwKTsKLQotICAg
IFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBzZXRTdHJpbmdWYWx1ZShvcHRpb25hbCB1bnNpZ25l
ZCBzaG9ydCBzdHJpbmdUeXBlID0gMCwgb3B0aW9uYWwgRE9NU3RyaW5nIHN0cmluZ1ZhbHVlKTsK
LSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVN0cmluZyBnZXRTdHJpbmdWYWx1ZSgpOwotCi0g
ICAgW01heVRocm93RXhjZXB0aW9uXSBDb3VudGVyIGdldENvdW50ZXJWYWx1ZSgpOwotICAgIFtN
YXlUaHJvd0V4Y2VwdGlvbl0gUmVjdCBnZXRSZWN0VmFsdWUoKTsKLSAgICBbTWF5VGhyb3dFeGNl
cHRpb25dIFJHQkNvbG9yIGdldFJHQkNvbG9yVmFsdWUoKTsKLX07CgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
RGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVj
bGFyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNs
YXJhdGlvbi5oCShyZXZpc2lvbiAyMDk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVEZWNsYXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNsdWRlICJEZXByZWNh
dGVkQ1NTT01WYWx1ZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTQ5LDcgKzUwLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q3NzVGV4dChjb25z
dCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCBTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QgPSAwOwotICAg
IHZpcnR1YWwgUmVmUHRyPENTU1ZhbHVlPiBnZXRQcm9wZXJ0eUNTU1ZhbHVlKGNvbnN0IFN0cmlu
ZyYgcHJvcGVydHlOYW1lKSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8RGVwcmVjYXRlZENTU09N
VmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpID0g
MDsKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKGNvbnN0IFN0cmluZyYgcHJv
cGVydHlOYW1lKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHlQcmlvcml0eShj
b25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGdldFBy
b3BlcnR5U2hvcnRoYW5kKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSA9IDA7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCShyZXZpc2lvbiAyMDk4
MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDcgKzMxLDkgQEAKICAgICBbQ0VSZWFjdGlvbnMsIFNldHRlck1heVRo
cm93RXhjZXB0aW9uXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNzc1RleHQ7CiAKICAgICBET01TdHJp
bmcgZ2V0UHJvcGVydHlWYWx1ZShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKLSAgICBbQ3VzdG9t
XSBDU1NWYWx1ZT8gZ2V0UHJvcGVydHlDU1NWYWx1ZShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsK
KworICAgIC8vIFRoaXMgbWV0aG9kIGlzIGRlcHJlY2F0ZWQsIGFuZCB3ZSB3b3VsZCBsaWtlIHRv
IGRyb3Agc3VwcG9ydCBmb3IgaXQgc29tZWRheQorICAgIFtDdXN0b21dIERlcHJlY2F0ZWRDU1NP
TVZhbHVlPyBnZXRQcm9wZXJ0eUNTU1ZhbHVlKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwogCiAg
ICAgW0NFUmVhY3Rpb25zLCBNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHJlbW92ZVByb3Bl
cnR5KERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwogICAgIERPTVN0cmluZz8gZ2V0UHJvcGVydHlQ
cmlvcml0eShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
LmNwcAkocmV2aXNpb24gMjA5ODM4KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsOSBAQAogI2luY2x1ZGUgIkNTU0dyaWRUZW1w
bGF0ZUFyZWFzVmFsdWUuaCIKICNlbmRpZgogCisjaW5jbHVkZSAiRGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaCIKKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgU2FtZVNpemVBc0NTU1ZhbHVlIDogcHVibGlj
IFJlZkNvdW50ZWQ8U2FtZVNpemVBc0NTU1ZhbHVlPiB7CkBAIC03NiwyNiArNzksNiBAQCBzdHJ1
Y3QgU2FtZVNpemVBc0NTU1ZhbHVlIDogcHVibGljIFJlZkNvCiAKIENPTVBJTEVfQVNTRVJUKHNp
emVvZihDU1NWYWx1ZSkgPT0gc2l6ZW9mKFNhbWVTaXplQXNDU1NWYWx1ZSksIENTU192YWx1ZV9z
aG91bGRfc3RheV9zbWFsbCk7CiAKLWNsYXNzIFRleHRDbG9uZUNTU1ZhbHVlIGZpbmFsIDogcHVi
bGljIENTU1ZhbHVlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFRleHRDbG9uZUNTU1ZhbHVl
PiBjcmVhdGUoQ2xhc3NUeXBlIGNsYXNzVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQotICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dENsb25lQ1NTVmFsdWUoY2xhc3NUeXBl
LCB0ZXh0KSk7Ci0gICAgfQotCi0gICAgU3RyaW5nIGNzc1RleHQoKSBjb25zdCB7IHJldHVybiBt
X2Nzc1RleHQ7IH0KLQotcHJpdmF0ZToKLSAgICBUZXh0Q2xvbmVDU1NWYWx1ZShDbGFzc1R5cGUg
Y2xhc3NUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQpIAotICAgICAgICA6IENTU1ZhbHVlKGNsYXNz
VHlwZSwgLyppc0NTU09NU2FmZSovIHRydWUpCi0gICAgICAgICwgbV9jc3NUZXh0KHRleHQpCi0g
ICAgewotICAgICAgICBtX2lzVGV4dENsb25lID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBTdHJpbmcg
bV9jc3NUZXh0OwotfTsKLQogYm9vbCBDU1NWYWx1ZTo6aXNJbXBsaWNpdEluaXRpYWxWYWx1ZSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY2xhc3NUeXBlID09IEluaXRpYWxDbGFzcyAmJiBkb3du
Y2FzdDxDU1NJbml0aWFsVmFsdWU+KCp0aGlzKS5pc0ltcGxpY2l0KCk7CkBAIC0xMjAsOSArMTAz
LDYgQEAgQ1NTVmFsdWU6OlR5cGUgQ1NTVmFsdWU6OmNzc1ZhbHVlVHlwZSgpIAogCiBib29sIENT
U1ZhbHVlOjp0cmF2ZXJzZVN1YnJlc291cmNlcyhjb25zdCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKGNv
bnN0IENhY2hlZFJlc291cmNlJik+JiBoYW5kbGVyKSBjb25zdAogewotICAgIC8vIFRoaXMgc2hv
dWxkIGdldCBjYWxsZWQgZm9yIGludGVybmFsIGluc3RhbmNlcyBvbmx5LgotICAgIEFTU0VSVCgh
aXNDU1NPTVNhZmUoKSk7Ci0KICAgICBpZiAoaXM8Q1NTVmFsdWVMaXN0PigqdGhpcykpCiAgICAg
ICAgIHJldHVybiBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KCp0aGlzKS50cmF2ZXJzZVN1YnJlc291
cmNlcyhoYW5kbGVyKTsKICAgICBpZiAoaXM8Q1NTRm9udEZhY2VTcmNWYWx1ZT4oKnRoaXMpKQpA
QCAtMTQ2LDExICsxMjYsNiBAQCBpbmxpbmUgc3RhdGljIGJvb2wgY29tcGFyZUNTU1ZhbHVlcyhj
b25zCiAKIGJvb2wgQ1NTVmFsdWU6OmVxdWFscyhjb25zdCBDU1NWYWx1ZSYgb3RoZXIpIGNvbnN0
CiB7Ci0gICAgaWYgKG1faXNUZXh0Q2xvbmUpIHsKLSAgICAgICAgQVNTRVJUKGlzQ1NTT01TYWZl
KCkpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgVGV4dENsb25lQ1NTVmFsdWUq
Pih0aGlzKS0+Y3NzVGV4dCgpID09IG90aGVyLmNzc1RleHQoKTsKLSAgICB9Ci0KICAgICBpZiAo
bV9jbGFzc1R5cGUgPT0gb3RoZXIubV9jbGFzc1R5cGUpIHsKICAgICAgICAgc3dpdGNoIChtX2Ns
YXNzVHlwZSkgewogICAgICAgICBjYXNlIEFzcGVjdFJhdGlvQ2xhc3M6CkBAIC0yNDgsMTIgKzIy
Myw2IEBAIGJvb2wgQ1NTVmFsdWU6OmVxdWFscyhjb25zdCBDU1NWYWx1ZSYgb3QKIAogU3RyaW5n
IENTU1ZhbHVlOjpjc3NUZXh0KCkgY29uc3QKIHsKLSAgICBpZiAobV9pc1RleHRDbG9uZSkgewot
ICAgICAgICAgQVNTRVJUKGlzQ1NTT01TYWZlKCkpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8Y29uc3QgVGV4dENsb25lQ1NTVmFsdWUqPih0aGlzKS0+Y3NzVGV4dCgpOwotICAgIH0KLSAg
ICBBU1NFUlQoIWlzQ1NTT01TYWZlKCkgfHwgaXNTdWJ0eXBlRXhwb3NlZFRvQ1NTT00oKSk7Ci0K
ICAgICBzd2l0Y2ggKGNsYXNzVHlwZSgpKSB7CiAgICAgY2FzZSBBc3BlY3RSYXRpb0NsYXNzOgog
ICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTQXNwZWN0UmF0aW9WYWx1ZT4oKnRoaXMpLmN1c3Rv
bUNTU1RleHQoKTsKQEAgLTM0NywxMyArMzE2LDYgQEAgU3RyaW5nIENTU1ZhbHVlOjpjc3NUZXh0
KCkgY29uc3QKIAogdm9pZCBDU1NWYWx1ZTo6ZGVzdHJveSgpCiB7Ci0gICAgaWYgKG1faXNUZXh0
Q2xvbmUpIHsKLSAgICAgICAgQVNTRVJUKGlzQ1NTT01TYWZlKCkpOwotICAgICAgICBkZWxldGUg
c3RhdGljX2Nhc3Q8VGV4dENsb25lQ1NTVmFsdWUqPih0aGlzKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLSAgICBBU1NFUlQoIWlzQ1NTT01TYWZlKCkgfHwgaXNTdWJ0eXBlRXhwb3NlZFRvQ1NT
T00oKSk7Ci0KICAgICBzd2l0Y2ggKGNsYXNzVHlwZSgpKSB7CiAgICAgY2FzZSBBc3BlY3RSYXRp
b0NsYXNzOgogICAgICAgICBkZWxldGUgZG93bmNhc3Q8Q1NTQXNwZWN0UmF0aW9WYWx1ZT4odGhp
cyk7CkBAIC00ODIsMjIgKzQ0NCwxNSBAQCB2b2lkIENTU1ZhbHVlOjpkZXN0cm95KCkKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotUmVmUHRyPENTU1ZhbHVlPiBDU1NWYWx1ZTo6Y2xv
bmVGb3JDU1NPTSgpIGNvbnN0CitSZWY8RGVwcmVjYXRlZENTU09NVmFsdWU+IENTU1ZhbHVlOjpj
cmVhdGVEZXByZWNhdGVkQ1NTT01XcmFwcGVyKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKGNsYXNz
VHlwZSgpKSB7Ci0gICAgY2FzZSBQcmltaXRpdmVDbGFzczoKLSAgICAgICAgcmV0dXJuIGRvd25j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcykuY2xvbmVGb3JDU1NPTSgpOwotICAgIGNhc2Ug
VmFsdWVMaXN0Q2xhc3M6Ci0gICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KCp0
aGlzKS5jbG9uZUZvckNTU09NKCk7Ci0gICAgY2FzZSBJbWFnZUNsYXNzOgotICAgIGNhc2UgQ3Vy
c29ySW1hZ2VDbGFzczoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KCp0
aGlzKS5jbG9uZUZvckNTU09NKCk7Ci0gICAgY2FzZSBJbWFnZVNldENsYXNzOgotICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8Q1NTSW1hZ2VTZXRWYWx1ZT4oKnRoaXMpLmNsb25lRm9yQ1NTT00oKTsK
LSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlQoIWlzU3VidHlwZUV4cG9zZWRUb0NTU09NKCkp
OwotICAgICAgICByZXR1cm4gVGV4dENsb25lQ1NTVmFsdWU6OmNyZWF0ZShjbGFzc1R5cGUoKSwg
Y3NzVGV4dCgpKTsKLSAgICB9CisgICAgaWYgKGlzSW1hZ2VWYWx1ZSgpIHx8IGlzQ3Vyc29ySW1h
Z2VWYWx1ZSgpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTSW1hZ2VWYWx1ZT4odGhpcykt
PmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIoKTsKKyAgICBpZiAoaXNQcmltaXRpdmVWYWx1
ZSgpKQorICAgICAgICByZXR1cm4gRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZShkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpKTsKKyAgICBpZiAoaXNWYWx1ZUxp
c3QoKSkKKyAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdDo6Y3JlYXRlKGRv
d25jYXN0PENTU1ZhbHVlTGlzdD4oKnRoaXMpKTsKKyAgICByZXR1cm4gRGVwcmVjYXRlZENTU09N
Q29tcGxleFZhbHVlOjpjcmVhdGUoKnRoaXMpOwogfQogCiBib29sIENTU1ZhbHVlOjp0cmVhdEFz
SW5oZXJpdGVkVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdApJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlLmgJKHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxNSArMzIsMTEgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlOwogY2xhc3MgQ2FjaGVkUmVz
b3VyY2U7CitjbGFzcyBEZXByZWNhdGVkQ1NTT01WYWx1ZTsKIGNsYXNzIFN0eWxlU2hlZXRDb250
ZW50czsKIAogZW51bSBDU1NQcm9wZXJ0eUlEIDogdWludDE2X3Q7CiAKLS8vIEZJWE1FOiBUaGUg
Y3VycmVudCBDU1NWYWx1ZSBhbmQgc3ViY2xhc3NlcyBzaG91bGQgYmUgdHVybmVkIGludG8gaW50
ZXJuYWwgdHlwZXMgKFN0eWxlVmFsdWUpLgotLy8gVGhlIGZldyBzdWJ0eXBlcyB0aGF0IGFyZSBh
Y3R1YWxseSBleHBvc2VkIGluIENTU09NIGNhbiBiZSBzZWVuIGluIHRoZSBjbG9uZUZvckNTU09N
KCkgZnVuY3Rpb24uCi0vLyBUaGV5IHNob3VsZCBiZSBoYW5kbGVkIGJ5IHNlcGFyYXRlIHdyYXBw
ZXIgY2xhc3Nlcy4KLQotLy8gUGxlYXNlIGRvbid0IGV4cG9zZSBtb3JlIENTU1ZhbHVlIHR5cGVz
IHRvIHRoZSB3ZWIuCiBjbGFzcyBDU1NWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPENTU1ZhbHVl
PiB7CiBwdWJsaWM6CiAgICAgZW51bSBUeXBlIHsKQEAgLTYxLDExICs1Nyw4IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIGRlc3Ryb3koKTsKICAgICB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBUeXBl
IGNzc1ZhbHVlVHlwZSgpIGNvbnN0OwotCi0gICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNzc1Rl
eHQoKSBjb25zdDsKLQotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENzc1RleHQoY29uc3QgU3Ry
aW5nJikgeyByZXR1cm4geyB9OyB9IC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQuCisgICAgVHlw
ZSBjc3NWYWx1ZVR5cGUoKSBjb25zdDsKKyAgICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OwogCiAg
ICAgYm9vbCBpc1ByaW1pdGl2ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0g
UHJpbWl0aXZlQ2xhc3M7IH0KICAgICBib29sIGlzVmFsdWVMaXN0KCkgY29uc3QgeyByZXR1cm4g
bV9jbGFzc1R5cGUgPj0gVmFsdWVMaXN0Q2xhc3M7IH0KQEAgLTEyNiwxMyArMTE5LDcgQEAgcHVi
bGljOgogICAgIAogICAgIGJvb2wgaGFzVmFyaWFibGVSZWZlcmVuY2VzKCkgY29uc3QgeyByZXR1
cm4gaXNWYXJpYWJsZVJlZmVyZW5jZVZhbHVlKCkgfHwgaXNQZW5kaW5nU3Vic3RpdHV0aW9uVmFs
dWUoKTsgfQogCi0gICAgYm9vbCBpc0NTU09NU2FmZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDU1NP
TVNhZmU7IH0KLSAgICBib29sIGlzU3VidHlwZUV4cG9zZWRUb0NTU09NKCkgY29uc3QKLSAgICB7
IAotICAgICAgICByZXR1cm4gaXNQcmltaXRpdmVWYWx1ZSgpIHx8IGlzVmFsdWVMaXN0KCk7Ci0g
ICAgfQotCi0gICAgUmVmUHRyPENTU1ZhbHVlPiBjbG9uZUZvckNTU09NKCkgY29uc3Q7CisgICAg
UmVmPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiBjcmVhdGVEZXByZWNhdGVkQ1NTT01XcmFwcGVyKCkg
Y29uc3Q7CiAKICAgICBib29sIHRyYXZlcnNlU3VicmVzb3VyY2VzKGNvbnN0IHN0ZDo6ZnVuY3Rp
b248Ym9vbCAoY29uc3QgQ2FjaGVkUmVzb3VyY2UmKT4mIGhhbmRsZXIpIGNvbnN0OwogCkBAIC0y
MTAsNiArMTk3LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAvLyBEbyBub3QgYXBwZW5kIG5vbi1s
aXN0IGNsYXNzIHR5cGVzIGhlcmUuCiAgICAgfTsKIAorcHVibGljOgogICAgIHN0YXRpYyBjb25z
dCBzaXplX3QgVmFsdWVMaXN0U2VwYXJhdG9yQml0cyA9IDI7CiAgICAgZW51bSBWYWx1ZUxpc3RT
ZXBhcmF0b3IgewogICAgICAgICBTcGFjZVNlcGFyYXRvciwKQEAgLTIxNywxMiArMjA1LDExIEBA
IHByb3RlY3RlZDoKICAgICAgICAgU2xhc2hTZXBhcmF0b3IKICAgICB9OwogCitwcm90ZWN0ZWQ6
CiAgICAgQ2xhc3NUeXBlIGNsYXNzVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENs
YXNzVHlwZT4obV9jbGFzc1R5cGUpOyB9CiAKLSAgICBleHBsaWNpdCBDU1NWYWx1ZShDbGFzc1R5
cGUgY2xhc3NUeXBlLCBib29sIGlzQ1NTT01TYWZlID0gZmFsc2UpCi0gICAgICAgIDogbV9pc0NT
U09NU2FmZShpc0NTU09NU2FmZSkKLSAgICAgICAgLCBtX2lzVGV4dENsb25lKGZhbHNlKQotICAg
ICAgICAsIG1fcHJpbWl0aXZlVW5pdFR5cGUoMCkKKyAgICBleHBsaWNpdCBDU1NWYWx1ZShDbGFz
c1R5cGUgY2xhc3NUeXBlKQorICAgICAgICA6IG1fcHJpbWl0aXZlVW5pdFR5cGUoMCkKICAgICAg
ICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCiAgICAgICAgICwgbV9pc1F1aXJrVmFsdWUo
ZmFsc2UpCiAgICAgICAgICwgbV92YWx1ZUxpc3RTZXBhcmF0b3IoU3BhY2VTZXBhcmF0b3IpCkBA
IC0yMzksOCArMjI2LDYgQEAgcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlc3Ry
b3koKTsKIAogcHJvdGVjdGVkOgotICAgIHVuc2lnbmVkIG1faXNDU1NPTVNhZmUgOiAxOwotICAg
IHVuc2lnbmVkIG1faXNUZXh0Q2xvbmUgOiAxOwogICAgIC8vIFRoZSBiaXRzIGluIHRoaXMgc2Vj
dGlvbiBhcmUgb25seSB1c2VkIGJ5IHNwZWNpZmljIHN1YmNsYXNzZXMgYnV0IGtlcHQgaGVyZQog
ICAgIC8vIHRvIG1heGltaXplIHN0cnVjdCBwYWNraW5nLgogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZS5pZGwJKHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZS5pZGwJKG5vbmV4aXN0ZW50KQpAQCAtMSwzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0g
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotWwot
ICAgIEN1c3RvbUlzUmVhY2hhYmxlLAotICAgIEN1c3RvbVRvSlNPYmplY3QsCi0gICAgRXhwb3J0
VG9XcmFwcGVkRnVuY3Rpb24sCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLSAgICBK
U0N1c3RvbUZpbmFsaXplLAotXSBpbnRlcmZhY2UgQ1NTVmFsdWUgewotICAgIC8vIFVuaXRUeXBl
cwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19JTkhFUklUID0gMDsKLSAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBDU1NfUFJJTUlUSVZFX1ZBTFVFID0gMTsKLSAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBDU1NfVkFMVUVfTElTVCA9IDI7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NT
X0NVU1RPTSA9IDM7Ci0KLSAgICBbU2V0dGVyTWF5VGhyb3dFeGNlcHRpb25dIGF0dHJpYnV0ZSBE
T01TdHJpbmc/IGNzc1RleHQ7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hv
cnQgY3NzVmFsdWVUeXBlOwotfTsKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZS5pZGwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0x
ICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcAkocmV2aXNpb24gMjA5ODM4KQorKysgU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0
LDcgQEAKICNpbmNsdWRlICJDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NT
RnVuY3Rpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVk
ZSAiRGVwcmVjYXRlZENTU09NVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE0NCwxOCArMTQ1LDQgQEAgYm9vbCBD
U1NWYWx1ZUxpc3Q6OnRyYXZlcnNlU3VicmVzb3VyY2VzKAogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotQ1NTVmFsdWVMaXN0OjpDU1NWYWx1ZUxpc3QoY29uc3QgQ1NTVmFsdWVMaXN0JiBjbG9uZUZy
b20pCi0gICAgOiBDU1NWYWx1ZShjbG9uZUZyb20uY2xhc3NUeXBlKCksIC8qIGlzQ1NTT01TYWZl
ICovIHRydWUpCi17Ci0gICAgbV92YWx1ZUxpc3RTZXBhcmF0b3IgPSBjbG9uZUZyb20ubV92YWx1
ZUxpc3RTZXBhcmF0b3I7Ci0gICAgbV92YWx1ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjbG9u
ZUZyb20ubV92YWx1ZXMuc2l6ZSgpKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBzaXplID0g
Y2xvbmVGcm9tLm1fdmFsdWVzLnNpemUoKTsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV92YWx1
ZXMudW5jaGVja2VkQXBwZW5kKCpjbG9uZUZyb20ubV92YWx1ZXNbaV0tPmNsb25lRm9yQ1NTT00o
KSk7Ci19Ci0KLVJlZjxDU1NWYWx1ZUxpc3Q+IENTU1ZhbHVlTGlzdDo6Y2xvbmVGb3JDU1NPTSgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTVmFsdWVMaXN0KCp0aGlzKSk7
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVM
aXN0LmgJKHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxp
c3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjksMTIgKzY5LDExIEBAIHB1YmxpYzoKICAgICBib29s
IGVxdWFscyhjb25zdCBDU1NWYWx1ZSYpIGNvbnN0OwogCiAgICAgYm9vbCB0cmF2ZXJzZVN1YnJl
c291cmNlcyhjb25zdCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKGNvbnN0IENhY2hlZFJlc291cmNlJik+
JiBoYW5kbGVyKSBjb25zdDsKLSAgICAKLSAgICBSZWY8Q1NTVmFsdWVMaXN0PiBjbG9uZUZvckNT
U09NKCkgY29uc3Q7CisKKyAgICB1bnNpZ25lZCBzZXBhcmF0b3IoKSBjb25zdCB7IHJldHVybiBt
X3ZhbHVlTGlzdFNlcGFyYXRvcjsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgQ1NTVmFsdWVMaXN0KENs
YXNzVHlwZSwgVmFsdWVMaXN0U2VwYXJhdG9yKTsKLSAgICBDU1NWYWx1ZUxpc3QoY29uc3QgQ1NT
VmFsdWVMaXN0JiBjbG9uZUZyb20pOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENTU1ZhbHVl
TGlzdChWYWx1ZUxpc3RTZXBhcmF0b3IpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlTGlzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlz
dC5pZGwJKHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxp
c3QuaWRsCShub25leGlzdGVudCkKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotLy8gSW50cm9kdWNlZCBpbiBET00g
TGV2ZWwgMjoKLVsKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotXSBpbnRlcmZhY2Ug
Q1NTVmFsdWVMaXN0IDogQ1NTVmFsdWUgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIGxlbmd0aDsKLSAgICBnZXR0ZXIgQ1NTVmFsdWUgaXRlbSh1bnNpZ25lZCBsb25nIGlu
ZGV4KTsKLX07Ci0KClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUxpc3QuaWRsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCww
ICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNl
L1dlYkNvcmUvY3NzL0NvdW50ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q291bnRlci5oCShyZXZpc2lvbiAyMDk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ291bnRl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiwxMCBAQCBwdWJsaWM6CiAgICAgU3RyaW5n
IGxpc3RTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdFN0eWxlLT5zdHJpbmdWYWx1ZSgpOyB9
CiAgICAgU3RyaW5nIHNlcGFyYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fc2VwYXJhdG9yLT5zdHJp
bmdWYWx1ZSgpOyB9CiAKKyAgICBjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYgaWRlbnRpZmllclZh
bHVlKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgY29uc3QgQ1NTUHJpbWl0
aXZlVmFsdWUmIGxpc3RTdHlsZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9saXN0U3R5bGU7IH0K
KyAgICBjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYgc2VwYXJhdG9yVmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX3NlcGFyYXRvcjsgfQorICAgIAogICAgIENTU1ZhbHVlSUQgbGlzdFN0eWxlSWRlbnQo
KSBjb25zdCB7IHJldHVybiBtX2xpc3RTdHlsZS0+dmFsdWVJRCgpOyB9CiAKICAgICB2b2lkIHNl
dElkZW50aWZpZXIoUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiYmIGlkZW50aWZpZXIpIHsgbV9pZGVu
dGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKTsgfQpAQCAtNDgsMTEgKzUyLDYgQEAgcHVibGlj
OgogICAgICAgICAgICAgJiYgbGlzdFN0eWxlKCkgPT0gb3RoZXIubGlzdFN0eWxlKCkKICAgICAg
ICAgICAgICYmIHNlcGFyYXRvcigpID09IG90aGVyLnNlcGFyYXRvcigpOwogICAgIH0KLSAgICAK
LSAgICBSZWY8Q291bnRlcj4gY2xvbmVGb3JDU1NPTSgpIGNvbnN0Ci0gICAgewotICAgICAgICBy
ZXR1cm4gY3JlYXRlKG1faWRlbnRpZmllci0+Y2xvbmVGb3JDU1NPTSgpLCBtX2xpc3RTdHlsZS0+
Y2xvbmVGb3JDU1NPTSgpLCBtX3NlcGFyYXRvci0+Y2xvbmVGb3JDU1NPTSgpKTsKLSAgICB9CiAK
IHByaXZhdGU6CiAgICAgQ291bnRlcihSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+JiYgaWRlbnRpZmll
ciwgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiYmIGxpc3RTdHlsZSwgUmVmPENTU1ByaW1pdGl2ZVZh
bHVlPiYmIHNlcGFyYXRvcikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVyLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ291bnRlci5pZGwJKHJldmlzaW9uIDIw
OTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVyLmlkbAkobm9uZXhpc3RlbnQpCkBA
IC0xLDI3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KLSAqLwotCi1bCi0gICAgRXhwb3J0VG9XcmFwcGVkRnVuY3Rpb24sCi0g
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLV0gaW50ZXJmYWNlIENvdW50ZXIgewotICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgaWRlbnRpZmllcjsKLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGxpc3RTdHlsZTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHNlcGFyYXRvcjsKLX07CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ291bnRlci5pZGwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0x
ICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NQ291bnRlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Db3VudGVyLmgJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDb3VudGVyLmgiCisjaW5j
bHVkZSAiRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIgZmluYWwgOiBwdWJsaWMg
UmVmQ291bnRlZDxEZXByZWNhdGVkQ1NTT01Db3VudGVyPiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxEZXByZWNhdGVkQ1NTT01Db3VudGVyPiBjcmVhdGUoY29uc3QgQ291bnRlciYgY291bnRl
cikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZXByZWNhdGVkQ1NTT01Db3VudGVyKGNvdW50ZXIp
KTsgfQorCisgICAgU3RyaW5nIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZp
ZXItPnN0cmluZ1ZhbHVlKCk7IH0KKyAgICBTdHJpbmcgbGlzdFN0eWxlKCkgY29uc3QgeyByZXR1
cm4gbV9saXN0U3R5bGUtPnN0cmluZ1ZhbHVlKCk7IH0KKyAgICBTdHJpbmcgc2VwYXJhdG9yKCkg
Y29uc3QgeyByZXR1cm4gbV9zZXBhcmF0b3ItPnN0cmluZ1ZhbHVlKCk7IH0KKyAgICAKK3ByaXZh
dGU6CisgICAgRGVwcmVjYXRlZENTU09NQ291bnRlcihjb25zdCBDb3VudGVyJiBjb3VudGVyKQor
ICAgICAgICA6IG1faWRlbnRpZmllcihjb3VudGVyLmlkZW50aWZpZXJWYWx1ZSgpLmNyZWF0ZURl
cHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVdyYXBwZXIoKSkKKyAgICAgICAgLCBtX2xpc3RTdHlsZShj
b3VudGVyLmxpc3RTdHlsZVZhbHVlKCkuY3JlYXRlRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlV3Jh
cHBlcigpKQorICAgICAgICAsIG1fc2VwYXJhdG9yKGNvdW50ZXIuc2VwYXJhdG9yVmFsdWUoKS5j
cmVhdGVEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVXcmFwcGVyKCkpCisgICAgeworICAgIH0KKyAg
ICAKKyAgICBSZWY8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IG1faWRlbnRpZmllcjsK
KyAgICBSZWY8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IG1fbGlzdFN0eWxlOworICAg
IFJlZjxEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gbV9zZXBhcmF0b3I7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZENTU09NQ291bnRlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJl
Y2F0ZWRDU1NPTUNvdW50ZXIuaWRsCShyZXZpc2lvbiAyMDk4MzgpCShmcm9tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9Db3VudGVyLmlkbDoyMDk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVj
YXRlZENTU09NQ291bnRlci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKK1sKKyAgICBFeHBvcnRUb1dyYXBwZWRGdW5jdGlvbiwKKyAgICBJbXBsZW1lbnRhdGlvbkxh
Y2tzVlRhYmxlLAorXSBpbnRlcmZhY2UgQ291bnRlciB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBpZGVudGlmaWVyOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
bGlzdFN0eWxlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2VwYXJhdG9yOwor
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Db3VudGVyLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NQ291bnRlci5p
ZGwJKHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NT
T01Db3VudGVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjAsNyArMjAsOCBAQAogWwogICAgIEV4
cG9ydFRvV3JhcHBlZEZ1bmN0aW9uLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCi1d
IGludGVyZmFjZSBDb3VudGVyIHsKKyAgICBJbnRlcmZhY2VOYW1lPUNvdW50ZXIKK10gaW50ZXJm
YWNlIERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgaWRlbnRpZmllcjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxpc3RT
dHlsZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNlcGFyYXRvcjsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZh
bHVlLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENT
U09NUHJpbWl0aXZlVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCIKKworI2lu
Y2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVkQ1NT
T01SR0JDb2xvci5oIgorI2luY2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTVJlY3QuaCIKKyNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKKy8vIEZJWE1F
OiBGb3Igbm93IHRoZXNlIHN0aWxsIGNhbGwgaW50byBDU1NQcmltaXRpdmVWYWx1ZSwgYnV0IGFz
IHdlIHJlZmFjdG9yIGludG8gc3ViY2xhc3NlcworLy8gc3VjaCBhcyBTdHlsZUNvdW50ZXJWYWx1
ZSwgU3R5bGVSZWN0VmFsdWUsIGFuZCBTdHlsZUNvbG9yVmFsdWUsIHRoZXNlIG1ldGhvZHMgd2ls
bCBnZXQKKy8vIG1vcmUgY29tcGxpY2F0ZWQuCisKK0V4Y2VwdGlvbk9yPFJlZjxEZXByZWNhdGVk
Q1NTT01Db3VudGVyPj4gRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmdldENvdW50ZXJW
YWx1ZSgpIGNvbnN0Cit7CisgICAgRXhjZXB0aW9uT3I8Q291bnRlciY+IGNvdW50ZXIgPSBtX3Zh
bHVlLT5nZXRDb3VudGVyVmFsdWUoKTsKKyAgICBpZiAoY291bnRlci5oYXNFeGNlcHRpb24oKSkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNTX0VSUiB9OworICAgIHJl
dHVybiBEZXByZWNhdGVkQ1NTT01Db3VudGVyOjpjcmVhdGUoY291bnRlci5yZWxlYXNlUmV0dXJu
VmFsdWUoKSk7Cit9CisgICAgCitFeGNlcHRpb25PcjxSZWY8RGVwcmVjYXRlZENTU09NUmVjdD4+
IERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpnZXRSZWN0VmFsdWUoKSBjb25zdAorewor
ICAgIEV4Y2VwdGlvbk9yPFJlY3QmPiByZWN0ID0gbV92YWx1ZS0+Z2V0UmVjdFZhbHVlKCk7Cisg
ICAgaWYgKHJlY3QuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
TlZBTElEX0FDQ0VTU19FUlIgfTsKKyAgICByZXR1cm4gRGVwcmVjYXRlZENTU09NUmVjdDo6Y3Jl
YXRlKHJlY3QucmVsZWFzZVJldHVyblZhbHVlKCkpOworfQorCitFeGNlcHRpb25PcjxSZWY8RGVw
cmVjYXRlZENTU09NUkdCQ29sb3I+PiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6Z2V0
UkdCQ29sb3JWYWx1ZSgpIGNvbnN0Cit7CisgICAgRXhjZXB0aW9uT3I8UmVmPFJHQkNvbG9yPj4g
Y29sb3IgPSBtX3ZhbHVlLT5nZXRSR0JDb2xvclZhbHVlKCk7CisgICAgaWYgKGNvbG9yLmhhc0V4
Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJS
IH07CisgICAgcmV0dXJuIERlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yOjpjcmVhdGUoY29sb3IucmVs
ZWFzZVJldHVyblZhbHVlKCkpOworfQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvRGVw
cmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFs
dWUuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01WYWx1ZS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIERlcHJlY2F0ZWRDU1NPTUNvdW50ZXI7CitjbGFzcyBEZXByZWNhdGVk
Q1NTT01SR0JDb2xvcjsKK2NsYXNzIERlcHJlY2F0ZWRDU1NPTVJlY3Q7CisgICAgCitjbGFzcyBE
ZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZSA6IHB1YmxpYyBEZXByZWNhdGVkQ1NTT01WYWx1
ZSB7CitwdWJsaWM6CisgICAgLy8gT25seSBleHBvc2Ugd2hhdCdzIGluIHRoZSBJREwgZmlsZS4K
KyAgICBlbnVtIFVuaXRUeXBlIHsKKyAgICAgICAgQ1NTX1VOS05PV04gPSAwLAorICAgICAgICBD
U1NfTlVNQkVSID0gMSwKKyAgICAgICAgQ1NTX1BFUkNFTlRBR0UgPSAyLAorICAgICAgICBDU1Nf
RU1TID0gMywKKyAgICAgICAgQ1NTX0VYUyA9IDQsCisgICAgICAgIENTU19QWCA9IDUsCisgICAg
ICAgIENTU19DTSA9IDYsCisgICAgICAgIENTU19NTSA9IDcsCisgICAgICAgIENTU19JTiA9IDgs
CisgICAgICAgIENTU19QVCA9IDksCisgICAgICAgIENTU19QQyA9IDEwLAorICAgICAgICBDU1Nf
REVHID0gMTEsCisgICAgICAgIENTU19SQUQgPSAxMiwKKyAgICAgICAgQ1NTX0dSQUQgPSAxMywK
KyAgICAgICAgQ1NTX01TID0gMTQsCisgICAgICAgIENTU19TID0gMTUsCisgICAgICAgIENTU19I
WiA9IDE2LAorICAgICAgICBDU1NfS0haID0gMTcsCisgICAgICAgIENTU19ESU1FTlNJT04gPSAx
OCwKKyAgICAgICAgQ1NTX1NUUklORyA9IDE5LAorICAgICAgICBDU1NfVVJJID0gMjAsCisgICAg
ICAgIENTU19JREVOVCA9IDIxLAorICAgICAgICBDU1NfQVRUUiA9IDIyLAorICAgICAgICBDU1Nf
Q09VTlRFUiA9IDIzLAorICAgICAgICBDU1NfUkVDVCA9IDI0LAorICAgICAgICBDU1NfUkdCQ09M
T1IgPSAyNSwKKyAgICAgICAgQ1NTX1ZXID0gMjYsCisgICAgICAgIENTU19WSCA9IDI3LAorICAg
ICAgICBDU1NfVk1JTiA9IDI4LAorICAgICAgICBDU1NfVk1BWCA9IDI5CisgICAgfTsKKworICAg
IHN0YXRpYyBSZWY8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZShjb25zdCBD
U1NQcmltaXRpdmVWYWx1ZSYgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZSh2YWx1ZSkpOworICAgIH0KKworICAg
IGJvb2wgZXF1YWxzKGNvbnN0IERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlJiBvdGhlcikg
Y29uc3QgeyByZXR1cm4gbV92YWx1ZS0+ZXF1YWxzKG90aGVyLm1fdmFsdWUpOyB9CisgICAgdW5z
aWduZWQgY3NzVmFsdWVUeXBlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS0+Y3NzVmFsdWVUeXBl
KCk7IH0KKyAgICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUtPmNzc1Rl
eHQoKTsgfQorICAgIAorICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHRoZXNlIHdpbGwgY29udGFp
biBtb3JlIGNvZGUgYW5kIG5vdCBqdXN0IGNhbGwgdGhyb3VnaCB0bworICAgIC8vIENTU1ByaW1p
dGl2ZVZhbHVlLgorICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIHNob3J0IHByaW1pdGl2ZVR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLT5wcmltaXRpdmVUeXBlKCk7IH0KKyAgICBXRUJD
T1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRGbG9hdFZhbHVlKHVuc2lnbmVkIHNob3J0
IHVuaXRUeXBlLCBkb3VibGUgZmxvYXRWYWx1ZSkgeyByZXR1cm4gbV92YWx1ZS0+c2V0RmxvYXRW
YWx1ZSh1bml0VHlwZSwgZmxvYXRWYWx1ZSk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRp
b25PcjxmbG9hdD4gZ2V0RmxvYXRWYWx1ZSh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSkgY29uc3Qg
eyByZXR1cm4gbV92YWx1ZS0+Z2V0RmxvYXRWYWx1ZSh1bml0VHlwZSk7IH0KKyAgICBXRUJDT1JF
X0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTdHJpbmdWYWx1ZSh1bnNpZ25lZCBzaG9ydCBz
dHJpbmdUeXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZ1ZhbHVlKSB7IHJldHVybiBtX3ZhbHVlLT5z
ZXRTdHJpbmdWYWx1ZShzdHJpbmdUeXBlLCBzdHJpbmdWYWx1ZSk7IH0KKyAgICBXRUJDT1JFX0VY
UE9SVCBFeGNlcHRpb25PcjxTdHJpbmc+IGdldFN0cmluZ1ZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV92YWx1ZS0+Z2V0U3RyaW5nVmFsdWUoKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlv
bk9yPFJlZjxEZXByZWNhdGVkQ1NTT01Db3VudGVyPj4gZ2V0Q291bnRlclZhbHVlKCkgY29uc3Q7
CisgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8UmVmPERlcHJlY2F0ZWRDU1NPTVJlY3Q+
PiBnZXRSZWN0VmFsdWUoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25PcjxS
ZWY8RGVwcmVjYXRlZENTU09NUkdCQ29sb3I+PiBnZXRSR0JDb2xvclZhbHVlKCkgY29uc3Q7CisK
KyAgICBTdHJpbmcgc3RyaW5nVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLT5zdHJpbmdW
YWx1ZSgpOyB9CisKK3Byb3RlY3RlZDoKKyAgICBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1
ZShjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYgdmFsdWUpCisgICAgICAgIDogRGVwcmVjYXRlZENT
U09NVmFsdWUoRGVwcmVjYXRlZFByaW1pdGl2ZVZhbHVlQ2xhc3MpCisgICAgICAgICwgbV92YWx1
ZShjb25zdF9jYXN0PENTU1ByaW1pdGl2ZVZhbHVlJj4odmFsdWUpKQorICAgIHsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBtX3ZhbHVlOworfTsKKyAgICAK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NPTV9W
QUxVRShEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZSwgaXNQcmltaXRpdmVWYWx1ZSgpKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0
aXZlVmFsdWUuaWRsCShyZXZpc2lvbiAyMDk4MzgpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZS5pZGw6MjA5ODM4KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworWworICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCitdIGludGVyZmFj
ZSBDU1NQcmltaXRpdmVWYWx1ZSA6IENTU1ZhbHVlIHsKKyAgICAvLyBVbml0VHlwZXMKKyAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVU5LTk9XTiA9IDA7CisgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgQ1NTX05VTUJFUiA9IDE7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1BFUkNF
TlRBR0UgPSAyOworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19FTVMgPSAzOworICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IENTU19FWFMgPSA0OworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IENTU19QWCA9IDU7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0NNID0gNjsKKyAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfTU0gPSA3OworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IENTU19JTiA9IDg7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1BUID0gOTsKKyAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUEMgPSAxMDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBDU1NfREVHID0gMTE7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1JBRCA9IDEyOwor
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19HUkFEID0gMTM7CisgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgQ1NTX01TID0gMTQ7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1MgPSAx
NTsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfSFogPSAxNjsKKyAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBDU1NfS0haID0gMTc7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0RJ
TUVOU0lPTiA9IDE4OworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19TVFJJTkcgPSAxOTsK
KyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVVJJID0gMjA7CisgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgQ1NTX0lERU5UID0gMjE7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0FU
VFIgPSAyMjsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfQ09VTlRFUiA9IDIzOworICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19SRUNUID0gMjQ7CisgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgQ1NTX1JHQkNPTE9SID0gMjU7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1ZX
ID0gMjY7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1ZIID0gMjc7CisgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgQ1NTX1ZNSU4gPSAyODsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBD
U1NfVk1BWCA9IDI5OworICAgIAorICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9y
dCBwcmltaXRpdmVUeXBlOworCisgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lkIHNldEZsb2F0
VmFsdWUob3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgdW5pdFR5cGUgPSAwLCBvcHRpb25hbCB1bnJl
c3RyaWN0ZWQgZmxvYXQgZmxvYXRWYWx1ZSA9IE5hTik7CisgICAgW01heVRocm93RXhjZXB0aW9u
XSB1bnJlc3RyaWN0ZWQgZmxvYXQgZ2V0RmxvYXRWYWx1ZShvcHRpb25hbCB1bnNpZ25lZCBzaG9y
dCB1bml0VHlwZSA9IDApOworCisgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lkIHNldFN0cmlu
Z1ZhbHVlKG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHN0cmluZ1R5cGUgPSAwLCBvcHRpb25hbCBE
T01TdHJpbmcgc3RyaW5nVmFsdWUpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5n
IGdldFN0cmluZ1ZhbHVlKCk7CisKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIENvdW50ZXIgZ2V0
Q291bnRlclZhbHVlKCk7CisgICAgW01heVRocm93RXhjZXB0aW9uXSBSZWN0IGdldFJlY3RWYWx1
ZSgpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gUkdCQ29sb3IgZ2V0UkdCQ29sb3JWYWx1ZSgp
OworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVW
YWx1ZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NP
TVByaW1pdGl2ZVZhbHVlLmlkbAkocmV2aXNpb24gMjA5ODM4KQorKysgU291cmNlL1dlYkNvcmUv
Y3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MTksNyArMTksOCBAQAogCiBbCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLV0gaW50
ZXJmYWNlIENTU1ByaW1pdGl2ZVZhbHVlIDogQ1NTVmFsdWUgeworICAgIEludGVyZmFjZU5hbWU9
Q1NTUHJpbWl0aXZlVmFsdWUKK10gaW50ZXJmYWNlIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZh
bHVlIDogRGVwcmVjYXRlZENTU09NVmFsdWUgewogICAgIC8vIFVuaXRUeXBlcwogICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IENTU19VTktOT1dOID0gMDsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBDU1NfTlVNQkVSID0gMTsKQEAgLTYwLDcgKzYxLDcgQEAKICAgICBbTWF5VGhyb3dFeGNlcHRp
b25dIHZvaWQgc2V0U3RyaW5nVmFsdWUob3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgc3RyaW5nVHlw
ZSA9IDAsIG9wdGlvbmFsIERPTVN0cmluZyBzdHJpbmdWYWx1ZSk7CiAgICAgW01heVRocm93RXhj
ZXB0aW9uXSBET01TdHJpbmcgZ2V0U3RyaW5nVmFsdWUoKTsKIAotICAgIFtNYXlUaHJvd0V4Y2Vw
dGlvbl0gQ291bnRlciBnZXRDb3VudGVyVmFsdWUoKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25d
IFJlY3QgZ2V0UmVjdFZhbHVlKCk7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBSR0JDb2xvciBn
ZXRSR0JDb2xvclZhbHVlKCk7CisgICAgW01heVRocm93RXhjZXB0aW9uXSBEZXByZWNhdGVkQ1NT
T01Db3VudGVyIGdldENvdW50ZXJWYWx1ZSgpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRGVw
cmVjYXRlZENTU09NUmVjdCBnZXRSZWN0VmFsdWUoKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25d
IERlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yIGdldFJHQkNvbG9yVmFsdWUoKTsKIH07CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk5LTIw
MDMgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCIKKyNp
bmNsdWRlICJSR0JDb2xvci5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
RGVwcmVjYXRlZENTU09NUkdCQ29sb3IgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxEZXByZWNh
dGVkQ1NTT01SR0JDb2xvcj4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGVwcmVjYXRlZENT
U09NUkdCQ29sb3I+IGNyZWF0ZShjb25zdCBSR0JDb2xvciYgY29sb3IpIHsgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRGVwcmVjYXRlZENTU09NUkdCQ29sb3IoY29sb3IpKTsgfQorCisgICAgRGVwcmVj
YXRlZENTU09NUHJpbWl0aXZlVmFsdWUqIHJlZCgpIHsgcmV0dXJuIG1fcmVkLmdldCgpOyB9Cisg
ICAgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUqIGdyZWVuKCkgeyByZXR1cm4gbV9ncmVl
bi5nZXQoKTsgfQorICAgIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKiBibHVlKCkgeyBy
ZXR1cm4gbV9ibHVlLmdldCgpOyB9CisgICAgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUq
IGFscGhhKCkgeyByZXR1cm4gbV9hbHBoYS5nZXQoKTsgfQorICAgIAorICAgIENvbG9yIGNvbG9y
KCkgY29uc3QgeyByZXR1cm4gQ29sb3IobV9yZ2JDb2xvcik7IH0KKworcHJpdmF0ZToKKyAgICBE
ZXByZWNhdGVkQ1NTT01SR0JDb2xvcihjb25zdCBSR0JDb2xvciYgY29sb3IpCisgICAgICAgIDog
bV9yZ2JDb2xvcihjb2xvci5yZ2JDb2xvcigpKQorICAgIHsKKyAgICAgICAgLy8gUmVkCisgICAg
ICAgIHVuc2lnbmVkIHZhbHVlID0gKG1fcmdiQ29sb3IgPj4gMTYpICYgMHhGRjsKKyAgICAgICAg
YXV0byByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX05VTUJFUik7CisgICAgICAgIG1fcmVkID0gcmVzdWx0LT5jcmVhdGVEZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVXcmFwcGVyKCk7CisgICAgICAgIAorICAgICAgICAvLyBHcmVl
bgorICAgICAgICB2YWx1ZSA9IChtX3JnYkNvbG9yID4+IDgpICYgMHhGRjsKKyAgICAgICAgcmVz
dWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19OVU1CRVIpOworICAgICAgICBtX2dyZWVuID0gcmVzdWx0LT5jcmVhdGVEZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVXcmFwcGVyKCk7CisKKyAgICAgICAgLy8gQmx1ZQorICAgICAgICB2YWx1
ZSA9IG1fcmdiQ29sb3IgJiAweEZGOworICAgICAgICByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CisgICAgICAg
IG1fYmx1ZSA9IHJlc3VsdC0+Y3JlYXRlRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlV3JhcHBlcigp
OworICAgICAgICAKKyAgICAgICAgLy8gQWxwaGEKKyAgICAgICAgZmxvYXQgYWxwaGFWYWx1ZSA9
IHN0YXRpY19jYXN0PGZsb2F0PigobV9yZ2JDb2xvciA+PiAyNCkgJiAweEZGKSAvIDB4RkY7Cisg
ICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoYWxwaGFWYWx1ZSwgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOworICAgICAgICBtX2FscGhhID0gcmVzdWx0LT5j
cmVhdGVEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVXcmFwcGVyKCk7CisgICAgfQorICAgIAorICAg
IFJHQkEzMiBtX3JnYkNvbG9yOworICAgIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVW
YWx1ZT4gbV9yZWQ7CisgICAgUmVmUHRyPERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPiBt
X2dyZWVuOworICAgIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gbV9ibHVl
OworICAgIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gbV9hbHBoYTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXBy
ZWNhdGVkQ1NTT01SR0JDb2xvci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nz
L0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmlkbAkocmV2aXNpb24gMjA5ODM4KQkoZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9jc3MvUkdCQ29sb3IuaWRsOjIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01SR0JDb2xvci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndl
aW5pZ0BnbWFpbC5jb20+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKK1sKKyAgICBFeHBvcnRUb1dyYXBwZWRGdW5jdGlvbiwKKyAgICBJbXBs
ZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorXSBpbnRlcmZhY2UgUkdCQ29sb3IgeworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSByZWQ7CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIENTU1ByaW1pdGl2ZVZhbHVlIGdyZWVuOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQ
cmltaXRpdmVWYWx1ZSBibHVlOworCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2
ZVZhbHVlIGFscGhhOworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NT
T01SR0JDb2xvci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0
ZWRDU1NPTVJHQkNvbG9yLmlkbAkocmV2aXNpb24gMjA5ODM4KQorKysgU291cmNlL1dlYkNvcmUv
Y3NzL0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjEsMTAg
KzIxLDExIEBACiBbCiAgICAgRXhwb3J0VG9XcmFwcGVkRnVuY3Rpb24sCiAgICAgSW1wbGVtZW50
YXRpb25MYWNrc1ZUYWJsZSwKLV0gaW50ZXJmYWNlIFJHQkNvbG9yIHsKLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgcmVkOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBD
U1NQcmltaXRpdmVWYWx1ZSBncmVlbjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0
aXZlVmFsdWUgYmx1ZTsKKyAgICBJbnRlcmZhY2VOYW1lPVJHQkNvbG9yCitdIGludGVyZmFjZSBE
ZXByZWNhdGVkQ1NTT01SR0JDb2xvciB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlIHJlZDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRGVwcmVj
YXRlZENTU09NUHJpbWl0aXZlVmFsdWUgZ3JlZW47CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERl
cHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlIGJsdWU7CiAKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgQ1NTUHJpbWl0aXZlVmFsdWUgYWxwaGE7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlIGFscGhhOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkQ1NTT01SZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Y3NzL0RlcHJlY2F0ZWRDU1NPTVJlY3QuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9jc3MvRGVwcmVjYXRlZENTU09NUmVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgiCisjaW5j
bHVkZSAiUmVjdC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGVwcmVj
YXRlZENTU09NUmVjdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERlcHJlY2F0ZWRDU1NPTVJl
Y3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERlcHJlY2F0ZWRDU1NPTVJlY3Q+IGNyZWF0
ZShjb25zdCBSZWN0JiByZWN0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERlcHJlY2F0ZWRDU1NP
TVJlY3QocmVjdCkpOyB9CisKKyAgICBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZSogdG9w
KCkgY29uc3QgeyByZXR1cm4gbV90b3AuZ2V0KCk7IH0KKyAgICBEZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZSogcmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JpZ2h0LmdldCgpOyB9CisgICAg
RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUqIGJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIG1f
Ym90dG9tLmdldCgpOyB9CisgICAgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUqIGxlZnQo
KSBjb25zdCB7IHJldHVybiBtX2xlZnQuZ2V0KCk7IH0KKyAgICAKK3ByaXZhdGU6CisgICAgRGVw
cmVjYXRlZENTU09NUmVjdChjb25zdCBSZWN0JiByZWN0KQorICAgIHsKKyAgICAgICAgaWYgKHJl
Y3QudG9wKCkpCisgICAgICAgICAgICBtX3RvcCA9IHJlY3QudG9wKCktPmNyZWF0ZURlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVdyYXBwZXIoKTsKKyAgICAgICAgaWYgKHJlY3QucmlnaHQoKSkKKyAg
ICAgICAgICAgIG1fcmlnaHQgPSByZWN0LnJpZ2h0KCktPmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVdyYXBwZXIoKTsKKyAgICAgICAgaWYgKHJlY3QuYm90dG9tKCkpCisgICAgICAgICAg
ICBtX2JvdHRvbSA9IHJlY3QuYm90dG9tKCktPmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVByaW1pdGl2
ZVdyYXBwZXIoKTsKKyAgICAgICAgaWYgKHJlY3QubGVmdCgpKQorICAgICAgICAgICAgbV9sZWZ0
ID0gcmVjdC5sZWZ0KCktPmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVdyYXBwZXIoKTsK
KyAgICB9CisgICAgCisgICAgUmVmUHRyPERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPiBt
X3RvcDsKKyAgICBSZWZQdHI8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IG1fcmlnaHQ7
CisgICAgUmVmUHRyPERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPiBtX2JvdHRvbTsKKyAg
ICBSZWZQdHI8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IG1fbGVmdDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVk
Q1NTT01SZWN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZENTU09NUmVjdC5pZGwJKHJldmlzaW9uIDIwOTgzOCkJKGZyb20gU291cmNlL1dlYkNvcmUvY3Nz
L1JlY3QuaWRsOjIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01S
ZWN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworWworICAgIEV4
cG9ydFRvV3JhcHBlZEZ1bmN0aW9uLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCitd
IGludGVyZmFjZSBSZWN0IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFs
dWUgdG9wOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSByaWdodDsK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgYm90dG9tOworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSBsZWZ0OworfTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01SZWN0LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUmVjdC5pZGwJKHJldmlzaW9uIDIwOTgzOCkK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01SZWN0LmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMjAsOSArMjAsMTAgQEAKIFsKICAgICBFeHBvcnRUb1dyYXBwZWRGdW5jdGlvbiwK
ICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotXSBpbnRlcmZhY2UgUmVjdCB7Ci0gICAg
cmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2ZVZhbHVlIHRvcDsKLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgcmlnaHQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IENTU1ByaW1pdGl2ZVZhbHVlIGJvdHRvbTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJp
bWl0aXZlVmFsdWUgbGVmdDsKKyAgICBJbnRlcmZhY2VOYW1lPVJlY3QKK10gaW50ZXJmYWNlIERl
cHJlY2F0ZWRDU1NPTVJlY3QgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEZXByZWNhdGVkQ1NT
T01QcmltaXRpdmVWYWx1ZSB0b3A7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERlcHJlY2F0ZWRD
U1NPTVByaW1pdGl2ZVZhbHVlIHJpZ2h0OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEZXByZWNh
dGVkQ1NTT01QcmltaXRpdmVWYWx1ZSBib3R0b207CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERl
cHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlIGxlZnQ7CiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGVwcmVjYXRlZENTU09NVmFsdWUu
aCIKKworI2luY2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVk
ZSAiRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAg
ICAKK3RlbXBsYXRlPGNsYXNzIENoaWxkQ2xhc3NUeXBlPgoraW5saW5lIHN0YXRpYyBib29sIGNv
bXBhcmVDU1NPTVZhbHVlcyhjb25zdCBEZXByZWNhdGVkQ1NTT01WYWx1ZSYgZmlyc3QsIGNvbnN0
IERlcHJlY2F0ZWRDU1NPTVZhbHVlJiBzZWNvbmQpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGNvbnN0IENoaWxkQ2xhc3NUeXBlJj4oZmlyc3QpLmVxdWFscyhzdGF0aWNfY2FzdDxjb25zdCBD
aGlsZENsYXNzVHlwZSY+KHNlY29uZCkpOworfQorCitib29sIERlcHJlY2F0ZWRDU1NPTVZhbHVl
OjplcXVhbHMoY29uc3QgRGVwcmVjYXRlZENTU09NVmFsdWUmIG90aGVyKSBjb25zdAoreworICAg
IGlmIChtX2NsYXNzVHlwZSA9PSBvdGhlci5tX2NsYXNzVHlwZSkgeworICAgICAgICBzd2l0Y2gg
KG1fY2xhc3NUeXBlKSB7CisgICAgICAgIGNhc2UgRGVwcmVjYXRlZENvbXBsZXhWYWx1ZUNsYXNz
OgorICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NPTVZhbHVlczxEZXByZWNhdGVkQ1NTT01D
b21wbGV4VmFsdWU+KCp0aGlzLCBvdGhlcik7CisgICAgICAgIGNhc2UgRGVwcmVjYXRlZFByaW1p
dGl2ZVZhbHVlQ2xhc3M6CisgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU09NVmFsdWVzPERl
cHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPigqdGhpcywgb3RoZXIpOworICAgICAgICBjYXNl
IERlcHJlY2F0ZWRWYWx1ZUxpc3RDbGFzczoKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NT
T01WYWx1ZXM8RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0PigqdGhpcywgb3RoZXIpOworICAgICAg
ICB9CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBEZXByZWNhdGVkQ1NTT01W
YWx1ZTo6ZGVzdHJveSgpCit7CisgICAgc3dpdGNoIChjbGFzc1R5cGUoKSkgeworICAgIGNhc2Ug
RGVwcmVjYXRlZENvbXBsZXhWYWx1ZUNsYXNzOiB7CisgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxE
ZXByZWNhdGVkQ1NTT01Db21wbGV4VmFsdWU+KHRoaXMpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGNhc2UgRGVwcmVjYXRlZFByaW1pdGl2ZVZhbHVlQ2xhc3M6IHsKKyAgICAgICAgZGVs
ZXRlIGRvd25jYXN0PERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPih0aGlzKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIERlcHJlY2F0ZWRWYWx1ZUxpc3RDbGFzczogewor
ICAgICAgICBkZWxldGUgZG93bmNhc3Q8RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Pih0aGlzKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3Vuc2lnbmVkIERlcHJlY2F0ZWRDU1NPTVZhbHVlOjpj
c3NWYWx1ZVR5cGUoKSBjb25zdAoreworICAgIHN3aXRjaCAobV9jbGFzc1R5cGUpIHsKKyAgICBj
YXNlIERlcHJlY2F0ZWRDb21wbGV4VmFsdWVDbGFzczoKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0
PERlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZT4oKnRoaXMpLmNzc1ZhbHVlVHlwZSgpOworICAg
IGNhc2UgRGVwcmVjYXRlZFByaW1pdGl2ZVZhbHVlQ2xhc3M6CisgICAgICAgIHJldHVybiBkb3du
Y2FzdDxEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmNzc1ZhbHVlVHlwZSgp
OworICAgIGNhc2UgRGVwcmVjYXRlZFZhbHVlTGlzdENsYXNzOgorICAgICAgICByZXR1cm4gZG93
bmNhc3Q8RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0PigqdGhpcykuY3NzVmFsdWVUeXBlKCk7Cisg
ICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBDU1NfQ1VTVE9NOwor
fQorCitTdHJpbmcgRGVwcmVjYXRlZENTU09NVmFsdWU6OmNzc1RleHQoKSBjb25zdAoreworICAg
IHN3aXRjaCAobV9jbGFzc1R5cGUpIHsKKyAgICBjYXNlIERlcHJlY2F0ZWRDb21wbGV4VmFsdWVD
bGFzczoKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PERlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1
ZT4oKnRoaXMpLmNzc1RleHQoKTsKKyAgICBjYXNlIERlcHJlY2F0ZWRQcmltaXRpdmVWYWx1ZUNs
YXNzOgorICAgICAgICByZXR1cm4gZG93bmNhc3Q8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFs
dWU+KCp0aGlzKS5jc3NUZXh0KCk7CisgICAgY2FzZSBEZXByZWNhdGVkVmFsdWVMaXN0Q2xhc3M6
CisgICAgICAgIHJldHVybiBkb3duY2FzdDxEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q+KCp0aGlz
KS5jc3NUZXh0KCk7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biAiIjsKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZh
bHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZh
bHVlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NP
TVZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9UeXBlQ2Fz
dHMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBEZXByZWNhdGVkQ1NTT01WYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPERl
cHJlY2F0ZWRDU1NPTVZhbHVlPiB7CitwdWJsaWM6CisgICAgLy8gRXhhY3RseSBtYXRjaCB0aGUg
SURMLiBObyByZWFzb24gdG8gYWRkIGFueXRoaW5nIGlmIGl0J3Mgbm90IGluIHRoZSBJREwuCisg
ICAgZW51bSBUeXBlIHsKKyAgICAgICAgQ1NTX0lOSEVSSVQgPSAwLAorICAgICAgICBDU1NfUFJJ
TUlUSVZFX1ZBTFVFID0gMSwKKyAgICAgICAgQ1NTX1ZBTFVFX0xJU1QgPSAyLAorICAgICAgICBD
U1NfQ1VTVE9NID0gMworICAgIH07CisKKyAgICAvLyBPdmVycmlkZSBSZWZDb3VudGVkJ3MgZGVy
ZWYoKSB0byBlbnN1cmUgb3BlcmF0b3IgZGVsZXRlIGlzIGNhbGxlZCBvbgorICAgIC8vIHRoZSBh
cHByb3ByaWF0ZSBzdWJjbGFzcyB0eXBlLgorICAgIHZvaWQgZGVyZWYoKQorICAgIHsKKyAgICAg
ICAgaWYgKGRlcmVmQmFzZSgpKQorICAgICAgICAgICAgZGVzdHJveSgpOworICAgIH0KKworICAg
IFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGNzc1ZhbHVlVHlwZSgpIGNvbnN0OworCisgICAgV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKKyAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRDc3NUZXh0KGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIHsgfTsgfSAvLyBXaWxsIG5ldmVy
IGltcGxlbWVudC4KKworICAgIGJvb2wgZXF1YWxzKGNvbnN0IERlcHJlY2F0ZWRDU1NPTVZhbHVl
JiBvdGhlcikgY29uc3Q7CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IERlcHJlY2F0ZWRDU1NP
TVZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gZXF1YWxzKG90aGVyKTsgfQorCisgICAgYm9v
bCBpc0NvbXBsZXhWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IERlcHJlY2F0
ZWRDb21wbGV4VmFsdWVDbGFzczsgfQorICAgIGJvb2wgaXNQcmltaXRpdmVWYWx1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IERlcHJlY2F0ZWRQcmltaXRpdmVWYWx1ZUNsYXNzOyB9
CisgICAgYm9vbCBpc1ZhbHVlTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IERl
cHJlY2F0ZWRWYWx1ZUxpc3RDbGFzczsgfQorICAgIAorcHJvdGVjdGVkOgorICAgIHN0YXRpYyBj
b25zdCBzaXplX3QgQ2xhc3NUeXBlQml0cyA9IDI7CisgICAgZW51bSBEZXByZWNhdGVkQ2xhc3NU
eXBlIHsKKyAgICAgICAgRGVwcmVjYXRlZENvbXBsZXhWYWx1ZUNsYXNzLAorICAgICAgICBEZXBy
ZWNhdGVkUHJpbWl0aXZlVmFsdWVDbGFzcywKKyAgICAgICAgRGVwcmVjYXRlZFZhbHVlTGlzdENs
YXNzCisgICAgfTsKKworICAgIERlcHJlY2F0ZWRDbGFzc1R5cGUgY2xhc3NUeXBlKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8RGVwcmVjYXRlZENsYXNzVHlwZT4obV9jbGFzc1R5cGUpOyB9
CisKKyAgICBEZXByZWNhdGVkQ1NTT01WYWx1ZShEZXByZWNhdGVkQ2xhc3NUeXBlIGNsYXNzVHlw
ZSkKKyAgICAgICAgOiBtX2NsYXNzVHlwZShjbGFzc1R5cGUpCisgICAgeworICAgIH0KKworICAg
IC8vIE5PVEU6IFRoaXMgY2xhc3MgaXMgbm9uLXZpcnR1YWwgZm9yIG1lbW9yeSBhbmQgcGVyZm9y
bWFuY2UgcmVhc29ucy4KKyAgICAvLyBEb24ndCBnbyBtYWtpbmcgaXQgdmlydHVhbCBhZ2FpbiB1
bmxlc3MgeW91IGtub3cgZXhhY3RseSB3aGF0IHlvdSdyZSBkb2luZyEKKyAgICB+RGVwcmVjYXRl
ZENTU09NVmFsdWUoKSB7IH0KKworcHJpdmF0ZToKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRl
c3Ryb3koKTsKKworcHJvdGVjdGVkOgorICAgIHVuc2lnbmVkIG1fdmFsdWVMaXN0U2VwYXJhdG9y
IDogQ1NTVmFsdWU6OlZhbHVlTGlzdFNlcGFyYXRvckJpdHM7CisKK3ByaXZhdGU6CisgICAgdW5z
aWduZWQgbV9jbGFzc1R5cGUgOiBDbGFzc1R5cGVCaXRzOyAvLyBDbGFzc1R5cGUKK307CisKK2Ns
YXNzIERlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZSA6IHB1YmxpYyBEZXByZWNhdGVkQ1NTT01W
YWx1ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEZXByZWNhdGVkQ1NTT01Db21wbGV4VmFs
dWU+IGNyZWF0ZShjb25zdCBDU1NWYWx1ZSYgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBEZXByZWNhdGVkQ1NTT01Db21wbGV4VmFsdWUodmFsdWUpKTsKKyAgICB9
CisKKyAgICBib29sIGVxdWFscyhjb25zdCBEZXByZWNhdGVkQ1NTT01Db21wbGV4VmFsdWUmIG90
aGVyKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLT5lcXVhbHMob3RoZXIubV92YWx1ZSk7IH0KKyAg
ICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUtPmNzc1RleHQoKTsgfQor
CisgICAgdW5zaWduZWQgY3NzVmFsdWVUeXBlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS0+Y3Nz
VmFsdWVUeXBlKCk7IH0KKworcHJvdGVjdGVkOgorICAgIERlcHJlY2F0ZWRDU1NPTUNvbXBsZXhW
YWx1ZShjb25zdCBDU1NWYWx1ZSYgdmFsdWUpCisgICAgICAgIDogRGVwcmVjYXRlZENTU09NVmFs
dWUoRGVwcmVjYXRlZENvbXBsZXhWYWx1ZUNsYXNzKQorICAgICAgICAsIG1fdmFsdWUoY29uc3Rf
Y2FzdDxDU1NWYWx1ZSY+KHZhbHVlKSkKKyAgICB7CisgICAgfQorCitwcml2YXRlOgorICAgIFJl
ZjxDU1NWYWx1ZT4gbV92YWx1ZTsKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NPTV9WQUxVRShUb1ZhbHVlVHlwZU5h
bWUsIHByZWRpY2F0ZSkgXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpU
b1ZhbHVlVHlwZU5hbWUpIFwKK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpEZXBy
ZWNhdGVkQ1NTT01WYWx1ZSYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlLnByZWRpY2F0ZTsgfSBcCitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NT
T01fVkFMVUUoRGVwcmVjYXRlZENTU09NQ29tcGxleFZhbHVlLCBpc0NvbXBsZXhWYWx1ZSgpKQor
CisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmlkbAko
cmV2aXNpb24gMjA5ODM4KQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaWRsOjIw
OTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKK1sKKyAgICBDdXN0
b21Jc1JlYWNoYWJsZSwKKyAgICBDdXN0b21Ub0pTT2JqZWN0LAorICAgIEV4cG9ydFRvV3JhcHBl
ZEZ1bmN0aW9uLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgSlNDdXN0b21G
aW5hbGl6ZSwKK10gaW50ZXJmYWNlIENTU1ZhbHVlIHsKKyAgICAvLyBVbml0VHlwZXMKKyAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfSU5IRVJJVCA9IDA7CisgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgQ1NTX1BSSU1JVElWRV9WQUxVRSA9IDE7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
Q1NTX1ZBTFVFX0xJU1QgPSAyOworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19DVVNUT00g
PSAzOworCisgICAgW1NldHRlck1heVRocm93RXhjZXB0aW9uXSBhdHRyaWJ1dGUgRE9NU3RyaW5n
PyBjc3NUZXh0OworCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNzc1Zh
bHVlVHlwZTsKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFs
dWUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01W
YWx1ZS5pZGwJKHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNh
dGVkQ1NTT01WYWx1ZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDggQEAKICAgICBF
eHBvcnRUb1dyYXBwZWRGdW5jdGlvbiwKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAog
ICAgIEpTQ3VzdG9tRmluYWxpemUsCi1dIGludGVyZmFjZSBDU1NWYWx1ZSB7CisgICAgSW50ZXJm
YWNlTmFtZT1DU1NWYWx1ZQorXSBpbnRlcmZhY2UgRGVwcmVjYXRlZENTU09NVmFsdWUgewogICAg
IC8vIFVuaXRUeXBlcwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19JTkhFUklUID0gMDsK
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUFJJTUlUSVZFX1ZBTFVFID0gMTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxp
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmgiCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBEZXByZWNhdGVkQ1NT
T01WYWx1ZUxpc3Q6OmVxdWFscyhjb25zdCBEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QmIG90aGVy
KSBjb25zdAoreworICAgIGlmIChtX3ZhbHVlTGlzdFNlcGFyYXRvciAhPSBvdGhlci5tX3ZhbHVl
TGlzdFNlcGFyYXRvcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlmIChtX3Zh
bHVlcy5zaXplKCkgIT0gb3RoZXIubV92YWx1ZXMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgc2l6ZSA9IG1fdmFsdWVzLnNpemUo
KTsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBpZiAoIW1fdmFsdWVzW2ldLmdldCgpLmVxdWFs
cyhvdGhlci5tX3ZhbHVlc1tpXSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
ICAgIHJldHVybiB0cnVlOworfQorCitTdHJpbmcgRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Ojpj
c3NUZXh0KCkgY29uc3QKK3sKKyAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKKyAgICBTdHJpbmcg
c2VwYXJhdG9yOworICAgIHN3aXRjaCAobV92YWx1ZUxpc3RTZXBhcmF0b3IpIHsKKyAgICBjYXNl
IENTU1ZhbHVlOjpTcGFjZVNlcGFyYXRvcjoKKyAgICAgICAgc2VwYXJhdG9yID0gQVNDSUlMaXRl
cmFsKCIgIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWU6OkNvbW1hU2VwYXJh
dG9yOgorICAgICAgICBzZXBhcmF0b3IgPSBBU0NJSUxpdGVyYWwoIiwgIik7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ1NTVmFsdWU6OlNsYXNoU2VwYXJhdG9yOgorICAgICAgICBzZXBhcmF0
b3IgPSBBU0NJSUxpdGVyYWwoIiAvICIpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgCisgICAgZm9yIChhdXRv
JiB2YWx1ZSA6IG1fdmFsdWVzKSB7CisgICAgICAgIGlmICghcmVzdWx0LmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc2VwYXJhdG9yKTsKKyAgICAgICAgcmVzdWx0LmFwcGVu
ZCh2YWx1ZS5nZXQoKS5jc3NUZXh0KCkpOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gcmVzdWx0
LnRvU3RyaW5nKCk7Cit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVk
Q1NTT01WYWx1ZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVj
YXRlZENTU09NVmFsdWVMaXN0LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvY3Nz
L0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgorI2luY2x1ZGUgIkRlcHJlY2F0ZWRD
U1NPTVZhbHVlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIERlcHJlY2F0
ZWRDU1NPTVZhbHVlTGlzdCA6IHB1YmxpYyBEZXByZWNhdGVkQ1NTT01WYWx1ZSB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q+IGNyZWF0ZShjb25zdCBD
U1NWYWx1ZUxpc3QmIHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0KHZhbHVlKSk7CisgICAgfQorICAgIAorICAgIGJvb2wg
ZXF1YWxzKGNvbnN0IERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdCYgb3RoZXIpIGNvbnN0OworICAg
IHVuc2lnbmVkIGNzc1ZhbHVlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIENTU19WQUxVRV9MSVNUOyB9
CisgICAgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKKyAgICAKKyAgICBzaXplX3QgbGVuZ3RoKCkg
Y29uc3QgeyByZXR1cm4gbV92YWx1ZXMuc2l6ZSgpOyB9CisgICAgRGVwcmVjYXRlZENTU09NVmFs
dWUqIGl0ZW0oc2l6ZV90IGluZGV4KSB7IHJldHVybiBpbmRleCA8IG1fdmFsdWVzLnNpemUoKSA/
IG1fdmFsdWVzW2luZGV4XS5wdHIoKSA6IG51bGxwdHI7IH0KKyAgICBjb25zdCBEZXByZWNhdGVk
Q1NTT01WYWx1ZSogaXRlbShzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGluZGV4IDwgbV92
YWx1ZXMuc2l6ZSgpID8gbV92YWx1ZXNbaW5kZXhdLnB0cigpIDogbnVsbHB0cjsgfQorCitwcm90
ZWN0ZWQ6CisgICAgRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0KGNvbnN0IENTU1ZhbHVlTGlzdCYg
dmFsdWUpCisgICAgICAgIDogRGVwcmVjYXRlZENTU09NVmFsdWUoRGVwcmVjYXRlZFZhbHVlTGlz
dENsYXNzKQorICAgIHsKKyAgICAgICAgbV92YWx1ZUxpc3RTZXBhcmF0b3IgPSB2YWx1ZS5zZXBh
cmF0b3IoKTsKKyAgICAgICAgbV92YWx1ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh2YWx1ZS5s
ZW5ndGgoKSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDAsIHNpemUgPSB2YWx1ZS5sZW5n
dGgoKTsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgICAgIG1fdmFsdWVzLnVuY2hlY2tlZEFwcGVu
ZCh2YWx1ZS5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKGkpLT5jcmVhdGVEZXByZWNhdGVkQ1NTT01X
cmFwcGVyKCkpOworICAgIH0KKyAgICAKK3ByaXZhdGU6CisgICAgVmVjdG9yPFJlZjxEZXByZWNh
dGVkQ1NTT01WYWx1ZT4sIDQ+IG1fdmFsdWVzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NTU09NX1ZBTFVFKERlcHJlY2F0ZWRDU1NPTVZh
bHVlTGlzdCwgaXNWYWx1ZUxpc3QoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNh
dGVkQ1NTT01WYWx1ZUxpc3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9E
ZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaWRsCShyZXZpc2lvbiAyMDk4MzgpCShmcm9tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsOjIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKy8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CitbCisgICAgSW1wbGVtZW50YXRp
b25MYWNrc1ZUYWJsZSwKK10gaW50ZXJmYWNlIENTU1ZhbHVlTGlzdCA6IENTU1ZhbHVlIHsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIENT
U1ZhbHVlIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7Cit9OworCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmlkbAkocmV2aXNpb24gMjA5
ODM4KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDkgQEAKIC8vIEludHJvZHVjZWQgaW4gRE9NIExl
dmVsIDI6CiBbCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLV0gaW50ZXJmYWNlIENT
U1ZhbHVlTGlzdCA6IENTU1ZhbHVlIHsKKyAgICBJbnRlcmZhY2VOYW1lPUNTU1ZhbHVlTGlzdAor
XSBpbnRlcmZhY2UgRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0IDogRGVwcmVjYXRlZENTU09NVmFs
dWUgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICBn
ZXR0ZXIgQ1NTVmFsdWUgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICBnZXR0ZXIgRGVw
cmVjYXRlZENTU09NVmFsdWUgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKIH07CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2Nzcy9MZW5ndGhSZXBlYXQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvTGVuZ3RoUmVwZWF0LmgJKHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9MZW5ndGhSZXBlYXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsOCArMzYsNiBA
QCBjbGFzcyBMZW5ndGhSZXBlYXQgZmluYWwgOiBwdWJsaWMgUmVmQ291CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxMZW5ndGhSZXBlYXQ+IGNyZWF0ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiBpbnRl
cnZhbCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBMZW5ndGhSZXBlYXQoaW50ZXJ2YWwpKTsgfQog
Ci0gICAgUmVmPExlbmd0aFJlcGVhdD4gY2xvbmVGb3JDU1NPTSgpIGNvbnN0IHsgcmV0dXJuIGNy
ZWF0ZShpbnRlcnZhbCgpKTsgfQotCiAgICAgQ1NTVmFsdWUqIGludGVydmFsKCkgY29uc3QgeyBy
ZXR1cm4gbV9pbnRlcnZhbC5nZXQoKTsgfQogCiAgICAgdm9pZCBzZXRJbnRlcnZhbChQYXNzUmVm
UHRyPENTU1ZhbHVlPiBpbnRlcnZhbCkgeyBtX2ludGVydmFsID0gaW50ZXJ2YWw7IH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFy
YXRpb24uY3BwCShyZXZpc2lvbiAyMDk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVy
dHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc1LDE5ICsx
NzUsMTkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUHJvcGVydHlTZXRDU1NTdHlsZURlYwogICAgIHJl
dHVybiB7IH07CiB9CiAKLVJlZlB0cjxDU1NWYWx1ZT4gUHJvcGVydHlTZXRDU1NTdHlsZURlY2xh
cmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKQor
UmVmUHRyPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRp
b246OmdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgaWYgKGlzQ3VzdG9tUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSkpIHsKICAgICAgICAgUmVm
UHRyPENTU1ZhbHVlPiB2YWx1ZSA9IG1fcHJvcGVydHlTZXQtPmdldEN1c3RvbVByb3BlcnR5Q1NT
VmFsdWUocHJvcGVydHlOYW1lKTsKICAgICAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgICAgICByZXR1cm4gY2xvbmVBbmRDYWNoZUZvckNTU09NKHZhbHVl
LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHdyYXBGb3JEZXByZWNhdGVkQ1NTT00odmFsdWUuZ2V0
KCkpOwogICAgIH0KICAgICAKICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQgPSBjc3NQcm9w
ZXJ0eUlEKHByb3BlcnR5TmFtZSk7CiAgICAgaWYgKCFwcm9wZXJ0eUlEKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gY2xvbmVBbmRDYWNoZUZvckNTU09NKGdldFByb3BlcnR5
Q1NTVmFsdWVJbnRlcm5hbChwcm9wZXJ0eUlEKS5nZXQoKSk7CisgICAgcmV0dXJuIHdyYXBGb3JE
ZXByZWNhdGVkQ1NTT00oZ2V0UHJvcGVydHlDU1NWYWx1ZUludGVybmFsKHByb3BlcnR5SUQpLmdl
dCgpKTsKIH0KIAogU3RyaW5nIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJv
cGVydHlWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKQEAgLTMxMywxOSArMzEzLDE5
IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IFByb3BlcnR5U2V0Q1NTU3R5bGVEZWMKICAgICByZXR1cm4g
Y2hhbmdlZDsKIH0KIAotQ1NTVmFsdWUqIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6
Y2xvbmVBbmRDYWNoZUZvckNTU09NKENTU1ZhbHVlKiBpbnRlcm5hbFZhbHVlKQorRGVwcmVjYXRl
ZENTU09NVmFsdWUqIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6d3JhcEZvckRlcHJl
Y2F0ZWRDU1NPTShDU1NWYWx1ZSogaW50ZXJuYWxWYWx1ZSkKIHsKICAgICBpZiAoIWludGVybmFs
VmFsdWUpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgLy8gVGhlIG1hcCBpcyBoZXJlIHRvIG1h
aW50YWluIHRoZSBvYmplY3QgaWRlbnRpdHkgb2YgdGhlIENTU1ZhbHVlcyBvdmVyIG11bHRpcGxl
IGludm9jYXRpb25zLgogICAgIC8vIEZJWE1FOiBJdCBpcyBsaWtlbHkgdGhhdCB0aGUgaWRlbnRp
dHkgaXMgbm90IGltcG9ydGFudCBmb3Igd2ViIGNvbXBhdGliaWxpdHkgYW5kIHRoaXMgY29kZSBz
aG91bGQgYmUgcmVtb3ZlZC4KLSAgICBpZiAoIW1fY3Nzb21DU1NWYWx1ZUNsb25lcykKLSAgICAg
ICAgbV9jc3NvbUNTU1ZhbHVlQ2xvbmVzID0gc3RkOjptYWtlX3VuaXF1ZTxIYXNoTWFwPENTU1Zh
bHVlKiwgUmVmUHRyPENTU1ZhbHVlPj4+KCk7CisgICAgaWYgKCFtX2Nzc29tVmFsdWVXcmFwcGVy
cykKKyAgICAgICAgbV9jc3NvbVZhbHVlV3JhcHBlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPEhhc2hN
YXA8Q1NTVmFsdWUqLCBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+Pj4oKTsKICAgICAKLSAg
ICBSZWZQdHI8Q1NTVmFsdWU+JiBjbG9uZWRWYWx1ZSA9IG1fY3Nzb21DU1NWYWx1ZUNsb25lcy0+
YWRkKGludGVybmFsVmFsdWUsIFJlZlB0cjxDU1NWYWx1ZT4oKSkuaXRlcmF0b3ItPnZhbHVlOwor
ICAgIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4mIGNsb25lZFZhbHVlID0gbV9jc3NvbVZh
bHVlV3JhcHBlcnMtPmFkZChpbnRlcm5hbFZhbHVlLCBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFs
dWU+KCkpLml0ZXJhdG9yLT52YWx1ZTsKICAgICBpZiAoIWNsb25lZFZhbHVlKQotICAgICAgICBj
bG9uZWRWYWx1ZSA9IGludGVybmFsVmFsdWUtPmNsb25lRm9yQ1NTT00oKTsKKyAgICAgICAgY2xv
bmVkVmFsdWUgPSBpbnRlcm5hbFZhbHVlLT5jcmVhdGVEZXByZWNhdGVkQ1NTT01XcmFwcGVyKCk7
CiAgICAgcmV0dXJuIGNsb25lZFZhbHVlLmdldCgpOwogfQogCkBAIC0zODQsNyArMzg0LDcgQEAg
dm9pZCBTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpkaWRNdQogICAgIEFTU0VSVChtX3Bh
cmVudFJ1bGUtPnBhcmVudFN0eWxlU2hlZXQoKSk7CiAKICAgICBpZiAodHlwZSA9PSBQcm9wZXJ0
eUNoYW5nZWQpCi0gICAgICAgIG1fY3Nzb21DU1NWYWx1ZUNsb25lcyA9IG51bGxwdHI7CisgICAg
ICAgIG1fY3Nzb21WYWx1ZVdyYXBwZXJzID0gbnVsbHB0cjsKIAogICAgIC8vIFN0eWxlIHNoZWV0
IG11dGF0aW9uIG5lZWRzIHRvIGJlIHNpZ25hbGVkIGV2ZW4gaWYgdGhlIGNoYW5nZSBmYWlsZWQu
IHdpbGxNdXRhdGUqL2RpZE11dGF0ZSogbXVzdCBwYWlyLgogICAgIG1fcGFyZW50UnVsZS0+cGFy
ZW50U3R5bGVTaGVldCgpLT5kaWRNdXRhdGVSdWxlRnJvbUNTU1N0eWxlRGVjbGFyYXRpb24oKTsK
QEAgLTQxNiw3ICs0MTYsNyBAQCB2b2lkIElubGluZUNTU1N0eWxlRGVjbGFyYXRpb246OmRpZE11
dGF0CiAgICAgaWYgKHR5cGUgPT0gTm9DaGFuZ2VzKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X2Nzc29tQ1NTVmFsdWVDbG9uZXMgPSBudWxscHRyOworICAgIG1fY3Nzb21WYWx1ZVdyYXBwZXJz
ID0gbnVsbHB0cjsKIAogICAgIGlmICghbV9wYXJlbnRFbGVtZW50KQogICAgICAgICByZXR1cm47
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVE
ZWNsYXJhdGlvbi5oCShyZXZpc2lvbiAyMDk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvUHJv
cGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ1NTUnVsZTsKIGNsYXNzIENTU1Byb3Bl
cnR5OwogY2xhc3MgQ1NTVmFsdWU7CitjbGFzcyBEZXByZWNhdGVkQ1NTT01WYWx1ZTsKIGNsYXNz
IE11dGFibGVTdHlsZVByb3BlcnRpZXM7CiBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiBjbGFz
cyBTdHlsZWRFbGVtZW50OwpAQCAtNTQsNyArNTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCBDU1NQYXJzZXJDb250ZXh0IGNzc1BhcnNlckNvbnRleHQoKSBjb25zdDsKIAogICAgIE11dGFi
bGVTdHlsZVByb3BlcnRpZXMqIG1fcHJvcGVydHlTZXQ7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEhh
c2hNYXA8Q1NTVmFsdWUqLCBSZWZQdHI8Q1NTVmFsdWU+Pj4gbV9jc3NvbUNTU1ZhbHVlQ2xvbmVz
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNoTWFwPENTU1ZhbHVlKiwgUmVmUHRyPERlcHJlY2F0
ZWRDU1NPTVZhbHVlPj4+IG1fY3Nzb21WYWx1ZVdyYXBwZXJzOwogCiBwcml2YXRlOgogICAgIHZv
aWQgcmVmKCkgb3ZlcnJpZGU7CkBAIC02Myw3ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgQ1NTUnVs
ZSogcGFyZW50UnVsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB1
bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgaXRlbSh1bnNpZ25lZCBp
bmRleCkgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPENTU1ZhbHVlPiBnZXRQcm9wZXJ0eUNTU1Zh
bHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBmaW5hbDsKKyAgICBSZWZQdHI8RGVwcmVj
YXRlZENTU09NVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0
eU5hbWUpIGZpbmFsOwogICAgIFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKGNvbnN0IFN0cmluZyYg
cHJvcGVydHlOYW1lKSBmaW5hbDsKICAgICBTdHJpbmcgZ2V0UHJvcGVydHlQcmlvcml0eShjb25z
dCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CiAgICAgU3RyaW5nIGdldFByb3BlcnR5U2hv
cnRoYW5kKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBmaW5hbDsKQEAgLTc4LDcgKzc5LDcg
QEAgcHJpdmF0ZToKICAgICAKICAgICBSZWY8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4gY29weVBy
b3BlcnRpZXMoKSBjb25zdCBmaW5hbDsKIAotICAgIENTU1ZhbHVlKiBjbG9uZUFuZENhY2hlRm9y
Q1NTT00oQ1NTVmFsdWUqKTsKKyAgICBEZXByZWNhdGVkQ1NTT01WYWx1ZSogd3JhcEZvckRlcHJl
Y2F0ZWRDU1NPTShDU1NWYWx1ZSopOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsTXV0YXRl
KCkgV0FSTl9VTlVTRURfUkVUVVJOIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQg
ZGlkTXV0YXRlKE11dGF0aW9uVHlwZSkgeyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvUkdC
Q29sb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9SR0JDb2xvci5jcHAJ
KHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9SR0JDb2xvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDM3ICszNSw1IEBAIFJlZjxSR0JDb2xvcj4gUkdCQ29sb3I6OmNy
ZWF0ZSh1bnNpZ25lZCAKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSR0JDb2xvcihyZ2JDb2xv
cikpOwogfQogCi1SZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IFJHQkNvbG9yOjpyZWQoKQotewotICAg
IHVuc2lnbmVkIHZhbHVlID0gKG1fcmdiQ29sb3IgPj4gMTYpICYgMHhGRjsKLSAgICBSZWY8Q1NT
UHJpbWl0aXZlVmFsdWU+IHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUs
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKLSAgICByZXN1bHQtPnNldENTU09NU2Fm
ZSgpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLVJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gUkdC
Q29sb3I6OmdyZWVuKCkKLXsKLSAgICB1bnNpZ25lZCB2YWx1ZSA9IChtX3JnYkNvbG9yID4+IDgp
ICYgMHhGRjsKLSAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IHJlc3VsdCA9IENTU1ByaW1pdGl2
ZVZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKLSAg
ICByZXN1bHQtPnNldENTU09NU2FmZSgpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLVJlZjxD
U1NQcmltaXRpdmVWYWx1ZT4gUkdCQ29sb3I6OmJsdWUoKQotewotICAgIHVuc2lnbmVkIHZhbHVl
ID0gbV9yZ2JDb2xvciAmIDB4RkY7Ci0gICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiByZXN1bHQg
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X05VTUJFUik7Ci0gICAgcmVzdWx0LT5zZXRDU1NPTVNhZmUoKTsKLSAgICByZXR1cm4gcmVzdWx0
OwotfQotCi1SZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IFJHQkNvbG9yOjphbHBoYSgpCi17Ci0gICAg
ZmxvYXQgdmFsdWUgPSBzdGF0aWNfY2FzdDxmbG9hdD4oKG1fcmdiQ29sb3IgPj4gMjQpICYgMHhG
RikgLyAweEZGOwotICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gcmVzdWx0ID0gQ1NTUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOwot
ICAgIHJlc3VsdC0+c2V0Q1NTT01TYWZlKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvUkdCQ29sb3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvUkdCQ29sb3IuaAkocmV2aXNpb24g
MjA5ODM4KQorKysgU291cmNlL1dlYkNvcmUvY3NzL1JHQkNvbG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM3LDEzICszNywxMCBAQCBjbGFzcyBSR0JDb2xvciBmaW5hbCA6IHB1YmxpYyBSZWZDb3Vu
dGVkCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSR0JDb2xvcj4gY3JlYXRlKHVuc2lnbmVkIHJn
YkNvbG9yKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gcmVk
KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBncmVlbigpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gYmx1ZSgpOwotICAgIFdF
QkNPUkVfRVhQT1JUIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gYWxwaGEoKTsKLQogICAgIENvbG9y
IGNvbG9yKCkgY29uc3QgeyByZXR1cm4gQ29sb3IobV9yZ2JDb2xvcik7IH0KIAorICAgIFJHQkEz
MiByZ2JDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fcmdiQ29sb3I7IH0KKwogcHJpdmF0ZToKICAg
ICBSR0JDb2xvcih1bnNpZ25lZCByZ2JDb2xvcikKICAgICAgICAgOiBtX3JnYkNvbG9yKHJnYkNv
bG9yKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1JHQkNvbG9yLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvUkdCQ29sb3IuaWRsCShyZXZpc2lvbiAyMDk4MzgpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvUkdCQ29sb3IuaWRsCShub25leGlzdGVudCkKQEAgLTEsMzAgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndl
aW5pZ0BnbWFpbC5jb20+Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICovCi0KLVsKLSAgICBFeHBvcnRUb1dyYXBwZWRGdW5jdGlvbiwKLSAgICBJbXBs
ZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotXSBpbnRlcmZhY2UgUkdCQ29sb3IgewotICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSByZWQ7Ci0gICAgcmVhZG9ubHkgYXR0cmli
dXRlIENTU1ByaW1pdGl2ZVZhbHVlIGdyZWVuOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQ
cmltaXRpdmVWYWx1ZSBibHVlOwotCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2
ZVZhbHVlIGFscGhhOwotfTsKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2Nz
cy9SR0JDb2xvci5pZGwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICsw
LDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvUmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9S
ZWN0LmgJKHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ4LDE0ICs0OCw2IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAg
IFJlY3RCYXNlKCkgeyB9Ci0gICAgUmVjdEJhc2UoY29uc3QgUmVjdEJhc2UmIGNsb25lRnJvbSkK
LSAgICAgICAgOiBtX3RvcChjbG9uZUZyb20ubV90b3AgPyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+KGNsb25lRnJvbS5tX3RvcC0+Y2xvbmVGb3JDU1NPTSgpKSA6IG51bGxwdHIpCi0gICAgICAg
ICwgbV9yaWdodChjbG9uZUZyb20ubV9yaWdodCA/IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4o
Y2xvbmVGcm9tLm1fcmlnaHQtPmNsb25lRm9yQ1NTT00oKSkgOiBudWxscHRyKQotICAgICAgICAs
IG1fYm90dG9tKGNsb25lRnJvbS5tX2JvdHRvbSA/IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4o
Y2xvbmVGcm9tLm1fYm90dG9tLT5jbG9uZUZvckNTU09NKCkpIDogbnVsbHB0cikKLSAgICAgICAg
LCBtX2xlZnQoY2xvbmVGcm9tLm1fbGVmdCA/IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4oY2xv
bmVGcm9tLm1fbGVmdC0+Y2xvbmVGb3JDU1NPTSgpKSA6IG51bGxwdHIpCi0gICAgewotICAgIH0K
LQogICAgIH5SZWN0QmFzZSgpIHsgfQogCiBwcml2YXRlOgpAQCAtNjgsOCArNjAsNiBAQCBwcml2
YXRlOgogY2xhc3MgUmVjdCBmaW5hbCA6IHB1YmxpYyBSZWN0QmFzZSwgcHVibGljIFJlZkNvdW50
ZWQ8UmVjdD4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVjdD4gY3JlYXRlKCkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBSZWN0KTsgfQotICAgIAotICAgIFJlZjxSZWN0PiBjbG9uZUZvckNT
U09NKCkgY29uc3QgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZWN0KCp0aGlzKSk7IH0KIAogICAg
IFN0cmluZyBjc3NUZXh0KCkgY29uc3QKICAgICB7CkBAIC03OCw3ICs2OCw2IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBSZWN0KCkgeyB9Ci0gICAgUmVjdChjb25zdCBSZWN0JiBjbG9uZUZy
b20pIDogUmVjdEJhc2UoY2xvbmVGcm9tKSwgUmVmQ291bnRlZDxSZWN0PigpIHsgfQogICAgIHN0
YXRpYyBTdHJpbmcgZ2VuZXJhdGVDU1NTdHJpbmcoY29uc3QgU3RyaW5nJiB0b3AsIGNvbnN0IFN0
cmluZyYgcmlnaHQsIGNvbnN0IFN0cmluZyYgYm90dG9tLCBjb25zdCBTdHJpbmcmIGxlZnQpCiAg
ICAgewogICAgICAgICByZXR1cm4gInJlY3QoIiArIHRvcCArICIsICIgKyByaWdodCArICIsICIg
KyBib3R0b20gKyAiLCAiICsgbGVmdCArICcpJzsKQEAgLTg4LDggKzc3LDYgQEAgcHJpdmF0ZToK
IGNsYXNzIFF1YWQgZmluYWwgOiBwdWJsaWMgUmVjdEJhc2UsIHB1YmxpYyBSZWZDb3VudGVkPFF1
YWQ+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFF1YWQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUXVhZCk7IH0KLSAgICAKLSAgICBSZWY8UXVhZD4gY2xvbmVGb3JDU1NPTSgp
IGNvbnN0IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUXVhZCgqdGhpcykpOyB9CiAKICAgICBTdHJp
bmcgY3NzVGV4dCgpIGNvbnN0CiAgICAgewpAQCAtOTgsNyArODUsNiBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgUXVhZCgpIHsgfQotICAgIFF1YWQoY29uc3QgUXVhZCYgY2xvbmVGcm9tKSA6
IFJlY3RCYXNlKGNsb25lRnJvbSksIFJlZkNvdW50ZWQ8UXVhZD4oKSB7IH0KICAgICBzdGF0aWMg
U3RyaW5nIGdlbmVyYXRlQ1NTU3RyaW5nKGNvbnN0IFN0cmluZyYgdG9wLCBjb25zdCBTdHJpbmcm
IHJpZ2h0LCBjb25zdCBTdHJpbmcmIGJvdHRvbSwgY29uc3QgU3RyaW5nJiBsZWZ0KQogICAgIHsK
ICAgICAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
UmVjdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaWRsCShyZXZp
c2lvbiAyMDk4MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5pZGwJKG5vbmV4aXN0ZW50
KQpAQCAtMSwyOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0g
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotWwotICAgIEV4cG9ydFRvV3JhcHBlZEZ1bmN0aW9u
LAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCi1dIGludGVyZmFjZSBSZWN0IHsKLSAg
ICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgdG9wOwotICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSByaWdodDsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgQ1NTUHJpbWl0aXZlVmFsdWUgYm90dG9tOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQ
cmltaXRpdmVWYWx1ZSBsZWZ0OwotfTsKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJD
b3JlL2Nzcy9SZWN0LmlkbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEg
KzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRWxlbWVudC5jcHAJKHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAog
I2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5UGFyc2VyLmgi
CisjaW5jbHVkZSAiRGVwcmVjYXRlZENTU09NVmFsdWUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCkBAIC0x
MDIzLDcgKzEwMjQsNyBAQCB2b2lkIFNWR0VsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBD
CiAgICAgaW52YWxpZGF0ZUluc3RhbmNlcygpOwogfQogCi1SZWZQdHI8Q1NTVmFsdWU+IFNWR0Vs
ZW1lbnQ6OmdldFByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIG5hbWUpCitSZWZQ
dHI8RGVwcmVjYXRlZENTU09NVmFsdWU+IFNWR0VsZW1lbnQ6OmdldFByZXNlbnRhdGlvbkF0dHJp
YnV0ZShjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAgICAgaWYgKCFoYXNBdHRyaWJ1dGVzV2l0aG91
dFVwZGF0ZSgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTEwMzYsOCArMTAzNywxMCBAQCBSZWZQ
dHI8Q1NTVmFsdWU+IFNWR0VsZW1lbnQ6OmdldFByZXNlbnRhCiAgICAgUmVmUHRyPE11dGFibGVT
dHlsZVByb3BlcnRpZXM+IHN0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRlKFNW
R0F0dHJpYnV0ZU1vZGUpOwogICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCA9IGNzc1Byb3Bl
cnR5SWRGb3JTVkdBdHRyaWJ1dGVOYW1lKGF0dHJpYnV0ZS0+bmFtZSgpKTsKICAgICBzdHlsZS0+
c2V0UHJvcGVydHkocHJvcGVydHlJRCwgYXR0cmlidXRlLT52YWx1ZSgpKTsKLSAgICBSZWZQdHI8
Q1NTVmFsdWU+IGNzc1ZhbHVlID0gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUocHJvcGVydHlJ
RCk7Ci0gICAgcmV0dXJuIGNzc1ZhbHVlID8gY3NzVmFsdWUtPmNsb25lRm9yQ1NTT00oKSA6IG51
bGxwdHI7CisgICAgYXV0byBjc3NWYWx1ZSA9IHN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHBy
b3BlcnR5SUQpOworICAgIGlmICghY3NzVmFsdWUpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiBjc3NWYWx1ZS0+Y3JlYXRlRGVwcmVjYXRlZENTU09NV3JhcHBlcigpOwogfQog
CiBib29sIFNWR0VsZW1lbnQ6Omluc3RhbmNlVXBkYXRlc0Jsb2NrZWQoKSBjb25zdApJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRWxlbWVudC5oCShyZXZpc2lvbiAyMDk4MzgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogY2xhc3MgQ1NTU3R5bGVE
ZWNsYXJhdGlvbjsKLWNsYXNzIENTU1ZhbHVlOworY2xhc3MgRGVwcmVjYXRlZENTU09NVmFsdWU7
CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXA7CiBjbGFz
cyBTVkdEb2N1bWVudEV4dGVuc2lvbnM7CkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgYm9vbCBpc0FuaW1hdGFibGVDU1NQcm9wZXJ0eShjb25zdCBRdWFsaWZpZWROYW1lJik7
CiAgICAgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVdpdGhTVkdET00oY29uc3QgUXVhbGlm
aWVkTmFtZSYpOwogICAgIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
Jik7Ci0gICAgUmVmUHRyPENTU1ZhbHVlPiBnZXRQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
U3RyaW5nJiBuYW1lKTsKKyAgICBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+IGdldFByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIG5hbWUpOwogICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c01hcmtlcnMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaGFzUmVs
YXRpdmVMZW5ndGhzKCkgY29uc3QgeyByZXR1cm4gIW1fZWxlbWVudHNXaXRoUmVsYXRpdmVMZW5n
dGhzLmlzRW1wdHkoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBuZWVkc1BlbmRpbmdSZXNvdXJjZUhh
bmRsaW5nKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVt
ZW50LmlkbAkocmV2aXNpb24gMjA5ODM4KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1l
bnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw4IEBACiAgICAgYXR0cmlidXRlIGxv
bmcgdGFiSW5kZXg7CiAKICAgICAvLyBGSVhNRTogVXNpbmcgInVuZGVmaW5lZCIgYXMgZGVmYXVs
dCBwYXJhbWV0ZXIgdmFsdWUgaXMgd3JvbmcuCi0gICAgQ1NTVmFsdWUgZ2V0UHJlc2VudGF0aW9u
QXR0cmlidXRlKG9wdGlvbmFsIERPTVN0cmluZyBuYW1lID0gInVuZGVmaW5lZCIpOworICAgIC8v
IFRoaXMgbWV0aG9kIGlzIGRlcHJlY2F0ZWQsIGFuZCB3ZSdkIGxpa2UgdG8gcmVtb3ZlIGl0IHNv
bWVkYXkuCisgICAgRGVwcmVjYXRlZENTU09NVmFsdWUgZ2V0UHJlc2VudGF0aW9uQXR0cmlidXRl
KG9wdGlvbmFsIERPTVN0cmluZyBuYW1lID0gInVuZGVmaW5lZCIpOwogCiAgICAgdm9pZCBmb2N1
cygpOwogICAgIHZvaWQgYmx1cigpOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMjA5
OTMxKQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMzQgQEAKKzIwMTYtMTItMTYgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CisK
KyAgICAgICAgW0NTUyBWYWx1ZXNdIE1ha2Ugc2VwYXJhdGUgd3JhcHBlciBjbGFzc2VzIGZvciB0
aGUgZGVwcmVjYXRlZCBDU1MgVmFsdWVzIE9NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU5NjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIERPTS9ET01DU1MubW06CisgICAgICAgIChraXRDbGFzcyk6
CisgICAgICAgICogRE9NL0RPTUNTU1ByaW1pdGl2ZVZhbHVlLm1tOgorICAgICAgICAoLVtET01D
U1NQcmltaXRpdmVWYWx1ZSBnZXRDb3VudGVyVmFsdWVdKToKKyAgICAgICAgKC1bRE9NQ1NTUHJp
bWl0aXZlVmFsdWUgZ2V0UmVjdFZhbHVlXSk6CisgICAgICAgIChraXQpOgorICAgICAgICAqIERP
TS9ET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFsLmg6CisgICAgICAgICogRE9NL0RPTUNTU1N0
eWxlRGVjbGFyYXRpb24ubW06CisgICAgICAgICogRE9NL0RPTUNTU1ZhbHVlLm1tOgorICAgICAg
ICAoa2l0KToKKyAgICAgICAgKiBET00vRE9NQ1NTVmFsdWVJbnRlcm5hbC5oOgorICAgICAgICAq
IERPTS9ET01DU1NWYWx1ZUxpc3QubW06CisgICAgICAgICogRE9NL0RPTUNvdW50ZXIubW06Cisg
ICAgICAgIChraXQpOgorICAgICAgICAqIERPTS9ET01Db3VudGVySW50ZXJuYWwuaDoKKyAgICAg
ICAgKiBET00vRE9NUkdCQ29sb3IubW06CisgICAgICAgIChraXQpOgorICAgICAgICAqIERPTS9E
T01SR0JDb2xvckludGVybmFsLmg6CisgICAgICAgICogRE9NL0RPTVJlY3QubW06CisgICAgICAg
IChraXQpOgorICAgICAgICAqIERPTS9ET01SZWN0SW50ZXJuYWwuaDoKKyAgICAgICAgKiBET00v
RE9NVXRpbGl0eS5tbToKKyAgICAgICAgKGNyZWF0ZURPTVdyYXBwZXIpOgorCiAyMDE2LTEyLTE1
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgYXNTdHJpbmcg
aW5zdGVhZCBvZiB0b1dURlN0cmluZywgdG9TdHJpbmcsIG9yIGdldFN0cmluZyB3aGVuIHdlIGFs
cmVhZHkgY2hlY2tlZCBpc1N0cmluZwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNT
Uy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTLm1tCShyZXZp
c2lvbiAyMDk4MzgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbXBvcnQgPFdlYkNvcmUvQ1NTUnVsZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9DU1NTdHlsZVNoZWV0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0NTU1Zh
bHVlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmg+CiAjaW1wb3J0
ICJET01DU1NDaGFyc2V0UnVsZS5oIgogI2ltcG9ydCAiRE9NQ1NTRm9udEZhY2VSdWxlLmgiCiAj
aW1wb3J0ICJET01DU1NJbXBvcnRSdWxlLmgiCkBAIC05NCwyMCArOTQsMTYgQEAgQ2xhc3Mga2l0
Q2xhc3MoV2ViQ29yZTo6Q1NTUnVsZSogaW1wbCkKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAvLyBET01DU1NWYWx1ZQogCi1DbGFzcyBraXRDbGFzcyhXZWJDb3JlOjpDU1NW
YWx1ZSogaW1wbCkKK0NsYXNzIGtpdENsYXNzKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVl
KiBpbXBsKQogewogICAgIHN3aXRjaCAoaW1wbC0+Y3NzVmFsdWVUeXBlKCkpIHsKLSAgICAgICAg
Y2FzZSBXZWJDb3JlOjpDU1NWYWx1ZTo6Q1NTX1BSSU1JVElWRV9WQUxVRToKLSAgICAgICAgICAg
IHJldHVybiBbRE9NQ1NTUHJpbWl0aXZlVmFsdWUgY2xhc3NdOwotICAgICAgICBjYXNlIFdlYkNv
cmU6OkNTU1ZhbHVlOjpDU1NfVkFMVUVfTElTVDoKLSAgICAgICAgICAgIHJldHVybiBbRE9NQ1NT
VmFsdWVMaXN0IGNsYXNzXTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpDU1NWYWx1ZTo6Q1NTX0lO
SEVSSVQ6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6Q1NTVmFsdWU6OkNTU19JTklUSUFMOgotICAg
ICAgICBjYXNlIFdlYkNvcmU6OkNTU1ZhbHVlOjpDU1NfVU5TRVQ6Ci0gICAgICAgIGNhc2UgV2Vi
Q29yZTo6Q1NTVmFsdWU6OkNTU19SRVZFUlQ6Ci0gICAgICAgICAgICByZXR1cm4gW0RPTUNTU1Zh
bHVlIGNsYXNzXTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpDU1NWYWx1ZTo6Q1NTX0NVU1RPTToK
LSAgICAgICAgICAgIHJldHVybiBbRE9NQ1NTVmFsdWUgY2xhc3NdOworICAgIGNhc2UgV2ViQ29y
ZTo6RGVwcmVjYXRlZENTU09NVmFsdWU6OkNTU19QUklNSVRJVkVfVkFMVUU6CisgICAgICAgIHJl
dHVybiBbRE9NQ1NTUHJpbWl0aXZlVmFsdWUgY2xhc3NdOworICAgIGNhc2UgV2ViQ29yZTo6RGVw
cmVjYXRlZENTU09NVmFsdWU6OkNTU19WQUxVRV9MSVNUOgorICAgICAgICByZXR1cm4gW0RPTUNT
U1ZhbHVlTGlzdCBjbGFzc107CisgICAgY2FzZSBXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1
ZTo6Q1NTX0lOSEVSSVQ6CisgICAgY2FzZSBXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZTo6
Q1NTX0NVU1RPTToKKyAgICAgICAgcmV0dXJuIFtET01DU1NWYWx1ZSBjbGFzc107CiAgICAgfQog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBuaWw7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L21hYy9ET00vRE9NQ1NTUHJpbWl0aXZlVmFsdWUubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1ByaW1pdGl2ZVZhbHVlLm1tCShyZXZpc2lvbiAyMDk4
MzgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTUHJpbWl0aXZlVmFsdWUubW0JKHdv
cmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDEwIEBACiAKICNpbXBvcnQgIkRPTUNTU1ByaW1pdGl2
ZVZhbHVlSW50ZXJuYWwuaCIKIAotI2ltcG9ydCA8V2ViQ29yZS9DU1NQcmltaXRpdmVWYWx1ZS5o
PgotI2ltcG9ydCA8V2ViQ29yZS9Db3VudGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RlcHJlY2F0
ZWRDU1NPTUNvdW50ZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRlZENTU09NUHJpbWl0
aXZlVmFsdWUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRlZENTU09NUmVjdC5oPgogI2ltcG9ydCAiRE9NQ1NT
VmFsdWVJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NQ291bnRlckludGVybmFsLmgiCiAjaW1wb3J0
ICJET01Ob2RlSW50ZXJuYWwuaCIKQEAgLTM0LDE0ICszNiwxMiBAQAogI2ltcG9ydCAiRE9NUmVj
dEludGVybmFsLmgiCiAjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgogI2ltcG9ydCA8V2Vi
Q29yZS9KU01haW5UaHJlYWRFeGVjU3RhdGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUkdCQ29sb3Iu
aD4KLSNpbXBvcnQgPFdlYkNvcmUvUmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVj
ay5oPgogI2ltcG9ydCA8V2ViQ29yZS9VUkwuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViU2NyaXB0
T2JqZWN0UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL0dldFB0ci5oPgogCi0jZGVmaW5lIElNUEwg
c3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWUqPihyZWludGVycHJldF9jYXN0
PFdlYkNvcmU6OkNTU1ZhbHVlKj4oX2ludGVybmFsKSkKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZSo+KHJlaW50ZXJwcmV0X2Nh
c3Q8V2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWUqPihfaW50ZXJuYWwpKQogCiBAaW1wbGVt
ZW50YXRpb24gRE9NQ1NTUHJpbWl0aXZlVmFsdWUKIApAQCAtNzgsMTMgKzc4LDEzIEBAIC0gKE5T
U3RyaW5nICopZ2V0U3RyaW5nVmFsdWUKIC0gKERPTUNvdW50ZXIgKilnZXRDb3VudGVyVmFsdWUK
IHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJu
IGtpdCgmcmFpc2VPbkRPTUVycm9yKElNUEwtPmdldENvdW50ZXJWYWx1ZSgpKSk7CisgICAgcmV0
dXJuIGtpdChyYWlzZU9uRE9NRXJyb3IoSU1QTC0+Z2V0Q291bnRlclZhbHVlKCkpLnB0cigpKTsK
IH0KIAogLSAoRE9NUmVjdCAqKWdldFJlY3RWYWx1ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4ga2l0KCZyYWlzZU9uRE9NRXJyb3IoSU1Q
TC0+Z2V0UmVjdFZhbHVlKCkpKTsKKyAgICByZXR1cm4ga2l0KHJhaXNlT25ET01FcnJvcihJTVBM
LT5nZXRSZWN0VmFsdWUoKSkucHRyKCkpOwogfQogCiAtIChET01SR0JDb2xvciAqKWdldFJHQkNv
bG9yVmFsdWUKQEAgLTEwOSw4ICsxMDksOCBAQCAtICh2b2lkKXNldFN0cmluZ1ZhbHVlOih1bnNp
Z25lZCBzaG9ydClzCiAKIEBlbmQKIAotRE9NQ1NTUHJpbWl0aXZlVmFsdWUgKmtpdChXZWJDb3Jl
OjpDU1NQcmltaXRpdmVWYWx1ZSogdmFsdWUpCitET01DU1NQcmltaXRpdmVWYWx1ZSAqa2l0KFdl
YkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKiB2YWx1ZSkKIHsKICAgICBXZWJD
b3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOwotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxET01DU1NQcmltaXRpdmVWYWx1ZSo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpDU1NWYWx1
ZSo+KHZhbHVlKSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01DU1NQcmltaXRpdmVWYWx1
ZSo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZSo+KHZhbHVl
KSkpOwogfQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1ByaW1pdGl2ZVZhbHVl
SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTUHJp
bWl0aXZlVmFsdWVJbnRlcm5hbC5oCShyZXZpc2lvbiAyMDk4MzgpCisrKyBTb3VyY2UvV2ViS2l0
L21hYy9ET00vRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NQ1NTUHJpbWl0aXZlVmFs
dWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgQ1NTUHJpbWl0aXZlVmFsdWU7Citj
bGFzcyBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTsKIH0KIAotRE9NQ1NTUHJpbWl0aXZl
VmFsdWUgKmtpdChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZSopOworRE9NQ1NTUHJpbWl0aXZl
VmFsdWUgKmtpdChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZSopOwpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1N0eWxlRGVjbGFyYXRpb24ubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1N0eWxlRGVjbGFyYXRpb24ubW0J
KHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01DU1NTdHlsZURl
Y2xhcmF0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0NTU0ltcG9ydFJ1bGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ1NTUnVsZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9DU1NTdHlsZURlY2xhcmF0aW9uLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0NT
U1ZhbHVlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmg+CiAjaW1w
b3J0ICJET01DU1NSdWxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTUNTU1ZhbHVlSW50ZXJuYWwu
aCIKICNpbXBvcnQgIkRPTUludGVybmFsLmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9ET00v
RE9NQ1NTVmFsdWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNT
U1ZhbHVlLm1tCShyZXZpc2lvbiAyMDk4MzgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9N
Q1NTVmFsdWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2ltcG9ydCAi
RE9NQ1NTVmFsdWVJbnRlcm5hbC5oIgogCi0jaW1wb3J0IDxXZWJDb3JlL0NTU1ZhbHVlLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmg+CiAjaW1wb3J0ICJET01JbnRl
cm5hbC5oIgogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJFeGNlcHRpb25I
YW5kbGVycy5oIgpAQCAtMzYsNyArMzYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJTY3JpcHRP
YmplY3RQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CiAKLSNkZWZpbmUgSU1QTCBy
ZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4oX2ludGVybmFsKQorI2RlZmluZSBJ
TVBMIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWUqPihfaW50
ZXJuYWwpCiAKIEBpbXBsZW1lbnRhdGlvbiBET01DU1NWYWx1ZQogCkBAIC03MCw3ICs3MCw3IEBA
IC0gKHVuc2lnbmVkIHNob3J0KWNzc1ZhbHVlVHlwZQogCiBAZW5kCiAKLURPTUNTU1ZhbHVlICpr
aXQoV2ViQ29yZTo6Q1NTVmFsdWUqIHZhbHVlKQorRE9NQ1NTVmFsdWUgKmtpdChXZWJDb3JlOjpE
ZXByZWNhdGVkQ1NTT01WYWx1ZSogdmFsdWUpCiB7CiAgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlv
bkNoZWNrUm91bmRPbmUoKTsKICAgICBpZiAoIXZhbHVlKQpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvRE9NL0RPTUNTU1ZhbHVlSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L21hYy9ET00vRE9NQ1NTVmFsdWVJbnRlcm5hbC5oCShyZXZpc2lvbiAyMDk4MzgpCisrKyBTb3Vy
Y2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTVmFsdWVJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw4ICsyNiw4IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NQ1NTVmFsdWUuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgQ1NTVmFsdWU7CitjbGFzcyBEZXByZWNhdGVkQ1NT
T01WYWx1ZTsKIH0KIAotRE9NQ1NTVmFsdWUgKmtpdChXZWJDb3JlOjpDU1NWYWx1ZSopOwotQ2xh
c3Mga2l0Q2xhc3MoV2ViQ29yZTo6Q1NTVmFsdWUqKTsKK0RPTUNTU1ZhbHVlICpraXQoV2ViQ29y
ZTo6RGVwcmVjYXRlZENTU09NVmFsdWUqKTsKK0NsYXNzIGtpdENsYXNzKFdlYkNvcmU6OkRlcHJl
Y2F0ZWRDU1NPTVZhbHVlKik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTVmFs
dWVMaXN0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01DU1NWYWx1
ZUxpc3QubW0JKHJldmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01D
U1NWYWx1ZUxpc3QubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1LDE3ICsyNSwxNiBAQAogCiAjaW1w
b3J0ICJET01DU1NWYWx1ZUxpc3QuaCIKIAotI2ltcG9ydCA8V2ViQ29yZS9DU1NWYWx1ZS5oPgot
I2ltcG9ydCA8V2ViQ29yZS9DU1NWYWx1ZUxpc3QuaD4KICNpbXBvcnQgIkRPTUNTU1ZhbHVlSW50
ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiRXhjZXB0aW9u
SGFuZGxlcnMuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9UaHJlYWRDaGVjay5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJTY3JpcHRPYmplY3RQcml2
YXRlLmg+CiAjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CiAKLSNkZWZpbmUgSU1QTCBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpDU1NWYWx1ZUxpc3QqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1Zh
bHVlKj4oX2ludGVybmFsKSkKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEZXBy
ZWNhdGVkQ1NTT01WYWx1ZUxpc3QqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkRlcHJlY2F0
ZWRDU1NPTVZhbHVlKj4oX2ludGVybmFsKSkKIAogQGltcGxlbWVudGF0aW9uIERPTUNTU1ZhbHVl
TGlzdAogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ291bnRlci5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ291bnRlci5tbQkocmV2aXNpb24gMjA5
ODM4KQorKysgU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNvdW50ZXIubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2ltcG9ydCAiRE9NQ291bnRlckludGVybmFsLmgiCiAK
LSNpbXBvcnQgPFdlYkNvcmUvQ291bnRlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9EZXByZWNhdGVk
Q1NTT01Db3VudGVyLmg+CiAjaW1wb3J0ICJET01JbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NTm9k
ZUludGVybmFsLmgiCiAjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgpAQCAtMzYsNyArMzYs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJTY3JpcHRPYmplY3RQcml2YXRlLmg+CiAjaW1wb3J0
IDx3dGYvR2V0UHRyLmg+CiAKLSNkZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6
OkNvdW50ZXIqPihfaW50ZXJuYWwpCisjZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJD
b3JlOjpEZXByZWNhdGVkQ1NTT01Db3VudGVyKj4oX2ludGVybmFsKQogCiBAaW1wbGVtZW50YXRp
b24gRE9NQ291bnRlcgogCkBAIC03MCw3ICs3MCw3IEBAIC0gKE5TU3RyaW5nICopc2VwYXJhdG9y
CiAKIEBlbmQKIAotRE9NQ291bnRlciAqa2l0KFdlYkNvcmU6OkNvdW50ZXIqIHZhbHVlKQorRE9N
Q291bnRlciAqa2l0KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTUNvdW50ZXIqIHZhbHVlKQogewog
ICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CiAgICAgaWYgKCF2YWx1
ZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01Db3VudGVySW50ZXJuYWwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ291bnRlckludGVybmFsLmgJKHJl
dmlzaW9uIDIwOTgzOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01Db3VudGVySW50ZXJu
YWwuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCA8V2ViS2l0TGVn
YWN5L0RPTUNvdW50ZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgQ291bnRlcjsK
K2NsYXNzIERlcHJlY2F0ZWRDU1NPTUNvdW50ZXI7CiB9CiAKLURPTUNvdW50ZXIgKmtpdChXZWJD
b3JlOjpDb3VudGVyKik7CitET01Db3VudGVyICpraXQoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09N
Q291bnRlciopOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTVJHQkNvbG9yLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01SR0JDb2xvci5tbQkocmV2aXNp
b24gMjA5ODM4KQorKysgU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTVJHQkNvbG9yLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSwxMyArMjUsMTMgQEAKIAogI2ltcG9ydCAiRE9NUkdCQ29sb3JJbnRl
cm5hbC5oIgogCi0jaW1wb3J0IDxXZWJDb3JlL0NTU1ByaW1pdGl2ZVZhbHVlLmg+CiAjaW1wb3J0
ICJET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01JbnRlcm5hbC5o
IgogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVy
cy5oIgorI2ltcG9ydCA8V2ViQ29yZS9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oPgor
I2ltcG9ydCA8V2ViQ29yZS9EZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9KU01haW5UaHJlYWRFeGVjU3RhdGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUkdCQ29sb3Iu
aD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvV2Vi
Q29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViU2NyaXB0T2JqZWN0UHJpdmF0
ZS5oPgpAQCAtNDMsNyArNDMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAj
ZW5kaWYKIAotI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6UkdCQ29sb3Iq
PihfaW50ZXJuYWwpCisjZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpEZXBy
ZWNhdGVkQ1NTT01SR0JDb2xvcio+KF9pbnRlcm5hbCkKIAogQGltcGxlbWVudGF0aW9uIERPTVJH
QkNvbG9yCiAKQEAgLTk3LDcgKzk3LDcgQEAgLSAoQ0dDb2xvclJlZiljb2xvcgogCiBAZW5kCiAK
LURPTVJHQkNvbG9yICpraXQoV2ViQ29yZTo6UkdCQ29sb3IqIHZhbHVlKQorRE9NUkdCQ29sb3Ig
KmtpdChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01SR0JDb2xvciogdmFsdWUpCiB7CiAgICAgV2Vi
Q29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKICAgICBpZiAoIXZhbHVlKQpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTVJHQkNvbG9ySW50ZXJuYWwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NUkdCQ29sb3JJbnRlcm5hbC5oCShyZXZpc2lv
biAyMDk4MzgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NUkdCQ29sb3JJbnRlcm5hbC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kv
RE9NUkdCQ29sb3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgUkdCQ29sb3I7Citj
bGFzcyBEZXByZWNhdGVkQ1NTT01SR0JDb2xvcjsKIH0KIAotRE9NUkdCQ29sb3IgKmtpdChXZWJD
b3JlOjpSR0JDb2xvciopOworRE9NUkdCQ29sb3IgKmtpdChXZWJDb3JlOjpEZXByZWNhdGVkQ1NT
T01SR0JDb2xvciopOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTVJlY3QubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTVJlY3QubW0JKHJldmlzaW9uIDIw
OTgzOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01SZWN0Lm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yNSwxOSArMjUsMTkgQEAKIAogI2ltcG9ydCAiRE9NUmVjdEludGVybmFsLmgiCiAKLSNp
bXBvcnQgPFdlYkNvcmUvQ1NTUHJpbWl0aXZlVmFsdWUuaD4KICNpbXBvcnQgIkRPTUNTU1ByaW1p
dGl2ZVZhbHVlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTUludGVybmFsLmgiCiAjaW1wb3J0ICJE
T01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0
IDxXZWJDb3JlL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmg+CisjaW1wb3J0IDxXZWJD
b3JlL0RlcHJlY2F0ZWRDU1NPTVJlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNNYWluVGhyZWFk
RXhlY1N0YXRlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1JlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUv
VGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNp
bXBvcnQgPFdlYkNvcmUvV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL0dl
dFB0ci5oPgogCi0jZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpSZWN0Kj4o
X2ludGVybmFsKQorI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6RGVwcmVj
YXRlZENTU09NUmVjdCo+KF9pbnRlcm5hbCkKIAogQGltcGxlbWVudGF0aW9uIERPTVJlY3QKIApA
QCAtNzcsNyArNzcsNyBAQCAtIChET01DU1NQcmltaXRpdmVWYWx1ZSAqKWxlZnQKIAogQGVuZAog
Ci1ET01SZWN0ICpraXQoV2ViQ29yZTo6UmVjdCogdmFsdWUpCitET01SZWN0ICpraXQoV2ViQ29y
ZTo6RGVwcmVjYXRlZENTU09NUmVjdCogdmFsdWUpCiB7CiAgICAgV2ViQ29yZVRocmVhZFZpb2xh
dGlvbkNoZWNrUm91bmRPbmUoKTsKICAgICBpZiAoIXZhbHVlKQpJbmRleDogU291cmNlL1dlYktp
dC9tYWMvRE9NL0RPTVJlY3RJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
bWFjL0RPTS9ET01SZWN0SW50ZXJuYWwuaAkocmV2aXNpb24gMjA5ODM4KQorKysgU291cmNlL1dl
YktpdC9tYWMvRE9NL0RPTVJlY3RJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsy
Niw3IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NUmVjdC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci1jbGFzcyBSZWN0OworY2xhc3MgRGVwcmVjYXRlZENTU09NUmVjdDsKIH0KIAotRE9N
UmVjdCAqa2l0KFdlYkNvcmU6OlJlY3QqKTsKK0RPTVJlY3QgKmtpdChXZWJDb3JlOjpEZXByZWNh
dGVkQ1NTT01SZWN0Kik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NVXRpbGl0eS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NVXRpbGl0eS5tbQkocmV2
aXNpb24gMjA5ODM4KQorKysgU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTVV0aWxpdHkubW0JKHdv
cmtpbmcgY29weSkKQEAgLTUwLDEwICs1MCwxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9KU0NTU1J1
bGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNDU1NSdWxlTGlzdC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9KU0NTU1N0eWxlRGVjbGFyYXRpb24uaD4KLSNpbXBvcnQgPFdlYkNvcmUvSlNDU1NWYWx1ZS5o
PgotI2ltcG9ydCA8V2ViQ29yZS9KU0NvdW50ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNET01J
bXBsZW1lbnRhdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU0RPTVdpbmRvd1NoZWxsLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0pTRGVwcmVjYXRlZENTU09NQ291bnRlci5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9KU0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL0pTRGVw
cmVjYXRlZENTU09NUmVjdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9KU0RlcHJlY2F0ZWRDU1NPTVZh
bHVlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNI
VE1MQ29sbGVjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU0hUTUxPcHRpb25zQ29sbGVjdGlv
bi5oPgpAQCAtNjIsOSArNjQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9KU05vZGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvSlNOb2RlSXRlcmF0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNOb2RlTGlz
dC5oPgotI2ltcG9ydCA8V2ViQ29yZS9KU1JHQkNvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pT
UmFuZ2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvSlNSZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pT
U3R5bGVTaGVldC5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU1N0eWxlU2hlZXRMaXN0Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0pTVHJlZVdhbGtlci5oPgpAQCAtODEsOCArODEsOCBAQCBzdGF0aWMgV2Vi
U2NyaXB0T2JqZWN0ICpjcmVhdGVET01XcmFwcGVyCiAgICAgV1JBUChDU1NSdWxlKQogICAgIFdS
QVAoQ1NTUnVsZUxpc3QpCiAgICAgV1JBUChDU1NTdHlsZURlY2xhcmF0aW9uKQotICAgIFdSQVAo
Q1NTVmFsdWUpCi0gICAgV1JBUChDb3VudGVyKQorICAgIFdSQVAoRGVwcmVjYXRlZENTU09NVmFs
dWUpCisgICAgV1JBUChEZXByZWNhdGVkQ1NTT01Db3VudGVyKQogICAgIFdSQVAoRE9NSW1wbGVt
ZW50YXRpb24pCiAgICAgV1JBUChET01XaW5kb3dTaGVsbCkKICAgICBXUkFQKEV2ZW50KQpAQCAt
OTIsOSArOTIsOSBAQCBzdGF0aWMgV2ViU2NyaXB0T2JqZWN0ICpjcmVhdGVET01XcmFwcGVyCiAg
ICAgV1JBUChOb2RlKQogICAgIFdSQVAoTm9kZUl0ZXJhdG9yKQogICAgIFdSQVAoTm9kZUxpc3Qp
Ci0gICAgV1JBUChSR0JDb2xvcikKKyAgICBXUkFQKERlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yKQog
ICAgIFdSQVAoUmFuZ2UpCi0gICAgV1JBUChSZWN0KQorICAgIFdSQVAoRGVwcmVjYXRlZENTU09N
UmVjdCkKICAgICBXUkFQKFN0eWxlU2hlZXQpCiAgICAgV1JBUChTdHlsZVNoZWV0TGlzdCkKICAg
ICBXUkFQKFRyZWVXYWxrZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297346</attachid>
            <date>2016-12-16 12:51:30 -0800</date>
            <delta_ts>2016-12-16 13:30:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165968-20161216145035.patch</filename>
            <type>text/plain</type>
            <size>180466</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1NCBAQAorMjAxNi0xMi0xNiAgRGF2ZSBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIFZhbHVlc10gTWFrZSBzZXBh
cmF0ZSB3cmFwcGVyIGNsYXNzZXMgZm9yIHRoZSBkZXByZWNhdGVkIENTUyBWYWx1ZXMgT00KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTk2OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
Y2hhbmdlcyB0aGUgQ1NTIE9NIG1vZGVsIGZvciB2YWx1ZXMgdG8gdXNlIGRpc3RpbmN0IHdyYXBw
ZXIKKyAgICAgICAgY2xhc3NlcyBpbnN0ZWFkIG9mIGNsb25pbmcgdGhlIGV4aXN0aW5nIGNsYXNz
ZXMuIEJ5IGFjdHVhbGx5IHdyYXBwaW5nCisgICAgICAgIHZhbHVlcyBpbnN0ZWFkIG9mIGNsb25p
bmcsIHdlIGFyZSBmcmVlZCB1cCB0byBjaGFuZ2Ugb3VyIENTUyB2YWx1ZSBoaWVyYXJjaHkKKyAg
ICAgICAgaG93ZXZlciB3ZSdkIGxpa2UgKHN1Y2ggYXMgY2hhbmdpbmcgdG8gbWF0Y2ggdGhlIG5l
dyBDU1MgVmFsdWVzIE9NIHRoYXQKKyAgICAgICAgaXMgY29taW5nIHNvb24pLgorCisgICAgICAg
IEFsbCBvZiB0aGUgQ1NTIFZhbHVlcyB3cmFwcGVyIGNsYXNzZXMgYXJlIHByZWZpeGVkIHdpdGgg
IkRlcHJlY2F0ZWRDU1NPTSIKKyAgICAgICAgdG8gcmVmbGVjdCBvdXIgZGVzaXJlICh1bHRpbWF0
ZWx5KSB0byByZW1vdmUgdGhpcyBBUEkgZnJvbSBvdXIgdHJlZS4gV2UncmUKKyAgICAgICAgdGhl
IG9ubHkgb25lcyB0aGF0IHN1cHBvcnQgaXQsIGFuZCBpdCdzIG5vdCB1c2VkIG9uIHRoZSBXZWIs
IGJ1dCBpdCBpcyBwYXJ0CisgICAgICAgIG9mIHRoZSBXZWJLaXRMZWdhY3kgQVBJIGFuZCBtaWdo
dCBiZSB1c2VkIGludGVybmFsbHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
YmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlND
U1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ1NTU3R5
bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNDU1NWYWx1ZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RlcHJlY2F0ZWRD
U1NPTVZhbHVlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTRGVwcmVjYXRlZENTU09NVmFsdWVPd25lcjo6ZmluYWxpemUpOgorICAgICAgICAo
V2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTQ1NTVmFsdWVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNDU1NWYWx1ZU93bmVyOjpmaW5hbGl6
ZSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFBy
b3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uaDoKKyAgICAgICAgKiBjc3MvQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0dyaWRMaW5lTmFtZXNWYWx1ZTo6Y2xvbmVGb3JDU1NPTSk6IERlbGV0ZWQu
CisgICAgICAgICogY3NzL0NTU0dyaWRMaW5lTmFtZXNWYWx1ZS5oOgorICAgICAgICAqIGNzcy9D
U1NJbWFnZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlU2V0VmFsdWU6
OmNsb25lRm9yQ1NTT00pOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9DU1NJbWFnZVNldFZhbHVl
Lmg6CisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlRGVwcmVjYXRlZENTU09NV3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NJbWFnZVZhbHVlOjpjbG9uZUZvckNTU09NKTogRGVsZXRlZC4KKyAgICAgICAg
KiBjc3MvQ1NTSW1hZ2VWYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlRGVwcmVjYXRl
ZENTU09NUHJpbWl0aXZlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZTo6Y2xvbmVGb3JDU1NPTSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlLmg6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlkbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAqIGNzcy9DU1NT
dHlsZURlY2xhcmF0aW9uLmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTVmFsdWU6OnRyYXZlcnNlU3VicmVzb3VyY2VzKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ZhbHVlOjplcXVhbHMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmNz
c1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmRlc3Ryb3kpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVmFsdWU6OmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIpOgorICAgICAg
ICAoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjpjbG9uZUZvckNTU09N
KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ZhbHVlOjpDU1NWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6c2V0Q3Nz
VGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNDU1NPTVNhZmUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzU3VidHlwZUV4cG9zZWRU
b0NTU09NKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaWRsOiBSZW1vdmVkLgor
ICAgICAgICAqIGNzcy9DU1NWYWx1ZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWVMaXN0OjpjbG9uZUZvckNTU09NKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVM
aXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZUxpc3Q6OnNlcGFyYXRvcik6CisgICAg
ICAgICogY3NzL0NTU1ZhbHVlTGlzdC5pZGw6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NvdW50
ZXIuaDoKKyAgICAgICAgKiBjc3MvQ291bnRlci5pZGw6IFJlbW92ZWQuCisgICAgICAgICogY3Nz
L0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaDogQWRkZWQuCisgICAgICAgICogY3NzL0RlcHJlY2F0
ZWRDU1NPTUNvdW50ZXIuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3MvQ291bnRl
ci5pZGwuCisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6
Z2V0Q291bnRlclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1p
dGl2ZVZhbHVlOjpnZXRSZWN0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENT
U09NUHJpbWl0aXZlVmFsdWU6OmdldFJHQkNvbG9yVmFsdWUpOgorICAgICAgICAqIGNzcy9EZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRl
cHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmVxdWFscyk6CisgICAgICAgIChXZWJDb3Jl
OjpEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6Y3NzVmFsdWVUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpjc3NUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpwcmltaXRpdmVUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpzZXRG
bG9hdFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZh
bHVlOjpnZXRGbG9hdFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlOjpzZXRTdHJpbmdWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNh
dGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6Z2V0U3RyaW5nVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OnN0cmluZ1ZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpEZXByZWNhdGVkQ1NTT01Q
cmltaXRpdmVWYWx1ZSk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZh
bHVlLmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
LmlkbC4KKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaDogQWRkZWQuCisg
ICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmlkbDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvY3NzL1JHQkNvbG9yLmlkbC4KKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENT
U09NUmVjdC5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NUmVjdC5pZGw6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmlkbC4KKyAgICAgICAgKiBjc3Mv
RGVwcmVjYXRlZENTU09NVmFsdWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXBh
cmVDU1NPTVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZTo6
ZXF1YWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpkZXN0cm95
KToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpjc3NWYWx1ZVR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWU6OmNzc1RleHQpOgorICAg
ICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpkZXJlZik6CisgICAgICAgIChXZWJDb3JlOjpEZXBy
ZWNhdGVkQ1NTT01WYWx1ZTo6c2V0Q3NzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNh
dGVkQ1NTT01WYWx1ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVk
Q1NTT01WYWx1ZTo6aXNDb21wbGV4VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRl
ZENTU09NVmFsdWU6OmlzUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVj
YXRlZENTU09NVmFsdWU6OmlzVmFsdWVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0
ZWRDU1NPTVZhbHVlOjpjbGFzc1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENT
U09NVmFsdWU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJl
Y2F0ZWRDU1NPTVZhbHVlOjp+RGVwcmVjYXRlZENTU09NVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGVwcmVjYXRlZENTU09NQ29tcGxleFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGVwcmVjYXRlZENTU09NQ29tcGxleFZhbHVlOjplcXVhbHMpOgorICAgICAgICAoV2ViQ29y
ZTo6RGVwcmVjYXRlZENTU09NQ29tcGxleFZhbHVlOjpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZTo6Y3NzVmFsdWVUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZTo6RGVwcmVjYXRlZENTU09NQ29t
cGxleFZhbHVlKToKKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaWRsOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaWRsLgorICAgICAgICAqIGNzcy9E
ZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRl
cHJlY2F0ZWRDU1NPTVZhbHVlTGlzdDo6ZXF1YWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJl
Y2F0ZWRDU1NPTVZhbHVlTGlzdDo6Y3NzVGV4dCk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRD
U1NPTVZhbHVlTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NP
TVZhbHVlTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZh
bHVlTGlzdDo6Y3NzVmFsdWVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NP
TVZhbHVlTGlzdDo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZh
bHVlTGlzdDo6aXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZUxp
c3Q6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdCk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRD
U1NPTVZhbHVlTGlzdC5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUxpc3QuaWRsLgorICAgICAgICAqIGNzcy9MZW5ndGhSZXBlYXQuaDoKKyAgICAgICAgKiBjc3Mv
UHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBy
b3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OndyYXBGb3JEZXBy
ZWNhdGVkQ1NTT00pOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJh
dGlvbjo6ZGlkTXV0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUNTU1N0eWxlRGVjbGFy
YXRpb246OmRpZE11dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVNldENTU1N0eWxl
RGVjbGFyYXRpb246OmNsb25lQW5kQ2FjaGVGb3JDU1NPTSk6IERlbGV0ZWQuCisgICAgICAgICog
Y3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAqIGNzcy9SR0JD
b2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSR0JDb2xvcjo6cmVkKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJHQkNvbG9yOjpncmVlbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpSR0JDb2xvcjo6Ymx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSR0JDb2xv
cjo6YWxwaGEpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9SR0JDb2xvci5oOgorICAgICAgICAq
IGNzcy9SR0JDb2xvci5pZGw6IFJlbW92ZWQuCisgICAgICAgICogY3NzL1JlY3QuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlY3RCYXNlOjpSZWN0QmFzZSk6CisgICAgICAgICogY3NzL1JlY3QuaWRs
OiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0VsZW1lbnQ6OmdldFByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6CisgICAgICAgICogc3Zn
L1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5pZGw6CisKIDIwMTYtMTIt
MTYgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFN1YmZyYW1l
cyBnb2luZyBpbnRvIHBhZ2UgY2FjaGUgZG9uJ3QgbmVlZCB0byByZXNldFNjcm9sbGJhcnMoKS4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzQ4LDcgKzM0OCw2IEBAIHNl
dChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgY3NzL0NTU01lZGlhUnVsZS5pZGwKICAg
ICBjc3MvQ1NTTmFtZXNwYWNlUnVsZS5pZGwKICAgICBjc3MvQ1NTUGFnZVJ1bGUuaWRsCi0gICAg
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlkbAogICAgIGNzcy9DU1NSdWxlLmlkbAogICAgIGNzcy9D
U1NSdWxlTGlzdC5pZGwKICAgICBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKQEAgLTM1Niwx
NyArMzU1LDE4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgY3NzL0NTU1N0
eWxlU2hlZXQuaWRsCiAgICAgY3NzL0NTU1N1cHBvcnRzUnVsZS5pZGwKICAgICBjc3MvQ1NTVW5r
bm93blJ1bGUuaWRsCi0gICAgY3NzL0NTU1ZhbHVlLmlkbAotICAgIGNzcy9DU1NWYWx1ZUxpc3Qu
aWRsCi0gICAgY3NzL0NvdW50ZXIuaWRsCisgICAgY3NzL0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIu
aWRsCisgICAgY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmlkbAorICAgIGNzcy9E
ZXByZWNhdGVkQ1NTT01SR0JDb2xvci5pZGwKKyAgICBjc3MvRGVwcmVjYXRlZENTU09NUmVjdC5p
ZGwKKyAgICBjc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaWRsCisgICAgY3NzL0RlcHJlY2F0ZWRD
U1NPTVZhbHVlTGlzdC5pZGwKICAgICBjc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbAogICAgIGNzcy9G
b250RmFjZS5pZGwKICAgICBjc3MvRm9udEZhY2VTZXQuaWRsCiAgICAgY3NzL01lZGlhTGlzdC5p
ZGwKICAgICBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsCiAgICAgY3NzL01lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaWRsCi0gICAgY3NzL1JHQkNvbG9yLmlkbAotICAgIGNzcy9SZWN0LmlkbAogICAgIGNz
cy9TdHlsZU1lZGlhLmlkbAogICAgIGNzcy9TdHlsZVNoZWV0LmlkbAogICAgIGNzcy9TdHlsZVNo
ZWV0TGlzdC5pZGwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHJldmlzaW9uIDIw
OTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTE2LDcgKzExNiw2IEBACiAjaW5jbHVkZSAiSlNDb21tZW50LmNwcCIKICNpbmNsdWRl
ICJKU0NvbXBvc2l0aW9uRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTQ29vcmRpbmF0ZXMuY3BwIgot
I2luY2x1ZGUgIkpTQ291bnRlci5jcHAiCiAjaW5jbHVkZSAiSlNDcnlwdG8uY3BwIgogI2lmIEVO
QUJMRShGT05UX0xPQURfRVZFTlRTKQogI2luY2x1ZGUgIkpTQ1NTRm9udEZhY2VMb2FkRXZlbnQu
Y3BwIgpAQCAtMTI3LDcgKzEyNiw2IEBACiAjaW5jbHVkZSAiSlNDU1NLZXlmcmFtZXNSdWxlLmNw
cCIKICNpbmNsdWRlICJKU0NTU01lZGlhUnVsZS5jcHAiCiAjaW5jbHVkZSAiSlNDU1NQYWdlUnVs
ZS5jcHAiCi0jaW5jbHVkZSAiSlNDU1NQcmltaXRpdmVWYWx1ZS5jcHAiCiAjaW5jbHVkZSAiSlND
U1NSdWxlLmNwcCIKICNpbmNsdWRlICJKU0NTU1J1bGVMaXN0LmNwcCIKICNpbmNsdWRlICJKU0NT
U1N0eWxlRGVjbGFyYXRpb24uY3BwIgpAQCAtMTM1LDggKzEzMyw2IEBACiAjaW5jbHVkZSAiSlND
U1NTdHlsZVNoZWV0LmNwcCIKICNpbmNsdWRlICJKU0NTU1N1cHBvcnRzUnVsZS5jcHAiCiAjaW5j
bHVkZSAiSlNDU1NVbmtub3duUnVsZS5jcHAiCi0jaW5jbHVkZSAiSlNDU1NWYWx1ZS5jcHAiCi0j
aW5jbHVkZSAiSlNDU1NWYWx1ZUxpc3QuY3BwIgogI2luY2x1ZGUgIkpTQ2xpcGJvYXJkRXZlbnQu
Y3BwIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNwcCIKICNpbmNsdWRlICJK
U0N1c3RvbUV2ZW50LmNwcCIKQEAgLTE0OSw2ICsxNDUsMTIgQEAKICNpZiBFTkFCTEUoV0VCX0FV
RElPKQogI2luY2x1ZGUgIkpTRGVsYXlOb2RlLmNwcCIKICNlbmRpZgorI2luY2x1ZGUgIkpTRGVw
cmVjYXRlZENTU09NQ291bnRlci5jcHAiCisjaW5jbHVkZSAiSlNEZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZS5jcHAiCisjaW5jbHVkZSAiSlNEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5jcHAi
CisjaW5jbHVkZSAiSlNEZXByZWNhdGVkQ1NTT01SZWN0LmNwcCIKKyNpbmNsdWRlICJKU0RlcHJl
Y2F0ZWRDU1NPTVZhbHVlLmNwcCIKKyNpbmNsdWRlICJKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlz
dC5jcHAiCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICNpbmNsdWRlICJKU0Rldmlj
ZU1vdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCIK
QEAgLTQwMSw5ICs0MDMsNyBAQAogI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW0uY3BwIgogI2lu
Y2x1ZGUgIkpTUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAi
SlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuY3BwIgotI2luY2x1ZGUgIkpTUmVjdC5jcHAi
CiAjaW5jbHVkZSAiSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHAiCi0jaW5jbHVk
ZSAiSlNSR0JDb2xvci5jcHAiCiAjaW5jbHVkZSAiSlNSVENDb25maWd1cmF0aW9uLmNwcCIKICNp
bmNsdWRlICJKU1JUQ0RhdGFDaGFubmVsLmNwcCIKICNpbmNsdWRlICJKU1JUQ0RhdGFDaGFubmVs
RXZlbnQuY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAy
MDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNv
cHkpCkBAIC0yODAsNyArMjgwLDYgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29y
ZSkvY3NzL0NTU01lZGlhUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU05hbWVzcGFj
ZVJ1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NQYWdlUnVsZS5pZGwgXAotICAgICQo
V2ViQ29yZSkvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3Mv
Q1NTUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU1J1bGVMaXN0LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwgXApAQCAtMjg4LDE3ICsyODcs
MTggQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU1N0eWxlU2hl
ZXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9DU1NTdXBwb3J0c1J1bGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL2Nzcy9DU1NVbmtub3duUnVsZS5pZGwgXAotICAgICQoV2ViQ29yZSkvY3NzL0NT
U1ZhbHVlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWVMaXN0LmlkbCBcCi0gICAg
JChXZWJDb3JlKS9jc3MvQ291bnRlci5pZGwgXAorICAgICQoV2ViQ29yZSkvY3NzL0RlcHJlY2F0
ZWRDU1NPTUNvdW50ZXIuaWRsIFwKKwkkKFdlYkNvcmUpL2Nzcy9EZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZS5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9y
LmlkbCBcCisJJChXZWJDb3JlKS9jc3MvRGVwcmVjYXRlZENTU09NUmVjdC5pZGwgXAorCSQoV2Vi
Q29yZSkvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmlkbCBcCisgICAgJChXZWJDb3JlKS9jc3Mv
RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvRE9NQ1NT
TmFtZXNwYWNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvRm9udEZhY2UuaWRsIFwKICAgICAk
KFdlYkNvcmUpL2Nzcy9Gb250RmFjZVNldC5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL01lZGlh
TGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL01lZGlhUXVlcnlMaXN0LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgXAotICAgICQoV2ViQ29y
ZSkvY3NzL1JHQkNvbG9yLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvUmVjdC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvY3NzL1N0eWxlTWVkaWEuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9TdHls
ZVNoZWV0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvU3R5bGVTaGVldExpc3QuaWRsIFwKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjMzLDggKzYzMyw2IEBACiAJCTE0
OTkzQkU1MEIyRjJCMUMwMDUwNDk3RiAvKiBGb2N1c0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ5OTNCRTMwQjJGMkIxQzAwNTA0
OTdGIC8qIEZvY3VzQ29udHJvbGxlci5jcHAgKi87IH07CiAJCTE0OTkzQkU2MEIyRjJCMUMwMDUw
NDk3RiAvKiBGb2N1c0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0OTkzQkU0MEIyRjJCMUMwMDUwNDk3RiAvKiBGb2N1c0NvbnRyb2xs
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
NEM5QTVFQTBCM0QxMDVGMDA1QTAyMzIgLyogU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRDOUE1RTkwQjNEMTA1RjAwNUEwMjMyIC8q
IFNldHRpbmdzLmNwcCAqLzsgfTsKLQkJMTRDRjc4QTQwOUY1OENCRjAwRUIzNjY1IC8qIEpTQ1NT
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTRDRjc4QTMwOUY1OENCRjAwRUIzNjY1IC8qIEpTQ1NTVmFsdWUuY3BwICovOyB9OwotCQkxNENG
NzhBNjA5RjU4Q0Q4MDBFQjM2NjUgLyogSlNDU1NWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRDRjc4QTUwOUY1OENEODAwRUIzNjY1IC8qIEpT
Q1NTVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkxNENGN0IzMzA5RjZFQ0Q3MDBFQjM2NjUgLyogSlNDU1NSdWxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Q0Y3QjMxMDlGNkVDRDcwMEVC
MzY2NSAvKiBKU0NTU1J1bGUuY3BwICovOyB9OwogCQkxNENGN0IzNDA5RjZFQ0Q3MDBFQjM2NjUg
LyogSlNDU1NSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxNENGN0IzMjA5RjZFQ0Q3MDBFQjM2NjUgLyogSlNDU1NSdWxlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTRENjRCNUMxMzRBNUI2QjAw
RTU4RkRBIC8qIFRyZWVTY29wZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxNEQ2NEI1QTEzNEE1QjZCMDBFNThGREEgLyogVHJlZVNjb3BlLmNwcCAq
LzsgfTsKQEAgLTMyNTAsMTAgKzMyNDgsNiBAQAogCQk5MzAyQjBCRDBENzlGODI5MDBDN0VFODMg
LyogUGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdlR3JvdXAuY3BwICovOyB9Owog
CQk5MzAyQjBCRjBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAyQjBCRTBENzlGODJDMDBDN0VFODMg
LyogUGFnZUdyb3VwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTMwNUIyNEQwOThGMUI2QjAwQzI4ODU1IC8qIFRpbWVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA1QjI0QzA5OEYxQjZCMDBDMjg4
NTUgLyogVGltZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQk5MzA3MDVEODA5RTBDOUI3MDBCMTdGRTQgLyogSlNDb3VudGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDcwNUQ3MDlFMEM5Qjcw
MEIxN0ZFNCAvKiBKU0NvdW50ZXIuY3BwICovOyB9OwotCQk5MzA3MDVEQTA5RTBDOUJGMDBCMTdG
RTQgLyogSlNDb3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzA3MDVEOTA5RTBDOUJGMDBCMTdGRTQgLyogSlNDb3VudGVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTMwNzA1RTkwOUUwQzlG
MDAwQjE3RkU0IC8qIEpTQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwNzA1RTgwOUUwQzlGMDAwQjE3RkU0IC8qIEpT
Q1NTUHJpbWl0aXZlVmFsdWUuY3BwICovOyB9OwotCQk5MzA3MDVFQjA5RTBDOUY2MDBCMTdGRTQg
LyogSlNDU1NQcmltaXRpdmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMwNzA1RUEwOUUwQzlGNjAwQjE3RkU0IC8qIEpTQ1NTUHJpbWl0aXZl
VmFsdWUuaCAqLzsgfTsKIAkJOTMwN0YxRDcwQUYyRDU5MDAwREJBMzFBIC8qIEhpdFRlc3RSZXN1
bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMw
N0YxRDUwQUYyRDU5MDAwREJBMzFBIC8qIEhpdFRlc3RSZXN1bHQuY3BwICovOyB9OwogCQk5MzA3
RjFEODBBRjJENTkwMDBEQkEzMUEgLyogSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwN0YxRDYwQUYyRDU5MDAwREJBMzFBIC8q
IEhpdFRlc3RSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5MzA4NDEzNDFDRERCMTU1MDBCMDk1OEMgLyogSlNET01Db252ZXJ0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NDEzMzFDRERC
MTU1MDBCMDk1OEMgLyogSlNET01Db252ZXJ0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM1NDMsNiArMzUzNywyNyBAQAogCQk5NDZEMzc0QTFE
NkQwNjI4MDA3NzA4NEYgLyogQ1NTTWFya3VwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NDZEMzc0ODFENkQwNjBDMDA3NzA4NEYgLyogQ1NTTWFya3Vw
LmggKi87IH07CiAJCTk0NkQzNzREMUQ2RDA4QTYwMDc3MDg0RiAvKiBDU1NQYXJzZXJUb2tlblJh
bmdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0
NkQzNzRCMUQ2RDA3RjUwMDc3MDg0RiAvKiBDU1NQYXJzZXJUb2tlblJhbmdlLmNwcCAqLzsgfTsK
IAkJOTQ2RDM3NEUxRDZEMDhBQTAwNzcwODRGIC8qIENTU1BhcnNlclRva2VuUmFuZ2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0NkQzNzRDMUQ2RDA3
RjUwMDc3MDg0RiAvKiBDU1NQYXJzZXJUb2tlblJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTQ3OTQ5MjQxRTAzMDhBNDAwMDE4RDg1IC8q
IERlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk0Nzk0OTIyMUUwMkY5MEIwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NT
T01WYWx1ZS5jcHAgKi87IH07CisJCTk0Nzk0OTI1MUUwMzA4QUYwMDAxOEQ4NSAvKiBEZXByZWNh
dGVkQ1NTT01WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTQ3OTQ5MjMxRTAyRjkwQjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTQ3OTQ5
MkUxRTA0NTdCQTAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkyRDFFMDQ1NzhE
MDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcCAqLzsgfTsKKwkJOTQ3OTQ5
MkYxRTA0NTlFQjAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NQ291bnRlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkxODFFMDJGNkRF
MDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01Db3VudGVyLmNwcCAqLzsgfTsKKwkJOTQ3OTQ5
MzAxRTA0NTlFRTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MUEx
RTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwICov
OyB9OworCQk5NDc5NDkzMTFFMDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01Db3Vu
dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5
NDkxOTFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01Db3VudGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTQ3OTQ5MzIxRTA0
NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0Nzk0OTFCMUUwMkY2REUw
MDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTQ3OTQ5MzMxRTA0NTlGQTAw
MDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkxQzFFMDJGNkRFMDAwMThEODUgLyogSlNE
ZXByZWNhdGVkQ1NTT01SZWN0LmNwcCAqLzsgfTsKKwkJOTQ3OTQ5MzQxRTA0NTlGQTAwMDE4RDg1
IC8qIEpTRGVwcmVjYXRlZENTU09NUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MUQxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRl
ZENTU09NUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTk0Nzk0OTM1MUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJHQkNv
bG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0
Nzk0OTFFMUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmNwcCAq
LzsgfTsKKwkJOTQ3OTQ5MzYxRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUkdC
Q29sb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0
Nzk0OTFGMUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTQ3OTQ5Mzcx
RTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MjAxRTAyRjZERTAwMDE4
RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwICovOyB9OworCQk5NDc5NDkzODFFMDQ1
OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MjExRTAyRjZERTAwMDE4RDg1IC8q
IEpTRGVwcmVjYXRlZENTU09NVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk5NDc5NDkzOTFFMDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNh
dGVkQ1NTT01WYWx1ZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTQ3OTQ5MkIxRTAzM0IyODAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09N
VmFsdWVMaXN0LmNwcCAqLzsgfTsKKwkJOTQ3OTQ5M0ExRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVw
cmVjYXRlZENTU09NVmFsdWVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NDc5NDkyQzFFMDMzQjI4MDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NT
T01WYWx1ZUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk5NDc5NDkzQzFFMDQ1Q0YzMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUHJpbWl0
aXZlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTQ3OTQ5M0IxRTA0NUNFMTAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZh
bHVlLmNwcCAqLzsgfTsKKwkJOTQ3OTQ5M0QxRTA0NjNCNjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRD
U1NPTVZhbHVlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTQ3OTQ5MjcxRTAzMTMyMDAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlz
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk0
Nzk0OTNFMUUwNDYzQkUwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MjkxRTAzMkQ1
ODAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTQ3OTQ5M0YxRTA0NjNDNjAwMDE4RDg1
IC8qIERlcHJlY2F0ZWRDU1NPTVJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk0Nzk0OTI4MUUwMzJBRTkwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NT
T01SZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJOTQ3OTQ5NDAxRTA0NjNDRTAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZh
bHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5
NDkyNjFFMDMxMzIwMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NDc5NDk0
MTFFMDQ2M0Q0MDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NQ291bnRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MkExRTAzMkVEQjAwMDE4
RDg1IC8qIERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NDkzQjZCRTFENzRCNDEyMDA4OEU3ODAgLyogTWVk
aWFRdWVyeUJsb2NrV2F0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NDkzQjZCNjFENzRCMzk1MDA4OEU3ODAgLyogTWVkaWFRdWVyeUJsb2Nr
V2F0Y2hlci5jcHAgKi87IH07CiAJCTk0OTNCNkJGMUQ3NEI0MTIwMDg4RTc4MCAvKiBNZWRpYVF1
ZXJ5QmxvY2tXYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NDkzQjZCNzFENzRCMzk1MDA4OEU3ODAgLyogTWVkaWFRdWVyeUJsb2NrV2F0Y2hl
ci5oICovOyB9OwogCQk5NDkzQjZDMDFENzRCNDEyMDA4OEU3ODAgLyogTWVkaWFRdWVyeVBhcnNl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDkz
QjZCODFENzRCMzk1MDA4OEU3ODAgLyogTWVkaWFRdWVyeVBhcnNlci5jcHAgKi87IH07CkBAIC00
MzU2LDggKzQzNzEsNiBAQAogCQlBOENGRjdBQjBBMTU2OTc4MDAwQTQyMzQgLyogSFRNTEFuY2hv
ckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4Q0ZGN0ExMEExNTY5NzgwMDBBNDIzNCAvKiBIVE1MQW5jaG9yRWxlbWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4RDA1RkE3MEEyM0Iz
MDEwMDVFNzIwMyAvKiBKU0NTU1J1bGVMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RDA1RkE1MEEyM0IzMDEwMDVFNzIwMyAvKiBKU0NTU1J1
bGVMaXN0LmNwcCAqLzsgfTsKIAkJQThEMDVGQTgwQTIzQjMwMTAwNUU3MjAzIC8qIEpTQ1NTUnVs
ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
RDA1RkE2MEEyM0IzMDEwMDVFNzIwMyAvKiBKU0NTU1J1bGVMaXN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQThEMDVGQUIwQTIzQjMwRjAwNUU3
MjAzIC8qIEpTQ1NTVmFsdWVMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4RDA1RkE5MEEyM0IzMEYwMDVFNzIwMyAvKiBKU0NTU1ZhbHVlTGlz
dC5jcHAgKi87IH07Ci0JCUE4RDA1RkFDMEEyM0IzMEYwMDVFNzIwMyAvKiBKU0NTU1ZhbHVlTGlz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThEMDVG
QUEwQTIzQjMwRjAwNUU3MjAzIC8qIEpTQ1NTVmFsdWVMaXN0LmggKi87IH07CiAJCUE4RDA2NEZC
MEEyM0MwQ0MwMDVFNzIwMyAvKiBKU0hUTUxGb3JtRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEQwNjRGOTBBMjNDMENDMDA1RTcyMDMg
LyogSlNIVE1MRm9ybUVsZW1lbnQuY3BwICovOyB9OwogCQlBOEQwNjRGQzBBMjNDMENDMDA1RTcy
MDMgLyogSlNIVE1MRm9ybUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4RDA2NEZBMEEyM0MwQ0MwMDVFNzIwMyAvKiBKU0hUTUxGb3JtRWxl
bWVudC5oICovOyB9OwogCQlBOEQwNjVBRTBBMjQ0NkNEMDA1RTcyMDMgLyogSlNIVE1MRm9ybUVs
ZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThEMDY1QUQwQTI0NDZDRDAwNUU3MjAzIC8qIEpTSFRNTEZvcm1FbGVtZW50Q3VzdG9t
LmNwcCAqLzsgfTsKQEAgLTUzNDUsOCArNTM1OCw2IEBACiAJCUJDNkQ2RTI2MDlBRjk0MzUwMEY1
OTc1OSAvKiBTY3JvbGxWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzZENkUyNTA5QUY5NDM1MDBGNTk3NTkgLyogU2Nyb2xsVmlldy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNzREQTM3MTAx
M0YzRjcwMDc5ODdBRCAvKiBSR0JDb2xvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM3NERBMzUxMDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNvbG9yLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3NERB
MzgxMDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNvbG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzREQTM2MTAxM0YzRjcwMDc5ODdBRCAvKiBSR0JD
b2xvci5jcHAgKi87IH07Ci0JCUJDNzREQTQ4MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9y
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzRE
QTQ2MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9yLmNwcCAqLzsgfTsKLQkJQkM3NERBNDkx
MDEzRjQ2ODAwNzk4N0FEIC8qIEpTUkdCQ29sb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzREQTQ3MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNv
bG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QkM3NkFDMTMwREQ3QUQ1QzAwNDE1RjM0IC8qIFBhcnNlclV0aWxpdGllcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NkFDMTEwREQ3QUQ1QzAwNDE1
RjM0IC8qIFBhcnNlclV0aWxpdGllcy5oICovOyB9OwogCQlCQzc3MkIzQzBDNEVBOTFFMDA4MzI4
NUYgLyogQ1NTSGVscGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzc3MkIzNjBDNEVBOTFFMDA4MzI4NUYgLyogQ1NTSGVscGVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3NzJDNDYwQzRFQjJD
NjAwODMyODVGIC8qIFhNTEh0dHBSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzcyQzQ0MEM0RUIyQzYwMDgzMjg1RiAvKiBYTUxIdHRw
UmVxdWVzdC5jcHAgKi87IH07CkBAIC01NTY1LDggKzU1NzYsNiBAQAogCQlCQ0Y3RTQ5MTEzN0NE
N0M3MDAxRERBRTcgLyogQWRqdXN0Vmlld1NpemVPck5vdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNDhDRTYxMzcwRDExNDAwNEU4N0Q2IC8qIEFk
anVzdFZpZXdTaXplT3JOb3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlCQ0ZBOTMwODEwMzMzMTkzMDA3QjI1RDEgLyogUmVuZGVyT3ZlcmZsb3cu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkE5MzA3
MTAzMzMxOTMwMDdCMjVEMSAvKiBSZW5kZXJPdmVyZmxvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDRkIyRTVFMDk3OUU0NjQwMEJBNzAzRCAv
KiBDYWNoZWRSZXNvdXJjZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNGQjJFNUQwOTc5RTQ2NDAwQkE3MDNEIC8qIENhY2hlZFJlc291cmNl
Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJQkNGRTJGMTEwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ZFMkYwRjBDMUI1ODM3MDAyMDIzNUYg
LyogSlNSZWN0LmNwcCAqLzsgfTsKLQkJQkNGRTJGMTIwQzFCNTgzODAwMjAyMzVGIC8qIEpTUmVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGRTJG
MTAwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDRkY2NDkxMEVBRDE1QzIwMEMxRDZGNyAvKiBMZW5n
dGhCb3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RkY2NDhGMEVBRDE1QzIwMEMxRDZGNyAvKiBMZW5ndGhCb3guaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0ZGNjQ5MjBFQUQxNUMyMDBDMUQ2Rjcg
LyogTGVuZ3RoU2l6ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkNGRjY0OTAwRUFEMTVDMjAwQzFENkY3IC8qIExlbmd0aFNpemUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCRTE2QzU5MjE3Q0ZFMTcy
MDA4NTJDMDQgLyogSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCRTE2QzU4RTE3Q0ZFMTcyMDA4NTJDMDQgLyog
SW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHAgKi87IH07CkBAIC03NjQ5LDkgKzc2NTgsNyBAQAog
CQkxNEE5OEUwNTEzNjM4NkEyMDBDOUZFRDIgLyogQmxvYi5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gQmxvYi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QkRGNTlBMTM2
NTM5OTEwMDE0ODM5MyAvKiBGaWxlUmVhZGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBG
aWxlUmVhZGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRDOUE1RTkwQjNE
MTA1RjAwNUEwMjMyIC8qIFNldHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTZXR0aW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTE0
Q0Y3ODcxMDlGNTg3Q0EwMEVCMzY2NSAvKiBDU1NWYWx1ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IENTU1ZhbHVlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTRDRjc4
QTMwOUY1OENCRjAwRUIzNjY1IC8qIEpTQ1NTVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkxNENGNzhBNTA5RjU4Q0Q4MDBFQjM2NjUgLyogSlNDU1NWYWx1ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxNENGNzg3MTA5RjU4N0NBMDBFQjM2NjUgLyogRGVwcmVjYXRlZENTU09N
VmFsdWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEZXByZWNhdGVkQ1NTT01WYWx1ZS5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0Q0Y3QTcwMDlGNUNGOUEwMEVCMzY2
NSAvKiBDU1NSdWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ1NTUnVsZS5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0Q0Y3QjMxMDlGNkVDRDcwMEVCMzY2NSAvKiBK
U0NTU1J1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NT
UnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0Q0Y3QjMyMDlGNkVDRDcw
MEVCMzY2NSAvKiBKU0NTU1J1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTQ1NTUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3MzQsNyArMTA3
NDEsNyBAQAogCQk4NTc0RDFGNjBBREU2MTIyMDA0Q0JBMTEgLyogSlNTVkdQb2ludC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmg7IHBhdGggPSBKU1NWR1BvaW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg1NzREMUY3MEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR1JlY3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHUmVjdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NzREMUY4MEFERTYxMjIwMDRDQkExMSAv
KiBKU1NWR1JlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5oOyBwYXRoID0gSlNTVkdS
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1OEMzOEVGMEFBOEZERDEwMEIx
ODdBNCAvKiBSR0JDb2xvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJHQkNvbG9yLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU4QzM4RUYwQUE4RkREMTAwQjE4N0E0
IC8qIERlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
RGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NThDMzkxMDBBQThGRjAwMDBCMTg3QTQgLyogQ1NTU3R5bGVTaGVldC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IENTU1N0eWxlU2hlZXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4NTkxMjg3OTBBQjIyMkVDMDAyMDIyNjUgLyogSFRNTEVtYmVkRWxlbWVudC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxFbWJlZEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NUFDQTlGOTBBOUI2MzEwMDA2NzFFOTAgLyogTmFtZWROb2Rl
TWFwLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmFtZWROb2RlTWFwLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwODI3LDEyICsxMDgzNCw4IEBACiAJCTkzMDJCMEJD
MEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdlR3JvdXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGFnZUdyb3VwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlR3JvdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTMwNUIyNEMwOThGMUI2QjAwQzI4ODU1IC8qIFRpbWVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTkzMDcwNTkwMDlFMEM3NTgwMEIxN0ZFNCAvKiBDU1NQcmltaXRpdmVWYWx1ZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gQ1NTUHJpbWl0aXZlVmFsdWUuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk5MzA3MDVDNzA5RTBDOTVGMDBCMTdGRTQgLyogQ291bnRlci5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ291bnRlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTkzMDcwNUQ3MDlFMEM5QjcwMEIxN0ZFNCAvKiBKU0NvdW50ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDb3VudGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJOTMwNzA1RDkwOUUwQzlCRjAwQjE3RkU0IC8qIEpTQ291bnRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NvdW50ZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTMwNzA1RTgwOUUwQzlGMDAwQjE3RkU0IC8qIEpTQ1NTUHJp
bWl0aXZlVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlND
U1NQcmltaXRpdmVWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzMDcw
NUVBMDlFMEM5RjYwMEIxN0ZFNCAvKiBKU0NTU1ByaW1pdGl2ZVZhbHVlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTUHJpbWl0aXZlVmFsdWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTMwNzA1OTAwOUUwQzc1ODAwQjE3RkU0IC8qIERlcHJlY2F0ZWRD
U1NPTVByaW1pdGl2ZVZhbHVlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVWYWx1ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
MDcwNUM3MDlFMEM5NUYwMEIxN0ZFNCAvKiBEZXByZWNhdGVkQ1NTT01Db3VudGVyLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBEZXByZWNhdGVkQ1NTT01Db3VudGVyLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwNzA2MTMwOUUwQ0E4MjAwQjE3RkU0IC8qIERlcml2ZWRT
b3VyY2VzLm1ha2UgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlw
ZSA9IHNvdXJjZWNvZGUubWFrZTsgZmlsZUVuY29kaW5nID0gNDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzLm1ha2U7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHVzZXNUYWJzID0gMTsgfTsKIAkJOTMw
N0YxRDUwQUYyRDU5MDAwREJBMzFBIC8qIEhpdFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpdFRlc3RSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MzA3RjFENjBBRjJENTkwMDBEQkEzMUEgLyogSGl0VGVzdFJlc3Vs
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGl0VGVzdFJlc3VsdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTExMjQsNiArMTExMjcsMjcgQEAKIAkJOTQ2
RDM3NDgxRDZEMDYwQzAwNzcwODRGIC8qIENTU01hcmt1cC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDU1NNYXJrdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTQ2RDM3NEIxRDZEMDdGNTAwNzcwODRGIC8qIENTU1BhcnNlclRva2VuUmFuZ2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ1NTUGFyc2VyVG9rZW5SYW5nZS5jcHA7
IHBhdGggPSBwYXJzZXIvQ1NTUGFyc2VyVG9rZW5SYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk0NkQzNzRDMUQ2RDA3RjUwMDc3MDg0RiAvKiBDU1NQYXJzZXJUb2tlblJh
bmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENTU1BhcnNlclRva2VuUmFu
Z2UuaDsgcGF0aCA9IHBhcnNlci9DU1NQYXJzZXJUb2tlblJhbmdlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTk0Nzk0OTE4MUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRD
U1NPTUNvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNE
ZXByZWNhdGVkQ1NTT01Db3VudGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTQ3OTQ5MTkxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NQ291bnRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MUExRTAyRjZERTAwMDE4RDg1
IC8qIEpTRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk0Nzk0OTFCMUUwMkY2REUwMDAxOEQ4NSAv
KiBKU0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MUMxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVj
YXRlZENTU09NUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0RlcHJlY2F0ZWRDU1NPTVJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NDc5NDkxRDFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01SZWN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGVwcmVjYXRlZENTU09NUmVjdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkxRTFFMDJGNkRFMDAwMThEODUgLyogSlNE
ZXByZWNhdGVkQ1NTT01SR0JDb2xvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTQ3OTQ5MUYxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09N
UkdCQ29sb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEZXByZWNhdGVk
Q1NTT01SR0JDb2xvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkyMDFF
MDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MjExRTAyRjZERTAwMDE4RDg1IC8qIEpT
RGVwcmVjYXRlZENTU09NVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NDc5NDkyMjFFMDJGOTBCMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVwcmVjYXRlZENTU09NVmFsdWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkyMzFFMDJGOTBCMDAwMThEODUg
LyogRGVwcmVjYXRlZENTU09NVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGVwcmVjYXRlZENTU09NVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTQ3OTQ5MjYxRTAzMTMyMDAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlcHJlY2F0ZWRDU1NPTVByaW1p
dGl2ZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk0Nzk0OTI3MUUwMzEz
MjAwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk0Nzk0OTI4MUUwMzJBRTkwMDAxOEQ4NSAvKiBEZXByZWNhdGVk
Q1NTT01SZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlcHJlY2F0ZWRD
U1NPTVJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MjkxRTAzMkQ1
ODAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTk0Nzk0OTJBMUUwMzJFREIwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NT
T01Db3VudGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlcHJlY2F0ZWRD
U1NPTUNvdW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MkIxRTAz
M0IyODAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MkMxRTAzM0IyODAwMDE4RDg1
IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTk0Nzk0OTJEMUUwNDU3OEQwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01W
YWx1ZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVwcmVj
YXRlZENTU09NVmFsdWVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3
OTQ5M0IxRTA0NUNFMTAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTQ5M0I2QjYx
RDc0QjM5NTAwODhFNzgwIC8qIE1lZGlhUXVlcnlCbG9ja1dhdGNoZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWVkaWFRdWVyeUJsb2NrV2F0Y2hlci5jcHA7IHBh
dGggPSBwYXJzZXIvTWVkaWFRdWVyeUJsb2NrV2F0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk0OTNCNkI3MUQ3NEIzOTUwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5QmxvY2tX
YXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1lZGlhUXVlcnlCbG9j
a1dhdGNoZXIuaDsgcGF0aCA9IHBhcnNlci9NZWRpYVF1ZXJ5QmxvY2tXYXRjaGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk0OTNCNkI4MUQ3NEIzOTUwMDg4RTc4MCAvKiBNZWRp
YVF1ZXJ5UGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1l
ZGlhUXVlcnlQYXJzZXIuY3BwOyBwYXRoID0gcGFyc2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE4MjksNyArMTE4NTMsNyBAQAogCQlBODBF
NkUwRDBBMTk5MTFDMDA3RkI4QzUgLyogQ1NTU3R5bGVEZWNsYXJhdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTU3R5bGVEZWNsYXJhdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBODBFNzM0ODBBMTk5Qzc3MDA3RkI4QzUgLyogQ1NTU2VsZWN0
b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1NlbGVjdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTczNEIwQTE5OUM3NzAwN0ZC
OEM1IC8qIENTU1NlbGVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
U1NTZWxlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODBFNzk5NjBBMTlC
RDIxMDA3RkI4QzUgLyogUmVjdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlY3QuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODBFNzk5NjBBMTlCRDIxMDA3RkI4QzUg
LyogRGVwcmVjYXRlZENTU09NUmVjdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERlcHJl
Y2F0ZWRDU1NPTVJlY3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNzlG
QzBBMTlDMzA3MDA3RkI4QzUgLyogSFRNTE1ldGFFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gSFRNTE1ldGFFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTgwRTdBMTUwQTE5QzNENjAwN0ZCOEM1IC8qIEpTSFRNTE1ldGFFbGVtZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxNZXRhRWxlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU3QTE2MEExOUMzRDYwMDdGQjhDNSAv
KiBKU0hUTUxNZXRhRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNIVE1MTWV0YUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMDU3
LDEzICsxMjA4MSwxMSBAQAogCQlBOENGRjdBMTBBMTU2OTc4MDAwQTQyMzQgLyogSFRNTEFuY2hv
ckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxBbmNob3JF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RDA1RkE1MEEyM0IzMDEw
MDVFNzIwMyAvKiBKU0NTU1J1bGVMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0NTU1J1bGVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQThEMDVGQTYwQTIzQjMwMTAwNUU3MjAzIC8qIEpTQ1NTUnVsZUxpc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTUnVsZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQThEMDVGQTkwQTIzQjMwRjAwNUU3MjAzIC8qIEpTQ1NTVmFsdWVMaXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU1ZhbHVlTGlz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4RDA1RkFBMEEyM0IzMEYwMDVF
NzIwMyAvKiBKU0NTU1ZhbHVlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNDU1NWYWx1ZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThEMDY0
RUYwQTIzQkZFQTAwNUU3MjAzIC8qIEhUTUxGb3JtRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEhUTUxGb3JtRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4RDA2NEY5MEEyM0MwQ0MwMDVFNzIwMyAvKiBKU0hUTUxGb3JtRWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MRm9ybUVsZW1lbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEQwNjRGQTBBMjNDMENDMDA1RTcyMDMg
LyogSlNIVE1MRm9ybUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTSFRNTEZvcm1FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RDA2
NTFCMEEyM0MxRkUwMDVFNzIwMyAvKiBDU1NSdWxlTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IENTU1J1bGVMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThE
MDY1MUMwQTIzQzFGRTAwNUU3MjAzIC8qIENTU1ZhbHVlTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IENTU1ZhbHVlTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUE4RDA2NTFDMEEyM0MxRkUwMDVFNzIwMyAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEQwNjVBRDBBMjQ0NkNEMDA1RTcyMDMgLyog
SlNIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBOEQwNkIzNzBBMjY1RENEMDA1RTcyMDMgLyogSFRNTE5hbWVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MTmFtZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQThEMDZCMzgwQTI2NURDRDAwNUU3MjAzIC8qIEhUTUxOYW1lcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTE5hbWVzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMjIyLDggKzEzMjQ0LDYgQEAKIAkJQkM2RDZF
MjUwOUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9sbFZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNjcm9sbFZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkM3NERBMzUxMDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNvbG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJHQkNvbG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDNzREQTM2MTAxM0YzRjcwMDc5ODdBRCAvKiBSR0JDb2xvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSR0JDb2xvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUJDNzREQTQ2MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUkdCQ29sb3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlCQzc0REE0NzEwMTNGNDY4MDA3OTg3QUQgLyogSlNSR0JD
b2xvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JHQkNvbG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzZBQzExMEREN0FENUMwMDQxNUYzNCAvKiBQ
YXJzZXJVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyc2Vy
VXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzcyQjM2MEM0RUE5
MUUwMDgzMjg1RiAvKiBDU1NIZWxwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENTU0hlbHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzc3MkM0NDBD
NEVCMkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEzNDcxLDggKzEzNDkxLDYgQEAKIAkJQkNGQjJFNUQwOTc5RTQ2NDAwQkE3
MDNEIC8qIENhY2hlZFJlc291cmNlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDYWNoZWRSZXNvdXJjZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQ0ZCNDVGMzE3RDhFMzkyMDA0NDQ0NDYgLyogUmVuZGVyQmxvY2tGbG93LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlckJsb2NrRmxvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQ0ZCNDVGNDE3RDhFNDk0MDA0NDQ0NDYgLyogUmVuZGVyQmxvY2tGbG93LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckJsb2NrRmxvdy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDRkUyRjBGMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1Jl
Y3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVjdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDRkUyRjEwMEMxQjU4MzcwMDIwMjM1RiAv
KiBKU1JlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVjdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0ZGNjQ4RjBFQUQxNUMyMDBDMUQ2RjcgLyog
TGVuZ3RoQm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlbmd0aEJveC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0ZGNjQ5MDBFQUQxNUMyMDBDMUQ2Rjcg
LyogTGVuZ3RoU2l6ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZW5ndGhT
aXplLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFMTZDNThFMTdDRkUxNzIwMDg1
MkMwNCAvKiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEluYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjAzODIsOCArMjA0MDAsNiBAQAogCQkJCUJDQzA2NTg0MEYzQ0Uy
QTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuaCAqLywKIAkJCQlCQ0MwNjU4NTBGM0NFMkE3MDBD
RDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5jcHAgKi8sCiAJCQkJQkNDMDY1ODYwRjNDRTJBNzAw
Q0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuaCAqLywKLQkJCQk5MzA3MDVENzA5RTBDOUI3MDBC
MTdGRTQgLyogSlNDb3VudGVyLmNwcCAqLywKLQkJCQk5MzA3MDVEOTA5RTBDOUJGMDBCMTdGRTQg
LyogSlNDb3VudGVyLmggKi8sCiAJCQkJQkM0NkMxRjIwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NT
Rm9udEZhY2VSdWxlLmNwcCAqLywKIAkJCQlCQzQ2QzFGMzBDMEREQzhGMDAyMENGQzMgLyogSlND
U1NGb250RmFjZVJ1bGUuaCAqLywKIAkJCQlCQzQ2QzFGNDBDMEREQzhGMDAyMENGQzMgLyogSlND
U1NJbXBvcnRSdWxlLmNwcCAqLywKQEAgLTIwMzk4LDggKzIwNDE0LDYgQEAKIAkJCQk5NEU4Mzk1
NDFERkIyQkE2MDA3QkM2QTcgLyogSlNDU1NOYW1lc3BhY2VSdWxlLmggKi8sCiAJCQkJQkM0NkMx
RjgwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTUGFnZVJ1bGUuY3BwICovLAogCQkJCUJDNDZDMUY5
MEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU1BhZ2VSdWxlLmggKi8sCi0JCQkJOTMwNzA1RTgwOUUw
QzlGMDAwQjE3RkU0IC8qIEpTQ1NTUHJpbWl0aXZlVmFsdWUuY3BwICovLAotCQkJCTkzMDcwNUVB
MDlFMEM5RjYwMEIxN0ZFNCAvKiBKU0NTU1ByaW1pdGl2ZVZhbHVlLmggKi8sCiAJCQkJMTRDRjdC
MzEwOUY2RUNENzAwRUIzNjY1IC8qIEpTQ1NTUnVsZS5jcHAgKi8sCiAJCQkJMTRDRjdCMzIwOUY2
RUNENzAwRUIzNjY1IC8qIEpTQ1NTUnVsZS5oICovLAogCQkJCUE4RDA1RkE1MEEyM0IzMDEwMDVF
NzIwMyAvKiBKU0NTU1J1bGVMaXN0LmNwcCAqLywKQEAgLTIwNDEyLDEwICsyMDQyNiwxOCBAQAog
CQkJCUJDQzVCREZGMEMwRTkzMTEwMDExQzJEQiAvKiBKU0NTU1N0eWxlU2hlZXQuaCAqLywKIAkJ
CQlGRDY3NzczNjE5NUNBQjdEMDA3MkUwRDMgLyogSlNDU1NTdXBwb3J0c1J1bGUuY3BwICovLAog
CQkJCUZDODQ4MDJFMTY3QUI0NDQwMDhDRDEwMCAvKiBKU0NTU1N1cHBvcnRzUnVsZS5oICovLAot
CQkJCTE0Q0Y3OEEzMDlGNThDQkYwMEVCMzY2NSAvKiBKU0NTU1ZhbHVlLmNwcCAqLywKLQkJCQkx
NENGNzhBNTA5RjU4Q0Q4MDBFQjM2NjUgLyogSlNDU1NWYWx1ZS5oICovLAotCQkJCUE4RDA1RkE5
MEEyM0IzMEYwMDVFNzIwMyAvKiBKU0NTU1ZhbHVlTGlzdC5jcHAgKi8sCi0JCQkJQThEMDVGQUEw
QTIzQjMwRjAwNUU3MjAzIC8qIEpTQ1NTVmFsdWVMaXN0LmggKi8sCisJCQkJOTQ3OTQ5MTgxRTAy
RjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NQ291bnRlci5jcHAgKi8sCisJCQkJOTQ3
OTQ5MTkxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NQ291bnRlci5oICovLAor
CQkJCTk0Nzk0OTFBMUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2
ZVZhbHVlLmNwcCAqLywKKwkJCQk5NDc5NDkxQjFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNh
dGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oICovLAorCQkJCTk0Nzk0OTFDMUUwMkY2REUwMDAxOEQ4
NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJlY3QuY3BwICovLAorCQkJCTk0Nzk0OTFEMUUwMkY2REUw
MDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJlY3QuaCAqLywKKwkJCQk5NDc5NDkxRTFFMDJG
NkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5jcHAgKi8sCisJCQkJOTQ3
OTQ5MUYxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaCAqLywK
KwkJCQk5NDc5NDkyMDFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5j
cHAgKi8sCisJCQkJOTQ3OTQ5MjExRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09N
VmFsdWUuaCAqLywKKwkJCQk5NDc5NDkyQjFFMDMzQjI4MDAwMThEODUgLyogSlNEZXByZWNhdGVk
Q1NTT01WYWx1ZUxpc3QuY3BwICovLAorCQkJCTk0Nzk0OTJDMUUwMzNCMjgwMDAxOEQ4NSAvKiBK
U0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oICovLAogCQkJCUZENjc3NzM3MTk1Q0FCN0QwMDcy
RTBEMyAvKiBKU0RPTUNTU05hbWVzcGFjZS5jcHAgKi8sCiAJCQkJRkM5RTBFNEIxNjQxOUMxRTAw
MzkyQkUzIC8qIEpTRE9NQ1NTTmFtZXNwYWNlLmggKi8sCiAJCQkJQkMzQzM5QjQwQzBEM0Q4RDAw
NUY0RDdBIC8qIEpTTWVkaWFMaXN0LmNwcCAqLywKQEAgLTIwNDI0LDEwICsyMDQ0Niw2IEBACiAJ
CQkJRDNBOTRBNDMxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuaCAqLywKIAkJ
CQk3QzUzNDNGQTE3Qjc0QjYzMDA0MjMyRjAgLyogSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cCAqLywKIAkJCQk3QzUzNDNGQjE3Qjc0QjYzMDA0MjMyRjAgLyogSlNNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmggKi8sCi0JCQkJQkNGRTJGMEYwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5jcHAg
Ki8sCi0JCQkJQkNGRTJGMTAwQzFCNTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5oICovLAotCQkJCUJD
NzREQTQ2MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9yLmNwcCAqLywKLQkJCQlCQzc0REE0
NzEwMTNGNDY4MDA3OTg3QUQgLyogSlNSR0JDb2xvci5oICovLAogCQkJCTBGRjUwMjY3MTAyQkE5
NDMwMDY2RjM5QSAvKiBKU1N0eWxlTWVkaWEuY3BwICovLAogCQkJCTBGRjUwMjY4MTAyQkE5NDMw
MDY2RjM5QSAvKiBKU1N0eWxlTWVkaWEuaCAqLywKIAkJCQlCQ0UwMTM5ODBDMEJFRjE4MDA0Mzg2
MEEgLyogSlNTdHlsZVNoZWV0LmNwcCAqLywKQEAgLTIzMzM3LDcgKzIzMzU1LDYgQEAKIAkJCQlG
QkQ2QUY4NDE1RUYyMUQ0MDA4QjcxMTAgLyogQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHAgKi8sCiAJ
CQkJRkJENkFGODUxNUVGMjFENDAwOEI3MTEwIC8qIEJhc2ljU2hhcGVGdW5jdGlvbnMuaCAqLywK
IAkJCQlBODBFNkNEQTBBMTk4OUNBMDA3RkI4QzUgLyogQ291bnRlci5oICovLAotCQkJCTkzMDcw
NUM3MDlFMEM5NUYwMEIxN0ZFNCAvKiBDb3VudGVyLmlkbCAqLywKIAkJCQkzMUJDNzQyQjFBQUZG
NDVDMDA2QjQzNDAgLyogQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcCAqLywKIAkJ
CQkzMUJDNzQyQzFBQUZGNDVDMDA2QjQzNDAgLyogQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZh
bHVlLmggKi8sCiAJCQkJQ0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlv
VmFsdWUuY3BwICovLApAQCAtMjM0NDIsNyArMjM0NTksNiBAQAogCQkJCTk0MTgyNzhEMUQ4Q0FF
OTUwMDQ5Mjc2NCAvKiBDU1NQZW5kaW5nU3Vic3RpdHV0aW9uVmFsdWUuaCAqLywKIAkJCQlBODBF
NkNEQjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJpbWl0aXZlVmFsdWUuY3BwICovLAogCQkJCUE4
MEU2Q0JDMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcmltaXRpdmVWYWx1ZS5oICovLAotCQkJCTkz
MDcwNTkwMDlFMEM3NTgwMEIxN0ZFNCAvKiBDU1NQcmltaXRpdmVWYWx1ZS5pZGwgKi8sCiAJCQkJ
RTFFRDhBQzIwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCAq
LywKIAkJCQlBODBFNkNDRDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJvcGVydHkuY3BwICovLAog
CQkJCUE4MEU2Q0Q1MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcm9wZXJ0eS5oICovLApAQCAtMjM0
OTMsMTEgKzIzNTA5LDkgQEAKIAkJCQlCQzdEOEZFRTFCRDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5z
ZXRWYWx1ZS5oICovLAogCQkJCUFEMDNBQUY4MTQ2ODQ1MzkwMEEzOUI1QiAvKiBDU1NWYWx1ZS5j
cHAgKi8sCiAJCQkJQTgwRTZDQzQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ZhbHVlLmggKi8sCi0J
CQkJMTRDRjc4NzEwOUY1ODdDQTAwRUIzNjY1IC8qIENTU1ZhbHVlLmlkbCAqLywKIAkJCQlCQ0VB
NDc4QzA5N0NBQUM4MDA5NEM5RTQgLyogQ1NTVmFsdWVLZXl3b3Jkcy5pbiAqLywKIAkJCQlBODBF
NkNCQTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWVMaXN0LmNwcCAqLywKIAkJCQlBODBFNkNC
RjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWVMaXN0LmggKi8sCi0JCQkJQThEMDY1MUMwQTIz
QzFGRTAwNUU3MjAzIC8qIENTU1ZhbHVlTGlzdC5pZGwgKi8sCiAJCQkJRTQ5QkRBMEExMzFGRDNF
NTAwM0M1NkYwIC8qIENTU1ZhbHVlUG9vbC5jcHAgKi8sCiAJCQkJRTQ5QkQ5RjkxMzFGRDJFRDAw
M0M1NkYwIC8qIENTU1ZhbHVlUG9vbC5oICovLAogCQkJCTk0NDRDQkRFMUQ4ODYxNTgwMDczQTA3
NCAvKiBDU1NWYXJpYWJsZURhdGEuY3BwICovLApAQCAtMjM1MDUsNiArMjM1MTksMjEgQEAKIAkJ
CQk5NDQ0Q0JEQzFEODg2MTU4MDA3M0EwNzQgLyogQ1NTVmFyaWFibGVSZWZlcmVuY2VWYWx1ZS5j
cHAgKi8sCiAJCQkJOTQ0NENCREIxRDg4NjE1ODAwNzNBMDc0IC8qIENTU1ZhcmlhYmxlUmVmZXJl
bmNlVmFsdWUuaCAqLywKIAkJCQlBODBFNkNFMTBBMTk4OUNBMDA3RkI4QzUgLyogRGFzaGJvYXJk
UmVnaW9uLmggKi8sCisJCQkJOTQ3OTQ5MkExRTAzMkVEQjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRD
U1NPTUNvdW50ZXIuaCAqLywKKwkJCQk5MzA3MDVDNzA5RTBDOTVGMDBCMTdGRTQgLyogRGVwcmVj
YXRlZENTU09NQ291bnRlci5pZGwgKi8sCisJCQkJOTQ3OTQ5M0IxRTA0NUNFMTAwMDE4RDg1IC8q
IERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcCAqLywKKwkJCQk5NDc5NDkyNjFFMDMx
MzIwMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCAqLywKKwkJCQk5
MzA3MDU5MDA5RTBDNzU4MDBCMTdGRTQgLyogRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUu
aWRsICovLAorCQkJCTk0Nzk0OTI4MUUwMzJBRTkwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01S
ZWN0LmggKi8sCisJCQkJQTgwRTc5OTYwQTE5QkQyMTAwN0ZCOEM1IC8qIERlcHJlY2F0ZWRDU1NP
TVJlY3QuaWRsICovLAorCQkJCTk0Nzk0OTI5MUUwMzJENTgwMDAxOEQ4NSAvKiBEZXByZWNhdGVk
Q1NTT01SR0JDb2xvci5oICovLAorCQkJCTg1OEMzOEVGMEFBOEZERDEwMEIxODdBNCAvKiBEZXBy
ZWNhdGVkQ1NTT01SR0JDb2xvci5pZGwgKi8sCisJCQkJOTQ3OTQ5MjIxRTAyRjkwQjAwMDE4RDg1
IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcCAqLywKKwkJCQk5NDc5NDkyMzFFMDJGOTBCMDAw
MThEODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWUuaCAqLywKKwkJCQkxNENGNzg3MTA5RjU4N0NB
MDBFQjM2NjUgLyogRGVwcmVjYXRlZENTU09NVmFsdWUuaWRsICovLAorCQkJCTk0Nzk0OTJEMUUw
NDU3OEQwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwICovLAorCQkJCTk0
Nzk0OTI3MUUwMzEzMjAwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaCAqLywK
KwkJCQlBOEQwNjUxQzBBMjNDMUZFMDA1RTcyMDMgLyogRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0
LmlkbCAqLywKIAkJCQk0QTRGNDhBNzE2QjBERkMwMDBFREJCMjkgLyogRG9jdW1lbnRSdWxlU2V0
cy5jcHAgKi8sCiAJCQkJNEE0RjQ4QTgxNkIwREZDMDAwRURCQjI5IC8qIERvY3VtZW50UnVsZVNl
dHMuaCAqLywKIAkJCQlGRDY3NzczNTE5NUNBQjIwMDA3MkUwRDMgLyogRE9NQ1NTTmFtZXNwYWNl
LmNwcCAqLywKQEAgLTIzNTYwLDEwICsyMzU4OSw4IEBACiAJCQkJRTRCQkVEMEQxNEY0MDI1RDAw
M0YwQjk4IC8qIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oICovLAogCQkJCTkzQ0E0
QzlGMDlERjkzRkEwMERGODY3NyAvKiBxdWlya3MuY3NzICovLAogCQkJCUJDNDM2OEU3MEMyMjZF
MzIwMDVFRkI1RiAvKiBSZWN0LmggKi8sCi0JCQkJQTgwRTc5OTYwQTE5QkQyMTAwN0ZCOEM1IC8q
IFJlY3QuaWRsICovLAogCQkJCUJDNzREQTM2MTAxM0YzRjcwMDc5ODdBRCAvKiBSR0JDb2xvci5j
cHAgKi8sCiAJCQkJQkM3NERBMzUxMDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNvbG9yLmggKi8sCi0J
CQkJODU4QzM4RUYwQUE4RkREMTAwQjE4N0E0IC8qIFJHQkNvbG9yLmlkbCAqLywKIAkJCQlBNzlC
QUQ5RDE2MUU3RjNGMDBDMkU2NTIgLyogUnVsZUZlYXR1cmUuY3BwICovLAogCQkJCUE3OUJBRDlF
MTYxRTdGM0YwMEMyRTY1MiAvKiBSdWxlRmVhdHVyZS5oICovLAogCQkJCUE3OUJBRDlGMTYxRTdG
M0YwMEMyRTY1MiAvKiBSdWxlU2V0LmNwcCAqLywKQEAgLTI1MDYzLDYgKzI1MDkwLDcgQEAKIAkJ
CQkxNEQ4MjQwODBBRjkzQUVCMDAwNEYwNTcgLyogQ2hyb21lQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlFNEE4MTRENDFDNkRFQzQwMDBCRjg1QUMgLyogQ2xhc3NDaGFuZ2VJbnZhbGlkYXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNDhCRkFDMUI4NTcyOTgwMDkxMkYzNiAvKiBDbGFz
c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTk0Nzk0OTQwMUUwNDYzQ0UwMDAxOEQ4
NSAvKiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNDMDY1N0UwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDQzA2NTgxMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0MzQTkxRTYxQzk2M0I4ODAwRDFBN0UzIC8qIENsaXBib2FyZEFjY2Vzc1Bv
bGljeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTI4OSw2ICsyNTMxNyw3IEBACiAJCQkJQTgwRTZE
MEMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1N0eWxlUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QThFQTgwMDcwQTE5NTE2RTAwQThFRjVGIC8qIENTU1N0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTk0REU1QzkyMUQ4MzAxMUQwMDE2NEYyQSAvKiBDU1NTdXBwb3J0c1BhcnNlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTQ3OTQ5M0QxRTA0NjNCNjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRD
U1NPTVZhbHVlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkM1NEQwNTcxNkE3NjczMTAwNTc1
RTREIC8qIENTU1N1cHBvcnRzUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4MEM5ODgwQ0Qy
OTRFRTAwQTBCN0IzIC8qIENTU1RpbWluZ0Z1bmN0aW9uVmFsdWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk0NkQzNzNBMUQ2Q0RGQzAwMDc3MDg0RiAvKiBDU1NUb2tlbml6ZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjU5NjIsNiArMjU5OTEsNyBAQAogCQkJCUQwN0RFQUJBMEEzNjU1NEEwMENBMzBG
OCAvKiBJbnNlcnRMaXN0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERUUwOTlF
NjQ5MjAwNTZFNTgxIC8qIEluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzMwOURGMDA5OUU2NDkyMDA1NkU1ODEgLyogSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9y
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTQ3OTQ5MzExRTA0NTlGQTAwMDE4RDg1IC8q
IEpTRGVwcmVjYXRlZENTU09NQ291bnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERjIw
OTlFNjQ5MjAwNTZFNTgxIC8qIEluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCODg1RThENTExRTA2REQyMDA5RkZCRjQgLyogSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzgxQjk1QzBFOTczMzA4MDAyNjZFMDcgLyogSW5z
cGVjdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MDYyLDcgKzI2MDkyLDYgQEAKIAkJ
CQk3OUFDOTIxOTEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGREExNUVCRTEyQjAzRjBCMDAzQTU4M0EgLyogSlNDb252b2x2ZXJOb2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTZGRDQ4RTBGNjc2RTkzMDAwOTI4NzMgLyogSlNDb29y
ZGluYXRlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTMwNzA1REEwOUUwQzlCRjAwQjE3RkU0IC8q
IEpTQ291bnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTREQ0YzQjMxQjZCRTIwODAwNjJENEMy
IC8qIEpTQ291bnRRdWV1aW5nU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NUNBMkEy
MTMwMzY3OUQwMEU5OUFEOSAvKiBKU0NyeXB0by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE1N0E4
RjExODE4NTQyNTAwOUY4MjFEIC8qIEpTQ3J5cHRvQWxnb3JpdGhtQnVpbGRlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNjA4Miw3ICsyNjExMSw2IEBACiAJCQkJQkM0NkMyMDEwQzBEREM4RjAwMjBD
RkMzIC8qIEpTQ1NTTWVkaWFSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NEU4Mzk1NjFERkIy
QkM0MDA3QkM2QTcgLyogSlNDU1NOYW1lc3BhY2VSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzQ2QzIwMzBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NQYWdlUnVsZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJOTMwNzA1RUIwOUUwQzlGNjAwQjE3RkU0IC8qIEpTQ1NTUHJpbWl0aXZlVmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTE0Q0Y3QjM0MDlGNkVDRDcwMEVCMzY2NSAvKiBKU0NTU1J1bGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUFENzI2RkVGMTZEQTExRjUwMDNBNEU2RCAvKiBKU0NTU1J1
bGVDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RDA1RkE4MEEyM0IzMDEwMDVFNzIwMyAv
KiBKU0NTU1J1bGVMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MDkxLDggKzI2MTE5LDYgQEAK
IAkJCQlCQzQ2QzIwNzBDMEREQ0ExMDAyMENGQzMgLyogSlNDU1NTdHlsZVJ1bGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDQzVCRTAxMEMwRTkzMTEwMDExQzJEQiAvKiBKU0NTU1N0eWxlU2hlZXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZDNTREMDU4MTZBNzY3NkUwMDU3NUU0RCAvKiBKU0NTU1N1
cHBvcnRzUnVsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTRDRjc4QTYwOUY1OENEODAwRUIzNjY1
IC8qIEpTQ1NTVmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4RDA1RkFDMEEyM0IzMEYwMDVF
NzIwMyAvKiBKU0NTU1ZhbHVlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUJENEU5MTcxQzQ2
Mjg3MjAwNTA2NUJDIC8qIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOUJFNjcxMEMxRDVBRUIyNTAwMzQ1NTE0IC8qIEpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDc3OEI4MDExNUE1ODFBMDBCNUQzNzIgLyogSlNDdXN0
b21FdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjI0MCw2ICsyNjI2Niw3IEBACiAJCQkJQTgw
RTdFOTkwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ0OEEyOUJGMEE0NkQ5Q0IwMDMwNzU5RiAvKiBKU0hUTUxPcHRpb25zQ29sbGVj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEFEMDE3M0QxMjdFODI4NjAwMTUwMzVGIC8qIEpT
SFRNTE91dHB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTk0Nzk0OTM0MUUwNDU5RkEw
MDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
RTJBQkE3MEExQ0U5MDUwMEI0MkIyNSAvKiBKU0hUTUxQYXJhZ3JhcGhFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUUyQUJBOTBBMUNFOTA1MDBCNDJCMjUgLyogSlNIVE1MUGFyYW1FbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzNEODVCQzFDMEUyRTdBMDBEM0I2MTAgLyogSlNI
VE1MUGljdHVyZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjYzNzYsMTAgKzI2NDAzLDkg
QEAKIAkJCQk3QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1
bHRSZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMjlERjg2MUJCNUI4MEMwMDMyMkExNiAv
KiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0U0Qzk2REQxQUQ0NDgzNTAwMzY1QTUxIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCBp
biBIZWFkZXJzICovLAotCQkJCUJDRkUyRjEyMEMxQjU4MzgwMDIwMjM1RiAvKiBKU1JlY3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTQ5OThBRUNFMTNGOUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RB
bmltYXRpb25GcmFtZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzc0REE0OTEwMTNG
NDY4MDA3OTg3QUQgLyogSlNSR0JDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdFMjMzNzEx
RENENDY4RjAwRjI4RDAxIC8qIEpTUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5NDc5NDkzMjFFMDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc2OEU0MzQxREI3NTI0NTAwRDBBNEY3
IC8qIEpTUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0ZFREQ0
MTFEQjZENzNBMDBFQjk2RjUgLyogSlNSc2FLZXlHZW5QYXJhbXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTU3MDZBNjk4MURERTVFNDYwMEEwM0IxNCAvKiBKU1JzYU9hZXBQYXJhbXMuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjY4MjAsNiArMjY4NDYsNyBAQAogCQkJCUM5NkY1RUM4MUI1ODcyMjYwMDkx
RUE5RCAvKiBNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzk2RjVFQzUxQjU4NzIyNjAwOTFFQTlEIC8qIE1lZGlhU2Vzc2lvbkludGVycnVwdGlv
blByb3ZpZGVyTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlDOTBGNjU1NjFCMjI1M0JFMDAyMTYz
QTEgLyogTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTQ3OTQ5M0Yx
RTA0NjNDNjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVJlY3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA3NjM4QTk5MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDOUQ4NTFGMDFCMzlEQzc4MDA4NTA2MkUgLyogTWVkaWFTZXNz
aW9uTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEM0E0OTVGMTdBOUQwMUIwMDI3NEU0
MiAvKiBNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzIzNSw2ICsyNzI2Miw3IEBA
CiAJCQkJM0MyNDRGRUFBMzc1QUM2MzNGODhCRTZGIC8qIFJlbmRlckxheWVyTW9kZWxPYmplY3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBCRTAzMEEyMEYzMTEyRkIwMDNDMUE0NiAvKiBSZW5kZXJM
aW5lQm94TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NjQwOTdEOTMwMjAwOTRDOUU0
IC8qIFJlbmRlckxpbmVCcmVhay5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTQ3OTQ5M0ExRTA0NTlG
QTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBQkI1NDE5RjBBQ0RERkU0MDAyODIwRUIgLyogUmVuZGVyTGlzdEJveC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThFQTdBNTIwQTE5MUE1MjAwQThFRjVGIC8qIFJlbmRlckxpc3RJdGVtLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0E1MDBBMTkxQTUyMDBBOEVGNUYgLyogUmVuZGVyTGlz
dE1hcmtlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzI0NSw2ICsyNzI3Myw3IEBACiAJCQkJNDM5
MDQ2REMxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZyYWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MzkwNDZERTEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MTWF0aC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5MDQ2RTAxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1h
dGhNTE9wZXJhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NDc5NDkzRTFFMDQ2M0JFMDAwMThE
ODUgLyogRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzOTA0
NkUyMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxSb290LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MzkwNDZFNDEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MUm93LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MzkwNDZFODEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MU2Ny
aXB0cy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzYxMiw2ICsyNzY0MSw3IEBACiAJCQkJOTNGMTk5
NjMwODI0NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMjZCOTk5OTExODAzQjNDOTAwRDAxMTIxIC8qIFN0YWNrQWxsb2NhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzdGQTYyRDBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuaCBp
biBIZWFkZXJzICovLAorCQkJCTk0Nzk0OTI1MUUwMzA4QUYwMDAxOEQ4NSAvKiBEZXByZWNhdGVk
Q1NTT01WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQzM0U5MDMxREJCREJBMjAwRUYwRDE0
IC8qIFN0YXRpY1Bhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0NEVCQkQ5MURCNUQy
MTQwMDI3NzMzNCAvKiBTdGF0aWNSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVBRkIzNTAx
MTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzcyNCw2
ICsyNzc1NCw3IEBACiAJCQkJMDg1QTE1OTMxMjg5QThERDAwMjcxMEUzIC8qIFNWR0FuaW1hdGVk
VHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5RDMz
NDMxM0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdGVkVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDM5RDMzNDQxM0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5NDc5NDkzODFFMDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNh
dGVkQ1NTT01WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5OTAwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR0FuaW1hdGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzJCODQzNDE5
RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMjIyNzk5MzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjc3OTksNiArMjc4MzAsNyBAQAogCQkJCTA4NTRCMDFGMTI1
NUU0RTYwMEI5Q0REMCAvKiBTVkdJbmxpbmVGbG93Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
ODU0QjAyMTEyNTVFNEU2MDBCOUNERDAgLyogU1ZHSW5saW5lVGV4dEJveC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjIyMjdBMzAwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xhbmdTcGFjZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTQ3OTQ5MzYxRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENT
U09NUkdCQ29sb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTcxMzQ0OTZFMTQ2OTQxQjMwMDcyMDMx
MiAvKiBTVkdMZW5ndGhDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0EzNjBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHTGVuZ3RoTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzOUMz
NjUxRERBODY1MjAwRkVGQjI5IC8qIFNWR0xlbmd0aExpc3RWYWx1ZXMuaCBpbiBIZWFkZXJzICov
LApAQCAtMjgwNTMsNiArMjgwODUsNyBAQAogCQkJCTJEMjMyQzAwMUEzMjZGMDIwMDZCRjJEQiAv
KiBUVUNhbGxTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUMzNzVEN0ZFMTY2Mzk1MTkwMDYxODRB
QiAvKiBUeXBlQWhlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NkEyQjFDMTdDQTY1QjkwMDBE
QkNEOCAvKiBUeXBlZEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAor
CQkJCTk0Nzk0OTQxMUUwNDYzRDQwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01Db3VudGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxQTA5OUU2NDkyMDA1NkU1ODEgLyogVHlwaW5nQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M2NTIzMTgxRTAwREJCNTAwNjc3RjIyIC8qIEpT
QXBwbGVQYXlQYXltZW50TWV0aG9kLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI0RTBBNDRF
RkM3MDBGOTkyRTAgLyogVUlFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTMwMCw2ICsyOTMz
Myw3IEBACiAJCQkJNDM1OEU4ODAxMzYwQTMxNzAwRTQ3NDhDIC8qIEZFRHJvcFNoYWRvdy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk4NDczMEQ3RTEyNDhGMEIzMDBEM0E5QzkgLyogRkVGbG9vZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NDgwMTk1NDEwOEJBRkIzMDBDQjJCMUYgLyogRkVHYXVz
c2lhbkJsdXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTQ3OTQ5MzAxRTA0NTlFRTAwMDE4RDg1
IC8qIEpTRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODQ3MzBEODAxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTGlnaHRpbmcuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODQ3MzBEODIxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTWVyZ2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODQ3MzBEODQxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFTW9ycGhvbG9neS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI5NTY0LDYgKzI5NTk4LDcgQEAKIAkJCQk5NzdCMzg3NzEyMjg4
M0U5MDBCODFGRjggLyogSFRNTFRva2VuaXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzA3
NTY4QjE0MjI2MkQ2MDA0MTQxNjEgLyogSFRNTFRyYWNrRWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5NzdCMzcyNTEyMjg3MjE3MDBCODFGRjggLyogSFRNTFRyZWVCdWlsZGVyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTk0Nzk0OTI0MUUwMzA4QTQwMDAxOEQ4NSAvKiBEZXByZWNhdGVk
Q1NTT01WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEVBNzlGMzBBMTkxNkRGMDBBOEVG
NUYgLyogSFRNTFVMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTNBQTBD
RDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4MzlBQUZFQzFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yOTc0Myw2ICsyOTc3OCw3IEBACiAJCQkJRkRBMTVFQjMxMkIwM0VFMTAwM0E1
ODNBIC8qIEpTQXVkaW9QYXJhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREExNUVCNTEyQjAz
RUUxMDAzQTU4M0EgLyogSlNBdWRpb1Byb2Nlc3NpbmdFdmVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCRThFRjA0MjE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTk0Nzk0OTM3MUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NP
TVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJFNkRGNzExMTcxQ0EyREEwMERENTJCOCAv
KiBKU0F1ZGlvVHJhY2tDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU4RUYwNDQxNzFD
OEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkU2REY3MTMxNzFDQTJEQTAwREQ1MkI4IC8qIEpTQXVkaW9UcmFja0xpc3RDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yOTc3Niw3ICsyOTgxMiw2IEBACiAJCQkJNzlBQzkyMTgxMDk5NDVD
ODAwMjEyNjZFIC8qIEpTQ29tcG9zaXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
REExNUVCRDEyQjAzRjBCMDAzQTU4M0EgLyogSlNDb252b2x2ZXJOb2RlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZFNkZENDhEMEY2NzZFOTMwMDA5Mjg3MyAvKiBKU0Nvb3JkaW5hdGVzLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTkzMDcwNUQ4MDlFMEM5QjcwMEIxN0ZFNCAvKiBKU0NvdW50ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTREQ0YzQjIxQjZCRTIwODAwNjJENEMyIC8qIEpTQ291
bnRRdWV1aW5nU3RyYXRlZ3kuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc1Q0EyQTExMzAzNjc5
RDAwRTk5QUQ5IC8qIEpTQ3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxNTdBOEYwMTgx
ODU0MjUwMDlGODIxRCAvKiBKU0NyeXB0b0FsZ29yaXRobUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yOTc5Nyw3ICsyOTgzMiw2IEBACiAJCQkJQkM0NkMyMDAwQzBEREM4RjAwMjBDRkMz
IC8qIEpTQ1NTTWVkaWFSdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk0RTgzOTU1MURGQjJC
QzQwMDdCQzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM0NkMyMDIwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTUGFnZVJ1bGUuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJOTMwNzA1RTkwOUUwQzlGMDAwQjE3RkU0IC8qIEpTQ1NTUHJpbWl0aXZlVmFsdWUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRDRjdCMzMwOUY2RUNENzAwRUIzNjY1IC8qIEpTQ1NT
UnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQ2QzFFRTBDMEREQkRGMDAyMENGQzMgLyog
SlNDU1NSdWxlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4RDA1RkE3MEEyM0IzMDEw
MDVFNzIwMyAvKiBKU0NTU1J1bGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk4MDcsOSAr
Mjk4NDEsNyBAQAogCQkJCUJDNDZDMjA2MEMwRERDQTEwMDIwQ0ZDMyAvKiBKU0NTU1N0eWxlUnVs
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0M1QkUwMDBDMEU5MzExMDAxMUMyREIgLyogSlND
U1NTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENjc3NzNBMTk1Q0IxNEEwMDcy
RTBEMyAvKiBKU0NTU1N1cHBvcnRzUnVsZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxNENGNzhB
NDA5RjU4Q0JGMDBFQjM2NjUgLyogSlNDU1NWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzIwRkI3RjBDMEU4RTZDMDBEMTQ0N0YgLyogSlNDU1NWYWx1ZUN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQlBOEQwNUZBQjBBMjNCMzBGMDA1RTcyMDMgLyogSlNDU1NWYWx1ZUxpc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOUJENEU5MTYxQzQ2Mjg3MjAwNTA2NUJDIC8qIEpTQ3VzdG9t
RWxlbWVudEludGVyZmFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5QkU2NzEwQjFENUFFQjIx
MDAzNDU1MTQgLyogSlNDdXN0b21FbGVtZW50UmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOUJDNUY5RTAxRDVBQUY2QjAwMkI3NDlEIC8qIEpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3Vz
dG9tLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk4NDYsNiArMjk4NzgsNyBAQAogCQkJCUUxQzM2
Q0JEMEVCMDgwNjIwMDc0MTBCQyAvKiBKU0RPTUdsb2JhbE9iamVjdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QzJCREQzRDE3QzdGOThDMDAzOEZGMTUgLyogSlNET01HbG9iYWxPYmplY3RUYXNr
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMUY3MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0RP
TUltcGxlbWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk0Nzk0OTNDMUUwNDVDRjMw
MDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0MTM4Rjg1NzFEMjUzRjA4MDAxQ0I2MUUgLyogSlNET01JdGVyYXRvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBOUQyNDgwNjBENzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlw
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUQyNDgwODBENzU3RTdEMDBGREY5NTkgLyogSlNE
T01NaW1lVHlwZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk4ODYsNiArMjk5MTksNyBA
QAogCQkJCTE0RTgzNzg0MDlGODVEMUMwMEI4NUFFNCAvKiBKU0V2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDRUZBRjRFMEMzMTdFNjkwMEZBODFGNiAvKiBKU0V2ZW50Q3VzdG9tLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTgzNkQwMzJGMURBOEExM0EwMEZGRDk2QiAvKiBKU0V2ZW50SW5p
dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5NDc5NDkzNTFFMDQ1OUZBMDAwMThEODUgLyogSlNE
ZXByZWNhdGVkQ1NTT01SR0JDb2xvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2OTA5
RUIwQzdDMDA5RDg0NjggLyogSlNFdmVudExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUUwRkVGMzcyQjQ3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50U291cmNlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUM2QTcwMzMyNUM5RDBCNkNEQ0JDNEQ3NyAvKiBKU0V2ZW50VGFyZ2V0LmNwcCBp
biBTb3VyY2VzICovLApAQCAtMzAxNTcsOSArMzAxOTEsNyBAQAogCQkJCTQxMjlERjg1MUJCNUI4
MDcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk3RTRDOTZEQzFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0
cmVhbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MThDMzk2MDFDOEYwQUFFMDA1MUM4
QTMgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlCQ0ZFMkYxMTBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQ5OThBRUNEMTNGOUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNh
bGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDNzREQTQ4MTAxM0Y0NjgwMDc5ODdBRCAv
KiBKU1JHQkNvbG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3RTIzMzczMURDRDQ2QjYwMEYy
OEQwMSAvKiBKU1JzYUhhc2hlZEltcG9ydFBhcmFtcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
NzY4RTQzNjFEQjc1Mjc0MDBEMEE0RjcgLyogSlNSc2FIYXNoZWRLZXlHZW5QYXJhbXMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTdGRURENDMxREI2RDc2MDAwRUI5NkY1IC8qIEpTUnNhS2V5R2Vu
UGFyYW1zLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzA0NjcsNiArMzA0OTksNyBAQAogCQkJCTFB
Q0U1M0Y2MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUE3NjJDNzMwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2MERCNDkwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhF
eGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTQ3OTQ5MkUxRTA0NTdCQTAwMDE4RDg1
IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTc2
MkM3NTBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV4cHJlc3Npb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUE3NjJDNzcwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhOU1Jlc29sdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTgzNkMxNDQzMUNERUFGRDgwMDczNDkzRiAvKiBKU1hQYXRo
TlNSZXNvbHZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMwNTYwLDYgKzMwNTkzLDcg
QEAKIAkJCQk3QzY1NzlGMTFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVBheW1lbnRSZXF1
ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzOTE3NkRGMTJEQTI1RTE3QkFGODBBMiAvKiBN
YXRoTUxTdHlsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQTY1NEE2QjExMDhBQkVEMDAyNjE1
RTAgLyogTWF0aE1MVG9rZW5FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk0Nzk0OTM5
MUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGQTY1NEE2QjExMDhBQkVEMDAyNjI2RjEgLyogTWF0aE1MVW5kZXJPdmVy
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MzkwNDZFOTEyREEyNUU4MTJBRjgwQUMg
LyogTWF0aE9wZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5RDVEQzJCMEY0MjNBNzMw
MDhGMjBGRCAvKiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTMxMTA3LDYgKzMxMTQxLDcgQEAKIAkJCQkwRkU3MTQwNTE0MjE3MEI4MDBEQjMzQkEgLyog
U2Nyb2xsYmFyVGhlbWVNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQTg0RjA0MTQzQkE3
QkQwMDUxRDE1MyAvKiBTY3JvbGxDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2
MDVBRUMxNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTk0Nzk0OTJGMUUwNDU5RUIwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NP
TUNvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFGNjJFRTcxNERBMjJBNzAwNDE1NTZD
IC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzRFNDBF
MTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdDb29yZGluYXRvcklPUy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBRjYyRUU2MTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdDb29yZGluYXRv
ck1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMzE0NzMsNiArMzE1MDgsNyBAQAogCQkJCUUxODA4
MTEyMTZGQ0Y0MkYwMEI4MEQwNyAvKiBTeW5jaHJvbm91c0xvYWRlckNsaWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlFMTgwODExNjE2RkNGOUNCMDBCODBEMDcgLyogU3luY2hyb25vdXNMb2Fk
ZXJDbGllbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk0NDJBQkNENjE3RDkyNjJGMDBEMzA3MTUg
LyogU3luY2hyb25vdXNMb2FkZXJDbGllbnRDRk5ldC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5
NDc5NDkzMzFFMDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01SZWN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTI2RkFFNENFMTg1MkUzQTUwMDRDOEM0NiAvKiBTeW5jaHJvbm91c1Jl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTQ1MzkwQUUwRUFGRjRCNTAwMzY5NUM4IC8qIFN5c3RlbU1lbW9yeUlPUy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDREEwN0ZCRDE4RTBBMTZBMDA0Njk5RkEgLyogU3lzdGVtU2xlZXBMaXN0
ZW5lci5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0RPTVdyYXBwZXJXb3JsZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0RPTVdyYXBwZXJXb3JsZC5oCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9ET01XcmFwcGVyV29ybGQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyAr
MjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENTU1ZhbHVlOworY2xhc3Mg
RGVwcmVjYXRlZENTU09NVmFsdWU7CiBjbGFzcyBTY3JpcHRDb250cm9sbGVyOwogCiB0eXBlZGVm
IEhhc2hNYXA8dm9pZCosIEpTQzo6V2VhazxKU0M6OkpTT2JqZWN0Pj4gRE9NT2JqZWN0V3JhcHBl
ck1hcDsKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogCiAgICAgLy8gRklYTUU6IGNhbiB3ZSBt
YWtlIHRoaXMgcHJpdmF0ZT8KICAgICBET01PYmplY3RXcmFwcGVyTWFwIG1fd3JhcHBlcnM7Ci0g
ICAgSGFzaE1hcDxDU1NWYWx1ZSosIHZvaWQqPiBtX2Nzc1ZhbHVlUm9vdHM7CisgICAgSGFzaE1h
cDxEZXByZWNhdGVkQ1NTT01WYWx1ZSosIHZvaWQqPiBtX2RlcHJlY2F0ZWRDU1NPTVZhbHVlUm9v
dHM7CiAKICAgICBib29sIGlzTm9ybWFsKCkgY29uc3QgeyByZXR1cm4gbV9pc05vcm1hbDsgfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25D
dXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NT
U3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDE3ICsyNiwxNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5oIgogCi0jaW5jbHVkZSAiQ1NTUHJpbWl0
aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NT
UHJvcGVydHlQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5
bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKLSNpbmNsdWRlICJD
U1NWYWx1ZS5oIgogI2luY2x1ZGUgIkN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmgiCisjaW5j
bHVkZSAiRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJIYXNoVG9v
bHMuaCIKICNpbmNsdWRlICJKU0NTU1N0eWxlRGVjbGFyYXRpb24uaCIKLSNpbmNsdWRlICJKU0NT
U1ZhbHVlLmgiCisjaW5jbHVkZSAiSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5oIgogI2luY2x1ZGUg
IkpTTm9kZS5oIgogI2luY2x1ZGUgIkpTU3R5bGVTaGVldEN1c3RvbS5oIgogI2luY2x1ZGUgIlJ1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKQEAgLTM2NSw3ICszNjQsNyBAQCBKU1ZhbHVlIEpTQ1NT
U3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVyCiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0
dXJuIGpzTnVsbCgpOwogCi0gICAgZ2xvYmFsT2JqZWN0KCktPndvcmxkKCkubV9jc3NWYWx1ZVJv
b3RzLmFkZCh2YWx1ZS5nZXQoKSwgcm9vdCgmd3JhcHBlZCgpKSk7IC8vIEJhbGFuY2VkIGJ5IEpT
Q1NTVmFsdWVPd25lcjo6ZmluYWxpemUoKS4KKyAgICBnbG9iYWxPYmplY3QoKS0+d29ybGQoKS5t
X2RlcHJlY2F0ZWRDU1NPTVZhbHVlUm9vdHMuYWRkKHZhbHVlLmdldCgpLCByb290KCZ3cmFwcGVk
KCkpKTsgLy8gQmFsYW5jZWQgYnkgSlNEZXByZWNhdGVkQ1NTT01WYWx1ZU93bmVyOjpmaW5hbGl6
ZSgpLgogICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksICp2YWx1ZSk7CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTVmFsdWVDdXN0b20uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTVmFsdWVDdXN0
b20uY3BwCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NTU1ZhbHVlQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNTYgKzI0LDQ5IEBACiAg
Ki8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTQ1NTVmFsdWUuaCIKIAotI2lu
Y2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCi0j
aW5jbHVkZSAiSlNDU1NQcmltaXRpdmVWYWx1ZS5oIgotI2luY2x1ZGUgIkpTQ1NTVmFsdWVMaXN0
LmgiCisjaW5jbHVkZSAiRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRl
ICJEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJKU0RlcHJlY2F0ZWRDU1NP
TVByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5oIgor
I2luY2x1ZGUgIkpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiSlNOb2Rl
LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9v
bCBKU0NTU1ZhbHVlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0LCBTbG90VmlzaXRvciYgdmlzaXRv
cikKK2Jvb2wgSlNEZXByZWNhdGVkQ1NTT01WYWx1ZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCogY29udGV4dCwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgSlNDU1NWYWx1ZSoganNDU1NWYWx1ZSA9IGpz
Q2FzdDxKU0NTU1ZhbHVlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOworICAgIEpTRGVwcmVj
YXRlZENTU09NVmFsdWUqIGpzQ1NTVmFsdWUgPSBqc0Nhc3Q8SlNEZXByZWNhdGVkQ1NTT01WYWx1
ZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICBpZiAoIWpzQ1NTVmFsdWUtPmhhc0N1
c3RvbVByb3BlcnRpZXMoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIERPTVdyYXBwZXJX
b3JsZCogd29ybGQgPSBzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KTsKLSAg
ICB2b2lkKiByb290ID0gd29ybGQtPm1fY3NzVmFsdWVSb290cy5nZXQoJmpzQ1NTVmFsdWUtPndy
YXBwZWQoKSk7CisgICAgdm9pZCogcm9vdCA9IHdvcmxkLT5tX2RlcHJlY2F0ZWRDU1NPTVZhbHVl
Um9vdHMuZ2V0KCZqc0NTU1ZhbHVlLT53cmFwcGVkKCkpOwogICAgIGlmICghcm9vdCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChy
b290KTsKIH0KIAotdm9pZCBKU0NTU1ZhbHVlT3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQordm9pZCBKU0RlcHJlY2F0ZWRDU1NP
TVZhbHVlT3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2
b2lkKiBjb250ZXh0KQogewotICAgIEpTQ1NTVmFsdWUqIGpzQ1NTVmFsdWUgPSBqc0Nhc3Q8SlND
U1NWYWx1ZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKKyAgICBKU0RlcHJlY2F0ZWRDU1NP
TVZhbHVlKiBqc0NTU1ZhbHVlID0ganNDYXN0PEpTRGVwcmVjYXRlZENTU09NVmFsdWUqPihoYW5k
bGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCA9ICpzdGF0
aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KTsKLSAgICB3b3JsZC5tX2Nzc1ZhbHVl
Um9vdHMucmVtb3ZlKCZqc0NTU1ZhbHVlLT53cmFwcGVkKCkpOworICAgIHdvcmxkLm1fZGVwcmVj
YXRlZENTU09NVmFsdWVSb290cy5yZW1vdmUoJmpzQ1NTVmFsdWUtPndyYXBwZWQoKSk7CiAgICAg
dW5jYWNoZVdyYXBwZXIod29ybGQsICZqc0NTU1ZhbHVlLT53cmFwcGVkKCksIGpzQ1NTVmFsdWUp
OwogfQogCi1KU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPENTU1ZhbHVlPiYmIHZhbHVlKQorSlNWYWx1ZSB0b0pT
TmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFJlZjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4mJiB2YWx1ZSkKIHsKICAgICBpZiAodmFsdWUtPmlz
VmFsdWVMaXN0KCkpCi0gICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU1ZhbHVlTGlzdD4o
Z2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVXcmFw
cGVyPERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdD4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHZhbHVl
KSk7CiAgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCi0gICAgICAgIHJldHVybiBj
cmVhdGVXcmFwcGVyPENTU1ByaW1pdGl2ZVZhbHVlPihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFs
dWUpKTsKLSAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxDU1NWYWx1ZT4oZ2xvYmFsT2JqZWN0LCBX
VEZNb3ZlKHZhbHVlKSk7CisgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPERlcHJlY2F0ZWRD
U1NPTVByaW1pdGl2ZVZhbHVlPihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKKyAgICBy
ZXR1cm4gY3JlYXRlV3JhcHBlcjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4oZ2xvYmFsT2JqZWN0LCBX
VEZNb3ZlKHZhbHVlKSk7CiB9CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDU1NWYWx1ZSYgdmFsdWUpCitKU1ZhbHVlIHRv
SlMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGVw
cmVjYXRlZENTU09NVmFsdWUmIHZhbHVlKQogewotICAgIC8vIFNjcmlwdHMgc2hvdWxkIG9ubHkg
ZXZlciBzZWUgY2xvbmVkIENTU1ZhbHVlcywgbmV2ZXIgdGhlIGludGVybmFsIG9uZXMuCi0gICAg
QVNTRVJUKHZhbHVlLmlzQ1NTT01TYWZlKCkpOwotCi0gICAgLy8gSWYgd2UncmUgaGVyZSB1bmRl
ciBlcnJvbmVvdXMgY2lyY3Vtc3RhbmNlcywgcHJlZmVyIHJldHVybmluZyBudWxsIG92ZXIgYSBw
b3RlbnRpYWxseSBpbnNlY3VyZSB2YWx1ZS4KLSAgICBpZiAoIXZhbHVlLmlzQ1NTT01TYWZlKCkp
Ci0gICAgICAgIHJldHVybiBqc051bGwoKTsKLQogICAgIHJldHVybiB3cmFwKHN0YXRlLCBnbG9i
YWxPYmplY3QsIHZhbHVlKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDIwOTkzMikKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAiQ29udGVudERhdGEuaCIKICNpbmNs
dWRlICJDb3VudGVyQ29udGVudC5oIgogI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIKKyNpbmNsdWRl
ICJEZXByZWNhdGVkQ1NTT01WYWx1ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZvbnRUYWdnZWRTZXR0aW5ncy5oIgpAQCAt
NDExOCwxNiArNDExOSwyMiBAQCBDU1NSdWxlKiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246
OnBhCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVJlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgcHJv
cGVydHlOYW1lKQorUmVmUHRyPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiBDU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5h
bWUpCiB7Ci0gICAgaWYgKGlzQ3VzdG9tUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSkpCi0gICAg
ICAgIHJldHVybiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yKG1fZWxlbWVudC5wdHIoKSwgbV9hbGxv
d1Zpc2l0ZWRTdHlsZSwgbV9wc2V1ZG9FbGVtZW50U3BlY2lmaWVyKS5jdXN0b21Qcm9wZXJ0eVZh
bHVlKHByb3BlcnR5TmFtZSk7CisgICAgaWYgKGlzQ3VzdG9tUHJvcGVydHlOYW1lKHByb3BlcnR5
TmFtZSkpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IENvbXB1dGVkU3R5bGVFeHRyYWN0b3IobV9l
bGVtZW50LnB0cigpLCBtX2FsbG93VmlzaXRlZFN0eWxlLCBtX3BzZXVkb0VsZW1lbnRTcGVjaWZp
ZXIpLmN1c3RvbVByb3BlcnR5VmFsdWUocHJvcGVydHlOYW1lKTsKKyAgICAgICAgaWYgKCF2YWx1
ZSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gdmFsdWUtPmNy
ZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIoKTsKKyAgICB9CiAKICAgICBDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQgPSBjc3NQcm9wZXJ0eUlEKHByb3BlcnR5TmFtZSk7CiAgICAgaWYgKCFwcm9w
ZXJ0eUlEKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZh
bHVlID0gZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eUlEKTsKLSAgICByZXR1cm4gdmFsdWUg
PyB2YWx1ZS0+Y2xvbmVGb3JDU1NPTSgpIDogbnVsbHB0cjsKKyAgICBpZiAoIXZhbHVlKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gdmFsdWUtPmNyZWF0ZURlcHJlY2F0ZWRD
U1NPTVdyYXBwZXIoKTsKIH0KIAogU3RyaW5nIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6
Z2V0UHJvcGVydHlWYWx1ZShjb25zdCBTdHJpbmcgJnByb3BlcnR5TmFtZSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgJKHJldmlz
aW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAg
Q1NTUnVsZSogcGFyZW50UnVsZSgpIGNvbnN0IGZpbmFsOwogICAgIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBmaW5h
bDsKLSAgICBSZWZQdHI8Q1NTVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5n
JiBwcm9wZXJ0eU5hbWUpIGZpbmFsOworICAgIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4g
Z2V0UHJvcGVydHlDU1NWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CiAg
ICAgU3RyaW5nIGdldFByb3BlcnR5VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZp
bmFsOwogICAgIFN0cmluZyBnZXRQcm9wZXJ0eVByaW9yaXR5KGNvbnN0IFN0cmluZyYgcHJvcGVy
dHlOYW1lKSBmaW5hbDsKICAgICBTdHJpbmcgZ2V0UHJvcGVydHlTaG9ydGhhbmQoY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0dy
aWRMaW5lTmFtZXNWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NT
U0dyaWRMaW5lTmFtZXNWYWx1ZS5jcHAJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NHcmlkTGluZU5hbWVzVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCwx
MSArNDQsNiBAQCBDU1NHcmlkTGluZU5hbWVzVmFsdWU6OkNTU0dyaWRMaW5lTmFtZXNWCiB7CiB9
CiAKLVJlZjxDU1NHcmlkTGluZU5hbWVzVmFsdWU+IENTU0dyaWRMaW5lTmFtZXNWYWx1ZTo6Y2xv
bmVGb3JDU1NPTSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTR3JpZExp
bmVOYW1lc1ZhbHVlKCp0aGlzKSk7Ci19Ci0KIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyaWRMaW5lTmFtZXNWYWx1ZS5oCShyZXZpc2lvbiAyMDk5MzIpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ1LDggKzQ1LDYgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBj
b25zdDsKIAotICAgIFJlZjxDU1NHcmlkTGluZU5hbWVzVmFsdWU+IGNsb25lRm9yQ1NTT00oKSBj
b25zdDsKLQogcHJpdmF0ZToKICAgICBDU1NHcmlkTGluZU5hbWVzVmFsdWUoKTsKIH07CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCShyZXZpc2lvbiAyMDk5MzIp
CisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE1OSwxNSArMTU5LDQgQEAgYm9vbCBDU1NJbWFnZVNldFZhbHVlOjp0cmF2ZXJzZVN1
YnJlc291cgogICAgIHJldHVybiBoYW5kbGVyKCptX2NhY2hlZEltYWdlKTsKIH0KIAotQ1NTSW1h
Z2VTZXRWYWx1ZTo6Q1NTSW1hZ2VTZXRWYWx1ZShjb25zdCBDU1NJbWFnZVNldFZhbHVlJiBjbG9u
ZUZyb20pCi0gICAgOiBDU1NWYWx1ZUxpc3QoY2xvbmVGcm9tKQotewotICAgIC8vIE5vbi1DU1NW
YWx1ZUxpc3QgZGF0YSBpcyBub3QgYWNjZXNzaWJsZSB0aHJvdWdoIENTUyBPTSwgbm8gbmVlZCB0
byBjbG9uZS4KLX0KLQotUmVmPENTU0ltYWdlU2V0VmFsdWU+IENTU0ltYWdlU2V0VmFsdWU6OmNs
b25lRm9yQ1NTT00oKSBjb25zdAotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0ltYWdl
U2V0VmFsdWUoKnRoaXMpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5oCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw4
ICs1NSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgdHJhdmVyc2VTdWJyZXNvdXJjZXMoY29uc3Qg
c3RkOjpmdW5jdGlvbjxib29sIChjb25zdCBDYWNoZWRSZXNvdXJjZSYpPiYgaGFuZGxlcikgY29u
c3Q7CiAKLSAgICBSZWY8Q1NTSW1hZ2VTZXRWYWx1ZT4gY2xvbmVGb3JDU1NPTSgpIGNvbnN0Owot
CiAgICAgdm9pZCB1cGRhdGVEZXZpY2VTY2FsZUZhY3Rvcihjb25zdCBEb2N1bWVudCYpOwogCiBw
cm90ZWN0ZWQ6CkBAIC02NCw3ICs2Miw2IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBD
U1NJbWFnZVNldFZhbHVlKCk7Ci0gICAgQ1NTSW1hZ2VTZXRWYWx1ZShjb25zdCBDU1NJbWFnZVNl
dFZhbHVlJiBjbG9uZUZyb20pOwogCiAgICAgdm9pZCBmaWxsSW1hZ2VTZXQoKTsKICAgICBzdGF0
aWMgaW5saW5lIGJvb2wgY29tcGFyZUJ5U2NhbGVGYWN0b3IoSW1hZ2VXaXRoU2NhbGUgZmlyc3Qs
IEltYWdlV2l0aFNjYWxlIHNlY29uZCkgeyByZXR1cm4gZmlyc3Quc2NhbGVGYWN0b3IgPCBzZWNv
bmQuc2NhbGVGYWN0b3I7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAJ
KHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
aCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKKyNpbmNsdWRlICJEZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCkBAIC05OCwxMiArOTks
MTAgQEAgU3RyaW5nIENTU0ltYWdlVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjbwogICAgIHJldHVy
biBzZXJpYWxpemVVUkwobV91cmwpOwogfQogCi1SZWY8Q1NTVmFsdWU+IENTU0ltYWdlVmFsdWU6
OmNsb25lRm9yQ1NTT00oKSBjb25zdAorUmVmPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiBDU1NJbWFn
ZVZhbHVlOjpjcmVhdGVEZXByZWNhdGVkQ1NTT01XcmFwcGVyKCkgY29uc3QKIHsKICAgICAvLyBO
T1RFOiBXZSBleHBvc2UgQ1NTSW1hZ2VWYWx1ZXMgYXMgVVJJIHByaW1pdGl2ZSB2YWx1ZXMgaW4g
Q1NTT00gdG8gbWFpbnRhaW4gb2xkIGJlaGF2aW9yLgotICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1
ZT4gdXJpVmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKG1fdXJsLCBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX1VSSSk7Ci0gICAgdXJpVmFsdWUtPnNldENTU09NU2FmZSgpOwotICAgIHJl
dHVybiBXVEZNb3ZlKHVyaVZhbHVlKTsKKyAgICByZXR1cm4gRGVwcmVjYXRlZENTU09NUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZShDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKG1fdXJsLCBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX1VSSSkpOwogfQogCiBib29sIENTU0ltYWdlVmFsdWU6Omtub3duVG9C
ZU9wYXF1ZShjb25zdCBSZW5kZXJFbGVtZW50KiByZW5kZXJlcikgY29uc3QKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlVmFsdWUuaAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZEltYWdlOwogY2xhc3MgQ2FjaGVkUmVz
b3VyY2VMb2FkZXI7CitjbGFzcyBEZXByZWNhdGVkQ1NTT01WYWx1ZTsKIGNsYXNzIFJlbmRlckVs
ZW1lbnQ7CiBzdHJ1Y3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zOwogCkBAIC00NSw3ICs0Niw3IEBA
IHB1YmxpYzoKIAogICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7CiAKLSAgICBSZWY8
Q1NTVmFsdWU+IGNsb25lRm9yQ1NTT00oKSBjb25zdDsKKyAgICBSZWY8RGVwcmVjYXRlZENTU09N
VmFsdWU+IGNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIoKSBjb25zdDsKIAogICAgIGJvb2wg
dHJhdmVyc2VTdWJyZXNvdXJjZXMoY29uc3Qgc3RkOjpmdW5jdGlvbjxib29sIChjb25zdCBDYWNo
ZWRSZXNvdXJjZSYpPiYgaGFuZGxlcikgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIkNhbGN1bGF0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDb2xvci5oIgog
I2luY2x1ZGUgIkNvdW50ZXIuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVW
YWx1ZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGb250Q2FzY2Fk
ZS5oIgogI2luY2x1ZGUgIk5vZGUuaCIKQEAgLTExNzQsMTA0ICsxMTc1LDYgQEAgU3RyaW5nIENT
U1ByaW1pdGl2ZVZhbHVlOjpjdXN0b21DU1NUZXh0KAogICAgIHJldHVybiB0ZXh0OwogfQogCi1S
ZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1ByaW1pdGl2ZVZhbHVlOjpjbG9uZUZvckNTU09NKCkg
Y29uc3QKLXsKLSAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHJlc3VsdDsKLQotICAgIHN3
aXRjaCAobV9wcmltaXRpdmVVbml0VHlwZSkgewotICAgIGNhc2UgQ1NTX1NUUklORzoKLSAgICBj
YXNlIENTU19VUkk6Ci0gICAgY2FzZSBDU1NfQVRUUjoKLSAgICBjYXNlIENTU19DT1VOVEVSX05B
TUU6Ci0gICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUobV92YWx1ZS5z
dHJpbmcsIHN0YXRpY19jYXN0PFVuaXRUeXBlPihtX3ByaW1pdGl2ZVVuaXRUeXBlKSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTX0ZPTlRfRkFNSUxZOgotICAgICAgICByZXN1bHQgPSBD
U1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKCptX3ZhbHVlLmZvbnRGYW1pbHkpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIENTU19DT1VOVEVSOgotICAgICAgICByZXN1bHQgPSBDU1NQcmltaXRp
dmVWYWx1ZTo6Y3JlYXRlKG1fdmFsdWUuY291bnRlci0+Y2xvbmVGb3JDU1NPTSgpKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NfUkVDVDoKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZShtX3ZhbHVlLnJlY3QtPmNsb25lRm9yQ1NTT00oKSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgQ1NTX1FVQUQ6Ci0gICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2
ZVZhbHVlOjpjcmVhdGUobV92YWx1ZS5xdWFkLT5jbG9uZUZvckNTU09NKCkpOwotICAgICAgICBi
cmVhazsKLSNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQotICAgIGNhc2UgQ1NTX0xFTkdUSF9S
RVBFQVQ6Ci0gICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUobV92YWx1
ZS5sZW5ndGhSZXBlYXQtPmNsb25lRm9yQ1NTT00oKSk7Ci0gICAgICAgIGJyZWFrOwotI2VuZGlm
Ci0gICAgY2FzZSBDU1NfUEFJUjoKLSAgICAgICAgLy8gUGFpciBpcyBub3QgZXhwb3NlZCB0byB0
aGUgQ1NTT00sIG5vIG5lZWQgZm9yIGEgZGVlcCBjbG9uZS4KLSAgICAgICAgcmVzdWx0ID0gQ1NT
UHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShSZWY8UGFpcj4oKm1fdmFsdWUucGFpcikpOwotICAgICAg
ICBicmVhazsKLSNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCi0gICAgY2FzZSBDU1NfREFT
SEJPQVJEX1JFR0lPTjoKLSAgICAgICAgLy8gRGFzaGJvYXJkUmVnaW9uIGlzIG5vdCBleHBvc2Vk
IHRvIHRoZSBDU1NPTSwgbm8gbmVlZCBmb3IgYSBkZWVwIGNsb25lLgotICAgICAgICByZXN1bHQg
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKFJlZlB0cjxEYXNoYm9hcmRSZWdpb24+KG1fdmFs
dWUucmVnaW9uKSk7Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmCi0gICAgY2FzZSBDU1NfQ0FMQzoK
LSAgICAgICAgLy8gQ1NTQ2FsY1ZhbHVlIGlzIG5vdCBleHBvc2VkIHRvIHRoZSBDU1NPTSwgbm8g
bmVlZCBmb3IgYSBkZWVwIGNsb25lLgotICAgICAgICByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1
ZTo6Y3JlYXRlKFJlZlB0cjxDU1NDYWxjVmFsdWU+KG1fdmFsdWUuY2FsYykpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIENTU19TSEFQRToKLSAgICAgICAgLy8gQ1NTU2hhcGVWYWx1ZSBpcyBu
b3QgZXhwb3NlZCB0byB0aGUgQ1NTT00sIG5vIG5lZWQgZm9yIGEgZGVlcCBjbG9uZS4KLSAgICAg
ICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShSZWY8Q1NTQmFzaWNTaGFwZT4o
Km1fdmFsdWUuc2hhcGUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NfTlVNQkVSOgot
ICAgIGNhc2UgQ1NTX1BFUkNFTlRBR0U6Ci0gICAgY2FzZSBDU1NfRU1TOgotICAgIGNhc2UgQ1NT
X1FVSVJLWV9FTVM6Ci0gICAgY2FzZSBDU1NfRVhTOgotICAgIGNhc2UgQ1NTX1JFTVM6Ci0gICAg
Y2FzZSBDU1NfQ0hTOgotICAgIGNhc2UgQ1NTX1BYOgotICAgIGNhc2UgQ1NTX0NNOgotICAgIGNh
c2UgQ1NTX01NOgotICAgIGNhc2UgQ1NTX0lOOgotICAgIGNhc2UgQ1NTX1BUOgotICAgIGNhc2Ug
Q1NTX1BDOgotICAgIGNhc2UgQ1NTX0RFRzoKLSAgICBjYXNlIENTU19SQUQ6Ci0gICAgY2FzZSBD
U1NfR1JBRDoKLSAgICBjYXNlIENTU19NUzoKLSAgICBjYXNlIENTU19TOgotICAgIGNhc2UgQ1NT
X0haOgotICAgIGNhc2UgQ1NTX0tIWjoKLSAgICBjYXNlIENTU19UVVJOOgotICAgIGNhc2UgQ1NT
X1ZXOgotICAgIGNhc2UgQ1NTX1ZIOgotICAgIGNhc2UgQ1NTX1ZNSU46Ci0gICAgY2FzZSBDU1Nf
Vk1BWDoKLSNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pIHx8IEVOQUJMRShSRVNPTFVU
SU9OX01FRElBX1FVRVJZKQotICAgIGNhc2UgQ1NTX0RQUFg6Ci0gICAgY2FzZSBDU1NfRFBJOgot
ICAgIGNhc2UgQ1NTX0RQQ006Ci0jZW5kaWYKLSAgICBjYXNlIENTU19GUjoKLSAgICAgICAgcmVz
dWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShtX3ZhbHVlLm51bSwgc3RhdGljX2Nhc3Q8
VW5pdFR5cGU+KG1fcHJpbWl0aXZlVW5pdFR5cGUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBDU1NfUFJPUEVSVFlfSUQ6Ci0gICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpj
cmVhdGVJZGVudGlmaWVyKG1fdmFsdWUucHJvcGVydHlJRCk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQ1NTX1ZBTFVFX0lEOgotICAgICAgICByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6
Y3JlYXRlSWRlbnRpZmllcihtX3ZhbHVlLnZhbHVlSUQpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIENTU19SR0JDT0xPUjoKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNy
ZWF0ZSgqbV92YWx1ZS5jb2xvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTX0RJTUVO
U0lPTjoKLSAgICBjYXNlIENTU19VTktOT1dOOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcmVzdWx0LT5zZXRDU1NPTVNhZmUoKTsK
LSAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VOb25OdWxsKCk7Ci19Ci0KIGJvb2wgQ1NTUHJpbWl0
aXZlVmFsdWU6OmVxdWFscyhjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYgb3RoZXIpIGNvbnN0CiB7
CiAgICAgaWYgKG1fcHJpbWl0aXZlVW5pdFR5cGUgIT0gb3RoZXIubV9wcmltaXRpdmVVbml0VHlw
ZSkKQEAgLTEzNDgsNCArMTI1MSw5IEBAIGJvb2wgQ1NTUHJpbWl0aXZlVmFsdWU6OmVxdWFscyhj
b25zdCBDU1MKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1JlZjxEZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZT4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVByaW1p
dGl2ZVdyYXBwZXIoKSBjb25zdAoreworICAgIHJldHVybiBEZXByZWNhdGVkQ1NTT01QcmltaXRp
dmVWYWx1ZTo6Y3JlYXRlKCp0aGlzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgJKHJldmlzaW9uIDIwOTkzMikK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zOCw2ICszOCw3IEBAIGNsYXNzIENTU0NhbGNWYWx1ZTsKIGNsYXNzIENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGE7CiBjbGFzcyBDb3VudGVyOwogY2xhc3MgRGFzaGJvYXJkUmVnaW9uOwor
Y2xhc3MgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU7CiBjbGFzcyBMZW5ndGhSZXBlYXQ7
CiBjbGFzcyBQYWlyOwogY2xhc3MgUXVhZDsKQEAgLTI4OSw5ICsyOTAsNiBAQCBwdWJsaWM6CiAg
ICAgLy8gRklYTUUtTkVXUEFSU0VSOiBDYW4gZGl0Y2ggdGhlIGJvb2xlYW4gYW5kIGp1c3QgdXNl
IHRoZSB1bml0IHR5cGUgb25jZSBvbGQgcGFyc2VyIGlzIGdvbmUuCiAgICAgYm9vbCBpc1F1aXJr
VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2lzUXVpcmtWYWx1ZSB8fCBwcmltaXRpdmVUeXBlKCkg
PT0gQ1NTX1FVSVJLWV9FTVM7IH0KIAotICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY2xvbmVG
b3JDU1NPTSgpIGNvbnN0OwotICAgIHZvaWQgc2V0Q1NTT01TYWZlKCkgeyBtX2lzQ1NTT01TYWZl
ID0gdHJ1ZTsgfQotCiAgICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUmKSBj
b25zdDsKIAogICAgIHN0YXRpYyBVbml0VHlwZSBjYW5vbmljYWxVbml0VHlwZUZvckNhdGVnb3J5
KFVuaXRDYXRlZ29yeSk7CkBAIC0yOTksNiArMjk3LDggQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IGRvdWJsZSBjb21wdXRlTm9uQ2FsY0xlbmd0aERvdWJsZShjb25zdCBDU1NUb0xlbmd0aENvbnZl
cnNpb25EYXRhJiwgVW5pdFR5cGUsIGRvdWJsZSB2YWx1ZSk7CiAKKyAgICBSZWY8RGVwcmVjYXRl
ZENTU09NUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZURlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVdyYXBw
ZXIoKSBjb25zdDsKKwogI2lmIENPTVBJTEVSKE1TVkMpCiAgICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIGJlIHByaXZhdGUsIGJ1dCBmb3Igc29tZSByZWFzb24gTVNWQyB0aGVuIGZhaWxzIHRvIGlu
dm9rZSBpdCBmcm9tIExhenlOZXZlckRlc3Ryb3llZDo6Y29uc3RydWN0LgogcHVibGljOgpJbmRl
eDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsCShyZXZpc2lvbiAyMDk5
MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsCShub25leGlz
dGVudCkKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLVsKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tz
VlRhYmxlLAotXSBpbnRlcmZhY2UgQ1NTUHJpbWl0aXZlVmFsdWUgOiBDU1NWYWx1ZSB7Ci0gICAg
Ly8gVW5pdFR5cGVzCi0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1VOS05PV04gPSAwOwot
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19OVU1CRVIgPSAxOwotICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IENTU19QRVJDRU5UQUdFID0gMjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBD
U1NfRU1TID0gMzsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfRVhTID0gNDsKLSAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUFggPSA1OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IENTU19DTSA9IDY7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX01NID0gNzsKLSAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfSU4gPSA4OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IENTU19QVCA9IDk7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1BDID0gMTA7Ci0gICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0RFRyA9IDExOwotICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IENTU19SQUQgPSAxMjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfR1JBRCA9IDEz
OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19NUyA9IDE0OwotICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IENTU19TID0gMTU7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0haID0g
MTY7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0tIWiA9IDE3OwotICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IENTU19ESU1FTlNJT04gPSAxODsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBDU1NfU1RSSU5HID0gMTk7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1VSSSA9IDIw
OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19JREVOVCA9IDIxOwotICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IENTU19BVFRSID0gMjI7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NT
X0NPVU5URVIgPSAyMzsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUkVDVCA9IDI0Owot
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19SR0JDT0xPUiA9IDI1OwotICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IENTU19WVyA9IDI2OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19W
SCA9IDI3OwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19WTUlOID0gMjg7Ci0gICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgQ1NTX1ZNQVggPSAyOTsKLSAgICAKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgc2hvcnQgcHJpbWl0aXZlVHlwZTsKLQotICAgIFtNYXlUaHJvd0V4Y2Vw
dGlvbl0gdm9pZCBzZXRGbG9hdFZhbHVlKG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBl
ID0gMCwgb3B0aW9uYWwgdW5yZXN0cmljdGVkIGZsb2F0IGZsb2F0VmFsdWUgPSBOYU4pOwotICAg
IFtNYXlUaHJvd0V4Y2VwdGlvbl0gdW5yZXN0cmljdGVkIGZsb2F0IGdldEZsb2F0VmFsdWUob3B0
aW9uYWwgdW5zaWduZWQgc2hvcnQgdW5pdFR5cGUgPSAwKTsKLQotICAgIFtNYXlUaHJvd0V4Y2Vw
dGlvbl0gdm9pZCBzZXRTdHJpbmdWYWx1ZShvcHRpb25hbCB1bnNpZ25lZCBzaG9ydCBzdHJpbmdU
eXBlID0gMCwgb3B0aW9uYWwgRE9NU3RyaW5nIHN0cmluZ1ZhbHVlKTsKLSAgICBbTWF5VGhyb3dF
eGNlcHRpb25dIERPTVN0cmluZyBnZXRTdHJpbmdWYWx1ZSgpOwotCi0gICAgW01heVRocm93RXhj
ZXB0aW9uXSBDb3VudGVyIGdldENvdW50ZXJWYWx1ZSgpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlv
bl0gUmVjdCBnZXRSZWN0VmFsdWUoKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFJHQkNvbG9y
IGdldFJHQkNvbG9yVmFsdWUoKTsKLX07CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVv
bC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9w
ZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCShyZXZp
c2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01WYWx1ZS5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgi
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTQ5LDcgKzUwLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q3NzVGV4dChjb25zdCBTdHJpbmcmKSA9IDA7
CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBT
dHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRy
PENTU1ZhbHVlPiBnZXRQcm9wZXJ0eUNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1l
KSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+IGdldFByb3Bl
cnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpID0gMDsKICAgICB2aXJ0dWFs
IFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSA9IDA7
CiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHlQcmlvcml0eShjb25zdCBTdHJpbmcmIHBy
b3BlcnR5TmFtZSkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5U2hvcnRoYW5k
KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDcgKzMxLDkgQEAKICAgICBbQ0VSZWFjdGlvbnMsIFNldHRlck1heVRocm93RXhjZXB0aW9uXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGNzc1RleHQ7CiAKICAgICBET01TdHJpbmcgZ2V0UHJvcGVydHlW
YWx1ZShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKLSAgICBbQ3VzdG9tXSBDU1NWYWx1ZT8gZ2V0
UHJvcGVydHlDU1NWYWx1ZShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKKworICAgIC8vIFRoaXMg
bWV0aG9kIGlzIGRlcHJlY2F0ZWQsIGFuZCB3ZSB3b3VsZCBsaWtlIHRvIGRyb3Agc3VwcG9ydCBm
b3IgaXQgc29tZWRheQorICAgIFtDdXN0b21dIERlcHJlY2F0ZWRDU1NPTVZhbHVlPyBnZXRQcm9w
ZXJ0eUNTU1ZhbHVlKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwogCiAgICAgW0NFUmVhY3Rpb25z
LCBNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHJlbW92ZVByb3BlcnR5KERPTVN0cmluZyBw
cm9wZXJ0eU5hbWUpOwogICAgIERPTVN0cmluZz8gZ2V0UHJvcGVydHlQcmlvcml0eShET01TdHJp
bmcgcHJvcGVydHlOYW1lKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAkocmV2aXNpb24g
MjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjgsNiArNjgsOSBAQAogI2luY2x1ZGUgIkNTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUu
aCIKICNlbmRpZgogCisjaW5jbHVkZSAiRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCIK
KyNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaCIKKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBzdHJ1Y3QgU2FtZVNpemVBc0NTU1ZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8U2Ft
ZVNpemVBc0NTU1ZhbHVlPiB7CkBAIC03NiwyNiArNzksNiBAQCBzdHJ1Y3QgU2FtZVNpemVBc0NT
U1ZhbHVlIDogcHVibGljIFJlZkNvCiAKIENPTVBJTEVfQVNTRVJUKHNpemVvZihDU1NWYWx1ZSkg
PT0gc2l6ZW9mKFNhbWVTaXplQXNDU1NWYWx1ZSksIENTU192YWx1ZV9zaG91bGRfc3RheV9zbWFs
bCk7CiAKLWNsYXNzIFRleHRDbG9uZUNTU1ZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlIHsK
LXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFRleHRDbG9uZUNTU1ZhbHVlPiBjcmVhdGUoQ2xhc3NU
eXBlIGNsYXNzVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVGV4dENsb25lQ1NTVmFsdWUoY2xhc3NUeXBlLCB0ZXh0KSk7Ci0gICAg
fQotCi0gICAgU3RyaW5nIGNzc1RleHQoKSBjb25zdCB7IHJldHVybiBtX2Nzc1RleHQ7IH0KLQot
cHJpdmF0ZToKLSAgICBUZXh0Q2xvbmVDU1NWYWx1ZShDbGFzc1R5cGUgY2xhc3NUeXBlLCBjb25z
dCBTdHJpbmcmIHRleHQpIAotICAgICAgICA6IENTU1ZhbHVlKGNsYXNzVHlwZSwgLyppc0NTU09N
U2FmZSovIHRydWUpCi0gICAgICAgICwgbV9jc3NUZXh0KHRleHQpCi0gICAgewotICAgICAgICBt
X2lzVGV4dENsb25lID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBTdHJpbmcgbV9jc3NUZXh0OwotfTsK
LQogYm9vbCBDU1NWYWx1ZTo6aXNJbXBsaWNpdEluaXRpYWxWYWx1ZSgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fY2xhc3NUeXBlID09IEluaXRpYWxDbGFzcyAmJiBkb3duY2FzdDxDU1NJbml0aWFs
VmFsdWU+KCp0aGlzKS5pc0ltcGxpY2l0KCk7CkBAIC0xMjAsOSArMTAzLDYgQEAgQ1NTVmFsdWU6
OlR5cGUgQ1NTVmFsdWU6OmNzc1ZhbHVlVHlwZSgpIAogCiBib29sIENTU1ZhbHVlOjp0cmF2ZXJz
ZVN1YnJlc291cmNlcyhjb25zdCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKGNvbnN0IENhY2hlZFJlc291
cmNlJik+JiBoYW5kbGVyKSBjb25zdAogewotICAgIC8vIFRoaXMgc2hvdWxkIGdldCBjYWxsZWQg
Zm9yIGludGVybmFsIGluc3RhbmNlcyBvbmx5LgotICAgIEFTU0VSVCghaXNDU1NPTVNhZmUoKSk7
Ci0KICAgICBpZiAoaXM8Q1NTVmFsdWVMaXN0PigqdGhpcykpCiAgICAgICAgIHJldHVybiBkb3du
Y2FzdDxDU1NWYWx1ZUxpc3Q+KCp0aGlzKS50cmF2ZXJzZVN1YnJlc291cmNlcyhoYW5kbGVyKTsK
ICAgICBpZiAoaXM8Q1NTRm9udEZhY2VTcmNWYWx1ZT4oKnRoaXMpKQpAQCAtMTQ2LDExICsxMjYs
NiBAQCBpbmxpbmUgc3RhdGljIGJvb2wgY29tcGFyZUNTU1ZhbHVlcyhjb25zCiAKIGJvb2wgQ1NT
VmFsdWU6OmVxdWFscyhjb25zdCBDU1NWYWx1ZSYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgaWYgKG1f
aXNUZXh0Q2xvbmUpIHsKLSAgICAgICAgQVNTRVJUKGlzQ1NTT01TYWZlKCkpOwotICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgVGV4dENsb25lQ1NTVmFsdWUqPih0aGlzKS0+Y3NzVGV4
dCgpID09IG90aGVyLmNzc1RleHQoKTsKLSAgICB9Ci0KICAgICBpZiAobV9jbGFzc1R5cGUgPT0g
b3RoZXIubV9jbGFzc1R5cGUpIHsKICAgICAgICAgc3dpdGNoIChtX2NsYXNzVHlwZSkgewogICAg
ICAgICBjYXNlIEFzcGVjdFJhdGlvQ2xhc3M6CkBAIC0yNDgsMTIgKzIyMyw2IEBAIGJvb2wgQ1NT
VmFsdWU6OmVxdWFscyhjb25zdCBDU1NWYWx1ZSYgb3QKIAogU3RyaW5nIENTU1ZhbHVlOjpjc3NU
ZXh0KCkgY29uc3QKIHsKLSAgICBpZiAobV9pc1RleHRDbG9uZSkgewotICAgICAgICAgQVNTRVJU
KGlzQ1NTT01TYWZlKCkpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgVGV4dENs
b25lQ1NTVmFsdWUqPih0aGlzKS0+Y3NzVGV4dCgpOwotICAgIH0KLSAgICBBU1NFUlQoIWlzQ1NT
T01TYWZlKCkgfHwgaXNTdWJ0eXBlRXhwb3NlZFRvQ1NTT00oKSk7Ci0KICAgICBzd2l0Y2ggKGNs
YXNzVHlwZSgpKSB7CiAgICAgY2FzZSBBc3BlY3RSYXRpb0NsYXNzOgogICAgICAgICByZXR1cm4g
ZG93bmNhc3Q8Q1NTQXNwZWN0UmF0aW9WYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKQEAg
LTM0NywxMyArMzE2LDYgQEAgU3RyaW5nIENTU1ZhbHVlOjpjc3NUZXh0KCkgY29uc3QKIAogdm9p
ZCBDU1NWYWx1ZTo6ZGVzdHJveSgpCiB7Ci0gICAgaWYgKG1faXNUZXh0Q2xvbmUpIHsKLSAgICAg
ICAgQVNTRVJUKGlzQ1NTT01TYWZlKCkpOwotICAgICAgICBkZWxldGUgc3RhdGljX2Nhc3Q8VGV4
dENsb25lQ1NTVmFsdWUqPih0aGlzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBBU1NF
UlQoIWlzQ1NTT01TYWZlKCkgfHwgaXNTdWJ0eXBlRXhwb3NlZFRvQ1NTT00oKSk7Ci0KICAgICBz
d2l0Y2ggKGNsYXNzVHlwZSgpKSB7CiAgICAgY2FzZSBBc3BlY3RSYXRpb0NsYXNzOgogICAgICAg
ICBkZWxldGUgZG93bmNhc3Q8Q1NTQXNwZWN0UmF0aW9WYWx1ZT4odGhpcyk7CkBAIC00ODIsMjIg
KzQ0NCwxNSBAQCB2b2lkIENTU1ZhbHVlOjpkZXN0cm95KCkKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKIH0KIAotUmVmUHRyPENTU1ZhbHVlPiBDU1NWYWx1ZTo6Y2xvbmVGb3JDU1NPTSgpIGNv
bnN0CitSZWY8RGVwcmVjYXRlZENTU09NVmFsdWU+IENTU1ZhbHVlOjpjcmVhdGVEZXByZWNhdGVk
Q1NTT01XcmFwcGVyKCkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKGNsYXNzVHlwZSgpKSB7Ci0gICAg
Y2FzZSBQcmltaXRpdmVDbGFzczoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlPigqdGhpcykuY2xvbmVGb3JDU1NPTSgpOwotICAgIGNhc2UgVmFsdWVMaXN0Q2xhc3M6
Ci0gICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KCp0aGlzKS5jbG9uZUZvckNT
U09NKCk7Ci0gICAgY2FzZSBJbWFnZUNsYXNzOgotICAgIGNhc2UgQ3Vyc29ySW1hZ2VDbGFzczoK
LSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KCp0aGlzKS5jbG9uZUZvckNT
U09NKCk7Ci0gICAgY2FzZSBJbWFnZVNldENsYXNzOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8
Q1NTSW1hZ2VTZXRWYWx1ZT4oKnRoaXMpLmNsb25lRm9yQ1NTT00oKTsKLSAgICBkZWZhdWx0Ogot
ICAgICAgICBBU1NFUlQoIWlzU3VidHlwZUV4cG9zZWRUb0NTU09NKCkpOwotICAgICAgICByZXR1
cm4gVGV4dENsb25lQ1NTVmFsdWU6OmNyZWF0ZShjbGFzc1R5cGUoKSwgY3NzVGV4dCgpKTsKLSAg
ICB9CisgICAgaWYgKGlzSW1hZ2VWYWx1ZSgpIHx8IGlzQ3Vyc29ySW1hZ2VWYWx1ZSgpKQorICAg
ICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTSW1hZ2VWYWx1ZT4odGhpcyktPmNyZWF0ZURlcHJlY2F0
ZWRDU1NPTVdyYXBwZXIoKTsKKyAgICBpZiAoaXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICBy
ZXR1cm4gRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShkb3duY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZT4oKnRoaXMpKTsKKyAgICBpZiAoaXNWYWx1ZUxpc3QoKSkKKyAgICAgICAg
cmV0dXJuIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdDo6Y3JlYXRlKGRvd25jYXN0PENTU1ZhbHVl
TGlzdD4oKnRoaXMpKTsKKyAgICByZXR1cm4gRGVwcmVjYXRlZENTU09NQ29tcGxleFZhbHVlOjpj
cmVhdGUoKnRoaXMpOwogfQogCiBib29sIENTU1ZhbHVlOjp0cmVhdEFzSW5oZXJpdGVkVmFsdWUo
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgJ
KHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiwxNSArMzIsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlOwogY2xhc3MgQ2FjaGVkUmVzb3VyY2U7CitjbGFzcyBE
ZXByZWNhdGVkQ1NTT01WYWx1ZTsKIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKIAogZW51bSBD
U1NQcm9wZXJ0eUlEIDogdWludDE2X3Q7CiAKLS8vIEZJWE1FOiBUaGUgY3VycmVudCBDU1NWYWx1
ZSBhbmQgc3ViY2xhc3NlcyBzaG91bGQgYmUgdHVybmVkIGludG8gaW50ZXJuYWwgdHlwZXMgKFN0
eWxlVmFsdWUpLgotLy8gVGhlIGZldyBzdWJ0eXBlcyB0aGF0IGFyZSBhY3R1YWxseSBleHBvc2Vk
IGluIENTU09NIGNhbiBiZSBzZWVuIGluIHRoZSBjbG9uZUZvckNTU09NKCkgZnVuY3Rpb24uCi0v
LyBUaGV5IHNob3VsZCBiZSBoYW5kbGVkIGJ5IHNlcGFyYXRlIHdyYXBwZXIgY2xhc3Nlcy4KLQot
Ly8gUGxlYXNlIGRvbid0IGV4cG9zZSBtb3JlIENTU1ZhbHVlIHR5cGVzIHRvIHRoZSB3ZWIuCiBj
bGFzcyBDU1NWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPENTU1ZhbHVlPiB7CiBwdWJsaWM6CiAg
ICAgZW51bSBUeXBlIHsKQEAgLTYxLDExICs1Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGRl
c3Ryb3koKTsKICAgICB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBUeXBlIGNzc1ZhbHVlVHlwZSgp
IGNvbnN0OwotCi0gICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKLQot
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENzc1RleHQoY29uc3QgU3RyaW5nJikgeyByZXR1cm4g
eyB9OyB9IC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQuCisgICAgVHlwZSBjc3NWYWx1ZVR5cGUo
KSBjb25zdDsKKyAgICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OwogCiAgICAgYm9vbCBpc1ByaW1p
dGl2ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gUHJpbWl0aXZlQ2xhc3M7
IH0KICAgICBib29sIGlzVmFsdWVMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPj0g
VmFsdWVMaXN0Q2xhc3M7IH0KQEAgLTEyNiwxMyArMTE5LDcgQEAgcHVibGljOgogICAgIAogICAg
IGJvb2wgaGFzVmFyaWFibGVSZWZlcmVuY2VzKCkgY29uc3QgeyByZXR1cm4gaXNWYXJpYWJsZVJl
ZmVyZW5jZVZhbHVlKCkgfHwgaXNQZW5kaW5nU3Vic3RpdHV0aW9uVmFsdWUoKTsgfQogCi0gICAg
Ym9vbCBpc0NTU09NU2FmZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDU1NPTVNhZmU7IH0KLSAgICBi
b29sIGlzU3VidHlwZUV4cG9zZWRUb0NTU09NKCkgY29uc3QKLSAgICB7IAotICAgICAgICByZXR1
cm4gaXNQcmltaXRpdmVWYWx1ZSgpIHx8IGlzVmFsdWVMaXN0KCk7Ci0gICAgfQotCi0gICAgUmVm
UHRyPENTU1ZhbHVlPiBjbG9uZUZvckNTU09NKCkgY29uc3Q7CisgICAgUmVmPERlcHJlY2F0ZWRD
U1NPTVZhbHVlPiBjcmVhdGVEZXByZWNhdGVkQ1NTT01XcmFwcGVyKCkgY29uc3Q7CiAKICAgICBi
b29sIHRyYXZlcnNlU3VicmVzb3VyY2VzKGNvbnN0IHN0ZDo6ZnVuY3Rpb248Ym9vbCAoY29uc3Qg
Q2FjaGVkUmVzb3VyY2UmKT4mIGhhbmRsZXIpIGNvbnN0OwogCkBAIC0yMTAsNiArMTk3LDcgQEAg
cHJvdGVjdGVkOgogICAgICAgICAvLyBEbyBub3QgYXBwZW5kIG5vbi1saXN0IGNsYXNzIHR5cGVz
IGhlcmUuCiAgICAgfTsKIAorcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBzaXplX3QgVmFsdWVM
aXN0U2VwYXJhdG9yQml0cyA9IDI7CiAgICAgZW51bSBWYWx1ZUxpc3RTZXBhcmF0b3IgewogICAg
ICAgICBTcGFjZVNlcGFyYXRvciwKQEAgLTIxNywxMiArMjA1LDExIEBAIHByb3RlY3RlZDoKICAg
ICAgICAgU2xhc2hTZXBhcmF0b3IKICAgICB9OwogCitwcm90ZWN0ZWQ6CiAgICAgQ2xhc3NUeXBl
IGNsYXNzVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENsYXNzVHlwZT4obV9jbGFz
c1R5cGUpOyB9CiAKLSAgICBleHBsaWNpdCBDU1NWYWx1ZShDbGFzc1R5cGUgY2xhc3NUeXBlLCBi
b29sIGlzQ1NTT01TYWZlID0gZmFsc2UpCi0gICAgICAgIDogbV9pc0NTU09NU2FmZShpc0NTU09N
U2FmZSkKLSAgICAgICAgLCBtX2lzVGV4dENsb25lKGZhbHNlKQotICAgICAgICAsIG1fcHJpbWl0
aXZlVW5pdFR5cGUoMCkKKyAgICBleHBsaWNpdCBDU1NWYWx1ZShDbGFzc1R5cGUgY2xhc3NUeXBl
KQorICAgICAgICA6IG1fcHJpbWl0aXZlVW5pdFR5cGUoMCkKICAgICAgICAgLCBtX2hhc0NhY2hl
ZENTU1RleHQoZmFsc2UpCiAgICAgICAgICwgbV9pc1F1aXJrVmFsdWUoZmFsc2UpCiAgICAgICAg
ICwgbV92YWx1ZUxpc3RTZXBhcmF0b3IoU3BhY2VTZXBhcmF0b3IpCkBAIC0yMzksOCArMjI2LDYg
QEAgcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlc3Ryb3koKTsKIAogcHJvdGVj
dGVkOgotICAgIHVuc2lnbmVkIG1faXNDU1NPTVNhZmUgOiAxOwotICAgIHVuc2lnbmVkIG1faXNU
ZXh0Q2xvbmUgOiAxOwogICAgIC8vIFRoZSBiaXRzIGluIHRoaXMgc2VjdGlvbiBhcmUgb25seSB1
c2VkIGJ5IHNwZWNpZmljIHN1YmNsYXNzZXMgYnV0IGtlcHQgaGVyZQogICAgIC8vIHRvIG1heGlt
aXplIHN0cnVjdCBwYWNraW5nLgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5pZGwJKHJldmlz
aW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5pZGwJKG5vbmV4aXN0
ZW50KQpAQCAtMSwzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAw
NiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KLSAqCi0gKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot
ICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAot
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotWwotICAgIEN1c3RvbUlzUmVh
Y2hhYmxlLAotICAgIEN1c3RvbVRvSlNPYmplY3QsCi0gICAgRXhwb3J0VG9XcmFwcGVkRnVuY3Rp
b24sCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLSAgICBKU0N1c3RvbUZpbmFsaXpl
LAotXSBpbnRlcmZhY2UgQ1NTVmFsdWUgewotICAgIC8vIFVuaXRUeXBlcwotICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IENTU19JTkhFUklUID0gMDsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBD
U1NfUFJJTUlUSVZFX1ZBTFVFID0gMTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVkFM
VUVfTElTVCA9IDI7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0NVU1RPTSA9IDM7Ci0K
LSAgICBbU2V0dGVyTWF5VGhyb3dFeGNlcHRpb25dIGF0dHJpYnV0ZSBET01TdHJpbmc/IGNzc1Rl
eHQ7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgY3NzVmFsdWVUeXBl
OwotfTsKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5p
ZGwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2
ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVMaXN0LmNwcAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRl
ICJDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTRnVuY3Rpb25WYWx1ZS5o
IgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiRGVwcmVjYXRlZENT
U09NVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTE0NCwxOCArMTQ1LDQgQEAgYm9vbCBDU1NWYWx1ZUxpc3Q6OnRy
YXZlcnNlU3VicmVzb3VyY2VzKAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotQ1NTVmFsdWVMaXN0
OjpDU1NWYWx1ZUxpc3QoY29uc3QgQ1NTVmFsdWVMaXN0JiBjbG9uZUZyb20pCi0gICAgOiBDU1NW
YWx1ZShjbG9uZUZyb20uY2xhc3NUeXBlKCksIC8qIGlzQ1NTT01TYWZlICovIHRydWUpCi17Ci0g
ICAgbV92YWx1ZUxpc3RTZXBhcmF0b3IgPSBjbG9uZUZyb20ubV92YWx1ZUxpc3RTZXBhcmF0b3I7
Ci0gICAgbV92YWx1ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjbG9uZUZyb20ubV92YWx1ZXMu
c2l6ZSgpKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBzaXplID0gY2xvbmVGcm9tLm1fdmFs
dWVzLnNpemUoKTsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV92YWx1ZXMudW5jaGVja2VkQXBw
ZW5kKCpjbG9uZUZyb20ubV92YWx1ZXNbaV0tPmNsb25lRm9yQ1NTT00oKSk7Ci19Ci0KLVJlZjxD
U1NWYWx1ZUxpc3Q+IENTU1ZhbHVlTGlzdDo6Y2xvbmVGb3JDU1NPTSgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTVmFsdWVMaXN0KCp0aGlzKSk7Ci19Ci0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmgJKHJldmlzaW9u
IDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuaAkod29ya2luZyBj
b3B5KQpAQCAtNjksMTIgKzY5LDExIEBAIHB1YmxpYzoKICAgICBib29sIGVxdWFscyhjb25zdCBD
U1NWYWx1ZSYpIGNvbnN0OwogCiAgICAgYm9vbCB0cmF2ZXJzZVN1YnJlc291cmNlcyhjb25zdCBz
dGQ6OmZ1bmN0aW9uPGJvb2wgKGNvbnN0IENhY2hlZFJlc291cmNlJik+JiBoYW5kbGVyKSBjb25z
dDsKLSAgICAKLSAgICBSZWY8Q1NTVmFsdWVMaXN0PiBjbG9uZUZvckNTU09NKCkgY29uc3Q7CisK
KyAgICB1bnNpZ25lZCBzZXBhcmF0b3IoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlTGlzdFNlcGFy
YXRvcjsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgQ1NTVmFsdWVMaXN0KENsYXNzVHlwZSwgVmFsdWVM
aXN0U2VwYXJhdG9yKTsKLSAgICBDU1NWYWx1ZUxpc3QoY29uc3QgQ1NTVmFsdWVMaXN0JiBjbG9u
ZUZyb20pOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENTU1ZhbHVlTGlzdChWYWx1ZUxpc3RT
ZXBhcmF0b3IpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5pZGwJKHJldmlzaW9u
IDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsCShub25leGlz
dGVudCkKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLVsKLSAg
ICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotXSBpbnRlcmZhY2UgQ1NTVmFsdWVMaXN0IDog
Q1NTVmFsdWUgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsK
LSAgICBnZXR0ZXIgQ1NTVmFsdWUgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKLX07Ci0KClBy
b3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0Nv
dW50ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ291bnRlci5oCShyZXZp
c2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ291bnRlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiw2ICszNiwxMCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGxpc3RTdHlsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbGlzdFN0eWxlLT5zdHJpbmdWYWx1ZSgpOyB9CiAgICAgU3RyaW5nIHNl
cGFyYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fc2VwYXJhdG9yLT5zdHJpbmdWYWx1ZSgpOyB9CiAK
KyAgICBjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYgaWRlbnRpZmllclZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgY29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUmIGxpc3RT
dHlsZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9saXN0U3R5bGU7IH0KKyAgICBjb25zdCBDU1NQ
cmltaXRpdmVWYWx1ZSYgc2VwYXJhdG9yVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3NlcGFyYXRv
cjsgfQorICAgIAogICAgIENTU1ZhbHVlSUQgbGlzdFN0eWxlSWRlbnQoKSBjb25zdCB7IHJldHVy
biBtX2xpc3RTdHlsZS0+dmFsdWVJRCgpOyB9CiAKICAgICB2b2lkIHNldElkZW50aWZpZXIoUmVm
PENTU1ByaW1pdGl2ZVZhbHVlPiYmIGlkZW50aWZpZXIpIHsgbV9pZGVudGlmaWVyID0gV1RGTW92
ZShpZGVudGlmaWVyKTsgfQpAQCAtNDgsMTEgKzUyLDYgQEAgcHVibGljOgogICAgICAgICAgICAg
JiYgbGlzdFN0eWxlKCkgPT0gb3RoZXIubGlzdFN0eWxlKCkKICAgICAgICAgICAgICYmIHNlcGFy
YXRvcigpID09IG90aGVyLnNlcGFyYXRvcigpOwogICAgIH0KLSAgICAKLSAgICBSZWY8Q291bnRl
cj4gY2xvbmVGb3JDU1NPTSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gY3JlYXRlKG1f
aWRlbnRpZmllci0+Y2xvbmVGb3JDU1NPTSgpLCBtX2xpc3RTdHlsZS0+Y2xvbmVGb3JDU1NPTSgp
LCBtX3NlcGFyYXRvci0+Y2xvbmVGb3JDU1NPTSgpKTsKLSAgICB9CiAKIHByaXZhdGU6CiAgICAg
Q291bnRlcihSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+JiYgaWRlbnRpZmllciwgUmVmPENTU1ByaW1p
dGl2ZVZhbHVlPiYmIGxpc3RTdHlsZSwgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiYmIHNlcGFyYXRv
cikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVyLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvQ291bnRlci5pZGwJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9Db3VudGVyLmlkbAkobm9uZXhpc3RlbnQpCkBAIC0xLDI3ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
LSAqLwotCi1bCi0gICAgRXhwb3J0VG9XcmFwcGVkRnVuY3Rpb24sCi0gICAgSW1wbGVtZW50YXRp
b25MYWNrc1ZUYWJsZSwKLV0gaW50ZXJmYWNlIENvdW50ZXIgewotICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgaWRlbnRpZmllcjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGxpc3RTdHlsZTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNlcGFyYXRv
cjsKLX07CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9jc3MvQ291bnRlci5p
ZGwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2
ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvRGVwcmVjYXRlZENTU09NQ291bnRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkQ1NTT01Db3VudGVyLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDb3VudGVyLmgiCisjaW5jbHVkZSAiRGVwcmVjYXRl
ZENTU09NUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxEZXBy
ZWNhdGVkQ1NTT01Db3VudGVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEZXByZWNhdGVk
Q1NTT01Db3VudGVyPiBjcmVhdGUoY29uc3QgQ291bnRlciYgY291bnRlcikgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBEZXByZWNhdGVkQ1NTT01Db3VudGVyKGNvdW50ZXIpKTsgfQorCisgICAgU3Ry
aW5nIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXItPnN0cmluZ1ZhbHVl
KCk7IH0KKyAgICBTdHJpbmcgbGlzdFN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9saXN0U3R5bGUt
PnN0cmluZ1ZhbHVlKCk7IH0KKyAgICBTdHJpbmcgc2VwYXJhdG9yKCkgY29uc3QgeyByZXR1cm4g
bV9zZXBhcmF0b3ItPnN0cmluZ1ZhbHVlKCk7IH0KKyAgICAKK3ByaXZhdGU6CisgICAgRGVwcmVj
YXRlZENTU09NQ291bnRlcihjb25zdCBDb3VudGVyJiBjb3VudGVyKQorICAgICAgICA6IG1faWRl
bnRpZmllcihjb3VudGVyLmlkZW50aWZpZXJWYWx1ZSgpLmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVdyYXBwZXIoKSkKKyAgICAgICAgLCBtX2xpc3RTdHlsZShjb3VudGVyLmxpc3RTdHls
ZVZhbHVlKCkuY3JlYXRlRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlV3JhcHBlcigpKQorICAgICAg
ICAsIG1fc2VwYXJhdG9yKGNvdW50ZXIuc2VwYXJhdG9yVmFsdWUoKS5jcmVhdGVEZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVXcmFwcGVyKCkpCisgICAgeworICAgIH0KKyAgICAKKyAgICBSZWY8RGVw
cmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IG1faWRlbnRpZmllcjsKKyAgICBSZWY8RGVwcmVj
YXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IG1fbGlzdFN0eWxlOworICAgIFJlZjxEZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVWYWx1ZT4gbV9zZXBhcmF0b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NQ291bnRlci5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTUNvdW50
ZXIuaWRsCShyZXZpc2lvbiAyMDk5MzIpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVy
LmlkbDoyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NQ291bnRl
ci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKK1sKKyAgICBFeHBv
cnRUb1dyYXBwZWRGdW5jdGlvbiwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorXSBp
bnRlcmZhY2UgQ291bnRlciB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBpZGVu
dGlmaWVyOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGlzdFN0eWxlOworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2VwYXJhdG9yOworfTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Db3VudGVyLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NQ291bnRlci5pZGwJKHJldmlzaW9uIDIw
OTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Db3VudGVyLmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMjAsNyArMjAsOCBAQAogWwogICAgIEV4cG9ydFRvV3JhcHBlZEZ1
bmN0aW9uLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCi1dIGludGVyZmFjZSBDb3Vu
dGVyIHsKKyAgICBJbnRlcmZhY2VOYW1lPUNvdW50ZXIKK10gaW50ZXJmYWNlIERlcHJlY2F0ZWRD
U1NPTUNvdW50ZXIgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgaWRlbnRpZmll
cjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxpc3RTdHlsZTsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNlcGFyYXRvcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFs
dWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCIKKworI2luY2x1ZGUgIkRlcHJlY2F0
ZWRDU1NPTUNvdW50ZXIuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oIgor
I2luY2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTVJlY3QuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2Rl
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKKy8vIEZJWE1FOiBGb3Igbm93IHRoZXNl
IHN0aWxsIGNhbGwgaW50byBDU1NQcmltaXRpdmVWYWx1ZSwgYnV0IGFzIHdlIHJlZmFjdG9yIGlu
dG8gc3ViY2xhc3NlcworLy8gc3VjaCBhcyBTdHlsZUNvdW50ZXJWYWx1ZSwgU3R5bGVSZWN0VmFs
dWUsIGFuZCBTdHlsZUNvbG9yVmFsdWUsIHRoZXNlIG1ldGhvZHMgd2lsbCBnZXQKKy8vIG1vcmUg
Y29tcGxpY2F0ZWQuCisKK0V4Y2VwdGlvbk9yPFJlZjxEZXByZWNhdGVkQ1NTT01Db3VudGVyPj4g
RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmdldENvdW50ZXJWYWx1ZSgpIGNvbnN0Cit7
CisgICAgRXhjZXB0aW9uT3I8Q291bnRlciY+IGNvdW50ZXIgPSBtX3ZhbHVlLT5nZXRDb3VudGVy
VmFsdWUoKTsKKyAgICBpZiAoY291bnRlci5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNTX0VSUiB9OworICAgIHJldHVybiBEZXByZWNhdGVk
Q1NTT01Db3VudGVyOjpjcmVhdGUoY291bnRlci5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7Cit9Cisg
ICAgCitFeGNlcHRpb25PcjxSZWY8RGVwcmVjYXRlZENTU09NUmVjdD4+IERlcHJlY2F0ZWRDU1NP
TVByaW1pdGl2ZVZhbHVlOjpnZXRSZWN0VmFsdWUoKSBjb25zdAoreworICAgIEV4Y2VwdGlvbk9y
PFJlY3QmPiByZWN0ID0gbV92YWx1ZS0+Z2V0UmVjdFZhbHVlKCk7CisgICAgaWYgKHJlY3QuaGFz
RXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19F
UlIgfTsKKyAgICByZXR1cm4gRGVwcmVjYXRlZENTU09NUmVjdDo6Y3JlYXRlKHJlY3QucmVsZWFz
ZVJldHVyblZhbHVlKCkpOworfQorCitFeGNlcHRpb25PcjxSZWY8RGVwcmVjYXRlZENTU09NUkdC
Q29sb3I+PiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6Z2V0UkdCQ29sb3JWYWx1ZSgp
IGNvbnN0Cit7CisgICAgRXhjZXB0aW9uT3I8UmVmPFJHQkNvbG9yPj4gY29sb3IgPSBtX3ZhbHVl
LT5nZXRSR0JDb2xvclZhbHVlKCk7CisgICAgaWYgKGNvbG9yLmhhc0V4Y2VwdGlvbigpKQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07CisgICAgcmV0dXJu
IERlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yOjpjcmVhdGUoY29sb3IucmVsZWFzZVJldHVyblZhbHVl
KCkpOworfQorCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZENTU09NUHJpbWl0aXZlVmFsdWUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9j
c3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRl
ICJEZXByZWNhdGVkQ1NTT01WYWx1ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERlcHJlY2F0ZWRDU1NPTUNvdW50ZXI7CitjbGFzcyBEZXByZWNhdGVkQ1NTT01SR0JDb2xvcjsK
K2NsYXNzIERlcHJlY2F0ZWRDU1NPTVJlY3Q7CisgICAgCitjbGFzcyBEZXByZWNhdGVkQ1NTT01Q
cmltaXRpdmVWYWx1ZSA6IHB1YmxpYyBEZXByZWNhdGVkQ1NTT01WYWx1ZSB7CitwdWJsaWM6Cisg
ICAgLy8gT25seSBleHBvc2Ugd2hhdCdzIGluIHRoZSBJREwgZmlsZS4KKyAgICBlbnVtIFVuaXRU
eXBlIHsKKyAgICAgICAgQ1NTX1VOS05PV04gPSAwLAorICAgICAgICBDU1NfTlVNQkVSID0gMSwK
KyAgICAgICAgQ1NTX1BFUkNFTlRBR0UgPSAyLAorICAgICAgICBDU1NfRU1TID0gMywKKyAgICAg
ICAgQ1NTX0VYUyA9IDQsCisgICAgICAgIENTU19QWCA9IDUsCisgICAgICAgIENTU19DTSA9IDYs
CisgICAgICAgIENTU19NTSA9IDcsCisgICAgICAgIENTU19JTiA9IDgsCisgICAgICAgIENTU19Q
VCA9IDksCisgICAgICAgIENTU19QQyA9IDEwLAorICAgICAgICBDU1NfREVHID0gMTEsCisgICAg
ICAgIENTU19SQUQgPSAxMiwKKyAgICAgICAgQ1NTX0dSQUQgPSAxMywKKyAgICAgICAgQ1NTX01T
ID0gMTQsCisgICAgICAgIENTU19TID0gMTUsCisgICAgICAgIENTU19IWiA9IDE2LAorICAgICAg
ICBDU1NfS0haID0gMTcsCisgICAgICAgIENTU19ESU1FTlNJT04gPSAxOCwKKyAgICAgICAgQ1NT
X1NUUklORyA9IDE5LAorICAgICAgICBDU1NfVVJJID0gMjAsCisgICAgICAgIENTU19JREVOVCA9
IDIxLAorICAgICAgICBDU1NfQVRUUiA9IDIyLAorICAgICAgICBDU1NfQ09VTlRFUiA9IDIzLAor
ICAgICAgICBDU1NfUkVDVCA9IDI0LAorICAgICAgICBDU1NfUkdCQ09MT1IgPSAyNSwKKyAgICAg
ICAgQ1NTX1ZXID0gMjYsCisgICAgICAgIENTU19WSCA9IDI3LAorICAgICAgICBDU1NfVk1JTiA9
IDI4LAorICAgICAgICBDU1NfVk1BWCA9IDI5CisgICAgfTsKKworICAgIHN0YXRpYyBSZWY8RGVw
cmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZShjb25zdCBDU1NQcmltaXRpdmVWYWx1
ZSYgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVWYWx1ZSh2YWx1ZSkpOworICAgIH0KKworICAgIGJvb2wgZXF1YWxzKGNv
bnN0IERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4g
bV92YWx1ZS0+ZXF1YWxzKG90aGVyLm1fdmFsdWUpOyB9CisgICAgdW5zaWduZWQgY3NzVmFsdWVU
eXBlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS0+Y3NzVmFsdWVUeXBlKCk7IH0KKyAgICBTdHJp
bmcgY3NzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUtPmNzc1RleHQoKTsgfQorICAgIAor
ICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHRoZXNlIHdpbGwgY29udGFpbiBtb3JlIGNvZGUgYW5k
IG5vdCBqdXN0IGNhbGwgdGhyb3VnaCB0bworICAgIC8vIENTU1ByaW1pdGl2ZVZhbHVlLgorICAg
IFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIHNob3J0IHByaW1pdGl2ZVR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3ZhbHVlLT5wcmltaXRpdmVUeXBlKCk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRGbG9hdFZhbHVlKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBkb3Vi
bGUgZmxvYXRWYWx1ZSkgeyByZXR1cm4gbV92YWx1ZS0+c2V0RmxvYXRWYWx1ZSh1bml0VHlwZSwg
ZmxvYXRWYWx1ZSk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25PcjxmbG9hdD4gZ2V0
RmxvYXRWYWx1ZSh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSkgY29uc3QgeyByZXR1cm4gbV92YWx1
ZS0+Z2V0RmxvYXRWYWx1ZSh1bml0VHlwZSk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRp
b25Pcjx2b2lkPiBzZXRTdHJpbmdWYWx1ZSh1bnNpZ25lZCBzaG9ydCBzdHJpbmdUeXBlLCBjb25z
dCBTdHJpbmcmIHN0cmluZ1ZhbHVlKSB7IHJldHVybiBtX3ZhbHVlLT5zZXRTdHJpbmdWYWx1ZShz
dHJpbmdUeXBlLCBzdHJpbmdWYWx1ZSk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25P
cjxTdHJpbmc+IGdldFN0cmluZ1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS0+Z2V0U3Ry
aW5nVmFsdWUoKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFJlZjxEZXByZWNh
dGVkQ1NTT01Db3VudGVyPj4gZ2V0Q291bnRlclZhbHVlKCkgY29uc3Q7CisgICAgV0VCQ09SRV9F
WFBPUlQgRXhjZXB0aW9uT3I8UmVmPERlcHJlY2F0ZWRDU1NPTVJlY3Q+PiBnZXRSZWN0VmFsdWUo
KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25PcjxSZWY8RGVwcmVjYXRlZENT
U09NUkdCQ29sb3I+PiBnZXRSR0JDb2xvclZhbHVlKCkgY29uc3Q7CisKKyAgICBTdHJpbmcgc3Ry
aW5nVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLT5zdHJpbmdWYWx1ZSgpOyB9CisKK3By
b3RlY3RlZDoKKyAgICBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZShjb25zdCBDU1NQcmlt
aXRpdmVWYWx1ZSYgdmFsdWUpCisgICAgICAgIDogRGVwcmVjYXRlZENTU09NVmFsdWUoRGVwcmVj
YXRlZFByaW1pdGl2ZVZhbHVlQ2xhc3MpCisgICAgICAgICwgbV92YWx1ZShjb25zdF9jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlJj4odmFsdWUpKQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
UmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBtX3ZhbHVlOworfTsKKyAgICAKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NPTV9WQUxVRShEZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVWYWx1ZSwgaXNQcmltaXRpdmVWYWx1ZSgpKQpJbmRleDogU291cmNlL1dl
YkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaWRsCShy
ZXZpc2lvbiAyMDk5MzIpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZS5pZGw6MjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1p
dGl2ZVZhbHVlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworWwor
ICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCitdIGludGVyZmFjZSBDU1NQcmltaXRpdmVW
YWx1ZSA6IENTU1ZhbHVlIHsKKyAgICAvLyBVbml0VHlwZXMKKyAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBDU1NfVU5LTk9XTiA9IDA7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX05VTUJF
UiA9IDE7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1BFUkNFTlRBR0UgPSAyOworICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19FTVMgPSAzOworICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IENTU19FWFMgPSA0OworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19QWCA9IDU7Cisg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0NNID0gNjsKKyAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBDU1NfTU0gPSA3OworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19JTiA9IDg7Cisg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1BUID0gOTsKKyAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBDU1NfUEMgPSAxMDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfREVHID0gMTE7
CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1JBRCA9IDEyOworICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IENTU19HUkFEID0gMTM7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX01T
ID0gMTQ7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1MgPSAxNTsKKyAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBDU1NfSFogPSAxNjsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1Nf
S0haID0gMTc7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0RJTUVOU0lPTiA9IDE4Owor
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19TVFJJTkcgPSAxOTsKKyAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBDU1NfVVJJID0gMjA7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0lE
RU5UID0gMjE7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0FUVFIgPSAyMjsKKyAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfQ09VTlRFUiA9IDIzOworICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IENTU19SRUNUID0gMjQ7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1JHQkNP
TE9SID0gMjU7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1ZXID0gMjY7CisgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgQ1NTX1ZIID0gMjc7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
Q1NTX1ZNSU4gPSAyODsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVk1BWCA9IDI5Owor
ICAgIAorICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBwcmltaXRpdmVUeXBl
OworCisgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lkIHNldEZsb2F0VmFsdWUob3B0aW9uYWwg
dW5zaWduZWQgc2hvcnQgdW5pdFR5cGUgPSAwLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZmxvYXQg
ZmxvYXRWYWx1ZSA9IE5hTik7CisgICAgW01heVRocm93RXhjZXB0aW9uXSB1bnJlc3RyaWN0ZWQg
ZmxvYXQgZ2V0RmxvYXRWYWx1ZShvcHRpb25hbCB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSA9IDAp
OworCisgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lkIHNldFN0cmluZ1ZhbHVlKG9wdGlvbmFs
IHVuc2lnbmVkIHNob3J0IHN0cmluZ1R5cGUgPSAwLCBvcHRpb25hbCBET01TdHJpbmcgc3RyaW5n
VmFsdWUpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIGdldFN0cmluZ1ZhbHVl
KCk7CisKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIENvdW50ZXIgZ2V0Q291bnRlclZhbHVlKCk7
CisgICAgW01heVRocm93RXhjZXB0aW9uXSBSZWN0IGdldFJlY3RWYWx1ZSgpOworICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gUkdCQ29sb3IgZ2V0UkdCQ29sb3JWYWx1ZSgpOworfTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVl
LmlkbAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRD
U1NPTVByaW1pdGl2ZVZhbHVlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksOCBAQAog
CiBbCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLV0gaW50ZXJmYWNlIENTU1ByaW1p
dGl2ZVZhbHVlIDogQ1NTVmFsdWUgeworICAgIEludGVyZmFjZU5hbWU9Q1NTUHJpbWl0aXZlVmFs
dWUKK10gaW50ZXJmYWNlIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlIDogRGVwcmVjYXRl
ZENTU09NVmFsdWUgewogICAgIC8vIFVuaXRUeXBlcwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IENTU19VTktOT1dOID0gMDsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfTlVNQkVSID0g
MTsKQEAgLTYwLDcgKzYxLDcgQEAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgc2V0U3Ry
aW5nVmFsdWUob3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgc3RyaW5nVHlwZSA9IDAsIG9wdGlvbmFs
IERPTVN0cmluZyBzdHJpbmdWYWx1ZSk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJp
bmcgZ2V0U3RyaW5nVmFsdWUoKTsKIAotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gQ291bnRlciBn
ZXRDb3VudGVyVmFsdWUoKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFJlY3QgZ2V0UmVjdFZh
bHVlKCk7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBSR0JDb2xvciBnZXRSR0JDb2xvclZhbHVl
KCk7CisgICAgW01heVRocm93RXhjZXB0aW9uXSBEZXByZWNhdGVkQ1NTT01Db3VudGVyIGdldENv
dW50ZXJWYWx1ZSgpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRGVwcmVjYXRlZENTU09NUmVj
dCBnZXRSZWN0VmFsdWUoKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERlcHJlY2F0ZWRDU1NP
TVJHQkNvbG9yIGdldFJHQkNvbG9yVmFsdWUoKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9jc3MvRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk5LTIwMDMgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywg
MjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJSR0JDb2xv
ci5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGVwcmVjYXRlZENTU09N
UkdCQ29sb3IgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxEZXByZWNhdGVkQ1NTT01SR0JDb2xv
cj4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGVwcmVjYXRlZENTU09NUkdCQ29sb3I+IGNy
ZWF0ZShjb25zdCBSR0JDb2xvciYgY29sb3IpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVwcmVj
YXRlZENTU09NUkdCQ29sb3IoY29sb3IpKTsgfQorCisgICAgRGVwcmVjYXRlZENTU09NUHJpbWl0
aXZlVmFsdWUqIHJlZCgpIHsgcmV0dXJuIG1fcmVkLmdldCgpOyB9CisgICAgRGVwcmVjYXRlZENT
U09NUHJpbWl0aXZlVmFsdWUqIGdyZWVuKCkgeyByZXR1cm4gbV9ncmVlbi5nZXQoKTsgfQorICAg
IERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKiBibHVlKCkgeyByZXR1cm4gbV9ibHVlLmdl
dCgpOyB9CisgICAgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUqIGFscGhhKCkgeyByZXR1
cm4gbV9hbHBoYS5nZXQoKTsgfQorICAgIAorICAgIENvbG9yIGNvbG9yKCkgY29uc3QgeyByZXR1
cm4gQ29sb3IobV9yZ2JDb2xvcik7IH0KKworcHJpdmF0ZToKKyAgICBEZXByZWNhdGVkQ1NTT01S
R0JDb2xvcihjb25zdCBSR0JDb2xvciYgY29sb3IpCisgICAgICAgIDogbV9yZ2JDb2xvcihjb2xv
ci5yZ2JDb2xvcigpKQorICAgIHsKKyAgICAgICAgLy8gUmVkCisgICAgICAgIHVuc2lnbmVkIHZh
bHVlID0gKG1fcmdiQ29sb3IgPj4gMTYpICYgMHhGRjsKKyAgICAgICAgYXV0byByZXN1bHQgPSBD
U1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05V
TUJFUik7CisgICAgICAgIG1fcmVkID0gcmVzdWx0LT5jcmVhdGVEZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVXcmFwcGVyKCk7CisgICAgICAgIAorICAgICAgICAvLyBHcmVlbgorICAgICAgICB2YWx1
ZSA9IChtX3JnYkNvbG9yID4+IDgpICYgMHhGRjsKKyAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOwor
ICAgICAgICBtX2dyZWVuID0gcmVzdWx0LT5jcmVhdGVEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVX
cmFwcGVyKCk7CisKKyAgICAgICAgLy8gQmx1ZQorICAgICAgICB2YWx1ZSA9IG1fcmdiQ29sb3Ig
JiAweEZGOworICAgICAgICByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CisgICAgICAgIG1fYmx1ZSA9IHJlc3Vs
dC0+Y3JlYXRlRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlV3JhcHBlcigpOworICAgICAgICAKKyAg
ICAgICAgLy8gQWxwaGEKKyAgICAgICAgZmxvYXQgYWxwaGFWYWx1ZSA9IHN0YXRpY19jYXN0PGZs
b2F0PigobV9yZ2JDb2xvciA+PiAyNCkgJiAweEZGKSAvIDB4RkY7CisgICAgICAgIHJlc3VsdCA9
IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoYWxwaGFWYWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19OVU1CRVIpOworICAgICAgICBtX2FscGhhID0gcmVzdWx0LT5jcmVhdGVEZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVXcmFwcGVyKCk7CisgICAgfQorICAgIAorICAgIFJHQkEzMiBtX3JnYkNv
bG9yOworICAgIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gbV9yZWQ7Cisg
ICAgUmVmUHRyPERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPiBtX2dyZWVuOworICAgIFJl
ZlB0cjxEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gbV9ibHVlOworICAgIFJlZlB0cjxE
ZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gbV9hbHBoYTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01SR0JD
b2xvci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NP
TVJHQkNvbG9yLmlkbAkocmV2aXNpb24gMjA5OTMyKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3Mv
UkdCQ29sb3IuaWRsOjIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NT
T01SR0JDb2xvci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
K1sKKyAgICBFeHBvcnRUb1dyYXBwZWRGdW5jdGlvbiwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tz
VlRhYmxlLAorXSBpbnRlcmZhY2UgUkdCQ29sb3IgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBD
U1NQcmltaXRpdmVWYWx1ZSByZWQ7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2
ZVZhbHVlIGdyZWVuOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSBi
bHVlOworCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2ZVZhbHVlIGFscGhhOwor
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01SR0JDb2xvci5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9y
LmlkbAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRD
U1NPTVJHQkNvbG9yLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjEsMTAgKzIxLDExIEBACiBbCiAg
ICAgRXhwb3J0VG9XcmFwcGVkRnVuY3Rpb24sCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZSwKLV0gaW50ZXJmYWNlIFJHQkNvbG9yIHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJp
bWl0aXZlVmFsdWUgcmVkOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1
ZSBncmVlbjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgYmx1ZTsK
KyAgICBJbnRlcmZhY2VOYW1lPVJHQkNvbG9yCitdIGludGVyZmFjZSBEZXByZWNhdGVkQ1NTT01S
R0JDb2xvciB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2
ZVZhbHVlIHJlZDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRGVwcmVjYXRlZENTU09NUHJpbWl0
aXZlVmFsdWUgZ3JlZW47CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlIGJsdWU7CiAKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZl
VmFsdWUgYWxwaGE7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERlcHJlY2F0ZWRDU1NPTVByaW1p
dGl2ZVZhbHVlIGFscGhhOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVk
Q1NTT01SZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRD
U1NPTVJlY3QuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZENTU09NUmVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiUmVjdC5oIgor
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGVwcmVjYXRlZENTU09NUmVjdCBm
aW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERlcHJlY2F0ZWRDU1NPTVJlY3Q+IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPERlcHJlY2F0ZWRDU1NPTVJlY3Q+IGNyZWF0ZShjb25zdCBSZWN0JiBy
ZWN0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERlcHJlY2F0ZWRDU1NPTVJlY3QocmVjdCkpOyB9
CisKKyAgICBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZSogdG9wKCkgY29uc3QgeyByZXR1
cm4gbV90b3AuZ2V0KCk7IH0KKyAgICBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZSogcmln
aHQoKSBjb25zdCB7IHJldHVybiBtX3JpZ2h0LmdldCgpOyB9CisgICAgRGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlVmFsdWUqIGJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIG1fYm90dG9tLmdldCgpOyB9
CisgICAgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUqIGxlZnQoKSBjb25zdCB7IHJldHVy
biBtX2xlZnQuZ2V0KCk7IH0KKyAgICAKK3ByaXZhdGU6CisgICAgRGVwcmVjYXRlZENTU09NUmVj
dChjb25zdCBSZWN0JiByZWN0KQorICAgIHsKKyAgICAgICAgaWYgKHJlY3QudG9wKCkpCisgICAg
ICAgICAgICBtX3RvcCA9IHJlY3QudG9wKCktPmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVByaW1pdGl2
ZVdyYXBwZXIoKTsKKyAgICAgICAgaWYgKHJlY3QucmlnaHQoKSkKKyAgICAgICAgICAgIG1fcmln
aHQgPSByZWN0LnJpZ2h0KCktPmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVdyYXBwZXIo
KTsKKyAgICAgICAgaWYgKHJlY3QuYm90dG9tKCkpCisgICAgICAgICAgICBtX2JvdHRvbSA9IHJl
Y3QuYm90dG9tKCktPmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVdyYXBwZXIoKTsKKyAg
ICAgICAgaWYgKHJlY3QubGVmdCgpKQorICAgICAgICAgICAgbV9sZWZ0ID0gcmVjdC5sZWZ0KCkt
PmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVdyYXBwZXIoKTsKKyAgICB9CisgICAgCisg
ICAgUmVmUHRyPERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPiBtX3RvcDsKKyAgICBSZWZQ
dHI8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IG1fcmlnaHQ7CisgICAgUmVmUHRyPERl
cHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPiBtX2JvdHRvbTsKKyAgICBSZWZQdHI8RGVwcmVj
YXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IG1fbGVmdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01SZWN0LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUmVjdC5pZGwJ
KHJldmlzaW9uIDIwOTkzMikJKGZyb20gU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaWRsOjIwOTkz
MikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01SZWN0LmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworWworICAgIEV4cG9ydFRvV3JhcHBlZEZ1
bmN0aW9uLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCitdIGludGVyZmFjZSBSZWN0
IHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgdG9wOworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSByaWdodDsKKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgYm90dG9tOworICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBDU1NQcmltaXRpdmVWYWx1ZSBsZWZ0OworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9E
ZXByZWNhdGVkQ1NTT01SZWN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3Mv
RGVwcmVjYXRlZENTU09NUmVjdC5pZGwJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJD
b3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01SZWN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjAsOSAr
MjAsMTAgQEAKIFsKICAgICBFeHBvcnRUb1dyYXBwZWRGdW5jdGlvbiwKICAgICBJbXBsZW1lbnRh
dGlvbkxhY2tzVlRhYmxlLAotXSBpbnRlcmZhY2UgUmVjdCB7Ci0gICAgcmVhZG9ubHkgYXR0cmli
dXRlIENTU1ByaW1pdGl2ZVZhbHVlIHRvcDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJp
bWl0aXZlVmFsdWUgcmlnaHQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2ZVZh
bHVlIGJvdHRvbTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgbGVm
dDsKKyAgICBJbnRlcmZhY2VOYW1lPVJlY3QKK10gaW50ZXJmYWNlIERlcHJlY2F0ZWRDU1NPTVJl
Y3QgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1
ZSB0b3A7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZh
bHVlIHJpZ2h0OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEZXByZWNhdGVkQ1NTT01QcmltaXRp
dmVWYWx1ZSBib3R0b207CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlIGxlZnQ7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0
ZWRDU1NPTVZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVj
YXRlZENTU09NVmFsdWUuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9E
ZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRGVwcmVjYXRlZENTU09NVmFsdWUuaCIKKworI2luY2x1ZGUg
IkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiRGVwcmVjYXRlZENT
U09NVmFsdWVMaXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK3RlbXBsYXRlPGNs
YXNzIENoaWxkQ2xhc3NUeXBlPgoraW5saW5lIHN0YXRpYyBib29sIGNvbXBhcmVDU1NPTVZhbHVl
cyhjb25zdCBEZXByZWNhdGVkQ1NTT01WYWx1ZSYgZmlyc3QsIGNvbnN0IERlcHJlY2F0ZWRDU1NP
TVZhbHVlJiBzZWNvbmQpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IENoaWxkQ2xh
c3NUeXBlJj4oZmlyc3QpLmVxdWFscyhzdGF0aWNfY2FzdDxjb25zdCBDaGlsZENsYXNzVHlwZSY+
KHNlY29uZCkpOworfQorCitib29sIERlcHJlY2F0ZWRDU1NPTVZhbHVlOjplcXVhbHMoY29uc3Qg
RGVwcmVjYXRlZENTU09NVmFsdWUmIG90aGVyKSBjb25zdAoreworICAgIGlmIChtX2NsYXNzVHlw
ZSA9PSBvdGhlci5tX2NsYXNzVHlwZSkgeworICAgICAgICBzd2l0Y2ggKG1fY2xhc3NUeXBlKSB7
CisgICAgICAgIGNhc2UgRGVwcmVjYXRlZENvbXBsZXhWYWx1ZUNsYXNzOgorICAgICAgICAgICAg
cmV0dXJuIGNvbXBhcmVDU1NPTVZhbHVlczxEZXByZWNhdGVkQ1NTT01Db21wbGV4VmFsdWU+KCp0
aGlzLCBvdGhlcik7CisgICAgICAgIGNhc2UgRGVwcmVjYXRlZFByaW1pdGl2ZVZhbHVlQ2xhc3M6
CisgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU09NVmFsdWVzPERlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlPigqdGhpcywgb3RoZXIpOworICAgICAgICBjYXNlIERlcHJlY2F0ZWRWYWx1
ZUxpc3RDbGFzczoKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTT01WYWx1ZXM8RGVwcmVj
YXRlZENTU09NVmFsdWVMaXN0PigqdGhpcywgb3RoZXIpOworICAgICAgICB9CisgICAgfQorICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBEZXByZWNhdGVkQ1NTT01WYWx1ZTo6ZGVzdHJveSgp
Cit7CisgICAgc3dpdGNoIChjbGFzc1R5cGUoKSkgeworICAgIGNhc2UgRGVwcmVjYXRlZENvbXBs
ZXhWYWx1ZUNsYXNzOiB7CisgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxEZXByZWNhdGVkQ1NTT01D
b21wbGV4VmFsdWU+KHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgRGVw
cmVjYXRlZFByaW1pdGl2ZVZhbHVlQ2xhc3M6IHsKKyAgICAgICAgZGVsZXRlIGRvd25jYXN0PERl
cHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPih0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBjYXNlIERlcHJlY2F0ZWRWYWx1ZUxpc3RDbGFzczogeworICAgICAgICBkZWxldGUg
ZG93bmNhc3Q8RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Pih0aGlzKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgZGVsZXRlIHRo
aXM7Cit9CisKK3Vuc2lnbmVkIERlcHJlY2F0ZWRDU1NPTVZhbHVlOjpjc3NWYWx1ZVR5cGUoKSBj
b25zdAoreworICAgIHN3aXRjaCAobV9jbGFzc1R5cGUpIHsKKyAgICBjYXNlIERlcHJlY2F0ZWRD
b21wbGV4VmFsdWVDbGFzczoKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PERlcHJlY2F0ZWRDU1NP
TUNvbXBsZXhWYWx1ZT4oKnRoaXMpLmNzc1ZhbHVlVHlwZSgpOworICAgIGNhc2UgRGVwcmVjYXRl
ZFByaW1pdGl2ZVZhbHVlQ2xhc3M6CisgICAgICAgIHJldHVybiBkb3duY2FzdDxEZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmNzc1ZhbHVlVHlwZSgpOworICAgIGNhc2UgRGVw
cmVjYXRlZFZhbHVlTGlzdENsYXNzOgorICAgICAgICByZXR1cm4gZG93bmNhc3Q8RGVwcmVjYXRl
ZENTU09NVmFsdWVMaXN0PigqdGhpcykuY3NzVmFsdWVUeXBlKCk7CisgICAgfQorICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBDU1NfQ1VTVE9NOworfQorCitTdHJpbmcgRGVw
cmVjYXRlZENTU09NVmFsdWU6OmNzc1RleHQoKSBjb25zdAoreworICAgIHN3aXRjaCAobV9jbGFz
c1R5cGUpIHsKKyAgICBjYXNlIERlcHJlY2F0ZWRDb21wbGV4VmFsdWVDbGFzczoKKyAgICAgICAg
cmV0dXJuIGRvd25jYXN0PERlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZT4oKnRoaXMpLmNzc1Rl
eHQoKTsKKyAgICBjYXNlIERlcHJlY2F0ZWRQcmltaXRpdmVWYWx1ZUNsYXNzOgorICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+KCp0aGlzKS5jc3NU
ZXh0KCk7CisgICAgY2FzZSBEZXByZWNhdGVkVmFsdWVMaXN0Q2xhc3M6CisgICAgICAgIHJldHVy
biBkb3duY2FzdDxEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q+KCp0aGlzKS5jc3NUZXh0KCk7Cisg
ICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAiIjsKK30KKworfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgJKG5vbmV4aXN0
ZW50KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisj
aW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBE
ZXByZWNhdGVkQ1NTT01WYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPERlcHJlY2F0ZWRDU1NPTVZh
bHVlPiB7CitwdWJsaWM6CisgICAgLy8gRXhhY3RseSBtYXRjaCB0aGUgSURMLiBObyByZWFzb24g
dG8gYWRkIGFueXRoaW5nIGlmIGl0J3Mgbm90IGluIHRoZSBJREwuCisgICAgZW51bSBUeXBlIHsK
KyAgICAgICAgQ1NTX0lOSEVSSVQgPSAwLAorICAgICAgICBDU1NfUFJJTUlUSVZFX1ZBTFVFID0g
MSwKKyAgICAgICAgQ1NTX1ZBTFVFX0xJU1QgPSAyLAorICAgICAgICBDU1NfQ1VTVE9NID0gMwor
ICAgIH07CisKKyAgICAvLyBPdmVycmlkZSBSZWZDb3VudGVkJ3MgZGVyZWYoKSB0byBlbnN1cmUg
b3BlcmF0b3IgZGVsZXRlIGlzIGNhbGxlZCBvbgorICAgIC8vIHRoZSBhcHByb3ByaWF0ZSBzdWJj
bGFzcyB0eXBlLgorICAgIHZvaWQgZGVyZWYoKQorICAgIHsKKyAgICAgICAgaWYgKGRlcmVmQmFz
ZSgpKQorICAgICAgICAgICAgZGVzdHJveSgpOworICAgIH0KKworICAgIFdFQkNPUkVfRVhQT1JU
IHVuc2lnbmVkIGNzc1ZhbHVlVHlwZSgpIGNvbnN0OworCisgICAgV0VCQ09SRV9FWFBPUlQgU3Ry
aW5nIGNzc1RleHQoKSBjb25zdDsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDc3NUZXh0KGNv
bnN0IFN0cmluZyYpIHsgcmV0dXJuIHsgfTsgfSAvLyBXaWxsIG5ldmVyIGltcGxlbWVudC4KKwor
ICAgIGJvb2wgZXF1YWxzKGNvbnN0IERlcHJlY2F0ZWRDU1NPTVZhbHVlJiBvdGhlcikgY29uc3Q7
CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IERlcHJlY2F0ZWRDU1NPTVZhbHVlJiBvdGhlcikg
Y29uc3QgeyByZXR1cm4gZXF1YWxzKG90aGVyKTsgfQorCisgICAgYm9vbCBpc0NvbXBsZXhWYWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IERlcHJlY2F0ZWRDb21wbGV4VmFsdWVD
bGFzczsgfQorICAgIGJvb2wgaXNQcmltaXRpdmVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xh
c3NUeXBlID09IERlcHJlY2F0ZWRQcmltaXRpdmVWYWx1ZUNsYXNzOyB9CisgICAgYm9vbCBpc1Zh
bHVlTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IERlcHJlY2F0ZWRWYWx1ZUxp
c3RDbGFzczsgfQorICAgIAorcHJvdGVjdGVkOgorICAgIHN0YXRpYyBjb25zdCBzaXplX3QgQ2xh
c3NUeXBlQml0cyA9IDI7CisgICAgZW51bSBEZXByZWNhdGVkQ2xhc3NUeXBlIHsKKyAgICAgICAg
RGVwcmVjYXRlZENvbXBsZXhWYWx1ZUNsYXNzLAorICAgICAgICBEZXByZWNhdGVkUHJpbWl0aXZl
VmFsdWVDbGFzcywKKyAgICAgICAgRGVwcmVjYXRlZFZhbHVlTGlzdENsYXNzCisgICAgfTsKKwor
ICAgIERlcHJlY2F0ZWRDbGFzc1R5cGUgY2xhc3NUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8RGVwcmVjYXRlZENsYXNzVHlwZT4obV9jbGFzc1R5cGUpOyB9CisKKyAgICBEZXByZWNh
dGVkQ1NTT01WYWx1ZShEZXByZWNhdGVkQ2xhc3NUeXBlIGNsYXNzVHlwZSkKKyAgICAgICAgOiBt
X2NsYXNzVHlwZShjbGFzc1R5cGUpCisgICAgeworICAgIH0KKworICAgIC8vIE5PVEU6IFRoaXMg
Y2xhc3MgaXMgbm9uLXZpcnR1YWwgZm9yIG1lbW9yeSBhbmQgcGVyZm9ybWFuY2UgcmVhc29ucy4K
KyAgICAvLyBEb24ndCBnbyBtYWtpbmcgaXQgdmlydHVhbCBhZ2FpbiB1bmxlc3MgeW91IGtub3cg
ZXhhY3RseSB3aGF0IHlvdSdyZSBkb2luZyEKKyAgICB+RGVwcmVjYXRlZENTU09NVmFsdWUoKSB7
IH0KKworcHJpdmF0ZToKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlc3Ryb3koKTsKKworcHJv
dGVjdGVkOgorICAgIHVuc2lnbmVkIG1fdmFsdWVMaXN0U2VwYXJhdG9yIDogQ1NTVmFsdWU6OlZh
bHVlTGlzdFNlcGFyYXRvckJpdHM7CisKK3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV9jbGFzc1R5
cGUgOiBDbGFzc1R5cGVCaXRzOyAvLyBDbGFzc1R5cGUKK307CisKK2NsYXNzIERlcHJlY2F0ZWRD
U1NPTUNvbXBsZXhWYWx1ZSA6IHB1YmxpYyBEZXByZWNhdGVkQ1NTT01WYWx1ZSB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxEZXByZWNhdGVkQ1NTT01Db21wbGV4VmFsdWU+IGNyZWF0ZShjb25z
dCBDU1NWYWx1ZSYgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBE
ZXByZWNhdGVkQ1NTT01Db21wbGV4VmFsdWUodmFsdWUpKTsKKyAgICB9CisKKyAgICBib29sIGVx
dWFscyhjb25zdCBEZXByZWNhdGVkQ1NTT01Db21wbGV4VmFsdWUmIG90aGVyKSBjb25zdCB7IHJl
dHVybiBtX3ZhbHVlLT5lcXVhbHMob3RoZXIubV92YWx1ZSk7IH0KKyAgICBTdHJpbmcgY3NzVGV4
dCgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUtPmNzc1RleHQoKTsgfQorCisgICAgdW5zaWduZWQg
Y3NzVmFsdWVUeXBlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS0+Y3NzVmFsdWVUeXBlKCk7IH0K
KworcHJvdGVjdGVkOgorICAgIERlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZShjb25zdCBDU1NW
YWx1ZSYgdmFsdWUpCisgICAgICAgIDogRGVwcmVjYXRlZENTU09NVmFsdWUoRGVwcmVjYXRlZENv
bXBsZXhWYWx1ZUNsYXNzKQorICAgICAgICAsIG1fdmFsdWUoY29uc3RfY2FzdDxDU1NWYWx1ZSY+
KHZhbHVlKSkKKyAgICB7CisgICAgfQorCitwcml2YXRlOgorICAgIFJlZjxDU1NWYWx1ZT4gbV92
YWx1ZTsKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNkZWZpbmUgU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19DU1NPTV9WQUxVRShUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkg
XAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpUb1ZhbHVlVHlwZU5hbWUp
IFwKK3N0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1
ZSYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlLnByZWRpY2F0ZTsgfSBcCitTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0VORCgpCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTT01fVkFMVUUoRGVwcmVj
YXRlZENTU09NQ29tcGxleFZhbHVlLCBpc0NvbXBsZXhWYWx1ZSgpKQorCisKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmlkbAkocmV2aXNpb24gMjA5OTMy
KQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaWRsOjIwOTkzMikKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVs
IFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKK1sKKyAgICBDdXN0b21Jc1JlYWNoYWJsZSwK
KyAgICBDdXN0b21Ub0pTT2JqZWN0LAorICAgIEV4cG9ydFRvV3JhcHBlZEZ1bmN0aW9uLAorICAg
IEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgSlNDdXN0b21GaW5hbGl6ZSwKK10gaW50
ZXJmYWNlIENTU1ZhbHVlIHsKKyAgICAvLyBVbml0VHlwZXMKKyAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBDU1NfSU5IRVJJVCA9IDA7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1BSSU1J
VElWRV9WQUxVRSA9IDE7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1ZBTFVFX0xJU1Qg
PSAyOworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19DVVNUT00gPSAzOworCisgICAgW1Nl
dHRlck1heVRocm93RXhjZXB0aW9uXSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBjc3NUZXh0OworCisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNzc1ZhbHVlVHlwZTsKK307Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5pZGwJKHJldmlz
aW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDggQEAKICAgICBFeHBvcnRUb1dyYXBwZWRG
dW5jdGlvbiwKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAogICAgIEpTQ3VzdG9tRmlu
YWxpemUsCi1dIGludGVyZmFjZSBDU1NWYWx1ZSB7CisgICAgSW50ZXJmYWNlTmFtZT1DU1NWYWx1
ZQorXSBpbnRlcmZhY2UgRGVwcmVjYXRlZENTU09NVmFsdWUgewogICAgIC8vIFVuaXRUeXBlcwog
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19JTkhFUklUID0gMDsKICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBDU1NfUFJJTUlUSVZFX1ZBTFVFID0gMTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGVwcmVjYXRlZENT
U09NVmFsdWVMaXN0LmgiCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q6OmVx
dWFscyhjb25zdCBEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QmIG90aGVyKSBjb25zdAoreworICAg
IGlmIChtX3ZhbHVlTGlzdFNlcGFyYXRvciAhPSBvdGhlci5tX3ZhbHVlTGlzdFNlcGFyYXRvcikK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlmIChtX3ZhbHVlcy5zaXplKCkgIT0g
b3RoZXIubV92YWx1ZXMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMCwgc2l6ZSA9IG1fdmFsdWVzLnNpemUoKTsgaSA8IHNpemU7ICsr
aSkgeworICAgICAgICBpZiAoIW1fdmFsdWVzW2ldLmdldCgpLmVxdWFscyhvdGhlci5tX3ZhbHVl
c1tpXSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVl
OworfQorCitTdHJpbmcgRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Ojpjc3NUZXh0KCkgY29uc3QK
K3sKKyAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKKyAgICBTdHJpbmcgc2VwYXJhdG9yOworICAg
IHN3aXRjaCAobV92YWx1ZUxpc3RTZXBhcmF0b3IpIHsKKyAgICBjYXNlIENTU1ZhbHVlOjpTcGFj
ZVNlcGFyYXRvcjoKKyAgICAgICAgc2VwYXJhdG9yID0gQVNDSUlMaXRlcmFsKCIgIik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWU6OkNvbW1hU2VwYXJhdG9yOgorICAgICAgICBz
ZXBhcmF0b3IgPSBBU0NJSUxpdGVyYWwoIiwgIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q1NTVmFsdWU6OlNsYXNoU2VwYXJhdG9yOgorICAgICAgICBzZXBhcmF0b3IgPSBBU0NJSUxpdGVy
YWwoIiAvICIpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgCisgICAgZm9yIChhdXRvJiB2YWx1ZSA6IG1fdmFs
dWVzKSB7CisgICAgICAgIGlmICghcmVzdWx0LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoc2VwYXJhdG9yKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCh2YWx1ZS5nZXQoKS5j
c3NUZXh0KCkpOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cit9
CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVM
aXN0LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NP
TVZhbHVlTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkNTU1ZhbHVlTGlzdC5oIgorI2luY2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTVZhbHVlLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlz
dCA6IHB1YmxpYyBEZXByZWNhdGVkQ1NTT01WYWx1ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q+IGNyZWF0ZShjb25zdCBDU1NWYWx1ZUxpc3QmIHZh
bHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVwcmVjYXRlZENTU09N
VmFsdWVMaXN0KHZhbHVlKSk7CisgICAgfQorICAgIAorICAgIGJvb2wgZXF1YWxzKGNvbnN0IERl
cHJlY2F0ZWRDU1NPTVZhbHVlTGlzdCYgb3RoZXIpIGNvbnN0OworICAgIHVuc2lnbmVkIGNzc1Zh
bHVlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIENTU19WQUxVRV9MSVNUOyB9CisgICAgU3RyaW5nIGNz
c1RleHQoKSBjb25zdDsKKyAgICAKKyAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4g
bV92YWx1ZXMuc2l6ZSgpOyB9CisgICAgRGVwcmVjYXRlZENTU09NVmFsdWUqIGl0ZW0oc2l6ZV90
IGluZGV4KSB7IHJldHVybiBpbmRleCA8IG1fdmFsdWVzLnNpemUoKSA/IG1fdmFsdWVzW2luZGV4
XS5wdHIoKSA6IG51bGxwdHI7IH0KKyAgICBjb25zdCBEZXByZWNhdGVkQ1NTT01WYWx1ZSogaXRl
bShzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGluZGV4IDwgbV92YWx1ZXMuc2l6ZSgpID8g
bV92YWx1ZXNbaW5kZXhdLnB0cigpIDogbnVsbHB0cjsgfQorCitwcm90ZWN0ZWQ6CisgICAgRGVw
cmVjYXRlZENTU09NVmFsdWVMaXN0KGNvbnN0IENTU1ZhbHVlTGlzdCYgdmFsdWUpCisgICAgICAg
IDogRGVwcmVjYXRlZENTU09NVmFsdWUoRGVwcmVjYXRlZFZhbHVlTGlzdENsYXNzKQorICAgIHsK
KyAgICAgICAgbV92YWx1ZUxpc3RTZXBhcmF0b3IgPSB2YWx1ZS5zZXBhcmF0b3IoKTsKKyAgICAg
ICAgbV92YWx1ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh2YWx1ZS5sZW5ndGgoKSk7CisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDAsIHNpemUgPSB2YWx1ZS5sZW5ndGgoKTsgaSA8IHNpemU7
ICsraSkKKyAgICAgICAgICAgIG1fdmFsdWVzLnVuY2hlY2tlZEFwcGVuZCh2YWx1ZS5pdGVtV2l0
aG91dEJvdW5kc0NoZWNrKGkpLT5jcmVhdGVEZXByZWNhdGVkQ1NTT01XcmFwcGVyKCkpOworICAg
IH0KKyAgICAKK3ByaXZhdGU6CisgICAgVmVjdG9yPFJlZjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4s
IDQ+IG1fdmFsdWVzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0NTU09NX1ZBTFVFKERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdCwgaXNWYWx1
ZUxpc3QoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxp
c3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01W
YWx1ZUxpc3QuaWRsCShyZXZpc2lvbiAyMDk5MzIpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUxpc3QuaWRsOjIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVk
Q1NTT01WYWx1ZUxpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKy8vIEludHJv
ZHVjZWQgaW4gRE9NIExldmVsIDI6CitbCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwK
K10gaW50ZXJmYWNlIENTU1ZhbHVlTGlzdCA6IENTU1ZhbHVlIHsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgZ2V0dGVyIENTU1ZhbHVlIGl0ZW0odW5z
aWduZWQgbG9uZyBpbmRleCk7Cit9OworCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVj
YXRlZENTU09NVmFsdWVMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3Mv
RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmlkbAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNl
L1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDggKzI2LDkgQEAKIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CiBbCiAgICAg
SW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLV0gaW50ZXJmYWNlIENTU1ZhbHVlTGlzdCA6IENT
U1ZhbHVlIHsKKyAgICBJbnRlcmZhY2VOYW1lPUNTU1ZhbHVlTGlzdAorXSBpbnRlcmZhY2UgRGVw
cmVjYXRlZENTU09NVmFsdWVMaXN0IDogRGVwcmVjYXRlZENTU09NVmFsdWUgewogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICBnZXR0ZXIgQ1NTVmFsdWUg
aXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICBnZXR0ZXIgRGVwcmVjYXRlZENTU09NVmFs
dWUgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9MZW5ndGhSZXBlYXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvTGVu
Z3RoUmVwZWF0LmgJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9MZW5n
dGhSZXBlYXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsOCArMzYsNiBAQCBjbGFzcyBMZW5ndGhS
ZXBlYXQgZmluYWwgOiBwdWJsaWMgUmVmQ291CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxMZW5n
dGhSZXBlYXQ+IGNyZWF0ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiBpbnRlcnZhbCkgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBMZW5ndGhSZXBlYXQoaW50ZXJ2YWwpKTsgfQogCi0gICAgUmVmPExlbmd0
aFJlcGVhdD4gY2xvbmVGb3JDU1NPTSgpIGNvbnN0IHsgcmV0dXJuIGNyZWF0ZShpbnRlcnZhbCgp
KTsgfQotCiAgICAgQ1NTVmFsdWUqIGludGVydmFsKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcnZh
bC5nZXQoKTsgfQogCiAgICAgdm9pZCBzZXRJbnRlcnZhbChQYXNzUmVmUHRyPENTU1ZhbHVlPiBp
bnRlcnZhbCkgeyBtX2ludGVydmFsID0gaW50ZXJ2YWw7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCShyZXZp
c2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURl
Y2xhcmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc1LDE5ICsxNzUsMTkgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gUHJvcGVydHlTZXRDU1NTdHlsZURlYwogICAgIHJldHVybiB7IH07CiB9CiAK
LVJlZlB0cjxDU1NWYWx1ZT4gUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9w
ZXJ0eUNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKQorUmVmUHRyPERlcHJlY2F0
ZWRDU1NPTVZhbHVlPiBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5
Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgaWYgKGlzQ3VzdG9t
UHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSkpIHsKICAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiB2
YWx1ZSA9IG1fcHJvcGVydHlTZXQtPmdldEN1c3RvbVByb3BlcnR5Q1NTVmFsdWUocHJvcGVydHlO
YW1lKTsKICAgICAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgICAgICByZXR1cm4gY2xvbmVBbmRDYWNoZUZvckNTU09NKHZhbHVlLmdldCgpKTsKKyAgICAg
ICAgcmV0dXJuIHdyYXBGb3JEZXByZWNhdGVkQ1NTT00odmFsdWUuZ2V0KCkpOwogICAgIH0KICAg
ICAKICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQgPSBjc3NQcm9wZXJ0eUlEKHByb3BlcnR5
TmFtZSk7CiAgICAgaWYgKCFwcm9wZXJ0eUlEKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICByZXR1cm4gY2xvbmVBbmRDYWNoZUZvckNTU09NKGdldFByb3BlcnR5Q1NTVmFsdWVJbnRlcm5h
bChwcm9wZXJ0eUlEKS5nZXQoKSk7CisgICAgcmV0dXJuIHdyYXBGb3JEZXByZWNhdGVkQ1NTT00o
Z2V0UHJvcGVydHlDU1NWYWx1ZUludGVybmFsKHByb3BlcnR5SUQpLmdldCgpKTsKIH0KIAogU3Ry
aW5nIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlWYWx1ZShjb25z
dCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKQEAgLTMxMywxOSArMzEzLDE5IEBAIEV4Y2VwdGlvbk9y
PGJvb2w+IFByb3BlcnR5U2V0Q1NTU3R5bGVEZWMKICAgICByZXR1cm4gY2hhbmdlZDsKIH0KIAot
Q1NTVmFsdWUqIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6Y2xvbmVBbmRDYWNoZUZv
ckNTU09NKENTU1ZhbHVlKiBpbnRlcm5hbFZhbHVlKQorRGVwcmVjYXRlZENTU09NVmFsdWUqIFBy
b3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6d3JhcEZvckRlcHJlY2F0ZWRDU1NPTShDU1NW
YWx1ZSogaW50ZXJuYWxWYWx1ZSkKIHsKICAgICBpZiAoIWludGVybmFsVmFsdWUpCiAgICAgICAg
IHJldHVybiAwOwogCiAgICAgLy8gVGhlIG1hcCBpcyBoZXJlIHRvIG1haW50YWluIHRoZSBvYmpl
Y3QgaWRlbnRpdHkgb2YgdGhlIENTU1ZhbHVlcyBvdmVyIG11bHRpcGxlIGludm9jYXRpb25zLgog
ICAgIC8vIEZJWE1FOiBJdCBpcyBsaWtlbHkgdGhhdCB0aGUgaWRlbnRpdHkgaXMgbm90IGltcG9y
dGFudCBmb3Igd2ViIGNvbXBhdGliaWxpdHkgYW5kIHRoaXMgY29kZSBzaG91bGQgYmUgcmVtb3Zl
ZC4KLSAgICBpZiAoIW1fY3Nzb21DU1NWYWx1ZUNsb25lcykKLSAgICAgICAgbV9jc3NvbUNTU1Zh
bHVlQ2xvbmVzID0gc3RkOjptYWtlX3VuaXF1ZTxIYXNoTWFwPENTU1ZhbHVlKiwgUmVmUHRyPENT
U1ZhbHVlPj4+KCk7CisgICAgaWYgKCFtX2Nzc29tVmFsdWVXcmFwcGVycykKKyAgICAgICAgbV9j
c3NvbVZhbHVlV3JhcHBlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPEhhc2hNYXA8Q1NTVmFsdWUqLCBS
ZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+Pj4oKTsKICAgICAKLSAgICBSZWZQdHI8Q1NTVmFs
dWU+JiBjbG9uZWRWYWx1ZSA9IG1fY3Nzb21DU1NWYWx1ZUNsb25lcy0+YWRkKGludGVybmFsVmFs
dWUsIFJlZlB0cjxDU1NWYWx1ZT4oKSkuaXRlcmF0b3ItPnZhbHVlOworICAgIFJlZlB0cjxEZXBy
ZWNhdGVkQ1NTT01WYWx1ZT4mIGNsb25lZFZhbHVlID0gbV9jc3NvbVZhbHVlV3JhcHBlcnMtPmFk
ZChpbnRlcm5hbFZhbHVlLCBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+KCkpLml0ZXJhdG9y
LT52YWx1ZTsKICAgICBpZiAoIWNsb25lZFZhbHVlKQotICAgICAgICBjbG9uZWRWYWx1ZSA9IGlu
dGVybmFsVmFsdWUtPmNsb25lRm9yQ1NTT00oKTsKKyAgICAgICAgY2xvbmVkVmFsdWUgPSBpbnRl
cm5hbFZhbHVlLT5jcmVhdGVEZXByZWNhdGVkQ1NTT01XcmFwcGVyKCk7CiAgICAgcmV0dXJuIGNs
b25lZFZhbHVlLmdldCgpOwogfQogCkBAIC0zODQsNyArMzg0LDcgQEAgdm9pZCBTdHlsZVJ1bGVD
U1NTdHlsZURlY2xhcmF0aW9uOjpkaWRNdQogICAgIEFTU0VSVChtX3BhcmVudFJ1bGUtPnBhcmVu
dFN0eWxlU2hlZXQoKSk7CiAKICAgICBpZiAodHlwZSA9PSBQcm9wZXJ0eUNoYW5nZWQpCi0gICAg
ICAgIG1fY3Nzb21DU1NWYWx1ZUNsb25lcyA9IG51bGxwdHI7CisgICAgICAgIG1fY3Nzb21WYWx1
ZVdyYXBwZXJzID0gbnVsbHB0cjsKIAogICAgIC8vIFN0eWxlIHNoZWV0IG11dGF0aW9uIG5lZWRz
IHRvIGJlIHNpZ25hbGVkIGV2ZW4gaWYgdGhlIGNoYW5nZSBmYWlsZWQuIHdpbGxNdXRhdGUqL2Rp
ZE11dGF0ZSogbXVzdCBwYWlyLgogICAgIG1fcGFyZW50UnVsZS0+cGFyZW50U3R5bGVTaGVldCgp
LT5kaWRNdXRhdGVSdWxlRnJvbUNTU1N0eWxlRGVjbGFyYXRpb24oKTsKQEAgLTQxNiw3ICs0MTYs
NyBAQCB2b2lkIElubGluZUNTU1N0eWxlRGVjbGFyYXRpb246OmRpZE11dGF0CiAgICAgaWYgKHR5
cGUgPT0gTm9DaGFuZ2VzKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2Nzc29tQ1NTVmFsdWVD
bG9uZXMgPSBudWxscHRyOworICAgIG1fY3Nzb21WYWx1ZVdyYXBwZXJzID0gbnVsbHB0cjsKIAog
ICAgIGlmICghbV9wYXJlbnRFbGVtZW50KQogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oCShy
ZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHls
ZURlY2xhcmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgQ1NTUnVsZTsKIGNsYXNzIENTU1Byb3BlcnR5OwogY2xhc3MgQ1NT
VmFsdWU7CitjbGFzcyBEZXByZWNhdGVkQ1NTT01WYWx1ZTsKIGNsYXNzIE11dGFibGVTdHlsZVBy
b3BlcnRpZXM7CiBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiBjbGFzcyBTdHlsZWRFbGVtZW50
OwpAQCAtNTQsNyArNTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBDU1NQYXJzZXJDb250
ZXh0IGNzc1BhcnNlckNvbnRleHQoKSBjb25zdDsKIAogICAgIE11dGFibGVTdHlsZVByb3BlcnRp
ZXMqIG1fcHJvcGVydHlTZXQ7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEhhc2hNYXA8Q1NTVmFsdWUq
LCBSZWZQdHI8Q1NTVmFsdWU+Pj4gbV9jc3NvbUNTU1ZhbHVlQ2xvbmVzOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxIYXNoTWFwPENTU1ZhbHVlKiwgUmVmUHRyPERlcHJlY2F0ZWRDU1NPTVZhbHVlPj4+
IG1fY3Nzb21WYWx1ZVdyYXBwZXJzOwogCiBwcml2YXRlOgogICAgIHZvaWQgcmVmKCkgb3ZlcnJp
ZGU7CkBAIC02Myw3ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgQ1NTUnVsZSogcGFyZW50UnVsZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB1bnNpZ25lZCBsZW5ndGgo
KSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QgZmlu
YWw7Ci0gICAgUmVmUHRyPENTU1ZhbHVlPiBnZXRQcm9wZXJ0eUNTU1ZhbHVlKGNvbnN0IFN0cmlu
ZyYgcHJvcGVydHlOYW1lKSBmaW5hbDsKKyAgICBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+
IGdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOwog
ICAgIFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBm
aW5hbDsKICAgICBTdHJpbmcgZ2V0UHJvcGVydHlQcmlvcml0eShjb25zdCBTdHJpbmcmIHByb3Bl
cnR5TmFtZSkgZmluYWw7CiAgICAgU3RyaW5nIGdldFByb3BlcnR5U2hvcnRoYW5kKGNvbnN0IFN0
cmluZyYgcHJvcGVydHlOYW1lKSBmaW5hbDsKQEAgLTc4LDcgKzc5LDcgQEAgcHJpdmF0ZToKICAg
ICAKICAgICBSZWY8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4gY29weVByb3BlcnRpZXMoKSBjb25z
dCBmaW5hbDsKIAotICAgIENTU1ZhbHVlKiBjbG9uZUFuZENhY2hlRm9yQ1NTT00oQ1NTVmFsdWUq
KTsKKyAgICBEZXByZWNhdGVkQ1NTT01WYWx1ZSogd3JhcEZvckRlcHJlY2F0ZWRDU1NPTShDU1NW
YWx1ZSopOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsTXV0YXRlKCkgV0FSTl9VTlVTRURf
UkVUVVJOIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkTXV0YXRlKE11dGF0
aW9uVHlwZSkgeyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvUkdCQ29sb3IuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9SR0JDb2xvci5jcHAJKHJldmlzaW9uIDIwOTkz
MikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9SR0JDb2xvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDM3ICszNSw1IEBAIFJlZjxSR0JDb2xvcj4gUkdCQ29sb3I6OmNyZWF0ZSh1bnNpZ25lZCAK
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSR0JDb2xvcihyZ2JDb2xvcikpOwogfQogCi1SZWY8
Q1NTUHJpbWl0aXZlVmFsdWU+IFJHQkNvbG9yOjpyZWQoKQotewotICAgIHVuc2lnbmVkIHZhbHVl
ID0gKG1fcmdiQ29sb3IgPj4gMTYpICYgMHhGRjsKLSAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+
IHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfTlVNQkVSKTsKLSAgICByZXN1bHQtPnNldENTU09NU2FmZSgpOwotICAgIHJldHVy
biByZXN1bHQ7Ci19Ci0KLVJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gUkdCQ29sb3I6OmdyZWVuKCkK
LXsKLSAgICB1bnNpZ25lZCB2YWx1ZSA9IChtX3JnYkNvbG9yID4+IDgpICYgMHhGRjsKLSAgICBS
ZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUo
dmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKLSAgICByZXN1bHQtPnNldENT
U09NU2FmZSgpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLVJlZjxDU1NQcmltaXRpdmVWYWx1
ZT4gUkdCQ29sb3I6OmJsdWUoKQotewotICAgIHVuc2lnbmVkIHZhbHVlID0gbV9yZ2JDb2xvciAm
IDB4RkY7Ci0gICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiByZXN1bHQgPSBDU1NQcmltaXRpdmVW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7Ci0gICAg
cmVzdWx0LT5zZXRDU1NPTVNhZmUoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1SZWY8Q1NT
UHJpbWl0aXZlVmFsdWU+IFJHQkNvbG9yOjphbHBoYSgpCi17Ci0gICAgZmxvYXQgdmFsdWUgPSBz
dGF0aWNfY2FzdDxmbG9hdD4oKG1fcmdiQ29sb3IgPj4gMjQpICYgMHhGRikgLyAweEZGOwotICAg
IFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOwotICAgIHJlc3VsdC0+c2V0
Q1NTT01TYWZlKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvUkdCQ29sb3IuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvUkdCQ29sb3IuaAkocmV2aXNpb24gMjA5OTMyKQorKysgU291
cmNlL1dlYkNvcmUvY3NzL1JHQkNvbG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDEzICszNywx
MCBAQCBjbGFzcyBSR0JDb2xvciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkCiBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxSR0JDb2xvcj4gY3JlYXRlKHVuc2lnbmVkIHJnYkNvbG9yKTsKIAotICAg
IFdFQkNPUkVfRVhQT1JUIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gcmVkKCk7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBncmVlbigpOwotICAgIFdFQkNPUkVfRVhQ
T1JUIFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gYmx1ZSgpOwotICAgIFdFQkNPUkVfRVhQT1JUIFJl
ZjxDU1NQcmltaXRpdmVWYWx1ZT4gYWxwaGEoKTsKLQogICAgIENvbG9yIGNvbG9yKCkgY29uc3Qg
eyByZXR1cm4gQ29sb3IobV9yZ2JDb2xvcik7IH0KIAorICAgIFJHQkEzMiByZ2JDb2xvcigpIGNv
bnN0IHsgcmV0dXJuIG1fcmdiQ29sb3I7IH0KKwogcHJpdmF0ZToKICAgICBSR0JDb2xvcih1bnNp
Z25lZCByZ2JDb2xvcikKICAgICAgICAgOiBtX3JnYkNvbG9yKHJnYkNvbG9yKQpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL1JHQkNvbG9yLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9jc3MvUkdCQ29sb3IuaWRsCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9j
c3MvUkdCQ29sb3IuaWRsCShub25leGlzdGVudCkKQEAgLTEsMzAgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0K
LVsKLSAgICBFeHBvcnRUb1dyYXBwZWRGdW5jdGlvbiwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tz
VlRhYmxlLAotXSBpbnRlcmZhY2UgUkdCQ29sb3IgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBD
U1NQcmltaXRpdmVWYWx1ZSByZWQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2
ZVZhbHVlIGdyZWVuOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSBi
bHVlOwotCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2ZVZhbHVlIGFscGhhOwot
fTsKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2Nzcy9SR0JDb2xvci5pZGwK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
UmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmgJKHJldmlzaW9u
IDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ4LDE0ICs0OCw2IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFJlY3RCYXNlKCkgeyB9
Ci0gICAgUmVjdEJhc2UoY29uc3QgUmVjdEJhc2UmIGNsb25lRnJvbSkKLSAgICAgICAgOiBtX3Rv
cChjbG9uZUZyb20ubV90b3AgPyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+KGNsb25lRnJvbS5t
X3RvcC0+Y2xvbmVGb3JDU1NPTSgpKSA6IG51bGxwdHIpCi0gICAgICAgICwgbV9yaWdodChjbG9u
ZUZyb20ubV9yaWdodCA/IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4oY2xvbmVGcm9tLm1fcmln
aHQtPmNsb25lRm9yQ1NTT00oKSkgOiBudWxscHRyKQotICAgICAgICAsIG1fYm90dG9tKGNsb25l
RnJvbS5tX2JvdHRvbSA/IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4oY2xvbmVGcm9tLm1fYm90
dG9tLT5jbG9uZUZvckNTU09NKCkpIDogbnVsbHB0cikKLSAgICAgICAgLCBtX2xlZnQoY2xvbmVG
cm9tLm1fbGVmdCA/IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4oY2xvbmVGcm9tLm1fbGVmdC0+
Y2xvbmVGb3JDU1NPTSgpKSA6IG51bGxwdHIpCi0gICAgewotICAgIH0KLQogICAgIH5SZWN0QmFz
ZSgpIHsgfQogCiBwcml2YXRlOgpAQCAtNjgsOCArNjAsNiBAQCBwcml2YXRlOgogY2xhc3MgUmVj
dCBmaW5hbCA6IHB1YmxpYyBSZWN0QmFzZSwgcHVibGljIFJlZkNvdW50ZWQ8UmVjdD4gewogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8UmVjdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBSZWN0KTsgfQotICAgIAotICAgIFJlZjxSZWN0PiBjbG9uZUZvckNTU09NKCkgY29uc3QgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZWN0KCp0aGlzKSk7IH0KIAogICAgIFN0cmluZyBjc3NUZXh0
KCkgY29uc3QKICAgICB7CkBAIC03OCw3ICs2OCw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICBSZWN0KCkgeyB9Ci0gICAgUmVjdChjb25zdCBSZWN0JiBjbG9uZUZyb20pIDogUmVjdEJhc2Uo
Y2xvbmVGcm9tKSwgUmVmQ291bnRlZDxSZWN0PigpIHsgfQogICAgIHN0YXRpYyBTdHJpbmcgZ2Vu
ZXJhdGVDU1NTdHJpbmcoY29uc3QgU3RyaW5nJiB0b3AsIGNvbnN0IFN0cmluZyYgcmlnaHQsIGNv
bnN0IFN0cmluZyYgYm90dG9tLCBjb25zdCBTdHJpbmcmIGxlZnQpCiAgICAgewogICAgICAgICBy
ZXR1cm4gInJlY3QoIiArIHRvcCArICIsICIgKyByaWdodCArICIsICIgKyBib3R0b20gKyAiLCAi
ICsgbGVmdCArICcpJzsKQEAgLTg4LDggKzc3LDYgQEAgcHJpdmF0ZToKIGNsYXNzIFF1YWQgZmlu
YWwgOiBwdWJsaWMgUmVjdEJhc2UsIHB1YmxpYyBSZWZDb3VudGVkPFF1YWQ+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFF1YWQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUXVh
ZCk7IH0KLSAgICAKLSAgICBSZWY8UXVhZD4gY2xvbmVGb3JDU1NPTSgpIGNvbnN0IHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUXVhZCgqdGhpcykpOyB9CiAKICAgICBTdHJpbmcgY3NzVGV4dCgpIGNv
bnN0CiAgICAgewpAQCAtOTgsNyArODUsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgUXVh
ZCgpIHsgfQotICAgIFF1YWQoY29uc3QgUXVhZCYgY2xvbmVGcm9tKSA6IFJlY3RCYXNlKGNsb25l
RnJvbSksIFJlZkNvdW50ZWQ8UXVhZD4oKSB7IH0KICAgICBzdGF0aWMgU3RyaW5nIGdlbmVyYXRl
Q1NTU3RyaW5nKGNvbnN0IFN0cmluZyYgdG9wLCBjb25zdCBTdHJpbmcmIHJpZ2h0LCBjb25zdCBT
dHJpbmcmIGJvdHRvbSwgY29uc3QgU3RyaW5nJiBsZWZ0KQogICAgIHsKICAgICAgICAgU3RyaW5n
QnVpbGRlciByZXN1bHQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaWRsCShyZXZpc2lvbiAyMDk5MzIpCisr
KyBTb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5pZGwJKG5vbmV4aXN0ZW50KQpAQCAtMSwyOCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCi0gKi8KLQotWwotICAgIEV4cG9ydFRvV3JhcHBlZEZ1bmN0aW9uLAotICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUsCi1dIGludGVyZmFjZSBSZWN0IHsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgdG9wOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQ
cmltaXRpdmVWYWx1ZSByaWdodDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZl
VmFsdWUgYm90dG9tOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSBs
ZWZ0OwotfTsKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0Lmlk
bApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZl
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxl
bWVudC5jcHAJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlNWR0Vs
ZW1lbnQuaCIKIAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5UGFyc2VyLmgiCisjaW5jbHVkZSAiRGVw
cmVjYXRlZENTU09NVmFsdWUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVs
ZW1lbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCkBAIC0xMDIzLDcgKzEwMjQsNyBA
QCB2b2lkIFNWR0VsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDCiAgICAgaW52YWxpZGF0
ZUluc3RhbmNlcygpOwogfQogCi1SZWZQdHI8Q1NTVmFsdWU+IFNWR0VsZW1lbnQ6OmdldFByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIG5hbWUpCitSZWZQdHI8RGVwcmVjYXRlZENT
U09NVmFsdWU+IFNWR0VsZW1lbnQ6OmdldFByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBTdHJp
bmcmIG5hbWUpCiB7CiAgICAgaWYgKCFoYXNBdHRyaWJ1dGVzV2l0aG91dFVwZGF0ZSgpKQogICAg
ICAgICByZXR1cm4gMDsKQEAgLTEwMzYsOCArMTAzNywxMCBAQCBSZWZQdHI8Q1NTVmFsdWU+IFNW
R0VsZW1lbnQ6OmdldFByZXNlbnRhCiAgICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnRpZXM+
IHN0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRlKFNWR0F0dHJpYnV0ZU1vZGUp
OwogICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCA9IGNzc1Byb3BlcnR5SWRGb3JTVkdBdHRy
aWJ1dGVOYW1lKGF0dHJpYnV0ZS0+bmFtZSgpKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkocHJv
cGVydHlJRCwgYXR0cmlidXRlLT52YWx1ZSgpKTsKLSAgICBSZWZQdHI8Q1NTVmFsdWU+IGNzc1Zh
bHVlID0gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUocHJvcGVydHlJRCk7Ci0gICAgcmV0dXJu
IGNzc1ZhbHVlID8gY3NzVmFsdWUtPmNsb25lRm9yQ1NTT00oKSA6IG51bGxwdHI7CisgICAgYXV0
byBjc3NWYWx1ZSA9IHN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5SUQpOworICAg
IGlmICghY3NzVmFsdWUpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjc3NW
YWx1ZS0+Y3JlYXRlRGVwcmVjYXRlZENTU09NV3JhcHBlcigpOwogfQogCiBib29sIFNWR0VsZW1l
bnQ6Omluc3RhbmNlVXBkYXRlc0Jsb2NrZWQoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxl
bWVudC5oCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKLWNs
YXNzIENTU1ZhbHVlOworY2xhc3MgRGVwcmVjYXRlZENTU09NVmFsdWU7CiBjbGFzcyBEb2N1bWVu
dDsKIGNsYXNzIFNWR0F0dHJpYnV0ZVRvUHJvcGVydHlNYXA7CiBjbGFzcyBTVkdEb2N1bWVudEV4
dGVuc2lvbnM7CkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc0Fu
aW1hdGFibGVDU1NQcm9wZXJ0eShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgYm9vbCBpc1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZVdpdGhTVkdET00oY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAg
IGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0gICAgUmVmUHRy
PENTU1ZhbHVlPiBnZXRQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiBuYW1lKTsK
KyAgICBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+IGdldFByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBTdHJpbmcmIG5hbWUpOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c01hcmtlcnMo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaGFzUmVsYXRpdmVMZW5ndGhzKCkg
Y29uc3QgeyByZXR1cm4gIW1fZWxlbWVudHNXaXRoUmVsYXRpdmVMZW5ndGhzLmlzRW1wdHkoKTsg
fQogICAgIHZpcnR1YWwgYm9vbCBuZWVkc1BlbmRpbmdSZXNvdXJjZUhhbmRsaW5nKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmlkbAkocmV2aXNp
b24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw3ICszNSw4IEBACiAgICAgYXR0cmlidXRlIGxvbmcgdGFiSW5kZXg7CiAK
ICAgICAvLyBGSVhNRTogVXNpbmcgInVuZGVmaW5lZCIgYXMgZGVmYXVsdCBwYXJhbWV0ZXIgdmFs
dWUgaXMgd3JvbmcuCi0gICAgQ1NTVmFsdWUgZ2V0UHJlc2VudGF0aW9uQXR0cmlidXRlKG9wdGlv
bmFsIERPTVN0cmluZyBuYW1lID0gInVuZGVmaW5lZCIpOworICAgIC8vIFRoaXMgbWV0aG9kIGlz
IGRlcHJlY2F0ZWQsIGFuZCB3ZSdkIGxpa2UgdG8gcmVtb3ZlIGl0IHNvbWVkYXkuCisgICAgRGVw
cmVjYXRlZENTU09NVmFsdWUgZ2V0UHJlc2VudGF0aW9uQXR0cmlidXRlKG9wdGlvbmFsIERPTVN0
cmluZyBuYW1lID0gInVuZGVmaW5lZCIpOwogCiAgICAgdm9pZCBmb2N1cygpOwogICAgIHZvaWQg
Ymx1cigpOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIw
MTYtMTItMTYgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NTUyBW
YWx1ZXNdIE1ha2Ugc2VwYXJhdGUgd3JhcHBlciBjbGFzc2VzIGZvciB0aGUgZGVwcmVjYXRlZCBD
U1MgVmFsdWVzIE9NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjU5NjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIERPTS9ET01DU1MubW06CisgICAgICAgIChraXRDbGFzcyk6CisgICAgICAgICogRE9N
L0RPTUNTU1ByaW1pdGl2ZVZhbHVlLm1tOgorICAgICAgICAoLVtET01DU1NQcmltaXRpdmVWYWx1
ZSBnZXRDb3VudGVyVmFsdWVdKToKKyAgICAgICAgKC1bRE9NQ1NTUHJpbWl0aXZlVmFsdWUgZ2V0
UmVjdFZhbHVlXSk6CisgICAgICAgIChraXQpOgorICAgICAgICAqIERPTS9ET01DU1NQcmltaXRp
dmVWYWx1ZUludGVybmFsLmg6CisgICAgICAgICogRE9NL0RPTUNTU1N0eWxlRGVjbGFyYXRpb24u
bW06CisgICAgICAgICogRE9NL0RPTUNTU1ZhbHVlLm1tOgorICAgICAgICAoa2l0KToKKyAgICAg
ICAgKiBET00vRE9NQ1NTVmFsdWVJbnRlcm5hbC5oOgorICAgICAgICAqIERPTS9ET01DU1NWYWx1
ZUxpc3QubW06CisgICAgICAgICogRE9NL0RPTUNvdW50ZXIubW06CisgICAgICAgIChraXQpOgor
ICAgICAgICAqIERPTS9ET01Db3VudGVySW50ZXJuYWwuaDoKKyAgICAgICAgKiBET00vRE9NUkdC
Q29sb3IubW06CisgICAgICAgIChraXQpOgorICAgICAgICAqIERPTS9ET01SR0JDb2xvckludGVy
bmFsLmg6CisgICAgICAgICogRE9NL0RPTVJlY3QubW06CisgICAgICAgIChraXQpOgorICAgICAg
ICAqIERPTS9ET01SZWN0SW50ZXJuYWwuaDoKKyAgICAgICAgKiBET00vRE9NVXRpbGl0eS5tbToK
KyAgICAgICAgKGNyZWF0ZURPTVdyYXBwZXIpOgorCiAyMDE2LTEyLTE1ICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgYXNTdHJpbmcgaW5zdGVhZCBvZiB0b1dU
RlN0cmluZywgdG9TdHJpbmcsIG9yIGdldFN0cmluZyB3aGVuIHdlIGFscmVhZHkgY2hlY2tlZCBp
c1N0cmluZwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTUy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTLm1tCShyZXZpc2lvbiAyMDk5MzIpCisr
KyBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3
ICsyOCw3IEBACiAKICNpbXBvcnQgPFdlYkNvcmUvQ1NTUnVsZS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9DU1NTdHlsZVNoZWV0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0NTU1ZhbHVlLmg+CisjaW1wb3J0
IDxXZWJDb3JlL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmg+CiAjaW1wb3J0ICJET01DU1NDaGFyc2V0
UnVsZS5oIgogI2ltcG9ydCAiRE9NQ1NTRm9udEZhY2VSdWxlLmgiCiAjaW1wb3J0ICJET01DU1NJ
bXBvcnRSdWxlLmgiCkBAIC05NCwyMCArOTQsMTYgQEAgQ2xhc3Mga2l0Q2xhc3MoV2ViQ29yZTo6
Q1NTUnVsZSogaW1wbCkKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBE
T01DU1NWYWx1ZQogCi1DbGFzcyBraXRDbGFzcyhXZWJDb3JlOjpDU1NWYWx1ZSogaW1wbCkKK0Ns
YXNzIGtpdENsYXNzKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlKiBpbXBsKQogewogICAg
IHN3aXRjaCAoaW1wbC0+Y3NzVmFsdWVUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpD
U1NWYWx1ZTo6Q1NTX1BSSU1JVElWRV9WQUxVRToKLSAgICAgICAgICAgIHJldHVybiBbRE9NQ1NT
UHJpbWl0aXZlVmFsdWUgY2xhc3NdOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkNTU1ZhbHVlOjpD
U1NfVkFMVUVfTElTVDoKLSAgICAgICAgICAgIHJldHVybiBbRE9NQ1NTVmFsdWVMaXN0IGNsYXNz
XTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpDU1NWYWx1ZTo6Q1NTX0lOSEVSSVQ6Ci0gICAgICAg
IGNhc2UgV2ViQ29yZTo6Q1NTVmFsdWU6OkNTU19JTklUSUFMOgotICAgICAgICBjYXNlIFdlYkNv
cmU6OkNTU1ZhbHVlOjpDU1NfVU5TRVQ6Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6Q1NTVmFsdWU6
OkNTU19SRVZFUlQ6Ci0gICAgICAgICAgICByZXR1cm4gW0RPTUNTU1ZhbHVlIGNsYXNzXTsKLSAg
ICAgICAgY2FzZSBXZWJDb3JlOjpDU1NWYWx1ZTo6Q1NTX0NVU1RPTToKLSAgICAgICAgICAgIHJl
dHVybiBbRE9NQ1NTVmFsdWUgY2xhc3NdOworICAgIGNhc2UgV2ViQ29yZTo6RGVwcmVjYXRlZENT
U09NVmFsdWU6OkNTU19QUklNSVRJVkVfVkFMVUU6CisgICAgICAgIHJldHVybiBbRE9NQ1NTUHJp
bWl0aXZlVmFsdWUgY2xhc3NdOworICAgIGNhc2UgV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFs
dWU6OkNTU19WQUxVRV9MSVNUOgorICAgICAgICByZXR1cm4gW0RPTUNTU1ZhbHVlTGlzdCBjbGFz
c107CisgICAgY2FzZSBXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZTo6Q1NTX0lOSEVSSVQ6
CisgICAgY2FzZSBXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZTo6Q1NTX0NVU1RPTToKKyAg
ICAgICAgcmV0dXJuIFtET01DU1NWYWx1ZSBjbGFzc107CiAgICAgfQogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgIHJldHVybiBuaWw7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9ET00v
RE9NQ1NTUHJpbWl0aXZlVmFsdWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
RE9NL0RPTUNTU1ByaW1pdGl2ZVZhbHVlLm1tCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2Uv
V2ViS2l0L21hYy9ET00vRE9NQ1NTUHJpbWl0aXZlVmFsdWUubW0JKHdvcmtpbmcgY29weSkKQEAg
LTI1LDggKzI1LDEwIEBACiAKICNpbXBvcnQgIkRPTUNTU1ByaW1pdGl2ZVZhbHVlSW50ZXJuYWwu
aCIKIAotI2ltcG9ydCA8V2ViQ29yZS9DU1NQcmltaXRpdmVWYWx1ZS5oPgotI2ltcG9ydCA8V2Vi
Q29yZS9Db3VudGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvRGVwcmVjYXRlZENTU09NUmVjdC5oPgogI2ltcG9ydCAiRE9NQ1NTVmFsdWVJbnRlcm5hbC5o
IgogI2ltcG9ydCAiRE9NQ291bnRlckludGVybmFsLmgiCiAjaW1wb3J0ICJET01Ob2RlSW50ZXJu
YWwuaCIKQEAgLTM0LDE0ICszNiwxMiBAQAogI2ltcG9ydCAiRE9NUmVjdEludGVybmFsLmgiCiAj
aW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgogI2ltcG9ydCA8V2ViQ29yZS9KU01haW5UaHJl
YWRFeGVjU3RhdGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUkdCQ29sb3IuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvUmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVjay5oPgogI2ltcG9ydCA8
V2ViQ29yZS9VUkwuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5o
PgogI2ltcG9ydCA8d3RmL0dldFB0ci5oPgogCi0jZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWUqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1Zh
bHVlKj4oX2ludGVybmFsKSkKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6RGVw
cmVjYXRlZENTU09NVmFsdWUqPihfaW50ZXJuYWwpKQogCiBAaW1wbGVtZW50YXRpb24gRE9NQ1NT
UHJpbWl0aXZlVmFsdWUKIApAQCAtNzgsMTMgKzc4LDEzIEBAIC0gKE5TU3RyaW5nICopZ2V0U3Ry
aW5nVmFsdWUKIC0gKERPTUNvdW50ZXIgKilnZXRDb3VudGVyVmFsdWUKIHsKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIGtpdCgmcmFpc2VPbkRP
TUVycm9yKElNUEwtPmdldENvdW50ZXJWYWx1ZSgpKSk7CisgICAgcmV0dXJuIGtpdChyYWlzZU9u
RE9NRXJyb3IoSU1QTC0+Z2V0Q291bnRlclZhbHVlKCkpLnB0cigpKTsKIH0KIAogLSAoRE9NUmVj
dCAqKWdldFJlY3RWYWx1ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKLSAgICByZXR1cm4ga2l0KCZyYWlzZU9uRE9NRXJyb3IoSU1QTC0+Z2V0UmVjdFZhbHVl
KCkpKTsKKyAgICByZXR1cm4ga2l0KHJhaXNlT25ET01FcnJvcihJTVBMLT5nZXRSZWN0VmFsdWUo
KSkucHRyKCkpOwogfQogCiAtIChET01SR0JDb2xvciAqKWdldFJHQkNvbG9yVmFsdWUKQEAgLTEw
OSw4ICsxMDksOCBAQCAtICh2b2lkKXNldFN0cmluZ1ZhbHVlOih1bnNpZ25lZCBzaG9ydClzCiAK
IEBlbmQKIAotRE9NQ1NTUHJpbWl0aXZlVmFsdWUgKmtpdChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZSogdmFsdWUpCitET01DU1NQcmltaXRpdmVWYWx1ZSAqa2l0KFdlYkNvcmU6OkRlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKiB2YWx1ZSkKIHsKICAgICBXZWJDb3JlVGhyZWFkVmlvbGF0
aW9uQ2hlY2tSb3VuZE9uZSgpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01DU1NQcmltaXRp
dmVWYWx1ZSo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpDU1NWYWx1ZSo+KHZhbHVlKSkpOwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01DU1NQcmltaXRpdmVWYWx1ZSo+KGtpdChzdGF0aWNf
Y2FzdDxXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZSo+KHZhbHVlKSkpOwogfQpJbmRleDog
U291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1ByaW1pdGl2ZVZhbHVlSW50ZXJuYWwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRl
cm5hbC5oCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NT
UHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBA
CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewotY2xhc3MgQ1NTUHJpbWl0aXZlVmFsdWU7CitjbGFzcyBEZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVWYWx1ZTsKIH0KIAotRE9NQ1NTUHJpbWl0aXZlVmFsdWUgKmtpdChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZSopOworRE9NQ1NTUHJpbWl0aXZlVmFsdWUgKmtpdChXZWJD
b3JlOjpEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZSopOwpJbmRleDogU291cmNlL1dlYktp
dC9tYWMvRE9NL0RPTUNTU1N0eWxlRGVjbGFyYXRpb24ubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9tYWMvRE9NL0RPTUNTU1N0eWxlRGVjbGFyYXRpb24ubW0JKHJldmlzaW9uIDIwOTkz
MikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01DU1NTdHlsZURlY2xhcmF0aW9uLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0NTU0ltcG9y
dFJ1bGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ1NTUnVsZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9D
U1NTdHlsZURlY2xhcmF0aW9uLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0NTU1ZhbHVlLmg+CisjaW1w
b3J0IDxXZWJDb3JlL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmg+CiAjaW1wb3J0ICJET01DU1NSdWxl
SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTUNTU1ZhbHVlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRP
TUludGVybmFsLmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTVmFsdWUubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1ZhbHVlLm1tCShyZXZp
c2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTVmFsdWUubW0JKHdv
cmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2ltcG9ydCAiRE9NQ1NTVmFsdWVJbnRl
cm5hbC5oIgogCi0jaW1wb3J0IDxXZWJDb3JlL0NTU1ZhbHVlLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmg+CiAjaW1wb3J0ICJET01JbnRlcm5hbC5oIgogI2ltcG9y
dCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgpAQCAt
MzYsNyArMzYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJTY3JpcHRPYmplY3RQcml2YXRlLmg+
CiAjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CiAKLSNkZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0
PFdlYkNvcmU6OkNTU1ZhbHVlKj4oX2ludGVybmFsKQorI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0
X2Nhc3Q8V2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWUqPihfaW50ZXJuYWwpCiAKIEBpbXBs
ZW1lbnRhdGlvbiBET01DU1NWYWx1ZQogCkBAIC03MCw3ICs3MCw3IEBAIC0gKHVuc2lnbmVkIHNo
b3J0KWNzc1ZhbHVlVHlwZQogCiBAZW5kCiAKLURPTUNTU1ZhbHVlICpraXQoV2ViQ29yZTo6Q1NT
VmFsdWUqIHZhbHVlKQorRE9NQ1NTVmFsdWUgKmtpdChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01W
YWx1ZSogdmFsdWUpCiB7CiAgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUo
KTsKICAgICBpZiAoIXZhbHVlKQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1Zh
bHVlSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NT
VmFsdWVJbnRlcm5hbC5oCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9E
T00vRE9NQ1NTVmFsdWVJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw4IEBA
CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NQ1NTVmFsdWUuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewotY2xhc3MgQ1NTVmFsdWU7CitjbGFzcyBEZXByZWNhdGVkQ1NTT01WYWx1ZTsKIH0KIAot
RE9NQ1NTVmFsdWUgKmtpdChXZWJDb3JlOjpDU1NWYWx1ZSopOwotQ2xhc3Mga2l0Q2xhc3MoV2Vi
Q29yZTo6Q1NTVmFsdWUqKTsKK0RPTUNTU1ZhbHVlICpraXQoV2ViQ29yZTo6RGVwcmVjYXRlZENT
U09NVmFsdWUqKTsKK0NsYXNzIGtpdENsYXNzKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVl
Kik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTVmFsdWVMaXN0Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01DU1NWYWx1ZUxpc3QubW0JKHJldmlz
aW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01DU1NWYWx1ZUxpc3QubW0J
KHdvcmtpbmcgY29weSkKQEAgLTI1LDE3ICsyNSwxNiBAQAogCiAjaW1wb3J0ICJET01DU1NWYWx1
ZUxpc3QuaCIKIAotI2ltcG9ydCA8V2ViQ29yZS9DU1NWYWx1ZS5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9DU1NWYWx1ZUxpc3QuaD4KICNpbXBvcnQgIkRPTUNTU1ZhbHVlSW50ZXJuYWwuaCIKICNpbXBv
cnQgIkRPTU5vZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNp
bXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVj
ay5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJTY3JpcHRPYmplY3RQcml2YXRlLmg+CiAjaW1wb3J0
IDx3dGYvR2V0UHRyLmg+CiAKLSNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDU1NW
YWx1ZUxpc3QqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4oX2ludGVybmFs
KSkKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1
ZUxpc3QqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlKj4o
X2ludGVybmFsKSkKIAogQGltcGxlbWVudGF0aW9uIERPTUNTU1ZhbHVlTGlzdAogCkluZGV4OiBT
b3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ291bnRlci5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9ET00vRE9NQ291bnRlci5tbQkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNl
L1dlYktpdC9tYWMvRE9NL0RPTUNvdW50ZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1
LDcgQEAKIAogI2ltcG9ydCAiRE9NQ291bnRlckludGVybmFsLmgiCiAKLSNpbXBvcnQgPFdlYkNv
cmUvQ291bnRlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9EZXByZWNhdGVkQ1NTT01Db3VudGVyLmg+
CiAjaW1wb3J0ICJET01JbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAj
aW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgpAQCAtMzYsNyArMzYsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9XZWJTY3JpcHRPYmplY3RQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvR2V0UHRyLmg+
CiAKLSNkZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNvdW50ZXIqPihfaW50
ZXJuYWwpCisjZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpEZXByZWNhdGVk
Q1NTT01Db3VudGVyKj4oX2ludGVybmFsKQogCiBAaW1wbGVtZW50YXRpb24gRE9NQ291bnRlcgog
CkBAIC03MCw3ICs3MCw3IEBAIC0gKE5TU3RyaW5nICopc2VwYXJhdG9yCiAKIEBlbmQKIAotRE9N
Q291bnRlciAqa2l0KFdlYkNvcmU6OkNvdW50ZXIqIHZhbHVlKQorRE9NQ291bnRlciAqa2l0KFdl
YkNvcmU6OkRlcHJlY2F0ZWRDU1NPTUNvdW50ZXIqIHZhbHVlKQogewogICAgIFdlYkNvcmVUaHJl
YWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CiAgICAgaWYgKCF2YWx1ZSkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvbWFjL0RPTS9ET01Db3VudGVySW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L21hYy9ET00vRE9NQ291bnRlckludGVybmFsLmgJKHJldmlzaW9uIDIwOTkzMikK
KysrIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01Db3VudGVySW50ZXJuYWwuaAkod29ya2luZyBj
b3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTUNvdW50ZXIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgQ291bnRlcjsKK2NsYXNzIERlcHJlY2F0
ZWRDU1NPTUNvdW50ZXI7CiB9CiAKLURPTUNvdW50ZXIgKmtpdChXZWJDb3JlOjpDb3VudGVyKik7
CitET01Db3VudGVyICpraXQoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NQ291bnRlciopOwpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTVJHQkNvbG9yLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL0RPTS9ET01SR0JDb2xvci5tbQkocmV2aXNpb24gMjA5OTMyKQorKysg
U291cmNlL1dlYktpdC9tYWMvRE9NL0RPTVJHQkNvbG9yLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0y
NSwxMyArMjUsMTMgQEAKIAogI2ltcG9ydCAiRE9NUkdCQ29sb3JJbnRlcm5hbC5oIgogCi0jaW1w
b3J0IDxXZWJDb3JlL0NTU1ByaW1pdGl2ZVZhbHVlLmg+CiAjaW1wb3J0ICJET01DU1NQcmltaXRp
dmVWYWx1ZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01JbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9N
Tm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCA8
V2ViQ29yZS9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9EZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU01haW5UaHJl
YWRFeGVjU3RhdGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUkdCQ29sb3IuaD4KICNpbXBvcnQgPFdl
YkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMu
aD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oPgpAQCAtNDMsNyAr
NDMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjZW5kaWYKIAotI2RlZmlu
ZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6UkdCQ29sb3IqPihfaW50ZXJuYWwpCisj
ZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01SR0JD
b2xvcio+KF9pbnRlcm5hbCkKIAogQGltcGxlbWVudGF0aW9uIERPTVJHQkNvbG9yCiAKQEAgLTk3
LDcgKzk3LDcgQEAgLSAoQ0dDb2xvclJlZiljb2xvcgogCiBAZW5kCiAKLURPTVJHQkNvbG9yICpr
aXQoV2ViQ29yZTo6UkdCQ29sb3IqIHZhbHVlKQorRE9NUkdCQ29sb3IgKmtpdChXZWJDb3JlOjpE
ZXByZWNhdGVkQ1NTT01SR0JDb2xvciogdmFsdWUpCiB7CiAgICAgV2ViQ29yZVRocmVhZFZpb2xh
dGlvbkNoZWNrUm91bmRPbmUoKTsKICAgICBpZiAoIXZhbHVlKQpJbmRleDogU291cmNlL1dlYktp
dC9tYWMvRE9NL0RPTVJHQkNvbG9ySW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9ET00vRE9NUkdCQ29sb3JJbnRlcm5hbC5oCShyZXZpc2lvbiAyMDk5MzIpCisrKyBT
b3VyY2UvV2ViS2l0L21hYy9ET00vRE9NUkdCQ29sb3JJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NUkdCQ29sb3IuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgUkdCQ29sb3I7CitjbGFzcyBEZXByZWNhdGVk
Q1NTT01SR0JDb2xvcjsKIH0KIAotRE9NUkdCQ29sb3IgKmtpdChXZWJDb3JlOjpSR0JDb2xvciop
OworRE9NUkdCQ29sb3IgKmtpdChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01SR0JDb2xvciopOwpJ
bmRleDogU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTVJlY3QubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvRE9NL0RPTVJlY3QubW0JKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJj
ZS9XZWJLaXQvbWFjL0RPTS9ET01SZWN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxOSArMjUs
MTkgQEAKIAogI2ltcG9ydCAiRE9NUmVjdEludGVybmFsLmgiCiAKLSNpbXBvcnQgPFdlYkNvcmUv
Q1NTUHJpbWl0aXZlVmFsdWUuaD4KICNpbXBvcnQgIkRPTUNTU1ByaW1pdGl2ZVZhbHVlSW50ZXJu
YWwuaCIKICNpbXBvcnQgIkRPTUludGVybmFsLmgiCiAjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwu
aCIKICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0IDxXZWJDb3JlL0RlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RlcHJlY2F0ZWRD
U1NPTVJlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL1JlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4K
ICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUv
V2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL0dldFB0ci5oPgogCi0jZGVm
aW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpSZWN0Kj4oX2ludGVybmFsKQorI2Rl
ZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6RGVwcmVjYXRlZENTU09NUmVjdCo+
KF9pbnRlcm5hbCkKIAogQGltcGxlbWVudGF0aW9uIERPTVJlY3QKIApAQCAtNzcsNyArNzcsNyBA
QCAtIChET01DU1NQcmltaXRpdmVWYWx1ZSAqKWxlZnQKIAogQGVuZAogCi1ET01SZWN0ICpraXQo
V2ViQ29yZTo6UmVjdCogdmFsdWUpCitET01SZWN0ICpraXQoV2ViQ29yZTo6RGVwcmVjYXRlZENT
U09NUmVjdCogdmFsdWUpCiB7CiAgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRP
bmUoKTsKICAgICBpZiAoIXZhbHVlKQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTVJl
Y3RJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01SZWN0
SW50ZXJuYWwuaAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYktpdC9tYWMvRE9NL0RP
TVJlY3RJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0
IDxXZWJLaXRMZWdhY3kvRE9NUmVjdC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBS
ZWN0OworY2xhc3MgRGVwcmVjYXRlZENTU09NUmVjdDsKIH0KIAotRE9NUmVjdCAqa2l0KFdlYkNv
cmU6OlJlY3QqKTsKK0RPTVJlY3QgKmtpdChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01SZWN0Kik7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NVXRpbGl0eS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NVXRpbGl0eS5tbQkocmV2aXNpb24gMjA5OTMyKQor
KysgU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTVV0aWxpdHkubW0JKHdvcmtpbmcgY29weSkKQEAg
LTUwLDEwICs1MCwxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9KU0NTU1J1bGUuaD4KICNpbXBvcnQg
PFdlYkNvcmUvSlNDU1NSdWxlTGlzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU0NTU1N0eWxlRGVj
bGFyYXRpb24uaD4KLSNpbXBvcnQgPFdlYkNvcmUvSlNDU1NWYWx1ZS5oPgotI2ltcG9ydCA8V2Vi
Q29yZS9KU0NvdW50ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNET01JbXBsZW1lbnRhdGlvbi5o
PgogI2ltcG9ydCA8V2ViQ29yZS9KU0RPTVdpbmRvd1NoZWxsLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0pTRGVwcmVjYXRlZENTU09NQ291bnRlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9KU0RlcHJlY2F0
ZWRDU1NPTVJHQkNvbG9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL0pTRGVwcmVjYXRlZENTU09NUmVj
dC5oPgorI2ltcG9ydCA8V2ViQ29yZS9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0pTRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNIVE1MQ29sbGVjdGlvbi5o
PgogI2ltcG9ydCA8V2ViQ29yZS9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oPgpAQCAtNjIsOSAr
NjQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9KU05vZGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNO
b2RlSXRlcmF0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNOb2RlTGlzdC5oPgotI2ltcG9ydCA8
V2ViQ29yZS9KU1JHQkNvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTUmFuZ2UuaD4KLSNpbXBv
cnQgPFdlYkNvcmUvSlNSZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTU3R5bGVTaGVldC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9KU1N0eWxlU2hlZXRMaXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pT
VHJlZVdhbGtlci5oPgpAQCAtODEsOCArODEsOCBAQCBzdGF0aWMgV2ViU2NyaXB0T2JqZWN0ICpj
cmVhdGVET01XcmFwcGVyCiAgICAgV1JBUChDU1NSdWxlKQogICAgIFdSQVAoQ1NTUnVsZUxpc3Qp
CiAgICAgV1JBUChDU1NTdHlsZURlY2xhcmF0aW9uKQotICAgIFdSQVAoQ1NTVmFsdWUpCi0gICAg
V1JBUChDb3VudGVyKQorICAgIFdSQVAoRGVwcmVjYXRlZENTU09NVmFsdWUpCisgICAgV1JBUChE
ZXByZWNhdGVkQ1NTT01Db3VudGVyKQogICAgIFdSQVAoRE9NSW1wbGVtZW50YXRpb24pCiAgICAg
V1JBUChET01XaW5kb3dTaGVsbCkKICAgICBXUkFQKEV2ZW50KQpAQCAtOTIsOSArOTIsOSBAQCBz
dGF0aWMgV2ViU2NyaXB0T2JqZWN0ICpjcmVhdGVET01XcmFwcGVyCiAgICAgV1JBUChOb2RlKQog
ICAgIFdSQVAoTm9kZUl0ZXJhdG9yKQogICAgIFdSQVAoTm9kZUxpc3QpCi0gICAgV1JBUChSR0JD
b2xvcikKKyAgICBXUkFQKERlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yKQogICAgIFdSQVAoUmFuZ2Up
Ci0gICAgV1JBUChSZWN0KQorICAgIFdSQVAoRGVwcmVjYXRlZENTU09NUmVjdCkKICAgICBXUkFQ
KFN0eWxlU2hlZXQpCiAgICAgV1JBUChTdHlsZVNoZWV0TGlzdCkKICAgICBXUkFQKFRyZWVXYWxr
ZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297351</attachid>
            <date>2016-12-16 13:30:16 -0800</date>
            <delta_ts>2016-12-16 13:46:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165968-20161216152921.patch</filename>
            <type>text/plain</type>
            <size>180810</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1NCBAQAorMjAxNi0xMi0xNiAgRGF2ZSBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIFZhbHVlc10gTWFrZSBzZXBh
cmF0ZSB3cmFwcGVyIGNsYXNzZXMgZm9yIHRoZSBkZXByZWNhdGVkIENTUyBWYWx1ZXMgT00KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTk2OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
Y2hhbmdlcyB0aGUgQ1NTIE9NIGZvciB2YWx1ZXMgdG8gdXNlIGRpc3RpbmN0IHdyYXBwZXIKKyAg
ICAgICAgY2xhc3NlcyBpbnN0ZWFkIG9mIGNsb25pbmcgdGhlIGV4aXN0aW5nIGNsYXNzZXMuIEJ5
IGFjdHVhbGx5IHdyYXBwaW5nCisgICAgICAgIHZhbHVlcyBpbnN0ZWFkIG9mIGNsb25pbmcsIHdl
IGFyZSBmcmVlZCB1cCB0byBjaGFuZ2Ugb3VyIENTUyB2YWx1ZSBoaWVyYXJjaHkKKyAgICAgICAg
aG93ZXZlciB3ZSdkIGxpa2UgKHN1Y2ggYXMgY2hhbmdpbmcgdG8gbWF0Y2ggdGhlIG5ldyBDU1Mg
VmFsdWVzIE9NIHRoYXQKKyAgICAgICAgaXMgY29taW5nIHNvb24pLgorCisgICAgICAgIEFsbCBv
ZiB0aGUgQ1NTIFZhbHVlcyB3cmFwcGVyIGNsYXNzZXMgYXJlIHByZWZpeGVkIHdpdGggIkRlcHJl
Y2F0ZWRDU1NPTSIKKyAgICAgICAgdG8gcmVmbGVjdCBvdXIgZGVzaXJlICh1bHRpbWF0ZWx5KSB0
byByZW1vdmUgdGhpcyBBUEkgZnJvbSBvdXIgdHJlZS4gV2UncmUKKyAgICAgICAgdGhlIG9ubHkg
b25lcyB0aGF0IHN1cHBvcnQgaXQsIGFuZCBpdCdzIG5vdCB1c2VkIG9uIHRoZSBXZWIsIGJ1dCBp
dCBpcyBwYXJ0CisgICAgICAgIG9mIHRoZSBXZWJLaXRMZWdhY3kgQVBJIGFuZCBtaWdodCBiZSB1
c2VkIGludGVybmFsbHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGlu
Z3MvanMvRE9NV3JhcHBlcldvcmxkLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDU1NTdHls
ZURlY2xhcmF0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ1NTU3R5bGVEZWNs
YXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlND
U1NWYWx1ZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RlcHJlY2F0ZWRDU1NPTVZh
bHVlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTRGVwcmVjYXRlZENTU09NVmFsdWVPd25lcjo6ZmluYWxpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTQ1NTVmFsdWVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNDU1NWYWx1ZU93bmVyOjpmaW5hbGl6ZSk6IERl
bGV0ZWQuCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5
Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaDoK
KyAgICAgICAgKiBjc3MvQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0dyaWRMaW5lTmFtZXNWYWx1ZTo6Y2xvbmVGb3JDU1NPTSk6IERlbGV0ZWQuCisgICAg
ICAgICogY3NzL0NTU0dyaWRMaW5lTmFtZXNWYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NJbWFn
ZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlU2V0VmFsdWU6OmNsb25l
Rm9yQ1NTT00pOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9DU1NJbWFnZVNldFZhbHVlLmg6Cisg
ICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1h
Z2VWYWx1ZTo6Y3JlYXRlRGVwcmVjYXRlZENTU09NV3JhcHBlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NJbWFnZVZhbHVlOjpjbG9uZUZvckNTU09NKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3Mv
Q1NTSW1hZ2VWYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlRGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
Y2xvbmVGb3JDU1NPTSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
Lmg6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlkbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAqIGNzcy9DU1NTdHlsZURl
Y2xhcmF0aW9uLmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTVmFsdWU6OnRyYXZlcnNlU3VicmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ZhbHVlOjplcXVhbHMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmNzc1RleHQp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTVmFsdWU6OmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIpOgorICAgICAgICAoKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjpjbG9uZUZvckNTU09NKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Zh
bHVlOjpDU1NWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6c2V0Q3NzVGV4dCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNDU1NPTVNhZmUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzU3VidHlwZUV4cG9zZWRUb0NTU09N
KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaWRsOiBSZW1vdmVkLgorICAgICAg
ICAqIGNzcy9DU1NWYWx1ZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVMaXN0
OjpjbG9uZUZvckNTU09NKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVMaXN0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZUxpc3Q6OnNlcGFyYXRvcik6CisgICAgICAgICog
Y3NzL0NTU1ZhbHVlTGlzdC5pZGw6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NvdW50ZXIuaDoK
KyAgICAgICAgKiBjc3MvQ291bnRlci5pZGw6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0RlcHJl
Y2F0ZWRDU1NPTUNvdW50ZXIuaDogQWRkZWQuCisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NP
TUNvdW50ZXIuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3MvQ291bnRlci5pZGwu
CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6Z2V0Q291
bnRlclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZh
bHVlOjpnZXRSZWN0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWU6OmdldFJHQkNvbG9yVmFsdWUpOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVWYWx1ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVj
YXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmVxdWFscyk6CisgICAgICAgIChXZWJDb3JlOjpEZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6Y3NzVmFsdWVUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpjc3NUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpwcmltaXRpdmVUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpzZXRGbG9hdFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpn
ZXRGbG9hdFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2
ZVZhbHVlOjpzZXRTdHJpbmdWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NT
T01QcmltaXRpdmVWYWx1ZTo6Z2V0U3RyaW5nVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVw
cmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OnN0cmluZ1ZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpEZXByZWNhdGVkQ1NTT01QcmltaXRp
dmVWYWx1ZSk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmlk
bDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlkbC4K
KyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaDogQWRkZWQuCisgICAgICAg
ICogY3NzL0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmlkbDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvY3NzL1JHQkNvbG9yLmlkbC4KKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NUmVj
dC5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NUmVjdC5pZGw6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmlkbC4KKyAgICAgICAgKiBjc3MvRGVwcmVj
YXRlZENTU09NVmFsdWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVDU1NP
TVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZTo6ZXF1YWxz
KToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpkZXN0cm95KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpjc3NWYWx1ZVR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWU6OmNzc1RleHQpOgorICAgICAgICAq
IGNzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRl
cHJlY2F0ZWRDU1NPTVZhbHVlOjpkZXJlZik6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVk
Q1NTT01WYWx1ZTo6c2V0Q3NzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NT
T01WYWx1ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01W
YWx1ZTo6aXNDb21wbGV4VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09N
VmFsdWU6OmlzUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENT
U09NVmFsdWU6OmlzVmFsdWVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NP
TVZhbHVlOjpjbGFzc1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFs
dWU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRD
U1NPTVZhbHVlOjp+RGVwcmVjYXRlZENTU09NVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVw
cmVjYXRlZENTU09NQ29tcGxleFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVw
cmVjYXRlZENTU09NQ29tcGxleFZhbHVlOjplcXVhbHMpOgorICAgICAgICAoV2ViQ29yZTo6RGVw
cmVjYXRlZENTU09NQ29tcGxleFZhbHVlOjpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRl
cHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZTo6Y3NzVmFsdWVUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZTo6RGVwcmVjYXRlZENTU09NQ29tcGxleFZh
bHVlKToKKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaWRsOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaWRsLgorICAgICAgICAqIGNzcy9EZXByZWNh
dGVkQ1NTT01WYWx1ZUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0
ZWRDU1NPTVZhbHVlTGlzdDo6ZXF1YWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRD
U1NPTVZhbHVlTGlzdDo6Y3NzVGV4dCk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVZh
bHVlTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVl
TGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlTGlz
dDo6Y3NzVmFsdWVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVl
TGlzdDo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlTGlz
dDo6aXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q6OkRl
cHJlY2F0ZWRDU1NPTVZhbHVlTGlzdCk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVZh
bHVlTGlzdC5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3Qu
aWRsLgorICAgICAgICAqIGNzcy9MZW5ndGhSZXBlYXQuaDoKKyAgICAgICAgKiBjc3MvUHJvcGVy
dHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5
U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OndyYXBGb3JEZXByZWNhdGVk
Q1NTT00pOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbjo6
ZGlkTXV0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUNTU1N0eWxlRGVjbGFyYXRpb246
OmRpZE11dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFy
YXRpb246OmNsb25lQW5kQ2FjaGVGb3JDU1NPTSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL1By
b3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAqIGNzcy9SR0JDb2xvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSR0JDb2xvcjo6cmVkKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJHQkNvbG9yOjpncmVlbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpS
R0JDb2xvcjo6Ymx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSR0JDb2xvcjo6YWxw
aGEpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9SR0JDb2xvci5oOgorICAgICAgICAqIGNzcy9S
R0JDb2xvci5pZGw6IFJlbW92ZWQuCisgICAgICAgICogY3NzL1JlY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlY3RCYXNlOjpSZWN0QmFzZSk6CisgICAgICAgICogY3NzL1JlY3QuaWRsOiBSZW1v
dmVkLgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0VsZW1lbnQ6OmdldFByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5pZGw6CisKIDIwMTYtMTItMTYgIEFu
ZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFN1YmZyYW1lcyBnb2lu
ZyBpbnRvIHBhZ2UgY2FjaGUgZG9uJ3QgbmVlZCB0byByZXNldFNjcm9sbGJhcnMoKS4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzQ4LDcgKzM0OCw2IEBAIHNldChXZWJD
b3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgY3NzL0NTU01lZGlhUnVsZS5pZGwKICAgICBjc3Mv
Q1NTTmFtZXNwYWNlUnVsZS5pZGwKICAgICBjc3MvQ1NTUGFnZVJ1bGUuaWRsCi0gICAgY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmlkbAogICAgIGNzcy9DU1NSdWxlLmlkbAogICAgIGNzcy9DU1NSdWxl
TGlzdC5pZGwKICAgICBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKQEAgLTM1NiwxNyArMzU1
LDE4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgY3NzL0NTU1N0eWxlU2hl
ZXQuaWRsCiAgICAgY3NzL0NTU1N1cHBvcnRzUnVsZS5pZGwKICAgICBjc3MvQ1NTVW5rbm93blJ1
bGUuaWRsCi0gICAgY3NzL0NTU1ZhbHVlLmlkbAotICAgIGNzcy9DU1NWYWx1ZUxpc3QuaWRsCi0g
ICAgY3NzL0NvdW50ZXIuaWRsCisgICAgY3NzL0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaWRsCisg
ICAgY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmlkbAorICAgIGNzcy9EZXByZWNh
dGVkQ1NTT01SR0JDb2xvci5pZGwKKyAgICBjc3MvRGVwcmVjYXRlZENTU09NUmVjdC5pZGwKKyAg
ICBjc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaWRsCisgICAgY3NzL0RlcHJlY2F0ZWRDU1NPTVZh
bHVlTGlzdC5pZGwKICAgICBjc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbAogICAgIGNzcy9Gb250RmFj
ZS5pZGwKICAgICBjc3MvRm9udEZhY2VTZXQuaWRsCiAgICAgY3NzL01lZGlhTGlzdC5pZGwKICAg
ICBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsCiAgICAgY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
aWRsCi0gICAgY3NzL1JHQkNvbG9yLmlkbAotICAgIGNzcy9SZWN0LmlkbAogICAgIGNzcy9TdHls
ZU1lZGlhLmlkbAogICAgIGNzcy9TdHlsZVNoZWV0LmlkbAogICAgIGNzcy9TdHlsZVNoZWV0TGlz
dC5pZGwKQEAgLTEzMzMsNiArMTMzMyw5IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3Mv
Q1NTVmFyaWFibGVEYXRhLmNwcAogICAgIGNzcy9DU1NWYXJpYWJsZVJlZmVyZW5jZVZhbHVlLmNw
cAogICAgIGNzcy9ET01DU1NOYW1lc3BhY2UuY3BwCisgICAgY3NzL0RlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlLmNwcAorICAgIGNzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAKKyAgICBj
c3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcAogICAgIGNzcy9Eb2N1bWVudFJ1bGVTZXRz
LmNwcAogICAgIGNzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKICAgICBjc3MvRm9udFZhcmlh
bnRCdWlsZGVyLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkocmV2aXNpb24g
MjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTYsNyArMTE2LDYgQEAKICNpbmNsdWRlICJKU0NvbW1lbnQuY3BwIgogI2luY2x1
ZGUgIkpTQ29tcG9zaXRpb25FdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNDb29yZGluYXRlcy5jcHAi
Ci0jaW5jbHVkZSAiSlNDb3VudGVyLmNwcCIKICNpbmNsdWRlICJKU0NyeXB0by5jcHAiCiAjaWYg
RU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCiAjaW5jbHVkZSAiSlNDU1NGb250RmFjZUxvYWRFdmVu
dC5jcHAiCkBAIC0xMjcsNyArMTI2LDYgQEAKICNpbmNsdWRlICJKU0NTU0tleWZyYW1lc1J1bGUu
Y3BwIgogI2luY2x1ZGUgIkpTQ1NTTWVkaWFSdWxlLmNwcCIKICNpbmNsdWRlICJKU0NTU1BhZ2VS
dWxlLmNwcCIKLSNpbmNsdWRlICJKU0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCIKICNpbmNsdWRlICJK
U0NTU1J1bGUuY3BwIgogI2luY2x1ZGUgIkpTQ1NTUnVsZUxpc3QuY3BwIgogI2luY2x1ZGUgIkpT
Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAiCkBAIC0xMzUsOCArMTMzLDYgQEAKICNpbmNsdWRlICJK
U0NTU1N0eWxlU2hlZXQuY3BwIgogI2luY2x1ZGUgIkpTQ1NTU3VwcG9ydHNSdWxlLmNwcCIKICNp
bmNsdWRlICJKU0NTU1Vua25vd25SdWxlLmNwcCIKLSNpbmNsdWRlICJKU0NTU1ZhbHVlLmNwcCIK
LSNpbmNsdWRlICJKU0NTU1ZhbHVlTGlzdC5jcHAiCiAjaW5jbHVkZSAiSlNDbGlwYm9hcmRFdmVu
dC5jcHAiCiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50UmVnaXN0cnkuY3BwIgogI2luY2x1ZGUg
IkpTQ3VzdG9tRXZlbnQuY3BwIgpAQCAtMTQ5LDYgKzE0NSwxMiBAQAogI2lmIEVOQUJMRShXRUJf
QVVESU8pCiAjaW5jbHVkZSAiSlNEZWxheU5vZGUuY3BwIgogI2VuZGlmCisjaW5jbHVkZSAiSlNE
ZXByZWNhdGVkQ1NTT01Db3VudGVyLmNwcCIKKyNpbmNsdWRlICJKU0RlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlLmNwcCIKKyNpbmNsdWRlICJKU0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmNw
cCIKKyNpbmNsdWRlICJKU0RlcHJlY2F0ZWRDU1NPTVJlY3QuY3BwIgorI2luY2x1ZGUgIkpTRGVw
cmVjYXRlZENTU09NVmFsdWUuY3BwIgorI2luY2x1ZGUgIkpTRGVwcmVjYXRlZENTU09NVmFsdWVM
aXN0LmNwcCIKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogI2luY2x1ZGUgIkpTRGV2
aWNlTW90aW9uRXZlbnQuaCIKICNpbmNsdWRlICJKU0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3Bw
IgpAQCAtNDAxLDkgKzQwMyw3IEBACiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbS5jcHAiCiAj
aW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCIKICNpbmNsdWRl
ICJKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5jcHAiCi0jaW5jbHVkZSAiSlNSZWN0LmNw
cCIKICNpbmNsdWRlICJKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmNwcCIKLSNpbmNs
dWRlICJKU1JHQkNvbG9yLmNwcCIKICNpbmNsdWRlICJKU1JUQ0NvbmZpZ3VyYXRpb24uY3BwIgog
I2luY2x1ZGUgIkpTUlRDRGF0YUNoYW5uZWwuY3BwIgogI2luY2x1ZGUgIkpTUlRDRGF0YUNoYW5u
ZWxFdmVudC5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9u
IDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcg
Y29weSkKQEAgLTI4MCw3ICsyODAsNiBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9jc3MvQ1NTTWVkaWFSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTTmFtZXNw
YWNlUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU1BhZ2VSdWxlLmlkbCBcCi0gICAg
JChXZWJDb3JlKS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nz
cy9DU1NSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTUnVsZUxpc3QuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbCBcCkBAIC0yODgsMTcgKzI4
NywxOCBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTU3R5bGVT
aGVldC5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU1N1cHBvcnRzUnVsZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvY3NzL0NTU1Vua25vd25SdWxlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3Mv
Q1NTVmFsdWUuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsIFwKLSAg
ICAkKFdlYkNvcmUpL2Nzcy9Db3VudGVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9jc3MvRGVwcmVj
YXRlZENTU09NQ291bnRlci5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL0RlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvRGVwcmVjYXRlZENTU09NUkdCQ29s
b3IuaWRsIFwKKwkkKFdlYkNvcmUpL2Nzcy9EZXByZWNhdGVkQ1NTT01SZWN0LmlkbCBcCisJJChX
ZWJDb3JlKS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2Nz
cy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9ET01D
U1NOYW1lc3BhY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9Gb250RmFjZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvY3NzL0ZvbnRGYWNlU2V0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvTWVk
aWFMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbCBcCi0gICAgJChXZWJD
b3JlKS9jc3MvUkdCQ29sb3IuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9SZWN0LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9jc3MvU3R5bGVNZWRpYS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL1N0
eWxlU2hlZXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9TdHlsZVNoZWV0TGlzdC5pZGwgXApJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02MzMsOCArNjMzLDYgQEAKIAkJ
MTQ5OTNCRTUwQjJGMkIxQzAwNTA0OTdGIC8qIEZvY3VzQ29udHJvbGxlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDk5M0JFMzBCMkYyQjFDMDA1
MDQ5N0YgLyogRm9jdXNDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJMTQ5OTNCRTYwQjJGMkIxQzAw
NTA0OTdGIC8qIEZvY3VzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQ5OTNCRTQwQjJGMkIxQzAwNTA0OTdGIC8qIEZvY3VzQ29udHJv
bGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTE0QzlBNUVBMEIzRDEwNUYwMDVBMDIzMiAvKiBTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEM5QTVFOTBCM0QxMDVGMDA1QTAyMzIg
LyogU2V0dGluZ3MuY3BwICovOyB9OwotCQkxNENGNzhBNDA5RjU4Q0JGMDBFQjM2NjUgLyogSlND
U1NWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNENGNzhBMzA5RjU4Q0JGMDBFQjM2NjUgLyogSlNDU1NWYWx1ZS5jcHAgKi87IH07Ci0JCTE0
Q0Y3OEE2MDlGNThDRDgwMEVCMzY2NSAvKiBKU0NTU1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNENGNzhBNTA5RjU4Q0Q4MDBFQjM2NjUgLyog
SlNDU1NWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTE0Q0Y3QjMzMDlGNkVDRDcwMEVCMzY2NSAvKiBKU0NTU1J1bGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRDRjdCMzEwOUY2RUNENzAw
RUIzNjY1IC8qIEpTQ1NTUnVsZS5jcHAgKi87IH07CiAJCTE0Q0Y3QjM0MDlGNkVDRDcwMEVCMzY2
NSAvKiBKU0NTU1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0Q0Y3QjMyMDlGNkVDRDcwMEVCMzY2NSAvKiBKU0NTU1J1bGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNEQ2NEI1QzEzNEE1QjZC
MDBFNThGREEgLyogVHJlZVNjb3BlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0RDY0QjVBMTM0QTVCNkIwMEU1OEZEQSAvKiBUcmVlU2NvcGUuY3Bw
ICovOyB9OwpAQCAtMzI1MCwxMCArMzI0OCw2IEBACiAJCTkzMDJCMEJEMEQ3OUY4MjkwMEM3RUU4
MyAvKiBQYWdlR3JvdXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTMwMkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgKi87IH07
CiAJCTkzMDJCMEJGMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4
MyAvKiBQYWdlR3JvdXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5MzA1QjI0RDA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDVCMjRDMDk4RjFCNkIwMEMy
ODg1NSAvKiBUaW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTkzMDcwNUQ4MDlFMEM5QjcwMEIxN0ZFNCAvKiBKU0NvdW50ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwNzA1RDcwOUUwQzlC
NzAwQjE3RkU0IC8qIEpTQ291bnRlci5jcHAgKi87IH07Ci0JCTkzMDcwNURBMDlFMEM5QkYwMEIx
N0ZFNCAvKiBKU0NvdW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzMDcwNUQ5MDlFMEM5QkYwMEIxN0ZFNCAvKiBKU0NvdW50ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5MzA3MDVFOTA5RTBD
OUYwMDBCMTdGRTQgLyogSlNDU1NQcmltaXRpdmVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA3MDVFODA5RTBDOUYwMDBCMTdGRTQgLyog
SlNDU1NQcmltaXRpdmVWYWx1ZS5jcHAgKi87IH07Ci0JCTkzMDcwNUVCMDlFMEM5RjYwMEIxN0ZF
NCAvKiBKU0NTU1ByaW1pdGl2ZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzA3MDVFQTA5RTBDOUY2MDBCMTdGRTQgLyogSlNDU1NQcmltaXRp
dmVWYWx1ZS5oICovOyB9OwogCQk5MzA3RjFENzBBRjJENTkwMDBEQkEzMUEgLyogSGl0VGVzdFJl
c3VsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzA3RjFENTBBRjJENTkwMDBEQkEzMUEgLyogSGl0VGVzdFJlc3VsdC5jcHAgKi87IH07CiAJCTkz
MDdGMUQ4MEFGMkQ1OTAwMERCQTMxQSAvKiBIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA3RjFENjBBRjJENTkwMDBEQkEzMUEg
LyogSGl0VGVzdFJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzMDg0MTM0MUNEREIxNTUwMEIwOTU4QyAvKiBKU0RPTUNvbnZlcnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDg0MTMzMUNE
REIxNTUwMEIwOTU4QyAvKiBKU0RPTUNvbnZlcnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzU0Myw2ICszNTM3LDI3IEBACiAJCTk0NkQzNzRB
MUQ2RDA2MjgwMDc3MDg0RiAvKiBDU1NNYXJrdXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0NkQzNzQ4MUQ2RDA2MEMwMDc3MDg0RiAvKiBDU1NNYXJr
dXAuaCAqLzsgfTsKIAkJOTQ2RDM3NEQxRDZEMDhBNjAwNzcwODRGIC8qIENTU1BhcnNlclRva2Vu
UmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTQ2RDM3NEIxRDZEMDdGNTAwNzcwODRGIC8qIENTU1BhcnNlclRva2VuUmFuZ2UuY3BwICovOyB9
OwogCQk5NDZEMzc0RTFENkQwOEFBMDA3NzA4NEYgLyogQ1NTUGFyc2VyVG9rZW5SYW5nZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTQ2RDM3NEMxRDZE
MDdGNTAwNzcwODRGIC8qIENTU1BhcnNlclRva2VuUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NDc5NDkyNDFFMDMwOEE0MDAwMThEODUg
LyogRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MjIxRTAyRjkwQjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRD
U1NPTVZhbHVlLmNwcCAqLzsgfTsKKwkJOTQ3OTQ5MjUxRTAzMDhBRjAwMDE4RDg1IC8qIERlcHJl
Y2F0ZWRDU1NPTVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NDc5NDkyMzFFMDJGOTBCMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NDc5
NDkyRTFFMDQ1N0JBMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0Nzk0OTJEMUUwNDU3
OEQwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwICovOyB9OworCQk5NDc5
NDkyRjFFMDQ1OUVCMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01Db3VudGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0Nzk0OTE4MUUwMkY2
REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuY3BwICovOyB9OworCQk5NDc5
NDkzMDFFMDQ1OUVFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkx
QTFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAg
Ki87IH07CisJCTk0Nzk0OTMxMUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTUNv
dW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0
Nzk0OTE5MUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NDc5NDkzMjFF
MDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MUIxRTAyRjZE
RTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NDc5NDkzMzFFMDQ1OUZB
MDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01SZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0Nzk0OTFDMUUwMkY2REUwMDAxOEQ4NSAvKiBK
U0RlcHJlY2F0ZWRDU1NPTVJlY3QuY3BwICovOyB9OworCQk5NDc5NDkzNDFFMDQ1OUZBMDAwMThE
ODUgLyogSlNEZXByZWNhdGVkQ1NTT01SZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkxRDFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNh
dGVkQ1NTT01SZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJOTQ3OTQ5MzUxRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUkdC
Q29sb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTQ3OTQ5MUUxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuY3Bw
ICovOyB9OworCQk5NDc5NDkzNjFFMDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01S
R0JDb2xvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTQ3OTQ5MUYxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NDc5NDkz
NzFFMDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkyMDFFMDJGNkRFMDAw
MThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAgKi87IH07CisJCTk0Nzk0OTM4MUUw
NDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkyMTFFMDJGNkRFMDAwMThEODUg
LyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTk0Nzk0OTM5MUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJl
Y2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NDc5NDkyQjFFMDMzQjI4MDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NT
T01WYWx1ZUxpc3QuY3BwICovOyB9OworCQk5NDc5NDkzQTFFMDQ1OUZBMDAwMThEODUgLyogSlNE
ZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk0Nzk0OTJDMUUwMzNCMjgwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRD
U1NPTVZhbHVlTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTk0Nzk0OTNDMUUwNDVDRjMwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NDc5NDkzQjFFMDQ1Q0UxMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUHJpbWl0aXZl
VmFsdWUuY3BwICovOyB9OworCQk5NDc5NDkzRDFFMDQ2M0I2MDAwMThEODUgLyogRGVwcmVjYXRl
ZENTU09NVmFsdWVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NDc5NDkyNzFFMDMxMzIwMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWVM
aXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
OTQ3OTQ5M0UxRTA0NjNCRTAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkyOTFFMDMy
RDU4MDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NDc5NDkzRjFFMDQ2M0M2MDAwMThE
ODUgLyogRGVwcmVjYXRlZENTU09NUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MjgxRTAzMkFFOTAwMDE4RDg1IC8qIERlcHJlY2F0ZWRD
U1NPTVJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk5NDc5NDk0MDFFMDQ2M0NFMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUHJpbWl0aXZl
VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0
Nzk0OTI2MUUwMzEzMjAwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk0Nzk0
OTQxMUUwNDYzRDQwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01Db3VudGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkyQTFFMDMyRURCMDAw
MThEODUgLyogRGVwcmVjYXRlZENTU09NQ291bnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk0OTNCNkJFMUQ3NEI0MTIwMDg4RTc4MCAvKiBN
ZWRpYVF1ZXJ5QmxvY2tXYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk0OTNCNkI2MUQ3NEIzOTUwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5Qmxv
Y2tXYXRjaGVyLmNwcCAqLzsgfTsKIAkJOTQ5M0I2QkYxRDc0QjQxMjAwODhFNzgwIC8qIE1lZGlh
UXVlcnlCbG9ja1dhdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk0OTNCNkI3MUQ3NEIzOTUwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5QmxvY2tXYXRj
aGVyLmggKi87IH07CiAJCTk0OTNCNkMwMUQ3NEI0MTIwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5UGFy
c2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0
OTNCNkI4MUQ3NEIzOTUwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5UGFyc2VyLmNwcCAqLzsgfTsKQEAg
LTQzNTYsOCArNDM3MSw2IEBACiAJCUE4Q0ZGN0FCMEExNTY5NzgwMDBBNDIzNCAvKiBIVE1MQW5j
aG9yRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThDRkY3QTEwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxBbmNob3JFbGVtZW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQThEMDVGQTcwQTIz
QjMwMTAwNUU3MjAzIC8qIEpTQ1NTUnVsZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThEMDVGQTUwQTIzQjMwMTAwNUU3MjAzIC8qIEpTQ1NT
UnVsZUxpc3QuY3BwICovOyB9OwogCQlBOEQwNUZBODBBMjNCMzAxMDA1RTcyMDMgLyogSlNDU1NS
dWxlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThEMDVGQTYwQTIzQjMwMTAwNUU3MjAzIC8qIEpTQ1NTUnVsZUxpc3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBOEQwNUZBQjBBMjNCMzBGMDA1
RTcyMDMgLyogSlNDU1NWYWx1ZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThEMDVGQTkwQTIzQjMwRjAwNUU3MjAzIC8qIEpTQ1NTVmFsdWVM
aXN0LmNwcCAqLzsgfTsKLQkJQThEMDVGQUMwQTIzQjMwRjAwNUU3MjAzIC8qIEpTQ1NTVmFsdWVM
aXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEQw
NUZBQTBBMjNCMzBGMDA1RTcyMDMgLyogSlNDU1NWYWx1ZUxpc3QuaCAqLzsgfTsKIAkJQThEMDY0
RkIwQTIzQzBDQzAwNUU3MjAzIC8qIEpTSFRNTEZvcm1FbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RDA2NEY5MEEyM0MwQ0MwMDVFNzIw
MyAvKiBKU0hUTUxGb3JtRWxlbWVudC5jcHAgKi87IH07CiAJCUE4RDA2NEZDMEEyM0MwQ0MwMDVF
NzIwMyAvKiBKU0hUTUxGb3JtRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThEMDY0RkEwQTIzQzBDQzAwNUU3MjAzIC8qIEpTSFRNTEZvcm1F
bGVtZW50LmggKi87IH07CiAJCUE4RDA2NUFFMEEyNDQ2Q0QwMDVFNzIwMyAvKiBKU0hUTUxGb3Jt
RWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEQwNjVBRDBBMjQ0NkNEMDA1RTcyMDMgLyogSlNIVE1MRm9ybUVsZW1lbnRDdXN0
b20uY3BwICovOyB9OwpAQCAtNTM0NSw4ICs1MzU4LDYgQEAKIAkJQkM2RDZFMjYwOUFGOTQzNTAw
RjU5NzU5IC8qIFNjcm9sbFZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDNkQ2RTI1MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxWaWV3LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3NERBMzcx
MDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNvbG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc0REEzNTEwMTNGM0Y3MDA3OTg3QUQgLyogUkdCQ29sb3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzc0
REEzODEwMTNGM0Y3MDA3OTg3QUQgLyogUkdCQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NERBMzYxMDEzRjNGNzAwNzk4N0FEIC8qIFJH
QkNvbG9yLmNwcCAqLzsgfTsKLQkJQkM3NERBNDgxMDEzRjQ2ODAwNzk4N0FEIC8qIEpTUkdCQ29s
b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3
NERBNDYxMDEzRjQ2ODAwNzk4N0FEIC8qIEpTUkdCQ29sb3IuY3BwICovOyB9OwotCQlCQzc0REE0
OTEwMTNGNDY4MDA3OTg3QUQgLyogSlNSR0JDb2xvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NERBNDcxMDEzRjQ2ODAwNzk4N0FEIC8qIEpTUkdC
Q29sb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlCQzc2QUMxMzBERDdBRDVDMDA0MTVGMzQgLyogUGFyc2VyVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc2QUMxMTBERDdBRDVDMDA0
MTVGMzQgLyogUGFyc2VyVXRpbGl0aWVzLmggKi87IH07CiAJCUJDNzcyQjNDMEM0RUE5MUUwMDgz
Mjg1RiAvKiBDU1NIZWxwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNzcyQjM2MEM0RUE5MUUwMDgzMjg1RiAvKiBDU1NIZWxwZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzc3MkM0NjBDNEVC
MkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzJDNDQwQzRFQjJDNjAwODMyODVGIC8qIFhNTEh0
dHBSZXF1ZXN0LmNwcCAqLzsgfTsKQEAgLTU1NjUsOCArNTU3Niw2IEBACiAJCUJDRjdFNDkxMTM3
Q0Q3QzcwMDFEREFFNyAvKiBBZGp1c3RWaWV3U2l6ZU9yTm90LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y0OENFNjEzNzBEMTE0MDA0RTg3RDYgLyog
QWRqdXN0Vmlld1NpemVPck5vdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUJDRkE5MzA4MTAzMzMxOTMwMDdCMjVEMSAvKiBSZW5kZXJPdmVyZmxv
dy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGQTkz
MDcxMDMzMzE5MzAwN0IyNUQxIC8qIFJlbmRlck92ZXJmbG93LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNGQjJFNUUwOTc5RTQ2NDAwQkE3MDNE
IC8qIENhY2hlZFJlc291cmNlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0ZCMkU1RDA5NzlFNDY0MDBCQTcwM0QgLyogQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQlCQ0ZFMkYxMTBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkUyRjBGMEMxQjU4MzcwMDIwMjM1
RiAvKiBKU1JlY3QuY3BwICovOyB9OwotCQlCQ0ZFMkYxMjBDMUI1ODM4MDAyMDIzNUYgLyogSlNS
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ZF
MkYxMDBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNGRjY0OTEwRUFEMTVDMjAwQzFENkY3IC8qIExl
bmd0aEJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNGRjY0OEYwRUFEMTVDMjAwQzFENkY3IC8qIExlbmd0aEJveC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDRkY2NDkyMEVBRDE1QzIwMEMxRDZG
NyAvKiBMZW5ndGhTaXplLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0ZGNjQ5MDBFQUQxNUMyMDBDMUQ2RjcgLyogTGVuZ3RoU2l6ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJFMTZDNTkyMTdDRkUx
NzIwMDg1MkMwNCAvKiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJFMTZDNThFMTdDRkUxNzIwMDg1MkMwNCAv
KiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcCAqLzsgfTsKQEAgLTc2NDksOSArNzY1OCw3IEBA
CiAJCTE0QTk4RTA1MTM2Mzg2QTIwMEM5RkVEMiAvKiBCbG9iLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBCbG9iLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRCREY1OUEx
MzY1Mzk5MTAwMTQ4MzkzIC8qIEZpbGVSZWFkZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEZpbGVSZWFkZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEM5QTVFOTBC
M0QxMDVGMDA1QTAyMzIgLyogU2V0dGluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNldHRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MTRDRjc4NzEwOUY1ODdDQTAwRUIzNjY1IC8qIENTU1ZhbHVlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQ1NTVmFsdWUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNENG
NzhBMzA5RjU4Q0JGMDBFQjM2NjUgLyogSlNDU1NWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTE0Q0Y3OEE1MDlGNThDRDgwMEVCMzY2NSAvKiBKU0NTU1ZhbHVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NTU1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTE0Q0Y3ODcxMDlGNTg3Q0EwMEVCMzY2NSAvKiBEZXByZWNhdGVkQ1NT
T01WYWx1ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERlcHJlY2F0ZWRDU1NPTVZhbHVl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRDRjdBNzAwOUY1Q0Y5QTAwRUIz
NjY1IC8qIENTU1J1bGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NSdWxlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRDRjdCMzEwOUY2RUNENzAwRUIzNjY1IC8q
IEpTQ1NTUnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlND
U1NSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRDRjdCMzIwOUY2RUNE
NzAwRUIzNjY1IC8qIEpTQ1NTUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNDU1NSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDczNCw3ICsx
MDc0MSw3IEBACiAJCTg1NzREMUY2MEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR1BvaW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgcGF0aCA9IEpTU1ZHUG9pbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU3NEQxRjcwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHUmVj
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdSZWN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU3NEQxRjgwQURFNjEyMjAwNENCQTEx
IC8qIEpTU1ZHUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmg7IHBhdGggPSBKU1NW
R1JlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU4QzM4RUYwQUE4RkREMTAw
QjE4N0E0IC8qIFJHQkNvbG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUkdCQ29sb3Iu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NThDMzhFRjBBQThGREQxMDBCMTg3
QTQgLyogRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg1OEMzOTEwMEFBOEZGMDAwMEIxODdBNCAvKiBDU1NTdHlsZVNoZWV0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gQ1NTU3R5bGVTaGVldC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTg1OTEyODc5MEFCMjIyRUMwMDIwMjI2NSAvKiBIVE1MRW1iZWRFbGVtZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTEVtYmVkRWxlbWVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1QUNBOUY5MEE5QjYzMTAwMDY3MUU5MCAvKiBOYW1lZE5v
ZGVNYXAuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYW1lZE5vZGVNYXAuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4MjcsMTIgKzEwODM0LDggQEAKIAkJOTMwMkIw
QkMwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQYWdlR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzAyQjBCRTBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzA1QjI0QzA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOTMwNzA1OTAwOUUwQzc1ODAwQjE3RkU0IC8qIENTU1ByaW1pdGl2ZVZhbHVlLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDU1NQcmltaXRpdmVWYWx1ZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTkzMDcwNUM3MDlFMEM5NUYwMEIxN0ZFNCAvKiBDb3VudGVyLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDb3VudGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTMwNzA1RDcwOUUwQzlCNzAwQjE3RkU0IC8qIEpTQ291bnRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NvdW50ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk5MzA3MDVEOTA5RTBDOUJGMDBCMTdGRTQgLyogSlNDb3VudGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ291bnRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk5MzA3MDVFODA5RTBDOUYwMDBCMTdGRTQgLyogSlNDU1NQ
cmltaXRpdmVWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTMw
NzA1RUEwOUUwQzlGNjAwQjE3RkU0IC8qIEpTQ1NTUHJpbWl0aXZlVmFsdWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NQcmltaXRpdmVWYWx1ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MzA3MDU5MDA5RTBDNzU4MDBCMTdGRTQgLyogRGVwcmVjYXRl
ZENTU09NUHJpbWl0aXZlVmFsdWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTMwNzA1QzcwOUUwQzk1RjAwQjE3RkU0IC8qIERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA3MDYxMzA5RTBDQTgyMDBCMTdGRTQgLyogRGVyaXZl
ZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVU
eXBlID0gc291cmNlY29kZS5tYWtlOyBmaWxlRW5jb2RpbmcgPSA0OyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMubWFrZTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdXNlc1RhYnMgPSAxOyB9OwogCQk5
MzA3RjFENTBBRjJENTkwMDBEQkEzMUEgLyogSGl0VGVzdFJlc3VsdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzMDdGMUQ2MEFGMkQ1OTAwMERCQTMxQSAvKiBIaXRUZXN0UmVz
dWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaXRUZXN0UmVzdWx0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTEyNCw2ICsxMTEyNywyNyBAQAogCQk5
NDZEMzc0ODFENkQwNjBDMDA3NzA4NEYgLyogQ1NTTWFya3VwLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENTU01hcmt1cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NDZEMzc0QjFENkQwN0Y1MDA3NzA4NEYgLyogQ1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDU1NQYXJzZXJUb2tlblJhbmdlLmNw
cDsgcGF0aCA9IHBhcnNlci9DU1NQYXJzZXJUb2tlblJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTQ2RDM3NEMxRDZEMDdGNTAwNzcwODRGIC8qIENTU1BhcnNlclRva2Vu
UmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ1NTUGFyc2VyVG9rZW5S
YW5nZS5oOyBwYXRoID0gcGFyc2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MTgxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRl
ZENTU09NQ291bnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NDc5NDkxOTFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01Db3VudGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGVwcmVjYXRlZENTU09NQ291bnRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkxQTFFMDJGNkRFMDAwMThE
ODUgLyogSlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MUIxRTAyRjZERTAwMDE4RDg1
IC8qIEpTRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkxQzFFMDJGNkRFMDAwMThEODUgLyogSlNEZXBy
ZWNhdGVkQ1NTT01SZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTRGVwcmVjYXRlZENTU09NUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk0Nzk0OTFEMUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJlY3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEZXByZWNhdGVkQ1NTT01SZWN0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk0Nzk0OTFFMUUwMkY2REUwMDAxOEQ4NSAvKiBK
U0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5NDc5NDkxRjFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NT
T01SR0JDb2xvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RlcHJlY2F0
ZWRDU1NPTVJHQkNvbG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk0Nzk0OTIw
MUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkyMTFFMDJGNkRFMDAwMThEODUgLyog
SlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk0Nzk0OTIyMUUwMkY5MEIwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXByZWNhdGVkQ1NTT01WYWx1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk0Nzk0OTIzMUUwMkY5MEIwMDAxOEQ4
NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEZXByZWNhdGVkQ1NTT01WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NDc5NDkyNjFFMDMxMzIwMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MjcxRTAz
MTMyMDAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MjgxRTAzMkFFOTAwMDE4RDg1IC8qIERlcHJlY2F0
ZWRDU1NPTVJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVwcmVjYXRl
ZENTU09NUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkyOTFFMDMy
RDU4MDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MkExRTAzMkVEQjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRD
U1NPTUNvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVwcmVjYXRl
ZENTU09NQ291bnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkyQjFF
MDMzQjI4MDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkyQzFFMDMzQjI4MDAwMThE
ODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MkQxRTA0NTc4RDAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NP
TVZhbHVlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXBy
ZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NDc5NDkzQjFFMDQ1Q0UxMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NDkzQjZC
NjFENzRCMzk1MDA4OEU3ODAgLyogTWVkaWFRdWVyeUJsb2NrV2F0Y2hlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZWRpYVF1ZXJ5QmxvY2tXYXRjaGVyLmNwcDsg
cGF0aCA9IHBhcnNlci9NZWRpYVF1ZXJ5QmxvY2tXYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTQ5M0I2QjcxRDc0QjM5NTAwODhFNzgwIC8qIE1lZGlhUXVlcnlCbG9j
a1dhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTWVkaWFRdWVyeUJs
b2NrV2F0Y2hlci5oOyBwYXRoID0gcGFyc2VyL01lZGlhUXVlcnlCbG9ja1dhdGNoZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTQ5M0I2QjgxRDc0QjM5NTAwODhFNzgwIC8qIE1l
ZGlhUXVlcnlQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TWVkaWFRdWVyeVBhcnNlci5jcHA7IHBhdGggPSBwYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTgyOSw3ICsxMTg1Myw3IEBACiAJCUE4
MEU2RTBEMEExOTkxMUMwMDdGQjhDNSAvKiBDU1NTdHlsZURlY2xhcmF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NTdHlsZURlY2xhcmF0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU3MzQ4MEExOTlDNzcwMDdGQjhDNSAvKiBDU1NTZWxl
Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTU2VsZWN0
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNzM0QjBBMTk5Qzc3MDA3
RkI4QzUgLyogQ1NTU2VsZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENTU1NlbGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MEU3OTk2MEEx
OUJEMjEwMDdGQjhDNSAvKiBSZWN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVjdC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3OTk2MEExOUJEMjEwMDdGQjhD
NSAvKiBEZXByZWNhdGVkQ1NTT01SZWN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGVw
cmVjYXRlZENTU09NUmVjdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU3
OUZDMEExOUMzMDcwMDdGQjhDNSAvKiBIVE1MTWV0YUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBIVE1MTWV0YUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBODBFN0ExNTBBMTlDM0Q2MDA3RkI4QzUgLyogSlNIVE1MTWV0YUVsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTE1ldGFFbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTdBMTYwQTE5QzNENjAwN0ZCOEM1
IC8qIEpTSFRNTE1ldGFFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0hUTUxNZXRhRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIw
NTcsMTMgKzEyMDgxLDExIEBACiAJCUE4Q0ZGN0ExMEExNTY5NzgwMDBBNDIzNCAvKiBIVE1MQW5j
aG9yRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTEFuY2hv
ckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThEMDVGQTUwQTIzQjMw
MTAwNUU3MjAzIC8qIEpTQ1NTUnVsZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQ1NTUnVsZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBOEQwNUZBNjBBMjNCMzAxMDA1RTcyMDMgLyogSlNDU1NSdWxlTGlzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NSdWxlTGlzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBOEQwNUZBOTBBMjNCMzBGMDA1RTcyMDMgLyogSlNDU1NWYWx1ZUxp
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTVmFsdWVM
aXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThEMDVGQUEwQTIzQjMwRjAw
NUU3MjAzIC8qIEpTQ1NTVmFsdWVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0NTU1ZhbHVlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEQw
NjRFRjBBMjNCRkVBMDA1RTcyMDMgLyogSFRNTEZvcm1FbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gSFRNTEZvcm1FbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQThEMDY0RjkwQTIzQzBDQzAwNUU3MjAzIC8qIEpTSFRNTEZvcm1FbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxGb3JtRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RDA2NEZBMEEyM0MwQ0MwMDVFNzIw
MyAvKiBKU0hUTUxGb3JtRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNIVE1MRm9ybUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThE
MDY1MUIwQTIzQzFGRTAwNUU3MjAzIC8qIENTU1J1bGVMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQ1NTUnVsZUxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
OEQwNjUxQzBBMjNDMUZFMDA1RTcyMDMgLyogQ1NTVmFsdWVMaXN0LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQ1NTVmFsdWVMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQThEMDY1MUMwQTIzQzFGRTAwNUU3MjAzIC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RDA2NUFEMEEyNDQ2Q0QwMDVFNzIwMyAv
KiBKU0hUTUxGb3JtRWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0hUTUxGb3JtRWxlbWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4RDA2QjM3MEEyNjVEQ0QwMDVFNzIwMyAvKiBIVE1MTmFtZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxOYW1lcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBOEQwNkIzODBBMjY1RENEMDA1RTcyMDMgLyogSFRNTE5hbWVzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MTmFtZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTMyMjIsOCArMTMyNDQsNiBAQAogCQlCQzZE
NkUyNTA5QUY5NDM1MDBGNTk3NTkgLyogU2Nyb2xsVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2Nyb2xsVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzc0REEzNTEwMTNGM0Y3MDA3OTg3QUQgLyogUkdCQ29sb3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUkdCQ29sb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkM3NERBMzYxMDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNvbG9yLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJHQkNvbG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkM3NERBNDYxMDEzRjQ2ODAwNzk4N0FEIC8qIEpTUkdCQ29sb3IuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSR0JDb2xvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDNzREQTQ3MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JH
QkNvbG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUkdCQ29sb3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3NkFDMTEwREQ3QUQ1QzAwNDE1RjM0IC8q
IFBhcnNlclV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXJz
ZXJVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3NzJCMzYwQzRF
QTkxRTAwODMyODVGIC8qIENTU0hlbHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ1NTSGVscGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzcyQzQ0
MEM0RUIyQzYwMDgzMjg1RiAvKiBYTUxIdHRwUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gWE1MSHR0cFJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTM0NzEsOCArMTM0OTEsNiBAQAogCQlCQ0ZCMkU1RDA5NzlFNDY0MDBC
QTcwM0QgLyogQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENhY2hlZFJlc291cmNlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDRkI0NUYzMTdEOEUzOTIwMDQ0NDQ0NiAvKiBSZW5kZXJCbG9ja0Zsb3cuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVuZGVyQmxvY2tGbG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDRkI0NUY0MTdEOEU0OTQwMDQ0NDQ0NiAvKiBSZW5kZXJCbG9ja0Zsb3cuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyQmxvY2tGbG93LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNGRTJGMEYwQzFCNTgzNzAwMjAyMzVGIC8qIEpT
UmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZWN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNGRTJGMTAwQzFCNTgzNzAwMjAyMzVG
IC8qIEpTUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZWN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRkY2NDhGMEVBRDE1QzIwMEMxRDZGNyAv
KiBMZW5ndGhCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVuZ3RoQm94
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRkY2NDkwMEVBRDE1QzIwMEMxRDZG
NyAvKiBMZW5ndGhTaXplLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlbmd0
aFNpemUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkUxNkM1OEUxN0NGRTE3MjAw
ODUyQzA0IC8qIEluYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMDM4Miw4ICsyMDQwMCw2IEBACiAJCQkJQkNDMDY1ODQwRjND
RTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdC5oICovLAogCQkJCUJDQzA2NTg1MEYzQ0UyQTcw
MENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCAqLywKIAkJCQlCQ0MwNjU4NjBGM0NFMkE3
MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5oICovLAotCQkJCTkzMDcwNUQ3MDlFMEM5Qjcw
MEIxN0ZFNCAvKiBKU0NvdW50ZXIuY3BwICovLAotCQkJCTkzMDcwNUQ5MDlFMEM5QkYwMEIxN0ZF
NCAvKiBKU0NvdW50ZXIuaCAqLywKIAkJCQlCQzQ2QzFGMjBDMEREQzhGMDAyMENGQzMgLyogSlND
U1NGb250RmFjZVJ1bGUuY3BwICovLAogCQkJCUJDNDZDMUYzMEMwRERDOEYwMDIwQ0ZDMyAvKiBK
U0NTU0ZvbnRGYWNlUnVsZS5oICovLAogCQkJCUJDNDZDMUY0MEMwRERDOEYwMDIwQ0ZDMyAvKiBK
U0NTU0ltcG9ydFJ1bGUuY3BwICovLApAQCAtMjAzOTgsOCArMjA0MTQsNiBAQAogCQkJCTk0RTgz
OTU0MURGQjJCQTYwMDdCQzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1bGUuaCAqLywKIAkJCQlCQzQ2
QzFGODBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NQYWdlUnVsZS5jcHAgKi8sCiAJCQkJQkM0NkMx
RjkwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTUGFnZVJ1bGUuaCAqLywKLQkJCQk5MzA3MDVFODA5
RTBDOUYwMDBCMTdGRTQgLyogSlNDU1NQcmltaXRpdmVWYWx1ZS5jcHAgKi8sCi0JCQkJOTMwNzA1
RUEwOUUwQzlGNjAwQjE3RkU0IC8qIEpTQ1NTUHJpbWl0aXZlVmFsdWUuaCAqLywKIAkJCQkxNENG
N0IzMTA5RjZFQ0Q3MDBFQjM2NjUgLyogSlNDU1NSdWxlLmNwcCAqLywKIAkJCQkxNENGN0IzMjA5
RjZFQ0Q3MDBFQjM2NjUgLyogSlNDU1NSdWxlLmggKi8sCiAJCQkJQThEMDVGQTUwQTIzQjMwMTAw
NUU3MjAzIC8qIEpTQ1NTUnVsZUxpc3QuY3BwICovLApAQCAtMjA0MTIsMTAgKzIwNDI2LDE4IEBA
CiAJCQkJQkNDNUJERkYwQzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5bGVTaGVldC5oICovLAog
CQkJCUZENjc3NzM2MTk1Q0FCN0QwMDcyRTBEMyAvKiBKU0NTU1N1cHBvcnRzUnVsZS5jcHAgKi8s
CiAJCQkJRkM4NDgwMkUxNjdBQjQ0NDAwOENEMTAwIC8qIEpTQ1NTU3VwcG9ydHNSdWxlLmggKi8s
Ci0JCQkJMTRDRjc4QTMwOUY1OENCRjAwRUIzNjY1IC8qIEpTQ1NTVmFsdWUuY3BwICovLAotCQkJ
CTE0Q0Y3OEE1MDlGNThDRDgwMEVCMzY2NSAvKiBKU0NTU1ZhbHVlLmggKi8sCi0JCQkJQThEMDVG
QTkwQTIzQjMwRjAwNUU3MjAzIC8qIEpTQ1NTVmFsdWVMaXN0LmNwcCAqLywKLQkJCQlBOEQwNUZB
QTBBMjNCMzBGMDA1RTcyMDMgLyogSlNDU1NWYWx1ZUxpc3QuaCAqLywKKwkJCQk5NDc5NDkxODFF
MDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01Db3VudGVyLmNwcCAqLywKKwkJCQk5
NDc5NDkxOTFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01Db3VudGVyLmggKi8s
CisJCQkJOTQ3OTQ5MUExRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUHJpbWl0
aXZlVmFsdWUuY3BwICovLAorCQkJCTk0Nzk0OTFCMUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmggKi8sCisJCQkJOTQ3OTQ5MUMxRTAyRjZERTAwMDE4
RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUmVjdC5jcHAgKi8sCisJCQkJOTQ3OTQ5MUQxRTAyRjZE
RTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUmVjdC5oICovLAorCQkJCTk0Nzk0OTFFMUUw
MkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmNwcCAqLywKKwkJCQk5
NDc5NDkxRjFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oICov
LAorCQkJCTk0Nzk0OTIwMUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVl
LmNwcCAqLywKKwkJCQk5NDc5NDkyMTFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NT
T01WYWx1ZS5oICovLAorCQkJCTk0Nzk0OTJCMUUwMzNCMjgwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0
ZWRDU1NPTVZhbHVlTGlzdC5jcHAgKi8sCisJCQkJOTQ3OTQ5MkMxRTAzM0IyODAwMDE4RDg1IC8q
IEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmggKi8sCiAJCQkJRkQ2Nzc3MzcxOTVDQUI3RDAw
NzJFMEQzIC8qIEpTRE9NQ1NTTmFtZXNwYWNlLmNwcCAqLywKIAkJCQlGQzlFMEU0QjE2NDE5QzFF
MDAzOTJCRTMgLyogSlNET01DU1NOYW1lc3BhY2UuaCAqLywKIAkJCQlCQzNDMzlCNDBDMEQzRDhE
MDA1RjREN0EgLyogSlNNZWRpYUxpc3QuY3BwICovLApAQCAtMjA0MjQsMTAgKzIwNDQ2LDYgQEAK
IAkJCQlEM0E5NEE0MzEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oICovLAog
CQkJCTdDNTM0M0ZBMTdCNzRCNjMwMDQyMzJGMCAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
Y3BwICovLAogCQkJCTdDNTM0M0ZCMTdCNzRCNjMwMDQyMzJGMCAvKiBKU01lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuaCAqLywKLQkJCQlCQ0ZFMkYwRjBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmNw
cCAqLywKLQkJCQlCQ0ZFMkYxMDBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmggKi8sCi0JCQkJ
QkM3NERBNDYxMDEzRjQ2ODAwNzk4N0FEIC8qIEpTUkdCQ29sb3IuY3BwICovLAotCQkJCUJDNzRE
QTQ3MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9yLmggKi8sCiAJCQkJMEZGNTAyNjcxMDJC
QTk0MzAwNjZGMzlBIC8qIEpTU3R5bGVNZWRpYS5jcHAgKi8sCiAJCQkJMEZGNTAyNjgxMDJCQTk0
MzAwNjZGMzlBIC8qIEpTU3R5bGVNZWRpYS5oICovLAogCQkJCUJDRTAxMzk4MEMwQkVGMTgwMDQz
ODYwQSAvKiBKU1N0eWxlU2hlZXQuY3BwICovLApAQCAtMjMzMzcsNyArMjMzNTUsNiBAQAogCQkJ
CUZCRDZBRjg0MTVFRjIxRDQwMDhCNzExMCAvKiBCYXNpY1NoYXBlRnVuY3Rpb25zLmNwcCAqLywK
IAkJCQlGQkQ2QUY4NTE1RUYyMUQ0MDA4QjcxMTAgLyogQmFzaWNTaGFwZUZ1bmN0aW9ucy5oICov
LAogCQkJCUE4MEU2Q0RBMEExOTg5Q0EwMDdGQjhDNSAvKiBDb3VudGVyLmggKi8sCi0JCQkJOTMw
NzA1QzcwOUUwQzk1RjAwQjE3RkU0IC8qIENvdW50ZXIuaWRsICovLAogCQkJCTMxQkM3NDJCMUFB
RkY0NUMwMDZCNDM0MCAvKiBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwICovLAog
CQkJCTMxQkM3NDJDMUFBRkY0NUMwMDZCNDM0MCAvKiBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xs
VmFsdWUuaCAqLywKIAkJCQlDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0
aW9WYWx1ZS5jcHAgKi8sCkBAIC0yMzQ0Miw3ICsyMzQ1OSw2IEBACiAJCQkJOTQxODI3OEQxRDhD
QUU5NTAwNDkyNzY0IC8qIENTU1BlbmRpbmdTdWJzdGl0dXRpb25WYWx1ZS5oICovLAogCQkJCUE4
MEU2Q0RCMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcmltaXRpdmVWYWx1ZS5jcHAgKi8sCiAJCQkJ
QTgwRTZDQkMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ByaW1pdGl2ZVZhbHVlLmggKi8sCi0JCQkJ
OTMwNzA1OTAwOUUwQzc1ODAwQjE3RkU0IC8qIENTU1ByaW1pdGl2ZVZhbHVlLmlkbCAqLywKIAkJ
CQlFMUVEOEFDMjBDQzQ5QkUwMDBCRkM1NTcgLyogQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
ICovLAogCQkJCUE4MEU2Q0NEMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcm9wZXJ0eS5jcHAgKi8s
CiAJCQkJQTgwRTZDRDUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Byb3BlcnR5LmggKi8sCkBAIC0y
MzQ5MywxMSArMjM1MDksOSBAQAogCQkJCUJDN0Q4RkVFMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NV
bnNldFZhbHVlLmggKi8sCiAJCQkJQUQwM0FBRjgxNDY4NDUzOTAwQTM5QjVCIC8qIENTU1ZhbHVl
LmNwcCAqLywKIAkJCQlBODBFNkNDNDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWUuaCAqLywK
LQkJCQkxNENGNzg3MTA5RjU4N0NBMDBFQjM2NjUgLyogQ1NTVmFsdWUuaWRsICovLAogCQkJCUJD
RUE0NzhDMDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NWYWx1ZUtleXdvcmRzLmluICovLAogCQkJCUE4
MEU2Q0JBMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZUxpc3QuY3BwICovLAogCQkJCUE4MEU2
Q0JGMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZUxpc3QuaCAqLywKLQkJCQlBOEQwNjUxQzBB
MjNDMUZFMDA1RTcyMDMgLyogQ1NTVmFsdWVMaXN0LmlkbCAqLywKIAkJCQlFNDlCREEwQTEzMUZE
M0U1MDAzQzU2RjAgLyogQ1NTVmFsdWVQb29sLmNwcCAqLywKIAkJCQlFNDlCRDlGOTEzMUZEMkVE
MDAzQzU2RjAgLyogQ1NTVmFsdWVQb29sLmggKi8sCiAJCQkJOTQ0NENCREUxRDg4NjE1ODAwNzNB
MDc0IC8qIENTU1ZhcmlhYmxlRGF0YS5jcHAgKi8sCkBAIC0yMzUwNSw2ICsyMzUxOSwyMSBAQAog
CQkJCTk0NDRDQkRDMUQ4ODYxNTgwMDczQTA3NCAvKiBDU1NWYXJpYWJsZVJlZmVyZW5jZVZhbHVl
LmNwcCAqLywKIAkJCQk5NDQ0Q0JEQjFEODg2MTU4MDA3M0EwNzQgLyogQ1NTVmFyaWFibGVSZWZl
cmVuY2VWYWx1ZS5oICovLAogCQkJCUE4MEU2Q0UxMEExOTg5Q0EwMDdGQjhDNSAvKiBEYXNoYm9h
cmRSZWdpb24uaCAqLywKKwkJCQk5NDc5NDkyQTFFMDMyRURCMDAwMThEODUgLyogRGVwcmVjYXRl
ZENTU09NQ291bnRlci5oICovLAorCQkJCTkzMDcwNUM3MDlFMEM5NUYwMEIxN0ZFNCAvKiBEZXBy
ZWNhdGVkQ1NTT01Db3VudGVyLmlkbCAqLywKKwkJCQk5NDc5NDkzQjFFMDQ1Q0UxMDAwMThEODUg
LyogRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwICovLAorCQkJCTk0Nzk0OTI2MUUw
MzEzMjAwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oICovLAorCQkJ
CTkzMDcwNTkwMDlFMEM3NTgwMEIxN0ZFNCAvKiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1
ZS5pZGwgKi8sCisJCQkJOTQ3OTQ5MjgxRTAzMkFFOTAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NP
TVJlY3QuaCAqLywKKwkJCQlBODBFNzk5NjBBMTlCRDIxMDA3RkI4QzUgLyogRGVwcmVjYXRlZENT
U09NUmVjdC5pZGwgKi8sCisJCQkJOTQ3OTQ5MjkxRTAzMkQ1ODAwMDE4RDg1IC8qIERlcHJlY2F0
ZWRDU1NPTVJHQkNvbG9yLmggKi8sCisJCQkJODU4QzM4RUYwQUE4RkREMTAwQjE4N0E0IC8qIERl
cHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmlkbCAqLywKKwkJCQk5NDc5NDkyMjFFMDJGOTBCMDAwMThE
ODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwICovLAorCQkJCTk0Nzk0OTIzMUUwMkY5MEIw
MDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZS5oICovLAorCQkJCTE0Q0Y3ODcxMDlGNTg3
Q0EwMEVCMzY2NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZS5pZGwgKi8sCisJCQkJOTQ3OTQ5MkQx
RTA0NTc4RDAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgKi8sCisJCQkJ
OTQ3OTQ5MjcxRTAzMTMyMDAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oICov
LAorCQkJCUE4RDA2NTFDMEEyM0MxRkUwMDVFNzIwMyAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZUxp
c3QuaWRsICovLAogCQkJCTRBNEY0OEE3MTZCMERGQzAwMEVEQkIyOSAvKiBEb2N1bWVudFJ1bGVT
ZXRzLmNwcCAqLywKIAkJCQk0QTRGNDhBODE2QjBERkMwMDBFREJCMjkgLyogRG9jdW1lbnRSdWxl
U2V0cy5oICovLAogCQkJCUZENjc3NzM1MTk1Q0FCMjAwMDcyRTBEMyAvKiBET01DU1NOYW1lc3Bh
Y2UuY3BwICovLApAQCAtMjM1NjAsMTAgKzIzNTg5LDggQEAKIAkJCQlFNEJCRUQwRDE0RjQwMjVE
MDAzRjBCOTggLyogUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmggKi8sCiAJCQkJOTND
QTRDOUYwOURGOTNGQTAwREY4Njc3IC8qIHF1aXJrcy5jc3MgKi8sCiAJCQkJQkM0MzY4RTcwQzIy
NkUzMjAwNUVGQjVGIC8qIFJlY3QuaCAqLywKLQkJCQlBODBFNzk5NjBBMTlCRDIxMDA3RkI4QzUg
LyogUmVjdC5pZGwgKi8sCiAJCQkJQkM3NERBMzYxMDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNvbG9y
LmNwcCAqLywKIAkJCQlCQzc0REEzNTEwMTNGM0Y3MDA3OTg3QUQgLyogUkdCQ29sb3IuaCAqLywK
LQkJCQk4NThDMzhFRjBBQThGREQxMDBCMTg3QTQgLyogUkdCQ29sb3IuaWRsICovLAogCQkJCUE3
OUJBRDlEMTYxRTdGM0YwMEMyRTY1MiAvKiBSdWxlRmVhdHVyZS5jcHAgKi8sCiAJCQkJQTc5QkFE
OUUxNjFFN0YzRjAwQzJFNjUyIC8qIFJ1bGVGZWF0dXJlLmggKi8sCiAJCQkJQTc5QkFEOUYxNjFF
N0YzRjAwQzJFNjUyIC8qIFJ1bGVTZXQuY3BwICovLApAQCAtMjUwNjMsNiArMjUwOTAsNyBAQAog
CQkJCTE0RDgyNDA4MEFGOTNBRUIwMDA0RjA1NyAvKiBDaHJvbWVDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUU0QTgxNEQ0MUM2REVDNDAwMEJGODVBQyAvKiBDbGFzc0NoYW5nZUludmFsaWRh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM0OEJGQUMxQjg1NzI5ODAwOTEyRjM2IC8qIENs
YXNzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTQ3OTQ5NDAxRTA0NjNDRTAwMDE4
RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0MwNjU3RTBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNDMDY1ODEwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QzNBOTFFNjFDOTYzQjg4MDBEMUE3RTMgLyogQ2xpcGJvYXJkQWNjZXNz
UG9saWN5LmggaW4gSGVhZGVycyAqLywKQEAgLTI1Mjg5LDYgKzI1MzE3LDcgQEAKIAkJCQlBODBF
NkQwQzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEVBODAwNzBBMTk1MTZFMDBBOEVGNUYgLyogQ1NTU3R5bGVTaGVldC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTRERTVDOTIxRDgzMDExRDAwMTY0RjJBIC8qIENTU1N1cHBvcnRzUGFyc2VyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5NDc5NDkzRDFFMDQ2M0I2MDAwMThEODUgLyogRGVwcmVjYXRl
ZENTU09NVmFsdWVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGQzU0RDA1NzE2QTc2NzMxMDA1
NzVFNEQgLyogQ1NTU3VwcG9ydHNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzgwQzk4ODBD
RDI5NEVFMDBBMEI3QjMgLyogQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTQ2RDM3M0ExRDZDREZDMDAwNzcwODRGIC8qIENTU1Rva2VuaXplci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNTk2Miw2ICsyNTk5MSw3IEBACiAJCQkJRDA3REVBQkEwQTM2NTU0QTAwQ0Ez
MEY4IC8qIEluc2VydExpc3RDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURFRTA5
OUU2NDkyMDA1NkU1ODEgLyogSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzMzA5REYwMDk5RTY0OTIwMDU2RTU4MSAvKiBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0
b3JDb21tYW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NDc5NDkzMTFFMDQ1OUZBMDAwMThEODUg
LyogSlNEZXByZWNhdGVkQ1NTT01Db3VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURG
MjA5OUU2NDkyMDA1NkU1ODEgLyogSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUI4ODVFOEQ1MTFFMDZERDIwMDlGRkJGNCAvKiBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDODFCOTVDMEU5NzMzMDgwMDI2NkUwNyAvKiBJ
bnNwZWN0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjYwNjIsNyArMjYwOTIsNiBAQAog
CQkJCTc5QUM5MjE5MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZEQTE1RUJFMTJCMDNGMEIwMDNBNTgzQSAvKiBKU0NvbnZvbHZlck5v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFNkZENDhFMEY2NzZFOTMwMDA5Mjg3MyAvKiBKU0Nv
b3JkaW5hdGVzLmggaW4gSGVhZGVycyAqLywKLQkJCQk5MzA3MDVEQTA5RTBDOUJGMDBCMTdGRTQg
LyogSlNDb3VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERDRjNCMzFCNkJFMjA4MDA2MkQ0
QzIgLyogSlNDb3VudFF1ZXVpbmdTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc1Q0Ey
QTIxMzAzNjc5RDAwRTk5QUQ5IC8qIEpTQ3J5cHRvLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTU3
QThGMTE4MTg1NDI1MDA5RjgyMUQgLyogSlNDcnlwdG9BbGdvcml0aG1CdWlsZGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI2MDgyLDcgKzI2MTExLDYgQEAKIAkJCQlCQzQ2QzIwMTBDMEREQzhGMDAy
MENGQzMgLyogSlNDU1NNZWRpYVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0RTgzOTU2MURG
QjJCQzQwMDdCQzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDNDZDMjAzMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU1BhZ2VSdWxlLmggaW4gSGVhZGVycyAq
LywKLQkJCQk5MzA3MDVFQjA5RTBDOUY2MDBCMTdGRTQgLyogSlNDU1NQcmltaXRpdmVWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTRDRjdCMzQwOUY2RUNENzAwRUIzNjY1IC8qIEpTQ1NTUnVs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQ3MjZGRUYxNkRBMTFGNTAwM0E0RTZEIC8qIEpTQ1NT
UnVsZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThEMDVGQTgwQTIzQjMwMTAwNUU3MjAz
IC8qIEpTQ1NTUnVsZUxpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjYwOTEsOCArMjYxMTksNiBA
QAogCQkJCUJDNDZDMjA3MEMwRERDQTEwMDIwQ0ZDMyAvKiBKU0NTU1N0eWxlUnVsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNDNUJFMDEwQzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5bGVTaGVl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkM1NEQwNTgxNkE3Njc2RTAwNTc1RTREIC8qIEpTQ1NT
U3VwcG9ydHNSdWxlLmggaW4gSGVhZGVycyAqLywKLQkJCQkxNENGNzhBNjA5RjU4Q0Q4MDBFQjM2
NjUgLyogSlNDU1NWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThEMDVGQUMwQTIzQjMwRjAw
NUU3MjAzIC8qIEpTQ1NTVmFsdWVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkQ0RTkxNzFD
NDYyODcyMDA1MDY1QkMgLyogSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5QkU2NzEwQzFENUFFQjI1MDAzNDU1MTQgLyogSlNDdXN0b21FbGVtZW50UmVnaXN0
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0Nzc4QjgwMTE1QTU4MUEwMEI1RDM3MiAvKiBKU0N1
c3RvbUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MjQwLDYgKzI2MjY2LDcgQEAKIAkJCQlB
ODBFN0U5OTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0aW9uRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDQ4QTI5QkYwQTQ2RDlDQjAwMzA3NTlGIC8qIEpTSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QUQwMTczRDEyN0U4Mjg2MDAxNTAzNUYgLyog
SlNIVE1MT3V0cHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTQ3OTQ5MzQxRTA0NTlG
QTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFFMkFCQTcwQTFDRTkwNTAwQjQyQjI1IC8qIEpTSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBRTJBQkE5MEExQ0U5MDUwMEI0MkIyNSAvKiBKU0hUTUxQYXJhbUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDM0Q4NUJDMUMwRTJFN0EwMEQzQjYxMCAvKiBK
U0hUTUxQaWN0dXJlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjM3NiwxMCArMjY0MDMs
OSBAQAogCQkJCTdDNEM5NkRGMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVm
YXVsdFJlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEyOURGODYxQkI1QjgwQzAwMzIyQTE2
IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3RTRDOTZERDFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQkNGRTJGMTIwQzFCNTgzODAwMjAyMzVGIC8qIEpTUmVjdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDk5OEFFQ0UxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVz
dEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAotCQkJCUJDNzREQTQ5MTAx
M0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0UyMzM3
MTFEQ0Q0NjhGMDBGMjhEMDEgLyogSlNSc2FIYXNoZWRJbXBvcnRQYXJhbXMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTk0Nzk0OTMyMUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzY4RTQzNDFEQjc1MjQ1MDBEMEE0
RjcgLyogSlNSc2FIYXNoZWRLZXlHZW5QYXJhbXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkVE
RDQxMURCNkQ3M0EwMEVCOTZGNSAvKiBKU1JzYUtleUdlblBhcmFtcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTcwNkE2OTgxRERFNUU0NjAwQTAzQjE0IC8qIEpTUnNhT2FlcFBhcmFtcy5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNjgyMCw2ICsyNjg0Niw3IEBACiAJCQkJQzk2RjVFQzgxQjU4NzIyNjAw
OTFFQTlEIC8qIE1lZGlhU2Vzc2lvbkludGVycnVwdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDOTZGNUVDNTFCNTg3MjI2MDA5MUVBOUQgLyogTWVkaWFTZXNzaW9uSW50ZXJydXB0
aW9uUHJvdmlkZXJNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5MEY2NTU2MUIyMjUzQkUwMDIx
NjNBMSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NDc5NDkz
RjFFMDQ2M0M2MDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUmVjdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1Mu
aCBpbiBIZWFkZXJzICovLAogCQkJCUM5RDg1MUYwMUIzOURDNzgwMDg1MDYyRSAvKiBNZWRpYVNl
c3Npb25NZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzQTQ5NUYxN0E5RDAxQjAwMjc0
RTQyIC8qIE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKQEAgLTI3MjM1LDYgKzI3MjYyLDcg
QEAKIAkJCQkzQzI0NEZFQUEzNzVBQzYzM0Y4OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEJFMDMwQTIwRjMxMTJGQjAwM0MxQTQ2IC8qIFJlbmRl
ckxpbmVCb3hMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VBNDg2NDA5N0Q5MzAyMDA5NEM5
RTQgLyogUmVuZGVyTGluZUJyZWFrLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NDc5NDkzQTFFMDQ1
OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUFCQjU0MTlGMEFDRERGRTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0Qm94LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBOEVBN0E1MjBBMTkxQTUyMDBBOEVGNUYgLyogUmVuZGVyTGlzdEl0ZW0u
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3QTUwMEExOTFBNTIwMEE4RUY1RiAvKiBSZW5kZXJM
aXN0TWFya2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTI3MjQ1LDYgKzI3MjczLDcgQEAKIAkJCQk0
MzkwNDZEQzEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MRnJhY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQzOTA0NkRFMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxNYXRo
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzkwNDZFMDEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVy
TWF0aE1MT3BlcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTk0Nzk0OTNFMUUwNDYzQkUwMDAx
OEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5
MDQ2RTIxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTFJvb3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQzOTA0NkU0MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxSb3cuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQzOTA0NkU4MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxT
Y3JpcHRzLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NjEyLDYgKzI3NjQxLDcgQEAKIAkJCQk5M0Yx
OTk2MzA4MjQ1RTU5MDAxRTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyNkI5OTk5MTE4MDNCM0M5MDBEMDExMjEgLyogU3RhY2tBbGxvY2F0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDN0ZBNjJEMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTQ3OTQ5MjUxRTAzMDhBRjAwMDE4RDg1IC8qIERlcHJlY2F0
ZWRDU1NPTVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDMzRTkwMzFEQkJEQkEyMDBFRjBE
MTQgLyogU3RhdGljUGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ0RUJCRDkxREI1
RDIxNDAwMjc3MzM0IC8qIFN0YXRpY1JhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUFGQjM1
MDExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NzI0
LDYgKzI3NzU0LDcgQEAKIAkJCQkwODVBMTU5MzEyODlBOEREMDAyNzEwRTMgLyogU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzlE
MzM0MzEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0ZWRUeXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MzlEMzM0NDEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3Iu
aCBpbiBIZWFkZXJzICovLAorCQkJCTk0Nzk0OTM4MUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJl
Y2F0ZWRDU1NPTVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk5MDBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMkI4NDM0
MTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyMjI3OTkzMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlTW90aW9uRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzc5OSw2ICsyNzgzMCw3IEBACiAJCQkJMDg1NEIwMUYx
MjU1RTRFNjAwQjlDREQwIC8qIFNWR0lubGluZUZsb3dCb3guaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA4NTRCMDIxMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdJbmxpbmVUZXh0Qm94LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0EzMDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTGFuZ1NwYWNlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5NDc5NDkzNjFFMDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVk
Q1NTT01SR0JDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzEzNDQ5NkUxNDY5NDFCMzAwNzIw
MzEyIC8qIFNWR0xlbmd0aENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTM2MEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdMZW5ndGhMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzM5
QzM2NTFEREE4NjUyMDBGRUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yODA1Myw2ICsyODA4NSw3IEBACiAJCQkJMkQyMzJDMDAxQTMyNkYwMjAwNkJGMkRC
IC8qIFRVQ2FsbFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzM3NUQ3RkUxNjYzOTUxOTAwNjE4
NEFCIC8qIFR5cGVBaGVhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ2QTJCMUMxN0NBNjVCOTAw
MERCQ0Q4IC8qIFR5cGVkRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTQ3OTQ5NDExRTA0NjNENDAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTFBMDk5RTY0OTIwMDU2RTU4MSAvKiBUeXBpbmdD
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzY1MjMxODFFMDBEQkI1MDA2NzdGMjIgLyog
SlNBcHBsZVBheVBheW1lbnRNZXRob2QuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjRFMEE0
NEVGQzcwMEY5OTJFMCAvKiBVSUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI5MzAwLDYgKzI5
MzMzLDcgQEAKIAkJCQk0MzU4RTg4MDEzNjBBMzE3MDBFNDc0OEMgLyogRkVEcm9wU2hhZG93LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTg0NzMwRDdFMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUZsb29k
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0ODAxOTU0MTA4QkFGQjMwMENCMkIxRiAvKiBGRUdh
dXNzaWFuQmx1ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5NDc5NDkzMDFFMDQ1OUVFMDAwMThE
ODUgLyogSlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4NDczMEQ4MDEyNDhGMEIzMDBEM0E5QzkgLyogRkVMaWdodGluZy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk4NDczMEQ4MjEyNDhGMEIzMDBEM0E5QzkgLyogRkVNZXJnZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4NDczMEQ4NDEyNDhGMEIzMDBEM0E5QzkgLyogRkVNb3JwaG9sb2d5LmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjk1NjQsNiArMjk1OTgsNyBAQAogCQkJCTk3N0IzODc3MTIy
ODgzRTkwMEI4MUZGOCAvKiBIVE1MVG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3
MDc1NjhCMTQyMjYyRDYwMDQxNDE2MSAvKiBIVE1MVHJhY2tFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTk3N0IzNzI1MTIyODcyMTcwMEI4MUZGOCAvKiBIVE1MVHJlZUJ1aWxkZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOTQ3OTQ5MjQxRTAzMDhBNDAwMDE4RDg1IC8qIERlcHJlY2F0
ZWRDU1NPTVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4RUE3OUYzMEExOTE2REYwMEE4
RUY1RiAvKiBIVE1MVUxpc3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0NDYxM0FB
MENENjMzMTAwMEZBREE3NSAvKiBIVE1MVmlkZW9FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTgzOUFBRkVDMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI5NzQzLDYgKzI5Nzc4LDcgQEAKIAkJCQlGREExNUVCMzEyQjAzRUUxMDAz
QTU4M0EgLyogSlNBdWRpb1BhcmFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RUI1MTJC
MDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJFOEVGMDQyMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2suY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJOTQ3OTQ5MzcxRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENT
U09NVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU2REY3MTExNzFDQTJEQTAwREQ1MkI4
IC8qIEpTQXVkaW9UcmFja0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCRThFRjA0NDE3
MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCRTZERjcxMzE3MUNBMkRBMDBERDUyQjggLyogSlNBdWRpb1RyYWNrTGlzdEN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI5Nzc2LDcgKzI5ODEyLDYgQEAKIAkJCQk3OUFDOTIxODEwOTk0
NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZEQTE1RUJEMTJCMDNGMEIwMDNBNTgzQSAvKiBKU0NvbnZvbHZlck5vZGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkU2RkQ0OEQwRjY3NkU5MzAwMDkyODczIC8qIEpTQ29vcmRpbmF0ZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJOTMwNzA1RDgwOUUwQzlCNzAwQjE3RkU0IC8qIEpTQ291bnRl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNERDRjNCMjFCNkJFMjA4MDA2MkQ0QzIgLyogSlND
b3VudFF1ZXVpbmdTdHJhdGVneS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzVDQTJBMTEzMDM2
NzlEMDBFOTlBRDkgLyogSlNDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE1N0E4RjAx
ODE4NTQyNTAwOUY4MjFEIC8qIEpTQ3J5cHRvQWxnb3JpdGhtQnVpbGRlci5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTI5Nzk3LDcgKzI5ODMyLDYgQEAKIAkJCQlCQzQ2QzIwMDBDMEREQzhGMDAyMENG
QzMgLyogSlNDU1NNZWRpYVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTRFODM5NTUxREZC
MkJDNDAwN0JDNkE3IC8qIEpTQ1NTTmFtZXNwYWNlUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzQ2QzIwMjBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NQYWdlUnVsZS5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQk5MzA3MDVFOTA5RTBDOUYwMDBCMTdGRTQgLyogSlNDU1NQcmltaXRpdmVWYWx1
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNENGN0IzMzA5RjZFQ0Q3MDBFQjM2NjUgLyogSlND
U1NSdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDZDMUVFMEMwRERCREYwMDIwQ0ZDMyAv
KiBKU0NTU1J1bGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThEMDVGQTcwQTIzQjMw
MTAwNUU3MjAzIC8qIEpTQ1NTUnVsZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTgwNyw5
ICsyOTg0MSw3IEBACiAJCQkJQkM0NkMyMDYwQzBERENBMTAwMjBDRkMzIC8qIEpTQ1NTU3R5bGVS
dWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQzVCRTAwMEMwRTkzMTEwMDExQzJEQiAvKiBK
U0NTU1N0eWxlU2hlZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ2Nzc3M0ExOTVDQjE0QTAw
NzJFMEQzIC8qIEpTQ1NTU3VwcG9ydHNSdWxlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTE0Q0Y3
OEE0MDlGNThDQkYwMEVCMzY2NSAvKiBKU0NTU1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDMjBGQjdGMEMwRThFNkMwMEQxNDQ3RiAvKiBKU0NTU1ZhbHVlQ3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUE4RDA1RkFCMEEyM0IzMEYwMDVFNzIwMyAvKiBKU0NTU1ZhbHVlTGlzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5QkQ0RTkxNjFDNDYyODcyMDA1MDY1QkMgLyogSlNDdXN0
b21FbGVtZW50SW50ZXJmYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlCRTY3MTBCMUQ1QUVC
MjEwMDM0NTUxNCAvKiBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5QkM1RjlFMDFENUFBRjZCMDAyQjc0OUQgLyogSlNDdXN0b21FbGVtZW50UmVnaXN0cnlD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTg0Niw2ICsyOTg3OCw3IEBACiAJCQkJRTFD
MzZDQkQwRUIwODA2MjAwNzQxMEJDIC8qIEpTRE9NR2xvYmFsT2JqZWN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDMkJERDNEMTdDN0Y5OEMwMDM4RkYxNSAvKiBKU0RPTUdsb2JhbE9iamVjdFRh
c2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxRjcwOUQxQ0M2MDAwMEJFMzI1IC8qIEpT
RE9NSW1wbGVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTQ3OTQ5M0MxRTA0NUNG
MzAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxMzhGODU3MUQyNTNGMDgwMDFDQjYxRSAvKiBKU0RPTUl0ZXJhdG9yLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE5RDI0ODA2MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVU
eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5RDI0ODA4MEQ3NTdFN0QwMEZERjk1OSAvKiBK
U0RPTU1pbWVUeXBlQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTg4Niw2ICsyOTkxOSw3
IEBACiAJCQkJMTRFODM3ODQwOUY4NUQxQzAwQjg1QUU0IC8qIEpTRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkNFRkFGNEUwQzMxN0U2OTAwRkE4MUY2IC8qIEpTRXZlbnRDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJODM2RDAzMkYxREE4QTEzQTAwRkZEOTZCIC8qIEpTRXZlbnRJ
bml0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk0Nzk0OTM1MUUwNDU5RkEwMDAxOEQ4NSAvKiBK
U0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQjcwRDY5
MDlFQjBDN0MwMDlEODQ2OCAvKiBKU0V2ZW50TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTBGRUYzNzJCNDdDNTNFQUMxQzFGQkVFIC8qIEpTRXZlbnRTb3VyY2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQzZBNzAzMzI1QzlEMEI2Q0RDQkM0RDc3IC8qIEpTRXZlbnRUYXJnZXQuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0zMDE1Nyw5ICszMDE5MSw3IEBACiAJCQkJNDEyOURGODUxQkI1
QjgwNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdFNEM5NkRDMUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxl
U3RyZWFtU291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxOEMzOTYwMUM4RjBBQUUwMDUx
QzhBMyAvKiBKU1JlYWRhYmxlU3RyZWFtU291cmNlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUJDRkUyRjExMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDk5OEFFQ0QxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1l
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkM3NERBNDgxMDEzRjQ2ODAwNzk4N0FE
IC8qIEpTUkdCQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTdFMjMzNzMxRENENDZCNjAw
RjI4RDAxIC8qIEpTUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTU3NjhFNDM2MURCNzUyNzQwMEQwQTRGNyAvKiBKU1JzYUhhc2hlZEtleUdlblBhcmFtcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1N0ZFREQ0MzFEQjZENzYwMDBFQjk2RjUgLyogSlNSc2FLZXlH
ZW5QYXJhbXMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDQ2Nyw2ICszMDQ5OSw3IEBACiAJCQkJ
MUFDRTUzRjYwQThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQTc2MkM3MzBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzYwREI0OTBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0
aEV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5NDc5NDkyRTFFMDQ1N0JBMDAwMThE
ODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
NzYyQzc1MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXhwcmVzc2lvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQTc2MkM3NzBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aE5TUmVzb2x2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODM2QzE0NDMxQ0RFQUZEODAwNzM0OTNGIC8qIEpTWFBh
dGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzA1NjAsNiArMzA1OTMs
NyBAQAogCQkJCTdDNjU3OUYxMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5UGF5bWVudFJl
cXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDM5MTc2REYxMkRBMjVFMTdCQUY4MEEyIC8q
IE1hdGhNTFN0eWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZBNjU0QTZCMTEwOEFCRUQwMDI2
MTVFMCAvKiBNYXRoTUxUb2tlbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTQ3OTQ5
MzkxRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZBNjU0QTZCMTEwOEFCRUQwMDI2MjZGMSAvKiBNYXRoTUxVbmRlck92
ZXJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzOTA0NkU5MTJEQTI1RTgxMkFGODBB
QyAvKiBNYXRoT3BlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlENURDMkIwRjQyM0E3
MzAwOEYyMEZEIC8qIE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMzExMDcsNiArMzExNDEsNyBAQAogCQkJCTBGRTcxNDA1MTQyMTcwQjgwMERCMzNCQSAv
KiBTY3JvbGxiYXJUaGVtZU1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBODRGMDQxNDNC
QTdCRDAwNTFEMTUzIC8qIFNjcm9sbENvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkw
RjYwNUFFQzE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWludHMuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJOTQ3OTQ5MkYxRTA0NTlFQjAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENT
U09NQ291bnRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUY2MkVFNzE0REEyMkE3MDA0MTU1
NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNEU0
MEUxODdGODJFMTAwNDU4ODJDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9ySU9TLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFGNjJFRTYxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0zMTQ3Myw2ICszMTUwOCw3IEBACiAJCQkJRTE4
MDgxMTIxNkZDRjQyRjAwQjgwRDA3IC8qIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUxODA4MTE2MTZGQ0Y5Q0IwMEI4MEQwNyAvKiBTeW5jaHJvbm91c0xv
YWRlckNsaWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ0MkFCQ0Q2MTdEOTI2MkYwMEQzMDcx
NSAvKiBTeW5jaHJvbm91c0xvYWRlckNsaWVudENGTmV0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTk0Nzk0OTMzMUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJlY3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMjZGQUU0Q0UxODUyRTNBNTAwNEM4QzQ2IC8qIFN5bmNocm9ub3Vz
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFNDUzOTBBRTBFQUZGNEI1MDAzNjk1QzggLyogU3lzdGVtTWVtb3J5SU9TLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUNEQTA3RkJEMThFMEExNkEwMDQ2OTlGQSAvKiBTeXN0ZW1TbGVlcExp
c3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvRE9NV3JhcHBlcldvcmxkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvRE9NV3JhcHBlcldvcmxkLmgJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3
ICsyNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ1NTVmFsdWU7CitjbGFz
cyBEZXByZWNhdGVkQ1NTT01WYWx1ZTsKIGNsYXNzIFNjcmlwdENvbnRyb2xsZXI7CiAKIHR5cGVk
ZWYgSGFzaE1hcDx2b2lkKiwgSlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+PiBET01PYmplY3RXcmFw
cGVyTWFwOwpAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTogY2FuIHdl
IG1ha2UgdGhpcyBwcml2YXRlPwogICAgIERPTU9iamVjdFdyYXBwZXJNYXAgbV93cmFwcGVyczsK
LSAgICBIYXNoTWFwPENTU1ZhbHVlKiwgdm9pZCo+IG1fY3NzVmFsdWVSb290czsKKyAgICBIYXNo
TWFwPERlcHJlY2F0ZWRDU1NPTVZhbHVlKiwgdm9pZCo+IG1fZGVwcmVjYXRlZENTU09NVmFsdWVS
b290czsKIAogICAgIGJvb2wgaXNOb3JtYWwoKSBjb25zdCB7IHJldHVybiBtX2lzTm9ybWFsOyB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlv
bkN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
U1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjYsMTcgKzI2LDE2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmgiCiAKLSNpbmNsdWRlICJDU1NQcmlt
aXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJD
U1NQcm9wZXJ0eVBhcnNlci5oIgogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJDU1NT
dHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgotI2luY2x1ZGUg
IkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCIKKyNp
bmNsdWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkhhc2hU
b29scy5oIgogI2luY2x1ZGUgIkpTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIkpT
Q1NTVmFsdWUuaCIKKyNpbmNsdWRlICJKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgiCiAjaW5jbHVk
ZSAiSlNOb2RlLmgiCiAjaW5jbHVkZSAiSlNTdHlsZVNoZWV0Q3VzdG9tLmgiCiAjaW5jbHVkZSAi
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgpAQCAtMzY1LDcgKzM2NCw3IEBAIEpTVmFsdWUgSlND
U1NTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXIKICAgICBpZiAoIXZhbHVlKQogICAgICAgICBy
ZXR1cm4ganNOdWxsKCk7CiAKLSAgICBnbG9iYWxPYmplY3QoKS0+d29ybGQoKS5tX2Nzc1ZhbHVl
Um9vdHMuYWRkKHZhbHVlLmdldCgpLCByb290KCZ3cmFwcGVkKCkpKTsgLy8gQmFsYW5jZWQgYnkg
SlNDU1NWYWx1ZU93bmVyOjpmaW5hbGl6ZSgpLgorICAgIGdsb2JhbE9iamVjdCgpLT53b3JsZCgp
Lm1fZGVwcmVjYXRlZENTU09NVmFsdWVSb290cy5hZGQodmFsdWUuZ2V0KCksIHJvb3QoJndyYXBw
ZWQoKSkpOyAvLyBCYWxhbmNlZCBieSBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlT3duZXI6OmZpbmFs
aXplKCkuCiAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgKnZhbHVlKTsK
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1c3RvbS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1
c3RvbS5jcHAJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ1NTVmFsdWVDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw1NiArMjQsNDkgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNDU1NWYWx1ZS5oIgogCi0j
aW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIK
LSNpbmNsdWRlICJKU0NTU1ByaW1pdGl2ZVZhbHVlLmgiCi0jaW5jbHVkZSAiSlNDU1NWYWx1ZUxp
c3QuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1
ZGUgIkRlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oIgorI2luY2x1ZGUgIkpTRGVwcmVjYXRlZENT
U09NUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgi
CisjaW5jbHVkZSAiSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaCIKICNpbmNsdWRlICJKU05v
ZGUuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1i
b29sIEpTQ1NTVmFsdWVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQsIFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQorYm9vbCBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKLSAgICBKU0NTU1ZhbHVlKiBqc0NTU1ZhbHVlID0g
anNDYXN0PEpTQ1NTVmFsdWUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CisgICAgSlNEZXBy
ZWNhdGVkQ1NTT01WYWx1ZSoganNDU1NWYWx1ZSA9IGpzQ2FzdDxKU0RlcHJlY2F0ZWRDU1NPTVZh
bHVlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIGlmICghanNDU1NWYWx1ZS0+aGFz
Q3VzdG9tUHJvcGVydGllcygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgRE9NV3JhcHBl
cldvcmxkKiB3b3JsZCA9IHN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRleHQpOwot
ICAgIHZvaWQqIHJvb3QgPSB3b3JsZC0+bV9jc3NWYWx1ZVJvb3RzLmdldCgmanNDU1NWYWx1ZS0+
d3JhcHBlZCgpKTsKKyAgICB2b2lkKiByb290ID0gd29ybGQtPm1fZGVwcmVjYXRlZENTU09NVmFs
dWVSb290cy5nZXQoJmpzQ1NTVmFsdWUtPndyYXBwZWQoKSk7CiAgICAgaWYgKCFyb290KQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290
KHJvb3QpOwogfQogCi12b2lkIEpTQ1NTVmFsdWVPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCit2b2lkIEpTRGVwcmVjYXRlZENT
U09NVmFsdWVPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUs
IHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgSlNDU1NWYWx1ZSoganNDU1NWYWx1ZSA9IGpzQ2FzdDxK
U0NTU1ZhbHVlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOworICAgIEpTRGVwcmVjYXRlZENT
U09NVmFsdWUqIGpzQ1NTVmFsdWUgPSBqc0Nhc3Q8SlNEZXByZWNhdGVkQ1NTT01WYWx1ZSo+KGhh
bmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkID0gKnN0
YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRleHQpOwotICAgIHdvcmxkLm1fY3NzVmFs
dWVSb290cy5yZW1vdmUoJmpzQ1NTVmFsdWUtPndyYXBwZWQoKSk7CisgICAgd29ybGQubV9kZXBy
ZWNhdGVkQ1NTT01WYWx1ZVJvb3RzLnJlbW92ZSgmanNDU1NWYWx1ZS0+d3JhcHBlZCgpKTsKICAg
ICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzQ1NTVmFsdWUtPndyYXBwZWQoKSwganNDU1NWYWx1
ZSk7CiB9CiAKLUpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8Q1NTVmFsdWU+JiYgdmFsdWUpCitKU1ZhbHVlIHRv
SlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUmVmPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiYmIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS0+
aXNWYWx1ZUxpc3QoKSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8Q1NTVmFsdWVMaXN0
PihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVdy
YXBwZXI8RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0PihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFs
dWUpKTsKICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKLSAgICAgICAgcmV0dXJu
IGNyZWF0ZVdyYXBwZXI8Q1NTUHJpbWl0aXZlVmFsdWU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2
YWx1ZSkpOwotICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU1ZhbHVlPihnbG9iYWxPYmplY3Qs
IFdURk1vdmUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8RGVwcmVjYXRl
ZENTU09NUHJpbWl0aXZlVmFsdWU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOworICAg
IHJldHVybiBjcmVhdGVXcmFwcGVyPERlcHJlY2F0ZWRDU1NPTVZhbHVlPihnbG9iYWxPYmplY3Qs
IFdURk1vdmUodmFsdWUpKTsKIH0KIAotSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogc3RhdGUsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENTU1ZhbHVlJiB2YWx1ZSkKK0pTVmFsdWUg
dG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBE
ZXByZWNhdGVkQ1NTT01WYWx1ZSYgdmFsdWUpCiB7Ci0gICAgLy8gU2NyaXB0cyBzaG91bGQgb25s
eSBldmVyIHNlZSBjbG9uZWQgQ1NTVmFsdWVzLCBuZXZlciB0aGUgaW50ZXJuYWwgb25lcy4KLSAg
ICBBU1NFUlQodmFsdWUuaXNDU1NPTVNhZmUoKSk7Ci0KLSAgICAvLyBJZiB3ZSdyZSBoZXJlIHVu
ZGVyIGVycm9uZW91cyBjaXJjdW1zdGFuY2VzLCBwcmVmZXIgcmV0dXJuaW5nIG51bGwgb3ZlciBh
IHBvdGVudGlhbGx5IGluc2VjdXJlIHZhbHVlLgotICAgIGlmICghdmFsdWUuaXNDU1NPTVNhZmUo
KSkKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotCiAgICAgcmV0dXJuIHdyYXAoc3RhdGUsIGds
b2JhbE9iamVjdCwgdmFsdWUpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAkocmV2aXNpb24gMjA5OTMyKQorKysg
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJDb250ZW50RGF0YS5oIgogI2lu
Y2x1ZGUgIkNvdW50ZXJDb250ZW50LmgiCiAjaW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgorI2luY2x1
ZGUgIkRlcHJlY2F0ZWRDU1NPTVZhbHVlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRm9udFRhZ2dlZFNldHRpbmdzLmgiCkBA
IC00MTE4LDE2ICs0MTE5LDIyIEBAIENTU1J1bGUqIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bjo6cGEKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBw
cm9wZXJ0eU5hbWUpCitSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+IENTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5
TmFtZSkKIHsKLSAgICBpZiAoaXNDdXN0b21Qcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKSkKLSAg
ICAgICAgcmV0dXJuIENvbXB1dGVkU3R5bGVFeHRyYWN0b3IobV9lbGVtZW50LnB0cigpLCBtX2Fs
bG93VmlzaXRlZFN0eWxlLCBtX3BzZXVkb0VsZW1lbnRTcGVjaWZpZXIpLmN1c3RvbVByb3BlcnR5
VmFsdWUocHJvcGVydHlOYW1lKTsKKyAgICBpZiAoaXNDdXN0b21Qcm9wZXJ0eU5hbWUocHJvcGVy
dHlOYW1lKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvciht
X2VsZW1lbnQucHRyKCksIG1fYWxsb3dWaXNpdGVkU3R5bGUsIG1fcHNldWRvRWxlbWVudFNwZWNp
ZmllcikuY3VzdG9tUHJvcGVydHlWYWx1ZShwcm9wZXJ0eU5hbWUpOworICAgICAgICBpZiAoIXZh
bHVlKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiB2YWx1ZS0+
Y3JlYXRlRGVwcmVjYXRlZENTU09NV3JhcHBlcigpOworICAgIH0KIAogICAgIENTU1Byb3BlcnR5
SUQgcHJvcGVydHlJRCA9IGNzc1Byb3BlcnR5SUQocHJvcGVydHlOYW1lKTsKICAgICBpZiAoIXBy
b3BlcnR5SUQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIFJlZlB0cjxDU1NWYWx1ZT4g
dmFsdWUgPSBnZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5SUQpOwotICAgIHJldHVybiB2YWx1
ZSA/IHZhbHVlLT5jbG9uZUZvckNTU09NKCkgOiBudWxscHRyOworICAgIGlmICghdmFsdWUpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiB2YWx1ZS0+Y3JlYXRlRGVwcmVjYXRl
ZENTU09NV3JhcHBlcigpOwogfQogCiBTdHJpbmcgQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
OjpnZXRQcm9wZXJ0eVZhbHVlKGNvbnN0IFN0cmluZyAmcHJvcGVydHlOYW1lKQpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaAkocmV2
aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNyArMTA0LDcgQEAgcHJpdmF0ZToKICAg
ICBDU1NSdWxlKiBwYXJlbnRSdWxlKCkgY29uc3QgZmluYWw7CiAgICAgdW5zaWduZWQgbGVuZ3Ro
KCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0IGZp
bmFsOwotICAgIFJlZlB0cjxDU1NWYWx1ZT4gZ2V0UHJvcGVydHlDU1NWYWx1ZShjb25zdCBTdHJp
bmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CisgICAgUmVmUHRyPERlcHJlY2F0ZWRDU1NPTVZhbHVl
PiBnZXRQcm9wZXJ0eUNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBmaW5hbDsK
ICAgICBTdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkg
ZmluYWw7CiAgICAgU3RyaW5nIGdldFByb3BlcnR5UHJpb3JpdHkoY29uc3QgU3RyaW5nJiBwcm9w
ZXJ0eU5hbWUpIGZpbmFsOwogICAgIFN0cmluZyBnZXRQcm9wZXJ0eVNob3J0aGFuZChjb25zdCBT
dHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
R3JpZExpbmVOYW1lc1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyaWRMaW5lTmFtZXNWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDExICs0NCw2IEBAIENTU0dyaWRMaW5lTmFtZXNWYWx1ZTo6Q1NTR3JpZExpbmVOYW1lc1YKIHsK
IH0KIAotUmVmPENTU0dyaWRMaW5lTmFtZXNWYWx1ZT4gQ1NTR3JpZExpbmVOYW1lc1ZhbHVlOjpj
bG9uZUZvckNTU09NKCkgY29uc3QKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NHcmlk
TGluZU5hbWVzVmFsdWUoKnRoaXMpKTsKLX0KLQogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmlkTGluZU5hbWVzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmgJKHJldmlzaW9uIDIwOTkzMikKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkTGluZU5hbWVzVmFsdWUuaAkod29ya2luZyBjb3B5
KQpAQCAtNDUsOCArNDUsNiBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgp
IGNvbnN0OwogCi0gICAgUmVmPENTU0dyaWRMaW5lTmFtZXNWYWx1ZT4gY2xvbmVGb3JDU1NPTSgp
IGNvbnN0OwotCiBwcml2YXRlOgogICAgIENTU0dyaWRMaW5lTmFtZXNWYWx1ZSgpOwogfTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAJKHJldmlzaW9uIDIwOTkz
MikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTU5LDE1ICsxNTksNCBAQCBib29sIENTU0ltYWdlU2V0VmFsdWU6OnRyYXZlcnNl
U3VicmVzb3VyCiAgICAgcmV0dXJuIGhhbmRsZXIoKm1fY2FjaGVkSW1hZ2UpOwogfQogCi1DU1NJ
bWFnZVNldFZhbHVlOjpDU1NJbWFnZVNldFZhbHVlKGNvbnN0IENTU0ltYWdlU2V0VmFsdWUmIGNs
b25lRnJvbSkKLSAgICA6IENTU1ZhbHVlTGlzdChjbG9uZUZyb20pCi17Ci0gICAgLy8gTm9uLUNT
U1ZhbHVlTGlzdCBkYXRhIGlzIG5vdCBhY2Nlc3NpYmxlIHRocm91Z2ggQ1NTIE9NLCBubyBuZWVk
IHRvIGNsb25lLgotfQotCi1SZWY8Q1NTSW1hZ2VTZXRWYWx1ZT4gQ1NTSW1hZ2VTZXRWYWx1ZTo6
Y2xvbmVGb3JDU1NPTSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTSW1h
Z2VTZXRWYWx1ZSgqdGhpcykpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmgJKHJldmlzaW9uIDIwOTkzMikKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDggKzU1LDYgQEAgcHVibGljOgogCiAgICAgYm9vbCB0cmF2ZXJzZVN1YnJlc291cmNlcyhjb25z
dCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKGNvbnN0IENhY2hlZFJlc291cmNlJik+JiBoYW5kbGVyKSBj
b25zdDsKIAotICAgIFJlZjxDU1NJbWFnZVNldFZhbHVlPiBjbG9uZUZvckNTU09NKCkgY29uc3Q7
Ci0KICAgICB2b2lkIHVwZGF0ZURldmljZVNjYWxlRmFjdG9yKGNvbnN0IERvY3VtZW50Jik7CiAK
IHByb3RlY3RlZDoKQEAgLTY0LDcgKzYyLDYgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAg
IENTU0ltYWdlU2V0VmFsdWUoKTsKLSAgICBDU1NJbWFnZVNldFZhbHVlKGNvbnN0IENTU0ltYWdl
U2V0VmFsdWUmIGNsb25lRnJvbSk7CiAKICAgICB2b2lkIGZpbGxJbWFnZVNldCgpOwogICAgIHN0
YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlQnlTY2FsZUZhY3RvcihJbWFnZVdpdGhTY2FsZSBmaXJz
dCwgSW1hZ2VXaXRoU2NhbGUgc2Vjb25kKSB7IHJldHVybiBmaXJzdC5zY2FsZUZhY3RvciA8IHNl
Y29uZC5zY2FsZUZhY3RvcjsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFs
dWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNw
cAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cy5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgorI2luY2x1ZGUgIkRl
cHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKQEAgLTk4LDEyICs5
OSwxMCBAQCBTdHJpbmcgQ1NTSW1hZ2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvCiAgICAgcmV0
dXJuIHNlcmlhbGl6ZVVSTChtX3VybCk7CiB9CiAKLVJlZjxDU1NWYWx1ZT4gQ1NTSW1hZ2VWYWx1
ZTo6Y2xvbmVGb3JDU1NPTSgpIGNvbnN0CitSZWY8RGVwcmVjYXRlZENTU09NVmFsdWU+IENTU0lt
YWdlVmFsdWU6OmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIoKSBjb25zdAogewogICAgIC8v
IE5PVEU6IFdlIGV4cG9zZSBDU1NJbWFnZVZhbHVlcyBhcyBVUkkgcHJpbWl0aXZlIHZhbHVlcyBp
biBDU1NPTSB0byBtYWludGFpbiBvbGQgYmVoYXZpb3IuCi0gICAgUmVmPENTU1ByaW1pdGl2ZVZh
bHVlPiB1cmlWYWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUobV91cmwsIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfVVJJKTsKLSAgICB1cmlWYWx1ZS0+c2V0Q1NTT01TYWZlKCk7Ci0gICAg
cmV0dXJuIFdURk1vdmUodXJpVmFsdWUpOworICAgIHJldHVybiBEZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZTo6Y3JlYXRlKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUobV91cmwsIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfVVJJKSk7CiB9CiAKIGJvb2wgQ1NTSW1hZ2VWYWx1ZTo6a25vd25U
b0JlT3BhcXVlKGNvbnN0IFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyKSBjb25zdApJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjsKK2NsYXNzIERlcHJlY2F0ZWRDU1NPTVZhbHVlOwogY2xhc3MgUmVuZGVy
RWxlbWVudDsKIHN0cnVjdCBSZXNvdXJjZUxvYWRlck9wdGlvbnM7CiAKQEAgLTQ1LDcgKzQ2LDcg
QEAgcHVibGljOgogCiAgICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBjb25zdDsKIAotICAgIFJl
ZjxDU1NWYWx1ZT4gY2xvbmVGb3JDU1NPTSgpIGNvbnN0OworICAgIFJlZjxEZXByZWNhdGVkQ1NT
T01WYWx1ZT4gY3JlYXRlRGVwcmVjYXRlZENTU09NV3JhcHBlcigpIGNvbnN0OwogCiAgICAgYm9v
bCB0cmF2ZXJzZVN1YnJlc291cmNlcyhjb25zdCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKGNvbnN0IENh
Y2hlZFJlc291cmNlJik+JiBoYW5kbGVyKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiQ2FsY3VsYXRpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNvbG9yLmgi
CiAjaW5jbHVkZSAiQ291bnRlci5oIgorI2luY2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2
ZVZhbHVlLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZvbnRDYXNj
YWRlLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgpAQCAtMTE3NCwxMDQgKzExNzUsNiBAQCBTdHJpbmcg
Q1NTUHJpbWl0aXZlVmFsdWU6OmN1c3RvbUNTU1RleHQoCiAgICAgcmV0dXJuIHRleHQ7CiB9CiAK
LVJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNsb25lRm9yQ1NTT00o
KSBjb25zdAotewotICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcmVzdWx0OwotCi0gICAg
c3dpdGNoIChtX3ByaW1pdGl2ZVVuaXRUeXBlKSB7Ci0gICAgY2FzZSBDU1NfU1RSSU5HOgotICAg
IGNhc2UgQ1NTX1VSSToKLSAgICBjYXNlIENTU19BVFRSOgotICAgIGNhc2UgQ1NTX0NPVU5URVJf
TkFNRToKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShtX3ZhbHVl
LnN0cmluZywgc3RhdGljX2Nhc3Q8VW5pdFR5cGU+KG1fcHJpbWl0aXZlVW5pdFR5cGUpKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NfRk9OVF9GQU1JTFk6Ci0gICAgICAgIHJlc3VsdCA9
IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoKm1fdmFsdWUuZm9udEZhbWlseSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgQ1NTX0NPVU5URVI6Ci0gICAgICAgIHJlc3VsdCA9IENTU1ByaW1p
dGl2ZVZhbHVlOjpjcmVhdGUobV92YWx1ZS5jb3VudGVyLT5jbG9uZUZvckNTU09NKCkpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIENTU19SRUNUOgotICAgICAgICByZXN1bHQgPSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Y3JlYXRlKG1fdmFsdWUucmVjdC0+Y2xvbmVGb3JDU1NPTSgpKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NfUVVBRDoKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZShtX3ZhbHVlLnF1YWQtPmNsb25lRm9yQ1NTT00oKSk7Ci0gICAgICAg
IGJyZWFrOwotI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCi0gICAgY2FzZSBDU1NfTEVOR1RI
X1JFUEVBVDoKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShtX3Zh
bHVlLmxlbmd0aFJlcGVhdC0+Y2xvbmVGb3JDU1NPTSgpKTsKLSAgICAgICAgYnJlYWs7Ci0jZW5k
aWYKLSAgICBjYXNlIENTU19QQUlSOgotICAgICAgICAvLyBQYWlyIGlzIG5vdCBleHBvc2VkIHRv
IHRoZSBDU1NPTSwgbm8gbmVlZCBmb3IgYSBkZWVwIGNsb25lLgotICAgICAgICByZXN1bHQgPSBD
U1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKFJlZjxQYWlyPigqbV92YWx1ZS5wYWlyKSk7Ci0gICAg
ICAgIGJyZWFrOwotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKLSAgICBjYXNlIENTU19E
QVNIQk9BUkRfUkVHSU9OOgotICAgICAgICAvLyBEYXNoYm9hcmRSZWdpb24gaXMgbm90IGV4cG9z
ZWQgdG8gdGhlIENTU09NLCBubyBuZWVkIGZvciBhIGRlZXAgY2xvbmUuCi0gICAgICAgIHJlc3Vs
dCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoUmVmUHRyPERhc2hib2FyZFJlZ2lvbj4obV92
YWx1ZS5yZWdpb24pKTsKLSAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgICBjYXNlIENTU19DQUxD
OgotICAgICAgICAvLyBDU1NDYWxjVmFsdWUgaXMgbm90IGV4cG9zZWQgdG8gdGhlIENTU09NLCBu
byBuZWVkIGZvciBhIGRlZXAgY2xvbmUuCi0gICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZh
bHVlOjpjcmVhdGUoUmVmUHRyPENTU0NhbGNWYWx1ZT4obV92YWx1ZS5jYWxjKSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgQ1NTX1NIQVBFOgotICAgICAgICAvLyBDU1NTaGFwZVZhbHVlIGlz
IG5vdCBleHBvc2VkIHRvIHRoZSBDU1NPTSwgbm8gbmVlZCBmb3IgYSBkZWVwIGNsb25lLgotICAg
ICAgICByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKFJlZjxDU1NCYXNpY1NoYXBl
PigqbV92YWx1ZS5zaGFwZSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU19OVU1CRVI6
Ci0gICAgY2FzZSBDU1NfUEVSQ0VOVEFHRToKLSAgICBjYXNlIENTU19FTVM6Ci0gICAgY2FzZSBD
U1NfUVVJUktZX0VNUzoKLSAgICBjYXNlIENTU19FWFM6Ci0gICAgY2FzZSBDU1NfUkVNUzoKLSAg
ICBjYXNlIENTU19DSFM6Ci0gICAgY2FzZSBDU1NfUFg6Ci0gICAgY2FzZSBDU1NfQ006Ci0gICAg
Y2FzZSBDU1NfTU06Ci0gICAgY2FzZSBDU1NfSU46Ci0gICAgY2FzZSBDU1NfUFQ6Ci0gICAgY2Fz
ZSBDU1NfUEM6Ci0gICAgY2FzZSBDU1NfREVHOgotICAgIGNhc2UgQ1NTX1JBRDoKLSAgICBjYXNl
IENTU19HUkFEOgotICAgIGNhc2UgQ1NTX01TOgotICAgIGNhc2UgQ1NTX1M6Ci0gICAgY2FzZSBD
U1NfSFo6Ci0gICAgY2FzZSBDU1NfS0haOgotICAgIGNhc2UgQ1NTX1RVUk46Ci0gICAgY2FzZSBD
U1NfVlc6Ci0gICAgY2FzZSBDU1NfVkg6Ci0gICAgY2FzZSBDU1NfVk1JTjoKLSAgICBjYXNlIENT
U19WTUFYOgotI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikgfHwgRU5BQkxFKFJFU09M
VVRJT05fTUVESUFfUVVFUlkpCi0gICAgY2FzZSBDU1NfRFBQWDoKLSAgICBjYXNlIENTU19EUEk6
Ci0gICAgY2FzZSBDU1NfRFBDTToKLSNlbmRpZgotICAgIGNhc2UgQ1NTX0ZSOgotICAgICAgICBy
ZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKG1fdmFsdWUubnVtLCBzdGF0aWNfY2Fz
dDxVbml0VHlwZT4obV9wcmltaXRpdmVVbml0VHlwZSkpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIENTU19QUk9QRVJUWV9JRDoKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6
OmNyZWF0ZUlkZW50aWZpZXIobV92YWx1ZS5wcm9wZXJ0eUlEKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBDU1NfVkFMVUVfSUQ6Ci0gICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVl
OjpjcmVhdGVJZGVudGlmaWVyKG1fdmFsdWUudmFsdWVJRCk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQ1NTX1JHQkNPTE9SOgotICAgICAgICByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6
Y3JlYXRlKCptX3ZhbHVlLmNvbG9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NfRElN
RU5TSU9OOgotICAgIGNhc2UgQ1NTX1VOS05PV046Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICByZXN1bHQtPnNldENTU09NU2FmZSgp
OwotICAgIHJldHVybiByZXN1bHQucmVsZWFzZU5vbk51bGwoKTsKLX0KLQogYm9vbCBDU1NQcmlt
aXRpdmVWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlJiBvdGhlcikgY29uc3QK
IHsKICAgICBpZiAobV9wcmltaXRpdmVVbml0VHlwZSAhPSBvdGhlci5tX3ByaW1pdGl2ZVVuaXRU
eXBlKQpAQCAtMTM0OCw0ICsxMjUxLDkgQEAgYm9vbCBDU1NQcmltaXRpdmVWYWx1ZTo6ZXF1YWxz
KGNvbnN0IENTUwogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUmVmPERlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlPiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlRGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlV3JhcHBlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIERlcHJlY2F0ZWRDU1NPTVByaW1p
dGl2ZVZhbHVlOjpjcmVhdGUoKnRoaXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAkocmV2aXNpb24gMjA5OTMy
KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDYgKzM4LDcgQEAgY2xhc3MgQ1NTQ2FsY1ZhbHVlOwogY2xhc3MgQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YTsKIGNsYXNzIENvdW50ZXI7CiBjbGFzcyBEYXNoYm9hcmRSZWdpb247
CitjbGFzcyBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTsKIGNsYXNzIExlbmd0aFJlcGVh
dDsKIGNsYXNzIFBhaXI7CiBjbGFzcyBRdWFkOwpAQCAtMjg5LDkgKzI5MCw2IEBAIHB1YmxpYzoK
ICAgICAvLyBGSVhNRS1ORVdQQVJTRVI6IENhbiBkaXRjaCB0aGUgYm9vbGVhbiBhbmQganVzdCB1
c2UgdGhlIHVuaXQgdHlwZSBvbmNlIG9sZCBwYXJzZXIgaXMgZ29uZS4KICAgICBib29sIGlzUXVp
cmtWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNRdWlya1ZhbHVlIHx8IHByaW1pdGl2ZVR5cGUo
KSA9PSBDU1NfUVVJUktZX0VNUzsgfQogCi0gICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjbG9u
ZUZvckNTU09NKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRDU1NPTVNhZmUoKSB7IG1faXNDU1NPTVNh
ZmUgPSB0cnVlOyB9Ci0KICAgICBib29sIGVxdWFscyhjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYp
IGNvbnN0OwogCiAgICAgc3RhdGljIFVuaXRUeXBlIGNhbm9uaWNhbFVuaXRUeXBlRm9yQ2F0ZWdv
cnkoVW5pdENhdGVnb3J5KTsKQEAgLTI5OSw2ICsyOTcsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgZG91YmxlIGNvbXB1dGVOb25DYWxjTGVuZ3RoRG91YmxlKGNvbnN0IENTU1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdGEmLCBVbml0VHlwZSwgZG91YmxlIHZhbHVlKTsKIAorICAgIFJlZjxEZXByZWNh
dGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gY3JlYXRlRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlV3Jh
cHBlcigpIGNvbnN0OworCiAjaWYgQ09NUElMRVIoTVNWQykKICAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgYmUgcHJpdmF0ZSwgYnV0IGZvciBzb21lIHJlYXNvbiBNU1ZDIHRoZW4gZmFpbHMgdG8g
aW52b2tlIGl0IGZyb20gTGF6eU5ldmVyRGVzdHJveWVkOjpjb25zdHJ1Y3QuCiBwdWJsaWM6Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5pZGwJKHJldmlzaW9uIDIw
OTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5pZGwJKG5vbmV4
aXN0ZW50KQpAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotWwotICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUsCi1dIGludGVyZmFjZSBDU1NQcmltaXRpdmVWYWx1ZSA6IENTU1ZhbHVlIHsKLSAg
ICAvLyBVbml0VHlwZXMKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVU5LTk9XTiA9IDA7
Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX05VTUJFUiA9IDE7Ci0gICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgQ1NTX1BFUkNFTlRBR0UgPSAyOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IENTU19FTVMgPSAzOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19FWFMgPSA0OwotICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19QWCA9IDU7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgQ1NTX0NNID0gNjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfTU0gPSA3OwotICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19JTiA9IDg7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgQ1NTX1BUID0gOTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUEMgPSAxMDsKLSAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfREVHID0gMTE7Ci0gICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgQ1NTX1JBRCA9IDEyOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19HUkFEID0g
MTM7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX01TID0gMTQ7Ci0gICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgQ1NTX1MgPSAxNTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfSFog
PSAxNjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfS0haID0gMTc7Ci0gICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgQ1NTX0RJTUVOU0lPTiA9IDE4OwotICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IENTU19TVFJJTkcgPSAxOTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVVJJID0g
MjA7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0lERU5UID0gMjE7Ci0gICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgQ1NTX0FUVFIgPSAyMjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBD
U1NfQ09VTlRFUiA9IDIzOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19SRUNUID0gMjQ7
Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1JHQkNPTE9SID0gMjU7Ci0gICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgQ1NTX1ZXID0gMjY7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NT
X1ZIID0gMjc7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1ZNSU4gPSAyODsKLSAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVk1BWCA9IDI5OwotICAgIAotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBwcmltaXRpdmVUeXBlOwotCi0gICAgW01heVRocm93RXhj
ZXB0aW9uXSB2b2lkIHNldEZsb2F0VmFsdWUob3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgdW5pdFR5
cGUgPSAwLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZmxvYXQgZmxvYXRWYWx1ZSA9IE5hTik7Ci0g
ICAgW01heVRocm93RXhjZXB0aW9uXSB1bnJlc3RyaWN0ZWQgZmxvYXQgZ2V0RmxvYXRWYWx1ZShv
cHRpb25hbCB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSA9IDApOwotCi0gICAgW01heVRocm93RXhj
ZXB0aW9uXSB2b2lkIHNldFN0cmluZ1ZhbHVlKG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHN0cmlu
Z1R5cGUgPSAwLCBvcHRpb25hbCBET01TdHJpbmcgc3RyaW5nVmFsdWUpOwotICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gRE9NU3RyaW5nIGdldFN0cmluZ1ZhbHVlKCk7Ci0KLSAgICBbTWF5VGhyb3dF
eGNlcHRpb25dIENvdW50ZXIgZ2V0Q291bnRlclZhbHVlKCk7Ci0gICAgW01heVRocm93RXhjZXB0
aW9uXSBSZWN0IGdldFJlY3RWYWx1ZSgpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gUkdCQ29s
b3IgZ2V0UkdCQ29sb3JWYWx1ZSgpOwotfTsKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5pZGwKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46
ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHBy
b3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmgJKHJl
dmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9u
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTVZhbHVl
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUu
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNDksNyArNTAsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDc3NUZXh0KGNvbnN0IFN0cmluZyYpID0g
MDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IFN0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBSZWZQ
dHI8Q1NTVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5h
bWUpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4gZ2V0UHJv
cGVydHlDU1NWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgPSAwOwogICAgIHZpcnR1
YWwgU3RyaW5nIGdldFByb3BlcnR5VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpID0g
MDsKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eVByaW9yaXR5KGNvbnN0IFN0cmluZyYg
cHJvcGVydHlOYW1lKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHlTaG9ydGhh
bmQoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MzEsNyArMzEsOSBAQAogICAgIFtDRVJlYWN0aW9ucywgU2V0dGVyTWF5VGhyb3dFeGNlcHRpb25d
IGF0dHJpYnV0ZSBET01TdHJpbmcgY3NzVGV4dDsKIAogICAgIERPTVN0cmluZyBnZXRQcm9wZXJ0
eVZhbHVlKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotICAgIFtDdXN0b21dIENTU1ZhbHVlPyBn
ZXRQcm9wZXJ0eUNTU1ZhbHVlKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOworCisgICAgLy8gVGhp
cyBtZXRob2QgaXMgZGVwcmVjYXRlZCwgYW5kIHdlIHdvdWxkIGxpa2UgdG8gZHJvcCBzdXBwb3J0
IGZvciBpdCBzb21lZGF5CisgICAgW0N1c3RvbV0gRGVwcmVjYXRlZENTU09NVmFsdWU/IGdldFBy
b3BlcnR5Q1NTVmFsdWUoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CiAKICAgICBbQ0VSZWFjdGlv
bnMsIE1heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgcmVtb3ZlUHJvcGVydHkoRE9NU3RyaW5n
IHByb3BlcnR5TmFtZSk7CiAgICAgRE9NU3RyaW5nPyBnZXRQcm9wZXJ0eVByaW9yaXR5KERPTVN0
cmluZyBwcm9wZXJ0eU5hbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCShyZXZpc2lv
biAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02OCw2ICs2OCw5IEBACiAjaW5jbHVkZSAiQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1
ZS5oIgogI2VuZGlmCiAKKyNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5o
IgorI2luY2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oIgorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHN0cnVjdCBTYW1lU2l6ZUFzQ1NTVmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxT
YW1lU2l6ZUFzQ1NTVmFsdWU+IHsKQEAgLTc2LDI2ICs3OSw2IEBAIHN0cnVjdCBTYW1lU2l6ZUFz
Q1NTVmFsdWUgOiBwdWJsaWMgUmVmQ28KIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKENTU1ZhbHVl
KSA9PSBzaXplb2YoU2FtZVNpemVBc0NTU1ZhbHVlKSwgQ1NTX3ZhbHVlX3Nob3VsZF9zdGF5X3Nt
YWxsKTsKIAotY2xhc3MgVGV4dENsb25lQ1NTVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUg
ewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8VGV4dENsb25lQ1NTVmFsdWU+IGNyZWF0ZShDbGFz
c1R5cGUgY2xhc3NUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQpCi0gICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBUZXh0Q2xvbmVDU1NWYWx1ZShjbGFzc1R5cGUsIHRleHQpKTsKLSAg
ICB9Ci0KLSAgICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY3NzVGV4dDsgfQot
Ci1wcml2YXRlOgotICAgIFRleHRDbG9uZUNTU1ZhbHVlKENsYXNzVHlwZSBjbGFzc1R5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dCkgCi0gICAgICAgIDogQ1NTVmFsdWUoY2xhc3NUeXBlLCAvKmlzQ1NT
T01TYWZlKi8gdHJ1ZSkKLSAgICAgICAgLCBtX2Nzc1RleHQodGV4dCkKLSAgICB7Ci0gICAgICAg
IG1faXNUZXh0Q2xvbmUgPSB0cnVlOwotICAgIH0KLQotICAgIFN0cmluZyBtX2Nzc1RleHQ7Ci19
OwotCiBib29sIENTU1ZhbHVlOjppc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW5pdGlhbENsYXNzICYmIGRvd25jYXN0PENTU0luaXRp
YWxWYWx1ZT4oKnRoaXMpLmlzSW1wbGljaXQoKTsKQEAgLTEyMCw5ICsxMDMsNiBAQCBDU1NWYWx1
ZTo6VHlwZSBDU1NWYWx1ZTo6Y3NzVmFsdWVUeXBlKCkgCiAKIGJvb2wgQ1NTVmFsdWU6OnRyYXZl
cnNlU3VicmVzb3VyY2VzKGNvbnN0IHN0ZDo6ZnVuY3Rpb248Ym9vbCAoY29uc3QgQ2FjaGVkUmVz
b3VyY2UmKT4mIGhhbmRsZXIpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBzaG91bGQgZ2V0IGNhbGxl
ZCBmb3IgaW50ZXJuYWwgaW5zdGFuY2VzIG9ubHkuCi0gICAgQVNTRVJUKCFpc0NTU09NU2FmZSgp
KTsKLQogICAgIGlmIChpczxDU1NWYWx1ZUxpc3Q+KCp0aGlzKSkKICAgICAgICAgcmV0dXJuIGRv
d25jYXN0PENTU1ZhbHVlTGlzdD4oKnRoaXMpLnRyYXZlcnNlU3VicmVzb3VyY2VzKGhhbmRsZXIp
OwogICAgIGlmIChpczxDU1NGb250RmFjZVNyY1ZhbHVlPigqdGhpcykpCkBAIC0xNDYsMTEgKzEy
Niw2IEBAIGlubGluZSBzdGF0aWMgYm9vbCBjb21wYXJlQ1NTVmFsdWVzKGNvbnMKIAogYm9vbCBD
U1NWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1ZhbHVlJiBvdGhlcikgY29uc3QKIHsKLSAgICBpZiAo
bV9pc1RleHRDbG9uZSkgewotICAgICAgICBBU1NFUlQoaXNDU1NPTVNhZmUoKSk7Ci0gICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBUZXh0Q2xvbmVDU1NWYWx1ZSo+KHRoaXMpLT5jc3NU
ZXh0KCkgPT0gb3RoZXIuY3NzVGV4dCgpOwotICAgIH0KLQogICAgIGlmIChtX2NsYXNzVHlwZSA9
PSBvdGhlci5tX2NsYXNzVHlwZSkgewogICAgICAgICBzd2l0Y2ggKG1fY2xhc3NUeXBlKSB7CiAg
ICAgICAgIGNhc2UgQXNwZWN0UmF0aW9DbGFzczoKQEAgLTI0OCwxMiArMjIzLDYgQEAgYm9vbCBD
U1NWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1ZhbHVlJiBvdAogCiBTdHJpbmcgQ1NTVmFsdWU6OmNz
c1RleHQoKSBjb25zdAogewotICAgIGlmIChtX2lzVGV4dENsb25lKSB7Ci0gICAgICAgICBBU1NF
UlQoaXNDU1NPTVNhZmUoKSk7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBUZXh0
Q2xvbmVDU1NWYWx1ZSo+KHRoaXMpLT5jc3NUZXh0KCk7Ci0gICAgfQotICAgIEFTU0VSVCghaXND
U1NPTVNhZmUoKSB8fCBpc1N1YnR5cGVFeHBvc2VkVG9DU1NPTSgpKTsKLQogICAgIHN3aXRjaCAo
Y2xhc3NUeXBlKCkpIHsKICAgICBjYXNlIEFzcGVjdFJhdGlvQ2xhc3M6CiAgICAgICAgIHJldHVy
biBkb3duY2FzdDxDU1NBc3BlY3RSYXRpb1ZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwpA
QCAtMzQ3LDEzICszMTYsNiBAQCBTdHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoKSBjb25zdAogCiB2
b2lkIENTU1ZhbHVlOjpkZXN0cm95KCkKIHsKLSAgICBpZiAobV9pc1RleHRDbG9uZSkgewotICAg
ICAgICBBU1NFUlQoaXNDU1NPTVNhZmUoKSk7Ci0gICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxU
ZXh0Q2xvbmVDU1NWYWx1ZSo+KHRoaXMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIEFT
U0VSVCghaXNDU1NPTVNhZmUoKSB8fCBpc1N1YnR5cGVFeHBvc2VkVG9DU1NPTSgpKTsKLQogICAg
IHN3aXRjaCAoY2xhc3NUeXBlKCkpIHsKICAgICBjYXNlIEFzcGVjdFJhdGlvQ2xhc3M6CiAgICAg
ICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NBc3BlY3RSYXRpb1ZhbHVlPih0aGlzKTsKQEAgLTQ4Miwy
MiArNDQ0LDE1IEBAIHZvaWQgQ1NTVmFsdWU6OmRlc3Ryb3koKQogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCi1SZWZQdHI8Q1NTVmFsdWU+IENTU1ZhbHVlOjpjbG9uZUZvckNTU09NKCkg
Y29uc3QKK1JlZjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4gQ1NTVmFsdWU6OmNyZWF0ZURlcHJlY2F0
ZWRDU1NPTVdyYXBwZXIoKSBjb25zdAogewotICAgIHN3aXRjaCAoY2xhc3NUeXBlKCkpIHsKLSAg
ICBjYXNlIFByaW1pdGl2ZUNsYXNzOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTUHJpbWl0
aXZlVmFsdWU+KCp0aGlzKS5jbG9uZUZvckNTU09NKCk7Ci0gICAgY2FzZSBWYWx1ZUxpc3RDbGFz
czoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1ZhbHVlTGlzdD4oKnRoaXMpLmNsb25lRm9y
Q1NTT00oKTsKLSAgICBjYXNlIEltYWdlQ2xhc3M6Ci0gICAgY2FzZSBDdXJzb3JJbWFnZUNsYXNz
OgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTSW1hZ2VWYWx1ZT4oKnRoaXMpLmNsb25lRm9y
Q1NTT00oKTsKLSAgICBjYXNlIEltYWdlU2V0Q2xhc3M6Ci0gICAgICAgIHJldHVybiBkb3duY2Fz
dDxDU1NJbWFnZVNldFZhbHVlPigqdGhpcykuY2xvbmVGb3JDU1NPTSgpOwotICAgIGRlZmF1bHQ6
Ci0gICAgICAgIEFTU0VSVCghaXNTdWJ0eXBlRXhwb3NlZFRvQ1NTT00oKSk7Ci0gICAgICAgIHJl
dHVybiBUZXh0Q2xvbmVDU1NWYWx1ZTo6Y3JlYXRlKGNsYXNzVHlwZSgpLCBjc3NUZXh0KCkpOwot
ICAgIH0KKyAgICBpZiAoaXNJbWFnZVZhbHVlKCkgfHwgaXNDdXJzb3JJbWFnZVZhbHVlKCkpCisg
ICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NJbWFnZVZhbHVlPih0aGlzKS0+Y3JlYXRlRGVwcmVj
YXRlZENTU09NV3JhcHBlcigpOworICAgIGlmIChpc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAg
IHJldHVybiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGRvd25jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlPigqdGhpcykpOworICAgIGlmIChpc1ZhbHVlTGlzdCgpKQorICAgICAg
ICByZXR1cm4gRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0OjpjcmVhdGUoZG93bmNhc3Q8Q1NTVmFs
dWVMaXN0PigqdGhpcykpOworICAgIHJldHVybiBEZXByZWNhdGVkQ1NTT01Db21wbGV4VmFsdWU6
OmNyZWF0ZSgqdGhpcyk7CiB9CiAKIGJvb2wgQ1NTVmFsdWU6OnRyZWF0QXNJbmhlcml0ZWRWYWx1
ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUu
aAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDE1ICszMiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIENTU0N1c3RvbVByb3BlcnR5VmFsdWU7CiBjbGFzcyBDYWNoZWRSZXNvdXJjZTsKK2NsYXNz
IERlcHJlY2F0ZWRDU1NPTVZhbHVlOwogY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwogCiBlbnVt
IENTU1Byb3BlcnR5SUQgOiB1aW50MTZfdDsKIAotLy8gRklYTUU6IFRoZSBjdXJyZW50IENTU1Zh
bHVlIGFuZCBzdWJjbGFzc2VzIHNob3VsZCBiZSB0dXJuZWQgaW50byBpbnRlcm5hbCB0eXBlcyAo
U3R5bGVWYWx1ZSkuCi0vLyBUaGUgZmV3IHN1YnR5cGVzIHRoYXQgYXJlIGFjdHVhbGx5IGV4cG9z
ZWQgaW4gQ1NTT00gY2FuIGJlIHNlZW4gaW4gdGhlIGNsb25lRm9yQ1NTT00oKSBmdW5jdGlvbi4K
LS8vIFRoZXkgc2hvdWxkIGJlIGhhbmRsZWQgYnkgc2VwYXJhdGUgd3JhcHBlciBjbGFzc2VzLgot
Ci0vLyBQbGVhc2UgZG9uJ3QgZXhwb3NlIG1vcmUgQ1NTVmFsdWUgdHlwZXMgdG8gdGhlIHdlYi4K
IGNsYXNzIENTU1ZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8Q1NTVmFsdWU+IHsKIHB1YmxpYzoK
ICAgICBlbnVtIFR5cGUgewpAQCAtNjEsMTEgKzU3LDggQEAgcHVibGljOgogICAgICAgICAgICAg
ZGVzdHJveSgpOwogICAgIH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIFR5cGUgY3NzVmFsdWVUeXBl
KCkgY29uc3Q7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0Owot
Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q3NzVGV4dChjb25zdCBTdHJpbmcmKSB7IHJldHVy
biB7IH07IH0gLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZC4KKyAgICBUeXBlIGNzc1ZhbHVlVHlw
ZSgpIGNvbnN0OworICAgIFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CiAKICAgICBib29sIGlzUHJp
bWl0aXZlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBQcmltaXRpdmVDbGFz
czsgfQogICAgIGJvb2wgaXNWYWx1ZUxpc3QoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA+
PSBWYWx1ZUxpc3RDbGFzczsgfQpAQCAtMTI2LDEzICsxMTksNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgYm9vbCBoYXNWYXJpYWJsZVJlZmVyZW5jZXMoKSBjb25zdCB7IHJldHVybiBpc1ZhcmlhYmxl
UmVmZXJlbmNlVmFsdWUoKSB8fCBpc1BlbmRpbmdTdWJzdGl0dXRpb25WYWx1ZSgpOyB9CiAKLSAg
ICBib29sIGlzQ1NTT01TYWZlKCkgY29uc3QgeyByZXR1cm4gbV9pc0NTU09NU2FmZTsgfQotICAg
IGJvb2wgaXNTdWJ0eXBlRXhwb3NlZFRvQ1NTT00oKSBjb25zdAotICAgIHsgCi0gICAgICAgIHJl
dHVybiBpc1ByaW1pdGl2ZVZhbHVlKCkgfHwgaXNWYWx1ZUxpc3QoKTsKLSAgICB9Ci0KLSAgICBS
ZWZQdHI8Q1NTVmFsdWU+IGNsb25lRm9yQ1NTT00oKSBjb25zdDsKKyAgICBSZWY8RGVwcmVjYXRl
ZENTU09NVmFsdWU+IGNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIoKSBjb25zdDsKIAogICAg
IGJvb2wgdHJhdmVyc2VTdWJyZXNvdXJjZXMoY29uc3Qgc3RkOjpmdW5jdGlvbjxib29sIChjb25z
dCBDYWNoZWRSZXNvdXJjZSYpPiYgaGFuZGxlcikgY29uc3Q7CiAKQEAgLTIxMCw2ICsxOTcsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIERvIG5vdCBhcHBlbmQgbm9uLWxpc3QgY2xhc3MgdHlw
ZXMgaGVyZS4KICAgICB9OwogCitwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBWYWx1
ZUxpc3RTZXBhcmF0b3JCaXRzID0gMjsKICAgICBlbnVtIFZhbHVlTGlzdFNlcGFyYXRvciB7CiAg
ICAgICAgIFNwYWNlU2VwYXJhdG9yLApAQCAtMjE3LDEyICsyMDUsMTEgQEAgcHJvdGVjdGVkOgog
ICAgICAgICBTbGFzaFNlcGFyYXRvcgogICAgIH07CiAKK3Byb3RlY3RlZDoKICAgICBDbGFzc1R5
cGUgY2xhc3NUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q2xhc3NUeXBlPihtX2Ns
YXNzVHlwZSk7IH0KIAotICAgIGV4cGxpY2l0IENTU1ZhbHVlKENsYXNzVHlwZSBjbGFzc1R5cGUs
IGJvb2wgaXNDU1NPTVNhZmUgPSBmYWxzZSkKLSAgICAgICAgOiBtX2lzQ1NTT01TYWZlKGlzQ1NT
T01TYWZlKQotICAgICAgICAsIG1faXNUZXh0Q2xvbmUoZmFsc2UpCi0gICAgICAgICwgbV9wcmlt
aXRpdmVVbml0VHlwZSgwKQorICAgIGV4cGxpY2l0IENTU1ZhbHVlKENsYXNzVHlwZSBjbGFzc1R5
cGUpCisgICAgICAgIDogbV9wcmltaXRpdmVVbml0VHlwZSgwKQogICAgICAgICAsIG1faGFzQ2Fj
aGVkQ1NTVGV4dChmYWxzZSkKICAgICAgICAgLCBtX2lzUXVpcmtWYWx1ZShmYWxzZSkKICAgICAg
ICAgLCBtX3ZhbHVlTGlzdFNlcGFyYXRvcihTcGFjZVNlcGFyYXRvcikKQEAgLTIzOSw4ICsyMjYs
NiBAQCBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVzdHJveSgpOwogCiBwcm90
ZWN0ZWQ6Ci0gICAgdW5zaWduZWQgbV9pc0NTU09NU2FmZSA6IDE7Ci0gICAgdW5zaWduZWQgbV9p
c1RleHRDbG9uZSA6IDE7CiAgICAgLy8gVGhlIGJpdHMgaW4gdGhpcyBzZWN0aW9uIGFyZSBvbmx5
IHVzZWQgYnkgc3BlY2lmaWMgc3ViY2xhc3NlcyBidXQga2VwdCBoZXJlCiAgICAgLy8gdG8gbWF4
aW1pemUgc3RydWN0IHBhY2tpbmcuCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmlkbAkocmV2
aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmlkbAkobm9uZXhp
c3RlbnQpCkBAIC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcs
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
Ci0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi1bCi0gICAgQ3VzdG9tSXNS
ZWFjaGFibGUsCi0gICAgQ3VzdG9tVG9KU09iamVjdCwKLSAgICBFeHBvcnRUb1dyYXBwZWRGdW5j
dGlvbiwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotICAgIEpTQ3VzdG9tRmluYWxp
emUsCi1dIGludGVyZmFjZSBDU1NWYWx1ZSB7Ci0gICAgLy8gVW5pdFR5cGVzCi0gICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgQ1NTX0lOSEVSSVQgPSAwOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IENTU19QUklNSVRJVkVfVkFMVUUgPSAxOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19W
QUxVRV9MSVNUID0gMjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfQ1VTVE9NID0gMzsK
LQotICAgIFtTZXR0ZXJNYXlUaHJvd0V4Y2VwdGlvbl0gYXR0cmlidXRlIERPTVN0cmluZz8gY3Nz
VGV4dDsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBjc3NWYWx1ZVR5
cGU7Ci19OwoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
LmlkbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0
aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUxpc3QuY3BwCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1
ZGUgIkNTU0N1c3RvbVByb3BlcnR5VmFsdWUuaCIKICNpbmNsdWRlICJDU1NGdW5jdGlvblZhbHVl
LmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVk
Q1NTT01WYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMTQ0LDE4ICsxNDUsNCBAQCBib29sIENTU1ZhbHVlTGlzdDo6
dHJhdmVyc2VTdWJyZXNvdXJjZXMoCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1DU1NWYWx1ZUxp
c3Q6OkNTU1ZhbHVlTGlzdChjb25zdCBDU1NWYWx1ZUxpc3QmIGNsb25lRnJvbSkKLSAgICA6IENT
U1ZhbHVlKGNsb25lRnJvbS5jbGFzc1R5cGUoKSwgLyogaXNDU1NPTVNhZmUgKi8gdHJ1ZSkKLXsK
LSAgICBtX3ZhbHVlTGlzdFNlcGFyYXRvciA9IGNsb25lRnJvbS5tX3ZhbHVlTGlzdFNlcGFyYXRv
cjsKLSAgICBtX3ZhbHVlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNsb25lRnJvbS5tX3ZhbHVl
cy5zaXplKCkpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDAsIHNpemUgPSBjbG9uZUZyb20ubV92
YWx1ZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBtX3ZhbHVlcy51bmNoZWNrZWRB
cHBlbmQoKmNsb25lRnJvbS5tX3ZhbHVlc1tpXS0+Y2xvbmVGb3JDU1NPTSgpKTsKLX0KLQotUmVm
PENTU1ZhbHVlTGlzdD4gQ1NTVmFsdWVMaXN0OjpjbG9uZUZvckNTU09NKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NWYWx1ZUxpc3QoKnRoaXMpKTsKLX0KLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuaAkocmV2aXNp
b24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC02OSwxMiArNjksMTEgQEAgcHVibGljOgogICAgIGJvb2wgZXF1YWxzKGNvbnN0
IENTU1ZhbHVlJikgY29uc3Q7CiAKICAgICBib29sIHRyYXZlcnNlU3VicmVzb3VyY2VzKGNvbnN0
IHN0ZDo6ZnVuY3Rpb248Ym9vbCAoY29uc3QgQ2FjaGVkUmVzb3VyY2UmKT4mIGhhbmRsZXIpIGNv
bnN0OwotICAgIAotICAgIFJlZjxDU1NWYWx1ZUxpc3Q+IGNsb25lRm9yQ1NTT00oKSBjb25zdDsK
KworICAgIHVuc2lnbmVkIHNlcGFyYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWVMaXN0U2Vw
YXJhdG9yOyB9CiAKIHByb3RlY3RlZDoKICAgICBDU1NWYWx1ZUxpc3QoQ2xhc3NUeXBlLCBWYWx1
ZUxpc3RTZXBhcmF0b3IpOwotICAgIENTU1ZhbHVlTGlzdChjb25zdCBDU1NWYWx1ZUxpc3QmIGNs
b25lRnJvbSk7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ1NTVmFsdWVMaXN0KFZhbHVlTGlz
dFNlcGFyYXRvcik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmlkbAkocmV2aXNp
b24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5pZGwJKG5vbmV4
aXN0ZW50KQpAQCAtMSwzMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0vLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotWwot
ICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCi1dIGludGVyZmFjZSBDU1NWYWx1ZUxpc3Qg
OiBDU1NWYWx1ZSB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3Ro
OwotICAgIGdldHRlciBDU1NWYWx1ZSBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwotfTsKLQoK
UHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5pZGwK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q291bnRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVyLmgJKHJl
dmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDYgKzM2LDEwIEBAIHB1YmxpYzoKICAgICBTdHJpbmcgbGlzdFN0eWxlKCkg
Y29uc3QgeyByZXR1cm4gbV9saXN0U3R5bGUtPnN0cmluZ1ZhbHVlKCk7IH0KICAgICBTdHJpbmcg
c2VwYXJhdG9yKCkgY29uc3QgeyByZXR1cm4gbV9zZXBhcmF0b3ItPnN0cmluZ1ZhbHVlKCk7IH0K
IAorICAgIGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlJiBpZGVudGlmaWVyVmFsdWUoKSBjb25zdCB7
IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICBjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYgbGlz
dFN0eWxlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2xpc3RTdHlsZTsgfQorICAgIGNvbnN0IENT
U1ByaW1pdGl2ZVZhbHVlJiBzZXBhcmF0b3JWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VwYXJh
dG9yOyB9CisgICAgCiAgICAgQ1NTVmFsdWVJRCBsaXN0U3R5bGVJZGVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fbGlzdFN0eWxlLT52YWx1ZUlEKCk7IH0KIAogICAgIHZvaWQgc2V0SWRlbnRpZmllcihS
ZWY8Q1NTUHJpbWl0aXZlVmFsdWU+JiYgaWRlbnRpZmllcikgeyBtX2lkZW50aWZpZXIgPSBXVEZN
b3ZlKGlkZW50aWZpZXIpOyB9CkBAIC00OCwxMSArNTIsNiBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICAmJiBsaXN0U3R5bGUoKSA9PSBvdGhlci5saXN0U3R5bGUoKQogICAgICAgICAgICAgJiYgc2Vw
YXJhdG9yKCkgPT0gb3RoZXIuc2VwYXJhdG9yKCk7CiAgICAgfQotICAgIAotICAgIFJlZjxDb3Vu
dGVyPiBjbG9uZUZvckNTU09NKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBjcmVhdGUo
bV9pZGVudGlmaWVyLT5jbG9uZUZvckNTU09NKCksIG1fbGlzdFN0eWxlLT5jbG9uZUZvckNTU09N
KCksIG1fc2VwYXJhdG9yLT5jbG9uZUZvckNTU09NKCkpOwotICAgIH0KIAogcHJpdmF0ZToKICAg
ICBDb3VudGVyKFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4mJiBpZGVudGlmaWVyLCBSZWY8Q1NTUHJp
bWl0aXZlVmFsdWU+JiYgbGlzdFN0eWxlLCBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+JiYgc2VwYXJh
dG9yKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NvdW50ZXIuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVyLmlkbAkocmV2aXNpb24gMjA5OTMyKQorKysgU291
cmNlL1dlYkNvcmUvY3NzL0NvdW50ZXIuaWRsCShub25leGlzdGVudCkKQEAgLTEsMjcgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgotICovCi0KLVsKLSAgICBFeHBvcnRUb1dyYXBwZWRGdW5jdGlvbiwKLSAgICBJbXBsZW1lbnRh
dGlvbkxhY2tzVlRhYmxlLAotXSBpbnRlcmZhY2UgQ291bnRlciB7Ci0gICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBpZGVudGlmaWVyOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgbGlzdFN0eWxlOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2VwYXJh
dG9yOwotfTsKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVy
LmlkbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0
aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkQ1NTT01Db3VudGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NQ291bnRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvdW50ZXIuaCIKKyNpbmNsdWRlICJEZXByZWNh
dGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRGVwcmVjYXRlZENTU09NQ291bnRlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERl
cHJlY2F0ZWRDU1NPTUNvdW50ZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERlcHJlY2F0
ZWRDU1NPTUNvdW50ZXI+IGNyZWF0ZShjb25zdCBDb3VudGVyJiBjb3VudGVyKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIoY291bnRlcikpOyB9CisKKyAgICBT
dHJpbmcgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllci0+c3RyaW5nVmFs
dWUoKTsgfQorICAgIFN0cmluZyBsaXN0U3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2xpc3RTdHls
ZS0+c3RyaW5nVmFsdWUoKTsgfQorICAgIFN0cmluZyBzZXBhcmF0b3IoKSBjb25zdCB7IHJldHVy
biBtX3NlcGFyYXRvci0+c3RyaW5nVmFsdWUoKTsgfQorICAgIAorcHJpdmF0ZToKKyAgICBEZXBy
ZWNhdGVkQ1NTT01Db3VudGVyKGNvbnN0IENvdW50ZXImIGNvdW50ZXIpCisgICAgICAgIDogbV9p
ZGVudGlmaWVyKGNvdW50ZXIuaWRlbnRpZmllclZhbHVlKCkuY3JlYXRlRGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlV3JhcHBlcigpKQorICAgICAgICAsIG1fbGlzdFN0eWxlKGNvdW50ZXIubGlzdFN0
eWxlVmFsdWUoKS5jcmVhdGVEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVXcmFwcGVyKCkpCisgICAg
ICAgICwgbV9zZXBhcmF0b3IoY291bnRlci5zZXBhcmF0b3JWYWx1ZSgpLmNyZWF0ZURlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVdyYXBwZXIoKSkKKyAgICB7CisgICAgfQorICAgIAorICAgIFJlZjxE
ZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gbV9pZGVudGlmaWVyOworICAgIFJlZjxEZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gbV9saXN0U3R5bGU7CisgICAgUmVmPERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPiBtX3NlcGFyYXRvcjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Db3VudGVy
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NQ291
bnRlci5pZGwJKHJldmlzaW9uIDIwOTkzMikJKGZyb20gU291cmNlL1dlYkNvcmUvY3NzL0NvdW50
ZXIuaWRsOjIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Db3Vu
dGVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworWworICAgIEV4
cG9ydFRvV3JhcHBlZEZ1bmN0aW9uLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCitd
IGludGVyZmFjZSBDb3VudGVyIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlk
ZW50aWZpZXI7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsaXN0U3R5bGU7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzZXBhcmF0b3I7Cit9OwpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Db3VudGVyLmlkbAkocmV2aXNpb24g
MjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yMCw3ICsyMCw4IEBACiBbCiAgICAgRXhwb3J0VG9XcmFwcGVk
RnVuY3Rpb24sCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLV0gaW50ZXJmYWNlIENv
dW50ZXIgeworICAgIEludGVyZmFjZU5hbWU9Q291bnRlcgorXSBpbnRlcmZhY2UgRGVwcmVjYXRl
ZENTU09NQ291bnRlciB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBpZGVudGlm
aWVyOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGlzdFN0eWxlOwogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2VwYXJhdG9yOwpJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVW
YWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIgorCisjaW5jbHVkZSAiRGVwcmVj
YXRlZENTU09NQ291bnRlci5oIgorI2luY2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmgi
CisjaW5jbHVkZSAiRGVwcmVjYXRlZENTU09NUmVjdC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorLy8gRklYTUU6IEZvciBub3cgdGhl
c2Ugc3RpbGwgY2FsbCBpbnRvIENTU1ByaW1pdGl2ZVZhbHVlLCBidXQgYXMgd2UgcmVmYWN0b3Ig
aW50byBzdWJjbGFzc2VzCisvLyBzdWNoIGFzIFN0eWxlQ291bnRlclZhbHVlLCBTdHlsZVJlY3RW
YWx1ZSwgYW5kIFN0eWxlQ29sb3JWYWx1ZSwgdGhlc2UgbWV0aG9kcyB3aWxsIGdldAorLy8gbW9y
ZSBjb21wbGljYXRlZC4KKworRXhjZXB0aW9uT3I8UmVmPERlcHJlY2F0ZWRDU1NPTUNvdW50ZXI+
PiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6Z2V0Q291bnRlclZhbHVlKCkgY29uc3QK
K3sKKyAgICBFeGNlcHRpb25PcjxDb3VudGVyJj4gY291bnRlciA9IG1fdmFsdWUtPmdldENvdW50
ZXJWYWx1ZSgpOworICAgIGlmIChjb3VudGVyLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07CisgICAgcmV0dXJuIERlcHJlY2F0
ZWRDU1NPTUNvdW50ZXI6OmNyZWF0ZShjb3VudGVyLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKK30K
KyAgICAKK0V4Y2VwdGlvbk9yPFJlZjxEZXByZWNhdGVkQ1NTT01SZWN0Pj4gRGVwcmVjYXRlZENT
U09NUHJpbWl0aXZlVmFsdWU6OmdldFJlY3RWYWx1ZSgpIGNvbnN0Cit7CisgICAgRXhjZXB0aW9u
T3I8UmVjdCY+IHJlY3QgPSBtX3ZhbHVlLT5nZXRSZWN0VmFsdWUoKTsKKyAgICBpZiAocmVjdC5o
YXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNT
X0VSUiB9OworICAgIHJldHVybiBEZXByZWNhdGVkQ1NTT01SZWN0OjpjcmVhdGUocmVjdC5yZWxl
YXNlUmV0dXJuVmFsdWUoKSk7Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxEZXByZWNhdGVkQ1NTT01S
R0JDb2xvcj4+IERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpnZXRSR0JDb2xvclZhbHVl
KCkgY29uc3QKK3sKKyAgICBFeGNlcHRpb25PcjxSZWY8UkdCQ29sb3I+PiBjb2xvciA9IG1fdmFs
dWUtPmdldFJHQkNvbG9yVmFsdWUoKTsKKyAgICBpZiAoY29sb3IuaGFzRXhjZXB0aW9uKCkpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19FUlIgfTsKKyAgICByZXR1
cm4gRGVwcmVjYXRlZENTU09NUkdCQ29sb3I6OmNyZWF0ZShjb2xvci5yZWxlYXNlUmV0dXJuVmFs
dWUoKSk7Cit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Q
cmltaXRpdmVWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNh
dGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1
ZGUgIkRlcHJlY2F0ZWRDU1NPTVZhbHVlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRGVwcmVjYXRlZENTU09NQ291bnRlcjsKK2NsYXNzIERlcHJlY2F0ZWRDU1NPTVJHQkNvbG9y
OworY2xhc3MgRGVwcmVjYXRlZENTU09NUmVjdDsKKyAgICAKK2NsYXNzIERlcHJlY2F0ZWRDU1NP
TVByaW1pdGl2ZVZhbHVlIDogcHVibGljIERlcHJlY2F0ZWRDU1NPTVZhbHVlIHsKK3B1YmxpYzoK
KyAgICAvLyBPbmx5IGV4cG9zZSB3aGF0J3MgaW4gdGhlIElETCBmaWxlLgorICAgIGVudW0gVW5p
dFR5cGUgeworICAgICAgICBDU1NfVU5LTk9XTiA9IDAsCisgICAgICAgIENTU19OVU1CRVIgPSAx
LAorICAgICAgICBDU1NfUEVSQ0VOVEFHRSA9IDIsCisgICAgICAgIENTU19FTVMgPSAzLAorICAg
ICAgICBDU1NfRVhTID0gNCwKKyAgICAgICAgQ1NTX1BYID0gNSwKKyAgICAgICAgQ1NTX0NNID0g
NiwKKyAgICAgICAgQ1NTX01NID0gNywKKyAgICAgICAgQ1NTX0lOID0gOCwKKyAgICAgICAgQ1NT
X1BUID0gOSwKKyAgICAgICAgQ1NTX1BDID0gMTAsCisgICAgICAgIENTU19ERUcgPSAxMSwKKyAg
ICAgICAgQ1NTX1JBRCA9IDEyLAorICAgICAgICBDU1NfR1JBRCA9IDEzLAorICAgICAgICBDU1Nf
TVMgPSAxNCwKKyAgICAgICAgQ1NTX1MgPSAxNSwKKyAgICAgICAgQ1NTX0haID0gMTYsCisgICAg
ICAgIENTU19LSFogPSAxNywKKyAgICAgICAgQ1NTX0RJTUVOU0lPTiA9IDE4LAorICAgICAgICBD
U1NfU1RSSU5HID0gMTksCisgICAgICAgIENTU19VUkkgPSAyMCwKKyAgICAgICAgQ1NTX0lERU5U
ID0gMjEsCisgICAgICAgIENTU19BVFRSID0gMjIsCisgICAgICAgIENTU19DT1VOVEVSID0gMjMs
CisgICAgICAgIENTU19SRUNUID0gMjQsCisgICAgICAgIENTU19SR0JDT0xPUiA9IDI1LAorICAg
ICAgICBDU1NfVlcgPSAyNiwKKyAgICAgICAgQ1NTX1ZIID0gMjcsCisgICAgICAgIENTU19WTUlO
ID0gMjgsCisgICAgICAgIENTU19WTUFYID0gMjkKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxE
ZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gY3JlYXRlKGNvbnN0IENTU1ByaW1pdGl2ZVZh
bHVlJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKHZhbHVlKSk7CisgICAgfQorCisgICAgYm9vbCBlcXVhbHMo
Y29uc3QgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVy
biBtX3ZhbHVlLT5lcXVhbHMob3RoZXIubV92YWx1ZSk7IH0KKyAgICB1bnNpZ25lZCBjc3NWYWx1
ZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLT5jc3NWYWx1ZVR5cGUoKTsgfQorICAgIFN0
cmluZyBjc3NUZXh0KCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS0+Y3NzVGV4dCgpOyB9CisgICAg
CisgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkgdGhlc2Ugd2lsbCBjb250YWluIG1vcmUgY29kZSBh
bmQgbm90IGp1c3QgY2FsbCB0aHJvdWdoIHRvCisgICAgLy8gQ1NTUHJpbWl0aXZlVmFsdWUuCisg
ICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgc2hvcnQgcHJpbWl0aXZlVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdmFsdWUtPnByaW1pdGl2ZVR5cGUoKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldEZsb2F0VmFsdWUodW5zaWduZWQgc2hvcnQgdW5pdFR5cGUsIGRv
dWJsZSBmbG9hdFZhbHVlKSB7IHJldHVybiBtX3ZhbHVlLT5zZXRGbG9hdFZhbHVlKHVuaXRUeXBl
LCBmbG9hdFZhbHVlKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPGZsb2F0PiBn
ZXRGbG9hdFZhbHVlKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlLT5nZXRGbG9hdFZhbHVlKHVuaXRUeXBlKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldFN0cmluZ1ZhbHVlKHVuc2lnbmVkIHNob3J0IHN0cmluZ1R5cGUsIGNv
bnN0IFN0cmluZyYgc3RyaW5nVmFsdWUpIHsgcmV0dXJuIG1fdmFsdWUtPnNldFN0cmluZ1ZhbHVl
KHN0cmluZ1R5cGUsIHN0cmluZ1ZhbHVlKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlv
bk9yPFN0cmluZz4gZ2V0U3RyaW5nVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLT5nZXRT
dHJpbmdWYWx1ZSgpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8UmVmPERlcHJl
Y2F0ZWRDU1NPTUNvdW50ZXI+PiBnZXRDb3VudGVyVmFsdWUoKSBjb25zdDsKKyAgICBXRUJDT1JF
X0VYUE9SVCBFeGNlcHRpb25PcjxSZWY8RGVwcmVjYXRlZENTU09NUmVjdD4+IGdldFJlY3RWYWx1
ZSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFJlZjxEZXByZWNhdGVk
Q1NTT01SR0JDb2xvcj4+IGdldFJHQkNvbG9yVmFsdWUoKSBjb25zdDsKKworICAgIFN0cmluZyBz
dHJpbmdWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUtPnN0cmluZ1ZhbHVlKCk7IH0KKwor
cHJvdGVjdGVkOgorICAgIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKGNvbnN0IENTU1By
aW1pdGl2ZVZhbHVlJiB2YWx1ZSkKKyAgICAgICAgOiBEZXByZWNhdGVkQ1NTT01WYWx1ZShEZXBy
ZWNhdGVkUHJpbWl0aXZlVmFsdWVDbGFzcykKKyAgICAgICAgLCBtX3ZhbHVlKGNvbnN0X2Nhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWUmPih2YWx1ZSkpCisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fdmFsdWU7Cit9OworICAgIAorfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NTU09NX1ZBTFVFKERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLCBpc1ByaW1pdGl2ZVZhbHVlKCkpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5pZGwJ
KHJldmlzaW9uIDIwOTkzMikJKGZyb20gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlLmlkbDoyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCitb
CisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKK10gaW50ZXJmYWNlIENTU1ByaW1pdGl2
ZVZhbHVlIDogQ1NTVmFsdWUgeworICAgIC8vIFVuaXRUeXBlcworICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IENTU19VTktOT1dOID0gMDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfTlVN
QkVSID0gMTsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUEVSQ0VOVEFHRSA9IDI7Cisg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0VNUyA9IDM7CisgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgQ1NTX0VYUyA9IDQ7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1BYID0gNTsK
KyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfQ00gPSA2OworICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IENTU19NTSA9IDc7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0lOID0gODsK
KyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUFQgPSA5OworICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IENTU19QQyA9IDEwOworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19ERUcgPSAx
MTsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUkFEID0gMTI7CisgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgQ1NTX0dSQUQgPSAxMzsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1Nf
TVMgPSAxNDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUyA9IDE1OworICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IENTU19IWiA9IDE2OworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENT
U19LSFogPSAxNzsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfRElNRU5TSU9OID0gMTg7
CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1NUUklORyA9IDE5OworICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IENTU19VUkkgPSAyMDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1Nf
SURFTlQgPSAyMTsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfQVRUUiA9IDIyOworICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19DT1VOVEVSID0gMjM7CisgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgQ1NTX1JFQ1QgPSAyNDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUkdC
Q09MT1IgPSAyNTsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVlcgPSAyNjsKKyAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVkggPSAyNzsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBDU1NfVk1JTiA9IDI4OworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19WTUFYID0gMjk7
CisgICAgCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHByaW1pdGl2ZVR5
cGU7CisKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgc2V0RmxvYXRWYWx1ZShvcHRpb25h
bCB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSA9IDAsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9h
dCBmbG9hdFZhbHVlID0gTmFOKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVucmVzdHJpY3Rl
ZCBmbG9hdCBnZXRGbG9hdFZhbHVlKG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlID0g
MCk7CisKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgc2V0U3RyaW5nVmFsdWUob3B0aW9u
YWwgdW5zaWduZWQgc2hvcnQgc3RyaW5nVHlwZSA9IDAsIG9wdGlvbmFsIERPTVN0cmluZyBzdHJp
bmdWYWx1ZSk7CisgICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgZ2V0U3RyaW5nVmFs
dWUoKTsKKworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gQ291bnRlciBnZXRDb3VudGVyVmFsdWUo
KTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFJlY3QgZ2V0UmVjdFZhbHVlKCk7CisgICAgW01h
eVRocm93RXhjZXB0aW9uXSBSR0JDb2xvciBnZXRSR0JDb2xvclZhbHVlKCk7Cit9OwpJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFs
dWUuaWRsCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZENTU09NUHJpbWl0aXZlVmFsdWUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw4IEBA
CiAKIFsKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotXSBpbnRlcmZhY2UgQ1NTUHJp
bWl0aXZlVmFsdWUgOiBDU1NWYWx1ZSB7CisgICAgSW50ZXJmYWNlTmFtZT1DU1NQcmltaXRpdmVW
YWx1ZQorXSBpbnRlcmZhY2UgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUgOiBEZXByZWNh
dGVkQ1NTT01WYWx1ZSB7CiAgICAgLy8gVW5pdFR5cGVzCiAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgQ1NTX1VOS05PV04gPSAwOwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19OVU1CRVIg
PSAxOwpAQCAtNjAsNyArNjEsNyBAQAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBzZXRT
dHJpbmdWYWx1ZShvcHRpb25hbCB1bnNpZ25lZCBzaG9ydCBzdHJpbmdUeXBlID0gMCwgb3B0aW9u
YWwgRE9NU3RyaW5nIHN0cmluZ1ZhbHVlKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVN0
cmluZyBnZXRTdHJpbmdWYWx1ZSgpOwogCi0gICAgW01heVRocm93RXhjZXB0aW9uXSBDb3VudGVy
IGdldENvdW50ZXJWYWx1ZSgpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gUmVjdCBnZXRSZWN0
VmFsdWUoKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFJHQkNvbG9yIGdldFJHQkNvbG9yVmFs
dWUoKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIgZ2V0
Q291bnRlclZhbHVlKCk7CisgICAgW01heVRocm93RXhjZXB0aW9uXSBEZXByZWNhdGVkQ1NTT01S
ZWN0IGdldFJlY3RWYWx1ZSgpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRGVwcmVjYXRlZENT
U09NUkdCQ29sb3IgZ2V0UkdCQ29sb3JWYWx1ZSgpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMyBMYXJzIEtub2xs
IChrbm9sbEBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgIlJHQkNv
bG9yLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXByZWNhdGVkQ1NT
T01SR0JDb2xvciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERlcHJlY2F0ZWRDU1NPTVJHQkNv
bG9yPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEZXByZWNhdGVkQ1NTT01SR0JDb2xvcj4g
Y3JlYXRlKGNvbnN0IFJHQkNvbG9yJiBjb2xvcikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZXBy
ZWNhdGVkQ1NTT01SR0JDb2xvcihjb2xvcikpOyB9CisKKyAgICBEZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZSogcmVkKCkgeyByZXR1cm4gbV9yZWQuZ2V0KCk7IH0KKyAgICBEZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVWYWx1ZSogZ3JlZW4oKSB7IHJldHVybiBtX2dyZWVuLmdldCgpOyB9Cisg
ICAgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUqIGJsdWUoKSB7IHJldHVybiBtX2JsdWUu
Z2V0KCk7IH0KKyAgICBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZSogYWxwaGEoKSB7IHJl
dHVybiBtX2FscGhhLmdldCgpOyB9CisgICAgCisgICAgQ29sb3IgY29sb3IoKSBjb25zdCB7IHJl
dHVybiBDb2xvcihtX3JnYkNvbG9yKTsgfQorCitwcml2YXRlOgorICAgIERlcHJlY2F0ZWRDU1NP
TVJHQkNvbG9yKGNvbnN0IFJHQkNvbG9yJiBjb2xvcikKKyAgICAgICAgOiBtX3JnYkNvbG9yKGNv
bG9yLnJnYkNvbG9yKCkpCisgICAgeworICAgICAgICAvLyBSZWQKKyAgICAgICAgdW5zaWduZWQg
dmFsdWUgPSAobV9yZ2JDb2xvciA+PiAxNikgJiAweEZGOworICAgICAgICBhdXRvIHJlc3VsdCA9
IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
TlVNQkVSKTsKKyAgICAgICAgbV9yZWQgPSByZXN1bHQtPmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVdyYXBwZXIoKTsKKyAgICAgICAgCisgICAgICAgIC8vIEdyZWVuCisgICAgICAgIHZh
bHVlID0gKG1fcmdiQ29sb3IgPj4gOCkgJiAweEZGOworICAgICAgICByZXN1bHQgPSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7
CisgICAgICAgIG1fZ3JlZW4gPSByZXN1bHQtPmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVByaW1pdGl2
ZVdyYXBwZXIoKTsKKworICAgICAgICAvLyBCbHVlCisgICAgICAgIHZhbHVlID0gbV9yZ2JDb2xv
ciAmIDB4RkY7CisgICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFs
dWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKKyAgICAgICAgbV9ibHVlID0gcmVz
dWx0LT5jcmVhdGVEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVXcmFwcGVyKCk7CisgICAgICAgIAor
ICAgICAgICAvLyBBbHBoYQorICAgICAgICBmbG9hdCBhbHBoYVZhbHVlID0gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KChtX3JnYkNvbG9yID4+IDI0KSAmIDB4RkYpIC8gMHhGRjsKKyAgICAgICAgcmVzdWx0
ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShhbHBoYVZhbHVlLCBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX05VTUJFUik7CisgICAgICAgIG1fYWxwaGEgPSByZXN1bHQtPmNyZWF0ZURlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVdyYXBwZXIoKTsKKyAgICB9CisgICAgCisgICAgUkdCQTMyIG1fcmdi
Q29sb3I7CisgICAgUmVmUHRyPERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPiBtX3JlZDsK
KyAgICBSZWZQdHI8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IG1fZ3JlZW47CisgICAg
UmVmUHRyPERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPiBtX2JsdWU7CisgICAgUmVmUHRy
PERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPiBtX2FscGhhOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVJH
QkNvbG9yLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENT
U09NUkdCQ29sb3IuaWRsCShyZXZpc2lvbiAyMDk5MzIpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2Nz
cy9SR0JDb2xvci5pZGw6MjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRD
U1NPTVJHQkNvbG9yLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNv
bT4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworWworICAgIEV4cG9ydFRvV3JhcHBlZEZ1bmN0aW9uLAorICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUsCitdIGludGVyZmFjZSBSR0JDb2xvciB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IENTU1ByaW1pdGl2ZVZhbHVlIHJlZDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0
aXZlVmFsdWUgZ3JlZW47CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2ZVZhbHVl
IGJsdWU7CisKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgYWxwaGE7
Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUkdCQ29s
b3IuaWRsCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZENTU09NUkdCQ29sb3IuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwxMCArMjEsMTEgQEAKIFsK
ICAgICBFeHBvcnRUb1dyYXBwZWRGdW5jdGlvbiwKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRh
YmxlLAotXSBpbnRlcmZhY2UgUkdCQ29sb3IgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQ
cmltaXRpdmVWYWx1ZSByZWQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2ZVZh
bHVlIGdyZWVuOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSBibHVl
OworICAgIEludGVyZmFjZU5hbWU9UkdCQ29sb3IKK10gaW50ZXJmYWNlIERlcHJlY2F0ZWRDU1NP
TVJHQkNvbG9yIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRGVwcmVjYXRlZENTU09NUHJpbWl0
aXZlVmFsdWUgcmVkOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZSBncmVlbjsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlVmFsdWUgYmx1ZTsKIAotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRp
dmVWYWx1ZSBhbHBoYTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWUgYWxwaGE7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0
ZWRDU1NPTVJlY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZENTU09NUmVjdC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNh
dGVkQ1NTT01SZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJSZWN0Lmgi
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXByZWNhdGVkQ1NTT01SZWN0
IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8RGVwcmVjYXRlZENTU09NUmVjdD4geworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8RGVwcmVjYXRlZENTU09NUmVjdD4gY3JlYXRlKGNvbnN0IFJlY3Qm
IHJlY3QpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVwcmVjYXRlZENTU09NUmVjdChyZWN0KSk7
IH0KKworICAgIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKiB0b3AoKSBjb25zdCB7IHJl
dHVybiBtX3RvcC5nZXQoKTsgfQorICAgIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKiBy
aWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHQuZ2V0KCk7IH0KKyAgICBEZXByZWNhdGVkQ1NT
T01QcmltaXRpdmVWYWx1ZSogYm90dG9tKCkgY29uc3QgeyByZXR1cm4gbV9ib3R0b20uZ2V0KCk7
IH0KKyAgICBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZSogbGVmdCgpIGNvbnN0IHsgcmV0
dXJuIG1fbGVmdC5nZXQoKTsgfQorICAgIAorcHJpdmF0ZToKKyAgICBEZXByZWNhdGVkQ1NTT01S
ZWN0KGNvbnN0IFJlY3QmIHJlY3QpCisgICAgeworICAgICAgICBpZiAocmVjdC50b3AoKSkKKyAg
ICAgICAgICAgIG1fdG9wID0gcmVjdC50b3AoKS0+Y3JlYXRlRGVwcmVjYXRlZENTU09NUHJpbWl0
aXZlV3JhcHBlcigpOworICAgICAgICBpZiAocmVjdC5yaWdodCgpKQorICAgICAgICAgICAgbV9y
aWdodCA9IHJlY3QucmlnaHQoKS0+Y3JlYXRlRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlV3JhcHBl
cigpOworICAgICAgICBpZiAocmVjdC5ib3R0b20oKSkKKyAgICAgICAgICAgIG1fYm90dG9tID0g
cmVjdC5ib3R0b20oKS0+Y3JlYXRlRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlV3JhcHBlcigpOwor
ICAgICAgICBpZiAocmVjdC5sZWZ0KCkpCisgICAgICAgICAgICBtX2xlZnQgPSByZWN0LmxlZnQo
KS0+Y3JlYXRlRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlV3JhcHBlcigpOworICAgIH0KKyAgICAK
KyAgICBSZWZQdHI8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IG1fdG9wOworICAgIFJl
ZlB0cjxEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gbV9yaWdodDsKKyAgICBSZWZQdHI8
RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IG1fYm90dG9tOworICAgIFJlZlB0cjxEZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gbV9sZWZ0OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVJlY3QuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01SZWN0Lmlk
bAkocmV2aXNpb24gMjA5OTMyKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5pZGw6MjA5
OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVJlY3QuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCitbCisgICAgRXhwb3J0VG9XcmFwcGVk
RnVuY3Rpb24sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKK10gaW50ZXJmYWNlIFJl
Y3QgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSB0b3A7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2ZVZhbHVlIHJpZ2h0OworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSBib3R0b207CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIENTU1ByaW1pdGl2ZVZhbHVlIGxlZnQ7Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3Nz
L0RlcHJlY2F0ZWRDU1NPTVJlY3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01SZWN0LmlkbAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dl
YkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVJlY3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw5
ICsyMCwxMCBAQAogWwogICAgIEV4cG9ydFRvV3JhcHBlZEZ1bmN0aW9uLAogICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUsCi1dIGludGVyZmFjZSBSZWN0IHsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgdG9wOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQ
cmltaXRpdmVWYWx1ZSByaWdodDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZl
VmFsdWUgYm90dG9tOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSBs
ZWZ0OworICAgIEludGVyZmFjZU5hbWU9UmVjdAorXSBpbnRlcmZhY2UgRGVwcmVjYXRlZENTU09N
UmVjdCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZh
bHVlIHRvcDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZl
VmFsdWUgcmlnaHQ7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERlcHJlY2F0ZWRDU1NPTVByaW1p
dGl2ZVZhbHVlIGJvdHRvbTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlVmFsdWUgbGVmdDsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVj
YXRlZENTU09NVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXBy
ZWNhdGVkQ1NTT01WYWx1ZS5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvY3Nz
L0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01WYWx1ZS5oIgorCisjaW5jbHVk
ZSAiRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVk
Q1NTT01WYWx1ZUxpc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAordGVtcGxhdGU8
Y2xhc3MgQ2hpbGRDbGFzc1R5cGU+CitpbmxpbmUgc3RhdGljIGJvb2wgY29tcGFyZUNTU09NVmFs
dWVzKGNvbnN0IERlcHJlY2F0ZWRDU1NPTVZhbHVlJiBmaXJzdCwgY29uc3QgRGVwcmVjYXRlZENT
U09NVmFsdWUmIHNlY29uZCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgQ2hpbGRD
bGFzc1R5cGUmPihmaXJzdCkuZXF1YWxzKHN0YXRpY19jYXN0PGNvbnN0IENoaWxkQ2xhc3NUeXBl
Jj4oc2Vjb25kKSk7Cit9CisKK2Jvb2wgRGVwcmVjYXRlZENTU09NVmFsdWU6OmVxdWFscyhjb25z
dCBEZXByZWNhdGVkQ1NTT01WYWx1ZSYgb3RoZXIpIGNvbnN0Cit7CisgICAgaWYgKG1fY2xhc3NU
eXBlID09IG90aGVyLm1fY2xhc3NUeXBlKSB7CisgICAgICAgIHN3aXRjaCAobV9jbGFzc1R5cGUp
IHsKKyAgICAgICAgY2FzZSBEZXByZWNhdGVkQ29tcGxleFZhbHVlQ2xhc3M6CisgICAgICAgICAg
ICByZXR1cm4gY29tcGFyZUNTU09NVmFsdWVzPERlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZT4o
KnRoaXMsIG90aGVyKTsKKyAgICAgICAgY2FzZSBEZXByZWNhdGVkUHJpbWl0aXZlVmFsdWVDbGFz
czoKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTT01WYWx1ZXM8RGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlVmFsdWU+KCp0aGlzLCBvdGhlcik7CisgICAgICAgIGNhc2UgRGVwcmVjYXRlZFZh
bHVlTGlzdENsYXNzOgorICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NPTVZhbHVlczxEZXBy
ZWNhdGVkQ1NTT01WYWx1ZUxpc3Q+KCp0aGlzLCBvdGhlcik7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIERlcHJlY2F0ZWRDU1NPTVZhbHVlOjpkZXN0cm95
KCkKK3sKKyAgICBzd2l0Y2ggKGNsYXNzVHlwZSgpKSB7CisgICAgY2FzZSBEZXByZWNhdGVkQ29t
cGxleFZhbHVlQ2xhc3M6IHsKKyAgICAgICAgZGVsZXRlIGRvd25jYXN0PERlcHJlY2F0ZWRDU1NP
TUNvbXBsZXhWYWx1ZT4odGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBE
ZXByZWNhdGVkUHJpbWl0aXZlVmFsdWVDbGFzczogeworICAgICAgICBkZWxldGUgZG93bmNhc3Q8
RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+KHRoaXMpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGNhc2UgRGVwcmVjYXRlZFZhbHVlTGlzdENsYXNzOiB7CisgICAgICAgIGRlbGV0
ZSBkb3duY2FzdDxEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q+KHRoaXMpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBkZWxldGUg
dGhpczsKK30KKwordW5zaWduZWQgRGVwcmVjYXRlZENTU09NVmFsdWU6OmNzc1ZhbHVlVHlwZSgp
IGNvbnN0Cit7CisgICAgc3dpdGNoIChtX2NsYXNzVHlwZSkgeworICAgIGNhc2UgRGVwcmVjYXRl
ZENvbXBsZXhWYWx1ZUNsYXNzOgorICAgICAgICByZXR1cm4gZG93bmNhc3Q8RGVwcmVjYXRlZENT
U09NQ29tcGxleFZhbHVlPigqdGhpcykuY3NzVmFsdWVUeXBlKCk7CisgICAgY2FzZSBEZXByZWNh
dGVkUHJpbWl0aXZlVmFsdWVDbGFzczoKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPigqdGhpcykuY3NzVmFsdWVUeXBlKCk7CisgICAgY2FzZSBE
ZXByZWNhdGVkVmFsdWVMaXN0Q2xhc3M6CisgICAgICAgIHJldHVybiBkb3duY2FzdDxEZXByZWNh
dGVkQ1NTT01WYWx1ZUxpc3Q+KCp0aGlzKS5jc3NWYWx1ZVR5cGUoKTsKKyAgICB9CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIENTU19DVVNUT007Cit9CisKK1N0cmluZyBE
ZXByZWNhdGVkQ1NTT01WYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX2Ns
YXNzVHlwZSkgeworICAgIGNhc2UgRGVwcmVjYXRlZENvbXBsZXhWYWx1ZUNsYXNzOgorICAgICAg
ICByZXR1cm4gZG93bmNhc3Q8RGVwcmVjYXRlZENTU09NQ29tcGxleFZhbHVlPigqdGhpcykuY3Nz
VGV4dCgpOworICAgIGNhc2UgRGVwcmVjYXRlZFByaW1pdGl2ZVZhbHVlQ2xhc3M6CisgICAgICAg
IHJldHVybiBkb3duY2FzdDxEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmNz
c1RleHQoKTsKKyAgICBjYXNlIERlcHJlY2F0ZWRWYWx1ZUxpc3RDbGFzczoKKyAgICAgICAgcmV0
dXJuIGRvd25jYXN0PERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdD4oKnRoaXMpLmNzc1RleHQoKTsK
KyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICIiOworfQorCit9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIK
KyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERlcHJlY2F0ZWRDU1NPTVZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8RGVwcmVjYXRlZENTU09N
VmFsdWU+IHsKK3B1YmxpYzoKKyAgICAvLyBFeGFjdGx5IG1hdGNoIHRoZSBJREwuIE5vIHJlYXNv
biB0byBhZGQgYW55dGhpbmcgaWYgaXQncyBub3QgaW4gdGhlIElETC4KKyAgICBlbnVtIFR5cGUg
eworICAgICAgICBDU1NfSU5IRVJJVCA9IDAsCisgICAgICAgIENTU19QUklNSVRJVkVfVkFMVUUg
PSAxLAorICAgICAgICBDU1NfVkFMVUVfTElTVCA9IDIsCisgICAgICAgIENTU19DVVNUT00gPSAz
CisgICAgfTsKKworICAgIC8vIE92ZXJyaWRlIFJlZkNvdW50ZWQncyBkZXJlZigpIHRvIGVuc3Vy
ZSBvcGVyYXRvciBkZWxldGUgaXMgY2FsbGVkIG9uCisgICAgLy8gdGhlIGFwcHJvcHJpYXRlIHN1
YmNsYXNzIHR5cGUuCisgICAgdm9pZCBkZXJlZigpCisgICAgeworICAgICAgICBpZiAoZGVyZWZC
YXNlKCkpCisgICAgICAgICAgICBkZXN0cm95KCk7CisgICAgfQorCisgICAgV0VCQ09SRV9FWFBP
UlQgdW5zaWduZWQgY3NzVmFsdWVUeXBlKCkgY29uc3Q7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBT
dHJpbmcgY3NzVGV4dCgpIGNvbnN0OworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENzc1RleHQo
Y29uc3QgU3RyaW5nJikgeyByZXR1cm4geyB9OyB9IC8vIFdpbGwgbmV2ZXIgaW1wbGVtZW50Lgor
CisgICAgYm9vbCBlcXVhbHMoY29uc3QgRGVwcmVjYXRlZENTU09NVmFsdWUmIG90aGVyKSBjb25z
dDsKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRGVwcmVjYXRlZENTU09NVmFsdWUmIG90aGVy
KSBjb25zdCB7IHJldHVybiBlcXVhbHMob3RoZXIpOyB9CisKKyAgICBib29sIGlzQ29tcGxleFZh
bHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gRGVwcmVjYXRlZENvbXBsZXhWYWx1
ZUNsYXNzOyB9CisgICAgYm9vbCBpc1ByaW1pdGl2ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9j
bGFzc1R5cGUgPT0gRGVwcmVjYXRlZFByaW1pdGl2ZVZhbHVlQ2xhc3M7IH0KKyAgICBib29sIGlz
VmFsdWVMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gRGVwcmVjYXRlZFZhbHVl
TGlzdENsYXNzOyB9CisgICAgCitwcm90ZWN0ZWQ6CisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBD
bGFzc1R5cGVCaXRzID0gMjsKKyAgICBlbnVtIERlcHJlY2F0ZWRDbGFzc1R5cGUgeworICAgICAg
ICBEZXByZWNhdGVkQ29tcGxleFZhbHVlQ2xhc3MsCisgICAgICAgIERlcHJlY2F0ZWRQcmltaXRp
dmVWYWx1ZUNsYXNzLAorICAgICAgICBEZXByZWNhdGVkVmFsdWVMaXN0Q2xhc3MKKyAgICB9Owor
CisgICAgRGVwcmVjYXRlZENsYXNzVHlwZSBjbGFzc1R5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxEZXByZWNhdGVkQ2xhc3NUeXBlPihtX2NsYXNzVHlwZSk7IH0KKworICAgIERlcHJl
Y2F0ZWRDU1NPTVZhbHVlKERlcHJlY2F0ZWRDbGFzc1R5cGUgY2xhc3NUeXBlKQorICAgICAgICA6
IG1fY2xhc3NUeXBlKGNsYXNzVHlwZSkKKyAgICB7CisgICAgfQorCisgICAgLy8gTk9URTogVGhp
cyBjbGFzcyBpcyBub24tdmlydHVhbCBmb3IgbWVtb3J5IGFuZCBwZXJmb3JtYW5jZSByZWFzb25z
LgorICAgIC8vIERvbid0IGdvIG1ha2luZyBpdCB2aXJ0dWFsIGFnYWluIHVubGVzcyB5b3Uga25v
dyBleGFjdGx5IHdoYXQgeW91J3JlIGRvaW5nIQorICAgIH5EZXByZWNhdGVkQ1NTT01WYWx1ZSgp
IHsgfQorCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVzdHJveSgpOworCitw
cm90ZWN0ZWQ6CisgICAgdW5zaWduZWQgbV92YWx1ZUxpc3RTZXBhcmF0b3IgOiBDU1NWYWx1ZTo6
VmFsdWVMaXN0U2VwYXJhdG9yQml0czsKKworcHJpdmF0ZToKKyAgICB1bnNpZ25lZCBtX2NsYXNz
VHlwZSA6IENsYXNzVHlwZUJpdHM7IC8vIENsYXNzVHlwZQorfTsKKworY2xhc3MgRGVwcmVjYXRl
ZENTU09NQ29tcGxleFZhbHVlIDogcHVibGljIERlcHJlY2F0ZWRDU1NPTVZhbHVlIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPERlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZT4gY3JlYXRlKGNv
bnN0IENTU1ZhbHVlJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZSh2YWx1ZSkpOworICAgIH0KKworICAgIGJvb2wg
ZXF1YWxzKGNvbnN0IERlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZSYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG1fdmFsdWUtPmVxdWFscyhvdGhlci5tX3ZhbHVlKTsgfQorICAgIFN0cmluZyBjc3NU
ZXh0KCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS0+Y3NzVGV4dCgpOyB9CisKKyAgICB1bnNpZ25l
ZCBjc3NWYWx1ZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLT5jc3NWYWx1ZVR5cGUoKTsg
fQorCitwcm90ZWN0ZWQ6CisgICAgRGVwcmVjYXRlZENTU09NQ29tcGxleFZhbHVlKGNvbnN0IENT
U1ZhbHVlJiB2YWx1ZSkKKyAgICAgICAgOiBEZXByZWNhdGVkQ1NTT01WYWx1ZShEZXByZWNhdGVk
Q29tcGxleFZhbHVlQ2xhc3MpCisgICAgICAgICwgbV92YWx1ZShjb25zdF9jYXN0PENTU1ZhbHVl
Jj4odmFsdWUpKQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUmVmPENTU1ZhbHVlPiBt
X3ZhbHVlOworfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2RlZmluZSBTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0NTU09NX1ZBTFVFKFRvVmFsdWVUeXBlTmFtZSwgcHJlZGljYXRl
KSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlRvVmFsdWVUeXBlTmFt
ZSkgXAorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZh
bHVlJiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUucHJlZGljYXRlOyB9IFwKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfRU5EKCkKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NPTV9WQUxVRShEZXBy
ZWNhdGVkQ1NTT01Db21wbGV4VmFsdWUsIGlzQ29tcGxleFZhbHVlKCkpCisKKwpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaWRsCShyZXZpc2lvbiAyMDk5
MzIpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5pZGw6MjA5OTMyKQorKysgU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11
ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworWworICAgIEN1c3RvbUlzUmVhY2hhYmxl
LAorICAgIEN1c3RvbVRvSlNPYmplY3QsCisgICAgRXhwb3J0VG9XcmFwcGVkRnVuY3Rpb24sCisg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBKU0N1c3RvbUZpbmFsaXplLAorXSBp
bnRlcmZhY2UgQ1NTVmFsdWUgeworICAgIC8vIFVuaXRUeXBlcworICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IENTU19JTkhFUklUID0gMDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUFJJ
TUlUSVZFX1ZBTFVFID0gMTsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVkFMVUVfTElT
VCA9IDI7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0NVU1RPTSA9IDM7CisKKyAgICBb
U2V0dGVyTWF5VGhyb3dFeGNlcHRpb25dIGF0dHJpYnV0ZSBET01TdHJpbmc/IGNzc1RleHQ7CisK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgY3NzVmFsdWVUeXBlOworfTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmlkbAkocmV2
aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVl
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsOCBAQAogICAgIEV4cG9ydFRvV3JhcHBl
ZEZ1bmN0aW9uLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCiAgICAgSlNDdXN0b21G
aW5hbGl6ZSwKLV0gaW50ZXJmYWNlIENTU1ZhbHVlIHsKKyAgICBJbnRlcmZhY2VOYW1lPUNTU1Zh
bHVlCitdIGludGVyZmFjZSBEZXByZWNhdGVkQ1NTT01WYWx1ZSB7CiAgICAgLy8gVW5pdFR5cGVz
CiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0lOSEVSSVQgPSAwOwogICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IENTU19QUklNSVRJVkVfVkFMVUUgPSAxOwpJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVk
Q1NTT01WYWx1ZUxpc3QuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdDo6
ZXF1YWxzKGNvbnN0IERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdCYgb3RoZXIpIGNvbnN0Cit7Cisg
ICAgaWYgKG1fdmFsdWVMaXN0U2VwYXJhdG9yICE9IG90aGVyLm1fdmFsdWVMaXN0U2VwYXJhdG9y
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKG1fdmFsdWVzLnNpemUoKSAh
PSBvdGhlci5tX3ZhbHVlcy5zaXplKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBzaXplID0gbV92YWx1ZXMuc2l6ZSgpOyBpIDwgc2l6ZTsg
KytpKSB7CisgICAgICAgIGlmICghbV92YWx1ZXNbaV0uZ2V0KCkuZXF1YWxzKG90aGVyLm1fdmFs
dWVzW2ldKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK1N0cmluZyBEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q6OmNzc1RleHQoKSBjb25z
dAoreworICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OworICAgIFN0cmluZyBzZXBhcmF0b3I7Cisg
ICAgc3dpdGNoIChtX3ZhbHVlTGlzdFNlcGFyYXRvcikgeworICAgIGNhc2UgQ1NTVmFsdWU6OlNw
YWNlU2VwYXJhdG9yOgorICAgICAgICBzZXBhcmF0b3IgPSBBU0NJSUxpdGVyYWwoIiAiKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZTo6Q29tbWFTZXBhcmF0b3I6CisgICAgICAg
IHNlcGFyYXRvciA9IEFTQ0lJTGl0ZXJhbCgiLCAiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDU1NWYWx1ZTo6U2xhc2hTZXBhcmF0b3I6CisgICAgICAgIHNlcGFyYXRvciA9IEFTQ0lJTGl0
ZXJhbCgiIC8gIik7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICAKKyAgICBmb3IgKGF1dG8mIHZhbHVlIDogbV92
YWx1ZXMpIHsKKyAgICAgICAgaWYgKCFyZXN1bHQuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZChzZXBhcmF0b3IpOworICAgICAgICByZXN1bHQuYXBwZW5kKHZhbHVlLmdldCgp
LmNzc1RleHQoKSk7CisgICAgfQorICAgIAorICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
K30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlz
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1
ZUxpc3QuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENT
U09NVmFsdWVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiRGVwcmVjYXRlZENTU09NVmFsdWUuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorY2xhc3MgRGVwcmVjYXRlZENTU09NVmFsdWVM
aXN0IDogcHVibGljIERlcHJlY2F0ZWRDU1NPTVZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdD4gY3JlYXRlKGNvbnN0IENTU1ZhbHVlTGlzdCYg
dmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZXByZWNhdGVkQ1NT
T01WYWx1ZUxpc3QodmFsdWUpKTsKKyAgICB9CisgICAgCisgICAgYm9vbCBlcXVhbHMoY29uc3Qg
RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0JiBvdGhlcikgY29uc3Q7CisgICAgdW5zaWduZWQgY3Nz
VmFsdWVUeXBlKCkgY29uc3QgeyByZXR1cm4gQ1NTX1ZBTFVFX0xJU1Q7IH0KKyAgICBTdHJpbmcg
Y3NzVGV4dCgpIGNvbnN0OworICAgIAorICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVy
biBtX3ZhbHVlcy5zaXplKCk7IH0KKyAgICBEZXByZWNhdGVkQ1NTT01WYWx1ZSogaXRlbShzaXpl
X3QgaW5kZXgpIHsgcmV0dXJuIGluZGV4IDwgbV92YWx1ZXMuc2l6ZSgpID8gbV92YWx1ZXNbaW5k
ZXhdLnB0cigpIDogbnVsbHB0cjsgfQorICAgIGNvbnN0IERlcHJlY2F0ZWRDU1NPTVZhbHVlKiBp
dGVtKHNpemVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4gaW5kZXggPCBtX3ZhbHVlcy5zaXplKCkg
PyBtX3ZhbHVlc1tpbmRleF0ucHRyKCkgOiBudWxscHRyOyB9CisKK3Byb3RlY3RlZDoKKyAgICBE
ZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QoY29uc3QgQ1NTVmFsdWVMaXN0JiB2YWx1ZSkKKyAgICAg
ICAgOiBEZXByZWNhdGVkQ1NTT01WYWx1ZShEZXByZWNhdGVkVmFsdWVMaXN0Q2xhc3MpCisgICAg
eworICAgICAgICBtX3ZhbHVlTGlzdFNlcGFyYXRvciA9IHZhbHVlLnNlcGFyYXRvcigpOworICAg
ICAgICBtX3ZhbHVlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHZhbHVlLmxlbmd0aCgpKTsKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgc2l6ZSA9IHZhbHVlLmxlbmd0aCgpOyBpIDwgc2l6
ZTsgKytpKQorICAgICAgICAgICAgbV92YWx1ZXMudW5jaGVja2VkQXBwZW5kKHZhbHVlLml0ZW1X
aXRob3V0Qm91bmRzQ2hlY2soaSktPmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIoKSk7Cisg
ICAgfQorICAgIAorcHJpdmF0ZToKKyAgICBWZWN0b3I8UmVmPERlcHJlY2F0ZWRDU1NPTVZhbHVl
PiwgND4gbV92YWx1ZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfQ1NTT01fVkFMVUUoRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LCBpc1Zh
bHVlTGlzdCgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVl
TGlzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NP
TVZhbHVlTGlzdC5pZGwJKHJldmlzaW9uIDIwOTkzMikJKGZyb20gU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlTGlzdC5pZGw6MjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0
ZWRDU1NPTVZhbHVlTGlzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworLy8gSW50
cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKK1sKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxl
LAorXSBpbnRlcmZhY2UgQ1NTVmFsdWVMaXN0IDogQ1NTVmFsdWUgeworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgQ1NTVmFsdWUgaXRlbSh1
bnNpZ25lZCBsb25nIGluZGV4KTsKK307CisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXBy
ZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaWRsCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMjYsOCArMjYsOSBAQAogLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKIFsKICAg
ICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotXSBpbnRlcmZhY2UgQ1NTVmFsdWVMaXN0IDog
Q1NTVmFsdWUgeworICAgIEludGVyZmFjZU5hbWU9Q1NTVmFsdWVMaXN0CitdIGludGVyZmFjZSBE
ZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QgOiBEZXByZWNhdGVkQ1NTT01WYWx1ZSB7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgIGdldHRlciBDU1NWYWx1
ZSBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIGdldHRlciBEZXByZWNhdGVkQ1NTT01W
YWx1ZSBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogfTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL0xlbmd0aFJlcGVhdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9M
ZW5ndGhSZXBlYXQuaAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0xl
bmd0aFJlcGVhdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw4ICszNiw2IEBAIGNsYXNzIExlbmd0
aFJlcGVhdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3UKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPExl
bmd0aFJlcGVhdD4gY3JlYXRlKFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGludGVydmFsKSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IExlbmd0aFJlcGVhdChpbnRlcnZhbCkpOyB9CiAKLSAgICBSZWY8TGVu
Z3RoUmVwZWF0PiBjbG9uZUZvckNTU09NKCkgY29uc3QgeyByZXR1cm4gY3JlYXRlKGludGVydmFs
KCkpOyB9Ci0KICAgICBDU1NWYWx1ZSogaW50ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX2ludGVy
dmFsLmdldCgpOyB9CiAKICAgICB2b2lkIHNldEludGVydmFsKFBhc3NSZWZQdHI8Q1NTVmFsdWU+
IGludGVydmFsKSB7IG1faW50ZXJ2YWwgPSBpbnRlcnZhbDsgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJl
dmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxl
RGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsMTkgKzE3NSwxOSBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBQcm9wZXJ0eVNldENTU1N0eWxlRGVjCiAgICAgcmV0dXJuIHsgfTsKIH0K
IAotUmVmUHRyPENTU1ZhbHVlPiBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OmdldFBy
b3BlcnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCitSZWZQdHI8RGVwcmVj
YXRlZENTU09NVmFsdWU+IFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVy
dHlDU1NWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKIHsKICAgICBpZiAoaXNDdXN0
b21Qcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKSkgewogICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+
IHZhbHVlID0gbV9wcm9wZXJ0eVNldC0+Z2V0Q3VzdG9tUHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0
eU5hbWUpOwogICAgICAgICBpZiAoIXZhbHVlKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgICAgIHJldHVybiBjbG9uZUFuZENhY2hlRm9yQ1NTT00odmFsdWUuZ2V0KCkpOworICAg
ICAgICByZXR1cm4gd3JhcEZvckRlcHJlY2F0ZWRDU1NPTSh2YWx1ZS5nZXQoKSk7CiAgICAgfQog
ICAgIAogICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCA9IGNzc1Byb3BlcnR5SUQocHJvcGVy
dHlOYW1lKTsKICAgICBpZiAoIXByb3BlcnR5SUQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgIHJldHVybiBjbG9uZUFuZENhY2hlRm9yQ1NTT00oZ2V0UHJvcGVydHlDU1NWYWx1ZUludGVy
bmFsKHByb3BlcnR5SUQpLmdldCgpKTsKKyAgICByZXR1cm4gd3JhcEZvckRlcHJlY2F0ZWRDU1NP
TShnZXRQcm9wZXJ0eUNTU1ZhbHVlSW50ZXJuYWwocHJvcGVydHlJRCkuZ2V0KCkpOwogfQogCiBT
dHJpbmcgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eVZhbHVlKGNv
bnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKQpAQCAtMzEzLDE5ICszMTMsMTkgQEAgRXhjZXB0aW9u
T3I8Ym9vbD4gUHJvcGVydHlTZXRDU1NTdHlsZURlYwogICAgIHJldHVybiBjaGFuZ2VkOwogfQog
Ci1DU1NWYWx1ZSogUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpjbG9uZUFuZENhY2hl
Rm9yQ1NTT00oQ1NTVmFsdWUqIGludGVybmFsVmFsdWUpCitEZXByZWNhdGVkQ1NTT01WYWx1ZSog
UHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjp3cmFwRm9yRGVwcmVjYXRlZENTU09NKENT
U1ZhbHVlKiBpbnRlcm5hbFZhbHVlKQogewogICAgIGlmICghaW50ZXJuYWxWYWx1ZSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKICAgICAvLyBUaGUgbWFwIGlzIGhlcmUgdG8gbWFpbnRhaW4gdGhlIG9i
amVjdCBpZGVudGl0eSBvZiB0aGUgQ1NTVmFsdWVzIG92ZXIgbXVsdGlwbGUgaW52b2NhdGlvbnMu
CiAgICAgLy8gRklYTUU6IEl0IGlzIGxpa2VseSB0aGF0IHRoZSBpZGVudGl0eSBpcyBub3QgaW1w
b3J0YW50IGZvciB3ZWIgY29tcGF0aWJpbGl0eSBhbmQgdGhpcyBjb2RlIHNob3VsZCBiZSByZW1v
dmVkLgotICAgIGlmICghbV9jc3NvbUNTU1ZhbHVlQ2xvbmVzKQotICAgICAgICBtX2Nzc29tQ1NT
VmFsdWVDbG9uZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPEhhc2hNYXA8Q1NTVmFsdWUqLCBSZWZQdHI8
Q1NTVmFsdWU+Pj4oKTsKKyAgICBpZiAoIW1fY3Nzb21WYWx1ZVdyYXBwZXJzKQorICAgICAgICBt
X2Nzc29tVmFsdWVXcmFwcGVycyA9IHN0ZDo6bWFrZV91bmlxdWU8SGFzaE1hcDxDU1NWYWx1ZSos
IFJlZlB0cjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4+PigpOwogICAgIAotICAgIFJlZlB0cjxDU1NW
YWx1ZT4mIGNsb25lZFZhbHVlID0gbV9jc3NvbUNTU1ZhbHVlQ2xvbmVzLT5hZGQoaW50ZXJuYWxW
YWx1ZSwgUmVmUHRyPENTU1ZhbHVlPigpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgUmVmUHRyPERl
cHJlY2F0ZWRDU1NPTVZhbHVlPiYgY2xvbmVkVmFsdWUgPSBtX2Nzc29tVmFsdWVXcmFwcGVycy0+
YWRkKGludGVybmFsVmFsdWUsIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4oKSkuaXRlcmF0
b3ItPnZhbHVlOwogICAgIGlmICghY2xvbmVkVmFsdWUpCi0gICAgICAgIGNsb25lZFZhbHVlID0g
aW50ZXJuYWxWYWx1ZS0+Y2xvbmVGb3JDU1NPTSgpOworICAgICAgICBjbG9uZWRWYWx1ZSA9IGlu
dGVybmFsVmFsdWUtPmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIoKTsKICAgICByZXR1cm4g
Y2xvbmVkVmFsdWUuZ2V0KCk7CiB9CiAKQEAgLTM4NCw3ICszODQsNyBAQCB2b2lkIFN0eWxlUnVs
ZUNTU1N0eWxlRGVjbGFyYXRpb246OmRpZE11CiAgICAgQVNTRVJUKG1fcGFyZW50UnVsZS0+cGFy
ZW50U3R5bGVTaGVldCgpKTsKIAogICAgIGlmICh0eXBlID09IFByb3BlcnR5Q2hhbmdlZCkKLSAg
ICAgICAgbV9jc3NvbUNTU1ZhbHVlQ2xvbmVzID0gbnVsbHB0cjsKKyAgICAgICAgbV9jc3NvbVZh
bHVlV3JhcHBlcnMgPSBudWxscHRyOwogCiAgICAgLy8gU3R5bGUgc2hlZXQgbXV0YXRpb24gbmVl
ZHMgdG8gYmUgc2lnbmFsZWQgZXZlbiBpZiB0aGUgY2hhbmdlIGZhaWxlZC4gd2lsbE11dGF0ZSov
ZGlkTXV0YXRlKiBtdXN0IHBhaXIuCiAgICAgbV9wYXJlbnRSdWxlLT5wYXJlbnRTdHlsZVNoZWV0
KCktPmRpZE11dGF0ZVJ1bGVGcm9tQ1NTU3R5bGVEZWNsYXJhdGlvbigpOwpAQCAtNDE2LDcgKzQx
Niw3IEBAIHZvaWQgSW5saW5lQ1NTU3R5bGVEZWNsYXJhdGlvbjo6ZGlkTXV0YXQKICAgICBpZiAo
dHlwZSA9PSBOb0NoYW5nZXMpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY3Nzb21DU1NWYWx1
ZUNsb25lcyA9IG51bGxwdHI7CisgICAgbV9jc3NvbVZhbHVlV3JhcHBlcnMgPSBudWxscHRyOwog
CiAgICAgaWYgKCFtX3BhcmVudEVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgJ
KHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0
eWxlRGVjbGFyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBDU1NSdWxlOwogY2xhc3MgQ1NTUHJvcGVydHk7CiBjbGFzcyBD
U1NWYWx1ZTsKK2NsYXNzIERlcHJlY2F0ZWRDU1NPTVZhbHVlOwogY2xhc3MgTXV0YWJsZVN0eWxl
UHJvcGVydGllczsKIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKIGNsYXNzIFN0eWxlZEVsZW1l
bnQ7CkBAIC01NCw3ICs1NSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIENTU1BhcnNlckNv
bnRleHQgY3NzUGFyc2VyQ29udGV4dCgpIGNvbnN0OwogCiAgICAgTXV0YWJsZVN0eWxlUHJvcGVy
dGllcyogbV9wcm9wZXJ0eVNldDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFzaE1hcDxDU1NWYWx1
ZSosIFJlZlB0cjxDU1NWYWx1ZT4+PiBtX2Nzc29tQ1NTVmFsdWVDbG9uZXM7CisgICAgc3RkOjp1
bmlxdWVfcHRyPEhhc2hNYXA8Q1NTVmFsdWUqLCBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+
Pj4gbV9jc3NvbVZhbHVlV3JhcHBlcnM7CiAKIHByaXZhdGU6CiAgICAgdm9pZCByZWYoKSBvdmVy
cmlkZTsKQEAgLTYzLDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBDU1NSdWxlKiBwYXJlbnRSdWxl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHVuc2lnbmVkIGxlbmd0
aCgpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBm
aW5hbDsKLSAgICBSZWZQdHI8Q1NTVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOworICAgIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01WYWx1
ZT4gZ2V0UHJvcGVydHlDU1NWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7
CiAgICAgU3RyaW5nIGdldFByb3BlcnR5VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUp
IGZpbmFsOwogICAgIFN0cmluZyBnZXRQcm9wZXJ0eVByaW9yaXR5KGNvbnN0IFN0cmluZyYgcHJv
cGVydHlOYW1lKSBmaW5hbDsKICAgICBTdHJpbmcgZ2V0UHJvcGVydHlTaG9ydGhhbmQoY29uc3Qg
U3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOwpAQCAtNzgsNyArNzksNyBAQCBwcml2YXRlOgog
ICAgIAogICAgIFJlZjxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPiBjb3B5UHJvcGVydGllcygpIGNv
bnN0IGZpbmFsOwogCi0gICAgQ1NTVmFsdWUqIGNsb25lQW5kQ2FjaGVGb3JDU1NPTShDU1NWYWx1
ZSopOworICAgIERlcHJlY2F0ZWRDU1NPTVZhbHVlKiB3cmFwRm9yRGVwcmVjYXRlZENTU09NKENT
U1ZhbHVlKik7CiAgICAgCiAgICAgdmlydHVhbCBib29sIHdpbGxNdXRhdGUoKSBXQVJOX1VOVVNF
RF9SRVRVUk4geyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRNdXRhdGUoTXV0
YXRpb25UeXBlKSB7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9SR0JDb2xvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1JHQkNvbG9yLmNwcAkocmV2aXNpb24gMjA5
OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL1JHQkNvbG9yLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzUsMzcgKzM1LDUgQEAgUmVmPFJHQkNvbG9yPiBSR0JDb2xvcjo6Y3JlYXRlKHVuc2lnbmVk
IAogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJHQkNvbG9yKHJnYkNvbG9yKSk7CiB9CiAKLVJl
ZjxDU1NQcmltaXRpdmVWYWx1ZT4gUkdCQ29sb3I6OnJlZCgpCi17Ci0gICAgdW5zaWduZWQgdmFs
dWUgPSAobV9yZ2JDb2xvciA+PiAxNikgJiAweEZGOwotICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1
ZT4gcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19OVU1CRVIpOwotICAgIHJlc3VsdC0+c2V0Q1NTT01TYWZlKCk7Ci0gICAgcmV0
dXJuIHJlc3VsdDsKLX0KLQotUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBSR0JDb2xvcjo6Z3JlZW4o
KQotewotICAgIHVuc2lnbmVkIHZhbHVlID0gKG1fcmdiQ29sb3IgPj4gOCkgJiAweEZGOwotICAg
IFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOwotICAgIHJlc3VsdC0+c2V0
Q1NTT01TYWZlKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotUmVmPENTU1ByaW1pdGl2ZVZh
bHVlPiBSR0JDb2xvcjo6Ymx1ZSgpCi17Ci0gICAgdW5zaWduZWQgdmFsdWUgPSBtX3JnYkNvbG9y
ICYgMHhGRjsKLSAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IHJlc3VsdCA9IENTU1ByaW1pdGl2
ZVZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKLSAg
ICByZXN1bHQtPnNldENTU09NU2FmZSgpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLVJlZjxD
U1NQcmltaXRpdmVWYWx1ZT4gUkdCQ29sb3I6OmFscGhhKCkKLXsKLSAgICBmbG9hdCB2YWx1ZSA9
IHN0YXRpY19jYXN0PGZsb2F0PigobV9yZ2JDb2xvciA+PiAyNCkgJiAweEZGKSAvIDB4RkY7Ci0g
ICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7Ci0gICAgcmVzdWx0LT5z
ZXRDU1NPTVNhZmUoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9SR0JDb2xvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9SR0JDb2xvci5oCShyZXZpc2lvbiAyMDk5MzIpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvUkdCQ29sb3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTMgKzM3
LDEwIEBAIGNsYXNzIFJHQkNvbG9yIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFJHQkNvbG9yPiBjcmVhdGUodW5zaWduZWQgcmdiQ29sb3IpOwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiByZWQoKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGdyZWVuKCk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBibHVlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
UmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBhbHBoYSgpOwotCiAgICAgQ29sb3IgY29sb3IoKSBjb25z
dCB7IHJldHVybiBDb2xvcihtX3JnYkNvbG9yKTsgfQogCisgICAgUkdCQTMyIHJnYkNvbG9yKCkg
Y29uc3QgeyByZXR1cm4gbV9yZ2JDb2xvcjsgfQorCiBwcml2YXRlOgogICAgIFJHQkNvbG9yKHVu
c2lnbmVkIHJnYkNvbG9yKQogICAgICAgICA6IG1fcmdiQ29sb3IocmdiQ29sb3IpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvUkdCQ29sb3IuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9SR0JDb2xvci5pZGwJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9SR0JDb2xvci5pZGwJKG5vbmV4aXN0ZW50KQpAQCAtMSwzMCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNv
bT4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8K
LQotWwotICAgIEV4cG9ydFRvV3JhcHBlZEZ1bmN0aW9uLAotICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUsCi1dIGludGVyZmFjZSBSR0JDb2xvciB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IENTU1ByaW1pdGl2ZVZhbHVlIHJlZDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0
aXZlVmFsdWUgZ3JlZW47Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2ZVZhbHVl
IGJsdWU7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgYWxwaGE7
Ci19OwoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvY3NzL1JHQkNvbG9yLmlk
bApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZl
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nz
cy9SZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaAkocmV2aXNp
b24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaAkod29ya2luZyBjb3B5KQpA
QCAtNDgsMTQgKzQ4LDYgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgUmVjdEJhc2UoKSB7
IH0KLSAgICBSZWN0QmFzZShjb25zdCBSZWN0QmFzZSYgY2xvbmVGcm9tKQotICAgICAgICA6IG1f
dG9wKGNsb25lRnJvbS5tX3RvcCA/IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4oY2xvbmVGcm9t
Lm1fdG9wLT5jbG9uZUZvckNTU09NKCkpIDogbnVsbHB0cikKLSAgICAgICAgLCBtX3JpZ2h0KGNs
b25lRnJvbS5tX3JpZ2h0ID8gUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPihjbG9uZUZyb20ubV9y
aWdodC0+Y2xvbmVGb3JDU1NPTSgpKSA6IG51bGxwdHIpCi0gICAgICAgICwgbV9ib3R0b20oY2xv
bmVGcm9tLm1fYm90dG9tID8gUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPihjbG9uZUZyb20ubV9i
b3R0b20tPmNsb25lRm9yQ1NTT00oKSkgOiBudWxscHRyKQotICAgICAgICAsIG1fbGVmdChjbG9u
ZUZyb20ubV9sZWZ0ID8gUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPihjbG9uZUZyb20ubV9sZWZ0
LT5jbG9uZUZvckNTU09NKCkpIDogbnVsbHB0cikKLSAgICB7Ci0gICAgfQotCiAgICAgflJlY3RC
YXNlKCkgeyB9CiAKIHByaXZhdGU6CkBAIC02OCw4ICs2MCw2IEBAIHByaXZhdGU6CiBjbGFzcyBS
ZWN0IGZpbmFsIDogcHVibGljIFJlY3RCYXNlLCBwdWJsaWMgUmVmQ291bnRlZDxSZWN0PiB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZWN0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IFJlY3QpOyB9Ci0gICAgCi0gICAgUmVmPFJlY3Q+IGNsb25lRm9yQ1NTT00oKSBjb25zdCB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlY3QoKnRoaXMpKTsgfQogCiAgICAgU3RyaW5nIGNzc1Rl
eHQoKSBjb25zdAogICAgIHsKQEAgLTc4LDcgKzY4LDYgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIFJlY3QoKSB7IH0KLSAgICBSZWN0KGNvbnN0IFJlY3QmIGNsb25lRnJvbSkgOiBSZWN0QmFz
ZShjbG9uZUZyb20pLCBSZWZDb3VudGVkPFJlY3Q+KCkgeyB9CiAgICAgc3RhdGljIFN0cmluZyBn
ZW5lcmF0ZUNTU1N0cmluZyhjb25zdCBTdHJpbmcmIHRvcCwgY29uc3QgU3RyaW5nJiByaWdodCwg
Y29uc3QgU3RyaW5nJiBib3R0b20sIGNvbnN0IFN0cmluZyYgbGVmdCkKICAgICB7CiAgICAgICAg
IHJldHVybiAicmVjdCgiICsgdG9wICsgIiwgIiArIHJpZ2h0ICsgIiwgIiArIGJvdHRvbSArICIs
ICIgKyBsZWZ0ICsgJyknOwpAQCAtODgsOCArNzcsNiBAQCBwcml2YXRlOgogY2xhc3MgUXVhZCBm
aW5hbCA6IHB1YmxpYyBSZWN0QmFzZSwgcHVibGljIFJlZkNvdW50ZWQ8UXVhZD4gewogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8UXVhZD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBR
dWFkKTsgfQotICAgIAotICAgIFJlZjxRdWFkPiBjbG9uZUZvckNTU09NKCkgY29uc3QgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBRdWFkKCp0aGlzKSk7IH0KIAogICAgIFN0cmluZyBjc3NUZXh0KCkg
Y29uc3QKICAgICB7CkBAIC05OCw3ICs4NSw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBR
dWFkKCkgeyB9Ci0gICAgUXVhZChjb25zdCBRdWFkJiBjbG9uZUZyb20pIDogUmVjdEJhc2UoY2xv
bmVGcm9tKSwgUmVmQ291bnRlZDxRdWFkPigpIHsgfQogICAgIHN0YXRpYyBTdHJpbmcgZ2VuZXJh
dGVDU1NTdHJpbmcoY29uc3QgU3RyaW5nJiB0b3AsIGNvbnN0IFN0cmluZyYgcmlnaHQsIGNvbnN0
IFN0cmluZyYgYm90dG9tLCBjb25zdCBTdHJpbmcmIGxlZnQpCiAgICAgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5pZGwJKHJldmlzaW9uIDIwOTkzMikK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmlkbAkobm9uZXhpc3RlbnQpCkBAIC0xLDI4ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KLSAqLwotCi1bCi0gICAgRXhwb3J0VG9XcmFwcGVkRnVuY3Rpb24sCi0gICAgSW1wbGVt
ZW50YXRpb25MYWNrc1ZUYWJsZSwKLV0gaW50ZXJmYWNlIFJlY3QgewotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSB0b3A7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIENT
U1ByaW1pdGl2ZVZhbHVlIHJpZ2h0OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRp
dmVWYWx1ZSBib3R0b207Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2ZVZhbHVl
IGxlZnQ7Ci19OwoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvY3NzL1JlY3Qu
aWRsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRp
dmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdF
bGVtZW50LmNwcAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Vs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU1ZH
RWxlbWVudC5oIgogCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlQYXJzZXIuaCIKKyNpbmNsdWRlICJE
ZXByZWNhdGVkQ1NTT01WYWx1ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKQEAgLTEwMjMsNyArMTAyNCw3
IEBAIHZvaWQgU1ZHRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IEMKICAgICBpbnZhbGlk
YXRlSW5zdGFuY2VzKCk7CiB9CiAKLVJlZlB0cjxDU1NWYWx1ZT4gU1ZHRWxlbWVudDo6Z2V0UHJl
c2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgbmFtZSkKK1JlZlB0cjxEZXByZWNhdGVk
Q1NTT01WYWx1ZT4gU1ZHRWxlbWVudDo6Z2V0UHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFN0
cmluZyYgbmFtZSkKIHsKICAgICBpZiAoIWhhc0F0dHJpYnV0ZXNXaXRob3V0VXBkYXRlKCkpCiAg
ICAgICAgIHJldHVybiAwOwpAQCAtMTAzNiw4ICsxMDM3LDEwIEBAIFJlZlB0cjxDU1NWYWx1ZT4g
U1ZHRWxlbWVudDo6Z2V0UHJlc2VudGEKICAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydGll
cz4gc3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpjcmVhdGUoU1ZHQXR0cmlidXRlTW9k
ZSk7CiAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEID0gY3NzUHJvcGVydHlJZEZvclNWR0F0
dHJpYnV0ZU5hbWUoYXR0cmlidXRlLT5uYW1lKCkpOwogICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShw
cm9wZXJ0eUlELCBhdHRyaWJ1dGUtPnZhbHVlKCkpOwotICAgIFJlZlB0cjxDU1NWYWx1ZT4gY3Nz
VmFsdWUgPSBzdHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eUlEKTsKLSAgICByZXR1
cm4gY3NzVmFsdWUgPyBjc3NWYWx1ZS0+Y2xvbmVGb3JDU1NPTSgpIDogbnVsbHB0cjsKKyAgICBh
dXRvIGNzc1ZhbHVlID0gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUocHJvcGVydHlJRCk7Cisg
ICAgaWYgKCFjc3NWYWx1ZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGNz
c1ZhbHVlLT5jcmVhdGVEZXByZWNhdGVkQ1NTT01XcmFwcGVyKCk7CiB9CiAKIGJvb2wgU1ZHRWxl
bWVudDo6aW5zdGFuY2VVcGRhdGVzQmxvY2tlZCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdF
bGVtZW50LmgJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwot
Y2xhc3MgQ1NTVmFsdWU7CitjbGFzcyBEZXByZWNhdGVkQ1NTT01WYWx1ZTsKIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcDsKIGNsYXNzIFNWR0RvY3VtZW50
RXh0ZW5zaW9uczsKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlz
QW5pbWF0YWJsZUNTU1Byb3BlcnR5KGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICBib29sIGlz
UHJlc2VudGF0aW9uQXR0cmlidXRlV2l0aFNWR0RPTShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAg
ICAgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICBSZWZQ
dHI8Q1NTVmFsdWU+IGdldFByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIG5hbWUp
OworICAgIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4gZ2V0UHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTWFya2Vy
cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNSZWxhdGl2ZUxlbmd0aHMo
KSBjb25zdCB7IHJldHVybiAhbV9lbGVtZW50c1dpdGhSZWxhdGl2ZUxlbmd0aHMuaXNFbXB0eSgp
OyB9CiAgICAgdmlydHVhbCBib29sIG5lZWRzUGVuZGluZ1Jlc291cmNlSGFuZGxpbmcoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaWRsCShyZXZp
c2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTM1LDcgKzM1LDggQEAKICAgICBhdHRyaWJ1dGUgbG9uZyB0YWJJbmRleDsK
IAogICAgIC8vIEZJWE1FOiBVc2luZyAidW5kZWZpbmVkIiBhcyBkZWZhdWx0IHBhcmFtZXRlciB2
YWx1ZSBpcyB3cm9uZy4KLSAgICBDU1NWYWx1ZSBnZXRQcmVzZW50YXRpb25BdHRyaWJ1dGUob3B0
aW9uYWwgRE9NU3RyaW5nIG5hbWUgPSAidW5kZWZpbmVkIik7CisgICAgLy8gVGhpcyBtZXRob2Qg
aXMgZGVwcmVjYXRlZCwgYW5kIHdlJ2QgbGlrZSB0byByZW1vdmUgaXQgc29tZWRheS4KKyAgICBE
ZXByZWNhdGVkQ1NTT01WYWx1ZSBnZXRQcmVzZW50YXRpb25BdHRyaWJ1dGUob3B0aW9uYWwgRE9N
U3RyaW5nIG5hbWUgPSAidW5kZWZpbmVkIik7CiAKICAgICB2b2lkIGZvY3VzKCk7CiAgICAgdm9p
ZCBibHVyKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNCBAQAor
MjAxNi0xMi0xNiAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NT
IFZhbHVlc10gTWFrZSBzZXBhcmF0ZSB3cmFwcGVyIGNsYXNzZXMgZm9yIHRoZSBkZXByZWNhdGVk
IENTUyBWYWx1ZXMgT00KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NTk2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogRE9NL0RPTUNTUy5tbToKKyAgICAgICAgKGtpdENsYXNzKToKKyAgICAgICAgKiBE
T00vRE9NQ1NTUHJpbWl0aXZlVmFsdWUubW06CisgICAgICAgICgtW0RPTUNTU1ByaW1pdGl2ZVZh
bHVlIGdldENvdW50ZXJWYWx1ZV0pOgorICAgICAgICAoLVtET01DU1NQcmltaXRpdmVWYWx1ZSBn
ZXRSZWN0VmFsdWVdKToKKyAgICAgICAgKGtpdCk6CisgICAgICAgICogRE9NL0RPTUNTU1ByaW1p
dGl2ZVZhbHVlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBET00vRE9NQ1NTU3R5bGVEZWNsYXJhdGlv
bi5tbToKKyAgICAgICAgKiBET00vRE9NQ1NTVmFsdWUubW06CisgICAgICAgIChraXQpOgorICAg
ICAgICAqIERPTS9ET01DU1NWYWx1ZUludGVybmFsLmg6CisgICAgICAgICogRE9NL0RPTUNTU1Zh
bHVlTGlzdC5tbToKKyAgICAgICAgKiBET00vRE9NQ291bnRlci5tbToKKyAgICAgICAgKGtpdCk6
CisgICAgICAgICogRE9NL0RPTUNvdW50ZXJJbnRlcm5hbC5oOgorICAgICAgICAqIERPTS9ET01S
R0JDb2xvci5tbToKKyAgICAgICAgKGtpdCk6CisgICAgICAgICogRE9NL0RPTVJHQkNvbG9ySW50
ZXJuYWwuaDoKKyAgICAgICAgKiBET00vRE9NUmVjdC5tbToKKyAgICAgICAgKGtpdCk6CisgICAg
ICAgICogRE9NL0RPTVJlY3RJbnRlcm5hbC5oOgorICAgICAgICAqIERPTS9ET01VdGlsaXR5Lm1t
OgorICAgICAgICAoY3JlYXRlRE9NV3JhcHBlcik6CisKIDIwMTYtMTItMTUgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBhc1N0cmluZyBpbnN0ZWFkIG9mIHRv
V1RGU3RyaW5nLCB0b1N0cmluZywgb3IgZ2V0U3RyaW5nIHdoZW4gd2UgYWxyZWFkeSBjaGVja2Vk
IGlzU3RyaW5nCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01DU1MubW0JKHJldmlzaW9uIDIwOTkzMikK
KysrIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01DU1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4
LDcgKzI4LDcgQEAKIAogI2ltcG9ydCA8V2ViQ29yZS9DU1NSdWxlLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0NTU1N0eWxlU2hlZXQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvQ1NTVmFsdWUuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvRGVwcmVjYXRlZENTU09NVmFsdWUuaD4KICNpbXBvcnQgIkRPTUNTU0NoYXJz
ZXRSdWxlLmgiCiAjaW1wb3J0ICJET01DU1NGb250RmFjZVJ1bGUuaCIKICNpbXBvcnQgIkRPTUNT
U0ltcG9ydFJ1bGUuaCIKQEAgLTk0LDIwICs5NCwxNiBAQCBDbGFzcyBraXRDbGFzcyhXZWJDb3Jl
OjpDU1NSdWxlKiBpbXBsKQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8v
IERPTUNTU1ZhbHVlCiAKLUNsYXNzIGtpdENsYXNzKFdlYkNvcmU6OkNTU1ZhbHVlKiBpbXBsKQor
Q2xhc3Mga2l0Q2xhc3MoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWUqIGltcGwpCiB7CiAg
ICAgc3dpdGNoIChpbXBsLT5jc3NWYWx1ZVR5cGUoKSkgewotICAgICAgICBjYXNlIFdlYkNvcmU6
OkNTU1ZhbHVlOjpDU1NfUFJJTUlUSVZFX1ZBTFVFOgotICAgICAgICAgICAgcmV0dXJuIFtET01D
U1NQcmltaXRpdmVWYWx1ZSBjbGFzc107Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6Q1NTVmFsdWU6
OkNTU19WQUxVRV9MSVNUOgotICAgICAgICAgICAgcmV0dXJuIFtET01DU1NWYWx1ZUxpc3QgY2xh
c3NdOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkNTU1ZhbHVlOjpDU1NfSU5IRVJJVDoKLSAgICAg
ICAgY2FzZSBXZWJDb3JlOjpDU1NWYWx1ZTo6Q1NTX0lOSVRJQUw6Ci0gICAgICAgIGNhc2UgV2Vi
Q29yZTo6Q1NTVmFsdWU6OkNTU19VTlNFVDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpDU1NWYWx1
ZTo6Q1NTX1JFVkVSVDoKLSAgICAgICAgICAgIHJldHVybiBbRE9NQ1NTVmFsdWUgY2xhc3NdOwot
ICAgICAgICBjYXNlIFdlYkNvcmU6OkNTU1ZhbHVlOjpDU1NfQ1VTVE9NOgotICAgICAgICAgICAg
cmV0dXJuIFtET01DU1NWYWx1ZSBjbGFzc107CisgICAgY2FzZSBXZWJDb3JlOjpEZXByZWNhdGVk
Q1NTT01WYWx1ZTo6Q1NTX1BSSU1JVElWRV9WQUxVRToKKyAgICAgICAgcmV0dXJuIFtET01DU1NQ
cmltaXRpdmVWYWx1ZSBjbGFzc107CisgICAgY2FzZSBXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01W
YWx1ZTo6Q1NTX1ZBTFVFX0xJU1Q6CisgICAgICAgIHJldHVybiBbRE9NQ1NTVmFsdWVMaXN0IGNs
YXNzXTsKKyAgICBjYXNlIFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpDU1NfSU5IRVJJ
VDoKKyAgICBjYXNlIFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpDU1NfQ1VTVE9NOgor
ICAgICAgICByZXR1cm4gW0RPTUNTU1ZhbHVlIGNsYXNzXTsKICAgICB9CiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG5pbDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0RP
TS9ET01DU1NQcmltaXRpdmVWYWx1ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21h
Yy9ET00vRE9NQ1NTUHJpbWl0aXZlVmFsdWUubW0JKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJj
ZS9XZWJLaXQvbWFjL0RPTS9ET01DU1NQcmltaXRpdmVWYWx1ZS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMjUsOCArMjUsMTAgQEAKIAogI2ltcG9ydCAiRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRlcm5h
bC5oIgogCi0jaW1wb3J0IDxXZWJDb3JlL0NTU1ByaW1pdGl2ZVZhbHVlLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL0NvdW50ZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRlZENTU09NQ291bnRl
ci5oPgorI2ltcG9ydCA8V2ViQ29yZS9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oPgor
I2ltcG9ydCA8V2ViQ29yZS9EZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9EZXByZWNhdGVkQ1NTT01SZWN0Lmg+CiAjaW1wb3J0ICJET01DU1NWYWx1ZUludGVybmFs
LmgiCiAjaW1wb3J0ICJET01Db3VudGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU5vZGVJbnRl
cm5hbC5oIgpAQCAtMzQsMTQgKzM2LDEyIEBACiAjaW1wb3J0ICJET01SZWN0SW50ZXJuYWwuaCIK
ICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0pTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SR0JDb2xvci5oPgotI2ltcG9ydCA8
V2ViQ29yZS9SZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1VSTC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJTY3JpcHRPYmplY3RQcml2YXRl
Lmg+CiAjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CiAKLSNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NT
VmFsdWUqPihfaW50ZXJuYWwpKQorI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkRl
cHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpE
ZXByZWNhdGVkQ1NTT01WYWx1ZSo+KF9pbnRlcm5hbCkpCiAKIEBpbXBsZW1lbnRhdGlvbiBET01D
U1NQcmltaXRpdmVWYWx1ZQogCkBAIC03OCwxMyArNzgsMTMgQEAgLSAoTlNTdHJpbmcgKilnZXRT
dHJpbmdWYWx1ZQogLSAoRE9NQ291bnRlciAqKWdldENvdW50ZXJWYWx1ZQogewogICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4ga2l0KCZyYWlzZU9u
RE9NRXJyb3IoSU1QTC0+Z2V0Q291bnRlclZhbHVlKCkpKTsKKyAgICByZXR1cm4ga2l0KHJhaXNl
T25ET01FcnJvcihJTVBMLT5nZXRDb3VudGVyVmFsdWUoKSkucHRyKCkpOwogfQogCiAtIChET01S
ZWN0ICopZ2V0UmVjdFZhbHVlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwotICAgIHJldHVybiBraXQoJnJhaXNlT25ET01FcnJvcihJTVBMLT5nZXRSZWN0VmFs
dWUoKSkpOworICAgIHJldHVybiBraXQocmFpc2VPbkRPTUVycm9yKElNUEwtPmdldFJlY3RWYWx1
ZSgpKS5wdHIoKSk7CiB9CiAKIC0gKERPTVJHQkNvbG9yICopZ2V0UkdCQ29sb3JWYWx1ZQpAQCAt
MTA5LDggKzEwOSw4IEBAIC0gKHZvaWQpc2V0U3RyaW5nVmFsdWU6KHVuc2lnbmVkIHNob3J0KXMK
IAogQGVuZAogCi1ET01DU1NQcmltaXRpdmVWYWx1ZSAqa2l0KFdlYkNvcmU6OkNTU1ByaW1pdGl2
ZVZhbHVlKiB2YWx1ZSkKK0RPTUNTU1ByaW1pdGl2ZVZhbHVlICpraXQoV2ViQ29yZTo6RGVwcmVj
YXRlZENTU09NUHJpbWl0aXZlVmFsdWUqIHZhbHVlKQogewogICAgIFdlYkNvcmVUaHJlYWRWaW9s
YXRpb25DaGVja1JvdW5kT25lKCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUNTU1ByaW1p
dGl2ZVZhbHVlKj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4odmFsdWUpKSk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUNTU1ByaW1pdGl2ZVZhbHVlKj4oa2l0KHN0YXRp
Y19jYXN0PFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlKj4odmFsdWUpKSk7CiB9CkluZGV4
OiBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01DU1NQcmltaXRpdmVWYWx1ZUlu
dGVybmFsLmgJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01D
U1NQcmltaXRpdmVWYWx1ZUludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcg
QEAKICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01DU1NQcmltaXRpdmVWYWx1ZS5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBDU1NQcmltaXRpdmVWYWx1ZTsKK2NsYXNzIERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOwogfQogCi1ET01DU1NQcmltaXRpdmVWYWx1ZSAqa2l0KFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlKik7CitET01DU1NQcmltaXRpdmVWYWx1ZSAqa2l0KFdl
YkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKik7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L21hYy9ET00vRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5tbQkocmV2aXNpb24gMjA5
OTMyKQorKysgU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1N0eWxlRGVjbGFyYXRpb24ubW0J
KHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvQ1NTSW1w
b3J0UnVsZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9DU1NSdWxlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0NTU1N0eWxlRGVjbGFyYXRpb24uaD4KLSNpbXBvcnQgPFdlYkNvcmUvQ1NTVmFsdWUuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRlZENTU09NVmFsdWUuaD4KICNpbXBvcnQgIkRPTUNTU1J1
bGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NQ1NTVmFsdWVJbnRlcm5hbC5oIgogI2ltcG9ydCAi
RE9NSW50ZXJuYWwuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01DU1NWYWx1ZS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTVmFsdWUubW0JKHJl
dmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01DU1NWYWx1ZS5tbQko
d29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAogCiAjaW1wb3J0ICJET01DU1NWYWx1ZUlu
dGVybmFsLmgiCiAKLSNpbXBvcnQgPFdlYkNvcmUvQ1NTVmFsdWUuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvRGVwcmVjYXRlZENTU09NVmFsdWUuaD4KICNpbXBvcnQgIkRPTUludGVybmFsLmgiCiAjaW1w
b3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCkBA
IC0zNiw3ICszNiw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYlNjcmlwdE9iamVjdFByaXZhdGUu
aD4KICNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KIAotI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nh
c3Q8V2ViQ29yZTo6Q1NTVmFsdWUqPihfaW50ZXJuYWwpCisjZGVmaW5lIElNUEwgcmVpbnRlcnBy
ZXRfY2FzdDxXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZSo+KF9pbnRlcm5hbCkKIAogQGlt
cGxlbWVudGF0aW9uIERPTUNTU1ZhbHVlCiAKQEAgLTcwLDcgKzcwLDcgQEAgLSAodW5zaWduZWQg
c2hvcnQpY3NzVmFsdWVUeXBlCiAKIEBlbmQKIAotRE9NQ1NTVmFsdWUgKmtpdChXZWJDb3JlOjpD
U1NWYWx1ZSogdmFsdWUpCitET01DU1NWYWx1ZSAqa2l0KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NP
TVZhbHVlKiB2YWx1ZSkKIHsKICAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9u
ZSgpOwogICAgIGlmICghdmFsdWUpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NT
VmFsdWVJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01D
U1NWYWx1ZUludGVybmFsLmgJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L0RPTS9ET01DU1NWYWx1ZUludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDgg
QEAKICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01DU1NWYWx1ZS5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7Ci1jbGFzcyBDU1NWYWx1ZTsKK2NsYXNzIERlcHJlY2F0ZWRDU1NPTVZhbHVlOwogfQog
Ci1ET01DU1NWYWx1ZSAqa2l0KFdlYkNvcmU6OkNTU1ZhbHVlKik7Ci1DbGFzcyBraXRDbGFzcyhX
ZWJDb3JlOjpDU1NWYWx1ZSopOworRE9NQ1NTVmFsdWUgKmtpdChXZWJDb3JlOjpEZXByZWNhdGVk
Q1NTT01WYWx1ZSopOworQ2xhc3Mga2l0Q2xhc3MoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFs
dWUqKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01DU1NWYWx1ZUxpc3QubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1ZhbHVlTGlzdC5tbQkocmV2
aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1ZhbHVlTGlzdC5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjUsMTcgKzI1LDE2IEBACiAKICNpbXBvcnQgIkRPTUNTU1Zh
bHVlTGlzdC5oIgogCi0jaW1wb3J0IDxXZWJDb3JlL0NTU1ZhbHVlLmg+Ci0jaW1wb3J0IDxXZWJD
b3JlL0NTU1ZhbHVlTGlzdC5oPgogI2ltcG9ydCAiRE9NQ1NTVmFsdWVJbnRlcm5hbC5oIgogI2lt
cG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgor
I2ltcG9ydCA8V2ViQ29yZS9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENo
ZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYlNjcmlwdE9iamVjdFByaXZhdGUuaD4KICNpbXBv
cnQgPHd0Zi9HZXRQdHIuaD4KIAotI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNT
U1ZhbHVlTGlzdCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTVmFsdWUqPihfaW50ZXJu
YWwpKQorI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZh
bHVlTGlzdCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWUq
PihfaW50ZXJuYWwpKQogCiBAaW1wbGVtZW50YXRpb24gRE9NQ1NTVmFsdWVMaXN0CiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01Db3VudGVyLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL0RPTS9ET01Db3VudGVyLm1tCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3Vy
Y2UvV2ViS2l0L21hYy9ET00vRE9NQ291bnRlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjUsNyAr
MjUsNyBAQAogCiAjaW1wb3J0ICJET01Db3VudGVySW50ZXJuYWwuaCIKIAotI2ltcG9ydCA8V2Vi
Q29yZS9Db3VudGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIu
aD4KICNpbXBvcnQgIkRPTUludGVybmFsLmgiCiAjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIK
ICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCkBAIC0zNiw3ICszNiw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL1dlYlNjcmlwdE9iamVjdFByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9HZXRQdHIu
aD4KIAotI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q291bnRlcio+KF9p
bnRlcm5hbCkKKyNkZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkRlcHJlY2F0
ZWRDU1NPTUNvdW50ZXIqPihfaW50ZXJuYWwpCiAKIEBpbXBsZW1lbnRhdGlvbiBET01Db3VudGVy
CiAKQEAgLTcwLDcgKzcwLDcgQEAgLSAoTlNTdHJpbmcgKilzZXBhcmF0b3IKIAogQGVuZAogCi1E
T01Db3VudGVyICpraXQoV2ViQ29yZTo6Q291bnRlciogdmFsdWUpCitET01Db3VudGVyICpraXQo
V2ViQ29yZTo6RGVwcmVjYXRlZENTU09NQ291bnRlciogdmFsdWUpCiB7CiAgICAgV2ViQ29yZVRo
cmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKICAgICBpZiAoIXZhbHVlKQpJbmRleDogU291
cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNvdW50ZXJJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL0RPTS9ET01Db3VudGVySW50ZXJuYWwuaAkocmV2aXNpb24gMjA5OTMy
KQorKysgU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNvdW50ZXJJbnRlcm5hbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NQ291bnRl
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBDb3VudGVyOworY2xhc3MgRGVwcmVj
YXRlZENTU09NQ291bnRlcjsKIH0KIAotRE9NQ291bnRlciAqa2l0KFdlYkNvcmU6OkNvdW50ZXIq
KTsKK0RPTUNvdW50ZXIgKmtpdChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01Db3VudGVyKik7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NUkdCQ29sb3IubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9tYWMvRE9NL0RPTVJHQkNvbG9yLm1tCShyZXZpc2lvbiAyMDk5MzIpCisr
KyBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NUkdCQ29sb3IubW0JKHdvcmtpbmcgY29weSkKQEAg
LTI1LDEzICsyNSwxMyBAQAogCiAjaW1wb3J0ICJET01SR0JDb2xvckludGVybmFsLmgiCiAKLSNp
bXBvcnQgPFdlYkNvcmUvQ1NTUHJpbWl0aXZlVmFsdWUuaD4KICNpbXBvcnQgIkRPTUNTU1ByaW1p
dGl2ZVZhbHVlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTUludGVybmFsLmgiCiAjaW1wb3J0ICJE
T01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0
IDxXZWJDb3JlL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmg+CisjaW1wb3J0IDxXZWJD
b3JlL0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SR0JDb2xvci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9UaHJlYWRDaGVjay5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJh
cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJTY3JpcHRPYmplY3RQcml2YXRlLmg+CkBAIC00Myw3
ICs0Myw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yU3BhY2UuaD4KICNlbmRpZgogCi0jZGVm
aW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpSR0JDb2xvcio+KF9pbnRlcm5hbCkK
KyNkZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVJH
QkNvbG9yKj4oX2ludGVybmFsKQogCiBAaW1wbGVtZW50YXRpb24gRE9NUkdCQ29sb3IKIApAQCAt
OTcsNyArOTcsNyBAQCAtIChDR0NvbG9yUmVmKWNvbG9yCiAKIEBlbmQKIAotRE9NUkdCQ29sb3Ig
KmtpdChXZWJDb3JlOjpSR0JDb2xvciogdmFsdWUpCitET01SR0JDb2xvciAqa2l0KFdlYkNvcmU6
OkRlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yKiB2YWx1ZSkKIHsKICAgICBXZWJDb3JlVGhyZWFkVmlv
bGF0aW9uQ2hlY2tSb3VuZE9uZSgpOwogICAgIGlmICghdmFsdWUpCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L21hYy9ET00vRE9NUkdCQ29sb3JJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL0RPTS9ET01SR0JDb2xvckludGVybmFsLmgJKHJldmlzaW9uIDIwOTkzMikKKysr
IFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01SR0JDb2xvckludGVybmFsLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01SR0JDb2xvci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBSR0JDb2xvcjsKK2NsYXNzIERlcHJlY2F0
ZWRDU1NPTVJHQkNvbG9yOwogfQogCi1ET01SR0JDb2xvciAqa2l0KFdlYkNvcmU6OlJHQkNvbG9y
Kik7CitET01SR0JDb2xvciAqa2l0KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yKik7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NUmVjdC5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L21hYy9ET00vRE9NUmVjdC5tbQkocmV2aXNpb24gMjA5OTMyKQorKysgU291
cmNlL1dlYktpdC9tYWMvRE9NL0RPTVJlY3QubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1LDE5ICsy
NSwxOSBAQAogCiAjaW1wb3J0ICJET01SZWN0SW50ZXJuYWwuaCIKIAotI2ltcG9ydCA8V2ViQ29y
ZS9DU1NQcmltaXRpdmVWYWx1ZS5oPgogI2ltcG9ydCAiRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRl
cm5hbC5oIgogI2ltcG9ydCAiRE9NSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU5vZGVJbnRlcm5h
bC5oIgogI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRGVw
cmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRl
ZENTU09NUmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU01haW5UaHJlYWRFeGVjU3RhdGUuaD4K
LSNpbXBvcnQgPFdlYkNvcmUvUmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRDaGVjay5o
PgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9XZWJTY3JpcHRPYmplY3RQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CiAKLSNk
ZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OlJlY3QqPihfaW50ZXJuYWwpCisj
ZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01SZWN0
Kj4oX2ludGVybmFsKQogCiBAaW1wbGVtZW50YXRpb24gRE9NUmVjdAogCkBAIC03Nyw3ICs3Nyw3
IEBAIC0gKERPTUNTU1ByaW1pdGl2ZVZhbHVlICopbGVmdAogCiBAZW5kCiAKLURPTVJlY3QgKmtp
dChXZWJDb3JlOjpSZWN0KiB2YWx1ZSkKK0RPTVJlY3QgKmtpdChXZWJDb3JlOjpEZXByZWNhdGVk
Q1NTT01SZWN0KiB2YWx1ZSkKIHsKICAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3Vu
ZE9uZSgpOwogICAgIGlmICghdmFsdWUpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9N
UmVjdEludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTVJl
Y3RJbnRlcm5hbC5oCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9ET00v
RE9NUmVjdEludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBv
cnQgPFdlYktpdExlZ2FjeS9ET01SZWN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNz
IFJlY3Q7CitjbGFzcyBEZXByZWNhdGVkQ1NTT01SZWN0OwogfQogCi1ET01SZWN0ICpraXQoV2Vi
Q29yZTo6UmVjdCopOworRE9NUmVjdCAqa2l0KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVJlY3Qq
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01VdGlsaXR5Lm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01VdGlsaXR5Lm1tCShyZXZpc2lvbiAyMDk5MzIp
CisrKyBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NVXRpbGl0eS5tbQkod29ya2luZyBjb3B5KQpA
QCAtNTAsMTAgKzUwLDEyIEBACiAjaW1wb3J0IDxXZWJDb3JlL0pTQ1NTUnVsZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9KU0NTU1J1bGVMaXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5oPgotI2ltcG9ydCA8V2ViQ29yZS9KU0NTU1ZhbHVlLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL0pTQ291bnRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU0RPTUltcGxlbWVudGF0aW9u
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTRE9NV2luZG93U2hlbGwuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvSlNEZXByZWNhdGVkQ1NTT01Db3VudGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0pTRGVwcmVj
YXRlZENTU09NUkdCQ29sb3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvSlNEZXByZWNhdGVkQ1NTT01S
ZWN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0pTRGVwcmVjYXRlZENTU09NVmFsdWUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvSlNFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU0hUTUxDb2xsZWN0aW9u
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmg+CkBAIC02Miw5
ICs2NCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0pTTm9kZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9K
U05vZGVJdGVyYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU05vZGVMaXN0Lmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL0pTUkdCQ29sb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNSYW5nZS5oPgotI2lt
cG9ydCA8V2ViQ29yZS9KU1JlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNTdHlsZVNoZWV0Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0pTU3R5bGVTaGVldExpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUv
SlNUcmVlV2Fsa2VyLmg+CkBAIC04MSw4ICs4MSw4IEBAIHN0YXRpYyBXZWJTY3JpcHRPYmplY3Qg
KmNyZWF0ZURPTVdyYXBwZXIKICAgICBXUkFQKENTU1J1bGUpCiAgICAgV1JBUChDU1NSdWxlTGlz
dCkKICAgICBXUkFQKENTU1N0eWxlRGVjbGFyYXRpb24pCi0gICAgV1JBUChDU1NWYWx1ZSkKLSAg
ICBXUkFQKENvdW50ZXIpCisgICAgV1JBUChEZXByZWNhdGVkQ1NTT01WYWx1ZSkKKyAgICBXUkFQ
KERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIpCiAgICAgV1JBUChET01JbXBsZW1lbnRhdGlvbikKICAg
ICBXUkFQKERPTVdpbmRvd1NoZWxsKQogICAgIFdSQVAoRXZlbnQpCkBAIC05Miw5ICs5Miw5IEBA
IHN0YXRpYyBXZWJTY3JpcHRPYmplY3QgKmNyZWF0ZURPTVdyYXBwZXIKICAgICBXUkFQKE5vZGUp
CiAgICAgV1JBUChOb2RlSXRlcmF0b3IpCiAgICAgV1JBUChOb2RlTGlzdCkKLSAgICBXUkFQKFJH
QkNvbG9yKQorICAgIFdSQVAoRGVwcmVjYXRlZENTU09NUkdCQ29sb3IpCiAgICAgV1JBUChSYW5n
ZSkKLSAgICBXUkFQKFJlY3QpCisgICAgV1JBUChEZXByZWNhdGVkQ1NTT01SZWN0KQogICAgIFdS
QVAoU3R5bGVTaGVldCkKICAgICBXUkFQKFN0eWxlU2hlZXRMaXN0KQogICAgIFdSQVAoVHJlZVdh
bGtlcikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297352</attachid>
            <date>2016-12-16 13:46:54 -0800</date>
            <delta_ts>2016-12-16 16:23:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165968-20161216154559.patch</filename>
            <type>text/plain</type>
            <size>186095</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1NCBAQAorMjAxNi0xMi0xNiAgRGF2ZSBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIFZhbHVlc10gTWFrZSBzZXBh
cmF0ZSB3cmFwcGVyIGNsYXNzZXMgZm9yIHRoZSBkZXByZWNhdGVkIENTUyBWYWx1ZXMgT00KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTk2OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
Y2hhbmdlcyB0aGUgQ1NTIE9NIGZvciB2YWx1ZXMgdG8gdXNlIGRpc3RpbmN0IHdyYXBwZXIKKyAg
ICAgICAgY2xhc3NlcyBpbnN0ZWFkIG9mIGNsb25pbmcgdGhlIGV4aXN0aW5nIGNsYXNzZXMuIEJ5
IGFjdHVhbGx5IHdyYXBwaW5nCisgICAgICAgIHZhbHVlcyBpbnN0ZWFkIG9mIGNsb25pbmcsIHdl
IGFyZSBmcmVlZCB1cCB0byBjaGFuZ2Ugb3VyIENTUyB2YWx1ZSBoaWVyYXJjaHkKKyAgICAgICAg
aG93ZXZlciB3ZSdkIGxpa2UgKHN1Y2ggYXMgY2hhbmdpbmcgdG8gbWF0Y2ggdGhlIG5ldyBDU1Mg
VmFsdWVzIE9NIHRoYXQKKyAgICAgICAgaXMgY29taW5nIHNvb24pLgorCisgICAgICAgIEFsbCBv
ZiB0aGUgQ1NTIFZhbHVlcyB3cmFwcGVyIGNsYXNzZXMgYXJlIHByZWZpeGVkIHdpdGggIkRlcHJl
Y2F0ZWRDU1NPTSIKKyAgICAgICAgdG8gcmVmbGVjdCBvdXIgZGVzaXJlICh1bHRpbWF0ZWx5KSB0
byByZW1vdmUgdGhpcyBBUEkgZnJvbSBvdXIgdHJlZS4gV2UncmUKKyAgICAgICAgdGhlIG9ubHkg
b25lcyB0aGF0IHN1cHBvcnQgaXQsIGFuZCBpdCdzIG5vdCB1c2VkIG9uIHRoZSBXZWIsIGJ1dCBp
dCBpcyBwYXJ0CisgICAgICAgIG9mIHRoZSBXZWJLaXRMZWdhY3kgQVBJIGFuZCBtaWdodCBiZSB1
c2VkIGludGVybmFsbHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGlu
Z3MvanMvRE9NV3JhcHBlcldvcmxkLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDU1NTdHls
ZURlY2xhcmF0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ1NTU3R5bGVEZWNs
YXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlND
U1NWYWx1ZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RlcHJlY2F0ZWRDU1NPTVZh
bHVlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTRGVwcmVjYXRlZENTU09NVmFsdWVPd25lcjo6ZmluYWxpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTQ1NTVmFsdWVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNDU1NWYWx1ZU93bmVyOjpmaW5hbGl6ZSk6IERl
bGV0ZWQuCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5
Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaDoK
KyAgICAgICAgKiBjc3MvQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0dyaWRMaW5lTmFtZXNWYWx1ZTo6Y2xvbmVGb3JDU1NPTSk6IERlbGV0ZWQuCisgICAg
ICAgICogY3NzL0NTU0dyaWRMaW5lTmFtZXNWYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NJbWFn
ZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlU2V0VmFsdWU6OmNsb25l
Rm9yQ1NTT00pOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9DU1NJbWFnZVNldFZhbHVlLmg6Cisg
ICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1h
Z2VWYWx1ZTo6Y3JlYXRlRGVwcmVjYXRlZENTU09NV3JhcHBlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NJbWFnZVZhbHVlOjpjbG9uZUZvckNTU09NKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3Mv
Q1NTSW1hZ2VWYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlRGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
Y2xvbmVGb3JDU1NPTSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
Lmg6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlkbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAqIGNzcy9DU1NTdHlsZURl
Y2xhcmF0aW9uLmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTVmFsdWU6OnRyYXZlcnNlU3VicmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ZhbHVlOjplcXVhbHMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmNzc1RleHQp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTVmFsdWU6OmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIpOgorICAgICAgICAoKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjpjbG9uZUZvckNTU09NKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Zh
bHVlOjpDU1NWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6c2V0Q3NzVGV4dCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNDU1NPTVNhZmUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzU3VidHlwZUV4cG9zZWRUb0NTU09N
KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaWRsOiBSZW1vdmVkLgorICAgICAg
ICAqIGNzcy9DU1NWYWx1ZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVMaXN0
OjpjbG9uZUZvckNTU09NKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVMaXN0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZUxpc3Q6OnNlcGFyYXRvcik6CisgICAgICAgICog
Y3NzL0NTU1ZhbHVlTGlzdC5pZGw6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0NvdW50ZXIuaDoK
KyAgICAgICAgKiBjc3MvQ291bnRlci5pZGw6IFJlbW92ZWQuCisgICAgICAgICogY3NzL0RlcHJl
Y2F0ZWRDU1NPTUNvdW50ZXIuaDogQWRkZWQuCisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NP
TUNvdW50ZXIuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3MvQ291bnRlci5pZGwu
CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6Z2V0Q291
bnRlclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZh
bHVlOjpnZXRSZWN0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWU6OmdldFJHQkNvbG9yVmFsdWUpOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVWYWx1ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVj
YXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OmVxdWFscyk6CisgICAgICAgIChXZWJDb3JlOjpEZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6Y3NzVmFsdWVUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpjc3NUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpwcmltaXRpdmVUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpzZXRGbG9hdFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpn
ZXRGbG9hdFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2
ZVZhbHVlOjpzZXRTdHJpbmdWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NT
T01QcmltaXRpdmVWYWx1ZTo6Z2V0U3RyaW5nVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVw
cmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU6OnN0cmluZ1ZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpEZXByZWNhdGVkQ1NTT01QcmltaXRp
dmVWYWx1ZSk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmlk
bDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlkbC4K
KyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaDogQWRkZWQuCisgICAgICAg
ICogY3NzL0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmlkbDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvY3NzL1JHQkNvbG9yLmlkbC4KKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NUmVj
dC5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NUmVjdC5pZGw6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmlkbC4KKyAgICAgICAgKiBjc3MvRGVwcmVj
YXRlZENTU09NVmFsdWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVDU1NP
TVZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZTo6ZXF1YWxz
KToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpkZXN0cm95KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpjc3NWYWx1ZVR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWU6OmNzc1RleHQpOgorICAgICAgICAq
IGNzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRl
cHJlY2F0ZWRDU1NPTVZhbHVlOjpkZXJlZik6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVk
Q1NTT01WYWx1ZTo6c2V0Q3NzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NT
T01WYWx1ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01W
YWx1ZTo6aXNDb21wbGV4VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09N
VmFsdWU6OmlzUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENT
U09NVmFsdWU6OmlzVmFsdWVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NP
TVZhbHVlOjpjbGFzc1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFs
dWU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRD
U1NPTVZhbHVlOjp+RGVwcmVjYXRlZENTU09NVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVw
cmVjYXRlZENTU09NQ29tcGxleFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVw
cmVjYXRlZENTU09NQ29tcGxleFZhbHVlOjplcXVhbHMpOgorICAgICAgICAoV2ViQ29yZTo6RGVw
cmVjYXRlZENTU09NQ29tcGxleFZhbHVlOjpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRl
cHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZTo6Y3NzVmFsdWVUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZTo6RGVwcmVjYXRlZENTU09NQ29tcGxleFZh
bHVlKToKKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaWRsOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaWRsLgorICAgICAgICAqIGNzcy9EZXByZWNh
dGVkQ1NTT01WYWx1ZUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0
ZWRDU1NPTVZhbHVlTGlzdDo6ZXF1YWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRD
U1NPTVZhbHVlTGlzdDo6Y3NzVGV4dCk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVZh
bHVlTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVl
TGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlTGlz
dDo6Y3NzVmFsdWVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVl
TGlzdDo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlTGlz
dDo6aXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q6OkRl
cHJlY2F0ZWRDU1NPTVZhbHVlTGlzdCk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVZh
bHVlTGlzdC5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3Qu
aWRsLgorICAgICAgICAqIGNzcy9MZW5ndGhSZXBlYXQuaDoKKyAgICAgICAgKiBjc3MvUHJvcGVy
dHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5
U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OndyYXBGb3JEZXByZWNhdGVk
Q1NTT00pOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbjo6
ZGlkTXV0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUNTU1N0eWxlRGVjbGFyYXRpb246
OmRpZE11dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFy
YXRpb246OmNsb25lQW5kQ2FjaGVGb3JDU1NPTSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL1By
b3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAqIGNzcy9SR0JDb2xvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSR0JDb2xvcjo6cmVkKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJHQkNvbG9yOjpncmVlbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpS
R0JDb2xvcjo6Ymx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSR0JDb2xvcjo6YWxw
aGEpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9SR0JDb2xvci5oOgorICAgICAgICAqIGNzcy9S
R0JDb2xvci5pZGw6IFJlbW92ZWQuCisgICAgICAgICogY3NzL1JlY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlY3RCYXNlOjpSZWN0QmFzZSk6CisgICAgICAgICogY3NzL1JlY3QuaWRsOiBSZW1v
dmVkLgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0VsZW1lbnQ6OmdldFByZXNlbnRhdGlvbkF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5pZGw6CisKIDIwMTYtMTItMTYgIEFu
ZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFN1YmZyYW1lcyBnb2lu
ZyBpbnRvIHBhZ2UgY2FjaGUgZG9uJ3QgbmVlZCB0byByZXNldFNjcm9sbGJhcnMoKS4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzQ4LDcgKzM0OCw2IEBAIHNldChXZWJD
b3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgY3NzL0NTU01lZGlhUnVsZS5pZGwKICAgICBjc3Mv
Q1NTTmFtZXNwYWNlUnVsZS5pZGwKICAgICBjc3MvQ1NTUGFnZVJ1bGUuaWRsCi0gICAgY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmlkbAogICAgIGNzcy9DU1NSdWxlLmlkbAogICAgIGNzcy9DU1NSdWxl
TGlzdC5pZGwKICAgICBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKQEAgLTM1NiwxNyArMzU1
LDE4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgY3NzL0NTU1N0eWxlU2hl
ZXQuaWRsCiAgICAgY3NzL0NTU1N1cHBvcnRzUnVsZS5pZGwKICAgICBjc3MvQ1NTVW5rbm93blJ1
bGUuaWRsCi0gICAgY3NzL0NTU1ZhbHVlLmlkbAotICAgIGNzcy9DU1NWYWx1ZUxpc3QuaWRsCi0g
ICAgY3NzL0NvdW50ZXIuaWRsCisgICAgY3NzL0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaWRsCisg
ICAgY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmlkbAorICAgIGNzcy9EZXByZWNh
dGVkQ1NTT01SR0JDb2xvci5pZGwKKyAgICBjc3MvRGVwcmVjYXRlZENTU09NUmVjdC5pZGwKKyAg
ICBjc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaWRsCisgICAgY3NzL0RlcHJlY2F0ZWRDU1NPTVZh
bHVlTGlzdC5pZGwKICAgICBjc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbAogICAgIGNzcy9Gb250RmFj
ZS5pZGwKICAgICBjc3MvRm9udEZhY2VTZXQuaWRsCiAgICAgY3NzL01lZGlhTGlzdC5pZGwKICAg
ICBjc3MvTWVkaWFRdWVyeUxpc3QuaWRsCiAgICAgY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
aWRsCi0gICAgY3NzL1JHQkNvbG9yLmlkbAotICAgIGNzcy9SZWN0LmlkbAogICAgIGNzcy9TdHls
ZU1lZGlhLmlkbAogICAgIGNzcy9TdHlsZVNoZWV0LmlkbAogICAgIGNzcy9TdHlsZVNoZWV0TGlz
dC5pZGwKQEAgLTEzMzMsNiArMTMzMyw5IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3Mv
Q1NTVmFyaWFibGVEYXRhLmNwcAogICAgIGNzcy9DU1NWYXJpYWJsZVJlZmVyZW5jZVZhbHVlLmNw
cAogICAgIGNzcy9ET01DU1NOYW1lc3BhY2UuY3BwCisgICAgY3NzL0RlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlLmNwcAorICAgIGNzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAKKyAgICBj
c3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcAogICAgIGNzcy9Eb2N1bWVudFJ1bGVTZXRz
LmNwcAogICAgIGNzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKICAgICBjc3MvRm9udFZhcmlh
bnRCdWlsZGVyLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkocmV2aXNpb24g
MjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTYsNyArMTE2LDYgQEAKICNpbmNsdWRlICJKU0NvbW1lbnQuY3BwIgogI2luY2x1
ZGUgIkpTQ29tcG9zaXRpb25FdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNDb29yZGluYXRlcy5jcHAi
Ci0jaW5jbHVkZSAiSlNDb3VudGVyLmNwcCIKICNpbmNsdWRlICJKU0NyeXB0by5jcHAiCiAjaWYg
RU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMpCiAjaW5jbHVkZSAiSlNDU1NGb250RmFjZUxvYWRFdmVu
dC5jcHAiCkBAIC0xMjcsNyArMTI2LDYgQEAKICNpbmNsdWRlICJKU0NTU0tleWZyYW1lc1J1bGUu
Y3BwIgogI2luY2x1ZGUgIkpTQ1NTTWVkaWFSdWxlLmNwcCIKICNpbmNsdWRlICJKU0NTU1BhZ2VS
dWxlLmNwcCIKLSNpbmNsdWRlICJKU0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCIKICNpbmNsdWRlICJK
U0NTU1J1bGUuY3BwIgogI2luY2x1ZGUgIkpTQ1NTUnVsZUxpc3QuY3BwIgogI2luY2x1ZGUgIkpT
Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAiCkBAIC0xMzUsOCArMTMzLDYgQEAKICNpbmNsdWRlICJK
U0NTU1N0eWxlU2hlZXQuY3BwIgogI2luY2x1ZGUgIkpTQ1NTU3VwcG9ydHNSdWxlLmNwcCIKICNp
bmNsdWRlICJKU0NTU1Vua25vd25SdWxlLmNwcCIKLSNpbmNsdWRlICJKU0NTU1ZhbHVlLmNwcCIK
LSNpbmNsdWRlICJKU0NTU1ZhbHVlTGlzdC5jcHAiCiAjaW5jbHVkZSAiSlNDbGlwYm9hcmRFdmVu
dC5jcHAiCiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50UmVnaXN0cnkuY3BwIgogI2luY2x1ZGUg
IkpTQ3VzdG9tRXZlbnQuY3BwIgpAQCAtMTQ5LDYgKzE0NSwxMiBAQAogI2lmIEVOQUJMRShXRUJf
QVVESU8pCiAjaW5jbHVkZSAiSlNEZWxheU5vZGUuY3BwIgogI2VuZGlmCisjaW5jbHVkZSAiSlNE
ZXByZWNhdGVkQ1NTT01Db3VudGVyLmNwcCIKKyNpbmNsdWRlICJKU0RlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlLmNwcCIKKyNpbmNsdWRlICJKU0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmNw
cCIKKyNpbmNsdWRlICJKU0RlcHJlY2F0ZWRDU1NPTVJlY3QuY3BwIgorI2luY2x1ZGUgIkpTRGVw
cmVjYXRlZENTU09NVmFsdWUuY3BwIgorI2luY2x1ZGUgIkpTRGVwcmVjYXRlZENTU09NVmFsdWVM
aXN0LmNwcCIKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogI2luY2x1ZGUgIkpTRGV2
aWNlTW90aW9uRXZlbnQuaCIKICNpbmNsdWRlICJKU0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3Bw
IgpAQCAtNDAxLDkgKzQwMyw3IEBACiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbS5jcHAiCiAj
aW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCIKICNpbmNsdWRl
ICJKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5jcHAiCi0jaW5jbHVkZSAiSlNSZWN0LmNw
cCIKICNpbmNsdWRlICJKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmNwcCIKLSNpbmNs
dWRlICJKU1JHQkNvbG9yLmNwcCIKICNpbmNsdWRlICJKU1JUQ0NvbmZpZ3VyYXRpb24uY3BwIgog
I2luY2x1ZGUgIkpTUlRDRGF0YUNoYW5uZWwuY3BwIgogI2luY2x1ZGUgIkpTUlRDRGF0YUNoYW5u
ZWxFdmVudC5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9u
IDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcg
Y29weSkKQEAgLTI4MCw3ICsyODAsNiBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9jc3MvQ1NTTWVkaWFSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTTmFtZXNw
YWNlUnVsZS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU1BhZ2VSdWxlLmlkbCBcCi0gICAg
JChXZWJDb3JlKS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nz
cy9DU1NSdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTUnVsZUxpc3QuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbCBcCkBAIC0yODgsMTcgKzI4
NywxOCBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9jc3MvQ1NTU3R5bGVT
aGVldC5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL0NTU1N1cHBvcnRzUnVsZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvY3NzL0NTU1Vua25vd25SdWxlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3Mv
Q1NTVmFsdWUuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsIFwKLSAg
ICAkKFdlYkNvcmUpL2Nzcy9Db3VudGVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9jc3MvRGVwcmVj
YXRlZENTU09NQ291bnRlci5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL0RlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvRGVwcmVjYXRlZENTU09NUkdCQ29s
b3IuaWRsIFwKKwkkKFdlYkNvcmUpL2Nzcy9EZXByZWNhdGVkQ1NTT01SZWN0LmlkbCBcCisJJChX
ZWJDb3JlKS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2Nz
cy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9ET01D
U1NOYW1lc3BhY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9Gb250RmFjZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvY3NzL0ZvbnRGYWNlU2V0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvTWVk
aWFMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2Nzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbCBcCi0gICAgJChXZWJD
b3JlKS9jc3MvUkdCQ29sb3IuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9SZWN0LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9jc3MvU3R5bGVNZWRpYS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL1N0
eWxlU2hlZXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9TdHlsZVNoZWV0TGlzdC5pZGwgXApJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02MzMsOCArNjMzLDYgQEAKIAkJ
MTQ5OTNCRTUwQjJGMkIxQzAwNTA0OTdGIC8qIEZvY3VzQ29udHJvbGxlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDk5M0JFMzBCMkYyQjFDMDA1
MDQ5N0YgLyogRm9jdXNDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJMTQ5OTNCRTYwQjJGMkIxQzAw
NTA0OTdGIC8qIEZvY3VzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQ5OTNCRTQwQjJGMkIxQzAwNTA0OTdGIC8qIEZvY3VzQ29udHJv
bGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTE0QzlBNUVBMEIzRDEwNUYwMDVBMDIzMiAvKiBTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEM5QTVFOTBCM0QxMDVGMDA1QTAyMzIg
LyogU2V0dGluZ3MuY3BwICovOyB9OwotCQkxNENGNzhBNDA5RjU4Q0JGMDBFQjM2NjUgLyogSlND
U1NWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNENGNzhBMzA5RjU4Q0JGMDBFQjM2NjUgLyogSlNDU1NWYWx1ZS5jcHAgKi87IH07Ci0JCTE0
Q0Y3OEE2MDlGNThDRDgwMEVCMzY2NSAvKiBKU0NTU1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNENGNzhBNTA5RjU4Q0Q4MDBFQjM2NjUgLyog
SlNDU1NWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTE0Q0Y3QjMzMDlGNkVDRDcwMEVCMzY2NSAvKiBKU0NTU1J1bGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRDRjdCMzEwOUY2RUNENzAw
RUIzNjY1IC8qIEpTQ1NTUnVsZS5jcHAgKi87IH07CiAJCTE0Q0Y3QjM0MDlGNkVDRDcwMEVCMzY2
NSAvKiBKU0NTU1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0Q0Y3QjMyMDlGNkVDRDcwMEVCMzY2NSAvKiBKU0NTU1J1bGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNEQ2NEI1QzEzNEE1QjZC
MDBFNThGREEgLyogVHJlZVNjb3BlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0RDY0QjVBMTM0QTVCNkIwMEU1OEZEQSAvKiBUcmVlU2NvcGUuY3Bw
ICovOyB9OwpAQCAtMzI1MCwxMCArMzI0OCw2IEBACiAJCTkzMDJCMEJEMEQ3OUY4MjkwMEM3RUU4
MyAvKiBQYWdlR3JvdXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTMwMkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgKi87IH07
CiAJCTkzMDJCMEJGMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4
MyAvKiBQYWdlR3JvdXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5MzA1QjI0RDA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDVCMjRDMDk4RjFCNkIwMEMy
ODg1NSAvKiBUaW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTkzMDcwNUQ4MDlFMEM5QjcwMEIxN0ZFNCAvKiBKU0NvdW50ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwNzA1RDcwOUUwQzlC
NzAwQjE3RkU0IC8qIEpTQ291bnRlci5jcHAgKi87IH07Ci0JCTkzMDcwNURBMDlFMEM5QkYwMEIx
N0ZFNCAvKiBKU0NvdW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzMDcwNUQ5MDlFMEM5QkYwMEIxN0ZFNCAvKiBKU0NvdW50ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5MzA3MDVFOTA5RTBD
OUYwMDBCMTdGRTQgLyogSlNDU1NQcmltaXRpdmVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA3MDVFODA5RTBDOUYwMDBCMTdGRTQgLyog
SlNDU1NQcmltaXRpdmVWYWx1ZS5jcHAgKi87IH07Ci0JCTkzMDcwNUVCMDlFMEM5RjYwMEIxN0ZF
NCAvKiBKU0NTU1ByaW1pdGl2ZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzA3MDVFQTA5RTBDOUY2MDBCMTdGRTQgLyogSlNDU1NQcmltaXRp
dmVWYWx1ZS5oICovOyB9OwogCQk5MzA3RjFENzBBRjJENTkwMDBEQkEzMUEgLyogSGl0VGVzdFJl
c3VsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzA3RjFENTBBRjJENTkwMDBEQkEzMUEgLyogSGl0VGVzdFJlc3VsdC5jcHAgKi87IH07CiAJCTkz
MDdGMUQ4MEFGMkQ1OTAwMERCQTMxQSAvKiBIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA3RjFENjBBRjJENTkwMDBEQkEzMUEg
LyogSGl0VGVzdFJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzMDg0MTM0MUNEREIxNTUwMEIwOTU4QyAvKiBKU0RPTUNvbnZlcnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDg0MTMzMUNE
REIxNTUwMEIwOTU4QyAvKiBKU0RPTUNvbnZlcnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzU0Myw2ICszNTM3LDI3IEBACiAJCTk0NkQzNzRB
MUQ2RDA2MjgwMDc3MDg0RiAvKiBDU1NNYXJrdXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0NkQzNzQ4MUQ2RDA2MEMwMDc3MDg0RiAvKiBDU1NNYXJr
dXAuaCAqLzsgfTsKIAkJOTQ2RDM3NEQxRDZEMDhBNjAwNzcwODRGIC8qIENTU1BhcnNlclRva2Vu
UmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTQ2RDM3NEIxRDZEMDdGNTAwNzcwODRGIC8qIENTU1BhcnNlclRva2VuUmFuZ2UuY3BwICovOyB9
OwogCQk5NDZEMzc0RTFENkQwOEFBMDA3NzA4NEYgLyogQ1NTUGFyc2VyVG9rZW5SYW5nZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTQ2RDM3NEMxRDZE
MDdGNTAwNzcwODRGIC8qIENTU1BhcnNlclRva2VuUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NDc5NDkyNDFFMDMwOEE0MDAwMThEODUg
LyogRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MjIxRTAyRjkwQjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRD
U1NPTVZhbHVlLmNwcCAqLzsgfTsKKwkJOTQ3OTQ5MjUxRTAzMDhBRjAwMDE4RDg1IC8qIERlcHJl
Y2F0ZWRDU1NPTVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NDc5NDkyMzFFMDJGOTBCMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NDc5
NDkyRTFFMDQ1N0JBMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0Nzk0OTJEMUUwNDU3
OEQwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwICovOyB9OworCQk5NDc5
NDkyRjFFMDQ1OUVCMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01Db3VudGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0Nzk0OTE4MUUwMkY2
REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuY3BwICovOyB9OworCQk5NDc5
NDkzMDFFMDQ1OUVFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkx
QTFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAg
Ki87IH07CisJCTk0Nzk0OTMxMUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTUNv
dW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0
Nzk0OTE5MUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NDc5NDkzMjFF
MDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MUIxRTAyRjZE
RTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NDc5NDkzMzFFMDQ1OUZB
MDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01SZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0Nzk0OTFDMUUwMkY2REUwMDAxOEQ4NSAvKiBK
U0RlcHJlY2F0ZWRDU1NPTVJlY3QuY3BwICovOyB9OworCQk5NDc5NDkzNDFFMDQ1OUZBMDAwMThE
ODUgLyogSlNEZXByZWNhdGVkQ1NTT01SZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkxRDFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNh
dGVkQ1NTT01SZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJOTQ3OTQ5MzUxRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUkdC
Q29sb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTQ3OTQ5MUUxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuY3Bw
ICovOyB9OworCQk5NDc5NDkzNjFFMDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01S
R0JDb2xvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTQ3OTQ5MUYxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NDc5NDkz
NzFFMDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkyMDFFMDJGNkRFMDAw
MThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAgKi87IH07CisJCTk0Nzk0OTM4MUUw
NDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkyMTFFMDJGNkRFMDAwMThEODUg
LyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTk0Nzk0OTM5MUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJl
Y2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NDc5NDkyQjFFMDMzQjI4MDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NT
T01WYWx1ZUxpc3QuY3BwICovOyB9OworCQk5NDc5NDkzQTFFMDQ1OUZBMDAwMThEODUgLyogSlNE
ZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk0Nzk0OTJDMUUwMzNCMjgwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRD
U1NPTVZhbHVlTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTk0Nzk0OTNDMUUwNDVDRjMwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NDc5NDkzQjFFMDQ1Q0UxMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUHJpbWl0aXZl
VmFsdWUuY3BwICovOyB9OworCQk5NDc5NDkzRDFFMDQ2M0I2MDAwMThEODUgLyogRGVwcmVjYXRl
ZENTU09NVmFsdWVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NDc5NDkyNzFFMDMxMzIwMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWVM
aXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
OTQ3OTQ5M0UxRTA0NjNCRTAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkyOTFFMDMy
RDU4MDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NDc5NDkzRjFFMDQ2M0M2MDAwMThE
ODUgLyogRGVwcmVjYXRlZENTU09NUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTQ3OTQ5MjgxRTAzMkFFOTAwMDE4RDg1IC8qIERlcHJlY2F0ZWRD
U1NPTVJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk5NDc5NDk0MDFFMDQ2M0NFMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUHJpbWl0aXZl
VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0
Nzk0OTI2MUUwMzEzMjAwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk0Nzk0
OTQxMUUwNDYzRDQwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01Db3VudGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NDc5NDkyQTFFMDMyRURCMDAw
MThEODUgLyogRGVwcmVjYXRlZENTU09NQ291bnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk0OTNCNkJFMUQ3NEI0MTIwMDg4RTc4MCAvKiBN
ZWRpYVF1ZXJ5QmxvY2tXYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk0OTNCNkI2MUQ3NEIzOTUwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5Qmxv
Y2tXYXRjaGVyLmNwcCAqLzsgfTsKIAkJOTQ5M0I2QkYxRDc0QjQxMjAwODhFNzgwIC8qIE1lZGlh
UXVlcnlCbG9ja1dhdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk0OTNCNkI3MUQ3NEIzOTUwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5QmxvY2tXYXRj
aGVyLmggKi87IH07CiAJCTk0OTNCNkMwMUQ3NEI0MTIwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5UGFy
c2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0
OTNCNkI4MUQ3NEIzOTUwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5UGFyc2VyLmNwcCAqLzsgfTsKQEAg
LTQzNTYsOCArNDM3MSw2IEBACiAJCUE4Q0ZGN0FCMEExNTY5NzgwMDBBNDIzNCAvKiBIVE1MQW5j
aG9yRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThDRkY3QTEwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxBbmNob3JFbGVtZW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQThEMDVGQTcwQTIz
QjMwMTAwNUU3MjAzIC8qIEpTQ1NTUnVsZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThEMDVGQTUwQTIzQjMwMTAwNUU3MjAzIC8qIEpTQ1NT
UnVsZUxpc3QuY3BwICovOyB9OwogCQlBOEQwNUZBODBBMjNCMzAxMDA1RTcyMDMgLyogSlNDU1NS
dWxlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThEMDVGQTYwQTIzQjMwMTAwNUU3MjAzIC8qIEpTQ1NTUnVsZUxpc3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBOEQwNUZBQjBBMjNCMzBGMDA1
RTcyMDMgLyogSlNDU1NWYWx1ZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThEMDVGQTkwQTIzQjMwRjAwNUU3MjAzIC8qIEpTQ1NTVmFsdWVM
aXN0LmNwcCAqLzsgfTsKLQkJQThEMDVGQUMwQTIzQjMwRjAwNUU3MjAzIC8qIEpTQ1NTVmFsdWVM
aXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEQw
NUZBQTBBMjNCMzBGMDA1RTcyMDMgLyogSlNDU1NWYWx1ZUxpc3QuaCAqLzsgfTsKIAkJQThEMDY0
RkIwQTIzQzBDQzAwNUU3MjAzIC8qIEpTSFRNTEZvcm1FbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RDA2NEY5MEEyM0MwQ0MwMDVFNzIw
MyAvKiBKU0hUTUxGb3JtRWxlbWVudC5jcHAgKi87IH07CiAJCUE4RDA2NEZDMEEyM0MwQ0MwMDVF
NzIwMyAvKiBKU0hUTUxGb3JtRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThEMDY0RkEwQTIzQzBDQzAwNUU3MjAzIC8qIEpTSFRNTEZvcm1F
bGVtZW50LmggKi87IH07CiAJCUE4RDA2NUFFMEEyNDQ2Q0QwMDVFNzIwMyAvKiBKU0hUTUxGb3Jt
RWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEQwNjVBRDBBMjQ0NkNEMDA1RTcyMDMgLyogSlNIVE1MRm9ybUVsZW1lbnRDdXN0
b20uY3BwICovOyB9OwpAQCAtNTM0NSw4ICs1MzU4LDYgQEAKIAkJQkM2RDZFMjYwOUFGOTQzNTAw
RjU5NzU5IC8qIFNjcm9sbFZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDNkQ2RTI1MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3JvbGxWaWV3LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM3NERBMzcx
MDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNvbG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc0REEzNTEwMTNGM0Y3MDA3OTg3QUQgLyogUkdCQ29sb3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzc0
REEzODEwMTNGM0Y3MDA3OTg3QUQgLyogUkdCQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NERBMzYxMDEzRjNGNzAwNzk4N0FEIC8qIFJH
QkNvbG9yLmNwcCAqLzsgfTsKLQkJQkM3NERBNDgxMDEzRjQ2ODAwNzk4N0FEIC8qIEpTUkdCQ29s
b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3
NERBNDYxMDEzRjQ2ODAwNzk4N0FEIC8qIEpTUkdCQ29sb3IuY3BwICovOyB9OwotCQlCQzc0REE0
OTEwMTNGNDY4MDA3OTg3QUQgLyogSlNSR0JDb2xvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NERBNDcxMDEzRjQ2ODAwNzk4N0FEIC8qIEpTUkdC
Q29sb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlCQzc2QUMxMzBERDdBRDVDMDA0MTVGMzQgLyogUGFyc2VyVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc2QUMxMTBERDdBRDVDMDA0
MTVGMzQgLyogUGFyc2VyVXRpbGl0aWVzLmggKi87IH07CiAJCUJDNzcyQjNDMEM0RUE5MUUwMDgz
Mjg1RiAvKiBDU1NIZWxwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNzcyQjM2MEM0RUE5MUUwMDgzMjg1RiAvKiBDU1NIZWxwZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzc3MkM0NjBDNEVC
MkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NzJDNDQwQzRFQjJDNjAwODMyODVGIC8qIFhNTEh0
dHBSZXF1ZXN0LmNwcCAqLzsgfTsKQEAgLTU1NjUsOCArNTU3Niw2IEBACiAJCUJDRjdFNDkxMTM3
Q0Q3QzcwMDFEREFFNyAvKiBBZGp1c3RWaWV3U2l6ZU9yTm90LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y0OENFNjEzNzBEMTE0MDA0RTg3RDYgLyog
QWRqdXN0Vmlld1NpemVPck5vdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUJDRkE5MzA4MTAzMzMxOTMwMDdCMjVEMSAvKiBSZW5kZXJPdmVyZmxv
dy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGQTkz
MDcxMDMzMzE5MzAwN0IyNUQxIC8qIFJlbmRlck92ZXJmbG93LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNGQjJFNUUwOTc5RTQ2NDAwQkE3MDNE
IC8qIENhY2hlZFJlc291cmNlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0ZCMkU1RDA5NzlFNDY0MDBCQTcwM0QgLyogQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQlCQ0ZFMkYxMTBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkUyRjBGMEMxQjU4MzcwMDIwMjM1
RiAvKiBKU1JlY3QuY3BwICovOyB9OwotCQlCQ0ZFMkYxMjBDMUI1ODM4MDAyMDIzNUYgLyogSlNS
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ZF
MkYxMDBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNGRjY0OTEwRUFEMTVDMjAwQzFENkY3IC8qIExl
bmd0aEJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNGRjY0OEYwRUFEMTVDMjAwQzFENkY3IC8qIExlbmd0aEJveC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDRkY2NDkyMEVBRDE1QzIwMEMxRDZG
NyAvKiBMZW5ndGhTaXplLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0ZGNjQ5MDBFQUQxNUMyMDBDMUQ2RjcgLyogTGVuZ3RoU2l6ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJFMTZDNTkyMTdDRkUx
NzIwMDg1MkMwNCAvKiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJFMTZDNThFMTdDRkUxNzIwMDg1MkMwNCAv
KiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcCAqLzsgfTsKQEAgLTc2NDksOSArNzY1OCw3IEBA
CiAJCTE0QTk4RTA1MTM2Mzg2QTIwMEM5RkVEMiAvKiBCbG9iLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBCbG9iLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRCREY1OUEx
MzY1Mzk5MTAwMTQ4MzkzIC8qIEZpbGVSZWFkZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEZpbGVSZWFkZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEM5QTVFOTBC
M0QxMDVGMDA1QTAyMzIgLyogU2V0dGluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNldHRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MTRDRjc4NzEwOUY1ODdDQTAwRUIzNjY1IC8qIENTU1ZhbHVlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQ1NTVmFsdWUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNENG
NzhBMzA5RjU4Q0JGMDBFQjM2NjUgLyogSlNDU1NWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTE0Q0Y3OEE1MDlGNThDRDgwMEVCMzY2NSAvKiBKU0NTU1ZhbHVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NTU1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTE0Q0Y3ODcxMDlGNTg3Q0EwMEVCMzY2NSAvKiBEZXByZWNhdGVkQ1NT
T01WYWx1ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERlcHJlY2F0ZWRDU1NPTVZhbHVl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRDRjdBNzAwOUY1Q0Y5QTAwRUIz
NjY1IC8qIENTU1J1bGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NSdWxlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRDRjdCMzEwOUY2RUNENzAwRUIzNjY1IC8q
IEpTQ1NTUnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlND
U1NSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRDRjdCMzIwOUY2RUNE
NzAwRUIzNjY1IC8qIEpTQ1NTUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNDU1NSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDczNCw3ICsx
MDc0MSw3IEBACiAJCTg1NzREMUY2MEFERTYxMjIwMDRDQkExMSAvKiBKU1NWR1BvaW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgcGF0aCA9IEpTU1ZHUG9pbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU3NEQxRjcwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHUmVj
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdSZWN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU3NEQxRjgwQURFNjEyMjAwNENCQTEx
IC8qIEpTU1ZHUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmg7IHBhdGggPSBKU1NW
R1JlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU4QzM4RUYwQUE4RkREMTAw
QjE4N0E0IC8qIFJHQkNvbG9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUkdCQ29sb3Iu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NThDMzhFRjBBQThGREQxMDBCMTg3
QTQgLyogRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg1OEMzOTEwMEFBOEZGMDAwMEIxODdBNCAvKiBDU1NTdHlsZVNoZWV0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gQ1NTU3R5bGVTaGVldC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTg1OTEyODc5MEFCMjIyRUMwMDIwMjI2NSAvKiBIVE1MRW1iZWRFbGVtZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTEVtYmVkRWxlbWVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1QUNBOUY5MEE5QjYzMTAwMDY3MUU5MCAvKiBOYW1lZE5v
ZGVNYXAuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYW1lZE5vZGVNYXAuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4MjcsMTIgKzEwODM0LDggQEAKIAkJOTMwMkIw
QkMwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQYWdlR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzAyQjBCRTBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzA1QjI0QzA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOTMwNzA1OTAwOUUwQzc1ODAwQjE3RkU0IC8qIENTU1ByaW1pdGl2ZVZhbHVlLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDU1NQcmltaXRpdmVWYWx1ZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTkzMDcwNUM3MDlFMEM5NUYwMEIxN0ZFNCAvKiBDb3VudGVyLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDb3VudGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTMwNzA1RDcwOUUwQzlCNzAwQjE3RkU0IC8qIEpTQ291bnRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NvdW50ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk5MzA3MDVEOTA5RTBDOUJGMDBCMTdGRTQgLyogSlNDb3VudGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ291bnRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk5MzA3MDVFODA5RTBDOUYwMDBCMTdGRTQgLyogSlNDU1NQ
cmltaXRpdmVWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTMw
NzA1RUEwOUUwQzlGNjAwQjE3RkU0IC8qIEpTQ1NTUHJpbWl0aXZlVmFsdWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NQcmltaXRpdmVWYWx1ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MzA3MDU5MDA5RTBDNzU4MDBCMTdGRTQgLyogRGVwcmVjYXRl
ZENTU09NUHJpbWl0aXZlVmFsdWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTMwNzA1QzcwOUUwQzk1RjAwQjE3RkU0IC8qIERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA3MDYxMzA5RTBDQTgyMDBCMTdGRTQgLyogRGVyaXZl
ZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVU
eXBlID0gc291cmNlY29kZS5tYWtlOyBmaWxlRW5jb2RpbmcgPSA0OyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMubWFrZTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdXNlc1RhYnMgPSAxOyB9OwogCQk5
MzA3RjFENTBBRjJENTkwMDBEQkEzMUEgLyogSGl0VGVzdFJlc3VsdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzMDdGMUQ2MEFGMkQ1OTAwMERCQTMxQSAvKiBIaXRUZXN0UmVz
dWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaXRUZXN0UmVzdWx0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTEyNCw2ICsxMTEyNywyNyBAQAogCQk5
NDZEMzc0ODFENkQwNjBDMDA3NzA4NEYgLyogQ1NTTWFya3VwLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENTU01hcmt1cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NDZEMzc0QjFENkQwN0Y1MDA3NzA4NEYgLyogQ1NTUGFyc2VyVG9rZW5SYW5nZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDU1NQYXJzZXJUb2tlblJhbmdlLmNw
cDsgcGF0aCA9IHBhcnNlci9DU1NQYXJzZXJUb2tlblJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTQ2RDM3NEMxRDZEMDdGNTAwNzcwODRGIC8qIENTU1BhcnNlclRva2Vu
UmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ1NTUGFyc2VyVG9rZW5S
YW5nZS5oOyBwYXRoID0gcGFyc2VyL0NTU1BhcnNlclRva2VuUmFuZ2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MTgxRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRl
ZENTU09NQ291bnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NDc5NDkxOTFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01Db3VudGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGVwcmVjYXRlZENTU09NQ291bnRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkxQTFFMDJGNkRFMDAwMThE
ODUgLyogSlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MUIxRTAyRjZERTAwMDE4RDg1
IC8qIEpTRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkxQzFFMDJGNkRFMDAwMThEODUgLyogSlNEZXBy
ZWNhdGVkQ1NTT01SZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTRGVwcmVjYXRlZENTU09NUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk0Nzk0OTFEMUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJlY3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEZXByZWNhdGVkQ1NTT01SZWN0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk0Nzk0OTFFMUUwMkY2REUwMDAxOEQ4NSAvKiBK
U0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5NDc5NDkxRjFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NT
T01SR0JDb2xvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RlcHJlY2F0
ZWRDU1NPTVJHQkNvbG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk0Nzk0OTIw
MUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkyMTFFMDJGNkRFMDAwMThEODUgLyog
SlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk0Nzk0OTIyMUUwMkY5MEIwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXByZWNhdGVkQ1NTT01WYWx1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk0Nzk0OTIzMUUwMkY5MEIwMDAxOEQ4
NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEZXByZWNhdGVkQ1NTT01WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NDc5NDkyNjFFMDMxMzIwMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MjcxRTAz
MTMyMDAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MjgxRTAzMkFFOTAwMDE4RDg1IC8qIERlcHJlY2F0
ZWRDU1NPTVJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVwcmVjYXRl
ZENTU09NUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkyOTFFMDMy
RDU4MDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGVwcmVjYXRlZENTU09NUkdCQ29sb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MkExRTAzMkVEQjAwMDE4RDg1IC8qIERlcHJlY2F0ZWRD
U1NPTUNvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVwcmVjYXRl
ZENTU09NQ291bnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkyQjFF
MDMzQjI4MDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NDc5NDkyQzFFMDMzQjI4MDAwMThE
ODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTQ3OTQ5MkQxRTA0NTc4RDAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NP
TVZhbHVlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXBy
ZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NDc5NDkzQjFFMDQ1Q0UxMDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NDkzQjZC
NjFENzRCMzk1MDA4OEU3ODAgLyogTWVkaWFRdWVyeUJsb2NrV2F0Y2hlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZWRpYVF1ZXJ5QmxvY2tXYXRjaGVyLmNwcDsg
cGF0aCA9IHBhcnNlci9NZWRpYVF1ZXJ5QmxvY2tXYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTQ5M0I2QjcxRDc0QjM5NTAwODhFNzgwIC8qIE1lZGlhUXVlcnlCbG9j
a1dhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTWVkaWFRdWVyeUJs
b2NrV2F0Y2hlci5oOyBwYXRoID0gcGFyc2VyL01lZGlhUXVlcnlCbG9ja1dhdGNoZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTQ5M0I2QjgxRDc0QjM5NTAwODhFNzgwIC8qIE1l
ZGlhUXVlcnlQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TWVkaWFRdWVyeVBhcnNlci5jcHA7IHBhdGggPSBwYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTgyOSw3ICsxMTg1Myw3IEBACiAJCUE4
MEU2RTBEMEExOTkxMUMwMDdGQjhDNSAvKiBDU1NTdHlsZURlY2xhcmF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NTdHlsZURlY2xhcmF0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU3MzQ4MEExOTlDNzcwMDdGQjhDNSAvKiBDU1NTZWxl
Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTU2VsZWN0
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFNzM0QjBBMTk5Qzc3MDA3
RkI4QzUgLyogQ1NTU2VsZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENTU1NlbGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4MEU3OTk2MEEx
OUJEMjEwMDdGQjhDNSAvKiBSZWN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVjdC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3OTk2MEExOUJEMjEwMDdGQjhD
NSAvKiBEZXByZWNhdGVkQ1NTT01SZWN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGVw
cmVjYXRlZENTU09NUmVjdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU3
OUZDMEExOUMzMDcwMDdGQjhDNSAvKiBIVE1MTWV0YUVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBIVE1MTWV0YUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBODBFN0ExNTBBMTlDM0Q2MDA3RkI4QzUgLyogSlNIVE1MTWV0YUVsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTE1ldGFFbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgwRTdBMTYwQTE5QzNENjAwN0ZCOEM1
IC8qIEpTSFRNTE1ldGFFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0hUTUxNZXRhRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIw
NTcsMTMgKzEyMDgxLDExIEBACiAJCUE4Q0ZGN0ExMEExNTY5NzgwMDBBNDIzNCAvKiBIVE1MQW5j
aG9yRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTEFuY2hv
ckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThEMDVGQTUwQTIzQjMw
MTAwNUU3MjAzIC8qIEpTQ1NTUnVsZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQ1NTUnVsZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBOEQwNUZBNjBBMjNCMzAxMDA1RTcyMDMgLyogSlNDU1NSdWxlTGlzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NSdWxlTGlzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBOEQwNUZBOTBBMjNCMzBGMDA1RTcyMDMgLyogSlNDU1NWYWx1ZUxp
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTVmFsdWVM
aXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQThEMDVGQUEwQTIzQjMwRjAw
NUU3MjAzIC8qIEpTQ1NTVmFsdWVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0NTU1ZhbHVlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEQw
NjRFRjBBMjNCRkVBMDA1RTcyMDMgLyogSFRNTEZvcm1FbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gSFRNTEZvcm1FbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQThEMDY0RjkwQTIzQzBDQzAwNUU3MjAzIC8qIEpTSFRNTEZvcm1FbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxGb3JtRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RDA2NEZBMEEyM0MwQ0MwMDVFNzIw
MyAvKiBKU0hUTUxGb3JtRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNIVE1MRm9ybUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThE
MDY1MUIwQTIzQzFGRTAwNUU3MjAzIC8qIENTU1J1bGVMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQ1NTUnVsZUxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
OEQwNjUxQzBBMjNDMUZFMDA1RTcyMDMgLyogQ1NTVmFsdWVMaXN0LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQ1NTVmFsdWVMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQThEMDY1MUMwQTIzQzFGRTAwNUU3MjAzIC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RDA2NUFEMEEyNDQ2Q0QwMDVFNzIwMyAv
KiBKU0hUTUxGb3JtRWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0hUTUxGb3JtRWxlbWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4RDA2QjM3MEEyNjVEQ0QwMDVFNzIwMyAvKiBIVE1MTmFtZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxOYW1lcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBOEQwNkIzODBBMjY1RENEMDA1RTcyMDMgLyogSFRNTE5hbWVzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MTmFtZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTMyMjIsOCArMTMyNDQsNiBAQAogCQlCQzZE
NkUyNTA5QUY5NDM1MDBGNTk3NTkgLyogU2Nyb2xsVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2Nyb2xsVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzc0REEzNTEwMTNGM0Y3MDA3OTg3QUQgLyogUkdCQ29sb3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUkdCQ29sb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkM3NERBMzYxMDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNvbG9yLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJHQkNvbG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkM3NERBNDYxMDEzRjQ2ODAwNzk4N0FEIC8qIEpTUkdCQ29sb3IuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSR0JDb2xvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDNzREQTQ3MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JH
QkNvbG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUkdCQ29sb3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3NkFDMTEwREQ3QUQ1QzAwNDE1RjM0IC8q
IFBhcnNlclV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXJz
ZXJVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3NzJCMzYwQzRF
QTkxRTAwODMyODVGIC8qIENTU0hlbHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ1NTSGVscGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzcyQzQ0
MEM0RUIyQzYwMDgzMjg1RiAvKiBYTUxIdHRwUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gWE1MSHR0cFJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTM0NzEsOCArMTM0OTEsNiBAQAogCQlCQ0ZCMkU1RDA5NzlFNDY0MDBC
QTcwM0QgLyogQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENhY2hlZFJlc291cmNlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDRkI0NUYzMTdEOEUzOTIwMDQ0NDQ0NiAvKiBSZW5kZXJCbG9ja0Zsb3cuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVuZGVyQmxvY2tGbG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDRkI0NUY0MTdEOEU0OTQwMDQ0NDQ0NiAvKiBSZW5kZXJCbG9ja0Zsb3cuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyQmxvY2tGbG93LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNGRTJGMEYwQzFCNTgzNzAwMjAyMzVGIC8qIEpT
UmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZWN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNGRTJGMTAwQzFCNTgzNzAwMjAyMzVG
IC8qIEpTUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZWN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRkY2NDhGMEVBRDE1QzIwMEMxRDZGNyAv
KiBMZW5ndGhCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVuZ3RoQm94
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRkY2NDkwMEVBRDE1QzIwMEMxRDZG
NyAvKiBMZW5ndGhTaXplLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlbmd0
aFNpemUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkUxNkM1OEUxN0NGRTE3MjAw
ODUyQzA0IC8qIEluYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMDM4Miw4ICsyMDQwMCw2IEBACiAJCQkJQkNDMDY1ODQwRjND
RTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdC5oICovLAogCQkJCUJDQzA2NTg1MEYzQ0UyQTcw
MENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCAqLywKIAkJCQlCQ0MwNjU4NjBGM0NFMkE3
MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5oICovLAotCQkJCTkzMDcwNUQ3MDlFMEM5Qjcw
MEIxN0ZFNCAvKiBKU0NvdW50ZXIuY3BwICovLAotCQkJCTkzMDcwNUQ5MDlFMEM5QkYwMEIxN0ZF
NCAvKiBKU0NvdW50ZXIuaCAqLywKIAkJCQlCQzQ2QzFGMjBDMEREQzhGMDAyMENGQzMgLyogSlND
U1NGb250RmFjZVJ1bGUuY3BwICovLAogCQkJCUJDNDZDMUYzMEMwRERDOEYwMDIwQ0ZDMyAvKiBK
U0NTU0ZvbnRGYWNlUnVsZS5oICovLAogCQkJCUJDNDZDMUY0MEMwRERDOEYwMDIwQ0ZDMyAvKiBK
U0NTU0ltcG9ydFJ1bGUuY3BwICovLApAQCAtMjAzOTgsOCArMjA0MTQsNiBAQAogCQkJCTk0RTgz
OTU0MURGQjJCQTYwMDdCQzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1bGUuaCAqLywKIAkJCQlCQzQ2
QzFGODBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NQYWdlUnVsZS5jcHAgKi8sCiAJCQkJQkM0NkMx
RjkwQzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTUGFnZVJ1bGUuaCAqLywKLQkJCQk5MzA3MDVFODA5
RTBDOUYwMDBCMTdGRTQgLyogSlNDU1NQcmltaXRpdmVWYWx1ZS5jcHAgKi8sCi0JCQkJOTMwNzA1
RUEwOUUwQzlGNjAwQjE3RkU0IC8qIEpTQ1NTUHJpbWl0aXZlVmFsdWUuaCAqLywKIAkJCQkxNENG
N0IzMTA5RjZFQ0Q3MDBFQjM2NjUgLyogSlNDU1NSdWxlLmNwcCAqLywKIAkJCQkxNENGN0IzMjA5
RjZFQ0Q3MDBFQjM2NjUgLyogSlNDU1NSdWxlLmggKi8sCiAJCQkJQThEMDVGQTUwQTIzQjMwMTAw
NUU3MjAzIC8qIEpTQ1NTUnVsZUxpc3QuY3BwICovLApAQCAtMjA0MTIsMTAgKzIwNDI2LDE4IEBA
CiAJCQkJQkNDNUJERkYwQzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5bGVTaGVldC5oICovLAog
CQkJCUZENjc3NzM2MTk1Q0FCN0QwMDcyRTBEMyAvKiBKU0NTU1N1cHBvcnRzUnVsZS5jcHAgKi8s
CiAJCQkJRkM4NDgwMkUxNjdBQjQ0NDAwOENEMTAwIC8qIEpTQ1NTU3VwcG9ydHNSdWxlLmggKi8s
Ci0JCQkJMTRDRjc4QTMwOUY1OENCRjAwRUIzNjY1IC8qIEpTQ1NTVmFsdWUuY3BwICovLAotCQkJ
CTE0Q0Y3OEE1MDlGNThDRDgwMEVCMzY2NSAvKiBKU0NTU1ZhbHVlLmggKi8sCi0JCQkJQThEMDVG
QTkwQTIzQjMwRjAwNUU3MjAzIC8qIEpTQ1NTVmFsdWVMaXN0LmNwcCAqLywKLQkJCQlBOEQwNUZB
QTBBMjNCMzBGMDA1RTcyMDMgLyogSlNDU1NWYWx1ZUxpc3QuaCAqLywKKwkJCQk5NDc5NDkxODFF
MDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01Db3VudGVyLmNwcCAqLywKKwkJCQk5
NDc5NDkxOTFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01Db3VudGVyLmggKi8s
CisJCQkJOTQ3OTQ5MUExRTAyRjZERTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUHJpbWl0
aXZlVmFsdWUuY3BwICovLAorCQkJCTk0Nzk0OTFCMUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmggKi8sCisJCQkJOTQ3OTQ5MUMxRTAyRjZERTAwMDE4
RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUmVjdC5jcHAgKi8sCisJCQkJOTQ3OTQ5MUQxRTAyRjZE
RTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUmVjdC5oICovLAorCQkJCTk0Nzk0OTFFMUUw
MkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmNwcCAqLywKKwkJCQk5
NDc5NDkxRjFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oICov
LAorCQkJCTk0Nzk0OTIwMUUwMkY2REUwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVl
LmNwcCAqLywKKwkJCQk5NDc5NDkyMTFFMDJGNkRFMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NT
T01WYWx1ZS5oICovLAorCQkJCTk0Nzk0OTJCMUUwMzNCMjgwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0
ZWRDU1NPTVZhbHVlTGlzdC5jcHAgKi8sCisJCQkJOTQ3OTQ5MkMxRTAzM0IyODAwMDE4RDg1IC8q
IEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmggKi8sCiAJCQkJRkQ2Nzc3MzcxOTVDQUI3RDAw
NzJFMEQzIC8qIEpTRE9NQ1NTTmFtZXNwYWNlLmNwcCAqLywKIAkJCQlGQzlFMEU0QjE2NDE5QzFF
MDAzOTJCRTMgLyogSlNET01DU1NOYW1lc3BhY2UuaCAqLywKIAkJCQlCQzNDMzlCNDBDMEQzRDhE
MDA1RjREN0EgLyogSlNNZWRpYUxpc3QuY3BwICovLApAQCAtMjA0MjQsMTAgKzIwNDQ2LDYgQEAK
IAkJCQlEM0E5NEE0MzEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5oICovLAog
CQkJCTdDNTM0M0ZBMTdCNzRCNjMwMDQyMzJGMCAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
Y3BwICovLAogCQkJCTdDNTM0M0ZCMTdCNzRCNjMwMDQyMzJGMCAvKiBKU01lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuaCAqLywKLQkJCQlCQ0ZFMkYwRjBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmNw
cCAqLywKLQkJCQlCQ0ZFMkYxMDBDMUI1ODM3MDAyMDIzNUYgLyogSlNSZWN0LmggKi8sCi0JCQkJ
QkM3NERBNDYxMDEzRjQ2ODAwNzk4N0FEIC8qIEpTUkdCQ29sb3IuY3BwICovLAotCQkJCUJDNzRE
QTQ3MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9yLmggKi8sCiAJCQkJMEZGNTAyNjcxMDJC
QTk0MzAwNjZGMzlBIC8qIEpTU3R5bGVNZWRpYS5jcHAgKi8sCiAJCQkJMEZGNTAyNjgxMDJCQTk0
MzAwNjZGMzlBIC8qIEpTU3R5bGVNZWRpYS5oICovLAogCQkJCUJDRTAxMzk4MEMwQkVGMTgwMDQz
ODYwQSAvKiBKU1N0eWxlU2hlZXQuY3BwICovLApAQCAtMjMzMzcsNyArMjMzNTUsNiBAQAogCQkJ
CUZCRDZBRjg0MTVFRjIxRDQwMDhCNzExMCAvKiBCYXNpY1NoYXBlRnVuY3Rpb25zLmNwcCAqLywK
IAkJCQlGQkQ2QUY4NTE1RUYyMUQ0MDA4QjcxMTAgLyogQmFzaWNTaGFwZUZ1bmN0aW9ucy5oICov
LAogCQkJCUE4MEU2Q0RBMEExOTg5Q0EwMDdGQjhDNSAvKiBDb3VudGVyLmggKi8sCi0JCQkJOTMw
NzA1QzcwOUUwQzk1RjAwQjE3RkU0IC8qIENvdW50ZXIuaWRsICovLAogCQkJCTMxQkM3NDJCMUFB
RkY0NUMwMDZCNDM0MCAvKiBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwICovLAog
CQkJCTMxQkM3NDJDMUFBRkY0NUMwMDZCNDM0MCAvKiBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xs
VmFsdWUuaCAqLywKIAkJCQlDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0
aW9WYWx1ZS5jcHAgKi8sCkBAIC0yMzQ0Miw3ICsyMzQ1OSw2IEBACiAJCQkJOTQxODI3OEQxRDhD
QUU5NTAwNDkyNzY0IC8qIENTU1BlbmRpbmdTdWJzdGl0dXRpb25WYWx1ZS5oICovLAogCQkJCUE4
MEU2Q0RCMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcmltaXRpdmVWYWx1ZS5jcHAgKi8sCiAJCQkJ
QTgwRTZDQkMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ByaW1pdGl2ZVZhbHVlLmggKi8sCi0JCQkJ
OTMwNzA1OTAwOUUwQzc1ODAwQjE3RkU0IC8qIENTU1ByaW1pdGl2ZVZhbHVlLmlkbCAqLywKIAkJ
CQlFMUVEOEFDMjBDQzQ5QkUwMDBCRkM1NTcgLyogQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
ICovLAogCQkJCUE4MEU2Q0NEMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcm9wZXJ0eS5jcHAgKi8s
CiAJCQkJQTgwRTZDRDUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Byb3BlcnR5LmggKi8sCkBAIC0y
MzQ5MywxMSArMjM1MDksOSBAQAogCQkJCUJDN0Q4RkVFMUJEMDNCNjQwMEZGRTU0MCAvKiBDU1NV
bnNldFZhbHVlLmggKi8sCiAJCQkJQUQwM0FBRjgxNDY4NDUzOTAwQTM5QjVCIC8qIENTU1ZhbHVl
LmNwcCAqLywKIAkJCQlBODBFNkNDNDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWUuaCAqLywK
LQkJCQkxNENGNzg3MTA5RjU4N0NBMDBFQjM2NjUgLyogQ1NTVmFsdWUuaWRsICovLAogCQkJCUJD
RUE0NzhDMDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NWYWx1ZUtleXdvcmRzLmluICovLAogCQkJCUE4
MEU2Q0JBMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZUxpc3QuY3BwICovLAogCQkJCUE4MEU2
Q0JGMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZUxpc3QuaCAqLywKLQkJCQlBOEQwNjUxQzBB
MjNDMUZFMDA1RTcyMDMgLyogQ1NTVmFsdWVMaXN0LmlkbCAqLywKIAkJCQlFNDlCREEwQTEzMUZE
M0U1MDAzQzU2RjAgLyogQ1NTVmFsdWVQb29sLmNwcCAqLywKIAkJCQlFNDlCRDlGOTEzMUZEMkVE
MDAzQzU2RjAgLyogQ1NTVmFsdWVQb29sLmggKi8sCiAJCQkJOTQ0NENCREUxRDg4NjE1ODAwNzNB
MDc0IC8qIENTU1ZhcmlhYmxlRGF0YS5jcHAgKi8sCkBAIC0yMzUwNSw2ICsyMzUxOSwyMSBAQAog
CQkJCTk0NDRDQkRDMUQ4ODYxNTgwMDczQTA3NCAvKiBDU1NWYXJpYWJsZVJlZmVyZW5jZVZhbHVl
LmNwcCAqLywKIAkJCQk5NDQ0Q0JEQjFEODg2MTU4MDA3M0EwNzQgLyogQ1NTVmFyaWFibGVSZWZl
cmVuY2VWYWx1ZS5oICovLAogCQkJCUE4MEU2Q0UxMEExOTg5Q0EwMDdGQjhDNSAvKiBEYXNoYm9h
cmRSZWdpb24uaCAqLywKKwkJCQk5NDc5NDkyQTFFMDMyRURCMDAwMThEODUgLyogRGVwcmVjYXRl
ZENTU09NQ291bnRlci5oICovLAorCQkJCTkzMDcwNUM3MDlFMEM5NUYwMEIxN0ZFNCAvKiBEZXBy
ZWNhdGVkQ1NTT01Db3VudGVyLmlkbCAqLywKKwkJCQk5NDc5NDkzQjFFMDQ1Q0UxMDAwMThEODUg
LyogRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwICovLAorCQkJCTk0Nzk0OTI2MUUw
MzEzMjAwMDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oICovLAorCQkJ
CTkzMDcwNTkwMDlFMEM3NTgwMEIxN0ZFNCAvKiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1
ZS5pZGwgKi8sCisJCQkJOTQ3OTQ5MjgxRTAzMkFFOTAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NP
TVJlY3QuaCAqLywKKwkJCQlBODBFNzk5NjBBMTlCRDIxMDA3RkI4QzUgLyogRGVwcmVjYXRlZENT
U09NUmVjdC5pZGwgKi8sCisJCQkJOTQ3OTQ5MjkxRTAzMkQ1ODAwMDE4RDg1IC8qIERlcHJlY2F0
ZWRDU1NPTVJHQkNvbG9yLmggKi8sCisJCQkJODU4QzM4RUYwQUE4RkREMTAwQjE4N0E0IC8qIERl
cHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmlkbCAqLywKKwkJCQk5NDc5NDkyMjFFMDJGOTBCMDAwMThE
ODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwICovLAorCQkJCTk0Nzk0OTIzMUUwMkY5MEIw
MDAxOEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZS5oICovLAorCQkJCTE0Q0Y3ODcxMDlGNTg3
Q0EwMEVCMzY2NSAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZS5pZGwgKi8sCisJCQkJOTQ3OTQ5MkQx
RTA0NTc4RDAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAgKi8sCisJCQkJ
OTQ3OTQ5MjcxRTAzMTMyMDAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oICov
LAorCQkJCUE4RDA2NTFDMEEyM0MxRkUwMDVFNzIwMyAvKiBEZXByZWNhdGVkQ1NTT01WYWx1ZUxp
c3QuaWRsICovLAogCQkJCTRBNEY0OEE3MTZCMERGQzAwMEVEQkIyOSAvKiBEb2N1bWVudFJ1bGVT
ZXRzLmNwcCAqLywKIAkJCQk0QTRGNDhBODE2QjBERkMwMDBFREJCMjkgLyogRG9jdW1lbnRSdWxl
U2V0cy5oICovLAogCQkJCUZENjc3NzM1MTk1Q0FCMjAwMDcyRTBEMyAvKiBET01DU1NOYW1lc3Bh
Y2UuY3BwICovLApAQCAtMjM1NjAsMTAgKzIzNTg5LDggQEAKIAkJCQlFNEJCRUQwRDE0RjQwMjVE
MDAzRjBCOTggLyogUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmggKi8sCiAJCQkJOTND
QTRDOUYwOURGOTNGQTAwREY4Njc3IC8qIHF1aXJrcy5jc3MgKi8sCiAJCQkJQkM0MzY4RTcwQzIy
NkUzMjAwNUVGQjVGIC8qIFJlY3QuaCAqLywKLQkJCQlBODBFNzk5NjBBMTlCRDIxMDA3RkI4QzUg
LyogUmVjdC5pZGwgKi8sCiAJCQkJQkM3NERBMzYxMDEzRjNGNzAwNzk4N0FEIC8qIFJHQkNvbG9y
LmNwcCAqLywKIAkJCQlCQzc0REEzNTEwMTNGM0Y3MDA3OTg3QUQgLyogUkdCQ29sb3IuaCAqLywK
LQkJCQk4NThDMzhFRjBBQThGREQxMDBCMTg3QTQgLyogUkdCQ29sb3IuaWRsICovLAogCQkJCUE3
OUJBRDlEMTYxRTdGM0YwMEMyRTY1MiAvKiBSdWxlRmVhdHVyZS5jcHAgKi8sCiAJCQkJQTc5QkFE
OUUxNjFFN0YzRjAwQzJFNjUyIC8qIFJ1bGVGZWF0dXJlLmggKi8sCiAJCQkJQTc5QkFEOUYxNjFF
N0YzRjAwQzJFNjUyIC8qIFJ1bGVTZXQuY3BwICovLApAQCAtMjUwNjMsNiArMjUwOTAsNyBAQAog
CQkJCTE0RDgyNDA4MEFGOTNBRUIwMDA0RjA1NyAvKiBDaHJvbWVDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUU0QTgxNEQ0MUM2REVDNDAwMEJGODVBQyAvKiBDbGFzc0NoYW5nZUludmFsaWRh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM0OEJGQUMxQjg1NzI5ODAwOTEyRjM2IC8qIENs
YXNzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTQ3OTQ5NDAxRTA0NjNDRTAwMDE4
RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0MwNjU3RTBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNDMDY1ODEwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QzNBOTFFNjFDOTYzQjg4MDBEMUE3RTMgLyogQ2xpcGJvYXJkQWNjZXNz
UG9saWN5LmggaW4gSGVhZGVycyAqLywKQEAgLTI1Mjg5LDYgKzI1MzE3LDcgQEAKIAkJCQlBODBF
NkQwQzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEVBODAwNzBBMTk1MTZFMDBBOEVGNUYgLyogQ1NTU3R5bGVTaGVldC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTRERTVDOTIxRDgzMDExRDAwMTY0RjJBIC8qIENTU1N1cHBvcnRzUGFyc2VyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5NDc5NDkzRDFFMDQ2M0I2MDAwMThEODUgLyogRGVwcmVjYXRl
ZENTU09NVmFsdWVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGQzU0RDA1NzE2QTc2NzMxMDA1
NzVFNEQgLyogQ1NTU3VwcG9ydHNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzgwQzk4ODBD
RDI5NEVFMDBBMEI3QjMgLyogQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTQ2RDM3M0ExRDZDREZDMDAwNzcwODRGIC8qIENTU1Rva2VuaXplci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNTk2Miw2ICsyNTk5MSw3IEBACiAJCQkJRDA3REVBQkEwQTM2NTU0QTAwQ0Ez
MEY4IC8qIEluc2VydExpc3RDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURFRTA5
OUU2NDkyMDA1NkU1ODEgLyogSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzMzA5REYwMDk5RTY0OTIwMDU2RTU4MSAvKiBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0
b3JDb21tYW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NDc5NDkzMTFFMDQ1OUZBMDAwMThEODUg
LyogSlNEZXByZWNhdGVkQ1NTT01Db3VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURG
MjA5OUU2NDkyMDA1NkU1ODEgLyogSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUI4ODVFOEQ1MTFFMDZERDIwMDlGRkJGNCAvKiBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDODFCOTVDMEU5NzMzMDgwMDI2NkUwNyAvKiBJ
bnNwZWN0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjYwNjIsNyArMjYwOTIsNiBAQAog
CQkJCTc5QUM5MjE5MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZEQTE1RUJFMTJCMDNGMEIwMDNBNTgzQSAvKiBKU0NvbnZvbHZlck5v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFNkZENDhFMEY2NzZFOTMwMDA5Mjg3MyAvKiBKU0Nv
b3JkaW5hdGVzLmggaW4gSGVhZGVycyAqLywKLQkJCQk5MzA3MDVEQTA5RTBDOUJGMDBCMTdGRTQg
LyogSlNDb3VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERDRjNCMzFCNkJFMjA4MDA2MkQ0
QzIgLyogSlNDb3VudFF1ZXVpbmdTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc1Q0Ey
QTIxMzAzNjc5RDAwRTk5QUQ5IC8qIEpTQ3J5cHRvLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTU3
QThGMTE4MTg1NDI1MDA5RjgyMUQgLyogSlNDcnlwdG9BbGdvcml0aG1CdWlsZGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI2MDgyLDcgKzI2MTExLDYgQEAKIAkJCQlCQzQ2QzIwMTBDMEREQzhGMDAy
MENGQzMgLyogSlNDU1NNZWRpYVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0RTgzOTU2MURG
QjJCQzQwMDdCQzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDNDZDMjAzMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU1BhZ2VSdWxlLmggaW4gSGVhZGVycyAq
LywKLQkJCQk5MzA3MDVFQjA5RTBDOUY2MDBCMTdGRTQgLyogSlNDU1NQcmltaXRpdmVWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTRDRjdCMzQwOUY2RUNENzAwRUIzNjY1IC8qIEpTQ1NTUnVs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQ3MjZGRUYxNkRBMTFGNTAwM0E0RTZEIC8qIEpTQ1NT
UnVsZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThEMDVGQTgwQTIzQjMwMTAwNUU3MjAz
IC8qIEpTQ1NTUnVsZUxpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjYwOTEsOCArMjYxMTksNiBA
QAogCQkJCUJDNDZDMjA3MEMwRERDQTEwMDIwQ0ZDMyAvKiBKU0NTU1N0eWxlUnVsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNDNUJFMDEwQzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5bGVTaGVl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkM1NEQwNTgxNkE3Njc2RTAwNTc1RTREIC8qIEpTQ1NT
U3VwcG9ydHNSdWxlLmggaW4gSGVhZGVycyAqLywKLQkJCQkxNENGNzhBNjA5RjU4Q0Q4MDBFQjM2
NjUgLyogSlNDU1NWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThEMDVGQUMwQTIzQjMwRjAw
NUU3MjAzIC8qIEpTQ1NTVmFsdWVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkQ0RTkxNzFD
NDYyODcyMDA1MDY1QkMgLyogSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5QkU2NzEwQzFENUFFQjI1MDAzNDU1MTQgLyogSlNDdXN0b21FbGVtZW50UmVnaXN0
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0Nzc4QjgwMTE1QTU4MUEwMEI1RDM3MiAvKiBKU0N1
c3RvbUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MjQwLDYgKzI2MjY2LDcgQEAKIAkJCQlB
ODBFN0U5OTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0aW9uRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDQ4QTI5QkYwQTQ2RDlDQjAwMzA3NTlGIC8qIEpTSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QUQwMTczRDEyN0U4Mjg2MDAxNTAzNUYgLyog
SlNIVE1MT3V0cHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTQ3OTQ5MzQxRTA0NTlG
QTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFFMkFCQTcwQTFDRTkwNTAwQjQyQjI1IC8qIEpTSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBRTJBQkE5MEExQ0U5MDUwMEI0MkIyNSAvKiBKU0hUTUxQYXJhbUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDM0Q4NUJDMUMwRTJFN0EwMEQzQjYxMCAvKiBK
U0hUTUxQaWN0dXJlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjM3NiwxMCArMjY0MDMs
OSBAQAogCQkJCTdDNEM5NkRGMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVm
YXVsdFJlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEyOURGODYxQkI1QjgwQzAwMzIyQTE2
IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3RTRDOTZERDFBRDQ0ODM1MDAzNjVBNTEgLyogSlNSZWFkYWJsZVN0cmVhbVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQkNGRTJGMTIwQzFCNTgzODAwMjAyMzVGIC8qIEpTUmVjdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDk5OEFFQ0UxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVz
dEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAotCQkJCUJDNzREQTQ5MTAx
M0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0UyMzM3
MTFEQ0Q0NjhGMDBGMjhEMDEgLyogSlNSc2FIYXNoZWRJbXBvcnRQYXJhbXMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTk0Nzk0OTMyMUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzY4RTQzNDFEQjc1MjQ1MDBEMEE0
RjcgLyogSlNSc2FIYXNoZWRLZXlHZW5QYXJhbXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkVE
RDQxMURCNkQ3M0EwMEVCOTZGNSAvKiBKU1JzYUtleUdlblBhcmFtcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTcwNkE2OTgxRERFNUU0NjAwQTAzQjE0IC8qIEpTUnNhT2FlcFBhcmFtcy5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNjgyMCw2ICsyNjg0Niw3IEBACiAJCQkJQzk2RjVFQzgxQjU4NzIyNjAw
OTFFQTlEIC8qIE1lZGlhU2Vzc2lvbkludGVycnVwdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDOTZGNUVDNTFCNTg3MjI2MDA5MUVBOUQgLyogTWVkaWFTZXNzaW9uSW50ZXJydXB0
aW9uUHJvdmlkZXJNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM5MEY2NTU2MUIyMjUzQkUwMDIx
NjNBMSAvKiBNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NDc5NDkz
RjFFMDQ2M0M2MDAwMThEODUgLyogRGVwcmVjYXRlZENTU09NUmVjdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1Mu
aCBpbiBIZWFkZXJzICovLAogCQkJCUM5RDg1MUYwMUIzOURDNzgwMDg1MDYyRSAvKiBNZWRpYVNl
c3Npb25NZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzQTQ5NUYxN0E5RDAxQjAwMjc0
RTQyIC8qIE1lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKQEAgLTI3MjM1LDYgKzI3MjYyLDcg
QEAKIAkJCQkzQzI0NEZFQUEzNzVBQzYzM0Y4OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEJFMDMwQTIwRjMxMTJGQjAwM0MxQTQ2IC8qIFJlbmRl
ckxpbmVCb3hMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VBNDg2NDA5N0Q5MzAyMDA5NEM5
RTQgLyogUmVuZGVyTGluZUJyZWFrLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NDc5NDkzQTFFMDQ1
OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUFCQjU0MTlGMEFDRERGRTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0Qm94LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBOEVBN0E1MjBBMTkxQTUyMDBBOEVGNUYgLyogUmVuZGVyTGlzdEl0ZW0u
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3QTUwMEExOTFBNTIwMEE4RUY1RiAvKiBSZW5kZXJM
aXN0TWFya2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTI3MjQ1LDYgKzI3MjczLDcgQEAKIAkJCQk0
MzkwNDZEQzEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MRnJhY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQzOTA0NkRFMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxNYXRo
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzkwNDZFMDEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVy
TWF0aE1MT3BlcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTk0Nzk0OTNFMUUwNDYzQkUwMDAx
OEQ4NSAvKiBEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5
MDQ2RTIxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTFJvb3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQzOTA0NkU0MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxSb3cuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQzOTA0NkU4MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxT
Y3JpcHRzLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NjEyLDYgKzI3NjQxLDcgQEAKIAkJCQk5M0Yx
OTk2MzA4MjQ1RTU5MDAxRTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyNkI5OTk5MTE4MDNCM0M5MDBEMDExMjEgLyogU3RhY2tBbGxvY2F0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDN0ZBNjJEMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTQ3OTQ5MjUxRTAzMDhBRjAwMDE4RDg1IC8qIERlcHJlY2F0
ZWRDU1NPTVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDMzRTkwMzFEQkJEQkEyMDBFRjBE
MTQgLyogU3RhdGljUGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ0RUJCRDkxREI1
RDIxNDAwMjc3MzM0IC8qIFN0YXRpY1JhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUFGQjM1
MDExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NzI0
LDYgKzI3NzU0LDcgQEAKIAkJCQkwODVBMTU5MzEyODlBOEREMDAyNzEwRTMgLyogU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzlE
MzM0MzEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0ZWRUeXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MzlEMzM0NDEzQTY5MTFDMDBDMjBGNEYgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3Iu
aCBpbiBIZWFkZXJzICovLAorCQkJCTk0Nzk0OTM4MUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJl
Y2F0ZWRDU1NPTVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk5MDBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMkI4NDM0
MTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyMjI3OTkzMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlTW90aW9uRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzc5OSw2ICsyNzgzMCw3IEBACiAJCQkJMDg1NEIwMUYx
MjU1RTRFNjAwQjlDREQwIC8qIFNWR0lubGluZUZsb3dCb3guaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA4NTRCMDIxMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdJbmxpbmVUZXh0Qm94LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0EzMDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTGFuZ1NwYWNlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5NDc5NDkzNjFFMDQ1OUZBMDAwMThEODUgLyogSlNEZXByZWNhdGVk
Q1NTT01SR0JDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzEzNDQ5NkUxNDY5NDFCMzAwNzIw
MzEyIC8qIFNWR0xlbmd0aENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTM2MEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdMZW5ndGhMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzM5
QzM2NTFEREE4NjUyMDBGRUZCMjkgLyogU1ZHTGVuZ3RoTGlzdFZhbHVlcy5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yODA1Myw2ICsyODA4NSw3IEBACiAJCQkJMkQyMzJDMDAxQTMyNkYwMjAwNkJGMkRC
IC8qIFRVQ2FsbFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzM3NUQ3RkUxNjYzOTUxOTAwNjE4
NEFCIC8qIFR5cGVBaGVhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ2QTJCMUMxN0NBNjVCOTAw
MERCQ0Q4IC8qIFR5cGVkRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTQ3OTQ5NDExRTA0NjNENDAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTFBMDk5RTY0OTIwMDU2RTU4MSAvKiBUeXBpbmdD
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzY1MjMxODFFMDBEQkI1MDA2NzdGMjIgLyog
SlNBcHBsZVBheVBheW1lbnRNZXRob2QuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjRFMEE0
NEVGQzcwMEY5OTJFMCAvKiBVSUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI5MzAwLDYgKzI5
MzMzLDcgQEAKIAkJCQk0MzU4RTg4MDEzNjBBMzE3MDBFNDc0OEMgLyogRkVEcm9wU2hhZG93LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTg0NzMwRDdFMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUZsb29k
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg0ODAxOTU0MTA4QkFGQjMwMENCMkIxRiAvKiBGRUdh
dXNzaWFuQmx1ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5NDc5NDkzMDFFMDQ1OUVFMDAwMThE
ODUgLyogSlNEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4NDczMEQ4MDEyNDhGMEIzMDBEM0E5QzkgLyogRkVMaWdodGluZy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk4NDczMEQ4MjEyNDhGMEIzMDBEM0E5QzkgLyogRkVNZXJnZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4NDczMEQ4NDEyNDhGMEIzMDBEM0E5QzkgLyogRkVNb3JwaG9sb2d5LmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjk1NjQsNiArMjk1OTgsNyBAQAogCQkJCTk3N0IzODc3MTIy
ODgzRTkwMEI4MUZGOCAvKiBIVE1MVG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3
MDc1NjhCMTQyMjYyRDYwMDQxNDE2MSAvKiBIVE1MVHJhY2tFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTk3N0IzNzI1MTIyODcyMTcwMEI4MUZGOCAvKiBIVE1MVHJlZUJ1aWxkZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOTQ3OTQ5MjQxRTAzMDhBNDAwMDE4RDg1IC8qIERlcHJlY2F0
ZWRDU1NPTVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4RUE3OUYzMEExOTE2REYwMEE4
RUY1RiAvKiBIVE1MVUxpc3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0NDYxM0FB
MENENjMzMTAwMEZBREE3NSAvKiBIVE1MVmlkZW9FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTgzOUFBRkVDMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI5NzQzLDYgKzI5Nzc4LDcgQEAKIAkJCQlGREExNUVCMzEyQjAzRUUxMDAz
QTU4M0EgLyogSlNBdWRpb1BhcmFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RUI1MTJC
MDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJFOEVGMDQyMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2suY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJOTQ3OTQ5MzcxRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENT
U09NVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU2REY3MTExNzFDQTJEQTAwREQ1MkI4
IC8qIEpTQXVkaW9UcmFja0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCRThFRjA0NDE3
MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCRTZERjcxMzE3MUNBMkRBMDBERDUyQjggLyogSlNBdWRpb1RyYWNrTGlzdEN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI5Nzc2LDcgKzI5ODEyLDYgQEAKIAkJCQk3OUFDOTIxODEwOTk0
NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZEQTE1RUJEMTJCMDNGMEIwMDNBNTgzQSAvKiBKU0NvbnZvbHZlck5vZGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkU2RkQ0OEQwRjY3NkU5MzAwMDkyODczIC8qIEpTQ29vcmRpbmF0ZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJOTMwNzA1RDgwOUUwQzlCNzAwQjE3RkU0IC8qIEpTQ291bnRl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNERDRjNCMjFCNkJFMjA4MDA2MkQ0QzIgLyogSlND
b3VudFF1ZXVpbmdTdHJhdGVneS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzVDQTJBMTEzMDM2
NzlEMDBFOTlBRDkgLyogSlNDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE1N0E4RjAx
ODE4NTQyNTAwOUY4MjFEIC8qIEpTQ3J5cHRvQWxnb3JpdGhtQnVpbGRlci5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTI5Nzk3LDcgKzI5ODMyLDYgQEAKIAkJCQlCQzQ2QzIwMDBDMEREQzhGMDAyMENG
QzMgLyogSlNDU1NNZWRpYVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTRFODM5NTUxREZC
MkJDNDAwN0JDNkE3IC8qIEpTQ1NTTmFtZXNwYWNlUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzQ2QzIwMjBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NQYWdlUnVsZS5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQk5MzA3MDVFOTA5RTBDOUYwMDBCMTdGRTQgLyogSlNDU1NQcmltaXRpdmVWYWx1
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNENGN0IzMzA5RjZFQ0Q3MDBFQjM2NjUgLyogSlND
U1NSdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDZDMUVFMEMwRERCREYwMDIwQ0ZDMyAv
KiBKU0NTU1J1bGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThEMDVGQTcwQTIzQjMw
MTAwNUU3MjAzIC8qIEpTQ1NTUnVsZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTgwNyw5
ICsyOTg0MSw3IEBACiAJCQkJQkM0NkMyMDYwQzBERENBMTAwMjBDRkMzIC8qIEpTQ1NTU3R5bGVS
dWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQzVCRTAwMEMwRTkzMTEwMDExQzJEQiAvKiBK
U0NTU1N0eWxlU2hlZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ2Nzc3M0ExOTVDQjE0QTAw
NzJFMEQzIC8qIEpTQ1NTU3VwcG9ydHNSdWxlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTE0Q0Y3
OEE0MDlGNThDQkYwMEVCMzY2NSAvKiBKU0NTU1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDMjBGQjdGMEMwRThFNkMwMEQxNDQ3RiAvKiBKU0NTU1ZhbHVlQ3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUE4RDA1RkFCMEEyM0IzMEYwMDVFNzIwMyAvKiBKU0NTU1ZhbHVlTGlzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5QkQ0RTkxNjFDNDYyODcyMDA1MDY1QkMgLyogSlNDdXN0
b21FbGVtZW50SW50ZXJmYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlCRTY3MTBCMUQ1QUVC
MjEwMDM0NTUxNCAvKiBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5QkM1RjlFMDFENUFBRjZCMDAyQjc0OUQgLyogSlNDdXN0b21FbGVtZW50UmVnaXN0cnlD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTg0Niw2ICsyOTg3OCw3IEBACiAJCQkJRTFD
MzZDQkQwRUIwODA2MjAwNzQxMEJDIC8qIEpTRE9NR2xvYmFsT2JqZWN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDMkJERDNEMTdDN0Y5OEMwMDM4RkYxNSAvKiBKU0RPTUdsb2JhbE9iamVjdFRh
c2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxRjcwOUQxQ0M2MDAwMEJFMzI1IC8qIEpT
RE9NSW1wbGVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTQ3OTQ5M0MxRTA0NUNG
MzAwMDE4RDg1IC8qIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxMzhGODU3MUQyNTNGMDgwMDFDQjYxRSAvKiBKU0RPTUl0ZXJhdG9yLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE5RDI0ODA2MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVU
eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5RDI0ODA4MEQ3NTdFN0QwMEZERjk1OSAvKiBK
U0RPTU1pbWVUeXBlQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTg4Niw2ICsyOTkxOSw3
IEBACiAJCQkJMTRFODM3ODQwOUY4NUQxQzAwQjg1QUU0IC8qIEpTRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkNFRkFGNEUwQzMxN0U2OTAwRkE4MUY2IC8qIEpTRXZlbnRDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJODM2RDAzMkYxREE4QTEzQTAwRkZEOTZCIC8qIEpTRXZlbnRJ
bml0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk0Nzk0OTM1MUUwNDU5RkEwMDAxOEQ4NSAvKiBK
U0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQjcwRDY5
MDlFQjBDN0MwMDlEODQ2OCAvKiBKU0V2ZW50TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTBGRUYzNzJCNDdDNTNFQUMxQzFGQkVFIC8qIEpTRXZlbnRTb3VyY2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQzZBNzAzMzI1QzlEMEI2Q0RDQkM0RDc3IC8qIEpTRXZlbnRUYXJnZXQuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0zMDE1Nyw5ICszMDE5MSw3IEBACiAJCQkJNDEyOURGODUxQkI1
QjgwNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdFNEM5NkRDMUFENDQ4MzUwMDM2NUE1MSAvKiBKU1JlYWRhYmxl
U3RyZWFtU291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxOEMzOTYwMUM4RjBBQUUwMDUx
QzhBMyAvKiBKU1JlYWRhYmxlU3RyZWFtU291cmNlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUJDRkUyRjExMEMxQjU4MzcwMDIwMjM1RiAvKiBKU1JlY3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDk5OEFFQ0QxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1l
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkM3NERBNDgxMDEzRjQ2ODAwNzk4N0FE
IC8qIEpTUkdCQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTdFMjMzNzMxRENENDZCNjAw
RjI4RDAxIC8qIEpTUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTU3NjhFNDM2MURCNzUyNzQwMEQwQTRGNyAvKiBKU1JzYUhhc2hlZEtleUdlblBhcmFtcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1N0ZFREQ0MzFEQjZENzYwMDBFQjk2RjUgLyogSlNSc2FLZXlH
ZW5QYXJhbXMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDQ2Nyw2ICszMDQ5OSw3IEBACiAJCQkJ
MUFDRTUzRjYwQThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQTc2MkM3MzBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzYwREI0OTBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0
aEV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5NDc5NDkyRTFFMDQ1N0JBMDAwMThE
ODUgLyogRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
NzYyQzc1MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXhwcmVzc2lvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQTc2MkM3NzBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aE5TUmVzb2x2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODM2QzE0NDMxQ0RFQUZEODAwNzM0OTNGIC8qIEpTWFBh
dGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzA1NjAsNiArMzA1OTMs
NyBAQAogCQkJCTdDNjU3OUYxMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5UGF5bWVudFJl
cXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDM5MTc2REYxMkRBMjVFMTdCQUY4MEEyIC8q
IE1hdGhNTFN0eWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZBNjU0QTZCMTEwOEFCRUQwMDI2
MTVFMCAvKiBNYXRoTUxUb2tlbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTQ3OTQ5
MzkxRTA0NTlGQTAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZBNjU0QTZCMTEwOEFCRUQwMDI2MjZGMSAvKiBNYXRoTUxVbmRlck92
ZXJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzOTA0NkU5MTJEQTI1RTgxMkFGODBB
QyAvKiBNYXRoT3BlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlENURDMkIwRjQyM0E3
MzAwOEYyMEZEIC8qIE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMzExMDcsNiArMzExNDEsNyBAQAogCQkJCTBGRTcxNDA1MTQyMTcwQjgwMERCMzNCQSAv
KiBTY3JvbGxiYXJUaGVtZU1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBODRGMDQxNDNC
QTdCRDAwNTFEMTUzIC8qIFNjcm9sbENvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkw
RjYwNUFFQzE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWludHMuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJOTQ3OTQ5MkYxRTA0NTlFQjAwMDE4RDg1IC8qIEpTRGVwcmVjYXRlZENT
U09NQ291bnRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUY2MkVFNzE0REEyMkE3MDA0MTU1
NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNEU0
MEUxODdGODJFMTAwNDU4ODJDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9ySU9TLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFGNjJFRTYxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0zMTQ3Myw2ICszMTUwOCw3IEBACiAJCQkJRTE4
MDgxMTIxNkZDRjQyRjAwQjgwRDA3IC8qIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUxODA4MTE2MTZGQ0Y5Q0IwMEI4MEQwNyAvKiBTeW5jaHJvbm91c0xv
YWRlckNsaWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ0MkFCQ0Q2MTdEOTI2MkYwMEQzMDcx
NSAvKiBTeW5jaHJvbm91c0xvYWRlckNsaWVudENGTmV0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTk0Nzk0OTMzMUUwNDU5RkEwMDAxOEQ4NSAvKiBKU0RlcHJlY2F0ZWRDU1NPTVJlY3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMjZGQUU0Q0UxODUyRTNBNTAwNEM4QzQ2IC8qIFN5bmNocm9ub3Vz
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFNDUzOTBBRTBFQUZGNEI1MDAzNjk1QzggLyogU3lzdGVtTWVtb3J5SU9TLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUNEQTA3RkJEMThFMEExNkEwMDQ2OTlGQSAvKiBTeXN0ZW1TbGVlcExp
c3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvRE9NV3JhcHBlcldvcmxkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvRE9NV3JhcHBlcldvcmxkLmgJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3
ICsyNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ1NTVmFsdWU7CitjbGFz
cyBEZXByZWNhdGVkQ1NTT01WYWx1ZTsKIGNsYXNzIFNjcmlwdENvbnRyb2xsZXI7CiAKIHR5cGVk
ZWYgSGFzaE1hcDx2b2lkKiwgSlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+PiBET01PYmplY3RXcmFw
cGVyTWFwOwpAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTogY2FuIHdl
IG1ha2UgdGhpcyBwcml2YXRlPwogICAgIERPTU9iamVjdFdyYXBwZXJNYXAgbV93cmFwcGVyczsK
LSAgICBIYXNoTWFwPENTU1ZhbHVlKiwgdm9pZCo+IG1fY3NzVmFsdWVSb290czsKKyAgICBIYXNo
TWFwPERlcHJlY2F0ZWRDU1NPTVZhbHVlKiwgdm9pZCo+IG1fZGVwcmVjYXRlZENTU09NVmFsdWVS
b290czsKIAogICAgIGJvb2wgaXNOb3JtYWwoKSBjb25zdCB7IHJldHVybiBtX2lzTm9ybWFsOyB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlv
bkN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
U1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjYsMTcgKzI2LDE2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmgiCiAKLSNpbmNsdWRlICJDU1NQcmlt
aXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJD
U1NQcm9wZXJ0eVBhcnNlci5oIgogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJDU1NT
dHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgotI2luY2x1ZGUg
IkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCIKKyNp
bmNsdWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkhhc2hU
b29scy5oIgogI2luY2x1ZGUgIkpTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIkpT
Q1NTVmFsdWUuaCIKKyNpbmNsdWRlICJKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgiCiAjaW5jbHVk
ZSAiSlNOb2RlLmgiCiAjaW5jbHVkZSAiSlNTdHlsZVNoZWV0Q3VzdG9tLmgiCiAjaW5jbHVkZSAi
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgpAQCAtMzY1LDcgKzM2NCw3IEBAIEpTVmFsdWUgSlND
U1NTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXIKICAgICBpZiAoIXZhbHVlKQogICAgICAgICBy
ZXR1cm4ganNOdWxsKCk7CiAKLSAgICBnbG9iYWxPYmplY3QoKS0+d29ybGQoKS5tX2Nzc1ZhbHVl
Um9vdHMuYWRkKHZhbHVlLmdldCgpLCByb290KCZ3cmFwcGVkKCkpKTsgLy8gQmFsYW5jZWQgYnkg
SlNDU1NWYWx1ZU93bmVyOjpmaW5hbGl6ZSgpLgorICAgIGdsb2JhbE9iamVjdCgpLT53b3JsZCgp
Lm1fZGVwcmVjYXRlZENTU09NVmFsdWVSb290cy5hZGQodmFsdWUuZ2V0KCksIHJvb3QoJndyYXBw
ZWQoKSkpOyAvLyBCYWxhbmNlZCBieSBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlT3duZXI6OmZpbmFs
aXplKCkuCiAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgKnZhbHVlKTsK
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1c3RvbS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1
c3RvbS5jcHAJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ1NTVmFsdWVDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw1NiArMjQsNDkgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNDU1NWYWx1ZS5oIgogCi0j
aW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIK
LSNpbmNsdWRlICJKU0NTU1ByaW1pdGl2ZVZhbHVlLmgiCi0jaW5jbHVkZSAiSlNDU1NWYWx1ZUxp
c3QuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1
ZGUgIkRlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oIgorI2luY2x1ZGUgIkpTRGVwcmVjYXRlZENT
U09NUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmgi
CisjaW5jbHVkZSAiSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaCIKICNpbmNsdWRlICJKU05v
ZGUuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1i
b29sIEpTQ1NTVmFsdWVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQsIFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQorYm9vbCBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKLSAgICBKU0NTU1ZhbHVlKiBqc0NTU1ZhbHVlID0g
anNDYXN0PEpTQ1NTVmFsdWUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CisgICAgSlNEZXBy
ZWNhdGVkQ1NTT01WYWx1ZSoganNDU1NWYWx1ZSA9IGpzQ2FzdDxKU0RlcHJlY2F0ZWRDU1NPTVZh
bHVlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIGlmICghanNDU1NWYWx1ZS0+aGFz
Q3VzdG9tUHJvcGVydGllcygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgRE9NV3JhcHBl
cldvcmxkKiB3b3JsZCA9IHN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRleHQpOwot
ICAgIHZvaWQqIHJvb3QgPSB3b3JsZC0+bV9jc3NWYWx1ZVJvb3RzLmdldCgmanNDU1NWYWx1ZS0+
d3JhcHBlZCgpKTsKKyAgICB2b2lkKiByb290ID0gd29ybGQtPm1fZGVwcmVjYXRlZENTU09NVmFs
dWVSb290cy5nZXQoJmpzQ1NTVmFsdWUtPndyYXBwZWQoKSk7CiAgICAgaWYgKCFyb290KQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290
KHJvb3QpOwogfQogCi12b2lkIEpTQ1NTVmFsdWVPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCit2b2lkIEpTRGVwcmVjYXRlZENT
U09NVmFsdWVPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUs
IHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgSlNDU1NWYWx1ZSoganNDU1NWYWx1ZSA9IGpzQ2FzdDxK
U0NTU1ZhbHVlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOworICAgIEpTRGVwcmVjYXRlZENT
U09NVmFsdWUqIGpzQ1NTVmFsdWUgPSBqc0Nhc3Q8SlNEZXByZWNhdGVkQ1NTT01WYWx1ZSo+KGhh
bmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkID0gKnN0
YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRleHQpOwotICAgIHdvcmxkLm1fY3NzVmFs
dWVSb290cy5yZW1vdmUoJmpzQ1NTVmFsdWUtPndyYXBwZWQoKSk7CisgICAgd29ybGQubV9kZXBy
ZWNhdGVkQ1NTT01WYWx1ZVJvb3RzLnJlbW92ZSgmanNDU1NWYWx1ZS0+d3JhcHBlZCgpKTsKICAg
ICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzQ1NTVmFsdWUtPndyYXBwZWQoKSwganNDU1NWYWx1
ZSk7CiB9CiAKLUpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8Q1NTVmFsdWU+JiYgdmFsdWUpCitKU1ZhbHVlIHRv
SlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUmVmPERlcHJlY2F0ZWRDU1NPTVZhbHVlPiYmIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS0+
aXNWYWx1ZUxpc3QoKSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8Q1NTVmFsdWVMaXN0
PihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVdy
YXBwZXI8RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0PihnbG9iYWxPYmplY3QsIFdURk1vdmUodmFs
dWUpKTsKICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKLSAgICAgICAgcmV0dXJu
IGNyZWF0ZVdyYXBwZXI8Q1NTUHJpbWl0aXZlVmFsdWU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2
YWx1ZSkpOwotICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPENTU1ZhbHVlPihnbG9iYWxPYmplY3Qs
IFdURk1vdmUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8RGVwcmVjYXRl
ZENTU09NUHJpbWl0aXZlVmFsdWU+KGdsb2JhbE9iamVjdCwgV1RGTW92ZSh2YWx1ZSkpOworICAg
IHJldHVybiBjcmVhdGVXcmFwcGVyPERlcHJlY2F0ZWRDU1NPTVZhbHVlPihnbG9iYWxPYmplY3Qs
IFdURk1vdmUodmFsdWUpKTsKIH0KIAotSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogc3RhdGUsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENTU1ZhbHVlJiB2YWx1ZSkKK0pTVmFsdWUg
dG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBE
ZXByZWNhdGVkQ1NTT01WYWx1ZSYgdmFsdWUpCiB7Ci0gICAgLy8gU2NyaXB0cyBzaG91bGQgb25s
eSBldmVyIHNlZSBjbG9uZWQgQ1NTVmFsdWVzLCBuZXZlciB0aGUgaW50ZXJuYWwgb25lcy4KLSAg
ICBBU1NFUlQodmFsdWUuaXNDU1NPTVNhZmUoKSk7Ci0KLSAgICAvLyBJZiB3ZSdyZSBoZXJlIHVu
ZGVyIGVycm9uZW91cyBjaXJjdW1zdGFuY2VzLCBwcmVmZXIgcmV0dXJuaW5nIG51bGwgb3ZlciBh
IHBvdGVudGlhbGx5IGluc2VjdXJlIHZhbHVlLgotICAgIGlmICghdmFsdWUuaXNDU1NPTVNhZmUo
KSkKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotCiAgICAgcmV0dXJuIHdyYXAoc3RhdGUsIGds
b2JhbE9iamVjdCwgdmFsdWUpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAkocmV2aXNpb24gMjA5OTMyKQorKysg
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJDb250ZW50RGF0YS5oIgogI2lu
Y2x1ZGUgIkNvdW50ZXJDb250ZW50LmgiCiAjaW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgorI2luY2x1
ZGUgIkRlcHJlY2F0ZWRDU1NPTVZhbHVlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRm9udFRhZ2dlZFNldHRpbmdzLmgiCkBA
IC00MTE4LDE2ICs0MTE5LDIyIEBAIENTU1J1bGUqIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bjo6cGEKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBw
cm9wZXJ0eU5hbWUpCitSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+IENTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5
TmFtZSkKIHsKLSAgICBpZiAoaXNDdXN0b21Qcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKSkKLSAg
ICAgICAgcmV0dXJuIENvbXB1dGVkU3R5bGVFeHRyYWN0b3IobV9lbGVtZW50LnB0cigpLCBtX2Fs
bG93VmlzaXRlZFN0eWxlLCBtX3BzZXVkb0VsZW1lbnRTcGVjaWZpZXIpLmN1c3RvbVByb3BlcnR5
VmFsdWUocHJvcGVydHlOYW1lKTsKKyAgICBpZiAoaXNDdXN0b21Qcm9wZXJ0eU5hbWUocHJvcGVy
dHlOYW1lKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvciht
X2VsZW1lbnQucHRyKCksIG1fYWxsb3dWaXNpdGVkU3R5bGUsIG1fcHNldWRvRWxlbWVudFNwZWNp
ZmllcikuY3VzdG9tUHJvcGVydHlWYWx1ZShwcm9wZXJ0eU5hbWUpOworICAgICAgICBpZiAoIXZh
bHVlKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiB2YWx1ZS0+
Y3JlYXRlRGVwcmVjYXRlZENTU09NV3JhcHBlcigpOworICAgIH0KIAogICAgIENTU1Byb3BlcnR5
SUQgcHJvcGVydHlJRCA9IGNzc1Byb3BlcnR5SUQocHJvcGVydHlOYW1lKTsKICAgICBpZiAoIXBy
b3BlcnR5SUQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIFJlZlB0cjxDU1NWYWx1ZT4g
dmFsdWUgPSBnZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5SUQpOwotICAgIHJldHVybiB2YWx1
ZSA/IHZhbHVlLT5jbG9uZUZvckNTU09NKCkgOiBudWxscHRyOworICAgIGlmICghdmFsdWUpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiB2YWx1ZS0+Y3JlYXRlRGVwcmVjYXRl
ZENTU09NV3JhcHBlcigpOwogfQogCiBTdHJpbmcgQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
OjpnZXRQcm9wZXJ0eVZhbHVlKGNvbnN0IFN0cmluZyAmcHJvcGVydHlOYW1lKQpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaAkocmV2
aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNyArMTA0LDcgQEAgcHJpdmF0ZToKICAg
ICBDU1NSdWxlKiBwYXJlbnRSdWxlKCkgY29uc3QgZmluYWw7CiAgICAgdW5zaWduZWQgbGVuZ3Ro
KCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0IGZp
bmFsOwotICAgIFJlZlB0cjxDU1NWYWx1ZT4gZ2V0UHJvcGVydHlDU1NWYWx1ZShjb25zdCBTdHJp
bmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CisgICAgUmVmUHRyPERlcHJlY2F0ZWRDU1NPTVZhbHVl
PiBnZXRQcm9wZXJ0eUNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBmaW5hbDsK
ICAgICBTdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkg
ZmluYWw7CiAgICAgU3RyaW5nIGdldFByb3BlcnR5UHJpb3JpdHkoY29uc3QgU3RyaW5nJiBwcm9w
ZXJ0eU5hbWUpIGZpbmFsOwogICAgIFN0cmluZyBnZXRQcm9wZXJ0eVNob3J0aGFuZChjb25zdCBT
dHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
R3JpZExpbmVOYW1lc1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTR3JpZExpbmVOYW1lc1ZhbHVlLmNwcAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyaWRMaW5lTmFtZXNWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDExICs0NCw2IEBAIENTU0dyaWRMaW5lTmFtZXNWYWx1ZTo6Q1NTR3JpZExpbmVOYW1lc1YKIHsK
IH0KIAotUmVmPENTU0dyaWRMaW5lTmFtZXNWYWx1ZT4gQ1NTR3JpZExpbmVOYW1lc1ZhbHVlOjpj
bG9uZUZvckNTU09NKCkgY29uc3QKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NHcmlk
TGluZU5hbWVzVmFsdWUoKnRoaXMpKTsKLX0KLQogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmlkTGluZU5hbWVzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTR3JpZExpbmVOYW1lc1ZhbHVlLmgJKHJldmlzaW9uIDIwOTkzMikKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkTGluZU5hbWVzVmFsdWUuaAkod29ya2luZyBjb3B5
KQpAQCAtNDUsOCArNDUsNiBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgp
IGNvbnN0OwogCi0gICAgUmVmPENTU0dyaWRMaW5lTmFtZXNWYWx1ZT4gY2xvbmVGb3JDU1NPTSgp
IGNvbnN0OwotCiBwcml2YXRlOgogICAgIENTU0dyaWRMaW5lTmFtZXNWYWx1ZSgpOwogfTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAJKHJldmlzaW9uIDIwOTkz
MikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTU5LDE1ICsxNTksNCBAQCBib29sIENTU0ltYWdlU2V0VmFsdWU6OnRyYXZlcnNl
U3VicmVzb3VyCiAgICAgcmV0dXJuIGhhbmRsZXIoKm1fY2FjaGVkSW1hZ2UpOwogfQogCi1DU1NJ
bWFnZVNldFZhbHVlOjpDU1NJbWFnZVNldFZhbHVlKGNvbnN0IENTU0ltYWdlU2V0VmFsdWUmIGNs
b25lRnJvbSkKLSAgICA6IENTU1ZhbHVlTGlzdChjbG9uZUZyb20pCi17Ci0gICAgLy8gTm9uLUNT
U1ZhbHVlTGlzdCBkYXRhIGlzIG5vdCBhY2Nlc3NpYmxlIHRocm91Z2ggQ1NTIE9NLCBubyBuZWVk
IHRvIGNsb25lLgotfQotCi1SZWY8Q1NTSW1hZ2VTZXRWYWx1ZT4gQ1NTSW1hZ2VTZXRWYWx1ZTo6
Y2xvbmVGb3JDU1NPTSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTSW1h
Z2VTZXRWYWx1ZSgqdGhpcykpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmgJKHJldmlzaW9uIDIwOTkzMikKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDggKzU1LDYgQEAgcHVibGljOgogCiAgICAgYm9vbCB0cmF2ZXJzZVN1YnJlc291cmNlcyhjb25z
dCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKGNvbnN0IENhY2hlZFJlc291cmNlJik+JiBoYW5kbGVyKSBj
b25zdDsKIAotICAgIFJlZjxDU1NJbWFnZVNldFZhbHVlPiBjbG9uZUZvckNTU09NKCkgY29uc3Q7
Ci0KICAgICB2b2lkIHVwZGF0ZURldmljZVNjYWxlRmFjdG9yKGNvbnN0IERvY3VtZW50Jik7CiAK
IHByb3RlY3RlZDoKQEAgLTY0LDcgKzYyLDYgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAg
IENTU0ltYWdlU2V0VmFsdWUoKTsKLSAgICBDU1NJbWFnZVNldFZhbHVlKGNvbnN0IENTU0ltYWdl
U2V0VmFsdWUmIGNsb25lRnJvbSk7CiAKICAgICB2b2lkIGZpbGxJbWFnZVNldCgpOwogICAgIHN0
YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlQnlTY2FsZUZhY3RvcihJbWFnZVdpdGhTY2FsZSBmaXJz
dCwgSW1hZ2VXaXRoU2NhbGUgc2Vjb25kKSB7IHJldHVybiBmaXJzdC5zY2FsZUZhY3RvciA8IHNl
Y29uZC5zY2FsZUZhY3RvcjsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFs
dWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNw
cAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cy5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgorI2luY2x1ZGUgIkRl
cHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKQEAgLTk4LDEyICs5
OSwxMCBAQCBTdHJpbmcgQ1NTSW1hZ2VWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvCiAgICAgcmV0
dXJuIHNlcmlhbGl6ZVVSTChtX3VybCk7CiB9CiAKLVJlZjxDU1NWYWx1ZT4gQ1NTSW1hZ2VWYWx1
ZTo6Y2xvbmVGb3JDU1NPTSgpIGNvbnN0CitSZWY8RGVwcmVjYXRlZENTU09NVmFsdWU+IENTU0lt
YWdlVmFsdWU6OmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIoKSBjb25zdAogewogICAgIC8v
IE5PVEU6IFdlIGV4cG9zZSBDU1NJbWFnZVZhbHVlcyBhcyBVUkkgcHJpbWl0aXZlIHZhbHVlcyBp
biBDU1NPTSB0byBtYWludGFpbiBvbGQgYmVoYXZpb3IuCi0gICAgUmVmPENTU1ByaW1pdGl2ZVZh
bHVlPiB1cmlWYWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUobV91cmwsIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfVVJJKTsKLSAgICB1cmlWYWx1ZS0+c2V0Q1NTT01TYWZlKCk7Ci0gICAg
cmV0dXJuIFdURk1vdmUodXJpVmFsdWUpOworICAgIHJldHVybiBEZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZTo6Y3JlYXRlKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUobV91cmwsIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfVVJJKSk7CiB9CiAKIGJvb2wgQ1NTSW1hZ2VWYWx1ZTo6a25vd25U
b0JlT3BhcXVlKGNvbnN0IFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyKSBjb25zdApJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjsKK2NsYXNzIERlcHJlY2F0ZWRDU1NPTVZhbHVlOwogY2xhc3MgUmVuZGVy
RWxlbWVudDsKIHN0cnVjdCBSZXNvdXJjZUxvYWRlck9wdGlvbnM7CiAKQEAgLTQ1LDcgKzQ2LDcg
QEAgcHVibGljOgogCiAgICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBjb25zdDsKIAotICAgIFJl
ZjxDU1NWYWx1ZT4gY2xvbmVGb3JDU1NPTSgpIGNvbnN0OworICAgIFJlZjxEZXByZWNhdGVkQ1NT
T01WYWx1ZT4gY3JlYXRlRGVwcmVjYXRlZENTU09NV3JhcHBlcigpIGNvbnN0OwogCiAgICAgYm9v
bCB0cmF2ZXJzZVN1YnJlc291cmNlcyhjb25zdCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKGNvbnN0IENh
Y2hlZFJlc291cmNlJik+JiBoYW5kbGVyKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiQ2FsY3VsYXRpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNvbG9yLmgi
CiAjaW5jbHVkZSAiQ291bnRlci5oIgorI2luY2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2
ZVZhbHVlLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZvbnRDYXNj
YWRlLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgpAQCAtMTE3NCwxMDQgKzExNzUsNiBAQCBTdHJpbmcg
Q1NTUHJpbWl0aXZlVmFsdWU6OmN1c3RvbUNTU1RleHQoCiAgICAgcmV0dXJuIHRleHQ7CiB9CiAK
LVJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNsb25lRm9yQ1NTT00o
KSBjb25zdAotewotICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcmVzdWx0OwotCi0gICAg
c3dpdGNoIChtX3ByaW1pdGl2ZVVuaXRUeXBlKSB7Ci0gICAgY2FzZSBDU1NfU1RSSU5HOgotICAg
IGNhc2UgQ1NTX1VSSToKLSAgICBjYXNlIENTU19BVFRSOgotICAgIGNhc2UgQ1NTX0NPVU5URVJf
TkFNRToKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShtX3ZhbHVl
LnN0cmluZywgc3RhdGljX2Nhc3Q8VW5pdFR5cGU+KG1fcHJpbWl0aXZlVW5pdFR5cGUpKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NfRk9OVF9GQU1JTFk6Ci0gICAgICAgIHJlc3VsdCA9
IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoKm1fdmFsdWUuZm9udEZhbWlseSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgQ1NTX0NPVU5URVI6Ci0gICAgICAgIHJlc3VsdCA9IENTU1ByaW1p
dGl2ZVZhbHVlOjpjcmVhdGUobV92YWx1ZS5jb3VudGVyLT5jbG9uZUZvckNTU09NKCkpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIENTU19SRUNUOgotICAgICAgICByZXN1bHQgPSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Y3JlYXRlKG1fdmFsdWUucmVjdC0+Y2xvbmVGb3JDU1NPTSgpKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NfUVVBRDoKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZShtX3ZhbHVlLnF1YWQtPmNsb25lRm9yQ1NTT00oKSk7Ci0gICAgICAg
IGJyZWFrOwotI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCi0gICAgY2FzZSBDU1NfTEVOR1RI
X1JFUEVBVDoKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShtX3Zh
bHVlLmxlbmd0aFJlcGVhdC0+Y2xvbmVGb3JDU1NPTSgpKTsKLSAgICAgICAgYnJlYWs7Ci0jZW5k
aWYKLSAgICBjYXNlIENTU19QQUlSOgotICAgICAgICAvLyBQYWlyIGlzIG5vdCBleHBvc2VkIHRv
IHRoZSBDU1NPTSwgbm8gbmVlZCBmb3IgYSBkZWVwIGNsb25lLgotICAgICAgICByZXN1bHQgPSBD
U1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKFJlZjxQYWlyPigqbV92YWx1ZS5wYWlyKSk7Ci0gICAg
ICAgIGJyZWFrOwotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKLSAgICBjYXNlIENTU19E
QVNIQk9BUkRfUkVHSU9OOgotICAgICAgICAvLyBEYXNoYm9hcmRSZWdpb24gaXMgbm90IGV4cG9z
ZWQgdG8gdGhlIENTU09NLCBubyBuZWVkIGZvciBhIGRlZXAgY2xvbmUuCi0gICAgICAgIHJlc3Vs
dCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoUmVmUHRyPERhc2hib2FyZFJlZ2lvbj4obV92
YWx1ZS5yZWdpb24pKTsKLSAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgICBjYXNlIENTU19DQUxD
OgotICAgICAgICAvLyBDU1NDYWxjVmFsdWUgaXMgbm90IGV4cG9zZWQgdG8gdGhlIENTU09NLCBu
byBuZWVkIGZvciBhIGRlZXAgY2xvbmUuCi0gICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZh
bHVlOjpjcmVhdGUoUmVmUHRyPENTU0NhbGNWYWx1ZT4obV92YWx1ZS5jYWxjKSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgQ1NTX1NIQVBFOgotICAgICAgICAvLyBDU1NTaGFwZVZhbHVlIGlz
IG5vdCBleHBvc2VkIHRvIHRoZSBDU1NPTSwgbm8gbmVlZCBmb3IgYSBkZWVwIGNsb25lLgotICAg
ICAgICByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKFJlZjxDU1NCYXNpY1NoYXBl
PigqbV92YWx1ZS5zaGFwZSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU19OVU1CRVI6
Ci0gICAgY2FzZSBDU1NfUEVSQ0VOVEFHRToKLSAgICBjYXNlIENTU19FTVM6Ci0gICAgY2FzZSBD
U1NfUVVJUktZX0VNUzoKLSAgICBjYXNlIENTU19FWFM6Ci0gICAgY2FzZSBDU1NfUkVNUzoKLSAg
ICBjYXNlIENTU19DSFM6Ci0gICAgY2FzZSBDU1NfUFg6Ci0gICAgY2FzZSBDU1NfQ006Ci0gICAg
Y2FzZSBDU1NfTU06Ci0gICAgY2FzZSBDU1NfSU46Ci0gICAgY2FzZSBDU1NfUFQ6Ci0gICAgY2Fz
ZSBDU1NfUEM6Ci0gICAgY2FzZSBDU1NfREVHOgotICAgIGNhc2UgQ1NTX1JBRDoKLSAgICBjYXNl
IENTU19HUkFEOgotICAgIGNhc2UgQ1NTX01TOgotICAgIGNhc2UgQ1NTX1M6Ci0gICAgY2FzZSBD
U1NfSFo6Ci0gICAgY2FzZSBDU1NfS0haOgotICAgIGNhc2UgQ1NTX1RVUk46Ci0gICAgY2FzZSBD
U1NfVlc6Ci0gICAgY2FzZSBDU1NfVkg6Ci0gICAgY2FzZSBDU1NfVk1JTjoKLSAgICBjYXNlIENT
U19WTUFYOgotI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikgfHwgRU5BQkxFKFJFU09M
VVRJT05fTUVESUFfUVVFUlkpCi0gICAgY2FzZSBDU1NfRFBQWDoKLSAgICBjYXNlIENTU19EUEk6
Ci0gICAgY2FzZSBDU1NfRFBDTToKLSNlbmRpZgotICAgIGNhc2UgQ1NTX0ZSOgotICAgICAgICBy
ZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKG1fdmFsdWUubnVtLCBzdGF0aWNfY2Fz
dDxVbml0VHlwZT4obV9wcmltaXRpdmVVbml0VHlwZSkpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIENTU19QUk9QRVJUWV9JRDoKLSAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6
OmNyZWF0ZUlkZW50aWZpZXIobV92YWx1ZS5wcm9wZXJ0eUlEKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBDU1NfVkFMVUVfSUQ6Ci0gICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVl
OjpjcmVhdGVJZGVudGlmaWVyKG1fdmFsdWUudmFsdWVJRCk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQ1NTX1JHQkNPTE9SOgotICAgICAgICByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6
Y3JlYXRlKCptX3ZhbHVlLmNvbG9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NfRElN
RU5TSU9OOgotICAgIGNhc2UgQ1NTX1VOS05PV046Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICByZXN1bHQtPnNldENTU09NU2FmZSgp
OwotICAgIHJldHVybiByZXN1bHQucmVsZWFzZU5vbk51bGwoKTsKLX0KLQogYm9vbCBDU1NQcmlt
aXRpdmVWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlJiBvdGhlcikgY29uc3QK
IHsKICAgICBpZiAobV9wcmltaXRpdmVVbml0VHlwZSAhPSBvdGhlci5tX3ByaW1pdGl2ZVVuaXRU
eXBlKQpAQCAtMTM0OCw0ICsxMjUxLDkgQEAgYm9vbCBDU1NQcmltaXRpdmVWYWx1ZTo6ZXF1YWxz
KGNvbnN0IENTUwogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUmVmPERlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVZhbHVlPiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlRGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlV3JhcHBlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIERlcHJlY2F0ZWRDU1NPTVByaW1p
dGl2ZVZhbHVlOjpjcmVhdGUoKnRoaXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAkocmV2aXNpb24gMjA5OTMy
KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDYgKzM4LDcgQEAgY2xhc3MgQ1NTQ2FsY1ZhbHVlOwogY2xhc3MgQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YTsKIGNsYXNzIENvdW50ZXI7CiBjbGFzcyBEYXNoYm9hcmRSZWdpb247
CitjbGFzcyBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTsKIGNsYXNzIExlbmd0aFJlcGVh
dDsKIGNsYXNzIFBhaXI7CiBjbGFzcyBRdWFkOwpAQCAtMjg5LDkgKzI5MCw2IEBAIHB1YmxpYzoK
ICAgICAvLyBGSVhNRS1ORVdQQVJTRVI6IENhbiBkaXRjaCB0aGUgYm9vbGVhbiBhbmQganVzdCB1
c2UgdGhlIHVuaXQgdHlwZSBvbmNlIG9sZCBwYXJzZXIgaXMgZ29uZS4KICAgICBib29sIGlzUXVp
cmtWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNRdWlya1ZhbHVlIHx8IHByaW1pdGl2ZVR5cGUo
KSA9PSBDU1NfUVVJUktZX0VNUzsgfQogCi0gICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjbG9u
ZUZvckNTU09NKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRDU1NPTVNhZmUoKSB7IG1faXNDU1NPTVNh
ZmUgPSB0cnVlOyB9Ci0KICAgICBib29sIGVxdWFscyhjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYp
IGNvbnN0OwogCiAgICAgc3RhdGljIFVuaXRUeXBlIGNhbm9uaWNhbFVuaXRUeXBlRm9yQ2F0ZWdv
cnkoVW5pdENhdGVnb3J5KTsKQEAgLTI5OSw2ICsyOTcsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgZG91YmxlIGNvbXB1dGVOb25DYWxjTGVuZ3RoRG91YmxlKGNvbnN0IENTU1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdGEmLCBVbml0VHlwZSwgZG91YmxlIHZhbHVlKTsKIAorICAgIFJlZjxEZXByZWNh
dGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gY3JlYXRlRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlV3Jh
cHBlcigpIGNvbnN0OworCiAjaWYgQ09NUElMRVIoTVNWQykKICAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgYmUgcHJpdmF0ZSwgYnV0IGZvciBzb21lIHJlYXNvbiBNU1ZDIHRoZW4gZmFpbHMgdG8g
aW52b2tlIGl0IGZyb20gTGF6eU5ldmVyRGVzdHJveWVkOjpjb25zdHJ1Y3QuCiBwdWJsaWM6Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5pZGwJKHJldmlzaW9uIDIw
OTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5pZGwJKG5vbmV4
aXN0ZW50KQpAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotWwotICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUsCi1dIGludGVyZmFjZSBDU1NQcmltaXRpdmVWYWx1ZSA6IENTU1ZhbHVlIHsKLSAg
ICAvLyBVbml0VHlwZXMKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVU5LTk9XTiA9IDA7
Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX05VTUJFUiA9IDE7Ci0gICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgQ1NTX1BFUkNFTlRBR0UgPSAyOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IENTU19FTVMgPSAzOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19FWFMgPSA0OwotICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19QWCA9IDU7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgQ1NTX0NNID0gNjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfTU0gPSA3OwotICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19JTiA9IDg7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgQ1NTX1BUID0gOTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUEMgPSAxMDsKLSAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfREVHID0gMTE7Ci0gICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgQ1NTX1JBRCA9IDEyOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19HUkFEID0g
MTM7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX01TID0gMTQ7Ci0gICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgQ1NTX1MgPSAxNTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfSFog
PSAxNjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfS0haID0gMTc7Ci0gICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgQ1NTX0RJTUVOU0lPTiA9IDE4OwotICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IENTU19TVFJJTkcgPSAxOTsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVVJJID0g
MjA7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0lERU5UID0gMjE7Ci0gICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgQ1NTX0FUVFIgPSAyMjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBD
U1NfQ09VTlRFUiA9IDIzOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19SRUNUID0gMjQ7
Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1JHQkNPTE9SID0gMjU7Ci0gICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgQ1NTX1ZXID0gMjY7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NT
X1ZIID0gMjc7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1ZNSU4gPSAyODsKLSAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVk1BWCA9IDI5OwotICAgIAotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBwcmltaXRpdmVUeXBlOwotCi0gICAgW01heVRocm93RXhj
ZXB0aW9uXSB2b2lkIHNldEZsb2F0VmFsdWUob3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgdW5pdFR5
cGUgPSAwLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZmxvYXQgZmxvYXRWYWx1ZSA9IE5hTik7Ci0g
ICAgW01heVRocm93RXhjZXB0aW9uXSB1bnJlc3RyaWN0ZWQgZmxvYXQgZ2V0RmxvYXRWYWx1ZShv
cHRpb25hbCB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSA9IDApOwotCi0gICAgW01heVRocm93RXhj
ZXB0aW9uXSB2b2lkIHNldFN0cmluZ1ZhbHVlKG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHN0cmlu
Z1R5cGUgPSAwLCBvcHRpb25hbCBET01TdHJpbmcgc3RyaW5nVmFsdWUpOwotICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gRE9NU3RyaW5nIGdldFN0cmluZ1ZhbHVlKCk7Ci0KLSAgICBbTWF5VGhyb3dF
eGNlcHRpb25dIENvdW50ZXIgZ2V0Q291bnRlclZhbHVlKCk7Ci0gICAgW01heVRocm93RXhjZXB0
aW9uXSBSZWN0IGdldFJlY3RWYWx1ZSgpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gUkdCQ29s
b3IgZ2V0UkdCQ29sb3JWYWx1ZSgpOwotfTsKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5pZGwKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46
ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHBy
b3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmgJKHJl
dmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9u
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTVZhbHVl
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUu
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNDksNyArNTAsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDc3NUZXh0KGNvbnN0IFN0cmluZyYpID0g
MDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IFN0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBSZWZQ
dHI8Q1NTVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5h
bWUpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4gZ2V0UHJv
cGVydHlDU1NWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgPSAwOwogICAgIHZpcnR1
YWwgU3RyaW5nIGdldFByb3BlcnR5VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpID0g
MDsKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eVByaW9yaXR5KGNvbnN0IFN0cmluZyYg
cHJvcGVydHlOYW1lKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHlTaG9ydGhh
bmQoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MzEsNyArMzEsOSBAQAogICAgIFtDRVJlYWN0aW9ucywgU2V0dGVyTWF5VGhyb3dFeGNlcHRpb25d
IGF0dHJpYnV0ZSBET01TdHJpbmcgY3NzVGV4dDsKIAogICAgIERPTVN0cmluZyBnZXRQcm9wZXJ0
eVZhbHVlKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotICAgIFtDdXN0b21dIENTU1ZhbHVlPyBn
ZXRQcm9wZXJ0eUNTU1ZhbHVlKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOworCisgICAgLy8gVGhp
cyBtZXRob2QgaXMgZGVwcmVjYXRlZCwgYW5kIHdlIHdvdWxkIGxpa2UgdG8gZHJvcCBzdXBwb3J0
IGZvciBpdCBzb21lZGF5CisgICAgW0N1c3RvbV0gRGVwcmVjYXRlZENTU09NVmFsdWU/IGdldFBy
b3BlcnR5Q1NTVmFsdWUoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CiAKICAgICBbQ0VSZWFjdGlv
bnMsIE1heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgcmVtb3ZlUHJvcGVydHkoRE9NU3RyaW5n
IHByb3BlcnR5TmFtZSk7CiAgICAgRE9NU3RyaW5nPyBnZXRQcm9wZXJ0eVByaW9yaXR5KERPTVN0
cmluZyBwcm9wZXJ0eU5hbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCShyZXZpc2lv
biAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02OCw2ICs2OCw5IEBACiAjaW5jbHVkZSAiQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1
ZS5oIgogI2VuZGlmCiAKKyNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5o
IgorI2luY2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oIgorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHN0cnVjdCBTYW1lU2l6ZUFzQ1NTVmFsdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxT
YW1lU2l6ZUFzQ1NTVmFsdWU+IHsKQEAgLTc2LDI2ICs3OSw2IEBAIHN0cnVjdCBTYW1lU2l6ZUFz
Q1NTVmFsdWUgOiBwdWJsaWMgUmVmQ28KIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKENTU1ZhbHVl
KSA9PSBzaXplb2YoU2FtZVNpemVBc0NTU1ZhbHVlKSwgQ1NTX3ZhbHVlX3Nob3VsZF9zdGF5X3Nt
YWxsKTsKIAotY2xhc3MgVGV4dENsb25lQ1NTVmFsdWUgZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUg
ewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8VGV4dENsb25lQ1NTVmFsdWU+IGNyZWF0ZShDbGFz
c1R5cGUgY2xhc3NUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQpCi0gICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBUZXh0Q2xvbmVDU1NWYWx1ZShjbGFzc1R5cGUsIHRleHQpKTsKLSAg
ICB9Ci0KLSAgICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY3NzVGV4dDsgfQot
Ci1wcml2YXRlOgotICAgIFRleHRDbG9uZUNTU1ZhbHVlKENsYXNzVHlwZSBjbGFzc1R5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dCkgCi0gICAgICAgIDogQ1NTVmFsdWUoY2xhc3NUeXBlLCAvKmlzQ1NT
T01TYWZlKi8gdHJ1ZSkKLSAgICAgICAgLCBtX2Nzc1RleHQodGV4dCkKLSAgICB7Ci0gICAgICAg
IG1faXNUZXh0Q2xvbmUgPSB0cnVlOwotICAgIH0KLQotICAgIFN0cmluZyBtX2Nzc1RleHQ7Ci19
OwotCiBib29sIENTU1ZhbHVlOjppc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gbV9jbGFzc1R5cGUgPT0gSW5pdGlhbENsYXNzICYmIGRvd25jYXN0PENTU0luaXRp
YWxWYWx1ZT4oKnRoaXMpLmlzSW1wbGljaXQoKTsKQEAgLTEyMCw5ICsxMDMsNiBAQCBDU1NWYWx1
ZTo6VHlwZSBDU1NWYWx1ZTo6Y3NzVmFsdWVUeXBlKCkgCiAKIGJvb2wgQ1NTVmFsdWU6OnRyYXZl
cnNlU3VicmVzb3VyY2VzKGNvbnN0IHN0ZDo6ZnVuY3Rpb248Ym9vbCAoY29uc3QgQ2FjaGVkUmVz
b3VyY2UmKT4mIGhhbmRsZXIpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBzaG91bGQgZ2V0IGNhbGxl
ZCBmb3IgaW50ZXJuYWwgaW5zdGFuY2VzIG9ubHkuCi0gICAgQVNTRVJUKCFpc0NTU09NU2FmZSgp
KTsKLQogICAgIGlmIChpczxDU1NWYWx1ZUxpc3Q+KCp0aGlzKSkKICAgICAgICAgcmV0dXJuIGRv
d25jYXN0PENTU1ZhbHVlTGlzdD4oKnRoaXMpLnRyYXZlcnNlU3VicmVzb3VyY2VzKGhhbmRsZXIp
OwogICAgIGlmIChpczxDU1NGb250RmFjZVNyY1ZhbHVlPigqdGhpcykpCkBAIC0xNDYsMTEgKzEy
Niw2IEBAIGlubGluZSBzdGF0aWMgYm9vbCBjb21wYXJlQ1NTVmFsdWVzKGNvbnMKIAogYm9vbCBD
U1NWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1ZhbHVlJiBvdGhlcikgY29uc3QKIHsKLSAgICBpZiAo
bV9pc1RleHRDbG9uZSkgewotICAgICAgICBBU1NFUlQoaXNDU1NPTVNhZmUoKSk7Ci0gICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBUZXh0Q2xvbmVDU1NWYWx1ZSo+KHRoaXMpLT5jc3NU
ZXh0KCkgPT0gb3RoZXIuY3NzVGV4dCgpOwotICAgIH0KLQogICAgIGlmIChtX2NsYXNzVHlwZSA9
PSBvdGhlci5tX2NsYXNzVHlwZSkgewogICAgICAgICBzd2l0Y2ggKG1fY2xhc3NUeXBlKSB7CiAg
ICAgICAgIGNhc2UgQXNwZWN0UmF0aW9DbGFzczoKQEAgLTI0OCwxMiArMjIzLDYgQEAgYm9vbCBD
U1NWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1ZhbHVlJiBvdAogCiBTdHJpbmcgQ1NTVmFsdWU6OmNz
c1RleHQoKSBjb25zdAogewotICAgIGlmIChtX2lzVGV4dENsb25lKSB7Ci0gICAgICAgICBBU1NF
UlQoaXNDU1NPTVNhZmUoKSk7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBUZXh0
Q2xvbmVDU1NWYWx1ZSo+KHRoaXMpLT5jc3NUZXh0KCk7Ci0gICAgfQotICAgIEFTU0VSVCghaXND
U1NPTVNhZmUoKSB8fCBpc1N1YnR5cGVFeHBvc2VkVG9DU1NPTSgpKTsKLQogICAgIHN3aXRjaCAo
Y2xhc3NUeXBlKCkpIHsKICAgICBjYXNlIEFzcGVjdFJhdGlvQ2xhc3M6CiAgICAgICAgIHJldHVy
biBkb3duY2FzdDxDU1NBc3BlY3RSYXRpb1ZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwpA
QCAtMzQ3LDEzICszMTYsNiBAQCBTdHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoKSBjb25zdAogCiB2
b2lkIENTU1ZhbHVlOjpkZXN0cm95KCkKIHsKLSAgICBpZiAobV9pc1RleHRDbG9uZSkgewotICAg
ICAgICBBU1NFUlQoaXNDU1NPTVNhZmUoKSk7Ci0gICAgICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxU
ZXh0Q2xvbmVDU1NWYWx1ZSo+KHRoaXMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIEFT
U0VSVCghaXNDU1NPTVNhZmUoKSB8fCBpc1N1YnR5cGVFeHBvc2VkVG9DU1NPTSgpKTsKLQogICAg
IHN3aXRjaCAoY2xhc3NUeXBlKCkpIHsKICAgICBjYXNlIEFzcGVjdFJhdGlvQ2xhc3M6CiAgICAg
ICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NBc3BlY3RSYXRpb1ZhbHVlPih0aGlzKTsKQEAgLTQ4Miwy
MiArNDQ0LDE1IEBAIHZvaWQgQ1NTVmFsdWU6OmRlc3Ryb3koKQogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCi1SZWZQdHI8Q1NTVmFsdWU+IENTU1ZhbHVlOjpjbG9uZUZvckNTU09NKCkg
Y29uc3QKK1JlZjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4gQ1NTVmFsdWU6OmNyZWF0ZURlcHJlY2F0
ZWRDU1NPTVdyYXBwZXIoKSBjb25zdAogewotICAgIHN3aXRjaCAoY2xhc3NUeXBlKCkpIHsKLSAg
ICBjYXNlIFByaW1pdGl2ZUNsYXNzOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTUHJpbWl0
aXZlVmFsdWU+KCp0aGlzKS5jbG9uZUZvckNTU09NKCk7Ci0gICAgY2FzZSBWYWx1ZUxpc3RDbGFz
czoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1ZhbHVlTGlzdD4oKnRoaXMpLmNsb25lRm9y
Q1NTT00oKTsKLSAgICBjYXNlIEltYWdlQ2xhc3M6Ci0gICAgY2FzZSBDdXJzb3JJbWFnZUNsYXNz
OgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTSW1hZ2VWYWx1ZT4oKnRoaXMpLmNsb25lRm9y
Q1NTT00oKTsKLSAgICBjYXNlIEltYWdlU2V0Q2xhc3M6Ci0gICAgICAgIHJldHVybiBkb3duY2Fz
dDxDU1NJbWFnZVNldFZhbHVlPigqdGhpcykuY2xvbmVGb3JDU1NPTSgpOwotICAgIGRlZmF1bHQ6
Ci0gICAgICAgIEFTU0VSVCghaXNTdWJ0eXBlRXhwb3NlZFRvQ1NTT00oKSk7Ci0gICAgICAgIHJl
dHVybiBUZXh0Q2xvbmVDU1NWYWx1ZTo6Y3JlYXRlKGNsYXNzVHlwZSgpLCBjc3NUZXh0KCkpOwot
ICAgIH0KKyAgICBpZiAoaXNJbWFnZVZhbHVlKCkgfHwgaXNDdXJzb3JJbWFnZVZhbHVlKCkpCisg
ICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NJbWFnZVZhbHVlPih0aGlzKS0+Y3JlYXRlRGVwcmVj
YXRlZENTU09NV3JhcHBlcigpOworICAgIGlmIChpc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAg
IHJldHVybiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGRvd25jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlPigqdGhpcykpOworICAgIGlmIChpc1ZhbHVlTGlzdCgpKQorICAgICAg
ICByZXR1cm4gRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0OjpjcmVhdGUoZG93bmNhc3Q8Q1NTVmFs
dWVMaXN0PigqdGhpcykpOworICAgIHJldHVybiBEZXByZWNhdGVkQ1NTT01Db21wbGV4VmFsdWU6
OmNyZWF0ZSgqdGhpcyk7CiB9CiAKIGJvb2wgQ1NTVmFsdWU6OnRyZWF0QXNJbmhlcml0ZWRWYWx1
ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUu
aAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDE1ICszMiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIENTU0N1c3RvbVByb3BlcnR5VmFsdWU7CiBjbGFzcyBDYWNoZWRSZXNvdXJjZTsKK2NsYXNz
IERlcHJlY2F0ZWRDU1NPTVZhbHVlOwogY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwogCiBlbnVt
IENTU1Byb3BlcnR5SUQgOiB1aW50MTZfdDsKIAotLy8gRklYTUU6IFRoZSBjdXJyZW50IENTU1Zh
bHVlIGFuZCBzdWJjbGFzc2VzIHNob3VsZCBiZSB0dXJuZWQgaW50byBpbnRlcm5hbCB0eXBlcyAo
U3R5bGVWYWx1ZSkuCi0vLyBUaGUgZmV3IHN1YnR5cGVzIHRoYXQgYXJlIGFjdHVhbGx5IGV4cG9z
ZWQgaW4gQ1NTT00gY2FuIGJlIHNlZW4gaW4gdGhlIGNsb25lRm9yQ1NTT00oKSBmdW5jdGlvbi4K
LS8vIFRoZXkgc2hvdWxkIGJlIGhhbmRsZWQgYnkgc2VwYXJhdGUgd3JhcHBlciBjbGFzc2VzLgot
Ci0vLyBQbGVhc2UgZG9uJ3QgZXhwb3NlIG1vcmUgQ1NTVmFsdWUgdHlwZXMgdG8gdGhlIHdlYi4K
IGNsYXNzIENTU1ZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8Q1NTVmFsdWU+IHsKIHB1YmxpYzoK
ICAgICBlbnVtIFR5cGUgewpAQCAtNjEsMTEgKzU3LDggQEAgcHVibGljOgogICAgICAgICAgICAg
ZGVzdHJveSgpOwogICAgIH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIFR5cGUgY3NzVmFsdWVUeXBl
KCkgY29uc3Q7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0Owot
Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q3NzVGV4dChjb25zdCBTdHJpbmcmKSB7IHJldHVy
biB7IH07IH0gLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZC4KKyAgICBUeXBlIGNzc1ZhbHVlVHlw
ZSgpIGNvbnN0OworICAgIFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CiAKICAgICBib29sIGlzUHJp
bWl0aXZlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBQcmltaXRpdmVDbGFz
czsgfQogICAgIGJvb2wgaXNWYWx1ZUxpc3QoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA+
PSBWYWx1ZUxpc3RDbGFzczsgfQpAQCAtMTI2LDEzICsxMTksNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgYm9vbCBoYXNWYXJpYWJsZVJlZmVyZW5jZXMoKSBjb25zdCB7IHJldHVybiBpc1ZhcmlhYmxl
UmVmZXJlbmNlVmFsdWUoKSB8fCBpc1BlbmRpbmdTdWJzdGl0dXRpb25WYWx1ZSgpOyB9CiAKLSAg
ICBib29sIGlzQ1NTT01TYWZlKCkgY29uc3QgeyByZXR1cm4gbV9pc0NTU09NU2FmZTsgfQotICAg
IGJvb2wgaXNTdWJ0eXBlRXhwb3NlZFRvQ1NTT00oKSBjb25zdAotICAgIHsgCi0gICAgICAgIHJl
dHVybiBpc1ByaW1pdGl2ZVZhbHVlKCkgfHwgaXNWYWx1ZUxpc3QoKTsKLSAgICB9Ci0KLSAgICBS
ZWZQdHI8Q1NTVmFsdWU+IGNsb25lRm9yQ1NTT00oKSBjb25zdDsKKyAgICBSZWY8RGVwcmVjYXRl
ZENTU09NVmFsdWU+IGNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIoKSBjb25zdDsKIAogICAg
IGJvb2wgdHJhdmVyc2VTdWJyZXNvdXJjZXMoY29uc3Qgc3RkOjpmdW5jdGlvbjxib29sIChjb25z
dCBDYWNoZWRSZXNvdXJjZSYpPiYgaGFuZGxlcikgY29uc3Q7CiAKQEAgLTIxMCw2ICsxOTcsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIERvIG5vdCBhcHBlbmQgbm9uLWxpc3QgY2xhc3MgdHlw
ZXMgaGVyZS4KICAgICB9OwogCitwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBWYWx1
ZUxpc3RTZXBhcmF0b3JCaXRzID0gMjsKICAgICBlbnVtIFZhbHVlTGlzdFNlcGFyYXRvciB7CiAg
ICAgICAgIFNwYWNlU2VwYXJhdG9yLApAQCAtMjE3LDEyICsyMDUsMTEgQEAgcHJvdGVjdGVkOgog
ICAgICAgICBTbGFzaFNlcGFyYXRvcgogICAgIH07CiAKK3Byb3RlY3RlZDoKICAgICBDbGFzc1R5
cGUgY2xhc3NUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q2xhc3NUeXBlPihtX2Ns
YXNzVHlwZSk7IH0KIAotICAgIGV4cGxpY2l0IENTU1ZhbHVlKENsYXNzVHlwZSBjbGFzc1R5cGUs
IGJvb2wgaXNDU1NPTVNhZmUgPSBmYWxzZSkKLSAgICAgICAgOiBtX2lzQ1NTT01TYWZlKGlzQ1NT
T01TYWZlKQotICAgICAgICAsIG1faXNUZXh0Q2xvbmUoZmFsc2UpCi0gICAgICAgICwgbV9wcmlt
aXRpdmVVbml0VHlwZSgwKQorICAgIGV4cGxpY2l0IENTU1ZhbHVlKENsYXNzVHlwZSBjbGFzc1R5
cGUpCisgICAgICAgIDogbV9wcmltaXRpdmVVbml0VHlwZSgwKQogICAgICAgICAsIG1faGFzQ2Fj
aGVkQ1NTVGV4dChmYWxzZSkKICAgICAgICAgLCBtX2lzUXVpcmtWYWx1ZShmYWxzZSkKICAgICAg
ICAgLCBtX3ZhbHVlTGlzdFNlcGFyYXRvcihTcGFjZVNlcGFyYXRvcikKQEAgLTIzOSw4ICsyMjYs
NiBAQCBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVzdHJveSgpOwogCiBwcm90
ZWN0ZWQ6Ci0gICAgdW5zaWduZWQgbV9pc0NTU09NU2FmZSA6IDE7Ci0gICAgdW5zaWduZWQgbV9p
c1RleHRDbG9uZSA6IDE7CiAgICAgLy8gVGhlIGJpdHMgaW4gdGhpcyBzZWN0aW9uIGFyZSBvbmx5
IHVzZWQgYnkgc3BlY2lmaWMgc3ViY2xhc3NlcyBidXQga2VwdCBoZXJlCiAgICAgLy8gdG8gbWF4
aW1pemUgc3RydWN0IHBhY2tpbmcuCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmlkbAkocmV2
aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmlkbAkobm9uZXhp
c3RlbnQpCkBAIC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcs
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
Ci0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi1bCi0gICAgQ3VzdG9tSXNS
ZWFjaGFibGUsCi0gICAgQ3VzdG9tVG9KU09iamVjdCwKLSAgICBFeHBvcnRUb1dyYXBwZWRGdW5j
dGlvbiwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotICAgIEpTQ3VzdG9tRmluYWxp
emUsCi1dIGludGVyZmFjZSBDU1NWYWx1ZSB7Ci0gICAgLy8gVW5pdFR5cGVzCi0gICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgQ1NTX0lOSEVSSVQgPSAwOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IENTU19QUklNSVRJVkVfVkFMVUUgPSAxOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19W
QUxVRV9MSVNUID0gMjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfQ1VTVE9NID0gMzsK
LQotICAgIFtTZXR0ZXJNYXlUaHJvd0V4Y2VwdGlvbl0gYXR0cmlidXRlIERPTVN0cmluZz8gY3Nz
VGV4dDsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBjc3NWYWx1ZVR5
cGU7Ci19OwoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
LmlkbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0
aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUxpc3QuY3BwCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1
ZGUgIkNTU0N1c3RvbVByb3BlcnR5VmFsdWUuaCIKICNpbmNsdWRlICJDU1NGdW5jdGlvblZhbHVl
LmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVk
Q1NTT01WYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMTQ0LDE4ICsxNDUsNCBAQCBib29sIENTU1ZhbHVlTGlzdDo6
dHJhdmVyc2VTdWJyZXNvdXJjZXMoCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1DU1NWYWx1ZUxp
c3Q6OkNTU1ZhbHVlTGlzdChjb25zdCBDU1NWYWx1ZUxpc3QmIGNsb25lRnJvbSkKLSAgICA6IENT
U1ZhbHVlKGNsb25lRnJvbS5jbGFzc1R5cGUoKSwgLyogaXNDU1NPTVNhZmUgKi8gdHJ1ZSkKLXsK
LSAgICBtX3ZhbHVlTGlzdFNlcGFyYXRvciA9IGNsb25lRnJvbS5tX3ZhbHVlTGlzdFNlcGFyYXRv
cjsKLSAgICBtX3ZhbHVlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNsb25lRnJvbS5tX3ZhbHVl
cy5zaXplKCkpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDAsIHNpemUgPSBjbG9uZUZyb20ubV92
YWx1ZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBtX3ZhbHVlcy51bmNoZWNrZWRB
cHBlbmQoKmNsb25lRnJvbS5tX3ZhbHVlc1tpXS0+Y2xvbmVGb3JDU1NPTSgpKTsKLX0KLQotUmVm
PENTU1ZhbHVlTGlzdD4gQ1NTVmFsdWVMaXN0OjpjbG9uZUZvckNTU09NKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NWYWx1ZUxpc3QoKnRoaXMpKTsKLX0KLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuaAkocmV2aXNp
b24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC02OSwxMiArNjksMTEgQEAgcHVibGljOgogICAgIGJvb2wgZXF1YWxzKGNvbnN0
IENTU1ZhbHVlJikgY29uc3Q7CiAKICAgICBib29sIHRyYXZlcnNlU3VicmVzb3VyY2VzKGNvbnN0
IHN0ZDo6ZnVuY3Rpb248Ym9vbCAoY29uc3QgQ2FjaGVkUmVzb3VyY2UmKT4mIGhhbmRsZXIpIGNv
bnN0OwotICAgIAotICAgIFJlZjxDU1NWYWx1ZUxpc3Q+IGNsb25lRm9yQ1NTT00oKSBjb25zdDsK
KworICAgIHVuc2lnbmVkIHNlcGFyYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWVMaXN0U2Vw
YXJhdG9yOyB9CiAKIHByb3RlY3RlZDoKICAgICBDU1NWYWx1ZUxpc3QoQ2xhc3NUeXBlLCBWYWx1
ZUxpc3RTZXBhcmF0b3IpOwotICAgIENTU1ZhbHVlTGlzdChjb25zdCBDU1NWYWx1ZUxpc3QmIGNs
b25lRnJvbSk7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ1NTVmFsdWVMaXN0KFZhbHVlTGlz
dFNlcGFyYXRvcik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmlkbAkocmV2aXNp
b24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5pZGwJKG5vbmV4
aXN0ZW50KQpAQCAtMSwzMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0vLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotWwot
ICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCi1dIGludGVyZmFjZSBDU1NWYWx1ZUxpc3Qg
OiBDU1NWYWx1ZSB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3Ro
OwotICAgIGdldHRlciBDU1NWYWx1ZSBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwotfTsKLQoK
UHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5pZGwK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q291bnRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVyLmgJKHJl
dmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDYgKzM2LDEwIEBAIHB1YmxpYzoKICAgICBTdHJpbmcgbGlzdFN0eWxlKCkg
Y29uc3QgeyByZXR1cm4gbV9saXN0U3R5bGUtPnN0cmluZ1ZhbHVlKCk7IH0KICAgICBTdHJpbmcg
c2VwYXJhdG9yKCkgY29uc3QgeyByZXR1cm4gbV9zZXBhcmF0b3ItPnN0cmluZ1ZhbHVlKCk7IH0K
IAorICAgIGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlJiBpZGVudGlmaWVyVmFsdWUoKSBjb25zdCB7
IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICBjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYgbGlz
dFN0eWxlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2xpc3RTdHlsZTsgfQorICAgIGNvbnN0IENT
U1ByaW1pdGl2ZVZhbHVlJiBzZXBhcmF0b3JWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VwYXJh
dG9yOyB9CisgICAgCiAgICAgQ1NTVmFsdWVJRCBsaXN0U3R5bGVJZGVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fbGlzdFN0eWxlLT52YWx1ZUlEKCk7IH0KIAogICAgIHZvaWQgc2V0SWRlbnRpZmllcihS
ZWY8Q1NTUHJpbWl0aXZlVmFsdWU+JiYgaWRlbnRpZmllcikgeyBtX2lkZW50aWZpZXIgPSBXVEZN
b3ZlKGlkZW50aWZpZXIpOyB9CkBAIC00OCwxMSArNTIsNiBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICAmJiBsaXN0U3R5bGUoKSA9PSBvdGhlci5saXN0U3R5bGUoKQogICAgICAgICAgICAgJiYgc2Vw
YXJhdG9yKCkgPT0gb3RoZXIuc2VwYXJhdG9yKCk7CiAgICAgfQotICAgIAotICAgIFJlZjxDb3Vu
dGVyPiBjbG9uZUZvckNTU09NKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBjcmVhdGUo
bV9pZGVudGlmaWVyLT5jbG9uZUZvckNTU09NKCksIG1fbGlzdFN0eWxlLT5jbG9uZUZvckNTU09N
KCksIG1fc2VwYXJhdG9yLT5jbG9uZUZvckNTU09NKCkpOwotICAgIH0KIAogcHJpdmF0ZToKICAg
ICBDb3VudGVyKFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4mJiBpZGVudGlmaWVyLCBSZWY8Q1NTUHJp
bWl0aXZlVmFsdWU+JiYgbGlzdFN0eWxlLCBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+JiYgc2VwYXJh
dG9yKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NvdW50ZXIuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVyLmlkbAkocmV2aXNpb24gMjA5OTMyKQorKysgU291
cmNlL1dlYkNvcmUvY3NzL0NvdW50ZXIuaWRsCShub25leGlzdGVudCkKQEAgLTEsMjcgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgotICovCi0KLVsKLSAgICBFeHBvcnRUb1dyYXBwZWRGdW5jdGlvbiwKLSAgICBJbXBsZW1lbnRh
dGlvbkxhY2tzVlRhYmxlLAotXSBpbnRlcmZhY2UgQ291bnRlciB7Ci0gICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBpZGVudGlmaWVyOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgbGlzdFN0eWxlOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2VwYXJh
dG9yOwotfTsKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVy
LmlkbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0
aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkQ1NTT01Db3VudGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NQ291bnRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvdW50ZXIuaCIKKyNpbmNsdWRlICJEZXByZWNh
dGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRGVwcmVjYXRlZENTU09NQ291bnRlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERl
cHJlY2F0ZWRDU1NPTUNvdW50ZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERlcHJlY2F0
ZWRDU1NPTUNvdW50ZXI+IGNyZWF0ZShjb25zdCBDb3VudGVyJiBjb3VudGVyKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIoY291bnRlcikpOyB9CisKKyAgICBT
dHJpbmcgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllci0+c3RyaW5nVmFs
dWUoKTsgfQorICAgIFN0cmluZyBsaXN0U3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2xpc3RTdHls
ZS0+c3RyaW5nVmFsdWUoKTsgfQorICAgIFN0cmluZyBzZXBhcmF0b3IoKSBjb25zdCB7IHJldHVy
biBtX3NlcGFyYXRvci0+c3RyaW5nVmFsdWUoKTsgfQorICAgIAorcHJpdmF0ZToKKyAgICBEZXBy
ZWNhdGVkQ1NTT01Db3VudGVyKGNvbnN0IENvdW50ZXImIGNvdW50ZXIpCisgICAgICAgIDogbV9p
ZGVudGlmaWVyKGNvdW50ZXIuaWRlbnRpZmllclZhbHVlKCkuY3JlYXRlRGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlV3JhcHBlcigpKQorICAgICAgICAsIG1fbGlzdFN0eWxlKGNvdW50ZXIubGlzdFN0
eWxlVmFsdWUoKS5jcmVhdGVEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVXcmFwcGVyKCkpCisgICAg
ICAgICwgbV9zZXBhcmF0b3IoY291bnRlci5zZXBhcmF0b3JWYWx1ZSgpLmNyZWF0ZURlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVdyYXBwZXIoKSkKKyAgICB7CisgICAgfQorICAgIAorICAgIFJlZjxE
ZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gbV9pZGVudGlmaWVyOworICAgIFJlZjxEZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gbV9saXN0U3R5bGU7CisgICAgUmVmPERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPiBtX3NlcGFyYXRvcjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Db3VudGVy
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NQ291
bnRlci5pZGwJKHJldmlzaW9uIDIwOTkzMikJKGZyb20gU291cmNlL1dlYkNvcmUvY3NzL0NvdW50
ZXIuaWRsOjIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Db3Vu
dGVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworWworICAgIEV4
cG9ydFRvV3JhcHBlZEZ1bmN0aW9uLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCitd
IGludGVyZmFjZSBDb3VudGVyIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlk
ZW50aWZpZXI7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsaXN0U3R5bGU7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzZXBhcmF0b3I7Cit9OwpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Db3VudGVyLmlkbAkocmV2aXNpb24g
MjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yMCw3ICsyMCw4IEBACiBbCiAgICAgRXhwb3J0VG9XcmFwcGVk
RnVuY3Rpb24sCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLV0gaW50ZXJmYWNlIENv
dW50ZXIgeworICAgIEludGVyZmFjZU5hbWU9Q291bnRlcgorXSBpbnRlcmZhY2UgRGVwcmVjYXRl
ZENTU09NQ291bnRlciB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBpZGVudGlm
aWVyOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGlzdFN0eWxlOwogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2VwYXJhdG9yOwpJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuY3BwCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVW
YWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIgorCisjaW5jbHVkZSAiRGVwcmVj
YXRlZENTU09NQ291bnRlci5oIgorI2luY2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmgi
CisjaW5jbHVkZSAiRGVwcmVjYXRlZENTU09NUmVjdC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorLy8gRklYTUU6IEZvciBub3cgdGhl
c2Ugc3RpbGwgY2FsbCBpbnRvIENTU1ByaW1pdGl2ZVZhbHVlLCBidXQgYXMgd2UgcmVmYWN0b3Ig
aW50byBzdWJjbGFzc2VzCisvLyBzdWNoIGFzIFN0eWxlQ291bnRlclZhbHVlLCBTdHlsZVJlY3RW
YWx1ZSwgYW5kIFN0eWxlQ29sb3JWYWx1ZSwgdGhlc2UgbWV0aG9kcyB3aWxsIGdldAorLy8gbW9y
ZSBjb21wbGljYXRlZC4KKworRXhjZXB0aW9uT3I8UmVmPERlcHJlY2F0ZWRDU1NPTUNvdW50ZXI+
PiBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZTo6Z2V0Q291bnRlclZhbHVlKCkgY29uc3QK
K3sKKyAgICBFeGNlcHRpb25PcjxDb3VudGVyJj4gY291bnRlciA9IG1fdmFsdWUtPmdldENvdW50
ZXJWYWx1ZSgpOworICAgIGlmIChjb3VudGVyLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07CisgICAgcmV0dXJuIERlcHJlY2F0
ZWRDU1NPTUNvdW50ZXI6OmNyZWF0ZShjb3VudGVyLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKK30K
KyAgICAKK0V4Y2VwdGlvbk9yPFJlZjxEZXByZWNhdGVkQ1NTT01SZWN0Pj4gRGVwcmVjYXRlZENT
U09NUHJpbWl0aXZlVmFsdWU6OmdldFJlY3RWYWx1ZSgpIGNvbnN0Cit7CisgICAgRXhjZXB0aW9u
T3I8UmVjdCY+IHJlY3QgPSBtX3ZhbHVlLT5nZXRSZWN0VmFsdWUoKTsKKyAgICBpZiAocmVjdC5o
YXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNT
X0VSUiB9OworICAgIHJldHVybiBEZXByZWNhdGVkQ1NTT01SZWN0OjpjcmVhdGUocmVjdC5yZWxl
YXNlUmV0dXJuVmFsdWUoKSk7Cit9CisKK0V4Y2VwdGlvbk9yPFJlZjxEZXByZWNhdGVkQ1NTT01S
R0JDb2xvcj4+IERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlOjpnZXRSR0JDb2xvclZhbHVl
KCkgY29uc3QKK3sKKyAgICBFeGNlcHRpb25PcjxSZWY8UkdCQ29sb3I+PiBjb2xvciA9IG1fdmFs
dWUtPmdldFJHQkNvbG9yVmFsdWUoKTsKKyAgICBpZiAoY29sb3IuaGFzRXhjZXB0aW9uKCkpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19FUlIgfTsKKyAgICByZXR1
cm4gRGVwcmVjYXRlZENTU09NUkdCQ29sb3I6OmNyZWF0ZShjb2xvci5yZWxlYXNlUmV0dXJuVmFs
dWUoKSk7Cit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01Q
cmltaXRpdmVWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNh
dGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1
ZGUgIkRlcHJlY2F0ZWRDU1NPTVZhbHVlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRGVwcmVjYXRlZENTU09NQ291bnRlcjsKK2NsYXNzIERlcHJlY2F0ZWRDU1NPTVJHQkNvbG9y
OworY2xhc3MgRGVwcmVjYXRlZENTU09NUmVjdDsKKyAgICAKK2NsYXNzIERlcHJlY2F0ZWRDU1NP
TVByaW1pdGl2ZVZhbHVlIDogcHVibGljIERlcHJlY2F0ZWRDU1NPTVZhbHVlIHsKK3B1YmxpYzoK
KyAgICAvLyBPbmx5IGV4cG9zZSB3aGF0J3MgaW4gdGhlIElETCBmaWxlLgorICAgIGVudW0gVW5p
dFR5cGUgeworICAgICAgICBDU1NfVU5LTk9XTiA9IDAsCisgICAgICAgIENTU19OVU1CRVIgPSAx
LAorICAgICAgICBDU1NfUEVSQ0VOVEFHRSA9IDIsCisgICAgICAgIENTU19FTVMgPSAzLAorICAg
ICAgICBDU1NfRVhTID0gNCwKKyAgICAgICAgQ1NTX1BYID0gNSwKKyAgICAgICAgQ1NTX0NNID0g
NiwKKyAgICAgICAgQ1NTX01NID0gNywKKyAgICAgICAgQ1NTX0lOID0gOCwKKyAgICAgICAgQ1NT
X1BUID0gOSwKKyAgICAgICAgQ1NTX1BDID0gMTAsCisgICAgICAgIENTU19ERUcgPSAxMSwKKyAg
ICAgICAgQ1NTX1JBRCA9IDEyLAorICAgICAgICBDU1NfR1JBRCA9IDEzLAorICAgICAgICBDU1Nf
TVMgPSAxNCwKKyAgICAgICAgQ1NTX1MgPSAxNSwKKyAgICAgICAgQ1NTX0haID0gMTYsCisgICAg
ICAgIENTU19LSFogPSAxNywKKyAgICAgICAgQ1NTX0RJTUVOU0lPTiA9IDE4LAorICAgICAgICBD
U1NfU1RSSU5HID0gMTksCisgICAgICAgIENTU19VUkkgPSAyMCwKKyAgICAgICAgQ1NTX0lERU5U
ID0gMjEsCisgICAgICAgIENTU19BVFRSID0gMjIsCisgICAgICAgIENTU19DT1VOVEVSID0gMjMs
CisgICAgICAgIENTU19SRUNUID0gMjQsCisgICAgICAgIENTU19SR0JDT0xPUiA9IDI1LAorICAg
ICAgICBDU1NfVlcgPSAyNiwKKyAgICAgICAgQ1NTX1ZIID0gMjcsCisgICAgICAgIENTU19WTUlO
ID0gMjgsCisgICAgICAgIENTU19WTUFYID0gMjkKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxE
ZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gY3JlYXRlKGNvbnN0IENTU1ByaW1pdGl2ZVZh
bHVlJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKHZhbHVlKSk7CisgICAgfQorCisgICAgYm9vbCBlcXVhbHMo
Y29uc3QgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVy
biBtX3ZhbHVlLT5lcXVhbHMob3RoZXIubV92YWx1ZSk7IH0KKyAgICB1bnNpZ25lZCBjc3NWYWx1
ZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLT5jc3NWYWx1ZVR5cGUoKTsgfQorICAgIFN0
cmluZyBjc3NUZXh0KCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS0+Y3NzVGV4dCgpOyB9CisgICAg
CisgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkgdGhlc2Ugd2lsbCBjb250YWluIG1vcmUgY29kZSBh
bmQgbm90IGp1c3QgY2FsbCB0aHJvdWdoIHRvCisgICAgLy8gQ1NTUHJpbWl0aXZlVmFsdWUuCisg
ICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgc2hvcnQgcHJpbWl0aXZlVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdmFsdWUtPnByaW1pdGl2ZVR5cGUoKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldEZsb2F0VmFsdWUodW5zaWduZWQgc2hvcnQgdW5pdFR5cGUsIGRv
dWJsZSBmbG9hdFZhbHVlKSB7IHJldHVybiBtX3ZhbHVlLT5zZXRGbG9hdFZhbHVlKHVuaXRUeXBl
LCBmbG9hdFZhbHVlKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPGZsb2F0PiBn
ZXRGbG9hdFZhbHVlKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlLT5nZXRGbG9hdFZhbHVlKHVuaXRUeXBlKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldFN0cmluZ1ZhbHVlKHVuc2lnbmVkIHNob3J0IHN0cmluZ1R5cGUsIGNv
bnN0IFN0cmluZyYgc3RyaW5nVmFsdWUpIHsgcmV0dXJuIG1fdmFsdWUtPnNldFN0cmluZ1ZhbHVl
KHN0cmluZ1R5cGUsIHN0cmluZ1ZhbHVlKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlv
bk9yPFN0cmluZz4gZ2V0U3RyaW5nVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLT5nZXRT
dHJpbmdWYWx1ZSgpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8UmVmPERlcHJl
Y2F0ZWRDU1NPTUNvdW50ZXI+PiBnZXRDb3VudGVyVmFsdWUoKSBjb25zdDsKKyAgICBXRUJDT1JF
X0VYUE9SVCBFeGNlcHRpb25PcjxSZWY8RGVwcmVjYXRlZENTU09NUmVjdD4+IGdldFJlY3RWYWx1
ZSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFJlZjxEZXByZWNhdGVk
Q1NTT01SR0JDb2xvcj4+IGdldFJHQkNvbG9yVmFsdWUoKSBjb25zdDsKKworICAgIFN0cmluZyBz
dHJpbmdWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUtPnN0cmluZ1ZhbHVlKCk7IH0KKwor
cHJvdGVjdGVkOgorICAgIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKGNvbnN0IENTU1By
aW1pdGl2ZVZhbHVlJiB2YWx1ZSkKKyAgICAgICAgOiBEZXByZWNhdGVkQ1NTT01WYWx1ZShEZXBy
ZWNhdGVkUHJpbWl0aXZlVmFsdWVDbGFzcykKKyAgICAgICAgLCBtX3ZhbHVlKGNvbnN0X2Nhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWUmPih2YWx1ZSkpCisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fdmFsdWU7Cit9OworICAgIAorfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NTU09NX1ZBTFVFKERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLCBpc1ByaW1pdGl2ZVZhbHVlKCkpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5pZGwJ
KHJldmlzaW9uIDIwOTkzMikJKGZyb20gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlLmlkbDoyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCitb
CisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKK10gaW50ZXJmYWNlIENTU1ByaW1pdGl2
ZVZhbHVlIDogQ1NTVmFsdWUgeworICAgIC8vIFVuaXRUeXBlcworICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IENTU19VTktOT1dOID0gMDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfTlVN
QkVSID0gMTsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUEVSQ0VOVEFHRSA9IDI7Cisg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0VNUyA9IDM7CisgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgQ1NTX0VYUyA9IDQ7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1BYID0gNTsK
KyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfQ00gPSA2OworICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IENTU19NTSA9IDc7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0lOID0gODsK
KyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUFQgPSA5OworICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IENTU19QQyA9IDEwOworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19ERUcgPSAx
MTsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUkFEID0gMTI7CisgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgQ1NTX0dSQUQgPSAxMzsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1Nf
TVMgPSAxNDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUyA9IDE1OworICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IENTU19IWiA9IDE2OworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENT
U19LSFogPSAxNzsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfRElNRU5TSU9OID0gMTg7
CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX1NUUklORyA9IDE5OworICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IENTU19VUkkgPSAyMDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1Nf
SURFTlQgPSAyMTsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfQVRUUiA9IDIyOworICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19DT1VOVEVSID0gMjM7CisgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgQ1NTX1JFQ1QgPSAyNDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUkdC
Q09MT1IgPSAyNTsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVlcgPSAyNjsKKyAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVkggPSAyNzsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBDU1NfVk1JTiA9IDI4OworICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19WTUFYID0gMjk7
CisgICAgCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHByaW1pdGl2ZVR5
cGU7CisKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgc2V0RmxvYXRWYWx1ZShvcHRpb25h
bCB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSA9IDAsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9h
dCBmbG9hdFZhbHVlID0gTmFOKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVucmVzdHJpY3Rl
ZCBmbG9hdCBnZXRGbG9hdFZhbHVlKG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlID0g
MCk7CisKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgc2V0U3RyaW5nVmFsdWUob3B0aW9u
YWwgdW5zaWduZWQgc2hvcnQgc3RyaW5nVHlwZSA9IDAsIG9wdGlvbmFsIERPTVN0cmluZyBzdHJp
bmdWYWx1ZSk7CisgICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgZ2V0U3RyaW5nVmFs
dWUoKTsKKworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gQ291bnRlciBnZXRDb3VudGVyVmFsdWUo
KTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFJlY3QgZ2V0UmVjdFZhbHVlKCk7CisgICAgW01h
eVRocm93RXhjZXB0aW9uXSBSR0JDb2xvciBnZXRSR0JDb2xvclZhbHVlKCk7Cit9OwpJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFs
dWUuaWRsCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZENTU09NUHJpbWl0aXZlVmFsdWUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw4IEBA
CiAKIFsKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotXSBpbnRlcmZhY2UgQ1NTUHJp
bWl0aXZlVmFsdWUgOiBDU1NWYWx1ZSB7CisgICAgSW50ZXJmYWNlTmFtZT1DU1NQcmltaXRpdmVW
YWx1ZQorXSBpbnRlcmZhY2UgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUgOiBEZXByZWNh
dGVkQ1NTT01WYWx1ZSB7CiAgICAgLy8gVW5pdFR5cGVzCiAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgQ1NTX1VOS05PV04gPSAwOwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19OVU1CRVIg
PSAxOwpAQCAtNjAsNyArNjEsNyBAQAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBzZXRT
dHJpbmdWYWx1ZShvcHRpb25hbCB1bnNpZ25lZCBzaG9ydCBzdHJpbmdUeXBlID0gMCwgb3B0aW9u
YWwgRE9NU3RyaW5nIHN0cmluZ1ZhbHVlKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVN0
cmluZyBnZXRTdHJpbmdWYWx1ZSgpOwogCi0gICAgW01heVRocm93RXhjZXB0aW9uXSBDb3VudGVy
IGdldENvdW50ZXJWYWx1ZSgpOwotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gUmVjdCBnZXRSZWN0
VmFsdWUoKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIFJHQkNvbG9yIGdldFJHQkNvbG9yVmFs
dWUoKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERlcHJlY2F0ZWRDU1NPTUNvdW50ZXIgZ2V0
Q291bnRlclZhbHVlKCk7CisgICAgW01heVRocm93RXhjZXB0aW9uXSBEZXByZWNhdGVkQ1NTT01S
ZWN0IGdldFJlY3RWYWx1ZSgpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRGVwcmVjYXRlZENT
U09NUkdCQ29sb3IgZ2V0UkdCQ29sb3JWYWx1ZSgpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMyBMYXJzIEtub2xs
IChrbm9sbEBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgIlJHQkNv
bG9yLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXByZWNhdGVkQ1NT
T01SR0JDb2xvciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERlcHJlY2F0ZWRDU1NPTVJHQkNv
bG9yPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEZXByZWNhdGVkQ1NTT01SR0JDb2xvcj4g
Y3JlYXRlKGNvbnN0IFJHQkNvbG9yJiBjb2xvcikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZXBy
ZWNhdGVkQ1NTT01SR0JDb2xvcihjb2xvcikpOyB9CisKKyAgICBEZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZSogcmVkKCkgeyByZXR1cm4gbV9yZWQuZ2V0KCk7IH0KKyAgICBEZXByZWNhdGVk
Q1NTT01QcmltaXRpdmVWYWx1ZSogZ3JlZW4oKSB7IHJldHVybiBtX2dyZWVuLmdldCgpOyB9Cisg
ICAgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUqIGJsdWUoKSB7IHJldHVybiBtX2JsdWUu
Z2V0KCk7IH0KKyAgICBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZSogYWxwaGEoKSB7IHJl
dHVybiBtX2FscGhhLmdldCgpOyB9CisgICAgCisgICAgQ29sb3IgY29sb3IoKSBjb25zdCB7IHJl
dHVybiBDb2xvcihtX3JnYkNvbG9yKTsgfQorCitwcml2YXRlOgorICAgIERlcHJlY2F0ZWRDU1NP
TVJHQkNvbG9yKGNvbnN0IFJHQkNvbG9yJiBjb2xvcikKKyAgICAgICAgOiBtX3JnYkNvbG9yKGNv
bG9yLnJnYkNvbG9yKCkpCisgICAgeworICAgICAgICAvLyBSZWQKKyAgICAgICAgdW5zaWduZWQg
dmFsdWUgPSAobV9yZ2JDb2xvciA+PiAxNikgJiAweEZGOworICAgICAgICBhdXRvIHJlc3VsdCA9
IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
TlVNQkVSKTsKKyAgICAgICAgbV9yZWQgPSByZXN1bHQtPmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVBy
aW1pdGl2ZVdyYXBwZXIoKTsKKyAgICAgICAgCisgICAgICAgIC8vIEdyZWVuCisgICAgICAgIHZh
bHVlID0gKG1fcmdiQ29sb3IgPj4gOCkgJiAweEZGOworICAgICAgICByZXN1bHQgPSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7
CisgICAgICAgIG1fZ3JlZW4gPSByZXN1bHQtPmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVByaW1pdGl2
ZVdyYXBwZXIoKTsKKworICAgICAgICAvLyBCbHVlCisgICAgICAgIHZhbHVlID0gbV9yZ2JDb2xv
ciAmIDB4RkY7CisgICAgICAgIHJlc3VsdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFs
dWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKKyAgICAgICAgbV9ibHVlID0gcmVz
dWx0LT5jcmVhdGVEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVXcmFwcGVyKCk7CisgICAgICAgIAor
ICAgICAgICAvLyBBbHBoYQorICAgICAgICBmbG9hdCBhbHBoYVZhbHVlID0gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KChtX3JnYkNvbG9yID4+IDI0KSAmIDB4RkYpIC8gMHhGRjsKKyAgICAgICAgcmVzdWx0
ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShhbHBoYVZhbHVlLCBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX05VTUJFUik7CisgICAgICAgIG1fYWxwaGEgPSByZXN1bHQtPmNyZWF0ZURlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVdyYXBwZXIoKTsKKyAgICB9CisgICAgCisgICAgUkdCQTMyIG1fcmdi
Q29sb3I7CisgICAgUmVmUHRyPERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPiBtX3JlZDsK
KyAgICBSZWZQdHI8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IG1fZ3JlZW47CisgICAg
UmVmUHRyPERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPiBtX2JsdWU7CisgICAgUmVmUHRy
PERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPiBtX2FscGhhOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVJH
QkNvbG9yLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENT
U09NUkdCQ29sb3IuaWRsCShyZXZpc2lvbiAyMDk5MzIpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2Nz
cy9SR0JDb2xvci5pZGw6MjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRD
U1NPTVJHQkNvbG9yLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNv
bT4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworWworICAgIEV4cG9ydFRvV3JhcHBlZEZ1bmN0aW9uLAorICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUsCitdIGludGVyZmFjZSBSR0JDb2xvciB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IENTU1ByaW1pdGl2ZVZhbHVlIHJlZDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0
aXZlVmFsdWUgZ3JlZW47CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2ZVZhbHVl
IGJsdWU7CisKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgYWxwaGE7
Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NUkdCQ29s
b3IuaWRsCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZENTU09NUkdCQ29sb3IuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwxMCArMjEsMTEgQEAKIFsK
ICAgICBFeHBvcnRUb1dyYXBwZWRGdW5jdGlvbiwKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRh
YmxlLAotXSBpbnRlcmZhY2UgUkdCQ29sb3IgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQ
cmltaXRpdmVWYWx1ZSByZWQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2ZVZh
bHVlIGdyZWVuOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSBibHVl
OworICAgIEludGVyZmFjZU5hbWU9UkdCQ29sb3IKK10gaW50ZXJmYWNlIERlcHJlY2F0ZWRDU1NP
TVJHQkNvbG9yIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRGVwcmVjYXRlZENTU09NUHJpbWl0
aXZlVmFsdWUgcmVkOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZSBncmVlbjsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlVmFsdWUgYmx1ZTsKIAotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRp
dmVWYWx1ZSBhbHBoYTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWUgYWxwaGE7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0
ZWRDU1NPTVJlY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZENTU09NUmVjdC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNh
dGVkQ1NTT01SZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJSZWN0Lmgi
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXByZWNhdGVkQ1NTT01SZWN0
IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8RGVwcmVjYXRlZENTU09NUmVjdD4geworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8RGVwcmVjYXRlZENTU09NUmVjdD4gY3JlYXRlKGNvbnN0IFJlY3Qm
IHJlY3QpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVwcmVjYXRlZENTU09NUmVjdChyZWN0KSk7
IH0KKworICAgIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKiB0b3AoKSBjb25zdCB7IHJl
dHVybiBtX3RvcC5nZXQoKTsgfQorICAgIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlKiBy
aWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHQuZ2V0KCk7IH0KKyAgICBEZXByZWNhdGVkQ1NT
T01QcmltaXRpdmVWYWx1ZSogYm90dG9tKCkgY29uc3QgeyByZXR1cm4gbV9ib3R0b20uZ2V0KCk7
IH0KKyAgICBEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZSogbGVmdCgpIGNvbnN0IHsgcmV0
dXJuIG1fbGVmdC5nZXQoKTsgfQorICAgIAorcHJpdmF0ZToKKyAgICBEZXByZWNhdGVkQ1NTT01S
ZWN0KGNvbnN0IFJlY3QmIHJlY3QpCisgICAgeworICAgICAgICBpZiAocmVjdC50b3AoKSkKKyAg
ICAgICAgICAgIG1fdG9wID0gcmVjdC50b3AoKS0+Y3JlYXRlRGVwcmVjYXRlZENTU09NUHJpbWl0
aXZlV3JhcHBlcigpOworICAgICAgICBpZiAocmVjdC5yaWdodCgpKQorICAgICAgICAgICAgbV9y
aWdodCA9IHJlY3QucmlnaHQoKS0+Y3JlYXRlRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlV3JhcHBl
cigpOworICAgICAgICBpZiAocmVjdC5ib3R0b20oKSkKKyAgICAgICAgICAgIG1fYm90dG9tID0g
cmVjdC5ib3R0b20oKS0+Y3JlYXRlRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlV3JhcHBlcigpOwor
ICAgICAgICBpZiAocmVjdC5sZWZ0KCkpCisgICAgICAgICAgICBtX2xlZnQgPSByZWN0LmxlZnQo
KS0+Y3JlYXRlRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlV3JhcHBlcigpOworICAgIH0KKyAgICAK
KyAgICBSZWZQdHI8RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IG1fdG9wOworICAgIFJl
ZlB0cjxEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gbV9yaWdodDsKKyAgICBSZWZQdHI8
RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+IG1fYm90dG9tOworICAgIFJlZlB0cjxEZXBy
ZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4gbV9sZWZ0OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVJlY3QuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01SZWN0Lmlk
bAkocmV2aXNpb24gMjA5OTMyKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5pZGw6MjA5
OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVJlY3QuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCitbCisgICAgRXhwb3J0VG9XcmFwcGVk
RnVuY3Rpb24sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKK10gaW50ZXJmYWNlIFJl
Y3QgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSB0b3A7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2ZVZhbHVlIHJpZ2h0OworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSBib3R0b207CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIENTU1ByaW1pdGl2ZVZhbHVlIGxlZnQ7Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3Nz
L0RlcHJlY2F0ZWRDU1NPTVJlY3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01SZWN0LmlkbAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dl
YkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVJlY3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw5
ICsyMCwxMCBAQAogWwogICAgIEV4cG9ydFRvV3JhcHBlZEZ1bmN0aW9uLAogICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUsCi1dIGludGVyZmFjZSBSZWN0IHsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgdG9wOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQ
cmltaXRpdmVWYWx1ZSByaWdodDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZl
VmFsdWUgYm90dG9tOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSBs
ZWZ0OworICAgIEludGVyZmFjZU5hbWU9UmVjdAorXSBpbnRlcmZhY2UgRGVwcmVjYXRlZENTU09N
UmVjdCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZh
bHVlIHRvcDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZl
VmFsdWUgcmlnaHQ7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERlcHJlY2F0ZWRDU1NPTVByaW1p
dGl2ZVZhbHVlIGJvdHRvbTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlVmFsdWUgbGVmdDsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVj
YXRlZENTU09NVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXBy
ZWNhdGVkQ1NTT01WYWx1ZS5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvY3Nz
L0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwMyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01WYWx1ZS5oIgorCisjaW5jbHVk
ZSAiRGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVk
Q1NTT01WYWx1ZUxpc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAordGVtcGxhdGU8
Y2xhc3MgQ2hpbGRDbGFzc1R5cGU+CitpbmxpbmUgc3RhdGljIGJvb2wgY29tcGFyZUNTU09NVmFs
dWVzKGNvbnN0IERlcHJlY2F0ZWRDU1NPTVZhbHVlJiBmaXJzdCwgY29uc3QgRGVwcmVjYXRlZENT
U09NVmFsdWUmIHNlY29uZCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgQ2hpbGRD
bGFzc1R5cGUmPihmaXJzdCkuZXF1YWxzKHN0YXRpY19jYXN0PGNvbnN0IENoaWxkQ2xhc3NUeXBl
Jj4oc2Vjb25kKSk7Cit9CisKK2Jvb2wgRGVwcmVjYXRlZENTU09NVmFsdWU6OmVxdWFscyhjb25z
dCBEZXByZWNhdGVkQ1NTT01WYWx1ZSYgb3RoZXIpIGNvbnN0Cit7CisgICAgaWYgKG1fY2xhc3NU
eXBlID09IG90aGVyLm1fY2xhc3NUeXBlKSB7CisgICAgICAgIHN3aXRjaCAobV9jbGFzc1R5cGUp
IHsKKyAgICAgICAgY2FzZSBEZXByZWNhdGVkQ29tcGxleFZhbHVlQ2xhc3M6CisgICAgICAgICAg
ICByZXR1cm4gY29tcGFyZUNTU09NVmFsdWVzPERlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZT4o
KnRoaXMsIG90aGVyKTsKKyAgICAgICAgY2FzZSBEZXByZWNhdGVkUHJpbWl0aXZlVmFsdWVDbGFz
czoKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTT01WYWx1ZXM8RGVwcmVjYXRlZENTU09N
UHJpbWl0aXZlVmFsdWU+KCp0aGlzLCBvdGhlcik7CisgICAgICAgIGNhc2UgRGVwcmVjYXRlZFZh
bHVlTGlzdENsYXNzOgorICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NPTVZhbHVlczxEZXBy
ZWNhdGVkQ1NTT01WYWx1ZUxpc3Q+KCp0aGlzLCBvdGhlcik7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIERlcHJlY2F0ZWRDU1NPTVZhbHVlOjpkZXN0cm95
KCkKK3sKKyAgICBzd2l0Y2ggKGNsYXNzVHlwZSgpKSB7CisgICAgY2FzZSBEZXByZWNhdGVkQ29t
cGxleFZhbHVlQ2xhc3M6IHsKKyAgICAgICAgZGVsZXRlIGRvd25jYXN0PERlcHJlY2F0ZWRDU1NP
TUNvbXBsZXhWYWx1ZT4odGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBE
ZXByZWNhdGVkUHJpbWl0aXZlVmFsdWVDbGFzczogeworICAgICAgICBkZWxldGUgZG93bmNhc3Q8
RGVwcmVjYXRlZENTU09NUHJpbWl0aXZlVmFsdWU+KHRoaXMpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGNhc2UgRGVwcmVjYXRlZFZhbHVlTGlzdENsYXNzOiB7CisgICAgICAgIGRlbGV0
ZSBkb3duY2FzdDxEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q+KHRoaXMpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBkZWxldGUg
dGhpczsKK30KKwordW5zaWduZWQgRGVwcmVjYXRlZENTU09NVmFsdWU6OmNzc1ZhbHVlVHlwZSgp
IGNvbnN0Cit7CisgICAgc3dpdGNoIChtX2NsYXNzVHlwZSkgeworICAgIGNhc2UgRGVwcmVjYXRl
ZENvbXBsZXhWYWx1ZUNsYXNzOgorICAgICAgICByZXR1cm4gZG93bmNhc3Q8RGVwcmVjYXRlZENT
U09NQ29tcGxleFZhbHVlPigqdGhpcykuY3NzVmFsdWVUeXBlKCk7CisgICAgY2FzZSBEZXByZWNh
dGVkUHJpbWl0aXZlVmFsdWVDbGFzczoKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PERlcHJlY2F0
ZWRDU1NPTVByaW1pdGl2ZVZhbHVlPigqdGhpcykuY3NzVmFsdWVUeXBlKCk7CisgICAgY2FzZSBE
ZXByZWNhdGVkVmFsdWVMaXN0Q2xhc3M6CisgICAgICAgIHJldHVybiBkb3duY2FzdDxEZXByZWNh
dGVkQ1NTT01WYWx1ZUxpc3Q+KCp0aGlzKS5jc3NWYWx1ZVR5cGUoKTsKKyAgICB9CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIENTU19DVVNUT007Cit9CisKK1N0cmluZyBE
ZXByZWNhdGVkQ1NTT01WYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX2Ns
YXNzVHlwZSkgeworICAgIGNhc2UgRGVwcmVjYXRlZENvbXBsZXhWYWx1ZUNsYXNzOgorICAgICAg
ICByZXR1cm4gZG93bmNhc3Q8RGVwcmVjYXRlZENTU09NQ29tcGxleFZhbHVlPigqdGhpcykuY3Nz
VGV4dCgpOworICAgIGNhc2UgRGVwcmVjYXRlZFByaW1pdGl2ZVZhbHVlQ2xhc3M6CisgICAgICAg
IHJldHVybiBkb3duY2FzdDxEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmNz
c1RleHQoKTsKKyAgICBjYXNlIERlcHJlY2F0ZWRWYWx1ZUxpc3RDbGFzczoKKyAgICAgICAgcmV0
dXJuIGRvd25jYXN0PERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdD4oKnRoaXMpLmNzc1RleHQoKTsK
KyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICIiOworfQorCit9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIK
KyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERlcHJlY2F0ZWRDU1NPTVZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8RGVwcmVjYXRlZENTU09N
VmFsdWU+IHsKK3B1YmxpYzoKKyAgICAvLyBFeGFjdGx5IG1hdGNoIHRoZSBJREwuIE5vIHJlYXNv
biB0byBhZGQgYW55dGhpbmcgaWYgaXQncyBub3QgaW4gdGhlIElETC4KKyAgICBlbnVtIFR5cGUg
eworICAgICAgICBDU1NfSU5IRVJJVCA9IDAsCisgICAgICAgIENTU19QUklNSVRJVkVfVkFMVUUg
PSAxLAorICAgICAgICBDU1NfVkFMVUVfTElTVCA9IDIsCisgICAgICAgIENTU19DVVNUT00gPSAz
CisgICAgfTsKKworICAgIC8vIE92ZXJyaWRlIFJlZkNvdW50ZWQncyBkZXJlZigpIHRvIGVuc3Vy
ZSBvcGVyYXRvciBkZWxldGUgaXMgY2FsbGVkIG9uCisgICAgLy8gdGhlIGFwcHJvcHJpYXRlIHN1
YmNsYXNzIHR5cGUuCisgICAgdm9pZCBkZXJlZigpCisgICAgeworICAgICAgICBpZiAoZGVyZWZC
YXNlKCkpCisgICAgICAgICAgICBkZXN0cm95KCk7CisgICAgfQorCisgICAgV0VCQ09SRV9FWFBP
UlQgdW5zaWduZWQgY3NzVmFsdWVUeXBlKCkgY29uc3Q7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBT
dHJpbmcgY3NzVGV4dCgpIGNvbnN0OworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENzc1RleHQo
Y29uc3QgU3RyaW5nJikgeyByZXR1cm4geyB9OyB9IC8vIFdpbGwgbmV2ZXIgaW1wbGVtZW50Lgor
CisgICAgYm9vbCBlcXVhbHMoY29uc3QgRGVwcmVjYXRlZENTU09NVmFsdWUmIG90aGVyKSBjb25z
dDsKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRGVwcmVjYXRlZENTU09NVmFsdWUmIG90aGVy
KSBjb25zdCB7IHJldHVybiBlcXVhbHMob3RoZXIpOyB9CisKKyAgICBib29sIGlzQ29tcGxleFZh
bHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gRGVwcmVjYXRlZENvbXBsZXhWYWx1
ZUNsYXNzOyB9CisgICAgYm9vbCBpc1ByaW1pdGl2ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9j
bGFzc1R5cGUgPT0gRGVwcmVjYXRlZFByaW1pdGl2ZVZhbHVlQ2xhc3M7IH0KKyAgICBib29sIGlz
VmFsdWVMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gRGVwcmVjYXRlZFZhbHVl
TGlzdENsYXNzOyB9CisgICAgCitwcm90ZWN0ZWQ6CisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBD
bGFzc1R5cGVCaXRzID0gMjsKKyAgICBlbnVtIERlcHJlY2F0ZWRDbGFzc1R5cGUgeworICAgICAg
ICBEZXByZWNhdGVkQ29tcGxleFZhbHVlQ2xhc3MsCisgICAgICAgIERlcHJlY2F0ZWRQcmltaXRp
dmVWYWx1ZUNsYXNzLAorICAgICAgICBEZXByZWNhdGVkVmFsdWVMaXN0Q2xhc3MKKyAgICB9Owor
CisgICAgRGVwcmVjYXRlZENsYXNzVHlwZSBjbGFzc1R5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxEZXByZWNhdGVkQ2xhc3NUeXBlPihtX2NsYXNzVHlwZSk7IH0KKworICAgIERlcHJl
Y2F0ZWRDU1NPTVZhbHVlKERlcHJlY2F0ZWRDbGFzc1R5cGUgY2xhc3NUeXBlKQorICAgICAgICA6
IG1fY2xhc3NUeXBlKGNsYXNzVHlwZSkKKyAgICB7CisgICAgfQorCisgICAgLy8gTk9URTogVGhp
cyBjbGFzcyBpcyBub24tdmlydHVhbCBmb3IgbWVtb3J5IGFuZCBwZXJmb3JtYW5jZSByZWFzb25z
LgorICAgIC8vIERvbid0IGdvIG1ha2luZyBpdCB2aXJ0dWFsIGFnYWluIHVubGVzcyB5b3Uga25v
dyBleGFjdGx5IHdoYXQgeW91J3JlIGRvaW5nIQorICAgIH5EZXByZWNhdGVkQ1NTT01WYWx1ZSgp
IHsgfQorCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVzdHJveSgpOworCitw
cm90ZWN0ZWQ6CisgICAgdW5zaWduZWQgbV92YWx1ZUxpc3RTZXBhcmF0b3IgOiBDU1NWYWx1ZTo6
VmFsdWVMaXN0U2VwYXJhdG9yQml0czsKKworcHJpdmF0ZToKKyAgICB1bnNpZ25lZCBtX2NsYXNz
VHlwZSA6IENsYXNzVHlwZUJpdHM7IC8vIENsYXNzVHlwZQorfTsKKworY2xhc3MgRGVwcmVjYXRl
ZENTU09NQ29tcGxleFZhbHVlIDogcHVibGljIERlcHJlY2F0ZWRDU1NPTVZhbHVlIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPERlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZT4gY3JlYXRlKGNv
bnN0IENTU1ZhbHVlJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZSh2YWx1ZSkpOworICAgIH0KKworICAgIGJvb2wg
ZXF1YWxzKGNvbnN0IERlcHJlY2F0ZWRDU1NPTUNvbXBsZXhWYWx1ZSYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG1fdmFsdWUtPmVxdWFscyhvdGhlci5tX3ZhbHVlKTsgfQorICAgIFN0cmluZyBjc3NU
ZXh0KCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZS0+Y3NzVGV4dCgpOyB9CisKKyAgICB1bnNpZ25l
ZCBjc3NWYWx1ZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLT5jc3NWYWx1ZVR5cGUoKTsg
fQorCitwcm90ZWN0ZWQ6CisgICAgRGVwcmVjYXRlZENTU09NQ29tcGxleFZhbHVlKGNvbnN0IENT
U1ZhbHVlJiB2YWx1ZSkKKyAgICAgICAgOiBEZXByZWNhdGVkQ1NTT01WYWx1ZShEZXByZWNhdGVk
Q29tcGxleFZhbHVlQ2xhc3MpCisgICAgICAgICwgbV92YWx1ZShjb25zdF9jYXN0PENTU1ZhbHVl
Jj4odmFsdWUpKQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUmVmPENTU1ZhbHVlPiBt
X3ZhbHVlOworfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2RlZmluZSBTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0NTU09NX1ZBTFVFKFRvVmFsdWVUeXBlTmFtZSwgcHJlZGljYXRl
KSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlRvVmFsdWVUeXBlTmFt
ZSkgXAorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZh
bHVlJiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUucHJlZGljYXRlOyB9IFwKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfRU5EKCkKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NPTV9WQUxVRShEZXBy
ZWNhdGVkQ1NTT01Db21wbGV4VmFsdWUsIGlzQ29tcGxleFZhbHVlKCkpCisKKwpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuaWRsCShyZXZpc2lvbiAyMDk5
MzIpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5pZGw6MjA5OTMyKQorKysgU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11
ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworWworICAgIEN1c3RvbUlzUmVhY2hhYmxl
LAorICAgIEN1c3RvbVRvSlNPYmplY3QsCisgICAgRXhwb3J0VG9XcmFwcGVkRnVuY3Rpb24sCisg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBKU0N1c3RvbUZpbmFsaXplLAorXSBp
bnRlcmZhY2UgQ1NTVmFsdWUgeworICAgIC8vIFVuaXRUeXBlcworICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IENTU19JTkhFUklUID0gMDsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfUFJJ
TUlUSVZFX1ZBTFVFID0gMTsKKyAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVkFMVUVfTElT
VCA9IDI7CisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0NVU1RPTSA9IDM7CisKKyAgICBb
U2V0dGVyTWF5VGhyb3dFeGNlcHRpb25dIGF0dHJpYnV0ZSBET01TdHJpbmc/IGNzc1RleHQ7CisK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgY3NzVmFsdWVUeXBlOworfTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmlkbAkocmV2
aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVl
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsOCBAQAogICAgIEV4cG9ydFRvV3JhcHBl
ZEZ1bmN0aW9uLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCiAgICAgSlNDdXN0b21G
aW5hbGl6ZSwKLV0gaW50ZXJmYWNlIENTU1ZhbHVlIHsKKyAgICBJbnRlcmZhY2VOYW1lPUNTU1Zh
bHVlCitdIGludGVyZmFjZSBEZXByZWNhdGVkQ1NTT01WYWx1ZSB7CiAgICAgLy8gVW5pdFR5cGVz
CiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ1NTX0lOSEVSSVQgPSAwOwogICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IENTU19QUklNSVRJVkVfVkFMVUUgPSAxOwpJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVk
Q1NTT01WYWx1ZUxpc3QuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdDo6
ZXF1YWxzKGNvbnN0IERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdCYgb3RoZXIpIGNvbnN0Cit7Cisg
ICAgaWYgKG1fdmFsdWVMaXN0U2VwYXJhdG9yICE9IG90aGVyLm1fdmFsdWVMaXN0U2VwYXJhdG9y
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKG1fdmFsdWVzLnNpemUoKSAh
PSBvdGhlci5tX3ZhbHVlcy5zaXplKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBzaXplID0gbV92YWx1ZXMuc2l6ZSgpOyBpIDwgc2l6ZTsg
KytpKSB7CisgICAgICAgIGlmICghbV92YWx1ZXNbaV0uZ2V0KCkuZXF1YWxzKG90aGVyLm1fdmFs
dWVzW2ldKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK1N0cmluZyBEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q6OmNzc1RleHQoKSBjb25z
dAoreworICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OworICAgIFN0cmluZyBzZXBhcmF0b3I7Cisg
ICAgc3dpdGNoIChtX3ZhbHVlTGlzdFNlcGFyYXRvcikgeworICAgIGNhc2UgQ1NTVmFsdWU6OlNw
YWNlU2VwYXJhdG9yOgorICAgICAgICBzZXBhcmF0b3IgPSBBU0NJSUxpdGVyYWwoIiAiKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZTo6Q29tbWFTZXBhcmF0b3I6CisgICAgICAg
IHNlcGFyYXRvciA9IEFTQ0lJTGl0ZXJhbCgiLCAiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDU1NWYWx1ZTo6U2xhc2hTZXBhcmF0b3I6CisgICAgICAgIHNlcGFyYXRvciA9IEFTQ0lJTGl0
ZXJhbCgiIC8gIik7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICAKKyAgICBmb3IgKGF1dG8mIHZhbHVlIDogbV92
YWx1ZXMpIHsKKyAgICAgICAgaWYgKCFyZXN1bHQuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZChzZXBhcmF0b3IpOworICAgICAgICByZXN1bHQuYXBwZW5kKHZhbHVlLmdldCgp
LmNzc1RleHQoKSk7CisgICAgfQorICAgIAorICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
K30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlz
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1
ZUxpc3QuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENT
U09NVmFsdWVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiRGVwcmVjYXRlZENTU09NVmFsdWUuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorY2xhc3MgRGVwcmVjYXRlZENTU09NVmFsdWVM
aXN0IDogcHVibGljIERlcHJlY2F0ZWRDU1NPTVZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdD4gY3JlYXRlKGNvbnN0IENTU1ZhbHVlTGlzdCYg
dmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZXByZWNhdGVkQ1NT
T01WYWx1ZUxpc3QodmFsdWUpKTsKKyAgICB9CisgICAgCisgICAgYm9vbCBlcXVhbHMoY29uc3Qg
RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0JiBvdGhlcikgY29uc3Q7CisgICAgdW5zaWduZWQgY3Nz
VmFsdWVUeXBlKCkgY29uc3QgeyByZXR1cm4gQ1NTX1ZBTFVFX0xJU1Q7IH0KKyAgICBTdHJpbmcg
Y3NzVGV4dCgpIGNvbnN0OworICAgIAorICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVy
biBtX3ZhbHVlcy5zaXplKCk7IH0KKyAgICBEZXByZWNhdGVkQ1NTT01WYWx1ZSogaXRlbShzaXpl
X3QgaW5kZXgpIHsgcmV0dXJuIGluZGV4IDwgbV92YWx1ZXMuc2l6ZSgpID8gbV92YWx1ZXNbaW5k
ZXhdLnB0cigpIDogbnVsbHB0cjsgfQorICAgIGNvbnN0IERlcHJlY2F0ZWRDU1NPTVZhbHVlKiBp
dGVtKHNpemVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4gaW5kZXggPCBtX3ZhbHVlcy5zaXplKCkg
PyBtX3ZhbHVlc1tpbmRleF0ucHRyKCkgOiBudWxscHRyOyB9CisKK3Byb3RlY3RlZDoKKyAgICBE
ZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QoY29uc3QgQ1NTVmFsdWVMaXN0JiB2YWx1ZSkKKyAgICAg
ICAgOiBEZXByZWNhdGVkQ1NTT01WYWx1ZShEZXByZWNhdGVkVmFsdWVMaXN0Q2xhc3MpCisgICAg
eworICAgICAgICBtX3ZhbHVlTGlzdFNlcGFyYXRvciA9IHZhbHVlLnNlcGFyYXRvcigpOworICAg
ICAgICBtX3ZhbHVlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHZhbHVlLmxlbmd0aCgpKTsKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgc2l6ZSA9IHZhbHVlLmxlbmd0aCgpOyBpIDwgc2l6
ZTsgKytpKQorICAgICAgICAgICAgbV92YWx1ZXMudW5jaGVja2VkQXBwZW5kKHZhbHVlLml0ZW1X
aXRob3V0Qm91bmRzQ2hlY2soaSktPmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIoKSk7Cisg
ICAgfQorICAgIAorcHJpdmF0ZToKKyAgICBWZWN0b3I8UmVmPERlcHJlY2F0ZWRDU1NPTVZhbHVl
PiwgND4gbV92YWx1ZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfQ1NTT01fVkFMVUUoRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LCBpc1Zh
bHVlTGlzdCgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVl
TGlzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NP
TVZhbHVlTGlzdC5pZGwJKHJldmlzaW9uIDIwOTkzMikJKGZyb20gU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlTGlzdC5pZGw6MjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0
ZWRDU1NPTVZhbHVlTGlzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworLy8gSW50
cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKK1sKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxl
LAorXSBpbnRlcmZhY2UgQ1NTVmFsdWVMaXN0IDogQ1NTVmFsdWUgeworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICBnZXR0ZXIgQ1NTVmFsdWUgaXRlbSh1
bnNpZ25lZCBsb25nIGluZGV4KTsKK307CisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9EZXBy
ZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuaWRsCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMjYsOCArMjYsOSBAQAogLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKIFsKICAg
ICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotXSBpbnRlcmZhY2UgQ1NTVmFsdWVMaXN0IDog
Q1NTVmFsdWUgeworICAgIEludGVyZmFjZU5hbWU9Q1NTVmFsdWVMaXN0CitdIGludGVyZmFjZSBE
ZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QgOiBEZXByZWNhdGVkQ1NTT01WYWx1ZSB7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgIGdldHRlciBDU1NWYWx1
ZSBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIGdldHRlciBEZXByZWNhdGVkQ1NTT01W
YWx1ZSBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogfTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL0xlbmd0aFJlcGVhdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9M
ZW5ndGhSZXBlYXQuaAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0xl
bmd0aFJlcGVhdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw4ICszNiw2IEBAIGNsYXNzIExlbmd0
aFJlcGVhdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3UKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPExl
bmd0aFJlcGVhdD4gY3JlYXRlKFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGludGVydmFsKSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IExlbmd0aFJlcGVhdChpbnRlcnZhbCkpOyB9CiAKLSAgICBSZWY8TGVu
Z3RoUmVwZWF0PiBjbG9uZUZvckNTU09NKCkgY29uc3QgeyByZXR1cm4gY3JlYXRlKGludGVydmFs
KCkpOyB9Ci0KICAgICBDU1NWYWx1ZSogaW50ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX2ludGVy
dmFsLmdldCgpOyB9CiAKICAgICB2b2lkIHNldEludGVydmFsKFBhc3NSZWZQdHI8Q1NTVmFsdWU+
IGludGVydmFsKSB7IG1faW50ZXJ2YWwgPSBpbnRlcnZhbDsgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJl
dmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxl
RGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsMTkgKzE3NSwxOSBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBQcm9wZXJ0eVNldENTU1N0eWxlRGVjCiAgICAgcmV0dXJuIHsgfTsKIH0K
IAotUmVmUHRyPENTU1ZhbHVlPiBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OmdldFBy
b3BlcnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCitSZWZQdHI8RGVwcmVj
YXRlZENTU09NVmFsdWU+IFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVy
dHlDU1NWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKIHsKICAgICBpZiAoaXNDdXN0
b21Qcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKSkgewogICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+
IHZhbHVlID0gbV9wcm9wZXJ0eVNldC0+Z2V0Q3VzdG9tUHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0
eU5hbWUpOwogICAgICAgICBpZiAoIXZhbHVlKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgICAgIHJldHVybiBjbG9uZUFuZENhY2hlRm9yQ1NTT00odmFsdWUuZ2V0KCkpOworICAg
ICAgICByZXR1cm4gd3JhcEZvckRlcHJlY2F0ZWRDU1NPTSh2YWx1ZS5nZXQoKSk7CiAgICAgfQog
ICAgIAogICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCA9IGNzc1Byb3BlcnR5SUQocHJvcGVy
dHlOYW1lKTsKICAgICBpZiAoIXByb3BlcnR5SUQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgIHJldHVybiBjbG9uZUFuZENhY2hlRm9yQ1NTT00oZ2V0UHJvcGVydHlDU1NWYWx1ZUludGVy
bmFsKHByb3BlcnR5SUQpLmdldCgpKTsKKyAgICByZXR1cm4gd3JhcEZvckRlcHJlY2F0ZWRDU1NP
TShnZXRQcm9wZXJ0eUNTU1ZhbHVlSW50ZXJuYWwocHJvcGVydHlJRCkuZ2V0KCkpOwogfQogCiBT
dHJpbmcgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eVZhbHVlKGNv
bnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKQpAQCAtMzEzLDE5ICszMTMsMTkgQEAgRXhjZXB0aW9u
T3I8Ym9vbD4gUHJvcGVydHlTZXRDU1NTdHlsZURlYwogICAgIHJldHVybiBjaGFuZ2VkOwogfQog
Ci1DU1NWYWx1ZSogUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpjbG9uZUFuZENhY2hl
Rm9yQ1NTT00oQ1NTVmFsdWUqIGludGVybmFsVmFsdWUpCitEZXByZWNhdGVkQ1NTT01WYWx1ZSog
UHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjp3cmFwRm9yRGVwcmVjYXRlZENTU09NKENT
U1ZhbHVlKiBpbnRlcm5hbFZhbHVlKQogewogICAgIGlmICghaW50ZXJuYWxWYWx1ZSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKICAgICAvLyBUaGUgbWFwIGlzIGhlcmUgdG8gbWFpbnRhaW4gdGhlIG9i
amVjdCBpZGVudGl0eSBvZiB0aGUgQ1NTVmFsdWVzIG92ZXIgbXVsdGlwbGUgaW52b2NhdGlvbnMu
CiAgICAgLy8gRklYTUU6IEl0IGlzIGxpa2VseSB0aGF0IHRoZSBpZGVudGl0eSBpcyBub3QgaW1w
b3J0YW50IGZvciB3ZWIgY29tcGF0aWJpbGl0eSBhbmQgdGhpcyBjb2RlIHNob3VsZCBiZSByZW1v
dmVkLgotICAgIGlmICghbV9jc3NvbUNTU1ZhbHVlQ2xvbmVzKQotICAgICAgICBtX2Nzc29tQ1NT
VmFsdWVDbG9uZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPEhhc2hNYXA8Q1NTVmFsdWUqLCBSZWZQdHI8
Q1NTVmFsdWU+Pj4oKTsKKyAgICBpZiAoIW1fY3Nzb21WYWx1ZVdyYXBwZXJzKQorICAgICAgICBt
X2Nzc29tVmFsdWVXcmFwcGVycyA9IHN0ZDo6bWFrZV91bmlxdWU8SGFzaE1hcDxDU1NWYWx1ZSos
IFJlZlB0cjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4+PigpOwogICAgIAotICAgIFJlZlB0cjxDU1NW
YWx1ZT4mIGNsb25lZFZhbHVlID0gbV9jc3NvbUNTU1ZhbHVlQ2xvbmVzLT5hZGQoaW50ZXJuYWxW
YWx1ZSwgUmVmUHRyPENTU1ZhbHVlPigpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgUmVmUHRyPERl
cHJlY2F0ZWRDU1NPTVZhbHVlPiYgY2xvbmVkVmFsdWUgPSBtX2Nzc29tVmFsdWVXcmFwcGVycy0+
YWRkKGludGVybmFsVmFsdWUsIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4oKSkuaXRlcmF0
b3ItPnZhbHVlOwogICAgIGlmICghY2xvbmVkVmFsdWUpCi0gICAgICAgIGNsb25lZFZhbHVlID0g
aW50ZXJuYWxWYWx1ZS0+Y2xvbmVGb3JDU1NPTSgpOworICAgICAgICBjbG9uZWRWYWx1ZSA9IGlu
dGVybmFsVmFsdWUtPmNyZWF0ZURlcHJlY2F0ZWRDU1NPTVdyYXBwZXIoKTsKICAgICByZXR1cm4g
Y2xvbmVkVmFsdWUuZ2V0KCk7CiB9CiAKQEAgLTM4NCw3ICszODQsNyBAQCB2b2lkIFN0eWxlUnVs
ZUNTU1N0eWxlRGVjbGFyYXRpb246OmRpZE11CiAgICAgQVNTRVJUKG1fcGFyZW50UnVsZS0+cGFy
ZW50U3R5bGVTaGVldCgpKTsKIAogICAgIGlmICh0eXBlID09IFByb3BlcnR5Q2hhbmdlZCkKLSAg
ICAgICAgbV9jc3NvbUNTU1ZhbHVlQ2xvbmVzID0gbnVsbHB0cjsKKyAgICAgICAgbV9jc3NvbVZh
bHVlV3JhcHBlcnMgPSBudWxscHRyOwogCiAgICAgLy8gU3R5bGUgc2hlZXQgbXV0YXRpb24gbmVl
ZHMgdG8gYmUgc2lnbmFsZWQgZXZlbiBpZiB0aGUgY2hhbmdlIGZhaWxlZC4gd2lsbE11dGF0ZSov
ZGlkTXV0YXRlKiBtdXN0IHBhaXIuCiAgICAgbV9wYXJlbnRSdWxlLT5wYXJlbnRTdHlsZVNoZWV0
KCktPmRpZE11dGF0ZVJ1bGVGcm9tQ1NTU3R5bGVEZWNsYXJhdGlvbigpOwpAQCAtNDE2LDcgKzQx
Niw3IEBAIHZvaWQgSW5saW5lQ1NTU3R5bGVEZWNsYXJhdGlvbjo6ZGlkTXV0YXQKICAgICBpZiAo
dHlwZSA9PSBOb0NoYW5nZXMpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY3Nzb21DU1NWYWx1
ZUNsb25lcyA9IG51bGxwdHI7CisgICAgbV9jc3NvbVZhbHVlV3JhcHBlcnMgPSBudWxscHRyOwog
CiAgICAgaWYgKCFtX3BhcmVudEVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgJ
KHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0
eWxlRGVjbGFyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBDU1NSdWxlOwogY2xhc3MgQ1NTUHJvcGVydHk7CiBjbGFzcyBD
U1NWYWx1ZTsKK2NsYXNzIERlcHJlY2F0ZWRDU1NPTVZhbHVlOwogY2xhc3MgTXV0YWJsZVN0eWxl
UHJvcGVydGllczsKIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKIGNsYXNzIFN0eWxlZEVsZW1l
bnQ7CkBAIC01NCw3ICs1NSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIENTU1BhcnNlckNv
bnRleHQgY3NzUGFyc2VyQ29udGV4dCgpIGNvbnN0OwogCiAgICAgTXV0YWJsZVN0eWxlUHJvcGVy
dGllcyogbV9wcm9wZXJ0eVNldDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFzaE1hcDxDU1NWYWx1
ZSosIFJlZlB0cjxDU1NWYWx1ZT4+PiBtX2Nzc29tQ1NTVmFsdWVDbG9uZXM7CisgICAgc3RkOjp1
bmlxdWVfcHRyPEhhc2hNYXA8Q1NTVmFsdWUqLCBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+
Pj4gbV9jc3NvbVZhbHVlV3JhcHBlcnM7CiAKIHByaXZhdGU6CiAgICAgdm9pZCByZWYoKSBvdmVy
cmlkZTsKQEAgLTYzLDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBDU1NSdWxlKiBwYXJlbnRSdWxl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHVuc2lnbmVkIGxlbmd0
aCgpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBm
aW5hbDsKLSAgICBSZWZQdHI8Q1NTVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOworICAgIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01WYWx1
ZT4gZ2V0UHJvcGVydHlDU1NWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7
CiAgICAgU3RyaW5nIGdldFByb3BlcnR5VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUp
IGZpbmFsOwogICAgIFN0cmluZyBnZXRQcm9wZXJ0eVByaW9yaXR5KGNvbnN0IFN0cmluZyYgcHJv
cGVydHlOYW1lKSBmaW5hbDsKICAgICBTdHJpbmcgZ2V0UHJvcGVydHlTaG9ydGhhbmQoY29uc3Qg
U3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOwpAQCAtNzgsNyArNzksNyBAQCBwcml2YXRlOgog
ICAgIAogICAgIFJlZjxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPiBjb3B5UHJvcGVydGllcygpIGNv
bnN0IGZpbmFsOwogCi0gICAgQ1NTVmFsdWUqIGNsb25lQW5kQ2FjaGVGb3JDU1NPTShDU1NWYWx1
ZSopOworICAgIERlcHJlY2F0ZWRDU1NPTVZhbHVlKiB3cmFwRm9yRGVwcmVjYXRlZENTU09NKENT
U1ZhbHVlKik7CiAgICAgCiAgICAgdmlydHVhbCBib29sIHdpbGxNdXRhdGUoKSBXQVJOX1VOVVNF
RF9SRVRVUk4geyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRNdXRhdGUoTXV0
YXRpb25UeXBlKSB7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9SR0JDb2xvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1JHQkNvbG9yLmNwcAkocmV2aXNpb24gMjA5
OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL1JHQkNvbG9yLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzUsMzcgKzM1LDUgQEAgUmVmPFJHQkNvbG9yPiBSR0JDb2xvcjo6Y3JlYXRlKHVuc2lnbmVk
IAogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJHQkNvbG9yKHJnYkNvbG9yKSk7CiB9CiAKLVJl
ZjxDU1NQcmltaXRpdmVWYWx1ZT4gUkdCQ29sb3I6OnJlZCgpCi17Ci0gICAgdW5zaWduZWQgdmFs
dWUgPSAobV9yZ2JDb2xvciA+PiAxNikgJiAweEZGOwotICAgIFJlZjxDU1NQcmltaXRpdmVWYWx1
ZT4gcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZSwgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19OVU1CRVIpOwotICAgIHJlc3VsdC0+c2V0Q1NTT01TYWZlKCk7Ci0gICAgcmV0
dXJuIHJlc3VsdDsKLX0KLQotUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBSR0JDb2xvcjo6Z3JlZW4o
KQotewotICAgIHVuc2lnbmVkIHZhbHVlID0gKG1fcmdiQ29sb3IgPj4gOCkgJiAweEZGOwotICAg
IFJlZjxDU1NQcmltaXRpdmVWYWx1ZT4gcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOwotICAgIHJlc3VsdC0+c2V0
Q1NTT01TYWZlKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotUmVmPENTU1ByaW1pdGl2ZVZh
bHVlPiBSR0JDb2xvcjo6Ymx1ZSgpCi17Ci0gICAgdW5zaWduZWQgdmFsdWUgPSBtX3JnYkNvbG9y
ICYgMHhGRjsKLSAgICBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IHJlc3VsdCA9IENTU1ByaW1pdGl2
ZVZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKLSAg
ICByZXN1bHQtPnNldENTU09NU2FmZSgpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLVJlZjxD
U1NQcmltaXRpdmVWYWx1ZT4gUkdCQ29sb3I6OmFscGhhKCkKLXsKLSAgICBmbG9hdCB2YWx1ZSA9
IHN0YXRpY19jYXN0PGZsb2F0PigobV9yZ2JDb2xvciA+PiAyNCkgJiAweEZGKSAvIDB4RkY7Ci0g
ICAgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiByZXN1bHQgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7Ci0gICAgcmVzdWx0LT5z
ZXRDU1NPTVNhZmUoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9SR0JDb2xvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9SR0JDb2xvci5oCShyZXZpc2lvbiAyMDk5MzIpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvUkdCQ29sb3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTMgKzM3
LDEwIEBAIGNsYXNzIFJHQkNvbG9yIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFJHQkNvbG9yPiBjcmVhdGUodW5zaWduZWQgcmdiQ29sb3IpOwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiByZWQoKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBSZWY8Q1NTUHJpbWl0aXZlVmFsdWU+IGdyZWVuKCk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBibHVlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
UmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBhbHBoYSgpOwotCiAgICAgQ29sb3IgY29sb3IoKSBjb25z
dCB7IHJldHVybiBDb2xvcihtX3JnYkNvbG9yKTsgfQogCisgICAgUkdCQTMyIHJnYkNvbG9yKCkg
Y29uc3QgeyByZXR1cm4gbV9yZ2JDb2xvcjsgfQorCiBwcml2YXRlOgogICAgIFJHQkNvbG9yKHVu
c2lnbmVkIHJnYkNvbG9yKQogICAgICAgICA6IG1fcmdiQ29sb3IocmdiQ29sb3IpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvUkdCQ29sb3IuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9SR0JDb2xvci5pZGwJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9SR0JDb2xvci5pZGwJKG5vbmV4aXN0ZW50KQpAQCAtMSwzMCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNv
bT4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8K
LQotWwotICAgIEV4cG9ydFRvV3JhcHBlZEZ1bmN0aW9uLAotICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUsCi1dIGludGVyZmFjZSBSR0JDb2xvciB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IENTU1ByaW1pdGl2ZVZhbHVlIHJlZDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0
aXZlVmFsdWUgZ3JlZW47Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2ZVZhbHVl
IGJsdWU7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZlVmFsdWUgYWxwaGE7
Ci19OwoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvY3NzL1JHQkNvbG9yLmlk
bApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZl
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nz
cy9SZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaAkocmV2aXNp
b24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaAkod29ya2luZyBjb3B5KQpA
QCAtNDgsMTQgKzQ4LDYgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgUmVjdEJhc2UoKSB7
IH0KLSAgICBSZWN0QmFzZShjb25zdCBSZWN0QmFzZSYgY2xvbmVGcm9tKQotICAgICAgICA6IG1f
dG9wKGNsb25lRnJvbS5tX3RvcCA/IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4oY2xvbmVGcm9t
Lm1fdG9wLT5jbG9uZUZvckNTU09NKCkpIDogbnVsbHB0cikKLSAgICAgICAgLCBtX3JpZ2h0KGNs
b25lRnJvbS5tX3JpZ2h0ID8gUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPihjbG9uZUZyb20ubV9y
aWdodC0+Y2xvbmVGb3JDU1NPTSgpKSA6IG51bGxwdHIpCi0gICAgICAgICwgbV9ib3R0b20oY2xv
bmVGcm9tLm1fYm90dG9tID8gUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPihjbG9uZUZyb20ubV9i
b3R0b20tPmNsb25lRm9yQ1NTT00oKSkgOiBudWxscHRyKQotICAgICAgICAsIG1fbGVmdChjbG9u
ZUZyb20ubV9sZWZ0ID8gUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPihjbG9uZUZyb20ubV9sZWZ0
LT5jbG9uZUZvckNTU09NKCkpIDogbnVsbHB0cikKLSAgICB7Ci0gICAgfQotCiAgICAgflJlY3RC
YXNlKCkgeyB9CiAKIHByaXZhdGU6CkBAIC02OCw4ICs2MCw2IEBAIHByaXZhdGU6CiBjbGFzcyBS
ZWN0IGZpbmFsIDogcHVibGljIFJlY3RCYXNlLCBwdWJsaWMgUmVmQ291bnRlZDxSZWN0PiB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZWN0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IFJlY3QpOyB9Ci0gICAgCi0gICAgUmVmPFJlY3Q+IGNsb25lRm9yQ1NTT00oKSBjb25zdCB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlY3QoKnRoaXMpKTsgfQogCiAgICAgU3RyaW5nIGNzc1Rl
eHQoKSBjb25zdAogICAgIHsKQEAgLTc4LDcgKzY4LDYgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIFJlY3QoKSB7IH0KLSAgICBSZWN0KGNvbnN0IFJlY3QmIGNsb25lRnJvbSkgOiBSZWN0QmFz
ZShjbG9uZUZyb20pLCBSZWZDb3VudGVkPFJlY3Q+KCkgeyB9CiAgICAgc3RhdGljIFN0cmluZyBn
ZW5lcmF0ZUNTU1N0cmluZyhjb25zdCBTdHJpbmcmIHRvcCwgY29uc3QgU3RyaW5nJiByaWdodCwg
Y29uc3QgU3RyaW5nJiBib3R0b20sIGNvbnN0IFN0cmluZyYgbGVmdCkKICAgICB7CiAgICAgICAg
IHJldHVybiAicmVjdCgiICsgdG9wICsgIiwgIiArIHJpZ2h0ICsgIiwgIiArIGJvdHRvbSArICIs
ICIgKyBsZWZ0ICsgJyknOwpAQCAtODgsOCArNzcsNiBAQCBwcml2YXRlOgogY2xhc3MgUXVhZCBm
aW5hbCA6IHB1YmxpYyBSZWN0QmFzZSwgcHVibGljIFJlZkNvdW50ZWQ8UXVhZD4gewogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8UXVhZD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBR
dWFkKTsgfQotICAgIAotICAgIFJlZjxRdWFkPiBjbG9uZUZvckNTU09NKCkgY29uc3QgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBRdWFkKCp0aGlzKSk7IH0KIAogICAgIFN0cmluZyBjc3NUZXh0KCkg
Y29uc3QKICAgICB7CkBAIC05OCw3ICs4NSw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBR
dWFkKCkgeyB9Ci0gICAgUXVhZChjb25zdCBRdWFkJiBjbG9uZUZyb20pIDogUmVjdEJhc2UoY2xv
bmVGcm9tKSwgUmVmQ291bnRlZDxRdWFkPigpIHsgfQogICAgIHN0YXRpYyBTdHJpbmcgZ2VuZXJh
dGVDU1NTdHJpbmcoY29uc3QgU3RyaW5nJiB0b3AsIGNvbnN0IFN0cmluZyYgcmlnaHQsIGNvbnN0
IFN0cmluZyYgYm90dG9tLCBjb25zdCBTdHJpbmcmIGxlZnQpCiAgICAgewogICAgICAgICBTdHJp
bmdCdWlsZGVyIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvUmVjdC5pZGwJKHJldmlzaW9uIDIwOTkzMikK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmlkbAkobm9uZXhpc3RlbnQpCkBAIC0xLDI4ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KLSAqLwotCi1bCi0gICAgRXhwb3J0VG9XcmFwcGVkRnVuY3Rpb24sCi0gICAgSW1wbGVt
ZW50YXRpb25MYWNrc1ZUYWJsZSwKLV0gaW50ZXJmYWNlIFJlY3QgewotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSB0b3A7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIENT
U1ByaW1pdGl2ZVZhbHVlIHJpZ2h0OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRp
dmVWYWx1ZSBib3R0b207Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1ByaW1pdGl2ZVZhbHVl
IGxlZnQ7Ci19OwoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvY3NzL1JlY3Qu
aWRsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRp
dmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdF
bGVtZW50LmNwcAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Vs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU1ZH
RWxlbWVudC5oIgogCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlQYXJzZXIuaCIKKyNpbmNsdWRlICJE
ZXByZWNhdGVkQ1NTT01WYWx1ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKQEAgLTEwMjMsNyArMTAyNCw3
IEBAIHZvaWQgU1ZHRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IEMKICAgICBpbnZhbGlk
YXRlSW5zdGFuY2VzKCk7CiB9CiAKLVJlZlB0cjxDU1NWYWx1ZT4gU1ZHRWxlbWVudDo6Z2V0UHJl
c2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgbmFtZSkKK1JlZlB0cjxEZXByZWNhdGVk
Q1NTT01WYWx1ZT4gU1ZHRWxlbWVudDo6Z2V0UHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFN0
cmluZyYgbmFtZSkKIHsKICAgICBpZiAoIWhhc0F0dHJpYnV0ZXNXaXRob3V0VXBkYXRlKCkpCiAg
ICAgICAgIHJldHVybiAwOwpAQCAtMTAzNiw4ICsxMDM3LDEwIEBAIFJlZlB0cjxDU1NWYWx1ZT4g
U1ZHRWxlbWVudDo6Z2V0UHJlc2VudGEKICAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydGll
cz4gc3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpjcmVhdGUoU1ZHQXR0cmlidXRlTW9k
ZSk7CiAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEID0gY3NzUHJvcGVydHlJZEZvclNWR0F0
dHJpYnV0ZU5hbWUoYXR0cmlidXRlLT5uYW1lKCkpOwogICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShw
cm9wZXJ0eUlELCBhdHRyaWJ1dGUtPnZhbHVlKCkpOwotICAgIFJlZlB0cjxDU1NWYWx1ZT4gY3Nz
VmFsdWUgPSBzdHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eUlEKTsKLSAgICByZXR1
cm4gY3NzVmFsdWUgPyBjc3NWYWx1ZS0+Y2xvbmVGb3JDU1NPTSgpIDogbnVsbHB0cjsKKyAgICBh
dXRvIGNzc1ZhbHVlID0gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUocHJvcGVydHlJRCk7Cisg
ICAgaWYgKCFjc3NWYWx1ZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGNz
c1ZhbHVlLT5jcmVhdGVEZXByZWNhdGVkQ1NTT01XcmFwcGVyKCk7CiB9CiAKIGJvb2wgU1ZHRWxl
bWVudDo6aW5zdGFuY2VVcGRhdGVzQmxvY2tlZCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdF
bGVtZW50LmgJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwot
Y2xhc3MgQ1NTVmFsdWU7CitjbGFzcyBEZXByZWNhdGVkQ1NTT01WYWx1ZTsKIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgU1ZHQXR0cmlidXRlVG9Qcm9wZXJ0eU1hcDsKIGNsYXNzIFNWR0RvY3VtZW50
RXh0ZW5zaW9uczsKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlz
QW5pbWF0YWJsZUNTU1Byb3BlcnR5KGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICBib29sIGlz
UHJlc2VudGF0aW9uQXR0cmlidXRlV2l0aFNWR0RPTShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAg
ICAgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICBSZWZQ
dHI8Q1NTVmFsdWU+IGdldFByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIG5hbWUp
OworICAgIFJlZlB0cjxEZXByZWNhdGVkQ1NTT01WYWx1ZT4gZ2V0UHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTWFya2Vy
cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNSZWxhdGl2ZUxlbmd0aHMo
KSBjb25zdCB7IHJldHVybiAhbV9lbGVtZW50c1dpdGhSZWxhdGl2ZUxlbmd0aHMuaXNFbXB0eSgp
OyB9CiAgICAgdmlydHVhbCBib29sIG5lZWRzUGVuZGluZ1Jlc291cmNlSGFuZGxpbmcoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaWRsCShyZXZp
c2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTM1LDcgKzM1LDggQEAKICAgICBhdHRyaWJ1dGUgbG9uZyB0YWJJbmRleDsK
IAogICAgIC8vIEZJWE1FOiBVc2luZyAidW5kZWZpbmVkIiBhcyBkZWZhdWx0IHBhcmFtZXRlciB2
YWx1ZSBpcyB3cm9uZy4KLSAgICBDU1NWYWx1ZSBnZXRQcmVzZW50YXRpb25BdHRyaWJ1dGUob3B0
aW9uYWwgRE9NU3RyaW5nIG5hbWUgPSAidW5kZWZpbmVkIik7CisgICAgLy8gVGhpcyBtZXRob2Qg
aXMgZGVwcmVjYXRlZCwgYW5kIHdlJ2QgbGlrZSB0byByZW1vdmUgaXQgc29tZWRheS4KKyAgICBE
ZXByZWNhdGVkQ1NTT01WYWx1ZSBnZXRQcmVzZW50YXRpb25BdHRyaWJ1dGUob3B0aW9uYWwgRE9N
U3RyaW5nIG5hbWUgPSAidW5kZWZpbmVkIik7CiAKICAgICB2b2lkIGZvY3VzKCk7CiAgICAgdm9p
ZCBibHVyKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDk5MzUpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxNi0xMi0x
NiAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBbQ1NTIFZhbHVlc10g
TWFrZSBzZXBhcmF0ZSB3cmFwcGVyIGNsYXNzZXMgZm9yIHRoZSBkZXByZWNhdGVkIENTUyBWYWx1
ZXMgT00KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
NTk2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NWYWx1ZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OmtpdCk6CisgICAgICAgIChXZWJLaXQ6OmNvcmUpOgorICAg
ICAgICAoV2ViS2l0Ojp3cmFwQ1NTVmFsdWUpOgorICAgICAgICAod2Via2l0X2RvbV9jc3NfdmFs
dWVfY29uc3RydWN0b3IpOgorICAgICAgICAod2Via2l0X2RvbV9jc3NfdmFsdWVfZ2V0X2Nzc190
ZXh0KToKKyAgICAgICAgKHdlYmtpdF9kb21fY3NzX3ZhbHVlX3NldF9jc3NfdGV4dCk6CisgICAg
ICAgICh3ZWJraXRfZG9tX2Nzc192YWx1ZV9nZXRfY3NzX3ZhbHVlX3R5cGUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTVmFsdWVQ
cml2YXRlLmg6CisKIDIwMTYtMTItMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgVmlzdWFsIHZpZXdwb3J0czogY2FyZXRzIGFuZCBzZWxlY3Rpb24g
VUkgYXJlIGluY29ycmVjdGx5IHBvc2l0aW9uZWQgd2hlbiBlZGl0aW5nIGZpeGVkIGVsZW1lbnRz
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNTU1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1ZhbHVlLmNw
cAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDEyICszNSwxMiBAQAogI2RlZmluZSBXRUJLSVRfRE9NX0NTU19WQUxVRV9HRVRfUFJJ
VkFURShvYmopIEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURShvYmosIFdFQktJVF9ET01fVFlQ
RV9DU1NfVkFMVUUsIFdlYktpdERPTUNTU1ZhbHVlUHJpdmF0ZSkKIAogdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdERPTUNTU1ZhbHVlUHJpdmF0ZSB7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkNTU1ZhbHVl
PiBjb3JlT2JqZWN0OworICAgIFJlZlB0cjxXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZT4g
Y29yZU9iamVjdDsKIH0gV2ViS2l0RE9NQ1NTVmFsdWVQcml2YXRlOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotV2ViS2l0RE9NQ1NTVmFsdWUqIGtpdChXZWJDb3JlOjpDU1NWYWx1ZSogb2JqKQor
V2ViS2l0RE9NQ1NTVmFsdWUqIGtpdChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZSogb2Jq
KQogewogICAgIGlmICghb2JqKQogICAgICAgICByZXR1cm4gMDsKQEAgLTUxLDEyICs1MSwxMiBA
QCBXZWJLaXRET01DU1NWYWx1ZSoga2l0KFdlYkNvcmU6OkNTU1ZhbHVlCiAgICAgcmV0dXJuIHdy
YXBDU1NWYWx1ZShvYmopOwogfQogCi1XZWJDb3JlOjpDU1NWYWx1ZSogY29yZShXZWJLaXRET01D
U1NWYWx1ZSogcmVxdWVzdCkKK1dlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlKiBjb3JlKFdl
YktpdERPTUNTU1ZhbHVlKiByZXF1ZXN0KQogewotICAgIHJldHVybiByZXF1ZXN0ID8gc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6Q1NTVmFsdWUqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29y
ZU9iamVjdCkgOiAwOworICAgIHJldHVybiByZXF1ZXN0ID8gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
RGVwcmVjYXRlZENTU09NVmFsdWUqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9i
amVjdCkgOiAwOwogfQogCi1XZWJLaXRET01DU1NWYWx1ZSogd3JhcENTU1ZhbHVlKFdlYkNvcmU6
OkNTU1ZhbHVlKiBjb3JlT2JqZWN0KQorV2ViS2l0RE9NQ1NTVmFsdWUqIHdyYXBDU1NWYWx1ZShX
ZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZSogY29yZU9iamVjdCkKIHsKICAgICBBU1NFUlQo
Y29yZU9iamVjdCk7CiAgICAgcmV0dXJuIFdFQktJVF9ET01fQ1NTX1ZBTFVFKGdfb2JqZWN0X25l
dyhXRUJLSVRfRE9NX1RZUEVfQ1NTX1ZBTFVFLCAiY29yZS1vYmplY3QiLCBjb3JlT2JqZWN0LCBu
dWxscHRyKSk7CkBAIC0xMTgsNyArMTE4LDcgQEAgc3RhdGljIEdPYmplY3QqIHdlYmtpdF9kb21f
Y3NzX3ZhbHVlX2NvbgogICAgIEdPYmplY3QqIG9iamVjdCA9IEdfT0JKRUNUX0NMQVNTKHdlYmtp
dF9kb21fY3NzX3ZhbHVlX3BhcmVudF9jbGFzcyktPmNvbnN0cnVjdG9yKHR5cGUsIGNvbnN0cnVj
dFByb3BlcnRpZXNDb3VudCwgY29uc3RydWN0UHJvcGVydGllcyk7CiAKICAgICBXZWJLaXRET01D
U1NWYWx1ZVByaXZhdGUqIHByaXYgPSBXRUJLSVRfRE9NX0NTU19WQUxVRV9HRVRfUFJJVkFURShv
YmplY3QpOwotICAgIHByaXYtPmNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDU1NW
YWx1ZSo+KFdFQktJVF9ET01fT0JKRUNUKG9iamVjdCktPmNvcmVPYmplY3QpOworICAgIHByaXYt
PmNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZSo+
KFdFQktJVF9ET01fT0JKRUNUKG9iamVjdCktPmNvcmVPYmplY3QpOwogICAgIFdlYktpdDo6RE9N
T2JqZWN0Q2FjaGU6OnB1dChwcml2LT5jb3JlT2JqZWN0LmdldCgpLCBvYmplY3QpOwogCiAgICAg
cmV0dXJuIG9iamVjdDsKQEAgLTE2NSw3ICsxNjUsNyBAQCBnY2hhciogd2Via2l0X2RvbV9jc3Nf
dmFsdWVfZ2V0X2Nzc190ZXh0CiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfQ1NTX1ZBTFVF
KHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpDU1NWYWx1ZSogaXRlbSA9IFdlYktpdDo6Y29yZShz
ZWxmKTsKKyAgICBXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZSogaXRlbSA9IFdlYktpdDo6
Y29yZShzZWxmKTsKICAgICBnY2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVt
LT5jc3NUZXh0KCkpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xNzYsNyArMTc2LDcgQEAg
dm9pZCB3ZWJraXRfZG9tX2Nzc192YWx1ZV9zZXRfY3NzX3RleHQoVwogICAgIGdfcmV0dXJuX2lm
X2ZhaWwoV0VCS0lUX0RPTV9JU19DU1NfVkFMVUUoc2VsZikpOwogICAgIGdfcmV0dXJuX2lmX2Zh
aWwodmFsdWUpOwogICAgIGdfcmV0dXJuX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IpOwotICAg
IFdlYkNvcmU6OkNTU1ZhbHVlKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdlYkNv
cmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwogICAg
IFdURjo6U3RyaW5nIGNvbnZlcnRlZFZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVl
KTsKICAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPnNldENzc1RleHQoY29udmVydGVkVmFsdWUpOwog
ICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKQEAgLTE4OSw3ICsxODksNyBAQCBndXNo
b3J0IHdlYmtpdF9kb21fY3NzX3ZhbHVlX2dldF9jc3NfdmFsCiB7CiAgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9ET01fSVNfQ1NTX1ZBTFVFKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpDU1NWYWx1ZSogaXRl
bSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1
ZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKICAgICBndXNob3J0IHJlc3VsdCA9IGl0ZW0t
PmNzc1ZhbHVlVHlwZSgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1Zh
bHVlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTVmFsdWVQcml2YXRlLmgJKHJldmlz
aW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTVmFsdWVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIwLDEzICsyMCwxMyBAQAogI2lmbmRlZiBXZWJLaXRET01DU1NWYWx1ZVByaXZhdGVfaAogI2Rl
ZmluZSBXZWJLaXRET01DU1NWYWx1ZVByaXZhdGVfaAogCi0jaW5jbHVkZSA8V2ViQ29yZS9DU1NW
YWx1ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGVwcmVjYXRlZENTU09NVmFsdWUuaD4KICNpbmNs
dWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NQ1NTVmFsdWUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
Ci1XZWJLaXRET01DU1NWYWx1ZSogd3JhcENTU1ZhbHVlKFdlYkNvcmU6OkNTU1ZhbHVlKik7Ci1X
ZWJLaXRET01DU1NWYWx1ZSoga2l0KFdlYkNvcmU6OkNTU1ZhbHVlKik7Ci1XZWJDb3JlOjpDU1NW
YWx1ZSogY29yZShXZWJLaXRET01DU1NWYWx1ZSopOworV2ViS2l0RE9NQ1NTVmFsdWUqIHdyYXBD
U1NWYWx1ZShXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZSopOworV2ViS2l0RE9NQ1NTVmFs
dWUqIGtpdChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZSopOworV2ViQ29yZTo6RGVwcmVj
YXRlZENTU09NVmFsdWUqIGNvcmUoV2ViS2l0RE9NQ1NTVmFsdWUqKTsKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLyogV2ViS2l0RE9NQ1NTVmFsdWVQcml2YXRlX2ggKi8KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE2LTEyLTE2ICBEYXZl
IEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIFtDU1MgVmFsdWVzXSBNYWtlIHNl
cGFyYXRlIHdyYXBwZXIgY2xhc3NlcyBmb3IgdGhlIGRlcHJlY2F0ZWQgQ1NTIFZhbHVlcyBPTQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1OTY4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBET00vRE9N
Q1NTLm1tOgorICAgICAgICAoa2l0Q2xhc3MpOgorICAgICAgICAqIERPTS9ET01DU1NQcmltaXRp
dmVWYWx1ZS5tbToKKyAgICAgICAgKC1bRE9NQ1NTUHJpbWl0aXZlVmFsdWUgZ2V0Q291bnRlclZh
bHVlXSk6CisgICAgICAgICgtW0RPTUNTU1ByaW1pdGl2ZVZhbHVlIGdldFJlY3RWYWx1ZV0pOgor
ICAgICAgICAoa2l0KToKKyAgICAgICAgKiBET00vRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRlcm5h
bC5oOgorICAgICAgICAqIERPTS9ET01DU1NTdHlsZURlY2xhcmF0aW9uLm1tOgorICAgICAgICAq
IERPTS9ET01DU1NWYWx1ZS5tbToKKyAgICAgICAgKGtpdCk6CisgICAgICAgICogRE9NL0RPTUNT
U1ZhbHVlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBET00vRE9NQ1NTVmFsdWVMaXN0Lm1tOgorICAg
ICAgICAqIERPTS9ET01Db3VudGVyLm1tOgorICAgICAgICAoa2l0KToKKyAgICAgICAgKiBET00v
RE9NQ291bnRlckludGVybmFsLmg6CisgICAgICAgICogRE9NL0RPTVJHQkNvbG9yLm1tOgorICAg
ICAgICAoa2l0KToKKyAgICAgICAgKiBET00vRE9NUkdCQ29sb3JJbnRlcm5hbC5oOgorICAgICAg
ICAqIERPTS9ET01SZWN0Lm1tOgorICAgICAgICAoa2l0KToKKyAgICAgICAgKiBET00vRE9NUmVj
dEludGVybmFsLmg6CisgICAgICAgICogRE9NL0RPTVV0aWxpdHkubW06CisgICAgICAgIChjcmVh
dGVET01XcmFwcGVyKToKKwogMjAxNi0xMi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgVXNlIGFzU3RyaW5nIGluc3RlYWQgb2YgdG9XVEZTdHJpbmcsIHRvU3Ry
aW5nLCBvciBnZXRTdHJpbmcgd2hlbiB3ZSBhbHJlYWR5IGNoZWNrZWQgaXNTdHJpbmcKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01DU1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9tYWMvRE9NL0RPTUNTUy5tbQkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYktp
dC9tYWMvRE9NL0RPTUNTUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAj
aW1wb3J0IDxXZWJDb3JlL0NTU1J1bGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ1NTU3R5bGVTaGVl
dC5oPgotI2ltcG9ydCA8V2ViQ29yZS9DU1NWYWx1ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9EZXBy
ZWNhdGVkQ1NTT01WYWx1ZS5oPgogI2ltcG9ydCAiRE9NQ1NTQ2hhcnNldFJ1bGUuaCIKICNpbXBv
cnQgIkRPTUNTU0ZvbnRGYWNlUnVsZS5oIgogI2ltcG9ydCAiRE9NQ1NTSW1wb3J0UnVsZS5oIgpA
QCAtOTQsMjAgKzk0LDE2IEBAIENsYXNzIGtpdENsYXNzKFdlYkNvcmU6OkNTU1J1bGUqIGltcGwp
CiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gRE9NQ1NTVmFsdWUKIAot
Q2xhc3Mga2l0Q2xhc3MoV2ViQ29yZTo6Q1NTVmFsdWUqIGltcGwpCitDbGFzcyBraXRDbGFzcyhX
ZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZSogaW1wbCkKIHsKICAgICBzd2l0Y2ggKGltcGwt
PmNzc1ZhbHVlVHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6Q1NTVmFsdWU6OkNTU19Q
UklNSVRJVkVfVkFMVUU6Ci0gICAgICAgICAgICByZXR1cm4gW0RPTUNTU1ByaW1pdGl2ZVZhbHVl
IGNsYXNzXTsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpDU1NWYWx1ZTo6Q1NTX1ZBTFVFX0xJU1Q6
Ci0gICAgICAgICAgICByZXR1cm4gW0RPTUNTU1ZhbHVlTGlzdCBjbGFzc107Ci0gICAgICAgIGNh
c2UgV2ViQ29yZTo6Q1NTVmFsdWU6OkNTU19JTkhFUklUOgotICAgICAgICBjYXNlIFdlYkNvcmU6
OkNTU1ZhbHVlOjpDU1NfSU5JVElBTDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpDU1NWYWx1ZTo6
Q1NTX1VOU0VUOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkNTU1ZhbHVlOjpDU1NfUkVWRVJUOgot
ICAgICAgICAgICAgcmV0dXJuIFtET01DU1NWYWx1ZSBjbGFzc107Ci0gICAgICAgIGNhc2UgV2Vi
Q29yZTo6Q1NTVmFsdWU6OkNTU19DVVNUT006Ci0gICAgICAgICAgICByZXR1cm4gW0RPTUNTU1Zh
bHVlIGNsYXNzXTsKKyAgICBjYXNlIFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpDU1Nf
UFJJTUlUSVZFX1ZBTFVFOgorICAgICAgICByZXR1cm4gW0RPTUNTU1ByaW1pdGl2ZVZhbHVlIGNs
YXNzXTsKKyAgICBjYXNlIFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpDU1NfVkFMVUVf
TElTVDoKKyAgICAgICAgcmV0dXJuIFtET01DU1NWYWx1ZUxpc3QgY2xhc3NdOworICAgIGNhc2Ug
V2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWU6OkNTU19JTkhFUklUOgorICAgIGNhc2UgV2Vi
Q29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWU6OkNTU19DVVNUT006CisgICAgICAgIHJldHVybiBb
RE9NQ1NTVmFsdWUgY2xhc3NdOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICByZXR1cm4gbmlsOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1ByaW1pdGl2
ZVZhbHVlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01DU1NQcmlt
aXRpdmVWYWx1ZS5tbQkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYktpdC9tYWMvRE9N
L0RPTUNTU1ByaW1pdGl2ZVZhbHVlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsyNSwxMCBA
QAogCiAjaW1wb3J0ICJET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFsLmgiCiAKLSNpbXBvcnQg
PFdlYkNvcmUvQ1NTUHJpbWl0aXZlVmFsdWUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvQ291bnRlci5o
PgorI2ltcG9ydCA8V2ViQ29yZS9EZXByZWNhdGVkQ1NTT01Db3VudGVyLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL0RlcHJlY2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0RlcHJlY2F0ZWRDU1NPTVJHQkNvbG9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RlcHJlY2F0ZWRD
U1NPTVJlY3QuaD4KICNpbXBvcnQgIkRPTUNTU1ZhbHVlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRP
TUNvdW50ZXJJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCkBAIC0zNCwx
NCArMzYsMTIgQEAKICNpbXBvcnQgIkRPTVJlY3RJbnRlcm5hbC5oIgogI2ltcG9ydCAiRXhjZXB0
aW9uSGFuZGxlcnMuaCIKICNpbXBvcnQgPFdlYkNvcmUvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL1JHQkNvbG9yLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1JlY3QuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvVVJMLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1dlYlNjcmlwdE9iamVjdFByaXZhdGUuaD4KICNpbXBvcnQgPHd0
Zi9HZXRQdHIuaD4KIAotI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlKj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NWYWx1ZSo+KF9pbnRlcm5h
bCkpCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RGVwcmVjYXRlZENTU09NUHJp
bWl0aXZlVmFsdWUqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZh
bHVlKj4oX2ludGVybmFsKSkKIAogQGltcGxlbWVudGF0aW9uIERPTUNTU1ByaW1pdGl2ZVZhbHVl
CiAKQEAgLTc4LDEzICs3OCwxMyBAQCAtIChOU1N0cmluZyAqKWdldFN0cmluZ1ZhbHVlCiAtIChE
T01Db3VudGVyICopZ2V0Q291bnRlclZhbHVlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBraXQoJnJhaXNlT25ET01FcnJvcihJTVBMLT5n
ZXRDb3VudGVyVmFsdWUoKSkpOworICAgIHJldHVybiBraXQocmFpc2VPbkRPTUVycm9yKElNUEwt
PmdldENvdW50ZXJWYWx1ZSgpKS5wdHIoKSk7CiB9CiAKIC0gKERPTVJlY3QgKilnZXRSZWN0VmFs
dWUKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0
dXJuIGtpdCgmcmFpc2VPbkRPTUVycm9yKElNUEwtPmdldFJlY3RWYWx1ZSgpKSk7CisgICAgcmV0
dXJuIGtpdChyYWlzZU9uRE9NRXJyb3IoSU1QTC0+Z2V0UmVjdFZhbHVlKCkpLnB0cigpKTsKIH0K
IAogLSAoRE9NUkdCQ29sb3IgKilnZXRSR0JDb2xvclZhbHVlCkBAIC0xMDksOCArMTA5LDggQEAg
LSAodm9pZClzZXRTdHJpbmdWYWx1ZToodW5zaWduZWQgc2hvcnQpcwogCiBAZW5kCiAKLURPTUNT
U1ByaW1pdGl2ZVZhbHVlICpraXQoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWUqIHZhbHVlKQor
RE9NQ1NTUHJpbWl0aXZlVmFsdWUgKmtpdChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01QcmltaXRp
dmVWYWx1ZSogdmFsdWUpCiB7CiAgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRP
bmUoKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NQ1NTUHJpbWl0aXZlVmFsdWUqPihraXQo
c3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q1NTVmFsdWUqPih2YWx1ZSkpKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RE9NQ1NTUHJpbWl0aXZlVmFsdWUqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
RGVwcmVjYXRlZENTU09NVmFsdWUqPih2YWx1ZSkpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
bWFjL0RPTS9ET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1ByaW1pdGl2ZVZhbHVlSW50ZXJuYWwuaAkocmV2aXNp
b24gMjA5OTMyKQorKysgU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1ByaW1pdGl2ZVZhbHVl
SW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCA8V2Vi
S2l0TGVnYWN5L0RPTUNTU1ByaW1pdGl2ZVZhbHVlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
LWNsYXNzIENTU1ByaW1pdGl2ZVZhbHVlOworY2xhc3MgRGVwcmVjYXRlZENTU09NUHJpbWl0aXZl
VmFsdWU7CiB9CiAKLURPTUNTU1ByaW1pdGl2ZVZhbHVlICpraXQoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWUqKTsKK0RPTUNTU1ByaW1pdGl2ZVZhbHVlICpraXQoV2ViQ29yZTo6RGVwcmVjYXRl
ZENTU09NUHJpbWl0aXZlVmFsdWUqKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01D
U1NTdHlsZURlY2xhcmF0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0RP
TS9ET01DU1NTdHlsZURlY2xhcmF0aW9uLm1tCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2Uv
V2ViS2l0L21hYy9ET00vRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5tbQkod29ya2luZyBjb3B5KQpA
QCAtMjgsNyArMjgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9DU1NJbXBvcnRSdWxlLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0NTU1J1bGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ1NTU3R5bGVEZWNsYXJh
dGlvbi5oPgotI2ltcG9ydCA8V2ViQ29yZS9DU1NWYWx1ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9E
ZXByZWNhdGVkQ1NTT01WYWx1ZS5oPgogI2ltcG9ydCAiRE9NQ1NTUnVsZUludGVybmFsLmgiCiAj
aW1wb3J0ICJET01DU1NWYWx1ZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01JbnRlcm5hbC5oIgpJ
bmRleDogU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1ZhbHVlLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01DU1NWYWx1ZS5tbQkocmV2aXNpb24gMjA5OTMyKQor
KysgU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1ZhbHVlLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0yNSw3ICsyNSw3IEBACiAKICNpbXBvcnQgIkRPTUNTU1ZhbHVlSW50ZXJuYWwuaCIKIAotI2lt
cG9ydCA8V2ViQ29yZS9DU1NWYWx1ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9EZXByZWNhdGVkQ1NT
T01WYWx1ZS5oPgogI2ltcG9ydCAiRE9NSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU5vZGVJbnRl
cm5hbC5oIgogI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKQEAgLTM2LDcgKzM2LDcgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3Rm
L0dldFB0ci5oPgogCi0jZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NW
YWx1ZSo+KF9pbnRlcm5hbCkKKyNkZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6
OkRlcHJlY2F0ZWRDU1NPTVZhbHVlKj4oX2ludGVybmFsKQogCiBAaW1wbGVtZW50YXRpb24gRE9N
Q1NTVmFsdWUKIApAQCAtNzAsNyArNzAsNyBAQCAtICh1bnNpZ25lZCBzaG9ydCljc3NWYWx1ZVR5
cGUKIAogQGVuZAogCi1ET01DU1NWYWx1ZSAqa2l0KFdlYkNvcmU6OkNTU1ZhbHVlKiB2YWx1ZSkK
K0RPTUNTU1ZhbHVlICpraXQoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWUqIHZhbHVlKQog
ewogICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CiAgICAgaWYgKCF2
YWx1ZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01DU1NWYWx1ZUludGVybmFsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1ZhbHVlSW50ZXJuYWwu
aAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1ZhbHVl
SW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsOCBAQAogI2ltcG9ydCA8V2Vi
S2l0TGVnYWN5L0RPTUNTU1ZhbHVlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIENT
U1ZhbHVlOworY2xhc3MgRGVwcmVjYXRlZENTU09NVmFsdWU7CiB9CiAKLURPTUNTU1ZhbHVlICpr
aXQoV2ViQ29yZTo6Q1NTVmFsdWUqKTsKLUNsYXNzIGtpdENsYXNzKFdlYkNvcmU6OkNTU1ZhbHVl
Kik7CitET01DU1NWYWx1ZSAqa2l0KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlKik7CitD
bGFzcyBraXRDbGFzcyhXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZSopOwpJbmRleDogU291
cmNlL1dlYktpdC9tYWMvRE9NL0RPTUNTU1ZhbHVlTGlzdC5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTVmFsdWVMaXN0Lm1tCShyZXZpc2lvbiAyMDk5MzIpCisr
KyBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NQ1NTVmFsdWVMaXN0Lm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yNSwxNyArMjUsMTYgQEAKIAogI2ltcG9ydCAiRE9NQ1NTVmFsdWVMaXN0LmgiCiAKLSNp
bXBvcnQgPFdlYkNvcmUvQ1NTVmFsdWUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvQ1NTVmFsdWVMaXN0
Lmg+CiAjaW1wb3J0ICJET01DU1NWYWx1ZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01Ob2RlSW50
ZXJuYWwuaCIKICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0IDxXZWJDb3Jl
L0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU01haW5UaHJl
YWRFeGVjU3RhdGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQg
PFdlYkNvcmUvV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL0dldFB0ci5o
PgogCi0jZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q1NTVmFsdWVMaXN0Kj4ocmVp
bnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NWYWx1ZSo+KF9pbnRlcm5hbCkpCisjZGVmaW5lIElN
UEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0Kj4ocmVpbnRl
cnByZXRfY2FzdDxXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZSo+KF9pbnRlcm5hbCkpCiAK
IEBpbXBsZW1lbnRhdGlvbiBET01DU1NWYWx1ZUxpc3QKIApJbmRleDogU291cmNlL1dlYktpdC9t
YWMvRE9NL0RPTUNvdW50ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvRE9N
L0RPTUNvdW50ZXIubW0JKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0RP
TS9ET01Db3VudGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbXBv
cnQgIkRPTUNvdW50ZXJJbnRlcm5hbC5oIgogCi0jaW1wb3J0IDxXZWJDb3JlL0NvdW50ZXIuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRlZENTU09NQ291bnRlci5oPgogI2ltcG9ydCAiRE9N
SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiRXhjZXB0
aW9uSGFuZGxlcnMuaCIKQEAgLTM2LDcgKzM2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViU2Ny
aXB0T2JqZWN0UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL0dldFB0ci5oPgogCi0jZGVmaW5lIElN
UEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDb3VudGVyKj4oX2ludGVybmFsKQorI2RlZmlu
ZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6RGVwcmVjYXRlZENTU09NQ291bnRlcio+
KF9pbnRlcm5hbCkKIAogQGltcGxlbWVudGF0aW9uIERPTUNvdW50ZXIKIApAQCAtNzAsNyArNzAs
NyBAQCAtIChOU1N0cmluZyAqKXNlcGFyYXRvcgogCiBAZW5kCiAKLURPTUNvdW50ZXIgKmtpdChX
ZWJDb3JlOjpDb3VudGVyKiB2YWx1ZSkKK0RPTUNvdW50ZXIgKmtpdChXZWJDb3JlOjpEZXByZWNh
dGVkQ1NTT01Db3VudGVyKiB2YWx1ZSkKIHsKICAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hl
Y2tSb3VuZE9uZSgpOwogICAgIGlmICghdmFsdWUpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9E
T00vRE9NQ291bnRlckludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
RE9NL0RPTUNvdW50ZXJJbnRlcm5hbC5oCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2Vi
S2l0L21hYy9ET00vRE9NQ291bnRlckludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcg
KzI2LDcgQEAKICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01Db3VudGVyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKLWNsYXNzIENvdW50ZXI7CitjbGFzcyBEZXByZWNhdGVkQ1NTT01Db3VudGVy
OwogfQogCi1ET01Db3VudGVyICpraXQoV2ViQ29yZTo6Q291bnRlciopOworRE9NQ291bnRlciAq
a2l0KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTUNvdW50ZXIqKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvbWFjL0RPTS9ET01SR0JDb2xvci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21h
Yy9ET00vRE9NUkdCQ29sb3IubW0JKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL0RPTS9ET01SR0JDb2xvci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjUsMTMgKzI1LDEzIEBA
CiAKICNpbXBvcnQgIkRPTVJHQkNvbG9ySW50ZXJuYWwuaCIKIAotI2ltcG9ydCA8V2ViQ29yZS9D
U1NQcmltaXRpdmVWYWx1ZS5oPgogI2ltcG9ydCAiRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRlcm5h
bC5oIgogI2ltcG9ydCAiRE9NSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5o
IgogI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRGVwcmVj
YXRlZENTU09NUHJpbWl0aXZlVmFsdWUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRGVwcmVjYXRlZENT
U09NUkdCQ29sb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL1JHQkNvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENo
ZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1dlYlNjcmlwdE9iamVjdFByaXZhdGUuaD4KQEAgLTQzLDcgKzQzLDcgQEAKICNpbXBv
cnQgPFdlYkNvcmUvQ29sb3JTcGFjZS5oPgogI2VuZGlmCiAKLSNkZWZpbmUgSU1QTCByZWludGVy
cHJldF9jYXN0PFdlYkNvcmU6OlJHQkNvbG9yKj4oX2ludGVybmFsKQorI2RlZmluZSBJTVBMIHJl
aW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6RGVwcmVjYXRlZENTU09NUkdCQ29sb3IqPihfaW50ZXJu
YWwpCiAKIEBpbXBsZW1lbnRhdGlvbiBET01SR0JDb2xvcgogCkBAIC05Nyw3ICs5Nyw3IEBAIC0g
KENHQ29sb3JSZWYpY29sb3IKIAogQGVuZAogCi1ET01SR0JDb2xvciAqa2l0KFdlYkNvcmU6OlJH
QkNvbG9yKiB2YWx1ZSkKK0RPTVJHQkNvbG9yICpraXQoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09N
UkdCQ29sb3IqIHZhbHVlKQogewogICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5k
T25lKCk7CiAgICAgaWYgKCF2YWx1ZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01S
R0JDb2xvckludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvRE9NL0RP
TVJHQkNvbG9ySW50ZXJuYWwuaAkocmV2aXNpb24gMjA5OTMyKQorKysgU291cmNlL1dlYktpdC9t
YWMvRE9NL0RPTVJHQkNvbG9ySW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYs
NyBAQAogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTVJHQkNvbG9yLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKLWNsYXNzIFJHQkNvbG9yOworY2xhc3MgRGVwcmVjYXRlZENTU09NUkdCQ29sb3I7
CiB9CiAKLURPTVJHQkNvbG9yICpraXQoV2ViQ29yZTo6UkdCQ29sb3IqKTsKK0RPTVJHQkNvbG9y
ICpraXQoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NUkdCQ29sb3IqKTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvbWFjL0RPTS9ET01SZWN0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFj
L0RPTS9ET01SZWN0Lm1tCShyZXZpc2lvbiAyMDk5MzIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9E
T00vRE9NUmVjdC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjUsMTkgKzI1LDE5IEBACiAKICNpbXBv
cnQgIkRPTVJlY3RJbnRlcm5hbC5oIgogCi0jaW1wb3J0IDxXZWJDb3JlL0NTU1ByaW1pdGl2ZVZh
bHVlLmg+CiAjaW1wb3J0ICJET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFsLmgiCiAjaW1wb3J0
ICJET01JbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJF
eGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCA8V2ViQ29yZS9EZXByZWNhdGVkQ1NTT01Qcmlt
aXRpdmVWYWx1ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9EZXByZWNhdGVkQ1NTT01SZWN0Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9SZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYlNjcmlwdE9iamVj
dFByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KIAotI2RlZmluZSBJTVBMIHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6UmVjdCo+KF9pbnRlcm5hbCkKKyNkZWZpbmUgSU1QTCByZWlu
dGVycHJldF9jYXN0PFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVJlY3QqPihfaW50ZXJuYWwpCiAK
IEBpbXBsZW1lbnRhdGlvbiBET01SZWN0CiAKQEAgLTc3LDcgKzc3LDcgQEAgLSAoRE9NQ1NTUHJp
bWl0aXZlVmFsdWUgKilsZWZ0CiAKIEBlbmQKIAotRE9NUmVjdCAqa2l0KFdlYkNvcmU6OlJlY3Qq
IHZhbHVlKQorRE9NUmVjdCAqa2l0KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVJlY3QqIHZhbHVl
KQogewogICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CiAgICAgaWYg
KCF2YWx1ZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01SZWN0SW50ZXJuYWwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9ET00vRE9NUmVjdEludGVybmFsLmgJKHJl
dmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9ET01SZWN0SW50ZXJuYWwu
aAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCA8V2ViS2l0TGVnYWN5
L0RPTVJlY3QuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgUmVjdDsKK2NsYXNzIERl
cHJlY2F0ZWRDU1NPTVJlY3Q7CiB9CiAKLURPTVJlY3QgKmtpdChXZWJDb3JlOjpSZWN0Kik7CitE
T01SZWN0ICpraXQoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NUmVjdCopOwpJbmRleDogU291cmNl
L1dlYktpdC9tYWMvRE9NL0RPTVV0aWxpdHkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9tYWMvRE9NL0RPTVV0aWxpdHkubW0JKHJldmlzaW9uIDIwOTkzMikKKysrIFNvdXJjZS9XZWJL
aXQvbWFjL0RPTS9ET01VdGlsaXR5Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01MCwxMCArNTAsMTIg
QEAKICNpbXBvcnQgPFdlYkNvcmUvSlNDU1NSdWxlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTQ1NT
UnVsZUxpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNDU1NTdHlsZURlY2xhcmF0aW9uLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL0pTQ1NTVmFsdWUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvSlNDb3VudGVy
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTRE9NSW1wbGVtZW50YXRpb24uaD4KICNpbXBvcnQgPFdl
YkNvcmUvSlNET01XaW5kb3dTaGVsbC5oPgorI2ltcG9ydCA8V2ViQ29yZS9KU0RlcHJlY2F0ZWRD
U1NPTUNvdW50ZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvSlNEZXByZWNhdGVkQ1NTT01SR0JDb2xv
ci5oPgorI2ltcG9ydCA8V2ViQ29yZS9KU0RlcHJlY2F0ZWRDU1NPTVJlY3QuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvSlNEZXByZWNhdGVkQ1NTT01WYWx1ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU0V2
ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTSFRNTENvbGxlY3Rpb24uaD4KICNpbXBvcnQgPFdl
YkNvcmUvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaD4KQEAgLTYyLDkgKzY0LDcgQEAKICNpbXBv
cnQgPFdlYkNvcmUvSlNOb2RlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTTm9kZUl0ZXJhdG9yLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0pTTm9kZUxpc3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvSlNSR0JD
b2xvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU1JhbmdlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0pT
UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU1N0eWxlU2hlZXQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvSlNTdHlsZVNoZWV0TGlzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU1RyZWVXYWxrZXIuaD4K
QEAgLTgxLDggKzgxLDggQEAgc3RhdGljIFdlYlNjcmlwdE9iamVjdCAqY3JlYXRlRE9NV3JhcHBl
cgogICAgIFdSQVAoQ1NTUnVsZSkKICAgICBXUkFQKENTU1J1bGVMaXN0KQogICAgIFdSQVAoQ1NT
U3R5bGVEZWNsYXJhdGlvbikKLSAgICBXUkFQKENTU1ZhbHVlKQotICAgIFdSQVAoQ291bnRlcikK
KyAgICBXUkFQKERlcHJlY2F0ZWRDU1NPTVZhbHVlKQorICAgIFdSQVAoRGVwcmVjYXRlZENTU09N
Q291bnRlcikKICAgICBXUkFQKERPTUltcGxlbWVudGF0aW9uKQogICAgIFdSQVAoRE9NV2luZG93
U2hlbGwpCiAgICAgV1JBUChFdmVudCkKQEAgLTkyLDkgKzkyLDkgQEAgc3RhdGljIFdlYlNjcmlw
dE9iamVjdCAqY3JlYXRlRE9NV3JhcHBlcgogICAgIFdSQVAoTm9kZSkKICAgICBXUkFQKE5vZGVJ
dGVyYXRvcikKICAgICBXUkFQKE5vZGVMaXN0KQotICAgIFdSQVAoUkdCQ29sb3IpCisgICAgV1JB
UChEZXByZWNhdGVkQ1NTT01SR0JDb2xvcikKICAgICBXUkFQKFJhbmdlKQotICAgIFdSQVAoUmVj
dCkKKyAgICBXUkFQKERlcHJlY2F0ZWRDU1NPTVJlY3QpCiAgICAgV1JBUChTdHlsZVNoZWV0KQog
ICAgIFdSQVAoU3R5bGVTaGVldExpc3QpCiAgICAgV1JBUChUcmVlV2Fsa2VyKQo=
</data>
<flag name="review"
          id="319672"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>