<?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>190784</bug_id>
          
          <creation_ts>2018-10-21 18:37:25 -0700</creation_ts>
          <short_desc>[WebAuthN] Import CTAP device request/response converters from Chromium</short_desc>
          <delta_ts>2018-11-08 16:24: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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>alex.gaynor</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1471163</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-10-21 18:37:25 -0700</bug_when>
    <thetext>Import CTAP device request/response converters from Chromium such that we can convert WebAuthN request into proper binaries that CTAP devices could understand and understand their binary responses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471168</commentid>
    <comment_count>1</comment_count>
      <attachid>352879</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-10-21 19:10:29 -0700</bug_when>
    <thetext>Created attachment 352879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471169</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-21 19:12:30 -0700</bug_when>
    <thetext>Attachment 352879 did not pass style-queue:


ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:70:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:71:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:72:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:73:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:74:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/cbor/CBORValue.h:165:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:56:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:57:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:58:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:59:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:60:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:61:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 12 in 29 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>1471273</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-22 11:38:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/45460333&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471452</commentid>
    <comment_count>4</comment_count>
      <attachid>352940</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-10-22 18:33:33 -0700</bug_when>
    <thetext>Created attachment 352940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471454</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-22 18:36:07 -0700</bug_when>
    <thetext>Attachment 352940 did not pass style-queue:


ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:70:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:71:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:72:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:73:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:74:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/cbor/CBORValue.h:165:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:56:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:57:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:58:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:59:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:60:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:61:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 12 in 29 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>1471455</commentid>
    <comment_count>6</comment_count>
      <attachid>352941</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-10-22 18:38:00 -0700</bug_when>
    <thetext>Created attachment 352941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471458</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-22 18:41:24 -0700</bug_when>
    <thetext>Attachment 352941 did not pass style-queue:


ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:70:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:71:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:72:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:73:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:74:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/cbor/CBORValue.h:165:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:56:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:57:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:58:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:59:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:60:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:61:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 12 in 29 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>1471465</commentid>
    <comment_count>8</comment_count>
      <attachid>352944</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-10-22 19:06:51 -0700</bug_when>
    <thetext>Created attachment 352944
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471466</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-22 19:09:35 -0700</bug_when>
    <thetext>Attachment 352944 did not pass style-queue:


ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:70:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:71:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:72:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:73:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:74:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/cbor/CBORValue.h:165:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:56:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:57:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:58:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:59:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:60:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:61:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 12 in 30 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>1473564</commentid>
    <comment_count>10</comment_count>
      <attachid>353455</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-10-30 19:02:55 -0700</bug_when>
    <thetext>Created attachment 353455
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473565</commentid>
    <comment_count>11</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-30 19:04:57 -0700</bug_when>
    <thetext>Attachment 353455 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:3586:  developmentRegion is not en.  [xcodeproj/settings] [5]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:70:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:71:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:72:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:73:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:74:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/cbor/CBORValue.h:165:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:56:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:57:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:58:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:59:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:60:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:61:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 13 in 30 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>1473817</commentid>
    <comment_count>12</comment_count>
      <attachid>353518</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-10-31 12:22:26 -0700</bug_when>
    <thetext>Created attachment 353518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473818</commentid>
    <comment_count>13</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-31 12:25:45 -0700</bug_when>
    <thetext>Attachment 353518 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:3586:  developmentRegion is not en.  [xcodeproj/settings] [5]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:70:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:71:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:72:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:73:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:74:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/cbor/CBORValue.h:165:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:56:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:57:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:58:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:59:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:60:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:61:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 13 in 30 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>1473821</commentid>
    <comment_count>14</comment_count>
      <attachid>353519</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-10-31 12:43:10 -0700</bug_when>
    <thetext>Created attachment 353519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473822</commentid>
    <comment_count>15</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-31 12:45:37 -0700</bug_when>
    <thetext>Attachment 353519 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:3586:  developmentRegion is not en.  [xcodeproj/settings] [5]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:70:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:71:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:72:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:73:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:74:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/cbor/CBORValue.h:165:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:56:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:57:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:58:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:59:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:60:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:61:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 13 in 30 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>1473859</commentid>
    <comment_count>16</comment_count>
      <attachid>353527</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-10-31 13:56:09 -0700</bug_when>
    <thetext>Created attachment 353527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473862</commentid>
    <comment_count>17</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-10-31 13:58:10 -0700</bug_when>
    <thetext>Attachment 353527 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:3586:  developmentRegion is not en.  [xcodeproj/settings] [5]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:70:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:71:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:72:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:73:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:74:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/cbor/CBORValue.h:165:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:56:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:57:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:58:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:59:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:60:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:61:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 13 in 30 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>1476185</commentid>
    <comment_count>18</comment_count>
      <attachid>353527</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-11-07 13:47:37 -0800</bug_when>
    <thetext>Comment on attachment 353527
Patch

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

Looks good. I had a minor suggestion for the decode logic (labelling), but not necessary to land the code.

&gt; Source/WebCore/Modules/webauthn/fido/DeviceResponseConverter.cpp:98
&gt; +    auto it = decodedMap.find(CBOR(1));

It seems like these ordinal values for the decodeMap might be more meaningful with constant definitions. Is the only meaning of this map entry that it is the first of &apos;n&apos; values? Or is the first value always a specific piece of information? Just like the request map is accessed through keys, it would be nice to access the response with keys, too (for legibility).

Still, since this is Google code, maybe we want to keep it as pristine as possible to aid in porting over changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476219</commentid>
    <comment_count>19</comment_count>
      <attachid>353527</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-11-07 14:18:03 -0800</bug_when>
    <thetext>Comment on attachment 353527
Patch

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

Thanks Brent for r+ the patch.

&gt; Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.h:42
&gt; +    std::optional&lt;UserVerificationRequirement&gt; userVerification { UserVerificationRequirement::Preferred };

It doesn&apos;t need to be std::optional since it has a default value.

&gt;&gt; Source/WebCore/Modules/webauthn/fido/DeviceResponseConverter.cpp:98
&gt;&gt; +    auto it = decodedMap.find(CBOR(1));
&gt; 
&gt; It seems like these ordinal values for the decodeMap might be more meaningful with constant definitions. Is the only meaning of this map entry that it is the first of &apos;n&apos; values? Or is the first value always a specific piece of information? Just like the request map is accessed through keys, it would be nice to access the response with keys, too (for legibility).
&gt; 
&gt; Still, since this is Google code, maybe we want to keep it as pristine as possible to aid in porting over changes.

Agreed. The original code is using auto, and I didn&apos;t think too much when I changed the coding style.

&gt; Source/WebCore/Modules/webgpu/WebGPUAdapter.cpp:34
&gt; +#include &lt;wtf/Ref.h&gt;

Should have remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476465</commentid>
    <comment_count>20</comment_count>
      <attachid>354221</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-11-08 01:33:02 -0800</bug_when>
    <thetext>Created attachment 354221
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476466</commentid>
    <comment_count>21</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-11-08 01:34:47 -0800</bug_when>
    <thetext>Attachment 354221 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:3610:  developmentRegion is not en.  [xcodeproj/settings] [5]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:70:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:71:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:72:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:73:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorSupportedOptions.h:74:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/cbor/CBORValue.h:165:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:56:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:57:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:58:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:59:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:60:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.h:61:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 13 in 29 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>1476468</commentid>
    <comment_count>22</comment_count>
      <attachid>354222</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-11-08 01:50:34 -0800</bug_when>
    <thetext>Created attachment 354222
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476478</commentid>
    <comment_count>23</comment_count>
      <attachid>354222</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-08 02:30:06 -0800</bug_when>
    <thetext>Comment on attachment 354222
Patch for landing

Clearing flags on attachment: 354222

Committed r237983: &lt;https://trac.webkit.org/changeset/237983&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476597</commentid>
    <comment_count>24</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-11-08 11:42:29 -0800</bug_when>
    <thetext>Landed a build fix for iOS device build:
Committed r237993: &lt;https://trac.webkit.org/changeset/237993&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476721</commentid>
    <comment_count>25</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-11-08 16:24:46 -0800</bug_when>
    <thetext>Landed a proper build fix:
Committed r238010: &lt;https://trac.webkit.org/changeset/238010&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352879</attachid>
            <date>2018-10-21 19:10:29 -0700</date>
            <delta_ts>2018-10-22 18:33:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190784-20181021191028.patch</filename>
            <type>text/plain</type>
            <size>147912</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3Mjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQ4M2QyZmU0N2E4ODVm
NjA0ODZlYjJlMWJjNGYzNTY5YTBjYzk3Yy4uNzkxNWZkMTVjNWZiMzc2MzdiN2FjMjVkNzY5NTdl
NjhkYjE1OTdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDE4LTEwLTIxICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBv
cnQgQ1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzIGZyb20gQ2hyb21pdW0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDc4NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggaW1wb3J0cyBDaHJvbWl1bSdzIENUQVAgZGV2aWNlIHJlcXVlc3QvcmVzcG9uc2UgY29udmVy
dGVyczoKKyAgICAgICAgMS4gSXQgZGlyZWN0bHkgaW1wb3J0cyB0aGUgZm9sbG93aW5nIGZpbGVz
IGFuZCBzdWl0IHRoZW0gdG8gV2ViS2l0J3MgY29kaW5nIHN0eWxlOgorICAgICAgICBodHRwczov
L2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vZGV2aWNlX3Jlc3BvbnNl
X2NvbnZlcnRlci5jYz9sPTIwJnJjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5
YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9kZXZp
Y2UvZmlkby9kZXZpY2VfcmVzcG9uc2VfY29udmVydGVyLmg/cmNsPTA5OGRmZDkwODUwZmZhODRj
MjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcv
Y2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhlbnRpY2F0b3JfZ2V0X2luZm9fcmVzcG9uc2Uu
Y2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAg
aHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhlbnRp
Y2F0b3JfZ2V0X2luZm9fcmVzcG9uc2UuaD9yY2w9MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRhYjc1
ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9z
cmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9zdXBwb3J0ZWRfb3B0aW9ucy5jYz9yY2w9MDk4
ZGZkOTA4NTBmZmE4NGMyN2E4ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczovL2Nz
LmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9zdXBw
b3J0ZWRfb3B0aW9ucy5oP3JjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5YzRl
YzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9kZXZpY2Uv
Zmlkby9jdGFwX3JlcXVlc3RfdW5pdHRlc3QuY2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdhODg0
YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21p
dW0vc3JjL2RldmljZS9maWRvL2N0YXBfcmVzcG9uc2VfdW5pdHRlc3QuY2M/cmNsPTA5OGRmZDkw
ODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJv
bWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2ZpZG9fdGVzdF9kYXRhLmg/bD0xJnJj
bD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5YzRlYzQ1CisgICAgICAgIDIuIEl0
IGdhdGhlcnMgdGhlIGZvbGxvd2luZyBtZXRob2RzIGludG8gRGV2aWNlUmVxdWVzdENvbnZlcnRl
cjoKKyAgICAgICAgQ3RhcEdldEFzc2VydGlvblJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisgICAg
ICAgIEN0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisgICAgICAgIFB1
YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yOjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAgUHVi
bGljS2V5Q3JlZGVudGlhbFBhcmFtczo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1YmxpY0tl
eUNyZWRlbnRpYWxScEVudGl0eTo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1YmxpY0tleUNy
ZWRlbnRpYWxVc2VyRW50aXR5OjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAgMy4gSXQgYWxzbyBh
cHBseSBhIHBhdGNoIGZyb20gQ2hyb21pdW0gdG8gQ0JPUlZhbHVlOgorICAgICAgICBodHRwczov
L2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjLysvN2I2ZmJmZjM1Y2Q4ZTRk
NTA4ZjA4ZTFjZDkzYjRhYTBhMGRjNDAyYyU1RSUyMS8KKworICAgICAgICBCZXNpZGVzIGltcG9y
dGluZyB0aGluZ3MgZnJvbSBDaHJvbWl1bSwgaXQgYWxzbyBpbXBsZW1lbnRzIFVzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudCBmb3IgYm90aAorICAgICAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zIGFuZCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgc3VjaCB0
aGF0IGJvdGggb3B0aW9ucworICAgICAgICBjYW4gc3BlY2lmeSBtb3JlIGRpbWVuc2lvbnMgb2Yg
YSBkZXNpcmVkIGF1dGhlbnRpY2F0b3IuCisKKyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6
QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGw6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9uczo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRo
bi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRs
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0
aG4vY2Jvci9DQk9SVmFsdWUuY3BwOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpDQk9SVmFs
dWUpOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpnZXRCb29sIGNvbnN0KToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmg6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKGZpZG86OnRvQXJyYXlWYWx1ZSk6CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNhdG9y
R2V0SW5mb1Jlc3BvbnNlOjpBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKToKKyAgICAgICAg
KGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldE1heE1zZ1NpemUpOgorICAg
ICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0UGluUHJvdG9jb2xz
KToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldEV4dGVu
c2lvbnMpOgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0
T3B0aW9ucyk6CisgICAgICAgIChmaWRvOjplbmNvZGVBc0NCT1IpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OnNldFN1cHBvcnRzUmVzaWRlbnRLZXkpOgorICAgICAgICAoZmlkbzo6QXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkpOgor
ICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJQcmVz
ZW5jZVJlcXVpcmVkKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zOjpzZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkpOgorICAgICAgICAoZmlkbzo6QXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldElzUGxhdGZvcm1EZXZpY2UpOgorICAgICAgICAoZmlk
bzo6Y29udmVydFRvQ0JPUik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcDogQWRkZWQuCisgICAgICAgIChm
aWRvOjpjb252ZXJ0UnBFbnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFVzZXJF
bnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFBhcmFtZXRlcnNUb0NCT1IpOgor
ICAgICAgICAoZmlkbzo6Y29udmVydERlc2NyaXB0b3JUb0NCT1IpOgorICAgICAgICAoZmlkbzo6
ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKToKKyAgICAgICAgKGZpZG86OmVuY29k
ZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IpOgorICAgICAgICAoZmlkbzo6ZW5jb2RlRW1wdHlB
dXRoZW50aWNhdG9yUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0Rl
dmljZVJlcXVlc3RDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKGZp
ZG86OmNvbnZlcnRTdHJpbmdUb1Byb3RvY29sVmVyc2lvbik6CisgICAgICAgIChmaWRvOjpnZXRS
ZXNwb25zZUNvZGUpOgorICAgICAgICAoZmlkbzo6Z2V0Q3JlZGVudGlhbElkKToKKyAgICAgICAg
KGZpZG86OnJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZSk6CisgICAgICAgIChmaWRvOjpy
ZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKToKKyAgICAgICAgKGZpZG86OnJlYWRDVEFQR2V0
SW5mb1Jlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVz
cG9uc2VDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4v
Zmlkby9GaWRvQ29uc3RhbnRzLmNwcDoKKyAgICAgICAgKGZpZG86OmlzQ3RhcERldmljZVJlc3Bv
bnNlQ29kZSk6CisgICAgICAgIChmaWRvOjpwdWJsaWNLZXlDcmVkZW50aWFsVHlwZVRvU3RyaW5n
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oOgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKwogMjAxOC0xMC0xOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtMRkNdW0lGQ10gUmVuZGVyUmVwbGFjZWQgcmVuZGVyZXIgc2hvdWxkIGNyZWF0
ZSBJbmxpbmVCb3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOGIwMmE1MmQ1MGQwMWQ3N2VjMWUz
NjEwY2M3ODcyNjEyNjM0ZTkzOC4uMjgyMjVkZmQyZWVmNjYwNzUwMzc2ZDRlZGZjNmJmY2RlNmUw
YTI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQzMSw2ICs0MzEsNyBAQCBzZXQoV2ViQ29y
ZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVu
dGlhbERlc2NyaXB0b3IuaWRsCiAgICAgTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50
aWFsUmVxdWVzdE9wdGlvbnMuaWRsCiAgICAgTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsVHlwZS5pZGwKKyAgICBNb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1
aXJlbWVudC5pZGwKIAogICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJh
c2UuaWRsCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5pZGwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCmluZGV4IDE1YTVkNmJkOTVlNzZkZjAxMmQ0ZjczODI2ZTA1MGZmZjhl
Yzk2MzYuLjk4N2ZmZWJiMzRlZWI3YjMwOTk1ZTgyZWE4NDc3NWZmMDM5YzkxMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzU1LDYgKzM1NSw3IEBAIEpTX0JJTkRJTkdfSURM
UyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlh
bERlc2NyaXB0b3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXV0aG4vUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmlkbCBcCisgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNhbGxiYWNrLmlkbCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVi
bGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCmluZGV4IDhhZmI0ZGQ0ZDQ2MWU4NmU2
OTQ4MzM5ZTIxMWIxOTllNzFhOTg3MzMuLmIxNTExMjYxYmYwYTA1MzZiMzU1OTg4YWZkMjY0MmI1
Y2UyNTJkNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVi
bGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5jbHVkZSAiUHVibGlj
S2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFs
VHlwZS5oIgorI2luY2x1ZGUgIlVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIgogI2luY2x1
ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAK
QEAgLTY2LDYgKzY3LDggQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnMgewogCiAgICAgc3RydWN0IEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSB7CiAgICAg
ICAgIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OworICAg
ICAgICBib29sIHJlcXVpcmVSZXNpZGVudEtleSB7IGZhbHNlIH07CisgICAgICAgIFVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudCB1c2VyVmVyaWZpY2F0aW9uIHsgVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50OjpQcmVmZXJyZWQgfTsKIAogICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJp
YT4gZGVjb2RlKERlY29kZXImKTsKQEAgLTEwNSw3ICsxMDgsNyBAQCBzdGQ6Om9wdGlvbmFsPFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IFB1YmxpY0tleUNy
ZWRlbnRpYQogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IGF1dGhlbnRpY2F0b3JB
dHRhY2htZW50OworICAgIGVuY29kZXIgPDwgYXV0aGVudGljYXRvckF0dGFjaG1lbnQgPDwgcmVx
dWlyZVJlc2lkZW50S2V5IDw8IHVzZXJWZXJpZmljYXRpb247CiB9CiAKIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+CkBAIC0xMTQsNiArMTE3LDE1IEBAIHN0ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhCiAg
ICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVj
dGlvbkNyaXRlcmlhIHJlc3VsdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQu
YXV0aGVudGljYXRvckF0dGFjaG1lbnQpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgc3RkOjpvcHRpb25hbDxib29sPiByZXF1aXJlUmVzaWRlbnRLZXk7CisgICAgZGVjb2Rl
ciA+PiByZXF1aXJlUmVzaWRlbnRLZXk7CisgICAgaWYgKCFyZXF1aXJlUmVzaWRlbnRLZXkpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmVzdWx0LnJlcXVpcmVSZXNpZGVudEtl
eSA9ICpyZXF1aXJlUmVzaWRlbnRLZXk7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShy
ZXN1bHQudXNlclZlcmlmaWNhdGlvbikpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucy5pZGwKaW5kZXggYTMxNTI1ZjMyNTQ4ZGI2NTgzOTM2ZWJiMDMyN2I5NTRhMWM3MTA2MS4u
MzZlMTgwYmVkZmM4MjAxZjNiYzRiNTM1Y2FjMGY3NDNjOGU3YzVmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsCkBAIC03NCwxMCArNzQsOCBAQCB0eXBlZGVm
IGxvbmcgQ09TRUFsZ29yaXRobUlkZW50aWZpZXI7CiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVVEhO
LAogXSBkaWN0aW9uYXJ5IEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSB7CiAgICAgQXV0
aGVudGljYXRvckF0dGFjaG1lbnQgICAgICBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKLSAgICAv
LyBXZSBkb24ndCBhbGxvdyBSUHMgdG8gc2V0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGF0IHRoaXMg
c3RhZ2UuCi0gICAgLy8gSGVuY2UsIHRob3NlIG9wdGlvbnMgYXJlIGFsd2F5cyB7IHRydWUsICJy
ZXF1aXJlZCIgfS4KLSAgICAvLyBib29sZWFuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVS
ZXNpZGVudEtleSA9IGZhbHNlOwotICAgIC8vIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCAg
dXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJyZWQiOworICAgIGJvb2xlYW4gICAgICAgICAgICAg
ICAgICAgICAgcmVxdWlyZVJlc2lkZW50S2V5ID0gZmFsc2U7CisgICAgVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50ICB1c2VyVmVyaWZpY2F0aW9uID0gInByZWZlcnJlZCI7CiB9OwogCiBbCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9Q
dWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaAppbmRleCAyNzQ0NzZlZjcyN2I4NWQ3
NWRkMWE5ZTIwYzU4N2FkMWI5MmYwZjAxLi5kZjY2MWYwMzZmYThjNTI5NzJiMGE3YTQ3NDY1ZTQ4
Yjk4NWM2YTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUgIlB1Ymxp
Y0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtMzgsNiArMzksNyBAQCBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zIHsKICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiB0aW1lb3V0OwogICAgIG11dGFi
bGUgU3RyaW5nIHJwSWQ7CiAgICAgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9y
PiBhbGxvd0NyZWRlbnRpYWxzOworICAgIHN0ZDo6b3B0aW9uYWw8VXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50PiB1c2VyVmVyaWZpY2F0aW9uIHsgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
OjpQcmVmZXJyZWQgfTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+IGRlY29kZShEZWNv
ZGVyJik7CkBAIC00Nyw3ICs0OSw3IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVz
dE9wdGlvbnMgewogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAg
ICBlbmNvZGVyIDw8IHRpbWVvdXQgPDwgcnBJZCA8PCBhbGxvd0NyZWRlbnRpYWxzOworICAgIGVu
Y29kZXIgPDwgdGltZW91dCA8PCBycElkIDw8IGFsbG93Q3JlZGVudGlhbHMgPDwgdXNlclZlcmlm
aWNhdGlvbjsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTY1LDYgKzY3LDEzIEBA
IHN0ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiBQdWJsaWNL
ZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuYWxsb3dDcmVkZW50aWFscykpCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFVzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudD4gdXNlclZlcmlmaWNhdGlvbjsKKyAgICBkZWNvZGVyID4+IHVzZXJWZXJp
ZmljYXRpb247CisgICAgaWYgKCF1c2VyVmVyaWZpY2F0aW9uKQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgIHJlc3VsdC51c2VyVmVyaWZpY2F0aW9uID0gV1RGTW92ZSh1c2VyVmVy
aWZpY2F0aW9uKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zLmlkbAppbmRleCA4OWEyMDZkYzljOWZkMjE3OGI5MTYxNmVkMTE2
NWZiNDdlOGU0ZGUwLi5kNjUxZGIyOGFlNjZkMGZjNjk4MjEwZDY4NzE2ZDZlMTExNDBjODM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsCkBAIC0zMCw4ICszMCw3
IEBACiAgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0OwogICAgIFVTVlN0cmluZyBycElkOwogICAg
IHNlcXVlbmNlPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiBhbGxvd0NyZWRlbnRpYWxz
ID0gW107Ci0gICAgLy8gQWx3YXlzICJyZXF1aXJlZCIgYXQgdGhpcyBzdGFnZQotICAgIC8vIFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB1c2VyVmVyaWZpY2F0aW9uID0gInByZWZlcnJlZCI7
CisgICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IHVzZXJWZXJpZmljYXRpb24gPSAicHJl
ZmVycmVkIjsKICAgICAvLyBOb3Qgc3VwcG9ydCB5ZXQuCiAgICAgLy8gQXV0aGVudGljYXRpb25F
eHRlbnNpb25zIGV4dGVuc2lvbnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODMxNGQwMmM1MmQ5YWFjMjE1NzVmZWI2ZmVhOGY0MTQ4ZmM1NzQ5NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQgeworICAgIFJlcXVpcmVkLAorICAgIFByZWZlcnJlZCwKKyAgICBEaXNjb3VyYWdl
ZAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3Jl
OjpVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQsCisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQsCisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkLAorICAgICAgICBXZWJDb3JlOjpVc2VyVmVy
aWZpY2F0aW9uUmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkCisgICAgPjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmY0ZmI5NWVhMDAyZTViYTk2NWNkNTdiMTUyMWM1
ODBlNjQ5OWNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVVEhOLAorICAgIEltcGxlbWVudGVk
QXM9VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50CitdIGVudW0gVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50IHsKKyAgICAicmVxdWlyZWQiLAorICAgICJwcmVmZXJyZWQiLAorICAgICJkaXNj
b3VyYWdlZCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2Nib3IvQ0JPUlZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jv
ci9DQk9SVmFsdWUuY3BwCmluZGV4IDI1ZWQ5OGI5MWY4M2E0YjQ2ODMwZGY0OGZhMDViYTg2OGM4
MTIyYjMuLjRjOGZmYWQxYThjZjBmNTE0N2NjNzY3NDRiYmE4NmRlNTFjOWRjYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwCkBA
IC0xNTMsNiArMTUzLDEyIEBAIENCT1JWYWx1ZTo6Q0JPUlZhbHVlKFNpbXBsZVZhbHVlIGluU2lt
cGxlKQogICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KGluU2ltcGxlKSA+PSAyMCAmJiBzdGF0
aWNfY2FzdDxpbnQ+KGluU2ltcGxlKSA8PSAyMyk7CiB9CiAKK0NCT1JWYWx1ZTo6Q0JPUlZhbHVl
KGJvb2wgaW5Cb29sKQorICAgIDogbV90eXBlKFR5cGU6OlNpbXBsZVZhbHVlKQoreworICAgIG1f
c2ltcGxlVmFsdWUgPSBpbkJvb2wgPyBDQk9SVmFsdWU6OlNpbXBsZVZhbHVlOjpUcnVlVmFsdWUg
OiBDQk9SVmFsdWU6OlNpbXBsZVZhbHVlOjpGYWxzZVZhbHVlOworfQorCiBDQk9SVmFsdWUmIENC
T1JWYWx1ZTo6b3BlcmF0b3I9KENCT1JWYWx1ZSYmIHRoYXQpCiB7CiAgICAgaW50ZXJuYWxDbGVh
bnVwKCk7CkBAIC0yNDAsNiArMjQ2LDEyIEBAIENCT1JWYWx1ZTo6U2ltcGxlVmFsdWUgQ0JPUlZh
bHVlOjpnZXRTaW1wbGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2ltcGxlVmFsdWU7CiB9
CiAKK2Jvb2wgQ0JPUlZhbHVlOjpnZXRCb29sKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNCb29s
KCkpOworICAgIHJldHVybiBtX3NpbXBsZVZhbHVlID09IFNpbXBsZVZhbHVlOjpUcnVlVmFsdWU7
Cit9CisKIHZvaWQgQ0JPUlZhbHVlOjppbnRlcm5hbE1vdmVDb25zdHJ1Y3RGcm9tKENCT1JWYWx1
ZSYmIHRoYXQpCiB7CiAgICAgbV90eXBlID0gdGhhdC5tX3R5cGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmgKaW5kZXggZTJkYjBlMTI3Mzhh
OTlhNzQ3YzgyZjQwOTEzMDA0YzY2MGI3ZThkNC4uNmE0YzgzYWJhMDMxYzM4ZDM3OWU2NmJjOTNl
YzQ3ZTVmMTkzMTc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9jYm9yL0NCT1JWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Y2Jvci9DQk9SVmFsdWUuaApAQCAtMTM4LDYgKzEzOCw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBDQk9SVmFsdWUoTWFwVmFsdWUmJik7CiAKICAgICBleHBsaWNpdCBDQk9SVmFsdWUoU2ltcGxl
VmFsdWUpOworICAgIGV4cGxpY2l0IENCT1JWYWx1ZShib29sKTsKIAogICAgIENCT1JWYWx1ZSYg
b3BlcmF0b3I9KENCT1JWYWx1ZSYmKTsKIApAQCAtMTYxLDkgKzE2MiwxMSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0FycmF5KCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFR5cGU6OkFycmF5OyB9
CiAgICAgYm9vbCBpc01hcCgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBUeXBlOjpNYXA7IH0K
ICAgICBib29sIGlzU2ltcGxlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFR5cGU6OlNpbXBs
ZVZhbHVlOyB9CisgICAgYm9vbCBpc0Jvb2woKSBjb25zdCB7IHJldHVybiBpc1NpbXBsZSgpICYm
IChtX3NpbXBsZVZhbHVlID09IFNpbXBsZVZhbHVlOjpUcnVlVmFsdWUgfHwgbV9zaW1wbGVWYWx1
ZSA9PSBTaW1wbGVWYWx1ZTo6RmFsc2VWYWx1ZSk7IH0KIAogICAgIC8vIFRoZXNlIHdpbGwgYWxs
IGZhdGFsbHkgYXNzZXJ0IGlmIHRoZSB0eXBlIGRvZXNuJ3QgbWF0Y2guCiAgICAgU2ltcGxlVmFs
dWUgZ2V0U2ltcGxlVmFsdWUoKSBjb25zdDsKKyAgICBib29sIGdldEJvb2woKSBjb25zdDsKICAg
ICBjb25zdCBpbnQ2NF90JiBnZXRJbnRlZ2VyKCkgY29uc3Q7CiAgICAgY29uc3QgaW50NjRfdCYg
Z2V0VW5zaWduZWQoKSBjb25zdDsKICAgICBjb25zdCBpbnQ2NF90JiBnZXROZWdhdGl2ZSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNlMDRlMjUyMzE3NzQ0ODg1ZjdmNjI0N2VmYTY1MDJhZjRlYTQxNmIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZS5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8vIENvcHlyaWdodCAyMDE4IFRo
ZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
Ky8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisv
LyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
Ly8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
Ly8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCIKKworI2lmIEVOQUJMRShXRUJfQVVUSE4p
CisKKyNpbmNsdWRlICJDQk9SVmFsdWUuaCIKKyNpbmNsdWRlICJDQk9SV3JpdGVyLmgiCisKK25h
bWVzcGFjZSBmaWRvIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIENvbnRhaW5lcj4KK2Nib3I6OkNC
T1JWYWx1ZTo6QXJyYXlWYWx1ZSB0b0FycmF5VmFsdWUoY29uc3QgQ29udGFpbmVyJiBjb250YWlu
ZXIpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpBcnJheVZhbHVlIHZhbHVlOworICAgIHZhbHVl
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY29udGFpbmVyLnNpemUoKSk7CisgICAgZm9yIChjb25z
dCBhdXRvJiBpdGVtIDogY29udGFpbmVyKQorICAgICAgICB2YWx1ZS5hcHBlbmQoY2Jvcjo6Q0JP
UlZhbHVlKGl0ZW0pKTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK0F1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2U6OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2Uoc3RkOjpzZXQ8UHJvdG9j
b2xWZXJzaW9uPiYmIHZlcnNpb25zLCBWZWN0b3I8dWludDhfdD4mJiBhYWd1aWQpCisgICAgOiBt
X3ZlcnNpb25zKFdURk1vdmUodmVyc2lvbnMpKQorICAgICwgbV9hYWd1aWQoV1RGTW92ZShhYWd1
aWQpKQoreworfQorCitBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBBdXRoZW50aWNhdG9y
R2V0SW5mb1Jlc3BvbnNlOjpzZXRNYXhNc2dTaXplKHVpbnQzMl90IG1heE1zZ1NpemUpCit7Cisg
ICAgbV9tYXhNc2dTaXplID0gbWF4TXNnU2l6ZTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0F1
dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6
OnNldFBpblByb3RvY29scyhWZWN0b3I8dWludDhfdD4mJiBwaW5Qcm90b2NvbHMpCit7CisgICAg
bV9waW5Qcm90b2NvbHMgPSBXVEZNb3ZlKHBpblByb3RvY29scyk7CisgICAgcmV0dXJuICp0aGlz
OworfQorCitBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBBdXRoZW50aWNhdG9yR2V0SW5m
b1Jlc3BvbnNlOjpzZXRFeHRlbnNpb25zKFZlY3RvcjxTdHJpbmc+JiYgZXh0ZW5zaW9ucykKK3sK
KyAgICBtX2V4dGVuc2lvbnMgPSBXVEZNb3ZlKGV4dGVuc2lvbnMpOworICAgIHJldHVybiAqdGhp
czsKK30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgQXV0aGVudGljYXRvckdldElu
Zm9SZXNwb25zZTo6c2V0T3B0aW9ucyhBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYmIG9w
dGlvbnMpCit7CisgICAgbV9vcHRpb25zID0gV1RGTW92ZShvcHRpb25zKTsKKyAgICByZXR1cm4g
KnRoaXM7Cit9CisKK1ZlY3Rvcjx1aW50OF90PiBlbmNvZGVBc0NCT1IoY29uc3QgQXV0aGVudGlj
YXRvckdldEluZm9SZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpN
YXBWYWx1ZSBkZXZpY2VJbmZvTWFwOworCisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpBcnJheVZhbHVl
IHZlcnNpb25BcnJheTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHZlcnNpb24gOiByZXNwb25zZS52
ZXJzaW9ucygpKQorICAgICAgICB2ZXJzaW9uQXJyYXkuYXBwZW5kKHZlcnNpb24gPT0gUHJvdG9j
b2xWZXJzaW9uOjprQ3RhcCA/IGtDdGFwMlZlcnNpb24gOiBrVTJmVmVyc2lvbik7CisgICAgZGV2
aWNlSW5mb01hcC5lbXBsYWNlKDEsIFdURk1vdmUodmVyc2lvbkFycmF5KSk7CisKKyAgICBpZiAo
cmVzcG9uc2UuZXh0ZW5zaW9ucygpKQorICAgICAgICBkZXZpY2VJbmZvTWFwLmVtcGxhY2UoMiwg
dG9BcnJheVZhbHVlKCpyZXNwb25zZS5leHRlbnNpb25zKCkpKTsKKworICAgIGRldmljZUluZm9N
YXAuZW1wbGFjZSgzLCByZXNwb25zZS5hYWd1aWQoKSk7CisgICAgZGV2aWNlSW5mb01hcC5lbXBs
YWNlKDQsIGNvbnZlcnRUb0NCT1IocmVzcG9uc2Uub3B0aW9ucygpKSk7CisKKyAgICBpZiAocmVz
cG9uc2UubWF4TXNnU2l6ZSgpKQorICAgICAgICBkZXZpY2VJbmZvTWFwLmVtcGxhY2UoNSwgc3Rh
dGljX2Nhc3Q8aW50NjRfdD4oKnJlc3BvbnNlLm1heE1zZ1NpemUoKSkpOworCisgICAgaWYgKHJl
c3BvbnNlLnBpblByb3RvY29sKCkpCisgICAgICAgIGRldmljZUluZm9NYXAuZW1wbGFjZSg2LCB0
b0FycmF5VmFsdWUoKnJlc3BvbnNlLnBpblByb3RvY29sKCkpKTsKKworICAgIGF1dG8gZW5jb2Rl
ZEJ5dGVzID0gY2Jvcjo6Q0JPUldyaXRlcjo6d3JpdGUoY2Jvcjo6Q0JPUlZhbHVlKFdURk1vdmUo
ZGV2aWNlSW5mb01hcCkpKTsKKyAgICBBU1NFUlQoZW5jb2RlZEJ5dGVzKTsKKyAgICByZXR1cm4g
KmVuY29kZWRCeXRlczsKK30KKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8gRU5B
QkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmI0ZTYwYTJmOTNkYjBmNDQ1NTE4NWQwNjUwMWRkMDFjMTVlOWYxMWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGlj
YXRvckdldEluZm9SZXNwb25zZS5oCkBAIC0wLDAgKzEsNzYgQEAKKy8vIENvcHlyaWdodCAyMDE4
IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8v
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8v
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCX0FVVEhOKQorCisjaW5jbHVkZSAiQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCIK
KyNpbmNsdWRlICJGaWRvQ29uc3RhbnRzLmgiCisjaW5jbHVkZSA8c2V0PgorCituYW1lc3BhY2Ug
ZmlkbyB7CisKKy8vIEF1dGhlbnRpY2F0b3IgcmVzcG9uc2UgZm9yIEF1dGhlbnRpY2F0b3JHZXRJ
bmZvIHJlcXVlc3QgdGhhdCBlbmNhcHN1bGF0ZXMKKy8vIHZlcnNpb25zLCBvcHRpb25zLCBBQUdV
SUQoQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbiBHVUlEKSwgb3RoZXIKKy8vIGF1dGhlbnRpY2F0
b3IgZGV2aWNlIGluZm9ybWF0aW9uLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNz
L2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3Rv
Y29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNhdG9yZ2V0aW5mby0weDA0CitjbGFz
cyBXRUJDT1JFX0VYUE9SVCBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlIHsKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKTsKK3B1YmxpYzoK
KyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKHN0ZDo6c2V0PFByb3RvY29sVmVyc2lv
bj4mJiB2ZXJzaW9ucywgVmVjdG9yPHVpbnQ4X3Q+JiYgYWFndWlkKTsKKyAgICBBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlKEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmJiB0aGF0KSA9
IGRlZmF1bHQ7CisgICAgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgb3BlcmF0b3I9KEF1
dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmJiBvdGhlcikgPSBkZWZhdWx0OworCisgICAgQXV0
aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgc2V0TWF4TXNnU2l6ZSh1aW50MzJfdCk7CisgICAg
QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgc2V0UGluUHJvdG9jb2xzKFZlY3Rvcjx1aW50
OF90PiYmKTsKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBzZXRFeHRlbnNpb25z
KFZlY3RvcjxTdHJpbmc+JiYpOworICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIHNl
dE9wdGlvbnMoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmJik7CisKKyAgICBjb25zdCBz
dGQ6OnNldDxQcm90b2NvbFZlcnNpb24+JiB2ZXJzaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fdmVy
c2lvbnM7IH0KKyAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGFhZ3VpZCgpIGNvbnN0IHsgcmV0
dXJuIG1fYWFndWlkOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4mIG1heE1z
Z1NpemUoKSBjb25zdCB7IHJldHVybiBtX21heE1zZ1NpemU7IH0KKyAgICBjb25zdCBzdGQ6Om9w
dGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4mIHBpblByb3RvY29sKCkgY29uc3QgeyByZXR1cm4gbV9w
aW5Qcm90b2NvbHM7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYg
ZXh0ZW5zaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fZXh0ZW5zaW9uczsgfQorICAgIGNvbnN0IEF1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBvcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9v
cHRpb25zOyB9CisKK3ByaXZhdGU6CisgICAgc3RkOjpzZXQ8UHJvdG9jb2xWZXJzaW9uPiBtX3Zl
cnNpb25zOworICAgIFZlY3Rvcjx1aW50OF90PiBtX2FhZ3VpZDsKKyAgICBzdGQ6Om9wdGlvbmFs
PHVpbnQzMl90PiBtX21heE1zZ1NpemU7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhf
dD4+IG1fcGluUHJvdG9jb2xzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IG1f
ZXh0ZW5zaW9uczsKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBtX29wdGlvbnM7
Cit9OworCitXRUJDT1JFX0VYUE9SVCBWZWN0b3I8dWludDhfdD4gZW5jb2RlQXNDQk9SKGNvbnN0
IEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmKTsKKworfSAvLyBuYW1lc3BhY2UgZmlkbwor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBv
cnRlZE9wdGlvbnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwZTFiYTUyZmJiNDE3Yzk0MTg5NWVjNjgzNDBj
MDY3Njg4ZjBjZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3BwCkBAIC0wLDAgKzEs
MTA3IEBACisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6Cisv
LworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisv
LyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9u
cy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkZpZG9Db25zdGFudHMu
aCIKKworbmFtZXNwYWNlIGZpZG8geworCitBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYg
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFN1cHBvcnRzUmVzaWRlbnRLZXkoYm9v
bCBzdXBwb3J0c1Jlc2lkZW50S2V5KQoreworICAgIG1fc3VwcG9ydHNSZXNpZGVudEtleSA9IHN1
cHBvcnRzUmVzaWRlbnRLZXk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitBdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9ucyYgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJW
ZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSB1c2Vy
VmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KQoreworICAgIG1fdXNlclZlcmlmaWNhdGlvbkF2YWls
YWJpbGl0eSA9IHVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk7CisgICAgcmV0dXJuICp0aGlz
OworfQorCitBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgQXV0aGVudGljYXRvclN1cHBv
cnRlZE9wdGlvbnM6OnNldFVzZXJQcmVzZW5jZVJlcXVpcmVkKGJvb2wgdXNlclByZXNlbmNlUmVx
dWlyZWQpCit7CisgICAgbV91c2VyUHJlc2VuY2VSZXF1aXJlZCA9IHVzZXJQcmVzZW5jZVJlcXVp
cmVkOworICAgIHJldHVybiAqdGhpczsKK30KKworQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlv
bnMmIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpzZXRDbGllbnRQaW5BdmFpbGFiaWxp
dHkoQ2xpZW50UGluQXZhaWxhYmlsaXR5IGNsaWVudFBpbkF2YWlsYWJpbGl0eSkKK3sKKyAgICBt
X2NsaWVudFBpbkF2YWlsYWJpbGl0eSA9IGNsaWVudFBpbkF2YWlsYWJpbGl0eTsKKyAgICByZXR1
cm4gKnRoaXM7Cit9CisKK0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0SXNQbGF0Zm9ybURldmljZShib29sIGlzUGxhdGZvcm1E
ZXZpY2UpCit7CisgICAgbV9pc1BsYXRmb3JtRGV2aWNlID0gaXNQbGF0Zm9ybURldmljZTsKKyAg
ICByZXR1cm4gKnRoaXM7Cit9CisKK2Nib3I6OkNCT1JWYWx1ZSBjb252ZXJ0VG9DQk9SKGNvbnN0
IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBvcHRpb25zKQoreworICAgIGNib3I6OkNC
T1JWYWx1ZTo6TWFwVmFsdWUgb3B0aW9uTWFwOworICAgIG9wdGlvbk1hcC5lbXBsYWNlKGtSZXNp
ZGVudEtleU1hcEtleSwgb3B0aW9ucy5zdXBwb3J0c1Jlc2lkZW50S2V5KCkpOworICAgIG9wdGlv
bk1hcC5lbXBsYWNlKGtVc2VyUHJlc2VuY2VNYXBLZXksIG9wdGlvbnMudXNlclByZXNlbmNlUmVx
dWlyZWQoKSk7CisgICAgb3B0aW9uTWFwLmVtcGxhY2Uoa1BsYXRmb3JtRGV2aWNlTWFwS2V5LCBv
cHRpb25zLmlzUGxhdGZvcm1EZXZpY2UoKSk7CisKKyAgICB1c2luZyBVdkF2YWlsYWJpbGl0eSA9
IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmls
aXR5OworCisgICAgc3dpdGNoIChvcHRpb25zLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHko
KSkgeworICAgIGNhc2UgVXZBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkOgor
ICAgICAgICBvcHRpb25NYXAuZW1wbGFjZShrVXNlclZlcmlmaWNhdGlvbk1hcEtleSwgdHJ1ZSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVXZBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXRO
b3RDb25maWd1cmVkOgorICAgICAgICBvcHRpb25NYXAuZW1wbGFjZShrVXNlclZlcmlmaWNhdGlv
bk1hcEtleSwgZmFsc2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFV2QXZhaWxhYmlsaXR5
OjprTm90U3VwcG9ydGVkOgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICB1c2luZyBDbGll
bnRQaW5BdmFpbGFiaWxpdHkgPSBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50
UGluQXZhaWxhYmlsaXR5OworCisgICAgc3dpdGNoIChvcHRpb25zLmNsaWVudFBpbkF2YWlsYWJp
bGl0eSgpKSB7CisgICAgY2FzZSBDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRQ
aW5TZXQ6CisgICAgICAgIG9wdGlvbk1hcC5lbXBsYWNlKGtDbGllbnRQaW5NYXBLZXksIHRydWUp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBv
cnRlZEJ1dFBpbk5vdFNldDoKKyAgICAgICAgb3B0aW9uTWFwLmVtcGxhY2Uoa0NsaWVudFBpbk1h
cEtleSwgZmFsc2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENsaWVudFBpbkF2YWlsYWJp
bGl0eTo6a05vdFN1cHBvcnRlZDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJu
IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKG9wdGlvbk1hcCkpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzQwYWU0YmU0MjYxNGM3MTRlNTdmYWY2
YTQ0NjVjN2YyZmY5OTE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgKQEAgLTAsMCAr
MSw5NiBAQAorLy8gQ29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0Ogor
Ly8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8g
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
Ly8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJDQk9SVmFs
dWUuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgZmlkbyB7CisKKy8v
IFJlcHJlc2VudHMgQ1RBUCBkZXZpY2UgcHJvcGVydGllcyBhbmQgY2FwYWJpbGl0aWVzIHJlY2Vp
dmVkIGFzIGEgcmVzcG9uc2UgdG8KKy8vIEF1dGhlbnRpY2F0b3JHZXRJbmZvIGNvbW1hbmQuCitj
bGFzcyBXRUJDT1JFX0VYUE9SVCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyB7CisgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMpOworcHVi
bGljOgorICAgIGVudW0gY2xhc3MgVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSB7CisgICAg
ICAgIC8vIGUuZy4gQXV0aGVudGljYXRvciB3aXRoIGZpbmdlciBwcmludCBzZW5zb3IgYW5kIHVz
ZXIncyBmaW5nZXJwcmludCBpcworICAgICAgICAvLyByZWdpc3RlcmVkIHRvIHRoZSBkZXZpY2Uu
CisgICAgICAgIGtTdXBwb3J0ZWRBbmRDb25maWd1cmVkLAorICAgICAgICAvLyBlLmcuIEF1dGhl
bnRpY2F0b3Igd2l0aCBmaW5nZXJwcmludCBzZW5zb3Igd2l0aG91dCB1c2VyJ3MgZmluZ2VycHJp
bnQKKyAgICAgICAgLy8gcmVnaXN0ZXJlZC4KKyAgICAgICAga1N1cHBvcnRlZEJ1dE5vdENvbmZp
Z3VyZWQsCisgICAgICAgIGtOb3RTdXBwb3J0ZWQKKyAgICB9OworCisgICAgZW51bSBjbGFzcyBD
bGllbnRQaW5BdmFpbGFiaWxpdHkgeworICAgICAgICBrU3VwcG9ydGVkQW5kUGluU2V0LAorICAg
ICAgICBrU3VwcG9ydGVkQnV0UGluTm90U2V0LAorICAgICAgICBrTm90U3VwcG9ydGVkLAorICAg
IH07CisKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucygpID0gZGVmYXVsdDsKKyAg
ICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyhBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9ucyYmKSA9IGRlZmF1bHQ7CisgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIG9w
ZXJhdG9yPShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYmKSA9IGRlZmF1bHQ7CisKKyAg
ICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0SXNQbGF0Zm9ybURldmljZShib29s
KTsKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0U3VwcG9ydHNSZXNpZGVu
dEtleShib29sKTsKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0VXNlclZl
cmlmaWNhdGlvbkF2YWlsYWJpbGl0eShVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KTsKKyAg
ICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0VXNlclByZXNlbmNlUmVxdWlyZWQo
Ym9vbCk7CisgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIHNldENsaWVudFBpbkF2
YWlsYWJpbGl0eShDbGllbnRQaW5BdmFpbGFiaWxpdHkpOworCisgICAgYm9vbCBpc1BsYXRmb3Jt
RGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9pc1BsYXRmb3JtRGV2aWNlOyB9CisgICAgYm9vbCBz
dXBwb3J0c1Jlc2lkZW50S2V5KCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c1Jlc2lkZW50S2V5
OyB9CisgICAgVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSB1c2VyVmVyaWZpY2F0aW9uQXZh
aWxhYmlsaXR5KCkgY29uc3QgeyByZXR1cm4gbV91c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5
OyB9CisgICAgYm9vbCB1c2VyUHJlc2VuY2VSZXF1aXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdXNl
clByZXNlbmNlUmVxdWlyZWQ7IH0KKyAgICBDbGllbnRQaW5BdmFpbGFiaWxpdHkgY2xpZW50UGlu
QXZhaWxhYmlsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRQaW5BdmFpbGFiaWxpdHk7IH0K
KworcHJpdmF0ZToKKyAgICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgZGV2aWNlIGlzIGF0dGFjaGVk
IHRvIHRoZSBjbGllbnQgYW5kIHRoZXJlZm9yZSBjYW4ndCBiZQorICAgIC8vIHJlbW92ZWQgYW5k
IHVzZWQgb24gYW5vdGhlciBjbGllbnQuCisgICAgYm9vbCBtX2lzUGxhdGZvcm1EZXZpY2UgeyBm
YWxzZSB9OworICAgIC8vIEluZGljYXRlcyB0aGF0IHRoZSBkZXZpY2UgaXMgY2FwYWJsZSBvZiBz
dG9yaW5nIGtleXMgb24gdGhlIGRldmljZSBpdHNlbGYKKyAgICAvLyBhbmQgdGhlcmVmb3JlIGNh
biBzYXRpc2Z5IHRoZSBhdXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9uIHJlcXVlc3Qgd2l0aAorICAg
IC8vIGFsbG93TGlzdCBwYXJhbWV0ZXIgbm90IHNwZWNpZmllZCBvciBlbXB0eS4KKyAgICBib29s
IG1fc3VwcG9ydHNSZXNpZGVudEtleSB7IGZhbHNlIH07CisgICAgLy8gSW5kaWNhdGVzIHdoZXRo
ZXIgdGhlIGRldmljZSBpcyBjYXBhYmxlIG9mIHZlcmlmeWluZyB0aGUgdXNlciBvbiBpdHMgb3du
LgorICAgIFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgbV91c2VyVmVyaWZpY2F0aW9uQXZh
aWxhYmlsaXR5IHsgVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCB9
OworICAgIGJvb2wgbV91c2VyUHJlc2VuY2VSZXF1aXJlZCB7IHRydWUgfTsKKyAgICAvLyBSZXBy
ZXNlbnRzIHdoZXRoZXIgY2xpZW50IHBpbiBpbiBzZXQgYW5kIHN0b3JlZCBpbiBkZXZpY2UuIFNl
dCBhcyBudWxsCisgICAgLy8gb3B0aW9uYWwgaWYgY2xpZW50IHBpbiBjYXBhYmlsaXR5IGlzIG5v
dCBzdXBwb3J0ZWQgYnkgdGhlIGF1dGhlbnRpY2F0b3IuCisgICAgQ2xpZW50UGluQXZhaWxhYmls
aXR5IG1fY2xpZW50UGluQXZhaWxhYmlsaXR5IHsgQ2xpZW50UGluQXZhaWxhYmlsaXR5OjprTm90
U3VwcG9ydGVkIH07Cit9OworCitXRUJDT1JFX0VYUE9SVCBjYm9yOjpDQk9SVmFsdWUgY29udmVy
dFRvQ0JPUihjb25zdCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYpOworCit9IC8vIG5h
bWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVl
c3RDb252ZXJ0ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkOTYxOGZiMDQzMzc1NDhlOTY1N2QxN2Q1ZTc5
ZmEyYTJjODVhMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAKQEAgLTAsMCArMSwxODIgQEAK
Ky8vIENvcHlyaWdodCAyMDE3IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8v
IGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8v
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCIKKworI2lmIEVO
QUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJDQk9SV3JpdGVyLmgiCisjaW5jbHVkZSAiUHVi
bGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oIgorI2luY2x1ZGUgIlB1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFt
ZXNwYWNlIGZpZG8gewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3VzaW5nIFVWQXZhaWxh
YmlsaXR5ID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25B
dmFpbGFiaWxpdHk7CisKK3N0YXRpYyBjYm9yOjpDQk9SVmFsdWUgY29udmVydFJwRW50aXR5VG9D
Qk9SKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlJwRW50aXR5JiBy
cEVudGl0eSkKK3sKKyAgICBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIHJwTWFwOworICAgIHJw
TWFwLmVtcGxhY2Uoa0VudGl0eU5hbWVNYXBLZXksIHJwRW50aXR5Lm5hbWUpOworICAgIGlmICgh
cnBFbnRpdHkuaWNvbi5pc0VtcHR5KCkpCisgICAgICAgIHJwTWFwLmVtcGxhY2Uoa0ljb25VcmxN
YXBLZXksIHJwRW50aXR5Lmljb24pOworICAgIGlmICghcnBFbnRpdHkuaWQuaXNFbXB0eSgpKQor
ICAgICAgICBycE1hcC5lbXBsYWNlKGtFbnRpdHlJZE1hcEtleSwgcnBFbnRpdHkuaWQpOworCisg
ICAgcmV0dXJuIGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKHJwTWFwKSk7Cit9CisKK3N0YXRpYyBj
Ym9yOjpDQk9SVmFsdWUgY29udmVydFVzZXJFbnRpdHlUb0NCT1IoY29uc3QgUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9uczo6VXNlckVudGl0eSYgdXNlckVudGl0eSkKK3sKKyAgICBj
Ym9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIHVzZXJNYXA7CisgICAgdXNlck1hcC5lbXBsYWNlKGtF
bnRpdHlOYW1lTWFwS2V5LCB1c2VyRW50aXR5Lm5hbWUpOworICAgIGlmICghdXNlckVudGl0eS5p
Y29uLmlzRW1wdHkoKSkKKyAgICAgICAgdXNlck1hcC5lbXBsYWNlKGtJY29uVXJsTWFwS2V5LCB1
c2VyRW50aXR5Lmljb24pOworICAgIHVzZXJNYXAuZW1wbGFjZShrRW50aXR5SWRNYXBLZXksIHVz
ZXJFbnRpdHkuaWRWZWN0b3IpOworICAgIHVzZXJNYXAuZW1wbGFjZShrRGlzcGxheU5hbWVNYXBL
ZXksIHVzZXJFbnRpdHkuZGlzcGxheU5hbWUpOworICAgIHJldHVybiBjYm9yOjpDQk9SVmFsdWUo
V1RGTW92ZSh1c2VyTWFwKSk7Cit9CisKK3N0YXRpYyBjYm9yOjpDQk9SVmFsdWUgY29udmVydFBh
cmFtZXRlcnNUb0NCT1IoY29uc3QgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9w
dGlvbnM6OlBhcmFtZXRlcnM+JiBwYXJhbWV0ZXJzKQoreworICAgIGNib3I6OkNCT1JWYWx1ZTo6
QXJyYXlWYWx1ZSBjcmVkZW50aWFsUGFyYW1BcnJheTsKKyAgICBjcmVkZW50aWFsUGFyYW1BcnJh
eS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHBhcmFtZXRlcnMuc2l6ZSgpKTsKKyAgICBmb3IgKGNv
bnN0IGF1dG8mIGNyZWRlbnRpYWwgOiBwYXJhbWV0ZXJzKSB7CisgICAgICAgIGNib3I6OkNCT1JW
YWx1ZTo6TWFwVmFsdWUgY2JvckNyZWRlbnRpYWxNYXA7CisgICAgICAgIGNib3JDcmVkZW50aWFs
TWFwLmVtcGxhY2Uoa0NyZWRlbnRpYWxUeXBlTWFwS2V5LCBwdWJsaWNLZXlDcmVkZW50aWFsVHlw
ZVRvU3RyaW5nKGNyZWRlbnRpYWwudHlwZSkpOworICAgICAgICBjYm9yQ3JlZGVudGlhbE1hcC5l
bXBsYWNlKGtDcmVkZW50aWFsQWxnb3JpdGhtTWFwS2V5LCBjcmVkZW50aWFsLmFsZyk7CisgICAg
ICAgIGNyZWRlbnRpYWxQYXJhbUFycmF5LmFwcGVuZChXVEZNb3ZlKGNib3JDcmVkZW50aWFsTWFw
KSk7CisgICAgfQorICAgIHJldHVybiBjYm9yOjpDQk9SVmFsdWUoV1RGTW92ZShjcmVkZW50aWFs
UGFyYW1BcnJheSkpOworfQorCitzdGF0aWMgY2Jvcjo6Q0JPUlZhbHVlIGNvbnZlcnREZXNjcmlw
dG9yVG9DQk9SKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
KQoreworICAgIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUgY2JvckRlc2NyaXB0b3JNYXA7Cisg
ICAgY2JvckRlc2NyaXB0b3JNYXBbY2Jvcjo6Q0JPUlZhbHVlKGtDcmVkZW50aWFsVHlwZUtleSld
ID0gY2Jvcjo6Q0JPUlZhbHVlKHB1YmxpY0tleUNyZWRlbnRpYWxUeXBlVG9TdHJpbmcoZGVzY3Jp
cHRvci50eXBlKSk7CisgICAgY2JvckRlc2NyaXB0b3JNYXBbY2Jvcjo6Q0JPUlZhbHVlKGtDcmVk
ZW50aWFsSWRLZXkpXSA9IGNib3I6OkNCT1JWYWx1ZShkZXNjcmlwdG9yLmlkVmVjdG9yKTsKKyAg
ICByZXR1cm4gY2Jvcjo6Q0JPUlZhbHVlKFdURk1vdmUoY2JvckRlc2NyaXB0b3JNYXApKTsKK30K
KworVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihjb25z
dCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMmIG9wdGlvbnMsIFVWQXZhaWxhYmlsaXR5IHV2Q2FwYWJpbGl0eSkKK3sKKyAgICBj
Ym9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGNib3JNYXA7CisgICAgY2Jvck1hcFtjYm9yOjpDQk9S
VmFsdWUoMSldID0gY2Jvcjo6Q0JPUlZhbHVlKGhhc2gpOworICAgIGNib3JNYXBbY2Jvcjo6Q0JP
UlZhbHVlKDIpXSA9IGNvbnZlcnRScEVudGl0eVRvQ0JPUihvcHRpb25zLnJwKTsKKyAgICBjYm9y
TWFwW2Nib3I6OkNCT1JWYWx1ZSgzKV0gPSBjb252ZXJ0VXNlckVudGl0eVRvQ0JPUihvcHRpb25z
LnVzZXIpOworICAgIGNib3JNYXBbY2Jvcjo6Q0JPUlZhbHVlKDQpXSA9IGNvbnZlcnRQYXJhbWV0
ZXJzVG9DQk9SKG9wdGlvbnMucHViS2V5Q3JlZFBhcmFtcyk7CisgICAgaWYgKCFvcHRpb25zLmV4
Y2x1ZGVDcmVkZW50aWFscy5pc0VtcHR5KCkpIHsKKyAgICAgICAgY2Jvcjo6Q0JPUlZhbHVlOjpB
cnJheVZhbHVlIGV4Y2x1ZGVMaXN0QXJyYXk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgZGVz
Y3JpcHRvciA6IG9wdGlvbnMuZXhjbHVkZUNyZWRlbnRpYWxzKQorICAgICAgICAgICAgZXhjbHVk
ZUxpc3RBcnJheS5hcHBlbmQoY29udmVydERlc2NyaXB0b3JUb0NCT1IoZGVzY3JpcHRvcikpOwor
ICAgICAgICBjYm9yTWFwW2Nib3I6OkNCT1JWYWx1ZSg1KV0gPSBjYm9yOjpDQk9SVmFsdWUoV1RG
TW92ZShleGNsdWRlTGlzdEFycmF5KSk7CisgICAgfQorCisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpN
YXBWYWx1ZSBvcHRpb25NYXA7CisgICAgaWYgKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlv
bikgeworICAgICAgICAvLyBSZXNpZGVudCBrZXlzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IGRlZmF1
bHQuCisgICAgICAgIGlmIChvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnJlcXVpcmVS
ZXNpZGVudEtleSkKKyAgICAgICAgICAgIG9wdGlvbk1hcFtjYm9yOjpDQk9SVmFsdWUoa1Jlc2lk
ZW50S2V5TWFwS2V5KV0gPSBjYm9yOjpDQk9SVmFsdWUodHJ1ZSk7CisKKyAgICAgICAgLy8gVXNl
ciB2ZXJpZmljYXRpb24gaXMgbm90IHJlcXVpcmVkIGJ5IGRlZmF1bHQuCisgICAgICAgIGJvb2wg
cmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSBmYWxzZTsKKyAgICAgICAgc3dpdGNoIChvcHRpb25z
LmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnVzZXJWZXJpZmljYXRpb24pIHsKKyAgICAgICAgY2Fz
ZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlJlcXVpcmVkOgorICAgICAgICAgICAgcmVx
dWlyZVVzZXJWZXJpZmljYXRpb24gPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQ6CisgICAgICAgICAg
ICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IHV2Q2FwYWJpbGl0eSA9PSBVVkF2YWlsYWJpbGl0
eTo6a05vdFN1cHBvcnRlZCA/IGZhbHNlIDogdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlzY291cmFnZWQ6CisgICAg
ICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IGZhbHNlOworICAgICAgICB9CisgICAg
ICAgIG9wdGlvbk1hcFtjYm9yOjpDQk9SVmFsdWUoa1VzZXJWZXJpZmljYXRpb25NYXBLZXkpXSA9
IGNib3I6OkNCT1JWYWx1ZShyZXF1aXJlVXNlclZlcmlmaWNhdGlvbik7CisgICAgfQorICAgIGlm
ICghb3B0aW9uTWFwLmVtcHR5KCkpCisgICAgICAgIGNib3JNYXBbY2Jvcjo6Q0JPUlZhbHVlKDcp
XSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKG9wdGlvbk1hcCkpOworCisgICAgYXV0byBzZXJp
YWxpemVkUGFyYW0gPSBjYm9yOjpDQk9SV3JpdGVyOjp3cml0ZShjYm9yOjpDQk9SVmFsdWUoV1RG
TW92ZShjYm9yTWFwKSkpOworICAgIEFTU0VSVChzZXJpYWxpemVkUGFyYW0pOworCisgICAgVmVj
dG9yPHVpbnQ4X3Q+IGNib3JSZXF1ZXN0KHsgc3RhdGljX2Nhc3Q8dWludDhfdD4oQ3RhcFJlcXVl
c3RDb21tYW5kOjprQXV0aGVudGljYXRvck1ha2VDcmVkZW50aWFsKSB9KTsKKyAgICBjYm9yUmVx
dWVzdC5hcHBlbmRWZWN0b3IoKnNlcmlhbGl6ZWRQYXJhbSk7CisgICAgcmV0dXJuIGNib3JSZXF1
ZXN0OworfQorCitWZWN0b3I8dWludDhfdD4gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JP
Uihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucywgVVZBdmFpbGFiaWxpdHkgdXZDYXBhYmlsaXR5KQorewor
ICAgIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUgY2Jvck1hcDsKKyAgICBjYm9yTWFwW2Nib3I6
OkNCT1JWYWx1ZSgxKV0gPSBjYm9yOjpDQk9SVmFsdWUob3B0aW9ucy5ycElkKTsKKyAgICBjYm9y
TWFwW2Nib3I6OkNCT1JWYWx1ZSgyKV0gPSBjYm9yOjpDQk9SVmFsdWUoaGFzaCk7CisKKyAgICBp
ZiAoIW9wdGlvbnMuYWxsb3dDcmVkZW50aWFscy5pc0VtcHR5KCkpIHsKKyAgICAgICAgY2Jvcjo6
Q0JPUlZhbHVlOjpBcnJheVZhbHVlIGFsbG93TGlzdEFycmF5OworICAgICAgICBmb3IgKGNvbnN0
IGF1dG8mIGRlc2NyaXB0b3IgOiBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMpCisgICAgICAgICAg
ICBhbGxvd0xpc3RBcnJheS5hcHBlbmQoY29udmVydERlc2NyaXB0b3JUb0NCT1IoZGVzY3JpcHRv
cikpOworICAgICAgICBjYm9yTWFwW2Nib3I6OkNCT1JWYWx1ZSgzKV0gPSBjYm9yOjpDQk9SVmFs
dWUoV1RGTW92ZShhbGxvd0xpc3RBcnJheSkpOworICAgIH0KKworICAgIGNib3I6OkNCT1JWYWx1
ZTo6TWFwVmFsdWUgb3B0aW9uTWFwOworICAgIGlmIChvcHRpb25zLnVzZXJWZXJpZmljYXRpb24p
IHsKKyAgICAgICAgLy8gVXNlciB2ZXJpZmljYXRpb24gaXMgbm90IHJlcXVpcmVkIGJ5IGRlZmF1
bHQuCisgICAgICAgIGJvb2wgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSBmYWxzZTsKKyAgICAg
ICAgc3dpdGNoICgqb3B0aW9ucy51c2VyVmVyaWZpY2F0aW9uKSB7CisgICAgICAgIGNhc2UgVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZDoKKyAgICAgICAgICAgIHJlcXVpcmVV
c2VyVmVyaWZpY2F0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkOgorICAgICAgICAgICAgcmVx
dWlyZVVzZXJWZXJpZmljYXRpb24gPSB1dkNhcGFiaWxpdHkgPT0gVVZBdmFpbGFiaWxpdHk6OmtO
b3RTdXBwb3J0ZWQgPyBmYWxzZSA6IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkOgorICAgICAgICAg
ICAgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBv
cHRpb25NYXBbY2Jvcjo6Q0JPUlZhbHVlKGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5KV0gPSBjYm9y
OjpDQk9SVmFsdWUocmVxdWlyZVVzZXJWZXJpZmljYXRpb24pOworICAgICAgICBvcHRpb25NYXBb
Y2Jvcjo6Q0JPUlZhbHVlKGtVc2VyUHJlc2VuY2VNYXBLZXkpXSA9IGNib3I6OkNCT1JWYWx1ZSgh
cmVxdWlyZVVzZXJWZXJpZmljYXRpb24pOworICAgIH0KKyAgICBpZiAoIW9wdGlvbk1hcC5lbXB0
eSgpKQorICAgICAgICBjYm9yTWFwW2Nib3I6OkNCT1JWYWx1ZSg1KV0gPSBjYm9yOjpDQk9SVmFs
dWUoV1RGTW92ZShvcHRpb25NYXApKTsKKworICAgIGF1dG8gc2VyaWFsaXplZFBhcmFtID0gY2Jv
cjo6Q0JPUldyaXRlcjo6d3JpdGUoY2Jvcjo6Q0JPUlZhbHVlKFdURk1vdmUoY2Jvck1hcCkpKTsK
KyAgICBBU1NFUlQoc2VyaWFsaXplZFBhcmFtKTsKKworICAgIFZlY3Rvcjx1aW50OF90PiBjYm9y
UmVxdWVzdCh7IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KEN0YXBSZXF1ZXN0Q29tbWFuZDo6a0F1dGhl
bnRpY2F0b3JHZXRBc3NlcnRpb24pIH0pOworICAgIGNib3JSZXF1ZXN0LmFwcGVuZFZlY3Rvcigq
c2VyaWFsaXplZFBhcmFtKTsKKyAgICByZXR1cm4gY2JvclJlcXVlc3Q7Cit9CisKK1ZlY3Rvcjx1
aW50OF90PiBlbmNvZGVFbXB0eUF1dGhlbnRpY2F0b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFu
ZCBjbWQpCit7CisgICAgcmV0dXJuIHsgc3RhdGljX2Nhc3Q8dWludDhfdD4oY21kKSB9OworfQor
Cit9IC8vIG5hbWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVl
c3RDb252ZXJ0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZp
Y2VSZXF1ZXN0Q29udmVydGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFjYzNmZjYyYjk1MjQ5ZjQ4N2IyMmNl
ODRhYzQxNzlmNGMzMTg2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmgKQEAgLTAsMCArMSw2MiBA
QAorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8v
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
Ly8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
Ly8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9ucy5oIgorI2luY2x1ZGUgIkZpZG9Db25zdGFudHMuaCIKKyNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgUHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczsKK3N0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnM7Cit9CisKK25hbWVzcGFjZSBmaWRvIHsKKworLy8gU2VyaWFsaXplcyBNYWtl
Q3JlZGVudGlhbCByZXF1ZXN0IHBhcmFtZXRlciBpbnRvIENCT1IgZW5jb2RlZCBtYXAgd2l0aAor
Ly8gaW50ZWdlciBrZXlzIGFuZCBDQk9SIGVuY29kZWQgdmFsdWVzIGFzIGRlZmluZWQgYnkgdGhl
IENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAt
cHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBz
LTIwMTcwOTI3Lmh0bWwjYXV0aGVudGljYXRvck1ha2VDcmVkZW50aWFsCitXRUJDT1JFX0VYUE9S
VCBWZWN0b3I8dWludDhfdD4gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucyYsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVy
aWZpY2F0aW9uQXZhaWxhYmlsaXR5KTsKKworLy8gU2VyaWFsaXplcyBHZXRBc3NlcnRpb24gcmVx
dWVzdCBwYXJhbWV0ZXIgaW50byBDQk9SIGVuY29kZWQgbWFwIHdpdGgKKy8vIGludGVnZXIga2V5
cyBhbmQgQ0JPUiBlbmNvZGVkIHZhbHVlcyBhcyBkZWZpbmVkIGJ5IHRoZSBDVEFQIHNwZWMuCisv
LyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2Zp
ZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1s
I2F1dGhlbnRpY2F0b3JHZXRBc3NlcnRpb24KK1dFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90
PiBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
aGFzaCwgY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwg
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxp
dHkpOworCisvLyBSZXByZXNlbnRzIENUQVAgcmVxdWVzdHMgd2l0aCBlbXB0eSBwYXJhbWV0ZXJz
LCBpbmNsdWRpbmcKKy8vIEF1dGhlbnRpY2F0b3JHZXRJbmZvLCBBdXRoZW50aWNhdG9yQ2FuY2Vs
LCBBdXRoZW50aWNhdG9yUmVzZXQgYW5kCisvLyBBdXRoZW50aWNhdG9yR2V0TmV4dEFzc2VydGlv
biBjb21tYW5kcy4KK1dFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVFbXB0eUF1
dGhlbnRpY2F0b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFuZCk7CisKK30gLy8gbmFtZXNwYWNl
IGZpZG8KKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29u
dmVydGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMWM3ZTRmODgzM2Q1NTY2YmZhZDU2NzE2NzQyOWU4ODg0
MDEwM2QzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcApAQCAtMCwwICsxLDMxMiBAQAorLy8g
Q29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlz
dHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisv
LyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCIKKworI2lmIEVOQUJM
RShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5o
IgorI2luY2x1ZGUgIkNCT1JSZWFkZXIuaCIKKyNpbmNsdWRlICJDQk9SV3JpdGVyLmgiCisjaW5j
bHVkZSA8c2V0PgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIGZpZG8gewor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBDQk9SID0gY2Jvcjo6Q0JPUlZhbHVlOwor
Citjb25zdGV4cHIgc2l6ZV90IGtSZXNwb25zZUNvZGVMZW5ndGggPSAxOworCitzdGF0aWMgUHJv
dG9jb2xWZXJzaW9uIGNvbnZlcnRTdHJpbmdUb1Byb3RvY29sVmVyc2lvbihjb25zdCBTdHJpbmcm
IHZlcnNpb24pCit7CisgICAgaWYgKHZlcnNpb24gPT0ga0N0YXAyVmVyc2lvbikKKyAgICAgICAg
cmV0dXJuIFByb3RvY29sVmVyc2lvbjo6a0N0YXA7CisgICAgaWYgKHZlcnNpb24gPT0ga1UyZlZl
cnNpb24pCisgICAgICAgIHJldHVybiBQcm90b2NvbFZlcnNpb246OmtVMmY7CisKKyAgICByZXR1
cm4gUHJvdG9jb2xWZXJzaW9uOjprVW5rbm93bjsKK30KKworQ3RhcERldmljZVJlc3BvbnNlQ29k
ZSBnZXRSZXNwb25zZUNvZGUoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCit7CisgICAg
aWYgKGJ1ZmZlci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlOjprQ3RhcDJFcnJJbnZhbGlkQ0JPUjsKKworICAgIGF1dG8gY29kZSA9IHN0YXRpY19jYXN0
PEN0YXBEZXZpY2VSZXNwb25zZUNvZGU+KGJ1ZmZlclswXSk7CisgICAgcmV0dXJuIGlzQ3RhcERl
dmljZVJlc3BvbnNlQ29kZShjb2RlKSA/IGNvZGUgOiBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjpr
Q3RhcDJFcnJJbnZhbGlkQ0JPUjsKK30KKworc3RhdGljIFZlY3Rvcjx1aW50OF90PiBnZXRDcmVk
ZW50aWFsSWQoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBhdXRoZW50aWNhdG9yRGF0YSkKK3sKKyAg
ICBjb25zdCBzaXplX3QgY3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0ID0ga1JwSWRIYXNoTGVuZ3Ro
ICsga0ZsYWdzTGVuZ3RoICsga1NpZ25Db3VudGVyTGVuZ3RoICsga0FhZ3VpZExlbmd0aDsKKwor
ICAgIGlmIChhdXRoZW50aWNhdG9yRGF0YS5zaXplKCkgPCBjcmVkZW50aWFsSWRMZW5ndGhPZmZz
ZXQgKyBrQ3JlZGVudGlhbElkTGVuZ3RoTGVuZ3RoKQorICAgICAgICByZXR1cm4geyB9OworICAg
IHNpemVfdCBjcmVkZW50aWFsSWRMZW5ndGggPSAoc3RhdGljX2Nhc3Q8c2l6ZV90PihhdXRoZW50
aWNhdG9yRGF0YVtjcmVkZW50aWFsSWRMZW5ndGhPZmZzZXRdKSA8PCA4KSB8IHN0YXRpY19jYXN0
PHNpemVfdD4oYXV0aGVudGljYXRvckRhdGFbY3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0ICsgMV0p
OworCisgICAgaWYgKGF1dGhlbnRpY2F0b3JEYXRhLnNpemUoKSA8IGNyZWRlbnRpYWxJZExlbmd0
aE9mZnNldCArIGtDcmVkZW50aWFsSWRMZW5ndGhMZW5ndGggKyBjcmVkZW50aWFsSWRMZW5ndGgp
CisgICAgICAgIHJldHVybiB7IH07CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGNyZWRlbnRpYWxJZDsK
KyAgICBjcmVkZW50aWFsSWQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjcmVkZW50aWFsSWRMZW5n
dGgpOworICAgIGF1dG8gYmVnaW5JdCA9IGF1dGhlbnRpY2F0b3JEYXRhLmJlZ2luKCkgKyBjcmVk
ZW50aWFsSWRMZW5ndGhPZmZzZXQgKyBrQ3JlZGVudGlhbElkTGVuZ3RoTGVuZ3RoOworICAgIGNy
ZWRlbnRpYWxJZC5hcHBlbmRSYW5nZShiZWdpbkl0LCBiZWdpbkl0ICsgY3JlZGVudGlhbElkTGVu
Z3RoKTsKKyAgICByZXR1cm4gY3JlZGVudGlhbElkOworfQorCisKKy8vIERlY29kZXMgYnl0ZSBh
cnJheSByZXNwb25zZSBmcm9tIGF1dGhlbnRpY2F0b3IgdG8gQ0JPUiB2YWx1ZSBvYmplY3QgYW5k
CisvLyBjaGVja3MgZm9yIGNvcnJlY3QgZW5jb2RpbmcgZm9ybWF0Lgorc3RkOjpvcHRpb25hbDxQ
dWJsaWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgaW5CdWZmZXIpCit7CisgICAgaWYgKGluQnVmZmVyLnNpemUo
KSA8PSBrUmVzcG9uc2VDb2RlTGVuZ3RoKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKKyAgICBidWZmZXIuYXBwZW5kKGluQnVmZmVy
LmRhdGEoKSArIDEsIGluQnVmZmVyLnNpemUoKSAtIDEpOworICAgIHN0ZDo6b3B0aW9uYWw8Q0JP
Uj4gZGVjb2RlZFJlc3BvbnNlID0gY2Jvcjo6Q0JPUlJlYWRlcjo6cmVhZChidWZmZXIpOworICAg
IGlmICghZGVjb2RlZFJlc3BvbnNlIHx8ICFkZWNvZGVkUmVzcG9uc2UtPmlzTWFwKCkpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgY29uc3QgYXV0byYgZGVjb2RlZE1hcCA9IGRl
Y29kZWRSZXNwb25zZS0+Z2V0TWFwKCk7CisKKyAgICBhdXRvIGl0ID0gZGVjb2RlZE1hcC5maW5k
KENCT1IoMSkpOworICAgIGlmIChpdCA9PSBkZWNvZGVkTWFwLmVuZCgpIHx8ICFpdC0+c2Vjb25k
LmlzU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgYXV0byBmb3Jt
YXQgPSBpdC0+c2Vjb25kLmNsb25lKCk7CisKKyAgICBpdCA9IGRlY29kZWRNYXAuZmluZChDQk9S
KDIpKTsKKyAgICBpZiAoaXQgPT0gZGVjb2RlZE1hcC5lbmQoKSB8fCAhaXQtPnNlY29uZC5pc0J5
dGVTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBhdXRvIGF1dGhl
bnRpY2F0b3JEYXRhID0gaXQtPnNlY29uZC5jbG9uZSgpOworCisgICAgYXV0byBjcmVkZW50aWFs
SWQgPSBnZXRDcmVkZW50aWFsSWQoYXV0aGVudGljYXRvckRhdGEuZ2V0Qnl0ZVN0cmluZygpKTsK
KyAgICBpZiAoY3JlZGVudGlhbElkLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIGl0ID0gZGVjb2RlZE1hcC5maW5kKENCT1IoMykpOworICAgIGlmIChpdCA9
PSBkZWNvZGVkTWFwLmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzTWFwKCkpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisgICAgYXV0byBhdHRTdG10ID0gaXQtPnNlY29uZC5jbG9uZSgpOwor
CisgICAgQ0JPUjo6TWFwVmFsdWUgYXR0ZXN0YXRpb25PYmplY3RNYXA7CisgICAgYXR0ZXN0YXRp
b25PYmplY3RNYXBbQ0JPUigiYXV0aERhdGEiKV0gPSBXVEZNb3ZlKGF1dGhlbnRpY2F0b3JEYXRh
KTsKKyAgICBhdHRlc3RhdGlvbk9iamVjdE1hcFtDQk9SKCJmbXQiKV0gPSBXVEZNb3ZlKGZvcm1h
dCk7CisgICAgYXR0ZXN0YXRpb25PYmplY3RNYXBbQ0JPUigiYXR0U3RtdCIpXSA9IFdURk1vdmUo
YXR0U3RtdCk7CisgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGNib3I6OkNCT1JXcml0ZXI6
OndyaXRlKENCT1IoV1RGTW92ZShhdHRlc3RhdGlvbk9iamVjdE1hcCkpKTsKKworICAgIHJldHVy
biBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSB7IEFycmF5QnVmZmVyOjpjcmVhdGUoY3JlZGVudGlh
bElkLmRhdGEoKSwgY3JlZGVudGlhbElkLnNpemUoKSksIHRydWUsIG51bGxwdHIsIEFycmF5QnVm
ZmVyOjpjcmVhdGUoYXR0ZXN0YXRpb25PYmplY3QudmFsdWUoKS5kYXRhKCksIGF0dGVzdGF0aW9u
T2JqZWN0LnZhbHVlKCkuc2l6ZSgpKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OworfQor
CitzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhPiByZWFkQ1RBUEdldEFzc2Vy
dGlvblJlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaW5CdWZmZXIpCit7CisgICAgaWYg
KGluQnVmZmVyLnNpemUoKSA8PSBrUmVzcG9uc2VDb2RlTGVuZ3RoKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKKyAgICBidWZmZXIu
YXBwZW5kKGluQnVmZmVyLmRhdGEoKSArIDEsIGluQnVmZmVyLnNpemUoKSAtIDEpOworICAgIHN0
ZDo6b3B0aW9uYWw8Q0JPUj4gZGVjb2RlZFJlc3BvbnNlID0gY2Jvcjo6Q0JPUlJlYWRlcjo6cmVh
ZChidWZmZXIpOworCisgICAgaWYgKCFkZWNvZGVkUmVzcG9uc2UgfHwgIWRlY29kZWRSZXNwb25z
ZS0+aXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8mIHJl
c3BvbnNlTWFwID0gZGVjb2RlZFJlc3BvbnNlLT5nZXRNYXAoKTsKKworICAgIFJlZlB0cjxBcnJh
eUJ1ZmZlcj4gY3JlZGVudGlhbElkOworICAgIGF1dG8gaXQgPSByZXNwb25zZU1hcC5maW5kKENC
T1IoMSkpOworICAgIGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSAmJiBpdC0+c2Vjb25kLmlz
TWFwKCkpIHsKKyAgICAgICAgYXV0byYgY3JlZGVudGlhbCA9IGl0LT5zZWNvbmQuZ2V0TWFwKCk7
CisgICAgICAgIGF1dG8gaXRyID0gY3JlZGVudGlhbC5maW5kKENCT1Ioa0NyZWRlbnRpYWxJZEtl
eSkpOworICAgICAgICBpZiAoaXRyID09IGNyZWRlbnRpYWwuZW5kKCkgfHwgIWl0ci0+c2Vjb25k
LmlzQnl0ZVN0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAg
ICAgYXV0byYgaWQgPSBpdHItPnNlY29uZC5nZXRCeXRlU3RyaW5nKCk7CisgICAgICAgIGNyZWRl
bnRpYWxJZCA9IEFycmF5QnVmZmVyOjpjcmVhdGUoaWQuZGF0YSgpLCBpZC5zaXplKCkpOworICAg
IH0KKworICAgIGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDIpKTsKKyAgICBpZiAoaXQgPT0g
cmVzcG9uc2VNYXAuZW5kKCkgfHwgIWl0LT5zZWNvbmQuaXNCeXRlU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgYXV0byYgYXV0aERhdGEgPSBpdC0+c2Vjb25kLmdl
dEJ5dGVTdHJpbmcoKTsKKworICAgIGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDMpKTsKKyAg
ICBpZiAoaXQgPT0gcmVzcG9uc2VNYXAuZW5kKCkgfHwgIWl0LT5zZWNvbmQuaXNCeXRlU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgYXV0byYgc2lnbmF0dXJlID0g
aXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCk7CisKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IHVz
ZXJIYW5kbGU7CisgICAgeworICAgICAgICBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUig0KSk7
CisgICAgICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5lbmQoKSB8fCAhaXQtPnNlY29uZC5pc01h
cCgpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgYXV0byYgdXNl
ciA9IGl0LT5zZWNvbmQuZ2V0TWFwKCk7CisgICAgICAgIGF1dG8gaXRyID0gdXNlci5maW5kKENC
T1Ioa0VudGl0eUlkTWFwS2V5KSk7CisgICAgICAgIGlmIChpdHIgPT0gdXNlci5lbmQoKSB8fCAh
aXRyLT5zZWNvbmQuaXNCeXRlU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgICAgICBhdXRvJiBpZCA9IGl0ci0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKTsKKyAg
ICAgICAgdXNlckhhbmRsZSA9IEFycmF5QnVmZmVyOjpjcmVhdGUoaWQuZGF0YSgpLCBpZC5zaXpl
KCkpOworICAgIH0KKworICAgIHJldHVybiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSB7IFdURk1v
dmUoY3JlZGVudGlhbElkKSwgZmFsc2UsIG51bGxwdHIsIG51bGxwdHIsIEFycmF5QnVmZmVyOjpj
cmVhdGUoYXV0aERhdGEuZGF0YSgpLCBhdXRoRGF0YS5zaXplKCkpLCBBcnJheUJ1ZmZlcjo6Y3Jl
YXRlKHNpZ25hdHVyZS5kYXRhKCksIHNpZ25hdHVyZS5zaXplKCkpLCBXVEZNb3ZlKHVzZXJIYW5k
bGUpIH07Cit9CisKK3N0ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZT4g
cmVhZENUQVBHZXRJbmZvUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpbkJ1ZmZlcikK
K3sKKyAgICBpZiAoaW5CdWZmZXIuc2l6ZSgpIDw9IGtSZXNwb25zZUNvZGVMZW5ndGggfHwgZ2V0
UmVzcG9uc2VDb2RlKGluQnVmZmVyKSAhPSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprU3VjY2Vz
cykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIFZlY3Rvcjx1aW50OF90PiBi
dWZmZXI7CisgICAgYnVmZmVyLmFwcGVuZChpbkJ1ZmZlci5kYXRhKCkgKyAxLCBpbkJ1ZmZlci5z
aXplKCkgLSAxKTsKKyAgICBzdGQ6Om9wdGlvbmFsPENCT1I+IGRlY29kZWRSZXNwb25zZSA9IGNi
b3I6OkNCT1JSZWFkZXI6OnJlYWQoYnVmZmVyKTsKKyAgICBpZiAoIWRlY29kZWRSZXNwb25zZSB8
fCAhZGVjb2RlZFJlc3BvbnNlLT5pc01hcCgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworICAgIGNvbnN0IGF1dG8mIHJlc3BvbnNlTWFwID0gZGVjb2RlZFJlc3BvbnNlLT5nZXRNYXAo
KTsKKworICAgIGF1dG8gaXQgPSByZXNwb25zZU1hcC5maW5kKENCT1IoMSkpOworICAgIGlmIChp
dCA9PSByZXNwb25zZU1hcC5lbmQoKSB8fCAhaXQtPnNlY29uZC5pc0FycmF5KCkgfHwgaXQtPnNl
Y29uZC5nZXRBcnJheSgpLnNpemUoKSA+IDIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgc3RkOjpzZXQ8UHJvdG9jb2xWZXJzaW9uPiBwcm90b2NvbFZlcnNpb25zOworICAgIGZv
ciAoY29uc3QgYXV0byYgdmVyc2lvbiA6IGl0LT5zZWNvbmQuZ2V0QXJyYXkoKSkgeworICAgICAg
ICBpZiAoIXZlcnNpb24uaXNTdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgYXV0byBwcm90b2NvbCA9IGNvbnZlcnRTdHJpbmdUb1Byb3RvY29sVmVy
c2lvbih2ZXJzaW9uLmdldFN0cmluZygpKTsKKyAgICAgICAgaWYgKHByb3RvY29sID09IFByb3Rv
Y29sVmVyc2lvbjo6a1Vua25vd24pIHsKKyAgICAgICAgICAgIExPR19FUlJPUigiVW5leHBlY3Rl
ZCBwcm90b2NvbCB2ZXJzaW9uIHJlY2VpdmVkLiIpOworICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoIXByb3RvY29sVmVyc2lvbnMuaW5zZXJ0KHByb3RvY29s
KS5zZWNvbmQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKyAgICBp
ZiAocHJvdG9jb2xWZXJzaW9ucy5lbXB0eSgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgaXQgPSByZXNwb25zZU1hcC5maW5kKENCT1IoMykpOworICAgIGlmIChpdCA9PSBy
ZXNwb25zZU1hcC5lbmQoKSB8fCAhaXQtPnNlY29uZC5pc0J5dGVTdHJpbmcoKSB8fCBpdC0+c2Vj
b25kLmdldEJ5dGVTdHJpbmcoKS5zaXplKCkgIT0ga0FhZ3VpZExlbmd0aCkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UgcmVz
cG9uc2UoV1RGTW92ZShwcm90b2NvbFZlcnNpb25zKSwgVmVjdG9yPHVpbnQ4X3Q+KGl0LT5zZWNv
bmQuZ2V0Qnl0ZVN0cmluZygpKSk7CisKKyAgICBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUigy
KSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFwLmVuZCgpKSB7CisgICAgICAgIGlmICghaXQt
PnNlY29uZC5pc0FycmF5KCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgIFZlY3RvcjxTdHJpbmc+IGV4dGVuc2lvbnM7CisgICAgICAgIGZvciAoY29uc3QgYXV0
byYgZXh0ZW5zaW9uIDogaXQtPnNlY29uZC5nZXRBcnJheSgpKSB7CisgICAgICAgICAgICBpZiAo
IWV4dGVuc2lvbi5pc1N0cmluZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgICAgIGV4dGVuc2lvbnMuYXBwZW5kKGV4dGVuc2lvbi5nZXRTdHJpbmco
KSk7CisgICAgICAgIH0KKyAgICAgICAgcmVzcG9uc2Uuc2V0RXh0ZW5zaW9ucyhXVEZNb3ZlKGV4
dGVuc2lvbnMpKTsKKyAgICB9CisKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBv
cHRpb25zOworICAgIGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDQpKTsKKyAgICBpZiAoaXQg
IT0gcmVzcG9uc2VNYXAuZW5kKCkpIHsKKyAgICAgICAgaWYgKCFpdC0+c2Vjb25kLmlzTWFwKCkp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBjb25zdCBhdXRvJiBv
cHRpb25NYXAgPSBpdC0+c2Vjb25kLmdldE1hcCgpOworICAgICAgICBhdXRvIG9wdGlvbk1hcEl0
ID0gb3B0aW9uTWFwLmZpbmQoQ0JPUihrUGxhdGZvcm1EZXZpY2VNYXBLZXkpKTsKKyAgICAgICAg
aWYgKG9wdGlvbk1hcEl0ICE9IG9wdGlvbk1hcC5lbmQoKSkgeworICAgICAgICAgICAgaWYgKCFv
cHRpb25NYXBJdC0+c2Vjb25kLmlzQm9vbCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICAgICAgICAgIG9wdGlvbnMuc2V0SXNQbGF0Zm9ybURldmljZShvcHRp
b25NYXBJdC0+c2Vjb25kLmdldEJvb2woKSk7CisgICAgICAgIH0KKworICAgICAgICBvcHRpb25N
YXBJdCA9IG9wdGlvbk1hcC5maW5kKENCT1Ioa1Jlc2lkZW50S2V5TWFwS2V5KSk7CisgICAgICAg
IGlmIChvcHRpb25NYXBJdCAhPSBvcHRpb25NYXAuZW5kKCkpIHsKKyAgICAgICAgICAgIGlmICgh
b3B0aW9uTWFwSXQtPnNlY29uZC5pc0Jvb2woKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgICAgICBvcHRpb25zLnNldFN1cHBvcnRzUmVzaWRlbnRLZXko
b3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29sKCkpOworICAgICAgICB9CisKKyAgICAgICAgb3B0
aW9uTWFwSXQgPSBvcHRpb25NYXAuZmluZChDQk9SKGtVc2VyUHJlc2VuY2VNYXBLZXkpKTsKKyAg
ICAgICAgaWYgKG9wdGlvbk1hcEl0ICE9IG9wdGlvbk1hcC5lbmQoKSkgeworICAgICAgICAgICAg
aWYgKCFvcHRpb25NYXBJdC0+c2Vjb25kLmlzQm9vbCgpKQorICAgICAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIG9wdGlvbnMuc2V0VXNlclByZXNlbmNlUmVx
dWlyZWQob3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29sKCkpOworICAgICAgICB9CisKKyAgICAg
ICAgb3B0aW9uTWFwSXQgPSBvcHRpb25NYXAuZmluZChDQk9SKGtVc2VyVmVyaWZpY2F0aW9uTWFw
S2V5KSk7CisgICAgICAgIGlmIChvcHRpb25NYXBJdCAhPSBvcHRpb25NYXAuZW5kKCkpIHsKKyAg
ICAgICAgICAgIGlmICghb3B0aW9uTWFwSXQtPnNlY29uZC5pc0Jvb2woKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgICAgICBpZiAob3B0aW9uTWFwSXQt
PnNlY29uZC5nZXRCb29sKCkpCisgICAgICAgICAgICAgICAgb3B0aW9ucy5zZXRVc2VyVmVyaWZp
Y2F0aW9uQXZhaWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVy
aWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3B0aW9ucy5zZXRVc2VyVmVyaWZpY2F0aW9uQXZh
aWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9u
QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0Tm90Q29uZmlndXJlZCk7CisgICAgICAgIH0KKwor
ICAgICAgICBvcHRpb25NYXBJdCA9IG9wdGlvbk1hcC5maW5kKENCT1Ioa0NsaWVudFBpbk1hcEtl
eSkpOworICAgICAgICBpZiAob3B0aW9uTWFwSXQgIT0gb3B0aW9uTWFwLmVuZCgpKSB7CisgICAg
ICAgICAgICBpZiAoIW9wdGlvbk1hcEl0LT5zZWNvbmQuaXNCb29sKCkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICAgICAgaWYgKG9wdGlvbk1hcEl0LT5z
ZWNvbmQuZ2V0Qm9vbCgpKQorICAgICAgICAgICAgICAgIG9wdGlvbnMuc2V0Q2xpZW50UGluQXZh
aWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFi
aWxpdHk6OmtTdXBwb3J0ZWRBbmRQaW5TZXQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIG9wdGlvbnMuc2V0Q2xpZW50UGluQXZhaWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXRQaW5Ob3RT
ZXQpOworICAgICAgICB9CisgICAgICAgIHJlc3BvbnNlLnNldE9wdGlvbnMoV1RGTW92ZShvcHRp
b25zKSk7CisgICAgfQorCisgICAgaXQgPSByZXNwb25zZU1hcC5maW5kKENCT1IoNSkpOworICAg
IGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSkgeworICAgICAgICBpZiAoIWl0LT5zZWNvbmQu
aXNVbnNpZ25lZCgpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICByZXNwb25zZS5zZXRNYXhNc2dTaXplKGl0LT5zZWNvbmQuZ2V0VW5zaWduZWQoKSk7CisgICAg
fQorCisgICAgaXQgPSByZXNwb25zZU1hcC5maW5kKENCT1IoNikpOworICAgIGlmIChpdCAhPSBy
ZXNwb25zZU1hcC5lbmQoKSkgeworICAgICAgICBpZiAoIWl0LT5zZWNvbmQuaXNBcnJheSgpKQor
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBWZWN0b3I8dWludDhf
dD4gc3VwcG9ydGVkUGluUHJvdG9jb2xzOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHByb3Rv
Y29sIDogaXQtPnNlY29uZC5nZXRBcnJheSgpKSB7CisgICAgICAgICAgICBpZiAoIXByb3RvY29s
LmlzVW5zaWduZWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgICAgICAgICBzdXBwb3J0ZWRQaW5Qcm90b2NvbHMuYXBwZW5kKHByb3RvY29sLmdldFVuc2ln
bmVkKCkpOworICAgICAgICB9CisgICAgICAgIHJlc3BvbnNlLnNldFBpblByb3RvY29scyhXVEZN
b3ZlKHN1cHBvcnRlZFBpblByb3RvY29scykpOworICAgIH0KKworICAgIHJldHVybiBXVEZNb3Zl
KHJlc3BvbnNlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxF
KFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Zmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODE5NjMz
NTQ1Y2RlMjVjMGRiZGM0YzYzZGE1ZjFiMTY2ZTIzNzQ5MwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRl
ci5oCkBAIC0wLDAgKzEsNjYgQEAKKy8vIENvcHlyaWdodCAyMDE4IFRoZSBDaHJvbWl1bSBBdXRo
b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
Ky8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8g
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5j
bHVkZSAiQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oIgorI2luY2x1ZGUgIkZpZG9Db25z
dGFudHMuaCIKKyNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsRGF0YS5oIgorCisvLyBDb252
ZXJ0cyByZXNwb25zZSBmcm9tIGF1dGhlbnRpY2F0b3JzIHRvIENUQVBSZXNwb25zZSBvYmplY3Rz
LiBJZiB0aGUKKy8vIHJlc3BvbnNlIG9mIHRoZSBhdXRoZW50aWNhdG9yIGRvZXMgbm90IGNvbmZv
cm0gdG8gZm9ybWF0IHNwZWNpZmllZCBieSB0aGUKKy8vIENUQVAgcHJvdG9jb2wsIG51bGwgb3B0
aW9uYWwgaXMgcmV0dXJuZWQuCituYW1lc3BhY2UgZmlkbyB7CisKKy8vIFBhcnNlcyByZXNwb25z
ZSBjb2RlIGZyb20gcmVzcG9uc2UgcmVjZWl2ZWQgZnJvbSB0aGUgYXV0aGVudGljYXRvci4gSWYK
Ky8vIHVua25vd24gcmVzcG9uc2UgY29kZSB2YWx1ZSBpcyByZWNlaXZlZCwgdGhlbiBDVEFQMl9F
UlJfT1RIRVIgaXMgcmV0dXJuZWQuCitXRUJDT1JFX0VYUE9SVCBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlIGdldFJlc3BvbnNlQ29kZShjb25zdCBWZWN0b3I8dWludDhfdD4mKTsKKworLy8gRGUtc2Vy
aWFsaXplcyBDQk9SIGVuY29kZWQgcmVzcG9uc2UsIGNoZWNrcyBmb3IgdmFsaWQgQ0JPUiBtYXAg
Zm9ybWF0dGluZywKKy8vIGFuZCBjb252ZXJ0cyByZXNwb25zZSB0byBBdXRoZW50aWNhdG9yTWFr
ZUNyZWRlbnRpYWxSZXNwb25zZSBvYmplY3Qgd2l0aAorLy8gQ0JPUiBtYXAga2V5cyB0aGF0IGNv
bmZvcm0gdG8gZm9ybWF0IG9mIGF0dGVzdGF0aW9uIG9iamVjdCBkZWZpbmVkIGJ5IHRoZQorLy8g
V2ViQXV0aE4gc3BlYyA6IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhdXRobi8jZmlnLWF0dFN0
cnVjdHMKK1dFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVibGljS2V5Q3Jl
ZGVudGlhbERhdGE+IHJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZShjb25zdCBWZWN0b3I8
dWludDhfdD4mKTsKKworLy8gRGUtc2VyaWFsaXplcyBDQk9SIGVuY29kZWQgcmVzcG9uc2UgdG8g
QXV0aGVudGljYXRvckdldEFzc2VydGlvbiAvCisvLyBBdXRoZW50aWNhdG9yR2V0TmV4dEFzc2Vy
dGlvbiByZXF1ZXN0IHRvIEF1dGhlbnRpY2F0b3JHZXRBc3NlcnRpb25SZXNwb25zZQorLy8gb2Jq
ZWN0LgorLy8gRklYTUUoMTkwNzgzKTogUHJvYmFibHkgbmVlZCB0byByZW1ha2UgQXV0aGVudGlj
YXRvclJlc3BvbnNlIHRvIGluY2x1ZGUgbW9yZSBmaWVsZHMgbGlrZSBudW1iZXJPZkNyZWRlbnRp
YWxzLAorLy8gYW5kIHVzZSBpdCBoZXJlIGluc3RlYWQgb2YgUHVibGljS2V5Q3JlZGVudGlhbERh
dGEuCitXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlB1YmxpY0tleUNyZWRl
bnRpYWxEYXRhPiByZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYpOworCisvLyBEZS1zZXJpYWxpemVzIENCT1IgZW5jb2RlZCByZXNwb25zZSB0byBBdXRo
ZW50aWNhdG9yR2V0SW5mbyByZXF1ZXN0IHRvCisvLyBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3Bv
bnNlIG9iamVjdC4KK1dFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZT4gcmVhZENUQVBHZXRJbmZvUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+Jik7CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVU
SE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlk
b0NvbnN0YW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlk
b0NvbnN0YW50cy5jcHAKaW5kZXggMzg4MWZkMmYyNjRlOWYwZWU0ZGEwMzkyNDJlNWFkMTBkNzA0
YTRmMy4uODE3MjVjZWFmMmNlZDI5MTk2Nzg0M2M5NzkxNzhhZjZlYzQ0ZTczMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRz
LmNwcApAQCAtMzMsNiArMzMsNjYgQEAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCiBuYW1lc3Bh
Y2UgZmlkbyB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworYm9vbCBpc0N0YXBEZXZpY2VS
ZXNwb25zZUNvZGUoQ3RhcERldmljZVJlc3BvbnNlQ29kZSBjb2RlKQoreworICAgIHN3aXRjaCAo
Y29kZSkgeworICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a1N1Y2Nlc3M6CisgICAg
Y2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDFFcnJJbnZhbGlkQ29tbWFuZDoKKyAg
ICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMUVyckludmFsaWRQYXJhbWV0ZXI6
CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDFFcnJJbnZhbGlkTGVuZ3Ro
OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAxRXJySW52YWxpZFNlcToK
KyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMUVyclRpbWVvdXQ6CisgICAg
Y2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDFFcnJDaGFubmVsQnVzeToKKyAgICBj
YXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMUVyckxvY2tSZXF1aXJlZDoKKyAgICBj
YXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMUVyckludmFsaWRDaGFubmVsOgorICAg
IGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyQ0JPUlBhcnNpbmc6CisgICAg
Y2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJVbmV4cGVjdGVkVHlwZToKKyAg
ICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRDQk9SOgorICAg
IGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJySW52YWxpZENCT1JUeXBlOgor
ICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyTWlzc2luZ1BhcmFtZXRl
cjoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckxpbWl0RXhjZWVk
ZWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJVbnN1cHBvcnRl
ZEV4dGVuc2lvbjoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclRv
b01hbnlFbGVtZW50czoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVy
ckV4dGVuc2lvbk5vdFN1cHBvcnRlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6
OmtDdGFwMkVyckNyZWRlbnRpYWxFeGNsdWRlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25z
ZUNvZGU6OmtDdGFwMkVyclByb2Nlc3NzaW5nOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNl
Q29kZTo6a0N0YXAyRXJySW52YWxpZENyZWRlbnRpYWw6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDJFcnJVc2VyQWN0aW9uUGVuZGluZzoKKyAgICBjYXNlIEN0YXBEZXZp
Y2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyck9wZXJhdGlvblBlbmRpbmc6CisgICAgY2FzZSBDdGFw
RGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJOb09wZXJhdGlvbnM6CisgICAgY2FzZSBDdGFw
RGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJVbnN1cHBvcnRlZEFsZ29yaXRobXM6CisgICAg
Y2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJPcGVyYXRpb25EZW5pZWQ6Cisg
ICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJLZXlTdG9yZUZ1bGw6Cisg
ICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJOb3RCdXN5OgorICAgIGNh
c2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyTm9PcGVyYXRpb25QZW5kaW5nOgor
ICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVW5zdXBwb3J0ZWRPcHRp
b246CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJJbnZhbGlkT3B0
aW9uOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyS2VlcEFsaXZl
Q2FuY2VsOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyTm9DcmVk
ZW50aWFsczoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclVzZXJB
Y3Rpb25UaW1lb3V0OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJy
Tm90QWxsb3dlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBp
bkludmFsaWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5C
bG9ja2VkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluQXV0
aEludmFsaWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5B
dXRoQmxvY2tlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBp
bk5vdFNldDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpblJl
cXVpcmVkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluUG9s
aWN5VmlvbGF0aW9uOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJy
UGluVG9rZW5FeHBpcmVkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAy
RXJyUmVxdWVzdFRvb0xhcmdlOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0
YXAyRXJyT3RoZXI6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJT
cGVjTGFzdDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckV4dGVu
c2lvbkZpcnN0OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyRXh0
ZW5zaW9uTGFzdDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclZl
bmRvckZpcnN0OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVmVu
ZG9yTGFzdDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KK30KIAogYm9vbCBpc0ZpZG9IaWREZXZpY2VDb21tYW5kKEZpZG9I
aWREZXZpY2VDb21tYW5kIGNtZCkKIHsKQEAgLTUyLDYgKzExMiwxNiBAQCBib29sIGlzRmlkb0hp
ZERldmljZUNvbW1hbmQoRmlkb0hpZERldmljZUNvbW1hbmQgY21kKQogICAgIH0KIH0KIAorY29u
c3QgY2hhciogcHVibGljS2V5Q3JlZGVudGlhbFR5cGVUb1N0cmluZyhQdWJsaWNLZXlDcmVkZW50
aWFsVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgUHVibGljS2V5
Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleToKKyAgICAgICAgcmV0dXJuIGtQdWJsaWNLZXk7Cisg
ICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBrUHVibGljS2V5Owor
fQorCiB9IC8vIG5hbWVzcGFjZSBmaWRvCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25z
dGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3Rh
bnRzLmgKaW5kZXggYjg2OTBmMDNkZDQ4NGRmZDM2NzU2NzUwZTA1NmEyNzVjNmRkM2U1Ni4uNWNk
N2FlOGIzOTEzNTE0MDE0N2ZjMDY5NzkzNjM4MGY0OTAwYmE3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oCkBAIC0zMSw4
ICszMSw5MyBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAorI2luY2x1ZGUgIlB1YmxpY0tl
eUNyZWRlbnRpYWxUeXBlLmgiCisKIG5hbWVzcGFjZSBmaWRvIHsKIAorZW51bSBjbGFzcyBQcm90
b2NvbFZlcnNpb24geworICAgIGtDdGFwLAorICAgIGtVMmYsCisgICAga1Vua25vd24sCit9Owor
CisvLyBMZW5ndGggb2YgdGhlIFNIQS0yNTYgaGFzaCBvZiB0aGUgUlAgSUQgYXNzc29jaWF0ZWQg
d2l0aCB0aGUgY3JlZGVudGlhbDoKKy8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8j
c2VjLWF1dGhlbnRpY2F0b3ItZGF0YQorY29uc3RleHByIHNpemVfdCBrUnBJZEhhc2hMZW5ndGgg
PSAzMjsKKworLy8gTGVuZ3RoIG9mIHRoZSBmbGFnczoKKy8vIGh0dHBzOi8vd3d3LnczLm9yZy9U
Ui93ZWJhdXRobi8jc2VjLWF1dGhlbnRpY2F0b3ItZGF0YQorY29uc3RleHByIHNpemVfdCBrRmxh
Z3NMZW5ndGggPSAxOworCisvLyBMZW5ndGggb2YgdGhlIHNpZ25hdHVyZSBjb3VudGVyLCAzMi1i
aXQgdW5zaWduZWQgYmlnLWVuZGlhbiBpbnRlZ2VyOgorLy8gaHR0cHM6Ly93d3cudzMub3JnL1RS
L3dlYmF1dGhuLyNzZWMtYXV0aGVudGljYXRvci1kYXRhCitjb25zdGV4cHIgc2l6ZV90IGtTaWdu
Q291bnRlckxlbmd0aCA9IDQ7CisKKy8vIExlbmd0aCBvZiB0aGUgQUFHVUlEIG9mIHRoZSBhdXRo
ZW50aWNhdG9yOgorLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXR0ZXN0
ZWQtY3JlZGVudGlhbC1kYXRhCitjb25zdGV4cHIgc2l6ZV90IGtBYWd1aWRMZW5ndGggPSAxNjsK
KworLy8gTGVuZ3RoIG9mIHRoZSBieXRlIGxlbmd0aCBMIG9mIENyZWRlbnRpYWwgSUQsIDE2LWJp
dCB1bnNpZ25lZCBiaWctZW5kaWFuCisvLyBpbnRlZ2VyOiBodHRwczovL3d3dy53My5vcmcvVFIv
d2ViYXV0aG4vI3NlYy1hdHRlc3RlZC1jcmVkZW50aWFsLWRhdGEKK2NvbnN0ZXhwciBzaXplX3Qg
a0NyZWRlbnRpYWxJZExlbmd0aExlbmd0aCA9IDI7CisKKy8vIENUQVAgcHJvdG9jb2wgZGV2aWNl
IHJlc3BvbnNlIGNvZGUsIGFzIHNwZWNpZmllZCBpbgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uu
b3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNh
dG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNlcnJvci1yZXNwb25zZXMKK2VudW0g
Y2xhc3MgQ3RhcERldmljZVJlc3BvbnNlQ29kZSA6IHVpbnQ4X3QgeworICAgIGtTdWNjZXNzID0g
MHgwMCwKKyAgICBrQ3RhcDFFcnJJbnZhbGlkQ29tbWFuZCA9IDB4MDEsCisgICAga0N0YXAxRXJy
SW52YWxpZFBhcmFtZXRlciA9IDB4MDIsCisgICAga0N0YXAxRXJySW52YWxpZExlbmd0aCA9IDB4
MDMsCisgICAga0N0YXAxRXJySW52YWxpZFNlcSA9IDB4MDQsCisgICAga0N0YXAxRXJyVGltZW91
dCA9IDB4MDUsCisgICAga0N0YXAxRXJyQ2hhbm5lbEJ1c3kgPSAweDA2LAorICAgIGtDdGFwMUVy
ckxvY2tSZXF1aXJlZCA9IDB4MEEsCisgICAga0N0YXAxRXJySW52YWxpZENoYW5uZWwgPSAweDBC
LAorICAgIGtDdGFwMkVyckNCT1JQYXJzaW5nID0gMHgxMCwKKyAgICBrQ3RhcDJFcnJVbmV4cGVj
dGVkVHlwZSA9IDB4MTEsCisgICAga0N0YXAyRXJySW52YWxpZENCT1IgPSAweDEyLAorICAgIGtD
dGFwMkVyckludmFsaWRDQk9SVHlwZSA9IDB4MTMsCisgICAga0N0YXAyRXJyTWlzc2luZ1BhcmFt
ZXRlciA9IDB4MTQsCisgICAga0N0YXAyRXJyTGltaXRFeGNlZWRlZCA9IDB4MTUsCisgICAga0N0
YXAyRXJyVW5zdXBwb3J0ZWRFeHRlbnNpb24gPSAweDE2LAorICAgIGtDdGFwMkVyclRvb01hbnlF
bGVtZW50cyA9IDB4MTcsCisgICAga0N0YXAyRXJyRXh0ZW5zaW9uTm90U3VwcG9ydGVkID0gMHgx
OCwKKyAgICBrQ3RhcDJFcnJDcmVkZW50aWFsRXhjbHVkZWQgPSAweDE5LAorICAgIGtDdGFwMkVy
clByb2Nlc3NzaW5nID0gMHgyMSwKKyAgICBrQ3RhcDJFcnJJbnZhbGlkQ3JlZGVudGlhbCA9IDB4
MjIsCisgICAga0N0YXAyRXJyVXNlckFjdGlvblBlbmRpbmcgPSAweDIzLAorICAgIGtDdGFwMkVy
ck9wZXJhdGlvblBlbmRpbmcgPSAweDI0LAorICAgIGtDdGFwMkVyck5vT3BlcmF0aW9ucyA9IDB4
MjUsCisgICAga0N0YXAyRXJyVW5zdXBwb3J0ZWRBbGdvcml0aG1zID0gMHgyNiwKKyAgICBrQ3Rh
cDJFcnJPcGVyYXRpb25EZW5pZWQgPSAweDI3LAorICAgIGtDdGFwMkVycktleVN0b3JlRnVsbCA9
IDB4MjgsCisgICAga0N0YXAyRXJyTm90QnVzeSA9IDB4MjksCisgICAga0N0YXAyRXJyTm9PcGVy
YXRpb25QZW5kaW5nID0gMHgyQSwKKyAgICBrQ3RhcDJFcnJVbnN1cHBvcnRlZE9wdGlvbiA9IDB4
MkIsCisgICAga0N0YXAyRXJySW52YWxpZE9wdGlvbiA9IDB4MkMsCisgICAga0N0YXAyRXJyS2Vl
cEFsaXZlQ2FuY2VsID0gMHgyRCwKKyAgICBrQ3RhcDJFcnJOb0NyZWRlbnRpYWxzID0gMHgyRSwK
KyAgICBrQ3RhcDJFcnJVc2VyQWN0aW9uVGltZW91dCA9IDB4MkYsCisgICAga0N0YXAyRXJyTm90
QWxsb3dlZCA9IDB4MzAsCisgICAga0N0YXAyRXJyUGluSW52YWxpZCA9IDB4MzEsCisgICAga0N0
YXAyRXJyUGluQmxvY2tlZCA9IDB4MzIsCisgICAga0N0YXAyRXJyUGluQXV0aEludmFsaWQgPSAw
eDMzLAorICAgIGtDdGFwMkVyclBpbkF1dGhCbG9ja2VkID0gMHgzNCwKKyAgICBrQ3RhcDJFcnJQ
aW5Ob3RTZXQgPSAweDM1LAorICAgIGtDdGFwMkVyclBpblJlcXVpcmVkID0gMHgzNiwKKyAgICBr
Q3RhcDJFcnJQaW5Qb2xpY3lWaW9sYXRpb24gPSAweDM3LAorICAgIGtDdGFwMkVyclBpblRva2Vu
RXhwaXJlZCA9IDB4MzgsCisgICAga0N0YXAyRXJyUmVxdWVzdFRvb0xhcmdlID0gMHgzOSwKKyAg
ICBrQ3RhcDJFcnJPdGhlciA9IDB4N0YsCisgICAga0N0YXAyRXJyU3BlY0xhc3QgPSAweERGLAor
ICAgIGtDdGFwMkVyckV4dGVuc2lvbkZpcnN0ID0gMHhFMCwKKyAgICBrQ3RhcDJFcnJFeHRlbnNp
b25MYXN0ID0gMHhFRiwKKyAgICBrQ3RhcDJFcnJWZW5kb3JGaXJzdCA9IDB4RjAsCisgICAga0N0
YXAyRXJyVmVuZG9yTGFzdCA9IDB4RkYKK307CisKK2Jvb2wgaXNDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlKEN0YXBEZXZpY2VSZXNwb25zZUNvZGUpOworCiAvLyBDb21tYW5kcyBzdXBwb3J0ZWQgYnkg
Q1RBUEhJRCBkZXZpY2UgYXMgc3BlY2lmaWVkIGluCiAvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5v
cmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0
b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sI2N0YXBoaWQtY29tbWFuZHMKIGVudW0g
Y2xhc3MgRmlkb0hpZERldmljZUNvbW1hbmQgOiB1aW50OF90IHsKQEAgLTQ3LDcgKzEzMiwyNCBA
QCBlbnVtIGNsYXNzIEZpZG9IaWREZXZpY2VDb21tYW5kIDogdWludDhfdCB7CiAgICAga0xvY2sg
PSAweDA0LAogfTsKIAotYm9vbCBpc0ZpZG9IaWREZXZpY2VDb21tYW5kKEZpZG9IaWREZXZpY2VD
b21tYW5kIGNtZCk7Citib29sIGlzRmlkb0hpZERldmljZUNvbW1hbmQoRmlkb0hpZERldmljZUNv
bW1hbmQpOworCisvLyBTdHJpbmcga2V5IHZhbHVlcyBmb3IgQ1RBUCByZXF1ZXN0IG9wdGlvbmFs
IHBhcmFtZXRlcnMgYW5kCisvLyBBdXRoZW50aWNhdG9yR2V0SW5mbyByZXNwb25zZS4KK2NvbnN0
IGNoYXIga1Jlc2lkZW50S2V5TWFwS2V5W10gPSAicmsiOworY29uc3QgY2hhciBrVXNlclZlcmlm
aWNhdGlvbk1hcEtleVtdID0gInV2IjsKK2NvbnN0IGNoYXIga1VzZXJQcmVzZW5jZU1hcEtleVtd
ID0gInVwIjsKK2NvbnN0IGNoYXIga0NsaWVudFBpbk1hcEtleVtdID0gImNsaWVudFBpbiI7Citj
b25zdCBjaGFyIGtQbGF0Zm9ybURldmljZU1hcEtleVtdID0gInBsYXQiOworY29uc3QgY2hhciBr
RW50aXR5SWRNYXBLZXlbXSA9ICJpZCI7Citjb25zdCBjaGFyIGtFbnRpdHlOYW1lTWFwS2V5W10g
PSAibmFtZSI7Citjb25zdCBjaGFyIGtEaXNwbGF5TmFtZU1hcEtleVtdID0gImRpc3BsYXlOYW1l
IjsKK2NvbnN0IGNoYXIga0ljb25VcmxNYXBLZXlbXSA9ICJpY29uIjsKK2NvbnN0IGNoYXIga0Ny
ZWRlbnRpYWxUeXBlTWFwS2V5W10gPSAidHlwZSI7Citjb25zdCBjaGFyIGtDcmVkZW50aWFsQWxn
b3JpdGhtTWFwS2V5W10gPSAiYWxnIjsKKy8vIEtleXMgZm9yIHN0b3JpbmcgY3JlZGVudGlhbCBk
ZXNjcmlwdG9yIGluZm9ybWF0aW9uIGluIENCT1IgbWFwLgorY29uc3QgY2hhciBrQ3JlZGVudGlh
bElkS2V5W10gPSAiaWQiOworY29uc3QgY2hhciBrQ3JlZGVudGlhbFR5cGVLZXlbXSA9ICJ0eXBl
IjsKIAogLy8gSElEIHRyYW5zcG9ydCBzcGVjaWZpYyBjb25zdGFudHMuCiBjb25zdCBzaXplX3Qg
a0hpZFBhY2tldFNpemUgPSA2NDsKQEAgLTYzLDYgKzE2NSwzNCBAQCBjb25zdCB1aW50OF90IGtI
aWRNYXhMb2NrU2Vjb25kcyA9IDEwOwogLy8gTWVzc2FnZXMgYXJlIGxpbWl0ZWQgdG8gYW4gaW5p
dGlhdGlvbiBwYWNrZXQgYW5kIDEyOCBjb250aW51YXRpb24gcGFja2V0cy4KIGNvbnN0IHNpemVf
dCBrSGlkTWF4TWVzc2FnZVNpemUgPSA3NjA5OwogCisvLyBBdXRoZW50aWNhdG9yIEFQSSBjb21t
YW5kcyBzdXBwb3J0ZWQgYnkgQ1RBUCBkZXZpY2VzLCBhcyBzcGVjaWZpZWQgaW4KKy8vIGh0dHBz
Oi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcmQtMjAxNzA5MjcvZmlkby1jbGll
bnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXJkLTIwMTcwOTI3Lmh0bWwjYXV0aGVu
dGljYXRvci1hcGkKK2VudW0gY2xhc3MgQ3RhcFJlcXVlc3RDb21tYW5kIDogdWludDhfdCB7Cisg
ICAga0F1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbCA9IDB4MDEsCisgICAga0F1dGhlbnRpY2F0
b3JHZXRBc3NlcnRpb24gPSAweDAyLAorICAgIGtBdXRoZW50aWNhdG9yR2V0TmV4dEFzc2VydGlv
biA9IDB4MDgsCisgICAga0F1dGhlbnRpY2F0b3JHZXRJbmZvID0gMHgwNCwKKyAgICBrQXV0aGVu
dGljYXRvckNsaWVudFBpbiA9IDB4MDYsCisgICAga0F1dGhlbnRpY2F0b3JSZXNldCA9IDB4MDcs
Cit9OworCisvLyBTdHJpbmcga2V5IHZhbHVlcyBmb3IgYXR0ZXN0YXRpb24gb2JqZWN0IGFzIGEg
cmVzcG9uc2UgdG8gTWFrZUNyZWRlbnRpYWwKKy8vIHJlcXVlc3QuCitjb25zdCBjaGFyIGtGb3Jt
YXRLZXlbXSA9ICJmbXQiOworY29uc3QgY2hhciBrQXR0ZXN0YXRpb25TdGF0ZW1lbnRLZXlbXSA9
ICJhdHRTdG10IjsKK2NvbnN0IGNoYXIga0F1dGhEYXRhS2V5W10gPSAiYXV0aERhdGEiOworY29u
c3QgY2hhciBrTm9uZUF0dGVzdGF0aW9uVmFsdWVbXSA9ICJub25lIjsKKworLy8gU3RyaW5nIHJl
cHJlc2VudGF0aW9uIG9mIHB1YmxpYyBrZXkgY3JlZGVudGlhbCBlbnVtLgorLy8gaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL3dlYmF1dGhuLyNjcmVkZW50aWFsVHlwZQorY29uc3QgY2hhciBrUHVibGlj
S2V5W10gPSAicHVibGljLWtleSI7CisKK2NvbnN0IGNoYXIqIHB1YmxpY0tleUNyZWRlbnRpYWxU
eXBlVG9TdHJpbmcoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFR5cGUpOworCisvLyBGSVhN
RTogQWRkIHVybCB0byB0aGUgb2ZmaWNpYWwgc3BlYyBvbmNlIGl0J3Mgc3RhbmRhcmRpemVkLgor
Y29uc3QgY2hhciBrQ3RhcDJWZXJzaW9uW10gPSAiRklET18yXzAiOworY29uc3QgY2hhciBrVTJm
VmVyc2lvbltdID0gIlUyRl9WMiI7CisKIH0gLy8gbmFtZXNwYWNlIGZpZG8KIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDA0NjNkMTU3OWU0YzYyZDkzMDEy
YzA2MTVlOTMyYmE3NGYxNjNkM2EuLmZhZDJiN2EzYWI2YzhhZDRhOTdjODlhNTc2OTMwOWVjMWU0
ZjMxNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yNTgsNiArMjU4LDEwIEBAIE1vZHVsZXMvd2ViYXV0
aG4vUHVibGljS2V5Q3JlZGVudGlhbC5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SUmVh
ZGVyLmNwcAogTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5jcHAKIE1vZHVsZXMvd2Vi
YXV0aG4vY2Jvci9DQk9SV3JpdGVyLmNwcAorTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwCitNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnMuY3BwCitNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVx
dWVzdENvbnZlcnRlci5jcHAKK01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNv
bnZlcnRlci5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcAogTW9k
dWxlcy93ZWJhdXRobi9maWRvL0ZpZG9IaWRNZXNzYWdlLmNwcAogTW9kdWxlcy93ZWJhdXRobi9m
aWRvL0ZpZG9IaWRQYWNrZXQuY3BwCkBAIC0zMTUyLDYgKzMxNTYsNyBAQCBKU1RyZWVXYWxrZXIu
Y3BwCiBKU1VJRXZlbnQuY3BwCiBKU1VJRXZlbnRJbml0LmNwcAogSlNVUkxTZWFyY2hQYXJhbXMu
Y3BwCitKU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5jcHAKIEpTVlJEaXNwbGF5LmNwcAog
SlNWUkRpc3BsYXlDYXBhYmlsaXRpZXMuY3BwCiBKU1ZSRGlzcGxheUV2ZW50LmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJh
MTVmY2YxZGVlYzA0ZmVhNjQzNmMzMGE1ODFjNmIyZDI1M2FhZWUuLmIyNjEyYTc0MTc5NWI3YzNh
ZmEwNWJmODQxOGRkYzUwMzgwNDM4Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3NTIsNiArMTc1MiwxMiBAQAogCQk1NzIx
QTk4NzFFQ0U1M0IxMDA4MTI5NUEgLyogQ3J5cHRvRGlnZXN0QWxnb3JpdGhtLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzIxQTk4NjFFQ0U1M0IxMDA4
MTI5NUEgLyogQ3J5cHRvRGlnZXN0QWxnb3JpdGhtLmggKi87IH07CiAJCTU3MjFBOThCMUVDRTU3
MDQwMDgxMjk1QSAvKiBDcnlwdG9BbGdvcml0aG1Sc2FQc3NQYXJhbXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MjFBOTg4MUVDRTU3MDQwMDgxMjk1
QSAvKiBDcnlwdG9BbGdvcml0aG1Sc2FQc3NQYXJhbXMuaCAqLzsgfTsKIAkJNTcyQTdGMjExQzZF
NTcxOTAwOUM2MTQ5IC8qIFNpbXVsYXRlZENsaWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJBN0YyMDFDNkU1NzE5MDA5QzYxNDkgLyogU2ltdWxh
dGVkQ2xpY2suaCAqLzsgfTsKKwkJNTcyQjQwMUYyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJl
cXVlc3RDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3MkI0MDFEMjE3NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVydGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTcy
QjQwMkMyMTc2OTAyMDAwMEFENDNFIC8qIEpTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJCNDAyQTIx
NzY5MDFGMDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCAqLzsgfTsK
KwkJNTcyQjQwMzYyMTc2QTkyMjAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQw
MjMyMTc2OEQ4NTAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU3MkI0MDNBMjE3
NzI1ODEwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwMzcyMTc3MjU2QzAwMEFENDNF
IC8qIERldmljZVJlc3BvbnNlQ29udmVydGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTcyQjQwNDAyMTc4MDE3MTAwMEFENDNFIC8qIEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzJCNDAzRTIxNzgwMTcwMDAwQUQ0M0UgLyogQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk1NzJCNDA0MjIxNzgxMTRBMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTcyQjQwM0MyMTc3RkI2MTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVz
cG9uc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk1NzMwM0JCOTIwMDZDNkVFMDAzNTU5NjUgLyogQ0JPUlZhbHVlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzMwM0JCNDIwMDZDNkVEMDAzNTU5NjUg
LyogQ0JPUlZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNTczMDNCQkEyMDA2QzZFRTAwMzU1OTY1IC8qIENCT1JXcml0ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzAzQkI1MjAwNkM2RUQw
MDM1NTk2NSAvKiBDQk9SV3JpdGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNTczMDNCQkIyMDA2QzZFRTAwMzU1OTY1IC8qIENCT1JCaW5hcnku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzAzQkI2
MjAwNkM2RUQwMDM1NTk2NSAvKiBDQk9SQmluYXJ5LmggKi87IH07CkBAIC04NTYzLDYgKzg1Njks
MTggQEAKIAkJNTcyMUE5OEExRUNFNTcwNDAwODEyOTVBIC8qIFJzYVBzc1BhcmFtcy5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUnNhUHNzUGFyYW1zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyQTdG
MjAxQzZFNTcxOTAwOUM2MTQ5IC8qIFNpbXVsYXRlZENsaWNrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNpbXVsYXRlZENsaWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3MkE3RjIyMUM2RTVBNjYwMDlDNjE0OSAvKiBTaW11bGF0ZWRDbGljay5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaW11bGF0ZWRDbGljay5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDFEMjE3NTdBNjQwMDBBRDQzRSAvKiBE
ZXZpY2VSZXF1ZXN0Q29udmVydGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZVJlcXVlc3RDb252
ZXJ0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMUUyMTc1N0E2NDAw
MEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTU3MkI0MDIzMjE3NjhEODUwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDI1MjE3NjhEODUwMDBBRDQzRSAvKiBVc2VyVmVy
aWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDJBMjE3NjkwMUYwMDBB
RDQzRSAvKiBKU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAyQjIxNzY5MDFGMDAwQUQ0M0UgLyogSlNVc2Vy
VmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1NzJCNDAzNzIxNzcyNTZDMDAwQUQ0M0UgLyogRGV2aWNlUmVzcG9u
c2VDb252ZXJ0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlUmVz
cG9uc2VDb252ZXJ0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMzgy
MTc3MjU2QzAwMEFENDNFIC8qIERldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwM0IyMTc3RkI2MDAwMEFENDNFIC8q
IEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDNDMjE3N0ZCNjEwMDBBRDQzRSAvKiBBdXRoZW50
aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTcyQjQwM0QyMTc4MDE2RjAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTcyQjQwM0UyMTc4MDE3MDAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0b3JTdXBwb3J0
ZWRPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAzQkI0MjAwNkM2
RUQwMDM1NTk2NSAvKiBDQk9SVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ0JPUlZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAzQkI1MjAw
NkM2RUQwMDM1NTk2NSAvKiBDQk9SV3JpdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENCT1JXcml0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNC
QjYyMDA2QzZFRDAwMzU1OTY1IC8qIENCT1JCaW5hcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ0JPUkJpbmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTkwNjgsNiArMTkwODYsMTQgQEAKIAkJNTc4QTRCRkEyMTY2QUUwMDAwRDA4RjM0IC8qIGZpZG8g
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTU3MkI0MDNC
MjE3N0ZCNjAwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmNwcCAqLywK
KwkJCQk1NzJCNDAzQzIxNzdGQjYxMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZS5oICovLAorCQkJCTU3MkI0MDNEMjE3ODAxNkYwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9ucy5jcHAgKi8sCisJCQkJNTcyQjQwM0UyMTc4MDE3MDAwMEFENDNFIC8q
IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmggKi8sCisJCQkJNTcyQjQwMUUyMTc1N0E2
NDAwMEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwICovLAorCQkJCTU3MkI0MDFE
MjE3NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmggKi8sCisJCQkJNTcy
QjQwMzgyMTc3MjU2QzAwMEFENDNFIC8qIERldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcCAqLywK
KwkJCQk1NzJCNDAzNzIxNzcyNTZDMDAwQUQ0M0UgLyogRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIu
aCAqLywKIAkJCQk1N0JBRjI4NzIxNjdEMkY3MDA4RTk1NEUgLyogRmlkb0NvbnN0YW50cy5jcHAg
Ki8sCiAJCQkJNTc4QTRDMEIyMTY3RDI5NjAwRDA4RjM0IC8qIEZpZG9Db25zdGFudHMuaCAqLywK
IAkJCQk1NzhBNEMwODIxNjdEMjk1MDBEMDhGMzQgLyogRmlkb0hpZE1lc3NhZ2UuY3BwICovLApA
QCAtMTkxNDcsNiArMTkxNzMsOCBAQAogCQkJCTU3MzAzQzA4MjAwOTk4RjgwMDM1NTk2NSAvKiBQ
dWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsICovLAogCQkJCTU3MzAzQkVBMjAw
OTdGNDAwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5oICovLAogCQkJCTU3MzAz
QkYwMjAwOTg0NjEwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5pZGwgKi8sCisJ
CQkJNTcyQjQwMjMyMTc2OEQ4NTAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dC5oICovLAorCQkJCTU3MkI0MDI1MjE3NjhEODUwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQuaWRsICovLAogCQkJKTsKIAkJCXBhdGggPSB3ZWJhdXRobjsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xOTE3Miw2ICsxOTIwMCw4IEBACiAJCQkJNTczMDNDMEMy
MDA5OUM3NTAwMzU1OTY1IC8qIEpTUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgg
Ki8sCiAJCQkJNTczMDNCRkEyMDA5OTEzNTAwMzU1OTY1IC8qIEpTUHVibGljS2V5Q3JlZGVudGlh
bFR5cGUuY3BwICovLAogCQkJCTU3MzAzQkY5MjAwOTkxMzQwMDM1NTk2NSAvKiBKU1B1YmxpY0tl
eUNyZWRlbnRpYWxUeXBlLmggKi8sCisJCQkJNTcyQjQwMkIyMTc2OTAxRjAwMEFENDNFIC8qIEpT
VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmNwcCAqLywKKwkJCQk1NzJCNDAyQTIxNzY5MDFG
MDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCAqLywKIAkJCSk7CiAJ
CQluYW1lID0gV2ViQXV0aE47CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTk4MTEs
OSArMTk4NDEsNyBAQAogCQkJCUU0MjA1MDE2MjE0MTkwMUIwMDY2RUYzQiAvKiBQcm9jZXNzV2Fy
bWluZy5jcHAgKi8sCiAJCQkJRTQyMDUwMTQyMTQxOTAxQTAwNjZFRjNCIC8qIFByb2Nlc3NXYXJt
aW5nLmggKi8sCiAJCQkJQ0Q5QTg3RjkyMTVENkNGMzAwNkYxN0I1IC8qIFF1aXJrcy5jcHAgKi8s
Ci0JCQkJQ0Q5QTg3RjIyMTVENDNBNjAwNkYxN0I1IC8qIFF1aXJrcy5jcHAgKi8sCiAJCQkJQ0Q5
QTg3RkIyMTVENkNGMzAwNkYxN0I1IC8qIFF1aXJrcy5oICovLAotCQkJCUNEOUE4N0YxMjE1RDQz
QTYwMDZGMTdCNSAvKiBRdWlya3MuaCAqLywKIAkJCQk0NkI5NTE4RDIwN0Q2MzJBMDBBN0QyREQg
LyogUmVtb3RlRE9NV2luZG93LmNwcCAqLywKIAkJCQk0NkI5NTE4RTIwN0Q2MzJBMDBBN0QyREQg
LyogUmVtb3RlRE9NV2luZG93LmggKi8sCiAJCQkJNDZCQ0JCQzMyMDg1MDBBNzAwNzEwNjM4IC8q
IFJlbW90ZURPTVdpbmRvdy5pZGwgKi8sCkBAIC0yNzY0NCw3ICsyNzY3Miw5IEBACiAJCQkJNTcz
MDNDMUYyMDA5QUI0MjAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0M0NjIwMTA1RDJGMDAzNTU5NjUgLyogQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzYwODI3MjIwMjE1QTU1
MDAxMTY2NzggLyogQXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKKwkJCQk1NzJCNDA0MjIxNzgxMTRBMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9S
ZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNCRDIyMDA4N0E4MzAwMzU1OTY1IC8q
IEF1dGhlbnRpY2F0b3JSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcyQjQwNDAyMTc4
MDE3MTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1N0RDRUQ5MDIxNDg3RkY3MDAxNkI4NDcgLyogQXV0aGVudGljYXRvclRyYW5z
cG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwMTkyMEUxMzJFQkYyRTAwOEJGRTU1IC8qIEF1
dG9jYXBpdGFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUE3QUE0MzEzMkYwRUNDMDBEM0Ez
QzIgLyogQXV0b2NhcGl0YWxpemVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODE2MSw2ICsy
ODE5MSw4IEBACiAJCQkJNTlBOEYxRDYxMUE2OTUxMzAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTkwRTFCNDkxMUU0RUY0QjAwNjlG
Nzg0IC8qIERldmljZU9yaWVudGF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlBODVF
QTQxMTlENjhFQzAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTU3MkI0MDFGMjE3NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVy
dGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzJCNDAzQTIxNzcyNTgxMDAwQUQ0M0UgLyogRGV2
aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2NzcyNUZEMUE1QjNB
RDkwMDNDMjRERCAvKiBERkEuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDlGNTY2MUFBMEY3M0Mw
MERBNDVGRiAvKiBERkFCeXRlY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEOUY1NjcxQUEw
Rjc0MjAwREE0NUZGIC8qIERGQUJ5dGVjb2RlQ29tcGlsZXIuaCBpbiBIZWFkZXJzICovLApAQCAt
Mjk2NDMsNiArMjk2NzUsNyBAQAogCQkJCTQ2NTMwN0QwMURCNkVFNDgwMEU0MTM3QyAvKiBKU1VJ
RXZlbnRJbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzczRkIxMjE5MUVGNkY0MDA3REUwNjEg
LyogSlNVc2VyTWVzc2FnZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNzNGQjBEMTkx
RUY1QTgwMDdERTA2MSAvKiBKU1VzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTU3MkI0MDJDMjE3NjkwMjAwMDBBRDQzRSAvKiBKU1VzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTVDNzcwOTMxMDBEM0NBODAwNUJB
MjY3IC8qIEpTVmFsaWRpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNEIxNzFD
OTAxNDAwOUI0OEMzIC8qIEpTVmlkZW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYw
NEQxNzFDOTAxNDAwOUI0OEMzIC8qIEpTVmlkZW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLApA
QCAtMzEyOTMsNiArMzEzMjYsNyBAQAogCQkJCUJDOEJGMTUxMTA1ODEzQkYwMEE0MEEwNyAvKiBV
c2VyU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4QkYxNUExMDU4MTQxODAwQTQw
QTA3IC8qIFVzZXJTdHlsZVNoZWV0VHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREYzMTdD
MTFGOEQ2ODMwMDNDNUJGOCAvKiBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNTcyQjQwMzYyMTc2QTkyMjAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25S
ZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRjE0RTYxRUFBQzU5QjAwMjZFRUFB
IC8qIFVUSVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxRkFGQkYxOTE1QTVGQTc0MDAw
ODNBMjAgLyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0M0NUI4RTFEQzJC
NjhBMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWNjNTgxYmNjOThh
ZDU3MDk4OWExN2IxYTkxMGY3YzBjNzM1M2ZkOC4uMDg5MmY5NDQyMjU1Y2QxZmZlMzBiMTE3YTU0
Y2UzNTU4MTc2MGUyYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTEwLTIxICBKaWV3ZW4gVGFuICA8amlld2Vu
X3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBvcnQgQ1RBUCBkZXZpY2Ug
cmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzIGZyb20gQ2hyb21pdW0KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDc4NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0NCT1JWYWx1ZVRlc3QuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1
ZXN0VGVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRlc3QuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmdldFRlc3RDb3JydXB0ZWRTaWduUmVzcG9u
c2UpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Z2V0VGVzdENyZWRlbnRpYWxSYXdJZEJ5dGVz
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmNvbnZlcnRUb1ZlY3Rvcik6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvRmlkb1Rlc3REYXRhLmg6IEFkZGVkLgorCiAyMDE4LTEwLTE5ICBDaGFybGllIFR1cm5lciAg
PGN0dXJuZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbRU1FXSBGaXggY3Jhc2ggZHVyaW5nIHRy
YWNpbmcgaW4gIGdzdF9xdGRlbXV4X3JlcXVlc3RfcHJvdGVjdGlvbl9jb250ZXh0CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDQ5ODJmNGZjOWIxMzg2OTA1ZWQ2OWUwZWM3MzBkY2Q4NTczNDY2
OGYuLjNjM2EzMjc4NWNlYWJhZmQwZjg2MTgxMzJkMTRmOTUzYWYzY2UyZTggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0yNDYsNiArMjQ2LDggQEAKIAkJNTcxNEVDQkIxQ0E4QkZFNDAwMDUx
QUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzE0RUNCQTFDQThCRkQx
MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovOyB9Owog
CQk1NzE0RUNCRDFDQThDMjJBMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwy
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTcxNEVDQkMxQ0E4QzIxODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJM
Mi5odG1sICovOyB9OwogCQk1NzFGN0ZEMDFGMjk2MUZCMDA5NDY2NDggLyogSW5kZXhlZERCU3Ry
dWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtd2FsIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MUY3RkNGMUYyOTYx
RTEwMDk0NjY0OCAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxp
dHkuc3FsaXRlMy13YWwgKi87IH07CisJCTU3MkI0MDM0MjE3NjlBODgwMDBBRDQzRSAvKiBDdGFw
UmVxdWVzdFRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTcyQjQwMzMyMTc2OUE4ODAwMEFENDNFIC8qIEN0YXBSZXF1ZXN0VGVzdC5jcHAgKi87
IH07CisJCTU3MkI0MDQ0MjE3ODFCNDMwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDQzMjE3
ODFCNDIwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNwcCAqLzsgfTsKIAkJNTczMDNCQzky
MDA4MjREMzAwMzU1OTY1IC8qIENCT1JWYWx1ZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQUMyMDA2QzU2MDAwMzU1OTY1IC8qIENC
T1JWYWx1ZVRlc3QuY3BwICovOyB9OwogCQk1NzMwM0JDQTIwMDgyQzAxMDAzNTU5NjUgLyogQ0JP
UldyaXRlclRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTczMDNCQUIyMDA2QzU1NDAwMzU1OTY1IC8qIENCT1JXcml0ZXJUZXN0LmNwcCAqLzsg
fTsKIAkJNTczMDNCQ0IyMDA4Mzc2NTAwMzU1OTY1IC8qIENCT1JSZWFkZXJUZXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzAzQkMyMjAwNzFF
MjIwMDM1NTk2NSAvKiBDQk9SUmVhZGVyVGVzdC5jcHAgKi87IH07CkBAIC0xNTUxLDYgKzE1NTMs
OSBAQAogCQk1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2lu
YWxVUkxGcmFtZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRSZXF1
ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NzE0RUNCQzFDQThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVS
TDIuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcxRjdGQ0YxRjI5NjFFMTAw
OTQ2NjQ4IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5z
cWxpdGUzLXdhbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRp
YmlsaXR5LnNxbGl0ZTMtd2FsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQw
MzMyMTc2OUE4ODAwMEFENDNFIC8qIEN0YXBSZXF1ZXN0VGVzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdGFwUmVxdWVzdFRlc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1NzJCNDAzNTIxNzZBMDI5MDAwQUQ0M0UgLyogRmlkb1Rlc3REYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZpZG9UZXN0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1NzJCNDA0MzIxNzgxQjQyMDAwQUQ0M0UgLyogQ3RhcFJlc3BvbnNlVGVzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdGFwUmVzcG9uc2VUZXN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQUIyMDA2QzU1NDAwMzU1OTY1
IC8qIENCT1JXcml0ZXJUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENCT1JXcml0ZXJUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcz
MDNCQUMyMDA2QzU2MDAwMzU1OTY1IC8qIENCT1JWYWx1ZVRlc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0JPUlZhbHVlVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU3MzAzQkMyMjAwNzFFMjIwMDM1NTk2NSAvKiBDQk9SUmVhZGVyVGVz
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQk9SUmVhZGVyVGVz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTMyLDExICsyNTM3LDE0IEBA
CiAJCQkJMUM5RUI4NDAxRTM4MERBMTAwNUM2NDQyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlci5j
cHAgKi8sCiAJCQkJN0NCMTg0QzQxQUEzRjIxMDAwNjZFREZEIC8qIENvbnRlbnRFeHRlbnNpb25z
LmNwcCAqLywKIAkJCQlDRDU0NTFFOTE5RTQxRjlEMDAxNjkzNkYgLyogQ1NTUGFyc2VyLmNwcCAq
LywKKwkJCQk1NzJCNDAzMzIxNzY5QTg4MDAwQUQ0M0UgLyogQ3RhcFJlcXVlc3RUZXN0LmNwcCAq
LywKKwkJCQk1NzJCNDA0MzIxNzgxQjQyMDAwQUQ0M0UgLyogQ3RhcFJlc3BvbnNlVGVzdC5jcHAg
Ki8sCiAJCQkJMjYwQkE1NzgxQjFEMkU3QjAwNEZBMDdDIC8qIERGQUNvbWJpbmVyLmNwcCAqLywK
IAkJCQkyNjBCQTU3QTFCMUQyRUUyMDA0RkEwN0MgLyogREZBSGVscGVycy5oICovLAogCQkJCTI2
RjZFMUVGMUFEQzc0OUIwMERFNjk2QiAvKiBERkFNaW5pbWl6ZXIuY3BwICovLAogCQkJCTMxNTEx
ODBGMURCMUFERDUwMDE3NjMwNCAvKiBFeHRlbmRlZENvbG9yLmNwcCAqLywKIAkJCQk1Nzk2NTFF
NjIxNkJGRDUzMDA2RUJGRTUgLyogRmlkb0hpZE1lc3NhZ2VUZXN0LmNwcCAqLywKKwkJCQk1NzJC
NDAzNTIxNzZBMDI5MDAwQUQ0M0UgLyogRmlkb1Rlc3REYXRhLmggKi8sCiAJCQkJN0EzMkQ3NDkx
RjAyMTUxNTAwMTYyQzQ0IC8qIEZpbGVNb25pdG9yLmNwcCAqLywKIAkJCQk0MTk3M0I1QTFBRjIy
ODZBMDA2QzdCMzYgLyogRmlsZVN5c3RlbS5jcHAgKi8sCiAJCQkJN0E5MDlBNzAxRDg3NzQ3NTAw
N0UxMEY4IC8qIEZsb2F0UG9pbnQuY3BwICovLApAQCAtMzc2Nyw2ICszNzc1LDggQEAKIAkJCQk3
Q0NFN0VBQzFBNDExQTM0MDA0NDdDNEMgLyogQ291bnRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0FFQUQ0N0YxRTIwMTE2QzAwNDE2RUZFIC8qIENyb3NzUGFydGl0aW9uRmlsZVNjaGVtZUFj
Y2Vzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RURCMUE0MTFBOTIwMDQ0N0M0QyAvKiBD
U1NQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTcyQjQwMzQyMTc2OUE4ODAwMEFENDNF
IC8qIEN0YXBSZXF1ZXN0VGVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzJCNDA0NDIxNzgx
QjQzMDAwQUQ0M0UgLyogQ3RhcFJlc3BvbnNlVGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
QUM3QjU3MDIwRDlCQTVCMDAyQzA5QTAgLyogQ3VzdG9tQnVuZGxlT2JqZWN0Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0FDN0I1NkQyMEQ5NzY5RjAwMkMwOUEwIC8qIEN1c3RvbUJ1bmRsZVBhcmFt
ZXRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjI5MUE0MTFCMTAwMDQ0N0M0QyAvKiBD
dXN0b21Qcm90b2NvbHNJbnZhbGlkU2NoZW1lLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUlZhbHVlVGVzdC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUlZhbHVlVGVzdC5jcHAKaW5kZXgg
YTJkNmI4OWYyNzI4ZmY1ZTg4OTdkMjQ0YjBjYjU4MzlmOTM1ZWNlMS4uZmY1MjBkYzdhNTk0OTRj
NWEzZDZkNjE2ZWM1ZGY1YTA0ZGM3YzdkMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0NCT1JWYWx1ZVRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9DQk9SVmFsdWVUZXN0LmNwcApAQCAtMTQ4LDYgKzE0OCwxNyBAQCBU
RVNUKENCT1JWYWx1ZVRlc3QsIENvbnN0cnVjdFNpbXBsZVZhbHVlKQogICAgIEVYUEVDVF9UUlVF
KENCT1JWYWx1ZTo6U2ltcGxlVmFsdWU6OlVuZGVmaW5lZCA9PSB1bmRlZmluZWRWYWx1ZS5nZXRT
aW1wbGVWYWx1ZSgpKTsKIH0KIAorVEVTVChDQk9SVmFsdWVUZXN0LCBDb25zdHJ1Y3RTaW1wbGVC
b29sZWFuVmFsdWUpCit7CisgICAgQ0JPUlZhbHVlIHRydWVWYWx1ZSh0cnVlKTsKKyAgICBBU1NF
UlRfRVEoQ0JPUlZhbHVlOjpUeXBlOjpTaW1wbGVWYWx1ZSwgdHJ1ZVZhbHVlLnR5cGUoKSk7Cisg
ICAgRVhQRUNUX1RSVUUodHJ1ZVZhbHVlLmdldEJvb2woKSk7CisKKyAgICBDQk9SVmFsdWUgZmFs
c2VWYWx1ZShmYWxzZSk7CisgICAgQVNTRVJUX0VRKENCT1JWYWx1ZTo6VHlwZTo6U2ltcGxlVmFs
dWUsIGZhbHNlVmFsdWUudHlwZSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZmFsc2VWYWx1ZS5nZXRC
b29sKCkpOworfQorCiAvLyBUZXN0IGNvcHkgY29uc3RydWN0b3JzCiBURVNUKENCT1JWYWx1ZVRl
c3QsIENvcHlVbnNpZ25lZCkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQzOWRhZDRlYzFhOTA4
MDA3NDE3Y2QyYTdlNmM2MWRkMTM1ZmE2NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCkBAIC0wLDAgKzEsMTI4
IEBACisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLwor
Ly8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJGaWRv
VGVzdERhdGEuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ZpZG9Db25zdGFudHMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1B1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1B1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0Jh
c2U2NC5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Cit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKK3VzaW5nIG5hbWVzcGFjZSBmaWRvOworCisvLyBMZXZlcmFnaW5nIGV4YW1wbGUgMiBv
ZiBzZWN0aW9uIDYuMSBvZiB0aGUgc3BlYworLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3Nw
ZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXBy
b3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbAorVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RD
b25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RQYXJhbSkKK3sKKyAgICBQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zOjpScEVudGl0eSBycDsKKyAgICBycC5uYW1lID0gIkFjbWUi
OworICAgIHJwLmlkID0gImFjbWUuY29tIjsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkgdXNlcjsKKyAgICB1c2VyLm5hbWUgPSAiam9obnBzbWl0
aEBleGFtcGxlLmNvbSI7CisgICAgdXNlci5pY29uID0gImh0dHBzOi8vcGljcy5hY21lLmNvbS8w
MC9wL2FCampqcHFQYi5wbmciOworICAgIHVzZXIuaWRWZWN0b3IuYXBwZW5kKFRlc3REYXRhOjpr
VXNlcklkLCBzaXplb2YoVGVzdERhdGE6OmtVc2VySWQpKTsKKyAgICB1c2VyLmRpc3BsYXlOYW1l
ID0gIkpvaG4gUC4gU21pdGgiOworCisgICAgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IHBhcmFtcyB7IHsgUHVibGljS2V5Q3JlZGVudGlhbFR5
cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXks
IDI1NyB9IH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVu
dGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7IFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgdHJ1ZSwg
VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQgfTsKKworICAgIFB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7IHJwLCB1c2VyLCB7IH0sIHBhcmFt
cywgc3RkOjpudWxsb3B0LCB7IH0sIHNlbGVjdGlvbiB9OworICAgIFZlY3Rvcjx1aW50OF90PiBo
YXNoOworICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gsIHNpemVvZihU
ZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVu
Y29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBv
cnRlZEJ1dE5vdENvbmZpZ3VyZWQpOworICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXpl
KCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3QpKTsKKyAgICBF
WFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhLmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwTWFr
ZUNyZWRlbnRpYWxSZXF1ZXN0LCBzZXJpYWxpemVkRGF0YS5zaXplKCkpLCAwKTsKK30KKworVEVT
VChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RHZXRBc3NlcnRpb25SZXF1ZXN0KQorewor
ICAgIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyBvcHRpb25zOworICAgIG9wdGlv
bnMucnBJZCA9ICJhY21lLmNvbSI7CisKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRv
ciBkZXNjcmlwdG9yMTsKKyAgICBkZXNjcmlwdG9yMS50eXBlID0gUHVibGljS2V5Q3JlZGVudGlh
bFR5cGU6OlB1YmxpY0tleTsKKyAgICBjb25zdCB1aW50OF90IGlkMVtdID0geworICAgICAgICAw
eGYyLCAweDIwLCAweDA2LCAweGRlLCAweDRmLCAweDkwLCAweDVhLCAweGY2LCAweDhhLCAweDQz
LCAweDk0LAorICAgICAgICAweDJmLCAweDAyLCAweDRmLCAweDJhLCAweDVlLCAweGNlLCAweDYw
LCAweDNkLCAweDljLCAweDZkLCAweDRiLAorICAgICAgICAweDNkLCAweGY4LCAweGJlLCAweDA4
LCAweGVkLCAweDAxLCAweGZjLCAweDQ0LCAweDI2LCAweDQ2LCAweGQwLAorICAgICAgICAweDM0
LCAweDg1LCAweDhhLCAweGM3LCAweDViLCAweGVkLCAweDNmLCAweGQ1LCAweDgwLCAweGJmLCAw
eDk4LAorICAgICAgICAweDA4LCAweGQ5LCAweDRmLCAweGNiLCAweGVlLCAweDgyLCAweGI5LCAw
eGIyLCAweGVmLCAweDY2LCAweDc3LAorICAgICAgICAweGFmLCAweDBhLCAweGRjLCAweGMzLCAw
eDU4LCAweDUyLCAweGVhLCAweDZiLCAweDllIH07CisgICAgZGVzY3JpcHRvcjEuaWRWZWN0b3Iu
YXBwZW5kKGlkMSwgc2l6ZW9mKGlkMSkpOworICAgIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscy5h
cHBlbmQoZGVzY3JpcHRvcjEpOworCisgICAgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3Ig
ZGVzY3JpcHRvcjI7CisgICAgZGVzY3JpcHRvcjIudHlwZSA9IFB1YmxpY0tleUNyZWRlbnRpYWxU
eXBlOjpQdWJsaWNLZXk7CisgICAgY29uc3QgdWludDhfdCBpZDJbXSA9IHsKKyAgICAgICAgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywK
KyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMywgMHgwMywKKyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAgICAgMHgwMywgMHgwMywg
MHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMyB9OworICAgIGRl
c2NyaXB0b3IyLmlkVmVjdG9yLmFwcGVuZChpZDIsIHNpemVvZihpZDIpKTsKKyAgICBvcHRpb25z
LmFsbG93Q3JlZGVudGlhbHMuYXBwZW5kKGRlc2NyaXB0b3IyKTsKKworICAgIG9wdGlvbnMudXNl
clZlcmlmaWNhdGlvbiA9IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQ7CisK
KyAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKKyAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0Ns
aWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOworICAgIGF1
dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKGhhc2gs
IG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9u
QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0Tm90Q29uZmlndXJlZCk7CisgICAgRVhQRUNUX0VR
KHNlcmlhbGl6ZWREYXRhLnNpemUoKSwgc2l6ZW9mKFRlc3REYXRhOjprVGVzdENvbXBsZXhDdGFw
R2V0QXNzZXJ0aW9uUmVxdWVzdCkpOworICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERh
dGEuZGF0YSgpLCBUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3Qs
IHNlcmlhbGl6ZWREYXRhLnNpemUoKSksIDApOworfQorCitURVNUKENUQVBSZXF1ZXN0VGVzdCwg
VGVzdENvbnN0cnVjdEN0YXBBdXRoZW50aWNhdG9yUmVxdWVzdFBhcmFtKQoreworICAgIHN0YXRp
YyBjb25zdGV4cHIgdWludDhfdCBrU2VyaWFsaXplZEdldEluZm9DbWQgPSAweDA0OworICAgIHN0
YXRpYyBjb25zdGV4cHIgdWludDhfdCBrU2VyaWFsaXplZEdldE5leHRBc3NlcnRpb25DbWQgPSAw
eDA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBrU2VyaWFsaXplZFJlc2V0Q21kID0g
MHgwNzsKKworICAgIGF1dG8gc2VyaWFsaXplZERhdGExID0gZW5jb2RlRW1wdHlBdXRoZW50aWNh
dG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yR2V0SW5mbyk7Cisg
ICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhMS5zaXplKCksIDF1KTsKKyAgICBFWFBFQ1RfRVEo
bWVtY21wKHNlcmlhbGl6ZWREYXRhMS5kYXRhKCksICZrU2VyaWFsaXplZEdldEluZm9DbWQsIDEp
LCAwKTsKKworICAgIGF1dG8gc2VyaWFsaXplZERhdGEyID0gZW5jb2RlRW1wdHlBdXRoZW50aWNh
dG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yR2V0TmV4dEFzc2Vy
dGlvbik7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhMi5zaXplKCksIDF1KTsKKyAgICBF
WFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhMi5kYXRhKCksICZrU2VyaWFsaXplZEdldE5l
eHRBc3NlcnRpb25DbWQsIDEpLCAwKTsKKworICAgIGF1dG8gc2VyaWFsaXplZERhdGEzID0gZW5j
b2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50
aWNhdG9yUmVzZXQpOworICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YTMuc2l6ZSgpLCAxdSk7
CisgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0YTMuZGF0YSgpLCAma1NlcmlhbGl6
ZWRSZXNldENtZCwgMSksIDApOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0NzZh
NmQwZDJiNGI5MTJlNGRjY2JmZmJmMzE3OGYyNjRhMWMwNGYKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlc3BvbnNlVGVzdC5jcHAKQEAg
LTAsMCArMSwzNTUgQEAKKy8vIENvcHlyaWdodCAyMDE3IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8v
IG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisv
LworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisj
aW5jbHVkZSAiRmlkb1Rlc3REYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DYm9yUmVhZGVyLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9DYm9yVmFsdWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Nib3JX
cml0ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9GaWRvQ29uc3RhbnRzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QdWJs
aWNLZXlDcmVkZW50aWFsLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKK3VzaW5nIG5h
bWVzcGFjZSBmaWRvOworCitjb25zdGV4cHIgdWludDhfdCBrVGVzdEF1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2VXaXRoTm9WZXJzaW9uW10gPSB7CisgICAgLy8gU3VjY2VzcyBzdGF0dXMgYnl0
ZQorICAgIDB4MDAsCisgICAgLy8gTWFwIG9mIDYgZWxlbWVudHMKKyAgICAweEE2LAorICAgIC8v
IEtleSgwMSkgLSB2ZXJzaW9ucworICAgIDB4MDEsCisgICAgLy8gQXJyYXkoMCkKKyAgICAweDgw
LAorICAgIC8vIEtleSgwMikgLSBleHRlbnNpb25zCisgICAgMHgwMiwKKyAgICAvLyBBcnJheSgy
KQorICAgIDB4ODIsCisgICAgLy8gInV2bSIKKyAgICAweDYzLCAweDc1LCAweDc2LCAweDZELAor
ICAgIC8vICJobWFjLXNlY3JldCIKKyAgICAweDZCLCAweDY4LCAweDZELCAweDYxLCAweDYzLCAw
eDJELCAweDczLCAweDY1LCAweDYzLCAweDcyLCAweDY1LCAweDc0LAorICAgIC8vIEtleSgwMykg
LSBBQUdVSUQKKyAgICAweDAzLAorICAgIC8vIEJ5dGVzKDE2KQorICAgIDB4NTAsIDB4RjgsIDB4
QTAsIDB4MTEsIDB4RjMsIDB4OEMsIDB4MEEsIDB4NEQsIDB4MTUsIDB4ODAsIDB4MDYsIDB4MTcs
CisgICAgMHgxMSwgMHgxRiwgMHg5RSwgMHhEQywgMHg3RCwKKyAgICAvLyBLZXkoMDQpIC0gb3B0
aW9ucworICAgIDB4MDQsCisgICAgLy8gTWFwKDA1KQorICAgIDB4QTUsCisgICAgLy8gS2V5IC0g
InJrIgorICAgIDB4NjIsIDB4NzIsIDB4NkIsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAg
Ly8gS2V5IC0gInVwIgorICAgIDB4NjIsIDB4NzUsIDB4NzAsCisgICAgLy8gdHJ1ZQorICAgIDB4
RjUsCisgICAgLy8gS2V5IC0gInV2IgorICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gdHJ1
ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInBsYXQiCisgICAgMHg2NCwgMHg3MCwgMHg2Qywg
MHg2MSwgMHg3NCwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAiY2xpZW50
UGluIgorICAgIDB4NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4NTAs
IDB4NjksIDB4NkUsCisgICAgLy8gZmFsc2UKKyAgICAweEY0LAorICAgIC8vIEtleSgwNSkgLSBN
YXggbWVzc2FnZSBzaXplCisgICAgMHgwNSwKKyAgICAvLyAxMjAwCisgICAgMHgxOSwgMHgwNCwg
MHhCMCwKKyAgICAvLyBLZXkoMDYpIC0gUGluIHByb3RvY29scworICAgIDB4MDYsCisgICAgLy8g
QXJyYXlbMV0KKyAgICAweDgxLCAweDAxLAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RB
dXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aER1cGxpY2F0ZVZlcnNpb25bXSA9IHsKKyAg
ICAvLyBTdWNjZXNzIHN0YXR1cyBieXRlCisgICAgMHgwMCwKKyAgICAvLyBNYXAgb2YgNiBlbGVt
ZW50cworICAgIDB4QTYsCisgICAgLy8gS2V5KDAxKSAtIHZlcnNpb25zCisgICAgMHgwMSwKKyAg
ICAvLyBBcnJheSgwMikKKyAgICAweDgyLAorICAgIC8vICJVMkZfVjIiCisgICAgMHg2NiwgMHg1
NSwgMHgzMiwgMHg0NiwgMHg1RiwgMHg1NiwgMHgzMiwKKyAgICAvLyAiVTJGX1YyIgorICAgIDB4
NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYsIDB4NTYsIDB4MzIsCisgICAgLy8gS2V5KDAyKSAt
IGV4dGVuc2lvbnMKKyAgICAweDAyLAorICAgIC8vIEFycmF5KDIpCisgICAgMHg4MiwKKyAgICAv
LyAidXZtIgorICAgIDB4NjMsIDB4NzUsIDB4NzYsIDB4NkQsCisgICAgLy8gImhtYWMtc2VjcmV0
IgorICAgIDB4NkIsIDB4NjgsIDB4NkQsIDB4NjEsIDB4NjMsIDB4MkQsIDB4NzMsIDB4NjUsIDB4
NjMsIDB4NzIsIDB4NjUsIDB4NzQsCisgICAgLy8gS2V5KDAzKSAtIEFBR1VJRAorICAgIDB4MDMs
CisgICAgLy8gQnl0ZXMoMTYpCisgICAgMHg1MCwgMHhGOCwgMHhBMCwgMHgxMSwgMHhGMywgMHg4
QywgMHgwQSwgMHg0RCwgMHgxNSwgMHg4MCwgMHgwNiwgMHgxNywKKyAgICAweDExLCAweDFGLCAw
eDlFLCAweERDLCAweDdELAorICAgIC8vIEtleSgwNCkgLSBvcHRpb25zCisgICAgMHgwNCwKKyAg
ICAvLyBNYXAoMDUpCisgICAgMHhBNSwKKyAgICAvLyBLZXkgLSAicmsiCisgICAgMHg2MiwgMHg3
MiwgMHg2QiwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAidXAiCisgICAg
MHg2MiwgMHg3NSwgMHg3MCwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAi
dXYiCisgICAgMHg2MiwgMHg3NSwgMHg3NiwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAv
LyBLZXkgLSAicGxhdCIKKyAgICAweDY0LCAweDcwLCAweDZDLCAweDYxLCAweDc0LAorICAgIC8v
IHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJjbGllbnRQaW4iCisgICAgMHg2OSwgMHg2
MywgMHg2QywgMHg2OSwgMHg2NSwgMHg2RSwgMHg3NCwgMHg1MCwgMHg2OSwgMHg2RSwKKyAgICAv
LyBmYWxzZQorICAgIDB4RjQsCisgICAgLy8gS2V5KDA1KSAtIE1heCBtZXNzYWdlIHNpemUKKyAg
ICAweDA1LAorICAgIC8vIDEyMDAKKyAgICAweDE5LCAweDA0LCAweEIwLAorICAgIC8vIEtleSgw
NikgLSBQaW4gcHJvdG9jb2xzCisgICAgMHgwNiwKKyAgICAvLyBBcnJheVsxXQorICAgIDB4ODEs
IDB4MDEsCit9OworCitjb25zdGV4cHIgdWludDhfdCBrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2VXaXRoSW5jb3JyZWN0QWFndWlkW10gPSB7CisgICAgLy8gU3VjY2VzcyBzdGF0dXMg
Ynl0ZQorICAgIDB4MDAsCisgICAgLy8gTWFwIG9mIDYgZWxlbWVudHMKKyAgICAweEE2LAorICAg
IC8vIEtleSgwMSkgLSB2ZXJzaW9ucworICAgIDB4MDEsCisgICAgLy8gQXJyYXkoMDEpCisgICAg
MHg4MSwKKyAgICAvLyAiVTJGX1YyIgorICAgIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYs
IDB4NTYsIDB4MzIsCisgICAgLy8gS2V5KDAyKSAtIGV4dGVuc2lvbnMKKyAgICAweDAyLAorICAg
IC8vIEFycmF5KDIpCisgICAgMHg4MiwKKyAgICAvLyAidXZtIgorICAgIDB4NjMsIDB4NzUsIDB4
NzYsIDB4NkQsCisgICAgLy8gImhtYWMtc2VjcmV0IgorICAgIDB4NkIsIDB4NjgsIDB4NkQsIDB4
NjEsIDB4NjMsIDB4MkQsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NzIsIDB4NjUsIDB4NzQsCisgICAg
Ly8gS2V5KDAzKSAtIEFBR1VJRAorICAgIDB4MDMsCisgICAgLy8gQnl0ZXMoMTcpIC0gRklETzIg
ZGV2aWNlIEFBR1VJRCBtdXN0IGJlIDE2IGJ5dGVzIGxvbmcgaW4gb3JkZXIgdG8gYmUKKyAgICAv
LyBjb3JyZWN0LgorICAgIDB4NTEsIDB4RjgsIDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMsIDB4MEEs
IDB4NEQsIDB4MTUsIDB4ODAsIDB4MDYsIDB4MTcsCisgICAgMHgxMSwgMHgxRiwgMHg5RSwgMHhE
QywgMHg3RCwgMHgwMCwKKyAgICAvLyBLZXkoMDQpIC0gb3B0aW9ucworICAgIDB4MDQsCisgICAg
Ly8gTWFwKDA1KQorICAgIDB4QTUsCisgICAgLy8gS2V5IC0gInJrIgorICAgIDB4NjIsIDB4NzIs
IDB4NkIsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInVwIgorICAgIDB4
NjIsIDB4NzUsIDB4NzAsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInV2
IgorICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8g
S2V5IC0gInBsYXQiCisgICAgMHg2NCwgMHg3MCwgMHg2QywgMHg2MSwgMHg3NCwKKyAgICAvLyB0
cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAiY2xpZW50UGluIgorICAgIDB4NjksIDB4NjMs
IDB4NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4NTAsIDB4NjksIDB4NkUsCisgICAgLy8g
ZmFsc2UKKyAgICAweEY0LAorICAgIC8vIEtleSgwNSkgLSBNYXggbWVzc2FnZSBzaXplCisgICAg
MHgwNSwKKyAgICAvLyAxMjAwCisgICAgMHgxOSwgMHgwNCwgMHhCMCwKKyAgICAvLyBLZXkoMDYp
IC0gUGluIHByb3RvY29scworICAgIDB4MDYsCisgICAgLy8gQXJyYXlbMV0KKyAgICAweDgxLCAw
eDAxLAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3REZXZpY2VBYWd1aWRbXSA9IHsKKyAg
ICAweEY4LCAweEEwLCAweDExLCAweEYzLCAweDhDLCAweDBBLCAweDRELCAweDE1LCAweDgwLCAw
eDA2LCAweDE3LCAweDExLCAweDFGLCAweDlFLCAweERDLCAweDdECit9OworCisvLyBHZXQgYSBz
dWJzZXQgb2YgdGhlIHJlc3BvbnNlIGZvciB0ZXN0aW5nIGVycm9yIGhhbmRsaW5nLgorVmVjdG9y
PHVpbnQ4X3Q+IGdldFRlc3RDb3JydXB0ZWRTaWduUmVzcG9uc2Uoc2l6ZV90IGxlbmd0aCkKK3sK
KyAgICBBU1NFUlQobGVuZ3RoIDwgc2l6ZW9mKFRlc3REYXRhOjprVGVzdFUyZlNpZ25SZXNwb25z
ZSkpOworICAgIFZlY3Rvcjx1aW50OF90PiB0ZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNlOworICAg
IHRlc3RDb3JydXB0ZWRTaWduUmVzcG9uc2UucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShsZW5ndGgp
OworICAgIHRlc3RDb3JydXB0ZWRTaWduUmVzcG9uc2UuYXBwZW5kKFRlc3REYXRhOjprVGVzdFUy
ZlNpZ25SZXNwb25zZSwgbGVuZ3RoKTsKKyAgICByZXR1cm4gdGVzdENvcnJ1cHRlZFNpZ25SZXNw
b25zZTsKK30KKworLy8gUmV0dXJuIGEga2V5IGhhbmRsZSB1c2VkIGZvciBHZXRBc3NlcnRpb24g
cmVxdWVzdC4KK1ZlY3Rvcjx1aW50OF90PiBnZXRUZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXMoKQor
eworICAgIFZlY3Rvcjx1aW50OF90PiB0ZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXM7CisgICAgdGVz
dENyZWRlbnRpYWxSYXdJZEJ5dGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2l6ZW9mKFRlc3RE
YXRhOjprVTJmU2lnbktleUhhbmRsZSkpOworICAgIHRlc3RDcmVkZW50aWFsUmF3SWRCeXRlcy5h
cHBlbmQoVGVzdERhdGE6OmtVMmZTaWduS2V5SGFuZGxlLCBzaXplb2YoVGVzdERhdGE6OmtVMmZT
aWduS2V5SGFuZGxlKSk7CisgICAgcmV0dXJuIHRlc3RDcmVkZW50aWFsUmF3SWRCeXRlczsKK30K
KworVmVjdG9yPHVpbnQ4X3Q+IGNvbnZlcnRUb1ZlY3Rvcihjb25zdCB1aW50OF90IGJ5dGVBcnJh
eVtdLCBjb25zdCBzaXplX3QgbGVuZ3RoKQoreworICAgIFZlY3Rvcjx1aW50OF90PiByZXN1bHQ7
CisgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobGVuZ3RoKTsKKyAgICByZXN1bHQu
YXBwZW5kKGJ5dGVBcnJheSwgbGVuZ3RoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvLyBM
ZXZlcmFnaW5nIGV4YW1wbGUgNCBvZiBzZWN0aW9uIDYuMSBvZiB0aGUgc3BlYworLy8gaHR0cHM6
Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVu
dC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNjb21tYW5k
cworVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBUZXN0UmVhZE1ha2VDcmVkZW50aWFsUmVzcG9uc2Up
Cit7CisgICAgYXV0byBtYWtlQ3JlZGVudGlhbFJlc3BvbnNlID0gcmVhZENUQVBNYWtlQ3JlZGVu
dGlhbFJlc3BvbnNlKGNvbnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a1Rlc3RNYWtlQ3JlZGVudGlh
bFJlc3BvbnNlLCBzaXplb2YoVGVzdERhdGE6OmtUZXN0TWFrZUNyZWRlbnRpYWxSZXNwb25zZSkp
KTsKKyAgICBBU1NFUlRfVFJVRShtYWtlQ3JlZGVudGlhbFJlc3BvbnNlKTsKKyAgICBhdXRvIGNi
b3JBdHRlc3RhdGlvbk9iamVjdCA9IGNib3I6OkNCT1JSZWFkZXI6OnJlYWQoY29udmVydFRvVmVj
dG9yKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KG1ha2VDcmVkZW50aWFsUmVzcG9uc2UtPmF0
dGVzdGF0aW9uT2JqZWN0LT5kYXRhKCkpLCBtYWtlQ3JlZGVudGlhbFJlc3BvbnNlLT5hdHRlc3Rh
dGlvbk9iamVjdC0+Ynl0ZUxlbmd0aCgpKSk7CisgICAgQVNTRVJUX1RSVUUoY2JvckF0dGVzdGF0
aW9uT2JqZWN0KTsKKyAgICBBU1NFUlRfVFJVRShjYm9yQXR0ZXN0YXRpb25PYmplY3QtPmlzTWFw
KCkpOworCisgICAgY29uc3QgYXV0byYgYXR0ZXN0YXRpb25PYmplY3RNYXAgPSBjYm9yQXR0ZXN0
YXRpb25PYmplY3QtPmdldE1hcCgpOworICAgIGF1dG8gaXQgPSBhdHRlc3RhdGlvbk9iamVjdE1h
cC5maW5kKGNib3I6OkNCT1JWYWx1ZShrRm9ybWF0S2V5KSk7CisgICAgQVNTRVJUX1RSVUUoaXQg
IT0gYXR0ZXN0YXRpb25PYmplY3RNYXAuZW5kKCkpOworICAgIEFTU0VSVF9UUlVFKGl0LT5zZWNv
bmQuaXNTdHJpbmcoKSk7CisgICAgRVhQRUNUX1NUUkVRKGl0LT5zZWNvbmQuZ2V0U3RyaW5nKCku
dXRmOCgpLmRhdGEoKSwgInBhY2tlZCIpOworCisgICAgaXQgPSBhdHRlc3RhdGlvbk9iamVjdE1h
cC5maW5kKGNib3I6OkNCT1JWYWx1ZShrQXV0aERhdGFLZXkpKTsKKyAgICBBU1NFUlRfVFJVRShp
dCAhPSBhdHRlc3RhdGlvbk9iamVjdE1hcC5lbmQoKSk7CisgICAgQVNTRVJUX1RSVUUoaXQtPnNl
Y29uZC5pc0J5dGVTdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0
cmluZygpLCBjb252ZXJ0VG9WZWN0b3IoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsQXV0
aERhdGEsIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxBdXRoRGF0YSkpKTsK
KworICAgIGl0ID0gYXR0ZXN0YXRpb25PYmplY3RNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoa0F0
dGVzdGF0aW9uU3RhdGVtZW50S2V5KSk7CisgICAgQVNTRVJUX1RSVUUoaXQgIT0gYXR0ZXN0YXRp
b25PYmplY3RNYXAuZW5kKCkpOworICAgIEFTU0VSVF9UUlVFKGl0LT5zZWNvbmQuaXNNYXAoKSk7
CisKKyAgICBjb25zdCBhdXRvJiBhdHRlc3RhdGlvblN0YXRlbWVudE1hcCA9IGl0LT5zZWNvbmQu
Z2V0TWFwKCk7CisgICAgYXV0byBhdHRTdG10SXQgPSBhdHRlc3RhdGlvblN0YXRlbWVudE1hcC5m
aW5kKGNib3I6OkNCT1JWYWx1ZSgiYWxnIikpOworCisgICAgQVNTRVJUX1RSVUUoYXR0U3RtdEl0
ICE9IGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwLmVuZCgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRT
dG10SXQtPnNlY29uZC5pc0ludGVnZXIoKSk7CisgICAgRVhQRUNUX0VRKGF0dFN0bXRJdC0+c2Vj
b25kLmdldEludGVnZXIoKSwgLTcpOworCisgICAgYXR0U3RtdEl0ID0gYXR0ZXN0YXRpb25TdGF0
ZW1lbnRNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoInNpZyIpKTsKKyAgICBBU1NFUlRfVFJVRShh
dHRTdG10SXQgIT0gYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAuZW5kKCkpOworICAgIEFTU0VSVF9U
UlVFKGF0dFN0bXRJdC0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoYXR0
U3RtdEl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpLCBjb252ZXJ0VG9WZWN0b3IoVGVzdERhdGE6
OmtDdGFwMk1ha2VDcmVkZW50aWFsU2lnbmF0dXJlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMk1h
a2VDcmVkZW50aWFsU2lnbmF0dXJlKSkpOworCisgICAgYXR0U3RtdEl0ID0gYXR0ZXN0YXRpb25T
dGF0ZW1lbnRNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoIng1YyIpKTsKKyAgICBBU1NFUlRfVFJV
RShhdHRTdG10SXQgIT0gYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAuZW5kKCkpOworICAgIGNvbnN0
IGF1dG8mIGNlcnRpZmljYXRlID0gYXR0U3RtdEl0LT5zZWNvbmQ7CisgICAgQVNTRVJUX1RSVUUo
Y2VydGlmaWNhdGUuaXNBcnJheSgpKTsKKyAgICBBU1NFUlRfRVEoY2VydGlmaWNhdGUuZ2V0QXJy
YXkoKS5zaXplKCksIDF1KTsKKyAgICBBU1NFUlRfVFJVRShjZXJ0aWZpY2F0ZS5nZXRBcnJheSgp
WzBdLmlzQnl0ZVN0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoY2VydGlmaWNhdGUuZ2V0QXJyYXko
KVswXS5nZXRCeXRlU3RyaW5nKCksIGNvbnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a0N0YXAyTWFr
ZUNyZWRlbnRpYWxDZXJ0aWZpY2F0ZSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVu
dGlhbENlcnRpZmljYXRlKSkpOworICAgIEVYUEVDVF9FUShtYWtlQ3JlZGVudGlhbFJlc3BvbnNl
LT5yYXdJZC0+Ynl0ZUxlbmd0aCgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50
aWFsQ3JlZGVudGlhbElkKSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChtYWtlQ3JlZGVudGlhbFJl
c3BvbnNlLT5yYXdJZC0+ZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxDcmVk
ZW50aWFsSWQsIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxDcmVkZW50aWFs
SWQpKSwgMCk7Cit9CisKKy8vIExldmVyYWdpbmcgZXhhbXBsZSA1IG9mIHNlY3Rpb24gNi4xIG9m
IHRoZSBDVEFQIHNwZWMuCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12
Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIu
MC1wcy0yMDE3MDkyNy5odG1sCitURVNUKENUQVBSZXNwb25zZVRlc3QsIFRlc3RSZWFkR2V0QXNz
ZXJ0aW9uUmVzcG9uc2UpCit7CisgICAgYXV0byBnZXRBc3NlcnRpb25SZXNwb25zZSA9IHJlYWRD
VEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29udmVydFRvVmVjdG9yKFRlc3REYXRhOjprRGV2aWNl
R2V0QXNzZXJ0aW9uUmVzcG9uc2UsIHNpemVvZihUZXN0RGF0YTo6a0RldmljZUdldEFzc2VydGlv
blJlc3BvbnNlKSkpOworICAgIEFTU0VSVF9UUlVFKGdldEFzc2VydGlvblJlc3BvbnNlKTsKKwor
ICAgIEVYUEVDVF9FUShnZXRBc3NlcnRpb25SZXNwb25zZS0+YXV0aGVudGljYXRvckRhdGEtPmJ5
dGVMZW5ndGgoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSkp
OworICAgIEVYUEVDVF9FUShtZW1jbXAoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPmF1dGhlbnRpY2F0
b3JEYXRhLT5kYXRhKCksIFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSwgc2l6
ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSkpLCAwKTsKKyAgICBFWFBF
Q1RfRVEoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPnNpZ25hdHVyZS0+Ynl0ZUxlbmd0aCgpLCBzaXpl
b2YoVGVzdERhdGE6OmtDdGFwMkdldEFzc2VydGlvblNpZ25hdHVyZSkpOworICAgIEVYUEVDVF9F
UShtZW1jbXAoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPnNpZ25hdHVyZS0+ZGF0YSgpLCBUZXN0RGF0
YTo6a0N0YXAyR2V0QXNzZXJ0aW9uU2lnbmF0dXJlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMkdl
dEFzc2VydGlvblNpZ25hdHVyZSkpLCAwKTsKK30KKworVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBU
ZXN0UmVhZEdldEluZm9SZXNwb25zZSkKK3sKKyAgICBhdXRvIGdldEluZm9SZXNwb25zZSA9IHJl
YWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNvbnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a1Rlc3RHZXRJ
bmZvUmVzcG9uc2VQbGF0Zm9ybURldmljZSwgc2l6ZW9mKFRlc3REYXRhOjprVGVzdEdldEluZm9S
ZXNwb25zZVBsYXRmb3JtRGV2aWNlKSkpOworICAgIEFTU0VSVF9UUlVFKGdldEluZm9SZXNwb25z
ZSk7CisgICAgQVNTRVJUX1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5tYXhNc2dTaXplKCkpOworICAg
IEVYUEVDVF9FUSgqZ2V0SW5mb1Jlc3BvbnNlLT5tYXhNc2dTaXplKCksIDEyMDB1KTsKKyAgICBF
WFBFQ1RfTkUoZ2V0SW5mb1Jlc3BvbnNlLT52ZXJzaW9ucygpLmZpbmQoUHJvdG9jb2xWZXJzaW9u
OjprQ3RhcCksIGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5lbmQoKSk7CisgICAgRVhQRUNU
X05FKGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5maW5kKFByb3RvY29sVmVyc2lvbjo6a1Uy
ZiksIGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5lbmQoKSk7CisgICAgRVhQRUNUX1RSVUUo
Z2V0SW5mb1Jlc3BvbnNlLT5vcHRpb25zKCkuaXNQbGF0Zm9ybURldmljZSgpKTsKKyAgICBFWFBF
Q1RfVFJVRShnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS5zdXBwb3J0c1Jlc2lkZW50S2V5KCkp
OworICAgIEVYUEVDVF9UUlVFKGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnVzZXJQcmVzZW5j
ZVJlcXVpcmVkKCkpOworICAgIEVYUEVDVF9FUShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9u
czo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQs
IGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHko
KSk7CisgICAgRVhQRUNUX0VRKEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQ
aW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXRQaW5Ob3RTZXQsIGdldEluZm9SZXNwb25zZS0+
b3B0aW9ucygpLmNsaWVudFBpbkF2YWlsYWJpbGl0eSgpKTsKK30KKworVEVTVChDVEFQUmVzcG9u
c2VUZXN0LCBUZXN0UmVhZEdldEluZm9SZXNwb25zZVdpdGhJbmNvcnJlY3RGb3JtYXQpCit7Cisg
ICAgRVhQRUNUX0ZBTFNFKHJlYWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNvbnZlcnRUb1ZlY3Rvcihr
VGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoTm9WZXJzaW9uLCBzaXplb2Yoa1Rl
c3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aE5vVmVyc2lvbikpKSk7CisgICAgRVhQ
RUNUX0ZBTFNFKHJlYWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNvbnZlcnRUb1ZlY3RvcihrVGVzdEF1
dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoRHVwbGljYXRlVmVyc2lvbiwgc2l6ZW9mKGtU
ZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVdpdGhEdXBsaWNhdGVWZXJzaW9uKSkpKTsK
KyAgICBFWFBFQ1RfRkFMU0UocmVhZENUQVBHZXRJbmZvUmVzcG9uc2UoY29udmVydFRvVmVjdG9y
KGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVdpdGhJbmNvcnJlY3RBYWd1aWQsIHNp
emVvZihrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoSW5jb3JyZWN0QWFndWlk
KSkpKTsKK30KKworVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBUZXN0U2VyaWFsaXplR2V0SW5mb1Jl
c3BvbnNlKQoreworICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UgcmVzcG9uc2UoeyBQ
cm90b2NvbFZlcnNpb246OmtDdGFwLCBQcm90b2NvbFZlcnNpb246OmtVMmYgfSwgY29udmVydFRv
VmVjdG9yKGtUZXN0RGV2aWNlQWFndWlkLCBzaXplb2Yoa1Rlc3REZXZpY2VBYWd1aWQpKSk7Cisg
ICAgcmVzcG9uc2Uuc2V0RXh0ZW5zaW9ucyh7ICJ1dm0iLCAiaG1hYy1zZWNyZXQiIH0pOworICAg
IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5zZXRT
dXBwb3J0c1Jlc2lkZW50S2V5KHRydWUpOworICAgIG9wdGlvbnMuc2V0SXNQbGF0Zm9ybURldmlj
ZSh0cnVlKTsKKyAgICBvcHRpb25zLnNldENsaWVudFBpbkF2YWlsYWJpbGl0eShBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0
UGluTm90U2V0KTsKKyAgICBvcHRpb25zLnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHko
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxp
dHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkKTsKKyAgICByZXNwb25zZS5zZXRPcHRpb25zKFdU
Rk1vdmUob3B0aW9ucykpOworICAgIHJlc3BvbnNlLnNldE1heE1zZ1NpemUoMTIwMCk7CisgICAg
cmVzcG9uc2Uuc2V0UGluUHJvdG9jb2xzKHsgMSB9KTsKKworICAgIGF1dG8gcmVzcG9uc2VBc0NC
T1IgPSBlbmNvZGVBc0NCT1IocmVzcG9uc2UpOworICAgIEVYUEVDVF9FUShyZXNwb25zZUFzQ0JP
Ui5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a1Rlc3RHZXRJbmZvUmVzcG9uc2VQbGF0Zm9ybURl
dmljZSkgLSAxKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHJlc3BvbnNlQXNDQk9SLmRhdGEoKSwg
VGVzdERhdGE6OmtUZXN0R2V0SW5mb1Jlc3BvbnNlUGxhdGZvcm1EZXZpY2UgKyAxLCByZXNwb25z
ZUFzQ0JPUi5zaXplKCkpLCAwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZmVhNjViZjJhMDJkNzNj
NjhkMjIwYzYyYzBhMDY5MGY2ZjEzODdjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5oCkBAIC0wLDAgKzEsNjQ1IEBACisv
LyBDb3B5cmlnaHQgMjAxNyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBk
aXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
Ky8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewor
CituYW1lc3BhY2UgVGVzdERhdGEgeworCisvLyBVMkYgcmVxdWVzdCBwYXJhbWV0ZXJzIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBT
YW1wbGUgVTJGIHJlZ2lzdGVyIHJlcXVlc3QgcGFyYW1ldGVycyB1c2VkIGluIGV4YW1wbGUgNiBv
ZiB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8t
djIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYy
LjAtcHMtMjAxNzA5MjcuaHRtbCN1c2luZy10aGUtY3RhcDItYXV0aGVudGljYXRvcm1ha2VjcmVk
ZW50aWFsLWNvbW1hbmQtd2l0aC1jdGFwMS11MmYtYXV0aGVudGljYXRvcnMKK2NvbnN0ZXhwciB1
aW50OF90IGtDbGllbnREYXRhSGFzaFtdID0geworICAgIDB4NjgsIDB4NzEsIDB4MzQsIDB4OTYs
IDB4ODIsIDB4MjIsIDB4ZWMsIDB4MTcsIDB4MjAsIDB4MmUsIDB4NDIsCisgICAgMHg1MCwgMHg1
ZiwgMHg4ZSwgMHhkMiwgMHhiMSwgMHg2YSwgMHhlMiwgMHgyZiwgMHgxNiwgMHhiYiwgMHgwNSwK
KyAgICAweGI4LCAweDhjLCAweDI1LCAweGRiLCAweDllLCAweDYwLCAweDI2LCAweDQ1LCAweGYx
LCAweDQxfTsKKworY29uc3RleHByIHVpbnQ4X3Qga1VzZXJJZFtdID0gezB4MTAsIDB4OTgsIDB4
MjMsIDB4NzIsIDB4MzUsIDB4NDAsIDB4OTgsIDB4NzJ9OworCisvLyBTYW1wbGUgVTJGIHNpZ24g
cmVxdWVzdCBwYXJhbWV0ZXJzIHVzZWQgaW4gZXhhbXBsZSA3IG9mIHRoZSBDVEFQIHNwZWMuCisv
LyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2Zp
ZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1s
I3VzaW5nLXRoZS1jdGFwMi1hdXRoZW50aWNhdG9ybWFrZWNyZWRlbnRpYWwtY29tbWFuZC13aXRo
LWN0YXAxLXUyZi1hdXRoZW50aWNhdG9ycworY29uc3RleHByIHVpbnQ4X3Qga1UyZlNpZ25LZXlI
YW5kbGVbXSA9IHsKKyAgICAweDNFLCAweEJELCAweDg5LCAweEJGLCAweDc3LCAweEVDLCAweDUw
LCAweDk3LCAweDU1LCAweEVFLCAweDlDLAorICAgIDB4MjYsIDB4MzUsIDB4RUYsIDB4QUEsIDB4
QUMsIDB4N0IsIDB4MkIsIDB4OUMsIDB4NUMsIDB4RUYsIDB4MTcsCisgICAgMHgzNiwgMHhDMywg
MHg3MSwgMHg3RCwgMHhBNCwgMHg4NSwgMHgzNCwgMHhDOCwgMHhDNiwgMHhCNiwgMHg1NCwKKyAg
ICAweEQ3LCAweEZGLCAweDk0LCAweDVGLCAweDUwLCAweEI1LCAweENDLCAweDRFLCAweDc4LCAw
eDA1LCAweDVCLAorICAgIDB4REQsIDB4MzksIDB4NkIsIDB4NjQsIDB4RjcsIDB4OEQsIDB4QTIs
IDB4QzUsIDB4RjksIDB4NjIsIDB4MDAsCisgICAgMHhDQywgMHhENCwgMHgxNSwgMHhDRCwgMHgw
OCwgMHhGRSwgMHg0MiwgMHgwMCwgMHgzOCwKK307CisKKy8vIFUyRiByZXNwb25zZXMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKKy8vIEVDIHB1YmxpYyBrZXkgZW5jb2RlZCBpbiBDT1NFX0tleSBmb3JtYXQgZXh0cmFjdGVk
IGZyb20gYWJvdmUKKy8vIHxrVGVzdFUyZlJlZ2lzdGVyUmVzcG9uc2V8LgorY29uc3RleHByIHVp
bnQ4X3Qga1Rlc3RFQ1B1YmxpY0tleUNPU0VbXSA9IHsKKyAgICAvLyBNYXAoNSkKKyAgICAweEE1
LAorICAgIC8vIGt0eTogRUMga2V5IHR5cGUKKyAgICAweDAxLCAweDAyLAorICAgIC8vIGFsZzog
RUMyNTYgc2lnbmF0dXJlIGFsZ29yaXRobQorICAgIDB4MDMsIDB4MjYsCisgICAgLy8gY3J2OiBQ
LTI1NiBjdXJ2ZQorICAgIDB4MjAsIDB4MDEsCisgICAgLy8geC1jb29yZGluYXRlCisgICAgMHgy
MSwKKyAgICAvLyBCeXRlcygzMikKKyAgICAweDU4LCAweDIwLAorICAgIC8vIEJ5dGUgYXJyYXkg
Y29udGVudAorICAgIDB4RTgsIDB4NzYsIDB4MjUsIDB4ODksIDB4NkUsIDB4RTQsIDB4RTQsIDB4
NkQsIDB4QzAsIDB4MzIsIDB4NzYsIDB4NkUsCisgICAgMHg4MCwgMHg4NywgMHg5NiwgMHgyRiwg
MHgzNiwgMHhERiwgMHg5RCwgMHhGRSwgMHg4QiwgMHg1NiwgMHg3RiwgMHgzNywKKyAgICAweDYz
LCAweDAxLCAweDVCLCAweDE5LCAweDkwLCAweEE2LCAweDBFLCAweDE0LAorICAgIC8vIHktY29v
cmRpbmF0ZQorICAgIDB4MjIsCisgICAgLy8gQnl0ZXMoMzIpCisgICAgMHg1OCwgMHgyMCwKKyAg
ICAvLyBCeXRlIGFycmF5IGNvbnRlbnQKKyAgICAweDI3LCAweERFLCAweDYxLCAweDJELCAweDY2
LCAweDQxLCAweDhCLCAweERBLCAweDE5LCAweDUwLCAweDU4LCAweDFFLAorICAgIDB4QkMsIDB4
NUMsIDB4OEMsIDB4MUQsIDB4QUQsIDB4NzEsIDB4MEMsIDB4QjEsIDB4NEMsIDB4MjIsIDB4Rjgs
IDB4QzksCisgICAgMHg3MCwgMHg0NSwgMHhGNCwgMHg2MSwgMHgyRiwgMHhCMiwgMHgwQywgMHg5
MSwKK307CisKKy8vIFRoZSBhdHRlc3RhdGlvbiBzdGF0ZW1lbnQgZXh0cmFjdGVkIGZyb20gYWJv
dmUgfGtUZXN0VTJmUmVnaXN0ZXJSZXNwb25zZXwsIGEKKy8vIENCT1ItZW5jb2RlZCBieXRlIGFy
cmF5LgorLy8gRGlhZ25vc3RpYyBub3RhdGlvbjoKKy8vIHsic2lnIjoKKy8vIGgnMzA0NTAyMjAz
MjQ3NzlDNjhGMzM4MDI4OEExMTk3QjYwOTVGN0E2RUI5QjFCMUMxMjdGNjZBRTEyQTk5RkU4NTMy
RUMyM0I5CisvLyAgIDAyMjEwMEUzOTUxNkFDNEQ2MUVFNjQwNDRENTBCNDE1QTZBNEQ0RDg0QkE2
RDg5NUNCNUFCN0ExQUE3RDA4MURFMzQxRkEnLAorLy8gIng1YyI6IFtoJzMwODIwMjRBMzA4MjAx
MzJBMDAzMDIwMTAyMDIwNDA0NkM4ODIyMzAwRDA2MDkyQTg2NDg4NkY3MEQwMTAxMEIwIFwKKy8v
IDUwMDMwMkUzMTJDMzAyQTA2MDM1NTA0MDMxMzIzNTk3NTYyNjk2MzZGMjA1NTMyNDYyMDUyNkY2
Rjc0MjA0MzQxMjA1MzY1NzI2OSBcCisvLyA2MTZDMjAzNDM1MzczMjMwMzAzNjMzMzEzMDIwMTcw
RDMxMzQzMDM4MzAzMTMwMzAzMDMwMzAzMDVBMTgwRjMyMzAzNTMwMzAzOTMgXAorLy8gMDM0MzAz
MDMwMzAzMDMwNUEzMDJDMzEyQTMwMjgwNjAzNTUwNDAzMEMyMTU5NzU2MjY5NjM2RjIwNTUzMjQ2
MjA0NTQ1MjA1MzY1IFwKKy8vIDcyNjk2MTZDMjAzMjM0MzkzMTM4MzIzMzMyMzQzNzM3MzAzMDU5
MzAxMzA2MDcyQTg2NDhDRTNEMDIwMTA2MDgyQTg2NDhDRTNEMCBcCisvLyAzMDEwNzAzNDIwMDA0
M0NDQUI5MkNDQjk3Mjg3RUU4RTYzOTQzN0UyMUZDRDZCNkYxNjVCMkQ1QTNGM0RCMTMxRDMxQzE2
Qjc0MkIgXAorLy8gQjQ3NkQ4RDFFOTkwODBFQjU0NkM5QkJERjU1NkU2MjEwRkQ0Mjc4NTg5OUU3
OENDNTg5RUJFMzEwRjZDREI5RkY0QTMzQjMwMzkzIFwKKy8vIDAyMjA2MDkyQjA2MDEwNDAxODJD
NDBBMDIwNDE1MzEyRTMzMkUzNjJFMzEyRTM0MkUzMTJFMzQzMTM0MzgzMjJFMzEyRTMyMzAxMyBc
CisvLyAwNjBCMkIwNjAxMDQwMTgyRTUxQzAyMDEwMTA0MDQwMzAyMDQzMDMwMEQwNjA5MkE4NjQ4
ODZGNzBEMDEwMTBCMDUwMDAzODIwMTAgXAorLy8gMTAwOUY5QjA1MjI0OEJDNENGNDJDQzU5OTFG
Q0FBQkFDOUI2NTFCQkU1QkRDREM4RUYwQUQyQzFDMUZGQjM2RDE4NzE1RDQyRTc4IFwKKy8vIEIy
NDkyMjRGOTJDN0U2RTdBMDVDNDlGMEU3RTRDODgxQkYyRTk0RjQ1RTRBMjE4MzNENzQ1Njg1MUQw
RjZDMTQ1QTI5NTQwQzg3NCBcCisvLyBGMzA5MkM5MzRCNDNEMjIyQjg5NjJDMEY0MTBDRUYxREI3
NTg5MkFGMTE2QjQ0QTk2RjVEMzVBREVBMzgyMkZDNzE0NkY2MDA0MzggXAorLy8gNUJDQjY5QjY1
Qzk5RTdFQjY5MTk3ODY3MDNDMEQ4Q0Q0MUU4Rjc1Q0NBNDRBQThBQjcyNUFEOEU3OTlGRjNBODY5
NkE2RjFCMjY1IFwKKy8vIDZFNjMxQjFFNDAxODNDMDhGREE1M0ZBNEE4Rjg1QTA1NjkzOTQ0QUUx
NzlBMTMzOUQwMDJEMTVDQUJEODEwMDkwRUM3MjJFRjVERSBcCisvLyBGOTk2NUEzNzFENDE1RDYy
NEI2OEEyNzA3Q0FEOTdCQ0REMTc4NUFGOTdFMjU4RjMzREY1NkEwMzFBQTAzNTZEOEU4RDVFQkNB
REMgXAorLy8gNzRFMDcxNjM2QzZCMTEwQUNFNUNDOUI5MERGRUFDQUU2NDBGRjFCQjBGMUZFNURC
NEVGRjdBOTVGMDYwNzMzRjUnXX0KK2NvbnN0ZXhwciB1aW50OF90IGtVMmZBdHRlc3RhdGlvblN0
YXRlbWVudENCT1JbXSA9IHsKKyAgICAvLyBNYXAoMikKKyAgICAweEEyLAorICAgIC8vIFRleHQo
MykKKyAgICAweDYzLAorICAgIC8vICJzaWciCisgICAgMHg3MywgMHg2OSwgMHg2NywKKyAgICAv
LyBCeXRlcyg3MSkKKyAgICAweDU4LCAweDQ3LAorICAgIC8vIEJ5dGUgYXJyYXkgY29udGVudAor
ICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4MjAsIDB4MzIsIDB4NDcsIDB4NzksIDB4QzYsIDB4OEYs
IDB4MzMsIDB4ODAsIDB4MjgsCisgICAgMHg4QSwgMHgxMSwgMHg5NywgMHhCNiwgMHgwOSwgMHg1
RiwgMHg3QSwgMHg2RSwgMHhCOSwgMHhCMSwgMHhCMSwgMHhDMSwKKyAgICAweDI3LCAweEY2LCAw
eDZBLCAweEUxLCAweDJBLCAweDk5LCAweEZFLCAweDg1LCAweDMyLCAweEVDLCAweDIzLCAweEI5
LAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4RTMsIDB4OTUsIDB4MTYsIDB4QUMsIDB4NEQsIDB4
NjEsIDB4RUUsIDB4NjQsIDB4MDQsCisgICAgMHg0RCwgMHg1MCwgMHhCNCwgMHgxNSwgMHhBNiwg
MHhBNCwgMHhENCwgMHhEOCwgMHg0QiwgMHhBNiwgMHhEOCwgMHg5NSwKKyAgICAweENCLCAweDVB
LCAweEI3LCAweEExLCAweEFBLCAweDdELCAweDA4LCAweDFELCAweEUzLCAweDQxLCAweEZBLAor
ICAgIC8vIFRleHQoMykKKyAgICAweDYzLAorICAgIC8vICJ4NWMiCisgICAgMHg3OCwgMHgzNSwg
MHg2MywKKyAgICAvLyBBcnJheSgxKQorICAgIDB4ODEsCisgICAgLy8gQnl0ZXMoNTkwKQorICAg
IDB4NTksIDB4MDIsIDB4NEUsCisgICAgLy8gQnl0ZSBhcnJheSBjb250ZW50CisgICAgMHgzMCwg
MHg4MiwgMHgwMiwgMHg0QSwgMHgzMCwgMHg4MiwgMHgwMSwgMHgzMiwgMHhBMCwgMHgwMywgMHgw
MiwgMHgwMSwKKyAgICAweDAyLCAweDAyLCAweDA0LCAweDA0LCAweDZDLCAweDg4LCAweDIyLCAw
eDMwLCAweDBELCAweDA2LCAweDA5LCAweDJBLAorICAgIDB4ODYsIDB4NDgsIDB4ODYsIDB4Rjcs
IDB4MEQsIDB4MDEsIDB4MDEsIDB4MEIsIDB4MDUsIDB4MDAsIDB4MzAsIDB4MkUsCisgICAgMHgz
MSwgMHgyQywgMHgzMCwgMHgyQSwgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwMywgMHgxMywg
MHgyMywgMHg1OSwKKyAgICAweDc1LCAweDYyLCAweDY5LCAweDYzLCAweDZGLCAweDIwLCAweDU1
LCAweDMyLCAweDQ2LCAweDIwLCAweDUyLCAweDZGLAorICAgIDB4NkYsIDB4NzQsIDB4MjAsIDB4
NDMsIDB4NDEsIDB4MjAsIDB4NTMsIDB4NjUsIDB4NzIsIDB4NjksIDB4NjEsIDB4NkMsCisgICAg
MHgyMCwgMHgzNCwgMHgzNSwgMHgzNywgMHgzMiwgMHgzMCwgMHgzMCwgMHgzNiwgMHgzMywgMHgz
MSwgMHgzMCwgMHgyMCwKKyAgICAweDE3LCAweDBELCAweDMxLCAweDM0LCAweDMwLCAweDM4LCAw
eDMwLCAweDMxLCAweDMwLCAweDMwLCAweDMwLCAweDMwLAorICAgIDB4MzAsIDB4MzAsIDB4NUEs
IDB4MTgsIDB4MEYsIDB4MzIsIDB4MzAsIDB4MzUsIDB4MzAsIDB4MzAsIDB4MzksIDB4MzAsCisg
ICAgMHgzNCwgMHgzMCwgMHgzMCwgMHgzMCwgMHgzMCwgMHgzMCwgMHgzMCwgMHg1QSwgMHgzMCwg
MHgyQywgMHgzMSwgMHgyQSwKKyAgICAweDMwLCAweDI4LCAweDA2LCAweDAzLCAweDU1LCAweDA0
LCAweDAzLCAweDBDLCAweDIxLCAweDU5LCAweDc1LCAweDYyLAorICAgIDB4NjksIDB4NjMsIDB4
NkYsIDB4MjAsIDB4NTUsIDB4MzIsIDB4NDYsIDB4MjAsIDB4NDUsIDB4NDUsIDB4MjAsIDB4NTMs
CisgICAgMHg2NSwgMHg3MiwgMHg2OSwgMHg2MSwgMHg2QywgMHgyMCwgMHgzMiwgMHgzNCwgMHgz
OSwgMHgzMSwgMHgzOCwgMHgzMiwKKyAgICAweDMzLCAweDMyLCAweDM0LCAweDM3LCAweDM3LCAw
eDMwLCAweDMwLCAweDU5LCAweDMwLCAweDEzLCAweDA2LCAweDA3LAorICAgIDB4MkEsIDB4ODYs
IDB4NDgsIDB4Q0UsIDB4M0QsIDB4MDIsIDB4MDEsIDB4MDYsIDB4MDgsIDB4MkEsIDB4ODYsIDB4
NDgsCisgICAgMHhDRSwgMHgzRCwgMHgwMywgMHgwMSwgMHgwNywgMHgwMywgMHg0MiwgMHgwMCwg
MHgwNCwgMHgzQywgMHhDQSwgMHhCOSwKKyAgICAweDJDLCAweENCLCAweDk3LCAweDI4LCAweDdF
LCAweEU4LCAweEU2LCAweDM5LCAweDQzLCAweDdFLCAweDIxLCAweEZDLAorICAgIDB4RDYsIDB4
QjYsIDB4RjEsIDB4NjUsIDB4QjIsIDB4RDUsIDB4QTMsIDB4RjMsIDB4REIsIDB4MTMsIDB4MUQs
IDB4MzEsCisgICAgMHhDMSwgMHg2QiwgMHg3NCwgMHgyQiwgMHhCNCwgMHg3NiwgMHhEOCwgMHhE
MSwgMHhFOSwgMHg5MCwgMHg4MCwgMHhFQiwKKyAgICAweDU0LCAweDZDLCAweDlCLCAweEJELCAw
eEY1LCAweDU2LCAweEU2LCAweDIxLCAweDBGLCAweEQ0LCAweDI3LCAweDg1LAorICAgIDB4ODks
IDB4OUUsIDB4NzgsIDB4Q0MsIDB4NTgsIDB4OUUsIDB4QkUsIDB4MzEsIDB4MEYsIDB4NkMsIDB4
REIsIDB4OUYsCisgICAgMHhGNCwgMHhBMywgMHgzQiwgMHgzMCwgMHgzOSwgMHgzMCwgMHgyMiwg
MHgwNiwgMHgwOSwgMHgyQiwgMHgwNiwgMHgwMSwKKyAgICAweDA0LCAweDAxLCAweDgyLCAweEM0
LCAweDBBLCAweDAyLCAweDA0LCAweDE1LCAweDMxLCAweDJFLCAweDMzLCAweDJFLAorICAgIDB4
MzYsIDB4MkUsIDB4MzEsIDB4MkUsIDB4MzQsIDB4MkUsIDB4MzEsIDB4MkUsIDB4MzQsIDB4MzEs
IDB4MzQsIDB4MzgsCisgICAgMHgzMiwgMHgyRSwgMHgzMSwgMHgyRSwgMHgzMiwgMHgzMCwgMHgx
MywgMHgwNiwgMHgwQiwgMHgyQiwgMHgwNiwgMHgwMSwKKyAgICAweDA0LCAweDAxLCAweDgyLCAw
eEU1LCAweDFDLCAweDAyLCAweDAxLCAweDAxLCAweDA0LCAweDA0LCAweDAzLCAweDAyLAorICAg
IDB4MDQsIDB4MzAsIDB4MzAsIDB4MEQsIDB4MDYsIDB4MDksIDB4MkEsIDB4ODYsIDB4NDgsIDB4
ODYsIDB4RjcsIDB4MEQsCisgICAgMHgwMSwgMHgwMSwgMHgwQiwgMHgwNSwgMHgwMCwgMHgwMywg
MHg4MiwgMHgwMSwgMHgwMSwgMHgwMCwgMHg5RiwgMHg5QiwKKyAgICAweDA1LCAweDIyLCAweDQ4
LCAweEJDLCAweDRDLCAweEY0LCAweDJDLCAweEM1LCAweDk5LCAweDFGLCAweENBLCAweEFCLAor
ICAgIDB4QUMsIDB4OUIsIDB4NjUsIDB4MUIsIDB4QkUsIDB4NUIsIDB4REMsIDB4REMsIDB4OEUs
IDB4RjAsIDB4QUQsIDB4MkMsCisgICAgMHgxQywgMHgxRiwgMHhGQiwgMHgzNiwgMHhEMSwgMHg4
NywgMHgxNSwgMHhENCwgMHgyRSwgMHg3OCwgMHhCMiwgMHg0OSwKKyAgICAweDIyLCAweDRGLCAw
eDkyLCAweEM3LCAweEU2LCAweEU3LCAweEEwLCAweDVDLCAweDQ5LCAweEYwLCAweEU3LCAweEU0
LAorICAgIDB4QzgsIDB4ODEsIDB4QkYsIDB4MkUsIDB4OTQsIDB4RjQsIDB4NUUsIDB4NEEsIDB4
MjEsIDB4ODMsIDB4M0QsIDB4NzQsCisgICAgMHg1NiwgMHg4NSwgMHgxRCwgMHgwRiwgMHg2Qywg
MHgxNCwgMHg1QSwgMHgyOSwgMHg1NCwgMHgwQywgMHg4NywgMHg0RiwKKyAgICAweDMwLCAweDky
LCAweEM5LCAweDM0LCAweEI0LCAweDNELCAweDIyLCAweDJCLCAweDg5LCAweDYyLCAweEMwLCAw
eEY0LAorICAgIDB4MTAsIDB4Q0UsIDB4RjEsIDB4REIsIDB4NzUsIDB4ODksIDB4MkEsIDB4RjEs
IDB4MTYsIDB4QjQsIDB4NEEsIDB4OTYsCisgICAgMHhGNSwgMHhEMywgMHg1QSwgMHhERSwgMHhB
MywgMHg4MiwgMHgyRiwgMHhDNywgMHgxNCwgMHg2RiwgMHg2MCwgMHgwNCwKKyAgICAweDM4LCAw
eDVCLCAweENCLCAweDY5LCAweEI2LCAweDVDLCAweDk5LCAweEU3LCAweEVCLCAweDY5LCAweDE5
LCAweDc4LAorICAgIDB4NjcsIDB4MDMsIDB4QzAsIDB4RDgsIDB4Q0QsIDB4NDEsIDB4RTgsIDB4
RjcsIDB4NUMsIDB4Q0EsIDB4NDQsIDB4QUEsCisgICAgMHg4QSwgMHhCNywgMHgyNSwgMHhBRCwg
MHg4RSwgMHg3OSwgMHg5RiwgMHhGMywgMHhBOCwgMHg2OSwgMHg2QSwgMHg2RiwKKyAgICAweDFC
LCAweDI2LCAweDU2LCAweEU2LCAweDMxLCAweEIxLCAweEU0LCAweDAxLCAweDgzLCAweEMwLCAw
eDhGLCAweERBLAorICAgIDB4NTMsIDB4RkEsIDB4NEEsIDB4OEYsIDB4ODUsIDB4QTAsIDB4NTYs
IDB4OTMsIDB4OTQsIDB4NEEsIDB4RTEsIDB4NzksCisgICAgMHhBMSwgMHgzMywgMHg5RCwgMHgw
MCwgMHgyRCwgMHgxNSwgMHhDQSwgMHhCRCwgMHg4MSwgMHgwMCwgMHg5MCwgMHhFQywKKyAgICAw
eDcyLCAweDJFLCAweEY1LCAweERFLCAweEY5LCAweDk2LCAweDVBLCAweDM3LCAweDFELCAweDQx
LCAweDVELCAweDYyLAorICAgIDB4NEIsIDB4NjgsIDB4QTIsIDB4NzAsIDB4N0MsIDB4QUQsIDB4
OTcsIDB4QkMsIDB4REQsIDB4MTcsIDB4ODUsIDB4QUYsCisgICAgMHg5NywgMHhFMiwgMHg1OCwg
MHhGMywgMHgzRCwgMHhGNSwgMHg2QSwgMHgwMywgMHgxQSwgMHhBMCwgMHgzNSwgMHg2RCwKKyAg
ICAweDhFLCAweDhELCAweDVFLCAweEJDLCAweEFELCAweEM3LCAweDRFLCAweDA3LCAweDE2LCAw
eDM2LCAweEM2LCAweEIxLAorICAgIDB4MTAsIDB4QUMsIDB4RTUsIDB4Q0MsIDB4OUIsIDB4OTAs
IDB4REYsIDB4RUEsIDB4Q0EsIDB4RTYsIDB4NDAsIDB4RkYsCisgICAgMHgxQiwgMHhCMCwgMHhG
MSwgMHhGRSwgMHg1RCwgMHhCNCwgMHhFRiwgMHhGNywgMHhBOSwgMHg1RiwgMHgwNiwgMHgwNywK
KyAgICAweDMzLCAweEY1LAorfTsKKworLy8gVTJGIHJlc3BvbnNlIGJsb2IgcHJvZHVjZWQgYnkg
YSBVMkYgc2lnbiByZXF1ZXN0IHVzZWQgaW4gZXhhbXBsZSA3IG9mIHRoZQorLy8gQ1RBUCBzcGVj
LgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDky
Ny9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5Mjcu
aHRtbCN1c2luZy10aGUtY3RhcDItYXV0aGVudGljYXRvcmdldGFzc2VydGlvbi1jb21tYW5kLXdp
dGgtY3RhcDEtdTJmLWF1dGhlbnRpY2F0b3JzCitjb25zdGV4cHIgdWludDhfdCBrVGVzdFUyZlNp
Z25SZXNwb25zZVtdID0geworICAgIC8vIFVzZXIgcHJlc2VuY2UKKyAgICAweDAxLAorICAgIC8v
IFNpZ24gY291bnQoNCBieXRlcykKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDNCLAorICAgIC8v
IFNpZ25hdHVyZQorICAgIDB4MzAsIDB4NDQsIDB4MDIsIDB4MjAsIDB4N0IsIDB4REUsIDB4MEEs
IDB4NTIsIDB4QUMsIDB4MUYsIDB4NEMsIDB4OEIsCisgICAgMHgyNywgMHhFMCwgMHgwMywgMHhB
MywgMHg3MCwgMHhDRCwgMHg2NiwgMHhBNCwgMHhDNywgMHgxMSwgMHg4RCwgMHhEMiwKKyAgICAw
eDJELCAweDU0LCAweDQ3LCAweDgzLCAweDVGLCAweDQ1LCAweEI5LCAweDlDLCAweDY4LCAweDQy
LCAweDNGLCAweEY3LAorICAgIDB4MDIsIDB4MjAsIDB4M0MsIDB4NTEsIDB4N0IsIDB4NDcsIDB4
ODcsIDB4N0YsIDB4ODUsIDB4NzgsIDB4MkQsIDB4RTEsCisgICAgMHgwMCwgMHg4NiwgMHhBNywg
MHg4MywgMHhEMSwgMHhFNywgMHhERiwgMHg0RSwgMHgzNiwgMHgzOSwgMHhFNywgMHg3MSwKKyAg
ICAweEY1LCAweEY2LCAweEFGLCAweEEzLCAweDVBLCAweEFELCAweDUzLCAweDczLCAweDg1LCAw
eDhFLAorfTsKKworLy8gQ1RBUCByZXF1ZXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2NvbnN0ZXhwciB1aW50OF90IGtD
dGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0W10gPSB7CisgICAgLy8gYXV0aGVudGljYXRvck1ha2VD
cmVkZW50aWFsIGNvbW1hbmQKKyAgICAweDAxLAorICAgIC8vIG1hcCg1KQorICAgIDB4YTUsCisg
ICAgLy8ga2V5KDEpIC0gY2xpZW50RGF0YUhhc2gKKyAgICAweDAxLAorICAgIC8vIGJ5dGVzKDMy
KQorICAgIDB4NTgsIDB4MjAsIDB4NjgsIDB4NzEsIDB4MzQsIDB4OTYsIDB4ODIsIDB4MjIsIDB4
ZWMsIDB4MTcsIDB4MjAsIDB4MmUsCisgICAgMHg0MiwgMHg1MCwgMHg1ZiwgMHg4ZSwgMHhkMiwg
MHhiMSwgMHg2YSwgMHhlMiwgMHgyZiwgMHgxNiwgMHhiYiwgMHgwNSwKKyAgICAweGI4LCAweDhj
LCAweDI1LCAweGRiLCAweDllLCAweDYwLCAweDI2LCAweDQ1LCAweGYxLCAweDQxLAorICAgIC8v
IGtleSgyKSAtIHJwCisgICAgMHgwMiwKKyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8v
IGtleSAtICJpZCIKKyAgICAweDYyLCAweDY5LCAweDY0LAorICAgIC8vIHZhbHVlIC0gImFjbWUu
Y29tIgorICAgIDB4NjgsIDB4NjEsIDB4NjMsIDB4NmQsIDB4NjUsIDB4MmUsIDB4NjMsIDB4NmYs
IDB4NmQsCisgICAgLy8ga2V5IC0gICJuYW1lIgorICAgIDB4NjQsIDB4NmUsIDB4NjEsIDB4NmQs
IDB4NjUsCisgICAgLy8gdmFsdWUgLSAiQWNtZSIKKyAgICAweDY0LCAweDQxLCAweDYzLCAweDZk
LCAweDY1LAorICAgIC8vIGtleSgzKSAtIHVzZXIKKyAgICAweDAzLAorICAgIC8vIG1hcCg0KQor
ICAgIDB4YTQsCisgICAgLy8ga2V5IC0gImlkIgorICAgIDB4NjIsIDB4NjksIDB4NjQsCisgICAg
Ly8gdmFsdWUgLSB1c2VyIGlkCisgICAgMHg0OCwgMHgxMCwgMHg5OCwgMHgyMywgMHg3MiwgMHgz
NSwgMHg0MCwgMHg5OCwgMHg3MiwKKyAgICAvLyBrZXkgLSAiaWNvbiIKKyAgICAweDY0LCAweDY5
LCAweDYzLCAweDZmLCAweDZlLAorICAgIC8vIHZhbHVlIC0gImh0dHBzOi8vcGljcy5hY21lLmNv
bS8wMC9wL2FCampqcHFQYi5wbmciCisgICAgMHg3OCwgMHgyOCwgMHg2OCwgMHg3NCwgMHg3NCwg
MHg3MCwgMHg3MywgMHgzYSwgMHgyZiwgMHgyZiwgMHg3MCwgMHg2OSwKKyAgICAweDYzLCAweDcz
LCAweDJlLCAweDYxLCAweDYzLCAweDZkLCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAweDZkLCAw
eDJmLAorICAgIDB4MzAsIDB4MzAsIDB4MmYsIDB4NzAsIDB4MmYsIDB4NjEsIDB4NDIsIDB4NmEs
IDB4NmEsIDB4NmEsIDB4NzAsIDB4NzEsCisgICAgMHg1MCwgMHg2MiwgMHgyZSwgMHg3MCwgMHg2
ZSwgMHg2NywKKyAgICAvLyBrZXkgLSAibmFtZSIKKyAgICAweDY0LCAweDZlLCAweDYxLCAweDZk
LCAweDY1LAorICAgIC8vIHZhbHVlIC0gImpvaG5wc21pdGhAZXhhbXBsZS5jb20iCisgICAgMHg3
NiwgMHg2YSwgMHg2ZiwgMHg2OCwgMHg2ZSwgMHg3MCwgMHg3MywgMHg2ZCwgMHg2OSwgMHg3NCwg
MHg2OCwgMHg0MCwKKyAgICAweDY1LCAweDc4LCAweDYxLCAweDZkLCAweDcwLCAweDZjLCAweDY1
LCAweDJlLCAweDYzLCAweDZmLCAweDZkLAorICAgIC8vIGtleSAtICJkaXNwbGF5TmFtZSIKKyAg
ICAweDZiLCAweDY0LCAweDY5LCAweDczLCAweDcwLCAweDZjLCAweDYxLCAweDc5LCAweDRlLCAw
eDYxLCAweDZkLCAweDY1LAorICAgIC8vIHZhbHVlIC0gIkpvaG4gUC4gU21pdGgiCisgICAgMHg2
ZCwgMHg0YSwgMHg2ZiwgMHg2OCwgMHg2ZSwgMHgyMCwgMHg1MCwgMHgyZSwgMHgyMCwgMHg1Mywg
MHg2ZCwgMHg2OSwKKyAgICAweDc0LCAweDY4LAorICAgIC8vIGtleSg0KSAtIHB1YktleUNyZWRQ
YXJhbXMKKyAgICAweDA0LAorICAgIC8vIGFycmF5KDIpCisgICAgMHg4MiwKKyAgICAvLyBtYXAo
MikKKyAgICAweGEyLAorICAgIC8vIGtleSAtICJhbGciCisgICAgMHg2MywgMHg2MSwgMHg2Yywg
MHg2NywKKyAgICAvLyB2YWx1ZSAtIDcKKyAgICAweDA3LAorICAgIC8vIGtleSAtICJ0eXBlIgor
ICAgIDB4NjQsIDB4NzQsIDB4NzksIDB4NzAsIDB4NjUsCisgICAgLy8gdmFsdWUgLSAicHVibGlj
LWtleSIKKyAgICAweDZhLCAweDcwLCAweDc1LCAweDYyLCAweDZDLCAweDY5LCAweDYzLCAweDJE
LCAweDZCLCAweDY1LCAweDc5LAorICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8ga2V5
IC0gImFsZyIKKyAgICAweDYzLCAweDYxLCAweDZjLCAweDY3LAorICAgIC8vIHZhbHVlIC0gMjU3
CisgICAgMHgxOSwgMHgwMSwgMHgwMSwKKyAgICAvLyBrZXkgLSAidHlwZSIKKyAgICAweDY0LCAw
eDc0LCAweDc5LCAweDcwLCAweDY1LCAvLyAidHlwZSIKKyAgICAvLyB2YWx1ZSAtICJwdWJsaWMt
a2V5IgorICAgIDB4NmEsIDB4NzAsIDB4NzUsIDB4NjIsIDB4NkMsIDB4NjksIDB4NjMsIDB4MkQs
IDB4NkIsIDB4NjUsIDB4NzksCisgICAgLy8ga2V5KDcpIC0gb3B0aW9ucworICAgIDB4MDcsCisg
ICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyBrZXkgLSAicmsiCisgICAgMHg2MiwgMHg3
MiwgMHg2YiwKKyAgICAvLyBUcnVlKDIxKQorICAgIDB4ZjUsCisgICAgLy8ga2V5IC0gInV2Igor
ICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gVHJ1ZSgyMSkKKyAgICAweGY1fTsKKworY29u
c3RleHByIHVpbnQ4X3Qga1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RbXSA9IHsK
KyAgICAvLyBhdXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9uIGNvbW1hbmQKKyAgICAweDAyLAorICAg
IC8vIG1hcCg0KQorICAgIDB4YTQsCisgICAgLy8ga2V5KDAxKSAtcnBJZAorICAgIDB4MDEsCisg
ICAgLy8gdmFsdWUgLSAiYWNtZS5jb20iCisgICAgMHg2OCwgMHg2MSwgMHg2MywgMHg2ZCwgMHg2
NSwgMHgyZSwgMHg2MywgMHg2ZiwgMHg2ZCwKKyAgICAvLyBrZXkoMDIpIC0gY2xpZW50IGRhdGEg
aGFzaAorICAgIDB4MDIsCisgICAgLy8gdmFsdWUgLSBieXRlcygzMikKKyAgICAweDU4LCAweDIw
LCAweDY4LCAweDcxLCAweDM0LCAweDk2LCAweDgyLCAweDIyLCAweGVjLCAweDE3LCAweDIwLCAw
eDJlLAorICAgIDB4NDIsIDB4NTAsIDB4NWYsIDB4OGUsIDB4ZDIsIDB4YjEsIDB4NmEsIDB4ZTIs
IDB4MmYsIDB4MTYsIDB4YmIsIDB4MDUsCisgICAgMHhiOCwgMHg4YywgMHgyNSwgMHhkYiwgMHg5
ZSwgMHg2MCwgMHgyNiwgMHg0NSwgMHhmMSwgMHg0MSwKKyAgICAvLyBrZXkoMDMpIC0gYWxsb3cg
bGlzdAorICAgIDB4MDMsCisgICAgLy8gdmFsdWUgLSBhcnJheSgyKQorICAgIDB4ODIsCisgICAg
Ly8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyBrZXkgLSAiaWQiCisgICAgMHg2MiwgMHg2OSwg
MHg2NCwKKyAgICAvLyB2YWx1ZSAtIGNyZWRlbnRpYWwgSUQKKyAgICAweDU4LCAweDQwLCAweGYy
LCAweDIwLCAweDA2LCAweGRlLCAweDRmLCAweDkwLCAweDVhLCAweGY2LCAweDhhLCAweDQzLAor
ICAgIDB4OTQsIDB4MmYsIDB4MDIsIDB4NGYsIDB4MmEsIDB4NWUsIDB4Y2UsIDB4NjAsIDB4M2Qs
IDB4OWMsIDB4NmQsIDB4NGIsCisgICAgMHgzZCwgMHhmOCwgMHhiZSwgMHgwOCwgMHhlZCwgMHgw
MSwgMHhmYywgMHg0NCwgMHgyNiwgMHg0NiwgMHhkMCwgMHgzNCwKKyAgICAweDg1LCAweDhhLCAw
eGM3LCAweDViLCAweGVkLCAweDNmLCAweGQ1LCAweDgwLCAweGJmLCAweDk4LCAweDA4LCAweGQ5
LAorICAgIDB4NGYsIDB4Y2IsIDB4ZWUsIDB4ODIsIDB4YjksIDB4YjIsIDB4ZWYsIDB4NjYsIDB4
NzcsIDB4YWYsIDB4MGEsIDB4ZGMsCisgICAgMHhjMywgMHg1OCwgMHg1MiwgMHhlYSwgMHg2Yiwg
MHg5ZSwKKyAgICAvLyBrZXkgLSAidHlwZSIKKyAgICAweDY0LCAweDc0LCAweDc5LCAweDcwLCAw
eDY1LAorICAgIC8vIHZhbHVlIC0gInB1YmxpYy1rZXkiCisgICAgMHg2YSwgMHg3MCwgMHg3NSwg
MHg2MiwgMHg2QywgMHg2OSwgMHg2MywgMHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAgICAvLyBt
YXAoMikKKyAgICAweGEyLAorICAgIC8vIGtleSAtICJpZCIKKyAgICAweDYyLCAweDY5LCAweDY0
LAorICAgIC8vIHZhbHVlIC0gY3JlZGVudGlhbCBJRAorICAgIDB4NTgsIDB4MzIsIDB4MDMsIDB4
MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAg
MHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgw
MywgMHgwMywgMHgwMywKKyAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAw
eDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgIDB4MDMsIDB4MDMsIDB4MDMs
IDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisg
ICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAvLyBrZXkgLSAidHlwZSIKKyAgICAweDY0
LCAweDc0LCAweDc5LCAweDcwLCAweDY1LAorICAgIC8vIHZhbHVlIC0gInB1YmxpYy1rZXkiCisg
ICAgMHg2YSwgMHg3MCwgMHg3NSwgMHg2MiwgMHg2QywgMHg2OSwgMHg2MywgMHgyRCwgMHg2Qiwg
MHg2NSwgMHg3OSwKKyAgICAvLyB1bnNpZ25lZCg1KSAtIG9wdGlvbnMKKyAgICAweDA1LAorICAg
IC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8ga2V5IC0idXAiCisgICAgMHg2MiwgMHg3NSwg
MHg3MCwKKyAgICAvLyB2YWx1ZSAtIEZhbHNlKDIwKQorICAgIDB4ZjQsCisgICAgLy8ga2V5IC0g
InV2IgorICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gdmFsdWUgLSBUcnVlKDIxKQorICAg
IDB4ZjUsCit9OworCisvLyBDVEFQIHJlc3BvbnNlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBBIHNhbXBsZSB3ZWxs
IGZvcm1lZCByZXNwb25zZSB0byBDVEFQIEF1dGhlbnRpY2F0b3JHZXRJbmZvIHJlcXVlc3QuIENy
b3NzCisvLyBwbGF0Zm9ybSBkZXZpY2UgdGhhdCBzdXBwb3J0cyByZXNpZGVudCBrZXksIGFuZCB1
c2VyIHZlcmlmaWNhdGlvbi4KK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0QXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZVtdID0geworICAgIDB4MDAsIDB4QTYsIDB4MDEsIDB4ODIsIDB4NjgsIDB4
NDYsIDB4NDksIDB4NDQsIDB4NEYsIDB4NUYsIDB4MzIsIDB4NUYsCisgICAgMHgzMCwgMHg2Niwg
MHg1NSwgMHgzMiwgMHg0NiwgMHg1RiwgMHg1NiwgMHgzMiwgMHgwMiwgMHg4MiwgMHg2MywgMHg3
NSwKKyAgICAweDc2LCAweDZELCAweDZCLCAweDY4LCAweDZELCAweDYxLCAweDYzLCAweDJELCAw
eDczLCAweDY1LCAweDYzLCAweDcyLAorICAgIDB4NjUsIDB4NzQsIDB4MDMsIDB4NTAsIDB4Rjgs
IDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMsIDB4MEEsIDB4NEQsIDB4MTUsCisgICAgMHg4MCwgMHgw
NiwgMHgxNywgMHgxMSwgMHgxRiwgMHg5RSwgMHhEQywgMHg3RCwgMHgwNCwgMHhBNSwgMHg2Miwg
MHg3MiwKKyAgICAweDZCLCAweEY1LCAweDYyLCAweDc1LCAweDcwLCAweEY1LCAweDYyLCAweDc1
LCAweDc2LCAweEY1LCAweDY0LCAweDcwLAorICAgIDB4NkMsIDB4NjEsIDB4NzQsIDB4RjQsIDB4
NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4NTAsCisgICAgMHg2OSwg
MHg2RSwgMHhGNCwgMHgwNSwgMHgxOSwgMHgwNCwgMHhCMCwgMHgwNiwgMHg4MSwgMHgwMSwKK307
CisKKy8vIEF1dGhlbnRpY2F0b3JHZXRJbmZvIHJlcXVlc3Qgd2l0aCBhbGwgY29uZmlndXJhdGlv
bnMgZXF1YWwgdG8gdGhhdCBvZgorLy8ga1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNl
IGV4Y2VwdCBwbGF0Zm9ybSBkZXZpY2Ugb3B0aW9uIGlzIHNldCB0bworLy8gdHJ1ZS4KK2NvbnN0
ZXhwciB1aW50OF90IGtUZXN0R2V0SW5mb1Jlc3BvbnNlUGxhdGZvcm1EZXZpY2VbXSA9IHsKKyAg
ICAweDAwLCAweEE2LCAweDAxLCAweDgyLCAweDY4LCAweDQ2LCAweDQ5LCAweDQ0LCAweDRGLCAw
eDVGLCAweDMyLCAweDVGLAorICAgIDB4MzAsIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYs
IDB4NTYsIDB4MzIsIDB4MDIsIDB4ODIsIDB4NjMsIDB4NzUsCisgICAgMHg3NiwgMHg2RCwgMHg2
QiwgMHg2OCwgMHg2RCwgMHg2MSwgMHg2MywgMHgyRCwgMHg3MywgMHg2NSwgMHg2MywgMHg3MiwK
KyAgICAweDY1LCAweDc0LCAweDAzLCAweDUwLCAweEY4LCAweEEwLCAweDExLCAweEYzLCAweDhD
LCAweDBBLCAweDRELCAweDE1LAorICAgIDB4ODAsIDB4MDYsIDB4MTcsIDB4MTEsIDB4MUYsIDB4
OUUsIDB4REMsIDB4N0QsIDB4MDQsIDB4QTUsIDB4NjIsIDB4NzIsCisgICAgMHg2QiwgMHhGNSwg
MHg2MiwgMHg3NSwgMHg3MCwgMHhGNSwgMHg2MiwgMHg3NSwgMHg3NiwgMHhGNSwgMHg2NCwgMHg3
MCwKKyAgICAvLyBwbGF0Zm9ybSBkZXZpY2UgOiB0cnVlCisgICAgMHg2QywgMHg2MSwgMHg3NCwg
MHhGNSwKKyAgICAvLyBFbmQgb2YgcGxhdGZvcm1fZGV2aWNlIHNldHRpbmcuCisgICAgMHg2OSwg
MHg2MywgMHg2QywgMHg2OSwgMHg2NSwgMHg2RSwgMHg3NCwgMHg1MCwgMHg2OSwgMHg2RSwgMHhG
NCwgMHgwNSwKKyAgICAweDE5LCAweDA0LCAweEIwLCAweDA2LCAweDgxLCAweDAxLAorfTsKKwor
Ly8gQSBTYW1wbGUgd2VsbCBmb3JtZWQgcmVzcG9uc2UgdG8gQ1RBUCBNYWtlQ3JlZGVudGlhbCBy
ZXF1ZXN0LgorY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RNYWtlQ3JlZGVudGlhbFJlc3BvbnNlW10g
PSB7CisgICAgLy8gU3VjY2VzcyBzdGF0dXMgYnl0ZQorICAgIDB4MDAsCisgICAgLy8gTWFwKDAz
KQorICAgIDB4YTMsCisgICAgLy8ga2V5KDAxKSAtIEZvcm1hdAorICAgIDB4MDEsCisgICAgLy8g
InBhY2tlZCIKKyAgICAweDY2LCAweDcwLCAweDYxLCAweDYzLCAweDZiLCAweDY1LCAweDY0LAor
ICAgIC8vIGtleSgwMikgLSBBdXRoZW50aWNhdG9yIERhdGEKKyAgICAweDAyLAorICAgIC8vIEJ5
dGUoMTU0KQorICAgIDB4NTgsIDB4OWEsIDB4MTEsIDB4OTQsIDB4MjIsIDB4OGQsIDB4YTgsIDB4
ZmQsIDB4YmQsIDB4ZWUsIDB4ZmQsIDB4MjYsCisgICAgMHgxYiwgMHhkNywgMHhiNiwgMHg1OSwg
MHg1YywgMHhmZCwgMHg3MCwgMHhhNSwgMHgwZCwgMHg3MCwgMHhjNiwgMHg0MCwKKyAgICAweDdi
LCAweGNmLCAweDAxLCAweDNkLCAweGU5LCAweDZkLCAweDRlLCAweGZiLCAweDE3LCAweGRlLCAw
eDQxLCAweDAwLAorICAgIDB4MDAsIDB4MDAsIDB4MGIsIDB4ZjgsIDB4YTAsIDB4MTEsIDB4ZjMs
IDB4OGMsIDB4MGEsIDB4NGQsIDB4MTUsIDB4ODAsCisgICAgMHgwNiwgMHgxNywgMHgxMSwgMHgx
ZiwgMHg5ZSwgMHhkYywgMHg3ZCwgMHgwMCwgMHgxMCwgMHg4OSwgMHg1OSwgMHhjZSwKKyAgICAw
eGFkLCAweDViLCAweDVjLCAweDQ4LCAweDE2LCAweDRlLCAweDhhLCAweGJjLCAweGQ2LCAweGQ5
LCAweDQzLCAweDVjLAorICAgIDB4NmYsIDB4YTMsIDB4NjMsIDB4NjEsIDB4NmMsIDB4NjcsIDB4
NjUsIDB4NDUsIDB4NTMsIDB4MzIsIDB4MzUsIDB4MzYsCisgICAgMHg2MSwgMHg3OCwgMHg1OCwg
MHgyMCwgMHhmNywgMHhjNCwgMHhmNCwgMHhhNiwgMHhmMSwgMHhkNywgMHg5NSwgMHgzOCwKKyAg
ICAweGRmLCAweGE0LCAweGM5LCAweGFjLCAweDUwLCAweDg0LCAweDhkLCAweGY3LCAweDA4LCAw
eGJjLCAweDFjLCAweDk5LAorICAgIDB4ZjUsIDB4ZTYsIDB4MGUsIDB4NTEsIDB4YjQsIDB4MmEs
IDB4NTIsIDB4MWIsIDB4MzUsIDB4ZDMsIDB4YjYsIDB4OWEsCisgICAgMHg2MSwgMHg3OSwgMHg1
OCwgMHgyMCwgMHhkZSwgMHg3YiwgMHg3ZCwgMHg2YywgMHhhNSwgMHg2NCwgMHhlNywgMHgwZSwK
KyAgICAweGEzLCAweDIxLCAweGE0LCAweGQ1LCAweGQ5LCAweDZlLCAweGEwLCAweDBlLCAweGYw
LCAweGUyLCAweGRiLCAweDg5LAorICAgIDB4ZGQsIDB4NjEsIDB4ZDQsIDB4ODksIDB4NGMsIDB4
MTUsIDB4YWMsIDB4NTgsIDB4NWIsIDB4ZDIsIDB4MzYsIDB4ODQsCisgICAgLy8gS2V5KDAzKSAt
IEF0dGVzdGF0aW9uIG9iamVjdAorICAgIDB4MDMsCisgICAgLy8gTWFwIC0gQXR0ZXN0YXRpb24g
b2JqZWN0CisgICAgMHhhMywgMHg2MywgMHg2MSwgMHg2YywgMHg2NywgMHgyNiwgMHg2MywgMHg3
MywgMHg2OSwgMHg2NywgMHg1OCwgMHg0NywKKyAgICAweDMwLCAweDQ1LCAweDAyLCAweDIwLCAw
eDEzLCAweGY3LCAweDNjLCAweDVkLCAweDlkLCAweDUzLCAweDBlLCAweDhjLAorICAgIDB4YzEs
IDB4NWMsIDB4YzksIDB4YmQsIDB4OTYsIDB4YWQsIDB4NTgsIDB4NmQsIDB4MzksIDB4MzYsIDB4
NjQsIDB4ZTQsCisgICAgMHg2MiwgMHhkNSwgMHhmMCwgMHg1NiwgMHgxMiwgMHgzNSwgMHhlNiwg
MHgzNSwgMHgwZiwgMHgyYiwgMHg3MiwgMHg4OSwKKyAgICAweDAyLCAweDIxLCAweDAwLCAweDkw
LCAweDM1LCAweDdmLCAweGY5LCAweDEwLCAweGNjLCAweGI1LCAweDZhLCAweGM1LAorICAgIDB4
YjUsIDB4OTYsIDB4NTEsIDB4MTksIDB4NDgsIDB4NTgsIDB4MWMsIDB4OGYsIDB4ZGQsIDB4YjQs
IDB4YTIsIDB4YjcsCisgICAgMHg5OSwgMHg1OSwgMHg5NCwgMHg4MCwgMHg3OCwgMHhiMCwgMHg5
ZiwgMHg0YiwgMHhkYywgMHg2MiwgMHgyOSwgMHg2MywKKyAgICAweDc4LCAweDM1LCAweDYzLCAw
eDgxLCAweDU5LCAweDAxLCAweDk3LCAweDMwLCAweDgyLCAweDAxLCAweDkzLCAweDMwLAorICAg
IDB4ODIsIDB4MDEsIDB4MzgsIDB4YTAsIDB4MDMsIDB4MDIsIDB4MDEsIDB4MDIsIDB4MDIsIDB4
MDksIDB4MDAsIDB4ODUsCisgICAgMHg5YiwgMHg3MiwgMHg2YywgMHhiMiwgMHg0YiwgMHg0Yywg
MHgyOSwgMHgzMCwgMHgwYSwgMHgwNiwgMHgwOCwgMHgyYSwKKyAgICAweDg2LCAweDQ4LCAweGNl
LCAweDNkLCAweDA0LCAweDAzLCAweDAyLCAweDMwLCAweDQ3LCAweDMxLCAweDBiLCAweDMwLAor
ICAgIDB4MDksIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MDYsIDB4MTMsIDB4MDIsIDB4NTUs
IDB4NTMsIDB4MzEsIDB4MTQsCisgICAgMHgzMCwgMHgxMiwgMHgwNiwgMHgwMywgMHg1NSwgMHgw
NCwgMHgwYSwgMHgwYywgMHgwYiwgMHg1OSwgMHg3NSwgMHg2MiwKKyAgICAweDY5LCAweDYzLCAw
eDZmLCAweDIwLCAweDU0LCAweDY1LCAweDczLCAweDc0LCAweDMxLCAweDIyLCAweDMwLCAweDIw
LAorICAgIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MGIsIDB4MGMsIDB4MTksIDB4NDEsIDB4
NzUsIDB4NzQsIDB4NjgsIDB4NjUsCisgICAgMHg2ZSwgMHg3NCwgMHg2OSwgMHg2MywgMHg2MSwg
MHg3NCwgMHg2ZiwgMHg3MiwgMHgyMCwgMHg0MSwgMHg3NCwgMHg3NCwKKyAgICAweDY1LCAweDcz
LCAweDc0LCAweDYxLCAweDc0LCAweDY5LCAweDZmLCAweDZlLCAweDMwLCAweDFlLCAweDE3LCAw
eDBkLAorICAgIDB4MzEsIDB4MzYsIDB4MzEsIDB4MzIsIDB4MzAsIDB4MzQsIDB4MzEsIDB4MzEs
IDB4MzUsIDB4MzUsIDB4MzAsIDB4MzAsCisgICAgMHg1YSwgMHgxNywgMHgwZCwgMHgzMiwgMHgz
NiwgMHgzMSwgMHgzMiwgMHgzMCwgMHgzMiwgMHgzMSwgMHgzMSwgMHgzNSwKKyAgICAweDM1LCAw
eDMwLCAweDMwLCAweDVhLCAweDMwLCAweDQ3LCAweDMxLCAweDBiLCAweDMwLCAweDA5LCAweDA2
LCAweDAzLAorICAgIDB4NTUsIDB4MDQsIDB4MDYsIDB4MTMsIDB4MDIsIDB4NTUsIDB4NTMsIDB4
MzEsIDB4MTQsIDB4MzAsIDB4MTIsIDB4MDYsCisgICAgMHgwMywgMHg1NSwgMHgwNCwgMHgwYSwg
MHgwYywgMHgwYiwgMHg1OSwgMHg3NSwgMHg2MiwgMHg2OSwgMHg2MywgMHg2ZiwKKyAgICAweDIw
LCAweDU0LCAweDY1LCAweDczLCAweDc0LCAweDMxLCAweDIyLCAweDMwLCAweDIwLCAweDA2LCAw
eDAzLCAweDU1LAorICAgIDB4MDQsIDB4MGIsIDB4MGMsIDB4MTksIDB4NDEsIDB4NzUsIDB4NzQs
IDB4NjgsIDB4NjUsIDB4NmUsIDB4NzQsIDB4NjksCisgICAgMHg2MywgMHg2MSwgMHg3NCwgMHg2
ZiwgMHg3MiwgMHgyMCwgMHg0MSwgMHg3NCwgMHg3NCwgMHg2NSwgMHg3MywgMHg3NCwKKyAgICAw
eDYxLCAweDc0LCAweDY5LCAweDZmLCAweDZlLCAweDMwLCAweDU5LCAweDMwLCAweDEzLCAweDA2
LCAweDA3LCAweDJhLAorICAgIDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2QsIDB4MDIsIDB4MDEsIDB4
MDYsIDB4MDgsIDB4MmEsIDB4ODYsIDB4NDgsIDB4Y2UsCisgICAgMHgzZCwgMHgwMywgMHgwMSwg
MHgwNywgMHgwMywgMHg0MiwgMHgwMCwgMHgwNCwgMHhhZCwgMHgxMSwgMHhlYiwgMHgwZSwKKyAg
ICAweDg4LCAweDUyLCAweGU1LCAweDNhLCAweGQ1LCAweGRmLCAweGVkLCAweDg2LCAweGI0LCAw
eDFlLCAweDYxLCAweDM0LAorICAgIDB4YTEsIDB4OGUsIDB4YzQsIDB4ZTEsIDB4YWYsIDB4OGYs
IDB4MjIsIDB4MWEsIDB4M2MsIDB4N2QsIDB4NmUsIDB4NjMsCisgICAgMHg2YywgMHg4MCwgMHhl
YSwgMHgxMywgMHhjMywgMHhkNSwgMHgwNCwgMHhmZiwgMHgyZSwgMHg3NiwgMHgyMSwgMHgxYiwK
KyAgICAweGI0LCAweDQ1LCAweDI1LCAweGIxLCAweDk2LCAweGM0LCAweDRjLCAweGI0LCAweDg0
LCAweDk5LCAweDc5LCAweGNmLAorICAgIDB4NmYsIDB4ODksIDB4NmUsIDB4Y2QsIDB4MmIsIDB4
YjgsIDB4NjAsIDB4ZGUsIDB4MWIsIDB4ZjQsIDB4MzcsIDB4NmIsCisgICAgMHhhMywgMHgwZCwg
MHgzMCwgMHgwYiwgMHgzMCwgMHgwOSwgMHgwNiwgMHgwMywgMHg1NSwgMHgxZCwgMHgxMywgMHgw
NCwKKyAgICAweDAyLCAweDMwLCAweDAwLCAweDMwLCAweDBhLCAweDA2LCAweDA4LCAweDJhLCAw
eDg2LCAweDQ4LCAweGNlLCAweDNkLAorICAgIDB4MDQsIDB4MDMsIDB4MDIsIDB4MDMsIDB4NDks
IDB4MDAsIDB4MzAsIDB4NDYsIDB4MDIsIDB4MjEsIDB4MDAsIDB4ZTksCisgICAgMHhhMywgMHg5
ZiwgMHgxYiwgMHgwMywgMHgxOSwgMHg3NSwgMHgyNSwgMHhmNywgMHgzNywgMHgzZSwgMHgxMCwg
MHhjZSwKKyAgICAweDc3LCAweGU3LCAweDgwLCAweDIxLCAweDczLCAweDFiLCAweDk0LCAweGQw
LCAweGMwLCAweDNmLCAweDNmLCAweGRhLAorICAgIDB4MWYsIDB4ZDIsIDB4MmQsIDB4YjMsIDB4
ZDAsIDB4MzAsIDB4ZTcsIDB4MDIsIDB4MjEsIDB4MDAsIDB4YzQsIDB4ZmEsCisgICAgMHhlYywg
MHgzNCwgMHg0NSwgMHhhOCwgMHgyMCwgMHhjZiwgMHg0MywgMHgxMiwgMHg5YywgMHhkYiwgMHgw
MCwgMHhhYSwKKyAgICAweGJlLCAweGZkLCAweDlhLCAweGUyLCAweGQ4LCAweDc0LCAweGY5LCAw
eGM1LCAweGQzLCAweDQzLCAweGNiLCAweDJmLAorICAgIDB4MTEsIDB4M2QsIDB4YTIsIDB4Mzcs
IDB4MjMsIDB4ZjMsCit9OworCisvLyBCZWxvdyB8a0N0YXAyTWFrZUNyZWRlbnRpYWxDZXJ0aWZp
Y2F0ZXwsIHxrQ3RhcDJNYWtlQ3JlZGVudGlhbEF1dGhEYXRhfCwgYW5kCisvLyB8a0N0YXAyTWFr
ZUNyZWRlbnRpYWxTaWduYXR1cmV8IGxldmVyYWdlIGV4YW1wbGUgNCBvZiB0aGUgQ1RBUCBzcGVj
LgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDky
Ny9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5Mjcu
aHRtbAorY29uc3RleHByIHVpbnQ4X3Qga0N0YXAyTWFrZUNyZWRlbnRpYWxDZXJ0aWZpY2F0ZVtd
ID0geworICAgIDB4MzAsIDB4ODIsIDB4MDEsIDB4OTMsIDB4MzAsIDB4ODIsIDB4MDEsIDB4Mzgs
IDB4YTAsIDB4MDMsIDB4MDIsIDB4MDEsCisgICAgMHgwMiwgMHgwMiwgMHgwOSwgMHgwMCwgMHg4
NSwgMHg5YiwgMHg3MiwgMHg2YywgMHhiMiwgMHg0YiwgMHg0YywgMHgyOSwKKyAgICAweDMwLCAw
eDBhLCAweDA2LCAweDA4LCAweDJhLCAweDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDA0LCAweDAz
LCAweDAyLAorICAgIDB4MzAsIDB4NDcsIDB4MzEsIDB4MGIsIDB4MzAsIDB4MDksIDB4MDYsIDB4
MDMsIDB4NTUsIDB4MDQsIDB4MDYsIDB4MTMsCisgICAgMHgwMiwgMHg1NSwgMHg1MywgMHgzMSwg
MHgxNCwgMHgzMCwgMHgxMiwgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwYSwKKyAgICAweDBj
LCAweDBiLCAweDU5LCAweDc1LCAweDYyLCAweDY5LCAweDYzLCAweDZmLCAweDIwLCAweDU0LCAw
eDY1LCAweDczLAorICAgIDB4NzQsIDB4MzEsIDB4MjIsIDB4MzAsIDB4MjAsIDB4MDYsIDB4MDMs
IDB4NTUsIDB4MDQsIDB4MGIsIDB4MGMsIDB4MTksCisgICAgMHg0MSwgMHg3NSwgMHg3NCwgMHg2
OCwgMHg2NSwgMHg2ZSwgMHg3NCwgMHg2OSwgMHg2MywgMHg2MSwgMHg3NCwgMHg2ZiwKKyAgICAw
eDcyLCAweDIwLCAweDQxLCAweDc0LCAweDc0LCAweDY1LCAweDczLCAweDc0LCAweDYxLCAweDc0
LCAweDY5LCAweDZmLAorICAgIDB4NmUsIDB4MzAsIDB4MWUsIDB4MTcsIDB4MGQsIDB4MzEsIDB4
MzYsIDB4MzEsIDB4MzIsIDB4MzAsIDB4MzQsIDB4MzEsCisgICAgMHgzMSwgMHgzNSwgMHgzNSwg
MHgzMCwgMHgzMCwgMHg1YSwgMHgxNywgMHgwZCwgMHgzMiwgMHgzNiwgMHgzMSwgMHgzMiwKKyAg
ICAweDMwLCAweDMyLCAweDMxLCAweDMxLCAweDM1LCAweDM1LCAweDMwLCAweDMwLCAweDVhLCAw
eDMwLCAweDQ3LCAweDMxLAorICAgIDB4MGIsIDB4MzAsIDB4MDksIDB4MDYsIDB4MDMsIDB4NTUs
IDB4MDQsIDB4MDYsIDB4MTMsIDB4MDIsIDB4NTUsIDB4NTMsCisgICAgMHgzMSwgMHgxNCwgMHgz
MCwgMHgxMiwgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwYSwgMHgwYywgMHgwYiwgMHg1OSwK
KyAgICAweDc1LCAweDYyLCAweDY5LCAweDYzLCAweDZmLCAweDIwLCAweDU0LCAweDY1LCAweDcz
LCAweDc0LCAweDMxLCAweDIyLAorICAgIDB4MzAsIDB4MjAsIDB4MDYsIDB4MDMsIDB4NTUsIDB4
MDQsIDB4MGIsIDB4MGMsIDB4MTksIDB4NDEsIDB4NzUsIDB4NzQsCisgICAgMHg2OCwgMHg2NSwg
MHg2ZSwgMHg3NCwgMHg2OSwgMHg2MywgMHg2MSwgMHg3NCwgMHg2ZiwgMHg3MiwgMHgyMCwgMHg0
MSwKKyAgICAweDc0LCAweDc0LCAweDY1LCAweDczLCAweDc0LCAweDYxLCAweDc0LCAweDY5LCAw
eDZmLCAweDZlLCAweDMwLCAweDU5LAorICAgIDB4MzAsIDB4MTMsIDB4MDYsIDB4MDcsIDB4MmEs
IDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2QsIDB4MDIsIDB4MDEsIDB4MDYsCisgICAgMHgwOCwgMHgy
YSwgMHg4NiwgMHg0OCwgMHhjZSwgMHgzZCwgMHgwMywgMHgwMSwgMHgwNywgMHgwMywgMHg0Miwg
MHgwMCwKKyAgICAweDA0LCAweGFkLCAweDExLCAweGViLCAweDBlLCAweDg4LCAweDUyLCAweGU1
LCAweDNhLCAweGQ1LCAweGRmLCAweGVkLAorICAgIDB4ODYsIDB4YjQsIDB4MWUsIDB4NjEsIDB4
MzQsIDB4YTEsIDB4OGUsIDB4YzQsIDB4ZTEsIDB4YWYsIDB4OGYsIDB4MjIsCisgICAgMHgxYSwg
MHgzYywgMHg3ZCwgMHg2ZSwgMHg2MywgMHg2YywgMHg4MCwgMHhlYSwgMHgxMywgMHhjMywgMHhk
NSwgMHgwNCwKKyAgICAweGZmLCAweDJlLCAweDc2LCAweDIxLCAweDFiLCAweGI0LCAweDQ1LCAw
eDI1LCAweGIxLCAweDk2LCAweGM0LCAweDRjLAorICAgIDB4YjQsIDB4ODQsIDB4OTksIDB4Nzks
IDB4Y2YsIDB4NmYsIDB4ODksIDB4NmUsIDB4Y2QsIDB4MmIsIDB4YjgsIDB4NjAsCisgICAgMHhk
ZSwgMHgxYiwgMHhmNCwgMHgzNywgMHg2YiwgMHhhMywgMHgwZCwgMHgzMCwgMHgwYiwgMHgzMCwg
MHgwOSwgMHgwNiwKKyAgICAweDAzLCAweDU1LCAweDFkLCAweDEzLCAweDA0LCAweDAyLCAweDMw
LCAweDAwLCAweDMwLCAweDBhLCAweDA2LCAweDA4LAorICAgIDB4MmEsIDB4ODYsIDB4NDgsIDB4
Y2UsIDB4M2QsIDB4MDQsIDB4MDMsIDB4MDIsIDB4MDMsIDB4NDksIDB4MDAsIDB4MzAsCisgICAg
MHg0NiwgMHgwMiwgMHgyMSwgMHgwMCwgMHhlOSwgMHhhMywgMHg5ZiwgMHgxYiwgMHgwMywgMHgx
OSwgMHg3NSwgMHgyNSwKKyAgICAweGY3LCAweDM3LCAweDNlLCAweDEwLCAweGNlLCAweDc3LCAw
eGU3LCAweDgwLCAweDIxLCAweDczLCAweDFiLCAweDk0LAorICAgIDB4ZDAsIDB4YzAsIDB4M2Ys
IDB4M2YsIDB4ZGEsIDB4MWYsIDB4ZDIsIDB4MmQsIDB4YjMsIDB4ZDAsIDB4MzAsIDB4ZTcsCisg
ICAgMHgwMiwgMHgyMSwgMHgwMCwgMHhjNCwgMHhmYSwgMHhlYywgMHgzNCwgMHg0NSwgMHhhOCwg
MHgyMCwgMHhjZiwgMHg0MywKKyAgICAweDEyLCAweDljLCAweGRiLCAweDAwLCAweGFhLCAweGJl
LCAweGZkLCAweDlhLCAweGUyLCAweGQ4LCAweDc0LCAweGY5LAorICAgIDB4YzUsIDB4ZDMsIDB4
NDMsIDB4Y2IsIDB4MmYsIDB4MTEsIDB4M2QsIDB4YTIsIDB4MzcsIDB4MjMsIDB4ZjN9OworCitj
b25zdGV4cHIgdWludDhfdCBrQ3RhcDJNYWtlQ3JlZGVudGlhbEF1dGhEYXRhW10gPSB7CisgICAg
MHgxMSwgMHg5NCwgMHgyMiwgMHg4RCwgMHhBOCwgMHhGRCwgMHhCRCwgMHhFRSwgMHhGRCwgMHgy
NiwgMHgxQiwgMHhENywKKyAgICAweEI2LCAweDU5LCAweDVDLCAweEZELCAweDcwLCAweEE1LCAw
eDBELCAweDcwLCAweEM2LCAweDQwLCAweDdCLCAweENGLAorICAgIDB4MDEsIDB4M0QsIDB4RTks
IDB4NkQsIDB4NEUsIDB4RkIsIDB4MTcsIDB4REUsIDB4NDEsIDB4MDAsIDB4MDAsIDB4MDAsCisg
ICAgMHgwYiwgMHhmOCwgMHhhMCwgMHgxMSwgMHhmMywgMHg4YywgMHgwYSwgMHg0ZCwgMHgxNSwg
MHg4MCwgMHgwNiwgMHgxNywKKyAgICAweDExLCAweDFmLCAweDllLCAweGRjLCAweDdkLCAweDAw
LCAweDEwLCAweDg5LCAweDU5LCAweGNlLCAweGFkLCAweDViLAorICAgIDB4NWMsIDB4NDgsIDB4
MTYsIDB4NGUsIDB4OGEsIDB4YmMsIDB4ZDYsIDB4ZDksIDB4NDMsIDB4NWMsIDB4NmYsIDB4YTMs
CisgICAgMHg2MywgMHg2MSwgMHg2YywgMHg2NywgMHg2NSwgMHg0NSwgMHg1MywgMHgzMiwgMHgz
NSwgMHgzNiwgMHg2MSwgMHg3OCwKKyAgICAweDU4LCAweDIwLCAweGY3LCAweGM0LCAweGY0LCAw
eGE2LCAweGYxLCAweGQ3LCAweDk1LCAweDM4LCAweGRmLCAweGE0LAorICAgIDB4YzksIDB4YWMs
IDB4NTAsIDB4ODQsIDB4OGQsIDB4ZjcsIDB4MDgsIDB4YmMsIDB4MWMsIDB4OTksIDB4ZjUsIDB4
ZTYsCisgICAgMHgwZSwgMHg1MSwgMHhiNCwgMHgyYSwgMHg1MiwgMHgxYiwgMHgzNSwgMHhkMywg
MHhiNiwgMHg5YSwgMHg2MSwgMHg3OSwKKyAgICAweDU4LCAweDIwLCAweGRlLCAweDdiLCAweDdk
LCAweDZjLCAweGE1LCAweDY0LCAweGU3LCAweDBlLCAweGEzLCAweDIxLAorICAgIDB4YTQsIDB4
ZDUsIDB4ZDksIDB4NmUsIDB4YTAsIDB4MGUsIDB4ZjAsIDB4ZTIsIDB4ZGIsIDB4ODksIDB4ZGQs
IDB4NjEsCisgICAgMHhkNCwgMHg4OSwgMHg0YywgMHgxNSwgMHhhYywgMHg1OCwgMHg1YiwgMHhk
MiwgMHgzNiwgMHg4NH07CisKK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwMk1ha2VDcmVkZW50aWFs
U2lnbmF0dXJlW10gPSB7CisgICAgMHgzMCwgMHg0NSwgMHgwMiwgMHgyMCwgMHgxMywgMHhmNywg
MHgzYywgMHg1ZCwgMHg5ZCwgMHg1MywgMHgwZSwgMHg4YywKKyAgICAweGMxLCAweDVjLCAweGM5
LCAweGJkLCAweDk2LCAweGFkLCAweDU4LCAweDZkLCAweDM5LCAweDM2LCAweDY0LCAweGU0LAor
ICAgIDB4NjIsIDB4ZDUsIDB4ZjAsIDB4NTYsIDB4MTIsIDB4MzUsIDB4ZTYsIDB4MzUsIDB4MGYs
IDB4MmIsIDB4NzIsIDB4ODksCisgICAgMHgwMiwgMHgyMSwgMHgwMCwgMHg5MCwgMHgzNSwgMHg3
ZiwgMHhmOSwgMHgxMCwgMHhjYywgMHhiNSwgMHg2YSwgMHhjNSwKKyAgICAweGI1LCAweDk2LCAw
eDUxLCAweDE5LCAweDQ4LCAweDU4LCAweDFjLCAweDhmLCAweGRkLCAweGI0LCAweGEyLCAweGI3
LAorICAgIDB4OTksIDB4NTksIDB4OTQsIDB4ODAsIDB4NzgsIDB4YjAsIDB4OWYsIDB4NGIsIDB4
ZGMsIDB4NjIsIDB4Mjl9OworCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcDJNYWtlQ3JlZGVudGlh
bENyZWRlbnRpYWxJZFtdID0geworICAgIDB4ODksIDB4NTksIDB4Y2UsIDB4YWQsIDB4NWIsIDB4
NWMsIDB4NDgsIDB4MTYsCisgICAgMHg0ZSwgMHg4YSwgMHhiYywgMHhkNiwgMHhkOSwgMHg0Mywg
MHg1YywgMHg2ZiwKK307CisKK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwMkdldEFzc2VydGlvbkF1
dGhEYXRhW10gPSB7CisgICAgMHg2MiwgMHg1ZCwgMHhkYSwgMHhkZiwgMHg3NCwgMHgzZiwgMHg1
NywgMHgyNywgMHhlNiwgMHg2YiwKKyAgICAweGJhLCAweDhjLCAweDJlLCAweDM4LCAweDc5LCAw
eDIyLCAweGQxLCAweGFmLCAweDQzLCAweGM1LAorICAgIDB4MDMsIDB4ZDksIDB4MTEsIDB4NGEs
IDB4OGYsIDB4YmEsIDB4MTAsIDB4NGQsIDB4ODQsIDB4ZDAsCisgICAgMHgyYiwgMHhmYSwgMHgw
MSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMX07CisKK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwMkdl
dEFzc2VydGlvblNpZ25hdHVyZVtdID0geworICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4MjAsIDB4
NGEsIDB4NWEsIDB4OWQsIDB4ZDMsIDB4OTIsIDB4OTgsIDB4MTQsIDB4OWQsCisgICAgMHg5MCwg
MHg0NywgMHg2OSwgMHhiNSwgMHgxYSwgMHg0NSwgMHgxNCwgMHgzMywgMHgwMCwgMHg2ZiwgMHgx
OCwgMHgyYSwKKyAgICAweDM0LCAweGZiLCAweGRmLCAweDY2LCAweGRlLCAweDVmLCAweGM3LCAw
eDE3LCAweGQ3LCAweDVmLCAweGIzLCAweDUwLAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4YTQs
IDB4NmIsIDB4OGUsIDB4YTMsIDB4YzMsIDB4YjksIDB4MzMsIDB4ODIsIDB4MWMsCisgICAgMHg2
ZSwgMHg3ZiwgMHg1ZSwgMHhmOSwgMHhkYSwgMHhhZSwgMHg5NCwgMHhhYiwgMHg0NywgMHhmMSwg
MHg4ZCwgMHhiNCwKKyAgICAweDc0LCAweGM3LCAweDQ3LCAweDkwLCAweGVhLCAweGFiLCAweGIx
LCAweDQ0LCAweDExLCAweGU3LCAweGEwLAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga0Rldmlj
ZUdldEFzc2VydGlvblJlc3BvbnNlW10gPSB7CisgICAgLy8gU3VjY2VzcyByZXNwb25zZSBjb2Rl
CisgICAgMHgwMCwKKyAgICAvLyBtYXAoNSkKKyAgICAweGE1LAorICAgIC8vIHVuc2lnbmVkKDEp
IC0gQ3JlZGVudGlhbAorICAgIDB4MDEsCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAv
LyB0ZXh0KDIpCisgICAgMHg2MiwKKyAgICAvLyAiaWQiCisgICAgMHg2OSwgMHg2NCwKKyAgICAv
LyBieXRlcyg2NCkKKyAgICAweDU4LCAweDQwLAorICAgIC8vIGNyZWRlbnRpYWwgaWQKKyAgICAw
eGYyLCAweDIwLCAweDA2LCAweGRlLCAweDRmLCAweDkwLCAweDVhLCAweGY2LCAweDhhLCAweDQz
LCAweDk0LCAweDJmLAorICAgIDB4MDIsIDB4NGYsIDB4MmEsIDB4NWUsIDB4Y2UsIDB4NjAsIDB4
M2QsIDB4OWMsIDB4NmQsIDB4NGIsIDB4M2QsIDB4ZjgsCisgICAgMHhiZSwgMHgwOCwgMHhlZCwg
MHgwMSwgMHhmYywgMHg0NCwgMHgyNiwgMHg0NiwgMHhkMCwgMHgzNCwgMHg4NSwgMHg4YSwKKyAg
ICAweGM3LCAweDViLCAweGVkLCAweDNmLCAweGQ1LCAweDgwLCAweGJmLCAweDk4LCAweDA4LCAw
eGQ5LCAweDRmLCAweGNiLAorICAgIDB4ZWUsIDB4ODIsIDB4YjksIDB4YjIsIDB4ZWYsIDB4NjYs
IDB4NzcsIDB4YWYsIDB4MGEsIDB4ZGMsIDB4YzMsIDB4NTgsCisgICAgMHg1MiwgMHhlYSwgMHg2
YiwgMHg5ZSwKKyAgICAvLyB0ZXh0KDQpCisgICAgMHg2NCwKKyAgICAvLyAidHlwZSIKKyAgICAw
eDc0LCAweDc5LCAweDcwLCAweDY1LAorICAgIC8vIHRleHQoMTApCisgICAgMHg2YSwKKyAgICAv
LyAicHVibGljLWtleSIKKyAgICAweDcwLCAweDc1LCAweDYyLCAweDZDLCAweDY5LCAweDYzLCAw
eDJELCAweDZCLCAweDY1LCAweDc5LAorICAgIC8vIHVuc2lnbmVkKDIpIC0gQXV0aCBkYXRhCisg
ICAgMHgwMiwKKyAgICAvLyBieXRlcygzNykKKyAgICAweDU4LCAweDI1LAorICAgIC8vIGF1dGgg
ZGF0YQorICAgIDB4NjIsIDB4NWQsIDB4ZGEsIDB4ZGYsIDB4NzQsIDB4M2YsIDB4NTcsIDB4Mjcs
IDB4ZTYsIDB4NmIsIDB4YmEsIDB4OGMsCisgICAgMHgyZSwgMHgzOCwgMHg3OSwgMHgyMiwgMHhk
MSwgMHhhZiwgMHg0MywgMHhjNSwgMHgwMywgMHhkOSwgMHgxMSwgMHg0YSwKKyAgICAweDhmLCAw
eGJhLCAweDEwLCAweDRkLCAweDg0LCAweGQwLCAweDJiLCAweGZhLCAweDAxLCAweDAwLCAweDAw
LCAweDAwLAorICAgIDB4MTEsCisgICAgLy8gdW5zaWduZWQoMykgLSBzaWduYXR1cmUKKyAgICAw
eDAzLAorICAgIC8vIGJ5dGVzKDcxKQorICAgIDB4NTgsIDB4NDcsCisgICAgLy8gc2lnbmF0dXJl
CisgICAgMHgzMCwgMHg0NSwgMHgwMiwgMHgyMCwgMHg0YSwgMHg1YSwgMHg5ZCwgMHhkMywgMHg5
MiwgMHg5OCwgMHgxNCwgMHg5ZCwKKyAgICAweDkwLCAweDQ3LCAweDY5LCAweGI1LCAweDFhLCAw
eDQ1LCAweDE0LCAweDMzLCAweDAwLCAweDZmLCAweDE4LCAweDJhLAorICAgIDB4MzQsIDB4ZmIs
IDB4ZGYsIDB4NjYsIDB4ZGUsIDB4NWYsIDB4YzcsIDB4MTcsIDB4ZDcsIDB4NWYsIDB4YjMsIDB4
NTAsCisgICAgMHgwMiwgMHgyMSwgMHgwMCwgMHhhNCwgMHg2YiwgMHg4ZSwgMHhhMywgMHhjMywg
MHhiOSwgMHgzMywgMHg4MiwgMHgxYywKKyAgICAweDZlLCAweDdmLCAweDVlLCAweGY5LCAweGRh
LCAweGFlLCAweDk0LCAweGFiLCAweDQ3LCAweGYxLCAweDhkLCAweGI0LAorICAgIDB4NzQsIDB4
YzcsIDB4NDcsIDB4OTAsIDB4ZWEsIDB4YWIsIDB4YjEsIDB4NDQsIDB4MTEsIDB4ZTcsIDB4YTAs
CisgICAgLy8gdW5zaWduZWQoNCkgLSBwdWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eQorICAg
IDB4MDQsCisgICAgLy8gbWFwKDQpCisgICAgMHhhNCwKKyAgICAvLyB0ZXh0KDIpCisgICAgMHg2
MiwKKyAgICAvLyAiaWQiCisgICAgMHg2OSwgMHg2NCwKKyAgICAvLyBieXRlcygzMikgLSB1c2Vy
IGlkCisgICAgMHg1OCwgMHgyMCwKKyAgICAvLyB1c2VyIGlkCisgICAgMHgzMCwgMHg4MiwgMHgw
MSwgMHg5MywgMHgzMCwgMHg4MiwgMHgwMSwgMHgzOCwgMHhhMCwgMHgwMywgMHgwMiwgMHgwMSwK
KyAgICAweDAyLCAweDMwLCAweDgyLCAweDAxLCAweDkzLCAweDMwLCAweDgyLCAweDAxLCAweDM4
LCAweGEwLCAweDAzLCAweDAyLAorICAgIDB4MDEsIDB4MDIsIDB4MzAsIDB4ODIsIDB4MDEsIDB4
OTMsIDB4MzAsIDB4ODIsCisgICAgLy8gdGV4dCg0KQorICAgIDB4NjQsCisgICAgLy8gImljb24i
CisgICAgMHg2OSwgMHg2MywgMHg2ZiwgMHg2ZSwKKyAgICAvLyB0ZXh0KDQwKQorICAgIDB4Nzgs
IDB4MjgsCisgICAgLy8gImh0dHBzOi8vcGljcy5hY21lLmNvbS8wMC9wL2FCampqcHFQYi5wbmci
CisgICAgMHg2OCwgMHg3NCwgMHg3NCwgMHg3MCwgMHg3MywgMHgzYSwgMHgyZiwgMHgyZiwgMHg3
MCwgMHg2OSwgMHg2MywgMHg3MywKKyAgICAweDJlLCAweDYxLCAweDYzLCAweDZkLCAweDY1LCAw
eDJlLCAweDYzLCAweDZmLCAweDZkLCAweDJmLCAweDMwLCAweDMwLAorICAgIDB4MmYsIDB4NzAs
IDB4MmYsIDB4NjEsIDB4NDIsIDB4NmEsIDB4NmEsIDB4NmEsIDB4NzAsIDB4NzEsIDB4NTAsIDB4
NjIsCisgICAgMHgyZSwgMHg3MCwgMHg2ZSwgMHg2NywKKyAgICAvLyB0ZXh0KDQpCisgICAgMHg2
NCwKKyAgICAvLyAibmFtZSIKKyAgICAweDZlLCAweDYxLCAweDZkLCAweDY1LAorICAgIC8vIHRl
eHQoMjIpCisgICAgMHg3NiwKKyAgICAvLyAiam9obnBzbWl0aEBleGFtcGxlLmNvbSIKKyAgICAw
eDZhLCAweDZmLCAweDY4LCAweDZlLCAweDcwLCAweDczLCAweDZkLCAweDY5LCAweDc0LCAweDY4
LCAweDQwLCAweDY1LAorICAgIDB4NzgsIDB4NjEsIDB4NmQsIDB4NzAsIDB4NmMsIDB4NjUsIDB4
MmUsIDB4NjMsIDB4NmYsIDB4NmQsCisgICAgLy8gdGV4dCgxMSkKKyAgICAweDZiLAorICAgIC8v
ICJkaXNwbGF5TmFtZSIKKyAgICAweDY0LCAweDY5LCAweDczLCAweDcwLCAweDZjLCAweDYxLCAw
eDc5LCAweDRlLCAweDYxLCAweDZkLCAweDY1LAorICAgIC8vIHRleHQoMTMpCisgICAgMHg2ZCwK
KyAgICAvLyAiSm9obiBQLiBTbWl0aCIKKyAgICAweDRhLCAweDZmLCAweDY4LCAweDZlLCAweDIw
LCAweDUwLCAweDJlLCAweDIwLCAweDUzLCAweDZkLCAweDY5LCAweDc0LAorICAgIDB4NjgsCisg
ICAgLy8gdW5zaWduZWQoNSkgLSBudW1iZXIgb2YgY3JlZGVudGlhbHMKKyAgICAweDA1LAorICAg
IC8vIDEKKyAgICAweDAxLAorfTsKKworfSAvLyBuYW1lc3BhY2UgVGVzdERhdGEKKworfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352940</attachid>
            <date>2018-10-22 18:33:33 -0700</date>
            <delta_ts>2018-10-22 18:37:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190784-20181022183332.patch</filename>
            <type>text/plain</type>
            <size>148116</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjgwNzdjYTZlYTA2ZDky
MzU0OTI4MDU1NTQzNGZiMzEwMTVlMDI0Ni4uNjE5ZGI0YjI5NjNkN2Y1MWFjNzM0ZDYwYTEyMjJm
MTMxYzc4ZGJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDE4LTEwLTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBv
cnQgQ1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzIGZyb20gQ2hyb21pdW0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDc4NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU0NjAzMzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBvcnRzIENocm9taXVtJ3Mg
Q1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzOgorICAgICAgICBodHRwczov
L2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50
LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sI21lc3NhZ2Ut
ZW5jb2RpbmcKKyAgICAgICAgMS4gSXQgZGlyZWN0bHkgaW1wb3J0cyB0aGUgZm9sbG93aW5nIGZp
bGVzIGFuZCBzdWl0IHRoZW0gdG8gV2ViS2l0J3MgY29kaW5nIHN0eWxlOgorICAgICAgICBodHRw
czovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vZGV2aWNlX3Jlc3Bv
bnNlX2NvbnZlcnRlci5jYz9sPTIwJnJjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQy
ZDk5YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9k
ZXZpY2UvZmlkby9kZXZpY2VfcmVzcG9uc2VfY29udmVydGVyLmg/cmNsPTA5OGRmZDkwODUwZmZh
ODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5v
cmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhlbnRpY2F0b3JfZ2V0X2luZm9fcmVzcG9u
c2UuY2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAg
ICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhl
bnRpY2F0b3JfZ2V0X2luZm9fcmVzcG9uc2UuaD9yY2w9MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRh
Yjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1
bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9zdXBwb3J0ZWRfb3B0aW9ucy5jYz9yY2w9
MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczov
L2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9z
dXBwb3J0ZWRfb3B0aW9ucy5oP3JjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5
YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9kZXZp
Y2UvZmlkby9jdGFwX3JlcXVlc3RfdW5pdHRlc3QuY2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdh
ODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hy
b21pdW0vc3JjL2RldmljZS9maWRvL2N0YXBfcmVzcG9uc2VfdW5pdHRlc3QuY2M/cmNsPTA5OGRm
ZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5j
aHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2ZpZG9fdGVzdF9kYXRhLmg/bD0x
JnJjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5YzRlYzQ1CisgICAgICAgIDIu
IEl0IGdhdGhlcnMgdGhlIGZvbGxvd2luZyBtZXRob2RzIGludG8gRGV2aWNlUmVxdWVzdENvbnZl
cnRlcjoKKyAgICAgICAgQ3RhcEdldEFzc2VydGlvblJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisg
ICAgICAgIEN0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisgICAgICAg
IFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yOjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAg
UHVibGljS2V5Q3JlZGVudGlhbFBhcmFtczo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1Ymxp
Y0tleUNyZWRlbnRpYWxScEVudGl0eTo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1YmxpY0tl
eUNyZWRlbnRpYWxVc2VyRW50aXR5OjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAgMy4gSXQgYWxz
byBhcHBseSBhIHBhdGNoIGZyb20gQ2hyb21pdW0gdG8gQ0JPUlZhbHVlOgorICAgICAgICBodHRw
czovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjLysvN2I2ZmJmZjM1Y2Q4
ZTRkNTA4ZjA4ZTFjZDkzYjRhYTBhMGRjNDAyYyU1RSUyMS8KKworICAgICAgICBCZXNpZGVzIGlt
cG9ydGluZyB0aGluZ3MgZnJvbSBDaHJvbWl1bSwgaXQgYWxzbyBpbXBsZW1lbnRzIFVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudCBmb3IgYm90aAorICAgICAgICBQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zIGFuZCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgc3Vj
aCB0aGF0IGJvdGggb3B0aW9ucworICAgICAgICBjYW4gc3BlY2lmeSBtb3JlIGRpbWVuc2lvbnMg
b2YgYSBkZXNpcmVkIGF1dGhlbnRpY2F0b3IuCisKKyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVz
dHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
czo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjpkZWNvZGUpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9uczo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMu
aWRsLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpDQk9S
VmFsdWUpOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpnZXRCb29sIGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmg6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKGZpZG86OnRvQXJyYXlWYWx1ZSk6CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlOjpBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKToKKyAgICAg
ICAgKGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldE1heE1zZ1NpemUpOgor
ICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0UGluUHJvdG9j
b2xzKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldEV4
dGVuc2lvbnMpOgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6
c2V0T3B0aW9ucyk6CisgICAgICAgIChmaWRvOjplbmNvZGVBc0NCT1IpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnM6OnNldFN1cHBvcnRzUmVzaWRlbnRLZXkpOgorICAgICAgICAoZmlkbzo6QXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkp
OgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJQ
cmVzZW5jZVJlcXVpcmVkKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zOjpzZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkpOgorICAgICAgICAoZmlkbzo6QXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldElzUGxhdGZvcm1EZXZpY2UpOgorICAgICAgICAo
Zmlkbzo6Y29udmVydFRvQ0JPUik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChmaWRvOjpjb252ZXJ0UnBFbnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFVz
ZXJFbnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFBhcmFtZXRlcnNUb0NCT1Ip
OgorICAgICAgICAoZmlkbzo6Y29udmVydERlc2NyaXB0b3JUb0NCT1IpOgorICAgICAgICAoZmlk
bzo6ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKToKKyAgICAgICAgKGZpZG86OmVu
Y29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IpOgorICAgICAgICAoZmlkbzo6ZW5jb2RlRW1w
dHlBdXRoZW50aWNhdG9yUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRv
L0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KGZpZG86OmNvbnZlcnRTdHJpbmdUb1Byb3RvY29sVmVyc2lvbik6CisgICAgICAgIChmaWRvOjpn
ZXRSZXNwb25zZUNvZGUpOgorICAgICAgICAoZmlkbzo6Z2V0Q3JlZGVudGlhbElkKToKKyAgICAg
ICAgKGZpZG86OnJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZSk6CisgICAgICAgIChmaWRv
OjpyZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKToKKyAgICAgICAgKGZpZG86OnJlYWRDVEFQ
R2V0SW5mb1Jlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNl
UmVzcG9uc2VDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0
aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcDoKKyAgICAgICAgKGZpZG86OmlzQ3RhcERldmljZVJl
c3BvbnNlQ29kZSk6CisgICAgICAgIChmaWRvOjpwdWJsaWNLZXlDcmVkZW50aWFsVHlwZVRvU3Ry
aW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxOC0xMC0yMiAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgVXNlIExvY2F0aW9uID0gIlJlbGF0aXZlIHRvIEJ1aWxkIFByb2R1Y3Rz
IiByYXRoZXIgdGhhbiAiUmVsYXRpdmUgdG8gR3JvdXAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDYxMDY4NDhlY2JkYzc4MzYxZmZlY2YzOWRlMjgzNmY5ODBlNDE2MTcuLmYwNjg5YzNjNTkxODgz
M2ZhMzdkOTNmZGVkNGMwNWUyOTMzYWVlYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MzEs
NiArNDMxLDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dl
YmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkbAogICAgIE1vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbAogICAgIE1vZHVsZXMv
d2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaWRsCisgICAgTW9kdWxlcy93ZWJhdXRo
bi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsCiAKICAgICBNb2R1bGVzL3dlYmRhdGFi
YXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmlkbAogICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBmOGIwZDc5Y2U2YTBm
NDE5M2NlYzUzYjZkZTdkMTBkYzQ3MGQxZDMxLi4zYjIxZWY1ZjIzYzBhNzFmNzE4NjBlMzIzY2U5
NzBjYTQ3M2JlMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM1NSw2ICsz
NTUsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1
dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5p
ZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2lu
ZG93V2ViRGF0YWJhc2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VDYWxsYmFjay5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaApp
bmRleCA4YWZiNGRkNGQ0NjFlODZlNjk0ODMzOWUyMTFiMTk5ZTcxYTk4NzMzLi5iYTY4ZGY5MmIx
ODJjN2E5YjEzYTM2NmZhOTExNjA4MmViNDY1ZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkJ1ZmZlclNvdXJj
ZS5oIgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmgiCiAjaW5jbHVk
ZSAiUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCIKKyNpbmNsdWRlICJVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC02NSw3ICs2Niw5IEBAIHN0cnVjdCBQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIHsKICAgICB9OwogCiAgICAgc3RydWN0IEF1dGhlbnRp
Y2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSB7Ci0gICAgICAgIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50
IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OworICAgICAgICBzdGQ6Om9wdGlvbmFsPEF1dGhlbnRp
Y2F0b3JBdHRhY2htZW50PiBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAgICAgICAgYm9vbCBy
ZXF1aXJlUmVzaWRlbnRLZXkgeyBmYWxzZSB9OworICAgICAgICBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQgdXNlclZlcmlmaWNhdGlvbiB7IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6
UHJlZmVycmVkIH07CiAKICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OwogICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE+IGRlY29kZShE
ZWNvZGVyJik7CkBAIC0xMDUsMTQgKzEwOCwyNyBAQCBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IFB1YmxpY0tleUNyZWRlbnRpYQog
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50
OworICAgIGVuY29kZXIgPDwgYXV0aGVudGljYXRvckF0dGFjaG1lbnQgPDwgcmVxdWlyZVJlc2lk
ZW50S2V5IDw8IHVzZXJWZXJpZmljYXRpb247CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
CiBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhl
bnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYT4gUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKIHsKICAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50
aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgcmVzdWx0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVF
bnVtKHJlc3VsdC5hdXRoZW50aWNhdG9yQXR0YWNobWVudCkpCisKKyAgICBzdGQ6Om9wdGlvbmFs
PHN0ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRvckF0dGFjaG1lbnQ+PiBhdXRoZW50aWNhdG9yQXR0
YWNobWVudDsKKyAgICBkZWNvZGVyID4+IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OworICAgIGlm
ICghYXV0aGVudGljYXRvckF0dGFjaG1lbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgcmVzdWx0LmF1dGhlbnRpY2F0b3JBdHRhY2htZW50ID0gV1RGTW92ZSgqYXV0aGVudGlj
YXRvckF0dGFjaG1lbnQpOworCisgICAgc3RkOjpvcHRpb25hbDxib29sPiByZXF1aXJlUmVzaWRl
bnRLZXk7CisgICAgZGVjb2RlciA+PiByZXF1aXJlUmVzaWRlbnRLZXk7CisgICAgaWYgKCFyZXF1
aXJlUmVzaWRlbnRLZXkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmVzdWx0
LnJlcXVpcmVSZXNpZGVudEtleSA9ICpyZXF1aXJlUmVzaWRlbnRLZXk7CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlRW51bShyZXN1bHQudXNlclZlcmlmaWNhdGlvbikpCiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsCmluZGV4IGEzMTUyNWYzMjU0OGRiNjU4MzkzNmViYjAz
MjdiOTU0YTFjNzEwNjEuLjM2ZTE4MGJlZGZjODIwMWYzYmM0YjUzNWNhYzBmNzQzYzhlN2M1ZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbApAQCAtNzQsMTAg
Kzc0LDggQEAgdHlwZWRlZiBsb25nIENPU0VBbGdvcml0aG1JZGVudGlmaWVyOwogICAgIENvbmRp
dGlvbmFsPVdFQl9BVVRITiwKIF0gZGljdGlvbmFyeSBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3Jp
dGVyaWEgewogICAgIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50ICAgICAgYXV0aGVudGljYXRvckF0
dGFjaG1lbnQ7Ci0gICAgLy8gV2UgZG9uJ3QgYWxsb3cgUlBzIHRvIHNldCB0aGUgZm9sbG93aW5n
IHZhbHVlcyBhdCB0aGlzIHN0YWdlLgotICAgIC8vIEhlbmNlLCB0aG9zZSBvcHRpb25zIGFyZSBh
bHdheXMgeyB0cnVlLCAicmVxdWlyZWQiIH0uCi0gICAgLy8gYm9vbGVhbiAgICAgICAgICAgICAg
ICAgICAgICByZXF1aXJlUmVzaWRlbnRLZXkgPSBmYWxzZTsKLSAgICAvLyBVc2VyVmVyaWZpY2F0
aW9uUmVxdWlyZW1lbnQgIHVzZXJWZXJpZmljYXRpb24gPSAicHJlZmVycmVkIjsKKyAgICBib29s
ZWFuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVSZXNpZGVudEtleSA9IGZhbHNlOworICAg
IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCAgdXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJy
ZWQiOwogfTsKIAogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgKaW5kZXgg
Mjc0NDc2ZWY3MjdiODVkNzVkZDFhOWUyMGM1ODdhZDFiOTJmMGYwMS4uYmI0ZmY5MmMyYzUxY2Jk
ODI5MzVkMDhmZDBhNTYxMjIyNzFlZTg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIK
ICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIlVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4LDYgKzM5LDcgQEAgc3RydWN0IFB1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyB7CiAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gdGlt
ZW91dDsKICAgICBtdXRhYmxlIFN0cmluZyBycElkOwogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVk
ZW50aWFsRGVzY3JpcHRvcj4gYWxsb3dDcmVkZW50aWFsczsKKyAgICBzdGQ6Om9wdGlvbmFsPFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudD4gdXNlclZlcmlmaWNhdGlvbiB7IFVzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkIH07CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zPiBkZWNvZGUoRGVjb2RlciYpOwpAQCAtNDcsNyArNDksNyBAQCBzdHJ1Y3QgUHVibGljS2V5
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIHsKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lk
IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCB0aW1lb3V0IDw8IHJwSWQgPDwgYWxsb3dDcmVk
ZW50aWFsczsKKyAgICBlbmNvZGVyIDw8IHRpbWVvdXQgPDwgcnBJZCA8PCBhbGxvd0NyZWRlbnRp
YWxzIDw8IHVzZXJWZXJpZmljYXRpb247CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBA
IC02NSw2ICs2NywxMyBAQCBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucz4gUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpbwogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFsbG93Q3JlZGVu
dGlhbHMpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25h
bDxzdGQ6Om9wdGlvbmFsPFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudD4+IHVzZXJWZXJpZmlj
YXRpb247CisgICAgZGVjb2RlciA+PiB1c2VyVmVyaWZpY2F0aW9uOworICAgIGlmICghdXNlclZl
cmlmaWNhdGlvbikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXN1bHQudXNl
clZlcmlmaWNhdGlvbiA9IFdURk1vdmUoKnVzZXJWZXJpZmljYXRpb24pOworCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsCmlu
ZGV4IDg5YTIwNmRjOWM5ZmQyMTc4YjkxNjE2ZWQxMTY1ZmI0N2U4ZTRkZTAuLmQ2NTFkYjI4YWU2
NmQwZmM2OTgyMTBkNjg3MTZkNmUxMTE0MGM4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucy5pZGwKQEAgLTMwLDggKzMwLDcgQEAKICAgICB1bnNpZ25lZCBsb25nIHRp
bWVvdXQ7CiAgICAgVVNWU3RyaW5nIHJwSWQ7CiAgICAgc2VxdWVuY2U8UHVibGljS2V5Q3JlZGVu
dGlhbERlc2NyaXB0b3I+IGFsbG93Q3JlZGVudGlhbHMgPSBbXTsKLSAgICAvLyBBbHdheXMgInJl
cXVpcmVkIiBhdCB0aGlzIHN0YWdlCi0gICAgLy8gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
IHVzZXJWZXJpZmljYXRpb24gPSAicHJlZmVycmVkIjsKKyAgICBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQgdXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJyZWQiOwogICAgIC8vIE5vdCBzdXBw
b3J0IHlldC4KICAgICAvLyBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnMgZXh0ZW5zaW9uczsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9Vc2Vy
VmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzE0ZDAyYzUyZDlhYWMyMTU3
NWZlYjZmZWE4ZjQxNDhmYzU3NDk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaApAQCAtMCwwICsx
LDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhO
KQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitlbnVtIGNsYXNzIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB7CisgICAgUmVxdWlyZWQs
CisgICAgUHJlZmVycmVkLAorICAgIERpc2NvdXJhZ2VkCit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OlVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudD4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJpZmljYXRpb25SZXF1aXJl
bWVudCwKKyAgICAgICAgV2ViQ29yZTo6VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1
aXJlZCwKKyAgICAgICAgV2ViQ29yZTo6VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVm
ZXJyZWQsCisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlz
Y291cmFnZWQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjliZjRmYjk1ZWEwMDJlNWJhOTY1Y2Q1N2IxNTIxYzU4MGU2NDk5Y2MKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1
aXJlbWVudC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRp
b25hbD1XRUJfQVVUSE4sCisgICAgSW1wbGVtZW50ZWRBcz1Vc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQKK10gZW51bSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgeworICAgICJyZXF1aXJl
ZCIsCisgICAgInByZWZlcnJlZCIsCisgICAgImRpc2NvdXJhZ2VkIgorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5jcHAKaW5kZXggMjVl
ZDk4YjkxZjgzYTRiNDY4MzBkZjQ4ZmEwNWJhODY4YzgxMjJiMy4uNGM4ZmZhZDFhOGNmMGY1MTQ3
Y2M3Njc0NGJiYTg2ZGU1MWM5ZGNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5jcHAKQEAgLTE1Myw2ICsxNTMsMTIgQEAgQ0JPUlZh
bHVlOjpDQk9SVmFsdWUoU2ltcGxlVmFsdWUgaW5TaW1wbGUpCiAgICAgQVNTRVJUKHN0YXRpY19j
YXN0PGludD4oaW5TaW1wbGUpID49IDIwICYmIHN0YXRpY19jYXN0PGludD4oaW5TaW1wbGUpIDw9
IDIzKTsKIH0KIAorQ0JPUlZhbHVlOjpDQk9SVmFsdWUoYm9vbCBpbkJvb2wpCisgICAgOiBtX3R5
cGUoVHlwZTo6U2ltcGxlVmFsdWUpCit7CisgICAgbV9zaW1wbGVWYWx1ZSA9IGluQm9vbCA/IENC
T1JWYWx1ZTo6U2ltcGxlVmFsdWU6OlRydWVWYWx1ZSA6IENCT1JWYWx1ZTo6U2ltcGxlVmFsdWU6
OkZhbHNlVmFsdWU7Cit9CisKIENCT1JWYWx1ZSYgQ0JPUlZhbHVlOjpvcGVyYXRvcj0oQ0JPUlZh
bHVlJiYgdGhhdCkKIHsKICAgICBpbnRlcm5hbENsZWFudXAoKTsKQEAgLTI0MCw2ICsyNDYsMTIg
QEAgQ0JPUlZhbHVlOjpTaW1wbGVWYWx1ZSBDQk9SVmFsdWU6OmdldFNpbXBsZVZhbHVlKCkgY29u
c3QKICAgICByZXR1cm4gbV9zaW1wbGVWYWx1ZTsKIH0KIAorYm9vbCBDQk9SVmFsdWU6OmdldEJv
b2woKSBjb25zdAoreworICAgIEFTU0VSVChpc0Jvb2woKSk7CisgICAgcmV0dXJuIG1fc2ltcGxl
VmFsdWUgPT0gU2ltcGxlVmFsdWU6OlRydWVWYWx1ZTsKK30KKwogdm9pZCBDQk9SVmFsdWU6Omlu
dGVybmFsTW92ZUNvbnN0cnVjdEZyb20oQ0JPUlZhbHVlJiYgdGhhdCkKIHsKICAgICBtX3R5cGUg
PSB0aGF0Lm1fdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vY2Jvci9DQk9SVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jv
ci9DQk9SVmFsdWUuaAppbmRleCBlMmRiMGUxMjczOGE5OWE3NDdjODJmNDA5MTMwMDRjNjYwYjdl
OGQ0Li42YTRjODNhYmEwMzFjMzhkMzc5ZTY2YmM5M2VjNDdlNWYxOTMxNzYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5oCkBAIC0xMzgs
NiArMTM4LDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IENCT1JWYWx1ZShNYXBWYWx1ZSYmKTsK
IAogICAgIGV4cGxpY2l0IENCT1JWYWx1ZShTaW1wbGVWYWx1ZSk7CisgICAgZXhwbGljaXQgQ0JP
UlZhbHVlKGJvb2wpOwogCiAgICAgQ0JPUlZhbHVlJiBvcGVyYXRvcj0oQ0JPUlZhbHVlJiYpOwog
CkBAIC0xNjEsOSArMTYyLDExIEBAIHB1YmxpYzoKICAgICBib29sIGlzQXJyYXkoKSBjb25zdCB7
IHJldHVybiB0eXBlKCkgPT0gVHlwZTo6QXJyYXk7IH0KICAgICBib29sIGlzTWFwKCkgY29uc3Qg
eyByZXR1cm4gdHlwZSgpID09IFR5cGU6Ok1hcDsgfQogICAgIGJvb2wgaXNTaW1wbGUoKSBjb25z
dCB7IHJldHVybiB0eXBlKCkgPT0gVHlwZTo6U2ltcGxlVmFsdWU7IH0KKyAgICBib29sIGlzQm9v
bCgpIGNvbnN0IHsgcmV0dXJuIGlzU2ltcGxlKCkgJiYgKG1fc2ltcGxlVmFsdWUgPT0gU2ltcGxl
VmFsdWU6OlRydWVWYWx1ZSB8fCBtX3NpbXBsZVZhbHVlID09IFNpbXBsZVZhbHVlOjpGYWxzZVZh
bHVlKTsgfQogCiAgICAgLy8gVGhlc2Ugd2lsbCBhbGwgZmF0YWxseSBhc3NlcnQgaWYgdGhlIHR5
cGUgZG9lc24ndCBtYXRjaC4KICAgICBTaW1wbGVWYWx1ZSBnZXRTaW1wbGVWYWx1ZSgpIGNvbnN0
OworICAgIGJvb2wgZ2V0Qm9vbCgpIGNvbnN0OwogICAgIGNvbnN0IGludDY0X3QmIGdldEludGVn
ZXIoKSBjb25zdDsKICAgICBjb25zdCBpbnQ2NF90JiBnZXRVbnNpZ25lZCgpIGNvbnN0OwogICAg
IGNvbnN0IGludDY0X3QmIGdldE5lZ2F0aXZlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdldEluZm9SZXNwb25z
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRv
ckdldEluZm9SZXNwb25zZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UwNGUyNTIzMTc3NDQ4ODVmN2Y2MjQ3
ZWZhNjUwMmFmNGVhNDE2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmNwcApAQCAtMCww
ICsxLDEwOCBAQAorLy8gQ29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0
OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
Ly8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisv
LyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZS5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkNCT1JWYWx1ZS5o
IgorI2luY2x1ZGUgIkNCT1JXcml0ZXIuaCIKKworbmFtZXNwYWNlIGZpZG8geworCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgQ29udGFpbmVyPgorY2Jvcjo6Q0JPUlZhbHVlOjpBcnJheVZhbHVlIHRvQXJy
YXlWYWx1ZShjb25zdCBDb250YWluZXImIGNvbnRhaW5lcikKK3sKKyAgICBjYm9yOjpDQk9SVmFs
dWU6OkFycmF5VmFsdWUgdmFsdWU7CisgICAgdmFsdWUucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShj
b250YWluZXIuc2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW0gOiBjb250YWluZXIp
CisgICAgICAgIHZhbHVlLmFwcGVuZChjYm9yOjpDQk9SVmFsdWUoaXRlbSkpOworICAgIHJldHVy
biB2YWx1ZTsKK30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6QXV0aGVudGljYXRv
ckdldEluZm9SZXNwb25zZShzdGQ6OnNldDxQcm90b2NvbFZlcnNpb24+JiYgdmVyc2lvbnMsIFZl
Y3Rvcjx1aW50OF90PiYmIGFhZ3VpZCkKKyAgICA6IG1fdmVyc2lvbnMoV1RGTW92ZSh2ZXJzaW9u
cykpCisgICAgLCBtX2FhZ3VpZChXVEZNb3ZlKGFhZ3VpZCkpCit7Cit9CisKK0F1dGhlbnRpY2F0
b3JHZXRJbmZvUmVzcG9uc2UmIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldE1heE1z
Z1NpemUodWludDMyX3QgbWF4TXNnU2l6ZSkKK3sKKyAgICBtX21heE1zZ1NpemUgPSBtYXhNc2dT
aXplOworICAgIHJldHVybiAqdGhpczsKK30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25z
ZSYgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0UGluUHJvdG9jb2xzKFZlY3Rvcjx1
aW50OF90PiYmIHBpblByb3RvY29scykKK3sKKyAgICBtX3BpblByb3RvY29scyA9IFdURk1vdmUo
cGluUHJvdG9jb2xzKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0F1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2UmIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldEV4dGVuc2lvbnMo
VmVjdG9yPFN0cmluZz4mJiBleHRlbnNpb25zKQoreworICAgIG1fZXh0ZW5zaW9ucyA9IFdURk1v
dmUoZXh0ZW5zaW9ucyk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitBdXRoZW50aWNhdG9yR2V0
SW5mb1Jlc3BvbnNlJiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlOjpzZXRPcHRpb25zKEF1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiYgb3B0aW9ucykKK3sKKyAgICBtX29wdGlvbnMg
PSBXVEZNb3ZlKG9wdGlvbnMpOworICAgIHJldHVybiAqdGhpczsKK30KKworVmVjdG9yPHVpbnQ4
X3Q+IGVuY29kZUFzQ0JPUihjb25zdCBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiByZXNw
b25zZSkKK3sKKyAgICBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGRldmljZUluZm9NYXA7CisK
KyAgICBjYm9yOjpDQk9SVmFsdWU6OkFycmF5VmFsdWUgdmVyc2lvbkFycmF5OworICAgIGZvciAo
Y29uc3QgYXV0byYgdmVyc2lvbiA6IHJlc3BvbnNlLnZlcnNpb25zKCkpCisgICAgICAgIHZlcnNp
b25BcnJheS5hcHBlbmQodmVyc2lvbiA9PSBQcm90b2NvbFZlcnNpb246OmtDdGFwID8ga0N0YXAy
VmVyc2lvbiA6IGtVMmZWZXJzaW9uKTsKKyAgICBkZXZpY2VJbmZvTWFwLmVtcGxhY2UoMSwgV1RG
TW92ZSh2ZXJzaW9uQXJyYXkpKTsKKworICAgIGlmIChyZXNwb25zZS5leHRlbnNpb25zKCkpCisg
ICAgICAgIGRldmljZUluZm9NYXAuZW1wbGFjZSgyLCB0b0FycmF5VmFsdWUoKnJlc3BvbnNlLmV4
dGVuc2lvbnMoKSkpOworCisgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKDMsIHJlc3BvbnNlLmFh
Z3VpZCgpKTsKKyAgICBkZXZpY2VJbmZvTWFwLmVtcGxhY2UoNCwgY29udmVydFRvQ0JPUihyZXNw
b25zZS5vcHRpb25zKCkpKTsKKworICAgIGlmIChyZXNwb25zZS5tYXhNc2dTaXplKCkpCisgICAg
ICAgIGRldmljZUluZm9NYXAuZW1wbGFjZSg1LCBzdGF0aWNfY2FzdDxpbnQ2NF90PigqcmVzcG9u
c2UubWF4TXNnU2l6ZSgpKSk7CisKKyAgICBpZiAocmVzcG9uc2UucGluUHJvdG9jb2woKSkKKyAg
ICAgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKDYsIHRvQXJyYXlWYWx1ZSgqcmVzcG9uc2UucGlu
UHJvdG9jb2woKSkpOworCisgICAgYXV0byBlbmNvZGVkQnl0ZXMgPSBjYm9yOjpDQk9SV3JpdGVy
Ojp3cml0ZShjYm9yOjpDQk9SVmFsdWUoV1RGTW92ZShkZXZpY2VJbmZvTWFwKSkpOworICAgIEFT
U0VSVChlbmNvZGVkQnl0ZXMpOworICAgIHJldHVybiAqZW5jb2RlZEJ5dGVzOworfQorCit9IC8v
IG5hbWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRlNjBhMmY5M2RiMGY0NDU1
MTg1ZDA2NTAxZGQwMWMxNWU5ZjExYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmgKQEAg
LTAsMCArMSw3NiBAQAorLy8gQ29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8g
bWV0OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8v
CisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oIgorI2luY2x1ZGUgIkZpZG9Db25zdGFudHMu
aCIKKyNpbmNsdWRlIDxzZXQ+CisKK25hbWVzcGFjZSBmaWRvIHsKKworLy8gQXV0aGVudGljYXRv
ciByZXNwb25zZSBmb3IgQXV0aGVudGljYXRvckdldEluZm8gcmVxdWVzdCB0aGF0IGVuY2Fwc3Vs
YXRlcworLy8gdmVyc2lvbnMsIG9wdGlvbnMsIEFBR1VJRChBdXRoZW50aWNhdG9yIEF0dGVzdGF0
aW9uIEdVSUQpLCBvdGhlcgorLy8gYXV0aGVudGljYXRvciBkZXZpY2UgaW5mb3JtYXRpb24uCisv
LyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2Zp
ZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1s
I2F1dGhlbnRpY2F0b3JnZXRpbmZvLTB4MDQKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEF1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UpOworcHVibGljOgorICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2Uoc3RkOjpzZXQ8UHJvdG9jb2xWZXJzaW9uPiYmIHZlcnNpb25zLCBWZWN0b3I8dWlu
dDhfdD4mJiBhYWd1aWQpOworICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UoQXV0aGVu
dGljYXRvckdldEluZm9SZXNwb25zZSYmIHRoYXQpID0gZGVmYXVsdDsKKyAgICBBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlJiBvcGVyYXRvcj0oQXV0aGVudGljYXRvckdldEluZm9SZXNwb25z
ZSYmIG90aGVyKSA9IGRlZmF1bHQ7CisKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNl
JiBzZXRNYXhNc2dTaXplKHVpbnQzMl90KTsKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3Bv
bnNlJiBzZXRQaW5Qcm90b2NvbHMoVmVjdG9yPHVpbnQ4X3Q+JiYpOworICAgIEF1dGhlbnRpY2F0
b3JHZXRJbmZvUmVzcG9uc2UmIHNldEV4dGVuc2lvbnMoVmVjdG9yPFN0cmluZz4mJik7CisgICAg
QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgc2V0T3B0aW9ucyhBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9ucyYmKTsKKworICAgIGNvbnN0IHN0ZDo6c2V0PFByb3RvY29sVmVyc2lvbj4m
IHZlcnNpb25zKCkgY29uc3QgeyByZXR1cm4gbV92ZXJzaW9uczsgfQorICAgIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgYWFndWlkKCkgY29uc3QgeyByZXR1cm4gbV9hYWd1aWQ7IH0KKyAgICBjb25z
dCBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiYgbWF4TXNnU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWF4TXNnU2l6ZTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiYg
cGluUHJvdG9jb2woKSBjb25zdCB7IHJldHVybiBtX3BpblByb3RvY29sczsgfQorICAgIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBleHRlbnNpb25zKCkgY29uc3QgeyByZXR1
cm4gbV9leHRlbnNpb25zOyB9CisgICAgY29uc3QgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlv
bnMmIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7IH0KKworcHJpdmF0ZToKKyAg
ICBzdGQ6OnNldDxQcm90b2NvbFZlcnNpb24+IG1fdmVyc2lvbnM7CisgICAgVmVjdG9yPHVpbnQ4
X3Q+IG1fYWFndWlkOworICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1fbWF4TXNnU2l6ZTsK
KyAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gbV9waW5Qcm90b2NvbHM7CisgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gbV9leHRlbnNpb25zOworICAgIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zIG1fb3B0aW9uczsKK307CisKK1dFQkNPUkVfRVhQT1JUIFZl
Y3Rvcjx1aW50OF90PiBlbmNvZGVBc0NCT1IoY29uc3QgQXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZSYpOworCit9IC8vIG5hbWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTBlMWJhNTJmYmI0MTdjOTQxODk1ZWM2ODM0MGMwNjc2ODhmMGNkYwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9ucy5jcHAKQEAgLTAsMCArMSwxMDcgQEAKKy8vIENvcHlyaWdodCAyMDE4
IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8v
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8v
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FV
VEhOKQorCisjaW5jbHVkZSAiRmlkb0NvbnN0YW50cy5oIgorCituYW1lc3BhY2UgZmlkbyB7CisK
K0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9uczo6c2V0U3VwcG9ydHNSZXNpZGVudEtleShib29sIHN1cHBvcnRzUmVzaWRlbnRLZXkpCit7
CisgICAgbV9zdXBwb3J0c1Jlc2lkZW50S2V5ID0gc3VwcG9ydHNSZXNpZGVudEtleTsKKyAgICBy
ZXR1cm4gKnRoaXM7Cit9CisKK0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eShV
c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5IHVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkp
Cit7CisgICAgbV91c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5ID0gdXNlclZlcmlmaWNhdGlv
bkF2YWlsYWJpbGl0eTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0F1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zJiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0VXNlclByZXNl
bmNlUmVxdWlyZWQoYm9vbCB1c2VyUHJlc2VuY2VSZXF1aXJlZCkKK3sKKyAgICBtX3VzZXJQcmVz
ZW5jZVJlcXVpcmVkID0gdXNlclByZXNlbmNlUmVxdWlyZWQ7CisgICAgcmV0dXJuICp0aGlzOwor
fQorCitBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgQXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnM6OnNldENsaWVudFBpbkF2YWlsYWJpbGl0eShDbGllbnRQaW5BdmFpbGFiaWxpdHkg
Y2xpZW50UGluQXZhaWxhYmlsaXR5KQoreworICAgIG1fY2xpZW50UGluQXZhaWxhYmlsaXR5ID0g
Y2xpZW50UGluQXZhaWxhYmlsaXR5OworICAgIHJldHVybiAqdGhpczsKK30KKworQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnMmIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpzZXRJ
c1BsYXRmb3JtRGV2aWNlKGJvb2wgaXNQbGF0Zm9ybURldmljZSkKK3sKKyAgICBtX2lzUGxhdGZv
cm1EZXZpY2UgPSBpc1BsYXRmb3JtRGV2aWNlOworICAgIHJldHVybiAqdGhpczsKK30KKworY2Jv
cjo6Q0JPUlZhbHVlIGNvbnZlcnRUb0NCT1IoY29uc3QgQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnMmIG9wdGlvbnMpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25N
YXA7CisgICAgb3B0aW9uTWFwLmVtcGxhY2Uoa1Jlc2lkZW50S2V5TWFwS2V5LCBvcHRpb25zLnN1
cHBvcnRzUmVzaWRlbnRLZXkoKSk7CisgICAgb3B0aW9uTWFwLmVtcGxhY2Uoa1VzZXJQcmVzZW5j
ZU1hcEtleSwgb3B0aW9ucy51c2VyUHJlc2VuY2VSZXF1aXJlZCgpKTsKKyAgICBvcHRpb25NYXAu
ZW1wbGFjZShrUGxhdGZvcm1EZXZpY2VNYXBLZXksIG9wdGlvbnMuaXNQbGF0Zm9ybURldmljZSgp
KTsKKworICAgIHVzaW5nIFV2QXZhaWxhYmlsaXR5ID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk7CisKKyAgICBzd2l0Y2ggKG9wdGlv
bnMudXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSgpKSB7CisgICAgY2FzZSBVdkF2YWlsYWJp
bGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQ6CisgICAgICAgIG9wdGlvbk1hcC5lbXBsYWNl
KGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5LCB0cnVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBVdkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dE5vdENvbmZpZ3VyZWQ6CisgICAgICAgIG9w
dGlvbk1hcC5lbXBsYWNlKGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5LCBmYWxzZSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVXZBdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQ6CisgICAgICAg
IGJyZWFrOworICAgIH0KKworICAgIHVzaW5nIENsaWVudFBpbkF2YWlsYWJpbGl0eSA9IEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk7CisKKyAgICBz
d2l0Y2ggKG9wdGlvbnMuY2xpZW50UGluQXZhaWxhYmlsaXR5KCkpIHsKKyAgICBjYXNlIENsaWVu
dFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNldDoKKyAgICAgICAgb3B0aW9uTWFw
LmVtcGxhY2Uoa0NsaWVudFBpbk1hcEtleSwgdHJ1ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0UGluTm90U2V0OgorICAgICAg
ICBvcHRpb25NYXAuZW1wbGFjZShrQ2xpZW50UGluTWFwS2V5LCBmYWxzZSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ2xpZW50UGluQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkOgorICAg
ICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gY2Jvcjo6Q0JPUlZhbHVlKFdURk1vdmUo
b3B0aW9uTWFwKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVjNDBhZTRiZTQyNjE0YzcxNGU1N2ZhZjZhNDQ2NWM3ZjJmZjk5MTYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnMuaApAQCAtMCwwICsxLDk2IEBACisvLyBDb3B5cmlnaHQgMjAx
OCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisv
LyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisv
LyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFdFQl9BVVRITikKKworI2luY2x1ZGUgIkNCT1JWYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisKK25hbWVzcGFjZSBmaWRvIHsKKworLy8gUmVwcmVzZW50cyBDVEFQIGRldmljZSBw
cm9wZXJ0aWVzIGFuZCBjYXBhYmlsaXRpZXMgcmVjZWl2ZWQgYXMgYSByZXNwb25zZSB0bworLy8g
QXV0aGVudGljYXRvckdldEluZm8gY29tbWFuZC4KK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyk7CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBVc2Vy
VmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5IHsKKyAgICAgICAgLy8gZS5nLiBBdXRoZW50aWNhdG9y
IHdpdGggZmluZ2VyIHByaW50IHNlbnNvciBhbmQgdXNlcidzIGZpbmdlcnByaW50IGlzCisgICAg
ICAgIC8vIHJlZ2lzdGVyZWQgdG8gdGhlIGRldmljZS4KKyAgICAgICAga1N1cHBvcnRlZEFuZENv
bmZpZ3VyZWQsCisgICAgICAgIC8vIGUuZy4gQXV0aGVudGljYXRvciB3aXRoIGZpbmdlcnByaW50
IHNlbnNvciB3aXRob3V0IHVzZXIncyBmaW5nZXJwcmludAorICAgICAgICAvLyByZWdpc3RlcmVk
LgorICAgICAgICBrU3VwcG9ydGVkQnV0Tm90Q29uZmlndXJlZCwKKyAgICAgICAga05vdFN1cHBv
cnRlZAorICAgIH07CisKKyAgICBlbnVtIGNsYXNzIENsaWVudFBpbkF2YWlsYWJpbGl0eSB7Cisg
ICAgICAgIGtTdXBwb3J0ZWRBbmRQaW5TZXQsCisgICAgICAgIGtTdXBwb3J0ZWRCdXRQaW5Ob3RT
ZXQsCisgICAgICAgIGtOb3RTdXBwb3J0ZWQsCisgICAgfTsKKworICAgIEF1dGhlbnRpY2F0b3JT
dXBwb3J0ZWRPcHRpb25zKCkgPSBkZWZhdWx0OworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zKEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiYpID0gZGVmYXVsdDsKKyAgICBB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgb3BlcmF0b3I9KEF1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zJiYpID0gZGVmYXVsdDsKKworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zJiBzZXRJc1BsYXRmb3JtRGV2aWNlKGJvb2wpOworICAgIEF1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zJiBzZXRTdXBwb3J0c1Jlc2lkZW50S2V5KGJvb2wpOworICAgIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBzZXRVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KFVz
ZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkpOworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zJiBzZXRVc2VyUHJlc2VuY2VSZXF1aXJlZChib29sKTsKKyAgICBBdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9ucyYgc2V0Q2xpZW50UGluQXZhaWxhYmlsaXR5KENsaWVudFBpbkF2YWls
YWJpbGl0eSk7CisKKyAgICBib29sIGlzUGxhdGZvcm1EZXZpY2UoKSBjb25zdCB7IHJldHVybiBt
X2lzUGxhdGZvcm1EZXZpY2U7IH0KKyAgICBib29sIHN1cHBvcnRzUmVzaWRlbnRLZXkoKSBjb25z
dCB7IHJldHVybiBtX3N1cHBvcnRzUmVzaWRlbnRLZXk7IH0KKyAgICBVc2VyVmVyaWZpY2F0aW9u
QXZhaWxhYmlsaXR5IHVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSBjb25zdCB7IHJldHVy
biBtX3VzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk7IH0KKyAgICBib29sIHVzZXJQcmVzZW5j
ZVJlcXVpcmVkKCkgY29uc3QgeyByZXR1cm4gbV91c2VyUHJlc2VuY2VSZXF1aXJlZDsgfQorICAg
IENsaWVudFBpbkF2YWlsYWJpbGl0eSBjbGllbnRQaW5BdmFpbGFiaWxpdHkoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudFBpbkF2YWlsYWJpbGl0eTsgfQorCitwcml2YXRlOgorICAgIC8vIEluZGlj
YXRlcyB0aGF0IHRoZSBkZXZpY2UgaXMgYXR0YWNoZWQgdG8gdGhlIGNsaWVudCBhbmQgdGhlcmVm
b3JlIGNhbid0IGJlCisgICAgLy8gcmVtb3ZlZCBhbmQgdXNlZCBvbiBhbm90aGVyIGNsaWVudC4K
KyAgICBib29sIG1faXNQbGF0Zm9ybURldmljZSB7IGZhbHNlIH07CisgICAgLy8gSW5kaWNhdGVz
IHRoYXQgdGhlIGRldmljZSBpcyBjYXBhYmxlIG9mIHN0b3Jpbmcga2V5cyBvbiB0aGUgZGV2aWNl
IGl0c2VsZgorICAgIC8vIGFuZCB0aGVyZWZvcmUgY2FuIHNhdGlzZnkgdGhlIGF1dGhlbnRpY2F0
b3JHZXRBc3NlcnRpb24gcmVxdWVzdCB3aXRoCisgICAgLy8gYWxsb3dMaXN0IHBhcmFtZXRlciBu
b3Qgc3BlY2lmaWVkIG9yIGVtcHR5LgorICAgIGJvb2wgbV9zdXBwb3J0c1Jlc2lkZW50S2V5IHsg
ZmFsc2UgfTsKKyAgICAvLyBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZGV2aWNlIGlzIGNhcGFibGUg
b2YgdmVyaWZ5aW5nIHRoZSB1c2VyIG9uIGl0cyBvd24uCisgICAgVXNlclZlcmlmaWNhdGlvbkF2
YWlsYWJpbGl0eSBtX3VzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgeyBVc2VyVmVyaWZpY2F0
aW9uQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkIH07CisgICAgYm9vbCBtX3VzZXJQcmVzZW5j
ZVJlcXVpcmVkIHsgdHJ1ZSB9OworICAgIC8vIFJlcHJlc2VudHMgd2hldGhlciBjbGllbnQgcGlu
IGluIHNldCBhbmQgc3RvcmVkIGluIGRldmljZS4gU2V0IGFzIG51bGwKKyAgICAvLyBvcHRpb25h
bCBpZiBjbGllbnQgcGluIGNhcGFiaWxpdHkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYXV0aGVu
dGljYXRvci4KKyAgICBDbGllbnRQaW5BdmFpbGFiaWxpdHkgbV9jbGllbnRQaW5BdmFpbGFiaWxp
dHkgeyBDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQgfTsKK307CisKK1dFQkNP
UkVfRVhQT1JUIGNib3I6OkNCT1JWYWx1ZSBjb252ZXJ0VG9DQk9SKGNvbnN0IEF1dGhlbnRpY2F0
b3JTdXBwb3J0ZWRPcHRpb25zJik7CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKworI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGQ5NjE4ZmIwNDMzNzU0OGU5NjU3ZDE3ZDVlNzlmYTJhMmM4NWEyMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0
Q29udmVydGVyLmNwcApAQCAtMCwwICsxLDE4MiBAQAorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIENo
cm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8g
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2
aWNlUmVxdWVzdENvbnZlcnRlci5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1
ZGUgIkNCT1JXcml0ZXIuaCIKKyNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zLmgiCisjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgi
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgZmlkbyB7Cit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKwordXNpbmcgVVZBdmFpbGFiaWxpdHkgPSBBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTsKKworc3RhdGljIGNi
b3I6OkNCT1JWYWx1ZSBjb252ZXJ0UnBFbnRpdHlUb0NCT1IoY29uc3QgUHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9uczo6UnBFbnRpdHkmIHJwRW50aXR5KQoreworICAgIGNib3I6OkNC
T1JWYWx1ZTo6TWFwVmFsdWUgcnBNYXA7CisgICAgcnBNYXAuZW1wbGFjZShrRW50aXR5TmFtZU1h
cEtleSwgcnBFbnRpdHkubmFtZSk7CisgICAgaWYgKCFycEVudGl0eS5pY29uLmlzRW1wdHkoKSkK
KyAgICAgICAgcnBNYXAuZW1wbGFjZShrSWNvblVybE1hcEtleSwgcnBFbnRpdHkuaWNvbik7Cisg
ICAgaWYgKCFycEVudGl0eS5pZC5pc0VtcHR5KCkpCisgICAgICAgIHJwTWFwLmVtcGxhY2Uoa0Vu
dGl0eUlkTWFwS2V5LCBycEVudGl0eS5pZCk7CisKKyAgICByZXR1cm4gY2Jvcjo6Q0JPUlZhbHVl
KFdURk1vdmUocnBNYXApKTsKK30KKworc3RhdGljIGNib3I6OkNCT1JWYWx1ZSBjb252ZXJ0VXNl
ckVudGl0eVRvQ0JPUihjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpV
c2VyRW50aXR5JiB1c2VyRW50aXR5KQoreworICAgIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUg
dXNlck1hcDsKKyAgICB1c2VyTWFwLmVtcGxhY2Uoa0VudGl0eU5hbWVNYXBLZXksIHVzZXJFbnRp
dHkubmFtZSk7CisgICAgaWYgKCF1c2VyRW50aXR5Lmljb24uaXNFbXB0eSgpKQorICAgICAgICB1
c2VyTWFwLmVtcGxhY2Uoa0ljb25VcmxNYXBLZXksIHVzZXJFbnRpdHkuaWNvbik7CisgICAgdXNl
ck1hcC5lbXBsYWNlKGtFbnRpdHlJZE1hcEtleSwgdXNlckVudGl0eS5pZFZlY3Rvcik7CisgICAg
dXNlck1hcC5lbXBsYWNlKGtEaXNwbGF5TmFtZU1hcEtleSwgdXNlckVudGl0eS5kaXNwbGF5TmFt
ZSk7CisgICAgcmV0dXJuIGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKHVzZXJNYXApKTsKK30KKwor
c3RhdGljIGNib3I6OkNCT1JWYWx1ZSBjb252ZXJ0UGFyYW1ldGVyc1RvQ0JPUihjb25zdCBWZWN0
b3I8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4mIHBhcmFt
ZXRlcnMpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpBcnJheVZhbHVlIGNyZWRlbnRpYWxQYXJh
bUFycmF5OworICAgIGNyZWRlbnRpYWxQYXJhbUFycmF5LnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
cGFyYW1ldGVycy5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0byYgY3JlZGVudGlhbCA6IHBh
cmFtZXRlcnMpIHsKKyAgICAgICAgY2Jvcjo6Q0JPUlZhbHVlOjpNYXBWYWx1ZSBjYm9yQ3JlZGVu
dGlhbE1hcDsKKyAgICAgICAgY2JvckNyZWRlbnRpYWxNYXAuZW1wbGFjZShrQ3JlZGVudGlhbFR5
cGVNYXBLZXksIHB1YmxpY0tleUNyZWRlbnRpYWxUeXBlVG9TdHJpbmcoY3JlZGVudGlhbC50eXBl
KSk7CisgICAgICAgIGNib3JDcmVkZW50aWFsTWFwLmVtcGxhY2Uoa0NyZWRlbnRpYWxBbGdvcml0
aG1NYXBLZXksIGNyZWRlbnRpYWwuYWxnKTsKKyAgICAgICAgY3JlZGVudGlhbFBhcmFtQXJyYXku
YXBwZW5kKFdURk1vdmUoY2JvckNyZWRlbnRpYWxNYXApKTsKKyAgICB9CisgICAgcmV0dXJuIGNi
b3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGNyZWRlbnRpYWxQYXJhbUFycmF5KSk7Cit9CisKK3N0YXRp
YyBjYm9yOjpDQk9SVmFsdWUgY29udmVydERlc2NyaXB0b3JUb0NCT1IoY29uc3QgUHVibGljS2V5
Q3JlZGVudGlhbERlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVl
OjpNYXBWYWx1ZSBjYm9yRGVzY3JpcHRvck1hcDsKKyAgICBjYm9yRGVzY3JpcHRvck1hcFtjYm9y
OjpDQk9SVmFsdWUoa0NyZWRlbnRpYWxUeXBlS2V5KV0gPSBjYm9yOjpDQk9SVmFsdWUocHVibGlj
S2V5Q3JlZGVudGlhbFR5cGVUb1N0cmluZyhkZXNjcmlwdG9yLnR5cGUpKTsKKyAgICBjYm9yRGVz
Y3JpcHRvck1hcFtjYm9yOjpDQk9SVmFsdWUoa0NyZWRlbnRpYWxJZEtleSldID0gY2Jvcjo6Q0JP
UlZhbHVlKGRlc2NyaXB0b3IuaWRWZWN0b3IpOworICAgIHJldHVybiBjYm9yOjpDQk9SVmFsdWUo
V1RGTW92ZShjYm9yRGVzY3JpcHRvck1hcCkpOworfQorCitWZWN0b3I8dWludDhfdD4gZW5jb2Rl
TWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwg
Y29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYgb3B0aW9ucywgVVZBdmFp
bGFiaWxpdHkgdXZDYXBhYmlsaXR5KQoreworICAgIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUg
Y2Jvck1hcDsKKyAgICBjYm9yTWFwW2Nib3I6OkNCT1JWYWx1ZSgxKV0gPSBjYm9yOjpDQk9SVmFs
dWUoaGFzaCk7CisgICAgY2Jvck1hcFtjYm9yOjpDQk9SVmFsdWUoMildID0gY29udmVydFJwRW50
aXR5VG9DQk9SKG9wdGlvbnMucnApOworICAgIGNib3JNYXBbY2Jvcjo6Q0JPUlZhbHVlKDMpXSA9
IGNvbnZlcnRVc2VyRW50aXR5VG9DQk9SKG9wdGlvbnMudXNlcik7CisgICAgY2Jvck1hcFtjYm9y
OjpDQk9SVmFsdWUoNCldID0gY29udmVydFBhcmFtZXRlcnNUb0NCT1Iob3B0aW9ucy5wdWJLZXlD
cmVkUGFyYW1zKTsKKyAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZUNyZWRlbnRpYWxzLmlzRW1wdHko
KSkgeworICAgICAgICBjYm9yOjpDQk9SVmFsdWU6OkFycmF5VmFsdWUgZXhjbHVkZUxpc3RBcnJh
eTsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXNjcmlwdG9yIDogb3B0aW9ucy5leGNsdWRl
Q3JlZGVudGlhbHMpCisgICAgICAgICAgICBleGNsdWRlTGlzdEFycmF5LmFwcGVuZChjb252ZXJ0
RGVzY3JpcHRvclRvQ0JPUihkZXNjcmlwdG9yKSk7CisgICAgICAgIGNib3JNYXBbY2Jvcjo6Q0JP
UlZhbHVlKDUpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGV4Y2x1ZGVMaXN0QXJyYXkpKTsK
KyAgICB9CisKKyAgICBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIG9wdGlvbk1hcDsKKyAgICBp
ZiAob3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uKSB7CisgICAgICAgIC8vIFJlc2lkZW50
IGtleXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgaWYgKG9wdGlvbnMu
YXV0aGVudGljYXRvclNlbGVjdGlvbi0+cmVxdWlyZVJlc2lkZW50S2V5KQorICAgICAgICAgICAg
b3B0aW9uTWFwW2Nib3I6OkNCT1JWYWx1ZShrUmVzaWRlbnRLZXlNYXBLZXkpXSA9IGNib3I6OkNC
T1JWYWx1ZSh0cnVlKTsKKworICAgICAgICAvLyBVc2VyIHZlcmlmaWNhdGlvbiBpcyBub3QgcmVx
dWlyZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgYm9vbCByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9
IGZhbHNlOworICAgICAgICBzd2l0Y2ggKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+
dXNlclZlcmlmaWNhdGlvbikgeworICAgICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1aXJl
bWVudDo6UmVxdWlyZWQ6CisgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IHRy
dWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQ6OlByZWZlcnJlZDoKKyAgICAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9u
ID0gdXZDYXBhYmlsaXR5ID09IFVWQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkID8gZmFsc2Ug
OiB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZDoKKyAgICAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZp
Y2F0aW9uID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgb3B0aW9uTWFwW2Nib3I6OkNCT1JW
YWx1ZShrVXNlclZlcmlmaWNhdGlvbk1hcEtleSldID0gY2Jvcjo6Q0JPUlZhbHVlKHJlcXVpcmVV
c2VyVmVyaWZpY2F0aW9uKTsKKyAgICB9CisgICAgaWYgKCFvcHRpb25NYXAuZW1wdHkoKSkKKyAg
ICAgICAgY2Jvck1hcFtjYm9yOjpDQk9SVmFsdWUoNyldID0gY2Jvcjo6Q0JPUlZhbHVlKFdURk1v
dmUob3B0aW9uTWFwKSk7CisKKyAgICBhdXRvIHNlcmlhbGl6ZWRQYXJhbSA9IGNib3I6OkNCT1JX
cml0ZXI6OndyaXRlKGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGNib3JNYXApKSk7CisgICAgQVNT
RVJUKHNlcmlhbGl6ZWRQYXJhbSk7CisKKyAgICBWZWN0b3I8dWludDhfdD4gY2JvclJlcXVlc3Qo
eyBzdGF0aWNfY2FzdDx1aW50OF90PihDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9y
TWFrZUNyZWRlbnRpYWwpIH0pOworICAgIGNib3JSZXF1ZXN0LmFwcGVuZFZlY3Rvcigqc2VyaWFs
aXplZFBhcmFtKTsKKyAgICByZXR1cm4gY2JvclJlcXVlc3Q7Cit9CisKK1ZlY3Rvcjx1aW50OF90
PiBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
aGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zLCBV
VkF2YWlsYWJpbGl0eSB1dkNhcGFiaWxpdHkpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpNYXBW
YWx1ZSBjYm9yTWFwOworICAgIGNib3JNYXBbY2Jvcjo6Q0JPUlZhbHVlKDEpXSA9IGNib3I6OkNC
T1JWYWx1ZShvcHRpb25zLnJwSWQpOworICAgIGNib3JNYXBbY2Jvcjo6Q0JPUlZhbHVlKDIpXSA9
IGNib3I6OkNCT1JWYWx1ZShoYXNoKTsKKworICAgIGlmICghb3B0aW9ucy5hbGxvd0NyZWRlbnRp
YWxzLmlzRW1wdHkoKSkgeworICAgICAgICBjYm9yOjpDQk9SVmFsdWU6OkFycmF5VmFsdWUgYWxs
b3dMaXN0QXJyYXk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgZGVzY3JpcHRvciA6IG9wdGlv
bnMuYWxsb3dDcmVkZW50aWFscykKKyAgICAgICAgICAgIGFsbG93TGlzdEFycmF5LmFwcGVuZChj
b252ZXJ0RGVzY3JpcHRvclRvQ0JPUihkZXNjcmlwdG9yKSk7CisgICAgICAgIGNib3JNYXBbY2Jv
cjo6Q0JPUlZhbHVlKDMpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGFsbG93TGlzdEFycmF5
KSk7CisgICAgfQorCisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25NYXA7Cisg
ICAgaWYgKG9wdGlvbnMudXNlclZlcmlmaWNhdGlvbikgeworICAgICAgICAvLyBVc2VyIHZlcmlm
aWNhdGlvbiBpcyBub3QgcmVxdWlyZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgYm9vbCByZXF1aXJl
VXNlclZlcmlmaWNhdGlvbiA9IGZhbHNlOworICAgICAgICBzd2l0Y2ggKCpvcHRpb25zLnVzZXJW
ZXJpZmljYXRpb24pIHsKKyAgICAgICAgY2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6
OlJlcXVpcmVkOgorICAgICAgICAgICAgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSB0cnVlOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50OjpQcmVmZXJyZWQ6CisgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IHV2
Q2FwYWJpbGl0eSA9PSBVVkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCA/IGZhbHNlIDogdHJ1
ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1
aXJlbWVudDo6RGlzY291cmFnZWQ6CisgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlv
biA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIG9wdGlvbk1hcFtjYm9yOjpDQk9SVmFsdWUo
a1VzZXJWZXJpZmljYXRpb25NYXBLZXkpXSA9IGNib3I6OkNCT1JWYWx1ZShyZXF1aXJlVXNlclZl
cmlmaWNhdGlvbik7CisgICAgICAgIG9wdGlvbk1hcFtjYm9yOjpDQk9SVmFsdWUoa1VzZXJQcmVz
ZW5jZU1hcEtleSldID0gY2Jvcjo6Q0JPUlZhbHVlKCFyZXF1aXJlVXNlclZlcmlmaWNhdGlvbik7
CisgICAgfQorICAgIGlmICghb3B0aW9uTWFwLmVtcHR5KCkpCisgICAgICAgIGNib3JNYXBbY2Jv
cjo6Q0JPUlZhbHVlKDUpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKG9wdGlvbk1hcCkpOwor
CisgICAgYXV0byBzZXJpYWxpemVkUGFyYW0gPSBjYm9yOjpDQk9SV3JpdGVyOjp3cml0ZShjYm9y
OjpDQk9SVmFsdWUoV1RGTW92ZShjYm9yTWFwKSkpOworICAgIEFTU0VSVChzZXJpYWxpemVkUGFy
YW0pOworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGNib3JSZXF1ZXN0KHsgc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oQ3RhcFJlcXVlc3RDb21tYW5kOjprQXV0aGVudGljYXRvckdldEFzc2VydGlvbikgfSk7
CisgICAgY2JvclJlcXVlc3QuYXBwZW5kVmVjdG9yKCpzZXJpYWxpemVkUGFyYW0pOworICAgIHJl
dHVybiBjYm9yUmVxdWVzdDsKK30KKworVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUVtcHR5QXV0aGVu
dGljYXRvclJlcXVlc3QoQ3RhcFJlcXVlc3RDb21tYW5kIGNtZCkKK3sKKyAgICByZXR1cm4geyBz
dGF0aWNfY2FzdDx1aW50OF90PihjbWQpIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40YWNjM2ZmNjJiOTUyNDlmNDg3YjIyY2U4NGFjNDE3OWY0YzMxODZmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJl
cXVlc3RDb252ZXJ0ZXIuaApAQCAtMCwwICsxLDYyIEBACisvLyBDb3B5cmlnaHQgMjAxNyBUaGUg
Q2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisv
LyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8g
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8v
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8v
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9B
VVRITikKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgiCisjaW5j
bHVkZSAiRmlkb0NvbnN0YW50cy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
Oworc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKK30KKworbmFtZXNw
YWNlIGZpZG8geworCisvLyBTZXJpYWxpemVzIE1ha2VDcmVkZW50aWFsIHJlcXVlc3QgcGFyYW1l
dGVyIGludG8gQ0JPUiBlbmNvZGVkIG1hcCB3aXRoCisvLyBpbnRlZ2VyIGtleXMgYW5kIENCT1Ig
ZW5jb2RlZCB2YWx1ZXMgYXMgZGVmaW5lZCBieSB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9m
aWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10
by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNh
dG9yTWFrZUNyZWRlbnRpYWwKK1dFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVN
YWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBj
b25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwgQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkpOwor
CisvLyBTZXJpYWxpemVzIEdldEFzc2VydGlvbiByZXF1ZXN0IHBhcmFtZXRlciBpbnRvIENCT1Ig
ZW5jb2RlZCBtYXAgd2l0aAorLy8gaW50ZWdlciBrZXlzIGFuZCBDQk9SIGVuY29kZWQgdmFsdWVz
IGFzIGRlZmluZWQgYnkgdGhlIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9y
Zy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRv
ci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjYXV0aGVudGljYXRvckdldEFzc2VydGlv
bgorV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUdldEFzc2VydGlvblJlcXVl
c3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSk7CisKKy8vIFJlcHJlc2VudHMgQ1RB
UCByZXF1ZXN0cyB3aXRoIGVtcHR5IHBhcmFtZXRlcnMsIGluY2x1ZGluZworLy8gQXV0aGVudGlj
YXRvckdldEluZm8sIEF1dGhlbnRpY2F0b3JDYW5jZWwsIEF1dGhlbnRpY2F0b3JSZXNldCBhbmQK
Ky8vIEF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uIGNvbW1hbmRzLgorV0VCQ09SRV9FWFBP
UlQgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUVtcHR5QXV0aGVudGljYXRvclJlcXVlc3QoQ3RhcFJl
cXVlc3RDb21tYW5kKTsKKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxF
KFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Zmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMx
YzdlNGY4ODMzZDU1NjZiZmFkNTY3MTY3NDI5ZTg4ODQwMTAzZDMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252
ZXJ0ZXIuY3BwCkBAIC0wLDAgKzEsMzEyIEBACisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgQ2hyb21p
dW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisv
LyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
Ky8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VS
ZXNwb25zZUNvbnZlcnRlci5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUg
IkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgiCisjaW5jbHVkZSAiQ0JPUlJlYWRlci5o
IgorI2luY2x1ZGUgIkNCT1JXcml0ZXIuaCIKKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgorCituYW1lc3BhY2UgZmlkbyB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
K3VzaW5nIENCT1IgPSBjYm9yOjpDQk9SVmFsdWU7CisKK2NvbnN0ZXhwciBzaXplX3Qga1Jlc3Bv
bnNlQ29kZUxlbmd0aCA9IDE7CisKK3N0YXRpYyBQcm90b2NvbFZlcnNpb24gY29udmVydFN0cmlu
Z1RvUHJvdG9jb2xWZXJzaW9uKGNvbnN0IFN0cmluZyYgdmVyc2lvbikKK3sKKyAgICBpZiAodmVy
c2lvbiA9PSBrQ3RhcDJWZXJzaW9uKQorICAgICAgICByZXR1cm4gUHJvdG9jb2xWZXJzaW9uOjpr
Q3RhcDsKKyAgICBpZiAodmVyc2lvbiA9PSBrVTJmVmVyc2lvbikKKyAgICAgICAgcmV0dXJuIFBy
b3RvY29sVmVyc2lvbjo6a1UyZjsKKworICAgIHJldHVybiBQcm90b2NvbFZlcnNpb246OmtVbmtu
b3duOworfQorCitDdGFwRGV2aWNlUmVzcG9uc2VDb2RlIGdldFJlc3BvbnNlQ29kZShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKK3sKKyAgICBpZiAoYnVmZmVyLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRDQk9S
OworCisgICAgYXV0byBjb2RlID0gc3RhdGljX2Nhc3Q8Q3RhcERldmljZVJlc3BvbnNlQ29kZT4o
YnVmZmVyWzBdKTsKKyAgICByZXR1cm4gaXNDdGFwRGV2aWNlUmVzcG9uc2VDb2RlKGNvZGUpID8g
Y29kZSA6IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRDQk9SOworfQor
CitzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGdldENyZWRlbnRpYWxJZChjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIGF1dGhlbnRpY2F0b3JEYXRhKQoreworICAgIGNvbnN0IHNpemVfdCBjcmVkZW50aWFs
SWRMZW5ndGhPZmZzZXQgPSBrUnBJZEhhc2hMZW5ndGggKyBrRmxhZ3NMZW5ndGggKyBrU2lnbkNv
dW50ZXJMZW5ndGggKyBrQWFndWlkTGVuZ3RoOworCisgICAgaWYgKGF1dGhlbnRpY2F0b3JEYXRh
LnNpemUoKSA8IGNyZWRlbnRpYWxJZExlbmd0aE9mZnNldCArIGtDcmVkZW50aWFsSWRMZW5ndGhM
ZW5ndGgpCisgICAgICAgIHJldHVybiB7IH07CisgICAgc2l6ZV90IGNyZWRlbnRpYWxJZExlbmd0
aCA9IChzdGF0aWNfY2FzdDxzaXplX3Q+KGF1dGhlbnRpY2F0b3JEYXRhW2NyZWRlbnRpYWxJZExl
bmd0aE9mZnNldF0pIDw8IDgpIHwgc3RhdGljX2Nhc3Q8c2l6ZV90PihhdXRoZW50aWNhdG9yRGF0
YVtjcmVkZW50aWFsSWRMZW5ndGhPZmZzZXQgKyAxXSk7CisKKyAgICBpZiAoYXV0aGVudGljYXRv
ckRhdGEuc2l6ZSgpIDwgY3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0ICsga0NyZWRlbnRpYWxJZExl
bmd0aExlbmd0aCArIGNyZWRlbnRpYWxJZExlbmd0aCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAg
ICBWZWN0b3I8dWludDhfdD4gY3JlZGVudGlhbElkOworICAgIGNyZWRlbnRpYWxJZC5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KGNyZWRlbnRpYWxJZExlbmd0aCk7CisgICAgYXV0byBiZWdpbkl0ID0g
YXV0aGVudGljYXRvckRhdGEuYmVnaW4oKSArIGNyZWRlbnRpYWxJZExlbmd0aE9mZnNldCArIGtD
cmVkZW50aWFsSWRMZW5ndGhMZW5ndGg7CisgICAgY3JlZGVudGlhbElkLmFwcGVuZFJhbmdlKGJl
Z2luSXQsIGJlZ2luSXQgKyBjcmVkZW50aWFsSWRMZW5ndGgpOworICAgIHJldHVybiBjcmVkZW50
aWFsSWQ7Cit9CisKKworLy8gRGVjb2RlcyBieXRlIGFycmF5IHJlc3BvbnNlIGZyb20gYXV0aGVu
dGljYXRvciB0byBDQk9SIHZhbHVlIG9iamVjdCBhbmQKKy8vIGNoZWNrcyBmb3IgY29ycmVjdCBl
bmNvZGluZyBmb3JtYXQuCitzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhPiBy
ZWFkQ1RBUE1ha2VDcmVkZW50aWFsUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpbkJ1
ZmZlcikKK3sKKyAgICBpZiAoaW5CdWZmZXIuc2l6ZSgpIDw9IGtSZXNwb25zZUNvZGVMZW5ndGgp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8dWludDhfdD4gYnVm
ZmVyOworICAgIGJ1ZmZlci5hcHBlbmQoaW5CdWZmZXIuZGF0YSgpICsgMSwgaW5CdWZmZXIuc2l6
ZSgpIC0gMSk7CisgICAgc3RkOjpvcHRpb25hbDxDQk9SPiBkZWNvZGVkUmVzcG9uc2UgPSBjYm9y
OjpDQk9SUmVhZGVyOjpyZWFkKGJ1ZmZlcik7CisgICAgaWYgKCFkZWNvZGVkUmVzcG9uc2UgfHwg
IWRlY29kZWRSZXNwb25zZS0+aXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICBjb25zdCBhdXRvJiBkZWNvZGVkTWFwID0gZGVjb2RlZFJlc3BvbnNlLT5nZXRNYXAoKTsK
KworICAgIGF1dG8gaXQgPSBkZWNvZGVkTWFwLmZpbmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ID09
IGRlY29kZWRNYXAuZW5kKCkgfHwgIWl0LT5zZWNvbmQuaXNTdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBhdXRvIGZvcm1hdCA9IGl0LT5zZWNvbmQuY2xvbmUoKTsK
KworICAgIGl0ID0gZGVjb2RlZE1hcC5maW5kKENCT1IoMikpOworICAgIGlmIChpdCA9PSBkZWNv
ZGVkTWFwLmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworICAgIGF1dG8gYXV0aGVudGljYXRvckRhdGEgPSBpdC0+c2Vjb25k
LmNsb25lKCk7CisKKyAgICBhdXRvIGNyZWRlbnRpYWxJZCA9IGdldENyZWRlbnRpYWxJZChhdXRo
ZW50aWNhdG9yRGF0YS5nZXRCeXRlU3RyaW5nKCkpOworICAgIGlmIChjcmVkZW50aWFsSWQuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgaXQgPSBkZWNvZGVk
TWFwLmZpbmQoQ0JPUigzKSk7CisgICAgaWYgKGl0ID09IGRlY29kZWRNYXAuZW5kKCkgfHwgIWl0
LT5zZWNvbmQuaXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBhdXRv
IGF0dFN0bXQgPSBpdC0+c2Vjb25kLmNsb25lKCk7CisKKyAgICBDQk9SOjpNYXBWYWx1ZSBhdHRl
c3RhdGlvbk9iamVjdE1hcDsKKyAgICBhdHRlc3RhdGlvbk9iamVjdE1hcFtDQk9SKCJhdXRoRGF0
YSIpXSA9IFdURk1vdmUoYXV0aGVudGljYXRvckRhdGEpOworICAgIGF0dGVzdGF0aW9uT2JqZWN0
TWFwW0NCT1IoImZtdCIpXSA9IFdURk1vdmUoZm9ybWF0KTsKKyAgICBhdHRlc3RhdGlvbk9iamVj
dE1hcFtDQk9SKCJhdHRTdG10IildID0gV1RGTW92ZShhdHRTdG10KTsKKyAgICBhdXRvIGF0dGVz
dGF0aW9uT2JqZWN0ID0gY2Jvcjo6Q0JPUldyaXRlcjo6d3JpdGUoQ0JPUihXVEZNb3ZlKGF0dGVz
dGF0aW9uT2JqZWN0TWFwKSkpOworCisgICAgcmV0dXJuIFB1YmxpY0tleUNyZWRlbnRpYWxEYXRh
IHsgQXJyYXlCdWZmZXI6OmNyZWF0ZShjcmVkZW50aWFsSWQuZGF0YSgpLCBjcmVkZW50aWFsSWQu
c2l6ZSgpKSwgdHJ1ZSwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdHRlc3RhdGlvbk9i
amVjdC52YWx1ZSgpLmRhdGEoKSwgYXR0ZXN0YXRpb25PYmplY3QudmFsdWUoKS5zaXplKCkpLCBu
dWxscHRyLCBudWxscHRyLCBudWxscHRyIH07Cit9CisKK3N0ZDo6b3B0aW9uYWw8UHVibGljS2V5
Q3JlZGVudGlhbERhdGE+IHJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBpbkJ1ZmZlcikKK3sKKyAgICBpZiAoaW5CdWZmZXIuc2l6ZSgpIDw9IGtSZXNw
b25zZUNvZGVMZW5ndGgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0
b3I8dWludDhfdD4gYnVmZmVyOworICAgIGJ1ZmZlci5hcHBlbmQoaW5CdWZmZXIuZGF0YSgpICsg
MSwgaW5CdWZmZXIuc2l6ZSgpIC0gMSk7CisgICAgc3RkOjpvcHRpb25hbDxDQk9SPiBkZWNvZGVk
UmVzcG9uc2UgPSBjYm9yOjpDQk9SUmVhZGVyOjpyZWFkKGJ1ZmZlcik7CisKKyAgICBpZiAoIWRl
Y29kZWRSZXNwb25zZSB8fCAhZGVjb2RlZFJlc3BvbnNlLT5pc01hcCgpKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byYgcmVzcG9uc2VNYXAgPSBkZWNvZGVkUmVzcG9u
c2UtPmdldE1hcCgpOworCisgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVkZW50aWFsSWQ7Cisg
ICAgYXV0byBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ICE9IHJl
c3BvbnNlTWFwLmVuZCgpICYmIGl0LT5zZWNvbmQuaXNNYXAoKSkgeworICAgICAgICBhdXRvJiBj
cmVkZW50aWFsID0gaXQtPnNlY29uZC5nZXRNYXAoKTsKKyAgICAgICAgYXV0byBpdHIgPSBjcmVk
ZW50aWFsLmZpbmQoQ0JPUihrQ3JlZGVudGlhbElkS2V5KSk7CisgICAgICAgIGlmIChpdHIgPT0g
Y3JlZGVudGlhbC5lbmQoKSB8fCAhaXRyLT5zZWNvbmQuaXNCeXRlU3RyaW5nKCkpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBhdXRvJiBpZCA9IGl0ci0+c2Vjb25k
LmdldEJ5dGVTdHJpbmcoKTsKKyAgICAgICAgY3JlZGVudGlhbElkID0gQXJyYXlCdWZmZXI6OmNy
ZWF0ZShpZC5kYXRhKCksIGlkLnNpemUoKSk7CisgICAgfQorCisgICAgaXQgPSByZXNwb25zZU1h
cC5maW5kKENCT1IoMikpOworICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5lbmQoKSB8fCAhaXQt
PnNlY29uZC5pc0J5dGVTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICBhdXRvJiBhdXRoRGF0YSA9IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOworCisgICAgaXQg
PSByZXNwb25zZU1hcC5maW5kKENCT1IoMykpOworICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5l
bmQoKSB8fCAhaXQtPnNlY29uZC5pc0J5dGVTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICBhdXRvJiBzaWduYXR1cmUgPSBpdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmco
KTsKKworICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gdXNlckhhbmRsZTsKKyAgICB7CisgICAgICAg
IGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDQpKTsKKyAgICAgICAgaWYgKGl0ID09IHJlc3Bv
bnNlTWFwLmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzTWFwKCkpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgICAgICBhdXRvJiB1c2VyID0gaXQtPnNlY29uZC5nZXRNYXAoKTsK
KyAgICAgICAgYXV0byBpdHIgPSB1c2VyLmZpbmQoQ0JPUihrRW50aXR5SWRNYXBLZXkpKTsKKyAg
ICAgICAgaWYgKGl0ciA9PSB1c2VyLmVuZCgpIHx8ICFpdHItPnNlY29uZC5pc0J5dGVTdHJpbmco
KSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGF1dG8mIGlkID0g
aXRyLT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOworICAgICAgICB1c2VySGFuZGxlID0gQXJyYXlC
dWZmZXI6OmNyZWF0ZShpZC5kYXRhKCksIGlkLnNpemUoKSk7CisgICAgfQorCisgICAgcmV0dXJu
IFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgV1RGTW92ZShjcmVkZW50aWFsSWQpLCBmYWxzZSwg
bnVsbHB0ciwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdXRoRGF0YS5kYXRhKCksIGF1
dGhEYXRhLnNpemUoKSksIEFycmF5QnVmZmVyOjpjcmVhdGUoc2lnbmF0dXJlLmRhdGEoKSwgc2ln
bmF0dXJlLnNpemUoKSksIFdURk1vdmUodXNlckhhbmRsZSkgfTsKK30KKworc3RkOjpvcHRpb25h
bDxBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlPiByZWFkQ1RBUEdldEluZm9SZXNwb25zZShj
b25zdCBWZWN0b3I8dWludDhfdD4mIGluQnVmZmVyKQoreworICAgIGlmIChpbkJ1ZmZlci5zaXpl
KCkgPD0ga1Jlc3BvbnNlQ29kZUxlbmd0aCB8fCBnZXRSZXNwb25zZUNvZGUoaW5CdWZmZXIpICE9
IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtTdWNjZXNzKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKKyAgICBidWZmZXIuYXBwZW5k
KGluQnVmZmVyLmRhdGEoKSArIDEsIGluQnVmZmVyLnNpemUoKSAtIDEpOworICAgIHN0ZDo6b3B0
aW9uYWw8Q0JPUj4gZGVjb2RlZFJlc3BvbnNlID0gY2Jvcjo6Q0JPUlJlYWRlcjo6cmVhZChidWZm
ZXIpOworICAgIGlmICghZGVjb2RlZFJlc3BvbnNlIHx8ICFkZWNvZGVkUmVzcG9uc2UtPmlzTWFw
KCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgY29uc3QgYXV0byYgcmVzcG9u
c2VNYXAgPSBkZWNvZGVkUmVzcG9uc2UtPmdldE1hcCgpOworCisgICAgYXV0byBpdCA9IHJlc3Bv
bnNlTWFwLmZpbmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ID09IHJlc3BvbnNlTWFwLmVuZCgpIHx8
ICFpdC0+c2Vjb25kLmlzQXJyYXkoKSB8fCBpdC0+c2Vjb25kLmdldEFycmF5KCkuc2l6ZSgpID4g
MikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBzdGQ6OnNldDxQcm90b2NvbFZl
cnNpb24+IHByb3RvY29sVmVyc2lvbnM7CisgICAgZm9yIChjb25zdCBhdXRvJiB2ZXJzaW9uIDog
aXQtPnNlY29uZC5nZXRBcnJheSgpKSB7CisgICAgICAgIGlmICghdmVyc2lvbi5pc1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBhdXRvIHByb3Rv
Y29sID0gY29udmVydFN0cmluZ1RvUHJvdG9jb2xWZXJzaW9uKHZlcnNpb24uZ2V0U3RyaW5nKCkp
OworICAgICAgICBpZiAocHJvdG9jb2wgPT0gUHJvdG9jb2xWZXJzaW9uOjprVW5rbm93bikgewor
ICAgICAgICAgICAgTE9HX0VSUk9SKCJVbmV4cGVjdGVkIHByb3RvY29sIHZlcnNpb24gcmVjZWl2
ZWQuIik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgh
cHJvdG9jb2xWZXJzaW9ucy5pbnNlcnQocHJvdG9jb2wpLnNlY29uZCkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorICAgIGlmIChwcm90b2NvbFZlcnNpb25zLmVtcHR5
KCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBpdCA9IHJlc3BvbnNlTWFw
LmZpbmQoQ0JPUigzKSk7CisgICAgaWYgKGl0ID09IHJlc3BvbnNlTWFwLmVuZCgpIHx8ICFpdC0+
c2Vjb25kLmlzQnl0ZVN0cmluZygpIHx8IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpLnNpemUo
KSAhPSBrQWFndWlkTGVuZ3RoKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSByZXNwb25zZShXVEZNb3ZlKHByb3RvY29sVmVy
c2lvbnMpLCBWZWN0b3I8dWludDhfdD4oaXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCkpKTsKKwor
ICAgIGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDIpKTsKKyAgICBpZiAoaXQgIT0gcmVzcG9u
c2VNYXAuZW5kKCkpIHsKKyAgICAgICAgaWYgKCFpdC0+c2Vjb25kLmlzQXJyYXkoKSkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gZXh0
ZW5zaW9uczsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBleHRlbnNpb24gOiBpdC0+c2Vjb25k
LmdldEFycmF5KCkpIHsKKyAgICAgICAgICAgIGlmICghZXh0ZW5zaW9uLmlzU3RyaW5nKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICAgICAgZXh0ZW5z
aW9ucy5hcHBlbmQoZXh0ZW5zaW9uLmdldFN0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBy
ZXNwb25zZS5zZXRFeHRlbnNpb25zKFdURk1vdmUoZXh0ZW5zaW9ucykpOworICAgIH0KKworICAg
IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zIG9wdGlvbnM7CisgICAgaXQgPSByZXNwb25z
ZU1hcC5maW5kKENCT1IoNCkpOworICAgIGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSkgewor
ICAgICAgICBpZiAoIWl0LT5zZWNvbmQuaXNNYXAoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgICAgIGNvbnN0IGF1dG8mIG9wdGlvbk1hcCA9IGl0LT5zZWNvbmQuZ2V0
TWFwKCk7CisgICAgICAgIGF1dG8gb3B0aW9uTWFwSXQgPSBvcHRpb25NYXAuZmluZChDQk9SKGtQ
bGF0Zm9ybURldmljZU1hcEtleSkpOworICAgICAgICBpZiAob3B0aW9uTWFwSXQgIT0gb3B0aW9u
TWFwLmVuZCgpKSB7CisgICAgICAgICAgICBpZiAoIW9wdGlvbk1hcEl0LT5zZWNvbmQuaXNCb29s
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICAgICAg
b3B0aW9ucy5zZXRJc1BsYXRmb3JtRGV2aWNlKG9wdGlvbk1hcEl0LT5zZWNvbmQuZ2V0Qm9vbCgp
KTsKKyAgICAgICAgfQorCisgICAgICAgIG9wdGlvbk1hcEl0ID0gb3B0aW9uTWFwLmZpbmQoQ0JP
UihrUmVzaWRlbnRLZXlNYXBLZXkpKTsKKyAgICAgICAgaWYgKG9wdGlvbk1hcEl0ICE9IG9wdGlv
bk1hcC5lbmQoKSkgeworICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJdC0+c2Vjb25kLmlzQm9v
bCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAg
IG9wdGlvbnMuc2V0U3VwcG9ydHNSZXNpZGVudEtleShvcHRpb25NYXBJdC0+c2Vjb25kLmdldEJv
b2woKSk7CisgICAgICAgIH0KKworICAgICAgICBvcHRpb25NYXBJdCA9IG9wdGlvbk1hcC5maW5k
KENCT1Ioa1VzZXJQcmVzZW5jZU1hcEtleSkpOworICAgICAgICBpZiAob3B0aW9uTWFwSXQgIT0g
b3B0aW9uTWFwLmVuZCgpKSB7CisgICAgICAgICAgICBpZiAoIW9wdGlvbk1hcEl0LT5zZWNvbmQu
aXNCb29sKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICAgICAgb3B0aW9ucy5zZXRVc2VyUHJlc2VuY2VSZXF1aXJlZChvcHRpb25NYXBJdC0+c2Vjb25k
LmdldEJvb2woKSk7CisgICAgICAgIH0KKworICAgICAgICBvcHRpb25NYXBJdCA9IG9wdGlvbk1h
cC5maW5kKENCT1Ioa1VzZXJWZXJpZmljYXRpb25NYXBLZXkpKTsKKyAgICAgICAgaWYgKG9wdGlv
bk1hcEl0ICE9IG9wdGlvbk1hcC5lbmQoKSkgeworICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJ
dC0+c2Vjb25kLmlzQm9vbCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgICAgIGlmIChvcHRpb25NYXBJdC0+c2Vjb25kLmdldEJvb2woKSkKKyAgICAg
ICAgICAgICAgICBvcHRpb25zLnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtT
dXBwb3J0ZWRBbmRDb25maWd1cmVkKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBvcHRpb25zLnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRC
dXROb3RDb25maWd1cmVkKTsKKyAgICAgICAgfQorCisgICAgICAgIG9wdGlvbk1hcEl0ID0gb3B0
aW9uTWFwLmZpbmQoQ0JPUihrQ2xpZW50UGluTWFwS2V5KSk7CisgICAgICAgIGlmIChvcHRpb25N
YXBJdCAhPSBvcHRpb25NYXAuZW5kKCkpIHsKKyAgICAgICAgICAgIGlmICghb3B0aW9uTWFwSXQt
PnNlY29uZC5pc0Jvb2woKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgICAgICBpZiAob3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29sKCkpCisgICAgICAg
ICAgICAgICAgb3B0aW9ucy5zZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNl
dCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3B0aW9ucy5zZXRDbGllbnRQ
aW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2
YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dFBpbk5vdFNldCk7CisgICAgICAgIH0KKyAgICAgICAg
cmVzcG9uc2Uuc2V0T3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKTsKKyAgICB9CisKKyAgICBpdCA9
IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUig1KSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFwLmVu
ZCgpKSB7CisgICAgICAgIGlmICghaXQtPnNlY29uZC5pc1Vuc2lnbmVkKCkpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJlc3BvbnNlLnNldE1heE1zZ1NpemUo
aXQtPnNlY29uZC5nZXRVbnNpZ25lZCgpKTsKKyAgICB9CisKKyAgICBpdCA9IHJlc3BvbnNlTWFw
LmZpbmQoQ0JPUig2KSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFwLmVuZCgpKSB7CisgICAg
ICAgIGlmICghaXQtPnNlY29uZC5pc0FycmF5KCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBzdXBwb3J0ZWRQaW5Qcm90b2NvbHM7
CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcHJvdG9jb2wgOiBpdC0+c2Vjb25kLmdldEFycmF5
KCkpIHsKKyAgICAgICAgICAgIGlmICghcHJvdG9jb2wuaXNVbnNpZ25lZCgpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIHN1cHBvcnRlZFBpblBy
b3RvY29scy5hcHBlbmQocHJvdG9jb2wuZ2V0VW5zaWduZWQoKSk7CisgICAgICAgIH0KKyAgICAg
ICAgcmVzcG9uc2Uuc2V0UGluUHJvdG9jb2xzKFdURk1vdmUoc3VwcG9ydGVkUGluUHJvdG9jb2xz
KSk7CisgICAgfQorCisgICAgcmV0dXJuIFdURk1vdmUocmVzcG9uc2UpOworfQorCit9IC8vIG5h
bWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVy
dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9u
c2VDb252ZXJ0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTk2MzM1NDVjZGUyNWMwZGJkYzRjNjNkYTVmMWIx
NjZlMjM3NDkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmgKQEAgLTAsMCArMSw2NiBAQAorLy8g
Q29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlz
dHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisv
LyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9yR2V0SW5m
b1Jlc3BvbnNlLmgiCisjaW5jbHVkZSAiRmlkb0NvbnN0YW50cy5oIgorI2luY2x1ZGUgIlB1Ymxp
Y0tleUNyZWRlbnRpYWxEYXRhLmgiCisKKy8vIENvbnZlcnRzIHJlc3BvbnNlIGZyb20gYXV0aGVu
dGljYXRvcnMgdG8gQ1RBUFJlc3BvbnNlIG9iamVjdHMuIElmIHRoZQorLy8gcmVzcG9uc2Ugb2Yg
dGhlIGF1dGhlbnRpY2F0b3IgZG9lcyBub3QgY29uZm9ybSB0byBmb3JtYXQgc3BlY2lmaWVkIGJ5
IHRoZQorLy8gQ1RBUCBwcm90b2NvbCwgbnVsbCBvcHRpb25hbCBpcyByZXR1cm5lZC4KK25hbWVz
cGFjZSBmaWRvIHsKKworLy8gUGFyc2VzIHJlc3BvbnNlIGNvZGUgZnJvbSByZXNwb25zZSByZWNl
aXZlZCBmcm9tIHRoZSBhdXRoZW50aWNhdG9yLiBJZgorLy8gdW5rbm93biByZXNwb25zZSBjb2Rl
IHZhbHVlIGlzIHJlY2VpdmVkLCB0aGVuIENUQVAyX0VSUl9PVEhFUiBpcyByZXR1cm5lZC4KK1dF
QkNPUkVfRVhQT1JUIEN0YXBEZXZpY2VSZXNwb25zZUNvZGUgZ2V0UmVzcG9uc2VDb2RlKGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYpOworCisvLyBEZS1zZXJpYWxpemVzIENCT1IgZW5jb2RlZCByZXNw
b25zZSwgY2hlY2tzIGZvciB2YWxpZCBDQk9SIG1hcCBmb3JtYXR0aW5nLAorLy8gYW5kIGNvbnZl
cnRzIHJlc3BvbnNlIHRvIEF1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbFJlc3BvbnNlIG9iamVj
dCB3aXRoCisvLyBDQk9SIG1hcCBrZXlzIHRoYXQgY29uZm9ybSB0byBmb3JtYXQgb2YgYXR0ZXN0
YXRpb24gb2JqZWN0IGRlZmluZWQgYnkgdGhlCisvLyBXZWJBdXRoTiBzcGVjIDogaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL3dlYmF1dGhuLyNmaWctYXR0U3RydWN0cworV0VCQ09SRV9FWFBPUlQgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZENUQVBNYWtl
Q3JlZGVudGlhbFJlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYpOworCisvLyBEZS1zZXJp
YWxpemVzIENCT1IgZW5jb2RlZCByZXNwb25zZSB0byBBdXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9u
IC8KKy8vIEF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uIHJlcXVlc3QgdG8gQXV0aGVudGlj
YXRvckdldEFzc2VydGlvblJlc3BvbnNlCisvLyBvYmplY3QuCisvLyBGSVhNRSgxOTA3ODMpOiBQ
cm9iYWJseSBuZWVkIHRvIHJlbWFrZSBBdXRoZW50aWNhdG9yUmVzcG9uc2UgdG8gaW5jbHVkZSBt
b3JlIGZpZWxkcyBsaWtlIG51bWJlck9mQ3JlZGVudGlhbHMsCisvLyBhbmQgdXNlIGl0IGhlcmUg
aW5zdGVhZCBvZiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YS4KK1dFQkNPUkVfRVhQT1JUIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlYWRDVEFQR2V0QXNz
ZXJ0aW9uUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7CisKKy8vIERlLXNlcmlhbGl6
ZXMgQ0JPUiBlbmNvZGVkIHJlc3BvbnNlIHRvIEF1dGhlbnRpY2F0b3JHZXRJbmZvIHJlcXVlc3Qg
dG8KKy8vIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2Ugb2JqZWN0LgorV0VCQ09SRV9FWFBP
UlQgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlPiByZWFkQ1RBUEdl
dEluZm9SZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4mKTsKKworfSAvLyBuYW1lc3BhY2Ug
ZmlkbworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcAppbmRleCAzODgx
ZmQyZjI2NGU5ZjBlZTRkYTAzOTI0MmU1YWQxMGQ3MDRhNGYzLi44MTcyNWNlYWYyY2VkMjkxOTY3
ODQzYzk3OTE3OGFmNmVjNDRlNzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwCkBAIC0zMyw2ICszMyw2NiBAQAog
I2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKIG5hbWVzcGFjZSBmaWRvIHsKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCitib29sIGlzQ3RhcERldmljZVJlc3BvbnNlQ29kZShDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlIGNvZGUpCit7CisgICAgc3dpdGNoIChjb2RlKSB7CisgICAgY2FzZSBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprU3VjY2VzczoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMUVyckludmFsaWRDb21tYW5kOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNl
Q29kZTo6a0N0YXAxRXJySW52YWxpZFBhcmFtZXRlcjoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNw
b25zZUNvZGU6OmtDdGFwMUVyckludmFsaWRMZW5ndGg6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDFFcnJJbnZhbGlkU2VxOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a0N0YXAxRXJyVGltZW91dDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMUVyckNoYW5uZWxCdXN5OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29k
ZTo6a0N0YXAxRXJyTG9ja1JlcXVpcmVkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29k
ZTo6a0N0YXAxRXJySW52YWxpZENoYW5uZWw6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlOjprQ3RhcDJFcnJDQk9SUGFyc2luZzoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMkVyclVuZXhwZWN0ZWRUeXBlOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNl
Q29kZTo6a0N0YXAyRXJySW52YWxpZENCT1I6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlOjprQ3RhcDJFcnJJbnZhbGlkQ0JPUlR5cGU6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9u
c2VDb2RlOjprQ3RhcDJFcnJNaXNzaW5nUGFyYW1ldGVyOgorICAgIGNhc2UgQ3RhcERldmljZVJl
c3BvbnNlQ29kZTo6a0N0YXAyRXJyTGltaXRFeGNlZWRlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMkVyclVuc3VwcG9ydGVkRXh0ZW5zaW9uOgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVG9vTWFueUVsZW1lbnRzOgorICAgIGNhc2Ug
Q3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyRXh0ZW5zaW9uTm90U3VwcG9ydGVkOgor
ICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyQ3JlZGVudGlhbEV4Y2x1
ZGVkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUHJvY2Vzc3Np
bmc6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJJbnZhbGlkQ3Jl
ZGVudGlhbDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclVzZXJB
Y3Rpb25QZW5kaW5nOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJy
T3BlcmF0aW9uUGVuZGluZzoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFw
MkVyck5vT3BlcmF0aW9uczoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFw
MkVyclVuc3VwcG9ydGVkQWxnb3JpdGhtczoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMkVyck9wZXJhdGlvbkRlbmllZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25z
ZUNvZGU6OmtDdGFwMkVycktleVN0b3JlRnVsbDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25z
ZUNvZGU6OmtDdGFwMkVyck5vdEJ1c3k6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2Rl
OjprQ3RhcDJFcnJOb09wZXJhdGlvblBlbmRpbmc6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9u
c2VDb2RlOjprQ3RhcDJFcnJVbnN1cHBvcnRlZE9wdGlvbjoKKyAgICBjYXNlIEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRPcHRpb246CisgICAgY2FzZSBDdGFwRGV2aWNl
UmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJLZWVwQWxpdmVDYW5jZWw6CisgICAgY2FzZSBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJOb0NyZWRlbnRpYWxzOgorICAgIGNhc2UgQ3RhcERl
dmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVXNlckFjdGlvblRpbWVvdXQ6CisgICAgY2FzZSBD
dGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJOb3RBbGxvd2VkOgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluSW52YWxpZDoKKyAgICBjYXNlIEN0YXBE
ZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbkJsb2NrZWQ6CisgICAgY2FzZSBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5BdXRoSW52YWxpZDoKKyAgICBjYXNlIEN0YXBE
ZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbkF1dGhCbG9ja2VkOgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluTm90U2V0OgorICAgIGNhc2UgQ3RhcERl
dmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluUmVxdWlyZWQ6CisgICAgY2FzZSBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5Qb2xpY3lWaW9sYXRpb246CisgICAgY2FzZSBD
dGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5Ub2tlbkV4cGlyZWQ6CisgICAgY2Fz
ZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJSZXF1ZXN0VG9vTGFyZ2U6CisgICAg
Y2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJPdGhlcjoKKyAgICBjYXNlIEN0
YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclNwZWNMYXN0OgorICAgIGNhc2UgQ3RhcERl
dmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyRXh0ZW5zaW9uRmlyc3Q6CisgICAgY2FzZSBDdGFw
RGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJFeHRlbnNpb25MYXN0OgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVmVuZG9yRmlyc3Q6CisgICAgY2FzZSBDdGFw
RGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJWZW5kb3JMYXN0OgorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQogCiBi
b29sIGlzRmlkb0hpZERldmljZUNvbW1hbmQoRmlkb0hpZERldmljZUNvbW1hbmQgY21kKQogewpA
QCAtNTIsNiArMTEyLDE2IEBAIGJvb2wgaXNGaWRvSGlkRGV2aWNlQ29tbWFuZChGaWRvSGlkRGV2
aWNlQ29tbWFuZCBjbWQpCiAgICAgfQogfQogCitjb25zdCBjaGFyKiBwdWJsaWNLZXlDcmVkZW50
aWFsVHlwZVRvU3RyaW5nKFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlIHR5cGUpCit7CisgICAgc3dp
dGNoICh0eXBlKSB7CisgICAgY2FzZSBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5
OgorICAgICAgICByZXR1cm4ga1B1YmxpY0tleTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIGtQdWJsaWNLZXk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIGZpZG8K
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaAppbmRleCBiODY5MGYwM2RkNDg0
ZGZkMzY3NTY3NTBlMDU2YTI3NWM2ZGQzZTU2Li41Y2Q3YWU4YjM5MTM1MTQwMTQ3ZmMwNjk3OTM2
MzgwZjQ5MDBiYTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vRmlkb0NvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vZmlkby9GaWRvQ29uc3RhbnRzLmgKQEAgLTMxLDggKzMxLDkzIEBACiAKICNpZiBFTkFCTEUo
V0VCX0FVVEhOKQogCisjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCIKKwogbmFt
ZXNwYWNlIGZpZG8gewogCitlbnVtIGNsYXNzIFByb3RvY29sVmVyc2lvbiB7CisgICAga0N0YXAs
CisgICAga1UyZiwKKyAgICBrVW5rbm93biwKK307CisKKy8vIExlbmd0aCBvZiB0aGUgU0hBLTI1
NiBoYXNoIG9mIHRoZSBSUCBJRCBhc3Nzb2NpYXRlZCB3aXRoIHRoZSBjcmVkZW50aWFsOgorLy8g
aHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXV0aGVudGljYXRvci1kYXRhCitj
b25zdGV4cHIgc2l6ZV90IGtScElkSGFzaExlbmd0aCA9IDMyOworCisvLyBMZW5ndGggb2YgdGhl
IGZsYWdzOgorLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXV0aGVudGlj
YXRvci1kYXRhCitjb25zdGV4cHIgc2l6ZV90IGtGbGFnc0xlbmd0aCA9IDE7CisKKy8vIExlbmd0
aCBvZiB0aGUgc2lnbmF0dXJlIGNvdW50ZXIsIDMyLWJpdCB1bnNpZ25lZCBiaWctZW5kaWFuIGlu
dGVnZXI6CisvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI3NlYy1hdXRoZW50aWNh
dG9yLWRhdGEKK2NvbnN0ZXhwciBzaXplX3Qga1NpZ25Db3VudGVyTGVuZ3RoID0gNDsKKworLy8g
TGVuZ3RoIG9mIHRoZSBBQUdVSUQgb2YgdGhlIGF1dGhlbnRpY2F0b3I6CisvLyBodHRwczovL3d3
dy53My5vcmcvVFIvd2ViYXV0aG4vI3NlYy1hdHRlc3RlZC1jcmVkZW50aWFsLWRhdGEKK2NvbnN0
ZXhwciBzaXplX3Qga0FhZ3VpZExlbmd0aCA9IDE2OworCisvLyBMZW5ndGggb2YgdGhlIGJ5dGUg
bGVuZ3RoIEwgb2YgQ3JlZGVudGlhbCBJRCwgMTYtYml0IHVuc2lnbmVkIGJpZy1lbmRpYW4KKy8v
IGludGVnZXI6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jc2VjLWF0dGVzdGVkLWNy
ZWRlbnRpYWwtZGF0YQorY29uc3RleHByIHNpemVfdCBrQ3JlZGVudGlhbElkTGVuZ3RoTGVuZ3Ro
ID0gMjsKKworLy8gQ1RBUCBwcm90b2NvbCBkZXZpY2UgcmVzcG9uc2UgY29kZSwgYXMgc3BlY2lm
aWVkIGluCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIw
MTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3
MDkyNy5odG1sI2Vycm9yLXJlc3BvbnNlcworZW51bSBjbGFzcyBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlIDogdWludDhfdCB7CisgICAga1N1Y2Nlc3MgPSAweDAwLAorICAgIGtDdGFwMUVyckludmFs
aWRDb21tYW5kID0gMHgwMSwKKyAgICBrQ3RhcDFFcnJJbnZhbGlkUGFyYW1ldGVyID0gMHgwMiwK
KyAgICBrQ3RhcDFFcnJJbnZhbGlkTGVuZ3RoID0gMHgwMywKKyAgICBrQ3RhcDFFcnJJbnZhbGlk
U2VxID0gMHgwNCwKKyAgICBrQ3RhcDFFcnJUaW1lb3V0ID0gMHgwNSwKKyAgICBrQ3RhcDFFcnJD
aGFubmVsQnVzeSA9IDB4MDYsCisgICAga0N0YXAxRXJyTG9ja1JlcXVpcmVkID0gMHgwQSwKKyAg
ICBrQ3RhcDFFcnJJbnZhbGlkQ2hhbm5lbCA9IDB4MEIsCisgICAga0N0YXAyRXJyQ0JPUlBhcnNp
bmcgPSAweDEwLAorICAgIGtDdGFwMkVyclVuZXhwZWN0ZWRUeXBlID0gMHgxMSwKKyAgICBrQ3Rh
cDJFcnJJbnZhbGlkQ0JPUiA9IDB4MTIsCisgICAga0N0YXAyRXJySW52YWxpZENCT1JUeXBlID0g
MHgxMywKKyAgICBrQ3RhcDJFcnJNaXNzaW5nUGFyYW1ldGVyID0gMHgxNCwKKyAgICBrQ3RhcDJF
cnJMaW1pdEV4Y2VlZGVkID0gMHgxNSwKKyAgICBrQ3RhcDJFcnJVbnN1cHBvcnRlZEV4dGVuc2lv
biA9IDB4MTYsCisgICAga0N0YXAyRXJyVG9vTWFueUVsZW1lbnRzID0gMHgxNywKKyAgICBrQ3Rh
cDJFcnJFeHRlbnNpb25Ob3RTdXBwb3J0ZWQgPSAweDE4LAorICAgIGtDdGFwMkVyckNyZWRlbnRp
YWxFeGNsdWRlZCA9IDB4MTksCisgICAga0N0YXAyRXJyUHJvY2Vzc3NpbmcgPSAweDIxLAorICAg
IGtDdGFwMkVyckludmFsaWRDcmVkZW50aWFsID0gMHgyMiwKKyAgICBrQ3RhcDJFcnJVc2VyQWN0
aW9uUGVuZGluZyA9IDB4MjMsCisgICAga0N0YXAyRXJyT3BlcmF0aW9uUGVuZGluZyA9IDB4MjQs
CisgICAga0N0YXAyRXJyTm9PcGVyYXRpb25zID0gMHgyNSwKKyAgICBrQ3RhcDJFcnJVbnN1cHBv
cnRlZEFsZ29yaXRobXMgPSAweDI2LAorICAgIGtDdGFwMkVyck9wZXJhdGlvbkRlbmllZCA9IDB4
MjcsCisgICAga0N0YXAyRXJyS2V5U3RvcmVGdWxsID0gMHgyOCwKKyAgICBrQ3RhcDJFcnJOb3RC
dXN5ID0gMHgyOSwKKyAgICBrQ3RhcDJFcnJOb09wZXJhdGlvblBlbmRpbmcgPSAweDJBLAorICAg
IGtDdGFwMkVyclVuc3VwcG9ydGVkT3B0aW9uID0gMHgyQiwKKyAgICBrQ3RhcDJFcnJJbnZhbGlk
T3B0aW9uID0gMHgyQywKKyAgICBrQ3RhcDJFcnJLZWVwQWxpdmVDYW5jZWwgPSAweDJELAorICAg
IGtDdGFwMkVyck5vQ3JlZGVudGlhbHMgPSAweDJFLAorICAgIGtDdGFwMkVyclVzZXJBY3Rpb25U
aW1lb3V0ID0gMHgyRiwKKyAgICBrQ3RhcDJFcnJOb3RBbGxvd2VkID0gMHgzMCwKKyAgICBrQ3Rh
cDJFcnJQaW5JbnZhbGlkID0gMHgzMSwKKyAgICBrQ3RhcDJFcnJQaW5CbG9ja2VkID0gMHgzMiwK
KyAgICBrQ3RhcDJFcnJQaW5BdXRoSW52YWxpZCA9IDB4MzMsCisgICAga0N0YXAyRXJyUGluQXV0
aEJsb2NrZWQgPSAweDM0LAorICAgIGtDdGFwMkVyclBpbk5vdFNldCA9IDB4MzUsCisgICAga0N0
YXAyRXJyUGluUmVxdWlyZWQgPSAweDM2LAorICAgIGtDdGFwMkVyclBpblBvbGljeVZpb2xhdGlv
biA9IDB4MzcsCisgICAga0N0YXAyRXJyUGluVG9rZW5FeHBpcmVkID0gMHgzOCwKKyAgICBrQ3Rh
cDJFcnJSZXF1ZXN0VG9vTGFyZ2UgPSAweDM5LAorICAgIGtDdGFwMkVyck90aGVyID0gMHg3RiwK
KyAgICBrQ3RhcDJFcnJTcGVjTGFzdCA9IDB4REYsCisgICAga0N0YXAyRXJyRXh0ZW5zaW9uRmly
c3QgPSAweEUwLAorICAgIGtDdGFwMkVyckV4dGVuc2lvbkxhc3QgPSAweEVGLAorICAgIGtDdGFw
MkVyclZlbmRvckZpcnN0ID0gMHhGMCwKKyAgICBrQ3RhcDJFcnJWZW5kb3JMYXN0ID0gMHhGRgor
fTsKKworYm9vbCBpc0N0YXBEZXZpY2VSZXNwb25zZUNvZGUoQ3RhcERldmljZVJlc3BvbnNlQ29k
ZSk7CisKIC8vIENvbW1hbmRzIHN1cHBvcnRlZCBieSBDVEFQSElEIGRldmljZSBhcyBzcGVjaWZp
ZWQgaW4KIC8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAx
NzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcw
OTI3Lmh0bWwjY3RhcGhpZC1jb21tYW5kcwogZW51bSBjbGFzcyBGaWRvSGlkRGV2aWNlQ29tbWFu
ZCA6IHVpbnQ4X3QgewpAQCAtNDcsNyArMTMyLDI0IEBAIGVudW0gY2xhc3MgRmlkb0hpZERldmlj
ZUNvbW1hbmQgOiB1aW50OF90IHsKICAgICBrTG9jayA9IDB4MDQsCiB9OwogCi1ib29sIGlzRmlk
b0hpZERldmljZUNvbW1hbmQoRmlkb0hpZERldmljZUNvbW1hbmQgY21kKTsKK2Jvb2wgaXNGaWRv
SGlkRGV2aWNlQ29tbWFuZChGaWRvSGlkRGV2aWNlQ29tbWFuZCk7CisKKy8vIFN0cmluZyBrZXkg
dmFsdWVzIGZvciBDVEFQIHJlcXVlc3Qgb3B0aW9uYWwgcGFyYW1ldGVycyBhbmQKKy8vIEF1dGhl
bnRpY2F0b3JHZXRJbmZvIHJlc3BvbnNlLgorY29uc3QgY2hhciBrUmVzaWRlbnRLZXlNYXBLZXlb
XSA9ICJyayI7Citjb25zdCBjaGFyIGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5W10gPSAidXYiOwor
Y29uc3QgY2hhciBrVXNlclByZXNlbmNlTWFwS2V5W10gPSAidXAiOworY29uc3QgY2hhciBrQ2xp
ZW50UGluTWFwS2V5W10gPSAiY2xpZW50UGluIjsKK2NvbnN0IGNoYXIga1BsYXRmb3JtRGV2aWNl
TWFwS2V5W10gPSAicGxhdCI7Citjb25zdCBjaGFyIGtFbnRpdHlJZE1hcEtleVtdID0gImlkIjsK
K2NvbnN0IGNoYXIga0VudGl0eU5hbWVNYXBLZXlbXSA9ICJuYW1lIjsKK2NvbnN0IGNoYXIga0Rp
c3BsYXlOYW1lTWFwS2V5W10gPSAiZGlzcGxheU5hbWUiOworY29uc3QgY2hhciBrSWNvblVybE1h
cEtleVtdID0gImljb24iOworY29uc3QgY2hhciBrQ3JlZGVudGlhbFR5cGVNYXBLZXlbXSA9ICJ0
eXBlIjsKK2NvbnN0IGNoYXIga0NyZWRlbnRpYWxBbGdvcml0aG1NYXBLZXlbXSA9ICJhbGciOwor
Ly8gS2V5cyBmb3Igc3RvcmluZyBjcmVkZW50aWFsIGRlc2NyaXB0b3IgaW5mb3JtYXRpb24gaW4g
Q0JPUiBtYXAuCitjb25zdCBjaGFyIGtDcmVkZW50aWFsSWRLZXlbXSA9ICJpZCI7Citjb25zdCBj
aGFyIGtDcmVkZW50aWFsVHlwZUtleVtdID0gInR5cGUiOwogCiAvLyBISUQgdHJhbnNwb3J0IHNw
ZWNpZmljIGNvbnN0YW50cy4KIGNvbnN0IHNpemVfdCBrSGlkUGFja2V0U2l6ZSA9IDY0OwpAQCAt
NjMsNiArMTY1LDM0IEBAIGNvbnN0IHVpbnQ4X3Qga0hpZE1heExvY2tTZWNvbmRzID0gMTA7CiAv
LyBNZXNzYWdlcyBhcmUgbGltaXRlZCB0byBhbiBpbml0aWF0aW9uIHBhY2tldCBhbmQgMTI4IGNv
bnRpbnVhdGlvbiBwYWNrZXRzLgogY29uc3Qgc2l6ZV90IGtIaWRNYXhNZXNzYWdlU2l6ZSA9IDc2
MDk7CiAKKy8vIEF1dGhlbnRpY2F0b3IgQVBJIGNvbW1hbmRzIHN1cHBvcnRlZCBieSBDVEFQIGRl
dmljZXMsIGFzIHNwZWNpZmllZCBpbgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNz
L2ZpZG8tdjIuMC1yZC0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3Rv
Y29sLXYyLjAtcmQtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNhdG9yLWFwaQorZW51bSBjbGFzcyBD
dGFwUmVxdWVzdENvbW1hbmQgOiB1aW50OF90IHsKKyAgICBrQXV0aGVudGljYXRvck1ha2VDcmVk
ZW50aWFsID0gMHgwMSwKKyAgICBrQXV0aGVudGljYXRvckdldEFzc2VydGlvbiA9IDB4MDIsCisg
ICAga0F1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uID0gMHgwOCwKKyAgICBrQXV0aGVudGlj
YXRvckdldEluZm8gPSAweDA0LAorICAgIGtBdXRoZW50aWNhdG9yQ2xpZW50UGluID0gMHgwNiwK
KyAgICBrQXV0aGVudGljYXRvclJlc2V0ID0gMHgwNywKK307CisKKy8vIFN0cmluZyBrZXkgdmFs
dWVzIGZvciBhdHRlc3RhdGlvbiBvYmplY3QgYXMgYSByZXNwb25zZSB0byBNYWtlQ3JlZGVudGlh
bAorLy8gcmVxdWVzdC4KK2NvbnN0IGNoYXIga0Zvcm1hdEtleVtdID0gImZtdCI7Citjb25zdCBj
aGFyIGtBdHRlc3RhdGlvblN0YXRlbWVudEtleVtdID0gImF0dFN0bXQiOworY29uc3QgY2hhciBr
QXV0aERhdGFLZXlbXSA9ICJhdXRoRGF0YSI7Citjb25zdCBjaGFyIGtOb25lQXR0ZXN0YXRpb25W
YWx1ZVtdID0gIm5vbmUiOworCisvLyBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgcHVibGljIGtl
eSBjcmVkZW50aWFsIGVudW0uCisvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViYXV0aG4vI2Ny
ZWRlbnRpYWxUeXBlCitjb25zdCBjaGFyIGtQdWJsaWNLZXlbXSA9ICJwdWJsaWMta2V5IjsKKwor
Y29uc3QgY2hhciogcHVibGljS2V5Q3JlZGVudGlhbFR5cGVUb1N0cmluZyhXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsVHlwZSk7CisKKy8vIEZJWE1FOiBBZGQgdXJsIHRvIHRoZSBvZmZpY2lh
bCBzcGVjIG9uY2UgaXQncyBzdGFuZGFyZGl6ZWQuCitjb25zdCBjaGFyIGtDdGFwMlZlcnNpb25b
XSA9ICJGSURPXzJfMCI7Citjb25zdCBjaGFyIGtVMmZWZXJzaW9uW10gPSAiVTJGX1YyIjsKKwog
fSAvLyBuYW1lc3BhY2UgZmlkbwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKaW5kZXggYjc4MTFhMzM5ZWI2NWRiMTVjYWVlYTE3Zjc5YmUyNDg3OTU5ZWMzZi4uYjA2
ZDI0NzFiYmJkY2VjODUyMTc3MzVmOGRhZmRlMzViZTQwNThkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAg
LTI1OCw2ICsyNTgsMTAgQEAgTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmNw
cAogTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JSZWFkZXIuY3BwCiBNb2R1bGVzL3dlYmF1dGhu
L2Nib3IvQ0JPUlZhbHVlLmNwcAogTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JXcml0ZXIuY3Bw
CitNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5jcHAK
K01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAK
K01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcAorTW9kdWxl
cy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcAogTW9kdWxlcy93ZWJh
dXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwCiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0hp
ZE1lc3NhZ2UuY3BwCiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0hpZFBhY2tldC5jcHAKQEAg
LTMxNTQsNiArMzE1OCw3IEBAIEpTVHJlZVdhbGtlci5jcHAKIEpTVUlFdmVudC5jcHAKIEpTVUlF
dmVudEluaXQuY3BwCiBKU1VSTFNlYXJjaFBhcmFtcy5jcHAKK0pTVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50LmNwcAogSlNWUkRpc3BsYXkuY3BwCiBKU1ZSRGlzcGxheUNhcGFiaWxpdGllcy5j
cHAKIEpTVlJEaXNwbGF5RXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTUxNjc1MWI4ZmRkMmQyOTliYzc3YmM2MTI1
N2UxMTRjYzY2MTFmZS4uMjdhMDYxZGJiYzA1NjlmNzQzNWNiZjEzNmZmNDViZTA2ZTE0NzRkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTc1Miw2ICsxNzUyLDEyIEBACiAJCTU3MjFBOTg3MUVDRTUzQjEwMDgxMjk1QSAvKiBD
cnlwdG9EaWdlc3RBbGdvcml0aG0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3MjFBOTg2MUVDRTUzQjEwMDgxMjk1QSAvKiBDcnlwdG9EaWdlc3RBbGdv
cml0aG0uaCAqLzsgfTsKIAkJNTcyMUE5OEIxRUNFNTcwNDAwODEyOTVBIC8qIENyeXB0b0FsZ29y
aXRobVJzYVBzc1BhcmFtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTcyMUE5ODgxRUNFNTcwNDAwODEyOTVBIC8qIENyeXB0b0FsZ29yaXRobVJzYVBz
c1BhcmFtcy5oICovOyB9OwogCQk1NzJBN0YyMTFDNkU1NzE5MDA5QzYxNDkgLyogU2ltdWxhdGVk
Q2xpY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
MkE3RjIwMUM2RTU3MTkwMDlDNjE0OSAvKiBTaW11bGF0ZWRDbGljay5oICovOyB9OworCQk1NzJC
NDAxRjIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwMUQyMTc1N0E2NDAw
MEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NzJCNDAyQzIxNzY5MDIwMDAwQUQ0M0UgLyog
SlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDJBMjE3NjkwMUYwMDBBRDQzRSAvKiBKU1VzZXJW
ZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICovOyB9OworCQk1NzJCNDAzNjIxNzZBOTIyMDAwQUQ0
M0UgLyogVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJCNDAyMzIxNzY4RDg1MDAwQUQ0M0UgLyogVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTcyQjQwM0EyMTc3MjU4MTAwMEFENDNFIC8qIERldmljZVJl
c3BvbnNlQ29udmVydGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzJCNDAzNzIxNzcyNTZDMDAwQUQ0M0UgLyogRGV2aWNlUmVzcG9uc2VDb252ZXJ0
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1
NzJCNDA0MDIxNzgwMTcxMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDNF
MjE3ODAxNzAwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU3MkI0MDQyMjE3
ODExNEEwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJCNDAzQzIxNzdGQjYxMDAw
QUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU3MzAzQkI5MjAwNkM2RUUwMDM1NTk2
NSAvKiBDQk9SVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3MzAzQkI0MjAwNkM2RUQwMDM1NTk2NSAvKiBDQk9SVmFsdWUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NzMwM0JCQTIwMDZDNkVF
MDAzNTU5NjUgLyogQ0JPUldyaXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTczMDNCQjUyMDA2QzZFRDAwMzU1OTY1IC8qIENCT1JXcml0ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NzMwM0JC
QjIwMDZDNkVFMDAzNTU5NjUgLyogQ0JPUkJpbmFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQjYyMDA2QzZFRDAwMzU1OTY1IC8qIENCT1JC
aW5hcnkuaCAqLzsgfTsKQEAgLTg1NjMsNiArODU2OSwxOCBAQAogCQk1NzIxQTk4QTFFQ0U1NzA0
MDA4MTI5NUEgLyogUnNhUHNzUGFyYW1zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSc2FQc3NQYXJhbXMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJBN0YyMDFDNkU1NzE5MDA5QzYxNDkgLyogU2lt
dWxhdGVkQ2xpY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2ltdWxhdGVk
Q2xpY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyQTdGMjIxQzZFNUE2NjAw
OUM2MTQ5IC8qIFNpbXVsYXRlZENsaWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNpbXVsYXRlZENsaWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTcyQjQwMUQyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1NzJCNDAxRTIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENv
bnZlcnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMjMyMTc2OEQ4NTAwMEFENDNF
IC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyVmVy
aWZpY2F0aW9uUmVxdWlyZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcy
QjQwMjUyMTc2OEQ4NTAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTcyQjQwMkEyMTc2OTAxRjAwMEFENDNFIC8qIEpTVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3
MkI0MDJCMjE3NjkwMUYwMDBBRDQzRSAvKiBKU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1VzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDM3
MjE3NzI1NkMwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAzODIxNzcyNTZDMDAwQUQ0M0UgLyogRGV2aWNl
UmVzcG9uc2VDb252ZXJ0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1NzJCNDAzQjIxNzdGQjYwMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcy
QjQwM0MyMTc3RkI2MTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAzRDIxNzgwMTZGMDAw
QUQ0M0UgLyogQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAzRTIxNzgwMTcwMDAwQUQ0M0Ug
LyogQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQjQyMDA2QzZFRDAwMzU1OTY1IC8qIENCT1JWYWx1ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDQk9SVmFsdWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQjUyMDA2QzZFRDAwMzU1OTY1IC8qIENCT1JXcml0
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0JPUldyaXRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzMwM0JCNjIwMDZDNkVEMDAzNTU5NjUgLyogQ0JP
UkJpbmFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDQk9SQmluYXJ5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTA3Niw2ICsxOTA5NCwxNCBAQAogCQk1
NzhBNEJGQTIxNjZBRTAwMDBEMDhGMzQgLyogZmlkbyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTcyQjQwM0IyMTc3RkI2MDAwMEFENDNFIC8qIEF1dGhl
bnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwICovLAorCQkJCTU3MkI0MDNDMjE3N0ZCNjEwMDBB
RDQzRSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmggKi8sCisJCQkJNTcyQjQwM0Qy
MTc4MDE2RjAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcCAqLywK
KwkJCQk1NzJCNDAzRTIxNzgwMTcwMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnMuaCAqLywKKwkJCQk1NzJCNDAxRTIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVz
dENvbnZlcnRlci5jcHAgKi8sCisJCQkJNTcyQjQwMUQyMTc1N0E2NDAwMEFENDNFIC8qIERldmlj
ZVJlcXVlc3RDb252ZXJ0ZXIuaCAqLywKKwkJCQk1NzJCNDAzODIxNzcyNTZDMDAwQUQ0M0UgLyog
RGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwICovLAorCQkJCTU3MkI0MDM3MjE3NzI1NkMwMDBB
RDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oICovLAogCQkJCTU3QkFGMjg3MjE2N0Qy
RjcwMDhFOTU0RSAvKiBGaWRvQ29uc3RhbnRzLmNwcCAqLywKIAkJCQk1NzhBNEMwQjIxNjdEMjk2
MDBEMDhGMzQgLyogRmlkb0NvbnN0YW50cy5oICovLAogCQkJCTU3OEE0QzA4MjE2N0QyOTUwMEQw
OEYzNCAvKiBGaWRvSGlkTWVzc2FnZS5jcHAgKi8sCkBAIC0xOTE1NSw2ICsxOTE4MSw4IEBACiAJ
CQkJNTczMDNDMDgyMDA5OThGODAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5pZGwgKi8sCiAJCQkJNTczMDNCRUEyMDA5N0Y0MDAwMzU1OTY1IC8qIFB1YmxpY0tl
eUNyZWRlbnRpYWxUeXBlLmggKi8sCiAJCQkJNTczMDNCRjAyMDA5ODQ2MTAwMzU1OTY1IC8qIFB1
YmxpY0tleUNyZWRlbnRpYWxUeXBlLmlkbCAqLywKKwkJCQk1NzJCNDAyMzIxNzY4RDg1MDAwQUQ0
M0UgLyogVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggKi8sCisJCQkJNTcyQjQwMjUyMTc2
OEQ4NTAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGwgKi8sCiAJCQkp
OwogCQkJcGF0aCA9IHdlYmF1dGhuOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE5
MTgwLDYgKzE5MjA4LDggQEAKIAkJCQk1NzMwM0MwQzIwMDk5Qzc1MDAzNTU5NjUgLyogSlNQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaCAqLywKIAkJCQk1NzMwM0JGQTIwMDk5MTM1
MDAzNTU5NjUgLyogSlNQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5jcHAgKi8sCiAJCQkJNTczMDNC
RjkyMDA5OTEzNDAwMzU1OTY1IC8qIEpTUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCAqLywKKwkJ
CQk1NzJCNDAyQjIxNzY5MDFGMDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQuY3BwICovLAorCQkJCTU3MkI0MDJBMjE3NjkwMUYwMDBBRDQzRSAvKiBKU1VzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBXZWJBdXRoTjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNzY1OCw3ICsyNzY4OCw5IEBACiAJCQkJNTczMDND
MUYyMDA5QUI0MjAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0M0NjIwMTA1RDJGMDAzNTU5NjUgLyogQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzYwODI3MjIwMjE1QTU1MDAx
MTY2NzggLyogQXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQk1NzJCNDA0MjIxNzgxMTRBMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNCRDIyMDA4N0E4MzAwMzU1OTY1IC8qIEF1
dGhlbnRpY2F0b3JSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcyQjQwNDAyMTc4MDE3
MTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1N0RDRUQ5MDIxNDg3RkY3MDAxNkI4NDcgLyogQXV0aGVudGljYXRvclRyYW5zcG9y
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwMTkyMEUxMzJFQkYyRTAwOEJGRTU1IC8qIEF1dG9j
YXBpdGFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUE3QUE0MzEzMkYwRUNDMDBEM0EzQzIg
LyogQXV0b2NhcGl0YWxpemVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODE3NSw2ICsyODIw
Nyw4IEBACiAJCQkJNTlBOEYxRDYxMUE2OTUxMzAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTkwRTFCNDkxMUU0RUY0QjAwNjlGNzg0
IC8qIERldmljZU9yaWVudGF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlBODVFQTQx
MTlENjhFQzAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTU3MkI0MDFGMjE3NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVydGVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzJCNDAzQTIxNzcyNTgxMDAwQUQ0M0UgLyogRGV2aWNl
UmVzcG9uc2VDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2NzcyNUZEMUE1QjNBRDkw
MDNDMjRERCAvKiBERkEuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDlGNTY2MUFBMEY3M0MwMERB
NDVGRiAvKiBERkFCeXRlY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEOUY1NjcxQUEwRjc0
MjAwREE0NUZGIC8qIERGQUJ5dGVjb2RlQ29tcGlsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjk2
NTcsNiArMjk2OTEsNyBAQAogCQkJCTQ2NTMwN0QwMURCNkVFNDgwMEU0MTM3QyAvKiBKU1VJRXZl
bnRJbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzczRkIxMjE5MUVGNkY0MDA3REUwNjEgLyog
SlNVc2VyTWVzc2FnZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNzNGQjBEMTkxRUY1
QTgwMDdERTA2MSAvKiBKU1VzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTU3MkI0MDJDMjE3NjkwMjAwMDBBRDQzRSAvKiBKU1VzZXJWZXJpZmljYXRpb25S
ZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTVDNzcwOTMxMDBEM0NBODAwNUJBMjY3
IC8qIEpTVmFsaWRpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNEIxNzFDOTAx
NDAwOUI0OEMzIC8qIEpTVmlkZW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNEQx
NzFDOTAxNDAwOUI0OEMzIC8qIEpTVmlkZW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLApAQCAt
MzEzMDcsNiArMzEzNDIsNyBAQAogCQkJCUJDOEJGMTUxMTA1ODEzQkYwMEE0MEEwNyAvKiBVc2Vy
U3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4QkYxNUExMDU4MTQxODAwQTQwQTA3
IC8qIFVzZXJTdHlsZVNoZWV0VHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREYzMTdDMTFG
OEQ2ODMwMDNDNUJGOCAvKiBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTcyQjQwMzYyMTc2QTkyMjAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1
aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRjE0RTYxRUFBQzU5QjAwMjZFRUFBIC8q
IFVUSVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxRkFGQkYxOTE1QTVGQTc0MDAwODNB
MjAgLyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0M0NUI4RTFEQzJCNjhB
MDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDY5OTY0YmI5YTYyMTJh
MWU0ZjI5NThlMDM5YzA5ZjU5ZjhkM2NmMi4uOGYyNTkwYTJjYmFhMDQ0ZDhkNTRiZTg4YjQ1YzMw
ODQzOTljMjJhMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTEwLTIyICBKaWV3ZW4gVGFuICA8amlld2VuX3Rh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBvcnQgQ1RBUCBkZXZpY2UgcmVx
dWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzIGZyb20gQ2hyb21pdW0KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDc4NAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDU0NjAzMzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUlZhbHVl
VGVzdC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcDogQWRkZWQuCisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ3RhcFJlc3BvbnNlVGVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6Z2V0VGVzdENvcnJ1cHRlZFNpZ25SZXNwb25zZSk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpnZXRUZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXMpOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6Y29udmVydFRvVmVjdG9yKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaDogQWRkZWQu
CisKIDIwMTgtMTAtMjIgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjIzNDA4MSk6IFRlc3RXZWJLaXRBUEkuVmlkZW9Db250cm9sc01h
bmFnZXIuVmlkZW9Db250cm9sc01hbmFnZXJBdWRpb0VsZW1lbnRGb2xsb3dpbmdVc2VySW50ZXJh
Y3Rpb24gaXMgYSBmbGFreSB0aW1lb3V0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ5ODJm
NGZjOWIxMzg2OTA1ZWQ2OWUwZWM3MzBkY2Q4NTczNDY2OGYuLjNjM2EzMjc4NWNlYWJhZmQwZjg2
MTgxMzJkMTRmOTUzYWYzY2UyZTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDYsNiAr
MjQ2LDggQEAKIAkJNTcxNEVDQkIxQ0E4QkZFNDAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9y
aWdpbmFsVVJMRnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93bmxvYWRSZXF1
ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovOyB9OwogCQk1NzE0RUNCRDFDQThDMjJBMDAwNTFB
QzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQkMxQ0E4QzIxODAwMDUx
QUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sICovOyB9OwogCQk1NzFGN0ZE
MDFGMjk2MUZCMDA5NDY2NDggLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21w
YXRpYmlsaXR5LnNxbGl0ZTMtd2FsIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3MUY3RkNGMUYyOTYxRTEwMDk0NjY0OCAvKiBJbmRleGVkREJT
dHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwgKi87IH07CisJ
CTU3MkI0MDM0MjE3NjlBODgwMDBBRDQzRSAvKiBDdGFwUmVxdWVzdFRlc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwMzMyMTc2OUE4ODAw
MEFENDNFIC8qIEN0YXBSZXF1ZXN0VGVzdC5jcHAgKi87IH07CisJCTU3MkI0MDQ0MjE3ODFCNDMw
MDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDQzMjE3ODFCNDIwMDBBRDQzRSAvKiBDdGFwUmVz
cG9uc2VUZXN0LmNwcCAqLzsgfTsKIAkJNTczMDNCQzkyMDA4MjREMzAwMzU1OTY1IC8qIENCT1JW
YWx1ZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTczMDNCQUMyMDA2QzU2MDAwMzU1OTY1IC8qIENCT1JWYWx1ZVRlc3QuY3BwICovOyB9Owog
CQk1NzMwM0JDQTIwMDgyQzAxMDAzNTU5NjUgLyogQ0JPUldyaXRlclRlc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQUIyMDA2QzU1NDAw
MzU1OTY1IC8qIENCT1JXcml0ZXJUZXN0LmNwcCAqLzsgfTsKIAkJNTczMDNCQ0IyMDA4Mzc2NTAw
MzU1OTY1IC8qIENCT1JSZWFkZXJUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzAzQkMyMjAwNzFFMjIwMDM1NTk2NSAvKiBDQk9SUmVhZGVy
VGVzdC5jcHAgKi87IH07CkBAIC0xNTUxLDYgKzE1NTMsOSBAQAogCQk1NzE0RUNCQTFDQThCRkQx
MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1s
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzE0RUNCQzFDQThDMjE4MDAwNTFBQzgg
LyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTcxRjdGQ0YxRjI5NjFFMTAwOTQ2NjQ4IC8qIEluZGV4ZWREQlN0cnVj
dHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXdhbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhl
ZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtd2FsIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMzMyMTc2OUE4ODAwMEFENDNFIC8qIEN0
YXBSZXF1ZXN0VGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
dGFwUmVxdWVzdFRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAz
NTIxNzZBMDI5MDAwQUQ0M0UgLyogRmlkb1Rlc3REYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpZG9U
ZXN0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDA0MzIxNzgxQjQy
MDAwQUQ0M0UgLyogQ3RhcFJlc3BvbnNlVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDdGFwUmVzcG9uc2VUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTczMDNCQUIyMDA2QzU1NDAwMzU1OTY1IC8qIENCT1JXcml0ZXJUZXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENCT1JXcml0ZXJUZXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQUMyMDA2QzU2MDAwMzU1OTY1IC8q
IENCT1JWYWx1ZVRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q0JPUlZhbHVlVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAzQkMy
MjAwNzFFMjIwMDM1NTk2NSAvKiBDQk9SUmVhZGVyVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDQk9SUmVhZGVyVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yNTMyLDExICsyNTM3LDE0IEBACiAJCQkJMUM5RUI4NDAxRTM4MERBMTAw
NUM2NDQyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJN0NCMTg0QzQxQUEz
RjIxMDAwNjZFREZEIC8qIENvbnRlbnRFeHRlbnNpb25zLmNwcCAqLywKIAkJCQlDRDU0NTFFOTE5
RTQxRjlEMDAxNjkzNkYgLyogQ1NTUGFyc2VyLmNwcCAqLywKKwkJCQk1NzJCNDAzMzIxNzY5QTg4
MDAwQUQ0M0UgLyogQ3RhcFJlcXVlc3RUZXN0LmNwcCAqLywKKwkJCQk1NzJCNDA0MzIxNzgxQjQy
MDAwQUQ0M0UgLyogQ3RhcFJlc3BvbnNlVGVzdC5jcHAgKi8sCiAJCQkJMjYwQkE1NzgxQjFEMkU3
QjAwNEZBMDdDIC8qIERGQUNvbWJpbmVyLmNwcCAqLywKIAkJCQkyNjBCQTU3QTFCMUQyRUUyMDA0
RkEwN0MgLyogREZBSGVscGVycy5oICovLAogCQkJCTI2RjZFMUVGMUFEQzc0OUIwMERFNjk2QiAv
KiBERkFNaW5pbWl6ZXIuY3BwICovLAogCQkJCTMxNTExODBGMURCMUFERDUwMDE3NjMwNCAvKiBF
eHRlbmRlZENvbG9yLmNwcCAqLywKIAkJCQk1Nzk2NTFFNjIxNkJGRDUzMDA2RUJGRTUgLyogRmlk
b0hpZE1lc3NhZ2VUZXN0LmNwcCAqLywKKwkJCQk1NzJCNDAzNTIxNzZBMDI5MDAwQUQ0M0UgLyog
Rmlkb1Rlc3REYXRhLmggKi8sCiAJCQkJN0EzMkQ3NDkxRjAyMTUxNTAwMTYyQzQ0IC8qIEZpbGVN
b25pdG9yLmNwcCAqLywKIAkJCQk0MTk3M0I1QTFBRjIyODZBMDA2QzdCMzYgLyogRmlsZVN5c3Rl
bS5jcHAgKi8sCiAJCQkJN0E5MDlBNzAxRDg3NzQ3NTAwN0UxMEY4IC8qIEZsb2F0UG9pbnQuY3Bw
ICovLApAQCAtMzc2Nyw2ICszNzc1LDggQEAKIAkJCQk3Q0NFN0VBQzFBNDExQTM0MDA0NDdDNEMg
LyogQ291bnRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FFQUQ0N0YxRTIwMTE2QzAwNDE2
RUZFIC8qIENyb3NzUGFydGl0aW9uRmlsZVNjaGVtZUFjY2Vzcy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RURCMUE0MTFBOTIwMDQ0N0M0QyAvKiBDU1NQYXJzZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTcyQjQwMzQyMTc2OUE4ODAwMEFENDNFIC8qIEN0YXBSZXF1ZXN0VGVzdC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk1NzJCNDA0NDIxNzgxQjQzMDAwQUQ0M0UgLyogQ3RhcFJlc3Bv
bnNlVGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUM3QjU3MDIwRDlCQTVCMDAyQzA5QTAg
LyogQ3VzdG9tQnVuZGxlT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FDN0I1NkQyMEQ5
NzY5RjAwMkMwOUEwIC8qIEN1c3RvbUJ1bmRsZVBhcmFtZXRlci5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RjI5MUE0MTFCMTAwMDQ0N0M0QyAvKiBDdXN0b21Qcm90b2NvbHNJbnZhbGlkU2No
ZW1lLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvQ0JPUlZhbHVlVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ0JPUlZhbHVlVGVzdC5jcHAKaW5kZXggYTJkNmI4OWYyNzI4ZmY1ZTg4OTdkMjQ0
YjBjYjU4MzlmOTM1ZWNlMS4uZmY1MjBkYzdhNTk0OTRjNWEzZDZkNjE2ZWM1ZGY1YTA0ZGM3Yzdk
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NCT1JWYWx1
ZVRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DQk9SVmFs
dWVUZXN0LmNwcApAQCAtMTQ4LDYgKzE0OCwxNyBAQCBURVNUKENCT1JWYWx1ZVRlc3QsIENvbnN0
cnVjdFNpbXBsZVZhbHVlKQogICAgIEVYUEVDVF9UUlVFKENCT1JWYWx1ZTo6U2ltcGxlVmFsdWU6
OlVuZGVmaW5lZCA9PSB1bmRlZmluZWRWYWx1ZS5nZXRTaW1wbGVWYWx1ZSgpKTsKIH0KIAorVEVT
VChDQk9SVmFsdWVUZXN0LCBDb25zdHJ1Y3RTaW1wbGVCb29sZWFuVmFsdWUpCit7CisgICAgQ0JP
UlZhbHVlIHRydWVWYWx1ZSh0cnVlKTsKKyAgICBBU1NFUlRfRVEoQ0JPUlZhbHVlOjpUeXBlOjpT
aW1wbGVWYWx1ZSwgdHJ1ZVZhbHVlLnR5cGUoKSk7CisgICAgRVhQRUNUX1RSVUUodHJ1ZVZhbHVl
LmdldEJvb2woKSk7CisKKyAgICBDQk9SVmFsdWUgZmFsc2VWYWx1ZShmYWxzZSk7CisgICAgQVNT
RVJUX0VRKENCT1JWYWx1ZTo6VHlwZTo6U2ltcGxlVmFsdWUsIGZhbHNlVmFsdWUudHlwZSgpKTsK
KyAgICBFWFBFQ1RfRkFMU0UoZmFsc2VWYWx1ZS5nZXRCb29sKCkpOworfQorCiAvLyBUZXN0IGNv
cHkgY29uc3RydWN0b3JzCiBURVNUKENCT1JWYWx1ZVRlc3QsIENvcHlVbnNpZ25lZCkKIHsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRl
c3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVz
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjQzOWRhZDRlYzFhOTA4MDA3NDE3Y2QyYTdlNmM2MWRkMTM1ZmE2
NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
dGFwUmVxdWVzdFRlc3QuY3BwCkBAIC0wLDAgKzEsMTI4IEBACisvLyBDb3B5cmlnaHQgMjAxNyBU
aGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
Ly8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
Ky8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
Ky8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVO
QUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJGaWRvVGVzdERhdGEuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpZG9D
b25zdGFudHMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgorCituYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBm
aWRvOworCisvLyBMZXZlcmFnaW5nIGV4YW1wbGUgMiBvZiBzZWN0aW9uIDYuMSBvZiB0aGUgc3Bl
YworLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDky
Ny9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5Mjcu
aHRtbAorVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJl
cXVlc3RQYXJhbSkKK3sKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpS
cEVudGl0eSBycDsKKyAgICBycC5uYW1lID0gIkFjbWUiOworICAgIHJwLmlkID0gImFjbWUuY29t
IjsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkg
dXNlcjsKKyAgICB1c2VyLm5hbWUgPSAiam9obnBzbWl0aEBleGFtcGxlLmNvbSI7CisgICAgdXNl
ci5pY29uID0gImh0dHBzOi8vcGljcy5hY21lLmNvbS8wMC9wL2FCampqcHFQYi5wbmciOworICAg
IHVzZXIuaWRWZWN0b3IuYXBwZW5kKFRlc3REYXRhOjprVXNlcklkLCBzaXplb2YoVGVzdERhdGE6
OmtVc2VySWQpKTsKKyAgICB1c2VyLmRpc3BsYXlOYW1lID0gIkpvaG4gUC4gU21pdGgiOworCisg
ICAgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+
IHBhcmFtcyB7IHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1
YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDI1NyB9IH07CisgICAgUHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlh
IHNlbGVjdGlvbiB7IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRp
Y2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgdHJ1ZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50OjpQcmVmZXJyZWQgfTsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnMgb3B0aW9ucyB7IHJwLCB1c2VyLCB7IH0sIHBhcmFtcywgc3RkOjpudWxsb3B0LCB7IH0sIHNl
bGVjdGlvbiB9OworICAgIFZlY3Rvcjx1aW50OF90PiBoYXNoOworICAgIGhhc2guYXBwZW5kKFRl
c3REYXRhOjprQ2xpZW50RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNo
KSk7CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVz
dEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNl
clZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dE5vdENvbmZpZ3VyZWQpOwor
ICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a0N0
YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3QpKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6
ZWREYXRhLmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0LCBzZXJp
YWxpemVkRGF0YS5zaXplKCkpLCAwKTsKK30KKworVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RD
b25zdHJ1Y3RHZXRBc3NlcnRpb25SZXF1ZXN0KQoreworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucyBvcHRpb25zOworICAgIG9wdGlvbnMucnBJZCA9ICJhY21lLmNvbSI7CisK
KyAgICBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvciBkZXNjcmlwdG9yMTsKKyAgICBkZXNj
cmlwdG9yMS50eXBlID0gUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleTsKKyAgICBj
b25zdCB1aW50OF90IGlkMVtdID0geworICAgICAgICAweGYyLCAweDIwLCAweDA2LCAweGRlLCAw
eDRmLCAweDkwLCAweDVhLCAweGY2LCAweDhhLCAweDQzLCAweDk0LAorICAgICAgICAweDJmLCAw
eDAyLCAweDRmLCAweDJhLCAweDVlLCAweGNlLCAweDYwLCAweDNkLCAweDljLCAweDZkLCAweDRi
LAorICAgICAgICAweDNkLCAweGY4LCAweGJlLCAweDA4LCAweGVkLCAweDAxLCAweGZjLCAweDQ0
LCAweDI2LCAweDQ2LCAweGQwLAorICAgICAgICAweDM0LCAweDg1LCAweDhhLCAweGM3LCAweDVi
LCAweGVkLCAweDNmLCAweGQ1LCAweDgwLCAweGJmLCAweDk4LAorICAgICAgICAweDA4LCAweGQ5
LCAweDRmLCAweGNiLCAweGVlLCAweDgyLCAweGI5LCAweGIyLCAweGVmLCAweDY2LCAweDc3LAor
ICAgICAgICAweGFmLCAweDBhLCAweGRjLCAweGMzLCAweDU4LCAweDUyLCAweGVhLCAweDZiLCAw
eDllIH07CisgICAgZGVzY3JpcHRvcjEuaWRWZWN0b3IuYXBwZW5kKGlkMSwgc2l6ZW9mKGlkMSkp
OworICAgIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscy5hcHBlbmQoZGVzY3JpcHRvcjEpOworCisg
ICAgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IgZGVzY3JpcHRvcjI7CisgICAgZGVzY3Jp
cHRvcjIudHlwZSA9IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXk7CisgICAgY29u
c3QgdWludDhfdCBpZDJbXSA9IHsKKyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAgICAgMHgwMywgMHgwMywgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAgICAgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywK
KyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMywgMHgwMywKKyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMywgMHgwMywgMHgwMywgMHgwMyB9OworICAgIGRlc2NyaXB0b3IyLmlkVmVjdG9yLmFwcGVu
ZChpZDIsIHNpemVvZihpZDIpKTsKKyAgICBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMuYXBwZW5k
KGRlc2NyaXB0b3IyKTsKKworICAgIG9wdGlvbnMudXNlclZlcmlmaWNhdGlvbiA9IFVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQ7CisKKyAgICBWZWN0b3I8dWludDhfdD4gaGFz
aDsKKyAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVz
dERhdGE6OmtDbGllbnREYXRhSGFzaCkpOworICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNv
ZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JT
dXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVk
QnV0Tm90Q29uZmlndXJlZCk7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhLnNpemUoKSwg
c2l6ZW9mKFRlc3REYXRhOjprVGVzdENvbXBsZXhDdGFwR2V0QXNzZXJ0aW9uUmVxdWVzdCkpOwor
ICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a1Rl
c3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3QsIHNlcmlhbGl6ZWREYXRhLnNpemUoKSks
IDApOworfQorCitURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdEN0YXBBdXRoZW50
aWNhdG9yUmVxdWVzdFBhcmFtKQoreworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBrU2Vy
aWFsaXplZEdldEluZm9DbWQgPSAweDA0OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBr
U2VyaWFsaXplZEdldE5leHRBc3NlcnRpb25DbWQgPSAweDA4OworICAgIHN0YXRpYyBjb25zdGV4
cHIgdWludDhfdCBrU2VyaWFsaXplZFJlc2V0Q21kID0gMHgwNzsKKworICAgIGF1dG8gc2VyaWFs
aXplZERhdGExID0gZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENv
bW1hbmQ6OmtBdXRoZW50aWNhdG9yR2V0SW5mbyk7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWRE
YXRhMS5zaXplKCksIDF1KTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhMS5k
YXRhKCksICZrU2VyaWFsaXplZEdldEluZm9DbWQsIDEpLCAwKTsKKworICAgIGF1dG8gc2VyaWFs
aXplZERhdGEyID0gZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENv
bW1hbmQ6OmtBdXRoZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbik7CisgICAgRVhQRUNUX0VRKHNl
cmlhbGl6ZWREYXRhMi5zaXplKCksIDF1KTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6
ZWREYXRhMi5kYXRhKCksICZrU2VyaWFsaXplZEdldE5leHRBc3NlcnRpb25DbWQsIDEpLCAwKTsK
KworICAgIGF1dG8gc2VyaWFsaXplZERhdGEzID0gZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVx
dWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yUmVzZXQpOworICAgIEVYUEVD
VF9FUShzZXJpYWxpemVkRGF0YTMuc2l6ZSgpLCAxdSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChz
ZXJpYWxpemVkRGF0YTMuZGF0YSgpLCAma1NlcmlhbGl6ZWRSZXNldENtZCwgMSksIDApOworfQor
Cit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBS
ZXNwb25zZVRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBS
ZXNwb25zZVRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0NWZkOGRiYWEzNDU4NjQwN2U0NDczNzQ0YTll
MzliZmY0ZTkxZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ3RhcFJlc3BvbnNlVGVzdC5jcHAKQEAgLTAsMCArMSwzNTUgQEAKKy8vIENvcHly
aWdodCAyMDE3IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8g
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisv
LyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1
dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
Ly8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiRmlkb1Rlc3REYXRhLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9DQk9SUmVhZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DQk9S
VmFsdWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NCT1JXcml0ZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWRvQ29u
c3RhbnRzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QdWJsaWNLZXlDcmVkZW50aWFsLmg+CisKK25h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKK3VzaW5nIG5hbWVzcGFjZSBmaWRvOworCitjb25zdGV4
cHIgdWludDhfdCBrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoTm9WZXJzaW9u
W10gPSB7CisgICAgLy8gU3VjY2VzcyBzdGF0dXMgYnl0ZQorICAgIDB4MDAsCisgICAgLy8gTWFw
IG9mIDYgZWxlbWVudHMKKyAgICAweEE2LAorICAgIC8vIEtleSgwMSkgLSB2ZXJzaW9ucworICAg
IDB4MDEsCisgICAgLy8gQXJyYXkoMCkKKyAgICAweDgwLAorICAgIC8vIEtleSgwMikgLSBleHRl
bnNpb25zCisgICAgMHgwMiwKKyAgICAvLyBBcnJheSgyKQorICAgIDB4ODIsCisgICAgLy8gInV2
bSIKKyAgICAweDYzLCAweDc1LCAweDc2LCAweDZELAorICAgIC8vICJobWFjLXNlY3JldCIKKyAg
ICAweDZCLCAweDY4LCAweDZELCAweDYxLCAweDYzLCAweDJELCAweDczLCAweDY1LCAweDYzLCAw
eDcyLCAweDY1LCAweDc0LAorICAgIC8vIEtleSgwMykgLSBBQUdVSUQKKyAgICAweDAzLAorICAg
IC8vIEJ5dGVzKDE2KQorICAgIDB4NTAsIDB4RjgsIDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMsIDB4
MEEsIDB4NEQsIDB4MTUsIDB4ODAsIDB4MDYsIDB4MTcsCisgICAgMHgxMSwgMHgxRiwgMHg5RSwg
MHhEQywgMHg3RCwKKyAgICAvLyBLZXkoMDQpIC0gb3B0aW9ucworICAgIDB4MDQsCisgICAgLy8g
TWFwKDA1KQorICAgIDB4QTUsCisgICAgLy8gS2V5IC0gInJrIgorICAgIDB4NjIsIDB4NzIsIDB4
NkIsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInVwIgorICAgIDB4NjIs
IDB4NzUsIDB4NzAsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInV2Igor
ICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5
IC0gInBsYXQiCisgICAgMHg2NCwgMHg3MCwgMHg2QywgMHg2MSwgMHg3NCwKKyAgICAvLyB0cnVl
CisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAiY2xpZW50UGluIgorICAgIDB4NjksIDB4NjMsIDB4
NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4NTAsIDB4NjksIDB4NkUsCisgICAgLy8gZmFs
c2UKKyAgICAweEY0LAorICAgIC8vIEtleSgwNSkgLSBNYXggbWVzc2FnZSBzaXplCisgICAgMHgw
NSwKKyAgICAvLyAxMjAwCisgICAgMHgxOSwgMHgwNCwgMHhCMCwKKyAgICAvLyBLZXkoMDYpIC0g
UGluIHByb3RvY29scworICAgIDB4MDYsCisgICAgLy8gQXJyYXlbMV0KKyAgICAweDgxLCAweDAx
LAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3Bv
bnNlV2l0aER1cGxpY2F0ZVZlcnNpb25bXSA9IHsKKyAgICAvLyBTdWNjZXNzIHN0YXR1cyBieXRl
CisgICAgMHgwMCwKKyAgICAvLyBNYXAgb2YgNiBlbGVtZW50cworICAgIDB4QTYsCisgICAgLy8g
S2V5KDAxKSAtIHZlcnNpb25zCisgICAgMHgwMSwKKyAgICAvLyBBcnJheSgwMikKKyAgICAweDgy
LAorICAgIC8vICJVMkZfVjIiCisgICAgMHg2NiwgMHg1NSwgMHgzMiwgMHg0NiwgMHg1RiwgMHg1
NiwgMHgzMiwKKyAgICAvLyAiVTJGX1YyIgorICAgIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4
NUYsIDB4NTYsIDB4MzIsCisgICAgLy8gS2V5KDAyKSAtIGV4dGVuc2lvbnMKKyAgICAweDAyLAor
ICAgIC8vIEFycmF5KDIpCisgICAgMHg4MiwKKyAgICAvLyAidXZtIgorICAgIDB4NjMsIDB4NzUs
IDB4NzYsIDB4NkQsCisgICAgLy8gImhtYWMtc2VjcmV0IgorICAgIDB4NkIsIDB4NjgsIDB4NkQs
IDB4NjEsIDB4NjMsIDB4MkQsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NzIsIDB4NjUsIDB4NzQsCisg
ICAgLy8gS2V5KDAzKSAtIEFBR1VJRAorICAgIDB4MDMsCisgICAgLy8gQnl0ZXMoMTYpCisgICAg
MHg1MCwgMHhGOCwgMHhBMCwgMHgxMSwgMHhGMywgMHg4QywgMHgwQSwgMHg0RCwgMHgxNSwgMHg4
MCwgMHgwNiwgMHgxNywKKyAgICAweDExLCAweDFGLCAweDlFLCAweERDLCAweDdELAorICAgIC8v
IEtleSgwNCkgLSBvcHRpb25zCisgICAgMHgwNCwKKyAgICAvLyBNYXAoMDUpCisgICAgMHhBNSwK
KyAgICAvLyBLZXkgLSAicmsiCisgICAgMHg2MiwgMHg3MiwgMHg2QiwKKyAgICAvLyB0cnVlCisg
ICAgMHhGNSwKKyAgICAvLyBLZXkgLSAidXAiCisgICAgMHg2MiwgMHg3NSwgMHg3MCwKKyAgICAv
LyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAidXYiCisgICAgMHg2MiwgMHg3NSwgMHg3
NiwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAicGxhdCIKKyAgICAweDY0
LCAweDcwLCAweDZDLCAweDYxLCAweDc0LAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8v
IEtleSAtICJjbGllbnRQaW4iCisgICAgMHg2OSwgMHg2MywgMHg2QywgMHg2OSwgMHg2NSwgMHg2
RSwgMHg3NCwgMHg1MCwgMHg2OSwgMHg2RSwKKyAgICAvLyBmYWxzZQorICAgIDB4RjQsCisgICAg
Ly8gS2V5KDA1KSAtIE1heCBtZXNzYWdlIHNpemUKKyAgICAweDA1LAorICAgIC8vIDEyMDAKKyAg
ICAweDE5LCAweDA0LCAweEIwLAorICAgIC8vIEtleSgwNikgLSBQaW4gcHJvdG9jb2xzCisgICAg
MHgwNiwKKyAgICAvLyBBcnJheVsxXQorICAgIDB4ODEsIDB4MDEsCit9OworCitjb25zdGV4cHIg
dWludDhfdCBrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoSW5jb3JyZWN0QWFn
dWlkW10gPSB7CisgICAgLy8gU3VjY2VzcyBzdGF0dXMgYnl0ZQorICAgIDB4MDAsCisgICAgLy8g
TWFwIG9mIDYgZWxlbWVudHMKKyAgICAweEE2LAorICAgIC8vIEtleSgwMSkgLSB2ZXJzaW9ucwor
ICAgIDB4MDEsCisgICAgLy8gQXJyYXkoMDEpCisgICAgMHg4MSwKKyAgICAvLyAiVTJGX1YyIgor
ICAgIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYsIDB4NTYsIDB4MzIsCisgICAgLy8gS2V5
KDAyKSAtIGV4dGVuc2lvbnMKKyAgICAweDAyLAorICAgIC8vIEFycmF5KDIpCisgICAgMHg4MiwK
KyAgICAvLyAidXZtIgorICAgIDB4NjMsIDB4NzUsIDB4NzYsIDB4NkQsCisgICAgLy8gImhtYWMt
c2VjcmV0IgorICAgIDB4NkIsIDB4NjgsIDB4NkQsIDB4NjEsIDB4NjMsIDB4MkQsIDB4NzMsIDB4
NjUsIDB4NjMsIDB4NzIsIDB4NjUsIDB4NzQsCisgICAgLy8gS2V5KDAzKSAtIEFBR1VJRAorICAg
IDB4MDMsCisgICAgLy8gQnl0ZXMoMTcpIC0gRklETzIgZGV2aWNlIEFBR1VJRCBtdXN0IGJlIDE2
IGJ5dGVzIGxvbmcgaW4gb3JkZXIgdG8gYmUKKyAgICAvLyBjb3JyZWN0LgorICAgIDB4NTEsIDB4
RjgsIDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMsIDB4MEEsIDB4NEQsIDB4MTUsIDB4ODAsIDB4MDYs
IDB4MTcsCisgICAgMHgxMSwgMHgxRiwgMHg5RSwgMHhEQywgMHg3RCwgMHgwMCwKKyAgICAvLyBL
ZXkoMDQpIC0gb3B0aW9ucworICAgIDB4MDQsCisgICAgLy8gTWFwKDA1KQorICAgIDB4QTUsCisg
ICAgLy8gS2V5IC0gInJrIgorICAgIDB4NjIsIDB4NzIsIDB4NkIsCisgICAgLy8gdHJ1ZQorICAg
IDB4RjUsCisgICAgLy8gS2V5IC0gInVwIgorICAgIDB4NjIsIDB4NzUsIDB4NzAsCisgICAgLy8g
dHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInV2IgorICAgIDB4NjIsIDB4NzUsIDB4NzYs
CisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInBsYXQiCisgICAgMHg2NCwg
MHg3MCwgMHg2QywgMHg2MSwgMHg3NCwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBL
ZXkgLSAiY2xpZW50UGluIgorICAgIDB4NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4NkUs
IDB4NzQsIDB4NTAsIDB4NjksIDB4NkUsCisgICAgLy8gZmFsc2UKKyAgICAweEY0LAorICAgIC8v
IEtleSgwNSkgLSBNYXggbWVzc2FnZSBzaXplCisgICAgMHgwNSwKKyAgICAvLyAxMjAwCisgICAg
MHgxOSwgMHgwNCwgMHhCMCwKKyAgICAvLyBLZXkoMDYpIC0gUGluIHByb3RvY29scworICAgIDB4
MDYsCisgICAgLy8gQXJyYXlbMV0KKyAgICAweDgxLCAweDAxLAorfTsKKworY29uc3RleHByIHVp
bnQ4X3Qga1Rlc3REZXZpY2VBYWd1aWRbXSA9IHsKKyAgICAweEY4LCAweEEwLCAweDExLCAweEYz
LCAweDhDLCAweDBBLCAweDRELCAweDE1LCAweDgwLCAweDA2LCAweDE3LCAweDExLCAweDFGLCAw
eDlFLCAweERDLCAweDdECit9OworCisvLyBHZXQgYSBzdWJzZXQgb2YgdGhlIHJlc3BvbnNlIGZv
ciB0ZXN0aW5nIGVycm9yIGhhbmRsaW5nLgorVmVjdG9yPHVpbnQ4X3Q+IGdldFRlc3RDb3JydXB0
ZWRTaWduUmVzcG9uc2Uoc2l6ZV90IGxlbmd0aCkKK3sKKyAgICBBU1NFUlQobGVuZ3RoIDwgc2l6
ZW9mKFRlc3REYXRhOjprVGVzdFUyZlNpZ25SZXNwb25zZSkpOworICAgIFZlY3Rvcjx1aW50OF90
PiB0ZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNlOworICAgIHRlc3RDb3JydXB0ZWRTaWduUmVzcG9u
c2UucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShsZW5ndGgpOworICAgIHRlc3RDb3JydXB0ZWRTaWdu
UmVzcG9uc2UuYXBwZW5kKFRlc3REYXRhOjprVGVzdFUyZlNpZ25SZXNwb25zZSwgbGVuZ3RoKTsK
KyAgICByZXR1cm4gdGVzdENvcnJ1cHRlZFNpZ25SZXNwb25zZTsKK30KKworLy8gUmV0dXJuIGEg
a2V5IGhhbmRsZSB1c2VkIGZvciBHZXRBc3NlcnRpb24gcmVxdWVzdC4KK1ZlY3Rvcjx1aW50OF90
PiBnZXRUZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXMoKQoreworICAgIFZlY3Rvcjx1aW50OF90PiB0
ZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXM7CisgICAgdGVzdENyZWRlbnRpYWxSYXdJZEJ5dGVzLnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkoc2l6ZW9mKFRlc3REYXRhOjprVTJmU2lnbktleUhhbmRsZSkp
OworICAgIHRlc3RDcmVkZW50aWFsUmF3SWRCeXRlcy5hcHBlbmQoVGVzdERhdGE6OmtVMmZTaWdu
S2V5SGFuZGxlLCBzaXplb2YoVGVzdERhdGE6OmtVMmZTaWduS2V5SGFuZGxlKSk7CisgICAgcmV0
dXJuIHRlc3RDcmVkZW50aWFsUmF3SWRCeXRlczsKK30KKworVmVjdG9yPHVpbnQ4X3Q+IGNvbnZl
cnRUb1ZlY3Rvcihjb25zdCB1aW50OF90IGJ5dGVBcnJheVtdLCBjb25zdCBzaXplX3QgbGVuZ3Ro
KQoreworICAgIFZlY3Rvcjx1aW50OF90PiByZXN1bHQ7CisgICAgcmVzdWx0LnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkobGVuZ3RoKTsKKyAgICByZXN1bHQuYXBwZW5kKGJ5dGVBcnJheSwgbGVuZ3Ro
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvLyBMZXZlcmFnaW5nIGV4YW1wbGUgNCBvZiBz
ZWN0aW9uIDYuMSBvZiB0aGUgc3BlYworLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNz
L2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3Rv
Y29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNjb21tYW5kcworVEVTVChDVEFQUmVzcG9uc2VUZXN0
LCBUZXN0UmVhZE1ha2VDcmVkZW50aWFsUmVzcG9uc2UpCit7CisgICAgYXV0byBtYWtlQ3JlZGVu
dGlhbFJlc3BvbnNlID0gcmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKGNvbnZlcnRUb1Zl
Y3RvcihUZXN0RGF0YTo6a1Rlc3RNYWtlQ3JlZGVudGlhbFJlc3BvbnNlLCBzaXplb2YoVGVzdERh
dGE6OmtUZXN0TWFrZUNyZWRlbnRpYWxSZXNwb25zZSkpKTsKKyAgICBBU1NFUlRfVFJVRShtYWtl
Q3JlZGVudGlhbFJlc3BvbnNlKTsKKyAgICBhdXRvIGNib3JBdHRlc3RhdGlvbk9iamVjdCA9IGNi
b3I6OkNCT1JSZWFkZXI6OnJlYWQoY29udmVydFRvVmVjdG9yKHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDhfdCo+KG1ha2VDcmVkZW50aWFsUmVzcG9uc2UtPmF0dGVzdGF0aW9uT2JqZWN0LT5kYXRhKCkp
LCBtYWtlQ3JlZGVudGlhbFJlc3BvbnNlLT5hdHRlc3RhdGlvbk9iamVjdC0+Ynl0ZUxlbmd0aCgp
KSk7CisgICAgQVNTRVJUX1RSVUUoY2JvckF0dGVzdGF0aW9uT2JqZWN0KTsKKyAgICBBU1NFUlRf
VFJVRShjYm9yQXR0ZXN0YXRpb25PYmplY3QtPmlzTWFwKCkpOworCisgICAgY29uc3QgYXV0byYg
YXR0ZXN0YXRpb25PYmplY3RNYXAgPSBjYm9yQXR0ZXN0YXRpb25PYmplY3QtPmdldE1hcCgpOwor
ICAgIGF1dG8gaXQgPSBhdHRlc3RhdGlvbk9iamVjdE1hcC5maW5kKGNib3I6OkNCT1JWYWx1ZShr
Rm9ybWF0S2V5KSk7CisgICAgQVNTRVJUX1RSVUUoaXQgIT0gYXR0ZXN0YXRpb25PYmplY3RNYXAu
ZW5kKCkpOworICAgIEFTU0VSVF9UUlVFKGl0LT5zZWNvbmQuaXNTdHJpbmcoKSk7CisgICAgRVhQ
RUNUX1NUUkVRKGl0LT5zZWNvbmQuZ2V0U3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgInBhY2tlZCIp
OworCisgICAgaXQgPSBhdHRlc3RhdGlvbk9iamVjdE1hcC5maW5kKGNib3I6OkNCT1JWYWx1ZShr
QXV0aERhdGFLZXkpKTsKKyAgICBBU1NFUlRfVFJVRShpdCAhPSBhdHRlc3RhdGlvbk9iamVjdE1h
cC5lbmQoKSk7CisgICAgQVNTRVJUX1RSVUUoaXQtPnNlY29uZC5pc0J5dGVTdHJpbmcoKSk7Cisg
ICAgRVhQRUNUX0VRKGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpLCBjb252ZXJ0VG9WZWN0b3Io
VGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsQXV0aERhdGEsIHNpemVvZihUZXN0RGF0YTo6
a0N0YXAyTWFrZUNyZWRlbnRpYWxBdXRoRGF0YSkpKTsKKworICAgIGl0ID0gYXR0ZXN0YXRpb25P
YmplY3RNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoa0F0dGVzdGF0aW9uU3RhdGVtZW50S2V5KSk7
CisgICAgQVNTRVJUX1RSVUUoaXQgIT0gYXR0ZXN0YXRpb25PYmplY3RNYXAuZW5kKCkpOworICAg
IEFTU0VSVF9UUlVFKGl0LT5zZWNvbmQuaXNNYXAoKSk7CisKKyAgICBjb25zdCBhdXRvJiBhdHRl
c3RhdGlvblN0YXRlbWVudE1hcCA9IGl0LT5zZWNvbmQuZ2V0TWFwKCk7CisgICAgYXV0byBhdHRT
dG10SXQgPSBhdHRlc3RhdGlvblN0YXRlbWVudE1hcC5maW5kKGNib3I6OkNCT1JWYWx1ZSgiYWxn
IikpOworCisgICAgQVNTRVJUX1RSVUUoYXR0U3RtdEl0ICE9IGF0dGVzdGF0aW9uU3RhdGVtZW50
TWFwLmVuZCgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRTdG10SXQtPnNlY29uZC5pc0ludGVnZXIo
KSk7CisgICAgRVhQRUNUX0VRKGF0dFN0bXRJdC0+c2Vjb25kLmdldEludGVnZXIoKSwgLTcpOwor
CisgICAgYXR0U3RtdEl0ID0gYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAuZmluZChjYm9yOjpDQk9S
VmFsdWUoInNpZyIpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRTdG10SXQgIT0gYXR0ZXN0YXRpb25T
dGF0ZW1lbnRNYXAuZW5kKCkpOworICAgIEFTU0VSVF9UUlVFKGF0dFN0bXRJdC0+c2Vjb25kLmlz
Qnl0ZVN0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoYXR0U3RtdEl0LT5zZWNvbmQuZ2V0Qnl0ZVN0
cmluZygpLCBjb252ZXJ0VG9WZWN0b3IoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsU2ln
bmF0dXJlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsU2lnbmF0dXJlKSkp
OworCisgICAgYXR0U3RtdEl0ID0gYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAuZmluZChjYm9yOjpD
Qk9SVmFsdWUoIng1YyIpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRTdG10SXQgIT0gYXR0ZXN0YXRp
b25TdGF0ZW1lbnRNYXAuZW5kKCkpOworICAgIGNvbnN0IGF1dG8mIGNlcnRpZmljYXRlID0gYXR0
U3RtdEl0LT5zZWNvbmQ7CisgICAgQVNTRVJUX1RSVUUoY2VydGlmaWNhdGUuaXNBcnJheSgpKTsK
KyAgICBBU1NFUlRfRVEoY2VydGlmaWNhdGUuZ2V0QXJyYXkoKS5zaXplKCksIDF1KTsKKyAgICBB
U1NFUlRfVFJVRShjZXJ0aWZpY2F0ZS5nZXRBcnJheSgpWzBdLmlzQnl0ZVN0cmluZygpKTsKKyAg
ICBFWFBFQ1RfRVEoY2VydGlmaWNhdGUuZ2V0QXJyYXkoKVswXS5nZXRCeXRlU3RyaW5nKCksIGNv
bnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxDZXJ0aWZpY2F0ZSwg
c2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVudGlhbENlcnRpZmljYXRlKSkpOworICAg
IEVYUEVDVF9FUShtYWtlQ3JlZGVudGlhbFJlc3BvbnNlLT5yYXdJZC0+Ynl0ZUxlbmd0aCgpLCBz
aXplb2YoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsQ3JlZGVudGlhbElkKSk7CisgICAg
RVhQRUNUX0VRKG1lbWNtcChtYWtlQ3JlZGVudGlhbFJlc3BvbnNlLT5yYXdJZC0+ZGF0YSgpLCBU
ZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxDcmVkZW50aWFsSWQsIHNpemVvZihUZXN0RGF0
YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxDcmVkZW50aWFsSWQpKSwgMCk7Cit9CisKKy8vIExldmVy
YWdpbmcgZXhhbXBsZSA1IG9mIHNlY3Rpb24gNi4xIG9mIHRoZSBDVEFQIHNwZWMuCisvLyBodHRw
czovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xp
ZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sCitURVNU
KENUQVBSZXNwb25zZVRlc3QsIFRlc3RSZWFkR2V0QXNzZXJ0aW9uUmVzcG9uc2UpCit7CisgICAg
YXV0byBnZXRBc3NlcnRpb25SZXNwb25zZSA9IHJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2Uo
Y29udmVydFRvVmVjdG9yKFRlc3REYXRhOjprRGV2aWNlR2V0QXNzZXJ0aW9uUmVzcG9uc2UsIHNp
emVvZihUZXN0RGF0YTo6a0RldmljZUdldEFzc2VydGlvblJlc3BvbnNlKSkpOworICAgIEFTU0VS
VF9UUlVFKGdldEFzc2VydGlvblJlc3BvbnNlKTsKKworICAgIEVYUEVDVF9FUShnZXRBc3NlcnRp
b25SZXNwb25zZS0+YXV0aGVudGljYXRvckRhdGEtPmJ5dGVMZW5ndGgoKSwgc2l6ZW9mKFRlc3RE
YXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSkpOworICAgIEVYUEVDVF9FUShtZW1jbXAo
Z2V0QXNzZXJ0aW9uUmVzcG9uc2UtPmF1dGhlbnRpY2F0b3JEYXRhLT5kYXRhKCksIFRlc3REYXRh
OjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRB
c3NlcnRpb25BdXRoRGF0YSkpLCAwKTsKKyAgICBFWFBFQ1RfRVEoZ2V0QXNzZXJ0aW9uUmVzcG9u
c2UtPnNpZ25hdHVyZS0+Ynl0ZUxlbmd0aCgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMkdldEFz
c2VydGlvblNpZ25hdHVyZSkpOworICAgIEVYUEVDVF9FUShtZW1jbXAoZ2V0QXNzZXJ0aW9uUmVz
cG9uc2UtPnNpZ25hdHVyZS0+ZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uU2ln
bmF0dXJlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMkdldEFzc2VydGlvblNpZ25hdHVyZSkpLCAw
KTsKK30KKworVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBUZXN0UmVhZEdldEluZm9SZXNwb25zZSkK
K3sKKyAgICBhdXRvIGdldEluZm9SZXNwb25zZSA9IHJlYWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNv
bnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a1Rlc3RHZXRJbmZvUmVzcG9uc2VQbGF0Zm9ybURldmlj
ZSwgc2l6ZW9mKFRlc3REYXRhOjprVGVzdEdldEluZm9SZXNwb25zZVBsYXRmb3JtRGV2aWNlKSkp
OworICAgIEFTU0VSVF9UUlVFKGdldEluZm9SZXNwb25zZSk7CisgICAgQVNTRVJUX1RSVUUoZ2V0
SW5mb1Jlc3BvbnNlLT5tYXhNc2dTaXplKCkpOworICAgIEVYUEVDVF9FUSgqZ2V0SW5mb1Jlc3Bv
bnNlLT5tYXhNc2dTaXplKCksIDEyMDB1KTsKKyAgICBFWFBFQ1RfTkUoZ2V0SW5mb1Jlc3BvbnNl
LT52ZXJzaW9ucygpLmZpbmQoUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCksIGdldEluZm9SZXNwb25z
ZS0+dmVyc2lvbnMoKS5lbmQoKSk7CisgICAgRVhQRUNUX05FKGdldEluZm9SZXNwb25zZS0+dmVy
c2lvbnMoKS5maW5kKFByb3RvY29sVmVyc2lvbjo6a1UyZiksIGdldEluZm9SZXNwb25zZS0+dmVy
c2lvbnMoKS5lbmQoKSk7CisgICAgRVhQRUNUX1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5vcHRpb25z
KCkuaXNQbGF0Zm9ybURldmljZSgpKTsKKyAgICBFWFBFQ1RfVFJVRShnZXRJbmZvUmVzcG9uc2Ut
Pm9wdGlvbnMoKS5zdXBwb3J0c1Jlc2lkZW50S2V5KCkpOworICAgIEVYUEVDVF9UUlVFKGdldElu
Zm9SZXNwb25zZS0+b3B0aW9ucygpLnVzZXJQcmVzZW5jZVJlcXVpcmVkKCkpOworICAgIEVYUEVD
VF9FUShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWls
YWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQsIGdldEluZm9SZXNwb25zZS0+b3B0aW9u
cygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSk7CisgICAgRVhQRUNUX0VRKEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0
ZWRCdXRQaW5Ob3RTZXQsIGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLmNsaWVudFBpbkF2YWls
YWJpbGl0eSgpKTsKK30KKworVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBUZXN0UmVhZEdldEluZm9S
ZXNwb25zZVdpdGhJbmNvcnJlY3RGb3JtYXQpCit7CisgICAgRVhQRUNUX0ZBTFNFKHJlYWRDVEFQ
R2V0SW5mb1Jlc3BvbnNlKGNvbnZlcnRUb1ZlY3RvcihrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2VXaXRoTm9WZXJzaW9uLCBzaXplb2Yoa1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jl
c3BvbnNlV2l0aE5vVmVyc2lvbikpKSk7CisgICAgRVhQRUNUX0ZBTFNFKHJlYWRDVEFQR2V0SW5m
b1Jlc3BvbnNlKGNvbnZlcnRUb1ZlY3RvcihrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9u
c2VXaXRoRHVwbGljYXRlVmVyc2lvbiwgc2l6ZW9mKGtUZXN0QXV0aGVudGljYXRvckdldEluZm9S
ZXNwb25zZVdpdGhEdXBsaWNhdGVWZXJzaW9uKSkpKTsKKyAgICBFWFBFQ1RfRkFMU0UocmVhZENU
QVBHZXRJbmZvUmVzcG9uc2UoY29udmVydFRvVmVjdG9yKGtUZXN0QXV0aGVudGljYXRvckdldElu
Zm9SZXNwb25zZVdpdGhJbmNvcnJlY3RBYWd1aWQsIHNpemVvZihrVGVzdEF1dGhlbnRpY2F0b3JH
ZXRJbmZvUmVzcG9uc2VXaXRoSW5jb3JyZWN0QWFndWlkKSkpKTsKK30KKworVEVTVChDVEFQUmVz
cG9uc2VUZXN0LCBUZXN0U2VyaWFsaXplR2V0SW5mb1Jlc3BvbnNlKQoreworICAgIEF1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UgcmVzcG9uc2UoeyBQcm90b2NvbFZlcnNpb246OmtDdGFwLCBQ
cm90b2NvbFZlcnNpb246OmtVMmYgfSwgY29udmVydFRvVmVjdG9yKGtUZXN0RGV2aWNlQWFndWlk
LCBzaXplb2Yoa1Rlc3REZXZpY2VBYWd1aWQpKSk7CisgICAgcmVzcG9uc2Uuc2V0RXh0ZW5zaW9u
cyh7ICJ1dm0iLCAiaG1hYy1zZWNyZXQiIH0pOworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5zZXRTdXBwb3J0c1Jlc2lkZW50S2V5KHRydWUp
OworICAgIG9wdGlvbnMuc2V0SXNQbGF0Zm9ybURldmljZSh0cnVlKTsKKyAgICBvcHRpb25zLnNl
dENsaWVudFBpbkF2YWlsYWJpbGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xp
ZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0UGluTm90U2V0KTsKKyAgICBvcHRpb25z
LnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1
cmVkKTsKKyAgICByZXNwb25zZS5zZXRPcHRpb25zKFdURk1vdmUob3B0aW9ucykpOworICAgIHJl
c3BvbnNlLnNldE1heE1zZ1NpemUoMTIwMCk7CisgICAgcmVzcG9uc2Uuc2V0UGluUHJvdG9jb2xz
KHsgMSB9KTsKKworICAgIGF1dG8gcmVzcG9uc2VBc0NCT1IgPSBlbmNvZGVBc0NCT1IocmVzcG9u
c2UpOworICAgIEVYUEVDVF9FUShyZXNwb25zZUFzQ0JPUi5zaXplKCksIHNpemVvZihUZXN0RGF0
YTo6a1Rlc3RHZXRJbmZvUmVzcG9uc2VQbGF0Zm9ybURldmljZSkgLSAxKTsKKyAgICBFWFBFQ1Rf
RVEobWVtY21wKHJlc3BvbnNlQXNDQk9SLmRhdGEoKSwgVGVzdERhdGE6OmtUZXN0R2V0SW5mb1Jl
c3BvbnNlUGxhdGZvcm1EZXZpY2UgKyAxLCByZXNwb25zZUFzQ0JPUi5zaXplKCkpLCAwKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9B
VVRITikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRv
VGVzdERhdGEuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERh
dGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lZmVhNjViZjJhMDJkNzNjNjhkMjIwYzYyYzBhMDY5MGY2ZjEzODdj
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zp
ZG9UZXN0RGF0YS5oCkBAIC0wLDAgKzEsNjQ1IEBACisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgQ2hy
b21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRI
TikKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCituYW1lc3BhY2UgVGVzdERhdGEgewor
CisvLyBVMkYgcmVxdWVzdCBwYXJhbWV0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBTYW1wbGUgVTJGIHJlZ2lzdGVyIHJlcXVl
c3QgcGFyYW1ldGVycyB1c2VkIGluIGV4YW1wbGUgNiBvZiB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0
cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNs
aWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCN1c2lu
Zy10aGUtY3RhcDItYXV0aGVudGljYXRvcm1ha2VjcmVkZW50aWFsLWNvbW1hbmQtd2l0aC1jdGFw
MS11MmYtYXV0aGVudGljYXRvcnMKK2NvbnN0ZXhwciB1aW50OF90IGtDbGllbnREYXRhSGFzaFtd
ID0geworICAgIDB4NjgsIDB4NzEsIDB4MzQsIDB4OTYsIDB4ODIsIDB4MjIsIDB4ZWMsIDB4MTcs
IDB4MjAsIDB4MmUsIDB4NDIsCisgICAgMHg1MCwgMHg1ZiwgMHg4ZSwgMHhkMiwgMHhiMSwgMHg2
YSwgMHhlMiwgMHgyZiwgMHgxNiwgMHhiYiwgMHgwNSwKKyAgICAweGI4LCAweDhjLCAweDI1LCAw
eGRiLCAweDllLCAweDYwLCAweDI2LCAweDQ1LCAweGYxLCAweDQxfTsKKworY29uc3RleHByIHVp
bnQ4X3Qga1VzZXJJZFtdID0gezB4MTAsIDB4OTgsIDB4MjMsIDB4NzIsIDB4MzUsIDB4NDAsIDB4
OTgsIDB4NzJ9OworCisvLyBTYW1wbGUgVTJGIHNpZ24gcmVxdWVzdCBwYXJhbWV0ZXJzIHVzZWQg
aW4gZXhhbXBsZSA3IG9mIHRoZSBDVEFQIHNwZWMuCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5v
cmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0
b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sI3VzaW5nLXRoZS1jdGFwMi1hdXRoZW50
aWNhdG9ybWFrZWNyZWRlbnRpYWwtY29tbWFuZC13aXRoLWN0YXAxLXUyZi1hdXRoZW50aWNhdG9y
cworY29uc3RleHByIHVpbnQ4X3Qga1UyZlNpZ25LZXlIYW5kbGVbXSA9IHsKKyAgICAweDNFLCAw
eEJELCAweDg5LCAweEJGLCAweDc3LCAweEVDLCAweDUwLCAweDk3LCAweDU1LCAweEVFLCAweDlD
LAorICAgIDB4MjYsIDB4MzUsIDB4RUYsIDB4QUEsIDB4QUMsIDB4N0IsIDB4MkIsIDB4OUMsIDB4
NUMsIDB4RUYsIDB4MTcsCisgICAgMHgzNiwgMHhDMywgMHg3MSwgMHg3RCwgMHhBNCwgMHg4NSwg
MHgzNCwgMHhDOCwgMHhDNiwgMHhCNiwgMHg1NCwKKyAgICAweEQ3LCAweEZGLCAweDk0LCAweDVG
LCAweDUwLCAweEI1LCAweENDLCAweDRFLCAweDc4LCAweDA1LCAweDVCLAorICAgIDB4REQsIDB4
MzksIDB4NkIsIDB4NjQsIDB4RjcsIDB4OEQsIDB4QTIsIDB4QzUsIDB4RjksIDB4NjIsIDB4MDAs
CisgICAgMHhDQywgMHhENCwgMHgxNSwgMHhDRCwgMHgwOCwgMHhGRSwgMHg0MiwgMHgwMCwgMHgz
OCwKK307CisKKy8vIFUyRiByZXNwb25zZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIEVDIHB1YmxpYyBrZXkgZW5j
b2RlZCBpbiBDT1NFX0tleSBmb3JtYXQgZXh0cmFjdGVkIGZyb20gYWJvdmUKKy8vIHxrVGVzdFUy
ZlJlZ2lzdGVyUmVzcG9uc2V8LgorY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RFQ1B1YmxpY0tleUNP
U0VbXSA9IHsKKyAgICAvLyBNYXAoNSkKKyAgICAweEE1LAorICAgIC8vIGt0eTogRUMga2V5IHR5
cGUKKyAgICAweDAxLCAweDAyLAorICAgIC8vIGFsZzogRUMyNTYgc2lnbmF0dXJlIGFsZ29yaXRo
bQorICAgIDB4MDMsIDB4MjYsCisgICAgLy8gY3J2OiBQLTI1NiBjdXJ2ZQorICAgIDB4MjAsIDB4
MDEsCisgICAgLy8geC1jb29yZGluYXRlCisgICAgMHgyMSwKKyAgICAvLyBCeXRlcygzMikKKyAg
ICAweDU4LCAweDIwLAorICAgIC8vIEJ5dGUgYXJyYXkgY29udGVudAorICAgIDB4RTgsIDB4NzYs
IDB4MjUsIDB4ODksIDB4NkUsIDB4RTQsIDB4RTQsIDB4NkQsIDB4QzAsIDB4MzIsIDB4NzYsIDB4
NkUsCisgICAgMHg4MCwgMHg4NywgMHg5NiwgMHgyRiwgMHgzNiwgMHhERiwgMHg5RCwgMHhGRSwg
MHg4QiwgMHg1NiwgMHg3RiwgMHgzNywKKyAgICAweDYzLCAweDAxLCAweDVCLCAweDE5LCAweDkw
LCAweEE2LCAweDBFLCAweDE0LAorICAgIC8vIHktY29vcmRpbmF0ZQorICAgIDB4MjIsCisgICAg
Ly8gQnl0ZXMoMzIpCisgICAgMHg1OCwgMHgyMCwKKyAgICAvLyBCeXRlIGFycmF5IGNvbnRlbnQK
KyAgICAweDI3LCAweERFLCAweDYxLCAweDJELCAweDY2LCAweDQxLCAweDhCLCAweERBLCAweDE5
LCAweDUwLCAweDU4LCAweDFFLAorICAgIDB4QkMsIDB4NUMsIDB4OEMsIDB4MUQsIDB4QUQsIDB4
NzEsIDB4MEMsIDB4QjEsIDB4NEMsIDB4MjIsIDB4RjgsIDB4QzksCisgICAgMHg3MCwgMHg0NSwg
MHhGNCwgMHg2MSwgMHgyRiwgMHhCMiwgMHgwQywgMHg5MSwKK307CisKKy8vIFRoZSBhdHRlc3Rh
dGlvbiBzdGF0ZW1lbnQgZXh0cmFjdGVkIGZyb20gYWJvdmUgfGtUZXN0VTJmUmVnaXN0ZXJSZXNw
b25zZXwsIGEKKy8vIENCT1ItZW5jb2RlZCBieXRlIGFycmF5LgorLy8gRGlhZ25vc3RpYyBub3Rh
dGlvbjoKKy8vIHsic2lnIjoKKy8vIGgnMzA0NTAyMjAzMjQ3NzlDNjhGMzM4MDI4OEExMTk3QjYw
OTVGN0E2RUI5QjFCMUMxMjdGNjZBRTEyQTk5RkU4NTMyRUMyM0I5CisvLyAgIDAyMjEwMEUzOTUx
NkFDNEQ2MUVFNjQwNDRENTBCNDE1QTZBNEQ0RDg0QkE2RDg5NUNCNUFCN0ExQUE3RDA4MURFMzQx
RkEnLAorLy8gIng1YyI6IFtoJzMwODIwMjRBMzA4MjAxMzJBMDAzMDIwMTAyMDIwNDA0NkM4ODIy
MzAwRDA2MDkyQTg2NDg4NkY3MEQwMTAxMEIwIFwKKy8vIDUwMDMwMkUzMTJDMzAyQTA2MDM1NTA0
MDMxMzIzNTk3NTYyNjk2MzZGMjA1NTMyNDYyMDUyNkY2Rjc0MjA0MzQxMjA1MzY1NzI2OSBcCisv
LyA2MTZDMjAzNDM1MzczMjMwMzAzNjMzMzEzMDIwMTcwRDMxMzQzMDM4MzAzMTMwMzAzMDMwMzAz
MDVBMTgwRjMyMzAzNTMwMzAzOTMgXAorLy8gMDM0MzAzMDMwMzAzMDMwNUEzMDJDMzEyQTMwMjgw
NjAzNTUwNDAzMEMyMTU5NzU2MjY5NjM2RjIwNTUzMjQ2MjA0NTQ1MjA1MzY1IFwKKy8vIDcyNjk2
MTZDMjAzMjM0MzkzMTM4MzIzMzMyMzQzNzM3MzAzMDU5MzAxMzA2MDcyQTg2NDhDRTNEMDIwMTA2
MDgyQTg2NDhDRTNEMCBcCisvLyAzMDEwNzAzNDIwMDA0M0NDQUI5MkNDQjk3Mjg3RUU4RTYzOTQz
N0UyMUZDRDZCNkYxNjVCMkQ1QTNGM0RCMTMxRDMxQzE2Qjc0MkIgXAorLy8gQjQ3NkQ4RDFFOTkw
ODBFQjU0NkM5QkJERjU1NkU2MjEwRkQ0Mjc4NTg5OUU3OENDNTg5RUJFMzEwRjZDREI5RkY0QTMz
QjMwMzkzIFwKKy8vIDAyMjA2MDkyQjA2MDEwNDAxODJDNDBBMDIwNDE1MzEyRTMzMkUzNjJFMzEy
RTM0MkUzMTJFMzQzMTM0MzgzMjJFMzEyRTMyMzAxMyBcCisvLyAwNjBCMkIwNjAxMDQwMTgyRTUx
QzAyMDEwMTA0MDQwMzAyMDQzMDMwMEQwNjA5MkE4NjQ4ODZGNzBEMDEwMTBCMDUwMDAzODIwMTAg
XAorLy8gMTAwOUY5QjA1MjI0OEJDNENGNDJDQzU5OTFGQ0FBQkFDOUI2NTFCQkU1QkRDREM4RUYw
QUQyQzFDMUZGQjM2RDE4NzE1RDQyRTc4IFwKKy8vIEIyNDkyMjRGOTJDN0U2RTdBMDVDNDlGMEU3
RTRDODgxQkYyRTk0RjQ1RTRBMjE4MzNENzQ1Njg1MUQwRjZDMTQ1QTI5NTQwQzg3NCBcCisvLyBG
MzA5MkM5MzRCNDNEMjIyQjg5NjJDMEY0MTBDRUYxREI3NTg5MkFGMTE2QjQ0QTk2RjVEMzVBREVB
MzgyMkZDNzE0NkY2MDA0MzggXAorLy8gNUJDQjY5QjY1Qzk5RTdFQjY5MTk3ODY3MDNDMEQ4Q0Q0
MUU4Rjc1Q0NBNDRBQThBQjcyNUFEOEU3OTlGRjNBODY5NkE2RjFCMjY1IFwKKy8vIDZFNjMxQjFF
NDAxODNDMDhGREE1M0ZBNEE4Rjg1QTA1NjkzOTQ0QUUxNzlBMTMzOUQwMDJEMTVDQUJEODEwMDkw
RUM3MjJFRjVERSBcCisvLyBGOTk2NUEzNzFENDE1RDYyNEI2OEEyNzA3Q0FEOTdCQ0REMTc4NUFG
OTdFMjU4RjMzREY1NkEwMzFBQTAzNTZEOEU4RDVFQkNBREMgXAorLy8gNzRFMDcxNjM2QzZCMTEw
QUNFNUNDOUI5MERGRUFDQUU2NDBGRjFCQjBGMUZFNURCNEVGRjdBOTVGMDYwNzMzRjUnXX0KK2Nv
bnN0ZXhwciB1aW50OF90IGtVMmZBdHRlc3RhdGlvblN0YXRlbWVudENCT1JbXSA9IHsKKyAgICAv
LyBNYXAoMikKKyAgICAweEEyLAorICAgIC8vIFRleHQoMykKKyAgICAweDYzLAorICAgIC8vICJz
aWciCisgICAgMHg3MywgMHg2OSwgMHg2NywKKyAgICAvLyBCeXRlcyg3MSkKKyAgICAweDU4LCAw
eDQ3LAorICAgIC8vIEJ5dGUgYXJyYXkgY29udGVudAorICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4
MjAsIDB4MzIsIDB4NDcsIDB4NzksIDB4QzYsIDB4OEYsIDB4MzMsIDB4ODAsIDB4MjgsCisgICAg
MHg4QSwgMHgxMSwgMHg5NywgMHhCNiwgMHgwOSwgMHg1RiwgMHg3QSwgMHg2RSwgMHhCOSwgMHhC
MSwgMHhCMSwgMHhDMSwKKyAgICAweDI3LCAweEY2LCAweDZBLCAweEUxLCAweDJBLCAweDk5LCAw
eEZFLCAweDg1LCAweDMyLCAweEVDLCAweDIzLCAweEI5LAorICAgIDB4MDIsIDB4MjEsIDB4MDAs
IDB4RTMsIDB4OTUsIDB4MTYsIDB4QUMsIDB4NEQsIDB4NjEsIDB4RUUsIDB4NjQsIDB4MDQsCisg
ICAgMHg0RCwgMHg1MCwgMHhCNCwgMHgxNSwgMHhBNiwgMHhBNCwgMHhENCwgMHhEOCwgMHg0Qiwg
MHhBNiwgMHhEOCwgMHg5NSwKKyAgICAweENCLCAweDVBLCAweEI3LCAweEExLCAweEFBLCAweDdE
LCAweDA4LCAweDFELCAweEUzLCAweDQxLCAweEZBLAorICAgIC8vIFRleHQoMykKKyAgICAweDYz
LAorICAgIC8vICJ4NWMiCisgICAgMHg3OCwgMHgzNSwgMHg2MywKKyAgICAvLyBBcnJheSgxKQor
ICAgIDB4ODEsCisgICAgLy8gQnl0ZXMoNTkwKQorICAgIDB4NTksIDB4MDIsIDB4NEUsCisgICAg
Ly8gQnl0ZSBhcnJheSBjb250ZW50CisgICAgMHgzMCwgMHg4MiwgMHgwMiwgMHg0QSwgMHgzMCwg
MHg4MiwgMHgwMSwgMHgzMiwgMHhBMCwgMHgwMywgMHgwMiwgMHgwMSwKKyAgICAweDAyLCAweDAy
LCAweDA0LCAweDA0LCAweDZDLCAweDg4LCAweDIyLCAweDMwLCAweDBELCAweDA2LCAweDA5LCAw
eDJBLAorICAgIDB4ODYsIDB4NDgsIDB4ODYsIDB4RjcsIDB4MEQsIDB4MDEsIDB4MDEsIDB4MEIs
IDB4MDUsIDB4MDAsIDB4MzAsIDB4MkUsCisgICAgMHgzMSwgMHgyQywgMHgzMCwgMHgyQSwgMHgw
NiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwMywgMHgxMywgMHgyMywgMHg1OSwKKyAgICAweDc1LCAw
eDYyLCAweDY5LCAweDYzLCAweDZGLCAweDIwLCAweDU1LCAweDMyLCAweDQ2LCAweDIwLCAweDUy
LCAweDZGLAorICAgIDB4NkYsIDB4NzQsIDB4MjAsIDB4NDMsIDB4NDEsIDB4MjAsIDB4NTMsIDB4
NjUsIDB4NzIsIDB4NjksIDB4NjEsIDB4NkMsCisgICAgMHgyMCwgMHgzNCwgMHgzNSwgMHgzNywg
MHgzMiwgMHgzMCwgMHgzMCwgMHgzNiwgMHgzMywgMHgzMSwgMHgzMCwgMHgyMCwKKyAgICAweDE3
LCAweDBELCAweDMxLCAweDM0LCAweDMwLCAweDM4LCAweDMwLCAweDMxLCAweDMwLCAweDMwLCAw
eDMwLCAweDMwLAorICAgIDB4MzAsIDB4MzAsIDB4NUEsIDB4MTgsIDB4MEYsIDB4MzIsIDB4MzAs
IDB4MzUsIDB4MzAsIDB4MzAsIDB4MzksIDB4MzAsCisgICAgMHgzNCwgMHgzMCwgMHgzMCwgMHgz
MCwgMHgzMCwgMHgzMCwgMHgzMCwgMHg1QSwgMHgzMCwgMHgyQywgMHgzMSwgMHgyQSwKKyAgICAw
eDMwLCAweDI4LCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDAzLCAweDBDLCAweDIxLCAweDU5
LCAweDc1LCAweDYyLAorICAgIDB4NjksIDB4NjMsIDB4NkYsIDB4MjAsIDB4NTUsIDB4MzIsIDB4
NDYsIDB4MjAsIDB4NDUsIDB4NDUsIDB4MjAsIDB4NTMsCisgICAgMHg2NSwgMHg3MiwgMHg2OSwg
MHg2MSwgMHg2QywgMHgyMCwgMHgzMiwgMHgzNCwgMHgzOSwgMHgzMSwgMHgzOCwgMHgzMiwKKyAg
ICAweDMzLCAweDMyLCAweDM0LCAweDM3LCAweDM3LCAweDMwLCAweDMwLCAweDU5LCAweDMwLCAw
eDEzLCAweDA2LCAweDA3LAorICAgIDB4MkEsIDB4ODYsIDB4NDgsIDB4Q0UsIDB4M0QsIDB4MDIs
IDB4MDEsIDB4MDYsIDB4MDgsIDB4MkEsIDB4ODYsIDB4NDgsCisgICAgMHhDRSwgMHgzRCwgMHgw
MywgMHgwMSwgMHgwNywgMHgwMywgMHg0MiwgMHgwMCwgMHgwNCwgMHgzQywgMHhDQSwgMHhCOSwK
KyAgICAweDJDLCAweENCLCAweDk3LCAweDI4LCAweDdFLCAweEU4LCAweEU2LCAweDM5LCAweDQz
LCAweDdFLCAweDIxLCAweEZDLAorICAgIDB4RDYsIDB4QjYsIDB4RjEsIDB4NjUsIDB4QjIsIDB4
RDUsIDB4QTMsIDB4RjMsIDB4REIsIDB4MTMsIDB4MUQsIDB4MzEsCisgICAgMHhDMSwgMHg2Qiwg
MHg3NCwgMHgyQiwgMHhCNCwgMHg3NiwgMHhEOCwgMHhEMSwgMHhFOSwgMHg5MCwgMHg4MCwgMHhF
QiwKKyAgICAweDU0LCAweDZDLCAweDlCLCAweEJELCAweEY1LCAweDU2LCAweEU2LCAweDIxLCAw
eDBGLCAweEQ0LCAweDI3LCAweDg1LAorICAgIDB4ODksIDB4OUUsIDB4NzgsIDB4Q0MsIDB4NTgs
IDB4OUUsIDB4QkUsIDB4MzEsIDB4MEYsIDB4NkMsIDB4REIsIDB4OUYsCisgICAgMHhGNCwgMHhB
MywgMHgzQiwgMHgzMCwgMHgzOSwgMHgzMCwgMHgyMiwgMHgwNiwgMHgwOSwgMHgyQiwgMHgwNiwg
MHgwMSwKKyAgICAweDA0LCAweDAxLCAweDgyLCAweEM0LCAweDBBLCAweDAyLCAweDA0LCAweDE1
LCAweDMxLCAweDJFLCAweDMzLCAweDJFLAorICAgIDB4MzYsIDB4MkUsIDB4MzEsIDB4MkUsIDB4
MzQsIDB4MkUsIDB4MzEsIDB4MkUsIDB4MzQsIDB4MzEsIDB4MzQsIDB4MzgsCisgICAgMHgzMiwg
MHgyRSwgMHgzMSwgMHgyRSwgMHgzMiwgMHgzMCwgMHgxMywgMHgwNiwgMHgwQiwgMHgyQiwgMHgw
NiwgMHgwMSwKKyAgICAweDA0LCAweDAxLCAweDgyLCAweEU1LCAweDFDLCAweDAyLCAweDAxLCAw
eDAxLCAweDA0LCAweDA0LCAweDAzLCAweDAyLAorICAgIDB4MDQsIDB4MzAsIDB4MzAsIDB4MEQs
IDB4MDYsIDB4MDksIDB4MkEsIDB4ODYsIDB4NDgsIDB4ODYsIDB4RjcsIDB4MEQsCisgICAgMHgw
MSwgMHgwMSwgMHgwQiwgMHgwNSwgMHgwMCwgMHgwMywgMHg4MiwgMHgwMSwgMHgwMSwgMHgwMCwg
MHg5RiwgMHg5QiwKKyAgICAweDA1LCAweDIyLCAweDQ4LCAweEJDLCAweDRDLCAweEY0LCAweDJD
LCAweEM1LCAweDk5LCAweDFGLCAweENBLCAweEFCLAorICAgIDB4QUMsIDB4OUIsIDB4NjUsIDB4
MUIsIDB4QkUsIDB4NUIsIDB4REMsIDB4REMsIDB4OEUsIDB4RjAsIDB4QUQsIDB4MkMsCisgICAg
MHgxQywgMHgxRiwgMHhGQiwgMHgzNiwgMHhEMSwgMHg4NywgMHgxNSwgMHhENCwgMHgyRSwgMHg3
OCwgMHhCMiwgMHg0OSwKKyAgICAweDIyLCAweDRGLCAweDkyLCAweEM3LCAweEU2LCAweEU3LCAw
eEEwLCAweDVDLCAweDQ5LCAweEYwLCAweEU3LCAweEU0LAorICAgIDB4QzgsIDB4ODEsIDB4QkYs
IDB4MkUsIDB4OTQsIDB4RjQsIDB4NUUsIDB4NEEsIDB4MjEsIDB4ODMsIDB4M0QsIDB4NzQsCisg
ICAgMHg1NiwgMHg4NSwgMHgxRCwgMHgwRiwgMHg2QywgMHgxNCwgMHg1QSwgMHgyOSwgMHg1NCwg
MHgwQywgMHg4NywgMHg0RiwKKyAgICAweDMwLCAweDkyLCAweEM5LCAweDM0LCAweEI0LCAweDNE
LCAweDIyLCAweDJCLCAweDg5LCAweDYyLCAweEMwLCAweEY0LAorICAgIDB4MTAsIDB4Q0UsIDB4
RjEsIDB4REIsIDB4NzUsIDB4ODksIDB4MkEsIDB4RjEsIDB4MTYsIDB4QjQsIDB4NEEsIDB4OTYs
CisgICAgMHhGNSwgMHhEMywgMHg1QSwgMHhERSwgMHhBMywgMHg4MiwgMHgyRiwgMHhDNywgMHgx
NCwgMHg2RiwgMHg2MCwgMHgwNCwKKyAgICAweDM4LCAweDVCLCAweENCLCAweDY5LCAweEI2LCAw
eDVDLCAweDk5LCAweEU3LCAweEVCLCAweDY5LCAweDE5LCAweDc4LAorICAgIDB4NjcsIDB4MDMs
IDB4QzAsIDB4RDgsIDB4Q0QsIDB4NDEsIDB4RTgsIDB4RjcsIDB4NUMsIDB4Q0EsIDB4NDQsIDB4
QUEsCisgICAgMHg4QSwgMHhCNywgMHgyNSwgMHhBRCwgMHg4RSwgMHg3OSwgMHg5RiwgMHhGMywg
MHhBOCwgMHg2OSwgMHg2QSwgMHg2RiwKKyAgICAweDFCLCAweDI2LCAweDU2LCAweEU2LCAweDMx
LCAweEIxLCAweEU0LCAweDAxLCAweDgzLCAweEMwLCAweDhGLCAweERBLAorICAgIDB4NTMsIDB4
RkEsIDB4NEEsIDB4OEYsIDB4ODUsIDB4QTAsIDB4NTYsIDB4OTMsIDB4OTQsIDB4NEEsIDB4RTEs
IDB4NzksCisgICAgMHhBMSwgMHgzMywgMHg5RCwgMHgwMCwgMHgyRCwgMHgxNSwgMHhDQSwgMHhC
RCwgMHg4MSwgMHgwMCwgMHg5MCwgMHhFQywKKyAgICAweDcyLCAweDJFLCAweEY1LCAweERFLCAw
eEY5LCAweDk2LCAweDVBLCAweDM3LCAweDFELCAweDQxLCAweDVELCAweDYyLAorICAgIDB4NEIs
IDB4NjgsIDB4QTIsIDB4NzAsIDB4N0MsIDB4QUQsIDB4OTcsIDB4QkMsIDB4REQsIDB4MTcsIDB4
ODUsIDB4QUYsCisgICAgMHg5NywgMHhFMiwgMHg1OCwgMHhGMywgMHgzRCwgMHhGNSwgMHg2QSwg
MHgwMywgMHgxQSwgMHhBMCwgMHgzNSwgMHg2RCwKKyAgICAweDhFLCAweDhELCAweDVFLCAweEJD
LCAweEFELCAweEM3LCAweDRFLCAweDA3LCAweDE2LCAweDM2LCAweEM2LCAweEIxLAorICAgIDB4
MTAsIDB4QUMsIDB4RTUsIDB4Q0MsIDB4OUIsIDB4OTAsIDB4REYsIDB4RUEsIDB4Q0EsIDB4RTYs
IDB4NDAsIDB4RkYsCisgICAgMHgxQiwgMHhCMCwgMHhGMSwgMHhGRSwgMHg1RCwgMHhCNCwgMHhF
RiwgMHhGNywgMHhBOSwgMHg1RiwgMHgwNiwgMHgwNywKKyAgICAweDMzLCAweEY1LAorfTsKKwor
Ly8gVTJGIHJlc3BvbnNlIGJsb2IgcHJvZHVjZWQgYnkgYSBVMkYgc2lnbiByZXF1ZXN0IHVzZWQg
aW4gZXhhbXBsZSA3IG9mIHRoZQorLy8gQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFu
Y2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50
aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCN1c2luZy10aGUtY3RhcDItYXV0
aGVudGljYXRvcmdldGFzc2VydGlvbi1jb21tYW5kLXdpdGgtY3RhcDEtdTJmLWF1dGhlbnRpY2F0
b3JzCitjb25zdGV4cHIgdWludDhfdCBrVGVzdFUyZlNpZ25SZXNwb25zZVtdID0geworICAgIC8v
IFVzZXIgcHJlc2VuY2UKKyAgICAweDAxLAorICAgIC8vIFNpZ24gY291bnQoNCBieXRlcykKKyAg
ICAweDAwLCAweDAwLCAweDAwLCAweDNCLAorICAgIC8vIFNpZ25hdHVyZQorICAgIDB4MzAsIDB4
NDQsIDB4MDIsIDB4MjAsIDB4N0IsIDB4REUsIDB4MEEsIDB4NTIsIDB4QUMsIDB4MUYsIDB4NEMs
IDB4OEIsCisgICAgMHgyNywgMHhFMCwgMHgwMywgMHhBMywgMHg3MCwgMHhDRCwgMHg2NiwgMHhB
NCwgMHhDNywgMHgxMSwgMHg4RCwgMHhEMiwKKyAgICAweDJELCAweDU0LCAweDQ3LCAweDgzLCAw
eDVGLCAweDQ1LCAweEI5LCAweDlDLCAweDY4LCAweDQyLCAweDNGLCAweEY3LAorICAgIDB4MDIs
IDB4MjAsIDB4M0MsIDB4NTEsIDB4N0IsIDB4NDcsIDB4ODcsIDB4N0YsIDB4ODUsIDB4NzgsIDB4
MkQsIDB4RTEsCisgICAgMHgwMCwgMHg4NiwgMHhBNywgMHg4MywgMHhEMSwgMHhFNywgMHhERiwg
MHg0RSwgMHgzNiwgMHgzOSwgMHhFNywgMHg3MSwKKyAgICAweEY1LCAweEY2LCAweEFGLCAweEEz
LCAweDVBLCAweEFELCAweDUzLCAweDczLCAweDg1LCAweDhFLAorfTsKKworLy8gQ1RBUCByZXF1
ZXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0
W10gPSB7CisgICAgLy8gYXV0aGVudGljYXRvck1ha2VDcmVkZW50aWFsIGNvbW1hbmQKKyAgICAw
eDAxLAorICAgIC8vIG1hcCg1KQorICAgIDB4YTUsCisgICAgLy8ga2V5KDEpIC0gY2xpZW50RGF0
YUhhc2gKKyAgICAweDAxLAorICAgIC8vIGJ5dGVzKDMyKQorICAgIDB4NTgsIDB4MjAsIDB4Njgs
IDB4NzEsIDB4MzQsIDB4OTYsIDB4ODIsIDB4MjIsIDB4ZWMsIDB4MTcsIDB4MjAsIDB4MmUsCisg
ICAgMHg0MiwgMHg1MCwgMHg1ZiwgMHg4ZSwgMHhkMiwgMHhiMSwgMHg2YSwgMHhlMiwgMHgyZiwg
MHgxNiwgMHhiYiwgMHgwNSwKKyAgICAweGI4LCAweDhjLCAweDI1LCAweGRiLCAweDllLCAweDYw
LCAweDI2LCAweDQ1LCAweGYxLCAweDQxLAorICAgIC8vIGtleSgyKSAtIHJwCisgICAgMHgwMiwK
KyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8vIGtleSAtICJpZCIKKyAgICAweDYyLCAw
eDY5LCAweDY0LAorICAgIC8vIHZhbHVlIC0gImFjbWUuY29tIgorICAgIDB4NjgsIDB4NjEsIDB4
NjMsIDB4NmQsIDB4NjUsIDB4MmUsIDB4NjMsIDB4NmYsIDB4NmQsCisgICAgLy8ga2V5IC0gICJu
YW1lIgorICAgIDB4NjQsIDB4NmUsIDB4NjEsIDB4NmQsIDB4NjUsCisgICAgLy8gdmFsdWUgLSAi
QWNtZSIKKyAgICAweDY0LCAweDQxLCAweDYzLCAweDZkLCAweDY1LAorICAgIC8vIGtleSgzKSAt
IHVzZXIKKyAgICAweDAzLAorICAgIC8vIG1hcCg0KQorICAgIDB4YTQsCisgICAgLy8ga2V5IC0g
ImlkIgorICAgIDB4NjIsIDB4NjksIDB4NjQsCisgICAgLy8gdmFsdWUgLSB1c2VyIGlkCisgICAg
MHg0OCwgMHgxMCwgMHg5OCwgMHgyMywgMHg3MiwgMHgzNSwgMHg0MCwgMHg5OCwgMHg3MiwKKyAg
ICAvLyBrZXkgLSAiaWNvbiIKKyAgICAweDY0LCAweDY5LCAweDYzLCAweDZmLCAweDZlLAorICAg
IC8vIHZhbHVlIC0gImh0dHBzOi8vcGljcy5hY21lLmNvbS8wMC9wL2FCampqcHFQYi5wbmciCisg
ICAgMHg3OCwgMHgyOCwgMHg2OCwgMHg3NCwgMHg3NCwgMHg3MCwgMHg3MywgMHgzYSwgMHgyZiwg
MHgyZiwgMHg3MCwgMHg2OSwKKyAgICAweDYzLCAweDczLCAweDJlLCAweDYxLCAweDYzLCAweDZk
LCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAweDZkLCAweDJmLAorICAgIDB4MzAsIDB4MzAsIDB4
MmYsIDB4NzAsIDB4MmYsIDB4NjEsIDB4NDIsIDB4NmEsIDB4NmEsIDB4NmEsIDB4NzAsIDB4NzEs
CisgICAgMHg1MCwgMHg2MiwgMHgyZSwgMHg3MCwgMHg2ZSwgMHg2NywKKyAgICAvLyBrZXkgLSAi
bmFtZSIKKyAgICAweDY0LCAweDZlLCAweDYxLCAweDZkLCAweDY1LAorICAgIC8vIHZhbHVlIC0g
ImpvaG5wc21pdGhAZXhhbXBsZS5jb20iCisgICAgMHg3NiwgMHg2YSwgMHg2ZiwgMHg2OCwgMHg2
ZSwgMHg3MCwgMHg3MywgMHg2ZCwgMHg2OSwgMHg3NCwgMHg2OCwgMHg0MCwKKyAgICAweDY1LCAw
eDc4LCAweDYxLCAweDZkLCAweDcwLCAweDZjLCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAweDZk
LAorICAgIC8vIGtleSAtICJkaXNwbGF5TmFtZSIKKyAgICAweDZiLCAweDY0LCAweDY5LCAweDcz
LCAweDcwLCAweDZjLCAweDYxLCAweDc5LCAweDRlLCAweDYxLCAweDZkLCAweDY1LAorICAgIC8v
IHZhbHVlIC0gIkpvaG4gUC4gU21pdGgiCisgICAgMHg2ZCwgMHg0YSwgMHg2ZiwgMHg2OCwgMHg2
ZSwgMHgyMCwgMHg1MCwgMHgyZSwgMHgyMCwgMHg1MywgMHg2ZCwgMHg2OSwKKyAgICAweDc0LCAw
eDY4LAorICAgIC8vIGtleSg0KSAtIHB1YktleUNyZWRQYXJhbXMKKyAgICAweDA0LAorICAgIC8v
IGFycmF5KDIpCisgICAgMHg4MiwKKyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8vIGtl
eSAtICJhbGciCisgICAgMHg2MywgMHg2MSwgMHg2YywgMHg2NywKKyAgICAvLyB2YWx1ZSAtIDcK
KyAgICAweDA3LAorICAgIC8vIGtleSAtICJ0eXBlIgorICAgIDB4NjQsIDB4NzQsIDB4NzksIDB4
NzAsIDB4NjUsCisgICAgLy8gdmFsdWUgLSAicHVibGljLWtleSIKKyAgICAweDZhLCAweDcwLCAw
eDc1LCAweDYyLCAweDZDLCAweDY5LCAweDYzLCAweDJELCAweDZCLCAweDY1LCAweDc5LAorICAg
IC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8ga2V5IC0gImFsZyIKKyAgICAweDYzLCAweDYx
LCAweDZjLCAweDY3LAorICAgIC8vIHZhbHVlIC0gMjU3CisgICAgMHgxOSwgMHgwMSwgMHgwMSwK
KyAgICAvLyBrZXkgLSAidHlwZSIKKyAgICAweDY0LCAweDc0LCAweDc5LCAweDcwLCAweDY1LCAv
LyAidHlwZSIKKyAgICAvLyB2YWx1ZSAtICJwdWJsaWMta2V5IgorICAgIDB4NmEsIDB4NzAsIDB4
NzUsIDB4NjIsIDB4NkMsIDB4NjksIDB4NjMsIDB4MkQsIDB4NkIsIDB4NjUsIDB4NzksCisgICAg
Ly8ga2V5KDcpIC0gb3B0aW9ucworICAgIDB4MDcsCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwK
KyAgICAvLyBrZXkgLSAicmsiCisgICAgMHg2MiwgMHg3MiwgMHg2YiwKKyAgICAvLyBUcnVlKDIx
KQorICAgIDB4ZjUsCisgICAgLy8ga2V5IC0gInV2IgorICAgIDB4NjIsIDB4NzUsIDB4NzYsCisg
ICAgLy8gVHJ1ZSgyMSkKKyAgICAweGY1fTsKKworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RDb21w
bGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RbXSA9IHsKKyAgICAvLyBhdXRoZW50aWNhdG9yR2V0
QXNzZXJ0aW9uIGNvbW1hbmQKKyAgICAweDAyLAorICAgIC8vIG1hcCg0KQorICAgIDB4YTQsCisg
ICAgLy8ga2V5KDAxKSAtcnBJZAorICAgIDB4MDEsCisgICAgLy8gdmFsdWUgLSAiYWNtZS5jb20i
CisgICAgMHg2OCwgMHg2MSwgMHg2MywgMHg2ZCwgMHg2NSwgMHgyZSwgMHg2MywgMHg2ZiwgMHg2
ZCwKKyAgICAvLyBrZXkoMDIpIC0gY2xpZW50IGRhdGEgaGFzaAorICAgIDB4MDIsCisgICAgLy8g
dmFsdWUgLSBieXRlcygzMikKKyAgICAweDU4LCAweDIwLCAweDY4LCAweDcxLCAweDM0LCAweDk2
LCAweDgyLCAweDIyLCAweGVjLCAweDE3LCAweDIwLCAweDJlLAorICAgIDB4NDIsIDB4NTAsIDB4
NWYsIDB4OGUsIDB4ZDIsIDB4YjEsIDB4NmEsIDB4ZTIsIDB4MmYsIDB4MTYsIDB4YmIsIDB4MDUs
CisgICAgMHhiOCwgMHg4YywgMHgyNSwgMHhkYiwgMHg5ZSwgMHg2MCwgMHgyNiwgMHg0NSwgMHhm
MSwgMHg0MSwKKyAgICAvLyBrZXkoMDMpIC0gYWxsb3cgbGlzdAorICAgIDB4MDMsCisgICAgLy8g
dmFsdWUgLSBhcnJheSgyKQorICAgIDB4ODIsCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAg
ICAvLyBrZXkgLSAiaWQiCisgICAgMHg2MiwgMHg2OSwgMHg2NCwKKyAgICAvLyB2YWx1ZSAtIGNy
ZWRlbnRpYWwgSUQKKyAgICAweDU4LCAweDQwLCAweGYyLCAweDIwLCAweDA2LCAweGRlLCAweDRm
LCAweDkwLCAweDVhLCAweGY2LCAweDhhLCAweDQzLAorICAgIDB4OTQsIDB4MmYsIDB4MDIsIDB4
NGYsIDB4MmEsIDB4NWUsIDB4Y2UsIDB4NjAsIDB4M2QsIDB4OWMsIDB4NmQsIDB4NGIsCisgICAg
MHgzZCwgMHhmOCwgMHhiZSwgMHgwOCwgMHhlZCwgMHgwMSwgMHhmYywgMHg0NCwgMHgyNiwgMHg0
NiwgMHhkMCwgMHgzNCwKKyAgICAweDg1LCAweDhhLCAweGM3LCAweDViLCAweGVkLCAweDNmLCAw
eGQ1LCAweDgwLCAweGJmLCAweDk4LCAweDA4LCAweGQ5LAorICAgIDB4NGYsIDB4Y2IsIDB4ZWUs
IDB4ODIsIDB4YjksIDB4YjIsIDB4ZWYsIDB4NjYsIDB4NzcsIDB4YWYsIDB4MGEsIDB4ZGMsCisg
ICAgMHhjMywgMHg1OCwgMHg1MiwgMHhlYSwgMHg2YiwgMHg5ZSwKKyAgICAvLyBrZXkgLSAidHlw
ZSIKKyAgICAweDY0LCAweDc0LCAweDc5LCAweDcwLCAweDY1LAorICAgIC8vIHZhbHVlIC0gInB1
YmxpYy1rZXkiCisgICAgMHg2YSwgMHg3MCwgMHg3NSwgMHg2MiwgMHg2QywgMHg2OSwgMHg2Mywg
MHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8v
IGtleSAtICJpZCIKKyAgICAweDYyLCAweDY5LCAweDY0LAorICAgIC8vIHZhbHVlIC0gY3JlZGVu
dGlhbCBJRAorICAgIDB4NTgsIDB4MzIsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4
MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAw
eDAzLCAweDAzLAorICAgIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMs
IDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAgMHgwMywgMHgwMywgMHgwMywgMHgw
MywKKyAgICAvLyBrZXkgLSAidHlwZSIKKyAgICAweDY0LCAweDc0LCAweDc5LCAweDcwLCAweDY1
LAorICAgIC8vIHZhbHVlIC0gInB1YmxpYy1rZXkiCisgICAgMHg2YSwgMHg3MCwgMHg3NSwgMHg2
MiwgMHg2QywgMHg2OSwgMHg2MywgMHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAgICAvLyB1bnNp
Z25lZCg1KSAtIG9wdGlvbnMKKyAgICAweDA1LAorICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisg
ICAgLy8ga2V5IC0idXAiCisgICAgMHg2MiwgMHg3NSwgMHg3MCwKKyAgICAvLyB2YWx1ZSAtIEZh
bHNlKDIwKQorICAgIDB4ZjQsCisgICAgLy8ga2V5IC0gInV2IgorICAgIDB4NjIsIDB4NzUsIDB4
NzYsCisgICAgLy8gdmFsdWUgLSBUcnVlKDIxKQorICAgIDB4ZjUsCit9OworCisvLyBDVEFQIHJl
c3BvbnNlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCisvLyBBIHNhbXBsZSB3ZWxsIGZvcm1lZCByZXNwb25zZSB0byBDVEFQ
IEF1dGhlbnRpY2F0b3JHZXRJbmZvIHJlcXVlc3QuIENyb3NzCisvLyBwbGF0Zm9ybSBkZXZpY2Ug
dGhhdCBzdXBwb3J0cyByZXNpZGVudCBrZXksIGFuZCB1c2VyIHZlcmlmaWNhdGlvbi4KK2NvbnN0
ZXhwciB1aW50OF90IGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVtdID0geworICAg
IDB4MDAsIDB4QTYsIDB4MDEsIDB4ODIsIDB4NjgsIDB4NDYsIDB4NDksIDB4NDQsIDB4NEYsIDB4
NUYsIDB4MzIsIDB4NUYsCisgICAgMHgzMCwgMHg2NiwgMHg1NSwgMHgzMiwgMHg0NiwgMHg1Riwg
MHg1NiwgMHgzMiwgMHgwMiwgMHg4MiwgMHg2MywgMHg3NSwKKyAgICAweDc2LCAweDZELCAweDZC
LCAweDY4LCAweDZELCAweDYxLCAweDYzLCAweDJELCAweDczLCAweDY1LCAweDYzLCAweDcyLAor
ICAgIDB4NjUsIDB4NzQsIDB4MDMsIDB4NTAsIDB4RjgsIDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMs
IDB4MEEsIDB4NEQsIDB4MTUsCisgICAgMHg4MCwgMHgwNiwgMHgxNywgMHgxMSwgMHgxRiwgMHg5
RSwgMHhEQywgMHg3RCwgMHgwNCwgMHhBNSwgMHg2MiwgMHg3MiwKKyAgICAweDZCLCAweEY1LCAw
eDYyLCAweDc1LCAweDcwLCAweEY1LCAweDYyLCAweDc1LCAweDc2LCAweEY1LCAweDY0LCAweDcw
LAorICAgIDB4NkMsIDB4NjEsIDB4NzQsIDB4RjQsIDB4NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4
NjUsIDB4NkUsIDB4NzQsIDB4NTAsCisgICAgMHg2OSwgMHg2RSwgMHhGNCwgMHgwNSwgMHgxOSwg
MHgwNCwgMHhCMCwgMHgwNiwgMHg4MSwgMHgwMSwKK307CisKKy8vIEF1dGhlbnRpY2F0b3JHZXRJ
bmZvIHJlcXVlc3Qgd2l0aCBhbGwgY29uZmlndXJhdGlvbnMgZXF1YWwgdG8gdGhhdCBvZgorLy8g
a1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlIGV4Y2VwdCBwbGF0Zm9ybSBkZXZpY2Ug
b3B0aW9uIGlzIHNldCB0bworLy8gdHJ1ZS4KK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0R2V0SW5m
b1Jlc3BvbnNlUGxhdGZvcm1EZXZpY2VbXSA9IHsKKyAgICAweDAwLCAweEE2LCAweDAxLCAweDgy
LCAweDY4LCAweDQ2LCAweDQ5LCAweDQ0LCAweDRGLCAweDVGLCAweDMyLCAweDVGLAorICAgIDB4
MzAsIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYsIDB4NTYsIDB4MzIsIDB4MDIsIDB4ODIs
IDB4NjMsIDB4NzUsCisgICAgMHg3NiwgMHg2RCwgMHg2QiwgMHg2OCwgMHg2RCwgMHg2MSwgMHg2
MywgMHgyRCwgMHg3MywgMHg2NSwgMHg2MywgMHg3MiwKKyAgICAweDY1LCAweDc0LCAweDAzLCAw
eDUwLCAweEY4LCAweEEwLCAweDExLCAweEYzLCAweDhDLCAweDBBLCAweDRELCAweDE1LAorICAg
IDB4ODAsIDB4MDYsIDB4MTcsIDB4MTEsIDB4MUYsIDB4OUUsIDB4REMsIDB4N0QsIDB4MDQsIDB4
QTUsIDB4NjIsIDB4NzIsCisgICAgMHg2QiwgMHhGNSwgMHg2MiwgMHg3NSwgMHg3MCwgMHhGNSwg
MHg2MiwgMHg3NSwgMHg3NiwgMHhGNSwgMHg2NCwgMHg3MCwKKyAgICAvLyBwbGF0Zm9ybSBkZXZp
Y2UgOiB0cnVlCisgICAgMHg2QywgMHg2MSwgMHg3NCwgMHhGNSwKKyAgICAvLyBFbmQgb2YgcGxh
dGZvcm1fZGV2aWNlIHNldHRpbmcuCisgICAgMHg2OSwgMHg2MywgMHg2QywgMHg2OSwgMHg2NSwg
MHg2RSwgMHg3NCwgMHg1MCwgMHg2OSwgMHg2RSwgMHhGNCwgMHgwNSwKKyAgICAweDE5LCAweDA0
LCAweEIwLCAweDA2LCAweDgxLCAweDAxLAorfTsKKworLy8gQSBTYW1wbGUgd2VsbCBmb3JtZWQg
cmVzcG9uc2UgdG8gQ1RBUCBNYWtlQ3JlZGVudGlhbCByZXF1ZXN0LgorY29uc3RleHByIHVpbnQ4
X3Qga1Rlc3RNYWtlQ3JlZGVudGlhbFJlc3BvbnNlW10gPSB7CisgICAgLy8gU3VjY2VzcyBzdGF0
dXMgYnl0ZQorICAgIDB4MDAsCisgICAgLy8gTWFwKDAzKQorICAgIDB4YTMsCisgICAgLy8ga2V5
KDAxKSAtIEZvcm1hdAorICAgIDB4MDEsCisgICAgLy8gInBhY2tlZCIKKyAgICAweDY2LCAweDcw
LCAweDYxLCAweDYzLCAweDZiLCAweDY1LCAweDY0LAorICAgIC8vIGtleSgwMikgLSBBdXRoZW50
aWNhdG9yIERhdGEKKyAgICAweDAyLAorICAgIC8vIEJ5dGUoMTU0KQorICAgIDB4NTgsIDB4OWEs
IDB4MTEsIDB4OTQsIDB4MjIsIDB4OGQsIDB4YTgsIDB4ZmQsIDB4YmQsIDB4ZWUsIDB4ZmQsIDB4
MjYsCisgICAgMHgxYiwgMHhkNywgMHhiNiwgMHg1OSwgMHg1YywgMHhmZCwgMHg3MCwgMHhhNSwg
MHgwZCwgMHg3MCwgMHhjNiwgMHg0MCwKKyAgICAweDdiLCAweGNmLCAweDAxLCAweDNkLCAweGU5
LCAweDZkLCAweDRlLCAweGZiLCAweDE3LCAweGRlLCAweDQxLCAweDAwLAorICAgIDB4MDAsIDB4
MDAsIDB4MGIsIDB4ZjgsIDB4YTAsIDB4MTEsIDB4ZjMsIDB4OGMsIDB4MGEsIDB4NGQsIDB4MTUs
IDB4ODAsCisgICAgMHgwNiwgMHgxNywgMHgxMSwgMHgxZiwgMHg5ZSwgMHhkYywgMHg3ZCwgMHgw
MCwgMHgxMCwgMHg4OSwgMHg1OSwgMHhjZSwKKyAgICAweGFkLCAweDViLCAweDVjLCAweDQ4LCAw
eDE2LCAweDRlLCAweDhhLCAweGJjLCAweGQ2LCAweGQ5LCAweDQzLCAweDVjLAorICAgIDB4NmYs
IDB4YTMsIDB4NjMsIDB4NjEsIDB4NmMsIDB4NjcsIDB4NjUsIDB4NDUsIDB4NTMsIDB4MzIsIDB4
MzUsIDB4MzYsCisgICAgMHg2MSwgMHg3OCwgMHg1OCwgMHgyMCwgMHhmNywgMHhjNCwgMHhmNCwg
MHhhNiwgMHhmMSwgMHhkNywgMHg5NSwgMHgzOCwKKyAgICAweGRmLCAweGE0LCAweGM5LCAweGFj
LCAweDUwLCAweDg0LCAweDhkLCAweGY3LCAweDA4LCAweGJjLCAweDFjLCAweDk5LAorICAgIDB4
ZjUsIDB4ZTYsIDB4MGUsIDB4NTEsIDB4YjQsIDB4MmEsIDB4NTIsIDB4MWIsIDB4MzUsIDB4ZDMs
IDB4YjYsIDB4OWEsCisgICAgMHg2MSwgMHg3OSwgMHg1OCwgMHgyMCwgMHhkZSwgMHg3YiwgMHg3
ZCwgMHg2YywgMHhhNSwgMHg2NCwgMHhlNywgMHgwZSwKKyAgICAweGEzLCAweDIxLCAweGE0LCAw
eGQ1LCAweGQ5LCAweDZlLCAweGEwLCAweDBlLCAweGYwLCAweGUyLCAweGRiLCAweDg5LAorICAg
IDB4ZGQsIDB4NjEsIDB4ZDQsIDB4ODksIDB4NGMsIDB4MTUsIDB4YWMsIDB4NTgsIDB4NWIsIDB4
ZDIsIDB4MzYsIDB4ODQsCisgICAgLy8gS2V5KDAzKSAtIEF0dGVzdGF0aW9uIG9iamVjdAorICAg
IDB4MDMsCisgICAgLy8gTWFwIC0gQXR0ZXN0YXRpb24gb2JqZWN0CisgICAgMHhhMywgMHg2Mywg
MHg2MSwgMHg2YywgMHg2NywgMHgyNiwgMHg2MywgMHg3MywgMHg2OSwgMHg2NywgMHg1OCwgMHg0
NywKKyAgICAweDMwLCAweDQ1LCAweDAyLCAweDIwLCAweDEzLCAweGY3LCAweDNjLCAweDVkLCAw
eDlkLCAweDUzLCAweDBlLCAweDhjLAorICAgIDB4YzEsIDB4NWMsIDB4YzksIDB4YmQsIDB4OTYs
IDB4YWQsIDB4NTgsIDB4NmQsIDB4MzksIDB4MzYsIDB4NjQsIDB4ZTQsCisgICAgMHg2MiwgMHhk
NSwgMHhmMCwgMHg1NiwgMHgxMiwgMHgzNSwgMHhlNiwgMHgzNSwgMHgwZiwgMHgyYiwgMHg3Miwg
MHg4OSwKKyAgICAweDAyLCAweDIxLCAweDAwLCAweDkwLCAweDM1LCAweDdmLCAweGY5LCAweDEw
LCAweGNjLCAweGI1LCAweDZhLCAweGM1LAorICAgIDB4YjUsIDB4OTYsIDB4NTEsIDB4MTksIDB4
NDgsIDB4NTgsIDB4MWMsIDB4OGYsIDB4ZGQsIDB4YjQsIDB4YTIsIDB4YjcsCisgICAgMHg5OSwg
MHg1OSwgMHg5NCwgMHg4MCwgMHg3OCwgMHhiMCwgMHg5ZiwgMHg0YiwgMHhkYywgMHg2MiwgMHgy
OSwgMHg2MywKKyAgICAweDc4LCAweDM1LCAweDYzLCAweDgxLCAweDU5LCAweDAxLCAweDk3LCAw
eDMwLCAweDgyLCAweDAxLCAweDkzLCAweDMwLAorICAgIDB4ODIsIDB4MDEsIDB4MzgsIDB4YTAs
IDB4MDMsIDB4MDIsIDB4MDEsIDB4MDIsIDB4MDIsIDB4MDksIDB4MDAsIDB4ODUsCisgICAgMHg5
YiwgMHg3MiwgMHg2YywgMHhiMiwgMHg0YiwgMHg0YywgMHgyOSwgMHgzMCwgMHgwYSwgMHgwNiwg
MHgwOCwgMHgyYSwKKyAgICAweDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDA0LCAweDAzLCAweDAy
LCAweDMwLCAweDQ3LCAweDMxLCAweDBiLCAweDMwLAorICAgIDB4MDksIDB4MDYsIDB4MDMsIDB4
NTUsIDB4MDQsIDB4MDYsIDB4MTMsIDB4MDIsIDB4NTUsIDB4NTMsIDB4MzEsIDB4MTQsCisgICAg
MHgzMCwgMHgxMiwgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwYSwgMHgwYywgMHgwYiwgMHg1
OSwgMHg3NSwgMHg2MiwKKyAgICAweDY5LCAweDYzLCAweDZmLCAweDIwLCAweDU0LCAweDY1LCAw
eDczLCAweDc0LCAweDMxLCAweDIyLCAweDMwLCAweDIwLAorICAgIDB4MDYsIDB4MDMsIDB4NTUs
IDB4MDQsIDB4MGIsIDB4MGMsIDB4MTksIDB4NDEsIDB4NzUsIDB4NzQsIDB4NjgsIDB4NjUsCisg
ICAgMHg2ZSwgMHg3NCwgMHg2OSwgMHg2MywgMHg2MSwgMHg3NCwgMHg2ZiwgMHg3MiwgMHgyMCwg
MHg0MSwgMHg3NCwgMHg3NCwKKyAgICAweDY1LCAweDczLCAweDc0LCAweDYxLCAweDc0LCAweDY5
LCAweDZmLCAweDZlLCAweDMwLCAweDFlLCAweDE3LCAweDBkLAorICAgIDB4MzEsIDB4MzYsIDB4
MzEsIDB4MzIsIDB4MzAsIDB4MzQsIDB4MzEsIDB4MzEsIDB4MzUsIDB4MzUsIDB4MzAsIDB4MzAs
CisgICAgMHg1YSwgMHgxNywgMHgwZCwgMHgzMiwgMHgzNiwgMHgzMSwgMHgzMiwgMHgzMCwgMHgz
MiwgMHgzMSwgMHgzMSwgMHgzNSwKKyAgICAweDM1LCAweDMwLCAweDMwLCAweDVhLCAweDMwLCAw
eDQ3LCAweDMxLCAweDBiLCAweDMwLCAweDA5LCAweDA2LCAweDAzLAorICAgIDB4NTUsIDB4MDQs
IDB4MDYsIDB4MTMsIDB4MDIsIDB4NTUsIDB4NTMsIDB4MzEsIDB4MTQsIDB4MzAsIDB4MTIsIDB4
MDYsCisgICAgMHgwMywgMHg1NSwgMHgwNCwgMHgwYSwgMHgwYywgMHgwYiwgMHg1OSwgMHg3NSwg
MHg2MiwgMHg2OSwgMHg2MywgMHg2ZiwKKyAgICAweDIwLCAweDU0LCAweDY1LCAweDczLCAweDc0
LCAweDMxLCAweDIyLCAweDMwLCAweDIwLCAweDA2LCAweDAzLCAweDU1LAorICAgIDB4MDQsIDB4
MGIsIDB4MGMsIDB4MTksIDB4NDEsIDB4NzUsIDB4NzQsIDB4NjgsIDB4NjUsIDB4NmUsIDB4NzQs
IDB4NjksCisgICAgMHg2MywgMHg2MSwgMHg3NCwgMHg2ZiwgMHg3MiwgMHgyMCwgMHg0MSwgMHg3
NCwgMHg3NCwgMHg2NSwgMHg3MywgMHg3NCwKKyAgICAweDYxLCAweDc0LCAweDY5LCAweDZmLCAw
eDZlLCAweDMwLCAweDU5LCAweDMwLCAweDEzLCAweDA2LCAweDA3LCAweDJhLAorICAgIDB4ODYs
IDB4NDgsIDB4Y2UsIDB4M2QsIDB4MDIsIDB4MDEsIDB4MDYsIDB4MDgsIDB4MmEsIDB4ODYsIDB4
NDgsIDB4Y2UsCisgICAgMHgzZCwgMHgwMywgMHgwMSwgMHgwNywgMHgwMywgMHg0MiwgMHgwMCwg
MHgwNCwgMHhhZCwgMHgxMSwgMHhlYiwgMHgwZSwKKyAgICAweDg4LCAweDUyLCAweGU1LCAweDNh
LCAweGQ1LCAweGRmLCAweGVkLCAweDg2LCAweGI0LCAweDFlLCAweDYxLCAweDM0LAorICAgIDB4
YTEsIDB4OGUsIDB4YzQsIDB4ZTEsIDB4YWYsIDB4OGYsIDB4MjIsIDB4MWEsIDB4M2MsIDB4N2Qs
IDB4NmUsIDB4NjMsCisgICAgMHg2YywgMHg4MCwgMHhlYSwgMHgxMywgMHhjMywgMHhkNSwgMHgw
NCwgMHhmZiwgMHgyZSwgMHg3NiwgMHgyMSwgMHgxYiwKKyAgICAweGI0LCAweDQ1LCAweDI1LCAw
eGIxLCAweDk2LCAweGM0LCAweDRjLCAweGI0LCAweDg0LCAweDk5LCAweDc5LCAweGNmLAorICAg
IDB4NmYsIDB4ODksIDB4NmUsIDB4Y2QsIDB4MmIsIDB4YjgsIDB4NjAsIDB4ZGUsIDB4MWIsIDB4
ZjQsIDB4MzcsIDB4NmIsCisgICAgMHhhMywgMHgwZCwgMHgzMCwgMHgwYiwgMHgzMCwgMHgwOSwg
MHgwNiwgMHgwMywgMHg1NSwgMHgxZCwgMHgxMywgMHgwNCwKKyAgICAweDAyLCAweDMwLCAweDAw
LCAweDMwLCAweDBhLCAweDA2LCAweDA4LCAweDJhLCAweDg2LCAweDQ4LCAweGNlLCAweDNkLAor
ICAgIDB4MDQsIDB4MDMsIDB4MDIsIDB4MDMsIDB4NDksIDB4MDAsIDB4MzAsIDB4NDYsIDB4MDIs
IDB4MjEsIDB4MDAsIDB4ZTksCisgICAgMHhhMywgMHg5ZiwgMHgxYiwgMHgwMywgMHgxOSwgMHg3
NSwgMHgyNSwgMHhmNywgMHgzNywgMHgzZSwgMHgxMCwgMHhjZSwKKyAgICAweDc3LCAweGU3LCAw
eDgwLCAweDIxLCAweDczLCAweDFiLCAweDk0LCAweGQwLCAweGMwLCAweDNmLCAweDNmLCAweGRh
LAorICAgIDB4MWYsIDB4ZDIsIDB4MmQsIDB4YjMsIDB4ZDAsIDB4MzAsIDB4ZTcsIDB4MDIsIDB4
MjEsIDB4MDAsIDB4YzQsIDB4ZmEsCisgICAgMHhlYywgMHgzNCwgMHg0NSwgMHhhOCwgMHgyMCwg
MHhjZiwgMHg0MywgMHgxMiwgMHg5YywgMHhkYiwgMHgwMCwgMHhhYSwKKyAgICAweGJlLCAweGZk
LCAweDlhLCAweGUyLCAweGQ4LCAweDc0LCAweGY5LCAweGM1LCAweGQzLCAweDQzLCAweGNiLCAw
eDJmLAorICAgIDB4MTEsIDB4M2QsIDB4YTIsIDB4MzcsIDB4MjMsIDB4ZjMsCit9OworCisvLyBC
ZWxvdyB8a0N0YXAyTWFrZUNyZWRlbnRpYWxDZXJ0aWZpY2F0ZXwsIHxrQ3RhcDJNYWtlQ3JlZGVu
dGlhbEF1dGhEYXRhfCwgYW5kCisvLyB8a0N0YXAyTWFrZUNyZWRlbnRpYWxTaWduYXR1cmV8IGxl
dmVyYWdlIGV4YW1wbGUgNCBvZiB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFu
Y2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50
aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbAorY29uc3RleHByIHVpbnQ4X3Qg
a0N0YXAyTWFrZUNyZWRlbnRpYWxDZXJ0aWZpY2F0ZVtdID0geworICAgIDB4MzAsIDB4ODIsIDB4
MDEsIDB4OTMsIDB4MzAsIDB4ODIsIDB4MDEsIDB4MzgsIDB4YTAsIDB4MDMsIDB4MDIsIDB4MDEs
CisgICAgMHgwMiwgMHgwMiwgMHgwOSwgMHgwMCwgMHg4NSwgMHg5YiwgMHg3MiwgMHg2YywgMHhi
MiwgMHg0YiwgMHg0YywgMHgyOSwKKyAgICAweDMwLCAweDBhLCAweDA2LCAweDA4LCAweDJhLCAw
eDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDA0LCAweDAzLCAweDAyLAorICAgIDB4MzAsIDB4NDcs
IDB4MzEsIDB4MGIsIDB4MzAsIDB4MDksIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MDYsIDB4
MTMsCisgICAgMHgwMiwgMHg1NSwgMHg1MywgMHgzMSwgMHgxNCwgMHgzMCwgMHgxMiwgMHgwNiwg
MHgwMywgMHg1NSwgMHgwNCwgMHgwYSwKKyAgICAweDBjLCAweDBiLCAweDU5LCAweDc1LCAweDYy
LCAweDY5LCAweDYzLCAweDZmLCAweDIwLCAweDU0LCAweDY1LCAweDczLAorICAgIDB4NzQsIDB4
MzEsIDB4MjIsIDB4MzAsIDB4MjAsIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MGIsIDB4MGMs
IDB4MTksCisgICAgMHg0MSwgMHg3NSwgMHg3NCwgMHg2OCwgMHg2NSwgMHg2ZSwgMHg3NCwgMHg2
OSwgMHg2MywgMHg2MSwgMHg3NCwgMHg2ZiwKKyAgICAweDcyLCAweDIwLCAweDQxLCAweDc0LCAw
eDc0LCAweDY1LCAweDczLCAweDc0LCAweDYxLCAweDc0LCAweDY5LCAweDZmLAorICAgIDB4NmUs
IDB4MzAsIDB4MWUsIDB4MTcsIDB4MGQsIDB4MzEsIDB4MzYsIDB4MzEsIDB4MzIsIDB4MzAsIDB4
MzQsIDB4MzEsCisgICAgMHgzMSwgMHgzNSwgMHgzNSwgMHgzMCwgMHgzMCwgMHg1YSwgMHgxNywg
MHgwZCwgMHgzMiwgMHgzNiwgMHgzMSwgMHgzMiwKKyAgICAweDMwLCAweDMyLCAweDMxLCAweDMx
LCAweDM1LCAweDM1LCAweDMwLCAweDMwLCAweDVhLCAweDMwLCAweDQ3LCAweDMxLAorICAgIDB4
MGIsIDB4MzAsIDB4MDksIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MDYsIDB4MTMsIDB4MDIs
IDB4NTUsIDB4NTMsCisgICAgMHgzMSwgMHgxNCwgMHgzMCwgMHgxMiwgMHgwNiwgMHgwMywgMHg1
NSwgMHgwNCwgMHgwYSwgMHgwYywgMHgwYiwgMHg1OSwKKyAgICAweDc1LCAweDYyLCAweDY5LCAw
eDYzLCAweDZmLCAweDIwLCAweDU0LCAweDY1LCAweDczLCAweDc0LCAweDMxLCAweDIyLAorICAg
IDB4MzAsIDB4MjAsIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MGIsIDB4MGMsIDB4MTksIDB4
NDEsIDB4NzUsIDB4NzQsCisgICAgMHg2OCwgMHg2NSwgMHg2ZSwgMHg3NCwgMHg2OSwgMHg2Mywg
MHg2MSwgMHg3NCwgMHg2ZiwgMHg3MiwgMHgyMCwgMHg0MSwKKyAgICAweDc0LCAweDc0LCAweDY1
LCAweDczLCAweDc0LCAweDYxLCAweDc0LCAweDY5LCAweDZmLCAweDZlLCAweDMwLCAweDU5LAor
ICAgIDB4MzAsIDB4MTMsIDB4MDYsIDB4MDcsIDB4MmEsIDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2Qs
IDB4MDIsIDB4MDEsIDB4MDYsCisgICAgMHgwOCwgMHgyYSwgMHg4NiwgMHg0OCwgMHhjZSwgMHgz
ZCwgMHgwMywgMHgwMSwgMHgwNywgMHgwMywgMHg0MiwgMHgwMCwKKyAgICAweDA0LCAweGFkLCAw
eDExLCAweGViLCAweDBlLCAweDg4LCAweDUyLCAweGU1LCAweDNhLCAweGQ1LCAweGRmLCAweGVk
LAorICAgIDB4ODYsIDB4YjQsIDB4MWUsIDB4NjEsIDB4MzQsIDB4YTEsIDB4OGUsIDB4YzQsIDB4
ZTEsIDB4YWYsIDB4OGYsIDB4MjIsCisgICAgMHgxYSwgMHgzYywgMHg3ZCwgMHg2ZSwgMHg2Mywg
MHg2YywgMHg4MCwgMHhlYSwgMHgxMywgMHhjMywgMHhkNSwgMHgwNCwKKyAgICAweGZmLCAweDJl
LCAweDc2LCAweDIxLCAweDFiLCAweGI0LCAweDQ1LCAweDI1LCAweGIxLCAweDk2LCAweGM0LCAw
eDRjLAorICAgIDB4YjQsIDB4ODQsIDB4OTksIDB4NzksIDB4Y2YsIDB4NmYsIDB4ODksIDB4NmUs
IDB4Y2QsIDB4MmIsIDB4YjgsIDB4NjAsCisgICAgMHhkZSwgMHgxYiwgMHhmNCwgMHgzNywgMHg2
YiwgMHhhMywgMHgwZCwgMHgzMCwgMHgwYiwgMHgzMCwgMHgwOSwgMHgwNiwKKyAgICAweDAzLCAw
eDU1LCAweDFkLCAweDEzLCAweDA0LCAweDAyLCAweDMwLCAweDAwLCAweDMwLCAweDBhLCAweDA2
LCAweDA4LAorICAgIDB4MmEsIDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2QsIDB4MDQsIDB4MDMsIDB4
MDIsIDB4MDMsIDB4NDksIDB4MDAsIDB4MzAsCisgICAgMHg0NiwgMHgwMiwgMHgyMSwgMHgwMCwg
MHhlOSwgMHhhMywgMHg5ZiwgMHgxYiwgMHgwMywgMHgxOSwgMHg3NSwgMHgyNSwKKyAgICAweGY3
LCAweDM3LCAweDNlLCAweDEwLCAweGNlLCAweDc3LCAweGU3LCAweDgwLCAweDIxLCAweDczLCAw
eDFiLCAweDk0LAorICAgIDB4ZDAsIDB4YzAsIDB4M2YsIDB4M2YsIDB4ZGEsIDB4MWYsIDB4ZDIs
IDB4MmQsIDB4YjMsIDB4ZDAsIDB4MzAsIDB4ZTcsCisgICAgMHgwMiwgMHgyMSwgMHgwMCwgMHhj
NCwgMHhmYSwgMHhlYywgMHgzNCwgMHg0NSwgMHhhOCwgMHgyMCwgMHhjZiwgMHg0MywKKyAgICAw
eDEyLCAweDljLCAweGRiLCAweDAwLCAweGFhLCAweGJlLCAweGZkLCAweDlhLCAweGUyLCAweGQ4
LCAweDc0LCAweGY5LAorICAgIDB4YzUsIDB4ZDMsIDB4NDMsIDB4Y2IsIDB4MmYsIDB4MTEsIDB4
M2QsIDB4YTIsIDB4MzcsIDB4MjMsIDB4ZjN9OworCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcDJN
YWtlQ3JlZGVudGlhbEF1dGhEYXRhW10gPSB7CisgICAgMHgxMSwgMHg5NCwgMHgyMiwgMHg4RCwg
MHhBOCwgMHhGRCwgMHhCRCwgMHhFRSwgMHhGRCwgMHgyNiwgMHgxQiwgMHhENywKKyAgICAweEI2
LCAweDU5LCAweDVDLCAweEZELCAweDcwLCAweEE1LCAweDBELCAweDcwLCAweEM2LCAweDQwLCAw
eDdCLCAweENGLAorICAgIDB4MDEsIDB4M0QsIDB4RTksIDB4NkQsIDB4NEUsIDB4RkIsIDB4MTcs
IDB4REUsIDB4NDEsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgMHgwYiwgMHhmOCwgMHhhMCwgMHgx
MSwgMHhmMywgMHg4YywgMHgwYSwgMHg0ZCwgMHgxNSwgMHg4MCwgMHgwNiwgMHgxNywKKyAgICAw
eDExLCAweDFmLCAweDllLCAweGRjLCAweDdkLCAweDAwLCAweDEwLCAweDg5LCAweDU5LCAweGNl
LCAweGFkLCAweDViLAorICAgIDB4NWMsIDB4NDgsIDB4MTYsIDB4NGUsIDB4OGEsIDB4YmMsIDB4
ZDYsIDB4ZDksIDB4NDMsIDB4NWMsIDB4NmYsIDB4YTMsCisgICAgMHg2MywgMHg2MSwgMHg2Yywg
MHg2NywgMHg2NSwgMHg0NSwgMHg1MywgMHgzMiwgMHgzNSwgMHgzNiwgMHg2MSwgMHg3OCwKKyAg
ICAweDU4LCAweDIwLCAweGY3LCAweGM0LCAweGY0LCAweGE2LCAweGYxLCAweGQ3LCAweDk1LCAw
eDM4LCAweGRmLCAweGE0LAorICAgIDB4YzksIDB4YWMsIDB4NTAsIDB4ODQsIDB4OGQsIDB4Zjcs
IDB4MDgsIDB4YmMsIDB4MWMsIDB4OTksIDB4ZjUsIDB4ZTYsCisgICAgMHgwZSwgMHg1MSwgMHhi
NCwgMHgyYSwgMHg1MiwgMHgxYiwgMHgzNSwgMHhkMywgMHhiNiwgMHg5YSwgMHg2MSwgMHg3OSwK
KyAgICAweDU4LCAweDIwLCAweGRlLCAweDdiLCAweDdkLCAweDZjLCAweGE1LCAweDY0LCAweGU3
LCAweDBlLCAweGEzLCAweDIxLAorICAgIDB4YTQsIDB4ZDUsIDB4ZDksIDB4NmUsIDB4YTAsIDB4
MGUsIDB4ZjAsIDB4ZTIsIDB4ZGIsIDB4ODksIDB4ZGQsIDB4NjEsCisgICAgMHhkNCwgMHg4OSwg
MHg0YywgMHgxNSwgMHhhYywgMHg1OCwgMHg1YiwgMHhkMiwgMHgzNiwgMHg4NH07CisKK2NvbnN0
ZXhwciB1aW50OF90IGtDdGFwMk1ha2VDcmVkZW50aWFsU2lnbmF0dXJlW10gPSB7CisgICAgMHgz
MCwgMHg0NSwgMHgwMiwgMHgyMCwgMHgxMywgMHhmNywgMHgzYywgMHg1ZCwgMHg5ZCwgMHg1Mywg
MHgwZSwgMHg4YywKKyAgICAweGMxLCAweDVjLCAweGM5LCAweGJkLCAweDk2LCAweGFkLCAweDU4
LCAweDZkLCAweDM5LCAweDM2LCAweDY0LCAweGU0LAorICAgIDB4NjIsIDB4ZDUsIDB4ZjAsIDB4
NTYsIDB4MTIsIDB4MzUsIDB4ZTYsIDB4MzUsIDB4MGYsIDB4MmIsIDB4NzIsIDB4ODksCisgICAg
MHgwMiwgMHgyMSwgMHgwMCwgMHg5MCwgMHgzNSwgMHg3ZiwgMHhmOSwgMHgxMCwgMHhjYywgMHhi
NSwgMHg2YSwgMHhjNSwKKyAgICAweGI1LCAweDk2LCAweDUxLCAweDE5LCAweDQ4LCAweDU4LCAw
eDFjLCAweDhmLCAweGRkLCAweGI0LCAweGEyLCAweGI3LAorICAgIDB4OTksIDB4NTksIDB4OTQs
IDB4ODAsIDB4NzgsIDB4YjAsIDB4OWYsIDB4NGIsIDB4ZGMsIDB4NjIsIDB4Mjl9OworCitjb25z
dGV4cHIgdWludDhfdCBrQ3RhcDJNYWtlQ3JlZGVudGlhbENyZWRlbnRpYWxJZFtdID0geworICAg
IDB4ODksIDB4NTksIDB4Y2UsIDB4YWQsIDB4NWIsIDB4NWMsIDB4NDgsIDB4MTYsCisgICAgMHg0
ZSwgMHg4YSwgMHhiYywgMHhkNiwgMHhkOSwgMHg0MywgMHg1YywgMHg2ZiwKK307CisKK2NvbnN0
ZXhwciB1aW50OF90IGtDdGFwMkdldEFzc2VydGlvbkF1dGhEYXRhW10gPSB7CisgICAgMHg2Miwg
MHg1ZCwgMHhkYSwgMHhkZiwgMHg3NCwgMHgzZiwgMHg1NywgMHgyNywgMHhlNiwgMHg2YiwKKyAg
ICAweGJhLCAweDhjLCAweDJlLCAweDM4LCAweDc5LCAweDIyLCAweGQxLCAweGFmLCAweDQzLCAw
eGM1LAorICAgIDB4MDMsIDB4ZDksIDB4MTEsIDB4NGEsIDB4OGYsIDB4YmEsIDB4MTAsIDB4NGQs
IDB4ODQsIDB4ZDAsCisgICAgMHgyYiwgMHhmYSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgx
MX07CisKK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwMkdldEFzc2VydGlvblNpZ25hdHVyZVtdID0g
eworICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4MjAsIDB4NGEsIDB4NWEsIDB4OWQsIDB4ZDMsIDB4
OTIsIDB4OTgsIDB4MTQsIDB4OWQsCisgICAgMHg5MCwgMHg0NywgMHg2OSwgMHhiNSwgMHgxYSwg
MHg0NSwgMHgxNCwgMHgzMywgMHgwMCwgMHg2ZiwgMHgxOCwgMHgyYSwKKyAgICAweDM0LCAweGZi
LCAweGRmLCAweDY2LCAweGRlLCAweDVmLCAweGM3LCAweDE3LCAweGQ3LCAweDVmLCAweGIzLCAw
eDUwLAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4YTQsIDB4NmIsIDB4OGUsIDB4YTMsIDB4YzMs
IDB4YjksIDB4MzMsIDB4ODIsIDB4MWMsCisgICAgMHg2ZSwgMHg3ZiwgMHg1ZSwgMHhmOSwgMHhk
YSwgMHhhZSwgMHg5NCwgMHhhYiwgMHg0NywgMHhmMSwgMHg4ZCwgMHhiNCwKKyAgICAweDc0LCAw
eGM3LCAweDQ3LCAweDkwLCAweGVhLCAweGFiLCAweGIxLCAweDQ0LCAweDExLCAweGU3LCAweGEw
LAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga0RldmljZUdldEFzc2VydGlvblJlc3BvbnNlW10g
PSB7CisgICAgLy8gU3VjY2VzcyByZXNwb25zZSBjb2RlCisgICAgMHgwMCwKKyAgICAvLyBtYXAo
NSkKKyAgICAweGE1LAorICAgIC8vIHVuc2lnbmVkKDEpIC0gQ3JlZGVudGlhbAorICAgIDB4MDEs
CisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyB0ZXh0KDIpCisgICAgMHg2MiwKKyAg
ICAvLyAiaWQiCisgICAgMHg2OSwgMHg2NCwKKyAgICAvLyBieXRlcyg2NCkKKyAgICAweDU4LCAw
eDQwLAorICAgIC8vIGNyZWRlbnRpYWwgaWQKKyAgICAweGYyLCAweDIwLCAweDA2LCAweGRlLCAw
eDRmLCAweDkwLCAweDVhLCAweGY2LCAweDhhLCAweDQzLCAweDk0LCAweDJmLAorICAgIDB4MDIs
IDB4NGYsIDB4MmEsIDB4NWUsIDB4Y2UsIDB4NjAsIDB4M2QsIDB4OWMsIDB4NmQsIDB4NGIsIDB4
M2QsIDB4ZjgsCisgICAgMHhiZSwgMHgwOCwgMHhlZCwgMHgwMSwgMHhmYywgMHg0NCwgMHgyNiwg
MHg0NiwgMHhkMCwgMHgzNCwgMHg4NSwgMHg4YSwKKyAgICAweGM3LCAweDViLCAweGVkLCAweDNm
LCAweGQ1LCAweDgwLCAweGJmLCAweDk4LCAweDA4LCAweGQ5LCAweDRmLCAweGNiLAorICAgIDB4
ZWUsIDB4ODIsIDB4YjksIDB4YjIsIDB4ZWYsIDB4NjYsIDB4NzcsIDB4YWYsIDB4MGEsIDB4ZGMs
IDB4YzMsIDB4NTgsCisgICAgMHg1MiwgMHhlYSwgMHg2YiwgMHg5ZSwKKyAgICAvLyB0ZXh0KDQp
CisgICAgMHg2NCwKKyAgICAvLyAidHlwZSIKKyAgICAweDc0LCAweDc5LCAweDcwLCAweDY1LAor
ICAgIC8vIHRleHQoMTApCisgICAgMHg2YSwKKyAgICAvLyAicHVibGljLWtleSIKKyAgICAweDcw
LCAweDc1LCAweDYyLCAweDZDLCAweDY5LCAweDYzLCAweDJELCAweDZCLCAweDY1LCAweDc5LAor
ICAgIC8vIHVuc2lnbmVkKDIpIC0gQXV0aCBkYXRhCisgICAgMHgwMiwKKyAgICAvLyBieXRlcygz
NykKKyAgICAweDU4LCAweDI1LAorICAgIC8vIGF1dGggZGF0YQorICAgIDB4NjIsIDB4NWQsIDB4
ZGEsIDB4ZGYsIDB4NzQsIDB4M2YsIDB4NTcsIDB4MjcsIDB4ZTYsIDB4NmIsIDB4YmEsIDB4OGMs
CisgICAgMHgyZSwgMHgzOCwgMHg3OSwgMHgyMiwgMHhkMSwgMHhhZiwgMHg0MywgMHhjNSwgMHgw
MywgMHhkOSwgMHgxMSwgMHg0YSwKKyAgICAweDhmLCAweGJhLCAweDEwLCAweDRkLCAweDg0LCAw
eGQwLCAweDJiLCAweGZhLCAweDAxLCAweDAwLCAweDAwLCAweDAwLAorICAgIDB4MTEsCisgICAg
Ly8gdW5zaWduZWQoMykgLSBzaWduYXR1cmUKKyAgICAweDAzLAorICAgIC8vIGJ5dGVzKDcxKQor
ICAgIDB4NTgsIDB4NDcsCisgICAgLy8gc2lnbmF0dXJlCisgICAgMHgzMCwgMHg0NSwgMHgwMiwg
MHgyMCwgMHg0YSwgMHg1YSwgMHg5ZCwgMHhkMywgMHg5MiwgMHg5OCwgMHgxNCwgMHg5ZCwKKyAg
ICAweDkwLCAweDQ3LCAweDY5LCAweGI1LCAweDFhLCAweDQ1LCAweDE0LCAweDMzLCAweDAwLCAw
eDZmLCAweDE4LCAweDJhLAorICAgIDB4MzQsIDB4ZmIsIDB4ZGYsIDB4NjYsIDB4ZGUsIDB4NWYs
IDB4YzcsIDB4MTcsIDB4ZDcsIDB4NWYsIDB4YjMsIDB4NTAsCisgICAgMHgwMiwgMHgyMSwgMHgw
MCwgMHhhNCwgMHg2YiwgMHg4ZSwgMHhhMywgMHhjMywgMHhiOSwgMHgzMywgMHg4MiwgMHgxYywK
KyAgICAweDZlLCAweDdmLCAweDVlLCAweGY5LCAweGRhLCAweGFlLCAweDk0LCAweGFiLCAweDQ3
LCAweGYxLCAweDhkLCAweGI0LAorICAgIDB4NzQsIDB4YzcsIDB4NDcsIDB4OTAsIDB4ZWEsIDB4
YWIsIDB4YjEsIDB4NDQsIDB4MTEsIDB4ZTcsIDB4YTAsCisgICAgLy8gdW5zaWduZWQoNCkgLSBw
dWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eQorICAgIDB4MDQsCisgICAgLy8gbWFwKDQpCisg
ICAgMHhhNCwKKyAgICAvLyB0ZXh0KDIpCisgICAgMHg2MiwKKyAgICAvLyAiaWQiCisgICAgMHg2
OSwgMHg2NCwKKyAgICAvLyBieXRlcygzMikgLSB1c2VyIGlkCisgICAgMHg1OCwgMHgyMCwKKyAg
ICAvLyB1c2VyIGlkCisgICAgMHgzMCwgMHg4MiwgMHgwMSwgMHg5MywgMHgzMCwgMHg4MiwgMHgw
MSwgMHgzOCwgMHhhMCwgMHgwMywgMHgwMiwgMHgwMSwKKyAgICAweDAyLCAweDMwLCAweDgyLCAw
eDAxLCAweDkzLCAweDMwLCAweDgyLCAweDAxLCAweDM4LCAweGEwLCAweDAzLCAweDAyLAorICAg
IDB4MDEsIDB4MDIsIDB4MzAsIDB4ODIsIDB4MDEsIDB4OTMsIDB4MzAsIDB4ODIsCisgICAgLy8g
dGV4dCg0KQorICAgIDB4NjQsCisgICAgLy8gImljb24iCisgICAgMHg2OSwgMHg2MywgMHg2Ziwg
MHg2ZSwKKyAgICAvLyB0ZXh0KDQwKQorICAgIDB4NzgsIDB4MjgsCisgICAgLy8gImh0dHBzOi8v
cGljcy5hY21lLmNvbS8wMC9wL2FCampqcHFQYi5wbmciCisgICAgMHg2OCwgMHg3NCwgMHg3NCwg
MHg3MCwgMHg3MywgMHgzYSwgMHgyZiwgMHgyZiwgMHg3MCwgMHg2OSwgMHg2MywgMHg3MywKKyAg
ICAweDJlLCAweDYxLCAweDYzLCAweDZkLCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAweDZkLCAw
eDJmLCAweDMwLCAweDMwLAorICAgIDB4MmYsIDB4NzAsIDB4MmYsIDB4NjEsIDB4NDIsIDB4NmEs
IDB4NmEsIDB4NmEsIDB4NzAsIDB4NzEsIDB4NTAsIDB4NjIsCisgICAgMHgyZSwgMHg3MCwgMHg2
ZSwgMHg2NywKKyAgICAvLyB0ZXh0KDQpCisgICAgMHg2NCwKKyAgICAvLyAibmFtZSIKKyAgICAw
eDZlLCAweDYxLCAweDZkLCAweDY1LAorICAgIC8vIHRleHQoMjIpCisgICAgMHg3NiwKKyAgICAv
LyAiam9obnBzbWl0aEBleGFtcGxlLmNvbSIKKyAgICAweDZhLCAweDZmLCAweDY4LCAweDZlLCAw
eDcwLCAweDczLCAweDZkLCAweDY5LCAweDc0LCAweDY4LCAweDQwLCAweDY1LAorICAgIDB4Nzgs
IDB4NjEsIDB4NmQsIDB4NzAsIDB4NmMsIDB4NjUsIDB4MmUsIDB4NjMsIDB4NmYsIDB4NmQsCisg
ICAgLy8gdGV4dCgxMSkKKyAgICAweDZiLAorICAgIC8vICJkaXNwbGF5TmFtZSIKKyAgICAweDY0
LCAweDY5LCAweDczLCAweDcwLCAweDZjLCAweDYxLCAweDc5LCAweDRlLCAweDYxLCAweDZkLCAw
eDY1LAorICAgIC8vIHRleHQoMTMpCisgICAgMHg2ZCwKKyAgICAvLyAiSm9obiBQLiBTbWl0aCIK
KyAgICAweDRhLCAweDZmLCAweDY4LCAweDZlLCAweDIwLCAweDUwLCAweDJlLCAweDIwLCAweDUz
LCAweDZkLCAweDY5LCAweDc0LAorICAgIDB4NjgsCisgICAgLy8gdW5zaWduZWQoNSkgLSBudW1i
ZXIgb2YgY3JlZGVudGlhbHMKKyAgICAweDA1LAorICAgIC8vIDEKKyAgICAweDAxLAorfTsKKwor
fSAvLyBuYW1lc3BhY2UgVGVzdERhdGEKKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352941</attachid>
            <date>2018-10-22 18:38:00 -0700</date>
            <delta_ts>2018-10-22 19:06:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190784-20181022183759.patch</filename>
            <type>text/plain</type>
            <size>148114</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjgwNzdjYTZlYTA2ZDky
MzU0OTI4MDU1NTQzNGZiMzEwMTVlMDI0Ni4uNjE5ZGI0YjI5NjNkN2Y1MWFjNzM0ZDYwYTEyMjJm
MTMxYzc4ZGJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDE4LTEwLTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBv
cnQgQ1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzIGZyb20gQ2hyb21pdW0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDc4NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU0NjAzMzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBvcnRzIENocm9taXVtJ3Mg
Q1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzOgorICAgICAgICBodHRwczov
L2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50
LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sI21lc3NhZ2Ut
ZW5jb2RpbmcKKyAgICAgICAgMS4gSXQgZGlyZWN0bHkgaW1wb3J0cyB0aGUgZm9sbG93aW5nIGZp
bGVzIGFuZCBzdWl0IHRoZW0gdG8gV2ViS2l0J3MgY29kaW5nIHN0eWxlOgorICAgICAgICBodHRw
czovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vZGV2aWNlX3Jlc3Bv
bnNlX2NvbnZlcnRlci5jYz9sPTIwJnJjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQy
ZDk5YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9k
ZXZpY2UvZmlkby9kZXZpY2VfcmVzcG9uc2VfY29udmVydGVyLmg/cmNsPTA5OGRmZDkwODUwZmZh
ODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5v
cmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhlbnRpY2F0b3JfZ2V0X2luZm9fcmVzcG9u
c2UuY2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAg
ICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhl
bnRpY2F0b3JfZ2V0X2luZm9fcmVzcG9uc2UuaD9yY2w9MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRh
Yjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1
bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9zdXBwb3J0ZWRfb3B0aW9ucy5jYz9yY2w9
MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczov
L2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9z
dXBwb3J0ZWRfb3B0aW9ucy5oP3JjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5
YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9kZXZp
Y2UvZmlkby9jdGFwX3JlcXVlc3RfdW5pdHRlc3QuY2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdh
ODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hy
b21pdW0vc3JjL2RldmljZS9maWRvL2N0YXBfcmVzcG9uc2VfdW5pdHRlc3QuY2M/cmNsPTA5OGRm
ZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5j
aHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2ZpZG9fdGVzdF9kYXRhLmg/bD0x
JnJjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5YzRlYzQ1CisgICAgICAgIDIu
IEl0IGdhdGhlcnMgdGhlIGZvbGxvd2luZyBtZXRob2RzIGludG8gRGV2aWNlUmVxdWVzdENvbnZl
cnRlcjoKKyAgICAgICAgQ3RhcEdldEFzc2VydGlvblJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisg
ICAgICAgIEN0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisgICAgICAg
IFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yOjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAg
UHVibGljS2V5Q3JlZGVudGlhbFBhcmFtczo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1Ymxp
Y0tleUNyZWRlbnRpYWxScEVudGl0eTo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1YmxpY0tl
eUNyZWRlbnRpYWxVc2VyRW50aXR5OjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAgMy4gSXQgYWxz
byBhcHBseSBhIHBhdGNoIGZyb20gQ2hyb21pdW0gdG8gQ0JPUlZhbHVlOgorICAgICAgICBodHRw
czovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjLysvN2I2ZmJmZjM1Y2Q4
ZTRkNTA4ZjA4ZTFjZDkzYjRhYTBhMGRjNDAyYyU1RSUyMS8KKworICAgICAgICBCZXNpZGVzIGlt
cG9ydGluZyB0aGluZ3MgZnJvbSBDaHJvbWl1bSwgaXQgYWxzbyBpbXBsZW1lbnRzIFVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudCBmb3IgYm90aAorICAgICAgICBQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zIGFuZCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgc3Vj
aCB0aGF0IGJvdGggb3B0aW9ucworICAgICAgICBjYW4gc3BlY2lmeSBtb3JlIGRpbWVuc2lvbnMg
b2YgYSBkZXNpcmVkIGF1dGhlbnRpY2F0b3IuCisKKyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVz
dHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
czo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjpkZWNvZGUpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9uczo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMu
aWRsLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpDQk9S
VmFsdWUpOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpnZXRCb29sIGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmg6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKGZpZG86OnRvQXJyYXlWYWx1ZSk6CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlOjpBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKToKKyAgICAg
ICAgKGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldE1heE1zZ1NpemUpOgor
ICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0UGluUHJvdG9j
b2xzKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldEV4
dGVuc2lvbnMpOgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6
c2V0T3B0aW9ucyk6CisgICAgICAgIChmaWRvOjplbmNvZGVBc0NCT1IpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnM6OnNldFN1cHBvcnRzUmVzaWRlbnRLZXkpOgorICAgICAgICAoZmlkbzo6QXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkp
OgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJQ
cmVzZW5jZVJlcXVpcmVkKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zOjpzZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkpOgorICAgICAgICAoZmlkbzo6QXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldElzUGxhdGZvcm1EZXZpY2UpOgorICAgICAgICAo
Zmlkbzo6Y29udmVydFRvQ0JPUik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChmaWRvOjpjb252ZXJ0UnBFbnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFVz
ZXJFbnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFBhcmFtZXRlcnNUb0NCT1Ip
OgorICAgICAgICAoZmlkbzo6Y29udmVydERlc2NyaXB0b3JUb0NCT1IpOgorICAgICAgICAoZmlk
bzo6ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKToKKyAgICAgICAgKGZpZG86OmVu
Y29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IpOgorICAgICAgICAoZmlkbzo6ZW5jb2RlRW1w
dHlBdXRoZW50aWNhdG9yUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRv
L0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KGZpZG86OmNvbnZlcnRTdHJpbmdUb1Byb3RvY29sVmVyc2lvbik6CisgICAgICAgIChmaWRvOjpn
ZXRSZXNwb25zZUNvZGUpOgorICAgICAgICAoZmlkbzo6Z2V0Q3JlZGVudGlhbElkKToKKyAgICAg
ICAgKGZpZG86OnJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZSk6CisgICAgICAgIChmaWRv
OjpyZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKToKKyAgICAgICAgKGZpZG86OnJlYWRDVEFQ
R2V0SW5mb1Jlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNl
UmVzcG9uc2VDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0
aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcDoKKyAgICAgICAgKGZpZG86OmlzQ3RhcERldmljZVJl
c3BvbnNlQ29kZSk6CisgICAgICAgIChmaWRvOjpwdWJsaWNLZXlDcmVkZW50aWFsVHlwZVRvU3Ry
aW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxOC0xMC0yMiAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgVXNlIExvY2F0aW9uID0gIlJlbGF0aXZlIHRvIEJ1aWxkIFByb2R1Y3Rz
IiByYXRoZXIgdGhhbiAiUmVsYXRpdmUgdG8gR3JvdXAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDYxMDY4NDhlY2JkYzc4MzYxZmZlY2YzOWRlMjgzNmY5ODBlNDE2MTcuLmYwNjg5YzNjNTkxODgz
M2ZhMzdkOTNmZGVkNGMwNWUyOTMzYWVlYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MzEs
NiArNDMxLDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dl
YmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkbAogICAgIE1vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbAogICAgIE1vZHVsZXMv
d2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaWRsCisgICAgTW9kdWxlcy93ZWJhdXRo
bi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsCiAKICAgICBNb2R1bGVzL3dlYmRhdGFi
YXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmlkbAogICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBmOGIwZDc5Y2U2YTBm
NDE5M2NlYzUzYjZkZTdkMTBkYzQ3MGQxZDMxLi4zYjIxZWY1ZjIzYzBhNzFmNzE4NjBlMzIzY2U5
NzBjYTQ3M2JlMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM1NSw2ICsz
NTUsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1
dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5p
ZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2lu
ZG93V2ViRGF0YWJhc2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VDYWxsYmFjay5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaApp
bmRleCA4YWZiNGRkNGQ0NjFlODZlNjk0ODMzOWUyMTFiMTk5ZTcxYTk4NzMzLi5iYTY4ZGY5MmIx
ODJjN2E5YjEzYTM2NmZhOTExNjA4MmViNDY1ZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkJ1ZmZlclNvdXJj
ZS5oIgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmgiCiAjaW5jbHVk
ZSAiUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCIKKyNpbmNsdWRlICJVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC02NSw3ICs2Niw5IEBAIHN0cnVjdCBQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIHsKICAgICB9OwogCiAgICAgc3RydWN0IEF1dGhlbnRp
Y2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSB7Ci0gICAgICAgIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50
IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OworICAgICAgICBzdGQ6Om9wdGlvbmFsPEF1dGhlbnRp
Y2F0b3JBdHRhY2htZW50PiBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAgICAgICAgYm9vbCBy
ZXF1aXJlUmVzaWRlbnRLZXkgeyBmYWxzZSB9OworICAgICAgICBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQgdXNlclZlcmlmaWNhdGlvbiB7IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6
UHJlZmVycmVkIH07CiAKICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OwogICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE+IGRlY29kZShE
ZWNvZGVyJik7CkBAIC0xMDUsMTQgKzEwOCwyNyBAQCBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IFB1YmxpY0tleUNyZWRlbnRpYQog
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50
OworICAgIGVuY29kZXIgPDwgYXV0aGVudGljYXRvckF0dGFjaG1lbnQgPDwgcmVxdWlyZVJlc2lk
ZW50S2V5IDw8IHVzZXJWZXJpZmljYXRpb247CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
CiBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhl
bnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYT4gUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKIHsKICAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50
aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgcmVzdWx0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVF
bnVtKHJlc3VsdC5hdXRoZW50aWNhdG9yQXR0YWNobWVudCkpCisKKyAgICBzdGQ6Om9wdGlvbmFs
PHN0ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRvckF0dGFjaG1lbnQ+PiBhdXRoZW50aWNhdG9yQXR0
YWNobWVudDsKKyAgICBkZWNvZGVyID4+IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OworICAgIGlm
ICghYXV0aGVudGljYXRvckF0dGFjaG1lbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgcmVzdWx0LmF1dGhlbnRpY2F0b3JBdHRhY2htZW50ID0gV1RGTW92ZSgqYXV0aGVudGlj
YXRvckF0dGFjaG1lbnQpOworCisgICAgc3RkOjpvcHRpb25hbDxib29sPiByZXF1aXJlUmVzaWRl
bnRLZXk7CisgICAgZGVjb2RlciA+PiByZXF1aXJlUmVzaWRlbnRLZXk7CisgICAgaWYgKCFyZXF1
aXJlUmVzaWRlbnRLZXkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmVzdWx0
LnJlcXVpcmVSZXNpZGVudEtleSA9ICpyZXF1aXJlUmVzaWRlbnRLZXk7CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlRW51bShyZXN1bHQudXNlclZlcmlmaWNhdGlvbikpCiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsCmluZGV4IGEzMTUyNWYzMjU0OGRiNjU4MzkzNmViYjAz
MjdiOTU0YTFjNzEwNjEuLjM2ZTE4MGJlZGZjODIwMWYzYmM0YjUzNWNhYzBmNzQzYzhlN2M1ZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbApAQCAtNzQsMTAg
Kzc0LDggQEAgdHlwZWRlZiBsb25nIENPU0VBbGdvcml0aG1JZGVudGlmaWVyOwogICAgIENvbmRp
dGlvbmFsPVdFQl9BVVRITiwKIF0gZGljdGlvbmFyeSBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3Jp
dGVyaWEgewogICAgIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50ICAgICAgYXV0aGVudGljYXRvckF0
dGFjaG1lbnQ7Ci0gICAgLy8gV2UgZG9uJ3QgYWxsb3cgUlBzIHRvIHNldCB0aGUgZm9sbG93aW5n
IHZhbHVlcyBhdCB0aGlzIHN0YWdlLgotICAgIC8vIEhlbmNlLCB0aG9zZSBvcHRpb25zIGFyZSBh
bHdheXMgeyB0cnVlLCAicmVxdWlyZWQiIH0uCi0gICAgLy8gYm9vbGVhbiAgICAgICAgICAgICAg
ICAgICAgICByZXF1aXJlUmVzaWRlbnRLZXkgPSBmYWxzZTsKLSAgICAvLyBVc2VyVmVyaWZpY2F0
aW9uUmVxdWlyZW1lbnQgIHVzZXJWZXJpZmljYXRpb24gPSAicHJlZmVycmVkIjsKKyAgICBib29s
ZWFuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVSZXNpZGVudEtleSA9IGZhbHNlOworICAg
IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCAgdXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJy
ZWQiOwogfTsKIAogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgKaW5kZXgg
Mjc0NDc2ZWY3MjdiODVkNzVkZDFhOWUyMGM1ODdhZDFiOTJmMGYwMS4uYmI0ZmY5MmMyYzUxY2Jk
ODI5MzVkMDhmZDBhNTYxMjIyNzFlZTg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIK
ICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIlVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4LDYgKzM5LDcgQEAgc3RydWN0IFB1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyB7CiAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gdGlt
ZW91dDsKICAgICBtdXRhYmxlIFN0cmluZyBycElkOwogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVk
ZW50aWFsRGVzY3JpcHRvcj4gYWxsb3dDcmVkZW50aWFsczsKKyAgICBzdGQ6Om9wdGlvbmFsPFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudD4gdXNlclZlcmlmaWNhdGlvbiB7IFVzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkIH07CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zPiBkZWNvZGUoRGVjb2RlciYpOwpAQCAtNDcsNyArNDksNyBAQCBzdHJ1Y3QgUHVibGljS2V5
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIHsKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lk
IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCB0aW1lb3V0IDw8IHJwSWQgPDwgYWxsb3dDcmVk
ZW50aWFsczsKKyAgICBlbmNvZGVyIDw8IHRpbWVvdXQgPDwgcnBJZCA8PCBhbGxvd0NyZWRlbnRp
YWxzIDw8IHVzZXJWZXJpZmljYXRpb247CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBA
IC02NSw2ICs2NywxMyBAQCBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucz4gUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpbwogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFsbG93Q3JlZGVu
dGlhbHMpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25h
bDxzdGQ6Om9wdGlvbmFsPFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudD4+IHVzZXJWZXJpZmlj
YXRpb247CisgICAgZGVjb2RlciA+PiB1c2VyVmVyaWZpY2F0aW9uOworICAgIGlmICghdXNlclZl
cmlmaWNhdGlvbikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXN1bHQudXNl
clZlcmlmaWNhdGlvbiA9IFdURk1vdmUoKnVzZXJWZXJpZmljYXRpb24pOworCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsCmlu
ZGV4IDg5YTIwNmRjOWM5ZmQyMTc4YjkxNjE2ZWQxMTY1ZmI0N2U4ZTRkZTAuLmQ2NTFkYjI4YWU2
NmQwZmM2OTgyMTBkNjg3MTZkNmUxMTE0MGM4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucy5pZGwKQEAgLTMwLDggKzMwLDcgQEAKICAgICB1bnNpZ25lZCBsb25nIHRp
bWVvdXQ7CiAgICAgVVNWU3RyaW5nIHJwSWQ7CiAgICAgc2VxdWVuY2U8UHVibGljS2V5Q3JlZGVu
dGlhbERlc2NyaXB0b3I+IGFsbG93Q3JlZGVudGlhbHMgPSBbXTsKLSAgICAvLyBBbHdheXMgInJl
cXVpcmVkIiBhdCB0aGlzIHN0YWdlCi0gICAgLy8gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
IHVzZXJWZXJpZmljYXRpb24gPSAicHJlZmVycmVkIjsKKyAgICBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQgdXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJyZWQiOwogICAgIC8vIE5vdCBzdXBw
b3J0IHlldC4KICAgICAvLyBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnMgZXh0ZW5zaW9uczsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9Vc2Vy
VmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzE0ZDAyYzUyZDlhYWMyMTU3
NWZlYjZmZWE4ZjQxNDhmYzU3NDk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaApAQCAtMCwwICsx
LDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhO
KQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitlbnVtIGNsYXNzIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB7CisgICAgUmVxdWlyZWQs
CisgICAgUHJlZmVycmVkLAorICAgIERpc2NvdXJhZ2VkCit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OlVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudD4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJpZmljYXRpb25SZXF1aXJl
bWVudCwKKyAgICAgICAgV2ViQ29yZTo6VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1
aXJlZCwKKyAgICAgICAgV2ViQ29yZTo6VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVm
ZXJyZWQsCisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlz
Y291cmFnZWQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjliZjRmYjk1ZWEwMDJlNWJhOTY1Y2Q1N2IxNTIxYzU4MGU2NDk5Y2MKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1
aXJlbWVudC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRp
b25hbD1XRUJfQVVUSE4sCisgICAgSW1wbGVtZW50ZWRBcz1Vc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQKK10gZW51bSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgeworICAgICJyZXF1aXJl
ZCIsCisgICAgInByZWZlcnJlZCIsCisgICAgImRpc2NvdXJhZ2VkIgorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5jcHAKaW5kZXggMjVl
ZDk4YjkxZjgzYTRiNDY4MzBkZjQ4ZmEwNWJhODY4YzgxMjJiMy4uNGM4ZmZhZDFhOGNmMGY1MTQ3
Y2M3Njc0NGJiYTg2ZGU1MWM5ZGNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5jcHAKQEAgLTE1Myw2ICsxNTMsMTIgQEAgQ0JPUlZh
bHVlOjpDQk9SVmFsdWUoU2ltcGxlVmFsdWUgaW5TaW1wbGUpCiAgICAgQVNTRVJUKHN0YXRpY19j
YXN0PGludD4oaW5TaW1wbGUpID49IDIwICYmIHN0YXRpY19jYXN0PGludD4oaW5TaW1wbGUpIDw9
IDIzKTsKIH0KIAorQ0JPUlZhbHVlOjpDQk9SVmFsdWUoYm9vbCBpbkJvb2wpCisgICAgOiBtX3R5
cGUoVHlwZTo6U2ltcGxlVmFsdWUpCit7CisgICAgbV9zaW1wbGVWYWx1ZSA9IGluQm9vbCA/IENC
T1JWYWx1ZTo6U2ltcGxlVmFsdWU6OlRydWVWYWx1ZSA6IENCT1JWYWx1ZTo6U2ltcGxlVmFsdWU6
OkZhbHNlVmFsdWU7Cit9CisKIENCT1JWYWx1ZSYgQ0JPUlZhbHVlOjpvcGVyYXRvcj0oQ0JPUlZh
bHVlJiYgdGhhdCkKIHsKICAgICBpbnRlcm5hbENsZWFudXAoKTsKQEAgLTI0MCw2ICsyNDYsMTIg
QEAgQ0JPUlZhbHVlOjpTaW1wbGVWYWx1ZSBDQk9SVmFsdWU6OmdldFNpbXBsZVZhbHVlKCkgY29u
c3QKICAgICByZXR1cm4gbV9zaW1wbGVWYWx1ZTsKIH0KIAorYm9vbCBDQk9SVmFsdWU6OmdldEJv
b2woKSBjb25zdAoreworICAgIEFTU0VSVChpc0Jvb2woKSk7CisgICAgcmV0dXJuIG1fc2ltcGxl
VmFsdWUgPT0gU2ltcGxlVmFsdWU6OlRydWVWYWx1ZTsKK30KKwogdm9pZCBDQk9SVmFsdWU6Omlu
dGVybmFsTW92ZUNvbnN0cnVjdEZyb20oQ0JPUlZhbHVlJiYgdGhhdCkKIHsKICAgICBtX3R5cGUg
PSB0aGF0Lm1fdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vY2Jvci9DQk9SVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jv
ci9DQk9SVmFsdWUuaAppbmRleCBlMmRiMGUxMjczOGE5OWE3NDdjODJmNDA5MTMwMDRjNjYwYjdl
OGQ0Li42YTRjODNhYmEwMzFjMzhkMzc5ZTY2YmM5M2VjNDdlNWYxOTMxNzYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5oCkBAIC0xMzgs
NiArMTM4LDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IENCT1JWYWx1ZShNYXBWYWx1ZSYmKTsK
IAogICAgIGV4cGxpY2l0IENCT1JWYWx1ZShTaW1wbGVWYWx1ZSk7CisgICAgZXhwbGljaXQgQ0JP
UlZhbHVlKGJvb2wpOwogCiAgICAgQ0JPUlZhbHVlJiBvcGVyYXRvcj0oQ0JPUlZhbHVlJiYpOwog
CkBAIC0xNjEsOSArMTYyLDExIEBAIHB1YmxpYzoKICAgICBib29sIGlzQXJyYXkoKSBjb25zdCB7
IHJldHVybiB0eXBlKCkgPT0gVHlwZTo6QXJyYXk7IH0KICAgICBib29sIGlzTWFwKCkgY29uc3Qg
eyByZXR1cm4gdHlwZSgpID09IFR5cGU6Ok1hcDsgfQogICAgIGJvb2wgaXNTaW1wbGUoKSBjb25z
dCB7IHJldHVybiB0eXBlKCkgPT0gVHlwZTo6U2ltcGxlVmFsdWU7IH0KKyAgICBib29sIGlzQm9v
bCgpIGNvbnN0IHsgcmV0dXJuIGlzU2ltcGxlKCkgJiYgKG1fc2ltcGxlVmFsdWUgPT0gU2ltcGxl
VmFsdWU6OlRydWVWYWx1ZSB8fCBtX3NpbXBsZVZhbHVlID09IFNpbXBsZVZhbHVlOjpGYWxzZVZh
bHVlKTsgfQogCiAgICAgLy8gVGhlc2Ugd2lsbCBhbGwgZmF0YWxseSBhc3NlcnQgaWYgdGhlIHR5
cGUgZG9lc24ndCBtYXRjaC4KICAgICBTaW1wbGVWYWx1ZSBnZXRTaW1wbGVWYWx1ZSgpIGNvbnN0
OworICAgIGJvb2wgZ2V0Qm9vbCgpIGNvbnN0OwogICAgIGNvbnN0IGludDY0X3QmIGdldEludGVn
ZXIoKSBjb25zdDsKICAgICBjb25zdCBpbnQ2NF90JiBnZXRVbnNpZ25lZCgpIGNvbnN0OwogICAg
IGNvbnN0IGludDY0X3QmIGdldE5lZ2F0aXZlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdldEluZm9SZXNwb25z
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRv
ckdldEluZm9SZXNwb25zZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UwNGUyNTIzMTc3NDQ4ODVmN2Y2MjQ3
ZWZhNjUwMmFmNGVhNDE2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmNwcApAQCAtMCww
ICsxLDEwOCBAQAorLy8gQ29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0
OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
Ly8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisv
LyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZS5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkNCT1JWYWx1ZS5o
IgorI2luY2x1ZGUgIkNCT1JXcml0ZXIuaCIKKworbmFtZXNwYWNlIGZpZG8geworCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgQ29udGFpbmVyPgorY2Jvcjo6Q0JPUlZhbHVlOjpBcnJheVZhbHVlIHRvQXJy
YXlWYWx1ZShjb25zdCBDb250YWluZXImIGNvbnRhaW5lcikKK3sKKyAgICBjYm9yOjpDQk9SVmFs
dWU6OkFycmF5VmFsdWUgdmFsdWU7CisgICAgdmFsdWUucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShj
b250YWluZXIuc2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW0gOiBjb250YWluZXIp
CisgICAgICAgIHZhbHVlLmFwcGVuZChjYm9yOjpDQk9SVmFsdWUoaXRlbSkpOworICAgIHJldHVy
biB2YWx1ZTsKK30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6QXV0aGVudGljYXRv
ckdldEluZm9SZXNwb25zZShzdGQ6OnNldDxQcm90b2NvbFZlcnNpb24+JiYgdmVyc2lvbnMsIFZl
Y3Rvcjx1aW50OF90PiYmIGFhZ3VpZCkKKyAgICA6IG1fdmVyc2lvbnMoV1RGTW92ZSh2ZXJzaW9u
cykpCisgICAgLCBtX2FhZ3VpZChXVEZNb3ZlKGFhZ3VpZCkpCit7Cit9CisKK0F1dGhlbnRpY2F0
b3JHZXRJbmZvUmVzcG9uc2UmIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldE1heE1z
Z1NpemUodWludDMyX3QgbWF4TXNnU2l6ZSkKK3sKKyAgICBtX21heE1zZ1NpemUgPSBtYXhNc2dT
aXplOworICAgIHJldHVybiAqdGhpczsKK30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25z
ZSYgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0UGluUHJvdG9jb2xzKFZlY3Rvcjx1
aW50OF90PiYmIHBpblByb3RvY29scykKK3sKKyAgICBtX3BpblByb3RvY29scyA9IFdURk1vdmUo
cGluUHJvdG9jb2xzKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0F1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2UmIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldEV4dGVuc2lvbnMo
VmVjdG9yPFN0cmluZz4mJiBleHRlbnNpb25zKQoreworICAgIG1fZXh0ZW5zaW9ucyA9IFdURk1v
dmUoZXh0ZW5zaW9ucyk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitBdXRoZW50aWNhdG9yR2V0
SW5mb1Jlc3BvbnNlJiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlOjpzZXRPcHRpb25zKEF1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiYgb3B0aW9ucykKK3sKKyAgICBtX29wdGlvbnMg
PSBXVEZNb3ZlKG9wdGlvbnMpOworICAgIHJldHVybiAqdGhpczsKK30KKworVmVjdG9yPHVpbnQ4
X3Q+IGVuY29kZUFzQ0JPUihjb25zdCBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiByZXNw
b25zZSkKK3sKKyAgICBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGRldmljZUluZm9NYXA7CisK
KyAgICBjYm9yOjpDQk9SVmFsdWU6OkFycmF5VmFsdWUgdmVyc2lvbkFycmF5OworICAgIGZvciAo
Y29uc3QgYXV0byYgdmVyc2lvbiA6IHJlc3BvbnNlLnZlcnNpb25zKCkpCisgICAgICAgIHZlcnNp
b25BcnJheS5hcHBlbmQodmVyc2lvbiA9PSBQcm90b2NvbFZlcnNpb246OmtDdGFwID8ga0N0YXAy
VmVyc2lvbiA6IGtVMmZWZXJzaW9uKTsKKyAgICBkZXZpY2VJbmZvTWFwLmVtcGxhY2UoMSwgV1RG
TW92ZSh2ZXJzaW9uQXJyYXkpKTsKKworICAgIGlmIChyZXNwb25zZS5leHRlbnNpb25zKCkpCisg
ICAgICAgIGRldmljZUluZm9NYXAuZW1wbGFjZSgyLCB0b0FycmF5VmFsdWUoKnJlc3BvbnNlLmV4
dGVuc2lvbnMoKSkpOworCisgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKDMsIHJlc3BvbnNlLmFh
Z3VpZCgpKTsKKyAgICBkZXZpY2VJbmZvTWFwLmVtcGxhY2UoNCwgY29udmVydFRvQ0JPUihyZXNw
b25zZS5vcHRpb25zKCkpKTsKKworICAgIGlmIChyZXNwb25zZS5tYXhNc2dTaXplKCkpCisgICAg
ICAgIGRldmljZUluZm9NYXAuZW1wbGFjZSg1LCBzdGF0aWNfY2FzdDxpbnQ2NF90PigqcmVzcG9u
c2UubWF4TXNnU2l6ZSgpKSk7CisKKyAgICBpZiAocmVzcG9uc2UucGluUHJvdG9jb2woKSkKKyAg
ICAgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKDYsIHRvQXJyYXlWYWx1ZSgqcmVzcG9uc2UucGlu
UHJvdG9jb2woKSkpOworCisgICAgYXV0byBlbmNvZGVkQnl0ZXMgPSBjYm9yOjpDQk9SV3JpdGVy
Ojp3cml0ZShjYm9yOjpDQk9SVmFsdWUoV1RGTW92ZShkZXZpY2VJbmZvTWFwKSkpOworICAgIEFT
U0VSVChlbmNvZGVkQnl0ZXMpOworICAgIHJldHVybiAqZW5jb2RlZEJ5dGVzOworfQorCit9IC8v
IG5hbWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRlNjBhMmY5M2RiMGY0NDU1
MTg1ZDA2NTAxZGQwMWMxNWU5ZjExYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmgKQEAg
LTAsMCArMSw3NiBAQAorLy8gQ29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8g
bWV0OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8v
CisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oIgorI2luY2x1ZGUgIkZpZG9Db25zdGFudHMu
aCIKKyNpbmNsdWRlIDxzZXQ+CisKK25hbWVzcGFjZSBmaWRvIHsKKworLy8gQXV0aGVudGljYXRv
ciByZXNwb25zZSBmb3IgQXV0aGVudGljYXRvckdldEluZm8gcmVxdWVzdCB0aGF0IGVuY2Fwc3Vs
YXRlcworLy8gdmVyc2lvbnMsIG9wdGlvbnMsIEFBR1VJRChBdXRoZW50aWNhdG9yIEF0dGVzdGF0
aW9uIEdVSUQpLCBvdGhlcgorLy8gYXV0aGVudGljYXRvciBkZXZpY2UgaW5mb3JtYXRpb24uCisv
LyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2Zp
ZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1s
I2F1dGhlbnRpY2F0b3JnZXRpbmZvLTB4MDQKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEF1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UpOworcHVibGljOgorICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2Uoc3RkOjpzZXQ8UHJvdG9jb2xWZXJzaW9uPiYmIHZlcnNpb25zLCBWZWN0b3I8dWlu
dDhfdD4mJiBhYWd1aWQpOworICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UoQXV0aGVu
dGljYXRvckdldEluZm9SZXNwb25zZSYmIHRoYXQpID0gZGVmYXVsdDsKKyAgICBBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlJiBvcGVyYXRvcj0oQXV0aGVudGljYXRvckdldEluZm9SZXNwb25z
ZSYmIG90aGVyKSA9IGRlZmF1bHQ7CisKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNl
JiBzZXRNYXhNc2dTaXplKHVpbnQzMl90KTsKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3Bv
bnNlJiBzZXRQaW5Qcm90b2NvbHMoVmVjdG9yPHVpbnQ4X3Q+JiYpOworICAgIEF1dGhlbnRpY2F0
b3JHZXRJbmZvUmVzcG9uc2UmIHNldEV4dGVuc2lvbnMoVmVjdG9yPFN0cmluZz4mJik7CisgICAg
QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgc2V0T3B0aW9ucyhBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9ucyYmKTsKKworICAgIGNvbnN0IHN0ZDo6c2V0PFByb3RvY29sVmVyc2lvbj4m
IHZlcnNpb25zKCkgY29uc3QgeyByZXR1cm4gbV92ZXJzaW9uczsgfQorICAgIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgYWFndWlkKCkgY29uc3QgeyByZXR1cm4gbV9hYWd1aWQ7IH0KKyAgICBjb25z
dCBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiYgbWF4TXNnU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWF4TXNnU2l6ZTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiYg
cGluUHJvdG9jb2woKSBjb25zdCB7IHJldHVybiBtX3BpblByb3RvY29sczsgfQorICAgIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBleHRlbnNpb25zKCkgY29uc3QgeyByZXR1
cm4gbV9leHRlbnNpb25zOyB9CisgICAgY29uc3QgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlv
bnMmIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7IH0KKworcHJpdmF0ZToKKyAg
ICBzdGQ6OnNldDxQcm90b2NvbFZlcnNpb24+IG1fdmVyc2lvbnM7CisgICAgVmVjdG9yPHVpbnQ4
X3Q+IG1fYWFndWlkOworICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1fbWF4TXNnU2l6ZTsK
KyAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gbV9waW5Qcm90b2NvbHM7CisgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gbV9leHRlbnNpb25zOworICAgIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zIG1fb3B0aW9uczsKK307CisKK1dFQkNPUkVfRVhQT1JUIFZl
Y3Rvcjx1aW50OF90PiBlbmNvZGVBc0NCT1IoY29uc3QgQXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZSYpOworCit9IC8vIG5hbWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTBlMWJhNTJmYmI0MTdjOTQxODk1ZWM2ODM0MGMwNjc2ODhmMGNkYwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9ucy5jcHAKQEAgLTAsMCArMSwxMDcgQEAKKy8vIENvcHlyaWdodCAyMDE4
IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8v
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8v
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FV
VEhOKQorCisjaW5jbHVkZSAiRmlkb0NvbnN0YW50cy5oIgorCituYW1lc3BhY2UgZmlkbyB7CisK
K0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9uczo6c2V0U3VwcG9ydHNSZXNpZGVudEtleShib29sIHN1cHBvcnRzUmVzaWRlbnRLZXkpCit7
CisgICAgbV9zdXBwb3J0c1Jlc2lkZW50S2V5ID0gc3VwcG9ydHNSZXNpZGVudEtleTsKKyAgICBy
ZXR1cm4gKnRoaXM7Cit9CisKK0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eShV
c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5IHVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkp
Cit7CisgICAgbV91c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5ID0gdXNlclZlcmlmaWNhdGlv
bkF2YWlsYWJpbGl0eTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0F1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zJiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0VXNlclByZXNl
bmNlUmVxdWlyZWQoYm9vbCB1c2VyUHJlc2VuY2VSZXF1aXJlZCkKK3sKKyAgICBtX3VzZXJQcmVz
ZW5jZVJlcXVpcmVkID0gdXNlclByZXNlbmNlUmVxdWlyZWQ7CisgICAgcmV0dXJuICp0aGlzOwor
fQorCitBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgQXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnM6OnNldENsaWVudFBpbkF2YWlsYWJpbGl0eShDbGllbnRQaW5BdmFpbGFiaWxpdHkg
Y2xpZW50UGluQXZhaWxhYmlsaXR5KQoreworICAgIG1fY2xpZW50UGluQXZhaWxhYmlsaXR5ID0g
Y2xpZW50UGluQXZhaWxhYmlsaXR5OworICAgIHJldHVybiAqdGhpczsKK30KKworQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnMmIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpzZXRJ
c1BsYXRmb3JtRGV2aWNlKGJvb2wgaXNQbGF0Zm9ybURldmljZSkKK3sKKyAgICBtX2lzUGxhdGZv
cm1EZXZpY2UgPSBpc1BsYXRmb3JtRGV2aWNlOworICAgIHJldHVybiAqdGhpczsKK30KKworY2Jv
cjo6Q0JPUlZhbHVlIGNvbnZlcnRUb0NCT1IoY29uc3QgQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnMmIG9wdGlvbnMpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25N
YXA7CisgICAgb3B0aW9uTWFwLmVtcGxhY2Uoa1Jlc2lkZW50S2V5TWFwS2V5LCBvcHRpb25zLnN1
cHBvcnRzUmVzaWRlbnRLZXkoKSk7CisgICAgb3B0aW9uTWFwLmVtcGxhY2Uoa1VzZXJQcmVzZW5j
ZU1hcEtleSwgb3B0aW9ucy51c2VyUHJlc2VuY2VSZXF1aXJlZCgpKTsKKyAgICBvcHRpb25NYXAu
ZW1wbGFjZShrUGxhdGZvcm1EZXZpY2VNYXBLZXksIG9wdGlvbnMuaXNQbGF0Zm9ybURldmljZSgp
KTsKKworICAgIHVzaW5nIFV2QXZhaWxhYmlsaXR5ID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk7CisKKyAgICBzd2l0Y2ggKG9wdGlv
bnMudXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSgpKSB7CisgICAgY2FzZSBVdkF2YWlsYWJp
bGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQ6CisgICAgICAgIG9wdGlvbk1hcC5lbXBsYWNl
KGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5LCB0cnVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBVdkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dE5vdENvbmZpZ3VyZWQ6CisgICAgICAgIG9w
dGlvbk1hcC5lbXBsYWNlKGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5LCBmYWxzZSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVXZBdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQ6CisgICAgICAg
IGJyZWFrOworICAgIH0KKworICAgIHVzaW5nIENsaWVudFBpbkF2YWlsYWJpbGl0eSA9IEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk7CisKKyAgICBz
d2l0Y2ggKG9wdGlvbnMuY2xpZW50UGluQXZhaWxhYmlsaXR5KCkpIHsKKyAgICBjYXNlIENsaWVu
dFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNldDoKKyAgICAgICAgb3B0aW9uTWFw
LmVtcGxhY2Uoa0NsaWVudFBpbk1hcEtleSwgdHJ1ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0UGluTm90U2V0OgorICAgICAg
ICBvcHRpb25NYXAuZW1wbGFjZShrQ2xpZW50UGluTWFwS2V5LCBmYWxzZSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ2xpZW50UGluQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkOgorICAg
ICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gY2Jvcjo6Q0JPUlZhbHVlKFdURk1vdmUo
b3B0aW9uTWFwKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVjNDBhZTRiZTQyNjE0YzcxNGU1N2ZhZjZhNDQ2NWM3ZjJmZjk5MTYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnMuaApAQCAtMCwwICsxLDk2IEBACisvLyBDb3B5cmlnaHQgMjAx
OCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisv
LyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisv
LyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFdFQl9BVVRITikKKworI2luY2x1ZGUgIkNCT1JWYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisKK25hbWVzcGFjZSBmaWRvIHsKKworLy8gUmVwcmVzZW50cyBDVEFQIGRldmljZSBw
cm9wZXJ0aWVzIGFuZCBjYXBhYmlsaXRpZXMgcmVjZWl2ZWQgYXMgYSByZXNwb25zZSB0bworLy8g
QXV0aGVudGljYXRvckdldEluZm8gY29tbWFuZC4KK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyk7CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBVc2Vy
VmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5IHsKKyAgICAgICAgLy8gZS5nLiBBdXRoZW50aWNhdG9y
IHdpdGggZmluZ2VyIHByaW50IHNlbnNvciBhbmQgdXNlcidzIGZpbmdlcnByaW50IGlzCisgICAg
ICAgIC8vIHJlZ2lzdGVyZWQgdG8gdGhlIGRldmljZS4KKyAgICAgICAga1N1cHBvcnRlZEFuZENv
bmZpZ3VyZWQsCisgICAgICAgIC8vIGUuZy4gQXV0aGVudGljYXRvciB3aXRoIGZpbmdlcnByaW50
IHNlbnNvciB3aXRob3V0IHVzZXIncyBmaW5nZXJwcmludAorICAgICAgICAvLyByZWdpc3RlcmVk
LgorICAgICAgICBrU3VwcG9ydGVkQnV0Tm90Q29uZmlndXJlZCwKKyAgICAgICAga05vdFN1cHBv
cnRlZAorICAgIH07CisKKyAgICBlbnVtIGNsYXNzIENsaWVudFBpbkF2YWlsYWJpbGl0eSB7Cisg
ICAgICAgIGtTdXBwb3J0ZWRBbmRQaW5TZXQsCisgICAgICAgIGtTdXBwb3J0ZWRCdXRQaW5Ob3RT
ZXQsCisgICAgICAgIGtOb3RTdXBwb3J0ZWQsCisgICAgfTsKKworICAgIEF1dGhlbnRpY2F0b3JT
dXBwb3J0ZWRPcHRpb25zKCkgPSBkZWZhdWx0OworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zKEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiYpID0gZGVmYXVsdDsKKyAgICBB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgb3BlcmF0b3I9KEF1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zJiYpID0gZGVmYXVsdDsKKworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zJiBzZXRJc1BsYXRmb3JtRGV2aWNlKGJvb2wpOworICAgIEF1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zJiBzZXRTdXBwb3J0c1Jlc2lkZW50S2V5KGJvb2wpOworICAgIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBzZXRVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KFVz
ZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkpOworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zJiBzZXRVc2VyUHJlc2VuY2VSZXF1aXJlZChib29sKTsKKyAgICBBdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9ucyYgc2V0Q2xpZW50UGluQXZhaWxhYmlsaXR5KENsaWVudFBpbkF2YWls
YWJpbGl0eSk7CisKKyAgICBib29sIGlzUGxhdGZvcm1EZXZpY2UoKSBjb25zdCB7IHJldHVybiBt
X2lzUGxhdGZvcm1EZXZpY2U7IH0KKyAgICBib29sIHN1cHBvcnRzUmVzaWRlbnRLZXkoKSBjb25z
dCB7IHJldHVybiBtX3N1cHBvcnRzUmVzaWRlbnRLZXk7IH0KKyAgICBVc2VyVmVyaWZpY2F0aW9u
QXZhaWxhYmlsaXR5IHVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSBjb25zdCB7IHJldHVy
biBtX3VzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk7IH0KKyAgICBib29sIHVzZXJQcmVzZW5j
ZVJlcXVpcmVkKCkgY29uc3QgeyByZXR1cm4gbV91c2VyUHJlc2VuY2VSZXF1aXJlZDsgfQorICAg
IENsaWVudFBpbkF2YWlsYWJpbGl0eSBjbGllbnRQaW5BdmFpbGFiaWxpdHkoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudFBpbkF2YWlsYWJpbGl0eTsgfQorCitwcml2YXRlOgorICAgIC8vIEluZGlj
YXRlcyB0aGF0IHRoZSBkZXZpY2UgaXMgYXR0YWNoZWQgdG8gdGhlIGNsaWVudCBhbmQgdGhlcmVm
b3JlIGNhbid0IGJlCisgICAgLy8gcmVtb3ZlZCBhbmQgdXNlZCBvbiBhbm90aGVyIGNsaWVudC4K
KyAgICBib29sIG1faXNQbGF0Zm9ybURldmljZSB7IGZhbHNlIH07CisgICAgLy8gSW5kaWNhdGVz
IHRoYXQgdGhlIGRldmljZSBpcyBjYXBhYmxlIG9mIHN0b3Jpbmcga2V5cyBvbiB0aGUgZGV2aWNl
IGl0c2VsZgorICAgIC8vIGFuZCB0aGVyZWZvcmUgY2FuIHNhdGlzZnkgdGhlIGF1dGhlbnRpY2F0
b3JHZXRBc3NlcnRpb24gcmVxdWVzdCB3aXRoCisgICAgLy8gYWxsb3dMaXN0IHBhcmFtZXRlciBu
b3Qgc3BlY2lmaWVkIG9yIGVtcHR5LgorICAgIGJvb2wgbV9zdXBwb3J0c1Jlc2lkZW50S2V5IHsg
ZmFsc2UgfTsKKyAgICAvLyBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZGV2aWNlIGlzIGNhcGFibGUg
b2YgdmVyaWZ5aW5nIHRoZSB1c2VyIG9uIGl0cyBvd24uCisgICAgVXNlclZlcmlmaWNhdGlvbkF2
YWlsYWJpbGl0eSBtX3VzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgeyBVc2VyVmVyaWZpY2F0
aW9uQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkIH07CisgICAgYm9vbCBtX3VzZXJQcmVzZW5j
ZVJlcXVpcmVkIHsgdHJ1ZSB9OworICAgIC8vIFJlcHJlc2VudHMgd2hldGhlciBjbGllbnQgcGlu
IGluIHNldCBhbmQgc3RvcmVkIGluIGRldmljZS4gU2V0IGFzIG51bGwKKyAgICAvLyBvcHRpb25h
bCBpZiBjbGllbnQgcGluIGNhcGFiaWxpdHkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYXV0aGVu
dGljYXRvci4KKyAgICBDbGllbnRQaW5BdmFpbGFiaWxpdHkgbV9jbGllbnRQaW5BdmFpbGFiaWxp
dHkgeyBDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQgfTsKK307CisKK1dFQkNP
UkVfRVhQT1JUIGNib3I6OkNCT1JWYWx1ZSBjb252ZXJ0VG9DQk9SKGNvbnN0IEF1dGhlbnRpY2F0
b3JTdXBwb3J0ZWRPcHRpb25zJik7CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKworI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGQ5NjE4ZmIwNDMzNzU0OGU5NjU3ZDE3ZDVlNzlmYTJhMmM4NWEyMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0
Q29udmVydGVyLmNwcApAQCAtMCwwICsxLDE4MiBAQAorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIENo
cm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8g
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2
aWNlUmVxdWVzdENvbnZlcnRlci5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1
ZGUgIkNCT1JXcml0ZXIuaCIKKyNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zLmgiCisjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgi
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgZmlkbyB7Cit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKwordXNpbmcgVVZBdmFpbGFiaWxpdHkgPSBBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTsKKworc3RhdGljIGNi
b3I6OkNCT1JWYWx1ZSBjb252ZXJ0UnBFbnRpdHlUb0NCT1IoY29uc3QgUHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9uczo6UnBFbnRpdHkmIHJwRW50aXR5KQoreworICAgIGNib3I6OkNC
T1JWYWx1ZTo6TWFwVmFsdWUgcnBNYXA7CisgICAgcnBNYXAuZW1wbGFjZShrRW50aXR5TmFtZU1h
cEtleSwgcnBFbnRpdHkubmFtZSk7CisgICAgaWYgKCFycEVudGl0eS5pY29uLmlzRW1wdHkoKSkK
KyAgICAgICAgcnBNYXAuZW1wbGFjZShrSWNvblVybE1hcEtleSwgcnBFbnRpdHkuaWNvbik7Cisg
ICAgaWYgKCFycEVudGl0eS5pZC5pc0VtcHR5KCkpCisgICAgICAgIHJwTWFwLmVtcGxhY2Uoa0Vu
dGl0eUlkTWFwS2V5LCBycEVudGl0eS5pZCk7CisKKyAgICByZXR1cm4gY2Jvcjo6Q0JPUlZhbHVl
KFdURk1vdmUocnBNYXApKTsKK30KKworc3RhdGljIGNib3I6OkNCT1JWYWx1ZSBjb252ZXJ0VXNl
ckVudGl0eVRvQ0JPUihjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpV
c2VyRW50aXR5JiB1c2VyRW50aXR5KQoreworICAgIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUg
dXNlck1hcDsKKyAgICB1c2VyTWFwLmVtcGxhY2Uoa0VudGl0eU5hbWVNYXBLZXksIHVzZXJFbnRp
dHkubmFtZSk7CisgICAgaWYgKCF1c2VyRW50aXR5Lmljb24uaXNFbXB0eSgpKQorICAgICAgICB1
c2VyTWFwLmVtcGxhY2Uoa0ljb25VcmxNYXBLZXksIHVzZXJFbnRpdHkuaWNvbik7CisgICAgdXNl
ck1hcC5lbXBsYWNlKGtFbnRpdHlJZE1hcEtleSwgdXNlckVudGl0eS5pZFZlY3Rvcik7CisgICAg
dXNlck1hcC5lbXBsYWNlKGtEaXNwbGF5TmFtZU1hcEtleSwgdXNlckVudGl0eS5kaXNwbGF5TmFt
ZSk7CisgICAgcmV0dXJuIGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKHVzZXJNYXApKTsKK30KKwor
c3RhdGljIGNib3I6OkNCT1JWYWx1ZSBjb252ZXJ0UGFyYW1ldGVyc1RvQ0JPUihjb25zdCBWZWN0
b3I8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4mIHBhcmFt
ZXRlcnMpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpBcnJheVZhbHVlIGNyZWRlbnRpYWxQYXJh
bUFycmF5OworICAgIGNyZWRlbnRpYWxQYXJhbUFycmF5LnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
cGFyYW1ldGVycy5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0byYgY3JlZGVudGlhbCA6IHBh
cmFtZXRlcnMpIHsKKyAgICAgICAgY2Jvcjo6Q0JPUlZhbHVlOjpNYXBWYWx1ZSBjYm9yQ3JlZGVu
dGlhbE1hcDsKKyAgICAgICAgY2JvckNyZWRlbnRpYWxNYXAuZW1wbGFjZShrQ3JlZGVudGlhbFR5
cGVNYXBLZXksIHB1YmxpY0tleUNyZWRlbnRpYWxUeXBlVG9TdHJpbmcoY3JlZGVudGlhbC50eXBl
KSk7CisgICAgICAgIGNib3JDcmVkZW50aWFsTWFwLmVtcGxhY2Uoa0NyZWRlbnRpYWxBbGdvcml0
aG1NYXBLZXksIGNyZWRlbnRpYWwuYWxnKTsKKyAgICAgICAgY3JlZGVudGlhbFBhcmFtQXJyYXku
YXBwZW5kKFdURk1vdmUoY2JvckNyZWRlbnRpYWxNYXApKTsKKyAgICB9CisgICAgcmV0dXJuIGNi
b3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGNyZWRlbnRpYWxQYXJhbUFycmF5KSk7Cit9CisKK3N0YXRp
YyBjYm9yOjpDQk9SVmFsdWUgY29udmVydERlc2NyaXB0b3JUb0NCT1IoY29uc3QgUHVibGljS2V5
Q3JlZGVudGlhbERlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVl
OjpNYXBWYWx1ZSBjYm9yRGVzY3JpcHRvck1hcDsKKyAgICBjYm9yRGVzY3JpcHRvck1hcFtjYm9y
OjpDQk9SVmFsdWUoa0NyZWRlbnRpYWxUeXBlS2V5KV0gPSBjYm9yOjpDQk9SVmFsdWUocHVibGlj
S2V5Q3JlZGVudGlhbFR5cGVUb1N0cmluZyhkZXNjcmlwdG9yLnR5cGUpKTsKKyAgICBjYm9yRGVz
Y3JpcHRvck1hcFtjYm9yOjpDQk9SVmFsdWUoa0NyZWRlbnRpYWxJZEtleSldID0gY2Jvcjo6Q0JP
UlZhbHVlKGRlc2NyaXB0b3IuaWRWZWN0b3IpOworICAgIHJldHVybiBjYm9yOjpDQk9SVmFsdWUo
V1RGTW92ZShjYm9yRGVzY3JpcHRvck1hcCkpOworfQorCitWZWN0b3I8dWludDhfdD4gZW5jb2Rl
TWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwg
Y29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYgb3B0aW9ucywgVVZBdmFp
bGFiaWxpdHkgdXZDYXBhYmlsaXR5KQoreworICAgIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUg
Y2Jvck1hcDsKKyAgICBjYm9yTWFwW2Nib3I6OkNCT1JWYWx1ZSgxKV0gPSBjYm9yOjpDQk9SVmFs
dWUoaGFzaCk7CisgICAgY2Jvck1hcFtjYm9yOjpDQk9SVmFsdWUoMildID0gY29udmVydFJwRW50
aXR5VG9DQk9SKG9wdGlvbnMucnApOworICAgIGNib3JNYXBbY2Jvcjo6Q0JPUlZhbHVlKDMpXSA9
IGNvbnZlcnRVc2VyRW50aXR5VG9DQk9SKG9wdGlvbnMudXNlcik7CisgICAgY2Jvck1hcFtjYm9y
OjpDQk9SVmFsdWUoNCldID0gY29udmVydFBhcmFtZXRlcnNUb0NCT1Iob3B0aW9ucy5wdWJLZXlD
cmVkUGFyYW1zKTsKKyAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZUNyZWRlbnRpYWxzLmlzRW1wdHko
KSkgeworICAgICAgICBjYm9yOjpDQk9SVmFsdWU6OkFycmF5VmFsdWUgZXhjbHVkZUxpc3RBcnJh
eTsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXNjcmlwdG9yIDogb3B0aW9ucy5leGNsdWRl
Q3JlZGVudGlhbHMpCisgICAgICAgICAgICBleGNsdWRlTGlzdEFycmF5LmFwcGVuZChjb252ZXJ0
RGVzY3JpcHRvclRvQ0JPUihkZXNjcmlwdG9yKSk7CisgICAgICAgIGNib3JNYXBbY2Jvcjo6Q0JP
UlZhbHVlKDUpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGV4Y2x1ZGVMaXN0QXJyYXkpKTsK
KyAgICB9CisKKyAgICBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIG9wdGlvbk1hcDsKKyAgICBp
ZiAob3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uKSB7CisgICAgICAgIC8vIFJlc2lkZW50
IGtleXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgaWYgKG9wdGlvbnMu
YXV0aGVudGljYXRvclNlbGVjdGlvbi0+cmVxdWlyZVJlc2lkZW50S2V5KQorICAgICAgICAgICAg
b3B0aW9uTWFwW2Nib3I6OkNCT1JWYWx1ZShrUmVzaWRlbnRLZXlNYXBLZXkpXSA9IGNib3I6OkNC
T1JWYWx1ZSh0cnVlKTsKKworICAgICAgICAvLyBVc2VyIHZlcmlmaWNhdGlvbiBpcyBub3QgcmVx
dWlyZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgYm9vbCByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9
IGZhbHNlOworICAgICAgICBzd2l0Y2ggKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+
dXNlclZlcmlmaWNhdGlvbikgeworICAgICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1aXJl
bWVudDo6UmVxdWlyZWQ6CisgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IHRy
dWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQ6OlByZWZlcnJlZDoKKyAgICAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9u
ID0gdXZDYXBhYmlsaXR5ID09IFVWQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkID8gZmFsc2Ug
OiB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZDoKKyAgICAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZp
Y2F0aW9uID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgb3B0aW9uTWFwW2Nib3I6OkNCT1JW
YWx1ZShrVXNlclZlcmlmaWNhdGlvbk1hcEtleSldID0gY2Jvcjo6Q0JPUlZhbHVlKHJlcXVpcmVV
c2VyVmVyaWZpY2F0aW9uKTsKKyAgICB9CisgICAgaWYgKCFvcHRpb25NYXAuZW1wdHkoKSkKKyAg
ICAgICAgY2Jvck1hcFtjYm9yOjpDQk9SVmFsdWUoNyldID0gY2Jvcjo6Q0JPUlZhbHVlKFdURk1v
dmUob3B0aW9uTWFwKSk7CisKKyAgICBhdXRvIHNlcmlhbGl6ZWRQYXJhbSA9IGNib3I6OkNCT1JX
cml0ZXI6OndyaXRlKGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGNib3JNYXApKSk7CisgICAgQVNT
RVJUKHNlcmlhbGl6ZWRQYXJhbSk7CisKKyAgICBWZWN0b3I8dWludDhfdD4gY2JvclJlcXVlc3Qo
eyBzdGF0aWNfY2FzdDx1aW50OF90PihDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9y
TWFrZUNyZWRlbnRpYWwpIH0pOworICAgIGNib3JSZXF1ZXN0LmFwcGVuZFZlY3Rvcigqc2VyaWFs
aXplZFBhcmFtKTsKKyAgICByZXR1cm4gY2JvclJlcXVlc3Q7Cit9CisKK1ZlY3Rvcjx1aW50OF90
PiBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
aGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zLCBV
VkF2YWlsYWJpbGl0eSB1dkNhcGFiaWxpdHkpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpNYXBW
YWx1ZSBjYm9yTWFwOworICAgIGNib3JNYXBbY2Jvcjo6Q0JPUlZhbHVlKDEpXSA9IGNib3I6OkNC
T1JWYWx1ZShvcHRpb25zLnJwSWQpOworICAgIGNib3JNYXBbY2Jvcjo6Q0JPUlZhbHVlKDIpXSA9
IGNib3I6OkNCT1JWYWx1ZShoYXNoKTsKKworICAgIGlmICghb3B0aW9ucy5hbGxvd0NyZWRlbnRp
YWxzLmlzRW1wdHkoKSkgeworICAgICAgICBjYm9yOjpDQk9SVmFsdWU6OkFycmF5VmFsdWUgYWxs
b3dMaXN0QXJyYXk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgZGVzY3JpcHRvciA6IG9wdGlv
bnMuYWxsb3dDcmVkZW50aWFscykKKyAgICAgICAgICAgIGFsbG93TGlzdEFycmF5LmFwcGVuZChj
b252ZXJ0RGVzY3JpcHRvclRvQ0JPUihkZXNjcmlwdG9yKSk7CisgICAgICAgIGNib3JNYXBbY2Jv
cjo6Q0JPUlZhbHVlKDMpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGFsbG93TGlzdEFycmF5
KSk7CisgICAgfQorCisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25NYXA7Cisg
ICAgaWYgKG9wdGlvbnMudXNlclZlcmlmaWNhdGlvbikgeworICAgICAgICAvLyBVc2VyIHZlcmlm
aWNhdGlvbiBpcyBub3QgcmVxdWlyZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgYm9vbCByZXF1aXJl
VXNlclZlcmlmaWNhdGlvbiA9IGZhbHNlOworICAgICAgICBzd2l0Y2ggKCpvcHRpb25zLnVzZXJW
ZXJpZmljYXRpb24pIHsKKyAgICAgICAgY2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6
OlJlcXVpcmVkOgorICAgICAgICAgICAgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSB0cnVlOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50OjpQcmVmZXJyZWQ6CisgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IHV2
Q2FwYWJpbGl0eSA9PSBVVkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCA/IGZhbHNlIDogdHJ1
ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1
aXJlbWVudDo6RGlzY291cmFnZWQ6CisgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlv
biA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIG9wdGlvbk1hcFtjYm9yOjpDQk9SVmFsdWUo
a1VzZXJWZXJpZmljYXRpb25NYXBLZXkpXSA9IGNib3I6OkNCT1JWYWx1ZShyZXF1aXJlVXNlclZl
cmlmaWNhdGlvbik7CisgICAgICAgIG9wdGlvbk1hcFtjYm9yOjpDQk9SVmFsdWUoa1VzZXJQcmVz
ZW5jZU1hcEtleSldID0gY2Jvcjo6Q0JPUlZhbHVlKCFyZXF1aXJlVXNlclZlcmlmaWNhdGlvbik7
CisgICAgfQorICAgIGlmICghb3B0aW9uTWFwLmVtcHR5KCkpCisgICAgICAgIGNib3JNYXBbY2Jv
cjo6Q0JPUlZhbHVlKDUpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKG9wdGlvbk1hcCkpOwor
CisgICAgYXV0byBzZXJpYWxpemVkUGFyYW0gPSBjYm9yOjpDQk9SV3JpdGVyOjp3cml0ZShjYm9y
OjpDQk9SVmFsdWUoV1RGTW92ZShjYm9yTWFwKSkpOworICAgIEFTU0VSVChzZXJpYWxpemVkUGFy
YW0pOworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGNib3JSZXF1ZXN0KHsgc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oQ3RhcFJlcXVlc3RDb21tYW5kOjprQXV0aGVudGljYXRvckdldEFzc2VydGlvbikgfSk7
CisgICAgY2JvclJlcXVlc3QuYXBwZW5kVmVjdG9yKCpzZXJpYWxpemVkUGFyYW0pOworICAgIHJl
dHVybiBjYm9yUmVxdWVzdDsKK30KKworVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUVtcHR5QXV0aGVu
dGljYXRvclJlcXVlc3QoQ3RhcFJlcXVlc3RDb21tYW5kIGNtZCkKK3sKKyAgICByZXR1cm4geyBz
dGF0aWNfY2FzdDx1aW50OF90PihjbWQpIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40YWNjM2ZmNjJiOTUyNDlmNDg3YjIyY2U4NGFjNDE3OWY0YzMxODZmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJl
cXVlc3RDb252ZXJ0ZXIuaApAQCAtMCwwICsxLDYyIEBACisvLyBDb3B5cmlnaHQgMjAxNyBUaGUg
Q2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisv
LyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8g
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8v
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8v
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9B
VVRITikKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgiCisjaW5j
bHVkZSAiRmlkb0NvbnN0YW50cy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
Oworc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKK30KKworbmFtZXNw
YWNlIGZpZG8geworCisvLyBTZXJpYWxpemVzIE1ha2VDcmVkZW50aWFsIHJlcXVlc3QgcGFyYW1l
dGVyIGludG8gQ0JPUiBlbmNvZGVkIG1hcCB3aXRoCisvLyBpbnRlZ2VyIGtleXMgYW5kIENCT1Ig
ZW5jb2RlZCB2YWx1ZXMgYXMgZGVmaW5lZCBieSB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9m
aWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10
by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNh
dG9yTWFrZUNyZWRlbnRpYWwKK1dFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVN
YWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBj
b25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwgQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkpOwor
CisvLyBTZXJpYWxpemVzIEdldEFzc2VydGlvbiByZXF1ZXN0IHBhcmFtZXRlciBpbnRvIENCT1Ig
ZW5jb2RlZCBtYXAgd2l0aAorLy8gaW50ZWdlciBrZXlzIGFuZCBDQk9SIGVuY29kZWQgdmFsdWVz
IGFzIGRlZmluZWQgYnkgdGhlIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9y
Zy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRv
ci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjYXV0aGVudGljYXRvckdldEFzc2VydGlv
bgorV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUdldEFzc2VydGlvblJlcXVl
c3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSk7CisKKy8vIFJlcHJlc2VudHMgQ1RB
UCByZXF1ZXN0cyB3aXRoIGVtcHR5IHBhcmFtZXRlcnMsIGluY2x1ZGluZworLy8gQXV0aGVudGlj
YXRvckdldEluZm8sIEF1dGhlbnRpY2F0b3JDYW5jZWwsIEF1dGhlbnRpY2F0b3JSZXNldCBhbmQK
Ky8vIEF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uIGNvbW1hbmRzLgorV0VCQ09SRV9FWFBP
UlQgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUVtcHR5QXV0aGVudGljYXRvclJlcXVlc3QoQ3RhcFJl
cXVlc3RDb21tYW5kKTsKKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxF
KFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Zmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMx
YzdlNGY4ODMzZDU1NjZiZmFkNTY3MTY3NDI5ZTg4ODQwMTAzZDMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252
ZXJ0ZXIuY3BwCkBAIC0wLDAgKzEsMzEyIEBACisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgQ2hyb21p
dW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisv
LyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
Ky8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VS
ZXNwb25zZUNvbnZlcnRlci5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUg
IkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgiCisjaW5jbHVkZSAiQ0JPUlJlYWRlci5o
IgorI2luY2x1ZGUgIkNCT1JXcml0ZXIuaCIKKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgorCituYW1lc3BhY2UgZmlkbyB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
K3VzaW5nIENCT1IgPSBjYm9yOjpDQk9SVmFsdWU7CisKK2NvbnN0ZXhwciBzaXplX3Qga1Jlc3Bv
bnNlQ29kZUxlbmd0aCA9IDE7CisKK3N0YXRpYyBQcm90b2NvbFZlcnNpb24gY29udmVydFN0cmlu
Z1RvUHJvdG9jb2xWZXJzaW9uKGNvbnN0IFN0cmluZyYgdmVyc2lvbikKK3sKKyAgICBpZiAodmVy
c2lvbiA9PSBrQ3RhcDJWZXJzaW9uKQorICAgICAgICByZXR1cm4gUHJvdG9jb2xWZXJzaW9uOjpr
Q3RhcDsKKyAgICBpZiAodmVyc2lvbiA9PSBrVTJmVmVyc2lvbikKKyAgICAgICAgcmV0dXJuIFBy
b3RvY29sVmVyc2lvbjo6a1UyZjsKKworICAgIHJldHVybiBQcm90b2NvbFZlcnNpb246OmtVbmtu
b3duOworfQorCitDdGFwRGV2aWNlUmVzcG9uc2VDb2RlIGdldFJlc3BvbnNlQ29kZShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKK3sKKyAgICBpZiAoYnVmZmVyLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRDQk9S
OworCisgICAgYXV0byBjb2RlID0gc3RhdGljX2Nhc3Q8Q3RhcERldmljZVJlc3BvbnNlQ29kZT4o
YnVmZmVyWzBdKTsKKyAgICByZXR1cm4gaXNDdGFwRGV2aWNlUmVzcG9uc2VDb2RlKGNvZGUpID8g
Y29kZSA6IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRDQk9SOworfQor
CitzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGdldENyZWRlbnRpYWxJZChjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIGF1dGhlbnRpY2F0b3JEYXRhKQoreworICAgIGNvbnN0IHNpemVfdCBjcmVkZW50aWFs
SWRMZW5ndGhPZmZzZXQgPSBrUnBJZEhhc2hMZW5ndGggKyBrRmxhZ3NMZW5ndGggKyBrU2lnbkNv
dW50ZXJMZW5ndGggKyBrQWFndWlkTGVuZ3RoOworCisgICAgaWYgKGF1dGhlbnRpY2F0b3JEYXRh
LnNpemUoKSA8IGNyZWRlbnRpYWxJZExlbmd0aE9mZnNldCArIGtDcmVkZW50aWFsSWRMZW5ndGhM
ZW5ndGgpCisgICAgICAgIHJldHVybiB7IH07CisgICAgc2l6ZV90IGNyZWRlbnRpYWxJZExlbmd0
aCA9IChzdGF0aWNfY2FzdDxzaXplX3Q+KGF1dGhlbnRpY2F0b3JEYXRhW2NyZWRlbnRpYWxJZExl
bmd0aE9mZnNldF0pIDw8IDgpIHwgc3RhdGljX2Nhc3Q8c2l6ZV90PihhdXRoZW50aWNhdG9yRGF0
YVtjcmVkZW50aWFsSWRMZW5ndGhPZmZzZXQgKyAxXSk7CisKKyAgICBpZiAoYXV0aGVudGljYXRv
ckRhdGEuc2l6ZSgpIDwgY3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0ICsga0NyZWRlbnRpYWxJZExl
bmd0aExlbmd0aCArIGNyZWRlbnRpYWxJZExlbmd0aCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAg
ICBWZWN0b3I8dWludDhfdD4gY3JlZGVudGlhbElkOworICAgIGNyZWRlbnRpYWxJZC5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KGNyZWRlbnRpYWxJZExlbmd0aCk7CisgICAgYXV0byBiZWdpbkl0ID0g
YXV0aGVudGljYXRvckRhdGEuYmVnaW4oKSArIGNyZWRlbnRpYWxJZExlbmd0aE9mZnNldCArIGtD
cmVkZW50aWFsSWRMZW5ndGhMZW5ndGg7CisgICAgY3JlZGVudGlhbElkLmFwcGVuZFJhbmdlKGJl
Z2luSXQsIGJlZ2luSXQgKyBjcmVkZW50aWFsSWRMZW5ndGgpOworICAgIHJldHVybiBjcmVkZW50
aWFsSWQ7Cit9CisKKworLy8gRGVjb2RlcyBieXRlIGFycmF5IHJlc3BvbnNlIGZyb20gYXV0aGVu
dGljYXRvciB0byBDQk9SIHZhbHVlIG9iamVjdCBhbmQKKy8vIGNoZWNrcyBmb3IgY29ycmVjdCBl
bmNvZGluZyBmb3JtYXQuCitzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhPiBy
ZWFkQ1RBUE1ha2VDcmVkZW50aWFsUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpbkJ1
ZmZlcikKK3sKKyAgICBpZiAoaW5CdWZmZXIuc2l6ZSgpIDw9IGtSZXNwb25zZUNvZGVMZW5ndGgp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8dWludDhfdD4gYnVm
ZmVyOworICAgIGJ1ZmZlci5hcHBlbmQoaW5CdWZmZXIuZGF0YSgpICsgMSwgaW5CdWZmZXIuc2l6
ZSgpIC0gMSk7CisgICAgc3RkOjpvcHRpb25hbDxDQk9SPiBkZWNvZGVkUmVzcG9uc2UgPSBjYm9y
OjpDQk9SUmVhZGVyOjpyZWFkKGJ1ZmZlcik7CisgICAgaWYgKCFkZWNvZGVkUmVzcG9uc2UgfHwg
IWRlY29kZWRSZXNwb25zZS0+aXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICBjb25zdCBhdXRvJiBkZWNvZGVkTWFwID0gZGVjb2RlZFJlc3BvbnNlLT5nZXRNYXAoKTsK
KworICAgIGF1dG8gaXQgPSBkZWNvZGVkTWFwLmZpbmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ID09
IGRlY29kZWRNYXAuZW5kKCkgfHwgIWl0LT5zZWNvbmQuaXNTdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBhdXRvIGZvcm1hdCA9IGl0LT5zZWNvbmQuY2xvbmUoKTsK
KworICAgIGl0ID0gZGVjb2RlZE1hcC5maW5kKENCT1IoMikpOworICAgIGlmIChpdCA9PSBkZWNv
ZGVkTWFwLmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworICAgIGF1dG8gYXV0aGVudGljYXRvckRhdGEgPSBpdC0+c2Vjb25k
LmNsb25lKCk7CisKKyAgICBhdXRvIGNyZWRlbnRpYWxJZCA9IGdldENyZWRlbnRpYWxJZChhdXRo
ZW50aWNhdG9yRGF0YS5nZXRCeXRlU3RyaW5nKCkpOworICAgIGlmIChjcmVkZW50aWFsSWQuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgaXQgPSBkZWNvZGVk
TWFwLmZpbmQoQ0JPUigzKSk7CisgICAgaWYgKGl0ID09IGRlY29kZWRNYXAuZW5kKCkgfHwgIWl0
LT5zZWNvbmQuaXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBhdXRv
IGF0dFN0bXQgPSBpdC0+c2Vjb25kLmNsb25lKCk7CisKKyAgICBDQk9SOjpNYXBWYWx1ZSBhdHRl
c3RhdGlvbk9iamVjdE1hcDsKKyAgICBhdHRlc3RhdGlvbk9iamVjdE1hcFtDQk9SKCJhdXRoRGF0
YSIpXSA9IFdURk1vdmUoYXV0aGVudGljYXRvckRhdGEpOworICAgIGF0dGVzdGF0aW9uT2JqZWN0
TWFwW0NCT1IoImZtdCIpXSA9IFdURk1vdmUoZm9ybWF0KTsKKyAgICBhdHRlc3RhdGlvbk9iamVj
dE1hcFtDQk9SKCJhdHRTdG10IildID0gV1RGTW92ZShhdHRTdG10KTsKKyAgICBhdXRvIGF0dGVz
dGF0aW9uT2JqZWN0ID0gY2Jvcjo6Q0JPUldyaXRlcjo6d3JpdGUoQ0JPUihXVEZNb3ZlKGF0dGVz
dGF0aW9uT2JqZWN0TWFwKSkpOworCisgICAgcmV0dXJuIFB1YmxpY0tleUNyZWRlbnRpYWxEYXRh
IHsgQXJyYXlCdWZmZXI6OmNyZWF0ZShjcmVkZW50aWFsSWQuZGF0YSgpLCBjcmVkZW50aWFsSWQu
c2l6ZSgpKSwgdHJ1ZSwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdHRlc3RhdGlvbk9i
amVjdC52YWx1ZSgpLmRhdGEoKSwgYXR0ZXN0YXRpb25PYmplY3QudmFsdWUoKS5zaXplKCkpLCBu
dWxscHRyLCBudWxscHRyLCBudWxscHRyIH07Cit9CisKK3N0ZDo6b3B0aW9uYWw8UHVibGljS2V5
Q3JlZGVudGlhbERhdGE+IHJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBpbkJ1ZmZlcikKK3sKKyAgICBpZiAoaW5CdWZmZXIuc2l6ZSgpIDw9IGtSZXNw
b25zZUNvZGVMZW5ndGgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0
b3I8dWludDhfdD4gYnVmZmVyOworICAgIGJ1ZmZlci5hcHBlbmQoaW5CdWZmZXIuZGF0YSgpICsg
MSwgaW5CdWZmZXIuc2l6ZSgpIC0gMSk7CisgICAgc3RkOjpvcHRpb25hbDxDQk9SPiBkZWNvZGVk
UmVzcG9uc2UgPSBjYm9yOjpDQk9SUmVhZGVyOjpyZWFkKGJ1ZmZlcik7CisKKyAgICBpZiAoIWRl
Y29kZWRSZXNwb25zZSB8fCAhZGVjb2RlZFJlc3BvbnNlLT5pc01hcCgpKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byYgcmVzcG9uc2VNYXAgPSBkZWNvZGVkUmVzcG9u
c2UtPmdldE1hcCgpOworCisgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVkZW50aWFsSWQ7Cisg
ICAgYXV0byBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ICE9IHJl
c3BvbnNlTWFwLmVuZCgpICYmIGl0LT5zZWNvbmQuaXNNYXAoKSkgeworICAgICAgICBhdXRvJiBj
cmVkZW50aWFsID0gaXQtPnNlY29uZC5nZXRNYXAoKTsKKyAgICAgICAgYXV0byBpdHIgPSBjcmVk
ZW50aWFsLmZpbmQoQ0JPUihrQ3JlZGVudGlhbElkS2V5KSk7CisgICAgICAgIGlmIChpdHIgPT0g
Y3JlZGVudGlhbC5lbmQoKSB8fCAhaXRyLT5zZWNvbmQuaXNCeXRlU3RyaW5nKCkpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBhdXRvJiBpZCA9IGl0ci0+c2Vjb25k
LmdldEJ5dGVTdHJpbmcoKTsKKyAgICAgICAgY3JlZGVudGlhbElkID0gQXJyYXlCdWZmZXI6OmNy
ZWF0ZShpZC5kYXRhKCksIGlkLnNpemUoKSk7CisgICAgfQorCisgICAgaXQgPSByZXNwb25zZU1h
cC5maW5kKENCT1IoMikpOworICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5lbmQoKSB8fCAhaXQt
PnNlY29uZC5pc0J5dGVTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICBhdXRvJiBhdXRoRGF0YSA9IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOworCisgICAgaXQg
PSByZXNwb25zZU1hcC5maW5kKENCT1IoMykpOworICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5l
bmQoKSB8fCAhaXQtPnNlY29uZC5pc0J5dGVTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICBhdXRvJiBzaWduYXR1cmUgPSBpdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmco
KTsKKworICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gdXNlckhhbmRsZTsKKyAgICB7CisgICAgICAg
IGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDQpKTsKKyAgICAgICAgaWYgKGl0ID09IHJlc3Bv
bnNlTWFwLmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzTWFwKCkpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgICAgICBhdXRvJiB1c2VyID0gaXQtPnNlY29uZC5nZXRNYXAoKTsK
KyAgICAgICAgYXV0byBpdHIgPSB1c2VyLmZpbmQoQ0JPUihrRW50aXR5SWRNYXBLZXkpKTsKKyAg
ICAgICAgaWYgKGl0ciA9PSB1c2VyLmVuZCgpIHx8ICFpdHItPnNlY29uZC5pc0J5dGVTdHJpbmco
KSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGF1dG8mIGlkID0g
aXRyLT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOworICAgICAgICB1c2VySGFuZGxlID0gQXJyYXlC
dWZmZXI6OmNyZWF0ZShpZC5kYXRhKCksIGlkLnNpemUoKSk7CisgICAgfQorCisgICAgcmV0dXJu
IFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgV1RGTW92ZShjcmVkZW50aWFsSWQpLCBmYWxzZSwg
bnVsbHB0ciwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdXRoRGF0YS5kYXRhKCksIGF1
dGhEYXRhLnNpemUoKSksIEFycmF5QnVmZmVyOjpjcmVhdGUoc2lnbmF0dXJlLmRhdGEoKSwgc2ln
bmF0dXJlLnNpemUoKSksIFdURk1vdmUodXNlckhhbmRsZSkgfTsKK30KKworc3RkOjpvcHRpb25h
bDxBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlPiByZWFkQ1RBUEdldEluZm9SZXNwb25zZShj
b25zdCBWZWN0b3I8dWludDhfdD4mIGluQnVmZmVyKQoreworICAgIGlmIChpbkJ1ZmZlci5zaXpl
KCkgPD0ga1Jlc3BvbnNlQ29kZUxlbmd0aCB8fCBnZXRSZXNwb25zZUNvZGUoaW5CdWZmZXIpICE9
IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtTdWNjZXNzKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKKyAgICBidWZmZXIuYXBwZW5k
KGluQnVmZmVyLmRhdGEoKSArIDEsIGluQnVmZmVyLnNpemUoKSAtIDEpOworICAgIHN0ZDo6b3B0
aW9uYWw8Q0JPUj4gZGVjb2RlZFJlc3BvbnNlID0gY2Jvcjo6Q0JPUlJlYWRlcjo6cmVhZChidWZm
ZXIpOworICAgIGlmICghZGVjb2RlZFJlc3BvbnNlIHx8ICFkZWNvZGVkUmVzcG9uc2UtPmlzTWFw
KCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgY29uc3QgYXV0byYgcmVzcG9u
c2VNYXAgPSBkZWNvZGVkUmVzcG9uc2UtPmdldE1hcCgpOworCisgICAgYXV0byBpdCA9IHJlc3Bv
bnNlTWFwLmZpbmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ID09IHJlc3BvbnNlTWFwLmVuZCgpIHx8
ICFpdC0+c2Vjb25kLmlzQXJyYXkoKSB8fCBpdC0+c2Vjb25kLmdldEFycmF5KCkuc2l6ZSgpID4g
MikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBzdGQ6OnNldDxQcm90b2NvbFZl
cnNpb24+IHByb3RvY29sVmVyc2lvbnM7CisgICAgZm9yIChjb25zdCBhdXRvJiB2ZXJzaW9uIDog
aXQtPnNlY29uZC5nZXRBcnJheSgpKSB7CisgICAgICAgIGlmICghdmVyc2lvbi5pc1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBhdXRvIHByb3Rv
Y29sID0gY29udmVydFN0cmluZ1RvUHJvdG9jb2xWZXJzaW9uKHZlcnNpb24uZ2V0U3RyaW5nKCkp
OworICAgICAgICBpZiAocHJvdG9jb2wgPT0gUHJvdG9jb2xWZXJzaW9uOjprVW5rbm93bikgewor
ICAgICAgICAgICAgTE9HX0VSUk9SKCJVbmV4cGVjdGVkIHByb3RvY29sIHZlcnNpb24gcmVjZWl2
ZWQuIik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgh
cHJvdG9jb2xWZXJzaW9ucy5pbnNlcnQocHJvdG9jb2wpLnNlY29uZCkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorICAgIGlmIChwcm90b2NvbFZlcnNpb25zLmVtcHR5
KCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBpdCA9IHJlc3BvbnNlTWFw
LmZpbmQoQ0JPUigzKSk7CisgICAgaWYgKGl0ID09IHJlc3BvbnNlTWFwLmVuZCgpIHx8ICFpdC0+
c2Vjb25kLmlzQnl0ZVN0cmluZygpIHx8IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpLnNpemUo
KSAhPSBrQWFndWlkTGVuZ3RoKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSByZXNwb25zZShXVEZNb3ZlKHByb3RvY29sVmVy
c2lvbnMpLCBWZWN0b3I8dWludDhfdD4oaXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCkpKTsKKwor
ICAgIGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDIpKTsKKyAgICBpZiAoaXQgIT0gcmVzcG9u
c2VNYXAuZW5kKCkpIHsKKyAgICAgICAgaWYgKCFpdC0+c2Vjb25kLmlzQXJyYXkoKSkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gZXh0
ZW5zaW9uczsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBleHRlbnNpb24gOiBpdC0+c2Vjb25k
LmdldEFycmF5KCkpIHsKKyAgICAgICAgICAgIGlmICghZXh0ZW5zaW9uLmlzU3RyaW5nKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICAgICAgZXh0ZW5z
aW9ucy5hcHBlbmQoZXh0ZW5zaW9uLmdldFN0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBy
ZXNwb25zZS5zZXRFeHRlbnNpb25zKFdURk1vdmUoZXh0ZW5zaW9ucykpOworICAgIH0KKworICAg
IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zIG9wdGlvbnM7CisgICAgaXQgPSByZXNwb25z
ZU1hcC5maW5kKENCT1IoNCkpOworICAgIGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSkgewor
ICAgICAgICBpZiAoIWl0LT5zZWNvbmQuaXNNYXAoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgICAgIGNvbnN0IGF1dG8mIG9wdGlvbk1hcCA9IGl0LT5zZWNvbmQuZ2V0
TWFwKCk7CisgICAgICAgIGF1dG8gb3B0aW9uTWFwSXQgPSBvcHRpb25NYXAuZmluZChDQk9SKGtQ
bGF0Zm9ybURldmljZU1hcEtleSkpOworICAgICAgICBpZiAob3B0aW9uTWFwSXQgIT0gb3B0aW9u
TWFwLmVuZCgpKSB7CisgICAgICAgICAgICBpZiAoIW9wdGlvbk1hcEl0LT5zZWNvbmQuaXNCb29s
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICAgICAg
b3B0aW9ucy5zZXRJc1BsYXRmb3JtRGV2aWNlKG9wdGlvbk1hcEl0LT5zZWNvbmQuZ2V0Qm9vbCgp
KTsKKyAgICAgICAgfQorCisgICAgICAgIG9wdGlvbk1hcEl0ID0gb3B0aW9uTWFwLmZpbmQoQ0JP
UihrUmVzaWRlbnRLZXlNYXBLZXkpKTsKKyAgICAgICAgaWYgKG9wdGlvbk1hcEl0ICE9IG9wdGlv
bk1hcC5lbmQoKSkgeworICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJdC0+c2Vjb25kLmlzQm9v
bCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAg
IG9wdGlvbnMuc2V0U3VwcG9ydHNSZXNpZGVudEtleShvcHRpb25NYXBJdC0+c2Vjb25kLmdldEJv
b2woKSk7CisgICAgICAgIH0KKworICAgICAgICBvcHRpb25NYXBJdCA9IG9wdGlvbk1hcC5maW5k
KENCT1Ioa1VzZXJQcmVzZW5jZU1hcEtleSkpOworICAgICAgICBpZiAob3B0aW9uTWFwSXQgIT0g
b3B0aW9uTWFwLmVuZCgpKSB7CisgICAgICAgICAgICBpZiAoIW9wdGlvbk1hcEl0LT5zZWNvbmQu
aXNCb29sKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICAgICAgb3B0aW9ucy5zZXRVc2VyUHJlc2VuY2VSZXF1aXJlZChvcHRpb25NYXBJdC0+c2Vjb25k
LmdldEJvb2woKSk7CisgICAgICAgIH0KKworICAgICAgICBvcHRpb25NYXBJdCA9IG9wdGlvbk1h
cC5maW5kKENCT1Ioa1VzZXJWZXJpZmljYXRpb25NYXBLZXkpKTsKKyAgICAgICAgaWYgKG9wdGlv
bk1hcEl0ICE9IG9wdGlvbk1hcC5lbmQoKSkgeworICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJ
dC0+c2Vjb25kLmlzQm9vbCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgICAgIGlmIChvcHRpb25NYXBJdC0+c2Vjb25kLmdldEJvb2woKSkKKyAgICAg
ICAgICAgICAgICBvcHRpb25zLnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtT
dXBwb3J0ZWRBbmRDb25maWd1cmVkKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBvcHRpb25zLnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRC
dXROb3RDb25maWd1cmVkKTsKKyAgICAgICAgfQorCisgICAgICAgIG9wdGlvbk1hcEl0ID0gb3B0
aW9uTWFwLmZpbmQoQ0JPUihrQ2xpZW50UGluTWFwS2V5KSk7CisgICAgICAgIGlmIChvcHRpb25N
YXBJdCAhPSBvcHRpb25NYXAuZW5kKCkpIHsKKyAgICAgICAgICAgIGlmICghb3B0aW9uTWFwSXQt
PnNlY29uZC5pc0Jvb2woKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgICAgICBpZiAob3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29sKCkpCisgICAgICAg
ICAgICAgICAgb3B0aW9ucy5zZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNl
dCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3B0aW9ucy5zZXRDbGllbnRQ
aW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2
YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dFBpbk5vdFNldCk7CisgICAgICAgIH0KKyAgICAgICAg
cmVzcG9uc2Uuc2V0T3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKTsKKyAgICB9CisKKyAgICBpdCA9
IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUig1KSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFwLmVu
ZCgpKSB7CisgICAgICAgIGlmICghaXQtPnNlY29uZC5pc1Vuc2lnbmVkKCkpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJlc3BvbnNlLnNldE1heE1zZ1NpemUo
aXQtPnNlY29uZC5nZXRVbnNpZ25lZCgpKTsKKyAgICB9CisKKyAgICBpdCA9IHJlc3BvbnNlTWFw
LmZpbmQoQ0JPUig2KSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFwLmVuZCgpKSB7CisgICAg
ICAgIGlmICghaXQtPnNlY29uZC5pc0FycmF5KCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBzdXBwb3J0ZWRQaW5Qcm90b2NvbHM7
CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcHJvdG9jb2wgOiBpdC0+c2Vjb25kLmdldEFycmF5
KCkpIHsKKyAgICAgICAgICAgIGlmICghcHJvdG9jb2wuaXNVbnNpZ25lZCgpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIHN1cHBvcnRlZFBpblBy
b3RvY29scy5hcHBlbmQocHJvdG9jb2wuZ2V0VW5zaWduZWQoKSk7CisgICAgICAgIH0KKyAgICAg
ICAgcmVzcG9uc2Uuc2V0UGluUHJvdG9jb2xzKFdURk1vdmUoc3VwcG9ydGVkUGluUHJvdG9jb2xz
KSk7CisgICAgfQorCisgICAgcmV0dXJuIFdURk1vdmUocmVzcG9uc2UpOworfQorCit9IC8vIG5h
bWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVy
dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9u
c2VDb252ZXJ0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTk2MzM1NDVjZGUyNWMwZGJkYzRjNjNkYTVmMWIx
NjZlMjM3NDkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmgKQEAgLTAsMCArMSw2NiBAQAorLy8g
Q29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlz
dHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisv
LyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9yR2V0SW5m
b1Jlc3BvbnNlLmgiCisjaW5jbHVkZSAiRmlkb0NvbnN0YW50cy5oIgorI2luY2x1ZGUgIlB1Ymxp
Y0tleUNyZWRlbnRpYWxEYXRhLmgiCisKKy8vIENvbnZlcnRzIHJlc3BvbnNlIGZyb20gYXV0aGVu
dGljYXRvcnMgdG8gQ1RBUFJlc3BvbnNlIG9iamVjdHMuIElmIHRoZQorLy8gcmVzcG9uc2Ugb2Yg
dGhlIGF1dGhlbnRpY2F0b3IgZG9lcyBub3QgY29uZm9ybSB0byBmb3JtYXQgc3BlY2lmaWVkIGJ5
IHRoZQorLy8gQ1RBUCBwcm90b2NvbCwgbnVsbCBvcHRpb25hbCBpcyByZXR1cm5lZC4KK25hbWVz
cGFjZSBmaWRvIHsKKworLy8gUGFyc2VzIHJlc3BvbnNlIGNvZGUgZnJvbSByZXNwb25zZSByZWNl
aXZlZCBmcm9tIHRoZSBhdXRoZW50aWNhdG9yLiBJZgorLy8gdW5rbm93biByZXNwb25zZSBjb2Rl
IHZhbHVlIGlzIHJlY2VpdmVkLCB0aGVuIENUQVAyX0VSUl9PVEhFUiBpcyByZXR1cm5lZC4KK1dF
QkNPUkVfRVhQT1JUIEN0YXBEZXZpY2VSZXNwb25zZUNvZGUgZ2V0UmVzcG9uc2VDb2RlKGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYpOworCisvLyBEZS1zZXJpYWxpemVzIENCT1IgZW5jb2RlZCByZXNw
b25zZSwgY2hlY2tzIGZvciB2YWxpZCBDQk9SIG1hcCBmb3JtYXR0aW5nLAorLy8gYW5kIGNvbnZl
cnRzIHJlc3BvbnNlIHRvIEF1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbFJlc3BvbnNlIG9iamVj
dCB3aXRoCisvLyBDQk9SIG1hcCBrZXlzIHRoYXQgY29uZm9ybSB0byBmb3JtYXQgb2YgYXR0ZXN0
YXRpb24gb2JqZWN0IGRlZmluZWQgYnkgdGhlCisvLyBXZWJBdXRoTiBzcGVjIDogaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL3dlYmF1dGhuLyNmaWctYXR0U3RydWN0cworV0VCQ09SRV9FWFBPUlQgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZENUQVBNYWtl
Q3JlZGVudGlhbFJlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYpOworCisvLyBEZS1zZXJp
YWxpemVzIENCT1IgZW5jb2RlZCByZXNwb25zZSB0byBBdXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9u
IC8KKy8vIEF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uIHJlcXVlc3QgdG8gQXV0aGVudGlj
YXRvckdldEFzc2VydGlvblJlc3BvbnNlCisvLyBvYmplY3QuCisvLyBGSVhNRSgxOTA3ODMpOiBQ
cm9iYWJseSBuZWVkIHRvIHJlbWFrZSBBdXRoZW50aWNhdG9yUmVzcG9uc2UgdG8gaW5jbHVkZSBt
b3JlIGZpZWxkcyBsaWtlIG51bWJlck9mQ3JlZGVudGlhbHMsCisvLyBhbmQgdXNlIGl0IGhlcmUg
aW5zdGVhZCBvZiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YS4KK1dFQkNPUkVfRVhQT1JUIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlYWRDVEFQR2V0QXNz
ZXJ0aW9uUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7CisKKy8vIERlLXNlcmlhbGl6
ZXMgQ0JPUiBlbmNvZGVkIHJlc3BvbnNlIHRvIEF1dGhlbnRpY2F0b3JHZXRJbmZvIHJlcXVlc3Qg
dG8KKy8vIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2Ugb2JqZWN0LgorV0VCQ09SRV9FWFBP
UlQgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlPiByZWFkQ1RBUEdl
dEluZm9SZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4mKTsKKworfSAvLyBuYW1lc3BhY2Ug
ZmlkbworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcAppbmRleCAzODgx
ZmQyZjI2NGU5ZjBlZTRkYTAzOTI0MmU1YWQxMGQ3MDRhNGYzLi44MTcyNWNlYWYyY2VkMjkxOTY3
ODQzYzk3OTE3OGFmNmVjNDRlNzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwCkBAIC0zMyw2ICszMyw2NiBAQAog
I2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKIG5hbWVzcGFjZSBmaWRvIHsKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCitib29sIGlzQ3RhcERldmljZVJlc3BvbnNlQ29kZShDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlIGNvZGUpCit7CisgICAgc3dpdGNoIChjb2RlKSB7CisgICAgY2FzZSBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprU3VjY2VzczoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMUVyckludmFsaWRDb21tYW5kOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNl
Q29kZTo6a0N0YXAxRXJySW52YWxpZFBhcmFtZXRlcjoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNw
b25zZUNvZGU6OmtDdGFwMUVyckludmFsaWRMZW5ndGg6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDFFcnJJbnZhbGlkU2VxOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a0N0YXAxRXJyVGltZW91dDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMUVyckNoYW5uZWxCdXN5OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29k
ZTo6a0N0YXAxRXJyTG9ja1JlcXVpcmVkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29k
ZTo6a0N0YXAxRXJySW52YWxpZENoYW5uZWw6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlOjprQ3RhcDJFcnJDQk9SUGFyc2luZzoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMkVyclVuZXhwZWN0ZWRUeXBlOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNl
Q29kZTo6a0N0YXAyRXJySW52YWxpZENCT1I6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlOjprQ3RhcDJFcnJJbnZhbGlkQ0JPUlR5cGU6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9u
c2VDb2RlOjprQ3RhcDJFcnJNaXNzaW5nUGFyYW1ldGVyOgorICAgIGNhc2UgQ3RhcERldmljZVJl
c3BvbnNlQ29kZTo6a0N0YXAyRXJyTGltaXRFeGNlZWRlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMkVyclVuc3VwcG9ydGVkRXh0ZW5zaW9uOgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVG9vTWFueUVsZW1lbnRzOgorICAgIGNhc2Ug
Q3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyRXh0ZW5zaW9uTm90U3VwcG9ydGVkOgor
ICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyQ3JlZGVudGlhbEV4Y2x1
ZGVkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUHJvY2Vzc3Np
bmc6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJJbnZhbGlkQ3Jl
ZGVudGlhbDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclVzZXJB
Y3Rpb25QZW5kaW5nOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJy
T3BlcmF0aW9uUGVuZGluZzoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFw
MkVyck5vT3BlcmF0aW9uczoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFw
MkVyclVuc3VwcG9ydGVkQWxnb3JpdGhtczoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMkVyck9wZXJhdGlvbkRlbmllZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25z
ZUNvZGU6OmtDdGFwMkVycktleVN0b3JlRnVsbDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25z
ZUNvZGU6OmtDdGFwMkVyck5vdEJ1c3k6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2Rl
OjprQ3RhcDJFcnJOb09wZXJhdGlvblBlbmRpbmc6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9u
c2VDb2RlOjprQ3RhcDJFcnJVbnN1cHBvcnRlZE9wdGlvbjoKKyAgICBjYXNlIEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRPcHRpb246CisgICAgY2FzZSBDdGFwRGV2aWNl
UmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJLZWVwQWxpdmVDYW5jZWw6CisgICAgY2FzZSBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJOb0NyZWRlbnRpYWxzOgorICAgIGNhc2UgQ3RhcERl
dmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVXNlckFjdGlvblRpbWVvdXQ6CisgICAgY2FzZSBD
dGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJOb3RBbGxvd2VkOgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluSW52YWxpZDoKKyAgICBjYXNlIEN0YXBE
ZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbkJsb2NrZWQ6CisgICAgY2FzZSBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5BdXRoSW52YWxpZDoKKyAgICBjYXNlIEN0YXBE
ZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbkF1dGhCbG9ja2VkOgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluTm90U2V0OgorICAgIGNhc2UgQ3RhcERl
dmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluUmVxdWlyZWQ6CisgICAgY2FzZSBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5Qb2xpY3lWaW9sYXRpb246CisgICAgY2FzZSBD
dGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5Ub2tlbkV4cGlyZWQ6CisgICAgY2Fz
ZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJSZXF1ZXN0VG9vTGFyZ2U6CisgICAg
Y2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJPdGhlcjoKKyAgICBjYXNlIEN0
YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclNwZWNMYXN0OgorICAgIGNhc2UgQ3RhcERl
dmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyRXh0ZW5zaW9uRmlyc3Q6CisgICAgY2FzZSBDdGFw
RGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJFeHRlbnNpb25MYXN0OgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVmVuZG9yRmlyc3Q6CisgICAgY2FzZSBDdGFw
RGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJWZW5kb3JMYXN0OgorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQogCiBi
b29sIGlzRmlkb0hpZERldmljZUNvbW1hbmQoRmlkb0hpZERldmljZUNvbW1hbmQgY21kKQogewpA
QCAtNTIsNiArMTEyLDE2IEBAIGJvb2wgaXNGaWRvSGlkRGV2aWNlQ29tbWFuZChGaWRvSGlkRGV2
aWNlQ29tbWFuZCBjbWQpCiAgICAgfQogfQogCitjb25zdCBjaGFyKiBwdWJsaWNLZXlDcmVkZW50
aWFsVHlwZVRvU3RyaW5nKFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlIHR5cGUpCit7CisgICAgc3dp
dGNoICh0eXBlKSB7CisgICAgY2FzZSBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5
OgorICAgICAgICByZXR1cm4ga1B1YmxpY0tleTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIGtQdWJsaWNLZXk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIGZpZG8K
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaAppbmRleCBiODY5MGYwM2RkNDg0
ZGZkMzY3NTY3NTBlMDU2YTI3NWM2ZGQzZTU2Li41Y2Q3YWU4YjM5MTM1MTQwMTQ3ZmMwNjk3OTM2
MzgwZjQ5MDBiYTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vRmlkb0NvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vZmlkby9GaWRvQ29uc3RhbnRzLmgKQEAgLTMxLDggKzMxLDkzIEBACiAKICNpZiBFTkFCTEUo
V0VCX0FVVEhOKQogCisjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCIKKwogbmFt
ZXNwYWNlIGZpZG8gewogCitlbnVtIGNsYXNzIFByb3RvY29sVmVyc2lvbiB7CisgICAga0N0YXAs
CisgICAga1UyZiwKKyAgICBrVW5rbm93biwKK307CisKKy8vIExlbmd0aCBvZiB0aGUgU0hBLTI1
NiBoYXNoIG9mIHRoZSBSUCBJRCBhc3Nzb2NpYXRlZCB3aXRoIHRoZSBjcmVkZW50aWFsOgorLy8g
aHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXV0aGVudGljYXRvci1kYXRhCitj
b25zdGV4cHIgc2l6ZV90IGtScElkSGFzaExlbmd0aCA9IDMyOworCisvLyBMZW5ndGggb2YgdGhl
IGZsYWdzOgorLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXV0aGVudGlj
YXRvci1kYXRhCitjb25zdGV4cHIgc2l6ZV90IGtGbGFnc0xlbmd0aCA9IDE7CisKKy8vIExlbmd0
aCBvZiB0aGUgc2lnbmF0dXJlIGNvdW50ZXIsIDMyLWJpdCB1bnNpZ25lZCBiaWctZW5kaWFuIGlu
dGVnZXI6CisvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI3NlYy1hdXRoZW50aWNh
dG9yLWRhdGEKK2NvbnN0ZXhwciBzaXplX3Qga1NpZ25Db3VudGVyTGVuZ3RoID0gNDsKKworLy8g
TGVuZ3RoIG9mIHRoZSBBQUdVSUQgb2YgdGhlIGF1dGhlbnRpY2F0b3I6CisvLyBodHRwczovL3d3
dy53My5vcmcvVFIvd2ViYXV0aG4vI3NlYy1hdHRlc3RlZC1jcmVkZW50aWFsLWRhdGEKK2NvbnN0
ZXhwciBzaXplX3Qga0FhZ3VpZExlbmd0aCA9IDE2OworCisvLyBMZW5ndGggb2YgdGhlIGJ5dGUg
bGVuZ3RoIEwgb2YgQ3JlZGVudGlhbCBJRCwgMTYtYml0IHVuc2lnbmVkIGJpZy1lbmRpYW4KKy8v
IGludGVnZXI6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jc2VjLWF0dGVzdGVkLWNy
ZWRlbnRpYWwtZGF0YQorY29uc3RleHByIHNpemVfdCBrQ3JlZGVudGlhbElkTGVuZ3RoTGVuZ3Ro
ID0gMjsKKworLy8gQ1RBUCBwcm90b2NvbCBkZXZpY2UgcmVzcG9uc2UgY29kZSwgYXMgc3BlY2lm
aWVkIGluCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIw
MTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3
MDkyNy5odG1sI2Vycm9yLXJlc3BvbnNlcworZW51bSBjbGFzcyBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlIDogdWludDhfdCB7CisgICAga1N1Y2Nlc3MgPSAweDAwLAorICAgIGtDdGFwMUVyckludmFs
aWRDb21tYW5kID0gMHgwMSwKKyAgICBrQ3RhcDFFcnJJbnZhbGlkUGFyYW1ldGVyID0gMHgwMiwK
KyAgICBrQ3RhcDFFcnJJbnZhbGlkTGVuZ3RoID0gMHgwMywKKyAgICBrQ3RhcDFFcnJJbnZhbGlk
U2VxID0gMHgwNCwKKyAgICBrQ3RhcDFFcnJUaW1lb3V0ID0gMHgwNSwKKyAgICBrQ3RhcDFFcnJD
aGFubmVsQnVzeSA9IDB4MDYsCisgICAga0N0YXAxRXJyTG9ja1JlcXVpcmVkID0gMHgwQSwKKyAg
ICBrQ3RhcDFFcnJJbnZhbGlkQ2hhbm5lbCA9IDB4MEIsCisgICAga0N0YXAyRXJyQ0JPUlBhcnNp
bmcgPSAweDEwLAorICAgIGtDdGFwMkVyclVuZXhwZWN0ZWRUeXBlID0gMHgxMSwKKyAgICBrQ3Rh
cDJFcnJJbnZhbGlkQ0JPUiA9IDB4MTIsCisgICAga0N0YXAyRXJySW52YWxpZENCT1JUeXBlID0g
MHgxMywKKyAgICBrQ3RhcDJFcnJNaXNzaW5nUGFyYW1ldGVyID0gMHgxNCwKKyAgICBrQ3RhcDJF
cnJMaW1pdEV4Y2VlZGVkID0gMHgxNSwKKyAgICBrQ3RhcDJFcnJVbnN1cHBvcnRlZEV4dGVuc2lv
biA9IDB4MTYsCisgICAga0N0YXAyRXJyVG9vTWFueUVsZW1lbnRzID0gMHgxNywKKyAgICBrQ3Rh
cDJFcnJFeHRlbnNpb25Ob3RTdXBwb3J0ZWQgPSAweDE4LAorICAgIGtDdGFwMkVyckNyZWRlbnRp
YWxFeGNsdWRlZCA9IDB4MTksCisgICAga0N0YXAyRXJyUHJvY2Vzc3NpbmcgPSAweDIxLAorICAg
IGtDdGFwMkVyckludmFsaWRDcmVkZW50aWFsID0gMHgyMiwKKyAgICBrQ3RhcDJFcnJVc2VyQWN0
aW9uUGVuZGluZyA9IDB4MjMsCisgICAga0N0YXAyRXJyT3BlcmF0aW9uUGVuZGluZyA9IDB4MjQs
CisgICAga0N0YXAyRXJyTm9PcGVyYXRpb25zID0gMHgyNSwKKyAgICBrQ3RhcDJFcnJVbnN1cHBv
cnRlZEFsZ29yaXRobXMgPSAweDI2LAorICAgIGtDdGFwMkVyck9wZXJhdGlvbkRlbmllZCA9IDB4
MjcsCisgICAga0N0YXAyRXJyS2V5U3RvcmVGdWxsID0gMHgyOCwKKyAgICBrQ3RhcDJFcnJOb3RC
dXN5ID0gMHgyOSwKKyAgICBrQ3RhcDJFcnJOb09wZXJhdGlvblBlbmRpbmcgPSAweDJBLAorICAg
IGtDdGFwMkVyclVuc3VwcG9ydGVkT3B0aW9uID0gMHgyQiwKKyAgICBrQ3RhcDJFcnJJbnZhbGlk
T3B0aW9uID0gMHgyQywKKyAgICBrQ3RhcDJFcnJLZWVwQWxpdmVDYW5jZWwgPSAweDJELAorICAg
IGtDdGFwMkVyck5vQ3JlZGVudGlhbHMgPSAweDJFLAorICAgIGtDdGFwMkVyclVzZXJBY3Rpb25U
aW1lb3V0ID0gMHgyRiwKKyAgICBrQ3RhcDJFcnJOb3RBbGxvd2VkID0gMHgzMCwKKyAgICBrQ3Rh
cDJFcnJQaW5JbnZhbGlkID0gMHgzMSwKKyAgICBrQ3RhcDJFcnJQaW5CbG9ja2VkID0gMHgzMiwK
KyAgICBrQ3RhcDJFcnJQaW5BdXRoSW52YWxpZCA9IDB4MzMsCisgICAga0N0YXAyRXJyUGluQXV0
aEJsb2NrZWQgPSAweDM0LAorICAgIGtDdGFwMkVyclBpbk5vdFNldCA9IDB4MzUsCisgICAga0N0
YXAyRXJyUGluUmVxdWlyZWQgPSAweDM2LAorICAgIGtDdGFwMkVyclBpblBvbGljeVZpb2xhdGlv
biA9IDB4MzcsCisgICAga0N0YXAyRXJyUGluVG9rZW5FeHBpcmVkID0gMHgzOCwKKyAgICBrQ3Rh
cDJFcnJSZXF1ZXN0VG9vTGFyZ2UgPSAweDM5LAorICAgIGtDdGFwMkVyck90aGVyID0gMHg3RiwK
KyAgICBrQ3RhcDJFcnJTcGVjTGFzdCA9IDB4REYsCisgICAga0N0YXAyRXJyRXh0ZW5zaW9uRmly
c3QgPSAweEUwLAorICAgIGtDdGFwMkVyckV4dGVuc2lvbkxhc3QgPSAweEVGLAorICAgIGtDdGFw
MkVyclZlbmRvckZpcnN0ID0gMHhGMCwKKyAgICBrQ3RhcDJFcnJWZW5kb3JMYXN0ID0gMHhGRgor
fTsKKworYm9vbCBpc0N0YXBEZXZpY2VSZXNwb25zZUNvZGUoQ3RhcERldmljZVJlc3BvbnNlQ29k
ZSk7CisKIC8vIENvbW1hbmRzIHN1cHBvcnRlZCBieSBDVEFQSElEIGRldmljZSBhcyBzcGVjaWZp
ZWQgaW4KIC8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAx
NzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcw
OTI3Lmh0bWwjY3RhcGhpZC1jb21tYW5kcwogZW51bSBjbGFzcyBGaWRvSGlkRGV2aWNlQ29tbWFu
ZCA6IHVpbnQ4X3QgewpAQCAtNDcsNyArMTMyLDI0IEBAIGVudW0gY2xhc3MgRmlkb0hpZERldmlj
ZUNvbW1hbmQgOiB1aW50OF90IHsKICAgICBrTG9jayA9IDB4MDQsCiB9OwogCi1ib29sIGlzRmlk
b0hpZERldmljZUNvbW1hbmQoRmlkb0hpZERldmljZUNvbW1hbmQgY21kKTsKK2Jvb2wgaXNGaWRv
SGlkRGV2aWNlQ29tbWFuZChGaWRvSGlkRGV2aWNlQ29tbWFuZCk7CisKKy8vIFN0cmluZyBrZXkg
dmFsdWVzIGZvciBDVEFQIHJlcXVlc3Qgb3B0aW9uYWwgcGFyYW1ldGVycyBhbmQKKy8vIEF1dGhl
bnRpY2F0b3JHZXRJbmZvIHJlc3BvbnNlLgorY29uc3QgY2hhciBrUmVzaWRlbnRLZXlNYXBLZXlb
XSA9ICJyayI7Citjb25zdCBjaGFyIGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5W10gPSAidXYiOwor
Y29uc3QgY2hhciBrVXNlclByZXNlbmNlTWFwS2V5W10gPSAidXAiOworY29uc3QgY2hhciBrQ2xp
ZW50UGluTWFwS2V5W10gPSAiY2xpZW50UGluIjsKK2NvbnN0IGNoYXIga1BsYXRmb3JtRGV2aWNl
TWFwS2V5W10gPSAicGxhdCI7Citjb25zdCBjaGFyIGtFbnRpdHlJZE1hcEtleVtdID0gImlkIjsK
K2NvbnN0IGNoYXIga0VudGl0eU5hbWVNYXBLZXlbXSA9ICJuYW1lIjsKK2NvbnN0IGNoYXIga0Rp
c3BsYXlOYW1lTWFwS2V5W10gPSAiZGlzcGxheU5hbWUiOworY29uc3QgY2hhciBrSWNvblVybE1h
cEtleVtdID0gImljb24iOworY29uc3QgY2hhciBrQ3JlZGVudGlhbFR5cGVNYXBLZXlbXSA9ICJ0
eXBlIjsKK2NvbnN0IGNoYXIga0NyZWRlbnRpYWxBbGdvcml0aG1NYXBLZXlbXSA9ICJhbGciOwor
Ly8gS2V5cyBmb3Igc3RvcmluZyBjcmVkZW50aWFsIGRlc2NyaXB0b3IgaW5mb3JtYXRpb24gaW4g
Q0JPUiBtYXAuCitjb25zdCBjaGFyIGtDcmVkZW50aWFsSWRLZXlbXSA9ICJpZCI7Citjb25zdCBj
aGFyIGtDcmVkZW50aWFsVHlwZUtleVtdID0gInR5cGUiOwogCiAvLyBISUQgdHJhbnNwb3J0IHNw
ZWNpZmljIGNvbnN0YW50cy4KIGNvbnN0IHNpemVfdCBrSGlkUGFja2V0U2l6ZSA9IDY0OwpAQCAt
NjMsNiArMTY1LDM0IEBAIGNvbnN0IHVpbnQ4X3Qga0hpZE1heExvY2tTZWNvbmRzID0gMTA7CiAv
LyBNZXNzYWdlcyBhcmUgbGltaXRlZCB0byBhbiBpbml0aWF0aW9uIHBhY2tldCBhbmQgMTI4IGNv
bnRpbnVhdGlvbiBwYWNrZXRzLgogY29uc3Qgc2l6ZV90IGtIaWRNYXhNZXNzYWdlU2l6ZSA9IDc2
MDk7CiAKKy8vIEF1dGhlbnRpY2F0b3IgQVBJIGNvbW1hbmRzIHN1cHBvcnRlZCBieSBDVEFQIGRl
dmljZXMsIGFzIHNwZWNpZmllZCBpbgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNz
L2ZpZG8tdjIuMC1yZC0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3Rv
Y29sLXYyLjAtcmQtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNhdG9yLWFwaQorZW51bSBjbGFzcyBD
dGFwUmVxdWVzdENvbW1hbmQgOiB1aW50OF90IHsKKyAgICBrQXV0aGVudGljYXRvck1ha2VDcmVk
ZW50aWFsID0gMHgwMSwKKyAgICBrQXV0aGVudGljYXRvckdldEFzc2VydGlvbiA9IDB4MDIsCisg
ICAga0F1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uID0gMHgwOCwKKyAgICBrQXV0aGVudGlj
YXRvckdldEluZm8gPSAweDA0LAorICAgIGtBdXRoZW50aWNhdG9yQ2xpZW50UGluID0gMHgwNiwK
KyAgICBrQXV0aGVudGljYXRvclJlc2V0ID0gMHgwNywKK307CisKKy8vIFN0cmluZyBrZXkgdmFs
dWVzIGZvciBhdHRlc3RhdGlvbiBvYmplY3QgYXMgYSByZXNwb25zZSB0byBNYWtlQ3JlZGVudGlh
bAorLy8gcmVxdWVzdC4KK2NvbnN0IGNoYXIga0Zvcm1hdEtleVtdID0gImZtdCI7Citjb25zdCBj
aGFyIGtBdHRlc3RhdGlvblN0YXRlbWVudEtleVtdID0gImF0dFN0bXQiOworY29uc3QgY2hhciBr
QXV0aERhdGFLZXlbXSA9ICJhdXRoRGF0YSI7Citjb25zdCBjaGFyIGtOb25lQXR0ZXN0YXRpb25W
YWx1ZVtdID0gIm5vbmUiOworCisvLyBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgcHVibGljIGtl
eSBjcmVkZW50aWFsIGVudW0uCisvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViYXV0aG4vI2Ny
ZWRlbnRpYWxUeXBlCitjb25zdCBjaGFyIGtQdWJsaWNLZXlbXSA9ICJwdWJsaWMta2V5IjsKKwor
Y29uc3QgY2hhciogcHVibGljS2V5Q3JlZGVudGlhbFR5cGVUb1N0cmluZyhXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsVHlwZSk7CisKKy8vIEZJWE1FOiBBZGQgdXJsIHRvIHRoZSBvZmZpY2lh
bCBzcGVjIG9uY2UgaXQncyBzdGFuZGFyZGl6ZWQuCitjb25zdCBjaGFyIGtDdGFwMlZlcnNpb25b
XSA9ICJGSURPXzJfMCI7Citjb25zdCBjaGFyIGtVMmZWZXJzaW9uW10gPSAiVTJGX1YyIjsKKwog
fSAvLyBuYW1lc3BhY2UgZmlkbwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKaW5kZXggYjc4MTFhMzM5ZWI2NWRiMTVjYWVlYTE3Zjc5YmUyNDg3OTU5ZWMzZi4uYjA2
ZDI0NzFiYmJkY2VjODUyMTc3MzVmOGRhZmRlMzViZTQwNThkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAg
LTI1OCw2ICsyNTgsMTAgQEAgTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmNw
cAogTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JSZWFkZXIuY3BwCiBNb2R1bGVzL3dlYmF1dGhu
L2Nib3IvQ0JPUlZhbHVlLmNwcAogTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JXcml0ZXIuY3Bw
CitNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5jcHAK
K01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAK
K01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcAorTW9kdWxl
cy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcAogTW9kdWxlcy93ZWJh
dXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwCiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0hp
ZE1lc3NhZ2UuY3BwCiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0hpZFBhY2tldC5jcHAKQEAg
LTMxNTQsNiArMzE1OCw3IEBAIEpTVHJlZVdhbGtlci5jcHAKIEpTVUlFdmVudC5jcHAKIEpTVUlF
dmVudEluaXQuY3BwCiBKU1VSTFNlYXJjaFBhcmFtcy5jcHAKK0pTVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50LmNwcAogSlNWUkRpc3BsYXkuY3BwCiBKU1ZSRGlzcGxheUNhcGFiaWxpdGllcy5j
cHAKIEpTVlJEaXNwbGF5RXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTUxNjc1MWI4ZmRkMmQyOTliYzc3YmM2MTI1
N2UxMTRjYzY2MTFmZS4uMjdhMDYxZGJiYzA1NjlmNzQzNWNiZjEzNmZmNDViZTA2ZTE0NzRkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTc1Miw2ICsxNzUyLDEyIEBACiAJCTU3MjFBOTg3MUVDRTUzQjEwMDgxMjk1QSAvKiBD
cnlwdG9EaWdlc3RBbGdvcml0aG0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3MjFBOTg2MUVDRTUzQjEwMDgxMjk1QSAvKiBDcnlwdG9EaWdlc3RBbGdv
cml0aG0uaCAqLzsgfTsKIAkJNTcyMUE5OEIxRUNFNTcwNDAwODEyOTVBIC8qIENyeXB0b0FsZ29y
aXRobVJzYVBzc1BhcmFtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTcyMUE5ODgxRUNFNTcwNDAwODEyOTVBIC8qIENyeXB0b0FsZ29yaXRobVJzYVBz
c1BhcmFtcy5oICovOyB9OwogCQk1NzJBN0YyMTFDNkU1NzE5MDA5QzYxNDkgLyogU2ltdWxhdGVk
Q2xpY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
MkE3RjIwMUM2RTU3MTkwMDlDNjE0OSAvKiBTaW11bGF0ZWRDbGljay5oICovOyB9OworCQk1NzJC
NDAxRjIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwMUQyMTc1N0E2NDAw
MEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NzJCNDAyQzIxNzY5MDIwMDAwQUQ0M0UgLyog
SlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDJBMjE3NjkwMUYwMDBBRDQzRSAvKiBKU1VzZXJW
ZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICovOyB9OworCQk1NzJCNDAzNjIxNzZBOTIyMDAwQUQ0
M0UgLyogVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJCNDAyMzIxNzY4RDg1MDAwQUQ0M0UgLyogVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTcyQjQwM0EyMTc3MjU4MTAwMEFENDNFIC8qIERldmljZVJl
c3BvbnNlQ29udmVydGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzJCNDAzNzIxNzcyNTZDMDAwQUQ0M0UgLyogRGV2aWNlUmVzcG9uc2VDb252ZXJ0
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1
NzJCNDA0MDIxNzgwMTcxMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDNF
MjE3ODAxNzAwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU3MkI0MDQyMjE3
ODExNEEwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJCNDAzQzIxNzdGQjYxMDAw
QUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU3MzAzQkI5MjAwNkM2RUUwMDM1NTk2
NSAvKiBDQk9SVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3MzAzQkI0MjAwNkM2RUQwMDM1NTk2NSAvKiBDQk9SVmFsdWUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NzMwM0JCQTIwMDZDNkVF
MDAzNTU5NjUgLyogQ0JPUldyaXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTczMDNCQjUyMDA2QzZFRDAwMzU1OTY1IC8qIENCT1JXcml0ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NzMwM0JC
QjIwMDZDNkVFMDAzNTU5NjUgLyogQ0JPUkJpbmFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQjYyMDA2QzZFRDAwMzU1OTY1IC8qIENCT1JC
aW5hcnkuaCAqLzsgfTsKQEAgLTg1NjMsNiArODU2OSwxOCBAQAogCQk1NzIxQTk4QTFFQ0U1NzA0
MDA4MTI5NUEgLyogUnNhUHNzUGFyYW1zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSc2FQc3NQYXJhbXMuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJBN0YyMDFDNkU1NzE5MDA5QzYxNDkgLyogU2lt
dWxhdGVkQ2xpY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2ltdWxhdGVk
Q2xpY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyQTdGMjIxQzZFNUE2NjAw
OUM2MTQ5IC8qIFNpbXVsYXRlZENsaWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNpbXVsYXRlZENsaWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTcyQjQwMUQyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1NzJCNDAxRTIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENv
bnZlcnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMjMyMTc2OEQ4NTAwMEFENDNF
IC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyVmVy
aWZpY2F0aW9uUmVxdWlyZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcy
QjQwMjUyMTc2OEQ4NTAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTcyQjQwMkEyMTc2OTAxRjAwMEFENDNFIC8qIEpTVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3
MkI0MDJCMjE3NjkwMUYwMDBBRDQzRSAvKiBKU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1VzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDM3
MjE3NzI1NkMwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAzODIxNzcyNTZDMDAwQUQ0M0UgLyogRGV2aWNl
UmVzcG9uc2VDb252ZXJ0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1NzJCNDAzQjIxNzdGQjYwMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcy
QjQwM0MyMTc3RkI2MTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAzRDIxNzgwMTZGMDAw
QUQ0M0UgLyogQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAzRTIxNzgwMTcwMDAwQUQ0M0Ug
LyogQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQjQyMDA2QzZFRDAwMzU1OTY1IC8qIENCT1JWYWx1ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDQk9SVmFsdWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQjUyMDA2QzZFRDAwMzU1OTY1IC8qIENCT1JXcml0
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0JPUldyaXRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzMwM0JCNjIwMDZDNkVEMDAzNTU5NjUgLyogQ0JP
UkJpbmFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDQk9SQmluYXJ5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTA3Niw2ICsxOTA5NCwxNCBAQAogCQk1
NzhBNEJGQTIxNjZBRTAwMDBEMDhGMzQgLyogZmlkbyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTcyQjQwM0IyMTc3RkI2MDAwMEFENDNFIC8qIEF1dGhl
bnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwICovLAorCQkJCTU3MkI0MDNDMjE3N0ZCNjEwMDBB
RDQzRSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmggKi8sCisJCQkJNTcyQjQwM0Qy
MTc4MDE2RjAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcCAqLywK
KwkJCQk1NzJCNDAzRTIxNzgwMTcwMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnMuaCAqLywKKwkJCQk1NzJCNDAxRTIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVz
dENvbnZlcnRlci5jcHAgKi8sCisJCQkJNTcyQjQwMUQyMTc1N0E2NDAwMEFENDNFIC8qIERldmlj
ZVJlcXVlc3RDb252ZXJ0ZXIuaCAqLywKKwkJCQk1NzJCNDAzODIxNzcyNTZDMDAwQUQ0M0UgLyog
RGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwICovLAorCQkJCTU3MkI0MDM3MjE3NzI1NkMwMDBB
RDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oICovLAogCQkJCTU3QkFGMjg3MjE2N0Qy
RjcwMDhFOTU0RSAvKiBGaWRvQ29uc3RhbnRzLmNwcCAqLywKIAkJCQk1NzhBNEMwQjIxNjdEMjk2
MDBEMDhGMzQgLyogRmlkb0NvbnN0YW50cy5oICovLAogCQkJCTU3OEE0QzA4MjE2N0QyOTUwMEQw
OEYzNCAvKiBGaWRvSGlkTWVzc2FnZS5jcHAgKi8sCkBAIC0xOTE1NSw2ICsxOTE4MSw4IEBACiAJ
CQkJNTczMDNDMDgyMDA5OThGODAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5pZGwgKi8sCiAJCQkJNTczMDNCRUEyMDA5N0Y0MDAwMzU1OTY1IC8qIFB1YmxpY0tl
eUNyZWRlbnRpYWxUeXBlLmggKi8sCiAJCQkJNTczMDNCRjAyMDA5ODQ2MTAwMzU1OTY1IC8qIFB1
YmxpY0tleUNyZWRlbnRpYWxUeXBlLmlkbCAqLywKKwkJCQk1NzJCNDAyMzIxNzY4RDg1MDAwQUQ0
M0UgLyogVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggKi8sCisJCQkJNTcyQjQwMjUyMTc2
OEQ4NTAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGwgKi8sCiAJCQkp
OwogCQkJcGF0aCA9IHdlYmF1dGhuOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE5
MTgwLDYgKzE5MjA4LDggQEAKIAkJCQk1NzMwM0MwQzIwMDk5Qzc1MDAzNTU5NjUgLyogSlNQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaCAqLywKIAkJCQk1NzMwM0JGQTIwMDk5MTM1
MDAzNTU5NjUgLyogSlNQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5jcHAgKi8sCiAJCQkJNTczMDNC
RjkyMDA5OTEzNDAwMzU1OTY1IC8qIEpTUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCAqLywKKwkJ
CQk1NzJCNDAyQjIxNzY5MDFGMDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQuY3BwICovLAorCQkJCTU3MkI0MDJBMjE3NjkwMUYwMDBBRDQzRSAvKiBKU1VzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBXZWJBdXRoTjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNzY1OCw3ICsyNzY4OCw5IEBACiAJCQkJNTczMDND
MUYyMDA5QUI0MjAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0M0NjIwMTA1RDJGMDAzNTU5NjUgLyogQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzYwODI3MjIwMjE1QTU1MDAx
MTY2NzggLyogQXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQk1NzJCNDA0MjIxNzgxMTRBMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNCRDIyMDA4N0E4MzAwMzU1OTY1IC8qIEF1
dGhlbnRpY2F0b3JSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcyQjQwNDAyMTc4MDE3
MTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1N0RDRUQ5MDIxNDg3RkY3MDAxNkI4NDcgLyogQXV0aGVudGljYXRvclRyYW5zcG9y
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwMTkyMEUxMzJFQkYyRTAwOEJGRTU1IC8qIEF1dG9j
YXBpdGFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUE3QUE0MzEzMkYwRUNDMDBEM0EzQzIg
LyogQXV0b2NhcGl0YWxpemVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODE3NSw2ICsyODIw
Nyw4IEBACiAJCQkJNTlBOEYxRDYxMUE2OTUxMzAwMUFDMzRBIC8qIERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTkwRTFCNDkxMUU0RUY0QjAwNjlGNzg0
IC8qIERldmljZU9yaWVudGF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlBODVFQTQx
MTlENjhFQzAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTU3MkI0MDFGMjE3NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVydGVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzJCNDAzQTIxNzcyNTgxMDAwQUQ0M0UgLyogRGV2aWNl
UmVzcG9uc2VDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2NzcyNUZEMUE1QjNBRDkw
MDNDMjRERCAvKiBERkEuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDlGNTY2MUFBMEY3M0MwMERB
NDVGRiAvKiBERkFCeXRlY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEOUY1NjcxQUEwRjc0
MjAwREE0NUZGIC8qIERGQUJ5dGVjb2RlQ29tcGlsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjk2
NTcsNiArMjk2OTEsNyBAQAogCQkJCTQ2NTMwN0QwMURCNkVFNDgwMEU0MTM3QyAvKiBKU1VJRXZl
bnRJbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzczRkIxMjE5MUVGNkY0MDA3REUwNjEgLyog
SlNVc2VyTWVzc2FnZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNzNGQjBEMTkxRUY1
QTgwMDdERTA2MSAvKiBKU1VzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTU3MkI0MDJDMjE3NjkwMjAwMDBBRDQzRSAvKiBKU1VzZXJWZXJpZmljYXRpb25S
ZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTVDNzcwOTMxMDBEM0NBODAwNUJBMjY3
IC8qIEpTVmFsaWRpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNEIxNzFDOTAx
NDAwOUI0OEMzIC8qIEpTVmlkZW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNEQx
NzFDOTAxNDAwOUI0OEMzIC8qIEpTVmlkZW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLApAQCAt
MzEzMDcsNiArMzEzNDIsNyBAQAogCQkJCUJDOEJGMTUxMTA1ODEzQkYwMEE0MEEwNyAvKiBVc2Vy
U3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4QkYxNUExMDU4MTQxODAwQTQwQTA3
IC8qIFVzZXJTdHlsZVNoZWV0VHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREYzMTdDMTFG
OEQ2ODMwMDNDNUJGOCAvKiBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTcyQjQwMzYyMTc2QTkyMjAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1
aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRjE0RTYxRUFBQzU5QjAwMjZFRUFBIC8q
IFVUSVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxRkFGQkYxOTE1QTVGQTc0MDAwODNB
MjAgLyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0M0NUI4RTFEQzJCNjhB
MDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDY5OTY0YmI5YTYyMTJh
MWU0ZjI5NThlMDM5YzA5ZjU5ZjhkM2NmMi4uOGYyNTkwYTJjYmFhMDQ0ZDhkNTRiZTg4YjQ1YzMw
ODQzOTljMjJhMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTEwLTIyICBKaWV3ZW4gVGFuICA8amlld2VuX3Rh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBvcnQgQ1RBUCBkZXZpY2UgcmVx
dWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzIGZyb20gQ2hyb21pdW0KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDc4NAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDU0NjAzMzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUlZhbHVl
VGVzdC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcDogQWRkZWQuCisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ3RhcFJlc3BvbnNlVGVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6Z2V0VGVzdENvcnJ1cHRlZFNpZ25SZXNwb25zZSk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpnZXRUZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXMpOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6Y29udmVydFRvVmVjdG9yKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaDogQWRkZWQu
CisKIDIwMTgtMTAtMjIgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjIzNDA4MSk6IFRlc3RXZWJLaXRBUEkuVmlkZW9Db250cm9sc01h
bmFnZXIuVmlkZW9Db250cm9sc01hbmFnZXJBdWRpb0VsZW1lbnRGb2xsb3dpbmdVc2VySW50ZXJh
Y3Rpb24gaXMgYSBmbGFreSB0aW1lb3V0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ5ODJm
NGZjOWIxMzg2OTA1ZWQ2OWUwZWM3MzBkY2Q4NTczNDY2OGYuLjNjM2EzMjc4NWNlYWJhZmQwZjg2
MTgxMzJkMTRmOTUzYWYzY2UyZTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDYsNiAr
MjQ2LDggQEAKIAkJNTcxNEVDQkIxQ0E4QkZFNDAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9y
aWdpbmFsVVJMRnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93bmxvYWRSZXF1
ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovOyB9OwogCQk1NzE0RUNCRDFDQThDMjJBMDAwNTFB
QzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQkMxQ0E4QzIxODAwMDUx
QUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sICovOyB9OwogCQk1NzFGN0ZE
MDFGMjk2MUZCMDA5NDY2NDggLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21w
YXRpYmlsaXR5LnNxbGl0ZTMtd2FsIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3MUY3RkNGMUYyOTYxRTEwMDk0NjY0OCAvKiBJbmRleGVkREJT
dHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwgKi87IH07CisJ
CTU3MkI0MDM0MjE3NjlBODgwMDBBRDQzRSAvKiBDdGFwUmVxdWVzdFRlc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwMzMyMTc2OUE4ODAw
MEFENDNFIC8qIEN0YXBSZXF1ZXN0VGVzdC5jcHAgKi87IH07CisJCTU3MkI0MDQ0MjE3ODFCNDMw
MDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDQzMjE3ODFCNDIwMDBBRDQzRSAvKiBDdGFwUmVz
cG9uc2VUZXN0LmNwcCAqLzsgfTsKIAkJNTczMDNCQzkyMDA4MjREMzAwMzU1OTY1IC8qIENCT1JW
YWx1ZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTczMDNCQUMyMDA2QzU2MDAwMzU1OTY1IC8qIENCT1JWYWx1ZVRlc3QuY3BwICovOyB9Owog
CQk1NzMwM0JDQTIwMDgyQzAxMDAzNTU5NjUgLyogQ0JPUldyaXRlclRlc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQUIyMDA2QzU1NDAw
MzU1OTY1IC8qIENCT1JXcml0ZXJUZXN0LmNwcCAqLzsgfTsKIAkJNTczMDNCQ0IyMDA4Mzc2NTAw
MzU1OTY1IC8qIENCT1JSZWFkZXJUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzAzQkMyMjAwNzFFMjIwMDM1NTk2NSAvKiBDQk9SUmVhZGVy
VGVzdC5jcHAgKi87IH07CkBAIC0xNTUxLDYgKzE1NTMsOSBAQAogCQk1NzE0RUNCQTFDQThCRkQx
MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1s
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzE0RUNCQzFDQThDMjE4MDAwNTFBQzgg
LyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTcxRjdGQ0YxRjI5NjFFMTAwOTQ2NjQ4IC8qIEluZGV4ZWREQlN0cnVj
dHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXdhbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhl
ZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtd2FsIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMzMyMTc2OUE4ODAwMEFENDNFIC8qIEN0
YXBSZXF1ZXN0VGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
dGFwUmVxdWVzdFRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAz
NTIxNzZBMDI5MDAwQUQ0M0UgLyogRmlkb1Rlc3REYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpZG9U
ZXN0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDA0MzIxNzgxQjQy
MDAwQUQ0M0UgLyogQ3RhcFJlc3BvbnNlVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDdGFwUmVzcG9uc2VUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTczMDNCQUIyMDA2QzU1NDAwMzU1OTY1IC8qIENCT1JXcml0ZXJUZXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENCT1JXcml0ZXJUZXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQUMyMDA2QzU2MDAwMzU1OTY1IC8q
IENCT1JWYWx1ZVRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q0JPUlZhbHVlVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAzQkMy
MjAwNzFFMjIwMDM1NTk2NSAvKiBDQk9SUmVhZGVyVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDQk9SUmVhZGVyVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yNTMyLDExICsyNTM3LDE0IEBACiAJCQkJMUM5RUI4NDAxRTM4MERBMTAw
NUM2NDQyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJN0NCMTg0QzQxQUEz
RjIxMDAwNjZFREZEIC8qIENvbnRlbnRFeHRlbnNpb25zLmNwcCAqLywKIAkJCQlDRDU0NTFFOTE5
RTQxRjlEMDAxNjkzNkYgLyogQ1NTUGFyc2VyLmNwcCAqLywKKwkJCQk1NzJCNDAzMzIxNzY5QTg4
MDAwQUQ0M0UgLyogQ3RhcFJlcXVlc3RUZXN0LmNwcCAqLywKKwkJCQk1NzJCNDA0MzIxNzgxQjQy
MDAwQUQ0M0UgLyogQ3RhcFJlc3BvbnNlVGVzdC5jcHAgKi8sCiAJCQkJMjYwQkE1NzgxQjFEMkU3
QjAwNEZBMDdDIC8qIERGQUNvbWJpbmVyLmNwcCAqLywKIAkJCQkyNjBCQTU3QTFCMUQyRUUyMDA0
RkEwN0MgLyogREZBSGVscGVycy5oICovLAogCQkJCTI2RjZFMUVGMUFEQzc0OUIwMERFNjk2QiAv
KiBERkFNaW5pbWl6ZXIuY3BwICovLAogCQkJCTMxNTExODBGMURCMUFERDUwMDE3NjMwNCAvKiBF
eHRlbmRlZENvbG9yLmNwcCAqLywKIAkJCQk1Nzk2NTFFNjIxNkJGRDUzMDA2RUJGRTUgLyogRmlk
b0hpZE1lc3NhZ2VUZXN0LmNwcCAqLywKKwkJCQk1NzJCNDAzNTIxNzZBMDI5MDAwQUQ0M0UgLyog
Rmlkb1Rlc3REYXRhLmggKi8sCiAJCQkJN0EzMkQ3NDkxRjAyMTUxNTAwMTYyQzQ0IC8qIEZpbGVN
b25pdG9yLmNwcCAqLywKIAkJCQk0MTk3M0I1QTFBRjIyODZBMDA2QzdCMzYgLyogRmlsZVN5c3Rl
bS5jcHAgKi8sCiAJCQkJN0E5MDlBNzAxRDg3NzQ3NTAwN0UxMEY4IC8qIEZsb2F0UG9pbnQuY3Bw
ICovLApAQCAtMzc2Nyw2ICszNzc1LDggQEAKIAkJCQk3Q0NFN0VBQzFBNDExQTM0MDA0NDdDNEMg
LyogQ291bnRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FFQUQ0N0YxRTIwMTE2QzAwNDE2
RUZFIC8qIENyb3NzUGFydGl0aW9uRmlsZVNjaGVtZUFjY2Vzcy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RURCMUE0MTFBOTIwMDQ0N0M0QyAvKiBDU1NQYXJzZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTcyQjQwMzQyMTc2OUE4ODAwMEFENDNFIC8qIEN0YXBSZXF1ZXN0VGVzdC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk1NzJCNDA0NDIxNzgxQjQzMDAwQUQ0M0UgLyogQ3RhcFJlc3Bv
bnNlVGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUM3QjU3MDIwRDlCQTVCMDAyQzA5QTAg
LyogQ3VzdG9tQnVuZGxlT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FDN0I1NkQyMEQ5
NzY5RjAwMkMwOUEwIC8qIEN1c3RvbUJ1bmRsZVBhcmFtZXRlci5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RjI5MUE0MTFCMTAwMDQ0N0M0QyAvKiBDdXN0b21Qcm90b2NvbHNJbnZhbGlkU2No
ZW1lLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvQ0JPUlZhbHVlVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ0JPUlZhbHVlVGVzdC5jcHAKaW5kZXggYTJkNmI4OWYyNzI4ZmY1ZTg4OTdkMjQ0
YjBjYjU4MzlmOTM1ZWNlMS4uZmY1MjBkYzdhNTk0OTRjNWEzZDZkNjE2ZWM1ZGY1YTA0ZGM3Yzdk
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NCT1JWYWx1
ZVRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DQk9SVmFs
dWVUZXN0LmNwcApAQCAtMTQ4LDYgKzE0OCwxNyBAQCBURVNUKENCT1JWYWx1ZVRlc3QsIENvbnN0
cnVjdFNpbXBsZVZhbHVlKQogICAgIEVYUEVDVF9UUlVFKENCT1JWYWx1ZTo6U2ltcGxlVmFsdWU6
OlVuZGVmaW5lZCA9PSB1bmRlZmluZWRWYWx1ZS5nZXRTaW1wbGVWYWx1ZSgpKTsKIH0KIAorVEVT
VChDQk9SVmFsdWVUZXN0LCBDb25zdHJ1Y3RTaW1wbGVCb29sZWFuVmFsdWUpCit7CisgICAgQ0JP
UlZhbHVlIHRydWVWYWx1ZSh0cnVlKTsKKyAgICBBU1NFUlRfRVEoQ0JPUlZhbHVlOjpUeXBlOjpT
aW1wbGVWYWx1ZSwgdHJ1ZVZhbHVlLnR5cGUoKSk7CisgICAgRVhQRUNUX1RSVUUodHJ1ZVZhbHVl
LmdldEJvb2woKSk7CisKKyAgICBDQk9SVmFsdWUgZmFsc2VWYWx1ZShmYWxzZSk7CisgICAgQVNT
RVJUX0VRKENCT1JWYWx1ZTo6VHlwZTo6U2ltcGxlVmFsdWUsIGZhbHNlVmFsdWUudHlwZSgpKTsK
KyAgICBFWFBFQ1RfRkFMU0UoZmFsc2VWYWx1ZS5nZXRCb29sKCkpOworfQorCiAvLyBUZXN0IGNv
cHkgY29uc3RydWN0b3JzCiBURVNUKENCT1JWYWx1ZVRlc3QsIENvcHlVbnNpZ25lZCkKIHsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRl
c3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVz
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjQzOWRhZDRlYzFhOTA4MDA3NDE3Y2QyYTdlNmM2MWRkMTM1ZmE2
NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
dGFwUmVxdWVzdFRlc3QuY3BwCkBAIC0wLDAgKzEsMTI4IEBACisvLyBDb3B5cmlnaHQgMjAxNyBU
aGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
Ly8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
Ky8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
Ky8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVO
QUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJGaWRvVGVzdERhdGEuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpZG9D
b25zdGFudHMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgorCituYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBm
aWRvOworCisvLyBMZXZlcmFnaW5nIGV4YW1wbGUgMiBvZiBzZWN0aW9uIDYuMSBvZiB0aGUgc3Bl
YworLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDky
Ny9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5Mjcu
aHRtbAorVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJl
cXVlc3RQYXJhbSkKK3sKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpS
cEVudGl0eSBycDsKKyAgICBycC5uYW1lID0gIkFjbWUiOworICAgIHJwLmlkID0gImFjbWUuY29t
IjsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkg
dXNlcjsKKyAgICB1c2VyLm5hbWUgPSAiam9obnBzbWl0aEBleGFtcGxlLmNvbSI7CisgICAgdXNl
ci5pY29uID0gImh0dHBzOi8vcGljcy5hY21lLmNvbS8wMC9wL2FCampqcHFQYi5wbmciOworICAg
IHVzZXIuaWRWZWN0b3IuYXBwZW5kKFRlc3REYXRhOjprVXNlcklkLCBzaXplb2YoVGVzdERhdGE6
OmtVc2VySWQpKTsKKyAgICB1c2VyLmRpc3BsYXlOYW1lID0gIkpvaG4gUC4gU21pdGgiOworCisg
ICAgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+
IHBhcmFtcyB7IHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1
YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDI1NyB9IH07CisgICAgUHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlh
IHNlbGVjdGlvbiB7IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRp
Y2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgdHJ1ZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50OjpQcmVmZXJyZWQgfTsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnMgb3B0aW9ucyB7IHJwLCB1c2VyLCB7IH0sIHBhcmFtcywgc3RkOjpudWxsb3B0LCB7IH0sIHNl
bGVjdGlvbiB9OworICAgIFZlY3Rvcjx1aW50OF90PiBoYXNoOworICAgIGhhc2guYXBwZW5kKFRl
c3REYXRhOjprQ2xpZW50RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNo
KSk7CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVz
dEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNl
clZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dE5vdENvbmZpZ3VyZWQpOwor
ICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a0N0
YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3QpKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6
ZWREYXRhLmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0LCBzZXJp
YWxpemVkRGF0YS5zaXplKCkpLCAwKTsKK30KKworVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RD
b25zdHJ1Y3RHZXRBc3NlcnRpb25SZXF1ZXN0KQoreworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucyBvcHRpb25zOworICAgIG9wdGlvbnMucnBJZCA9ICJhY21lLmNvbSI7CisK
KyAgICBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvciBkZXNjcmlwdG9yMTsKKyAgICBkZXNj
cmlwdG9yMS50eXBlID0gUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleTsKKyAgICBj
b25zdCB1aW50OF90IGlkMVtdID0geworICAgICAgICAweGYyLCAweDIwLCAweDA2LCAweGRlLCAw
eDRmLCAweDkwLCAweDVhLCAweGY2LCAweDhhLCAweDQzLCAweDk0LAorICAgICAgICAweDJmLCAw
eDAyLCAweDRmLCAweDJhLCAweDVlLCAweGNlLCAweDYwLCAweDNkLCAweDljLCAweDZkLCAweDRi
LAorICAgICAgICAweDNkLCAweGY4LCAweGJlLCAweDA4LCAweGVkLCAweDAxLCAweGZjLCAweDQ0
LCAweDI2LCAweDQ2LCAweGQwLAorICAgICAgICAweDM0LCAweDg1LCAweDhhLCAweGM3LCAweDVi
LCAweGVkLCAweDNmLCAweGQ1LCAweDgwLCAweGJmLCAweDk4LAorICAgICAgICAweDA4LCAweGQ5
LCAweDRmLCAweGNiLCAweGVlLCAweDgyLCAweGI5LCAweGIyLCAweGVmLCAweDY2LCAweDc3LAor
ICAgICAgICAweGFmLCAweDBhLCAweGRjLCAweGMzLCAweDU4LCAweDUyLCAweGVhLCAweDZiLCAw
eDllIH07CisgICAgZGVzY3JpcHRvcjEuaWRWZWN0b3IuYXBwZW5kKGlkMSwgc2l6ZW9mKGlkMSkp
OworICAgIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscy5hcHBlbmQoZGVzY3JpcHRvcjEpOworCisg
ICAgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IgZGVzY3JpcHRvcjI7CisgICAgZGVzY3Jp
cHRvcjIudHlwZSA9IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXk7CisgICAgY29u
c3QgdWludDhfdCBpZDJbXSA9IHsKKyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAgICAgMHgwMywgMHgwMywgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAgICAgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywK
KyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMywgMHgwMywKKyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMywgMHgwMywgMHgwMywgMHgwMyB9OworICAgIGRlc2NyaXB0b3IyLmlkVmVjdG9yLmFwcGVu
ZChpZDIsIHNpemVvZihpZDIpKTsKKyAgICBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMuYXBwZW5k
KGRlc2NyaXB0b3IyKTsKKworICAgIG9wdGlvbnMudXNlclZlcmlmaWNhdGlvbiA9IFVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQ7CisKKyAgICBWZWN0b3I8dWludDhfdD4gaGFz
aDsKKyAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVz
dERhdGE6OmtDbGllbnREYXRhSGFzaCkpOworICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNv
ZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JT
dXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVk
QnV0Tm90Q29uZmlndXJlZCk7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhLnNpemUoKSwg
c2l6ZW9mKFRlc3REYXRhOjprVGVzdENvbXBsZXhDdGFwR2V0QXNzZXJ0aW9uUmVxdWVzdCkpOwor
ICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a1Rl
c3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3QsIHNlcmlhbGl6ZWREYXRhLnNpemUoKSks
IDApOworfQorCitURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdEN0YXBBdXRoZW50
aWNhdG9yUmVxdWVzdFBhcmFtKQoreworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBrU2Vy
aWFsaXplZEdldEluZm9DbWQgPSAweDA0OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBr
U2VyaWFsaXplZEdldE5leHRBc3NlcnRpb25DbWQgPSAweDA4OworICAgIHN0YXRpYyBjb25zdGV4
cHIgdWludDhfdCBrU2VyaWFsaXplZFJlc2V0Q21kID0gMHgwNzsKKworICAgIGF1dG8gc2VyaWFs
aXplZERhdGExID0gZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENv
bW1hbmQ6OmtBdXRoZW50aWNhdG9yR2V0SW5mbyk7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWRE
YXRhMS5zaXplKCksIDF1KTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhMS5k
YXRhKCksICZrU2VyaWFsaXplZEdldEluZm9DbWQsIDEpLCAwKTsKKworICAgIGF1dG8gc2VyaWFs
aXplZERhdGEyID0gZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENv
bW1hbmQ6OmtBdXRoZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbik7CisgICAgRVhQRUNUX0VRKHNl
cmlhbGl6ZWREYXRhMi5zaXplKCksIDF1KTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6
ZWREYXRhMi5kYXRhKCksICZrU2VyaWFsaXplZEdldE5leHRBc3NlcnRpb25DbWQsIDEpLCAwKTsK
KworICAgIGF1dG8gc2VyaWFsaXplZERhdGEzID0gZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVx
dWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yUmVzZXQpOworICAgIEVYUEVD
VF9FUShzZXJpYWxpemVkRGF0YTMuc2l6ZSgpLCAxdSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChz
ZXJpYWxpemVkRGF0YTMuZGF0YSgpLCAma1NlcmlhbGl6ZWRSZXNldENtZCwgMSksIDApOworfQor
Cit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBS
ZXNwb25zZVRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBS
ZXNwb25zZVRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiNWQyNWU1ZmVlYWY3NzNjMzdjNDE2OGE3NTkz
M2FmNjVmMWQ4YjIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ3RhcFJlc3BvbnNlVGVzdC5jcHAKQEAgLTAsMCArMSwzNTQgQEAKKy8vIENvcHly
aWdodCAyMDE3IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8g
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisv
LyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1
dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
Ly8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkZpZG9UZXN0RGF0YS5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvQ0JPUlJlYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ0JPUlZh
bHVlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DQk9SV3JpdGVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlkb0NvbnN0
YW50cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHVibGljS2V5Q3JlZGVudGlhbC5oPgorCituYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7Cit1c2luZyBuYW1lc3BhY2UgZmlkbzsKKworY29uc3RleHBy
IHVpbnQ4X3Qga1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aE5vVmVyc2lvbltd
ID0geworICAgIC8vIFN1Y2Nlc3Mgc3RhdHVzIGJ5dGUKKyAgICAweDAwLAorICAgIC8vIE1hcCBv
ZiA2IGVsZW1lbnRzCisgICAgMHhBNiwKKyAgICAvLyBLZXkoMDEpIC0gdmVyc2lvbnMKKyAgICAw
eDAxLAorICAgIC8vIEFycmF5KDApCisgICAgMHg4MCwKKyAgICAvLyBLZXkoMDIpIC0gZXh0ZW5z
aW9ucworICAgIDB4MDIsCisgICAgLy8gQXJyYXkoMikKKyAgICAweDgyLAorICAgIC8vICJ1dm0i
CisgICAgMHg2MywgMHg3NSwgMHg3NiwgMHg2RCwKKyAgICAvLyAiaG1hYy1zZWNyZXQiCisgICAg
MHg2QiwgMHg2OCwgMHg2RCwgMHg2MSwgMHg2MywgMHgyRCwgMHg3MywgMHg2NSwgMHg2MywgMHg3
MiwgMHg2NSwgMHg3NCwKKyAgICAvLyBLZXkoMDMpIC0gQUFHVUlECisgICAgMHgwMywKKyAgICAv
LyBCeXRlcygxNikKKyAgICAweDUwLCAweEY4LCAweEEwLCAweDExLCAweEYzLCAweDhDLCAweDBB
LCAweDRELCAweDE1LCAweDgwLCAweDA2LCAweDE3LAorICAgIDB4MTEsIDB4MUYsIDB4OUUsIDB4
REMsIDB4N0QsCisgICAgLy8gS2V5KDA0KSAtIG9wdGlvbnMKKyAgICAweDA0LAorICAgIC8vIE1h
cCgwNSkKKyAgICAweEE1LAorICAgIC8vIEtleSAtICJyayIKKyAgICAweDYyLCAweDcyLCAweDZC
LAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJ1cCIKKyAgICAweDYyLCAw
eDc1LCAweDcwLAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJ1diIKKyAg
ICAweDYyLCAweDc1LCAweDc2LAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAt
ICJwbGF0IgorICAgIDB4NjQsIDB4NzAsIDB4NkMsIDB4NjEsIDB4NzQsCisgICAgLy8gdHJ1ZQor
ICAgIDB4RjUsCisgICAgLy8gS2V5IC0gImNsaWVudFBpbiIKKyAgICAweDY5LCAweDYzLCAweDZD
LCAweDY5LCAweDY1LCAweDZFLCAweDc0LCAweDUwLCAweDY5LCAweDZFLAorICAgIC8vIGZhbHNl
CisgICAgMHhGNCwKKyAgICAvLyBLZXkoMDUpIC0gTWF4IG1lc3NhZ2Ugc2l6ZQorICAgIDB4MDUs
CisgICAgLy8gMTIwMAorICAgIDB4MTksIDB4MDQsIDB4QjAsCisgICAgLy8gS2V5KDA2KSAtIFBp
biBwcm90b2NvbHMKKyAgICAweDA2LAorICAgIC8vIEFycmF5WzFdCisgICAgMHg4MSwgMHgwMSwK
K307CisKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25z
ZVdpdGhEdXBsaWNhdGVWZXJzaW9uW10gPSB7CisgICAgLy8gU3VjY2VzcyBzdGF0dXMgYnl0ZQor
ICAgIDB4MDAsCisgICAgLy8gTWFwIG9mIDYgZWxlbWVudHMKKyAgICAweEE2LAorICAgIC8vIEtl
eSgwMSkgLSB2ZXJzaW9ucworICAgIDB4MDEsCisgICAgLy8gQXJyYXkoMDIpCisgICAgMHg4MiwK
KyAgICAvLyAiVTJGX1YyIgorICAgIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYsIDB4NTYs
IDB4MzIsCisgICAgLy8gIlUyRl9WMiIKKyAgICAweDY2LCAweDU1LCAweDMyLCAweDQ2LCAweDVG
LCAweDU2LCAweDMyLAorICAgIC8vIEtleSgwMikgLSBleHRlbnNpb25zCisgICAgMHgwMiwKKyAg
ICAvLyBBcnJheSgyKQorICAgIDB4ODIsCisgICAgLy8gInV2bSIKKyAgICAweDYzLCAweDc1LCAw
eDc2LCAweDZELAorICAgIC8vICJobWFjLXNlY3JldCIKKyAgICAweDZCLCAweDY4LCAweDZELCAw
eDYxLCAweDYzLCAweDJELCAweDczLCAweDY1LCAweDYzLCAweDcyLCAweDY1LCAweDc0LAorICAg
IC8vIEtleSgwMykgLSBBQUdVSUQKKyAgICAweDAzLAorICAgIC8vIEJ5dGVzKDE2KQorICAgIDB4
NTAsIDB4RjgsIDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMsIDB4MEEsIDB4NEQsIDB4MTUsIDB4ODAs
IDB4MDYsIDB4MTcsCisgICAgMHgxMSwgMHgxRiwgMHg5RSwgMHhEQywgMHg3RCwKKyAgICAvLyBL
ZXkoMDQpIC0gb3B0aW9ucworICAgIDB4MDQsCisgICAgLy8gTWFwKDA1KQorICAgIDB4QTUsCisg
ICAgLy8gS2V5IC0gInJrIgorICAgIDB4NjIsIDB4NzIsIDB4NkIsCisgICAgLy8gdHJ1ZQorICAg
IDB4RjUsCisgICAgLy8gS2V5IC0gInVwIgorICAgIDB4NjIsIDB4NzUsIDB4NzAsCisgICAgLy8g
dHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInV2IgorICAgIDB4NjIsIDB4NzUsIDB4NzYs
CisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInBsYXQiCisgICAgMHg2NCwg
MHg3MCwgMHg2QywgMHg2MSwgMHg3NCwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBL
ZXkgLSAiY2xpZW50UGluIgorICAgIDB4NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4NkUs
IDB4NzQsIDB4NTAsIDB4NjksIDB4NkUsCisgICAgLy8gZmFsc2UKKyAgICAweEY0LAorICAgIC8v
IEtleSgwNSkgLSBNYXggbWVzc2FnZSBzaXplCisgICAgMHgwNSwKKyAgICAvLyAxMjAwCisgICAg
MHgxOSwgMHgwNCwgMHhCMCwKKyAgICAvLyBLZXkoMDYpIC0gUGluIHByb3RvY29scworICAgIDB4
MDYsCisgICAgLy8gQXJyYXlbMV0KKyAgICAweDgxLCAweDAxLAorfTsKKworY29uc3RleHByIHVp
bnQ4X3Qga1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aEluY29ycmVjdEFhZ3Vp
ZFtdID0geworICAgIC8vIFN1Y2Nlc3Mgc3RhdHVzIGJ5dGUKKyAgICAweDAwLAorICAgIC8vIE1h
cCBvZiA2IGVsZW1lbnRzCisgICAgMHhBNiwKKyAgICAvLyBLZXkoMDEpIC0gdmVyc2lvbnMKKyAg
ICAweDAxLAorICAgIC8vIEFycmF5KDAxKQorICAgIDB4ODEsCisgICAgLy8gIlUyRl9WMiIKKyAg
ICAweDY2LCAweDU1LCAweDMyLCAweDQ2LCAweDVGLCAweDU2LCAweDMyLAorICAgIC8vIEtleSgw
MikgLSBleHRlbnNpb25zCisgICAgMHgwMiwKKyAgICAvLyBBcnJheSgyKQorICAgIDB4ODIsCisg
ICAgLy8gInV2bSIKKyAgICAweDYzLCAweDc1LCAweDc2LCAweDZELAorICAgIC8vICJobWFjLXNl
Y3JldCIKKyAgICAweDZCLCAweDY4LCAweDZELCAweDYxLCAweDYzLCAweDJELCAweDczLCAweDY1
LCAweDYzLCAweDcyLCAweDY1LCAweDc0LAorICAgIC8vIEtleSgwMykgLSBBQUdVSUQKKyAgICAw
eDAzLAorICAgIC8vIEJ5dGVzKDE3KSAtIEZJRE8yIGRldmljZSBBQUdVSUQgbXVzdCBiZSAxNiBi
eXRlcyBsb25nIGluIG9yZGVyIHRvIGJlCisgICAgLy8gY29ycmVjdC4KKyAgICAweDUxLCAweEY4
LCAweEEwLCAweDExLCAweEYzLCAweDhDLCAweDBBLCAweDRELCAweDE1LCAweDgwLCAweDA2LCAw
eDE3LAorICAgIDB4MTEsIDB4MUYsIDB4OUUsIDB4REMsIDB4N0QsIDB4MDAsCisgICAgLy8gS2V5
KDA0KSAtIG9wdGlvbnMKKyAgICAweDA0LAorICAgIC8vIE1hcCgwNSkKKyAgICAweEE1LAorICAg
IC8vIEtleSAtICJyayIKKyAgICAweDYyLCAweDcyLCAweDZCLAorICAgIC8vIHRydWUKKyAgICAw
eEY1LAorICAgIC8vIEtleSAtICJ1cCIKKyAgICAweDYyLCAweDc1LCAweDcwLAorICAgIC8vIHRy
dWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJ1diIKKyAgICAweDYyLCAweDc1LCAweDc2LAor
ICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJwbGF0IgorICAgIDB4NjQsIDB4
NzAsIDB4NkMsIDB4NjEsIDB4NzQsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5
IC0gImNsaWVudFBpbiIKKyAgICAweDY5LCAweDYzLCAweDZDLCAweDY5LCAweDY1LCAweDZFLCAw
eDc0LCAweDUwLCAweDY5LCAweDZFLAorICAgIC8vIGZhbHNlCisgICAgMHhGNCwKKyAgICAvLyBL
ZXkoMDUpIC0gTWF4IG1lc3NhZ2Ugc2l6ZQorICAgIDB4MDUsCisgICAgLy8gMTIwMAorICAgIDB4
MTksIDB4MDQsIDB4QjAsCisgICAgLy8gS2V5KDA2KSAtIFBpbiBwcm90b2NvbHMKKyAgICAweDA2
LAorICAgIC8vIEFycmF5WzFdCisgICAgMHg4MSwgMHgwMSwKK307CisKK2NvbnN0ZXhwciB1aW50
OF90IGtUZXN0RGV2aWNlQWFndWlkW10gPSB7CisgICAgMHhGOCwgMHhBMCwgMHgxMSwgMHhGMywg
MHg4QywgMHgwQSwgMHg0RCwgMHgxNSwgMHg4MCwgMHgwNiwgMHgxNywgMHgxMSwgMHgxRiwgMHg5
RSwgMHhEQywgMHg3RAorfTsKKworLy8gR2V0IGEgc3Vic2V0IG9mIHRoZSByZXNwb25zZSBmb3Ig
dGVzdGluZyBlcnJvciBoYW5kbGluZy4KK1ZlY3Rvcjx1aW50OF90PiBnZXRUZXN0Q29ycnVwdGVk
U2lnblJlc3BvbnNlKHNpemVfdCBsZW5ndGgpCit7CisgICAgQVNTRVJUKGxlbmd0aCA8IHNpemVv
ZihUZXN0RGF0YTo6a1Rlc3RVMmZTaWduUmVzcG9uc2UpKTsKKyAgICBWZWN0b3I8dWludDhfdD4g
dGVzdENvcnJ1cHRlZFNpZ25SZXNwb25zZTsKKyAgICB0ZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNl
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobGVuZ3RoKTsKKyAgICB0ZXN0Q29ycnVwdGVkU2lnblJl
c3BvbnNlLmFwcGVuZChUZXN0RGF0YTo6a1Rlc3RVMmZTaWduUmVzcG9uc2UsIGxlbmd0aCk7Cisg
ICAgcmV0dXJuIHRlc3RDb3JydXB0ZWRTaWduUmVzcG9uc2U7Cit9CisKKy8vIFJldHVybiBhIGtl
eSBoYW5kbGUgdXNlZCBmb3IgR2V0QXNzZXJ0aW9uIHJlcXVlc3QuCitWZWN0b3I8dWludDhfdD4g
Z2V0VGVzdENyZWRlbnRpYWxSYXdJZEJ5dGVzKCkKK3sKKyAgICBWZWN0b3I8dWludDhfdD4gdGVz
dENyZWRlbnRpYWxSYXdJZEJ5dGVzOworICAgIHRlc3RDcmVkZW50aWFsUmF3SWRCeXRlcy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KHNpemVvZihUZXN0RGF0YTo6a1UyZlNpZ25LZXlIYW5kbGUpKTsK
KyAgICB0ZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXMuYXBwZW5kKFRlc3REYXRhOjprVTJmU2lnbktl
eUhhbmRsZSwgc2l6ZW9mKFRlc3REYXRhOjprVTJmU2lnbktleUhhbmRsZSkpOworICAgIHJldHVy
biB0ZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXM7Cit9CisKK1ZlY3Rvcjx1aW50OF90PiBjb252ZXJ0
VG9WZWN0b3IoY29uc3QgdWludDhfdCBieXRlQXJyYXlbXSwgY29uc3Qgc2l6ZV90IGxlbmd0aCkK
K3sKKyAgICBWZWN0b3I8dWludDhfdD4gcmVzdWx0OworICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KGxlbmd0aCk7CisgICAgcmVzdWx0LmFwcGVuZChieXRlQXJyYXksIGxlbmd0aCk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLy8gTGV2ZXJhZ2luZyBleGFtcGxlIDQgb2Ygc2Vj
dGlvbiA2LjEgb2YgdGhlIHNwZWMKKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9m
aWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2Nv
bC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjY29tbWFuZHMKK1RFU1QoQ1RBUFJlc3BvbnNlVGVzdCwg
VGVzdFJlYWRNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKQoreworICAgIGF1dG8gbWFrZUNyZWRlbnRp
YWxSZXNwb25zZSA9IHJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZShjb252ZXJ0VG9WZWN0
b3IoVGVzdERhdGE6OmtUZXN0TWFrZUNyZWRlbnRpYWxSZXNwb25zZSwgc2l6ZW9mKFRlc3REYXRh
OjprVGVzdE1ha2VDcmVkZW50aWFsUmVzcG9uc2UpKSk7CisgICAgQVNTRVJUX1RSVUUobWFrZUNy
ZWRlbnRpYWxSZXNwb25zZSk7CisgICAgYXV0byBjYm9yQXR0ZXN0YXRpb25PYmplY3QgPSBjYm9y
OjpDQk9SUmVhZGVyOjpyZWFkKGNvbnZlcnRUb1ZlY3RvcihyZWludGVycHJldF9jYXN0PHVpbnQ4
X3QqPihtYWtlQ3JlZGVudGlhbFJlc3BvbnNlLT5hdHRlc3RhdGlvbk9iamVjdC0+ZGF0YSgpKSwg
bWFrZUNyZWRlbnRpYWxSZXNwb25zZS0+YXR0ZXN0YXRpb25PYmplY3QtPmJ5dGVMZW5ndGgoKSkp
OworICAgIEFTU0VSVF9UUlVFKGNib3JBdHRlc3RhdGlvbk9iamVjdCk7CisgICAgQVNTRVJUX1RS
VUUoY2JvckF0dGVzdGF0aW9uT2JqZWN0LT5pc01hcCgpKTsKKworICAgIGNvbnN0IGF1dG8mIGF0
dGVzdGF0aW9uT2JqZWN0TWFwID0gY2JvckF0dGVzdGF0aW9uT2JqZWN0LT5nZXRNYXAoKTsKKyAg
ICBhdXRvIGl0ID0gYXR0ZXN0YXRpb25PYmplY3RNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoa0Zv
cm1hdEtleSkpOworICAgIEFTU0VSVF9UUlVFKGl0ICE9IGF0dGVzdGF0aW9uT2JqZWN0TWFwLmVu
ZCgpKTsKKyAgICBBU1NFUlRfVFJVRShpdC0+c2Vjb25kLmlzU3RyaW5nKCkpOworICAgIEVYUEVD
VF9TVFJFUShpdC0+c2Vjb25kLmdldFN0cmluZygpLnV0ZjgoKS5kYXRhKCksICJwYWNrZWQiKTsK
KworICAgIGl0ID0gYXR0ZXN0YXRpb25PYmplY3RNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoa0F1
dGhEYXRhS2V5KSk7CisgICAgQVNTRVJUX1RSVUUoaXQgIT0gYXR0ZXN0YXRpb25PYmplY3RNYXAu
ZW5kKCkpOworICAgIEFTU0VSVF9UUlVFKGl0LT5zZWNvbmQuaXNCeXRlU3RyaW5nKCkpOworICAg
IEVYUEVDVF9FUShpdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKSwgY29udmVydFRvVmVjdG9yKFRl
c3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVudGlhbEF1dGhEYXRhLCBzaXplb2YoVGVzdERhdGE6OmtD
dGFwMk1ha2VDcmVkZW50aWFsQXV0aERhdGEpKSk7CisKKyAgICBpdCA9IGF0dGVzdGF0aW9uT2Jq
ZWN0TWFwLmZpbmQoY2Jvcjo6Q0JPUlZhbHVlKGtBdHRlc3RhdGlvblN0YXRlbWVudEtleSkpOwor
ICAgIEFTU0VSVF9UUlVFKGl0ICE9IGF0dGVzdGF0aW9uT2JqZWN0TWFwLmVuZCgpKTsKKyAgICBB
U1NFUlRfVFJVRShpdC0+c2Vjb25kLmlzTWFwKCkpOworCisgICAgY29uc3QgYXV0byYgYXR0ZXN0
YXRpb25TdGF0ZW1lbnRNYXAgPSBpdC0+c2Vjb25kLmdldE1hcCgpOworICAgIGF1dG8gYXR0U3Rt
dEl0ID0gYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoImFsZyIp
KTsKKworICAgIEFTU0VSVF9UUlVFKGF0dFN0bXRJdCAhPSBhdHRlc3RhdGlvblN0YXRlbWVudE1h
cC5lbmQoKSk7CisgICAgQVNTRVJUX1RSVUUoYXR0U3RtdEl0LT5zZWNvbmQuaXNJbnRlZ2VyKCkp
OworICAgIEVYUEVDVF9FUShhdHRTdG10SXQtPnNlY29uZC5nZXRJbnRlZ2VyKCksIC03KTsKKwor
ICAgIGF0dFN0bXRJdCA9IGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwLmZpbmQoY2Jvcjo6Q0JPUlZh
bHVlKCJzaWciKSk7CisgICAgQVNTRVJUX1RSVUUoYXR0U3RtdEl0ICE9IGF0dGVzdGF0aW9uU3Rh
dGVtZW50TWFwLmVuZCgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRTdG10SXQtPnNlY29uZC5pc0J5
dGVTdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKGF0dFN0bXRJdC0+c2Vjb25kLmdldEJ5dGVTdHJp
bmcoKSwgY29udmVydFRvVmVjdG9yKFRlc3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVudGlhbFNpZ25h
dHVyZSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVudGlhbFNpZ25hdHVyZSkpKTsK
KworICAgIGF0dFN0bXRJdCA9IGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwLmZpbmQoY2Jvcjo6Q0JP
UlZhbHVlKCJ4NWMiKSk7CisgICAgQVNTRVJUX1RSVUUoYXR0U3RtdEl0ICE9IGF0dGVzdGF0aW9u
U3RhdGVtZW50TWFwLmVuZCgpKTsKKyAgICBjb25zdCBhdXRvJiBjZXJ0aWZpY2F0ZSA9IGF0dFN0
bXRJdC0+c2Vjb25kOworICAgIEFTU0VSVF9UUlVFKGNlcnRpZmljYXRlLmlzQXJyYXkoKSk7Cisg
ICAgQVNTRVJUX0VRKGNlcnRpZmljYXRlLmdldEFycmF5KCkuc2l6ZSgpLCAxdSk7CisgICAgQVNT
RVJUX1RSVUUoY2VydGlmaWNhdGUuZ2V0QXJyYXkoKVswXS5pc0J5dGVTdHJpbmcoKSk7CisgICAg
RVhQRUNUX0VRKGNlcnRpZmljYXRlLmdldEFycmF5KClbMF0uZ2V0Qnl0ZVN0cmluZygpLCBjb252
ZXJ0VG9WZWN0b3IoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsQ2VydGlmaWNhdGUsIHNp
emVvZihUZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxDZXJ0aWZpY2F0ZSkpKTsKKyAgICBF
WFBFQ1RfRVEobWFrZUNyZWRlbnRpYWxSZXNwb25zZS0+cmF3SWQtPmJ5dGVMZW5ndGgoKSwgc2l6
ZW9mKFRlc3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVudGlhbENyZWRlbnRpYWxJZCkpOworICAgIEVY
UEVDVF9FUShtZW1jbXAobWFrZUNyZWRlbnRpYWxSZXNwb25zZS0+cmF3SWQtPmRhdGEoKSwgVGVz
dERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsQ3JlZGVudGlhbElkLCBzaXplb2YoVGVzdERhdGE6
OmtDdGFwMk1ha2VDcmVkZW50aWFsQ3JlZGVudGlhbElkKSksIDApOworfQorCisvLyBMZXZlcmFn
aW5nIGV4YW1wbGUgNSBvZiBzZWN0aW9uIDYuMSBvZiB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6
Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVu
dC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbAorVEVTVChD
VEFQUmVzcG9uc2VUZXN0LCBUZXN0UmVhZEdldEFzc2VydGlvblJlc3BvbnNlKQoreworICAgIGF1
dG8gZ2V0QXNzZXJ0aW9uUmVzcG9uc2UgPSByZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKGNv
bnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a0RldmljZUdldEFzc2VydGlvblJlc3BvbnNlLCBzaXpl
b2YoVGVzdERhdGE6OmtEZXZpY2VHZXRBc3NlcnRpb25SZXNwb25zZSkpKTsKKyAgICBBU1NFUlRf
VFJVRShnZXRBc3NlcnRpb25SZXNwb25zZSk7CisKKyAgICBFWFBFQ1RfRVEoZ2V0QXNzZXJ0aW9u
UmVzcG9uc2UtPmF1dGhlbnRpY2F0b3JEYXRhLT5ieXRlTGVuZ3RoKCksIHNpemVvZihUZXN0RGF0
YTo6a0N0YXAyR2V0QXNzZXJ0aW9uQXV0aERhdGEpKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKGdl
dEFzc2VydGlvblJlc3BvbnNlLT5hdXRoZW50aWNhdG9yRGF0YS0+ZGF0YSgpLCBUZXN0RGF0YTo6
a0N0YXAyR2V0QXNzZXJ0aW9uQXV0aERhdGEsIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNz
ZXJ0aW9uQXV0aERhdGEpKSwgMCk7CisgICAgRVhQRUNUX0VRKGdldEFzc2VydGlvblJlc3BvbnNl
LT5zaWduYXR1cmUtPmJ5dGVMZW5ndGgoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRBc3Nl
cnRpb25TaWduYXR1cmUpKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKGdldEFzc2VydGlvblJlc3Bv
bnNlLT5zaWduYXR1cmUtPmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwMkdldEFzc2VydGlvblNpZ25h
dHVyZSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25TaWduYXR1cmUpKSwgMCk7
Cit9CisKK1RFU1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVzdFJlYWRHZXRJbmZvUmVzcG9uc2UpCit7
CisgICAgYXV0byBnZXRJbmZvUmVzcG9uc2UgPSByZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb252
ZXJ0VG9WZWN0b3IoVGVzdERhdGE6OmtUZXN0R2V0SW5mb1Jlc3BvbnNlUGxhdGZvcm1EZXZpY2Us
IHNpemVvZihUZXN0RGF0YTo6a1Rlc3RHZXRJbmZvUmVzcG9uc2VQbGF0Zm9ybURldmljZSkpKTsK
KyAgICBBU1NFUlRfVFJVRShnZXRJbmZvUmVzcG9uc2UpOworICAgIEFTU0VSVF9UUlVFKGdldElu
Zm9SZXNwb25zZS0+bWF4TXNnU2l6ZSgpKTsKKyAgICBFWFBFQ1RfRVEoKmdldEluZm9SZXNwb25z
ZS0+bWF4TXNnU2l6ZSgpLCAxMjAwdSk7CisgICAgRVhQRUNUX05FKGdldEluZm9SZXNwb25zZS0+
dmVyc2lvbnMoKS5maW5kKFByb3RvY29sVmVyc2lvbjo6a0N0YXApLCBnZXRJbmZvUmVzcG9uc2Ut
PnZlcnNpb25zKCkuZW5kKCkpOworICAgIEVYUEVDVF9ORShnZXRJbmZvUmVzcG9uc2UtPnZlcnNp
b25zKCkuZmluZChQcm90b2NvbFZlcnNpb246OmtVMmYpLCBnZXRJbmZvUmVzcG9uc2UtPnZlcnNp
b25zKCkuZW5kKCkpOworICAgIEVYUEVDVF9UUlVFKGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygp
LmlzUGxhdGZvcm1EZXZpY2UoKSk7CisgICAgRVhQRUNUX1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5v
cHRpb25zKCkuc3VwcG9ydHNSZXNpZGVudEtleSgpKTsKKyAgICBFWFBFQ1RfVFJVRShnZXRJbmZv
UmVzcG9uc2UtPm9wdGlvbnMoKS51c2VyUHJlc2VuY2VSZXF1aXJlZCgpKTsKKyAgICBFWFBFQ1Rf
RVEoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFi
aWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkLCBnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMo
KS51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCkpOworICAgIEVYUEVDVF9FUShBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVk
QnV0UGluTm90U2V0LCBnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS5jbGllbnRQaW5BdmFpbGFi
aWxpdHkoKSk7Cit9CisKK1RFU1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVzdFJlYWRHZXRJbmZvUmVz
cG9uc2VXaXRoSW5jb3JyZWN0Rm9ybWF0KQoreworICAgIEVYUEVDVF9GQUxTRShyZWFkQ1RBUEdl
dEluZm9SZXNwb25zZShjb252ZXJ0VG9WZWN0b3Ioa1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jl
c3BvbnNlV2l0aE5vVmVyc2lvbiwgc2l6ZW9mKGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZVdpdGhOb1ZlcnNpb24pKSkpOworICAgIEVYUEVDVF9GQUxTRShyZWFkQ1RBUEdldEluZm9S
ZXNwb25zZShjb252ZXJ0VG9WZWN0b3Ioa1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNl
V2l0aER1cGxpY2F0ZVZlcnNpb24sIHNpemVvZihrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVz
cG9uc2VXaXRoRHVwbGljYXRlVmVyc2lvbikpKSk7CisgICAgRVhQRUNUX0ZBTFNFKHJlYWRDVEFQ
R2V0SW5mb1Jlc3BvbnNlKGNvbnZlcnRUb1ZlY3RvcihrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2VXaXRoSW5jb3JyZWN0QWFndWlkLCBzaXplb2Yoa1Rlc3RBdXRoZW50aWNhdG9yR2V0
SW5mb1Jlc3BvbnNlV2l0aEluY29ycmVjdEFhZ3VpZCkpKSk7Cit9CisKK1RFU1QoQ1RBUFJlc3Bv
bnNlVGVzdCwgVGVzdFNlcmlhbGl6ZUdldEluZm9SZXNwb25zZSkKK3sKKyAgICBBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlIHJlc3BvbnNlKHsgUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCwgUHJv
dG9jb2xWZXJzaW9uOjprVTJmIH0sIGNvbnZlcnRUb1ZlY3RvcihrVGVzdERldmljZUFhZ3VpZCwg
c2l6ZW9mKGtUZXN0RGV2aWNlQWFndWlkKSkpOworICAgIHJlc3BvbnNlLnNldEV4dGVuc2lvbnMo
eyAidXZtIiwgImhtYWMtc2VjcmV0IiB9KTsKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9ucyBvcHRpb25zOworICAgIG9wdGlvbnMuc2V0U3VwcG9ydHNSZXNpZGVudEtleSh0cnVlKTsK
KyAgICBvcHRpb25zLnNldElzUGxhdGZvcm1EZXZpY2UodHJ1ZSk7CisgICAgb3B0aW9ucy5zZXRD
bGllbnRQaW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVu
dFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dFBpbk5vdFNldCk7CisgICAgb3B0aW9ucy5z
ZXRVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJl
ZCk7CisgICAgcmVzcG9uc2Uuc2V0T3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKTsKKyAgICByZXNw
b25zZS5zZXRNYXhNc2dTaXplKDEyMDApOworICAgIHJlc3BvbnNlLnNldFBpblByb3RvY29scyh7
IDEgfSk7CisKKyAgICBhdXRvIHJlc3BvbnNlQXNDQk9SID0gZW5jb2RlQXNDQk9SKHJlc3BvbnNl
KTsKKyAgICBFWFBFQ1RfRVEocmVzcG9uc2VBc0NCT1Iuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6
OmtUZXN0R2V0SW5mb1Jlc3BvbnNlUGxhdGZvcm1EZXZpY2UpIC0gMSk7CisgICAgRVhQRUNUX0VR
KG1lbWNtcChyZXNwb25zZUFzQ0JPUi5kYXRhKCksIFRlc3REYXRhOjprVGVzdEdldEluZm9SZXNw
b25zZVBsYXRmb3JtRGV2aWNlICsgMSwgcmVzcG9uc2VBc0NCT1Iuc2l6ZSgpKSwgMCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVU
SE4pCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rl
c3REYXRhLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRh
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWZlYTY1YmYyYTAyZDczYzY4ZDIyMGM2MmMwYTA2OTBmNmYxMzg3Ywot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRv
VGVzdERhdGEuaApAQCAtMCwwICsxLDY0NSBAQAorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIENocm9t
aXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
Ly8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4p
CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworbmFtZXNwYWNlIFRlc3REYXRhIHsKKwor
Ly8gVTJGIHJlcXVlc3QgcGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gU2FtcGxlIFUyRiByZWdpc3RlciByZXF1ZXN0
IHBhcmFtZXRlcnMgdXNlZCBpbiBleGFtcGxlIDYgb2YgdGhlIENUQVAgc3BlYy4KKy8vIGh0dHBz
Oi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGll
bnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjdXNpbmct
dGhlLWN0YXAyLWF1dGhlbnRpY2F0b3JtYWtlY3JlZGVudGlhbC1jb21tYW5kLXdpdGgtY3RhcDEt
dTJmLWF1dGhlbnRpY2F0b3JzCitjb25zdGV4cHIgdWludDhfdCBrQ2xpZW50RGF0YUhhc2hbXSA9
IHsKKyAgICAweDY4LCAweDcxLCAweDM0LCAweDk2LCAweDgyLCAweDIyLCAweGVjLCAweDE3LCAw
eDIwLCAweDJlLCAweDQyLAorICAgIDB4NTAsIDB4NWYsIDB4OGUsIDB4ZDIsIDB4YjEsIDB4NmEs
IDB4ZTIsIDB4MmYsIDB4MTYsIDB4YmIsIDB4MDUsCisgICAgMHhiOCwgMHg4YywgMHgyNSwgMHhk
YiwgMHg5ZSwgMHg2MCwgMHgyNiwgMHg0NSwgMHhmMSwgMHg0MX07CisKK2NvbnN0ZXhwciB1aW50
OF90IGtVc2VySWRbXSA9IHsweDEwLCAweDk4LCAweDIzLCAweDcyLCAweDM1LCAweDQwLCAweDk4
LCAweDcyfTsKKworLy8gU2FtcGxlIFUyRiBzaWduIHJlcXVlc3QgcGFyYW1ldGVycyB1c2VkIGlu
IGV4YW1wbGUgNyBvZiB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3Jn
L3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9y
LXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCN1c2luZy10aGUtY3RhcDItYXV0aGVudGlj
YXRvcm1ha2VjcmVkZW50aWFsLWNvbW1hbmQtd2l0aC1jdGFwMS11MmYtYXV0aGVudGljYXRvcnMK
K2NvbnN0ZXhwciB1aW50OF90IGtVMmZTaWduS2V5SGFuZGxlW10gPSB7CisgICAgMHgzRSwgMHhC
RCwgMHg4OSwgMHhCRiwgMHg3NywgMHhFQywgMHg1MCwgMHg5NywgMHg1NSwgMHhFRSwgMHg5QywK
KyAgICAweDI2LCAweDM1LCAweEVGLCAweEFBLCAweEFDLCAweDdCLCAweDJCLCAweDlDLCAweDVD
LCAweEVGLCAweDE3LAorICAgIDB4MzYsIDB4QzMsIDB4NzEsIDB4N0QsIDB4QTQsIDB4ODUsIDB4
MzQsIDB4QzgsIDB4QzYsIDB4QjYsIDB4NTQsCisgICAgMHhENywgMHhGRiwgMHg5NCwgMHg1Riwg
MHg1MCwgMHhCNSwgMHhDQywgMHg0RSwgMHg3OCwgMHgwNSwgMHg1QiwKKyAgICAweERELCAweDM5
LCAweDZCLCAweDY0LCAweEY3LCAweDhELCAweEEyLCAweEM1LCAweEY5LCAweDYyLCAweDAwLAor
ICAgIDB4Q0MsIDB4RDQsIDB4MTUsIDB4Q0QsIDB4MDgsIDB4RkUsIDB4NDIsIDB4MDAsIDB4Mzgs
Cit9OworCisvLyBVMkYgcmVzcG9uc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBFQyBwdWJsaWMga2V5IGVuY29k
ZWQgaW4gQ09TRV9LZXkgZm9ybWF0IGV4dHJhY3RlZCBmcm9tIGFib3ZlCisvLyB8a1Rlc3RVMmZS
ZWdpc3RlclJlc3BvbnNlfC4KK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0RUNQdWJsaWNLZXlDT1NF
W10gPSB7CisgICAgLy8gTWFwKDUpCisgICAgMHhBNSwKKyAgICAvLyBrdHk6IEVDIGtleSB0eXBl
CisgICAgMHgwMSwgMHgwMiwKKyAgICAvLyBhbGc6IEVDMjU2IHNpZ25hdHVyZSBhbGdvcml0aG0K
KyAgICAweDAzLCAweDI2LAorICAgIC8vIGNydjogUC0yNTYgY3VydmUKKyAgICAweDIwLCAweDAx
LAorICAgIC8vIHgtY29vcmRpbmF0ZQorICAgIDB4MjEsCisgICAgLy8gQnl0ZXMoMzIpCisgICAg
MHg1OCwgMHgyMCwKKyAgICAvLyBCeXRlIGFycmF5IGNvbnRlbnQKKyAgICAweEU4LCAweDc2LCAw
eDI1LCAweDg5LCAweDZFLCAweEU0LCAweEU0LCAweDZELCAweEMwLCAweDMyLCAweDc2LCAweDZF
LAorICAgIDB4ODAsIDB4ODcsIDB4OTYsIDB4MkYsIDB4MzYsIDB4REYsIDB4OUQsIDB4RkUsIDB4
OEIsIDB4NTYsIDB4N0YsIDB4MzcsCisgICAgMHg2MywgMHgwMSwgMHg1QiwgMHgxOSwgMHg5MCwg
MHhBNiwgMHgwRSwgMHgxNCwKKyAgICAvLyB5LWNvb3JkaW5hdGUKKyAgICAweDIyLAorICAgIC8v
IEJ5dGVzKDMyKQorICAgIDB4NTgsIDB4MjAsCisgICAgLy8gQnl0ZSBhcnJheSBjb250ZW50Cisg
ICAgMHgyNywgMHhERSwgMHg2MSwgMHgyRCwgMHg2NiwgMHg0MSwgMHg4QiwgMHhEQSwgMHgxOSwg
MHg1MCwgMHg1OCwgMHgxRSwKKyAgICAweEJDLCAweDVDLCAweDhDLCAweDFELCAweEFELCAweDcx
LCAweDBDLCAweEIxLCAweDRDLCAweDIyLCAweEY4LCAweEM5LAorICAgIDB4NzAsIDB4NDUsIDB4
RjQsIDB4NjEsIDB4MkYsIDB4QjIsIDB4MEMsIDB4OTEsCit9OworCisvLyBUaGUgYXR0ZXN0YXRp
b24gc3RhdGVtZW50IGV4dHJhY3RlZCBmcm9tIGFib3ZlIHxrVGVzdFUyZlJlZ2lzdGVyUmVzcG9u
c2V8LCBhCisvLyBDQk9SLWVuY29kZWQgYnl0ZSBhcnJheS4KKy8vIERpYWdub3N0aWMgbm90YXRp
b246CisvLyB7InNpZyI6CisvLyBoJzMwNDUwMjIwMzI0Nzc5QzY4RjMzODAyODhBMTE5N0I2MDk1
RjdBNkVCOUIxQjFDMTI3RjY2QUUxMkE5OUZFODUzMkVDMjNCOQorLy8gICAwMjIxMDBFMzk1MTZB
QzRENjFFRTY0MDQ0RDUwQjQxNUE2QTRENEQ4NEJBNkQ4OTVDQjVBQjdBMUFBN0QwODFERTM0MUZB
JywKKy8vICJ4NWMiOiBbaCczMDgyMDI0QTMwODIwMTMyQTAwMzAyMDEwMjAyMDQwNDZDODgyMjMw
MEQwNjA5MkE4NjQ4ODZGNzBEMDEwMTBCMCBcCisvLyA1MDAzMDJFMzEyQzMwMkEwNjAzNTUwNDAz
MTMyMzU5NzU2MjY5NjM2RjIwNTUzMjQ2MjA1MjZGNkY3NDIwNDM0MTIwNTM2NTcyNjkgXAorLy8g
NjE2QzIwMzQzNTM3MzIzMDMwMzYzMzMxMzAyMDE3MEQzMTM0MzAzODMwMzEzMDMwMzAzMDMwMzA1
QTE4MEYzMjMwMzUzMDMwMzkzIFwKKy8vIDAzNDMwMzAzMDMwMzAzMDVBMzAyQzMxMkEzMDI4MDYw
MzU1MDQwMzBDMjE1OTc1NjI2OTYzNkYyMDU1MzI0NjIwNDU0NTIwNTM2NSBcCisvLyA3MjY5NjE2
QzIwMzIzNDM5MzEzODMyMzMzMjM0MzczNzMwMzA1OTMwMTMwNjA3MkE4NjQ4Q0UzRDAyMDEwNjA4
MkE4NjQ4Q0UzRDAgXAorLy8gMzAxMDcwMzQyMDAwNDNDQ0FCOTJDQ0I5NzI4N0VFOEU2Mzk0MzdF
MjFGQ0Q2QjZGMTY1QjJENUEzRjNEQjEzMUQzMUMxNkI3NDJCIFwKKy8vIEI0NzZEOEQxRTk5MDgw
RUI1NDZDOUJCREY1NTZFNjIxMEZENDI3ODU4OTlFNzhDQzU4OUVCRTMxMEY2Q0RCOUZGNEEzM0Iz
MDM5MyBcCisvLyAwMjIwNjA5MkIwNjAxMDQwMTgyQzQwQTAyMDQxNTMxMkUzMzJFMzYyRTMxMkUz
NDJFMzEyRTM0MzEzNDM4MzIyRTMxMkUzMjMwMTMgXAorLy8gMDYwQjJCMDYwMTA0MDE4MkU1MUMw
MjAxMDEwNDA0MDMwMjA0MzAzMDBEMDYwOTJBODY0ODg2RjcwRDAxMDEwQjA1MDAwMzgyMDEwIFwK
Ky8vIDEwMDlGOUIwNTIyNDhCQzRDRjQyQ0M1OTkxRkNBQUJBQzlCNjUxQkJFNUJEQ0RDOEVGMEFE
MkMxQzFGRkIzNkQxODcxNUQ0MkU3OCBcCisvLyBCMjQ5MjI0RjkyQzdFNkU3QTA1QzQ5RjBFN0U0
Qzg4MUJGMkU5NEY0NUU0QTIxODMzRDc0NTY4NTFEMEY2QzE0NUEyOTU0MEM4NzQgXAorLy8gRjMw
OTJDOTM0QjQzRDIyMkI4OTYyQzBGNDEwQ0VGMURCNzU4OTJBRjExNkI0NEE5NkY1RDM1QURFQTM4
MjJGQzcxNDZGNjAwNDM4IFwKKy8vIDVCQ0I2OUI2NUM5OUU3RUI2OTE5Nzg2NzAzQzBEOENENDFF
OEY3NUNDQTQ0QUE4QUI3MjVBRDhFNzk5RkYzQTg2OTZBNkYxQjI2NSBcCisvLyA2RTYzMUIxRTQw
MTgzQzA4RkRBNTNGQTRBOEY4NUEwNTY5Mzk0NEFFMTc5QTEzMzlEMDAyRDE1Q0FCRDgxMDA5MEVD
NzIyRUY1REUgXAorLy8gRjk5NjVBMzcxRDQxNUQ2MjRCNjhBMjcwN0NBRDk3QkNERDE3ODVBRjk3
RTI1OEYzM0RGNTZBMDMxQUEwMzU2RDhFOEQ1RUJDQURDIFwKKy8vIDc0RTA3MTYzNkM2QjExMEFD
RTVDQzlCOTBERkVBQ0FFNjQwRkYxQkIwRjFGRTVEQjRFRkY3QTk1RjA2MDczM0Y1J119Citjb25z
dGV4cHIgdWludDhfdCBrVTJmQXR0ZXN0YXRpb25TdGF0ZW1lbnRDQk9SW10gPSB7CisgICAgLy8g
TWFwKDIpCisgICAgMHhBMiwKKyAgICAvLyBUZXh0KDMpCisgICAgMHg2MywKKyAgICAvLyAic2ln
IgorICAgIDB4NzMsIDB4NjksIDB4NjcsCisgICAgLy8gQnl0ZXMoNzEpCisgICAgMHg1OCwgMHg0
NywKKyAgICAvLyBCeXRlIGFycmF5IGNvbnRlbnQKKyAgICAweDMwLCAweDQ1LCAweDAyLCAweDIw
LCAweDMyLCAweDQ3LCAweDc5LCAweEM2LCAweDhGLCAweDMzLCAweDgwLCAweDI4LAorICAgIDB4
OEEsIDB4MTEsIDB4OTcsIDB4QjYsIDB4MDksIDB4NUYsIDB4N0EsIDB4NkUsIDB4QjksIDB4QjEs
IDB4QjEsIDB4QzEsCisgICAgMHgyNywgMHhGNiwgMHg2QSwgMHhFMSwgMHgyQSwgMHg5OSwgMHhG
RSwgMHg4NSwgMHgzMiwgMHhFQywgMHgyMywgMHhCOSwKKyAgICAweDAyLCAweDIxLCAweDAwLCAw
eEUzLCAweDk1LCAweDE2LCAweEFDLCAweDRELCAweDYxLCAweEVFLCAweDY0LCAweDA0LAorICAg
IDB4NEQsIDB4NTAsIDB4QjQsIDB4MTUsIDB4QTYsIDB4QTQsIDB4RDQsIDB4RDgsIDB4NEIsIDB4
QTYsIDB4RDgsIDB4OTUsCisgICAgMHhDQiwgMHg1QSwgMHhCNywgMHhBMSwgMHhBQSwgMHg3RCwg
MHgwOCwgMHgxRCwgMHhFMywgMHg0MSwgMHhGQSwKKyAgICAvLyBUZXh0KDMpCisgICAgMHg2MywK
KyAgICAvLyAieDVjIgorICAgIDB4NzgsIDB4MzUsIDB4NjMsCisgICAgLy8gQXJyYXkoMSkKKyAg
ICAweDgxLAorICAgIC8vIEJ5dGVzKDU5MCkKKyAgICAweDU5LCAweDAyLCAweDRFLAorICAgIC8v
IEJ5dGUgYXJyYXkgY29udGVudAorICAgIDB4MzAsIDB4ODIsIDB4MDIsIDB4NEEsIDB4MzAsIDB4
ODIsIDB4MDEsIDB4MzIsIDB4QTAsIDB4MDMsIDB4MDIsIDB4MDEsCisgICAgMHgwMiwgMHgwMiwg
MHgwNCwgMHgwNCwgMHg2QywgMHg4OCwgMHgyMiwgMHgzMCwgMHgwRCwgMHgwNiwgMHgwOSwgMHgy
QSwKKyAgICAweDg2LCAweDQ4LCAweDg2LCAweEY3LCAweDBELCAweDAxLCAweDAxLCAweDBCLCAw
eDA1LCAweDAwLCAweDMwLCAweDJFLAorICAgIDB4MzEsIDB4MkMsIDB4MzAsIDB4MkEsIDB4MDYs
IDB4MDMsIDB4NTUsIDB4MDQsIDB4MDMsIDB4MTMsIDB4MjMsIDB4NTksCisgICAgMHg3NSwgMHg2
MiwgMHg2OSwgMHg2MywgMHg2RiwgMHgyMCwgMHg1NSwgMHgzMiwgMHg0NiwgMHgyMCwgMHg1Miwg
MHg2RiwKKyAgICAweDZGLCAweDc0LCAweDIwLCAweDQzLCAweDQxLCAweDIwLCAweDUzLCAweDY1
LCAweDcyLCAweDY5LCAweDYxLCAweDZDLAorICAgIDB4MjAsIDB4MzQsIDB4MzUsIDB4MzcsIDB4
MzIsIDB4MzAsIDB4MzAsIDB4MzYsIDB4MzMsIDB4MzEsIDB4MzAsIDB4MjAsCisgICAgMHgxNywg
MHgwRCwgMHgzMSwgMHgzNCwgMHgzMCwgMHgzOCwgMHgzMCwgMHgzMSwgMHgzMCwgMHgzMCwgMHgz
MCwgMHgzMCwKKyAgICAweDMwLCAweDMwLCAweDVBLCAweDE4LCAweDBGLCAweDMyLCAweDMwLCAw
eDM1LCAweDMwLCAweDMwLCAweDM5LCAweDMwLAorICAgIDB4MzQsIDB4MzAsIDB4MzAsIDB4MzAs
IDB4MzAsIDB4MzAsIDB4MzAsIDB4NUEsIDB4MzAsIDB4MkMsIDB4MzEsIDB4MkEsCisgICAgMHgz
MCwgMHgyOCwgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwMywgMHgwQywgMHgyMSwgMHg1OSwg
MHg3NSwgMHg2MiwKKyAgICAweDY5LCAweDYzLCAweDZGLCAweDIwLCAweDU1LCAweDMyLCAweDQ2
LCAweDIwLCAweDQ1LCAweDQ1LCAweDIwLCAweDUzLAorICAgIDB4NjUsIDB4NzIsIDB4NjksIDB4
NjEsIDB4NkMsIDB4MjAsIDB4MzIsIDB4MzQsIDB4MzksIDB4MzEsIDB4MzgsIDB4MzIsCisgICAg
MHgzMywgMHgzMiwgMHgzNCwgMHgzNywgMHgzNywgMHgzMCwgMHgzMCwgMHg1OSwgMHgzMCwgMHgx
MywgMHgwNiwgMHgwNywKKyAgICAweDJBLCAweDg2LCAweDQ4LCAweENFLCAweDNELCAweDAyLCAw
eDAxLCAweDA2LCAweDA4LCAweDJBLCAweDg2LCAweDQ4LAorICAgIDB4Q0UsIDB4M0QsIDB4MDMs
IDB4MDEsIDB4MDcsIDB4MDMsIDB4NDIsIDB4MDAsIDB4MDQsIDB4M0MsIDB4Q0EsIDB4QjksCisg
ICAgMHgyQywgMHhDQiwgMHg5NywgMHgyOCwgMHg3RSwgMHhFOCwgMHhFNiwgMHgzOSwgMHg0Mywg
MHg3RSwgMHgyMSwgMHhGQywKKyAgICAweEQ2LCAweEI2LCAweEYxLCAweDY1LCAweEIyLCAweEQ1
LCAweEEzLCAweEYzLCAweERCLCAweDEzLCAweDFELCAweDMxLAorICAgIDB4QzEsIDB4NkIsIDB4
NzQsIDB4MkIsIDB4QjQsIDB4NzYsIDB4RDgsIDB4RDEsIDB4RTksIDB4OTAsIDB4ODAsIDB4RUIs
CisgICAgMHg1NCwgMHg2QywgMHg5QiwgMHhCRCwgMHhGNSwgMHg1NiwgMHhFNiwgMHgyMSwgMHgw
RiwgMHhENCwgMHgyNywgMHg4NSwKKyAgICAweDg5LCAweDlFLCAweDc4LCAweENDLCAweDU4LCAw
eDlFLCAweEJFLCAweDMxLCAweDBGLCAweDZDLCAweERCLCAweDlGLAorICAgIDB4RjQsIDB4QTMs
IDB4M0IsIDB4MzAsIDB4MzksIDB4MzAsIDB4MjIsIDB4MDYsIDB4MDksIDB4MkIsIDB4MDYsIDB4
MDEsCisgICAgMHgwNCwgMHgwMSwgMHg4MiwgMHhDNCwgMHgwQSwgMHgwMiwgMHgwNCwgMHgxNSwg
MHgzMSwgMHgyRSwgMHgzMywgMHgyRSwKKyAgICAweDM2LCAweDJFLCAweDMxLCAweDJFLCAweDM0
LCAweDJFLCAweDMxLCAweDJFLCAweDM0LCAweDMxLCAweDM0LCAweDM4LAorICAgIDB4MzIsIDB4
MkUsIDB4MzEsIDB4MkUsIDB4MzIsIDB4MzAsIDB4MTMsIDB4MDYsIDB4MEIsIDB4MkIsIDB4MDYs
IDB4MDEsCisgICAgMHgwNCwgMHgwMSwgMHg4MiwgMHhFNSwgMHgxQywgMHgwMiwgMHgwMSwgMHgw
MSwgMHgwNCwgMHgwNCwgMHgwMywgMHgwMiwKKyAgICAweDA0LCAweDMwLCAweDMwLCAweDBELCAw
eDA2LCAweDA5LCAweDJBLCAweDg2LCAweDQ4LCAweDg2LCAweEY3LCAweDBELAorICAgIDB4MDEs
IDB4MDEsIDB4MEIsIDB4MDUsIDB4MDAsIDB4MDMsIDB4ODIsIDB4MDEsIDB4MDEsIDB4MDAsIDB4
OUYsIDB4OUIsCisgICAgMHgwNSwgMHgyMiwgMHg0OCwgMHhCQywgMHg0QywgMHhGNCwgMHgyQywg
MHhDNSwgMHg5OSwgMHgxRiwgMHhDQSwgMHhBQiwKKyAgICAweEFDLCAweDlCLCAweDY1LCAweDFC
LCAweEJFLCAweDVCLCAweERDLCAweERDLCAweDhFLCAweEYwLCAweEFELCAweDJDLAorICAgIDB4
MUMsIDB4MUYsIDB4RkIsIDB4MzYsIDB4RDEsIDB4ODcsIDB4MTUsIDB4RDQsIDB4MkUsIDB4Nzgs
IDB4QjIsIDB4NDksCisgICAgMHgyMiwgMHg0RiwgMHg5MiwgMHhDNywgMHhFNiwgMHhFNywgMHhB
MCwgMHg1QywgMHg0OSwgMHhGMCwgMHhFNywgMHhFNCwKKyAgICAweEM4LCAweDgxLCAweEJGLCAw
eDJFLCAweDk0LCAweEY0LCAweDVFLCAweDRBLCAweDIxLCAweDgzLCAweDNELCAweDc0LAorICAg
IDB4NTYsIDB4ODUsIDB4MUQsIDB4MEYsIDB4NkMsIDB4MTQsIDB4NUEsIDB4MjksIDB4NTQsIDB4
MEMsIDB4ODcsIDB4NEYsCisgICAgMHgzMCwgMHg5MiwgMHhDOSwgMHgzNCwgMHhCNCwgMHgzRCwg
MHgyMiwgMHgyQiwgMHg4OSwgMHg2MiwgMHhDMCwgMHhGNCwKKyAgICAweDEwLCAweENFLCAweEYx
LCAweERCLCAweDc1LCAweDg5LCAweDJBLCAweEYxLCAweDE2LCAweEI0LCAweDRBLCAweDk2LAor
ICAgIDB4RjUsIDB4RDMsIDB4NUEsIDB4REUsIDB4QTMsIDB4ODIsIDB4MkYsIDB4QzcsIDB4MTQs
IDB4NkYsIDB4NjAsIDB4MDQsCisgICAgMHgzOCwgMHg1QiwgMHhDQiwgMHg2OSwgMHhCNiwgMHg1
QywgMHg5OSwgMHhFNywgMHhFQiwgMHg2OSwgMHgxOSwgMHg3OCwKKyAgICAweDY3LCAweDAzLCAw
eEMwLCAweEQ4LCAweENELCAweDQxLCAweEU4LCAweEY3LCAweDVDLCAweENBLCAweDQ0LCAweEFB
LAorICAgIDB4OEEsIDB4QjcsIDB4MjUsIDB4QUQsIDB4OEUsIDB4NzksIDB4OUYsIDB4RjMsIDB4
QTgsIDB4NjksIDB4NkEsIDB4NkYsCisgICAgMHgxQiwgMHgyNiwgMHg1NiwgMHhFNiwgMHgzMSwg
MHhCMSwgMHhFNCwgMHgwMSwgMHg4MywgMHhDMCwgMHg4RiwgMHhEQSwKKyAgICAweDUzLCAweEZB
LCAweDRBLCAweDhGLCAweDg1LCAweEEwLCAweDU2LCAweDkzLCAweDk0LCAweDRBLCAweEUxLCAw
eDc5LAorICAgIDB4QTEsIDB4MzMsIDB4OUQsIDB4MDAsIDB4MkQsIDB4MTUsIDB4Q0EsIDB4QkQs
IDB4ODEsIDB4MDAsIDB4OTAsIDB4RUMsCisgICAgMHg3MiwgMHgyRSwgMHhGNSwgMHhERSwgMHhG
OSwgMHg5NiwgMHg1QSwgMHgzNywgMHgxRCwgMHg0MSwgMHg1RCwgMHg2MiwKKyAgICAweDRCLCAw
eDY4LCAweEEyLCAweDcwLCAweDdDLCAweEFELCAweDk3LCAweEJDLCAweERELCAweDE3LCAweDg1
LCAweEFGLAorICAgIDB4OTcsIDB4RTIsIDB4NTgsIDB4RjMsIDB4M0QsIDB4RjUsIDB4NkEsIDB4
MDMsIDB4MUEsIDB4QTAsIDB4MzUsIDB4NkQsCisgICAgMHg4RSwgMHg4RCwgMHg1RSwgMHhCQywg
MHhBRCwgMHhDNywgMHg0RSwgMHgwNywgMHgxNiwgMHgzNiwgMHhDNiwgMHhCMSwKKyAgICAweDEw
LCAweEFDLCAweEU1LCAweENDLCAweDlCLCAweDkwLCAweERGLCAweEVBLCAweENBLCAweEU2LCAw
eDQwLCAweEZGLAorICAgIDB4MUIsIDB4QjAsIDB4RjEsIDB4RkUsIDB4NUQsIDB4QjQsIDB4RUYs
IDB4RjcsIDB4QTksIDB4NUYsIDB4MDYsIDB4MDcsCisgICAgMHgzMywgMHhGNSwKK307CisKKy8v
IFUyRiByZXNwb25zZSBibG9iIHByb2R1Y2VkIGJ5IGEgVTJGIHNpZ24gcmVxdWVzdCB1c2VkIGlu
IGV4YW1wbGUgNyBvZiB0aGUKKy8vIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNl
Lm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGlj
YXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjdXNpbmctdGhlLWN0YXAyLWF1dGhl
bnRpY2F0b3JnZXRhc3NlcnRpb24tY29tbWFuZC13aXRoLWN0YXAxLXUyZi1hdXRoZW50aWNhdG9y
cworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RVMmZTaWduUmVzcG9uc2VbXSA9IHsKKyAgICAvLyBV
c2VyIHByZXNlbmNlCisgICAgMHgwMSwKKyAgICAvLyBTaWduIGNvdW50KDQgYnl0ZXMpCisgICAg
MHgwMCwgMHgwMCwgMHgwMCwgMHgzQiwKKyAgICAvLyBTaWduYXR1cmUKKyAgICAweDMwLCAweDQ0
LCAweDAyLCAweDIwLCAweDdCLCAweERFLCAweDBBLCAweDUyLCAweEFDLCAweDFGLCAweDRDLCAw
eDhCLAorICAgIDB4MjcsIDB4RTAsIDB4MDMsIDB4QTMsIDB4NzAsIDB4Q0QsIDB4NjYsIDB4QTQs
IDB4QzcsIDB4MTEsIDB4OEQsIDB4RDIsCisgICAgMHgyRCwgMHg1NCwgMHg0NywgMHg4MywgMHg1
RiwgMHg0NSwgMHhCOSwgMHg5QywgMHg2OCwgMHg0MiwgMHgzRiwgMHhGNywKKyAgICAweDAyLCAw
eDIwLCAweDNDLCAweDUxLCAweDdCLCAweDQ3LCAweDg3LCAweDdGLCAweDg1LCAweDc4LCAweDJE
LCAweEUxLAorICAgIDB4MDAsIDB4ODYsIDB4QTcsIDB4ODMsIDB4RDEsIDB4RTcsIDB4REYsIDB4
NEUsIDB4MzYsIDB4MzksIDB4RTcsIDB4NzEsCisgICAgMHhGNSwgMHhGNiwgMHhBRiwgMHhBMywg
MHg1QSwgMHhBRCwgMHg1MywgMHg3MywgMHg4NSwgMHg4RSwKK307CisKKy8vIENUQVAgcmVxdWVz
dHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFtd
ID0geworICAgIC8vIGF1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbCBjb21tYW5kCisgICAgMHgw
MSwKKyAgICAvLyBtYXAoNSkKKyAgICAweGE1LAorICAgIC8vIGtleSgxKSAtIGNsaWVudERhdGFI
YXNoCisgICAgMHgwMSwKKyAgICAvLyBieXRlcygzMikKKyAgICAweDU4LCAweDIwLCAweDY4LCAw
eDcxLCAweDM0LCAweDk2LCAweDgyLCAweDIyLCAweGVjLCAweDE3LCAweDIwLCAweDJlLAorICAg
IDB4NDIsIDB4NTAsIDB4NWYsIDB4OGUsIDB4ZDIsIDB4YjEsIDB4NmEsIDB4ZTIsIDB4MmYsIDB4
MTYsIDB4YmIsIDB4MDUsCisgICAgMHhiOCwgMHg4YywgMHgyNSwgMHhkYiwgMHg5ZSwgMHg2MCwg
MHgyNiwgMHg0NSwgMHhmMSwgMHg0MSwKKyAgICAvLyBrZXkoMikgLSBycAorICAgIDB4MDIsCisg
ICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyBrZXkgLSAiaWQiCisgICAgMHg2MiwgMHg2
OSwgMHg2NCwKKyAgICAvLyB2YWx1ZSAtICJhY21lLmNvbSIKKyAgICAweDY4LCAweDYxLCAweDYz
LCAweDZkLCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAweDZkLAorICAgIC8vIGtleSAtICAibmFt
ZSIKKyAgICAweDY0LCAweDZlLCAweDYxLCAweDZkLCAweDY1LAorICAgIC8vIHZhbHVlIC0gIkFj
bWUiCisgICAgMHg2NCwgMHg0MSwgMHg2MywgMHg2ZCwgMHg2NSwKKyAgICAvLyBrZXkoMykgLSB1
c2VyCisgICAgMHgwMywKKyAgICAvLyBtYXAoNCkKKyAgICAweGE0LAorICAgIC8vIGtleSAtICJp
ZCIKKyAgICAweDYyLCAweDY5LCAweDY0LAorICAgIC8vIHZhbHVlIC0gdXNlciBpZAorICAgIDB4
NDgsIDB4MTAsIDB4OTgsIDB4MjMsIDB4NzIsIDB4MzUsIDB4NDAsIDB4OTgsIDB4NzIsCisgICAg
Ly8ga2V5IC0gImljb24iCisgICAgMHg2NCwgMHg2OSwgMHg2MywgMHg2ZiwgMHg2ZSwKKyAgICAv
LyB2YWx1ZSAtICJodHRwczovL3BpY3MuYWNtZS5jb20vMDAvcC9hQmpqanBxUGIucG5nIgorICAg
IDB4NzgsIDB4MjgsIDB4NjgsIDB4NzQsIDB4NzQsIDB4NzAsIDB4NzMsIDB4M2EsIDB4MmYsIDB4
MmYsIDB4NzAsIDB4NjksCisgICAgMHg2MywgMHg3MywgMHgyZSwgMHg2MSwgMHg2MywgMHg2ZCwg
MHg2NSwgMHgyZSwgMHg2MywgMHg2ZiwgMHg2ZCwgMHgyZiwKKyAgICAweDMwLCAweDMwLCAweDJm
LCAweDcwLCAweDJmLCAweDYxLCAweDQyLCAweDZhLCAweDZhLCAweDZhLCAweDcwLCAweDcxLAor
ICAgIDB4NTAsIDB4NjIsIDB4MmUsIDB4NzAsIDB4NmUsIDB4NjcsCisgICAgLy8ga2V5IC0gIm5h
bWUiCisgICAgMHg2NCwgMHg2ZSwgMHg2MSwgMHg2ZCwgMHg2NSwKKyAgICAvLyB2YWx1ZSAtICJq
b2hucHNtaXRoQGV4YW1wbGUuY29tIgorICAgIDB4NzYsIDB4NmEsIDB4NmYsIDB4NjgsIDB4NmUs
IDB4NzAsIDB4NzMsIDB4NmQsIDB4NjksIDB4NzQsIDB4NjgsIDB4NDAsCisgICAgMHg2NSwgMHg3
OCwgMHg2MSwgMHg2ZCwgMHg3MCwgMHg2YywgMHg2NSwgMHgyZSwgMHg2MywgMHg2ZiwgMHg2ZCwK
KyAgICAvLyBrZXkgLSAiZGlzcGxheU5hbWUiCisgICAgMHg2YiwgMHg2NCwgMHg2OSwgMHg3Mywg
MHg3MCwgMHg2YywgMHg2MSwgMHg3OSwgMHg0ZSwgMHg2MSwgMHg2ZCwgMHg2NSwKKyAgICAvLyB2
YWx1ZSAtICJKb2huIFAuIFNtaXRoIgorICAgIDB4NmQsIDB4NGEsIDB4NmYsIDB4NjgsIDB4NmUs
IDB4MjAsIDB4NTAsIDB4MmUsIDB4MjAsIDB4NTMsIDB4NmQsIDB4NjksCisgICAgMHg3NCwgMHg2
OCwKKyAgICAvLyBrZXkoNCkgLSBwdWJLZXlDcmVkUGFyYW1zCisgICAgMHgwNCwKKyAgICAvLyBh
cnJheSgyKQorICAgIDB4ODIsCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyBrZXkg
LSAiYWxnIgorICAgIDB4NjMsIDB4NjEsIDB4NmMsIDB4NjcsCisgICAgLy8gdmFsdWUgLSA3Cisg
ICAgMHgwNywKKyAgICAvLyBrZXkgLSAidHlwZSIKKyAgICAweDY0LCAweDc0LCAweDc5LCAweDcw
LCAweDY1LAorICAgIC8vIHZhbHVlIC0gInB1YmxpYy1rZXkiCisgICAgMHg2YSwgMHg3MCwgMHg3
NSwgMHg2MiwgMHg2QywgMHg2OSwgMHg2MywgMHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAgICAv
LyBtYXAoMikKKyAgICAweGEyLAorICAgIC8vIGtleSAtICJhbGciCisgICAgMHg2MywgMHg2MSwg
MHg2YywgMHg2NywKKyAgICAvLyB2YWx1ZSAtIDI1NworICAgIDB4MTksIDB4MDEsIDB4MDEsCisg
ICAgLy8ga2V5IC0gInR5cGUiCisgICAgMHg2NCwgMHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwgLy8g
InR5cGUiCisgICAgLy8gdmFsdWUgLSAicHVibGljLWtleSIKKyAgICAweDZhLCAweDcwLCAweDc1
LCAweDYyLCAweDZDLCAweDY5LCAweDYzLCAweDJELCAweDZCLCAweDY1LCAweDc5LAorICAgIC8v
IGtleSg3KSAtIG9wdGlvbnMKKyAgICAweDA3LAorICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisg
ICAgLy8ga2V5IC0gInJrIgorICAgIDB4NjIsIDB4NzIsIDB4NmIsCisgICAgLy8gVHJ1ZSgyMSkK
KyAgICAweGY1LAorICAgIC8vIGtleSAtICJ1diIKKyAgICAweDYyLCAweDc1LCAweDc2LAorICAg
IC8vIFRydWUoMjEpCisgICAgMHhmNX07CisKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0Q29tcGxl
eEN0YXBHZXRBc3NlcnRpb25SZXF1ZXN0W10gPSB7CisgICAgLy8gYXV0aGVudGljYXRvckdldEFz
c2VydGlvbiBjb21tYW5kCisgICAgMHgwMiwKKyAgICAvLyBtYXAoNCkKKyAgICAweGE0LAorICAg
IC8vIGtleSgwMSkgLXJwSWQKKyAgICAweDAxLAorICAgIC8vIHZhbHVlIC0gImFjbWUuY29tIgor
ICAgIDB4NjgsIDB4NjEsIDB4NjMsIDB4NmQsIDB4NjUsIDB4MmUsIDB4NjMsIDB4NmYsIDB4NmQs
CisgICAgLy8ga2V5KDAyKSAtIGNsaWVudCBkYXRhIGhhc2gKKyAgICAweDAyLAorICAgIC8vIHZh
bHVlIC0gYnl0ZXMoMzIpCisgICAgMHg1OCwgMHgyMCwgMHg2OCwgMHg3MSwgMHgzNCwgMHg5Niwg
MHg4MiwgMHgyMiwgMHhlYywgMHgxNywgMHgyMCwgMHgyZSwKKyAgICAweDQyLCAweDUwLCAweDVm
LCAweDhlLCAweGQyLCAweGIxLCAweDZhLCAweGUyLCAweDJmLCAweDE2LCAweGJiLCAweDA1LAor
ICAgIDB4YjgsIDB4OGMsIDB4MjUsIDB4ZGIsIDB4OWUsIDB4NjAsIDB4MjYsIDB4NDUsIDB4ZjEs
IDB4NDEsCisgICAgLy8ga2V5KDAzKSAtIGFsbG93IGxpc3QKKyAgICAweDAzLAorICAgIC8vIHZh
bHVlIC0gYXJyYXkoMikKKyAgICAweDgyLAorICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAg
Ly8ga2V5IC0gImlkIgorICAgIDB4NjIsIDB4NjksIDB4NjQsCisgICAgLy8gdmFsdWUgLSBjcmVk
ZW50aWFsIElECisgICAgMHg1OCwgMHg0MCwgMHhmMiwgMHgyMCwgMHgwNiwgMHhkZSwgMHg0Ziwg
MHg5MCwgMHg1YSwgMHhmNiwgMHg4YSwgMHg0MywKKyAgICAweDk0LCAweDJmLCAweDAyLCAweDRm
LCAweDJhLCAweDVlLCAweGNlLCAweDYwLCAweDNkLCAweDljLCAweDZkLCAweDRiLAorICAgIDB4
M2QsIDB4ZjgsIDB4YmUsIDB4MDgsIDB4ZWQsIDB4MDEsIDB4ZmMsIDB4NDQsIDB4MjYsIDB4NDYs
IDB4ZDAsIDB4MzQsCisgICAgMHg4NSwgMHg4YSwgMHhjNywgMHg1YiwgMHhlZCwgMHgzZiwgMHhk
NSwgMHg4MCwgMHhiZiwgMHg5OCwgMHgwOCwgMHhkOSwKKyAgICAweDRmLCAweGNiLCAweGVlLCAw
eDgyLCAweGI5LCAweGIyLCAweGVmLCAweDY2LCAweDc3LCAweGFmLCAweDBhLCAweGRjLAorICAg
IDB4YzMsIDB4NTgsIDB4NTIsIDB4ZWEsIDB4NmIsIDB4OWUsCisgICAgLy8ga2V5IC0gInR5cGUi
CisgICAgMHg2NCwgMHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwKKyAgICAvLyB2YWx1ZSAtICJwdWJs
aWMta2V5IgorICAgIDB4NmEsIDB4NzAsIDB4NzUsIDB4NjIsIDB4NkMsIDB4NjksIDB4NjMsIDB4
MkQsIDB4NkIsIDB4NjUsIDB4NzksCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyBr
ZXkgLSAiaWQiCisgICAgMHg2MiwgMHg2OSwgMHg2NCwKKyAgICAvLyB2YWx1ZSAtIGNyZWRlbnRp
YWwgSUQKKyAgICAweDU4LCAweDMyLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4
MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAgMHgwMywg
MHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgw
MywgMHgwMywKKyAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAw
eDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMs
CisgICAgLy8ga2V5IC0gInR5cGUiCisgICAgMHg2NCwgMHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwK
KyAgICAvLyB2YWx1ZSAtICJwdWJsaWMta2V5IgorICAgIDB4NmEsIDB4NzAsIDB4NzUsIDB4NjIs
IDB4NkMsIDB4NjksIDB4NjMsIDB4MkQsIDB4NkIsIDB4NjUsIDB4NzksCisgICAgLy8gdW5zaWdu
ZWQoNSkgLSBvcHRpb25zCisgICAgMHgwNSwKKyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAg
IC8vIGtleSAtInVwIgorICAgIDB4NjIsIDB4NzUsIDB4NzAsCisgICAgLy8gdmFsdWUgLSBGYWxz
ZSgyMCkKKyAgICAweGY0LAorICAgIC8vIGtleSAtICJ1diIKKyAgICAweDYyLCAweDc1LCAweDc2
LAorICAgIC8vIHZhbHVlIC0gVHJ1ZSgyMSkKKyAgICAweGY1LAorfTsKKworLy8gQ1RBUCByZXNw
b25zZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworLy8gQSBzYW1wbGUgd2VsbCBmb3JtZWQgcmVzcG9uc2UgdG8gQ1RBUCBB
dXRoZW50aWNhdG9yR2V0SW5mbyByZXF1ZXN0LiBDcm9zcworLy8gcGxhdGZvcm0gZGV2aWNlIHRo
YXQgc3VwcG9ydHMgcmVzaWRlbnQga2V5LCBhbmQgdXNlciB2ZXJpZmljYXRpb24uCitjb25zdGV4
cHIgdWludDhfdCBrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VbXSA9IHsKKyAgICAw
eDAwLCAweEE2LCAweDAxLCAweDgyLCAweDY4LCAweDQ2LCAweDQ5LCAweDQ0LCAweDRGLCAweDVG
LCAweDMyLCAweDVGLAorICAgIDB4MzAsIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYsIDB4
NTYsIDB4MzIsIDB4MDIsIDB4ODIsIDB4NjMsIDB4NzUsCisgICAgMHg3NiwgMHg2RCwgMHg2Qiwg
MHg2OCwgMHg2RCwgMHg2MSwgMHg2MywgMHgyRCwgMHg3MywgMHg2NSwgMHg2MywgMHg3MiwKKyAg
ICAweDY1LCAweDc0LCAweDAzLCAweDUwLCAweEY4LCAweEEwLCAweDExLCAweEYzLCAweDhDLCAw
eDBBLCAweDRELCAweDE1LAorICAgIDB4ODAsIDB4MDYsIDB4MTcsIDB4MTEsIDB4MUYsIDB4OUUs
IDB4REMsIDB4N0QsIDB4MDQsIDB4QTUsIDB4NjIsIDB4NzIsCisgICAgMHg2QiwgMHhGNSwgMHg2
MiwgMHg3NSwgMHg3MCwgMHhGNSwgMHg2MiwgMHg3NSwgMHg3NiwgMHhGNSwgMHg2NCwgMHg3MCwK
KyAgICAweDZDLCAweDYxLCAweDc0LCAweEY0LCAweDY5LCAweDYzLCAweDZDLCAweDY5LCAweDY1
LCAweDZFLCAweDc0LCAweDUwLAorICAgIDB4NjksIDB4NkUsIDB4RjQsIDB4MDUsIDB4MTksIDB4
MDQsIDB4QjAsIDB4MDYsIDB4ODEsIDB4MDEsCit9OworCisvLyBBdXRoZW50aWNhdG9yR2V0SW5m
byByZXF1ZXN0IHdpdGggYWxsIGNvbmZpZ3VyYXRpb25zIGVxdWFsIHRvIHRoYXQgb2YKKy8vIGtU
ZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSBleGNlcHQgcGxhdGZvcm0gZGV2aWNlIG9w
dGlvbiBpcyBzZXQgdG8KKy8vIHRydWUuCitjb25zdGV4cHIgdWludDhfdCBrVGVzdEdldEluZm9S
ZXNwb25zZVBsYXRmb3JtRGV2aWNlW10gPSB7CisgICAgMHgwMCwgMHhBNiwgMHgwMSwgMHg4Miwg
MHg2OCwgMHg0NiwgMHg0OSwgMHg0NCwgMHg0RiwgMHg1RiwgMHgzMiwgMHg1RiwKKyAgICAweDMw
LCAweDY2LCAweDU1LCAweDMyLCAweDQ2LCAweDVGLCAweDU2LCAweDMyLCAweDAyLCAweDgyLCAw
eDYzLCAweDc1LAorICAgIDB4NzYsIDB4NkQsIDB4NkIsIDB4NjgsIDB4NkQsIDB4NjEsIDB4NjMs
IDB4MkQsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NzIsCisgICAgMHg2NSwgMHg3NCwgMHgwMywgMHg1
MCwgMHhGOCwgMHhBMCwgMHgxMSwgMHhGMywgMHg4QywgMHgwQSwgMHg0RCwgMHgxNSwKKyAgICAw
eDgwLCAweDA2LCAweDE3LCAweDExLCAweDFGLCAweDlFLCAweERDLCAweDdELCAweDA0LCAweEE1
LCAweDYyLCAweDcyLAorICAgIDB4NkIsIDB4RjUsIDB4NjIsIDB4NzUsIDB4NzAsIDB4RjUsIDB4
NjIsIDB4NzUsIDB4NzYsIDB4RjUsIDB4NjQsIDB4NzAsCisgICAgLy8gcGxhdGZvcm0gZGV2aWNl
IDogdHJ1ZQorICAgIDB4NkMsIDB4NjEsIDB4NzQsIDB4RjUsCisgICAgLy8gRW5kIG9mIHBsYXRm
b3JtX2RldmljZSBzZXR0aW5nLgorICAgIDB4NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4
NkUsIDB4NzQsIDB4NTAsIDB4NjksIDB4NkUsIDB4RjQsIDB4MDUsCisgICAgMHgxOSwgMHgwNCwg
MHhCMCwgMHgwNiwgMHg4MSwgMHgwMSwKK307CisKKy8vIEEgU2FtcGxlIHdlbGwgZm9ybWVkIHJl
c3BvbnNlIHRvIENUQVAgTWFrZUNyZWRlbnRpYWwgcmVxdWVzdC4KK2NvbnN0ZXhwciB1aW50OF90
IGtUZXN0TWFrZUNyZWRlbnRpYWxSZXNwb25zZVtdID0geworICAgIC8vIFN1Y2Nlc3Mgc3RhdHVz
IGJ5dGUKKyAgICAweDAwLAorICAgIC8vIE1hcCgwMykKKyAgICAweGEzLAorICAgIC8vIGtleSgw
MSkgLSBGb3JtYXQKKyAgICAweDAxLAorICAgIC8vICJwYWNrZWQiCisgICAgMHg2NiwgMHg3MCwg
MHg2MSwgMHg2MywgMHg2YiwgMHg2NSwgMHg2NCwKKyAgICAvLyBrZXkoMDIpIC0gQXV0aGVudGlj
YXRvciBEYXRhCisgICAgMHgwMiwKKyAgICAvLyBCeXRlKDE1NCkKKyAgICAweDU4LCAweDlhLCAw
eDExLCAweDk0LCAweDIyLCAweDhkLCAweGE4LCAweGZkLCAweGJkLCAweGVlLCAweGZkLCAweDI2
LAorICAgIDB4MWIsIDB4ZDcsIDB4YjYsIDB4NTksIDB4NWMsIDB4ZmQsIDB4NzAsIDB4YTUsIDB4
MGQsIDB4NzAsIDB4YzYsIDB4NDAsCisgICAgMHg3YiwgMHhjZiwgMHgwMSwgMHgzZCwgMHhlOSwg
MHg2ZCwgMHg0ZSwgMHhmYiwgMHgxNywgMHhkZSwgMHg0MSwgMHgwMCwKKyAgICAweDAwLCAweDAw
LCAweDBiLCAweGY4LCAweGEwLCAweDExLCAweGYzLCAweDhjLCAweDBhLCAweDRkLCAweDE1LCAw
eDgwLAorICAgIDB4MDYsIDB4MTcsIDB4MTEsIDB4MWYsIDB4OWUsIDB4ZGMsIDB4N2QsIDB4MDAs
IDB4MTAsIDB4ODksIDB4NTksIDB4Y2UsCisgICAgMHhhZCwgMHg1YiwgMHg1YywgMHg0OCwgMHgx
NiwgMHg0ZSwgMHg4YSwgMHhiYywgMHhkNiwgMHhkOSwgMHg0MywgMHg1YywKKyAgICAweDZmLCAw
eGEzLCAweDYzLCAweDYxLCAweDZjLCAweDY3LCAweDY1LCAweDQ1LCAweDUzLCAweDMyLCAweDM1
LCAweDM2LAorICAgIDB4NjEsIDB4NzgsIDB4NTgsIDB4MjAsIDB4ZjcsIDB4YzQsIDB4ZjQsIDB4
YTYsIDB4ZjEsIDB4ZDcsIDB4OTUsIDB4MzgsCisgICAgMHhkZiwgMHhhNCwgMHhjOSwgMHhhYywg
MHg1MCwgMHg4NCwgMHg4ZCwgMHhmNywgMHgwOCwgMHhiYywgMHgxYywgMHg5OSwKKyAgICAweGY1
LCAweGU2LCAweDBlLCAweDUxLCAweGI0LCAweDJhLCAweDUyLCAweDFiLCAweDM1LCAweGQzLCAw
eGI2LCAweDlhLAorICAgIDB4NjEsIDB4NzksIDB4NTgsIDB4MjAsIDB4ZGUsIDB4N2IsIDB4N2Qs
IDB4NmMsIDB4YTUsIDB4NjQsIDB4ZTcsIDB4MGUsCisgICAgMHhhMywgMHgyMSwgMHhhNCwgMHhk
NSwgMHhkOSwgMHg2ZSwgMHhhMCwgMHgwZSwgMHhmMCwgMHhlMiwgMHhkYiwgMHg4OSwKKyAgICAw
eGRkLCAweDYxLCAweGQ0LCAweDg5LCAweDRjLCAweDE1LCAweGFjLCAweDU4LCAweDViLCAweGQy
LCAweDM2LCAweDg0LAorICAgIC8vIEtleSgwMykgLSBBdHRlc3RhdGlvbiBvYmplY3QKKyAgICAw
eDAzLAorICAgIC8vIE1hcCAtIEF0dGVzdGF0aW9uIG9iamVjdAorICAgIDB4YTMsIDB4NjMsIDB4
NjEsIDB4NmMsIDB4NjcsIDB4MjYsIDB4NjMsIDB4NzMsIDB4NjksIDB4NjcsIDB4NTgsIDB4NDcs
CisgICAgMHgzMCwgMHg0NSwgMHgwMiwgMHgyMCwgMHgxMywgMHhmNywgMHgzYywgMHg1ZCwgMHg5
ZCwgMHg1MywgMHgwZSwgMHg4YywKKyAgICAweGMxLCAweDVjLCAweGM5LCAweGJkLCAweDk2LCAw
eGFkLCAweDU4LCAweDZkLCAweDM5LCAweDM2LCAweDY0LCAweGU0LAorICAgIDB4NjIsIDB4ZDUs
IDB4ZjAsIDB4NTYsIDB4MTIsIDB4MzUsIDB4ZTYsIDB4MzUsIDB4MGYsIDB4MmIsIDB4NzIsIDB4
ODksCisgICAgMHgwMiwgMHgyMSwgMHgwMCwgMHg5MCwgMHgzNSwgMHg3ZiwgMHhmOSwgMHgxMCwg
MHhjYywgMHhiNSwgMHg2YSwgMHhjNSwKKyAgICAweGI1LCAweDk2LCAweDUxLCAweDE5LCAweDQ4
LCAweDU4LCAweDFjLCAweDhmLCAweGRkLCAweGI0LCAweGEyLCAweGI3LAorICAgIDB4OTksIDB4
NTksIDB4OTQsIDB4ODAsIDB4NzgsIDB4YjAsIDB4OWYsIDB4NGIsIDB4ZGMsIDB4NjIsIDB4Mjks
IDB4NjMsCisgICAgMHg3OCwgMHgzNSwgMHg2MywgMHg4MSwgMHg1OSwgMHgwMSwgMHg5NywgMHgz
MCwgMHg4MiwgMHgwMSwgMHg5MywgMHgzMCwKKyAgICAweDgyLCAweDAxLCAweDM4LCAweGEwLCAw
eDAzLCAweDAyLCAweDAxLCAweDAyLCAweDAyLCAweDA5LCAweDAwLCAweDg1LAorICAgIDB4OWIs
IDB4NzIsIDB4NmMsIDB4YjIsIDB4NGIsIDB4NGMsIDB4MjksIDB4MzAsIDB4MGEsIDB4MDYsIDB4
MDgsIDB4MmEsCisgICAgMHg4NiwgMHg0OCwgMHhjZSwgMHgzZCwgMHgwNCwgMHgwMywgMHgwMiwg
MHgzMCwgMHg0NywgMHgzMSwgMHgwYiwgMHgzMCwKKyAgICAweDA5LCAweDA2LCAweDAzLCAweDU1
LCAweDA0LCAweDA2LCAweDEzLCAweDAyLCAweDU1LCAweDUzLCAweDMxLCAweDE0LAorICAgIDB4
MzAsIDB4MTIsIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MGEsIDB4MGMsIDB4MGIsIDB4NTks
IDB4NzUsIDB4NjIsCisgICAgMHg2OSwgMHg2MywgMHg2ZiwgMHgyMCwgMHg1NCwgMHg2NSwgMHg3
MywgMHg3NCwgMHgzMSwgMHgyMiwgMHgzMCwgMHgyMCwKKyAgICAweDA2LCAweDAzLCAweDU1LCAw
eDA0LCAweDBiLCAweDBjLCAweDE5LCAweDQxLCAweDc1LCAweDc0LCAweDY4LCAweDY1LAorICAg
IDB4NmUsIDB4NzQsIDB4NjksIDB4NjMsIDB4NjEsIDB4NzQsIDB4NmYsIDB4NzIsIDB4MjAsIDB4
NDEsIDB4NzQsIDB4NzQsCisgICAgMHg2NSwgMHg3MywgMHg3NCwgMHg2MSwgMHg3NCwgMHg2OSwg
MHg2ZiwgMHg2ZSwgMHgzMCwgMHgxZSwgMHgxNywgMHgwZCwKKyAgICAweDMxLCAweDM2LCAweDMx
LCAweDMyLCAweDMwLCAweDM0LCAweDMxLCAweDMxLCAweDM1LCAweDM1LCAweDMwLCAweDMwLAor
ICAgIDB4NWEsIDB4MTcsIDB4MGQsIDB4MzIsIDB4MzYsIDB4MzEsIDB4MzIsIDB4MzAsIDB4MzIs
IDB4MzEsIDB4MzEsIDB4MzUsCisgICAgMHgzNSwgMHgzMCwgMHgzMCwgMHg1YSwgMHgzMCwgMHg0
NywgMHgzMSwgMHgwYiwgMHgzMCwgMHgwOSwgMHgwNiwgMHgwMywKKyAgICAweDU1LCAweDA0LCAw
eDA2LCAweDEzLCAweDAyLCAweDU1LCAweDUzLCAweDMxLCAweDE0LCAweDMwLCAweDEyLCAweDA2
LAorICAgIDB4MDMsIDB4NTUsIDB4MDQsIDB4MGEsIDB4MGMsIDB4MGIsIDB4NTksIDB4NzUsIDB4
NjIsIDB4NjksIDB4NjMsIDB4NmYsCisgICAgMHgyMCwgMHg1NCwgMHg2NSwgMHg3MywgMHg3NCwg
MHgzMSwgMHgyMiwgMHgzMCwgMHgyMCwgMHgwNiwgMHgwMywgMHg1NSwKKyAgICAweDA0LCAweDBi
LCAweDBjLCAweDE5LCAweDQxLCAweDc1LCAweDc0LCAweDY4LCAweDY1LCAweDZlLCAweDc0LCAw
eDY5LAorICAgIDB4NjMsIDB4NjEsIDB4NzQsIDB4NmYsIDB4NzIsIDB4MjAsIDB4NDEsIDB4NzQs
IDB4NzQsIDB4NjUsIDB4NzMsIDB4NzQsCisgICAgMHg2MSwgMHg3NCwgMHg2OSwgMHg2ZiwgMHg2
ZSwgMHgzMCwgMHg1OSwgMHgzMCwgMHgxMywgMHgwNiwgMHgwNywgMHgyYSwKKyAgICAweDg2LCAw
eDQ4LCAweGNlLCAweDNkLCAweDAyLCAweDAxLCAweDA2LCAweDA4LCAweDJhLCAweDg2LCAweDQ4
LCAweGNlLAorICAgIDB4M2QsIDB4MDMsIDB4MDEsIDB4MDcsIDB4MDMsIDB4NDIsIDB4MDAsIDB4
MDQsIDB4YWQsIDB4MTEsIDB4ZWIsIDB4MGUsCisgICAgMHg4OCwgMHg1MiwgMHhlNSwgMHgzYSwg
MHhkNSwgMHhkZiwgMHhlZCwgMHg4NiwgMHhiNCwgMHgxZSwgMHg2MSwgMHgzNCwKKyAgICAweGEx
LCAweDhlLCAweGM0LCAweGUxLCAweGFmLCAweDhmLCAweDIyLCAweDFhLCAweDNjLCAweDdkLCAw
eDZlLCAweDYzLAorICAgIDB4NmMsIDB4ODAsIDB4ZWEsIDB4MTMsIDB4YzMsIDB4ZDUsIDB4MDQs
IDB4ZmYsIDB4MmUsIDB4NzYsIDB4MjEsIDB4MWIsCisgICAgMHhiNCwgMHg0NSwgMHgyNSwgMHhi
MSwgMHg5NiwgMHhjNCwgMHg0YywgMHhiNCwgMHg4NCwgMHg5OSwgMHg3OSwgMHhjZiwKKyAgICAw
eDZmLCAweDg5LCAweDZlLCAweGNkLCAweDJiLCAweGI4LCAweDYwLCAweGRlLCAweDFiLCAweGY0
LCAweDM3LCAweDZiLAorICAgIDB4YTMsIDB4MGQsIDB4MzAsIDB4MGIsIDB4MzAsIDB4MDksIDB4
MDYsIDB4MDMsIDB4NTUsIDB4MWQsIDB4MTMsIDB4MDQsCisgICAgMHgwMiwgMHgzMCwgMHgwMCwg
MHgzMCwgMHgwYSwgMHgwNiwgMHgwOCwgMHgyYSwgMHg4NiwgMHg0OCwgMHhjZSwgMHgzZCwKKyAg
ICAweDA0LCAweDAzLCAweDAyLCAweDAzLCAweDQ5LCAweDAwLCAweDMwLCAweDQ2LCAweDAyLCAw
eDIxLCAweDAwLCAweGU5LAorICAgIDB4YTMsIDB4OWYsIDB4MWIsIDB4MDMsIDB4MTksIDB4NzUs
IDB4MjUsIDB4ZjcsIDB4MzcsIDB4M2UsIDB4MTAsIDB4Y2UsCisgICAgMHg3NywgMHhlNywgMHg4
MCwgMHgyMSwgMHg3MywgMHgxYiwgMHg5NCwgMHhkMCwgMHhjMCwgMHgzZiwgMHgzZiwgMHhkYSwK
KyAgICAweDFmLCAweGQyLCAweDJkLCAweGIzLCAweGQwLCAweDMwLCAweGU3LCAweDAyLCAweDIx
LCAweDAwLCAweGM0LCAweGZhLAorICAgIDB4ZWMsIDB4MzQsIDB4NDUsIDB4YTgsIDB4MjAsIDB4
Y2YsIDB4NDMsIDB4MTIsIDB4OWMsIDB4ZGIsIDB4MDAsIDB4YWEsCisgICAgMHhiZSwgMHhmZCwg
MHg5YSwgMHhlMiwgMHhkOCwgMHg3NCwgMHhmOSwgMHhjNSwgMHhkMywgMHg0MywgMHhjYiwgMHgy
ZiwKKyAgICAweDExLCAweDNkLCAweGEyLCAweDM3LCAweDIzLCAweGYzLAorfTsKKworLy8gQmVs
b3cgfGtDdGFwMk1ha2VDcmVkZW50aWFsQ2VydGlmaWNhdGV8LCB8a0N0YXAyTWFrZUNyZWRlbnRp
YWxBdXRoRGF0YXwsIGFuZAorLy8gfGtDdGFwMk1ha2VDcmVkZW50aWFsU2lnbmF0dXJlfCBsZXZl
cmFnZSBleGFtcGxlIDQgb2YgdGhlIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNl
Lm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGlj
YXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwKK2NvbnN0ZXhwciB1aW50OF90IGtD
dGFwMk1ha2VDcmVkZW50aWFsQ2VydGlmaWNhdGVbXSA9IHsKKyAgICAweDMwLCAweDgyLCAweDAx
LCAweDkzLCAweDMwLCAweDgyLCAweDAxLCAweDM4LCAweGEwLCAweDAzLCAweDAyLCAweDAxLAor
ICAgIDB4MDIsIDB4MDIsIDB4MDksIDB4MDAsIDB4ODUsIDB4OWIsIDB4NzIsIDB4NmMsIDB4YjIs
IDB4NGIsIDB4NGMsIDB4MjksCisgICAgMHgzMCwgMHgwYSwgMHgwNiwgMHgwOCwgMHgyYSwgMHg4
NiwgMHg0OCwgMHhjZSwgMHgzZCwgMHgwNCwgMHgwMywgMHgwMiwKKyAgICAweDMwLCAweDQ3LCAw
eDMxLCAweDBiLCAweDMwLCAweDA5LCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDA2LCAweDEz
LAorICAgIDB4MDIsIDB4NTUsIDB4NTMsIDB4MzEsIDB4MTQsIDB4MzAsIDB4MTIsIDB4MDYsIDB4
MDMsIDB4NTUsIDB4MDQsIDB4MGEsCisgICAgMHgwYywgMHgwYiwgMHg1OSwgMHg3NSwgMHg2Miwg
MHg2OSwgMHg2MywgMHg2ZiwgMHgyMCwgMHg1NCwgMHg2NSwgMHg3MywKKyAgICAweDc0LCAweDMx
LCAweDIyLCAweDMwLCAweDIwLCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDBiLCAweDBjLCAw
eDE5LAorICAgIDB4NDEsIDB4NzUsIDB4NzQsIDB4NjgsIDB4NjUsIDB4NmUsIDB4NzQsIDB4Njks
IDB4NjMsIDB4NjEsIDB4NzQsIDB4NmYsCisgICAgMHg3MiwgMHgyMCwgMHg0MSwgMHg3NCwgMHg3
NCwgMHg2NSwgMHg3MywgMHg3NCwgMHg2MSwgMHg3NCwgMHg2OSwgMHg2ZiwKKyAgICAweDZlLCAw
eDMwLCAweDFlLCAweDE3LCAweDBkLCAweDMxLCAweDM2LCAweDMxLCAweDMyLCAweDMwLCAweDM0
LCAweDMxLAorICAgIDB4MzEsIDB4MzUsIDB4MzUsIDB4MzAsIDB4MzAsIDB4NWEsIDB4MTcsIDB4
MGQsIDB4MzIsIDB4MzYsIDB4MzEsIDB4MzIsCisgICAgMHgzMCwgMHgzMiwgMHgzMSwgMHgzMSwg
MHgzNSwgMHgzNSwgMHgzMCwgMHgzMCwgMHg1YSwgMHgzMCwgMHg0NywgMHgzMSwKKyAgICAweDBi
LCAweDMwLCAweDA5LCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDA2LCAweDEzLCAweDAyLCAw
eDU1LCAweDUzLAorICAgIDB4MzEsIDB4MTQsIDB4MzAsIDB4MTIsIDB4MDYsIDB4MDMsIDB4NTUs
IDB4MDQsIDB4MGEsIDB4MGMsIDB4MGIsIDB4NTksCisgICAgMHg3NSwgMHg2MiwgMHg2OSwgMHg2
MywgMHg2ZiwgMHgyMCwgMHg1NCwgMHg2NSwgMHg3MywgMHg3NCwgMHgzMSwgMHgyMiwKKyAgICAw
eDMwLCAweDIwLCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDBiLCAweDBjLCAweDE5LCAweDQx
LCAweDc1LCAweDc0LAorICAgIDB4NjgsIDB4NjUsIDB4NmUsIDB4NzQsIDB4NjksIDB4NjMsIDB4
NjEsIDB4NzQsIDB4NmYsIDB4NzIsIDB4MjAsIDB4NDEsCisgICAgMHg3NCwgMHg3NCwgMHg2NSwg
MHg3MywgMHg3NCwgMHg2MSwgMHg3NCwgMHg2OSwgMHg2ZiwgMHg2ZSwgMHgzMCwgMHg1OSwKKyAg
ICAweDMwLCAweDEzLCAweDA2LCAweDA3LCAweDJhLCAweDg2LCAweDQ4LCAweGNlLCAweDNkLCAw
eDAyLCAweDAxLCAweDA2LAorICAgIDB4MDgsIDB4MmEsIDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2Qs
IDB4MDMsIDB4MDEsIDB4MDcsIDB4MDMsIDB4NDIsIDB4MDAsCisgICAgMHgwNCwgMHhhZCwgMHgx
MSwgMHhlYiwgMHgwZSwgMHg4OCwgMHg1MiwgMHhlNSwgMHgzYSwgMHhkNSwgMHhkZiwgMHhlZCwK
KyAgICAweDg2LCAweGI0LCAweDFlLCAweDYxLCAweDM0LCAweGExLCAweDhlLCAweGM0LCAweGUx
LCAweGFmLCAweDhmLCAweDIyLAorICAgIDB4MWEsIDB4M2MsIDB4N2QsIDB4NmUsIDB4NjMsIDB4
NmMsIDB4ODAsIDB4ZWEsIDB4MTMsIDB4YzMsIDB4ZDUsIDB4MDQsCisgICAgMHhmZiwgMHgyZSwg
MHg3NiwgMHgyMSwgMHgxYiwgMHhiNCwgMHg0NSwgMHgyNSwgMHhiMSwgMHg5NiwgMHhjNCwgMHg0
YywKKyAgICAweGI0LCAweDg0LCAweDk5LCAweDc5LCAweGNmLCAweDZmLCAweDg5LCAweDZlLCAw
eGNkLCAweDJiLCAweGI4LCAweDYwLAorICAgIDB4ZGUsIDB4MWIsIDB4ZjQsIDB4MzcsIDB4NmIs
IDB4YTMsIDB4MGQsIDB4MzAsIDB4MGIsIDB4MzAsIDB4MDksIDB4MDYsCisgICAgMHgwMywgMHg1
NSwgMHgxZCwgMHgxMywgMHgwNCwgMHgwMiwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwYSwgMHgwNiwg
MHgwOCwKKyAgICAweDJhLCAweDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDA0LCAweDAzLCAweDAy
LCAweDAzLCAweDQ5LCAweDAwLCAweDMwLAorICAgIDB4NDYsIDB4MDIsIDB4MjEsIDB4MDAsIDB4
ZTksIDB4YTMsIDB4OWYsIDB4MWIsIDB4MDMsIDB4MTksIDB4NzUsIDB4MjUsCisgICAgMHhmNywg
MHgzNywgMHgzZSwgMHgxMCwgMHhjZSwgMHg3NywgMHhlNywgMHg4MCwgMHgyMSwgMHg3MywgMHgx
YiwgMHg5NCwKKyAgICAweGQwLCAweGMwLCAweDNmLCAweDNmLCAweGRhLCAweDFmLCAweGQyLCAw
eDJkLCAweGIzLCAweGQwLCAweDMwLCAweGU3LAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4YzQs
IDB4ZmEsIDB4ZWMsIDB4MzQsIDB4NDUsIDB4YTgsIDB4MjAsIDB4Y2YsIDB4NDMsCisgICAgMHgx
MiwgMHg5YywgMHhkYiwgMHgwMCwgMHhhYSwgMHhiZSwgMHhmZCwgMHg5YSwgMHhlMiwgMHhkOCwg
MHg3NCwgMHhmOSwKKyAgICAweGM1LCAweGQzLCAweDQzLCAweGNiLCAweDJmLCAweDExLCAweDNk
LCAweGEyLCAweDM3LCAweDIzLCAweGYzfTsKKworY29uc3RleHByIHVpbnQ4X3Qga0N0YXAyTWFr
ZUNyZWRlbnRpYWxBdXRoRGF0YVtdID0geworICAgIDB4MTEsIDB4OTQsIDB4MjIsIDB4OEQsIDB4
QTgsIDB4RkQsIDB4QkQsIDB4RUUsIDB4RkQsIDB4MjYsIDB4MUIsIDB4RDcsCisgICAgMHhCNiwg
MHg1OSwgMHg1QywgMHhGRCwgMHg3MCwgMHhBNSwgMHgwRCwgMHg3MCwgMHhDNiwgMHg0MCwgMHg3
QiwgMHhDRiwKKyAgICAweDAxLCAweDNELCAweEU5LCAweDZELCAweDRFLCAweEZCLCAweDE3LCAw
eERFLCAweDQxLCAweDAwLCAweDAwLCAweDAwLAorICAgIDB4MGIsIDB4ZjgsIDB4YTAsIDB4MTEs
IDB4ZjMsIDB4OGMsIDB4MGEsIDB4NGQsIDB4MTUsIDB4ODAsIDB4MDYsIDB4MTcsCisgICAgMHgx
MSwgMHgxZiwgMHg5ZSwgMHhkYywgMHg3ZCwgMHgwMCwgMHgxMCwgMHg4OSwgMHg1OSwgMHhjZSwg
MHhhZCwgMHg1YiwKKyAgICAweDVjLCAweDQ4LCAweDE2LCAweDRlLCAweDhhLCAweGJjLCAweGQ2
LCAweGQ5LCAweDQzLCAweDVjLCAweDZmLCAweGEzLAorICAgIDB4NjMsIDB4NjEsIDB4NmMsIDB4
NjcsIDB4NjUsIDB4NDUsIDB4NTMsIDB4MzIsIDB4MzUsIDB4MzYsIDB4NjEsIDB4NzgsCisgICAg
MHg1OCwgMHgyMCwgMHhmNywgMHhjNCwgMHhmNCwgMHhhNiwgMHhmMSwgMHhkNywgMHg5NSwgMHgz
OCwgMHhkZiwgMHhhNCwKKyAgICAweGM5LCAweGFjLCAweDUwLCAweDg0LCAweDhkLCAweGY3LCAw
eDA4LCAweGJjLCAweDFjLCAweDk5LCAweGY1LCAweGU2LAorICAgIDB4MGUsIDB4NTEsIDB4YjQs
IDB4MmEsIDB4NTIsIDB4MWIsIDB4MzUsIDB4ZDMsIDB4YjYsIDB4OWEsIDB4NjEsIDB4NzksCisg
ICAgMHg1OCwgMHgyMCwgMHhkZSwgMHg3YiwgMHg3ZCwgMHg2YywgMHhhNSwgMHg2NCwgMHhlNywg
MHgwZSwgMHhhMywgMHgyMSwKKyAgICAweGE0LCAweGQ1LCAweGQ5LCAweDZlLCAweGEwLCAweDBl
LCAweGYwLCAweGUyLCAweGRiLCAweDg5LCAweGRkLCAweDYxLAorICAgIDB4ZDQsIDB4ODksIDB4
NGMsIDB4MTUsIDB4YWMsIDB4NTgsIDB4NWIsIDB4ZDIsIDB4MzYsIDB4ODR9OworCitjb25zdGV4
cHIgdWludDhfdCBrQ3RhcDJNYWtlQ3JlZGVudGlhbFNpZ25hdHVyZVtdID0geworICAgIDB4MzAs
IDB4NDUsIDB4MDIsIDB4MjAsIDB4MTMsIDB4ZjcsIDB4M2MsIDB4NWQsIDB4OWQsIDB4NTMsIDB4
MGUsIDB4OGMsCisgICAgMHhjMSwgMHg1YywgMHhjOSwgMHhiZCwgMHg5NiwgMHhhZCwgMHg1OCwg
MHg2ZCwgMHgzOSwgMHgzNiwgMHg2NCwgMHhlNCwKKyAgICAweDYyLCAweGQ1LCAweGYwLCAweDU2
LCAweDEyLCAweDM1LCAweGU2LCAweDM1LCAweDBmLCAweDJiLCAweDcyLCAweDg5LAorICAgIDB4
MDIsIDB4MjEsIDB4MDAsIDB4OTAsIDB4MzUsIDB4N2YsIDB4ZjksIDB4MTAsIDB4Y2MsIDB4YjUs
IDB4NmEsIDB4YzUsCisgICAgMHhiNSwgMHg5NiwgMHg1MSwgMHgxOSwgMHg0OCwgMHg1OCwgMHgx
YywgMHg4ZiwgMHhkZCwgMHhiNCwgMHhhMiwgMHhiNywKKyAgICAweDk5LCAweDU5LCAweDk0LCAw
eDgwLCAweDc4LCAweGIwLCAweDlmLCAweDRiLCAweGRjLCAweDYyLCAweDI5fTsKKworY29uc3Rl
eHByIHVpbnQ4X3Qga0N0YXAyTWFrZUNyZWRlbnRpYWxDcmVkZW50aWFsSWRbXSA9IHsKKyAgICAw
eDg5LCAweDU5LCAweGNlLCAweGFkLCAweDViLCAweDVjLCAweDQ4LCAweDE2LAorICAgIDB4NGUs
IDB4OGEsIDB4YmMsIDB4ZDYsIDB4ZDksIDB4NDMsIDB4NWMsIDB4NmYsCit9OworCitjb25zdGV4
cHIgdWludDhfdCBrQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YVtdID0geworICAgIDB4NjIsIDB4
NWQsIDB4ZGEsIDB4ZGYsIDB4NzQsIDB4M2YsIDB4NTcsIDB4MjcsIDB4ZTYsIDB4NmIsCisgICAg
MHhiYSwgMHg4YywgMHgyZSwgMHgzOCwgMHg3OSwgMHgyMiwgMHhkMSwgMHhhZiwgMHg0MywgMHhj
NSwKKyAgICAweDAzLCAweGQ5LCAweDExLCAweDRhLCAweDhmLCAweGJhLCAweDEwLCAweDRkLCAw
eDg0LCAweGQwLAorICAgIDB4MmIsIDB4ZmEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTF9
OworCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcDJHZXRBc3NlcnRpb25TaWduYXR1cmVbXSA9IHsK
KyAgICAweDMwLCAweDQ1LCAweDAyLCAweDIwLCAweDRhLCAweDVhLCAweDlkLCAweGQzLCAweDky
LCAweDk4LCAweDE0LCAweDlkLAorICAgIDB4OTAsIDB4NDcsIDB4NjksIDB4YjUsIDB4MWEsIDB4
NDUsIDB4MTQsIDB4MzMsIDB4MDAsIDB4NmYsIDB4MTgsIDB4MmEsCisgICAgMHgzNCwgMHhmYiwg
MHhkZiwgMHg2NiwgMHhkZSwgMHg1ZiwgMHhjNywgMHgxNywgMHhkNywgMHg1ZiwgMHhiMywgMHg1
MCwKKyAgICAweDAyLCAweDIxLCAweDAwLCAweGE0LCAweDZiLCAweDhlLCAweGEzLCAweGMzLCAw
eGI5LCAweDMzLCAweDgyLCAweDFjLAorICAgIDB4NmUsIDB4N2YsIDB4NWUsIDB4ZjksIDB4ZGEs
IDB4YWUsIDB4OTQsIDB4YWIsIDB4NDcsIDB4ZjEsIDB4OGQsIDB4YjQsCisgICAgMHg3NCwgMHhj
NywgMHg0NywgMHg5MCwgMHhlYSwgMHhhYiwgMHhiMSwgMHg0NCwgMHgxMSwgMHhlNywgMHhhMCwK
K307CisKK2NvbnN0ZXhwciB1aW50OF90IGtEZXZpY2VHZXRBc3NlcnRpb25SZXNwb25zZVtdID0g
eworICAgIC8vIFN1Y2Nlc3MgcmVzcG9uc2UgY29kZQorICAgIDB4MDAsCisgICAgLy8gbWFwKDUp
CisgICAgMHhhNSwKKyAgICAvLyB1bnNpZ25lZCgxKSAtIENyZWRlbnRpYWwKKyAgICAweDAxLAor
ICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8gdGV4dCgyKQorICAgIDB4NjIsCisgICAg
Ly8gImlkIgorICAgIDB4NjksIDB4NjQsCisgICAgLy8gYnl0ZXMoNjQpCisgICAgMHg1OCwgMHg0
MCwKKyAgICAvLyBjcmVkZW50aWFsIGlkCisgICAgMHhmMiwgMHgyMCwgMHgwNiwgMHhkZSwgMHg0
ZiwgMHg5MCwgMHg1YSwgMHhmNiwgMHg4YSwgMHg0MywgMHg5NCwgMHgyZiwKKyAgICAweDAyLCAw
eDRmLCAweDJhLCAweDVlLCAweGNlLCAweDYwLCAweDNkLCAweDljLCAweDZkLCAweDRiLCAweDNk
LCAweGY4LAorICAgIDB4YmUsIDB4MDgsIDB4ZWQsIDB4MDEsIDB4ZmMsIDB4NDQsIDB4MjYsIDB4
NDYsIDB4ZDAsIDB4MzQsIDB4ODUsIDB4OGEsCisgICAgMHhjNywgMHg1YiwgMHhlZCwgMHgzZiwg
MHhkNSwgMHg4MCwgMHhiZiwgMHg5OCwgMHgwOCwgMHhkOSwgMHg0ZiwgMHhjYiwKKyAgICAweGVl
LCAweDgyLCAweGI5LCAweGIyLCAweGVmLCAweDY2LCAweDc3LCAweGFmLCAweDBhLCAweGRjLCAw
eGMzLCAweDU4LAorICAgIDB4NTIsIDB4ZWEsIDB4NmIsIDB4OWUsCisgICAgLy8gdGV4dCg0KQor
ICAgIDB4NjQsCisgICAgLy8gInR5cGUiCisgICAgMHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwKKyAg
ICAvLyB0ZXh0KDEwKQorICAgIDB4NmEsCisgICAgLy8gInB1YmxpYy1rZXkiCisgICAgMHg3MCwg
MHg3NSwgMHg2MiwgMHg2QywgMHg2OSwgMHg2MywgMHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAg
ICAvLyB1bnNpZ25lZCgyKSAtIEF1dGggZGF0YQorICAgIDB4MDIsCisgICAgLy8gYnl0ZXMoMzcp
CisgICAgMHg1OCwgMHgyNSwKKyAgICAvLyBhdXRoIGRhdGEKKyAgICAweDYyLCAweDVkLCAweGRh
LCAweGRmLCAweDc0LCAweDNmLCAweDU3LCAweDI3LCAweGU2LCAweDZiLCAweGJhLCAweDhjLAor
ICAgIDB4MmUsIDB4MzgsIDB4NzksIDB4MjIsIDB4ZDEsIDB4YWYsIDB4NDMsIDB4YzUsIDB4MDMs
IDB4ZDksIDB4MTEsIDB4NGEsCisgICAgMHg4ZiwgMHhiYSwgMHgxMCwgMHg0ZCwgMHg4NCwgMHhk
MCwgMHgyYiwgMHhmYSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDExLAorICAgIC8v
IHVuc2lnbmVkKDMpIC0gc2lnbmF0dXJlCisgICAgMHgwMywKKyAgICAvLyBieXRlcyg3MSkKKyAg
ICAweDU4LCAweDQ3LAorICAgIC8vIHNpZ25hdHVyZQorICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4
MjAsIDB4NGEsIDB4NWEsIDB4OWQsIDB4ZDMsIDB4OTIsIDB4OTgsIDB4MTQsIDB4OWQsCisgICAg
MHg5MCwgMHg0NywgMHg2OSwgMHhiNSwgMHgxYSwgMHg0NSwgMHgxNCwgMHgzMywgMHgwMCwgMHg2
ZiwgMHgxOCwgMHgyYSwKKyAgICAweDM0LCAweGZiLCAweGRmLCAweDY2LCAweGRlLCAweDVmLCAw
eGM3LCAweDE3LCAweGQ3LCAweDVmLCAweGIzLCAweDUwLAorICAgIDB4MDIsIDB4MjEsIDB4MDAs
IDB4YTQsIDB4NmIsIDB4OGUsIDB4YTMsIDB4YzMsIDB4YjksIDB4MzMsIDB4ODIsIDB4MWMsCisg
ICAgMHg2ZSwgMHg3ZiwgMHg1ZSwgMHhmOSwgMHhkYSwgMHhhZSwgMHg5NCwgMHhhYiwgMHg0Nywg
MHhmMSwgMHg4ZCwgMHhiNCwKKyAgICAweDc0LCAweGM3LCAweDQ3LCAweDkwLCAweGVhLCAweGFi
LCAweGIxLCAweDQ0LCAweDExLCAweGU3LCAweGEwLAorICAgIC8vIHVuc2lnbmVkKDQpIC0gcHVi
bGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkKKyAgICAweDA0LAorICAgIC8vIG1hcCg0KQorICAg
IDB4YTQsCisgICAgLy8gdGV4dCgyKQorICAgIDB4NjIsCisgICAgLy8gImlkIgorICAgIDB4Njks
IDB4NjQsCisgICAgLy8gYnl0ZXMoMzIpIC0gdXNlciBpZAorICAgIDB4NTgsIDB4MjAsCisgICAg
Ly8gdXNlciBpZAorICAgIDB4MzAsIDB4ODIsIDB4MDEsIDB4OTMsIDB4MzAsIDB4ODIsIDB4MDEs
IDB4MzgsIDB4YTAsIDB4MDMsIDB4MDIsIDB4MDEsCisgICAgMHgwMiwgMHgzMCwgMHg4MiwgMHgw
MSwgMHg5MywgMHgzMCwgMHg4MiwgMHgwMSwgMHgzOCwgMHhhMCwgMHgwMywgMHgwMiwKKyAgICAw
eDAxLCAweDAyLCAweDMwLCAweDgyLCAweDAxLCAweDkzLCAweDMwLCAweDgyLAorICAgIC8vIHRl
eHQoNCkKKyAgICAweDY0LAorICAgIC8vICJpY29uIgorICAgIDB4NjksIDB4NjMsIDB4NmYsIDB4
NmUsCisgICAgLy8gdGV4dCg0MCkKKyAgICAweDc4LCAweDI4LAorICAgIC8vICJodHRwczovL3Bp
Y3MuYWNtZS5jb20vMDAvcC9hQmpqanBxUGIucG5nIgorICAgIDB4NjgsIDB4NzQsIDB4NzQsIDB4
NzAsIDB4NzMsIDB4M2EsIDB4MmYsIDB4MmYsIDB4NzAsIDB4NjksIDB4NjMsIDB4NzMsCisgICAg
MHgyZSwgMHg2MSwgMHg2MywgMHg2ZCwgMHg2NSwgMHgyZSwgMHg2MywgMHg2ZiwgMHg2ZCwgMHgy
ZiwgMHgzMCwgMHgzMCwKKyAgICAweDJmLCAweDcwLCAweDJmLCAweDYxLCAweDQyLCAweDZhLCAw
eDZhLCAweDZhLCAweDcwLCAweDcxLCAweDUwLCAweDYyLAorICAgIDB4MmUsIDB4NzAsIDB4NmUs
IDB4NjcsCisgICAgLy8gdGV4dCg0KQorICAgIDB4NjQsCisgICAgLy8gIm5hbWUiCisgICAgMHg2
ZSwgMHg2MSwgMHg2ZCwgMHg2NSwKKyAgICAvLyB0ZXh0KDIyKQorICAgIDB4NzYsCisgICAgLy8g
ImpvaG5wc21pdGhAZXhhbXBsZS5jb20iCisgICAgMHg2YSwgMHg2ZiwgMHg2OCwgMHg2ZSwgMHg3
MCwgMHg3MywgMHg2ZCwgMHg2OSwgMHg3NCwgMHg2OCwgMHg0MCwgMHg2NSwKKyAgICAweDc4LCAw
eDYxLCAweDZkLCAweDcwLCAweDZjLCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAweDZkLAorICAg
IC8vIHRleHQoMTEpCisgICAgMHg2YiwKKyAgICAvLyAiZGlzcGxheU5hbWUiCisgICAgMHg2NCwg
MHg2OSwgMHg3MywgMHg3MCwgMHg2YywgMHg2MSwgMHg3OSwgMHg0ZSwgMHg2MSwgMHg2ZCwgMHg2
NSwKKyAgICAvLyB0ZXh0KDEzKQorICAgIDB4NmQsCisgICAgLy8gIkpvaG4gUC4gU21pdGgiCisg
ICAgMHg0YSwgMHg2ZiwgMHg2OCwgMHg2ZSwgMHgyMCwgMHg1MCwgMHgyZSwgMHgyMCwgMHg1Mywg
MHg2ZCwgMHg2OSwgMHg3NCwKKyAgICAweDY4LAorICAgIC8vIHVuc2lnbmVkKDUpIC0gbnVtYmVy
IG9mIGNyZWRlbnRpYWxzCisgICAgMHgwNSwKKyAgICAvLyAxCisgICAgMHgwMSwKK307CisKK30g
Ly8gbmFtZXNwYWNlIFRlc3REYXRhCisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352944</attachid>
            <date>2018-10-22 19:06:51 -0700</date>
            <delta_ts>2018-10-30 19:02:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190784-20181022190650.patch</filename>
            <type>text/plain</type>
            <size>148596</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjgwNzdjYTZlYTA2ZDky
MzU0OTI4MDU1NTQzNGZiMzEwMTVlMDI0Ni4uNjE5ZGI0YjI5NjNkN2Y1MWFjNzM0ZDYwYTEyMjJm
MTMxYzc4ZGJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDE4LTEwLTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBv
cnQgQ1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzIGZyb20gQ2hyb21pdW0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDc4NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU0NjAzMzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBvcnRzIENocm9taXVtJ3Mg
Q1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzOgorICAgICAgICBodHRwczov
L2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50
LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sI21lc3NhZ2Ut
ZW5jb2RpbmcKKyAgICAgICAgMS4gSXQgZGlyZWN0bHkgaW1wb3J0cyB0aGUgZm9sbG93aW5nIGZp
bGVzIGFuZCBzdWl0IHRoZW0gdG8gV2ViS2l0J3MgY29kaW5nIHN0eWxlOgorICAgICAgICBodHRw
czovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vZGV2aWNlX3Jlc3Bv
bnNlX2NvbnZlcnRlci5jYz9sPTIwJnJjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQy
ZDk5YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9k
ZXZpY2UvZmlkby9kZXZpY2VfcmVzcG9uc2VfY29udmVydGVyLmg/cmNsPTA5OGRmZDkwODUwZmZh
ODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5v
cmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhlbnRpY2F0b3JfZ2V0X2luZm9fcmVzcG9u
c2UuY2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAg
ICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhl
bnRpY2F0b3JfZ2V0X2luZm9fcmVzcG9uc2UuaD9yY2w9MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRh
Yjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1
bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9zdXBwb3J0ZWRfb3B0aW9ucy5jYz9yY2w9
MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczov
L2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9z
dXBwb3J0ZWRfb3B0aW9ucy5oP3JjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5
YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9kZXZp
Y2UvZmlkby9jdGFwX3JlcXVlc3RfdW5pdHRlc3QuY2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdh
ODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hy
b21pdW0vc3JjL2RldmljZS9maWRvL2N0YXBfcmVzcG9uc2VfdW5pdHRlc3QuY2M/cmNsPTA5OGRm
ZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5j
aHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2ZpZG9fdGVzdF9kYXRhLmg/bD0x
JnJjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5YzRlYzQ1CisgICAgICAgIDIu
IEl0IGdhdGhlcnMgdGhlIGZvbGxvd2luZyBtZXRob2RzIGludG8gRGV2aWNlUmVxdWVzdENvbnZl
cnRlcjoKKyAgICAgICAgQ3RhcEdldEFzc2VydGlvblJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisg
ICAgICAgIEN0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisgICAgICAg
IFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yOjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAg
UHVibGljS2V5Q3JlZGVudGlhbFBhcmFtczo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1Ymxp
Y0tleUNyZWRlbnRpYWxScEVudGl0eTo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1YmxpY0tl
eUNyZWRlbnRpYWxVc2VyRW50aXR5OjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAgMy4gSXQgYWxz
byBhcHBseSBhIHBhdGNoIGZyb20gQ2hyb21pdW0gdG8gQ0JPUlZhbHVlOgorICAgICAgICBodHRw
czovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjLysvN2I2ZmJmZjM1Y2Q4
ZTRkNTA4ZjA4ZTFjZDkzYjRhYTBhMGRjNDAyYyU1RSUyMS8KKworICAgICAgICBCZXNpZGVzIGlt
cG9ydGluZyB0aGluZ3MgZnJvbSBDaHJvbWl1bSwgaXQgYWxzbyBpbXBsZW1lbnRzIFVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudCBmb3IgYm90aAorICAgICAgICBQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zIGFuZCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgc3Vj
aCB0aGF0IGJvdGggb3B0aW9ucworICAgICAgICBjYW4gc3BlY2lmeSBtb3JlIGRpbWVuc2lvbnMg
b2YgYSBkZXNpcmVkIGF1dGhlbnRpY2F0b3IuCisKKyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVz
dHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
czo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjpkZWNvZGUpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9uczo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMu
aWRsLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpDQk9S
VmFsdWUpOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpnZXRCb29sIGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmg6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKGZpZG86OnRvQXJyYXlWYWx1ZSk6CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlOjpBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKToKKyAgICAg
ICAgKGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldE1heE1zZ1NpemUpOgor
ICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0UGluUHJvdG9j
b2xzKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldEV4
dGVuc2lvbnMpOgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6
c2V0T3B0aW9ucyk6CisgICAgICAgIChmaWRvOjplbmNvZGVBc0NCT1IpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnM6OnNldFN1cHBvcnRzUmVzaWRlbnRLZXkpOgorICAgICAgICAoZmlkbzo6QXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkp
OgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJQ
cmVzZW5jZVJlcXVpcmVkKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zOjpzZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkpOgorICAgICAgICAoZmlkbzo6QXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldElzUGxhdGZvcm1EZXZpY2UpOgorICAgICAgICAo
Zmlkbzo6Y29udmVydFRvQ0JPUik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChmaWRvOjpjb252ZXJ0UnBFbnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFVz
ZXJFbnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFBhcmFtZXRlcnNUb0NCT1Ip
OgorICAgICAgICAoZmlkbzo6Y29udmVydERlc2NyaXB0b3JUb0NCT1IpOgorICAgICAgICAoZmlk
bzo6ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKToKKyAgICAgICAgKGZpZG86OmVu
Y29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IpOgorICAgICAgICAoZmlkbzo6ZW5jb2RlRW1w
dHlBdXRoZW50aWNhdG9yUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRv
L0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KGZpZG86OmNvbnZlcnRTdHJpbmdUb1Byb3RvY29sVmVyc2lvbik6CisgICAgICAgIChmaWRvOjpn
ZXRSZXNwb25zZUNvZGUpOgorICAgICAgICAoZmlkbzo6Z2V0Q3JlZGVudGlhbElkKToKKyAgICAg
ICAgKGZpZG86OnJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZSk6CisgICAgICAgIChmaWRv
OjpyZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKToKKyAgICAgICAgKGZpZG86OnJlYWRDVEFQ
R2V0SW5mb1Jlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNl
UmVzcG9uc2VDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0
aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcDoKKyAgICAgICAgKGZpZG86OmlzQ3RhcERldmljZVJl
c3BvbnNlQ29kZSk6CisgICAgICAgIChmaWRvOjpwdWJsaWNLZXlDcmVkZW50aWFsVHlwZVRvU3Ry
aW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxOC0xMC0yMiAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgVXNlIExvY2F0aW9uID0gIlJlbGF0aXZlIHRvIEJ1aWxkIFByb2R1Y3Rz
IiByYXRoZXIgdGhhbiAiUmVsYXRpdmUgdG8gR3JvdXAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDYxMDY4NDhlY2JkYzc4MzYxZmZlY2YzOWRlMjgzNmY5ODBlNDE2MTcuLmYwNjg5YzNjNTkxODgz
M2ZhMzdkOTNmZGVkNGMwNWUyOTMzYWVlYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MzEs
NiArNDMxLDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3dl
YmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkbAogICAgIE1vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbAogICAgIE1vZHVsZXMv
d2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaWRsCisgICAgTW9kdWxlcy93ZWJhdXRo
bi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsCiAKICAgICBNb2R1bGVzL3dlYmRhdGFi
YXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmlkbAogICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBmOGIwZDc5Y2U2YTBm
NDE5M2NlYzUzYjZkZTdkMTBkYzQ3MGQxZDMxLi4zYjIxZWY1ZjIzYzBhNzFmNzE4NjBlMzIzY2U5
NzBjYTQ3M2JlMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM1NSw2ICsz
NTUsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1
dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5p
ZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2lu
ZG93V2ViRGF0YWJhc2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VDYWxsYmFjay5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaApp
bmRleCA4YWZiNGRkNGQ0NjFlODZlNjk0ODMzOWUyMTFiMTk5ZTcxYTk4NzMzLi5iYTY4ZGY5MmIx
ODJjN2E5YjEzYTM2NmZhOTExNjA4MmViNDY1ZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkJ1ZmZlclNvdXJj
ZS5oIgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmgiCiAjaW5jbHVk
ZSAiUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCIKKyNpbmNsdWRlICJVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC02NSw3ICs2Niw5IEBAIHN0cnVjdCBQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIHsKICAgICB9OwogCiAgICAgc3RydWN0IEF1dGhlbnRp
Y2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSB7Ci0gICAgICAgIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50
IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OworICAgICAgICBzdGQ6Om9wdGlvbmFsPEF1dGhlbnRp
Y2F0b3JBdHRhY2htZW50PiBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAgICAgICAgYm9vbCBy
ZXF1aXJlUmVzaWRlbnRLZXkgeyBmYWxzZSB9OworICAgICAgICBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQgdXNlclZlcmlmaWNhdGlvbiB7IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6
UHJlZmVycmVkIH07CiAKICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OwogICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE+IGRlY29kZShE
ZWNvZGVyJik7CkBAIC0xMDUsMTQgKzEwOCwyNyBAQCBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IFB1YmxpY0tleUNyZWRlbnRpYQog
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50
OworICAgIGVuY29kZXIgPDwgYXV0aGVudGljYXRvckF0dGFjaG1lbnQgPDwgcmVxdWlyZVJlc2lk
ZW50S2V5IDw8IHVzZXJWZXJpZmljYXRpb247CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
CiBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhl
bnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYT4gUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKIHsKICAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50
aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgcmVzdWx0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVF
bnVtKHJlc3VsdC5hdXRoZW50aWNhdG9yQXR0YWNobWVudCkpCisKKyAgICBzdGQ6Om9wdGlvbmFs
PHN0ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRvckF0dGFjaG1lbnQ+PiBhdXRoZW50aWNhdG9yQXR0
YWNobWVudDsKKyAgICBkZWNvZGVyID4+IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OworICAgIGlm
ICghYXV0aGVudGljYXRvckF0dGFjaG1lbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgcmVzdWx0LmF1dGhlbnRpY2F0b3JBdHRhY2htZW50ID0gV1RGTW92ZSgqYXV0aGVudGlj
YXRvckF0dGFjaG1lbnQpOworCisgICAgc3RkOjpvcHRpb25hbDxib29sPiByZXF1aXJlUmVzaWRl
bnRLZXk7CisgICAgZGVjb2RlciA+PiByZXF1aXJlUmVzaWRlbnRLZXk7CisgICAgaWYgKCFyZXF1
aXJlUmVzaWRlbnRLZXkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmVzdWx0
LnJlcXVpcmVSZXNpZGVudEtleSA9ICpyZXF1aXJlUmVzaWRlbnRLZXk7CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlRW51bShyZXN1bHQudXNlclZlcmlmaWNhdGlvbikpCiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsCmluZGV4IGEzMTUyNWYzMjU0OGRiNjU4MzkzNmViYjAz
MjdiOTU0YTFjNzEwNjEuLjM2ZTE4MGJlZGZjODIwMWYzYmM0YjUzNWNhYzBmNzQzYzhlN2M1ZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbApAQCAtNzQsMTAg
Kzc0LDggQEAgdHlwZWRlZiBsb25nIENPU0VBbGdvcml0aG1JZGVudGlmaWVyOwogICAgIENvbmRp
dGlvbmFsPVdFQl9BVVRITiwKIF0gZGljdGlvbmFyeSBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3Jp
dGVyaWEgewogICAgIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50ICAgICAgYXV0aGVudGljYXRvckF0
dGFjaG1lbnQ7Ci0gICAgLy8gV2UgZG9uJ3QgYWxsb3cgUlBzIHRvIHNldCB0aGUgZm9sbG93aW5n
IHZhbHVlcyBhdCB0aGlzIHN0YWdlLgotICAgIC8vIEhlbmNlLCB0aG9zZSBvcHRpb25zIGFyZSBh
bHdheXMgeyB0cnVlLCAicmVxdWlyZWQiIH0uCi0gICAgLy8gYm9vbGVhbiAgICAgICAgICAgICAg
ICAgICAgICByZXF1aXJlUmVzaWRlbnRLZXkgPSBmYWxzZTsKLSAgICAvLyBVc2VyVmVyaWZpY2F0
aW9uUmVxdWlyZW1lbnQgIHVzZXJWZXJpZmljYXRpb24gPSAicHJlZmVycmVkIjsKKyAgICBib29s
ZWFuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVSZXNpZGVudEtleSA9IGZhbHNlOworICAg
IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCAgdXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJy
ZWQiOwogfTsKIAogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgKaW5kZXgg
Mjc0NDc2ZWY3MjdiODVkNzVkZDFhOWUyMGM1ODdhZDFiOTJmMGYwMS4uYmI0ZmY5MmMyYzUxY2Jk
ODI5MzVkMDhmZDBhNTYxMjIyNzFlZTg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIK
ICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIlVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4LDYgKzM5LDcgQEAgc3RydWN0IFB1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyB7CiAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gdGlt
ZW91dDsKICAgICBtdXRhYmxlIFN0cmluZyBycElkOwogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVk
ZW50aWFsRGVzY3JpcHRvcj4gYWxsb3dDcmVkZW50aWFsczsKKyAgICBzdGQ6Om9wdGlvbmFsPFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudD4gdXNlclZlcmlmaWNhdGlvbiB7IFVzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkIH07CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zPiBkZWNvZGUoRGVjb2RlciYpOwpAQCAtNDcsNyArNDksNyBAQCBzdHJ1Y3QgUHVibGljS2V5
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIHsKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lk
IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCB0aW1lb3V0IDw8IHJwSWQgPDwgYWxsb3dDcmVk
ZW50aWFsczsKKyAgICBlbmNvZGVyIDw8IHRpbWVvdXQgPDwgcnBJZCA8PCBhbGxvd0NyZWRlbnRp
YWxzIDw8IHVzZXJWZXJpZmljYXRpb247CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBA
IC02NSw2ICs2NywxMyBAQCBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucz4gUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpbwogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFsbG93Q3JlZGVu
dGlhbHMpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25h
bDxzdGQ6Om9wdGlvbmFsPFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudD4+IHVzZXJWZXJpZmlj
YXRpb247CisgICAgZGVjb2RlciA+PiB1c2VyVmVyaWZpY2F0aW9uOworICAgIGlmICghdXNlclZl
cmlmaWNhdGlvbikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXN1bHQudXNl
clZlcmlmaWNhdGlvbiA9IFdURk1vdmUoKnVzZXJWZXJpZmljYXRpb24pOworCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsCmlu
ZGV4IDg5YTIwNmRjOWM5ZmQyMTc4YjkxNjE2ZWQxMTY1ZmI0N2U4ZTRkZTAuLmQ2NTFkYjI4YWU2
NmQwZmM2OTgyMTBkNjg3MTZkNmUxMTE0MGM4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucy5pZGwKQEAgLTMwLDggKzMwLDcgQEAKICAgICB1bnNpZ25lZCBsb25nIHRp
bWVvdXQ7CiAgICAgVVNWU3RyaW5nIHJwSWQ7CiAgICAgc2VxdWVuY2U8UHVibGljS2V5Q3JlZGVu
dGlhbERlc2NyaXB0b3I+IGFsbG93Q3JlZGVudGlhbHMgPSBbXTsKLSAgICAvLyBBbHdheXMgInJl
cXVpcmVkIiBhdCB0aGlzIHN0YWdlCi0gICAgLy8gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
IHVzZXJWZXJpZmljYXRpb24gPSAicHJlZmVycmVkIjsKKyAgICBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQgdXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJyZWQiOwogICAgIC8vIE5vdCBzdXBw
b3J0IHlldC4KICAgICAvLyBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnMgZXh0ZW5zaW9uczsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9Vc2Vy
VmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzE0ZDAyYzUyZDlhYWMyMTU3
NWZlYjZmZWE4ZjQxNDhmYzU3NDk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaApAQCAtMCwwICsx
LDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhO
KQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitlbnVtIGNsYXNzIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB7CisgICAgUmVxdWlyZWQs
CisgICAgUHJlZmVycmVkLAorICAgIERpc2NvdXJhZ2VkCit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRz
PFdlYkNvcmU6OlVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudD4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJpZmljYXRpb25SZXF1aXJl
bWVudCwKKyAgICAgICAgV2ViQ29yZTo6VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1
aXJlZCwKKyAgICAgICAgV2ViQ29yZTo6VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVm
ZXJyZWQsCisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlz
Y291cmFnZWQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjliZjRmYjk1ZWEwMDJlNWJhOTY1Y2Q1N2IxNTIxYzU4MGU2NDk5Y2MKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1
aXJlbWVudC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRp
b25hbD1XRUJfQVVUSE4sCisgICAgSW1wbGVtZW50ZWRBcz1Vc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQKK10gZW51bSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgeworICAgICJyZXF1aXJl
ZCIsCisgICAgInByZWZlcnJlZCIsCisgICAgImRpc2NvdXJhZ2VkIgorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5jcHAKaW5kZXggMjVl
ZDk4YjkxZjgzYTRiNDY4MzBkZjQ4ZmEwNWJhODY4YzgxMjJiMy4uNGM4ZmZhZDFhOGNmMGY1MTQ3
Y2M3Njc0NGJiYTg2ZGU1MWM5ZGNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5jcHAKQEAgLTE1Myw2ICsxNTMsMTIgQEAgQ0JPUlZh
bHVlOjpDQk9SVmFsdWUoU2ltcGxlVmFsdWUgaW5TaW1wbGUpCiAgICAgQVNTRVJUKHN0YXRpY19j
YXN0PGludD4oaW5TaW1wbGUpID49IDIwICYmIHN0YXRpY19jYXN0PGludD4oaW5TaW1wbGUpIDw9
IDIzKTsKIH0KIAorQ0JPUlZhbHVlOjpDQk9SVmFsdWUoYm9vbCBpbkJvb2wpCisgICAgOiBtX3R5
cGUoVHlwZTo6U2ltcGxlVmFsdWUpCit7CisgICAgbV9zaW1wbGVWYWx1ZSA9IGluQm9vbCA/IENC
T1JWYWx1ZTo6U2ltcGxlVmFsdWU6OlRydWVWYWx1ZSA6IENCT1JWYWx1ZTo6U2ltcGxlVmFsdWU6
OkZhbHNlVmFsdWU7Cit9CisKIENCT1JWYWx1ZSYgQ0JPUlZhbHVlOjpvcGVyYXRvcj0oQ0JPUlZh
bHVlJiYgdGhhdCkKIHsKICAgICBpbnRlcm5hbENsZWFudXAoKTsKQEAgLTI0MCw2ICsyNDYsMTIg
QEAgQ0JPUlZhbHVlOjpTaW1wbGVWYWx1ZSBDQk9SVmFsdWU6OmdldFNpbXBsZVZhbHVlKCkgY29u
c3QKICAgICByZXR1cm4gbV9zaW1wbGVWYWx1ZTsKIH0KIAorYm9vbCBDQk9SVmFsdWU6OmdldEJv
b2woKSBjb25zdAoreworICAgIEFTU0VSVChpc0Jvb2woKSk7CisgICAgcmV0dXJuIG1fc2ltcGxl
VmFsdWUgPT0gU2ltcGxlVmFsdWU6OlRydWVWYWx1ZTsKK30KKwogdm9pZCBDQk9SVmFsdWU6Omlu
dGVybmFsTW92ZUNvbnN0cnVjdEZyb20oQ0JPUlZhbHVlJiYgdGhhdCkKIHsKICAgICBtX3R5cGUg
PSB0aGF0Lm1fdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vY2Jvci9DQk9SVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jv
ci9DQk9SVmFsdWUuaAppbmRleCBlMmRiMGUxMjczOGE5OWE3NDdjODJmNDA5MTMwMDRjNjYwYjdl
OGQ0Li42YTRjODNhYmEwMzFjMzhkMzc5ZTY2YmM5M2VjNDdlNWYxOTMxNzYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5oCkBAIC0xMzgs
NiArMTM4LDcgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IENCT1JWYWx1ZShNYXBWYWx1ZSYmKTsK
IAogICAgIGV4cGxpY2l0IENCT1JWYWx1ZShTaW1wbGVWYWx1ZSk7CisgICAgZXhwbGljaXQgQ0JP
UlZhbHVlKGJvb2wpOwogCiAgICAgQ0JPUlZhbHVlJiBvcGVyYXRvcj0oQ0JPUlZhbHVlJiYpOwog
CkBAIC0xNjEsOSArMTYyLDExIEBAIHB1YmxpYzoKICAgICBib29sIGlzQXJyYXkoKSBjb25zdCB7
IHJldHVybiB0eXBlKCkgPT0gVHlwZTo6QXJyYXk7IH0KICAgICBib29sIGlzTWFwKCkgY29uc3Qg
eyByZXR1cm4gdHlwZSgpID09IFR5cGU6Ok1hcDsgfQogICAgIGJvb2wgaXNTaW1wbGUoKSBjb25z
dCB7IHJldHVybiB0eXBlKCkgPT0gVHlwZTo6U2ltcGxlVmFsdWU7IH0KKyAgICBib29sIGlzQm9v
bCgpIGNvbnN0IHsgcmV0dXJuIGlzU2ltcGxlKCkgJiYgKG1fc2ltcGxlVmFsdWUgPT0gU2ltcGxl
VmFsdWU6OlRydWVWYWx1ZSB8fCBtX3NpbXBsZVZhbHVlID09IFNpbXBsZVZhbHVlOjpGYWxzZVZh
bHVlKTsgfQogCiAgICAgLy8gVGhlc2Ugd2lsbCBhbGwgZmF0YWxseSBhc3NlcnQgaWYgdGhlIHR5
cGUgZG9lc24ndCBtYXRjaC4KICAgICBTaW1wbGVWYWx1ZSBnZXRTaW1wbGVWYWx1ZSgpIGNvbnN0
OworICAgIGJvb2wgZ2V0Qm9vbCgpIGNvbnN0OwogICAgIGNvbnN0IGludDY0X3QmIGdldEludGVn
ZXIoKSBjb25zdDsKICAgICBjb25zdCBpbnQ2NF90JiBnZXRVbnNpZ25lZCgpIGNvbnN0OwogICAg
IGNvbnN0IGludDY0X3QmIGdldE5lZ2F0aXZlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdldEluZm9SZXNwb25z
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRv
ckdldEluZm9SZXNwb25zZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UwNGUyNTIzMTc3NDQ4ODVmN2Y2MjQ3
ZWZhNjUwMmFmNGVhNDE2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmNwcApAQCAtMCww
ICsxLDEwOCBAQAorLy8gQ29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0
OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
Ly8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisv
LyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZS5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkNCT1JWYWx1ZS5o
IgorI2luY2x1ZGUgIkNCT1JXcml0ZXIuaCIKKworbmFtZXNwYWNlIGZpZG8geworCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgQ29udGFpbmVyPgorY2Jvcjo6Q0JPUlZhbHVlOjpBcnJheVZhbHVlIHRvQXJy
YXlWYWx1ZShjb25zdCBDb250YWluZXImIGNvbnRhaW5lcikKK3sKKyAgICBjYm9yOjpDQk9SVmFs
dWU6OkFycmF5VmFsdWUgdmFsdWU7CisgICAgdmFsdWUucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShj
b250YWluZXIuc2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW0gOiBjb250YWluZXIp
CisgICAgICAgIHZhbHVlLmFwcGVuZChjYm9yOjpDQk9SVmFsdWUoaXRlbSkpOworICAgIHJldHVy
biB2YWx1ZTsKK30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6QXV0aGVudGljYXRv
ckdldEluZm9SZXNwb25zZShzdGQ6OnNldDxQcm90b2NvbFZlcnNpb24+JiYgdmVyc2lvbnMsIFZl
Y3Rvcjx1aW50OF90PiYmIGFhZ3VpZCkKKyAgICA6IG1fdmVyc2lvbnMoV1RGTW92ZSh2ZXJzaW9u
cykpCisgICAgLCBtX2FhZ3VpZChXVEZNb3ZlKGFhZ3VpZCkpCit7Cit9CisKK0F1dGhlbnRpY2F0
b3JHZXRJbmZvUmVzcG9uc2UmIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldE1heE1z
Z1NpemUodWludDMyX3QgbWF4TXNnU2l6ZSkKK3sKKyAgICBtX21heE1zZ1NpemUgPSBtYXhNc2dT
aXplOworICAgIHJldHVybiAqdGhpczsKK30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25z
ZSYgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0UGluUHJvdG9jb2xzKFZlY3Rvcjx1
aW50OF90PiYmIHBpblByb3RvY29scykKK3sKKyAgICBtX3BpblByb3RvY29scyA9IFdURk1vdmUo
cGluUHJvdG9jb2xzKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0F1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2UmIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldEV4dGVuc2lvbnMo
VmVjdG9yPFN0cmluZz4mJiBleHRlbnNpb25zKQoreworICAgIG1fZXh0ZW5zaW9ucyA9IFdURk1v
dmUoZXh0ZW5zaW9ucyk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitBdXRoZW50aWNhdG9yR2V0
SW5mb1Jlc3BvbnNlJiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlOjpzZXRPcHRpb25zKEF1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiYgb3B0aW9ucykKK3sKKyAgICBtX29wdGlvbnMg
PSBXVEZNb3ZlKG9wdGlvbnMpOworICAgIHJldHVybiAqdGhpczsKK30KKworVmVjdG9yPHVpbnQ4
X3Q+IGVuY29kZUFzQ0JPUihjb25zdCBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiByZXNw
b25zZSkKK3sKKyAgICBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGRldmljZUluZm9NYXA7CisK
KyAgICBjYm9yOjpDQk9SVmFsdWU6OkFycmF5VmFsdWUgdmVyc2lvbkFycmF5OworICAgIGZvciAo
Y29uc3QgYXV0byYgdmVyc2lvbiA6IHJlc3BvbnNlLnZlcnNpb25zKCkpCisgICAgICAgIHZlcnNp
b25BcnJheS5hcHBlbmQodmVyc2lvbiA9PSBQcm90b2NvbFZlcnNpb246OmtDdGFwID8ga0N0YXAy
VmVyc2lvbiA6IGtVMmZWZXJzaW9uKTsKKyAgICBkZXZpY2VJbmZvTWFwLmVtcGxhY2UoMSwgV1RG
TW92ZSh2ZXJzaW9uQXJyYXkpKTsKKworICAgIGlmIChyZXNwb25zZS5leHRlbnNpb25zKCkpCisg
ICAgICAgIGRldmljZUluZm9NYXAuZW1wbGFjZSgyLCB0b0FycmF5VmFsdWUoKnJlc3BvbnNlLmV4
dGVuc2lvbnMoKSkpOworCisgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKDMsIHJlc3BvbnNlLmFh
Z3VpZCgpKTsKKyAgICBkZXZpY2VJbmZvTWFwLmVtcGxhY2UoNCwgY29udmVydFRvQ0JPUihyZXNw
b25zZS5vcHRpb25zKCkpKTsKKworICAgIGlmIChyZXNwb25zZS5tYXhNc2dTaXplKCkpCisgICAg
ICAgIGRldmljZUluZm9NYXAuZW1wbGFjZSg1LCBzdGF0aWNfY2FzdDxpbnQ2NF90PigqcmVzcG9u
c2UubWF4TXNnU2l6ZSgpKSk7CisKKyAgICBpZiAocmVzcG9uc2UucGluUHJvdG9jb2woKSkKKyAg
ICAgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKDYsIHRvQXJyYXlWYWx1ZSgqcmVzcG9uc2UucGlu
UHJvdG9jb2woKSkpOworCisgICAgYXV0byBlbmNvZGVkQnl0ZXMgPSBjYm9yOjpDQk9SV3JpdGVy
Ojp3cml0ZShjYm9yOjpDQk9SVmFsdWUoV1RGTW92ZShkZXZpY2VJbmZvTWFwKSkpOworICAgIEFT
U0VSVChlbmNvZGVkQnl0ZXMpOworICAgIHJldHVybiAqZW5jb2RlZEJ5dGVzOworfQorCit9IC8v
IG5hbWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRlNjBhMmY5M2RiMGY0NDU1
MTg1ZDA2NTAxZGQwMWMxNWU5ZjExYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmgKQEAg
LTAsMCArMSw3NiBAQAorLy8gQ29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8g
bWV0OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8v
CisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oIgorI2luY2x1ZGUgIkZpZG9Db25zdGFudHMu
aCIKKyNpbmNsdWRlIDxzZXQ+CisKK25hbWVzcGFjZSBmaWRvIHsKKworLy8gQXV0aGVudGljYXRv
ciByZXNwb25zZSBmb3IgQXV0aGVudGljYXRvckdldEluZm8gcmVxdWVzdCB0aGF0IGVuY2Fwc3Vs
YXRlcworLy8gdmVyc2lvbnMsIG9wdGlvbnMsIEFBR1VJRChBdXRoZW50aWNhdG9yIEF0dGVzdGF0
aW9uIEdVSUQpLCBvdGhlcgorLy8gYXV0aGVudGljYXRvciBkZXZpY2UgaW5mb3JtYXRpb24uCisv
LyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2Zp
ZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1s
I2F1dGhlbnRpY2F0b3JnZXRpbmZvLTB4MDQKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEF1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UpOworcHVibGljOgorICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2Uoc3RkOjpzZXQ8UHJvdG9jb2xWZXJzaW9uPiYmIHZlcnNpb25zLCBWZWN0b3I8dWlu
dDhfdD4mJiBhYWd1aWQpOworICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UoQXV0aGVu
dGljYXRvckdldEluZm9SZXNwb25zZSYmIHRoYXQpID0gZGVmYXVsdDsKKyAgICBBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlJiBvcGVyYXRvcj0oQXV0aGVudGljYXRvckdldEluZm9SZXNwb25z
ZSYmIG90aGVyKSA9IGRlZmF1bHQ7CisKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNl
JiBzZXRNYXhNc2dTaXplKHVpbnQzMl90KTsKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3Bv
bnNlJiBzZXRQaW5Qcm90b2NvbHMoVmVjdG9yPHVpbnQ4X3Q+JiYpOworICAgIEF1dGhlbnRpY2F0
b3JHZXRJbmZvUmVzcG9uc2UmIHNldEV4dGVuc2lvbnMoVmVjdG9yPFN0cmluZz4mJik7CisgICAg
QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgc2V0T3B0aW9ucyhBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9ucyYmKTsKKworICAgIGNvbnN0IHN0ZDo6c2V0PFByb3RvY29sVmVyc2lvbj4m
IHZlcnNpb25zKCkgY29uc3QgeyByZXR1cm4gbV92ZXJzaW9uczsgfQorICAgIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgYWFndWlkKCkgY29uc3QgeyByZXR1cm4gbV9hYWd1aWQ7IH0KKyAgICBjb25z
dCBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiYgbWF4TXNnU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWF4TXNnU2l6ZTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiYg
cGluUHJvdG9jb2woKSBjb25zdCB7IHJldHVybiBtX3BpblByb3RvY29sczsgfQorICAgIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBleHRlbnNpb25zKCkgY29uc3QgeyByZXR1
cm4gbV9leHRlbnNpb25zOyB9CisgICAgY29uc3QgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlv
bnMmIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7IH0KKworcHJpdmF0ZToKKyAg
ICBzdGQ6OnNldDxQcm90b2NvbFZlcnNpb24+IG1fdmVyc2lvbnM7CisgICAgVmVjdG9yPHVpbnQ4
X3Q+IG1fYWFndWlkOworICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IG1fbWF4TXNnU2l6ZTsK
KyAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gbV9waW5Qcm90b2NvbHM7CisgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gbV9leHRlbnNpb25zOworICAgIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zIG1fb3B0aW9uczsKK307CisKK1dFQkNPUkVfRVhQT1JUIFZl
Y3Rvcjx1aW50OF90PiBlbmNvZGVBc0NCT1IoY29uc3QgQXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZSYpOworCit9IC8vIG5hbWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTBlMWJhNTJmYmI0MTdjOTQxODk1ZWM2ODM0MGMwNjc2ODhmMGNkYwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9ucy5jcHAKQEAgLTAsMCArMSwxMDcgQEAKKy8vIENvcHlyaWdodCAyMDE4
IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8v
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8v
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FV
VEhOKQorCisjaW5jbHVkZSAiRmlkb0NvbnN0YW50cy5oIgorCituYW1lc3BhY2UgZmlkbyB7CisK
K0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9uczo6c2V0U3VwcG9ydHNSZXNpZGVudEtleShib29sIHN1cHBvcnRzUmVzaWRlbnRLZXkpCit7
CisgICAgbV9zdXBwb3J0c1Jlc2lkZW50S2V5ID0gc3VwcG9ydHNSZXNpZGVudEtleTsKKyAgICBy
ZXR1cm4gKnRoaXM7Cit9CisKK0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eShV
c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5IHVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkp
Cit7CisgICAgbV91c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5ID0gdXNlclZlcmlmaWNhdGlv
bkF2YWlsYWJpbGl0eTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0F1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zJiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0VXNlclByZXNl
bmNlUmVxdWlyZWQoYm9vbCB1c2VyUHJlc2VuY2VSZXF1aXJlZCkKK3sKKyAgICBtX3VzZXJQcmVz
ZW5jZVJlcXVpcmVkID0gdXNlclByZXNlbmNlUmVxdWlyZWQ7CisgICAgcmV0dXJuICp0aGlzOwor
fQorCitBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgQXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnM6OnNldENsaWVudFBpbkF2YWlsYWJpbGl0eShDbGllbnRQaW5BdmFpbGFiaWxpdHkg
Y2xpZW50UGluQXZhaWxhYmlsaXR5KQoreworICAgIG1fY2xpZW50UGluQXZhaWxhYmlsaXR5ID0g
Y2xpZW50UGluQXZhaWxhYmlsaXR5OworICAgIHJldHVybiAqdGhpczsKK30KKworQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnMmIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpzZXRJ
c1BsYXRmb3JtRGV2aWNlKGJvb2wgaXNQbGF0Zm9ybURldmljZSkKK3sKKyAgICBtX2lzUGxhdGZv
cm1EZXZpY2UgPSBpc1BsYXRmb3JtRGV2aWNlOworICAgIHJldHVybiAqdGhpczsKK30KKworY2Jv
cjo6Q0JPUlZhbHVlIGNvbnZlcnRUb0NCT1IoY29uc3QgQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnMmIG9wdGlvbnMpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25N
YXA7CisgICAgb3B0aW9uTWFwLmVtcGxhY2Uoa1Jlc2lkZW50S2V5TWFwS2V5LCBvcHRpb25zLnN1
cHBvcnRzUmVzaWRlbnRLZXkoKSk7CisgICAgb3B0aW9uTWFwLmVtcGxhY2Uoa1VzZXJQcmVzZW5j
ZU1hcEtleSwgb3B0aW9ucy51c2VyUHJlc2VuY2VSZXF1aXJlZCgpKTsKKyAgICBvcHRpb25NYXAu
ZW1wbGFjZShrUGxhdGZvcm1EZXZpY2VNYXBLZXksIG9wdGlvbnMuaXNQbGF0Zm9ybURldmljZSgp
KTsKKworICAgIHVzaW5nIFV2QXZhaWxhYmlsaXR5ID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk7CisKKyAgICBzd2l0Y2ggKG9wdGlv
bnMudXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSgpKSB7CisgICAgY2FzZSBVdkF2YWlsYWJp
bGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQ6CisgICAgICAgIG9wdGlvbk1hcC5lbXBsYWNl
KGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5LCB0cnVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBVdkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dE5vdENvbmZpZ3VyZWQ6CisgICAgICAgIG9w
dGlvbk1hcC5lbXBsYWNlKGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5LCBmYWxzZSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVXZBdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQ6CisgICAgICAg
IGJyZWFrOworICAgIH0KKworICAgIHVzaW5nIENsaWVudFBpbkF2YWlsYWJpbGl0eSA9IEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk7CisKKyAgICBz
d2l0Y2ggKG9wdGlvbnMuY2xpZW50UGluQXZhaWxhYmlsaXR5KCkpIHsKKyAgICBjYXNlIENsaWVu
dFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNldDoKKyAgICAgICAgb3B0aW9uTWFw
LmVtcGxhY2Uoa0NsaWVudFBpbk1hcEtleSwgdHJ1ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0UGluTm90U2V0OgorICAgICAg
ICBvcHRpb25NYXAuZW1wbGFjZShrQ2xpZW50UGluTWFwS2V5LCBmYWxzZSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ2xpZW50UGluQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkOgorICAg
ICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gY2Jvcjo6Q0JPUlZhbHVlKFdURk1vdmUo
b3B0aW9uTWFwKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVjNDBhZTRiZTQyNjE0YzcxNGU1N2ZhZjZhNDQ2NWM3ZjJmZjk5MTYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnMuaApAQCAtMCwwICsxLDk2IEBACisvLyBDb3B5cmlnaHQgMjAx
OCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisv
LyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisv
LyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFdFQl9BVVRITikKKworI2luY2x1ZGUgIkNCT1JWYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisKK25hbWVzcGFjZSBmaWRvIHsKKworLy8gUmVwcmVzZW50cyBDVEFQIGRldmljZSBw
cm9wZXJ0aWVzIGFuZCBjYXBhYmlsaXRpZXMgcmVjZWl2ZWQgYXMgYSByZXNwb25zZSB0bworLy8g
QXV0aGVudGljYXRvckdldEluZm8gY29tbWFuZC4KK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyk7CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBVc2Vy
VmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5IHsKKyAgICAgICAgLy8gZS5nLiBBdXRoZW50aWNhdG9y
IHdpdGggZmluZ2VyIHByaW50IHNlbnNvciBhbmQgdXNlcidzIGZpbmdlcnByaW50IGlzCisgICAg
ICAgIC8vIHJlZ2lzdGVyZWQgdG8gdGhlIGRldmljZS4KKyAgICAgICAga1N1cHBvcnRlZEFuZENv
bmZpZ3VyZWQsCisgICAgICAgIC8vIGUuZy4gQXV0aGVudGljYXRvciB3aXRoIGZpbmdlcnByaW50
IHNlbnNvciB3aXRob3V0IHVzZXIncyBmaW5nZXJwcmludAorICAgICAgICAvLyByZWdpc3RlcmVk
LgorICAgICAgICBrU3VwcG9ydGVkQnV0Tm90Q29uZmlndXJlZCwKKyAgICAgICAga05vdFN1cHBv
cnRlZAorICAgIH07CisKKyAgICBlbnVtIGNsYXNzIENsaWVudFBpbkF2YWlsYWJpbGl0eSB7Cisg
ICAgICAgIGtTdXBwb3J0ZWRBbmRQaW5TZXQsCisgICAgICAgIGtTdXBwb3J0ZWRCdXRQaW5Ob3RT
ZXQsCisgICAgICAgIGtOb3RTdXBwb3J0ZWQsCisgICAgfTsKKworICAgIEF1dGhlbnRpY2F0b3JT
dXBwb3J0ZWRPcHRpb25zKCkgPSBkZWZhdWx0OworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zKEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiYpID0gZGVmYXVsdDsKKyAgICBB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgb3BlcmF0b3I9KEF1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zJiYpID0gZGVmYXVsdDsKKworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zJiBzZXRJc1BsYXRmb3JtRGV2aWNlKGJvb2wpOworICAgIEF1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zJiBzZXRTdXBwb3J0c1Jlc2lkZW50S2V5KGJvb2wpOworICAgIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBzZXRVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KFVz
ZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkpOworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zJiBzZXRVc2VyUHJlc2VuY2VSZXF1aXJlZChib29sKTsKKyAgICBBdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9ucyYgc2V0Q2xpZW50UGluQXZhaWxhYmlsaXR5KENsaWVudFBpbkF2YWls
YWJpbGl0eSk7CisKKyAgICBib29sIGlzUGxhdGZvcm1EZXZpY2UoKSBjb25zdCB7IHJldHVybiBt
X2lzUGxhdGZvcm1EZXZpY2U7IH0KKyAgICBib29sIHN1cHBvcnRzUmVzaWRlbnRLZXkoKSBjb25z
dCB7IHJldHVybiBtX3N1cHBvcnRzUmVzaWRlbnRLZXk7IH0KKyAgICBVc2VyVmVyaWZpY2F0aW9u
QXZhaWxhYmlsaXR5IHVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSBjb25zdCB7IHJldHVy
biBtX3VzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk7IH0KKyAgICBib29sIHVzZXJQcmVzZW5j
ZVJlcXVpcmVkKCkgY29uc3QgeyByZXR1cm4gbV91c2VyUHJlc2VuY2VSZXF1aXJlZDsgfQorICAg
IENsaWVudFBpbkF2YWlsYWJpbGl0eSBjbGllbnRQaW5BdmFpbGFiaWxpdHkoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudFBpbkF2YWlsYWJpbGl0eTsgfQorCitwcml2YXRlOgorICAgIC8vIEluZGlj
YXRlcyB0aGF0IHRoZSBkZXZpY2UgaXMgYXR0YWNoZWQgdG8gdGhlIGNsaWVudCBhbmQgdGhlcmVm
b3JlIGNhbid0IGJlCisgICAgLy8gcmVtb3ZlZCBhbmQgdXNlZCBvbiBhbm90aGVyIGNsaWVudC4K
KyAgICBib29sIG1faXNQbGF0Zm9ybURldmljZSB7IGZhbHNlIH07CisgICAgLy8gSW5kaWNhdGVz
IHRoYXQgdGhlIGRldmljZSBpcyBjYXBhYmxlIG9mIHN0b3Jpbmcga2V5cyBvbiB0aGUgZGV2aWNl
IGl0c2VsZgorICAgIC8vIGFuZCB0aGVyZWZvcmUgY2FuIHNhdGlzZnkgdGhlIGF1dGhlbnRpY2F0
b3JHZXRBc3NlcnRpb24gcmVxdWVzdCB3aXRoCisgICAgLy8gYWxsb3dMaXN0IHBhcmFtZXRlciBu
b3Qgc3BlY2lmaWVkIG9yIGVtcHR5LgorICAgIGJvb2wgbV9zdXBwb3J0c1Jlc2lkZW50S2V5IHsg
ZmFsc2UgfTsKKyAgICAvLyBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZGV2aWNlIGlzIGNhcGFibGUg
b2YgdmVyaWZ5aW5nIHRoZSB1c2VyIG9uIGl0cyBvd24uCisgICAgVXNlclZlcmlmaWNhdGlvbkF2
YWlsYWJpbGl0eSBtX3VzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgeyBVc2VyVmVyaWZpY2F0
aW9uQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkIH07CisgICAgYm9vbCBtX3VzZXJQcmVzZW5j
ZVJlcXVpcmVkIHsgdHJ1ZSB9OworICAgIC8vIFJlcHJlc2VudHMgd2hldGhlciBjbGllbnQgcGlu
IGluIHNldCBhbmQgc3RvcmVkIGluIGRldmljZS4gU2V0IGFzIG51bGwKKyAgICAvLyBvcHRpb25h
bCBpZiBjbGllbnQgcGluIGNhcGFiaWxpdHkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYXV0aGVu
dGljYXRvci4KKyAgICBDbGllbnRQaW5BdmFpbGFiaWxpdHkgbV9jbGllbnRQaW5BdmFpbGFiaWxp
dHkgeyBDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQgfTsKK307CisKK1dFQkNP
UkVfRVhQT1JUIGNib3I6OkNCT1JWYWx1ZSBjb252ZXJ0VG9DQk9SKGNvbnN0IEF1dGhlbnRpY2F0
b3JTdXBwb3J0ZWRPcHRpb25zJik7CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKworI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGQ5NjE4ZmIwNDMzNzU0OGU5NjU3ZDE3ZDVlNzlmYTJhMmM4NWEyMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0
Q29udmVydGVyLmNwcApAQCAtMCwwICsxLDE4MiBAQAorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIENo
cm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8g
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2
aWNlUmVxdWVzdENvbnZlcnRlci5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1
ZGUgIkNCT1JXcml0ZXIuaCIKKyNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zLmgiCisjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgi
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgZmlkbyB7Cit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKwordXNpbmcgVVZBdmFpbGFiaWxpdHkgPSBBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTsKKworc3RhdGljIGNi
b3I6OkNCT1JWYWx1ZSBjb252ZXJ0UnBFbnRpdHlUb0NCT1IoY29uc3QgUHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9uczo6UnBFbnRpdHkmIHJwRW50aXR5KQoreworICAgIGNib3I6OkNC
T1JWYWx1ZTo6TWFwVmFsdWUgcnBNYXA7CisgICAgcnBNYXAuZW1wbGFjZShrRW50aXR5TmFtZU1h
cEtleSwgcnBFbnRpdHkubmFtZSk7CisgICAgaWYgKCFycEVudGl0eS5pY29uLmlzRW1wdHkoKSkK
KyAgICAgICAgcnBNYXAuZW1wbGFjZShrSWNvblVybE1hcEtleSwgcnBFbnRpdHkuaWNvbik7Cisg
ICAgaWYgKCFycEVudGl0eS5pZC5pc0VtcHR5KCkpCisgICAgICAgIHJwTWFwLmVtcGxhY2Uoa0Vu
dGl0eUlkTWFwS2V5LCBycEVudGl0eS5pZCk7CisKKyAgICByZXR1cm4gY2Jvcjo6Q0JPUlZhbHVl
KFdURk1vdmUocnBNYXApKTsKK30KKworc3RhdGljIGNib3I6OkNCT1JWYWx1ZSBjb252ZXJ0VXNl
ckVudGl0eVRvQ0JPUihjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpV
c2VyRW50aXR5JiB1c2VyRW50aXR5KQoreworICAgIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUg
dXNlck1hcDsKKyAgICB1c2VyTWFwLmVtcGxhY2Uoa0VudGl0eU5hbWVNYXBLZXksIHVzZXJFbnRp
dHkubmFtZSk7CisgICAgaWYgKCF1c2VyRW50aXR5Lmljb24uaXNFbXB0eSgpKQorICAgICAgICB1
c2VyTWFwLmVtcGxhY2Uoa0ljb25VcmxNYXBLZXksIHVzZXJFbnRpdHkuaWNvbik7CisgICAgdXNl
ck1hcC5lbXBsYWNlKGtFbnRpdHlJZE1hcEtleSwgdXNlckVudGl0eS5pZFZlY3Rvcik7CisgICAg
dXNlck1hcC5lbXBsYWNlKGtEaXNwbGF5TmFtZU1hcEtleSwgdXNlckVudGl0eS5kaXNwbGF5TmFt
ZSk7CisgICAgcmV0dXJuIGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKHVzZXJNYXApKTsKK30KKwor
c3RhdGljIGNib3I6OkNCT1JWYWx1ZSBjb252ZXJ0UGFyYW1ldGVyc1RvQ0JPUihjb25zdCBWZWN0
b3I8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4mIHBhcmFt
ZXRlcnMpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpBcnJheVZhbHVlIGNyZWRlbnRpYWxQYXJh
bUFycmF5OworICAgIGNyZWRlbnRpYWxQYXJhbUFycmF5LnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
cGFyYW1ldGVycy5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0byYgY3JlZGVudGlhbCA6IHBh
cmFtZXRlcnMpIHsKKyAgICAgICAgY2Jvcjo6Q0JPUlZhbHVlOjpNYXBWYWx1ZSBjYm9yQ3JlZGVu
dGlhbE1hcDsKKyAgICAgICAgY2JvckNyZWRlbnRpYWxNYXAuZW1wbGFjZShrQ3JlZGVudGlhbFR5
cGVNYXBLZXksIHB1YmxpY0tleUNyZWRlbnRpYWxUeXBlVG9TdHJpbmcoY3JlZGVudGlhbC50eXBl
KSk7CisgICAgICAgIGNib3JDcmVkZW50aWFsTWFwLmVtcGxhY2Uoa0NyZWRlbnRpYWxBbGdvcml0
aG1NYXBLZXksIGNyZWRlbnRpYWwuYWxnKTsKKyAgICAgICAgY3JlZGVudGlhbFBhcmFtQXJyYXku
YXBwZW5kKFdURk1vdmUoY2JvckNyZWRlbnRpYWxNYXApKTsKKyAgICB9CisgICAgcmV0dXJuIGNi
b3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGNyZWRlbnRpYWxQYXJhbUFycmF5KSk7Cit9CisKK3N0YXRp
YyBjYm9yOjpDQk9SVmFsdWUgY29udmVydERlc2NyaXB0b3JUb0NCT1IoY29uc3QgUHVibGljS2V5
Q3JlZGVudGlhbERlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVl
OjpNYXBWYWx1ZSBjYm9yRGVzY3JpcHRvck1hcDsKKyAgICBjYm9yRGVzY3JpcHRvck1hcFtjYm9y
OjpDQk9SVmFsdWUoa0NyZWRlbnRpYWxUeXBlS2V5KV0gPSBjYm9yOjpDQk9SVmFsdWUocHVibGlj
S2V5Q3JlZGVudGlhbFR5cGVUb1N0cmluZyhkZXNjcmlwdG9yLnR5cGUpKTsKKyAgICBjYm9yRGVz
Y3JpcHRvck1hcFtjYm9yOjpDQk9SVmFsdWUoa0NyZWRlbnRpYWxJZEtleSldID0gY2Jvcjo6Q0JP
UlZhbHVlKGRlc2NyaXB0b3IuaWRWZWN0b3IpOworICAgIHJldHVybiBjYm9yOjpDQk9SVmFsdWUo
V1RGTW92ZShjYm9yRGVzY3JpcHRvck1hcCkpOworfQorCitWZWN0b3I8dWludDhfdD4gZW5jb2Rl
TWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwg
Y29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYgb3B0aW9ucywgVVZBdmFp
bGFiaWxpdHkgdXZDYXBhYmlsaXR5KQoreworICAgIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUg
Y2Jvck1hcDsKKyAgICBjYm9yTWFwW2Nib3I6OkNCT1JWYWx1ZSgxKV0gPSBjYm9yOjpDQk9SVmFs
dWUoaGFzaCk7CisgICAgY2Jvck1hcFtjYm9yOjpDQk9SVmFsdWUoMildID0gY29udmVydFJwRW50
aXR5VG9DQk9SKG9wdGlvbnMucnApOworICAgIGNib3JNYXBbY2Jvcjo6Q0JPUlZhbHVlKDMpXSA9
IGNvbnZlcnRVc2VyRW50aXR5VG9DQk9SKG9wdGlvbnMudXNlcik7CisgICAgY2Jvck1hcFtjYm9y
OjpDQk9SVmFsdWUoNCldID0gY29udmVydFBhcmFtZXRlcnNUb0NCT1Iob3B0aW9ucy5wdWJLZXlD
cmVkUGFyYW1zKTsKKyAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZUNyZWRlbnRpYWxzLmlzRW1wdHko
KSkgeworICAgICAgICBjYm9yOjpDQk9SVmFsdWU6OkFycmF5VmFsdWUgZXhjbHVkZUxpc3RBcnJh
eTsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXNjcmlwdG9yIDogb3B0aW9ucy5leGNsdWRl
Q3JlZGVudGlhbHMpCisgICAgICAgICAgICBleGNsdWRlTGlzdEFycmF5LmFwcGVuZChjb252ZXJ0
RGVzY3JpcHRvclRvQ0JPUihkZXNjcmlwdG9yKSk7CisgICAgICAgIGNib3JNYXBbY2Jvcjo6Q0JP
UlZhbHVlKDUpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGV4Y2x1ZGVMaXN0QXJyYXkpKTsK
KyAgICB9CisKKyAgICBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIG9wdGlvbk1hcDsKKyAgICBp
ZiAob3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uKSB7CisgICAgICAgIC8vIFJlc2lkZW50
IGtleXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgaWYgKG9wdGlvbnMu
YXV0aGVudGljYXRvclNlbGVjdGlvbi0+cmVxdWlyZVJlc2lkZW50S2V5KQorICAgICAgICAgICAg
b3B0aW9uTWFwW2Nib3I6OkNCT1JWYWx1ZShrUmVzaWRlbnRLZXlNYXBLZXkpXSA9IGNib3I6OkNC
T1JWYWx1ZSh0cnVlKTsKKworICAgICAgICAvLyBVc2VyIHZlcmlmaWNhdGlvbiBpcyBub3QgcmVx
dWlyZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgYm9vbCByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9
IGZhbHNlOworICAgICAgICBzd2l0Y2ggKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+
dXNlclZlcmlmaWNhdGlvbikgeworICAgICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1aXJl
bWVudDo6UmVxdWlyZWQ6CisgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IHRy
dWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQ6OlByZWZlcnJlZDoKKyAgICAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9u
ID0gdXZDYXBhYmlsaXR5ID09IFVWQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkID8gZmFsc2Ug
OiB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZDoKKyAgICAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZp
Y2F0aW9uID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgb3B0aW9uTWFwW2Nib3I6OkNCT1JW
YWx1ZShrVXNlclZlcmlmaWNhdGlvbk1hcEtleSldID0gY2Jvcjo6Q0JPUlZhbHVlKHJlcXVpcmVV
c2VyVmVyaWZpY2F0aW9uKTsKKyAgICB9CisgICAgaWYgKCFvcHRpb25NYXAuZW1wdHkoKSkKKyAg
ICAgICAgY2Jvck1hcFtjYm9yOjpDQk9SVmFsdWUoNyldID0gY2Jvcjo6Q0JPUlZhbHVlKFdURk1v
dmUob3B0aW9uTWFwKSk7CisKKyAgICBhdXRvIHNlcmlhbGl6ZWRQYXJhbSA9IGNib3I6OkNCT1JX
cml0ZXI6OndyaXRlKGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGNib3JNYXApKSk7CisgICAgQVNT
RVJUKHNlcmlhbGl6ZWRQYXJhbSk7CisKKyAgICBWZWN0b3I8dWludDhfdD4gY2JvclJlcXVlc3Qo
eyBzdGF0aWNfY2FzdDx1aW50OF90PihDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9y
TWFrZUNyZWRlbnRpYWwpIH0pOworICAgIGNib3JSZXF1ZXN0LmFwcGVuZFZlY3Rvcigqc2VyaWFs
aXplZFBhcmFtKTsKKyAgICByZXR1cm4gY2JvclJlcXVlc3Q7Cit9CisKK1ZlY3Rvcjx1aW50OF90
PiBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
aGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zLCBV
VkF2YWlsYWJpbGl0eSB1dkNhcGFiaWxpdHkpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpNYXBW
YWx1ZSBjYm9yTWFwOworICAgIGNib3JNYXBbY2Jvcjo6Q0JPUlZhbHVlKDEpXSA9IGNib3I6OkNC
T1JWYWx1ZShvcHRpb25zLnJwSWQpOworICAgIGNib3JNYXBbY2Jvcjo6Q0JPUlZhbHVlKDIpXSA9
IGNib3I6OkNCT1JWYWx1ZShoYXNoKTsKKworICAgIGlmICghb3B0aW9ucy5hbGxvd0NyZWRlbnRp
YWxzLmlzRW1wdHkoKSkgeworICAgICAgICBjYm9yOjpDQk9SVmFsdWU6OkFycmF5VmFsdWUgYWxs
b3dMaXN0QXJyYXk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgZGVzY3JpcHRvciA6IG9wdGlv
bnMuYWxsb3dDcmVkZW50aWFscykKKyAgICAgICAgICAgIGFsbG93TGlzdEFycmF5LmFwcGVuZChj
b252ZXJ0RGVzY3JpcHRvclRvQ0JPUihkZXNjcmlwdG9yKSk7CisgICAgICAgIGNib3JNYXBbY2Jv
cjo6Q0JPUlZhbHVlKDMpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGFsbG93TGlzdEFycmF5
KSk7CisgICAgfQorCisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25NYXA7Cisg
ICAgaWYgKG9wdGlvbnMudXNlclZlcmlmaWNhdGlvbikgeworICAgICAgICAvLyBVc2VyIHZlcmlm
aWNhdGlvbiBpcyBub3QgcmVxdWlyZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgYm9vbCByZXF1aXJl
VXNlclZlcmlmaWNhdGlvbiA9IGZhbHNlOworICAgICAgICBzd2l0Y2ggKCpvcHRpb25zLnVzZXJW
ZXJpZmljYXRpb24pIHsKKyAgICAgICAgY2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6
OlJlcXVpcmVkOgorICAgICAgICAgICAgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSB0cnVlOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50OjpQcmVmZXJyZWQ6CisgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IHV2
Q2FwYWJpbGl0eSA9PSBVVkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCA/IGZhbHNlIDogdHJ1
ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1
aXJlbWVudDo6RGlzY291cmFnZWQ6CisgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlv
biA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIG9wdGlvbk1hcFtjYm9yOjpDQk9SVmFsdWUo
a1VzZXJWZXJpZmljYXRpb25NYXBLZXkpXSA9IGNib3I6OkNCT1JWYWx1ZShyZXF1aXJlVXNlclZl
cmlmaWNhdGlvbik7CisgICAgICAgIG9wdGlvbk1hcFtjYm9yOjpDQk9SVmFsdWUoa1VzZXJQcmVz
ZW5jZU1hcEtleSldID0gY2Jvcjo6Q0JPUlZhbHVlKCFyZXF1aXJlVXNlclZlcmlmaWNhdGlvbik7
CisgICAgfQorICAgIGlmICghb3B0aW9uTWFwLmVtcHR5KCkpCisgICAgICAgIGNib3JNYXBbY2Jv
cjo6Q0JPUlZhbHVlKDUpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKG9wdGlvbk1hcCkpOwor
CisgICAgYXV0byBzZXJpYWxpemVkUGFyYW0gPSBjYm9yOjpDQk9SV3JpdGVyOjp3cml0ZShjYm9y
OjpDQk9SVmFsdWUoV1RGTW92ZShjYm9yTWFwKSkpOworICAgIEFTU0VSVChzZXJpYWxpemVkUGFy
YW0pOworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGNib3JSZXF1ZXN0KHsgc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oQ3RhcFJlcXVlc3RDb21tYW5kOjprQXV0aGVudGljYXRvckdldEFzc2VydGlvbikgfSk7
CisgICAgY2JvclJlcXVlc3QuYXBwZW5kVmVjdG9yKCpzZXJpYWxpemVkUGFyYW0pOworICAgIHJl
dHVybiBjYm9yUmVxdWVzdDsKK30KKworVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUVtcHR5QXV0aGVu
dGljYXRvclJlcXVlc3QoQ3RhcFJlcXVlc3RDb21tYW5kIGNtZCkKK3sKKyAgICByZXR1cm4geyBz
dGF0aWNfY2FzdDx1aW50OF90PihjbWQpIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40YWNjM2ZmNjJiOTUyNDlmNDg3YjIyY2U4NGFjNDE3OWY0YzMxODZmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJl
cXVlc3RDb252ZXJ0ZXIuaApAQCAtMCwwICsxLDYyIEBACisvLyBDb3B5cmlnaHQgMjAxNyBUaGUg
Q2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisv
LyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8g
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8v
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8v
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9B
VVRITikKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgiCisjaW5j
bHVkZSAiRmlkb0NvbnN0YW50cy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
Oworc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKK30KKworbmFtZXNw
YWNlIGZpZG8geworCisvLyBTZXJpYWxpemVzIE1ha2VDcmVkZW50aWFsIHJlcXVlc3QgcGFyYW1l
dGVyIGludG8gQ0JPUiBlbmNvZGVkIG1hcCB3aXRoCisvLyBpbnRlZ2VyIGtleXMgYW5kIENCT1Ig
ZW5jb2RlZCB2YWx1ZXMgYXMgZGVmaW5lZCBieSB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9m
aWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10
by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNh
dG9yTWFrZUNyZWRlbnRpYWwKK1dFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVN
YWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBj
b25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwgQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkpOwor
CisvLyBTZXJpYWxpemVzIEdldEFzc2VydGlvbiByZXF1ZXN0IHBhcmFtZXRlciBpbnRvIENCT1Ig
ZW5jb2RlZCBtYXAgd2l0aAorLy8gaW50ZWdlciBrZXlzIGFuZCBDQk9SIGVuY29kZWQgdmFsdWVz
IGFzIGRlZmluZWQgYnkgdGhlIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9y
Zy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRv
ci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjYXV0aGVudGljYXRvckdldEFzc2VydGlv
bgorV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUdldEFzc2VydGlvblJlcXVl
c3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSk7CisKKy8vIFJlcHJlc2VudHMgQ1RB
UCByZXF1ZXN0cyB3aXRoIGVtcHR5IHBhcmFtZXRlcnMsIGluY2x1ZGluZworLy8gQXV0aGVudGlj
YXRvckdldEluZm8sIEF1dGhlbnRpY2F0b3JDYW5jZWwsIEF1dGhlbnRpY2F0b3JSZXNldCBhbmQK
Ky8vIEF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uIGNvbW1hbmRzLgorV0VCQ09SRV9FWFBP
UlQgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUVtcHR5QXV0aGVudGljYXRvclJlcXVlc3QoQ3RhcFJl
cXVlc3RDb21tYW5kKTsKKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxF
KFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Zmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMx
YzdlNGY4ODMzZDU1NjZiZmFkNTY3MTY3NDI5ZTg4ODQwMTAzZDMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252
ZXJ0ZXIuY3BwCkBAIC0wLDAgKzEsMzEyIEBACisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgQ2hyb21p
dW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisv
LyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
Ky8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VS
ZXNwb25zZUNvbnZlcnRlci5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUg
IkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgiCisjaW5jbHVkZSAiQ0JPUlJlYWRlci5o
IgorI2luY2x1ZGUgIkNCT1JXcml0ZXIuaCIKKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgorCituYW1lc3BhY2UgZmlkbyB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
K3VzaW5nIENCT1IgPSBjYm9yOjpDQk9SVmFsdWU7CisKK2NvbnN0ZXhwciBzaXplX3Qga1Jlc3Bv
bnNlQ29kZUxlbmd0aCA9IDE7CisKK3N0YXRpYyBQcm90b2NvbFZlcnNpb24gY29udmVydFN0cmlu
Z1RvUHJvdG9jb2xWZXJzaW9uKGNvbnN0IFN0cmluZyYgdmVyc2lvbikKK3sKKyAgICBpZiAodmVy
c2lvbiA9PSBrQ3RhcDJWZXJzaW9uKQorICAgICAgICByZXR1cm4gUHJvdG9jb2xWZXJzaW9uOjpr
Q3RhcDsKKyAgICBpZiAodmVyc2lvbiA9PSBrVTJmVmVyc2lvbikKKyAgICAgICAgcmV0dXJuIFBy
b3RvY29sVmVyc2lvbjo6a1UyZjsKKworICAgIHJldHVybiBQcm90b2NvbFZlcnNpb246OmtVbmtu
b3duOworfQorCitDdGFwRGV2aWNlUmVzcG9uc2VDb2RlIGdldFJlc3BvbnNlQ29kZShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKK3sKKyAgICBpZiAoYnVmZmVyLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRDQk9S
OworCisgICAgYXV0byBjb2RlID0gc3RhdGljX2Nhc3Q8Q3RhcERldmljZVJlc3BvbnNlQ29kZT4o
YnVmZmVyWzBdKTsKKyAgICByZXR1cm4gaXNDdGFwRGV2aWNlUmVzcG9uc2VDb2RlKGNvZGUpID8g
Y29kZSA6IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRDQk9SOworfQor
CitzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGdldENyZWRlbnRpYWxJZChjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIGF1dGhlbnRpY2F0b3JEYXRhKQoreworICAgIGNvbnN0IHNpemVfdCBjcmVkZW50aWFs
SWRMZW5ndGhPZmZzZXQgPSBrUnBJZEhhc2hMZW5ndGggKyBrRmxhZ3NMZW5ndGggKyBrU2lnbkNv
dW50ZXJMZW5ndGggKyBrQWFndWlkTGVuZ3RoOworCisgICAgaWYgKGF1dGhlbnRpY2F0b3JEYXRh
LnNpemUoKSA8IGNyZWRlbnRpYWxJZExlbmd0aE9mZnNldCArIGtDcmVkZW50aWFsSWRMZW5ndGhM
ZW5ndGgpCisgICAgICAgIHJldHVybiB7IH07CisgICAgc2l6ZV90IGNyZWRlbnRpYWxJZExlbmd0
aCA9IChzdGF0aWNfY2FzdDxzaXplX3Q+KGF1dGhlbnRpY2F0b3JEYXRhW2NyZWRlbnRpYWxJZExl
bmd0aE9mZnNldF0pIDw8IDgpIHwgc3RhdGljX2Nhc3Q8c2l6ZV90PihhdXRoZW50aWNhdG9yRGF0
YVtjcmVkZW50aWFsSWRMZW5ndGhPZmZzZXQgKyAxXSk7CisKKyAgICBpZiAoYXV0aGVudGljYXRv
ckRhdGEuc2l6ZSgpIDwgY3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0ICsga0NyZWRlbnRpYWxJZExl
bmd0aExlbmd0aCArIGNyZWRlbnRpYWxJZExlbmd0aCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAg
ICBWZWN0b3I8dWludDhfdD4gY3JlZGVudGlhbElkOworICAgIGNyZWRlbnRpYWxJZC5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KGNyZWRlbnRpYWxJZExlbmd0aCk7CisgICAgYXV0byBiZWdpbkl0ID0g
YXV0aGVudGljYXRvckRhdGEuYmVnaW4oKSArIGNyZWRlbnRpYWxJZExlbmd0aE9mZnNldCArIGtD
cmVkZW50aWFsSWRMZW5ndGhMZW5ndGg7CisgICAgY3JlZGVudGlhbElkLmFwcGVuZFJhbmdlKGJl
Z2luSXQsIGJlZ2luSXQgKyBjcmVkZW50aWFsSWRMZW5ndGgpOworICAgIHJldHVybiBjcmVkZW50
aWFsSWQ7Cit9CisKKworLy8gRGVjb2RlcyBieXRlIGFycmF5IHJlc3BvbnNlIGZyb20gYXV0aGVu
dGljYXRvciB0byBDQk9SIHZhbHVlIG9iamVjdCBhbmQKKy8vIGNoZWNrcyBmb3IgY29ycmVjdCBl
bmNvZGluZyBmb3JtYXQuCitzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhPiBy
ZWFkQ1RBUE1ha2VDcmVkZW50aWFsUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpbkJ1
ZmZlcikKK3sKKyAgICBpZiAoaW5CdWZmZXIuc2l6ZSgpIDw9IGtSZXNwb25zZUNvZGVMZW5ndGgp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8dWludDhfdD4gYnVm
ZmVyOworICAgIGJ1ZmZlci5hcHBlbmQoaW5CdWZmZXIuZGF0YSgpICsgMSwgaW5CdWZmZXIuc2l6
ZSgpIC0gMSk7CisgICAgc3RkOjpvcHRpb25hbDxDQk9SPiBkZWNvZGVkUmVzcG9uc2UgPSBjYm9y
OjpDQk9SUmVhZGVyOjpyZWFkKGJ1ZmZlcik7CisgICAgaWYgKCFkZWNvZGVkUmVzcG9uc2UgfHwg
IWRlY29kZWRSZXNwb25zZS0+aXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICBjb25zdCBhdXRvJiBkZWNvZGVkTWFwID0gZGVjb2RlZFJlc3BvbnNlLT5nZXRNYXAoKTsK
KworICAgIGF1dG8gaXQgPSBkZWNvZGVkTWFwLmZpbmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ID09
IGRlY29kZWRNYXAuZW5kKCkgfHwgIWl0LT5zZWNvbmQuaXNTdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBhdXRvIGZvcm1hdCA9IGl0LT5zZWNvbmQuY2xvbmUoKTsK
KworICAgIGl0ID0gZGVjb2RlZE1hcC5maW5kKENCT1IoMikpOworICAgIGlmIChpdCA9PSBkZWNv
ZGVkTWFwLmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworICAgIGF1dG8gYXV0aGVudGljYXRvckRhdGEgPSBpdC0+c2Vjb25k
LmNsb25lKCk7CisKKyAgICBhdXRvIGNyZWRlbnRpYWxJZCA9IGdldENyZWRlbnRpYWxJZChhdXRo
ZW50aWNhdG9yRGF0YS5nZXRCeXRlU3RyaW5nKCkpOworICAgIGlmIChjcmVkZW50aWFsSWQuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgaXQgPSBkZWNvZGVk
TWFwLmZpbmQoQ0JPUigzKSk7CisgICAgaWYgKGl0ID09IGRlY29kZWRNYXAuZW5kKCkgfHwgIWl0
LT5zZWNvbmQuaXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBhdXRv
IGF0dFN0bXQgPSBpdC0+c2Vjb25kLmNsb25lKCk7CisKKyAgICBDQk9SOjpNYXBWYWx1ZSBhdHRl
c3RhdGlvbk9iamVjdE1hcDsKKyAgICBhdHRlc3RhdGlvbk9iamVjdE1hcFtDQk9SKCJhdXRoRGF0
YSIpXSA9IFdURk1vdmUoYXV0aGVudGljYXRvckRhdGEpOworICAgIGF0dGVzdGF0aW9uT2JqZWN0
TWFwW0NCT1IoImZtdCIpXSA9IFdURk1vdmUoZm9ybWF0KTsKKyAgICBhdHRlc3RhdGlvbk9iamVj
dE1hcFtDQk9SKCJhdHRTdG10IildID0gV1RGTW92ZShhdHRTdG10KTsKKyAgICBhdXRvIGF0dGVz
dGF0aW9uT2JqZWN0ID0gY2Jvcjo6Q0JPUldyaXRlcjo6d3JpdGUoQ0JPUihXVEZNb3ZlKGF0dGVz
dGF0aW9uT2JqZWN0TWFwKSkpOworCisgICAgcmV0dXJuIFB1YmxpY0tleUNyZWRlbnRpYWxEYXRh
IHsgQXJyYXlCdWZmZXI6OmNyZWF0ZShjcmVkZW50aWFsSWQuZGF0YSgpLCBjcmVkZW50aWFsSWQu
c2l6ZSgpKSwgdHJ1ZSwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdHRlc3RhdGlvbk9i
amVjdC52YWx1ZSgpLmRhdGEoKSwgYXR0ZXN0YXRpb25PYmplY3QudmFsdWUoKS5zaXplKCkpLCBu
dWxscHRyLCBudWxscHRyLCBudWxscHRyIH07Cit9CisKK3N0ZDo6b3B0aW9uYWw8UHVibGljS2V5
Q3JlZGVudGlhbERhdGE+IHJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBpbkJ1ZmZlcikKK3sKKyAgICBpZiAoaW5CdWZmZXIuc2l6ZSgpIDw9IGtSZXNw
b25zZUNvZGVMZW5ndGgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0
b3I8dWludDhfdD4gYnVmZmVyOworICAgIGJ1ZmZlci5hcHBlbmQoaW5CdWZmZXIuZGF0YSgpICsg
MSwgaW5CdWZmZXIuc2l6ZSgpIC0gMSk7CisgICAgc3RkOjpvcHRpb25hbDxDQk9SPiBkZWNvZGVk
UmVzcG9uc2UgPSBjYm9yOjpDQk9SUmVhZGVyOjpyZWFkKGJ1ZmZlcik7CisKKyAgICBpZiAoIWRl
Y29kZWRSZXNwb25zZSB8fCAhZGVjb2RlZFJlc3BvbnNlLT5pc01hcCgpKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byYgcmVzcG9uc2VNYXAgPSBkZWNvZGVkUmVzcG9u
c2UtPmdldE1hcCgpOworCisgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVkZW50aWFsSWQ7Cisg
ICAgYXV0byBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ICE9IHJl
c3BvbnNlTWFwLmVuZCgpICYmIGl0LT5zZWNvbmQuaXNNYXAoKSkgeworICAgICAgICBhdXRvJiBj
cmVkZW50aWFsID0gaXQtPnNlY29uZC5nZXRNYXAoKTsKKyAgICAgICAgYXV0byBpdHIgPSBjcmVk
ZW50aWFsLmZpbmQoQ0JPUihrQ3JlZGVudGlhbElkS2V5KSk7CisgICAgICAgIGlmIChpdHIgPT0g
Y3JlZGVudGlhbC5lbmQoKSB8fCAhaXRyLT5zZWNvbmQuaXNCeXRlU3RyaW5nKCkpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBhdXRvJiBpZCA9IGl0ci0+c2Vjb25k
LmdldEJ5dGVTdHJpbmcoKTsKKyAgICAgICAgY3JlZGVudGlhbElkID0gQXJyYXlCdWZmZXI6OmNy
ZWF0ZShpZC5kYXRhKCksIGlkLnNpemUoKSk7CisgICAgfQorCisgICAgaXQgPSByZXNwb25zZU1h
cC5maW5kKENCT1IoMikpOworICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5lbmQoKSB8fCAhaXQt
PnNlY29uZC5pc0J5dGVTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICBhdXRvJiBhdXRoRGF0YSA9IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOworCisgICAgaXQg
PSByZXNwb25zZU1hcC5maW5kKENCT1IoMykpOworICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5l
bmQoKSB8fCAhaXQtPnNlY29uZC5pc0J5dGVTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICBhdXRvJiBzaWduYXR1cmUgPSBpdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmco
KTsKKworICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gdXNlckhhbmRsZTsKKyAgICB7CisgICAgICAg
IGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDQpKTsKKyAgICAgICAgaWYgKGl0ID09IHJlc3Bv
bnNlTWFwLmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzTWFwKCkpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgICAgICBhdXRvJiB1c2VyID0gaXQtPnNlY29uZC5nZXRNYXAoKTsK
KyAgICAgICAgYXV0byBpdHIgPSB1c2VyLmZpbmQoQ0JPUihrRW50aXR5SWRNYXBLZXkpKTsKKyAg
ICAgICAgaWYgKGl0ciA9PSB1c2VyLmVuZCgpIHx8ICFpdHItPnNlY29uZC5pc0J5dGVTdHJpbmco
KSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGF1dG8mIGlkID0g
aXRyLT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOworICAgICAgICB1c2VySGFuZGxlID0gQXJyYXlC
dWZmZXI6OmNyZWF0ZShpZC5kYXRhKCksIGlkLnNpemUoKSk7CisgICAgfQorCisgICAgcmV0dXJu
IFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgV1RGTW92ZShjcmVkZW50aWFsSWQpLCBmYWxzZSwg
bnVsbHB0ciwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdXRoRGF0YS5kYXRhKCksIGF1
dGhEYXRhLnNpemUoKSksIEFycmF5QnVmZmVyOjpjcmVhdGUoc2lnbmF0dXJlLmRhdGEoKSwgc2ln
bmF0dXJlLnNpemUoKSksIFdURk1vdmUodXNlckhhbmRsZSkgfTsKK30KKworc3RkOjpvcHRpb25h
bDxBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlPiByZWFkQ1RBUEdldEluZm9SZXNwb25zZShj
b25zdCBWZWN0b3I8dWludDhfdD4mIGluQnVmZmVyKQoreworICAgIGlmIChpbkJ1ZmZlci5zaXpl
KCkgPD0ga1Jlc3BvbnNlQ29kZUxlbmd0aCB8fCBnZXRSZXNwb25zZUNvZGUoaW5CdWZmZXIpICE9
IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtTdWNjZXNzKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKKyAgICBidWZmZXIuYXBwZW5k
KGluQnVmZmVyLmRhdGEoKSArIDEsIGluQnVmZmVyLnNpemUoKSAtIDEpOworICAgIHN0ZDo6b3B0
aW9uYWw8Q0JPUj4gZGVjb2RlZFJlc3BvbnNlID0gY2Jvcjo6Q0JPUlJlYWRlcjo6cmVhZChidWZm
ZXIpOworICAgIGlmICghZGVjb2RlZFJlc3BvbnNlIHx8ICFkZWNvZGVkUmVzcG9uc2UtPmlzTWFw
KCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgY29uc3QgYXV0byYgcmVzcG9u
c2VNYXAgPSBkZWNvZGVkUmVzcG9uc2UtPmdldE1hcCgpOworCisgICAgYXV0byBpdCA9IHJlc3Bv
bnNlTWFwLmZpbmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ID09IHJlc3BvbnNlTWFwLmVuZCgpIHx8
ICFpdC0+c2Vjb25kLmlzQXJyYXkoKSB8fCBpdC0+c2Vjb25kLmdldEFycmF5KCkuc2l6ZSgpID4g
MikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBzdGQ6OnNldDxQcm90b2NvbFZl
cnNpb24+IHByb3RvY29sVmVyc2lvbnM7CisgICAgZm9yIChjb25zdCBhdXRvJiB2ZXJzaW9uIDog
aXQtPnNlY29uZC5nZXRBcnJheSgpKSB7CisgICAgICAgIGlmICghdmVyc2lvbi5pc1N0cmluZygp
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBhdXRvIHByb3Rv
Y29sID0gY29udmVydFN0cmluZ1RvUHJvdG9jb2xWZXJzaW9uKHZlcnNpb24uZ2V0U3RyaW5nKCkp
OworICAgICAgICBpZiAocHJvdG9jb2wgPT0gUHJvdG9jb2xWZXJzaW9uOjprVW5rbm93bikgewor
ICAgICAgICAgICAgTE9HX0VSUk9SKCJVbmV4cGVjdGVkIHByb3RvY29sIHZlcnNpb24gcmVjZWl2
ZWQuIik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgh
cHJvdG9jb2xWZXJzaW9ucy5pbnNlcnQocHJvdG9jb2wpLnNlY29uZCkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorICAgIGlmIChwcm90b2NvbFZlcnNpb25zLmVtcHR5
KCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBpdCA9IHJlc3BvbnNlTWFw
LmZpbmQoQ0JPUigzKSk7CisgICAgaWYgKGl0ID09IHJlc3BvbnNlTWFwLmVuZCgpIHx8ICFpdC0+
c2Vjb25kLmlzQnl0ZVN0cmluZygpIHx8IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpLnNpemUo
KSAhPSBrQWFndWlkTGVuZ3RoKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSByZXNwb25zZShXVEZNb3ZlKHByb3RvY29sVmVy
c2lvbnMpLCBWZWN0b3I8dWludDhfdD4oaXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCkpKTsKKwor
ICAgIGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDIpKTsKKyAgICBpZiAoaXQgIT0gcmVzcG9u
c2VNYXAuZW5kKCkpIHsKKyAgICAgICAgaWYgKCFpdC0+c2Vjb25kLmlzQXJyYXkoKSkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gZXh0
ZW5zaW9uczsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBleHRlbnNpb24gOiBpdC0+c2Vjb25k
LmdldEFycmF5KCkpIHsKKyAgICAgICAgICAgIGlmICghZXh0ZW5zaW9uLmlzU3RyaW5nKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICAgICAgZXh0ZW5z
aW9ucy5hcHBlbmQoZXh0ZW5zaW9uLmdldFN0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBy
ZXNwb25zZS5zZXRFeHRlbnNpb25zKFdURk1vdmUoZXh0ZW5zaW9ucykpOworICAgIH0KKworICAg
IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zIG9wdGlvbnM7CisgICAgaXQgPSByZXNwb25z
ZU1hcC5maW5kKENCT1IoNCkpOworICAgIGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSkgewor
ICAgICAgICBpZiAoIWl0LT5zZWNvbmQuaXNNYXAoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgICAgIGNvbnN0IGF1dG8mIG9wdGlvbk1hcCA9IGl0LT5zZWNvbmQuZ2V0
TWFwKCk7CisgICAgICAgIGF1dG8gb3B0aW9uTWFwSXQgPSBvcHRpb25NYXAuZmluZChDQk9SKGtQ
bGF0Zm9ybURldmljZU1hcEtleSkpOworICAgICAgICBpZiAob3B0aW9uTWFwSXQgIT0gb3B0aW9u
TWFwLmVuZCgpKSB7CisgICAgICAgICAgICBpZiAoIW9wdGlvbk1hcEl0LT5zZWNvbmQuaXNCb29s
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICAgICAg
b3B0aW9ucy5zZXRJc1BsYXRmb3JtRGV2aWNlKG9wdGlvbk1hcEl0LT5zZWNvbmQuZ2V0Qm9vbCgp
KTsKKyAgICAgICAgfQorCisgICAgICAgIG9wdGlvbk1hcEl0ID0gb3B0aW9uTWFwLmZpbmQoQ0JP
UihrUmVzaWRlbnRLZXlNYXBLZXkpKTsKKyAgICAgICAgaWYgKG9wdGlvbk1hcEl0ICE9IG9wdGlv
bk1hcC5lbmQoKSkgeworICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJdC0+c2Vjb25kLmlzQm9v
bCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAg
IG9wdGlvbnMuc2V0U3VwcG9ydHNSZXNpZGVudEtleShvcHRpb25NYXBJdC0+c2Vjb25kLmdldEJv
b2woKSk7CisgICAgICAgIH0KKworICAgICAgICBvcHRpb25NYXBJdCA9IG9wdGlvbk1hcC5maW5k
KENCT1Ioa1VzZXJQcmVzZW5jZU1hcEtleSkpOworICAgICAgICBpZiAob3B0aW9uTWFwSXQgIT0g
b3B0aW9uTWFwLmVuZCgpKSB7CisgICAgICAgICAgICBpZiAoIW9wdGlvbk1hcEl0LT5zZWNvbmQu
aXNCb29sKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICAgICAgb3B0aW9ucy5zZXRVc2VyUHJlc2VuY2VSZXF1aXJlZChvcHRpb25NYXBJdC0+c2Vjb25k
LmdldEJvb2woKSk7CisgICAgICAgIH0KKworICAgICAgICBvcHRpb25NYXBJdCA9IG9wdGlvbk1h
cC5maW5kKENCT1Ioa1VzZXJWZXJpZmljYXRpb25NYXBLZXkpKTsKKyAgICAgICAgaWYgKG9wdGlv
bk1hcEl0ICE9IG9wdGlvbk1hcC5lbmQoKSkgeworICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJ
dC0+c2Vjb25kLmlzQm9vbCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgICAgIGlmIChvcHRpb25NYXBJdC0+c2Vjb25kLmdldEJvb2woKSkKKyAgICAg
ICAgICAgICAgICBvcHRpb25zLnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtT
dXBwb3J0ZWRBbmRDb25maWd1cmVkKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBvcHRpb25zLnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRC
dXROb3RDb25maWd1cmVkKTsKKyAgICAgICAgfQorCisgICAgICAgIG9wdGlvbk1hcEl0ID0gb3B0
aW9uTWFwLmZpbmQoQ0JPUihrQ2xpZW50UGluTWFwS2V5KSk7CisgICAgICAgIGlmIChvcHRpb25N
YXBJdCAhPSBvcHRpb25NYXAuZW5kKCkpIHsKKyAgICAgICAgICAgIGlmICghb3B0aW9uTWFwSXQt
PnNlY29uZC5pc0Jvb2woKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgICAgICBpZiAob3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29sKCkpCisgICAgICAg
ICAgICAgICAgb3B0aW9ucy5zZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNl
dCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3B0aW9ucy5zZXRDbGllbnRQ
aW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2
YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dFBpbk5vdFNldCk7CisgICAgICAgIH0KKyAgICAgICAg
cmVzcG9uc2Uuc2V0T3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKTsKKyAgICB9CisKKyAgICBpdCA9
IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUig1KSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFwLmVu
ZCgpKSB7CisgICAgICAgIGlmICghaXQtPnNlY29uZC5pc1Vuc2lnbmVkKCkpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJlc3BvbnNlLnNldE1heE1zZ1NpemUo
aXQtPnNlY29uZC5nZXRVbnNpZ25lZCgpKTsKKyAgICB9CisKKyAgICBpdCA9IHJlc3BvbnNlTWFw
LmZpbmQoQ0JPUig2KSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFwLmVuZCgpKSB7CisgICAg
ICAgIGlmICghaXQtPnNlY29uZC5pc0FycmF5KCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBzdXBwb3J0ZWRQaW5Qcm90b2NvbHM7
CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcHJvdG9jb2wgOiBpdC0+c2Vjb25kLmdldEFycmF5
KCkpIHsKKyAgICAgICAgICAgIGlmICghcHJvdG9jb2wuaXNVbnNpZ25lZCgpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIHN1cHBvcnRlZFBpblBy
b3RvY29scy5hcHBlbmQocHJvdG9jb2wuZ2V0VW5zaWduZWQoKSk7CisgICAgICAgIH0KKyAgICAg
ICAgcmVzcG9uc2Uuc2V0UGluUHJvdG9jb2xzKFdURk1vdmUoc3VwcG9ydGVkUGluUHJvdG9jb2xz
KSk7CisgICAgfQorCisgICAgcmV0dXJuIFdURk1vdmUocmVzcG9uc2UpOworfQorCit9IC8vIG5h
bWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVy
dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9u
c2VDb252ZXJ0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTk2MzM1NDVjZGUyNWMwZGJkYzRjNjNkYTVmMWIx
NjZlMjM3NDkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmgKQEAgLTAsMCArMSw2NiBAQAorLy8g
Q29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlz
dHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisv
LyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9yR2V0SW5m
b1Jlc3BvbnNlLmgiCisjaW5jbHVkZSAiRmlkb0NvbnN0YW50cy5oIgorI2luY2x1ZGUgIlB1Ymxp
Y0tleUNyZWRlbnRpYWxEYXRhLmgiCisKKy8vIENvbnZlcnRzIHJlc3BvbnNlIGZyb20gYXV0aGVu
dGljYXRvcnMgdG8gQ1RBUFJlc3BvbnNlIG9iamVjdHMuIElmIHRoZQorLy8gcmVzcG9uc2Ugb2Yg
dGhlIGF1dGhlbnRpY2F0b3IgZG9lcyBub3QgY29uZm9ybSB0byBmb3JtYXQgc3BlY2lmaWVkIGJ5
IHRoZQorLy8gQ1RBUCBwcm90b2NvbCwgbnVsbCBvcHRpb25hbCBpcyByZXR1cm5lZC4KK25hbWVz
cGFjZSBmaWRvIHsKKworLy8gUGFyc2VzIHJlc3BvbnNlIGNvZGUgZnJvbSByZXNwb25zZSByZWNl
aXZlZCBmcm9tIHRoZSBhdXRoZW50aWNhdG9yLiBJZgorLy8gdW5rbm93biByZXNwb25zZSBjb2Rl
IHZhbHVlIGlzIHJlY2VpdmVkLCB0aGVuIENUQVAyX0VSUl9PVEhFUiBpcyByZXR1cm5lZC4KK1dF
QkNPUkVfRVhQT1JUIEN0YXBEZXZpY2VSZXNwb25zZUNvZGUgZ2V0UmVzcG9uc2VDb2RlKGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYpOworCisvLyBEZS1zZXJpYWxpemVzIENCT1IgZW5jb2RlZCByZXNw
b25zZSwgY2hlY2tzIGZvciB2YWxpZCBDQk9SIG1hcCBmb3JtYXR0aW5nLAorLy8gYW5kIGNvbnZl
cnRzIHJlc3BvbnNlIHRvIEF1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbFJlc3BvbnNlIG9iamVj
dCB3aXRoCisvLyBDQk9SIG1hcCBrZXlzIHRoYXQgY29uZm9ybSB0byBmb3JtYXQgb2YgYXR0ZXN0
YXRpb24gb2JqZWN0IGRlZmluZWQgYnkgdGhlCisvLyBXZWJBdXRoTiBzcGVjIDogaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL3dlYmF1dGhuLyNmaWctYXR0U3RydWN0cworV0VCQ09SRV9FWFBPUlQgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZENUQVBNYWtl
Q3JlZGVudGlhbFJlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYpOworCisvLyBEZS1zZXJp
YWxpemVzIENCT1IgZW5jb2RlZCByZXNwb25zZSB0byBBdXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9u
IC8KKy8vIEF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uIHJlcXVlc3QgdG8gQXV0aGVudGlj
YXRvckdldEFzc2VydGlvblJlc3BvbnNlCisvLyBvYmplY3QuCisvLyBGSVhNRSgxOTA3ODMpOiBQ
cm9iYWJseSBuZWVkIHRvIHJlbWFrZSBBdXRoZW50aWNhdG9yUmVzcG9uc2UgdG8gaW5jbHVkZSBt
b3JlIGZpZWxkcyBsaWtlIG51bWJlck9mQ3JlZGVudGlhbHMsCisvLyBhbmQgdXNlIGl0IGhlcmUg
aW5zdGVhZCBvZiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YS4KK1dFQkNPUkVfRVhQT1JUIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlYWRDVEFQR2V0QXNz
ZXJ0aW9uUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7CisKKy8vIERlLXNlcmlhbGl6
ZXMgQ0JPUiBlbmNvZGVkIHJlc3BvbnNlIHRvIEF1dGhlbnRpY2F0b3JHZXRJbmZvIHJlcXVlc3Qg
dG8KKy8vIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2Ugb2JqZWN0LgorV0VCQ09SRV9FWFBP
UlQgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlPiByZWFkQ1RBUEdl
dEluZm9SZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4mKTsKKworfSAvLyBuYW1lc3BhY2Ug
ZmlkbworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcAppbmRleCAzODgx
ZmQyZjI2NGU5ZjBlZTRkYTAzOTI0MmU1YWQxMGQ3MDRhNGYzLi44MTcyNWNlYWYyY2VkMjkxOTY3
ODQzYzk3OTE3OGFmNmVjNDRlNzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwCkBAIC0zMyw2ICszMyw2NiBAQAog
I2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKIG5hbWVzcGFjZSBmaWRvIHsKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCitib29sIGlzQ3RhcERldmljZVJlc3BvbnNlQ29kZShDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlIGNvZGUpCit7CisgICAgc3dpdGNoIChjb2RlKSB7CisgICAgY2FzZSBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprU3VjY2VzczoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMUVyckludmFsaWRDb21tYW5kOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNl
Q29kZTo6a0N0YXAxRXJySW52YWxpZFBhcmFtZXRlcjoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNw
b25zZUNvZGU6OmtDdGFwMUVyckludmFsaWRMZW5ndGg6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDFFcnJJbnZhbGlkU2VxOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a0N0YXAxRXJyVGltZW91dDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMUVyckNoYW5uZWxCdXN5OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29k
ZTo6a0N0YXAxRXJyTG9ja1JlcXVpcmVkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29k
ZTo6a0N0YXAxRXJySW52YWxpZENoYW5uZWw6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlOjprQ3RhcDJFcnJDQk9SUGFyc2luZzoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMkVyclVuZXhwZWN0ZWRUeXBlOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNl
Q29kZTo6a0N0YXAyRXJySW52YWxpZENCT1I6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlOjprQ3RhcDJFcnJJbnZhbGlkQ0JPUlR5cGU6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9u
c2VDb2RlOjprQ3RhcDJFcnJNaXNzaW5nUGFyYW1ldGVyOgorICAgIGNhc2UgQ3RhcERldmljZVJl
c3BvbnNlQ29kZTo6a0N0YXAyRXJyTGltaXRFeGNlZWRlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMkVyclVuc3VwcG9ydGVkRXh0ZW5zaW9uOgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVG9vTWFueUVsZW1lbnRzOgorICAgIGNhc2Ug
Q3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyRXh0ZW5zaW9uTm90U3VwcG9ydGVkOgor
ICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyQ3JlZGVudGlhbEV4Y2x1
ZGVkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUHJvY2Vzc3Np
bmc6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJJbnZhbGlkQ3Jl
ZGVudGlhbDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclVzZXJB
Y3Rpb25QZW5kaW5nOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJy
T3BlcmF0aW9uUGVuZGluZzoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFw
MkVyck5vT3BlcmF0aW9uczoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFw
MkVyclVuc3VwcG9ydGVkQWxnb3JpdGhtczoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMkVyck9wZXJhdGlvbkRlbmllZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25z
ZUNvZGU6OmtDdGFwMkVycktleVN0b3JlRnVsbDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25z
ZUNvZGU6OmtDdGFwMkVyck5vdEJ1c3k6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2Rl
OjprQ3RhcDJFcnJOb09wZXJhdGlvblBlbmRpbmc6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9u
c2VDb2RlOjprQ3RhcDJFcnJVbnN1cHBvcnRlZE9wdGlvbjoKKyAgICBjYXNlIEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRPcHRpb246CisgICAgY2FzZSBDdGFwRGV2aWNl
UmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJLZWVwQWxpdmVDYW5jZWw6CisgICAgY2FzZSBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJOb0NyZWRlbnRpYWxzOgorICAgIGNhc2UgQ3RhcERl
dmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVXNlckFjdGlvblRpbWVvdXQ6CisgICAgY2FzZSBD
dGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJOb3RBbGxvd2VkOgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluSW52YWxpZDoKKyAgICBjYXNlIEN0YXBE
ZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbkJsb2NrZWQ6CisgICAgY2FzZSBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5BdXRoSW52YWxpZDoKKyAgICBjYXNlIEN0YXBE
ZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbkF1dGhCbG9ja2VkOgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluTm90U2V0OgorICAgIGNhc2UgQ3RhcERl
dmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluUmVxdWlyZWQ6CisgICAgY2FzZSBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5Qb2xpY3lWaW9sYXRpb246CisgICAgY2FzZSBD
dGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5Ub2tlbkV4cGlyZWQ6CisgICAgY2Fz
ZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJSZXF1ZXN0VG9vTGFyZ2U6CisgICAg
Y2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJPdGhlcjoKKyAgICBjYXNlIEN0
YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclNwZWNMYXN0OgorICAgIGNhc2UgQ3RhcERl
dmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyRXh0ZW5zaW9uRmlyc3Q6CisgICAgY2FzZSBDdGFw
RGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJFeHRlbnNpb25MYXN0OgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVmVuZG9yRmlyc3Q6CisgICAgY2FzZSBDdGFw
RGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJWZW5kb3JMYXN0OgorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQogCiBi
b29sIGlzRmlkb0hpZERldmljZUNvbW1hbmQoRmlkb0hpZERldmljZUNvbW1hbmQgY21kKQogewpA
QCAtNTIsNiArMTEyLDE2IEBAIGJvb2wgaXNGaWRvSGlkRGV2aWNlQ29tbWFuZChGaWRvSGlkRGV2
aWNlQ29tbWFuZCBjbWQpCiAgICAgfQogfQogCitjb25zdCBjaGFyKiBwdWJsaWNLZXlDcmVkZW50
aWFsVHlwZVRvU3RyaW5nKFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlIHR5cGUpCit7CisgICAgc3dp
dGNoICh0eXBlKSB7CisgICAgY2FzZSBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5
OgorICAgICAgICByZXR1cm4ga1B1YmxpY0tleTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIGtQdWJsaWNLZXk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIGZpZG8K
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaAppbmRleCBiODY5MGYwM2RkNDg0
ZGZkMzY3NTY3NTBlMDU2YTI3NWM2ZGQzZTU2Li41Y2Q3YWU4YjM5MTM1MTQwMTQ3ZmMwNjk3OTM2
MzgwZjQ5MDBiYTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vRmlkb0NvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vZmlkby9GaWRvQ29uc3RhbnRzLmgKQEAgLTMxLDggKzMxLDkzIEBACiAKICNpZiBFTkFCTEUo
V0VCX0FVVEhOKQogCisjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCIKKwogbmFt
ZXNwYWNlIGZpZG8gewogCitlbnVtIGNsYXNzIFByb3RvY29sVmVyc2lvbiB7CisgICAga0N0YXAs
CisgICAga1UyZiwKKyAgICBrVW5rbm93biwKK307CisKKy8vIExlbmd0aCBvZiB0aGUgU0hBLTI1
NiBoYXNoIG9mIHRoZSBSUCBJRCBhc3Nzb2NpYXRlZCB3aXRoIHRoZSBjcmVkZW50aWFsOgorLy8g
aHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXV0aGVudGljYXRvci1kYXRhCitj
b25zdGV4cHIgc2l6ZV90IGtScElkSGFzaExlbmd0aCA9IDMyOworCisvLyBMZW5ndGggb2YgdGhl
IGZsYWdzOgorLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXV0aGVudGlj
YXRvci1kYXRhCitjb25zdGV4cHIgc2l6ZV90IGtGbGFnc0xlbmd0aCA9IDE7CisKKy8vIExlbmd0
aCBvZiB0aGUgc2lnbmF0dXJlIGNvdW50ZXIsIDMyLWJpdCB1bnNpZ25lZCBiaWctZW5kaWFuIGlu
dGVnZXI6CisvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI3NlYy1hdXRoZW50aWNh
dG9yLWRhdGEKK2NvbnN0ZXhwciBzaXplX3Qga1NpZ25Db3VudGVyTGVuZ3RoID0gNDsKKworLy8g
TGVuZ3RoIG9mIHRoZSBBQUdVSUQgb2YgdGhlIGF1dGhlbnRpY2F0b3I6CisvLyBodHRwczovL3d3
dy53My5vcmcvVFIvd2ViYXV0aG4vI3NlYy1hdHRlc3RlZC1jcmVkZW50aWFsLWRhdGEKK2NvbnN0
ZXhwciBzaXplX3Qga0FhZ3VpZExlbmd0aCA9IDE2OworCisvLyBMZW5ndGggb2YgdGhlIGJ5dGUg
bGVuZ3RoIEwgb2YgQ3JlZGVudGlhbCBJRCwgMTYtYml0IHVuc2lnbmVkIGJpZy1lbmRpYW4KKy8v
IGludGVnZXI6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jc2VjLWF0dGVzdGVkLWNy
ZWRlbnRpYWwtZGF0YQorY29uc3RleHByIHNpemVfdCBrQ3JlZGVudGlhbElkTGVuZ3RoTGVuZ3Ro
ID0gMjsKKworLy8gQ1RBUCBwcm90b2NvbCBkZXZpY2UgcmVzcG9uc2UgY29kZSwgYXMgc3BlY2lm
aWVkIGluCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIw
MTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3
MDkyNy5odG1sI2Vycm9yLXJlc3BvbnNlcworZW51bSBjbGFzcyBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlIDogdWludDhfdCB7CisgICAga1N1Y2Nlc3MgPSAweDAwLAorICAgIGtDdGFwMUVyckludmFs
aWRDb21tYW5kID0gMHgwMSwKKyAgICBrQ3RhcDFFcnJJbnZhbGlkUGFyYW1ldGVyID0gMHgwMiwK
KyAgICBrQ3RhcDFFcnJJbnZhbGlkTGVuZ3RoID0gMHgwMywKKyAgICBrQ3RhcDFFcnJJbnZhbGlk
U2VxID0gMHgwNCwKKyAgICBrQ3RhcDFFcnJUaW1lb3V0ID0gMHgwNSwKKyAgICBrQ3RhcDFFcnJD
aGFubmVsQnVzeSA9IDB4MDYsCisgICAga0N0YXAxRXJyTG9ja1JlcXVpcmVkID0gMHgwQSwKKyAg
ICBrQ3RhcDFFcnJJbnZhbGlkQ2hhbm5lbCA9IDB4MEIsCisgICAga0N0YXAyRXJyQ0JPUlBhcnNp
bmcgPSAweDEwLAorICAgIGtDdGFwMkVyclVuZXhwZWN0ZWRUeXBlID0gMHgxMSwKKyAgICBrQ3Rh
cDJFcnJJbnZhbGlkQ0JPUiA9IDB4MTIsCisgICAga0N0YXAyRXJySW52YWxpZENCT1JUeXBlID0g
MHgxMywKKyAgICBrQ3RhcDJFcnJNaXNzaW5nUGFyYW1ldGVyID0gMHgxNCwKKyAgICBrQ3RhcDJF
cnJMaW1pdEV4Y2VlZGVkID0gMHgxNSwKKyAgICBrQ3RhcDJFcnJVbnN1cHBvcnRlZEV4dGVuc2lv
biA9IDB4MTYsCisgICAga0N0YXAyRXJyVG9vTWFueUVsZW1lbnRzID0gMHgxNywKKyAgICBrQ3Rh
cDJFcnJFeHRlbnNpb25Ob3RTdXBwb3J0ZWQgPSAweDE4LAorICAgIGtDdGFwMkVyckNyZWRlbnRp
YWxFeGNsdWRlZCA9IDB4MTksCisgICAga0N0YXAyRXJyUHJvY2Vzc3NpbmcgPSAweDIxLAorICAg
IGtDdGFwMkVyckludmFsaWRDcmVkZW50aWFsID0gMHgyMiwKKyAgICBrQ3RhcDJFcnJVc2VyQWN0
aW9uUGVuZGluZyA9IDB4MjMsCisgICAga0N0YXAyRXJyT3BlcmF0aW9uUGVuZGluZyA9IDB4MjQs
CisgICAga0N0YXAyRXJyTm9PcGVyYXRpb25zID0gMHgyNSwKKyAgICBrQ3RhcDJFcnJVbnN1cHBv
cnRlZEFsZ29yaXRobXMgPSAweDI2LAorICAgIGtDdGFwMkVyck9wZXJhdGlvbkRlbmllZCA9IDB4
MjcsCisgICAga0N0YXAyRXJyS2V5U3RvcmVGdWxsID0gMHgyOCwKKyAgICBrQ3RhcDJFcnJOb3RC
dXN5ID0gMHgyOSwKKyAgICBrQ3RhcDJFcnJOb09wZXJhdGlvblBlbmRpbmcgPSAweDJBLAorICAg
IGtDdGFwMkVyclVuc3VwcG9ydGVkT3B0aW9uID0gMHgyQiwKKyAgICBrQ3RhcDJFcnJJbnZhbGlk
T3B0aW9uID0gMHgyQywKKyAgICBrQ3RhcDJFcnJLZWVwQWxpdmVDYW5jZWwgPSAweDJELAorICAg
IGtDdGFwMkVyck5vQ3JlZGVudGlhbHMgPSAweDJFLAorICAgIGtDdGFwMkVyclVzZXJBY3Rpb25U
aW1lb3V0ID0gMHgyRiwKKyAgICBrQ3RhcDJFcnJOb3RBbGxvd2VkID0gMHgzMCwKKyAgICBrQ3Rh
cDJFcnJQaW5JbnZhbGlkID0gMHgzMSwKKyAgICBrQ3RhcDJFcnJQaW5CbG9ja2VkID0gMHgzMiwK
KyAgICBrQ3RhcDJFcnJQaW5BdXRoSW52YWxpZCA9IDB4MzMsCisgICAga0N0YXAyRXJyUGluQXV0
aEJsb2NrZWQgPSAweDM0LAorICAgIGtDdGFwMkVyclBpbk5vdFNldCA9IDB4MzUsCisgICAga0N0
YXAyRXJyUGluUmVxdWlyZWQgPSAweDM2LAorICAgIGtDdGFwMkVyclBpblBvbGljeVZpb2xhdGlv
biA9IDB4MzcsCisgICAga0N0YXAyRXJyUGluVG9rZW5FeHBpcmVkID0gMHgzOCwKKyAgICBrQ3Rh
cDJFcnJSZXF1ZXN0VG9vTGFyZ2UgPSAweDM5LAorICAgIGtDdGFwMkVyck90aGVyID0gMHg3RiwK
KyAgICBrQ3RhcDJFcnJTcGVjTGFzdCA9IDB4REYsCisgICAga0N0YXAyRXJyRXh0ZW5zaW9uRmly
c3QgPSAweEUwLAorICAgIGtDdGFwMkVyckV4dGVuc2lvbkxhc3QgPSAweEVGLAorICAgIGtDdGFw
MkVyclZlbmRvckZpcnN0ID0gMHhGMCwKKyAgICBrQ3RhcDJFcnJWZW5kb3JMYXN0ID0gMHhGRgor
fTsKKworYm9vbCBpc0N0YXBEZXZpY2VSZXNwb25zZUNvZGUoQ3RhcERldmljZVJlc3BvbnNlQ29k
ZSk7CisKIC8vIENvbW1hbmRzIHN1cHBvcnRlZCBieSBDVEFQSElEIGRldmljZSBhcyBzcGVjaWZp
ZWQgaW4KIC8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAx
NzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcw
OTI3Lmh0bWwjY3RhcGhpZC1jb21tYW5kcwogZW51bSBjbGFzcyBGaWRvSGlkRGV2aWNlQ29tbWFu
ZCA6IHVpbnQ4X3QgewpAQCAtNDcsNyArMTMyLDI0IEBAIGVudW0gY2xhc3MgRmlkb0hpZERldmlj
ZUNvbW1hbmQgOiB1aW50OF90IHsKICAgICBrTG9jayA9IDB4MDQsCiB9OwogCi1ib29sIGlzRmlk
b0hpZERldmljZUNvbW1hbmQoRmlkb0hpZERldmljZUNvbW1hbmQgY21kKTsKK2Jvb2wgaXNGaWRv
SGlkRGV2aWNlQ29tbWFuZChGaWRvSGlkRGV2aWNlQ29tbWFuZCk7CisKKy8vIFN0cmluZyBrZXkg
dmFsdWVzIGZvciBDVEFQIHJlcXVlc3Qgb3B0aW9uYWwgcGFyYW1ldGVycyBhbmQKKy8vIEF1dGhl
bnRpY2F0b3JHZXRJbmZvIHJlc3BvbnNlLgorY29uc3QgY2hhciBrUmVzaWRlbnRLZXlNYXBLZXlb
XSA9ICJyayI7Citjb25zdCBjaGFyIGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5W10gPSAidXYiOwor
Y29uc3QgY2hhciBrVXNlclByZXNlbmNlTWFwS2V5W10gPSAidXAiOworY29uc3QgY2hhciBrQ2xp
ZW50UGluTWFwS2V5W10gPSAiY2xpZW50UGluIjsKK2NvbnN0IGNoYXIga1BsYXRmb3JtRGV2aWNl
TWFwS2V5W10gPSAicGxhdCI7Citjb25zdCBjaGFyIGtFbnRpdHlJZE1hcEtleVtdID0gImlkIjsK
K2NvbnN0IGNoYXIga0VudGl0eU5hbWVNYXBLZXlbXSA9ICJuYW1lIjsKK2NvbnN0IGNoYXIga0Rp
c3BsYXlOYW1lTWFwS2V5W10gPSAiZGlzcGxheU5hbWUiOworY29uc3QgY2hhciBrSWNvblVybE1h
cEtleVtdID0gImljb24iOworY29uc3QgY2hhciBrQ3JlZGVudGlhbFR5cGVNYXBLZXlbXSA9ICJ0
eXBlIjsKK2NvbnN0IGNoYXIga0NyZWRlbnRpYWxBbGdvcml0aG1NYXBLZXlbXSA9ICJhbGciOwor
Ly8gS2V5cyBmb3Igc3RvcmluZyBjcmVkZW50aWFsIGRlc2NyaXB0b3IgaW5mb3JtYXRpb24gaW4g
Q0JPUiBtYXAuCitjb25zdCBjaGFyIGtDcmVkZW50aWFsSWRLZXlbXSA9ICJpZCI7Citjb25zdCBj
aGFyIGtDcmVkZW50aWFsVHlwZUtleVtdID0gInR5cGUiOwogCiAvLyBISUQgdHJhbnNwb3J0IHNw
ZWNpZmljIGNvbnN0YW50cy4KIGNvbnN0IHNpemVfdCBrSGlkUGFja2V0U2l6ZSA9IDY0OwpAQCAt
NjMsNiArMTY1LDM0IEBAIGNvbnN0IHVpbnQ4X3Qga0hpZE1heExvY2tTZWNvbmRzID0gMTA7CiAv
LyBNZXNzYWdlcyBhcmUgbGltaXRlZCB0byBhbiBpbml0aWF0aW9uIHBhY2tldCBhbmQgMTI4IGNv
bnRpbnVhdGlvbiBwYWNrZXRzLgogY29uc3Qgc2l6ZV90IGtIaWRNYXhNZXNzYWdlU2l6ZSA9IDc2
MDk7CiAKKy8vIEF1dGhlbnRpY2F0b3IgQVBJIGNvbW1hbmRzIHN1cHBvcnRlZCBieSBDVEFQIGRl
dmljZXMsIGFzIHNwZWNpZmllZCBpbgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNz
L2ZpZG8tdjIuMC1yZC0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3Rv
Y29sLXYyLjAtcmQtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNhdG9yLWFwaQorZW51bSBjbGFzcyBD
dGFwUmVxdWVzdENvbW1hbmQgOiB1aW50OF90IHsKKyAgICBrQXV0aGVudGljYXRvck1ha2VDcmVk
ZW50aWFsID0gMHgwMSwKKyAgICBrQXV0aGVudGljYXRvckdldEFzc2VydGlvbiA9IDB4MDIsCisg
ICAga0F1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uID0gMHgwOCwKKyAgICBrQXV0aGVudGlj
YXRvckdldEluZm8gPSAweDA0LAorICAgIGtBdXRoZW50aWNhdG9yQ2xpZW50UGluID0gMHgwNiwK
KyAgICBrQXV0aGVudGljYXRvclJlc2V0ID0gMHgwNywKK307CisKKy8vIFN0cmluZyBrZXkgdmFs
dWVzIGZvciBhdHRlc3RhdGlvbiBvYmplY3QgYXMgYSByZXNwb25zZSB0byBNYWtlQ3JlZGVudGlh
bAorLy8gcmVxdWVzdC4KK2NvbnN0IGNoYXIga0Zvcm1hdEtleVtdID0gImZtdCI7Citjb25zdCBj
aGFyIGtBdHRlc3RhdGlvblN0YXRlbWVudEtleVtdID0gImF0dFN0bXQiOworY29uc3QgY2hhciBr
QXV0aERhdGFLZXlbXSA9ICJhdXRoRGF0YSI7Citjb25zdCBjaGFyIGtOb25lQXR0ZXN0YXRpb25W
YWx1ZVtdID0gIm5vbmUiOworCisvLyBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgcHVibGljIGtl
eSBjcmVkZW50aWFsIGVudW0uCisvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViYXV0aG4vI2Ny
ZWRlbnRpYWxUeXBlCitjb25zdCBjaGFyIGtQdWJsaWNLZXlbXSA9ICJwdWJsaWMta2V5IjsKKwor
Y29uc3QgY2hhciogcHVibGljS2V5Q3JlZGVudGlhbFR5cGVUb1N0cmluZyhXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsVHlwZSk7CisKKy8vIEZJWE1FOiBBZGQgdXJsIHRvIHRoZSBvZmZpY2lh
bCBzcGVjIG9uY2UgaXQncyBzdGFuZGFyZGl6ZWQuCitjb25zdCBjaGFyIGtDdGFwMlZlcnNpb25b
XSA9ICJGSURPXzJfMCI7Citjb25zdCBjaGFyIGtVMmZWZXJzaW9uW10gPSAiVTJGX1YyIjsKKwog
fSAvLyBuYW1lc3BhY2UgZmlkbwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAKaW5kZXggNmRm
NDVlMWJlZDYyNGNiNTk4YjI5OGFkYTkyNjUyMjA1MmIxZmZmNy4uYTBiMjE0OWMzNzIxZGRiMmE4
Zjc5ZGU3OTU3MTMwNmVlZWQzZDE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR1BVQWRhcHRlckRlc2NyaXB0b3Iu
aCIKICNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBiNzgxMWEzMzllYjY1ZGIxNWNh
ZWVhMTdmNzliZTI0ODc5NTllYzNmLi5iMDZkMjQ3MWJiYmRjZWM4NTIxNzczNWY4ZGFmZGUzNWJl
NDA1OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjU4LDYgKzI1OCwxMCBAQCBNb2R1bGVzL3dlYmF1
dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwCiBNb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlJl
YWRlci5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwCiBNb2R1bGVzL3dl
YmF1dGhuL2Nib3IvQ0JPUldyaXRlci5jcHAKK01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50
aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmNwcAorTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcAorTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJl
cXVlc3RDb252ZXJ0ZXIuY3BwCitNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VD
b252ZXJ0ZXIuY3BwCiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5jcHAKIE1v
ZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvSGlkTWVzc2FnZS5jcHAKIE1vZHVsZXMvd2ViYXV0aG4v
Zmlkby9GaWRvSGlkUGFja2V0LmNwcApAQCAtMzE1NCw2ICszMTU4LDcgQEAgSlNUcmVlV2Fsa2Vy
LmNwcAogSlNVSUV2ZW50LmNwcAogSlNVSUV2ZW50SW5pdC5jcHAKIEpTVVJMU2VhcmNoUGFyYW1z
LmNwcAorSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuY3BwCiBKU1ZSRGlzcGxheS5jcHAK
IEpTVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmNwcAogSlNWUkRpc3BsYXlFdmVudC5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAx
NTE2NzUxYjhmZGQyZDI5OWJjNzdiYzYxMjU3ZTExNGNjNjYxMWZlLi4yN2EwNjFkYmJjMDU2OWY3
NDM1Y2JmMTM2ZmY0NWJlMDZlMTQ3NGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzUyLDYgKzE3NTIsMTIgQEAKIAkJNTcy
MUE5ODcxRUNFNTNCMTAwODEyOTVBIC8qIENyeXB0b0RpZ2VzdEFsZ29yaXRobS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyMUE5ODYxRUNFNTNCMTAw
ODEyOTVBIC8qIENyeXB0b0RpZ2VzdEFsZ29yaXRobS5oICovOyB9OwogCQk1NzIxQTk4QjFFQ0U1
NzA0MDA4MTI5NUEgLyogQ3J5cHRvQWxnb3JpdGhtUnNhUHNzUGFyYW1zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzIxQTk4ODFFQ0U1NzA0MDA4MTI5
NUEgLyogQ3J5cHRvQWxnb3JpdGhtUnNhUHNzUGFyYW1zLmggKi87IH07CiAJCTU3MkE3RjIxMUM2
RTU3MTkwMDlDNjE0OSAvKiBTaW11bGF0ZWRDbGljay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQTdGMjAxQzZFNTcxOTAwOUM2MTQ5IC8qIFNpbXVs
YXRlZENsaWNrLmggKi87IH07CisJCTU3MkI0MDFGMjE3NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VS
ZXF1ZXN0Q29udmVydGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzJCNDAxRDIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZlcnRl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU3
MkI0MDJDMjE3NjkwMjAwMDBBRDQzRSAvKiBKU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwMkEy
MTc2OTAxRjAwMEFENDNFIC8qIEpTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggKi87IH07
CisJCTU3MkI0MDM2MjE3NkE5MjIwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0
MDIzMjE3NjhEODUwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NzJCNDAzQTIx
NzcyNTgxMDAwQUQ0M0UgLyogRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDM3MjE3NzI1NkMwMDBBRDQz
RSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTU3MkI0MDQwMjE3ODAxNzEwMDBBRDQzRSAvKiBBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwM0UyMTc4MDE3MDAwMEFENDNFIC8qIEF1dGhlbnRpY2F0
b3JTdXBwb3J0ZWRPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNTcyQjQwNDIyMTc4MTE0QTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JH
ZXRJbmZvUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3MkI0MDNDMjE3N0ZCNjEwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jl
c3BvbnNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNTczMDNCQjkyMDA2QzZFRTAwMzU1OTY1IC8qIENCT1JWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQjQyMDA2QzZFRDAwMzU1OTY1
IC8qIENCT1JWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTU3MzAzQkJBMjAwNkM2RUUwMDM1NTk2NSAvKiBDQk9SV3JpdGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzMwM0JCNTIwMDZDNkVE
MDAzNTU5NjUgLyogQ0JPUldyaXRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTU3MzAzQkJCMjAwNkM2RUUwMDM1NTk2NSAvKiBDQk9SQmluYXJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzMwM0JC
NjIwMDZDNkVEMDAzNTU5NjUgLyogQ0JPUkJpbmFyeS5oICovOyB9OwpAQCAtODU2Myw2ICs4NTY5
LDE4IEBACiAJCTU3MjFBOThBMUVDRTU3MDQwMDgxMjk1QSAvKiBSc2FQc3NQYXJhbXMuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFJzYVBzc1BhcmFtcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkE3
RjIwMUM2RTU3MTkwMDlDNjE0OSAvKiBTaW11bGF0ZWRDbGljay5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTaW11bGF0ZWRDbGljay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NzJBN0YyMjFDNkU1QTY2MDA5QzYxNDkgLyogU2ltdWxhdGVkQ2xpY2suY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2ltdWxhdGVkQ2xpY2suY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAxRDIxNzU3QTY0MDAwQUQ0M0UgLyog
RGV2aWNlUmVxdWVzdENvbnZlcnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VSZXF1ZXN0Q29u
dmVydGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDFFMjE3NTdBNjQw
MDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IERldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1NzJCNDAyMzIxNzY4RDg1MDAwQUQ0M0UgLyogVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAyNTIxNzY4RDg1MDAwQUQ0M0UgLyogVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAyQTIxNzY5MDFGMDAw
QUQ0M0UgLyogSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMkIyMTc2OTAxRjAwMEFENDNFIC8qIEpTVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMzcyMTc3MjU2QzAwMEFENDNFIC8qIERldmljZVJlc3Bv
bnNlQ29udmVydGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZVJl
c3BvbnNlQ29udmVydGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDM4
MjE3NzI1NkMwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDNCMjE3N0ZCNjAwMDBBRDQzRSAv
KiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAzQzIxNzdGQjYxMDAwQUQ0M0UgLyogQXV0aGVu
dGljYXRvckdldEluZm9SZXNwb25zZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTU3MkI0MDNEMjE3ODAxNkYwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTU3MkI0MDNFMjE3ODAxNzAwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9u
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdG9yU3VwcG9y
dGVkT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzMwM0JCNDIwMDZD
NkVEMDAzNTU5NjUgLyogQ0JPUlZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENCT1JWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzMwM0JCNTIw
MDZDNkVEMDAzNTU5NjUgLyogQ0JPUldyaXRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDQk9SV3JpdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAz
QkI2MjAwNkM2RUQwMDM1NTk2NSAvKiBDQk9SQmluYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENCT1JCaW5hcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE5MDc2LDYgKzE5MDk0LDE0IEBACiAJCTU3OEE0QkZBMjE2NkFFMDAwMEQwOEYzNCAvKiBmaWRv
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1NzJCNDAz
QjIxNzdGQjYwMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5jcHAgKi8s
CisJCQkJNTcyQjQwM0MyMTc3RkI2MTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVz
cG9uc2UuaCAqLywKKwkJCQk1NzJCNDAzRDIxNzgwMTZGMDAwQUQ0M0UgLyogQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnMuY3BwICovLAorCQkJCTU3MkI0MDNFMjE3ODAxNzAwMDBBRDQzRSAv
KiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oICovLAorCQkJCTU3MkI0MDFFMjE3NTdB
NjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcCAqLywKKwkJCQk1NzJCNDAx
RDIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oICovLAorCQkJCTU3
MkI0MDM4MjE3NzI1NkMwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAgKi8s
CisJCQkJNTcyQjQwMzcyMTc3MjU2QzAwMEFENDNFIC8qIERldmljZVJlc3BvbnNlQ29udmVydGVy
LmggKi8sCiAJCQkJNTdCQUYyODcyMTY3RDJGNzAwOEU5NTRFIC8qIEZpZG9Db25zdGFudHMuY3Bw
ICovLAogCQkJCTU3OEE0QzBCMjE2N0QyOTYwMEQwOEYzNCAvKiBGaWRvQ29uc3RhbnRzLmggKi8s
CiAJCQkJNTc4QTRDMDgyMTY3RDI5NTAwRDA4RjM0IC8qIEZpZG9IaWRNZXNzYWdlLmNwcCAqLywK
QEAgLTE5MTU1LDYgKzE5MTgxLDggQEAKIAkJCQk1NzMwM0MwODIwMDk5OEY4MDAzNTU5NjUgLyog
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbCAqLywKIAkJCQk1NzMwM0JFQTIw
MDk3RjQwMDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCAqLywKIAkJCQk1NzMw
M0JGMDIwMDk4NDYxMDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaWRsICovLAor
CQkJCTU3MkI0MDIzMjE3NjhEODUwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQuaCAqLywKKwkJCQk1NzJCNDAyNTIxNzY4RDg1MDAwQUQ0M0UgLyogVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50LmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gd2ViYXV0aG47CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTkxODAsNiArMTkyMDgsOCBAQAogCQkJCTU3MzAzQzBD
MjAwOTlDNzUwMDM1NTk2NSAvKiBKU1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5o
ICovLAogCQkJCTU3MzAzQkZBMjAwOTkxMzUwMDM1NTk2NSAvKiBKU1B1YmxpY0tleUNyZWRlbnRp
YWxUeXBlLmNwcCAqLywKIAkJCQk1NzMwM0JGOTIwMDk5MTM0MDAzNTU5NjUgLyogSlNQdWJsaWNL
ZXlDcmVkZW50aWFsVHlwZS5oICovLAorCQkJCTU3MkI0MDJCMjE3NjkwMUYwMDBBRDQzRSAvKiBK
U1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5jcHAgKi8sCisJCQkJNTcyQjQwMkEyMTc2OTAx
RjAwMEFENDNFIC8qIEpTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggKi8sCiAJCQkpOwog
CQkJbmFtZSA9IFdlYkF1dGhOOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI3NjU4
LDcgKzI3Njg4LDkgQEAKIAkJCQk1NzMwM0MxRjIwMDlBQjQyMDAzNTU5NjUgLyogQXV0aGVudGlj
YXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQzQ2MjAx
MDVEMkYwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTU3NjA4MjcyMjAyMTVBNTUwMDExNjY3OCAvKiBBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MkI0MDQyMjE3ODExNEEwMDBBRDQzRSAv
KiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMw
M0JEMjIwMDg3QTgzMDAzNTU5NjUgLyogQXV0aGVudGljYXRvclJlc3BvbnNlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk1NzJCNDA0MDIxNzgwMTcxMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvclN1cHBv
cnRlZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RENFRDkwMjE0ODdGRjcwMDE2Qjg0
NyAvKiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTAxOTIw
RTEzMkVCRjJFMDA4QkZFNTUgLyogQXV0b2NhcGl0YWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE1QTdBQTQzMTMyRjBFQ0MwMEQzQTNDMiAvKiBBdXRvY2FwaXRhbGl6ZVR5cGVzLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI4MTc1LDYgKzI4MjA3LDggQEAKIAkJCQk1OUE4RjFENjExQTY5NTEzMDAx
QUMzNEEgLyogRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1OTBFMUI0OTExRTRFRjRCMDA2OUY3ODQgLyogRGV2aWNlT3JpZW50YXRpb25EYXRhLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1OUE4NUVBNDExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3JpZW50
YXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcyQjQwMUYyMTc1N0E2NDAwMEFENDNF
IC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MkI0MDNB
MjE3NzI1ODEwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMjY3NzI1RkQxQTVCM0FEOTAwM0MyNEREIC8qIERGQS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNEOUY1NjYxQUEwRjczQzAwREE0NUZGIC8qIERGQUJ5dGVjb2RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1Q0Q5RjU2NzFBQTBGNzQyMDBEQTQ1RkYgLyogREZBQnl0ZWNvZGVDb21waWxl
ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTY1Nyw2ICsyOTY5MSw3IEBACiAJCQkJNDY1MzA3RDAx
REI2RUU0ODAwRTQxMzdDIC8qIEpTVUlFdmVudEluaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdD
NzNGQjEyMTkxRUY2RjQwMDdERTA2MSAvKiBKU1VzZXJNZXNzYWdlSGFuZGxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0M3M0ZCMEQxOTFFRjVBODAwN0RFMDYxIC8qIEpTVXNlck1lc3NhZ2VIYW5k
bGVyc05hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcyQjQwMkMyMTc2OTAyMDAwMEFE
NDNFIC8qIEpTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxNUM3NzA5MzEwMEQzQ0E4MDA1QkEyNjcgLyogSlNWYWxpZGl0eVN0YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCRThFRjA0QjE3MUM5MDE0MDA5QjQ4QzMgLyogSlNWaWRlb1RyYWNrLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCRThFRjA0RDE3MUM5MDE0MDA5QjQ4QzMgLyogSlNWaWRlb1RyYWNr
TGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTMwNyw2ICszMTM0Miw3IEBACiAJCQkJQkM4QkYx
NTExMDU4MTNCRjAwQTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzhCRjE1QTEwNTgxNDE4MDBBNDBBMDcgLyogVXNlclN0eWxlU2hlZXRUeXBlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNERjMxN0MxMUY4RDY4MzAwM0M1QkY4IC8qIFVzZXJUeXBpbmdHZXN0
dXJlSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzJCNDAzNjIxNzZBOTIyMDAwQUQ0
M0UgLyogVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
NUFGMTRFNjFFQUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFGQUZCRjE5MTVBNUZBNzQwMDA4M0EyMCAvKiBVVElVdGlsaXRpZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxpZGF0aW9uQnViYmxlLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCAwNjk5NjRiYjlhNjIxMmExZTRmMjk1OGUwMzljMDlmNTlmOGQzY2YyLi44ZjI1
OTBhMmNiYWEwNDRkOGQ1NGJlODhiNDVjMzA4NDM5OWMyMmExIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTgtMTAt
MjIgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0
aE5dIEltcG9ydCBDVEFQIGRldmljZSByZXF1ZXN0L3Jlc3BvbnNlIGNvbnZlcnRlcnMgZnJvbSBD
aHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkwNzg0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTQ2MDMzMz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9DQk9SVmFsdWVUZXN0LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVx
dWVzdFRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVzcG9uc2VUZXN0LmNwcDog
QWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpnZXRUZXN0Q29ycnVwdGVkU2lnblJlc3Bv
bnNlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmdldFRlc3RDcmVkZW50aWFsUmF3SWRCeXRl
cyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpjb252ZXJ0VG9WZWN0b3IpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0ZpZG9UZXN0RGF0YS5oOiBBZGRlZC4KKwogMjAxOC0xMC0yMiAgUnlhbiBIYWRkYWQgIDxy
eWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjM0MDgxKTogVGVz
dFdlYktpdEFQSS5WaWRlb0NvbnRyb2xzTWFuYWdlci5WaWRlb0NvbnRyb2xzTWFuYWdlckF1ZGlv
RWxlbWVudEZvbGxvd2luZ1VzZXJJbnRlcmFjdGlvbiBpcyBhIGZsYWt5IHRpbWVvdXQKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNDk4MmY0ZmM5YjEzODY5MDVlZDY5ZTBlYzczMGRjZDg1NzM0
NjY4Zi4uM2MzYTMyNzg1Y2VhYmFmZDBmODYxODEzMmQxNGY5NTNhZjNjZTJlOCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTI0Niw2ICsyNDYsOCBAQAogCQk1NzE0RUNCQjFDQThCRkU0MDAw
NTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MTRFQ0JBMUNBOEJG
RDEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWwgKi87IH07
CiAJCTU3MTRFQ0JEMUNBOEMyMkEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVS
TDIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzE0RUNCQzFDQThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxV
UkwyLmh0bWwgKi87IH07CiAJCTU3MUY3RkQwMUYyOTYxRkIwMDk0NjY0OCAvKiBJbmRleGVkREJT
dHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxRjdGQ0YxRjI5
NjFFMTAwOTQ2NjQ4IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJp
bGl0eS5zcWxpdGUzLXdhbCAqLzsgfTsKKwkJNTcyQjQwMzQyMTc2OUE4ODAwMEFENDNFIC8qIEN0
YXBSZXF1ZXN0VGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzJCNDAzMzIxNzY5QTg4MDAwQUQ0M0UgLyogQ3RhcFJlcXVlc3RUZXN0LmNwcCAq
LzsgfTsKKwkJNTcyQjQwNDQyMTc4MUI0MzAwMEFENDNFIC8qIEN0YXBSZXNwb25zZVRlc3QuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwNDMy
MTc4MUI0MjAwMEFENDNFIC8qIEN0YXBSZXNwb25zZVRlc3QuY3BwICovOyB9OwogCQk1NzMwM0JD
OTIwMDgyNEQzMDAzNTU5NjUgLyogQ0JPUlZhbHVlVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzMwM0JBQzIwMDZDNTYwMDAzNTU5NjUgLyog
Q0JPUlZhbHVlVGVzdC5jcHAgKi87IH07CiAJCTU3MzAzQkNBMjAwODJDMDEwMDM1NTk2NSAvKiBD
Qk9SV3JpdGVyVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzMwM0JBQjIwMDZDNTU0MDAzNTU5NjUgLyogQ0JPUldyaXRlclRlc3QuY3BwICov
OyB9OwogCQk1NzMwM0JDQjIwMDgzNzY1MDAzNTU5NjUgLyogQ0JPUlJlYWRlclRlc3QuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQzIyMDA3
MUUyMjAwMzU1OTY1IC8qIENCT1JSZWFkZXJUZXN0LmNwcCAqLzsgfTsKQEAgLTE1NTEsNiArMTU1
Myw5IEBACiAJCTU3MTRFQ0JBMUNBOEJGRDEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmln
aW5hbFVSTEZyYW1lLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJl
cXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU3MTRFQ0JDMUNBOEMyMTgwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERvd25sb2FkUmVxdWVzdE9yaWdpbmFs
VVJMMi5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzFGN0ZDRjFGMjk2MUUx
MDA5NDY2NDggLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5
LnNxbGl0ZTMtd2FsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gZmlsZTsgcGF0aCA9ICJJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBh
dGliaWxpdHkuc3FsaXRlMy13YWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJC
NDAzMzIxNzY5QTg4MDAwQUQ0M0UgLyogQ3RhcFJlcXVlc3RUZXN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN0YXBSZXF1ZXN0VGVzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDM1MjE3NkEwMjkwMDBBRDQzRSAvKiBGaWRvVGVzdERh
dGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRmlkb1Rlc3REYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTU3MkI0MDQzMjE3ODFCNDIwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN0YXBSZXNwb25zZVRlc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzMwM0JBQjIwMDZDNTU0MDAzNTU5
NjUgLyogQ0JPUldyaXRlclRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ0JPUldyaXRlclRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NzMwM0JBQzIwMDZDNTYwMDAzNTU5NjUgLyogQ0JPUlZhbHVlVGVzdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQk9SVmFsdWVUZXN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQzIyMDA3MUUyMjAwMzU1OTY1IC8qIENCT1JSZWFkZXJU
ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENCT1JSZWFkZXJU
ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1MzIsMTEgKzI1MzcsMTQg
QEAKIAkJCQkxQzlFQjg0MDFFMzgwREExMDA1QzY0NDIgLyogQ29tcGxleFRleHRDb250cm9sbGVy
LmNwcCAqLywKIAkJCQk3Q0IxODRDNDFBQTNGMjEwMDA2NkVERkQgLyogQ29udGVudEV4dGVuc2lv
bnMuY3BwICovLAogCQkJCUNENTQ1MUU5MTlFNDFGOUQwMDE2OTM2RiAvKiBDU1NQYXJzZXIuY3Bw
ICovLAorCQkJCTU3MkI0MDMzMjE3NjlBODgwMDBBRDQzRSAvKiBDdGFwUmVxdWVzdFRlc3QuY3Bw
ICovLAorCQkJCTU3MkI0MDQzMjE3ODFCNDIwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNw
cCAqLywKIAkJCQkyNjBCQTU3ODFCMUQyRTdCMDA0RkEwN0MgLyogREZBQ29tYmluZXIuY3BwICov
LAogCQkJCTI2MEJBNTdBMUIxRDJFRTIwMDRGQTA3QyAvKiBERkFIZWxwZXJzLmggKi8sCiAJCQkJ
MjZGNkUxRUYxQURDNzQ5QjAwREU2OTZCIC8qIERGQU1pbmltaXplci5jcHAgKi8sCiAJCQkJMzE1
MTE4MEYxREIxQURENTAwMTc2MzA0IC8qIEV4dGVuZGVkQ29sb3IuY3BwICovLAogCQkJCTU3OTY1
MUU2MjE2QkZENTMwMDZFQkZFNSAvKiBGaWRvSGlkTWVzc2FnZVRlc3QuY3BwICovLAorCQkJCTU3
MkI0MDM1MjE3NkEwMjkwMDBBRDQzRSAvKiBGaWRvVGVzdERhdGEuaCAqLywKIAkJCQk3QTMyRDc0
OTFGMDIxNTE1MDAxNjJDNDQgLyogRmlsZU1vbml0b3IuY3BwICovLAogCQkJCTQxOTczQjVBMUFG
MjI4NkEwMDZDN0IzNiAvKiBGaWxlU3lzdGVtLmNwcCAqLywKIAkJCQk3QTkwOUE3MDFEODc3NDc1
MDA3RTEwRjggLyogRmxvYXRQb2ludC5jcHAgKi8sCkBAIC0zNzY3LDYgKzM3NzUsOCBAQAogCQkJ
CTdDQ0U3RUFDMUE0MTFBMzQwMDQ0N0M0QyAvKiBDb3VudGVycy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3QUVBRDQ3RjFFMjAxMTZDMDA0MTZFRkUgLyogQ3Jvc3NQYXJ0aXRpb25GaWxlU2NoZW1l
QWNjZXNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFREIxQTQxMUE5MjAwNDQ3QzRDIC8q
IENTU1BhcnNlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzJCNDAzNDIxNzY5QTg4MDAwQUQ0
M0UgLyogQ3RhcFJlcXVlc3RUZXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU3MkI0MDQ0MjE3
ODFCNDMwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdBQzdCNTcwMjBEOUJBNUIwMDJDMDlBMCAvKiBDdXN0b21CdW5kbGVPYmplY3QubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3QUM3QjU2RDIwRDk3NjlGMDAyQzA5QTAgLyogQ3VzdG9tQnVuZGxlUGFy
YW1ldGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMjkxQTQxMUIxMDAwNDQ3QzRDIC8q
IEN1c3RvbVByb3RvY29sc0ludmFsaWRTY2hlbWUubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DQk9SVmFsdWVUZXN0LmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DQk9SVmFsdWVUZXN0LmNwcAppbmRl
eCBhMmQ2Yjg5ZjI3MjhmZjVlODg5N2QyNDRiMGNiNTgzOWY5MzVlY2UxLi5mZjUyMGRjN2E1OTQ5
NGM1YTNkNmQ2MTZlYzVkZjVhMDRkYzdjN2QxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUlZhbHVlVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0NCT1JWYWx1ZVRlc3QuY3BwCkBAIC0xNDgsNiArMTQ4LDE3IEBA
IFRFU1QoQ0JPUlZhbHVlVGVzdCwgQ29uc3RydWN0U2ltcGxlVmFsdWUpCiAgICAgRVhQRUNUX1RS
VUUoQ0JPUlZhbHVlOjpTaW1wbGVWYWx1ZTo6VW5kZWZpbmVkID09IHVuZGVmaW5lZFZhbHVlLmdl
dFNpbXBsZVZhbHVlKCkpOwogfQogCitURVNUKENCT1JWYWx1ZVRlc3QsIENvbnN0cnVjdFNpbXBs
ZUJvb2xlYW5WYWx1ZSkKK3sKKyAgICBDQk9SVmFsdWUgdHJ1ZVZhbHVlKHRydWUpOworICAgIEFT
U0VSVF9FUShDQk9SVmFsdWU6OlR5cGU6OlNpbXBsZVZhbHVlLCB0cnVlVmFsdWUudHlwZSgpKTsK
KyAgICBFWFBFQ1RfVFJVRSh0cnVlVmFsdWUuZ2V0Qm9vbCgpKTsKKworICAgIENCT1JWYWx1ZSBm
YWxzZVZhbHVlKGZhbHNlKTsKKyAgICBBU1NFUlRfRVEoQ0JPUlZhbHVlOjpUeXBlOjpTaW1wbGVW
YWx1ZSwgZmFsc2VWYWx1ZS50eXBlKCkpOworICAgIEVYUEVDVF9GQUxTRShmYWxzZVZhbHVlLmdl
dEJvb2woKSk7Cit9CisKIC8vIFRlc3QgY29weSBjb25zdHJ1Y3RvcnMKIFRFU1QoQ0JPUlZhbHVl
VGVzdCwgQ29weVVuc2lnbmVkKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDM5ZGFkNGVjMWE5
MDgwMDc0MTdjZDJhN2U2YzYxZGQxMzVmYTY0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHAKQEAgLTAsMCArMSwx
MjggQEAKKy8vIENvcHlyaWdodCAyMDE3IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8v
CisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8v
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkZp
ZG9UZXN0RGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGV2aWNlUmVxdWVzdENvbnZlcnRlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRmlkb0NvbnN0YW50cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
QmFzZTY0Lmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIGZpZG87CisKKy8vIExldmVyYWdpbmcgZXhhbXBsZSAy
IG9mIHNlY3Rpb24gNi4xIG9mIHRoZSBzcGVjCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcv
c3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3It
cHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sCitURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVz
dENvbnN0cnVjdE1ha2VDcmVkZW50aWFsUmVxdWVzdFBhcmFtKQoreworICAgIFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlJwRW50aXR5IHJwOworICAgIHJwLm5hbWUgPSAiQWNt
ZSI7CisgICAgcnAuaWQgPSAiYWNtZS5jb20iOworCisgICAgUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9uczo6VXNlckVudGl0eSB1c2VyOworICAgIHVzZXIubmFtZSA9ICJqb2hucHNt
aXRoQGV4YW1wbGUuY29tIjsKKyAgICB1c2VyLmljb24gPSAiaHR0cHM6Ly9waWNzLmFjbWUuY29t
LzAwL3AvYUJqampwcVBiLnBuZyI7CisgICAgdXNlci5pZFZlY3Rvci5hcHBlbmQoVGVzdERhdGE6
OmtVc2VySWQsIHNpemVvZihUZXN0RGF0YTo6a1VzZXJJZCkpOworICAgIHVzZXIuZGlzcGxheU5h
bWUgPSAiSm9obiBQLiBTbWl0aCI7CisKKyAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4gcGFyYW1zIHsgeyBQdWJsaWNLZXlDcmVkZW50aWFs
VHlwZTo6UHVibGljS2V5LCA3IH0sIHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tl
eSwgMjU3IH0gfTsKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRo
ZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9uIHsgUHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtLCB0cnVl
LCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZCB9OworCisgICAgUHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFy
YW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwgc2VsZWN0aW9uIH07CisgICAgVmVjdG9yPHVpbnQ4X3Q+
IGhhc2g7CisgICAgaGFzaC5hcHBlbmQoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9m
KFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gpKTsKKyAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0g
ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3Vw
cG9ydGVkQnV0Tm90Q29uZmlndXJlZCk7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhLnNp
emUoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdCkpOworICAg
IEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXBN
YWtlQ3JlZGVudGlhbFJlcXVlc3QsIHNlcmlhbGl6ZWREYXRhLnNpemUoKSksIDApOworfQorCitU
RVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdEdldEFzc2VydGlvblJlcXVlc3QpCit7
CisgICAgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0
aW9ucy5ycElkID0gImFjbWUuY29tIjsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlw
dG9yIGRlc2NyaXB0b3IxOworICAgIGRlc2NyaXB0b3IxLnR5cGUgPSBQdWJsaWNLZXlDcmVkZW50
aWFsVHlwZTo6UHVibGljS2V5OworICAgIGNvbnN0IHVpbnQ4X3QgaWQxW10gPSB7CisgICAgICAg
IDB4ZjIsIDB4MjAsIDB4MDYsIDB4ZGUsIDB4NGYsIDB4OTAsIDB4NWEsIDB4ZjYsIDB4OGEsIDB4
NDMsIDB4OTQsCisgICAgICAgIDB4MmYsIDB4MDIsIDB4NGYsIDB4MmEsIDB4NWUsIDB4Y2UsIDB4
NjAsIDB4M2QsIDB4OWMsIDB4NmQsIDB4NGIsCisgICAgICAgIDB4M2QsIDB4ZjgsIDB4YmUsIDB4
MDgsIDB4ZWQsIDB4MDEsIDB4ZmMsIDB4NDQsIDB4MjYsIDB4NDYsIDB4ZDAsCisgICAgICAgIDB4
MzQsIDB4ODUsIDB4OGEsIDB4YzcsIDB4NWIsIDB4ZWQsIDB4M2YsIDB4ZDUsIDB4ODAsIDB4YmYs
IDB4OTgsCisgICAgICAgIDB4MDgsIDB4ZDksIDB4NGYsIDB4Y2IsIDB4ZWUsIDB4ODIsIDB4Yjks
IDB4YjIsIDB4ZWYsIDB4NjYsIDB4NzcsCisgICAgICAgIDB4YWYsIDB4MGEsIDB4ZGMsIDB4YzMs
IDB4NTgsIDB4NTIsIDB4ZWEsIDB4NmIsIDB4OWUgfTsKKyAgICBkZXNjcmlwdG9yMS5pZFZlY3Rv
ci5hcHBlbmQoaWQxLCBzaXplb2YoaWQxKSk7CisgICAgb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxz
LmFwcGVuZChkZXNjcmlwdG9yMSk7CisKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRv
ciBkZXNjcmlwdG9yMjsKKyAgICBkZXNjcmlwdG9yMi50eXBlID0gUHVibGljS2V5Q3JlZGVudGlh
bFR5cGU6OlB1YmxpY0tleTsKKyAgICBjb25zdCB1aW50OF90IGlkMltdID0geworICAgICAgICAw
eDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LAorICAgICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLAorICAgICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgICAgICAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgICAgICAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzIH07CisgICAg
ZGVzY3JpcHRvcjIuaWRWZWN0b3IuYXBwZW5kKGlkMiwgc2l6ZW9mKGlkMikpOworICAgIG9wdGlv
bnMuYWxsb3dDcmVkZW50aWFscy5hcHBlbmQoZGVzY3JpcHRvcjIpOworCisgICAgb3B0aW9ucy51
c2VyVmVyaWZpY2F0aW9uID0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZDsK
KworICAgIFZlY3Rvcjx1aW50OF90PiBoYXNoOworICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjpr
Q2xpZW50RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7CisgICAg
YXV0byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoaGFz
aCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRp
b25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkKTsKKyAgICBFWFBFQ1Rf
RVEoc2VyaWFsaXplZERhdGEuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtUZXN0Q29tcGxleEN0
YXBHZXRBc3NlcnRpb25SZXF1ZXN0KSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVk
RGF0YS5kYXRhKCksIFRlc3REYXRhOjprVGVzdENvbXBsZXhDdGFwR2V0QXNzZXJ0aW9uUmVxdWVz
dCwgc2VyaWFsaXplZERhdGEuc2l6ZSgpKSwgMCk7Cit9CisKK1RFU1QoQ1RBUFJlcXVlc3RUZXN0
LCBUZXN0Q29uc3RydWN0Q3RhcEF1dGhlbnRpY2F0b3JSZXF1ZXN0UGFyYW0pCit7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciB1aW50OF90IGtTZXJpYWxpemVkR2V0SW5mb0NtZCA9IDB4MDQ7CisgICAg
c3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGtTZXJpYWxpemVkR2V0TmV4dEFzc2VydGlvbkNtZCA9
IDB4MDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGtTZXJpYWxpemVkUmVzZXRDbWQg
PSAweDA3OworCisgICAgYXV0byBzZXJpYWxpemVkRGF0YTEgPSBlbmNvZGVFbXB0eUF1dGhlbnRp
Y2F0b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFuZDo6a0F1dGhlbnRpY2F0b3JHZXRJbmZvKTsK
KyAgICBFWFBFQ1RfRVEoc2VyaWFsaXplZERhdGExLnNpemUoKSwgMXUpOworICAgIEVYUEVDVF9F
UShtZW1jbXAoc2VyaWFsaXplZERhdGExLmRhdGEoKSwgJmtTZXJpYWxpemVkR2V0SW5mb0NtZCwg
MSksIDApOworCisgICAgYXV0byBzZXJpYWxpemVkRGF0YTIgPSBlbmNvZGVFbXB0eUF1dGhlbnRp
Y2F0b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFuZDo6a0F1dGhlbnRpY2F0b3JHZXROZXh0QXNz
ZXJ0aW9uKTsKKyAgICBFWFBFQ1RfRVEoc2VyaWFsaXplZERhdGEyLnNpemUoKSwgMXUpOworICAg
IEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEyLmRhdGEoKSwgJmtTZXJpYWxpemVkR2V0
TmV4dEFzc2VydGlvbkNtZCwgMSksIDApOworCisgICAgYXV0byBzZXJpYWxpemVkRGF0YTMgPSBl
bmNvZGVFbXB0eUF1dGhlbnRpY2F0b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFuZDo6a0F1dGhl
bnRpY2F0b3JSZXNldCk7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhMy5zaXplKCksIDF1
KTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhMy5kYXRhKCksICZrU2VyaWFs
aXplZFJlc2V0Q21kLCAxKSwgMCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlc3BvbnNlVGVzdC5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlc3BvbnNlVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I1
ZDI1ZTVmZWVhZjc3M2MzN2M0MTY4YTc1OTMzYWY2NWYxZDhiMgotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVzcG9uc2VUZXN0LmNwcApA
QCAtMCwwICsxLDM1NCBAQAorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIENocm9taXVtIEF1dGhvcnMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
Ly8gbWV0OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
Ky8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8v
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisj
aW5jbHVkZSAiRmlkb1Rlc3REYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQk9SUmVhZGVyLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9DQk9SVmFsdWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NCT1JX
cml0ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9GaWRvQ29uc3RhbnRzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QdWJs
aWNLZXlDcmVkZW50aWFsLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKK3VzaW5nIG5h
bWVzcGFjZSBmaWRvOworCitjb25zdGV4cHIgdWludDhfdCBrVGVzdEF1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2VXaXRoTm9WZXJzaW9uW10gPSB7CisgICAgLy8gU3VjY2VzcyBzdGF0dXMgYnl0
ZQorICAgIDB4MDAsCisgICAgLy8gTWFwIG9mIDYgZWxlbWVudHMKKyAgICAweEE2LAorICAgIC8v
IEtleSgwMSkgLSB2ZXJzaW9ucworICAgIDB4MDEsCisgICAgLy8gQXJyYXkoMCkKKyAgICAweDgw
LAorICAgIC8vIEtleSgwMikgLSBleHRlbnNpb25zCisgICAgMHgwMiwKKyAgICAvLyBBcnJheSgy
KQorICAgIDB4ODIsCisgICAgLy8gInV2bSIKKyAgICAweDYzLCAweDc1LCAweDc2LCAweDZELAor
ICAgIC8vICJobWFjLXNlY3JldCIKKyAgICAweDZCLCAweDY4LCAweDZELCAweDYxLCAweDYzLCAw
eDJELCAweDczLCAweDY1LCAweDYzLCAweDcyLCAweDY1LCAweDc0LAorICAgIC8vIEtleSgwMykg
LSBBQUdVSUQKKyAgICAweDAzLAorICAgIC8vIEJ5dGVzKDE2KQorICAgIDB4NTAsIDB4RjgsIDB4
QTAsIDB4MTEsIDB4RjMsIDB4OEMsIDB4MEEsIDB4NEQsIDB4MTUsIDB4ODAsIDB4MDYsIDB4MTcs
CisgICAgMHgxMSwgMHgxRiwgMHg5RSwgMHhEQywgMHg3RCwKKyAgICAvLyBLZXkoMDQpIC0gb3B0
aW9ucworICAgIDB4MDQsCisgICAgLy8gTWFwKDA1KQorICAgIDB4QTUsCisgICAgLy8gS2V5IC0g
InJrIgorICAgIDB4NjIsIDB4NzIsIDB4NkIsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAg
Ly8gS2V5IC0gInVwIgorICAgIDB4NjIsIDB4NzUsIDB4NzAsCisgICAgLy8gdHJ1ZQorICAgIDB4
RjUsCisgICAgLy8gS2V5IC0gInV2IgorICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gdHJ1
ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInBsYXQiCisgICAgMHg2NCwgMHg3MCwgMHg2Qywg
MHg2MSwgMHg3NCwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAiY2xpZW50
UGluIgorICAgIDB4NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4NTAs
IDB4NjksIDB4NkUsCisgICAgLy8gZmFsc2UKKyAgICAweEY0LAorICAgIC8vIEtleSgwNSkgLSBN
YXggbWVzc2FnZSBzaXplCisgICAgMHgwNSwKKyAgICAvLyAxMjAwCisgICAgMHgxOSwgMHgwNCwg
MHhCMCwKKyAgICAvLyBLZXkoMDYpIC0gUGluIHByb3RvY29scworICAgIDB4MDYsCisgICAgLy8g
QXJyYXlbMV0KKyAgICAweDgxLCAweDAxLAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RB
dXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aER1cGxpY2F0ZVZlcnNpb25bXSA9IHsKKyAg
ICAvLyBTdWNjZXNzIHN0YXR1cyBieXRlCisgICAgMHgwMCwKKyAgICAvLyBNYXAgb2YgNiBlbGVt
ZW50cworICAgIDB4QTYsCisgICAgLy8gS2V5KDAxKSAtIHZlcnNpb25zCisgICAgMHgwMSwKKyAg
ICAvLyBBcnJheSgwMikKKyAgICAweDgyLAorICAgIC8vICJVMkZfVjIiCisgICAgMHg2NiwgMHg1
NSwgMHgzMiwgMHg0NiwgMHg1RiwgMHg1NiwgMHgzMiwKKyAgICAvLyAiVTJGX1YyIgorICAgIDB4
NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYsIDB4NTYsIDB4MzIsCisgICAgLy8gS2V5KDAyKSAt
IGV4dGVuc2lvbnMKKyAgICAweDAyLAorICAgIC8vIEFycmF5KDIpCisgICAgMHg4MiwKKyAgICAv
LyAidXZtIgorICAgIDB4NjMsIDB4NzUsIDB4NzYsIDB4NkQsCisgICAgLy8gImhtYWMtc2VjcmV0
IgorICAgIDB4NkIsIDB4NjgsIDB4NkQsIDB4NjEsIDB4NjMsIDB4MkQsIDB4NzMsIDB4NjUsIDB4
NjMsIDB4NzIsIDB4NjUsIDB4NzQsCisgICAgLy8gS2V5KDAzKSAtIEFBR1VJRAorICAgIDB4MDMs
CisgICAgLy8gQnl0ZXMoMTYpCisgICAgMHg1MCwgMHhGOCwgMHhBMCwgMHgxMSwgMHhGMywgMHg4
QywgMHgwQSwgMHg0RCwgMHgxNSwgMHg4MCwgMHgwNiwgMHgxNywKKyAgICAweDExLCAweDFGLCAw
eDlFLCAweERDLCAweDdELAorICAgIC8vIEtleSgwNCkgLSBvcHRpb25zCisgICAgMHgwNCwKKyAg
ICAvLyBNYXAoMDUpCisgICAgMHhBNSwKKyAgICAvLyBLZXkgLSAicmsiCisgICAgMHg2MiwgMHg3
MiwgMHg2QiwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAidXAiCisgICAg
MHg2MiwgMHg3NSwgMHg3MCwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAi
dXYiCisgICAgMHg2MiwgMHg3NSwgMHg3NiwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAv
LyBLZXkgLSAicGxhdCIKKyAgICAweDY0LCAweDcwLCAweDZDLCAweDYxLCAweDc0LAorICAgIC8v
IHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJjbGllbnRQaW4iCisgICAgMHg2OSwgMHg2
MywgMHg2QywgMHg2OSwgMHg2NSwgMHg2RSwgMHg3NCwgMHg1MCwgMHg2OSwgMHg2RSwKKyAgICAv
LyBmYWxzZQorICAgIDB4RjQsCisgICAgLy8gS2V5KDA1KSAtIE1heCBtZXNzYWdlIHNpemUKKyAg
ICAweDA1LAorICAgIC8vIDEyMDAKKyAgICAweDE5LCAweDA0LCAweEIwLAorICAgIC8vIEtleSgw
NikgLSBQaW4gcHJvdG9jb2xzCisgICAgMHgwNiwKKyAgICAvLyBBcnJheVsxXQorICAgIDB4ODEs
IDB4MDEsCit9OworCitjb25zdGV4cHIgdWludDhfdCBrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2VXaXRoSW5jb3JyZWN0QWFndWlkW10gPSB7CisgICAgLy8gU3VjY2VzcyBzdGF0dXMg
Ynl0ZQorICAgIDB4MDAsCisgICAgLy8gTWFwIG9mIDYgZWxlbWVudHMKKyAgICAweEE2LAorICAg
IC8vIEtleSgwMSkgLSB2ZXJzaW9ucworICAgIDB4MDEsCisgICAgLy8gQXJyYXkoMDEpCisgICAg
MHg4MSwKKyAgICAvLyAiVTJGX1YyIgorICAgIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYs
IDB4NTYsIDB4MzIsCisgICAgLy8gS2V5KDAyKSAtIGV4dGVuc2lvbnMKKyAgICAweDAyLAorICAg
IC8vIEFycmF5KDIpCisgICAgMHg4MiwKKyAgICAvLyAidXZtIgorICAgIDB4NjMsIDB4NzUsIDB4
NzYsIDB4NkQsCisgICAgLy8gImhtYWMtc2VjcmV0IgorICAgIDB4NkIsIDB4NjgsIDB4NkQsIDB4
NjEsIDB4NjMsIDB4MkQsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NzIsIDB4NjUsIDB4NzQsCisgICAg
Ly8gS2V5KDAzKSAtIEFBR1VJRAorICAgIDB4MDMsCisgICAgLy8gQnl0ZXMoMTcpIC0gRklETzIg
ZGV2aWNlIEFBR1VJRCBtdXN0IGJlIDE2IGJ5dGVzIGxvbmcgaW4gb3JkZXIgdG8gYmUKKyAgICAv
LyBjb3JyZWN0LgorICAgIDB4NTEsIDB4RjgsIDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMsIDB4MEEs
IDB4NEQsIDB4MTUsIDB4ODAsIDB4MDYsIDB4MTcsCisgICAgMHgxMSwgMHgxRiwgMHg5RSwgMHhE
QywgMHg3RCwgMHgwMCwKKyAgICAvLyBLZXkoMDQpIC0gb3B0aW9ucworICAgIDB4MDQsCisgICAg
Ly8gTWFwKDA1KQorICAgIDB4QTUsCisgICAgLy8gS2V5IC0gInJrIgorICAgIDB4NjIsIDB4NzIs
IDB4NkIsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInVwIgorICAgIDB4
NjIsIDB4NzUsIDB4NzAsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInV2
IgorICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8g
S2V5IC0gInBsYXQiCisgICAgMHg2NCwgMHg3MCwgMHg2QywgMHg2MSwgMHg3NCwKKyAgICAvLyB0
cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAiY2xpZW50UGluIgorICAgIDB4NjksIDB4NjMs
IDB4NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4NTAsIDB4NjksIDB4NkUsCisgICAgLy8g
ZmFsc2UKKyAgICAweEY0LAorICAgIC8vIEtleSgwNSkgLSBNYXggbWVzc2FnZSBzaXplCisgICAg
MHgwNSwKKyAgICAvLyAxMjAwCisgICAgMHgxOSwgMHgwNCwgMHhCMCwKKyAgICAvLyBLZXkoMDYp
IC0gUGluIHByb3RvY29scworICAgIDB4MDYsCisgICAgLy8gQXJyYXlbMV0KKyAgICAweDgxLCAw
eDAxLAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3REZXZpY2VBYWd1aWRbXSA9IHsKKyAg
ICAweEY4LCAweEEwLCAweDExLCAweEYzLCAweDhDLCAweDBBLCAweDRELCAweDE1LCAweDgwLCAw
eDA2LCAweDE3LCAweDExLCAweDFGLCAweDlFLCAweERDLCAweDdECit9OworCisvLyBHZXQgYSBz
dWJzZXQgb2YgdGhlIHJlc3BvbnNlIGZvciB0ZXN0aW5nIGVycm9yIGhhbmRsaW5nLgorVmVjdG9y
PHVpbnQ4X3Q+IGdldFRlc3RDb3JydXB0ZWRTaWduUmVzcG9uc2Uoc2l6ZV90IGxlbmd0aCkKK3sK
KyAgICBBU1NFUlQobGVuZ3RoIDwgc2l6ZW9mKFRlc3REYXRhOjprVGVzdFUyZlNpZ25SZXNwb25z
ZSkpOworICAgIFZlY3Rvcjx1aW50OF90PiB0ZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNlOworICAg
IHRlc3RDb3JydXB0ZWRTaWduUmVzcG9uc2UucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShsZW5ndGgp
OworICAgIHRlc3RDb3JydXB0ZWRTaWduUmVzcG9uc2UuYXBwZW5kKFRlc3REYXRhOjprVGVzdFUy
ZlNpZ25SZXNwb25zZSwgbGVuZ3RoKTsKKyAgICByZXR1cm4gdGVzdENvcnJ1cHRlZFNpZ25SZXNw
b25zZTsKK30KKworLy8gUmV0dXJuIGEga2V5IGhhbmRsZSB1c2VkIGZvciBHZXRBc3NlcnRpb24g
cmVxdWVzdC4KK1ZlY3Rvcjx1aW50OF90PiBnZXRUZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXMoKQor
eworICAgIFZlY3Rvcjx1aW50OF90PiB0ZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXM7CisgICAgdGVz
dENyZWRlbnRpYWxSYXdJZEJ5dGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2l6ZW9mKFRlc3RE
YXRhOjprVTJmU2lnbktleUhhbmRsZSkpOworICAgIHRlc3RDcmVkZW50aWFsUmF3SWRCeXRlcy5h
cHBlbmQoVGVzdERhdGE6OmtVMmZTaWduS2V5SGFuZGxlLCBzaXplb2YoVGVzdERhdGE6OmtVMmZT
aWduS2V5SGFuZGxlKSk7CisgICAgcmV0dXJuIHRlc3RDcmVkZW50aWFsUmF3SWRCeXRlczsKK30K
KworVmVjdG9yPHVpbnQ4X3Q+IGNvbnZlcnRUb1ZlY3Rvcihjb25zdCB1aW50OF90IGJ5dGVBcnJh
eVtdLCBjb25zdCBzaXplX3QgbGVuZ3RoKQoreworICAgIFZlY3Rvcjx1aW50OF90PiByZXN1bHQ7
CisgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobGVuZ3RoKTsKKyAgICByZXN1bHQu
YXBwZW5kKGJ5dGVBcnJheSwgbGVuZ3RoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvLyBM
ZXZlcmFnaW5nIGV4YW1wbGUgNCBvZiBzZWN0aW9uIDYuMSBvZiB0aGUgc3BlYworLy8gaHR0cHM6
Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVu
dC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNjb21tYW5k
cworVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBUZXN0UmVhZE1ha2VDcmVkZW50aWFsUmVzcG9uc2Up
Cit7CisgICAgYXV0byBtYWtlQ3JlZGVudGlhbFJlc3BvbnNlID0gcmVhZENUQVBNYWtlQ3JlZGVu
dGlhbFJlc3BvbnNlKGNvbnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a1Rlc3RNYWtlQ3JlZGVudGlh
bFJlc3BvbnNlLCBzaXplb2YoVGVzdERhdGE6OmtUZXN0TWFrZUNyZWRlbnRpYWxSZXNwb25zZSkp
KTsKKyAgICBBU1NFUlRfVFJVRShtYWtlQ3JlZGVudGlhbFJlc3BvbnNlKTsKKyAgICBhdXRvIGNi
b3JBdHRlc3RhdGlvbk9iamVjdCA9IGNib3I6OkNCT1JSZWFkZXI6OnJlYWQoY29udmVydFRvVmVj
dG9yKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KG1ha2VDcmVkZW50aWFsUmVzcG9uc2UtPmF0
dGVzdGF0aW9uT2JqZWN0LT5kYXRhKCkpLCBtYWtlQ3JlZGVudGlhbFJlc3BvbnNlLT5hdHRlc3Rh
dGlvbk9iamVjdC0+Ynl0ZUxlbmd0aCgpKSk7CisgICAgQVNTRVJUX1RSVUUoY2JvckF0dGVzdGF0
aW9uT2JqZWN0KTsKKyAgICBBU1NFUlRfVFJVRShjYm9yQXR0ZXN0YXRpb25PYmplY3QtPmlzTWFw
KCkpOworCisgICAgY29uc3QgYXV0byYgYXR0ZXN0YXRpb25PYmplY3RNYXAgPSBjYm9yQXR0ZXN0
YXRpb25PYmplY3QtPmdldE1hcCgpOworICAgIGF1dG8gaXQgPSBhdHRlc3RhdGlvbk9iamVjdE1h
cC5maW5kKGNib3I6OkNCT1JWYWx1ZShrRm9ybWF0S2V5KSk7CisgICAgQVNTRVJUX1RSVUUoaXQg
IT0gYXR0ZXN0YXRpb25PYmplY3RNYXAuZW5kKCkpOworICAgIEFTU0VSVF9UUlVFKGl0LT5zZWNv
bmQuaXNTdHJpbmcoKSk7CisgICAgRVhQRUNUX1NUUkVRKGl0LT5zZWNvbmQuZ2V0U3RyaW5nKCku
dXRmOCgpLmRhdGEoKSwgInBhY2tlZCIpOworCisgICAgaXQgPSBhdHRlc3RhdGlvbk9iamVjdE1h
cC5maW5kKGNib3I6OkNCT1JWYWx1ZShrQXV0aERhdGFLZXkpKTsKKyAgICBBU1NFUlRfVFJVRShp
dCAhPSBhdHRlc3RhdGlvbk9iamVjdE1hcC5lbmQoKSk7CisgICAgQVNTRVJUX1RSVUUoaXQtPnNl
Y29uZC5pc0J5dGVTdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0
cmluZygpLCBjb252ZXJ0VG9WZWN0b3IoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsQXV0
aERhdGEsIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxBdXRoRGF0YSkpKTsK
KworICAgIGl0ID0gYXR0ZXN0YXRpb25PYmplY3RNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoa0F0
dGVzdGF0aW9uU3RhdGVtZW50S2V5KSk7CisgICAgQVNTRVJUX1RSVUUoaXQgIT0gYXR0ZXN0YXRp
b25PYmplY3RNYXAuZW5kKCkpOworICAgIEFTU0VSVF9UUlVFKGl0LT5zZWNvbmQuaXNNYXAoKSk7
CisKKyAgICBjb25zdCBhdXRvJiBhdHRlc3RhdGlvblN0YXRlbWVudE1hcCA9IGl0LT5zZWNvbmQu
Z2V0TWFwKCk7CisgICAgYXV0byBhdHRTdG10SXQgPSBhdHRlc3RhdGlvblN0YXRlbWVudE1hcC5m
aW5kKGNib3I6OkNCT1JWYWx1ZSgiYWxnIikpOworCisgICAgQVNTRVJUX1RSVUUoYXR0U3RtdEl0
ICE9IGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwLmVuZCgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRT
dG10SXQtPnNlY29uZC5pc0ludGVnZXIoKSk7CisgICAgRVhQRUNUX0VRKGF0dFN0bXRJdC0+c2Vj
b25kLmdldEludGVnZXIoKSwgLTcpOworCisgICAgYXR0U3RtdEl0ID0gYXR0ZXN0YXRpb25TdGF0
ZW1lbnRNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoInNpZyIpKTsKKyAgICBBU1NFUlRfVFJVRShh
dHRTdG10SXQgIT0gYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAuZW5kKCkpOworICAgIEFTU0VSVF9U
UlVFKGF0dFN0bXRJdC0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoYXR0
U3RtdEl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpLCBjb252ZXJ0VG9WZWN0b3IoVGVzdERhdGE6
OmtDdGFwMk1ha2VDcmVkZW50aWFsU2lnbmF0dXJlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMk1h
a2VDcmVkZW50aWFsU2lnbmF0dXJlKSkpOworCisgICAgYXR0U3RtdEl0ID0gYXR0ZXN0YXRpb25T
dGF0ZW1lbnRNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoIng1YyIpKTsKKyAgICBBU1NFUlRfVFJV
RShhdHRTdG10SXQgIT0gYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAuZW5kKCkpOworICAgIGNvbnN0
IGF1dG8mIGNlcnRpZmljYXRlID0gYXR0U3RtdEl0LT5zZWNvbmQ7CisgICAgQVNTRVJUX1RSVUUo
Y2VydGlmaWNhdGUuaXNBcnJheSgpKTsKKyAgICBBU1NFUlRfRVEoY2VydGlmaWNhdGUuZ2V0QXJy
YXkoKS5zaXplKCksIDF1KTsKKyAgICBBU1NFUlRfVFJVRShjZXJ0aWZpY2F0ZS5nZXRBcnJheSgp
WzBdLmlzQnl0ZVN0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoY2VydGlmaWNhdGUuZ2V0QXJyYXko
KVswXS5nZXRCeXRlU3RyaW5nKCksIGNvbnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a0N0YXAyTWFr
ZUNyZWRlbnRpYWxDZXJ0aWZpY2F0ZSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVu
dGlhbENlcnRpZmljYXRlKSkpOworICAgIEVYUEVDVF9FUShtYWtlQ3JlZGVudGlhbFJlc3BvbnNl
LT5yYXdJZC0+Ynl0ZUxlbmd0aCgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50
aWFsQ3JlZGVudGlhbElkKSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChtYWtlQ3JlZGVudGlhbFJl
c3BvbnNlLT5yYXdJZC0+ZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxDcmVk
ZW50aWFsSWQsIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxDcmVkZW50aWFs
SWQpKSwgMCk7Cit9CisKKy8vIExldmVyYWdpbmcgZXhhbXBsZSA1IG9mIHNlY3Rpb24gNi4xIG9m
IHRoZSBDVEFQIHNwZWMuCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12
Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIu
MC1wcy0yMDE3MDkyNy5odG1sCitURVNUKENUQVBSZXNwb25zZVRlc3QsIFRlc3RSZWFkR2V0QXNz
ZXJ0aW9uUmVzcG9uc2UpCit7CisgICAgYXV0byBnZXRBc3NlcnRpb25SZXNwb25zZSA9IHJlYWRD
VEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29udmVydFRvVmVjdG9yKFRlc3REYXRhOjprRGV2aWNl
R2V0QXNzZXJ0aW9uUmVzcG9uc2UsIHNpemVvZihUZXN0RGF0YTo6a0RldmljZUdldEFzc2VydGlv
blJlc3BvbnNlKSkpOworICAgIEFTU0VSVF9UUlVFKGdldEFzc2VydGlvblJlc3BvbnNlKTsKKwor
ICAgIEVYUEVDVF9FUShnZXRBc3NlcnRpb25SZXNwb25zZS0+YXV0aGVudGljYXRvckRhdGEtPmJ5
dGVMZW5ndGgoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSkp
OworICAgIEVYUEVDVF9FUShtZW1jbXAoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPmF1dGhlbnRpY2F0
b3JEYXRhLT5kYXRhKCksIFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSwgc2l6
ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSkpLCAwKTsKKyAgICBFWFBF
Q1RfRVEoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPnNpZ25hdHVyZS0+Ynl0ZUxlbmd0aCgpLCBzaXpl
b2YoVGVzdERhdGE6OmtDdGFwMkdldEFzc2VydGlvblNpZ25hdHVyZSkpOworICAgIEVYUEVDVF9F
UShtZW1jbXAoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPnNpZ25hdHVyZS0+ZGF0YSgpLCBUZXN0RGF0
YTo6a0N0YXAyR2V0QXNzZXJ0aW9uU2lnbmF0dXJlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMkdl
dEFzc2VydGlvblNpZ25hdHVyZSkpLCAwKTsKK30KKworVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBU
ZXN0UmVhZEdldEluZm9SZXNwb25zZSkKK3sKKyAgICBhdXRvIGdldEluZm9SZXNwb25zZSA9IHJl
YWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNvbnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a1Rlc3RHZXRJ
bmZvUmVzcG9uc2VQbGF0Zm9ybURldmljZSwgc2l6ZW9mKFRlc3REYXRhOjprVGVzdEdldEluZm9S
ZXNwb25zZVBsYXRmb3JtRGV2aWNlKSkpOworICAgIEFTU0VSVF9UUlVFKGdldEluZm9SZXNwb25z
ZSk7CisgICAgQVNTRVJUX1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5tYXhNc2dTaXplKCkpOworICAg
IEVYUEVDVF9FUSgqZ2V0SW5mb1Jlc3BvbnNlLT5tYXhNc2dTaXplKCksIDEyMDB1KTsKKyAgICBF
WFBFQ1RfTkUoZ2V0SW5mb1Jlc3BvbnNlLT52ZXJzaW9ucygpLmZpbmQoUHJvdG9jb2xWZXJzaW9u
OjprQ3RhcCksIGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5lbmQoKSk7CisgICAgRVhQRUNU
X05FKGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5maW5kKFByb3RvY29sVmVyc2lvbjo6a1Uy
ZiksIGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5lbmQoKSk7CisgICAgRVhQRUNUX1RSVUUo
Z2V0SW5mb1Jlc3BvbnNlLT5vcHRpb25zKCkuaXNQbGF0Zm9ybURldmljZSgpKTsKKyAgICBFWFBF
Q1RfVFJVRShnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS5zdXBwb3J0c1Jlc2lkZW50S2V5KCkp
OworICAgIEVYUEVDVF9UUlVFKGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnVzZXJQcmVzZW5j
ZVJlcXVpcmVkKCkpOworICAgIEVYUEVDVF9FUShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9u
czo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQs
IGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHko
KSk7CisgICAgRVhQRUNUX0VRKEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQ
aW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXRQaW5Ob3RTZXQsIGdldEluZm9SZXNwb25zZS0+
b3B0aW9ucygpLmNsaWVudFBpbkF2YWlsYWJpbGl0eSgpKTsKK30KKworVEVTVChDVEFQUmVzcG9u
c2VUZXN0LCBUZXN0UmVhZEdldEluZm9SZXNwb25zZVdpdGhJbmNvcnJlY3RGb3JtYXQpCit7Cisg
ICAgRVhQRUNUX0ZBTFNFKHJlYWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNvbnZlcnRUb1ZlY3Rvcihr
VGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoTm9WZXJzaW9uLCBzaXplb2Yoa1Rl
c3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aE5vVmVyc2lvbikpKSk7CisgICAgRVhQ
RUNUX0ZBTFNFKHJlYWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNvbnZlcnRUb1ZlY3RvcihrVGVzdEF1
dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoRHVwbGljYXRlVmVyc2lvbiwgc2l6ZW9mKGtU
ZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVdpdGhEdXBsaWNhdGVWZXJzaW9uKSkpKTsK
KyAgICBFWFBFQ1RfRkFMU0UocmVhZENUQVBHZXRJbmZvUmVzcG9uc2UoY29udmVydFRvVmVjdG9y
KGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVdpdGhJbmNvcnJlY3RBYWd1aWQsIHNp
emVvZihrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoSW5jb3JyZWN0QWFndWlk
KSkpKTsKK30KKworVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBUZXN0U2VyaWFsaXplR2V0SW5mb1Jl
c3BvbnNlKQoreworICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UgcmVzcG9uc2UoeyBQ
cm90b2NvbFZlcnNpb246OmtDdGFwLCBQcm90b2NvbFZlcnNpb246OmtVMmYgfSwgY29udmVydFRv
VmVjdG9yKGtUZXN0RGV2aWNlQWFndWlkLCBzaXplb2Yoa1Rlc3REZXZpY2VBYWd1aWQpKSk7Cisg
ICAgcmVzcG9uc2Uuc2V0RXh0ZW5zaW9ucyh7ICJ1dm0iLCAiaG1hYy1zZWNyZXQiIH0pOworICAg
IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5zZXRT
dXBwb3J0c1Jlc2lkZW50S2V5KHRydWUpOworICAgIG9wdGlvbnMuc2V0SXNQbGF0Zm9ybURldmlj
ZSh0cnVlKTsKKyAgICBvcHRpb25zLnNldENsaWVudFBpbkF2YWlsYWJpbGl0eShBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0
UGluTm90U2V0KTsKKyAgICBvcHRpb25zLnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHko
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxp
dHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkKTsKKyAgICByZXNwb25zZS5zZXRPcHRpb25zKFdU
Rk1vdmUob3B0aW9ucykpOworICAgIHJlc3BvbnNlLnNldE1heE1zZ1NpemUoMTIwMCk7CisgICAg
cmVzcG9uc2Uuc2V0UGluUHJvdG9jb2xzKHsgMSB9KTsKKworICAgIGF1dG8gcmVzcG9uc2VBc0NC
T1IgPSBlbmNvZGVBc0NCT1IocmVzcG9uc2UpOworICAgIEVYUEVDVF9FUShyZXNwb25zZUFzQ0JP
Ui5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a1Rlc3RHZXRJbmZvUmVzcG9uc2VQbGF0Zm9ybURl
dmljZSkgLSAxKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHJlc3BvbnNlQXNDQk9SLmRhdGEoKSwg
VGVzdERhdGE6OmtUZXN0R2V0SW5mb1Jlc3BvbnNlUGxhdGZvcm1EZXZpY2UgKyAxLCByZXNwb25z
ZUFzQ0JPUi5zaXplKCkpLCAwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZmVhNjViZjJhMDJkNzNj
NjhkMjIwYzYyYzBhMDY5MGY2ZjEzODdjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5oCkBAIC0wLDAgKzEsNjQ1IEBACisv
LyBDb3B5cmlnaHQgMjAxNyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBk
aXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
Ky8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewor
CituYW1lc3BhY2UgVGVzdERhdGEgeworCisvLyBVMkYgcmVxdWVzdCBwYXJhbWV0ZXJzIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBT
YW1wbGUgVTJGIHJlZ2lzdGVyIHJlcXVlc3QgcGFyYW1ldGVycyB1c2VkIGluIGV4YW1wbGUgNiBv
ZiB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8t
djIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYy
LjAtcHMtMjAxNzA5MjcuaHRtbCN1c2luZy10aGUtY3RhcDItYXV0aGVudGljYXRvcm1ha2VjcmVk
ZW50aWFsLWNvbW1hbmQtd2l0aC1jdGFwMS11MmYtYXV0aGVudGljYXRvcnMKK2NvbnN0ZXhwciB1
aW50OF90IGtDbGllbnREYXRhSGFzaFtdID0geworICAgIDB4NjgsIDB4NzEsIDB4MzQsIDB4OTYs
IDB4ODIsIDB4MjIsIDB4ZWMsIDB4MTcsIDB4MjAsIDB4MmUsIDB4NDIsCisgICAgMHg1MCwgMHg1
ZiwgMHg4ZSwgMHhkMiwgMHhiMSwgMHg2YSwgMHhlMiwgMHgyZiwgMHgxNiwgMHhiYiwgMHgwNSwK
KyAgICAweGI4LCAweDhjLCAweDI1LCAweGRiLCAweDllLCAweDYwLCAweDI2LCAweDQ1LCAweGYx
LCAweDQxfTsKKworY29uc3RleHByIHVpbnQ4X3Qga1VzZXJJZFtdID0gezB4MTAsIDB4OTgsIDB4
MjMsIDB4NzIsIDB4MzUsIDB4NDAsIDB4OTgsIDB4NzJ9OworCisvLyBTYW1wbGUgVTJGIHNpZ24g
cmVxdWVzdCBwYXJhbWV0ZXJzIHVzZWQgaW4gZXhhbXBsZSA3IG9mIHRoZSBDVEFQIHNwZWMuCisv
LyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2Zp
ZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1s
I3VzaW5nLXRoZS1jdGFwMi1hdXRoZW50aWNhdG9ybWFrZWNyZWRlbnRpYWwtY29tbWFuZC13aXRo
LWN0YXAxLXUyZi1hdXRoZW50aWNhdG9ycworY29uc3RleHByIHVpbnQ4X3Qga1UyZlNpZ25LZXlI
YW5kbGVbXSA9IHsKKyAgICAweDNFLCAweEJELCAweDg5LCAweEJGLCAweDc3LCAweEVDLCAweDUw
LCAweDk3LCAweDU1LCAweEVFLCAweDlDLAorICAgIDB4MjYsIDB4MzUsIDB4RUYsIDB4QUEsIDB4
QUMsIDB4N0IsIDB4MkIsIDB4OUMsIDB4NUMsIDB4RUYsIDB4MTcsCisgICAgMHgzNiwgMHhDMywg
MHg3MSwgMHg3RCwgMHhBNCwgMHg4NSwgMHgzNCwgMHhDOCwgMHhDNiwgMHhCNiwgMHg1NCwKKyAg
ICAweEQ3LCAweEZGLCAweDk0LCAweDVGLCAweDUwLCAweEI1LCAweENDLCAweDRFLCAweDc4LCAw
eDA1LCAweDVCLAorICAgIDB4REQsIDB4MzksIDB4NkIsIDB4NjQsIDB4RjcsIDB4OEQsIDB4QTIs
IDB4QzUsIDB4RjksIDB4NjIsIDB4MDAsCisgICAgMHhDQywgMHhENCwgMHgxNSwgMHhDRCwgMHgw
OCwgMHhGRSwgMHg0MiwgMHgwMCwgMHgzOCwKK307CisKKy8vIFUyRiByZXNwb25zZXMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKKy8vIEVDIHB1YmxpYyBrZXkgZW5jb2RlZCBpbiBDT1NFX0tleSBmb3JtYXQgZXh0cmFjdGVk
IGZyb20gYWJvdmUKKy8vIHxrVGVzdFUyZlJlZ2lzdGVyUmVzcG9uc2V8LgorY29uc3RleHByIHVp
bnQ4X3Qga1Rlc3RFQ1B1YmxpY0tleUNPU0VbXSA9IHsKKyAgICAvLyBNYXAoNSkKKyAgICAweEE1
LAorICAgIC8vIGt0eTogRUMga2V5IHR5cGUKKyAgICAweDAxLCAweDAyLAorICAgIC8vIGFsZzog
RUMyNTYgc2lnbmF0dXJlIGFsZ29yaXRobQorICAgIDB4MDMsIDB4MjYsCisgICAgLy8gY3J2OiBQ
LTI1NiBjdXJ2ZQorICAgIDB4MjAsIDB4MDEsCisgICAgLy8geC1jb29yZGluYXRlCisgICAgMHgy
MSwKKyAgICAvLyBCeXRlcygzMikKKyAgICAweDU4LCAweDIwLAorICAgIC8vIEJ5dGUgYXJyYXkg
Y29udGVudAorICAgIDB4RTgsIDB4NzYsIDB4MjUsIDB4ODksIDB4NkUsIDB4RTQsIDB4RTQsIDB4
NkQsIDB4QzAsIDB4MzIsIDB4NzYsIDB4NkUsCisgICAgMHg4MCwgMHg4NywgMHg5NiwgMHgyRiwg
MHgzNiwgMHhERiwgMHg5RCwgMHhGRSwgMHg4QiwgMHg1NiwgMHg3RiwgMHgzNywKKyAgICAweDYz
LCAweDAxLCAweDVCLCAweDE5LCAweDkwLCAweEE2LCAweDBFLCAweDE0LAorICAgIC8vIHktY29v
cmRpbmF0ZQorICAgIDB4MjIsCisgICAgLy8gQnl0ZXMoMzIpCisgICAgMHg1OCwgMHgyMCwKKyAg
ICAvLyBCeXRlIGFycmF5IGNvbnRlbnQKKyAgICAweDI3LCAweERFLCAweDYxLCAweDJELCAweDY2
LCAweDQxLCAweDhCLCAweERBLCAweDE5LCAweDUwLCAweDU4LCAweDFFLAorICAgIDB4QkMsIDB4
NUMsIDB4OEMsIDB4MUQsIDB4QUQsIDB4NzEsIDB4MEMsIDB4QjEsIDB4NEMsIDB4MjIsIDB4Rjgs
IDB4QzksCisgICAgMHg3MCwgMHg0NSwgMHhGNCwgMHg2MSwgMHgyRiwgMHhCMiwgMHgwQywgMHg5
MSwKK307CisKKy8vIFRoZSBhdHRlc3RhdGlvbiBzdGF0ZW1lbnQgZXh0cmFjdGVkIGZyb20gYWJv
dmUgfGtUZXN0VTJmUmVnaXN0ZXJSZXNwb25zZXwsIGEKKy8vIENCT1ItZW5jb2RlZCBieXRlIGFy
cmF5LgorLy8gRGlhZ25vc3RpYyBub3RhdGlvbjoKKy8vIHsic2lnIjoKKy8vIGgnMzA0NTAyMjAz
MjQ3NzlDNjhGMzM4MDI4OEExMTk3QjYwOTVGN0E2RUI5QjFCMUMxMjdGNjZBRTEyQTk5RkU4NTMy
RUMyM0I5CisvLyAgIDAyMjEwMEUzOTUxNkFDNEQ2MUVFNjQwNDRENTBCNDE1QTZBNEQ0RDg0QkE2
RDg5NUNCNUFCN0ExQUE3RDA4MURFMzQxRkEnLAorLy8gIng1YyI6IFtoJzMwODIwMjRBMzA4MjAx
MzJBMDAzMDIwMTAyMDIwNDA0NkM4ODIyMzAwRDA2MDkyQTg2NDg4NkY3MEQwMTAxMEIwIFwKKy8v
IDUwMDMwMkUzMTJDMzAyQTA2MDM1NTA0MDMxMzIzNTk3NTYyNjk2MzZGMjA1NTMyNDYyMDUyNkY2
Rjc0MjA0MzQxMjA1MzY1NzI2OSBcCisvLyA2MTZDMjAzNDM1MzczMjMwMzAzNjMzMzEzMDIwMTcw
RDMxMzQzMDM4MzAzMTMwMzAzMDMwMzAzMDVBMTgwRjMyMzAzNTMwMzAzOTMgXAorLy8gMDM0MzAz
MDMwMzAzMDMwNUEzMDJDMzEyQTMwMjgwNjAzNTUwNDAzMEMyMTU5NzU2MjY5NjM2RjIwNTUzMjQ2
MjA0NTQ1MjA1MzY1IFwKKy8vIDcyNjk2MTZDMjAzMjM0MzkzMTM4MzIzMzMyMzQzNzM3MzAzMDU5
MzAxMzA2MDcyQTg2NDhDRTNEMDIwMTA2MDgyQTg2NDhDRTNEMCBcCisvLyAzMDEwNzAzNDIwMDA0
M0NDQUI5MkNDQjk3Mjg3RUU4RTYzOTQzN0UyMUZDRDZCNkYxNjVCMkQ1QTNGM0RCMTMxRDMxQzE2
Qjc0MkIgXAorLy8gQjQ3NkQ4RDFFOTkwODBFQjU0NkM5QkJERjU1NkU2MjEwRkQ0Mjc4NTg5OUU3
OENDNTg5RUJFMzEwRjZDREI5RkY0QTMzQjMwMzkzIFwKKy8vIDAyMjA2MDkyQjA2MDEwNDAxODJD
NDBBMDIwNDE1MzEyRTMzMkUzNjJFMzEyRTM0MkUzMTJFMzQzMTM0MzgzMjJFMzEyRTMyMzAxMyBc
CisvLyAwNjBCMkIwNjAxMDQwMTgyRTUxQzAyMDEwMTA0MDQwMzAyMDQzMDMwMEQwNjA5MkE4NjQ4
ODZGNzBEMDEwMTBCMDUwMDAzODIwMTAgXAorLy8gMTAwOUY5QjA1MjI0OEJDNENGNDJDQzU5OTFG
Q0FBQkFDOUI2NTFCQkU1QkRDREM4RUYwQUQyQzFDMUZGQjM2RDE4NzE1RDQyRTc4IFwKKy8vIEIy
NDkyMjRGOTJDN0U2RTdBMDVDNDlGMEU3RTRDODgxQkYyRTk0RjQ1RTRBMjE4MzNENzQ1Njg1MUQw
RjZDMTQ1QTI5NTQwQzg3NCBcCisvLyBGMzA5MkM5MzRCNDNEMjIyQjg5NjJDMEY0MTBDRUYxREI3
NTg5MkFGMTE2QjQ0QTk2RjVEMzVBREVBMzgyMkZDNzE0NkY2MDA0MzggXAorLy8gNUJDQjY5QjY1
Qzk5RTdFQjY5MTk3ODY3MDNDMEQ4Q0Q0MUU4Rjc1Q0NBNDRBQThBQjcyNUFEOEU3OTlGRjNBODY5
NkE2RjFCMjY1IFwKKy8vIDZFNjMxQjFFNDAxODNDMDhGREE1M0ZBNEE4Rjg1QTA1NjkzOTQ0QUUx
NzlBMTMzOUQwMDJEMTVDQUJEODEwMDkwRUM3MjJFRjVERSBcCisvLyBGOTk2NUEzNzFENDE1RDYy
NEI2OEEyNzA3Q0FEOTdCQ0REMTc4NUFGOTdFMjU4RjMzREY1NkEwMzFBQTAzNTZEOEU4RDVFQkNB
REMgXAorLy8gNzRFMDcxNjM2QzZCMTEwQUNFNUNDOUI5MERGRUFDQUU2NDBGRjFCQjBGMUZFNURC
NEVGRjdBOTVGMDYwNzMzRjUnXX0KK2NvbnN0ZXhwciB1aW50OF90IGtVMmZBdHRlc3RhdGlvblN0
YXRlbWVudENCT1JbXSA9IHsKKyAgICAvLyBNYXAoMikKKyAgICAweEEyLAorICAgIC8vIFRleHQo
MykKKyAgICAweDYzLAorICAgIC8vICJzaWciCisgICAgMHg3MywgMHg2OSwgMHg2NywKKyAgICAv
LyBCeXRlcyg3MSkKKyAgICAweDU4LCAweDQ3LAorICAgIC8vIEJ5dGUgYXJyYXkgY29udGVudAor
ICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4MjAsIDB4MzIsIDB4NDcsIDB4NzksIDB4QzYsIDB4OEYs
IDB4MzMsIDB4ODAsIDB4MjgsCisgICAgMHg4QSwgMHgxMSwgMHg5NywgMHhCNiwgMHgwOSwgMHg1
RiwgMHg3QSwgMHg2RSwgMHhCOSwgMHhCMSwgMHhCMSwgMHhDMSwKKyAgICAweDI3LCAweEY2LCAw
eDZBLCAweEUxLCAweDJBLCAweDk5LCAweEZFLCAweDg1LCAweDMyLCAweEVDLCAweDIzLCAweEI5
LAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4RTMsIDB4OTUsIDB4MTYsIDB4QUMsIDB4NEQsIDB4
NjEsIDB4RUUsIDB4NjQsIDB4MDQsCisgICAgMHg0RCwgMHg1MCwgMHhCNCwgMHgxNSwgMHhBNiwg
MHhBNCwgMHhENCwgMHhEOCwgMHg0QiwgMHhBNiwgMHhEOCwgMHg5NSwKKyAgICAweENCLCAweDVB
LCAweEI3LCAweEExLCAweEFBLCAweDdELCAweDA4LCAweDFELCAweEUzLCAweDQxLCAweEZBLAor
ICAgIC8vIFRleHQoMykKKyAgICAweDYzLAorICAgIC8vICJ4NWMiCisgICAgMHg3OCwgMHgzNSwg
MHg2MywKKyAgICAvLyBBcnJheSgxKQorICAgIDB4ODEsCisgICAgLy8gQnl0ZXMoNTkwKQorICAg
IDB4NTksIDB4MDIsIDB4NEUsCisgICAgLy8gQnl0ZSBhcnJheSBjb250ZW50CisgICAgMHgzMCwg
MHg4MiwgMHgwMiwgMHg0QSwgMHgzMCwgMHg4MiwgMHgwMSwgMHgzMiwgMHhBMCwgMHgwMywgMHgw
MiwgMHgwMSwKKyAgICAweDAyLCAweDAyLCAweDA0LCAweDA0LCAweDZDLCAweDg4LCAweDIyLCAw
eDMwLCAweDBELCAweDA2LCAweDA5LCAweDJBLAorICAgIDB4ODYsIDB4NDgsIDB4ODYsIDB4Rjcs
IDB4MEQsIDB4MDEsIDB4MDEsIDB4MEIsIDB4MDUsIDB4MDAsIDB4MzAsIDB4MkUsCisgICAgMHgz
MSwgMHgyQywgMHgzMCwgMHgyQSwgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwMywgMHgxMywg
MHgyMywgMHg1OSwKKyAgICAweDc1LCAweDYyLCAweDY5LCAweDYzLCAweDZGLCAweDIwLCAweDU1
LCAweDMyLCAweDQ2LCAweDIwLCAweDUyLCAweDZGLAorICAgIDB4NkYsIDB4NzQsIDB4MjAsIDB4
NDMsIDB4NDEsIDB4MjAsIDB4NTMsIDB4NjUsIDB4NzIsIDB4NjksIDB4NjEsIDB4NkMsCisgICAg
MHgyMCwgMHgzNCwgMHgzNSwgMHgzNywgMHgzMiwgMHgzMCwgMHgzMCwgMHgzNiwgMHgzMywgMHgz
MSwgMHgzMCwgMHgyMCwKKyAgICAweDE3LCAweDBELCAweDMxLCAweDM0LCAweDMwLCAweDM4LCAw
eDMwLCAweDMxLCAweDMwLCAweDMwLCAweDMwLCAweDMwLAorICAgIDB4MzAsIDB4MzAsIDB4NUEs
IDB4MTgsIDB4MEYsIDB4MzIsIDB4MzAsIDB4MzUsIDB4MzAsIDB4MzAsIDB4MzksIDB4MzAsCisg
ICAgMHgzNCwgMHgzMCwgMHgzMCwgMHgzMCwgMHgzMCwgMHgzMCwgMHgzMCwgMHg1QSwgMHgzMCwg
MHgyQywgMHgzMSwgMHgyQSwKKyAgICAweDMwLCAweDI4LCAweDA2LCAweDAzLCAweDU1LCAweDA0
LCAweDAzLCAweDBDLCAweDIxLCAweDU5LCAweDc1LCAweDYyLAorICAgIDB4NjksIDB4NjMsIDB4
NkYsIDB4MjAsIDB4NTUsIDB4MzIsIDB4NDYsIDB4MjAsIDB4NDUsIDB4NDUsIDB4MjAsIDB4NTMs
CisgICAgMHg2NSwgMHg3MiwgMHg2OSwgMHg2MSwgMHg2QywgMHgyMCwgMHgzMiwgMHgzNCwgMHgz
OSwgMHgzMSwgMHgzOCwgMHgzMiwKKyAgICAweDMzLCAweDMyLCAweDM0LCAweDM3LCAweDM3LCAw
eDMwLCAweDMwLCAweDU5LCAweDMwLCAweDEzLCAweDA2LCAweDA3LAorICAgIDB4MkEsIDB4ODYs
IDB4NDgsIDB4Q0UsIDB4M0QsIDB4MDIsIDB4MDEsIDB4MDYsIDB4MDgsIDB4MkEsIDB4ODYsIDB4
NDgsCisgICAgMHhDRSwgMHgzRCwgMHgwMywgMHgwMSwgMHgwNywgMHgwMywgMHg0MiwgMHgwMCwg
MHgwNCwgMHgzQywgMHhDQSwgMHhCOSwKKyAgICAweDJDLCAweENCLCAweDk3LCAweDI4LCAweDdF
LCAweEU4LCAweEU2LCAweDM5LCAweDQzLCAweDdFLCAweDIxLCAweEZDLAorICAgIDB4RDYsIDB4
QjYsIDB4RjEsIDB4NjUsIDB4QjIsIDB4RDUsIDB4QTMsIDB4RjMsIDB4REIsIDB4MTMsIDB4MUQs
IDB4MzEsCisgICAgMHhDMSwgMHg2QiwgMHg3NCwgMHgyQiwgMHhCNCwgMHg3NiwgMHhEOCwgMHhE
MSwgMHhFOSwgMHg5MCwgMHg4MCwgMHhFQiwKKyAgICAweDU0LCAweDZDLCAweDlCLCAweEJELCAw
eEY1LCAweDU2LCAweEU2LCAweDIxLCAweDBGLCAweEQ0LCAweDI3LCAweDg1LAorICAgIDB4ODks
IDB4OUUsIDB4NzgsIDB4Q0MsIDB4NTgsIDB4OUUsIDB4QkUsIDB4MzEsIDB4MEYsIDB4NkMsIDB4
REIsIDB4OUYsCisgICAgMHhGNCwgMHhBMywgMHgzQiwgMHgzMCwgMHgzOSwgMHgzMCwgMHgyMiwg
MHgwNiwgMHgwOSwgMHgyQiwgMHgwNiwgMHgwMSwKKyAgICAweDA0LCAweDAxLCAweDgyLCAweEM0
LCAweDBBLCAweDAyLCAweDA0LCAweDE1LCAweDMxLCAweDJFLCAweDMzLCAweDJFLAorICAgIDB4
MzYsIDB4MkUsIDB4MzEsIDB4MkUsIDB4MzQsIDB4MkUsIDB4MzEsIDB4MkUsIDB4MzQsIDB4MzEs
IDB4MzQsIDB4MzgsCisgICAgMHgzMiwgMHgyRSwgMHgzMSwgMHgyRSwgMHgzMiwgMHgzMCwgMHgx
MywgMHgwNiwgMHgwQiwgMHgyQiwgMHgwNiwgMHgwMSwKKyAgICAweDA0LCAweDAxLCAweDgyLCAw
eEU1LCAweDFDLCAweDAyLCAweDAxLCAweDAxLCAweDA0LCAweDA0LCAweDAzLCAweDAyLAorICAg
IDB4MDQsIDB4MzAsIDB4MzAsIDB4MEQsIDB4MDYsIDB4MDksIDB4MkEsIDB4ODYsIDB4NDgsIDB4
ODYsIDB4RjcsIDB4MEQsCisgICAgMHgwMSwgMHgwMSwgMHgwQiwgMHgwNSwgMHgwMCwgMHgwMywg
MHg4MiwgMHgwMSwgMHgwMSwgMHgwMCwgMHg5RiwgMHg5QiwKKyAgICAweDA1LCAweDIyLCAweDQ4
LCAweEJDLCAweDRDLCAweEY0LCAweDJDLCAweEM1LCAweDk5LCAweDFGLCAweENBLCAweEFCLAor
ICAgIDB4QUMsIDB4OUIsIDB4NjUsIDB4MUIsIDB4QkUsIDB4NUIsIDB4REMsIDB4REMsIDB4OEUs
IDB4RjAsIDB4QUQsIDB4MkMsCisgICAgMHgxQywgMHgxRiwgMHhGQiwgMHgzNiwgMHhEMSwgMHg4
NywgMHgxNSwgMHhENCwgMHgyRSwgMHg3OCwgMHhCMiwgMHg0OSwKKyAgICAweDIyLCAweDRGLCAw
eDkyLCAweEM3LCAweEU2LCAweEU3LCAweEEwLCAweDVDLCAweDQ5LCAweEYwLCAweEU3LCAweEU0
LAorICAgIDB4QzgsIDB4ODEsIDB4QkYsIDB4MkUsIDB4OTQsIDB4RjQsIDB4NUUsIDB4NEEsIDB4
MjEsIDB4ODMsIDB4M0QsIDB4NzQsCisgICAgMHg1NiwgMHg4NSwgMHgxRCwgMHgwRiwgMHg2Qywg
MHgxNCwgMHg1QSwgMHgyOSwgMHg1NCwgMHgwQywgMHg4NywgMHg0RiwKKyAgICAweDMwLCAweDky
LCAweEM5LCAweDM0LCAweEI0LCAweDNELCAweDIyLCAweDJCLCAweDg5LCAweDYyLCAweEMwLCAw
eEY0LAorICAgIDB4MTAsIDB4Q0UsIDB4RjEsIDB4REIsIDB4NzUsIDB4ODksIDB4MkEsIDB4RjEs
IDB4MTYsIDB4QjQsIDB4NEEsIDB4OTYsCisgICAgMHhGNSwgMHhEMywgMHg1QSwgMHhERSwgMHhB
MywgMHg4MiwgMHgyRiwgMHhDNywgMHgxNCwgMHg2RiwgMHg2MCwgMHgwNCwKKyAgICAweDM4LCAw
eDVCLCAweENCLCAweDY5LCAweEI2LCAweDVDLCAweDk5LCAweEU3LCAweEVCLCAweDY5LCAweDE5
LCAweDc4LAorICAgIDB4NjcsIDB4MDMsIDB4QzAsIDB4RDgsIDB4Q0QsIDB4NDEsIDB4RTgsIDB4
RjcsIDB4NUMsIDB4Q0EsIDB4NDQsIDB4QUEsCisgICAgMHg4QSwgMHhCNywgMHgyNSwgMHhBRCwg
MHg4RSwgMHg3OSwgMHg5RiwgMHhGMywgMHhBOCwgMHg2OSwgMHg2QSwgMHg2RiwKKyAgICAweDFC
LCAweDI2LCAweDU2LCAweEU2LCAweDMxLCAweEIxLCAweEU0LCAweDAxLCAweDgzLCAweEMwLCAw
eDhGLCAweERBLAorICAgIDB4NTMsIDB4RkEsIDB4NEEsIDB4OEYsIDB4ODUsIDB4QTAsIDB4NTYs
IDB4OTMsIDB4OTQsIDB4NEEsIDB4RTEsIDB4NzksCisgICAgMHhBMSwgMHgzMywgMHg5RCwgMHgw
MCwgMHgyRCwgMHgxNSwgMHhDQSwgMHhCRCwgMHg4MSwgMHgwMCwgMHg5MCwgMHhFQywKKyAgICAw
eDcyLCAweDJFLCAweEY1LCAweERFLCAweEY5LCAweDk2LCAweDVBLCAweDM3LCAweDFELCAweDQx
LCAweDVELCAweDYyLAorICAgIDB4NEIsIDB4NjgsIDB4QTIsIDB4NzAsIDB4N0MsIDB4QUQsIDB4
OTcsIDB4QkMsIDB4REQsIDB4MTcsIDB4ODUsIDB4QUYsCisgICAgMHg5NywgMHhFMiwgMHg1OCwg
MHhGMywgMHgzRCwgMHhGNSwgMHg2QSwgMHgwMywgMHgxQSwgMHhBMCwgMHgzNSwgMHg2RCwKKyAg
ICAweDhFLCAweDhELCAweDVFLCAweEJDLCAweEFELCAweEM3LCAweDRFLCAweDA3LCAweDE2LCAw
eDM2LCAweEM2LCAweEIxLAorICAgIDB4MTAsIDB4QUMsIDB4RTUsIDB4Q0MsIDB4OUIsIDB4OTAs
IDB4REYsIDB4RUEsIDB4Q0EsIDB4RTYsIDB4NDAsIDB4RkYsCisgICAgMHgxQiwgMHhCMCwgMHhG
MSwgMHhGRSwgMHg1RCwgMHhCNCwgMHhFRiwgMHhGNywgMHhBOSwgMHg1RiwgMHgwNiwgMHgwNywK
KyAgICAweDMzLCAweEY1LAorfTsKKworLy8gVTJGIHJlc3BvbnNlIGJsb2IgcHJvZHVjZWQgYnkg
YSBVMkYgc2lnbiByZXF1ZXN0IHVzZWQgaW4gZXhhbXBsZSA3IG9mIHRoZQorLy8gQ1RBUCBzcGVj
LgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDky
Ny9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5Mjcu
aHRtbCN1c2luZy10aGUtY3RhcDItYXV0aGVudGljYXRvcmdldGFzc2VydGlvbi1jb21tYW5kLXdp
dGgtY3RhcDEtdTJmLWF1dGhlbnRpY2F0b3JzCitjb25zdGV4cHIgdWludDhfdCBrVGVzdFUyZlNp
Z25SZXNwb25zZVtdID0geworICAgIC8vIFVzZXIgcHJlc2VuY2UKKyAgICAweDAxLAorICAgIC8v
IFNpZ24gY291bnQoNCBieXRlcykKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDNCLAorICAgIC8v
IFNpZ25hdHVyZQorICAgIDB4MzAsIDB4NDQsIDB4MDIsIDB4MjAsIDB4N0IsIDB4REUsIDB4MEEs
IDB4NTIsIDB4QUMsIDB4MUYsIDB4NEMsIDB4OEIsCisgICAgMHgyNywgMHhFMCwgMHgwMywgMHhB
MywgMHg3MCwgMHhDRCwgMHg2NiwgMHhBNCwgMHhDNywgMHgxMSwgMHg4RCwgMHhEMiwKKyAgICAw
eDJELCAweDU0LCAweDQ3LCAweDgzLCAweDVGLCAweDQ1LCAweEI5LCAweDlDLCAweDY4LCAweDQy
LCAweDNGLCAweEY3LAorICAgIDB4MDIsIDB4MjAsIDB4M0MsIDB4NTEsIDB4N0IsIDB4NDcsIDB4
ODcsIDB4N0YsIDB4ODUsIDB4NzgsIDB4MkQsIDB4RTEsCisgICAgMHgwMCwgMHg4NiwgMHhBNywg
MHg4MywgMHhEMSwgMHhFNywgMHhERiwgMHg0RSwgMHgzNiwgMHgzOSwgMHhFNywgMHg3MSwKKyAg
ICAweEY1LCAweEY2LCAweEFGLCAweEEzLCAweDVBLCAweEFELCAweDUzLCAweDczLCAweDg1LCAw
eDhFLAorfTsKKworLy8gQ1RBUCByZXF1ZXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2NvbnN0ZXhwciB1aW50OF90IGtD
dGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0W10gPSB7CisgICAgLy8gYXV0aGVudGljYXRvck1ha2VD
cmVkZW50aWFsIGNvbW1hbmQKKyAgICAweDAxLAorICAgIC8vIG1hcCg1KQorICAgIDB4YTUsCisg
ICAgLy8ga2V5KDEpIC0gY2xpZW50RGF0YUhhc2gKKyAgICAweDAxLAorICAgIC8vIGJ5dGVzKDMy
KQorICAgIDB4NTgsIDB4MjAsIDB4NjgsIDB4NzEsIDB4MzQsIDB4OTYsIDB4ODIsIDB4MjIsIDB4
ZWMsIDB4MTcsIDB4MjAsIDB4MmUsCisgICAgMHg0MiwgMHg1MCwgMHg1ZiwgMHg4ZSwgMHhkMiwg
MHhiMSwgMHg2YSwgMHhlMiwgMHgyZiwgMHgxNiwgMHhiYiwgMHgwNSwKKyAgICAweGI4LCAweDhj
LCAweDI1LCAweGRiLCAweDllLCAweDYwLCAweDI2LCAweDQ1LCAweGYxLCAweDQxLAorICAgIC8v
IGtleSgyKSAtIHJwCisgICAgMHgwMiwKKyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8v
IGtleSAtICJpZCIKKyAgICAweDYyLCAweDY5LCAweDY0LAorICAgIC8vIHZhbHVlIC0gImFjbWUu
Y29tIgorICAgIDB4NjgsIDB4NjEsIDB4NjMsIDB4NmQsIDB4NjUsIDB4MmUsIDB4NjMsIDB4NmYs
IDB4NmQsCisgICAgLy8ga2V5IC0gICJuYW1lIgorICAgIDB4NjQsIDB4NmUsIDB4NjEsIDB4NmQs
IDB4NjUsCisgICAgLy8gdmFsdWUgLSAiQWNtZSIKKyAgICAweDY0LCAweDQxLCAweDYzLCAweDZk
LCAweDY1LAorICAgIC8vIGtleSgzKSAtIHVzZXIKKyAgICAweDAzLAorICAgIC8vIG1hcCg0KQor
ICAgIDB4YTQsCisgICAgLy8ga2V5IC0gImlkIgorICAgIDB4NjIsIDB4NjksIDB4NjQsCisgICAg
Ly8gdmFsdWUgLSB1c2VyIGlkCisgICAgMHg0OCwgMHgxMCwgMHg5OCwgMHgyMywgMHg3MiwgMHgz
NSwgMHg0MCwgMHg5OCwgMHg3MiwKKyAgICAvLyBrZXkgLSAiaWNvbiIKKyAgICAweDY0LCAweDY5
LCAweDYzLCAweDZmLCAweDZlLAorICAgIC8vIHZhbHVlIC0gImh0dHBzOi8vcGljcy5hY21lLmNv
bS8wMC9wL2FCampqcHFQYi5wbmciCisgICAgMHg3OCwgMHgyOCwgMHg2OCwgMHg3NCwgMHg3NCwg
MHg3MCwgMHg3MywgMHgzYSwgMHgyZiwgMHgyZiwgMHg3MCwgMHg2OSwKKyAgICAweDYzLCAweDcz
LCAweDJlLCAweDYxLCAweDYzLCAweDZkLCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAweDZkLCAw
eDJmLAorICAgIDB4MzAsIDB4MzAsIDB4MmYsIDB4NzAsIDB4MmYsIDB4NjEsIDB4NDIsIDB4NmEs
IDB4NmEsIDB4NmEsIDB4NzAsIDB4NzEsCisgICAgMHg1MCwgMHg2MiwgMHgyZSwgMHg3MCwgMHg2
ZSwgMHg2NywKKyAgICAvLyBrZXkgLSAibmFtZSIKKyAgICAweDY0LCAweDZlLCAweDYxLCAweDZk
LCAweDY1LAorICAgIC8vIHZhbHVlIC0gImpvaG5wc21pdGhAZXhhbXBsZS5jb20iCisgICAgMHg3
NiwgMHg2YSwgMHg2ZiwgMHg2OCwgMHg2ZSwgMHg3MCwgMHg3MywgMHg2ZCwgMHg2OSwgMHg3NCwg
MHg2OCwgMHg0MCwKKyAgICAweDY1LCAweDc4LCAweDYxLCAweDZkLCAweDcwLCAweDZjLCAweDY1
LCAweDJlLCAweDYzLCAweDZmLCAweDZkLAorICAgIC8vIGtleSAtICJkaXNwbGF5TmFtZSIKKyAg
ICAweDZiLCAweDY0LCAweDY5LCAweDczLCAweDcwLCAweDZjLCAweDYxLCAweDc5LCAweDRlLCAw
eDYxLCAweDZkLCAweDY1LAorICAgIC8vIHZhbHVlIC0gIkpvaG4gUC4gU21pdGgiCisgICAgMHg2
ZCwgMHg0YSwgMHg2ZiwgMHg2OCwgMHg2ZSwgMHgyMCwgMHg1MCwgMHgyZSwgMHgyMCwgMHg1Mywg
MHg2ZCwgMHg2OSwKKyAgICAweDc0LCAweDY4LAorICAgIC8vIGtleSg0KSAtIHB1YktleUNyZWRQ
YXJhbXMKKyAgICAweDA0LAorICAgIC8vIGFycmF5KDIpCisgICAgMHg4MiwKKyAgICAvLyBtYXAo
MikKKyAgICAweGEyLAorICAgIC8vIGtleSAtICJhbGciCisgICAgMHg2MywgMHg2MSwgMHg2Yywg
MHg2NywKKyAgICAvLyB2YWx1ZSAtIDcKKyAgICAweDA3LAorICAgIC8vIGtleSAtICJ0eXBlIgor
ICAgIDB4NjQsIDB4NzQsIDB4NzksIDB4NzAsIDB4NjUsCisgICAgLy8gdmFsdWUgLSAicHVibGlj
LWtleSIKKyAgICAweDZhLCAweDcwLCAweDc1LCAweDYyLCAweDZDLCAweDY5LCAweDYzLCAweDJE
LCAweDZCLCAweDY1LCAweDc5LAorICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8ga2V5
IC0gImFsZyIKKyAgICAweDYzLCAweDYxLCAweDZjLCAweDY3LAorICAgIC8vIHZhbHVlIC0gMjU3
CisgICAgMHgxOSwgMHgwMSwgMHgwMSwKKyAgICAvLyBrZXkgLSAidHlwZSIKKyAgICAweDY0LCAw
eDc0LCAweDc5LCAweDcwLCAweDY1LCAvLyAidHlwZSIKKyAgICAvLyB2YWx1ZSAtICJwdWJsaWMt
a2V5IgorICAgIDB4NmEsIDB4NzAsIDB4NzUsIDB4NjIsIDB4NkMsIDB4NjksIDB4NjMsIDB4MkQs
IDB4NkIsIDB4NjUsIDB4NzksCisgICAgLy8ga2V5KDcpIC0gb3B0aW9ucworICAgIDB4MDcsCisg
ICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyBrZXkgLSAicmsiCisgICAgMHg2MiwgMHg3
MiwgMHg2YiwKKyAgICAvLyBUcnVlKDIxKQorICAgIDB4ZjUsCisgICAgLy8ga2V5IC0gInV2Igor
ICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gVHJ1ZSgyMSkKKyAgICAweGY1fTsKKworY29u
c3RleHByIHVpbnQ4X3Qga1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RbXSA9IHsK
KyAgICAvLyBhdXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9uIGNvbW1hbmQKKyAgICAweDAyLAorICAg
IC8vIG1hcCg0KQorICAgIDB4YTQsCisgICAgLy8ga2V5KDAxKSAtcnBJZAorICAgIDB4MDEsCisg
ICAgLy8gdmFsdWUgLSAiYWNtZS5jb20iCisgICAgMHg2OCwgMHg2MSwgMHg2MywgMHg2ZCwgMHg2
NSwgMHgyZSwgMHg2MywgMHg2ZiwgMHg2ZCwKKyAgICAvLyBrZXkoMDIpIC0gY2xpZW50IGRhdGEg
aGFzaAorICAgIDB4MDIsCisgICAgLy8gdmFsdWUgLSBieXRlcygzMikKKyAgICAweDU4LCAweDIw
LCAweDY4LCAweDcxLCAweDM0LCAweDk2LCAweDgyLCAweDIyLCAweGVjLCAweDE3LCAweDIwLCAw
eDJlLAorICAgIDB4NDIsIDB4NTAsIDB4NWYsIDB4OGUsIDB4ZDIsIDB4YjEsIDB4NmEsIDB4ZTIs
IDB4MmYsIDB4MTYsIDB4YmIsIDB4MDUsCisgICAgMHhiOCwgMHg4YywgMHgyNSwgMHhkYiwgMHg5
ZSwgMHg2MCwgMHgyNiwgMHg0NSwgMHhmMSwgMHg0MSwKKyAgICAvLyBrZXkoMDMpIC0gYWxsb3cg
bGlzdAorICAgIDB4MDMsCisgICAgLy8gdmFsdWUgLSBhcnJheSgyKQorICAgIDB4ODIsCisgICAg
Ly8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyBrZXkgLSAiaWQiCisgICAgMHg2MiwgMHg2OSwg
MHg2NCwKKyAgICAvLyB2YWx1ZSAtIGNyZWRlbnRpYWwgSUQKKyAgICAweDU4LCAweDQwLCAweGYy
LCAweDIwLCAweDA2LCAweGRlLCAweDRmLCAweDkwLCAweDVhLCAweGY2LCAweDhhLCAweDQzLAor
ICAgIDB4OTQsIDB4MmYsIDB4MDIsIDB4NGYsIDB4MmEsIDB4NWUsIDB4Y2UsIDB4NjAsIDB4M2Qs
IDB4OWMsIDB4NmQsIDB4NGIsCisgICAgMHgzZCwgMHhmOCwgMHhiZSwgMHgwOCwgMHhlZCwgMHgw
MSwgMHhmYywgMHg0NCwgMHgyNiwgMHg0NiwgMHhkMCwgMHgzNCwKKyAgICAweDg1LCAweDhhLCAw
eGM3LCAweDViLCAweGVkLCAweDNmLCAweGQ1LCAweDgwLCAweGJmLCAweDk4LCAweDA4LCAweGQ5
LAorICAgIDB4NGYsIDB4Y2IsIDB4ZWUsIDB4ODIsIDB4YjksIDB4YjIsIDB4ZWYsIDB4NjYsIDB4
NzcsIDB4YWYsIDB4MGEsIDB4ZGMsCisgICAgMHhjMywgMHg1OCwgMHg1MiwgMHhlYSwgMHg2Yiwg
MHg5ZSwKKyAgICAvLyBrZXkgLSAidHlwZSIKKyAgICAweDY0LCAweDc0LCAweDc5LCAweDcwLCAw
eDY1LAorICAgIC8vIHZhbHVlIC0gInB1YmxpYy1rZXkiCisgICAgMHg2YSwgMHg3MCwgMHg3NSwg
MHg2MiwgMHg2QywgMHg2OSwgMHg2MywgMHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAgICAvLyBt
YXAoMikKKyAgICAweGEyLAorICAgIC8vIGtleSAtICJpZCIKKyAgICAweDYyLCAweDY5LCAweDY0
LAorICAgIC8vIHZhbHVlIC0gY3JlZGVudGlhbCBJRAorICAgIDB4NTgsIDB4MzIsIDB4MDMsIDB4
MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAg
MHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgw
MywgMHgwMywgMHgwMywKKyAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAw
eDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgIDB4MDMsIDB4MDMsIDB4MDMs
IDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisg
ICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAvLyBrZXkgLSAidHlwZSIKKyAgICAweDY0
LCAweDc0LCAweDc5LCAweDcwLCAweDY1LAorICAgIC8vIHZhbHVlIC0gInB1YmxpYy1rZXkiCisg
ICAgMHg2YSwgMHg3MCwgMHg3NSwgMHg2MiwgMHg2QywgMHg2OSwgMHg2MywgMHgyRCwgMHg2Qiwg
MHg2NSwgMHg3OSwKKyAgICAvLyB1bnNpZ25lZCg1KSAtIG9wdGlvbnMKKyAgICAweDA1LAorICAg
IC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8ga2V5IC0idXAiCisgICAgMHg2MiwgMHg3NSwg
MHg3MCwKKyAgICAvLyB2YWx1ZSAtIEZhbHNlKDIwKQorICAgIDB4ZjQsCisgICAgLy8ga2V5IC0g
InV2IgorICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gdmFsdWUgLSBUcnVlKDIxKQorICAg
IDB4ZjUsCit9OworCisvLyBDVEFQIHJlc3BvbnNlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBBIHNhbXBsZSB3ZWxs
IGZvcm1lZCByZXNwb25zZSB0byBDVEFQIEF1dGhlbnRpY2F0b3JHZXRJbmZvIHJlcXVlc3QuIENy
b3NzCisvLyBwbGF0Zm9ybSBkZXZpY2UgdGhhdCBzdXBwb3J0cyByZXNpZGVudCBrZXksIGFuZCB1
c2VyIHZlcmlmaWNhdGlvbi4KK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0QXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZVtdID0geworICAgIDB4MDAsIDB4QTYsIDB4MDEsIDB4ODIsIDB4NjgsIDB4
NDYsIDB4NDksIDB4NDQsIDB4NEYsIDB4NUYsIDB4MzIsIDB4NUYsCisgICAgMHgzMCwgMHg2Niwg
MHg1NSwgMHgzMiwgMHg0NiwgMHg1RiwgMHg1NiwgMHgzMiwgMHgwMiwgMHg4MiwgMHg2MywgMHg3
NSwKKyAgICAweDc2LCAweDZELCAweDZCLCAweDY4LCAweDZELCAweDYxLCAweDYzLCAweDJELCAw
eDczLCAweDY1LCAweDYzLCAweDcyLAorICAgIDB4NjUsIDB4NzQsIDB4MDMsIDB4NTAsIDB4Rjgs
IDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMsIDB4MEEsIDB4NEQsIDB4MTUsCisgICAgMHg4MCwgMHgw
NiwgMHgxNywgMHgxMSwgMHgxRiwgMHg5RSwgMHhEQywgMHg3RCwgMHgwNCwgMHhBNSwgMHg2Miwg
MHg3MiwKKyAgICAweDZCLCAweEY1LCAweDYyLCAweDc1LCAweDcwLCAweEY1LCAweDYyLCAweDc1
LCAweDc2LCAweEY1LCAweDY0LCAweDcwLAorICAgIDB4NkMsIDB4NjEsIDB4NzQsIDB4RjQsIDB4
NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4NTAsCisgICAgMHg2OSwg
MHg2RSwgMHhGNCwgMHgwNSwgMHgxOSwgMHgwNCwgMHhCMCwgMHgwNiwgMHg4MSwgMHgwMSwKK307
CisKKy8vIEF1dGhlbnRpY2F0b3JHZXRJbmZvIHJlcXVlc3Qgd2l0aCBhbGwgY29uZmlndXJhdGlv
bnMgZXF1YWwgdG8gdGhhdCBvZgorLy8ga1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNl
IGV4Y2VwdCBwbGF0Zm9ybSBkZXZpY2Ugb3B0aW9uIGlzIHNldCB0bworLy8gdHJ1ZS4KK2NvbnN0
ZXhwciB1aW50OF90IGtUZXN0R2V0SW5mb1Jlc3BvbnNlUGxhdGZvcm1EZXZpY2VbXSA9IHsKKyAg
ICAweDAwLCAweEE2LCAweDAxLCAweDgyLCAweDY4LCAweDQ2LCAweDQ5LCAweDQ0LCAweDRGLCAw
eDVGLCAweDMyLCAweDVGLAorICAgIDB4MzAsIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYs
IDB4NTYsIDB4MzIsIDB4MDIsIDB4ODIsIDB4NjMsIDB4NzUsCisgICAgMHg3NiwgMHg2RCwgMHg2
QiwgMHg2OCwgMHg2RCwgMHg2MSwgMHg2MywgMHgyRCwgMHg3MywgMHg2NSwgMHg2MywgMHg3MiwK
KyAgICAweDY1LCAweDc0LCAweDAzLCAweDUwLCAweEY4LCAweEEwLCAweDExLCAweEYzLCAweDhD
LCAweDBBLCAweDRELCAweDE1LAorICAgIDB4ODAsIDB4MDYsIDB4MTcsIDB4MTEsIDB4MUYsIDB4
OUUsIDB4REMsIDB4N0QsIDB4MDQsIDB4QTUsIDB4NjIsIDB4NzIsCisgICAgMHg2QiwgMHhGNSwg
MHg2MiwgMHg3NSwgMHg3MCwgMHhGNSwgMHg2MiwgMHg3NSwgMHg3NiwgMHhGNSwgMHg2NCwgMHg3
MCwKKyAgICAvLyBwbGF0Zm9ybSBkZXZpY2UgOiB0cnVlCisgICAgMHg2QywgMHg2MSwgMHg3NCwg
MHhGNSwKKyAgICAvLyBFbmQgb2YgcGxhdGZvcm1fZGV2aWNlIHNldHRpbmcuCisgICAgMHg2OSwg
MHg2MywgMHg2QywgMHg2OSwgMHg2NSwgMHg2RSwgMHg3NCwgMHg1MCwgMHg2OSwgMHg2RSwgMHhG
NCwgMHgwNSwKKyAgICAweDE5LCAweDA0LCAweEIwLCAweDA2LCAweDgxLCAweDAxLAorfTsKKwor
Ly8gQSBTYW1wbGUgd2VsbCBmb3JtZWQgcmVzcG9uc2UgdG8gQ1RBUCBNYWtlQ3JlZGVudGlhbCBy
ZXF1ZXN0LgorY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RNYWtlQ3JlZGVudGlhbFJlc3BvbnNlW10g
PSB7CisgICAgLy8gU3VjY2VzcyBzdGF0dXMgYnl0ZQorICAgIDB4MDAsCisgICAgLy8gTWFwKDAz
KQorICAgIDB4YTMsCisgICAgLy8ga2V5KDAxKSAtIEZvcm1hdAorICAgIDB4MDEsCisgICAgLy8g
InBhY2tlZCIKKyAgICAweDY2LCAweDcwLCAweDYxLCAweDYzLCAweDZiLCAweDY1LCAweDY0LAor
ICAgIC8vIGtleSgwMikgLSBBdXRoZW50aWNhdG9yIERhdGEKKyAgICAweDAyLAorICAgIC8vIEJ5
dGUoMTU0KQorICAgIDB4NTgsIDB4OWEsIDB4MTEsIDB4OTQsIDB4MjIsIDB4OGQsIDB4YTgsIDB4
ZmQsIDB4YmQsIDB4ZWUsIDB4ZmQsIDB4MjYsCisgICAgMHgxYiwgMHhkNywgMHhiNiwgMHg1OSwg
MHg1YywgMHhmZCwgMHg3MCwgMHhhNSwgMHgwZCwgMHg3MCwgMHhjNiwgMHg0MCwKKyAgICAweDdi
LCAweGNmLCAweDAxLCAweDNkLCAweGU5LCAweDZkLCAweDRlLCAweGZiLCAweDE3LCAweGRlLCAw
eDQxLCAweDAwLAorICAgIDB4MDAsIDB4MDAsIDB4MGIsIDB4ZjgsIDB4YTAsIDB4MTEsIDB4ZjMs
IDB4OGMsIDB4MGEsIDB4NGQsIDB4MTUsIDB4ODAsCisgICAgMHgwNiwgMHgxNywgMHgxMSwgMHgx
ZiwgMHg5ZSwgMHhkYywgMHg3ZCwgMHgwMCwgMHgxMCwgMHg4OSwgMHg1OSwgMHhjZSwKKyAgICAw
eGFkLCAweDViLCAweDVjLCAweDQ4LCAweDE2LCAweDRlLCAweDhhLCAweGJjLCAweGQ2LCAweGQ5
LCAweDQzLCAweDVjLAorICAgIDB4NmYsIDB4YTMsIDB4NjMsIDB4NjEsIDB4NmMsIDB4NjcsIDB4
NjUsIDB4NDUsIDB4NTMsIDB4MzIsIDB4MzUsIDB4MzYsCisgICAgMHg2MSwgMHg3OCwgMHg1OCwg
MHgyMCwgMHhmNywgMHhjNCwgMHhmNCwgMHhhNiwgMHhmMSwgMHhkNywgMHg5NSwgMHgzOCwKKyAg
ICAweGRmLCAweGE0LCAweGM5LCAweGFjLCAweDUwLCAweDg0LCAweDhkLCAweGY3LCAweDA4LCAw
eGJjLCAweDFjLCAweDk5LAorICAgIDB4ZjUsIDB4ZTYsIDB4MGUsIDB4NTEsIDB4YjQsIDB4MmEs
IDB4NTIsIDB4MWIsIDB4MzUsIDB4ZDMsIDB4YjYsIDB4OWEsCisgICAgMHg2MSwgMHg3OSwgMHg1
OCwgMHgyMCwgMHhkZSwgMHg3YiwgMHg3ZCwgMHg2YywgMHhhNSwgMHg2NCwgMHhlNywgMHgwZSwK
KyAgICAweGEzLCAweDIxLCAweGE0LCAweGQ1LCAweGQ5LCAweDZlLCAweGEwLCAweDBlLCAweGYw
LCAweGUyLCAweGRiLCAweDg5LAorICAgIDB4ZGQsIDB4NjEsIDB4ZDQsIDB4ODksIDB4NGMsIDB4
MTUsIDB4YWMsIDB4NTgsIDB4NWIsIDB4ZDIsIDB4MzYsIDB4ODQsCisgICAgLy8gS2V5KDAzKSAt
IEF0dGVzdGF0aW9uIG9iamVjdAorICAgIDB4MDMsCisgICAgLy8gTWFwIC0gQXR0ZXN0YXRpb24g
b2JqZWN0CisgICAgMHhhMywgMHg2MywgMHg2MSwgMHg2YywgMHg2NywgMHgyNiwgMHg2MywgMHg3
MywgMHg2OSwgMHg2NywgMHg1OCwgMHg0NywKKyAgICAweDMwLCAweDQ1LCAweDAyLCAweDIwLCAw
eDEzLCAweGY3LCAweDNjLCAweDVkLCAweDlkLCAweDUzLCAweDBlLCAweDhjLAorICAgIDB4YzEs
IDB4NWMsIDB4YzksIDB4YmQsIDB4OTYsIDB4YWQsIDB4NTgsIDB4NmQsIDB4MzksIDB4MzYsIDB4
NjQsIDB4ZTQsCisgICAgMHg2MiwgMHhkNSwgMHhmMCwgMHg1NiwgMHgxMiwgMHgzNSwgMHhlNiwg
MHgzNSwgMHgwZiwgMHgyYiwgMHg3MiwgMHg4OSwKKyAgICAweDAyLCAweDIxLCAweDAwLCAweDkw
LCAweDM1LCAweDdmLCAweGY5LCAweDEwLCAweGNjLCAweGI1LCAweDZhLCAweGM1LAorICAgIDB4
YjUsIDB4OTYsIDB4NTEsIDB4MTksIDB4NDgsIDB4NTgsIDB4MWMsIDB4OGYsIDB4ZGQsIDB4YjQs
IDB4YTIsIDB4YjcsCisgICAgMHg5OSwgMHg1OSwgMHg5NCwgMHg4MCwgMHg3OCwgMHhiMCwgMHg5
ZiwgMHg0YiwgMHhkYywgMHg2MiwgMHgyOSwgMHg2MywKKyAgICAweDc4LCAweDM1LCAweDYzLCAw
eDgxLCAweDU5LCAweDAxLCAweDk3LCAweDMwLCAweDgyLCAweDAxLCAweDkzLCAweDMwLAorICAg
IDB4ODIsIDB4MDEsIDB4MzgsIDB4YTAsIDB4MDMsIDB4MDIsIDB4MDEsIDB4MDIsIDB4MDIsIDB4
MDksIDB4MDAsIDB4ODUsCisgICAgMHg5YiwgMHg3MiwgMHg2YywgMHhiMiwgMHg0YiwgMHg0Yywg
MHgyOSwgMHgzMCwgMHgwYSwgMHgwNiwgMHgwOCwgMHgyYSwKKyAgICAweDg2LCAweDQ4LCAweGNl
LCAweDNkLCAweDA0LCAweDAzLCAweDAyLCAweDMwLCAweDQ3LCAweDMxLCAweDBiLCAweDMwLAor
ICAgIDB4MDksIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MDYsIDB4MTMsIDB4MDIsIDB4NTUs
IDB4NTMsIDB4MzEsIDB4MTQsCisgICAgMHgzMCwgMHgxMiwgMHgwNiwgMHgwMywgMHg1NSwgMHgw
NCwgMHgwYSwgMHgwYywgMHgwYiwgMHg1OSwgMHg3NSwgMHg2MiwKKyAgICAweDY5LCAweDYzLCAw
eDZmLCAweDIwLCAweDU0LCAweDY1LCAweDczLCAweDc0LCAweDMxLCAweDIyLCAweDMwLCAweDIw
LAorICAgIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MGIsIDB4MGMsIDB4MTksIDB4NDEsIDB4
NzUsIDB4NzQsIDB4NjgsIDB4NjUsCisgICAgMHg2ZSwgMHg3NCwgMHg2OSwgMHg2MywgMHg2MSwg
MHg3NCwgMHg2ZiwgMHg3MiwgMHgyMCwgMHg0MSwgMHg3NCwgMHg3NCwKKyAgICAweDY1LCAweDcz
LCAweDc0LCAweDYxLCAweDc0LCAweDY5LCAweDZmLCAweDZlLCAweDMwLCAweDFlLCAweDE3LCAw
eDBkLAorICAgIDB4MzEsIDB4MzYsIDB4MzEsIDB4MzIsIDB4MzAsIDB4MzQsIDB4MzEsIDB4MzEs
IDB4MzUsIDB4MzUsIDB4MzAsIDB4MzAsCisgICAgMHg1YSwgMHgxNywgMHgwZCwgMHgzMiwgMHgz
NiwgMHgzMSwgMHgzMiwgMHgzMCwgMHgzMiwgMHgzMSwgMHgzMSwgMHgzNSwKKyAgICAweDM1LCAw
eDMwLCAweDMwLCAweDVhLCAweDMwLCAweDQ3LCAweDMxLCAweDBiLCAweDMwLCAweDA5LCAweDA2
LCAweDAzLAorICAgIDB4NTUsIDB4MDQsIDB4MDYsIDB4MTMsIDB4MDIsIDB4NTUsIDB4NTMsIDB4
MzEsIDB4MTQsIDB4MzAsIDB4MTIsIDB4MDYsCisgICAgMHgwMywgMHg1NSwgMHgwNCwgMHgwYSwg
MHgwYywgMHgwYiwgMHg1OSwgMHg3NSwgMHg2MiwgMHg2OSwgMHg2MywgMHg2ZiwKKyAgICAweDIw
LCAweDU0LCAweDY1LCAweDczLCAweDc0LCAweDMxLCAweDIyLCAweDMwLCAweDIwLCAweDA2LCAw
eDAzLCAweDU1LAorICAgIDB4MDQsIDB4MGIsIDB4MGMsIDB4MTksIDB4NDEsIDB4NzUsIDB4NzQs
IDB4NjgsIDB4NjUsIDB4NmUsIDB4NzQsIDB4NjksCisgICAgMHg2MywgMHg2MSwgMHg3NCwgMHg2
ZiwgMHg3MiwgMHgyMCwgMHg0MSwgMHg3NCwgMHg3NCwgMHg2NSwgMHg3MywgMHg3NCwKKyAgICAw
eDYxLCAweDc0LCAweDY5LCAweDZmLCAweDZlLCAweDMwLCAweDU5LCAweDMwLCAweDEzLCAweDA2
LCAweDA3LCAweDJhLAorICAgIDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2QsIDB4MDIsIDB4MDEsIDB4
MDYsIDB4MDgsIDB4MmEsIDB4ODYsIDB4NDgsIDB4Y2UsCisgICAgMHgzZCwgMHgwMywgMHgwMSwg
MHgwNywgMHgwMywgMHg0MiwgMHgwMCwgMHgwNCwgMHhhZCwgMHgxMSwgMHhlYiwgMHgwZSwKKyAg
ICAweDg4LCAweDUyLCAweGU1LCAweDNhLCAweGQ1LCAweGRmLCAweGVkLCAweDg2LCAweGI0LCAw
eDFlLCAweDYxLCAweDM0LAorICAgIDB4YTEsIDB4OGUsIDB4YzQsIDB4ZTEsIDB4YWYsIDB4OGYs
IDB4MjIsIDB4MWEsIDB4M2MsIDB4N2QsIDB4NmUsIDB4NjMsCisgICAgMHg2YywgMHg4MCwgMHhl
YSwgMHgxMywgMHhjMywgMHhkNSwgMHgwNCwgMHhmZiwgMHgyZSwgMHg3NiwgMHgyMSwgMHgxYiwK
KyAgICAweGI0LCAweDQ1LCAweDI1LCAweGIxLCAweDk2LCAweGM0LCAweDRjLCAweGI0LCAweDg0
LCAweDk5LCAweDc5LCAweGNmLAorICAgIDB4NmYsIDB4ODksIDB4NmUsIDB4Y2QsIDB4MmIsIDB4
YjgsIDB4NjAsIDB4ZGUsIDB4MWIsIDB4ZjQsIDB4MzcsIDB4NmIsCisgICAgMHhhMywgMHgwZCwg
MHgzMCwgMHgwYiwgMHgzMCwgMHgwOSwgMHgwNiwgMHgwMywgMHg1NSwgMHgxZCwgMHgxMywgMHgw
NCwKKyAgICAweDAyLCAweDMwLCAweDAwLCAweDMwLCAweDBhLCAweDA2LCAweDA4LCAweDJhLCAw
eDg2LCAweDQ4LCAweGNlLCAweDNkLAorICAgIDB4MDQsIDB4MDMsIDB4MDIsIDB4MDMsIDB4NDks
IDB4MDAsIDB4MzAsIDB4NDYsIDB4MDIsIDB4MjEsIDB4MDAsIDB4ZTksCisgICAgMHhhMywgMHg5
ZiwgMHgxYiwgMHgwMywgMHgxOSwgMHg3NSwgMHgyNSwgMHhmNywgMHgzNywgMHgzZSwgMHgxMCwg
MHhjZSwKKyAgICAweDc3LCAweGU3LCAweDgwLCAweDIxLCAweDczLCAweDFiLCAweDk0LCAweGQw
LCAweGMwLCAweDNmLCAweDNmLCAweGRhLAorICAgIDB4MWYsIDB4ZDIsIDB4MmQsIDB4YjMsIDB4
ZDAsIDB4MzAsIDB4ZTcsIDB4MDIsIDB4MjEsIDB4MDAsIDB4YzQsIDB4ZmEsCisgICAgMHhlYywg
MHgzNCwgMHg0NSwgMHhhOCwgMHgyMCwgMHhjZiwgMHg0MywgMHgxMiwgMHg5YywgMHhkYiwgMHgw
MCwgMHhhYSwKKyAgICAweGJlLCAweGZkLCAweDlhLCAweGUyLCAweGQ4LCAweDc0LCAweGY5LCAw
eGM1LCAweGQzLCAweDQzLCAweGNiLCAweDJmLAorICAgIDB4MTEsIDB4M2QsIDB4YTIsIDB4Mzcs
IDB4MjMsIDB4ZjMsCit9OworCisvLyBCZWxvdyB8a0N0YXAyTWFrZUNyZWRlbnRpYWxDZXJ0aWZp
Y2F0ZXwsIHxrQ3RhcDJNYWtlQ3JlZGVudGlhbEF1dGhEYXRhfCwgYW5kCisvLyB8a0N0YXAyTWFr
ZUNyZWRlbnRpYWxTaWduYXR1cmV8IGxldmVyYWdlIGV4YW1wbGUgNCBvZiB0aGUgQ1RBUCBzcGVj
LgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDky
Ny9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5Mjcu
aHRtbAorY29uc3RleHByIHVpbnQ4X3Qga0N0YXAyTWFrZUNyZWRlbnRpYWxDZXJ0aWZpY2F0ZVtd
ID0geworICAgIDB4MzAsIDB4ODIsIDB4MDEsIDB4OTMsIDB4MzAsIDB4ODIsIDB4MDEsIDB4Mzgs
IDB4YTAsIDB4MDMsIDB4MDIsIDB4MDEsCisgICAgMHgwMiwgMHgwMiwgMHgwOSwgMHgwMCwgMHg4
NSwgMHg5YiwgMHg3MiwgMHg2YywgMHhiMiwgMHg0YiwgMHg0YywgMHgyOSwKKyAgICAweDMwLCAw
eDBhLCAweDA2LCAweDA4LCAweDJhLCAweDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDA0LCAweDAz
LCAweDAyLAorICAgIDB4MzAsIDB4NDcsIDB4MzEsIDB4MGIsIDB4MzAsIDB4MDksIDB4MDYsIDB4
MDMsIDB4NTUsIDB4MDQsIDB4MDYsIDB4MTMsCisgICAgMHgwMiwgMHg1NSwgMHg1MywgMHgzMSwg
MHgxNCwgMHgzMCwgMHgxMiwgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwYSwKKyAgICAweDBj
LCAweDBiLCAweDU5LCAweDc1LCAweDYyLCAweDY5LCAweDYzLCAweDZmLCAweDIwLCAweDU0LCAw
eDY1LCAweDczLAorICAgIDB4NzQsIDB4MzEsIDB4MjIsIDB4MzAsIDB4MjAsIDB4MDYsIDB4MDMs
IDB4NTUsIDB4MDQsIDB4MGIsIDB4MGMsIDB4MTksCisgICAgMHg0MSwgMHg3NSwgMHg3NCwgMHg2
OCwgMHg2NSwgMHg2ZSwgMHg3NCwgMHg2OSwgMHg2MywgMHg2MSwgMHg3NCwgMHg2ZiwKKyAgICAw
eDcyLCAweDIwLCAweDQxLCAweDc0LCAweDc0LCAweDY1LCAweDczLCAweDc0LCAweDYxLCAweDc0
LCAweDY5LCAweDZmLAorICAgIDB4NmUsIDB4MzAsIDB4MWUsIDB4MTcsIDB4MGQsIDB4MzEsIDB4
MzYsIDB4MzEsIDB4MzIsIDB4MzAsIDB4MzQsIDB4MzEsCisgICAgMHgzMSwgMHgzNSwgMHgzNSwg
MHgzMCwgMHgzMCwgMHg1YSwgMHgxNywgMHgwZCwgMHgzMiwgMHgzNiwgMHgzMSwgMHgzMiwKKyAg
ICAweDMwLCAweDMyLCAweDMxLCAweDMxLCAweDM1LCAweDM1LCAweDMwLCAweDMwLCAweDVhLCAw
eDMwLCAweDQ3LCAweDMxLAorICAgIDB4MGIsIDB4MzAsIDB4MDksIDB4MDYsIDB4MDMsIDB4NTUs
IDB4MDQsIDB4MDYsIDB4MTMsIDB4MDIsIDB4NTUsIDB4NTMsCisgICAgMHgzMSwgMHgxNCwgMHgz
MCwgMHgxMiwgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwYSwgMHgwYywgMHgwYiwgMHg1OSwK
KyAgICAweDc1LCAweDYyLCAweDY5LCAweDYzLCAweDZmLCAweDIwLCAweDU0LCAweDY1LCAweDcz
LCAweDc0LCAweDMxLCAweDIyLAorICAgIDB4MzAsIDB4MjAsIDB4MDYsIDB4MDMsIDB4NTUsIDB4
MDQsIDB4MGIsIDB4MGMsIDB4MTksIDB4NDEsIDB4NzUsIDB4NzQsCisgICAgMHg2OCwgMHg2NSwg
MHg2ZSwgMHg3NCwgMHg2OSwgMHg2MywgMHg2MSwgMHg3NCwgMHg2ZiwgMHg3MiwgMHgyMCwgMHg0
MSwKKyAgICAweDc0LCAweDc0LCAweDY1LCAweDczLCAweDc0LCAweDYxLCAweDc0LCAweDY5LCAw
eDZmLCAweDZlLCAweDMwLCAweDU5LAorICAgIDB4MzAsIDB4MTMsIDB4MDYsIDB4MDcsIDB4MmEs
IDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2QsIDB4MDIsIDB4MDEsIDB4MDYsCisgICAgMHgwOCwgMHgy
YSwgMHg4NiwgMHg0OCwgMHhjZSwgMHgzZCwgMHgwMywgMHgwMSwgMHgwNywgMHgwMywgMHg0Miwg
MHgwMCwKKyAgICAweDA0LCAweGFkLCAweDExLCAweGViLCAweDBlLCAweDg4LCAweDUyLCAweGU1
LCAweDNhLCAweGQ1LCAweGRmLCAweGVkLAorICAgIDB4ODYsIDB4YjQsIDB4MWUsIDB4NjEsIDB4
MzQsIDB4YTEsIDB4OGUsIDB4YzQsIDB4ZTEsIDB4YWYsIDB4OGYsIDB4MjIsCisgICAgMHgxYSwg
MHgzYywgMHg3ZCwgMHg2ZSwgMHg2MywgMHg2YywgMHg4MCwgMHhlYSwgMHgxMywgMHhjMywgMHhk
NSwgMHgwNCwKKyAgICAweGZmLCAweDJlLCAweDc2LCAweDIxLCAweDFiLCAweGI0LCAweDQ1LCAw
eDI1LCAweGIxLCAweDk2LCAweGM0LCAweDRjLAorICAgIDB4YjQsIDB4ODQsIDB4OTksIDB4Nzks
IDB4Y2YsIDB4NmYsIDB4ODksIDB4NmUsIDB4Y2QsIDB4MmIsIDB4YjgsIDB4NjAsCisgICAgMHhk
ZSwgMHgxYiwgMHhmNCwgMHgzNywgMHg2YiwgMHhhMywgMHgwZCwgMHgzMCwgMHgwYiwgMHgzMCwg
MHgwOSwgMHgwNiwKKyAgICAweDAzLCAweDU1LCAweDFkLCAweDEzLCAweDA0LCAweDAyLCAweDMw
LCAweDAwLCAweDMwLCAweDBhLCAweDA2LCAweDA4LAorICAgIDB4MmEsIDB4ODYsIDB4NDgsIDB4
Y2UsIDB4M2QsIDB4MDQsIDB4MDMsIDB4MDIsIDB4MDMsIDB4NDksIDB4MDAsIDB4MzAsCisgICAg
MHg0NiwgMHgwMiwgMHgyMSwgMHgwMCwgMHhlOSwgMHhhMywgMHg5ZiwgMHgxYiwgMHgwMywgMHgx
OSwgMHg3NSwgMHgyNSwKKyAgICAweGY3LCAweDM3LCAweDNlLCAweDEwLCAweGNlLCAweDc3LCAw
eGU3LCAweDgwLCAweDIxLCAweDczLCAweDFiLCAweDk0LAorICAgIDB4ZDAsIDB4YzAsIDB4M2Ys
IDB4M2YsIDB4ZGEsIDB4MWYsIDB4ZDIsIDB4MmQsIDB4YjMsIDB4ZDAsIDB4MzAsIDB4ZTcsCisg
ICAgMHgwMiwgMHgyMSwgMHgwMCwgMHhjNCwgMHhmYSwgMHhlYywgMHgzNCwgMHg0NSwgMHhhOCwg
MHgyMCwgMHhjZiwgMHg0MywKKyAgICAweDEyLCAweDljLCAweGRiLCAweDAwLCAweGFhLCAweGJl
LCAweGZkLCAweDlhLCAweGUyLCAweGQ4LCAweDc0LCAweGY5LAorICAgIDB4YzUsIDB4ZDMsIDB4
NDMsIDB4Y2IsIDB4MmYsIDB4MTEsIDB4M2QsIDB4YTIsIDB4MzcsIDB4MjMsIDB4ZjN9OworCitj
b25zdGV4cHIgdWludDhfdCBrQ3RhcDJNYWtlQ3JlZGVudGlhbEF1dGhEYXRhW10gPSB7CisgICAg
MHgxMSwgMHg5NCwgMHgyMiwgMHg4RCwgMHhBOCwgMHhGRCwgMHhCRCwgMHhFRSwgMHhGRCwgMHgy
NiwgMHgxQiwgMHhENywKKyAgICAweEI2LCAweDU5LCAweDVDLCAweEZELCAweDcwLCAweEE1LCAw
eDBELCAweDcwLCAweEM2LCAweDQwLCAweDdCLCAweENGLAorICAgIDB4MDEsIDB4M0QsIDB4RTks
IDB4NkQsIDB4NEUsIDB4RkIsIDB4MTcsIDB4REUsIDB4NDEsIDB4MDAsIDB4MDAsIDB4MDAsCisg
ICAgMHgwYiwgMHhmOCwgMHhhMCwgMHgxMSwgMHhmMywgMHg4YywgMHgwYSwgMHg0ZCwgMHgxNSwg
MHg4MCwgMHgwNiwgMHgxNywKKyAgICAweDExLCAweDFmLCAweDllLCAweGRjLCAweDdkLCAweDAw
LCAweDEwLCAweDg5LCAweDU5LCAweGNlLCAweGFkLCAweDViLAorICAgIDB4NWMsIDB4NDgsIDB4
MTYsIDB4NGUsIDB4OGEsIDB4YmMsIDB4ZDYsIDB4ZDksIDB4NDMsIDB4NWMsIDB4NmYsIDB4YTMs
CisgICAgMHg2MywgMHg2MSwgMHg2YywgMHg2NywgMHg2NSwgMHg0NSwgMHg1MywgMHgzMiwgMHgz
NSwgMHgzNiwgMHg2MSwgMHg3OCwKKyAgICAweDU4LCAweDIwLCAweGY3LCAweGM0LCAweGY0LCAw
eGE2LCAweGYxLCAweGQ3LCAweDk1LCAweDM4LCAweGRmLCAweGE0LAorICAgIDB4YzksIDB4YWMs
IDB4NTAsIDB4ODQsIDB4OGQsIDB4ZjcsIDB4MDgsIDB4YmMsIDB4MWMsIDB4OTksIDB4ZjUsIDB4
ZTYsCisgICAgMHgwZSwgMHg1MSwgMHhiNCwgMHgyYSwgMHg1MiwgMHgxYiwgMHgzNSwgMHhkMywg
MHhiNiwgMHg5YSwgMHg2MSwgMHg3OSwKKyAgICAweDU4LCAweDIwLCAweGRlLCAweDdiLCAweDdk
LCAweDZjLCAweGE1LCAweDY0LCAweGU3LCAweDBlLCAweGEzLCAweDIxLAorICAgIDB4YTQsIDB4
ZDUsIDB4ZDksIDB4NmUsIDB4YTAsIDB4MGUsIDB4ZjAsIDB4ZTIsIDB4ZGIsIDB4ODksIDB4ZGQs
IDB4NjEsCisgICAgMHhkNCwgMHg4OSwgMHg0YywgMHgxNSwgMHhhYywgMHg1OCwgMHg1YiwgMHhk
MiwgMHgzNiwgMHg4NH07CisKK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwMk1ha2VDcmVkZW50aWFs
U2lnbmF0dXJlW10gPSB7CisgICAgMHgzMCwgMHg0NSwgMHgwMiwgMHgyMCwgMHgxMywgMHhmNywg
MHgzYywgMHg1ZCwgMHg5ZCwgMHg1MywgMHgwZSwgMHg4YywKKyAgICAweGMxLCAweDVjLCAweGM5
LCAweGJkLCAweDk2LCAweGFkLCAweDU4LCAweDZkLCAweDM5LCAweDM2LCAweDY0LCAweGU0LAor
ICAgIDB4NjIsIDB4ZDUsIDB4ZjAsIDB4NTYsIDB4MTIsIDB4MzUsIDB4ZTYsIDB4MzUsIDB4MGYs
IDB4MmIsIDB4NzIsIDB4ODksCisgICAgMHgwMiwgMHgyMSwgMHgwMCwgMHg5MCwgMHgzNSwgMHg3
ZiwgMHhmOSwgMHgxMCwgMHhjYywgMHhiNSwgMHg2YSwgMHhjNSwKKyAgICAweGI1LCAweDk2LCAw
eDUxLCAweDE5LCAweDQ4LCAweDU4LCAweDFjLCAweDhmLCAweGRkLCAweGI0LCAweGEyLCAweGI3
LAorICAgIDB4OTksIDB4NTksIDB4OTQsIDB4ODAsIDB4NzgsIDB4YjAsIDB4OWYsIDB4NGIsIDB4
ZGMsIDB4NjIsIDB4Mjl9OworCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcDJNYWtlQ3JlZGVudGlh
bENyZWRlbnRpYWxJZFtdID0geworICAgIDB4ODksIDB4NTksIDB4Y2UsIDB4YWQsIDB4NWIsIDB4
NWMsIDB4NDgsIDB4MTYsCisgICAgMHg0ZSwgMHg4YSwgMHhiYywgMHhkNiwgMHhkOSwgMHg0Mywg
MHg1YywgMHg2ZiwKK307CisKK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwMkdldEFzc2VydGlvbkF1
dGhEYXRhW10gPSB7CisgICAgMHg2MiwgMHg1ZCwgMHhkYSwgMHhkZiwgMHg3NCwgMHgzZiwgMHg1
NywgMHgyNywgMHhlNiwgMHg2YiwKKyAgICAweGJhLCAweDhjLCAweDJlLCAweDM4LCAweDc5LCAw
eDIyLCAweGQxLCAweGFmLCAweDQzLCAweGM1LAorICAgIDB4MDMsIDB4ZDksIDB4MTEsIDB4NGEs
IDB4OGYsIDB4YmEsIDB4MTAsIDB4NGQsIDB4ODQsIDB4ZDAsCisgICAgMHgyYiwgMHhmYSwgMHgw
MSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMX07CisKK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwMkdl
dEFzc2VydGlvblNpZ25hdHVyZVtdID0geworICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4MjAsIDB4
NGEsIDB4NWEsIDB4OWQsIDB4ZDMsIDB4OTIsIDB4OTgsIDB4MTQsIDB4OWQsCisgICAgMHg5MCwg
MHg0NywgMHg2OSwgMHhiNSwgMHgxYSwgMHg0NSwgMHgxNCwgMHgzMywgMHgwMCwgMHg2ZiwgMHgx
OCwgMHgyYSwKKyAgICAweDM0LCAweGZiLCAweGRmLCAweDY2LCAweGRlLCAweDVmLCAweGM3LCAw
eDE3LCAweGQ3LCAweDVmLCAweGIzLCAweDUwLAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4YTQs
IDB4NmIsIDB4OGUsIDB4YTMsIDB4YzMsIDB4YjksIDB4MzMsIDB4ODIsIDB4MWMsCisgICAgMHg2
ZSwgMHg3ZiwgMHg1ZSwgMHhmOSwgMHhkYSwgMHhhZSwgMHg5NCwgMHhhYiwgMHg0NywgMHhmMSwg
MHg4ZCwgMHhiNCwKKyAgICAweDc0LCAweGM3LCAweDQ3LCAweDkwLCAweGVhLCAweGFiLCAweGIx
LCAweDQ0LCAweDExLCAweGU3LCAweGEwLAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga0Rldmlj
ZUdldEFzc2VydGlvblJlc3BvbnNlW10gPSB7CisgICAgLy8gU3VjY2VzcyByZXNwb25zZSBjb2Rl
CisgICAgMHgwMCwKKyAgICAvLyBtYXAoNSkKKyAgICAweGE1LAorICAgIC8vIHVuc2lnbmVkKDEp
IC0gQ3JlZGVudGlhbAorICAgIDB4MDEsCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAv
LyB0ZXh0KDIpCisgICAgMHg2MiwKKyAgICAvLyAiaWQiCisgICAgMHg2OSwgMHg2NCwKKyAgICAv
LyBieXRlcyg2NCkKKyAgICAweDU4LCAweDQwLAorICAgIC8vIGNyZWRlbnRpYWwgaWQKKyAgICAw
eGYyLCAweDIwLCAweDA2LCAweGRlLCAweDRmLCAweDkwLCAweDVhLCAweGY2LCAweDhhLCAweDQz
LCAweDk0LCAweDJmLAorICAgIDB4MDIsIDB4NGYsIDB4MmEsIDB4NWUsIDB4Y2UsIDB4NjAsIDB4
M2QsIDB4OWMsIDB4NmQsIDB4NGIsIDB4M2QsIDB4ZjgsCisgICAgMHhiZSwgMHgwOCwgMHhlZCwg
MHgwMSwgMHhmYywgMHg0NCwgMHgyNiwgMHg0NiwgMHhkMCwgMHgzNCwgMHg4NSwgMHg4YSwKKyAg
ICAweGM3LCAweDViLCAweGVkLCAweDNmLCAweGQ1LCAweDgwLCAweGJmLCAweDk4LCAweDA4LCAw
eGQ5LCAweDRmLCAweGNiLAorICAgIDB4ZWUsIDB4ODIsIDB4YjksIDB4YjIsIDB4ZWYsIDB4NjYs
IDB4NzcsIDB4YWYsIDB4MGEsIDB4ZGMsIDB4YzMsIDB4NTgsCisgICAgMHg1MiwgMHhlYSwgMHg2
YiwgMHg5ZSwKKyAgICAvLyB0ZXh0KDQpCisgICAgMHg2NCwKKyAgICAvLyAidHlwZSIKKyAgICAw
eDc0LCAweDc5LCAweDcwLCAweDY1LAorICAgIC8vIHRleHQoMTApCisgICAgMHg2YSwKKyAgICAv
LyAicHVibGljLWtleSIKKyAgICAweDcwLCAweDc1LCAweDYyLCAweDZDLCAweDY5LCAweDYzLCAw
eDJELCAweDZCLCAweDY1LCAweDc5LAorICAgIC8vIHVuc2lnbmVkKDIpIC0gQXV0aCBkYXRhCisg
ICAgMHgwMiwKKyAgICAvLyBieXRlcygzNykKKyAgICAweDU4LCAweDI1LAorICAgIC8vIGF1dGgg
ZGF0YQorICAgIDB4NjIsIDB4NWQsIDB4ZGEsIDB4ZGYsIDB4NzQsIDB4M2YsIDB4NTcsIDB4Mjcs
IDB4ZTYsIDB4NmIsIDB4YmEsIDB4OGMsCisgICAgMHgyZSwgMHgzOCwgMHg3OSwgMHgyMiwgMHhk
MSwgMHhhZiwgMHg0MywgMHhjNSwgMHgwMywgMHhkOSwgMHgxMSwgMHg0YSwKKyAgICAweDhmLCAw
eGJhLCAweDEwLCAweDRkLCAweDg0LCAweGQwLCAweDJiLCAweGZhLCAweDAxLCAweDAwLCAweDAw
LCAweDAwLAorICAgIDB4MTEsCisgICAgLy8gdW5zaWduZWQoMykgLSBzaWduYXR1cmUKKyAgICAw
eDAzLAorICAgIC8vIGJ5dGVzKDcxKQorICAgIDB4NTgsIDB4NDcsCisgICAgLy8gc2lnbmF0dXJl
CisgICAgMHgzMCwgMHg0NSwgMHgwMiwgMHgyMCwgMHg0YSwgMHg1YSwgMHg5ZCwgMHhkMywgMHg5
MiwgMHg5OCwgMHgxNCwgMHg5ZCwKKyAgICAweDkwLCAweDQ3LCAweDY5LCAweGI1LCAweDFhLCAw
eDQ1LCAweDE0LCAweDMzLCAweDAwLCAweDZmLCAweDE4LCAweDJhLAorICAgIDB4MzQsIDB4ZmIs
IDB4ZGYsIDB4NjYsIDB4ZGUsIDB4NWYsIDB4YzcsIDB4MTcsIDB4ZDcsIDB4NWYsIDB4YjMsIDB4
NTAsCisgICAgMHgwMiwgMHgyMSwgMHgwMCwgMHhhNCwgMHg2YiwgMHg4ZSwgMHhhMywgMHhjMywg
MHhiOSwgMHgzMywgMHg4MiwgMHgxYywKKyAgICAweDZlLCAweDdmLCAweDVlLCAweGY5LCAweGRh
LCAweGFlLCAweDk0LCAweGFiLCAweDQ3LCAweGYxLCAweDhkLCAweGI0LAorICAgIDB4NzQsIDB4
YzcsIDB4NDcsIDB4OTAsIDB4ZWEsIDB4YWIsIDB4YjEsIDB4NDQsIDB4MTEsIDB4ZTcsIDB4YTAs
CisgICAgLy8gdW5zaWduZWQoNCkgLSBwdWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eQorICAg
IDB4MDQsCisgICAgLy8gbWFwKDQpCisgICAgMHhhNCwKKyAgICAvLyB0ZXh0KDIpCisgICAgMHg2
MiwKKyAgICAvLyAiaWQiCisgICAgMHg2OSwgMHg2NCwKKyAgICAvLyBieXRlcygzMikgLSB1c2Vy
IGlkCisgICAgMHg1OCwgMHgyMCwKKyAgICAvLyB1c2VyIGlkCisgICAgMHgzMCwgMHg4MiwgMHgw
MSwgMHg5MywgMHgzMCwgMHg4MiwgMHgwMSwgMHgzOCwgMHhhMCwgMHgwMywgMHgwMiwgMHgwMSwK
KyAgICAweDAyLCAweDMwLCAweDgyLCAweDAxLCAweDkzLCAweDMwLCAweDgyLCAweDAxLCAweDM4
LCAweGEwLCAweDAzLCAweDAyLAorICAgIDB4MDEsIDB4MDIsIDB4MzAsIDB4ODIsIDB4MDEsIDB4
OTMsIDB4MzAsIDB4ODIsCisgICAgLy8gdGV4dCg0KQorICAgIDB4NjQsCisgICAgLy8gImljb24i
CisgICAgMHg2OSwgMHg2MywgMHg2ZiwgMHg2ZSwKKyAgICAvLyB0ZXh0KDQwKQorICAgIDB4Nzgs
IDB4MjgsCisgICAgLy8gImh0dHBzOi8vcGljcy5hY21lLmNvbS8wMC9wL2FCampqcHFQYi5wbmci
CisgICAgMHg2OCwgMHg3NCwgMHg3NCwgMHg3MCwgMHg3MywgMHgzYSwgMHgyZiwgMHgyZiwgMHg3
MCwgMHg2OSwgMHg2MywgMHg3MywKKyAgICAweDJlLCAweDYxLCAweDYzLCAweDZkLCAweDY1LCAw
eDJlLCAweDYzLCAweDZmLCAweDZkLCAweDJmLCAweDMwLCAweDMwLAorICAgIDB4MmYsIDB4NzAs
IDB4MmYsIDB4NjEsIDB4NDIsIDB4NmEsIDB4NmEsIDB4NmEsIDB4NzAsIDB4NzEsIDB4NTAsIDB4
NjIsCisgICAgMHgyZSwgMHg3MCwgMHg2ZSwgMHg2NywKKyAgICAvLyB0ZXh0KDQpCisgICAgMHg2
NCwKKyAgICAvLyAibmFtZSIKKyAgICAweDZlLCAweDYxLCAweDZkLCAweDY1LAorICAgIC8vIHRl
eHQoMjIpCisgICAgMHg3NiwKKyAgICAvLyAiam9obnBzbWl0aEBleGFtcGxlLmNvbSIKKyAgICAw
eDZhLCAweDZmLCAweDY4LCAweDZlLCAweDcwLCAweDczLCAweDZkLCAweDY5LCAweDc0LCAweDY4
LCAweDQwLCAweDY1LAorICAgIDB4NzgsIDB4NjEsIDB4NmQsIDB4NzAsIDB4NmMsIDB4NjUsIDB4
MmUsIDB4NjMsIDB4NmYsIDB4NmQsCisgICAgLy8gdGV4dCgxMSkKKyAgICAweDZiLAorICAgIC8v
ICJkaXNwbGF5TmFtZSIKKyAgICAweDY0LCAweDY5LCAweDczLCAweDcwLCAweDZjLCAweDYxLCAw
eDc5LCAweDRlLCAweDYxLCAweDZkLCAweDY1LAorICAgIC8vIHRleHQoMTMpCisgICAgMHg2ZCwK
KyAgICAvLyAiSm9obiBQLiBTbWl0aCIKKyAgICAweDRhLCAweDZmLCAweDY4LCAweDZlLCAweDIw
LCAweDUwLCAweDJlLCAweDIwLCAweDUzLCAweDZkLCAweDY5LCAweDc0LAorICAgIDB4NjgsCisg
ICAgLy8gdW5zaWduZWQoNSkgLSBudW1iZXIgb2YgY3JlZGVudGlhbHMKKyAgICAweDA1LAorICAg
IC8vIDEKKyAgICAweDAxLAorfTsKKworfSAvLyBuYW1lc3BhY2UgVGVzdERhdGEKKworfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353455</attachid>
            <date>2018-10-30 19:02:55 -0700</date>
            <delta_ts>2018-10-31 12:22:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190784-20181030190255.patch</filename>
            <type>text/plain</type>
            <size>148488</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFmNDQ3ZDE1N2JlMDJh
MzA1Y2UyMDk2MDdlNTc5ZjYxNjM3YmNhOS4uMzU1MzE5MjU4ZTc3MmEyYzJiMTJiOWZhYWQ2Mzkx
OTcwNWRmNzY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDE4LTEwLTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBv
cnQgQ1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzIGZyb20gQ2hyb21pdW0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDc4NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU0NjAzMzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBvcnRzIENocm9taXVtJ3Mg
Q1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzOgorICAgICAgICBodHRwczov
L2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50
LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sI21lc3NhZ2Ut
ZW5jb2RpbmcKKyAgICAgICAgMS4gSXQgZGlyZWN0bHkgaW1wb3J0cyB0aGUgZm9sbG93aW5nIGZp
bGVzIGFuZCBzdWl0IHRoZW0gdG8gV2ViS2l0J3MgY29kaW5nIHN0eWxlOgorICAgICAgICBodHRw
czovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vZGV2aWNlX3Jlc3Bv
bnNlX2NvbnZlcnRlci5jYz9sPTIwJnJjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQy
ZDk5YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9k
ZXZpY2UvZmlkby9kZXZpY2VfcmVzcG9uc2VfY29udmVydGVyLmg/cmNsPTA5OGRmZDkwODUwZmZh
ODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5v
cmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhlbnRpY2F0b3JfZ2V0X2luZm9fcmVzcG9u
c2UuY2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAg
ICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhl
bnRpY2F0b3JfZ2V0X2luZm9fcmVzcG9uc2UuaD9yY2w9MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRh
Yjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1
bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9zdXBwb3J0ZWRfb3B0aW9ucy5jYz9yY2w9
MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczov
L2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9z
dXBwb3J0ZWRfb3B0aW9ucy5oP3JjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5
YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9kZXZp
Y2UvZmlkby9jdGFwX3JlcXVlc3RfdW5pdHRlc3QuY2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdh
ODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hy
b21pdW0vc3JjL2RldmljZS9maWRvL2N0YXBfcmVzcG9uc2VfdW5pdHRlc3QuY2M/cmNsPTA5OGRm
ZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5j
aHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2ZpZG9fdGVzdF9kYXRhLmg/bD0x
JnJjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5YzRlYzQ1CisgICAgICAgIDIu
IEl0IGdhdGhlcnMgdGhlIGZvbGxvd2luZyBtZXRob2RzIGludG8gRGV2aWNlUmVxdWVzdENvbnZl
cnRlcjoKKyAgICAgICAgQ3RhcEdldEFzc2VydGlvblJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisg
ICAgICAgIEN0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisgICAgICAg
IFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yOjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAg
UHVibGljS2V5Q3JlZGVudGlhbFBhcmFtczo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1Ymxp
Y0tleUNyZWRlbnRpYWxScEVudGl0eTo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1YmxpY0tl
eUNyZWRlbnRpYWxVc2VyRW50aXR5OjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAgMy4gSXQgYWxz
byBhcHBseSBhIHBhdGNoIGZyb20gQ2hyb21pdW0gdG8gQ0JPUlZhbHVlOgorICAgICAgICBodHRw
czovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjLysvN2I2ZmJmZjM1Y2Q4
ZTRkNTA4ZjA4ZTFjZDkzYjRhYTBhMGRjNDAyYyU1RSUyMS8KKworICAgICAgICBCZXNpZGVzIGlt
cG9ydGluZyB0aGluZ3MgZnJvbSBDaHJvbWl1bSwgaXQgYWxzbyBpbXBsZW1lbnRzIFVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudCBmb3IgYm90aAorICAgICAgICBQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zIGFuZCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgc3Vj
aCB0aGF0IGJvdGggb3B0aW9ucworICAgICAgICBjYW4gc3BlY2lmeSBtb3JlIGRpbWVuc2lvbnMg
b2YgYSBkZXNpcmVkIGF1dGhlbnRpY2F0b3IuCisKKyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVz
dHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
czo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjpkZWNvZGUpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9uczo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMu
aWRsLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpDQk9S
VmFsdWUpOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpnZXRCb29sIGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmg6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKGZpZG86OnRvQXJyYXlWYWx1ZSk6CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlOjpBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKToKKyAgICAg
ICAgKGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldE1heE1zZ1NpemUpOgor
ICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0UGluUHJvdG9j
b2xzKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldEV4
dGVuc2lvbnMpOgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6
c2V0T3B0aW9ucyk6CisgICAgICAgIChmaWRvOjplbmNvZGVBc0NCT1IpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnM6OnNldFN1cHBvcnRzUmVzaWRlbnRLZXkpOgorICAgICAgICAoZmlkbzo6QXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkp
OgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJQ
cmVzZW5jZVJlcXVpcmVkKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zOjpzZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkpOgorICAgICAgICAoZmlkbzo6QXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldElzUGxhdGZvcm1EZXZpY2UpOgorICAgICAgICAo
Zmlkbzo6Y29udmVydFRvQ0JPUik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChmaWRvOjpjb252ZXJ0UnBFbnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFVz
ZXJFbnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFBhcmFtZXRlcnNUb0NCT1Ip
OgorICAgICAgICAoZmlkbzo6Y29udmVydERlc2NyaXB0b3JUb0NCT1IpOgorICAgICAgICAoZmlk
bzo6ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKToKKyAgICAgICAgKGZpZG86OmVu
Y29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IpOgorICAgICAgICAoZmlkbzo6ZW5jb2RlRW1w
dHlBdXRoZW50aWNhdG9yUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRv
L0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KGZpZG86OmNvbnZlcnRTdHJpbmdUb1Byb3RvY29sVmVyc2lvbik6CisgICAgICAgIChmaWRvOjpn
ZXRSZXNwb25zZUNvZGUpOgorICAgICAgICAoZmlkbzo6Z2V0Q3JlZGVudGlhbElkKToKKyAgICAg
ICAgKGZpZG86OnJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZSk6CisgICAgICAgIChmaWRv
OjpyZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKToKKyAgICAgICAgKGZpZG86OnJlYWRDVEFQ
R2V0SW5mb1Jlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNl
UmVzcG9uc2VDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0
aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcDoKKyAgICAgICAgKGZpZG86OmlzQ3RhcERldmljZVJl
c3BvbnNlQ29kZSk6CisgICAgICAgIChmaWRvOjpwdWJsaWNLZXlDcmVkZW50aWFsVHlwZVRvU3Ry
aW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxOC0xMC0zMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxl
LmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBzb21lIG9ic29sZXRlIE1BWF9BTExPV0VEIG1hY3Jv
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMjliNmM1NDkzMmY5ZTRlODg0NjZkY2Y5MThjYmQ2
ZTE3NDY0MmQ1Li44YTEwYmQzNDg5MjRhZDFlMmViYzAyNWQ5NTAxNDQwZWM1ZWY2MzEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtNDMxLDYgKzQzMSw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdf
SURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3Jp
cHRvci5pZGwKICAgICBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5pZGwKICAgICBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxUeXBl
LmlkbAorICAgIE1vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50Lmlk
bAogCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5pZGwKICAg
ICBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggNjYzOTBkNDlmYjM5ZDZjNGIyYzQ3NjI2MDVkMjYwNWZiMmI1YjEwZC4uZTBj
NTIwNzQ3ODhhNWRmMTdmZjU0YWI1ZjQ4YTUxZmE3NTM1NThmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCkBAIC0zNTUsNiArMzU1LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRv
ci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50
aWFsUmVxdWVzdE9wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXV0aG4v
UHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
YXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ2FsbGJhY2suaWRsIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKaW5kZXggOGFmYjRkZDRkNDYxZTg2ZTY5NDgzMzllMjEx
YjE5OWU3MWE5ODczMy4uYmE2OGRmOTJiMTgyYzdhOWIxM2EzNjZmYTkxMTYwODJlYjQ2NWRiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50
aWFsRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmgiCisj
aW5jbHVkZSAiVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL0Ny
b3NzVGhyZWFkQ29waWVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtNjUsNyAr
NjYsOSBAQCBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyB7CiAgICAg
fTsKIAogICAgIHN0cnVjdCBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgewotICAgICAg
ICBBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yQXR0YWNobWVudD4gYXV0aGVudGljYXRvckF0
dGFjaG1lbnQ7CisgICAgICAgIGJvb2wgcmVxdWlyZVJlc2lkZW50S2V5IHsgZmFsc2UgfTsKKyAg
ICAgICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IHVzZXJWZXJpZmljYXRpb24geyBVc2Vy
VmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZCB9OwogCiAgICAgICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICAgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRvclNl
bGVjdGlvbkNyaXRlcmlhPiBkZWNvZGUoRGVjb2RlciYpOwpAQCAtMTA1LDE0ICsxMDgsMjcgQEAg
c3RkOjpvcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0
ZXJzPiBQdWJsaWNLZXlDcmVkZW50aWEKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25D
cml0ZXJpYTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8
PCBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAgICBlbmNvZGVyIDw8IGF1dGhlbnRpY2F0b3JB
dHRhY2htZW50IDw8IHJlcXVpcmVSZXNpZGVudEtleSA8PCB1c2VyVmVyaWZpY2F0aW9uOwogfQog
CiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE+IFB1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0
ZXJpYTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHJlc3VsdDsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuYXV0aGVudGljYXRvckF0dGFjaG1l
bnQpKQorCisgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPEF1dGhlbnRpY2F0b3JBdHRh
Y2htZW50Pj4gYXV0aGVudGljYXRvckF0dGFjaG1lbnQ7CisgICAgZGVjb2RlciA+PiBhdXRoZW50
aWNhdG9yQXR0YWNobWVudDsKKyAgICBpZiAoIWF1dGhlbnRpY2F0b3JBdHRhY2htZW50KQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJlc3VsdC5hdXRoZW50aWNhdG9yQXR0YWNo
bWVudCA9IFdURk1vdmUoKmF1dGhlbnRpY2F0b3JBdHRhY2htZW50KTsKKworICAgIHN0ZDo6b3B0
aW9uYWw8Ym9vbD4gcmVxdWlyZVJlc2lkZW50S2V5OworICAgIGRlY29kZXIgPj4gcmVxdWlyZVJl
c2lkZW50S2V5OworICAgIGlmICghcmVxdWlyZVJlc2lkZW50S2V5KQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIHJlc3VsdC5yZXF1aXJlUmVzaWRlbnRLZXkgPSAqcmVxdWlyZVJl
c2lkZW50S2V5OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LnVzZXJWZXJp
ZmljYXRpb24pKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIHJldHVybiByZXN1
bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbAppbmRleCBh
MzE1MjVmMzI1NDhkYjY1ODM5MzZlYmIwMzI3Yjk1NGExYzcxMDYxLi4zNmUxODBiZWRmYzgyMDFm
M2JjNGI1MzVjYWMwZjc0M2M4ZTdjNWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucy5pZGwKQEAgLTc0LDEwICs3NCw4IEBAIHR5cGVkZWYgbG9uZyBDT1NFQWxnb3Jp
dGhtSWRlbnRpZmllcjsKICAgICBDb25kaXRpb25hbD1XRUJfQVVUSE4sCiBdIGRpY3Rpb25hcnkg
QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHsKICAgICBBdXRoZW50aWNhdG9yQXR0YWNo
bWVudCAgICAgIGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OwotICAgIC8vIFdlIGRvbid0IGFsbG93
IFJQcyB0byBzZXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgYXQgdGhpcyBzdGFnZS4KLSAgICAvLyBI
ZW5jZSwgdGhvc2Ugb3B0aW9ucyBhcmUgYWx3YXlzIHsgdHJ1ZSwgInJlcXVpcmVkIiB9LgotICAg
IC8vIGJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZVJlc2lkZW50S2V5ID0gZmFs
c2U7Ci0gICAgLy8gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50ICB1c2VyVmVyaWZpY2F0aW9u
ID0gInByZWZlcnJlZCI7CisgICAgYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJl
UmVzaWRlbnRLZXkgPSBmYWxzZTsKKyAgICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgIHVz
ZXJWZXJpZmljYXRpb24gPSAicHJlZmVycmVkIjsKIH07CiAKIFsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucy5oCmluZGV4IDI3NDQ3NmVmNzI3Yjg1ZDc1ZGQxYTllMjBjNTg3YWQx
YjkyZjBmMDEuLmJiNGZmOTJjMmM1MWNiZDgyOTM1ZDA4ZmQwYTU2MTIyMjcxZWU4OGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9Q
dWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaApAQCAtMjksNiArMjksNyBAQAogCiAj
aW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbERl
c2NyaXB0b3IuaCIKKyNpbmNsdWRlICJVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCIKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCw2ICsz
OSw3IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgewogICAgIHN0
ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHRpbWVvdXQ7CiAgICAgbXV0YWJsZSBTdHJpbmcgcnBJZDsK
ICAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I+IGFsbG93Q3JlZGVudGlh
bHM7CisgICAgc3RkOjpvcHRpb25hbDxVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ+IHVzZXJW
ZXJpZmljYXRpb24geyBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZCB9Owog
CiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4gZGVjb2RlKERlY29kZXImKTsKQEAgLTQ3LDcg
KzQ5LDcgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyB7CiB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgdGlt
ZW91dCA8PCBycElkIDw8IGFsbG93Q3JlZGVudGlhbHM7CisgICAgZW5jb2RlciA8PCB0aW1lb3V0
IDw8IHJwSWQgPDwgYWxsb3dDcmVkZW50aWFscyA8PCB1c2VyVmVyaWZpY2F0aW9uOwogfQogCiB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtNjUsNiArNjcsMTMgQEAgc3RkOjpvcHRpb25hbDxQ
dWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1
ZXN0T3B0aW8KICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5hbGxvd0NyZWRlbnRpYWxzKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQ+PiB1c2VyVmVyaWZpY2F0aW9uOworICAgIGRlY29kZXIgPj4gdXNlclZlcmlm
aWNhdGlvbjsKKyAgICBpZiAoIXVzZXJWZXJpZmljYXRpb24pCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgcmVzdWx0LnVzZXJWZXJpZmljYXRpb24gPSBXVEZNb3ZlKCp1c2VyVmVy
aWZpY2F0aW9uKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zLmlkbAppbmRleCA4OWEyMDZkYzljOWZkMjE3OGI5MTYxNmVkMTE2
NWZiNDdlOGU0ZGUwLi5kNjUxZGIyOGFlNjZkMGZjNjk4MjEwZDY4NzE2ZDZlMTExNDBjODM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsCkBAIC0zMCw4ICszMCw3
IEBACiAgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0OwogICAgIFVTVlN0cmluZyBycElkOwogICAg
IHNlcXVlbmNlPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiBhbGxvd0NyZWRlbnRpYWxz
ID0gW107Ci0gICAgLy8gQWx3YXlzICJyZXF1aXJlZCIgYXQgdGhpcyBzdGFnZQotICAgIC8vIFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB1c2VyVmVyaWZpY2F0aW9uID0gInByZWZlcnJlZCI7
CisgICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IHVzZXJWZXJpZmljYXRpb24gPSAicHJl
ZmVycmVkIjsKICAgICAvLyBOb3Qgc3VwcG9ydCB5ZXQuCiAgICAgLy8gQXV0aGVudGljYXRpb25F
eHRlbnNpb25zIGV4dGVuc2lvbnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODMxNGQwMmM1MmQ5YWFjMjE1NzVmZWI2ZmVhOGY0MTQ4ZmM1NzQ5NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQgeworICAgIFJlcXVpcmVkLAorICAgIFByZWZlcnJlZCwKKyAgICBEaXNjb3VyYWdl
ZAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3Jl
OjpVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQsCisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQsCisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkLAorICAgICAgICBXZWJDb3JlOjpVc2VyVmVy
aWZpY2F0aW9uUmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkCisgICAgPjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmY0ZmI5NWVhMDAyZTViYTk2NWNkNTdiMTUyMWM1
ODBlNjQ5OWNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVVEhOLAorICAgIEltcGxlbWVudGVk
QXM9VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50CitdIGVudW0gVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50IHsKKyAgICAicmVxdWlyZWQiLAorICAgICJwcmVmZXJyZWQiLAorICAgICJkaXNj
b3VyYWdlZCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2Nib3IvQ0JPUlZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jv
ci9DQk9SVmFsdWUuY3BwCmluZGV4IDI1ZWQ5OGI5MWY4M2E0YjQ2ODMwZGY0OGZhMDViYTg2OGM4
MTIyYjMuLjRjOGZmYWQxYThjZjBmNTE0N2NjNzY3NDRiYmE4NmRlNTFjOWRjYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwCkBA
IC0xNTMsNiArMTUzLDEyIEBAIENCT1JWYWx1ZTo6Q0JPUlZhbHVlKFNpbXBsZVZhbHVlIGluU2lt
cGxlKQogICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KGluU2ltcGxlKSA+PSAyMCAmJiBzdGF0
aWNfY2FzdDxpbnQ+KGluU2ltcGxlKSA8PSAyMyk7CiB9CiAKK0NCT1JWYWx1ZTo6Q0JPUlZhbHVl
KGJvb2wgaW5Cb29sKQorICAgIDogbV90eXBlKFR5cGU6OlNpbXBsZVZhbHVlKQoreworICAgIG1f
c2ltcGxlVmFsdWUgPSBpbkJvb2wgPyBDQk9SVmFsdWU6OlNpbXBsZVZhbHVlOjpUcnVlVmFsdWUg
OiBDQk9SVmFsdWU6OlNpbXBsZVZhbHVlOjpGYWxzZVZhbHVlOworfQorCiBDQk9SVmFsdWUmIENC
T1JWYWx1ZTo6b3BlcmF0b3I9KENCT1JWYWx1ZSYmIHRoYXQpCiB7CiAgICAgaW50ZXJuYWxDbGVh
bnVwKCk7CkBAIC0yNDAsNiArMjQ2LDEyIEBAIENCT1JWYWx1ZTo6U2ltcGxlVmFsdWUgQ0JPUlZh
bHVlOjpnZXRTaW1wbGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2ltcGxlVmFsdWU7CiB9
CiAKK2Jvb2wgQ0JPUlZhbHVlOjpnZXRCb29sKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNCb29s
KCkpOworICAgIHJldHVybiBtX3NpbXBsZVZhbHVlID09IFNpbXBsZVZhbHVlOjpUcnVlVmFsdWU7
Cit9CisKIHZvaWQgQ0JPUlZhbHVlOjppbnRlcm5hbE1vdmVDb25zdHJ1Y3RGcm9tKENCT1JWYWx1
ZSYmIHRoYXQpCiB7CiAgICAgbV90eXBlID0gdGhhdC5tX3R5cGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmgKaW5kZXggZTJkYjBlMTI3Mzhh
OTlhNzQ3YzgyZjQwOTEzMDA0YzY2MGI3ZThkNC4uNmE0YzgzYWJhMDMxYzM4ZDM3OWU2NmJjOTNl
YzQ3ZTVmMTkzMTc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9jYm9yL0NCT1JWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Y2Jvci9DQk9SVmFsdWUuaApAQCAtMTM4LDYgKzEzOCw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBDQk9SVmFsdWUoTWFwVmFsdWUmJik7CiAKICAgICBleHBsaWNpdCBDQk9SVmFsdWUoU2ltcGxl
VmFsdWUpOworICAgIGV4cGxpY2l0IENCT1JWYWx1ZShib29sKTsKIAogICAgIENCT1JWYWx1ZSYg
b3BlcmF0b3I9KENCT1JWYWx1ZSYmKTsKIApAQCAtMTYxLDkgKzE2MiwxMSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0FycmF5KCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFR5cGU6OkFycmF5OyB9
CiAgICAgYm9vbCBpc01hcCgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBUeXBlOjpNYXA7IH0K
ICAgICBib29sIGlzU2ltcGxlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFR5cGU6OlNpbXBs
ZVZhbHVlOyB9CisgICAgYm9vbCBpc0Jvb2woKSBjb25zdCB7IHJldHVybiBpc1NpbXBsZSgpICYm
IChtX3NpbXBsZVZhbHVlID09IFNpbXBsZVZhbHVlOjpUcnVlVmFsdWUgfHwgbV9zaW1wbGVWYWx1
ZSA9PSBTaW1wbGVWYWx1ZTo6RmFsc2VWYWx1ZSk7IH0KIAogICAgIC8vIFRoZXNlIHdpbGwgYWxs
IGZhdGFsbHkgYXNzZXJ0IGlmIHRoZSB0eXBlIGRvZXNuJ3QgbWF0Y2guCiAgICAgU2ltcGxlVmFs
dWUgZ2V0U2ltcGxlVmFsdWUoKSBjb25zdDsKKyAgICBib29sIGdldEJvb2woKSBjb25zdDsKICAg
ICBjb25zdCBpbnQ2NF90JiBnZXRJbnRlZ2VyKCkgY29uc3Q7CiAgICAgY29uc3QgaW50NjRfdCYg
Z2V0VW5zaWduZWQoKSBjb25zdDsKICAgICBjb25zdCBpbnQ2NF90JiBnZXROZWdhdGl2ZSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjAzOTJhMmQ0YTdlZjk3YTkwNTE1OWE2ZjA0ZWQ1NzhlYTdiZGJlZmIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZS5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8vIENvcHlyaWdodCAyMDE4IFRo
ZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
Ky8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisv
LyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
Ly8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
Ly8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCIKKworI2lmIEVOQUJMRShXRUJfQVVUSE4p
CisKKyNpbmNsdWRlICJDQk9SVmFsdWUuaCIKKyNpbmNsdWRlICJDQk9SV3JpdGVyLmgiCisKK25h
bWVzcGFjZSBmaWRvIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIENvbnRhaW5lcj4KK2Nib3I6OkNC
T1JWYWx1ZTo6QXJyYXlWYWx1ZSB0b0FycmF5VmFsdWUoY29uc3QgQ29udGFpbmVyJiBjb250YWlu
ZXIpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpBcnJheVZhbHVlIHZhbHVlOworICAgIHZhbHVl
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY29udGFpbmVyLnNpemUoKSk7CisgICAgZm9yIChjb25z
dCBhdXRvJiBpdGVtIDogY29udGFpbmVyKQorICAgICAgICB2YWx1ZS5hcHBlbmQoY2Jvcjo6Q0JP
UlZhbHVlKGl0ZW0pKTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK0F1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2U6OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UoU3RkU2V0PFByb3RvY29s
VmVyc2lvbj4mJiB2ZXJzaW9ucywgVmVjdG9yPHVpbnQ4X3Q+JiYgYWFndWlkKQorICAgIDogbV92
ZXJzaW9ucyhXVEZNb3ZlKHZlcnNpb25zKSkKKyAgICAsIG1fYWFndWlkKFdURk1vdmUoYWFndWlk
KSkKK3sKK30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgQXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZTo6c2V0TWF4TXNnU2l6ZSh1aW50MzJfdCBtYXhNc2dTaXplKQoreworICAg
IG1fbWF4TXNnU2l6ZSA9IG1heE1zZ1NpemU7CisgICAgcmV0dXJuICp0aGlzOworfQorCitBdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlOjpz
ZXRQaW5Qcm90b2NvbHMoVmVjdG9yPHVpbnQ4X3Q+JiYgcGluUHJvdG9jb2xzKQoreworICAgIG1f
cGluUHJvdG9jb2xzID0gV1RGTW92ZShwaW5Qcm90b2NvbHMpOworICAgIHJldHVybiAqdGhpczsK
K30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgQXV0aGVudGljYXRvckdldEluZm9S
ZXNwb25zZTo6c2V0RXh0ZW5zaW9ucyhWZWN0b3I8U3RyaW5nPiYmIGV4dGVuc2lvbnMpCit7Cisg
ICAgbV9leHRlbnNpb25zID0gV1RGTW92ZShleHRlbnNpb25zKTsKKyAgICByZXR1cm4gKnRoaXM7
Cit9CisKK0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2U6OnNldE9wdGlvbnMoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmJiBvcHRp
b25zKQoreworICAgIG1fb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyk7CisgICAgcmV0dXJuICp0
aGlzOworfQorCitWZWN0b3I8dWludDhfdD4gZW5jb2RlQXNDQk9SKGNvbnN0IEF1dGhlbnRpY2F0
b3JHZXRJbmZvUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIGNib3I6OkNCT1JWYWx1ZTo6TWFw
VmFsdWUgZGV2aWNlSW5mb01hcDsKKworICAgIGNib3I6OkNCT1JWYWx1ZTo6QXJyYXlWYWx1ZSB2
ZXJzaW9uQXJyYXk7CisgICAgZm9yIChjb25zdCBhdXRvJiB2ZXJzaW9uIDogcmVzcG9uc2UudmVy
c2lvbnMoKSkKKyAgICAgICAgdmVyc2lvbkFycmF5LmFwcGVuZCh2ZXJzaW9uID09IFByb3RvY29s
VmVyc2lvbjo6a0N0YXAgPyBrQ3RhcDJWZXJzaW9uIDoga1UyZlZlcnNpb24pOworICAgIGRldmlj
ZUluZm9NYXAuZW1wbGFjZSgxLCBXVEZNb3ZlKHZlcnNpb25BcnJheSkpOworCisgICAgaWYgKHJl
c3BvbnNlLmV4dGVuc2lvbnMoKSkKKyAgICAgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKDIsIHRv
QXJyYXlWYWx1ZSgqcmVzcG9uc2UuZXh0ZW5zaW9ucygpKSk7CisKKyAgICBkZXZpY2VJbmZvTWFw
LmVtcGxhY2UoMywgcmVzcG9uc2UuYWFndWlkKCkpOworICAgIGRldmljZUluZm9NYXAuZW1wbGFj
ZSg0LCBjb252ZXJ0VG9DQk9SKHJlc3BvbnNlLm9wdGlvbnMoKSkpOworCisgICAgaWYgKHJlc3Bv
bnNlLm1heE1zZ1NpemUoKSkKKyAgICAgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKDUsIHN0YXRp
Y19jYXN0PGludDY0X3Q+KCpyZXNwb25zZS5tYXhNc2dTaXplKCkpKTsKKworICAgIGlmIChyZXNw
b25zZS5waW5Qcm90b2NvbCgpKQorICAgICAgICBkZXZpY2VJbmZvTWFwLmVtcGxhY2UoNiwgdG9B
cnJheVZhbHVlKCpyZXNwb25zZS5waW5Qcm90b2NvbCgpKSk7CisKKyAgICBhdXRvIGVuY29kZWRC
eXRlcyA9IGNib3I6OkNCT1JXcml0ZXI6OndyaXRlKGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGRl
dmljZUluZm9NYXApKSk7CisgICAgQVNTRVJUKGVuY29kZWRCeXRlcyk7CisgICAgcmV0dXJuICpl
bmNvZGVkQnl0ZXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMDYzYzRmNWM5MzVmOTczZGMxMTU0MDIwMzU5N2M1ODU2YzM0YWZlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0
b3JHZXRJbmZvUmVzcG9uc2UuaApAQCAtMCwwICsxLDc2IEBACisvLyBDb3B5cmlnaHQgMjAxOCBU
aGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
Ly8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
Ky8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
Ky8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdF
Ql9BVVRITikKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgiCisj
aW5jbHVkZSAiRmlkb0NvbnN0YW50cy5oIgorI2luY2x1ZGUgPHd0Zi9TdGRTZXQuaD4KKworbmFt
ZXNwYWNlIGZpZG8geworCisvLyBBdXRoZW50aWNhdG9yIHJlc3BvbnNlIGZvciBBdXRoZW50aWNh
dG9yR2V0SW5mbyByZXF1ZXN0IHRoYXQgZW5jYXBzdWxhdGVzCisvLyB2ZXJzaW9ucywgb3B0aW9u
cywgQUFHVUlEKEF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24gR1VJRCksIG90aGVyCisvLyBhdXRo
ZW50aWNhdG9yIGRldmljZSBpbmZvcm1hdGlvbi4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9y
Zy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRv
ci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjYXV0aGVudGljYXRvcmdldGluZm8tMHgw
NAorY2xhc3MgV0VCQ09SRV9FWFBPUlQgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSB7Cisg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSk7Citw
dWJsaWM6CisgICAgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZShTdGRTZXQ8UHJvdG9jb2xW
ZXJzaW9uPiYmIHZlcnNpb25zLCBWZWN0b3I8dWludDhfdD4mJiBhYWd1aWQpOworICAgIEF1dGhl
bnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UoQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYmIHRo
YXQpID0gZGVmYXVsdDsKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBvcGVyYXRv
cj0oQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYmIG90aGVyKSA9IGRlZmF1bHQ7CisKKyAg
ICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBzZXRNYXhNc2dTaXplKHVpbnQzMl90KTsK
KyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBzZXRQaW5Qcm90b2NvbHMoVmVjdG9y
PHVpbnQ4X3Q+JiYpOworICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIHNldEV4dGVu
c2lvbnMoVmVjdG9yPFN0cmluZz4mJik7CisgICAgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25z
ZSYgc2V0T3B0aW9ucyhBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYmKTsKKworICAgIGNv
bnN0IFN0ZFNldDxQcm90b2NvbFZlcnNpb24+JiB2ZXJzaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1f
dmVyc2lvbnM7IH0KKyAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGFhZ3VpZCgpIGNvbnN0IHsg
cmV0dXJuIG1fYWFndWlkOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4mIG1h
eE1zZ1NpemUoKSBjb25zdCB7IHJldHVybiBtX21heE1zZ1NpemU7IH0KKyAgICBjb25zdCBzdGQ6
Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4mIHBpblByb3RvY29sKCkgY29uc3QgeyByZXR1cm4g
bV9waW5Qcm90b2NvbHM7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+
PiYgZXh0ZW5zaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fZXh0ZW5zaW9uczsgfQorICAgIGNvbnN0
IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBvcHRpb25zKCkgY29uc3QgeyByZXR1cm4g
bV9vcHRpb25zOyB9CisKK3ByaXZhdGU6CisgICAgU3RkU2V0PFByb3RvY29sVmVyc2lvbj4gbV92
ZXJzaW9uczsKKyAgICBWZWN0b3I8dWludDhfdD4gbV9hYWd1aWQ7CisgICAgc3RkOjpvcHRpb25h
bDx1aW50MzJfdD4gbV9tYXhNc2dTaXplOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4
X3Q+PiBtX3BpblByb3RvY29sczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBt
X2V4dGVuc2lvbnM7CisgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMgbV9vcHRpb25z
OworfTsKKworV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUFzQ0JPUihjb25z
dCBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJik7CisKK30gLy8gbmFtZXNwYWNlIGZpZG8K
KworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MGUxYmE1MmZiYjQxN2M5NDE4OTVlYzY4MzQw
YzA2NzY4OGYwY2RjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcApAQCAtMCwwICsx
LDEwNyBAQAorLy8gQ29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0Ogor
Ly8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8g
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
Ly8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlv
bnMuaCIKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJGaWRvQ29uc3RhbnRz
LmgiCisKK25hbWVzcGFjZSBmaWRvIHsKKworQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMm
IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpzZXRTdXBwb3J0c1Jlc2lkZW50S2V5KGJv
b2wgc3VwcG9ydHNSZXNpZGVudEtleSkKK3sKKyAgICBtX3N1cHBvcnRzUmVzaWRlbnRLZXkgPSBz
dXBwb3J0c1Jlc2lkZW50S2V5OworICAgIHJldHVybiAqdGhpczsKK30KKworQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnMmIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpzZXRVc2Vy
VmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgdXNl
clZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSkKK3sKKyAgICBtX3VzZXJWZXJpZmljYXRpb25BdmFp
bGFiaWxpdHkgPSB1c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OworICAgIHJldHVybiAqdGhp
czsKK30KKworQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIEF1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zOjpzZXRVc2VyUHJlc2VuY2VSZXF1aXJlZChib29sIHVzZXJQcmVzZW5jZVJl
cXVpcmVkKQoreworICAgIG1fdXNlclByZXNlbmNlUmVxdWlyZWQgPSB1c2VyUHJlc2VuY2VSZXF1
aXJlZDsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zJiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0Q2xpZW50UGluQXZhaWxhYmls
aXR5KENsaWVudFBpbkF2YWlsYWJpbGl0eSBjbGllbnRQaW5BdmFpbGFiaWxpdHkpCit7CisgICAg
bV9jbGllbnRQaW5BdmFpbGFiaWxpdHkgPSBjbGllbnRQaW5BdmFpbGFiaWxpdHk7CisgICAgcmV0
dXJuICp0aGlzOworfQorCitBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldElzUGxhdGZvcm1EZXZpY2UoYm9vbCBpc1BsYXRmb3Jt
RGV2aWNlKQoreworICAgIG1faXNQbGF0Zm9ybURldmljZSA9IGlzUGxhdGZvcm1EZXZpY2U7Cisg
ICAgcmV0dXJuICp0aGlzOworfQorCitjYm9yOjpDQk9SVmFsdWUgY29udmVydFRvQ0JPUihjb25z
dCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBjYm9yOjpD
Qk9SVmFsdWU6Ok1hcFZhbHVlIG9wdGlvbk1hcDsKKyAgICBvcHRpb25NYXAuZW1wbGFjZShrUmVz
aWRlbnRLZXlNYXBLZXksIG9wdGlvbnMuc3VwcG9ydHNSZXNpZGVudEtleSgpKTsKKyAgICBvcHRp
b25NYXAuZW1wbGFjZShrVXNlclByZXNlbmNlTWFwS2V5LCBvcHRpb25zLnVzZXJQcmVzZW5jZVJl
cXVpcmVkKCkpOworICAgIG9wdGlvbk1hcC5lbXBsYWNlKGtQbGF0Zm9ybURldmljZU1hcEtleSwg
b3B0aW9ucy5pc1BsYXRmb3JtRGV2aWNlKCkpOworCisgICAgdXNpbmcgVXZBdmFpbGFiaWxpdHkg
PSBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJp
bGl0eTsKKworICAgIHN3aXRjaCAob3B0aW9ucy51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5
KCkpIHsKKyAgICBjYXNlIFV2QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZDoK
KyAgICAgICAgb3B0aW9uTWFwLmVtcGxhY2Uoa1VzZXJWZXJpZmljYXRpb25NYXBLZXksIHRydWUp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFV2QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0
Tm90Q29uZmlndXJlZDoKKyAgICAgICAgb3B0aW9uTWFwLmVtcGxhY2Uoa1VzZXJWZXJpZmljYXRp
b25NYXBLZXksIGZhbHNlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBVdkF2YWlsYWJpbGl0
eTo6a05vdFN1cHBvcnRlZDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgdXNpbmcgQ2xp
ZW50UGluQXZhaWxhYmlsaXR5ID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVu
dFBpbkF2YWlsYWJpbGl0eTsKKworICAgIHN3aXRjaCAob3B0aW9ucy5jbGllbnRQaW5BdmFpbGFi
aWxpdHkoKSkgeworICAgIGNhc2UgQ2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5k
UGluU2V0OgorICAgICAgICBvcHRpb25NYXAuZW1wbGFjZShrQ2xpZW50UGluTWFwS2V5LCB0cnVl
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBw
b3J0ZWRCdXRQaW5Ob3RTZXQ6CisgICAgICAgIG9wdGlvbk1hcC5lbXBsYWNlKGtDbGllbnRQaW5N
YXBLZXksIGZhbHNlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDbGllbnRQaW5BdmFpbGFi
aWxpdHk6OmtOb3RTdXBwb3J0ZWQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVy
biBjYm9yOjpDQk9SVmFsdWUoV1RGTW92ZShvcHRpb25NYXApKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0
b3JTdXBwb3J0ZWRPcHRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWM0MGFlNGJlNDI2MTRjNzE0ZTU3ZmFm
NmE0NDY1YzdmMmZmOTkxNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oCkBAIC0wLDAg
KzEsOTYgQEAKKy8vIENvcHlyaWdodCAyMDE4IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoK
Ky8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8v
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8g
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
Ky8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiQ0JPUlZh
bHVlLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIGZpZG8geworCisv
LyBSZXByZXNlbnRzIENUQVAgZGV2aWNlIHByb3BlcnRpZXMgYW5kIGNhcGFiaWxpdGllcyByZWNl
aXZlZCBhcyBhIHJlc3BvbnNlIHRvCisvLyBBdXRoZW50aWNhdG9yR2V0SW5mbyBjb21tYW5kLgor
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMgeworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zKTsKK3B1
YmxpYzoKKyAgICBlbnVtIGNsYXNzIFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgeworICAg
ICAgICAvLyBlLmcuIEF1dGhlbnRpY2F0b3Igd2l0aCBmaW5nZXIgcHJpbnQgc2Vuc29yIGFuZCB1
c2VyJ3MgZmluZ2VycHJpbnQgaXMKKyAgICAgICAgLy8gcmVnaXN0ZXJlZCB0byB0aGUgZGV2aWNl
LgorICAgICAgICBrU3VwcG9ydGVkQW5kQ29uZmlndXJlZCwKKyAgICAgICAgLy8gZS5nLiBBdXRo
ZW50aWNhdG9yIHdpdGggZmluZ2VycHJpbnQgc2Vuc29yIHdpdGhvdXQgdXNlcidzIGZpbmdlcnBy
aW50CisgICAgICAgIC8vIHJlZ2lzdGVyZWQuCisgICAgICAgIGtTdXBwb3J0ZWRCdXROb3RDb25m
aWd1cmVkLAorICAgICAgICBrTm90U3VwcG9ydGVkCisgICAgfTsKKworICAgIGVudW0gY2xhc3Mg
Q2xpZW50UGluQXZhaWxhYmlsaXR5IHsKKyAgICAgICAga1N1cHBvcnRlZEFuZFBpblNldCwKKyAg
ICAgICAga1N1cHBvcnRlZEJ1dFBpbk5vdFNldCwKKyAgICAgICAga05vdFN1cHBvcnRlZCwKKyAg
ICB9OworCisgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMoKSA9IGRlZmF1bHQ7Cisg
ICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMoQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnMmJikgPSBkZWZhdWx0OworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBv
cGVyYXRvcj0oQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmJikgPSBkZWZhdWx0OworCisg
ICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIHNldElzUGxhdGZvcm1EZXZpY2UoYm9v
bCk7CisgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIHNldFN1cHBvcnRzUmVzaWRl
bnRLZXkoYm9vbCk7CisgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIHNldFVzZXJW
ZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSk7Cisg
ICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIHNldFVzZXJQcmVzZW5jZVJlcXVpcmVk
KGJvb2wpOworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBzZXRDbGllbnRQaW5B
dmFpbGFiaWxpdHkoQ2xpZW50UGluQXZhaWxhYmlsaXR5KTsKKworICAgIGJvb2wgaXNQbGF0Zm9y
bURldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNQbGF0Zm9ybURldmljZTsgfQorICAgIGJvb2wg
c3VwcG9ydHNSZXNpZGVudEtleSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydHNSZXNpZGVudEtl
eTsgfQorICAgIFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgdXNlclZlcmlmaWNhdGlvbkF2
YWlsYWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0
eTsgfQorICAgIGJvb2wgdXNlclByZXNlbmNlUmVxdWlyZWQoKSBjb25zdCB7IHJldHVybiBtX3Vz
ZXJQcmVzZW5jZVJlcXVpcmVkOyB9CisgICAgQ2xpZW50UGluQXZhaWxhYmlsaXR5IGNsaWVudFBp
bkF2YWlsYWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50UGluQXZhaWxhYmlsaXR5OyB9
CisKK3ByaXZhdGU6CisgICAgLy8gSW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBpcyBhdHRhY2hl
ZCB0byB0aGUgY2xpZW50IGFuZCB0aGVyZWZvcmUgY2FuJ3QgYmUKKyAgICAvLyByZW1vdmVkIGFu
ZCB1c2VkIG9uIGFub3RoZXIgY2xpZW50LgorICAgIGJvb2wgbV9pc1BsYXRmb3JtRGV2aWNlIHsg
ZmFsc2UgfTsKKyAgICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgZGV2aWNlIGlzIGNhcGFibGUgb2Yg
c3RvcmluZyBrZXlzIG9uIHRoZSBkZXZpY2UgaXRzZWxmCisgICAgLy8gYW5kIHRoZXJlZm9yZSBj
YW4gc2F0aXNmeSB0aGUgYXV0aGVudGljYXRvckdldEFzc2VydGlvbiByZXF1ZXN0IHdpdGgKKyAg
ICAvLyBhbGxvd0xpc3QgcGFyYW1ldGVyIG5vdCBzcGVjaWZpZWQgb3IgZW1wdHkuCisgICAgYm9v
bCBtX3N1cHBvcnRzUmVzaWRlbnRLZXkgeyBmYWxzZSB9OworICAgIC8vIEluZGljYXRlcyB3aGV0
aGVyIHRoZSBkZXZpY2UgaXMgY2FwYWJsZSBvZiB2ZXJpZnlpbmcgdGhlIHVzZXIgb24gaXRzIG93
bi4KKyAgICBVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5IG1fdXNlclZlcmlmaWNhdGlvbkF2
YWlsYWJpbGl0eSB7IFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQg
fTsKKyAgICBib29sIG1fdXNlclByZXNlbmNlUmVxdWlyZWQgeyB0cnVlIH07CisgICAgLy8gUmVw
cmVzZW50cyB3aGV0aGVyIGNsaWVudCBwaW4gaW4gc2V0IGFuZCBzdG9yZWQgaW4gZGV2aWNlLiBT
ZXQgYXMgbnVsbAorICAgIC8vIG9wdGlvbmFsIGlmIGNsaWVudCBwaW4gY2FwYWJpbGl0eSBpcyBu
b3Qgc3VwcG9ydGVkIGJ5IHRoZSBhdXRoZW50aWNhdG9yLgorICAgIENsaWVudFBpbkF2YWlsYWJp
bGl0eSBtX2NsaWVudFBpbkF2YWlsYWJpbGl0eSB7IENsaWVudFBpbkF2YWlsYWJpbGl0eTo6a05v
dFN1cHBvcnRlZCB9OworfTsKKworV0VCQ09SRV9FWFBPUlQgY2Jvcjo6Q0JPUlZhbHVlIGNvbnZl
cnRUb0NCT1IoY29uc3QgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmKTsKKworfSAvLyBu
YW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVy
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1
ZXN0Q29udmVydGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDk2MThmYjA0MzM3NTQ4ZTk2NTdkMTdkNWU3
OWZhMmEyYzg1YTIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwCkBAIC0wLDAgKzEsMTgyIEBA
CisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8g
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisv
LyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisv
LyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmgiCisKKyNpZiBF
TkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiQ0JPUldyaXRlci5oIgorI2luY2x1ZGUgIlB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaCIKKyNpbmNsdWRlICJQdWJsaWNLZXlD
cmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25h
bWVzcGFjZSBmaWRvIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit1c2luZyBVVkF2YWls
YWJpbGl0eSA9IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9u
QXZhaWxhYmlsaXR5OworCitzdGF0aWMgY2Jvcjo6Q0JPUlZhbHVlIGNvbnZlcnRScEVudGl0eVRv
Q0JPUihjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpScEVudGl0eSYg
cnBFbnRpdHkpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpNYXBWYWx1ZSBycE1hcDsKKyAgICBy
cE1hcC5lbXBsYWNlKGtFbnRpdHlOYW1lTWFwS2V5LCBycEVudGl0eS5uYW1lKTsKKyAgICBpZiAo
IXJwRW50aXR5Lmljb24uaXNFbXB0eSgpKQorICAgICAgICBycE1hcC5lbXBsYWNlKGtJY29uVXJs
TWFwS2V5LCBycEVudGl0eS5pY29uKTsKKyAgICBpZiAoIXJwRW50aXR5LmlkLmlzRW1wdHkoKSkK
KyAgICAgICAgcnBNYXAuZW1wbGFjZShrRW50aXR5SWRNYXBLZXksIHJwRW50aXR5LmlkKTsKKwor
ICAgIHJldHVybiBjYm9yOjpDQk9SVmFsdWUoV1RGTW92ZShycE1hcCkpOworfQorCitzdGF0aWMg
Y2Jvcjo6Q0JPUlZhbHVlIGNvbnZlcnRVc2VyRW50aXR5VG9DQk9SKGNvbnN0IFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkmIHVzZXJFbnRpdHkpCit7CisgICAg
Y2Jvcjo6Q0JPUlZhbHVlOjpNYXBWYWx1ZSB1c2VyTWFwOworICAgIHVzZXJNYXAuZW1wbGFjZShr
RW50aXR5TmFtZU1hcEtleSwgdXNlckVudGl0eS5uYW1lKTsKKyAgICBpZiAoIXVzZXJFbnRpdHku
aWNvbi5pc0VtcHR5KCkpCisgICAgICAgIHVzZXJNYXAuZW1wbGFjZShrSWNvblVybE1hcEtleSwg
dXNlckVudGl0eS5pY29uKTsKKyAgICB1c2VyTWFwLmVtcGxhY2Uoa0VudGl0eUlkTWFwS2V5LCB1
c2VyRW50aXR5LmlkVmVjdG9yKTsKKyAgICB1c2VyTWFwLmVtcGxhY2Uoa0Rpc3BsYXlOYW1lTWFw
S2V5LCB1c2VyRW50aXR5LmRpc3BsYXlOYW1lKTsKKyAgICByZXR1cm4gY2Jvcjo6Q0JPUlZhbHVl
KFdURk1vdmUodXNlck1hcCkpOworfQorCitzdGF0aWMgY2Jvcjo6Q0JPUlZhbHVlIGNvbnZlcnRQ
YXJhbWV0ZXJzVG9DQk9SKGNvbnN0IFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zOjpQYXJhbWV0ZXJzPiYgcGFyYW1ldGVycykKK3sKKyAgICBjYm9yOjpDQk9SVmFsdWU6
OkFycmF5VmFsdWUgY3JlZGVudGlhbFBhcmFtQXJyYXk7CisgICAgY3JlZGVudGlhbFBhcmFtQXJy
YXkucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwYXJhbWV0ZXJzLnNpemUoKSk7CisgICAgZm9yIChj
b25zdCBhdXRvJiBjcmVkZW50aWFsIDogcGFyYW1ldGVycykgeworICAgICAgICBjYm9yOjpDQk9S
VmFsdWU6Ok1hcFZhbHVlIGNib3JDcmVkZW50aWFsTWFwOworICAgICAgICBjYm9yQ3JlZGVudGlh
bE1hcC5lbXBsYWNlKGtDcmVkZW50aWFsVHlwZU1hcEtleSwgcHVibGljS2V5Q3JlZGVudGlhbFR5
cGVUb1N0cmluZyhjcmVkZW50aWFsLnR5cGUpKTsKKyAgICAgICAgY2JvckNyZWRlbnRpYWxNYXAu
ZW1wbGFjZShrQ3JlZGVudGlhbEFsZ29yaXRobU1hcEtleSwgY3JlZGVudGlhbC5hbGcpOworICAg
ICAgICBjcmVkZW50aWFsUGFyYW1BcnJheS5hcHBlbmQoV1RGTW92ZShjYm9yQ3JlZGVudGlhbE1h
cCkpOworICAgIH0KKyAgICByZXR1cm4gY2Jvcjo6Q0JPUlZhbHVlKFdURk1vdmUoY3JlZGVudGlh
bFBhcmFtQXJyYXkpKTsKK30KKworc3RhdGljIGNib3I6OkNCT1JWYWx1ZSBjb252ZXJ0RGVzY3Jp
cHRvclRvQ0JPUihjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvciYgZGVzY3JpcHRv
cikKK3sKKyAgICBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGNib3JEZXNjcmlwdG9yTWFwOwor
ICAgIGNib3JEZXNjcmlwdG9yTWFwW2Nib3I6OkNCT1JWYWx1ZShrQ3JlZGVudGlhbFR5cGVLZXkp
XSA9IGNib3I6OkNCT1JWYWx1ZShwdWJsaWNLZXlDcmVkZW50aWFsVHlwZVRvU3RyaW5nKGRlc2Ny
aXB0b3IudHlwZSkpOworICAgIGNib3JEZXNjcmlwdG9yTWFwW2Nib3I6OkNCT1JWYWx1ZShrQ3Jl
ZGVudGlhbElkS2V5KV0gPSBjYm9yOjpDQk9SVmFsdWUoZGVzY3JpcHRvci5pZFZlY3Rvcik7Cisg
ICAgcmV0dXJuIGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGNib3JEZXNjcmlwdG9yTWFwKSk7Cit9
CisKK1ZlY3Rvcjx1aW50OF90PiBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zJiBvcHRpb25zLCBVVkF2YWlsYWJpbGl0eSB1dkNhcGFiaWxpdHkpCit7CisgICAg
Y2Jvcjo6Q0JPUlZhbHVlOjpNYXBWYWx1ZSBjYm9yTWFwOworICAgIGNib3JNYXBbY2Jvcjo6Q0JP
UlZhbHVlKDEpXSA9IGNib3I6OkNCT1JWYWx1ZShoYXNoKTsKKyAgICBjYm9yTWFwW2Nib3I6OkNC
T1JWYWx1ZSgyKV0gPSBjb252ZXJ0UnBFbnRpdHlUb0NCT1Iob3B0aW9ucy5ycCk7CisgICAgY2Jv
ck1hcFtjYm9yOjpDQk9SVmFsdWUoMyldID0gY29udmVydFVzZXJFbnRpdHlUb0NCT1Iob3B0aW9u
cy51c2VyKTsKKyAgICBjYm9yTWFwW2Nib3I6OkNCT1JWYWx1ZSg0KV0gPSBjb252ZXJ0UGFyYW1l
dGVyc1RvQ0JPUihvcHRpb25zLnB1YktleUNyZWRQYXJhbXMpOworICAgIGlmICghb3B0aW9ucy5l
eGNsdWRlQ3JlZGVudGlhbHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGNib3I6OkNCT1JWYWx1ZTo6
QXJyYXlWYWx1ZSBleGNsdWRlTGlzdEFycmF5OworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGRl
c2NyaXB0b3IgOiBvcHRpb25zLmV4Y2x1ZGVDcmVkZW50aWFscykKKyAgICAgICAgICAgIGV4Y2x1
ZGVMaXN0QXJyYXkuYXBwZW5kKGNvbnZlcnREZXNjcmlwdG9yVG9DQk9SKGRlc2NyaXB0b3IpKTsK
KyAgICAgICAgY2Jvck1hcFtjYm9yOjpDQk9SVmFsdWUoNSldID0gY2Jvcjo6Q0JPUlZhbHVlKFdU
Rk1vdmUoZXhjbHVkZUxpc3RBcnJheSkpOworICAgIH0KKworICAgIGNib3I6OkNCT1JWYWx1ZTo6
TWFwVmFsdWUgb3B0aW9uTWFwOworICAgIGlmIChvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rp
b24pIHsKKyAgICAgICAgLy8gUmVzaWRlbnQga2V5cyBhcmUgbm90IHN1cHBvcnRlZCBieSBkZWZh
dWx0LgorICAgICAgICBpZiAob3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT5yZXF1aXJl
UmVzaWRlbnRLZXkpCisgICAgICAgICAgICBvcHRpb25NYXBbY2Jvcjo6Q0JPUlZhbHVlKGtSZXNp
ZGVudEtleU1hcEtleSldID0gY2Jvcjo6Q0JPUlZhbHVlKHRydWUpOworCisgICAgICAgIC8vIFVz
ZXIgdmVyaWZpY2F0aW9uIGlzIG5vdCByZXF1aXJlZCBieSBkZWZhdWx0LgorICAgICAgICBib29s
IHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uID0gZmFsc2U7CisgICAgICAgIHN3aXRjaCAob3B0aW9u
cy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT51c2VyVmVyaWZpY2F0aW9uKSB7CisgICAgICAgIGNh
c2UgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZDoKKyAgICAgICAgICAgIHJl
cXVpcmVVc2VyVmVyaWZpY2F0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkOgorICAgICAgICAg
ICAgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSB1dkNhcGFiaWxpdHkgPT0gVVZBdmFpbGFiaWxp
dHk6OmtOb3RTdXBwb3J0ZWQgPyBmYWxzZSA6IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkOgorICAg
ICAgICAgICAgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSBmYWxzZTsKKyAgICAgICAgfQorICAg
ICAgICBvcHRpb25NYXBbY2Jvcjo6Q0JPUlZhbHVlKGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5KV0g
PSBjYm9yOjpDQk9SVmFsdWUocmVxdWlyZVVzZXJWZXJpZmljYXRpb24pOworICAgIH0KKyAgICBp
ZiAoIW9wdGlvbk1hcC5lbXB0eSgpKQorICAgICAgICBjYm9yTWFwW2Nib3I6OkNCT1JWYWx1ZSg3
KV0gPSBjYm9yOjpDQk9SVmFsdWUoV1RGTW92ZShvcHRpb25NYXApKTsKKworICAgIGF1dG8gc2Vy
aWFsaXplZFBhcmFtID0gY2Jvcjo6Q0JPUldyaXRlcjo6d3JpdGUoY2Jvcjo6Q0JPUlZhbHVlKFdU
Rk1vdmUoY2Jvck1hcCkpKTsKKyAgICBBU1NFUlQoc2VyaWFsaXplZFBhcmFtKTsKKworICAgIFZl
Y3Rvcjx1aW50OF90PiBjYm9yUmVxdWVzdCh7IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KEN0YXBSZXF1
ZXN0Q29tbWFuZDo6a0F1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbCkgfSk7CisgICAgY2JvclJl
cXVlc3QuYXBwZW5kVmVjdG9yKCpzZXJpYWxpemVkUGFyYW0pOworICAgIHJldHVybiBjYm9yUmVx
dWVzdDsKK30KKworVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NC
T1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFs
UmVxdWVzdE9wdGlvbnMmIG9wdGlvbnMsIFVWQXZhaWxhYmlsaXR5IHV2Q2FwYWJpbGl0eSkKK3sK
KyAgICBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGNib3JNYXA7CisgICAgY2Jvck1hcFtjYm9y
OjpDQk9SVmFsdWUoMSldID0gY2Jvcjo6Q0JPUlZhbHVlKG9wdGlvbnMucnBJZCk7CisgICAgY2Jv
ck1hcFtjYm9yOjpDQk9SVmFsdWUoMildID0gY2Jvcjo6Q0JPUlZhbHVlKGhhc2gpOworCisgICAg
aWYgKCFvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGNib3I6
OkNCT1JWYWx1ZTo6QXJyYXlWYWx1ZSBhbGxvd0xpc3RBcnJheTsKKyAgICAgICAgZm9yIChjb25z
dCBhdXRvJiBkZXNjcmlwdG9yIDogb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKQorICAgICAgICAg
ICAgYWxsb3dMaXN0QXJyYXkuYXBwZW5kKGNvbnZlcnREZXNjcmlwdG9yVG9DQk9SKGRlc2NyaXB0
b3IpKTsKKyAgICAgICAgY2Jvck1hcFtjYm9yOjpDQk9SVmFsdWUoMyldID0gY2Jvcjo6Q0JPUlZh
bHVlKFdURk1vdmUoYWxsb3dMaXN0QXJyYXkpKTsKKyAgICB9CisKKyAgICBjYm9yOjpDQk9SVmFs
dWU6Ok1hcFZhbHVlIG9wdGlvbk1hcDsKKyAgICBpZiAob3B0aW9ucy51c2VyVmVyaWZpY2F0aW9u
KSB7CisgICAgICAgIC8vIFVzZXIgdmVyaWZpY2F0aW9uIGlzIG5vdCByZXF1aXJlZCBieSBkZWZh
dWx0LgorICAgICAgICBib29sIHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uID0gZmFsc2U7CisgICAg
ICAgIHN3aXRjaCAoKm9wdGlvbnMudXNlclZlcmlmaWNhdGlvbikgeworICAgICAgICBjYXNlIFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQ6CisgICAgICAgICAgICByZXF1aXJl
VXNlclZlcmlmaWNhdGlvbiA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZDoKKyAgICAgICAgICAgIHJl
cXVpcmVVc2VyVmVyaWZpY2F0aW9uID0gdXZDYXBhYmlsaXR5ID09IFVWQXZhaWxhYmlsaXR5Ojpr
Tm90U3VwcG9ydGVkID8gZmFsc2UgOiB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZDoKKyAgICAgICAg
ICAgIHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAg
b3B0aW9uTWFwW2Nib3I6OkNCT1JWYWx1ZShrVXNlclZlcmlmaWNhdGlvbk1hcEtleSldID0gY2Jv
cjo6Q0JPUlZhbHVlKHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uKTsKKyAgICAgICAgb3B0aW9uTWFw
W2Nib3I6OkNCT1JWYWx1ZShrVXNlclByZXNlbmNlTWFwS2V5KV0gPSBjYm9yOjpDQk9SVmFsdWUo
IXJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uKTsKKyAgICB9CisgICAgaWYgKCFvcHRpb25NYXAuZW1w
dHkoKSkKKyAgICAgICAgY2Jvck1hcFtjYm9yOjpDQk9SVmFsdWUoNSldID0gY2Jvcjo6Q0JPUlZh
bHVlKFdURk1vdmUob3B0aW9uTWFwKSk7CisKKyAgICBhdXRvIHNlcmlhbGl6ZWRQYXJhbSA9IGNi
b3I6OkNCT1JXcml0ZXI6OndyaXRlKGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGNib3JNYXApKSk7
CisgICAgQVNTRVJUKHNlcmlhbGl6ZWRQYXJhbSk7CisKKyAgICBWZWN0b3I8dWludDhfdD4gY2Jv
clJlcXVlc3QoeyBzdGF0aWNfY2FzdDx1aW50OF90PihDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRo
ZW50aWNhdG9yR2V0QXNzZXJ0aW9uKSB9KTsKKyAgICBjYm9yUmVxdWVzdC5hcHBlbmRWZWN0b3Io
KnNlcmlhbGl6ZWRQYXJhbSk7CisgICAgcmV0dXJuIGNib3JSZXF1ZXN0OworfQorCitWZWN0b3I8
dWludDhfdD4gZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1h
bmQgY21kKQoreworICAgIHJldHVybiB7IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGNtZCkgfTsKK30K
KworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1
ZXN0Q29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2
aWNlUmVxdWVzdENvbnZlcnRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhY2MzZmY2MmI5NTI0OWY0ODdiMjJj
ZTg0YWM0MTc5ZjRjMzE4NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oCkBAIC0wLDAgKzEsNjIg
QEAKKy8vIENvcHlyaWdodCAyMDE3IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisv
LyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
Ky8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
Ky8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnMuaCIKKyNpbmNsdWRlICJGaWRvQ29uc3RhbnRzLmgiCisjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IFB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM7CitzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zOworfQorCituYW1lc3BhY2UgZmlkbyB7CisKKy8vIFNlcmlhbGl6ZXMgTWFr
ZUNyZWRlbnRpYWwgcmVxdWVzdCBwYXJhbWV0ZXIgaW50byBDQk9SIGVuY29kZWQgbWFwIHdpdGgK
Ky8vIGludGVnZXIga2V5cyBhbmQgQ0JPUiBlbmNvZGVkIHZhbHVlcyBhcyBkZWZpbmVkIGJ5IHRo
ZSBDVEFQIHNwZWMuCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4w
LXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1w
cy0yMDE3MDkyNy5odG1sI2F1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbAorV0VCQ09SRV9FWFBP
UlQgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihjb25z
dCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnMmLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZl
cmlmaWNhdGlvbkF2YWlsYWJpbGl0eSk7CisKKy8vIFNlcmlhbGl6ZXMgR2V0QXNzZXJ0aW9uIHJl
cXVlc3QgcGFyYW1ldGVyIGludG8gQ0JPUiBlbmNvZGVkIG1hcCB3aXRoCisvLyBpbnRlZ2VyIGtl
eXMgYW5kIENCT1IgZW5jb2RlZCB2YWx1ZXMgYXMgZGVmaW5lZCBieSB0aGUgQ1RBUCBzcGVjLgor
Ly8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9m
aWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRt
bCNhdXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9uCitXRUJDT1JFX0VYUE9SVCBWZWN0b3I8dWludDhf
dD4gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUihjb25zdCBWZWN0b3I8dWludDhfdD4m
IGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYs
IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmls
aXR5KTsKKworLy8gUmVwcmVzZW50cyBDVEFQIHJlcXVlc3RzIHdpdGggZW1wdHkgcGFyYW1ldGVy
cywgaW5jbHVkaW5nCisvLyBBdXRoZW50aWNhdG9yR2V0SW5mbywgQXV0aGVudGljYXRvckNhbmNl
bCwgQXV0aGVudGljYXRvclJlc2V0IGFuZAorLy8gQXV0aGVudGljYXRvckdldE5leHRBc3NlcnRp
b24gY29tbWFuZHMuCitXRUJDT1JFX0VYUE9SVCBWZWN0b3I8dWludDhfdD4gZW5jb2RlRW1wdHlB
dXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQpOworCit9IC8vIG5hbWVzcGFj
ZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNv
bnZlcnRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y2YTk1OWI4M2QzZTAwMWU5NDhlMjQwMTA4M2E1Mjcz
MTNlZjdkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKQEAgLTAsMCArMSwzMTIgQEAKKy8v
IENvcHlyaWdodCAyMDE4IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Ky8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRp
c3RyaWJ1dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
Ly8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkRldmljZVJlc3BvbnNlQ29udmVydGVyLmgiCisKKyNpZiBFTkFC
TEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMu
aCIKKyNpbmNsdWRlICJDQk9SUmVhZGVyLmgiCisjaW5jbHVkZSAiQ0JPUldyaXRlci5oIgorI2lu
Y2x1ZGUgPHd0Zi9TdGRTZXQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBmaWRvIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgQ0JPUiA9IGNib3I6OkNC
T1JWYWx1ZTsKKworY29uc3RleHByIHNpemVfdCBrUmVzcG9uc2VDb2RlTGVuZ3RoID0gMTsKKwor
c3RhdGljIFByb3RvY29sVmVyc2lvbiBjb252ZXJ0U3RyaW5nVG9Qcm90b2NvbFZlcnNpb24oY29u
c3QgU3RyaW5nJiB2ZXJzaW9uKQoreworICAgIGlmICh2ZXJzaW9uID09IGtDdGFwMlZlcnNpb24p
CisgICAgICAgIHJldHVybiBQcm90b2NvbFZlcnNpb246OmtDdGFwOworICAgIGlmICh2ZXJzaW9u
ID09IGtVMmZWZXJzaW9uKQorICAgICAgICByZXR1cm4gUHJvdG9jb2xWZXJzaW9uOjprVTJmOwor
CisgICAgcmV0dXJuIFByb3RvY29sVmVyc2lvbjo6a1Vua25vd247Cit9CisKK0N0YXBEZXZpY2VS
ZXNwb25zZUNvZGUgZ2V0UmVzcG9uc2VDb2RlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYnVmZmVy
KQoreworICAgIGlmIChidWZmZXIuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gQ3RhcERldmlj
ZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJySW52YWxpZENCT1I7CisKKyAgICBhdXRvIGNvZGUgPSBz
dGF0aWNfY2FzdDxDdGFwRGV2aWNlUmVzcG9uc2VDb2RlPihidWZmZXJbMF0pOworICAgIHJldHVy
biBpc0N0YXBEZXZpY2VSZXNwb25zZUNvZGUoY29kZSkgPyBjb2RlIDogQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a0N0YXAyRXJySW52YWxpZENCT1I7Cit9CisKK3N0YXRpYyBWZWN0b3I8dWludDhf
dD4gZ2V0Q3JlZGVudGlhbElkKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYXV0aGVudGljYXRvckRh
dGEpCit7CisgICAgY29uc3Qgc2l6ZV90IGNyZWRlbnRpYWxJZExlbmd0aE9mZnNldCA9IGtScElk
SGFzaExlbmd0aCArIGtGbGFnc0xlbmd0aCArIGtTaWduQ291bnRlckxlbmd0aCArIGtBYWd1aWRM
ZW5ndGg7CisKKyAgICBpZiAoYXV0aGVudGljYXRvckRhdGEuc2l6ZSgpIDwgY3JlZGVudGlhbElk
TGVuZ3RoT2Zmc2V0ICsga0NyZWRlbnRpYWxJZExlbmd0aExlbmd0aCkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICBzaXplX3QgY3JlZGVudGlhbElkTGVuZ3RoID0gKHN0YXRpY19jYXN0PHNpemVf
dD4oYXV0aGVudGljYXRvckRhdGFbY3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0XSkgPDwgOCkgfCBz
dGF0aWNfY2FzdDxzaXplX3Q+KGF1dGhlbnRpY2F0b3JEYXRhW2NyZWRlbnRpYWxJZExlbmd0aE9m
ZnNldCArIDFdKTsKKworICAgIGlmIChhdXRoZW50aWNhdG9yRGF0YS5zaXplKCkgPCBjcmVkZW50
aWFsSWRMZW5ndGhPZmZzZXQgKyBrQ3JlZGVudGlhbElkTGVuZ3RoTGVuZ3RoICsgY3JlZGVudGlh
bElkTGVuZ3RoKQorICAgICAgICByZXR1cm4geyB9OworICAgIFZlY3Rvcjx1aW50OF90PiBjcmVk
ZW50aWFsSWQ7CisgICAgY3JlZGVudGlhbElkLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY3JlZGVu
dGlhbElkTGVuZ3RoKTsKKyAgICBhdXRvIGJlZ2luSXQgPSBhdXRoZW50aWNhdG9yRGF0YS5iZWdp
bigpICsgY3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0ICsga0NyZWRlbnRpYWxJZExlbmd0aExlbmd0
aDsKKyAgICBjcmVkZW50aWFsSWQuYXBwZW5kUmFuZ2UoYmVnaW5JdCwgYmVnaW5JdCArIGNyZWRl
bnRpYWxJZExlbmd0aCk7CisgICAgcmV0dXJuIGNyZWRlbnRpYWxJZDsKK30KKworCisvLyBEZWNv
ZGVzIGJ5dGUgYXJyYXkgcmVzcG9uc2UgZnJvbSBhdXRoZW50aWNhdG9yIHRvIENCT1IgdmFsdWUg
b2JqZWN0IGFuZAorLy8gY2hlY2tzIGZvciBjb3JyZWN0IGVuY29kaW5nIGZvcm1hdC4KK3N0ZDo6
b3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlYWRDVEFQTWFrZUNyZWRlbnRpYWxS
ZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4mIGluQnVmZmVyKQoreworICAgIGlmIChpbkJ1
ZmZlci5zaXplKCkgPD0ga1Jlc3BvbnNlQ29kZUxlbmd0aCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7CisgICAgYnVmZmVyLmFwcGVu
ZChpbkJ1ZmZlci5kYXRhKCkgKyAxLCBpbkJ1ZmZlci5zaXplKCkgLSAxKTsKKyAgICBzdGQ6Om9w
dGlvbmFsPENCT1I+IGRlY29kZWRSZXNwb25zZSA9IGNib3I6OkNCT1JSZWFkZXI6OnJlYWQoYnVm
ZmVyKTsKKyAgICBpZiAoIWRlY29kZWRSZXNwb25zZSB8fCAhZGVjb2RlZFJlc3BvbnNlLT5pc01h
cCgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGNvbnN0IGF1dG8mIGRlY29k
ZWRNYXAgPSBkZWNvZGVkUmVzcG9uc2UtPmdldE1hcCgpOworCisgICAgYXV0byBpdCA9IGRlY29k
ZWRNYXAuZmluZChDQk9SKDEpKTsKKyAgICBpZiAoaXQgPT0gZGVjb2RlZE1hcC5lbmQoKSB8fCAh
aXQtPnNlY29uZC5pc1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
IGF1dG8gZm9ybWF0ID0gaXQtPnNlY29uZC5jbG9uZSgpOworCisgICAgaXQgPSBkZWNvZGVkTWFw
LmZpbmQoQ0JPUigyKSk7CisgICAgaWYgKGl0ID09IGRlY29kZWRNYXAuZW5kKCkgfHwgIWl0LT5z
ZWNvbmQuaXNCeXRlU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
YXV0byBhdXRoZW50aWNhdG9yRGF0YSA9IGl0LT5zZWNvbmQuY2xvbmUoKTsKKworICAgIGF1dG8g
Y3JlZGVudGlhbElkID0gZ2V0Q3JlZGVudGlhbElkKGF1dGhlbnRpY2F0b3JEYXRhLmdldEJ5dGVT
dHJpbmcoKSk7CisgICAgaWYgKGNyZWRlbnRpYWxJZC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisKKyAgICBpdCA9IGRlY29kZWRNYXAuZmluZChDQk9SKDMpKTsKKyAg
ICBpZiAoaXQgPT0gZGVjb2RlZE1hcC5lbmQoKSB8fCAhaXQtPnNlY29uZC5pc01hcCgpKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGF1dG8gYXR0U3RtdCA9IGl0LT5zZWNvbmQu
Y2xvbmUoKTsKKworICAgIENCT1I6Ok1hcFZhbHVlIGF0dGVzdGF0aW9uT2JqZWN0TWFwOworICAg
IGF0dGVzdGF0aW9uT2JqZWN0TWFwW0NCT1IoImF1dGhEYXRhIildID0gV1RGTW92ZShhdXRoZW50
aWNhdG9yRGF0YSk7CisgICAgYXR0ZXN0YXRpb25PYmplY3RNYXBbQ0JPUigiZm10IildID0gV1RG
TW92ZShmb3JtYXQpOworICAgIGF0dGVzdGF0aW9uT2JqZWN0TWFwW0NCT1IoImF0dFN0bXQiKV0g
PSBXVEZNb3ZlKGF0dFN0bXQpOworICAgIGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBjYm9yOjpD
Qk9SV3JpdGVyOjp3cml0ZShDQk9SKFdURk1vdmUoYXR0ZXN0YXRpb25PYmplY3RNYXApKSk7CisK
KyAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVudGlhbERhdGEgeyBBcnJheUJ1ZmZlcjo6Y3JlYXRl
KGNyZWRlbnRpYWxJZC5kYXRhKCksIGNyZWRlbnRpYWxJZC5zaXplKCkpLCB0cnVlLCBudWxscHRy
LCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGF0dGVzdGF0aW9uT2JqZWN0LnZhbHVlKCkuZGF0YSgpLCBh
dHRlc3RhdGlvbk9iamVjdC52YWx1ZSgpLnNpemUoKSksIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIgfTsKK30KKworc3RkOjpvcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZENU
QVBHZXRBc3NlcnRpb25SZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4mIGluQnVmZmVyKQor
eworICAgIGlmIChpbkJ1ZmZlci5zaXplKCkgPD0ga1Jlc3BvbnNlQ29kZUxlbmd0aCkKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7Cisg
ICAgYnVmZmVyLmFwcGVuZChpbkJ1ZmZlci5kYXRhKCkgKyAxLCBpbkJ1ZmZlci5zaXplKCkgLSAx
KTsKKyAgICBzdGQ6Om9wdGlvbmFsPENCT1I+IGRlY29kZWRSZXNwb25zZSA9IGNib3I6OkNCT1JS
ZWFkZXI6OnJlYWQoYnVmZmVyKTsKKworICAgIGlmICghZGVjb2RlZFJlc3BvbnNlIHx8ICFkZWNv
ZGVkUmVzcG9uc2UtPmlzTWFwKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICBhdXRvJiByZXNwb25zZU1hcCA9IGRlY29kZWRSZXNwb25zZS0+Z2V0TWFwKCk7CisKKyAgICBS
ZWZQdHI8QXJyYXlCdWZmZXI+IGNyZWRlbnRpYWxJZDsKKyAgICBhdXRvIGl0ID0gcmVzcG9uc2VN
YXAuZmluZChDQk9SKDEpKTsKKyAgICBpZiAoaXQgIT0gcmVzcG9uc2VNYXAuZW5kKCkgJiYgaXQt
PnNlY29uZC5pc01hcCgpKSB7CisgICAgICAgIGF1dG8mIGNyZWRlbnRpYWwgPSBpdC0+c2Vjb25k
LmdldE1hcCgpOworICAgICAgICBhdXRvIGl0ciA9IGNyZWRlbnRpYWwuZmluZChDQk9SKGtDcmVk
ZW50aWFsSWRLZXkpKTsKKyAgICAgICAgaWYgKGl0ciA9PSBjcmVkZW50aWFsLmVuZCgpIHx8ICFp
dHItPnNlY29uZC5pc0J5dGVTdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgICAgIGF1dG8mIGlkID0gaXRyLT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOworICAg
ICAgICBjcmVkZW50aWFsSWQgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGlkLmRhdGEoKSwgaWQuc2l6
ZSgpKTsKKyAgICB9CisKKyAgICBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUigyKSk7CisgICAg
aWYgKGl0ID09IHJlc3BvbnNlTWFwLmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzQnl0ZVN0cmluZygp
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGF1dG8mIGF1dGhEYXRhID0gaXQt
PnNlY29uZC5nZXRCeXRlU3RyaW5nKCk7CisKKyAgICBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JP
UigzKSk7CisgICAgaWYgKGl0ID09IHJlc3BvbnNlTWFwLmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlz
Qnl0ZVN0cmluZygpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGF1dG8mIHNp
Z25hdHVyZSA9IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOworCisgICAgUmVmUHRyPEFycmF5
QnVmZmVyPiB1c2VySGFuZGxlOworICAgIHsKKyAgICAgICAgaXQgPSByZXNwb25zZU1hcC5maW5k
KENCT1IoNCkpOworICAgICAgICBpZiAoaXQgPT0gcmVzcG9uc2VNYXAuZW5kKCkgfHwgIWl0LT5z
ZWNvbmQuaXNNYXAoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAg
IGF1dG8mIHVzZXIgPSBpdC0+c2Vjb25kLmdldE1hcCgpOworICAgICAgICBhdXRvIGl0ciA9IHVz
ZXIuZmluZChDQk9SKGtFbnRpdHlJZE1hcEtleSkpOworICAgICAgICBpZiAoaXRyID09IHVzZXIu
ZW5kKCkgfHwgIWl0ci0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgYXV0byYgaWQgPSBpdHItPnNlY29uZC5nZXRCeXRlU3Ry
aW5nKCk7CisgICAgICAgIHVzZXJIYW5kbGUgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGlkLmRhdGEo
KSwgaWQuc2l6ZSgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVudGlhbERh
dGEgeyBXVEZNb3ZlKGNyZWRlbnRpYWxJZCksIGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBBcnJh
eUJ1ZmZlcjo6Y3JlYXRlKGF1dGhEYXRhLmRhdGEoKSwgYXV0aERhdGEuc2l6ZSgpKSwgQXJyYXlC
dWZmZXI6OmNyZWF0ZShzaWduYXR1cmUuZGF0YSgpLCBzaWduYXR1cmUuc2l6ZSgpKSwgV1RGTW92
ZSh1c2VySGFuZGxlKSB9OworfQorCitzdGQ6Om9wdGlvbmFsPEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2U+IHJlYWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
aW5CdWZmZXIpCit7CisgICAgaWYgKGluQnVmZmVyLnNpemUoKSA8PSBrUmVzcG9uc2VDb2RlTGVu
Z3RoIHx8IGdldFJlc3BvbnNlQ29kZShpbkJ1ZmZlcikgIT0gQ3RhcERldmljZVJlc3BvbnNlQ29k
ZTo6a1N1Y2Nlc3MpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8
dWludDhfdD4gYnVmZmVyOworICAgIGJ1ZmZlci5hcHBlbmQoaW5CdWZmZXIuZGF0YSgpICsgMSwg
aW5CdWZmZXIuc2l6ZSgpIC0gMSk7CisgICAgc3RkOjpvcHRpb25hbDxDQk9SPiBkZWNvZGVkUmVz
cG9uc2UgPSBjYm9yOjpDQk9SUmVhZGVyOjpyZWFkKGJ1ZmZlcik7CisgICAgaWYgKCFkZWNvZGVk
UmVzcG9uc2UgfHwgIWRlY29kZWRSZXNwb25zZS0+aXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiByZXNwb25zZU1hcCA9IGRlY29kZWRSZXNwb25z
ZS0+Z2V0TWFwKCk7CisKKyAgICBhdXRvIGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDEpKTsK
KyAgICBpZiAoaXQgPT0gcmVzcG9uc2VNYXAuZW5kKCkgfHwgIWl0LT5zZWNvbmQuaXNBcnJheSgp
IHx8IGl0LT5zZWNvbmQuZ2V0QXJyYXkoKS5zaXplKCkgPiAyKQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgIFN0ZFNldDxQcm90b2NvbFZlcnNpb24+IHByb3RvY29sVmVyc2lvbnM7
CisgICAgZm9yIChjb25zdCBhdXRvJiB2ZXJzaW9uIDogaXQtPnNlY29uZC5nZXRBcnJheSgpKSB7
CisgICAgICAgIGlmICghdmVyc2lvbi5pc1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBhdXRvIHByb3RvY29sID0gY29udmVydFN0cmluZ1RvUHJv
dG9jb2xWZXJzaW9uKHZlcnNpb24uZ2V0U3RyaW5nKCkpOworICAgICAgICBpZiAocHJvdG9jb2wg
PT0gUHJvdG9jb2xWZXJzaW9uOjprVW5rbm93bikgeworICAgICAgICAgICAgTE9HX0VSUk9SKCJV
bmV4cGVjdGVkIHByb3RvY29sIHZlcnNpb24gcmVjZWl2ZWQuIik7CisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghcHJvdG9jb2xWZXJzaW9ucy5pbnNlcnQo
cHJvdG9jb2wpLnNlY29uZCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
fQorICAgIGlmIChwcm90b2NvbFZlcnNpb25zLmVtcHR5KCkpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUigzKSk7CisgICAgaWYg
KGl0ID09IHJlc3BvbnNlTWFwLmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzQnl0ZVN0cmluZygpIHx8
IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpLnNpemUoKSAhPSBrQWFndWlkTGVuZ3RoKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgQXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZSByZXNwb25zZShXVEZNb3ZlKHByb3RvY29sVmVyc2lvbnMpLCBWZWN0b3I8dWludDhfdD4o
aXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCkpKTsKKworICAgIGl0ID0gcmVzcG9uc2VNYXAuZmlu
ZChDQk9SKDIpKTsKKyAgICBpZiAoaXQgIT0gcmVzcG9uc2VNYXAuZW5kKCkpIHsKKyAgICAgICAg
aWYgKCFpdC0+c2Vjb25kLmlzQXJyYXkoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gZXh0ZW5zaW9uczsKKyAgICAgICAgZm9yIChj
b25zdCBhdXRvJiBleHRlbnNpb24gOiBpdC0+c2Vjb25kLmdldEFycmF5KCkpIHsKKyAgICAgICAg
ICAgIGlmICghZXh0ZW5zaW9uLmlzU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICAgICAgZXh0ZW5zaW9ucy5hcHBlbmQoZXh0ZW5zaW9uLmdl
dFN0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICByZXNwb25zZS5zZXRFeHRlbnNpb25zKFdU
Rk1vdmUoZXh0ZW5zaW9ucykpOworICAgIH0KKworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zIG9wdGlvbnM7CisgICAgaXQgPSByZXNwb25zZU1hcC5maW5kKENCT1IoNCkpOworICAg
IGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSkgeworICAgICAgICBpZiAoIWl0LT5zZWNvbmQu
aXNNYXAoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGNvbnN0
IGF1dG8mIG9wdGlvbk1hcCA9IGl0LT5zZWNvbmQuZ2V0TWFwKCk7CisgICAgICAgIGF1dG8gb3B0
aW9uTWFwSXQgPSBvcHRpb25NYXAuZmluZChDQk9SKGtQbGF0Zm9ybURldmljZU1hcEtleSkpOwor
ICAgICAgICBpZiAob3B0aW9uTWFwSXQgIT0gb3B0aW9uTWFwLmVuZCgpKSB7CisgICAgICAgICAg
ICBpZiAoIW9wdGlvbk1hcEl0LT5zZWNvbmQuaXNCb29sKCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICAgICAgb3B0aW9ucy5zZXRJc1BsYXRmb3JtRGV2
aWNlKG9wdGlvbk1hcEl0LT5zZWNvbmQuZ2V0Qm9vbCgpKTsKKyAgICAgICAgfQorCisgICAgICAg
IG9wdGlvbk1hcEl0ID0gb3B0aW9uTWFwLmZpbmQoQ0JPUihrUmVzaWRlbnRLZXlNYXBLZXkpKTsK
KyAgICAgICAgaWYgKG9wdGlvbk1hcEl0ICE9IG9wdGlvbk1hcC5lbmQoKSkgeworICAgICAgICAg
ICAgaWYgKCFvcHRpb25NYXBJdC0+c2Vjb25kLmlzQm9vbCgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIG9wdGlvbnMuc2V0U3VwcG9ydHNSZXNp
ZGVudEtleShvcHRpb25NYXBJdC0+c2Vjb25kLmdldEJvb2woKSk7CisgICAgICAgIH0KKworICAg
ICAgICBvcHRpb25NYXBJdCA9IG9wdGlvbk1hcC5maW5kKENCT1Ioa1VzZXJQcmVzZW5jZU1hcEtl
eSkpOworICAgICAgICBpZiAob3B0aW9uTWFwSXQgIT0gb3B0aW9uTWFwLmVuZCgpKSB7CisgICAg
ICAgICAgICBpZiAoIW9wdGlvbk1hcEl0LT5zZWNvbmQuaXNCb29sKCkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICAgICAgb3B0aW9ucy5zZXRVc2VyUHJl
c2VuY2VSZXF1aXJlZChvcHRpb25NYXBJdC0+c2Vjb25kLmdldEJvb2woKSk7CisgICAgICAgIH0K
KworICAgICAgICBvcHRpb25NYXBJdCA9IG9wdGlvbk1hcC5maW5kKENCT1Ioa1VzZXJWZXJpZmlj
YXRpb25NYXBLZXkpKTsKKyAgICAgICAgaWYgKG9wdGlvbk1hcEl0ICE9IG9wdGlvbk1hcC5lbmQo
KSkgeworICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJdC0+c2Vjb25kLmlzQm9vbCgpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIGlmIChvcHRp
b25NYXBJdC0+c2Vjb25kLmdldEJvb2woKSkKKyAgICAgICAgICAgICAgICBvcHRpb25zLnNldFVz
ZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6
OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBvcHRpb25zLnNldFVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJp
ZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkKTsKKyAgICAg
ICAgfQorCisgICAgICAgIG9wdGlvbk1hcEl0ID0gb3B0aW9uTWFwLmZpbmQoQ0JPUihrQ2xpZW50
UGluTWFwS2V5KSk7CisgICAgICAgIGlmIChvcHRpb25NYXBJdCAhPSBvcHRpb25NYXAuZW5kKCkp
IHsKKyAgICAgICAgICAgIGlmICghb3B0aW9uTWFwSXQtPnNlY29uZC5pc0Jvb2woKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgICAgICBpZiAob3B0aW9u
TWFwSXQtPnNlY29uZC5nZXRCb29sKCkpCisgICAgICAgICAgICAgICAgb3B0aW9ucy5zZXRDbGll
bnRQaW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBp
bkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNldCk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgb3B0aW9ucy5zZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkoQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1
dFBpbk5vdFNldCk7CisgICAgICAgIH0KKyAgICAgICAgcmVzcG9uc2Uuc2V0T3B0aW9ucyhXVEZN
b3ZlKG9wdGlvbnMpKTsKKyAgICB9CisKKyAgICBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUig1
KSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFwLmVuZCgpKSB7CisgICAgICAgIGlmICghaXQt
PnNlY29uZC5pc1Vuc2lnbmVkKCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgICAgIHJlc3BvbnNlLnNldE1heE1zZ1NpemUoaXQtPnNlY29uZC5nZXRVbnNpZ25lZCgp
KTsKKyAgICB9CisKKyAgICBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUig2KSk7CisgICAgaWYg
KGl0ICE9IHJlc3BvbnNlTWFwLmVuZCgpKSB7CisgICAgICAgIGlmICghaXQtPnNlY29uZC5pc0Fy
cmF5KCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIFZlY3Rv
cjx1aW50OF90PiBzdXBwb3J0ZWRQaW5Qcm90b2NvbHM7CisgICAgICAgIGZvciAoY29uc3QgYXV0
byYgcHJvdG9jb2wgOiBpdC0+c2Vjb25kLmdldEFycmF5KCkpIHsKKyAgICAgICAgICAgIGlmICgh
cHJvdG9jb2wuaXNVbnNpZ25lZCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgICAgIHN1cHBvcnRlZFBpblByb3RvY29scy5hcHBlbmQocHJvdG9jb2wu
Z2V0VW5zaWduZWQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmVzcG9uc2Uuc2V0UGluUHJvdG9j
b2xzKFdURk1vdmUoc3VwcG9ydGVkUGluUHJvdG9jb2xzKSk7CisgICAgfQorCisgICAgcmV0dXJu
IFdURk1vdmUocmVzcG9uc2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBmaWRvCisKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44MTk2MzM1NDVjZGUyNWMwZGJkYzRjNjNkYTVmMWIxNjZlMjM3NDkzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNl
Q29udmVydGVyLmgKQEAgLTAsMCArMSw2NiBAQAorLy8gQ29weXJpZ2h0IDIwMTggVGhlIENocm9t
aXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
Ly8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4p
CisKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmgiCisjaW5jbHVkZSAi
Rmlkb0NvbnN0YW50cy5oIgorI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxEYXRhLmgiCisK
Ky8vIENvbnZlcnRzIHJlc3BvbnNlIGZyb20gYXV0aGVudGljYXRvcnMgdG8gQ1RBUFJlc3BvbnNl
IG9iamVjdHMuIElmIHRoZQorLy8gcmVzcG9uc2Ugb2YgdGhlIGF1dGhlbnRpY2F0b3IgZG9lcyBu
b3QgY29uZm9ybSB0byBmb3JtYXQgc3BlY2lmaWVkIGJ5IHRoZQorLy8gQ1RBUCBwcm90b2NvbCwg
bnVsbCBvcHRpb25hbCBpcyByZXR1cm5lZC4KK25hbWVzcGFjZSBmaWRvIHsKKworLy8gUGFyc2Vz
IHJlc3BvbnNlIGNvZGUgZnJvbSByZXNwb25zZSByZWNlaXZlZCBmcm9tIHRoZSBhdXRoZW50aWNh
dG9yLiBJZgorLy8gdW5rbm93biByZXNwb25zZSBjb2RlIHZhbHVlIGlzIHJlY2VpdmVkLCB0aGVu
IENUQVAyX0VSUl9PVEhFUiBpcyByZXR1cm5lZC4KK1dFQkNPUkVfRVhQT1JUIEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGUgZ2V0UmVzcG9uc2VDb2RlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYpOworCisv
LyBEZS1zZXJpYWxpemVzIENCT1IgZW5jb2RlZCByZXNwb25zZSwgY2hlY2tzIGZvciB2YWxpZCBD
Qk9SIG1hcCBmb3JtYXR0aW5nLAorLy8gYW5kIGNvbnZlcnRzIHJlc3BvbnNlIHRvIEF1dGhlbnRp
Y2F0b3JNYWtlQ3JlZGVudGlhbFJlc3BvbnNlIG9iamVjdCB3aXRoCisvLyBDQk9SIG1hcCBrZXlz
IHRoYXQgY29uZm9ybSB0byBmb3JtYXQgb2YgYXR0ZXN0YXRpb24gb2JqZWN0IGRlZmluZWQgYnkg
dGhlCisvLyBXZWJBdXRoTiBzcGVjIDogaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmF1dGhuLyNm
aWctYXR0U3RydWN0cworV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYpOworCisvLyBEZS1zZXJpYWxpemVzIENCT1IgZW5jb2RlZCByZXNw
b25zZSB0byBBdXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9uIC8KKy8vIEF1dGhlbnRpY2F0b3JHZXRO
ZXh0QXNzZXJ0aW9uIHJlcXVlc3QgdG8gQXV0aGVudGljYXRvckdldEFzc2VydGlvblJlc3BvbnNl
CisvLyBvYmplY3QuCisvLyBGSVhNRSgxOTA3ODMpOiBQcm9iYWJseSBuZWVkIHRvIHJlbWFrZSBB
dXRoZW50aWNhdG9yUmVzcG9uc2UgdG8gaW5jbHVkZSBtb3JlIGZpZWxkcyBsaWtlIG51bWJlck9m
Q3JlZGVudGlhbHMsCisvLyBhbmQgdXNlIGl0IGhlcmUgaW5zdGVhZCBvZiBQdWJsaWNLZXlDcmVk
ZW50aWFsRGF0YS4KK1dFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVibGlj
S2V5Q3JlZGVudGlhbERhdGE+IHJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+Jik7CisKKy8vIERlLXNlcmlhbGl6ZXMgQ0JPUiBlbmNvZGVkIHJlc3BvbnNl
IHRvIEF1dGhlbnRpY2F0b3JHZXRJbmZvIHJlcXVlc3QgdG8KKy8vIEF1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2Ugb2JqZWN0LgorV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxBdXRoZW50
aWNhdG9yR2V0SW5mb1Jlc3BvbnNlPiByZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb25zdCBWZWN0
b3I8dWludDhfdD4mKTsKKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxF
KFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Zmlkby9GaWRvQ29uc3RhbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Zmlkby9GaWRvQ29uc3RhbnRzLmNwcAppbmRleCAzODgxZmQyZjI2NGU5ZjBlZTRkYTAzOTI0MmU1
YWQxMGQ3MDRhNGYzLi44MTcyNWNlYWYyY2VkMjkxOTY3ODQzYzk3OTE3OGFmNmVjNDRlNzMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0
YW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9D
b25zdGFudHMuY3BwCkBAIC0zMyw2ICszMyw2NiBAQAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAK
IG5hbWVzcGFjZSBmaWRvIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitib29sIGlzQ3Rh
cERldmljZVJlc3BvbnNlQ29kZShDdGFwRGV2aWNlUmVzcG9uc2VDb2RlIGNvZGUpCit7CisgICAg
c3dpdGNoIChjb2RlKSB7CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprU3VjY2Vz
czoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMUVyckludmFsaWRDb21t
YW5kOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAxRXJySW52YWxpZFBh
cmFtZXRlcjoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMUVyckludmFs
aWRMZW5ndGg6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDFFcnJJbnZh
bGlkU2VxOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAxRXJyVGltZW91
dDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMUVyckNoYW5uZWxCdXN5
OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAxRXJyTG9ja1JlcXVpcmVk
OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAxRXJySW52YWxpZENoYW5u
ZWw6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJDQk9SUGFyc2lu
ZzoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclVuZXhwZWN0ZWRU
eXBlOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJySW52YWxpZENC
T1I6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJJbnZhbGlkQ0JP
UlR5cGU6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJNaXNzaW5n
UGFyYW1ldGVyOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyTGlt
aXRFeGNlZWRlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclVu
c3VwcG9ydGVkRXh0ZW5zaW9uOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0
YXAyRXJyVG9vTWFueUVsZW1lbnRzOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6
a0N0YXAyRXJyRXh0ZW5zaW9uTm90U3VwcG9ydGVkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a0N0YXAyRXJyQ3JlZGVudGlhbEV4Y2x1ZGVkOgorICAgIGNhc2UgQ3RhcERldmlj
ZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUHJvY2Vzc3Npbmc6CisgICAgY2FzZSBDdGFwRGV2aWNl
UmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJJbnZhbGlkQ3JlZGVudGlhbDoKKyAgICBjYXNlIEN0YXBE
ZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclVzZXJBY3Rpb25QZW5kaW5nOgorICAgIGNhc2Ug
Q3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyT3BlcmF0aW9uUGVuZGluZzoKKyAgICBj
YXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyck5vT3BlcmF0aW9uczoKKyAgICBj
YXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclVuc3VwcG9ydGVkQWxnb3JpdGht
czoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyck9wZXJhdGlvbkRl
bmllZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVycktleVN0b3Jl
RnVsbDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyck5vdEJ1c3k6
CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJOb09wZXJhdGlvblBl
bmRpbmc6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJVbnN1cHBv
cnRlZE9wdGlvbjoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVycklu
dmFsaWRPcHRpb246CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJL
ZWVwQWxpdmVDYW5jZWw6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJF
cnJOb0NyZWRlbnRpYWxzOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAy
RXJyVXNlckFjdGlvblRpbWVvdXQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjpr
Q3RhcDJFcnJOb3RBbGxvd2VkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0
YXAyRXJyUGluSW52YWxpZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFw
MkVyclBpbkJsb2NrZWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJF
cnJQaW5BdXRoSW52YWxpZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFw
MkVyclBpbkF1dGhCbG9ja2VkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0
YXAyRXJyUGluTm90U2V0OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAy
RXJyUGluUmVxdWlyZWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJF
cnJQaW5Qb2xpY3lWaW9sYXRpb246CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjpr
Q3RhcDJFcnJQaW5Ub2tlbkV4cGlyZWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2Rl
OjprQ3RhcDJFcnJSZXF1ZXN0VG9vTGFyZ2U6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlOjprQ3RhcDJFcnJPdGhlcjoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtD
dGFwMkVyclNwZWNMYXN0OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAy
RXJyRXh0ZW5zaW9uRmlyc3Q6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3Rh
cDJFcnJFeHRlbnNpb25MYXN0OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0
YXAyRXJyVmVuZG9yRmlyc3Q6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3Rh
cDJFcnJWZW5kb3JMYXN0OgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQogCiBib29sIGlzRmlkb0hpZERldmljZUNvbW1h
bmQoRmlkb0hpZERldmljZUNvbW1hbmQgY21kKQogewpAQCAtNTIsNiArMTEyLDE2IEBAIGJvb2wg
aXNGaWRvSGlkRGV2aWNlQ29tbWFuZChGaWRvSGlkRGV2aWNlQ29tbWFuZCBjbWQpCiAgICAgfQog
fQogCitjb25zdCBjaGFyKiBwdWJsaWNLZXlDcmVkZW50aWFsVHlwZVRvU3RyaW5nKFB1YmxpY0tl
eUNyZWRlbnRpYWxUeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBQ
dWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5OgorICAgICAgICByZXR1cm4ga1B1Ymxp
Y0tleTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGtQdWJs
aWNLZXk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIGZpZG8KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
Rmlkb0NvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0Zp
ZG9Db25zdGFudHMuaAppbmRleCBiODY5MGYwM2RkNDg0ZGZkMzY3NTY3NTBlMDU2YTI3NWM2ZGQz
ZTU2Li41Y2Q3YWU4YjM5MTM1MTQwMTQ3ZmMwNjk3OTM2MzgwZjQ5MDBiYTdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmgK
QEAgLTMxLDggKzMxLDkzIEBACiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCisjaW5jbHVkZSAi
UHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCIKKwogbmFtZXNwYWNlIGZpZG8gewogCitlbnVtIGNs
YXNzIFByb3RvY29sVmVyc2lvbiB7CisgICAga0N0YXAsCisgICAga1UyZiwKKyAgICBrVW5rbm93
biwKK307CisKKy8vIExlbmd0aCBvZiB0aGUgU0hBLTI1NiBoYXNoIG9mIHRoZSBSUCBJRCBhc3Nz
b2NpYXRlZCB3aXRoIHRoZSBjcmVkZW50aWFsOgorLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dl
YmF1dGhuLyNzZWMtYXV0aGVudGljYXRvci1kYXRhCitjb25zdGV4cHIgc2l6ZV90IGtScElkSGFz
aExlbmd0aCA9IDMyOworCisvLyBMZW5ndGggb2YgdGhlIGZsYWdzOgorLy8gaHR0cHM6Ly93d3cu
dzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXV0aGVudGljYXRvci1kYXRhCitjb25zdGV4cHIgc2l6
ZV90IGtGbGFnc0xlbmd0aCA9IDE7CisKKy8vIExlbmd0aCBvZiB0aGUgc2lnbmF0dXJlIGNvdW50
ZXIsIDMyLWJpdCB1bnNpZ25lZCBiaWctZW5kaWFuIGludGVnZXI6CisvLyBodHRwczovL3d3dy53
My5vcmcvVFIvd2ViYXV0aG4vI3NlYy1hdXRoZW50aWNhdG9yLWRhdGEKK2NvbnN0ZXhwciBzaXpl
X3Qga1NpZ25Db3VudGVyTGVuZ3RoID0gNDsKKworLy8gTGVuZ3RoIG9mIHRoZSBBQUdVSUQgb2Yg
dGhlIGF1dGhlbnRpY2F0b3I6CisvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI3Nl
Yy1hdHRlc3RlZC1jcmVkZW50aWFsLWRhdGEKK2NvbnN0ZXhwciBzaXplX3Qga0FhZ3VpZExlbmd0
aCA9IDE2OworCisvLyBMZW5ndGggb2YgdGhlIGJ5dGUgbGVuZ3RoIEwgb2YgQ3JlZGVudGlhbCBJ
RCwgMTYtYml0IHVuc2lnbmVkIGJpZy1lbmRpYW4KKy8vIGludGVnZXI6IGh0dHBzOi8vd3d3Lncz
Lm9yZy9UUi93ZWJhdXRobi8jc2VjLWF0dGVzdGVkLWNyZWRlbnRpYWwtZGF0YQorY29uc3RleHBy
IHNpemVfdCBrQ3JlZGVudGlhbElkTGVuZ3RoTGVuZ3RoID0gMjsKKworLy8gQ1RBUCBwcm90b2Nv
bCBkZXZpY2UgcmVzcG9uc2UgY29kZSwgYXMgc3BlY2lmaWVkIGluCisvLyBodHRwczovL2ZpZG9h
bGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1
dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sI2Vycm9yLXJlc3BvbnNl
cworZW51bSBjbGFzcyBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlIDogdWludDhfdCB7CisgICAga1N1
Y2Nlc3MgPSAweDAwLAorICAgIGtDdGFwMUVyckludmFsaWRDb21tYW5kID0gMHgwMSwKKyAgICBr
Q3RhcDFFcnJJbnZhbGlkUGFyYW1ldGVyID0gMHgwMiwKKyAgICBrQ3RhcDFFcnJJbnZhbGlkTGVu
Z3RoID0gMHgwMywKKyAgICBrQ3RhcDFFcnJJbnZhbGlkU2VxID0gMHgwNCwKKyAgICBrQ3RhcDFF
cnJUaW1lb3V0ID0gMHgwNSwKKyAgICBrQ3RhcDFFcnJDaGFubmVsQnVzeSA9IDB4MDYsCisgICAg
a0N0YXAxRXJyTG9ja1JlcXVpcmVkID0gMHgwQSwKKyAgICBrQ3RhcDFFcnJJbnZhbGlkQ2hhbm5l
bCA9IDB4MEIsCisgICAga0N0YXAyRXJyQ0JPUlBhcnNpbmcgPSAweDEwLAorICAgIGtDdGFwMkVy
clVuZXhwZWN0ZWRUeXBlID0gMHgxMSwKKyAgICBrQ3RhcDJFcnJJbnZhbGlkQ0JPUiA9IDB4MTIs
CisgICAga0N0YXAyRXJySW52YWxpZENCT1JUeXBlID0gMHgxMywKKyAgICBrQ3RhcDJFcnJNaXNz
aW5nUGFyYW1ldGVyID0gMHgxNCwKKyAgICBrQ3RhcDJFcnJMaW1pdEV4Y2VlZGVkID0gMHgxNSwK
KyAgICBrQ3RhcDJFcnJVbnN1cHBvcnRlZEV4dGVuc2lvbiA9IDB4MTYsCisgICAga0N0YXAyRXJy
VG9vTWFueUVsZW1lbnRzID0gMHgxNywKKyAgICBrQ3RhcDJFcnJFeHRlbnNpb25Ob3RTdXBwb3J0
ZWQgPSAweDE4LAorICAgIGtDdGFwMkVyckNyZWRlbnRpYWxFeGNsdWRlZCA9IDB4MTksCisgICAg
a0N0YXAyRXJyUHJvY2Vzc3NpbmcgPSAweDIxLAorICAgIGtDdGFwMkVyckludmFsaWRDcmVkZW50
aWFsID0gMHgyMiwKKyAgICBrQ3RhcDJFcnJVc2VyQWN0aW9uUGVuZGluZyA9IDB4MjMsCisgICAg
a0N0YXAyRXJyT3BlcmF0aW9uUGVuZGluZyA9IDB4MjQsCisgICAga0N0YXAyRXJyTm9PcGVyYXRp
b25zID0gMHgyNSwKKyAgICBrQ3RhcDJFcnJVbnN1cHBvcnRlZEFsZ29yaXRobXMgPSAweDI2LAor
ICAgIGtDdGFwMkVyck9wZXJhdGlvbkRlbmllZCA9IDB4MjcsCisgICAga0N0YXAyRXJyS2V5U3Rv
cmVGdWxsID0gMHgyOCwKKyAgICBrQ3RhcDJFcnJOb3RCdXN5ID0gMHgyOSwKKyAgICBrQ3RhcDJF
cnJOb09wZXJhdGlvblBlbmRpbmcgPSAweDJBLAorICAgIGtDdGFwMkVyclVuc3VwcG9ydGVkT3B0
aW9uID0gMHgyQiwKKyAgICBrQ3RhcDJFcnJJbnZhbGlkT3B0aW9uID0gMHgyQywKKyAgICBrQ3Rh
cDJFcnJLZWVwQWxpdmVDYW5jZWwgPSAweDJELAorICAgIGtDdGFwMkVyck5vQ3JlZGVudGlhbHMg
PSAweDJFLAorICAgIGtDdGFwMkVyclVzZXJBY3Rpb25UaW1lb3V0ID0gMHgyRiwKKyAgICBrQ3Rh
cDJFcnJOb3RBbGxvd2VkID0gMHgzMCwKKyAgICBrQ3RhcDJFcnJQaW5JbnZhbGlkID0gMHgzMSwK
KyAgICBrQ3RhcDJFcnJQaW5CbG9ja2VkID0gMHgzMiwKKyAgICBrQ3RhcDJFcnJQaW5BdXRoSW52
YWxpZCA9IDB4MzMsCisgICAga0N0YXAyRXJyUGluQXV0aEJsb2NrZWQgPSAweDM0LAorICAgIGtD
dGFwMkVyclBpbk5vdFNldCA9IDB4MzUsCisgICAga0N0YXAyRXJyUGluUmVxdWlyZWQgPSAweDM2
LAorICAgIGtDdGFwMkVyclBpblBvbGljeVZpb2xhdGlvbiA9IDB4MzcsCisgICAga0N0YXAyRXJy
UGluVG9rZW5FeHBpcmVkID0gMHgzOCwKKyAgICBrQ3RhcDJFcnJSZXF1ZXN0VG9vTGFyZ2UgPSAw
eDM5LAorICAgIGtDdGFwMkVyck90aGVyID0gMHg3RiwKKyAgICBrQ3RhcDJFcnJTcGVjTGFzdCA9
IDB4REYsCisgICAga0N0YXAyRXJyRXh0ZW5zaW9uRmlyc3QgPSAweEUwLAorICAgIGtDdGFwMkVy
ckV4dGVuc2lvbkxhc3QgPSAweEVGLAorICAgIGtDdGFwMkVyclZlbmRvckZpcnN0ID0gMHhGMCwK
KyAgICBrQ3RhcDJFcnJWZW5kb3JMYXN0ID0gMHhGRgorfTsKKworYm9vbCBpc0N0YXBEZXZpY2VS
ZXNwb25zZUNvZGUoQ3RhcERldmljZVJlc3BvbnNlQ29kZSk7CisKIC8vIENvbW1hbmRzIHN1cHBv
cnRlZCBieSBDVEFQSElEIGRldmljZSBhcyBzcGVjaWZpZWQgaW4KIC8vIGh0dHBzOi8vZmlkb2Fs
bGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0
aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjY3RhcGhpZC1jb21tYW5k
cwogZW51bSBjbGFzcyBGaWRvSGlkRGV2aWNlQ29tbWFuZCA6IHVpbnQ4X3QgewpAQCAtNDcsNyAr
MTMyLDI0IEBAIGVudW0gY2xhc3MgRmlkb0hpZERldmljZUNvbW1hbmQgOiB1aW50OF90IHsKICAg
ICBrTG9jayA9IDB4MDQsCiB9OwogCi1ib29sIGlzRmlkb0hpZERldmljZUNvbW1hbmQoRmlkb0hp
ZERldmljZUNvbW1hbmQgY21kKTsKK2Jvb2wgaXNGaWRvSGlkRGV2aWNlQ29tbWFuZChGaWRvSGlk
RGV2aWNlQ29tbWFuZCk7CisKKy8vIFN0cmluZyBrZXkgdmFsdWVzIGZvciBDVEFQIHJlcXVlc3Qg
b3B0aW9uYWwgcGFyYW1ldGVycyBhbmQKKy8vIEF1dGhlbnRpY2F0b3JHZXRJbmZvIHJlc3BvbnNl
LgorY29uc3QgY2hhciBrUmVzaWRlbnRLZXlNYXBLZXlbXSA9ICJyayI7Citjb25zdCBjaGFyIGtV
c2VyVmVyaWZpY2F0aW9uTWFwS2V5W10gPSAidXYiOworY29uc3QgY2hhciBrVXNlclByZXNlbmNl
TWFwS2V5W10gPSAidXAiOworY29uc3QgY2hhciBrQ2xpZW50UGluTWFwS2V5W10gPSAiY2xpZW50
UGluIjsKK2NvbnN0IGNoYXIga1BsYXRmb3JtRGV2aWNlTWFwS2V5W10gPSAicGxhdCI7Citjb25z
dCBjaGFyIGtFbnRpdHlJZE1hcEtleVtdID0gImlkIjsKK2NvbnN0IGNoYXIga0VudGl0eU5hbWVN
YXBLZXlbXSA9ICJuYW1lIjsKK2NvbnN0IGNoYXIga0Rpc3BsYXlOYW1lTWFwS2V5W10gPSAiZGlz
cGxheU5hbWUiOworY29uc3QgY2hhciBrSWNvblVybE1hcEtleVtdID0gImljb24iOworY29uc3Qg
Y2hhciBrQ3JlZGVudGlhbFR5cGVNYXBLZXlbXSA9ICJ0eXBlIjsKK2NvbnN0IGNoYXIga0NyZWRl
bnRpYWxBbGdvcml0aG1NYXBLZXlbXSA9ICJhbGciOworLy8gS2V5cyBmb3Igc3RvcmluZyBjcmVk
ZW50aWFsIGRlc2NyaXB0b3IgaW5mb3JtYXRpb24gaW4gQ0JPUiBtYXAuCitjb25zdCBjaGFyIGtD
cmVkZW50aWFsSWRLZXlbXSA9ICJpZCI7Citjb25zdCBjaGFyIGtDcmVkZW50aWFsVHlwZUtleVtd
ID0gInR5cGUiOwogCiAvLyBISUQgdHJhbnNwb3J0IHNwZWNpZmljIGNvbnN0YW50cy4KIGNvbnN0
IHNpemVfdCBrSGlkUGFja2V0U2l6ZSA9IDY0OwpAQCAtNjMsNiArMTY1LDM0IEBAIGNvbnN0IHVp
bnQ4X3Qga0hpZE1heExvY2tTZWNvbmRzID0gMTA7CiAvLyBNZXNzYWdlcyBhcmUgbGltaXRlZCB0
byBhbiBpbml0aWF0aW9uIHBhY2tldCBhbmQgMTI4IGNvbnRpbnVhdGlvbiBwYWNrZXRzLgogY29u
c3Qgc2l6ZV90IGtIaWRNYXhNZXNzYWdlU2l6ZSA9IDc2MDk7CiAKKy8vIEF1dGhlbnRpY2F0b3Ig
QVBJIGNvbW1hbmRzIHN1cHBvcnRlZCBieSBDVEFQIGRldmljZXMsIGFzIHNwZWNpZmllZCBpbgor
Ly8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1yZC0yMDE3MDkyNy9m
aWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcmQtMjAxNzA5MjcuaHRt
bCNhdXRoZW50aWNhdG9yLWFwaQorZW51bSBjbGFzcyBDdGFwUmVxdWVzdENvbW1hbmQgOiB1aW50
OF90IHsKKyAgICBrQXV0aGVudGljYXRvck1ha2VDcmVkZW50aWFsID0gMHgwMSwKKyAgICBrQXV0
aGVudGljYXRvckdldEFzc2VydGlvbiA9IDB4MDIsCisgICAga0F1dGhlbnRpY2F0b3JHZXROZXh0
QXNzZXJ0aW9uID0gMHgwOCwKKyAgICBrQXV0aGVudGljYXRvckdldEluZm8gPSAweDA0LAorICAg
IGtBdXRoZW50aWNhdG9yQ2xpZW50UGluID0gMHgwNiwKKyAgICBrQXV0aGVudGljYXRvclJlc2V0
ID0gMHgwNywKK307CisKKy8vIFN0cmluZyBrZXkgdmFsdWVzIGZvciBhdHRlc3RhdGlvbiBvYmpl
Y3QgYXMgYSByZXNwb25zZSB0byBNYWtlQ3JlZGVudGlhbAorLy8gcmVxdWVzdC4KK2NvbnN0IGNo
YXIga0Zvcm1hdEtleVtdID0gImZtdCI7Citjb25zdCBjaGFyIGtBdHRlc3RhdGlvblN0YXRlbWVu
dEtleVtdID0gImF0dFN0bXQiOworY29uc3QgY2hhciBrQXV0aERhdGFLZXlbXSA9ICJhdXRoRGF0
YSI7Citjb25zdCBjaGFyIGtOb25lQXR0ZXN0YXRpb25WYWx1ZVtdID0gIm5vbmUiOworCisvLyBT
dHJpbmcgcmVwcmVzZW50YXRpb24gb2YgcHVibGljIGtleSBjcmVkZW50aWFsIGVudW0uCisvLyBo
dHRwczovL3czYy5naXRodWIuaW8vd2ViYXV0aG4vI2NyZWRlbnRpYWxUeXBlCitjb25zdCBjaGFy
IGtQdWJsaWNLZXlbXSA9ICJwdWJsaWMta2V5IjsKKworY29uc3QgY2hhciogcHVibGljS2V5Q3Jl
ZGVudGlhbFR5cGVUb1N0cmluZyhXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsVHlwZSk7CisK
Ky8vIEZJWE1FOiBBZGQgdXJsIHRvIHRoZSBvZmZpY2lhbCBzcGVjIG9uY2UgaXQncyBzdGFuZGFy
ZGl6ZWQuCitjb25zdCBjaGFyIGtDdGFwMlZlcnNpb25bXSA9ICJGSURPXzJfMCI7Citjb25zdCBj
aGFyIGtVMmZWZXJzaW9uW10gPSAiVTJGX1YyIjsKKwogfSAvLyBuYW1lc3BhY2UgZmlkbwogCiAj
ZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAKaW5kZXggNmRmNDVlMWJlZDYyNGNiNTk4YjI5OGFkYTky
NjUyMjA1MmIxZmZmNy4uYTBiMjE0OWMzNzIxZGRiMmE4Zjc5ZGU3OTU3MTMwNmVlZWQzZDE5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAj
aW5jbHVkZSAiV2ViR1BVQWRhcHRlckRlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJXZWJHUFVEZXZp
Y2UuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAppbmRleCAxNGI0YjlmMjhhMGIzMDg3ZjgxMjkxYmY3MGNhYWQ2MWYwMjQyNmEyLi45
YjdkYzM5YWQwNjQ5ZmY4NTU4ZjY4OWJlNjMyMmUwN2FjNDFkYjljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApA
QCAtMjU4LDYgKzI1OCwxMCBAQCBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwu
Y3BwCiBNb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlJlYWRlci5jcHAKIE1vZHVsZXMvd2ViYXV0
aG4vY2Jvci9DQk9SVmFsdWUuY3BwCiBNb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUldyaXRlci5j
cHAKK01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmNw
cAorTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNw
cAorTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwCitNb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCiBNb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRv
SGlkTWVzc2FnZS5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvSGlkUGFja2V0LmNwcApA
QCAtMzE1OSw2ICszMTYzLDcgQEAgSlNUcmVlV2Fsa2VyLmNwcAogSlNVSUV2ZW50LmNwcAogSlNV
SUV2ZW50SW5pdC5jcHAKIEpTVVJMU2VhcmNoUGFyYW1zLmNwcAorSlNVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQuY3BwCiBKU1ZSRGlzcGxheS5jcHAKIEpTVlJEaXNwbGF5Q2FwYWJpbGl0aWVz
LmNwcAogSlNWUkRpc3BsYXlFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMWQyNWZkODUxYTZlMjFhODFjZWUzZmY3
ZjZjNjMzZWFjNmQyNTE2Li5mYzNhMjAyNGE4NDRhNTBlOTNlMWU0MTRkODdjNDkzZTNmZjMxNDdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xNzU0LDYgKzE3NTQsMTIgQEAKIAkJNTcyMUE5ODcxRUNFNTNCMTAwODEyOTVBIC8q
IENyeXB0b0RpZ2VzdEFsZ29yaXRobS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTcyMUE5ODYxRUNFNTNCMTAwODEyOTVBIC8qIENyeXB0b0RpZ2VzdEFs
Z29yaXRobS5oICovOyB9OwogCQk1NzIxQTk4QjFFQ0U1NzA0MDA4MTI5NUEgLyogQ3J5cHRvQWxn
b3JpdGhtUnNhUHNzUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzIxQTk4ODFFQ0U1NzA0MDA4MTI5NUEgLyogQ3J5cHRvQWxnb3JpdGhtUnNh
UHNzUGFyYW1zLmggKi87IH07CiAJCTU3MkE3RjIxMUM2RTU3MTkwMDlDNjE0OSAvKiBTaW11bGF0
ZWRDbGljay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTcyQTdGMjAxQzZFNTcxOTAwOUM2MTQ5IC8qIFNpbXVsYXRlZENsaWNrLmggKi87IH07CisJCTU3
MkI0MDFGMjE3NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJCNDAxRDIxNzU3QTY0
MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU3MkI0MDJDMjE3NjkwMjAwMDBBRDQzRSAv
KiBKU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwMkEyMTc2OTAxRjAwMEFENDNFIC8qIEpTVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggKi87IH07CisJCTU3MkI0MDM2MjE3NkE5MjIwMDBB
RDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDIzMjE3NjhEODUwMDBBRDQzRSAvKiBV
c2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk1NzJCNDAzQTIxNzcyNTgxMDAwQUQ0M0UgLyogRGV2aWNl
UmVzcG9uc2VDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3MkI0MDM3MjE3NzI1NkMwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZl
cnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTU3MkI0MDQwMjE3ODAxNzEwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQw
M0UyMTc4MDE3MDAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTcyQjQwNDIy
MTc4MTE0QTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDNDMjE3N0ZCNjEw
MDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTczMDNCQjkyMDA2QzZFRTAwMzU1
OTY1IC8qIENCT1JWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTczMDNCQjQyMDA2QzZFRDAwMzU1OTY1IC8qIENCT1JWYWx1ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU3MzAzQkJBMjAwNkM2
RUUwMDM1NTk2NSAvKiBDQk9SV3JpdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzMwM0JCNTIwMDZDNkVEMDAzNTU5NjUgLyogQ0JPUldyaXRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU3MzAz
QkJCMjAwNkM2RUUwMDM1NTk2NSAvKiBDQk9SQmluYXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzMwM0JCNjIwMDZDNkVEMDAzNTU5NjUgLyogQ0JP
UkJpbmFyeS5oICovOyB9OwpAQCAtODU3Miw2ICs4NTc4LDE4IEBACiAJCTU3MjFBOThBMUVDRTU3
MDQwMDgxMjk1QSAvKiBSc2FQc3NQYXJhbXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJzYVBzc1BhcmFtcy5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkE3RjIwMUM2RTU3MTkwMDlDNjE0OSAvKiBT
aW11bGF0ZWRDbGljay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaW11bGF0
ZWRDbGljay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJBN0YyMjFDNkU1QTY2
MDA5QzYxNDkgLyogU2ltdWxhdGVkQ2xpY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2ltdWxhdGVkQ2xpY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1NzJCNDAxRDIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZlcnRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU3MkI0MDFFMjE3NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0
Q29udmVydGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldmljZVJlcXVlc3RDb252ZXJ0ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAyMzIxNzY4RDg1MDAwQUQ0
M0UgLyogVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJW
ZXJpZmljYXRpb25SZXF1aXJlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
NzJCNDAyNTIxNzY4RDg1MDAwQUQ0M0UgLyogVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1NzJCNDAyQTIxNzY5MDFGMDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZpY2F0
aW9uUmVxdWlyZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNVc2Vy
VmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTcyQjQwMkIyMTc2OTAxRjAwMEFENDNFIC8qIEpTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVXNlclZlcmlmaWNh
dGlvblJlcXVpcmVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQw
MzcyMTc3MjU2QzAwMEFENDNFIC8qIERldmljZVJlc3BvbnNlQ29udmVydGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZVJlc3BvbnNlQ29udmVydGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDM4MjE3NzI1NkMwMDBBRDQzRSAvKiBEZXZp
Y2VSZXNwb25zZUNvbnZlcnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTU3MkI0MDNCMjE3N0ZCNjAwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jl
c3BvbnNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
NzJCNDAzQzIxNzdGQjYxMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdG9yR2V0SW5mb1Jl
c3BvbnNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDNEMjE3ODAxNkYw
MDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDNFMjE3ODAxNzAwMDBBRDQz
RSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NzMwM0JCNDIwMDZDNkVEMDAzNTU5NjUgLyogQ0JPUlZhbHVl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENCT1JWYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1NzMwM0JCNTIwMDZDNkVEMDAzNTU5NjUgLyogQ0JPUldy
aXRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDQk9SV3JpdGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAzQkI2MjAwNkM2RUQwMDM1NTk2NSAvKiBD
Qk9SQmluYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENCT1JCaW5hcnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MDkzLDYgKzE5MTExLDE0IEBACiAJ
CTU3OEE0QkZBMjE2NkFFMDAwMEQwOEYzNCAvKiBmaWRvICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1NzJCNDAzQjIxNzdGQjYwMDAwQUQ0M0UgLyogQXV0
aGVudGljYXRvckdldEluZm9SZXNwb25zZS5jcHAgKi8sCisJCQkJNTcyQjQwM0MyMTc3RkI2MTAw
MEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCAqLywKKwkJCQk1NzJCNDAz
RDIxNzgwMTZGMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3BwICov
LAorCQkJCTU3MkI0MDNFMjE3ODAxNzAwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9ucy5oICovLAorCQkJCTU3MkI0MDFFMjE3NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1
ZXN0Q29udmVydGVyLmNwcCAqLywKKwkJCQk1NzJCNDAxRDIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2
aWNlUmVxdWVzdENvbnZlcnRlci5oICovLAorCQkJCTU3MkI0MDM4MjE3NzI1NkMwMDBBRDQzRSAv
KiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAgKi8sCisJCQkJNTcyQjQwMzcyMTc3MjU2QzAw
MEFENDNFIC8qIERldmljZVJlc3BvbnNlQ29udmVydGVyLmggKi8sCiAJCQkJNTdCQUYyODcyMTY3
RDJGNzAwOEU5NTRFIC8qIEZpZG9Db25zdGFudHMuY3BwICovLAogCQkJCTU3OEE0QzBCMjE2N0Qy
OTYwMEQwOEYzNCAvKiBGaWRvQ29uc3RhbnRzLmggKi8sCiAJCQkJNTc4QTRDMDgyMTY3RDI5NTAw
RDA4RjM0IC8qIEZpZG9IaWRNZXNzYWdlLmNwcCAqLywKQEAgLTE5MTcyLDYgKzE5MTk4LDggQEAK
IAkJCQk1NzMwM0MwODIwMDk5OEY4MDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zLmlkbCAqLywKIAkJCQk1NzMwM0JFQTIwMDk3RjQwMDAzNTU5NjUgLyogUHVibGlj
S2V5Q3JlZGVudGlhbFR5cGUuaCAqLywKIAkJCQk1NzMwM0JGMDIwMDk4NDYxMDAzNTU5NjUgLyog
UHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaWRsICovLAorCQkJCTU3MkI0MDIzMjE3NjhEODUwMDBB
RDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCAqLywKKwkJCQk1NzJCNDAyNTIx
NzY4RDg1MDAwQUQ0M0UgLyogVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmlkbCAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gd2ViYXV0aG47CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
MTkxOTcsNiArMTkyMjUsOCBAQAogCQkJCTU3MzAzQzBDMjAwOTlDNzUwMDM1NTk2NSAvKiBKU1B1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oICovLAogCQkJCTU3MzAzQkZBMjAwOTkx
MzUwMDM1NTk2NSAvKiBKU1B1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmNwcCAqLywKIAkJCQk1NzMw
M0JGOTIwMDk5MTM0MDAzNTU5NjUgLyogSlNQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5oICovLAor
CQkJCTU3MkI0MDJCMjE3NjkwMUYwMDBBRDQzRSAvKiBKU1VzZXJWZXJpZmljYXRpb25SZXF1aXJl
bWVudC5jcHAgKi8sCisJCQkJNTcyQjQwMkEyMTc2OTAxRjAwMEFENDNFIC8qIEpTVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50LmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IFdlYkF1dGhOOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI3NjgwLDcgKzI3NzEwLDkgQEAKIAkJCQk1NzMw
M0MxRjIwMDlBQjQyMDAzNTU5NjUgLyogQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQzQ2MjAxMDVEMkYwMDM1NTk2NSAvKiBBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3NjA4MjcyMjAyMTVBNTUw
MDExNjY3OCAvKiBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTU3MkI0MDQyMjE3ODExNEEwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jl
c3BvbnNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0JEMjIwMDg3QTgzMDAzNTU5NjUgLyog
QXV0aGVudGljYXRvclJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzJCNDA0MDIxNzgw
MTcxMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3RENFRDkwMjE0ODdGRjcwMDE2Qjg0NyAvKiBBdXRoZW50aWNhdG9yVHJhbnNw
b3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTAxOTIwRTEzMkVCRjJFMDA4QkZFNTUgLyogQXV0
b2NhcGl0YWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QTdBQTQzMTMyRjBFQ0MwMEQzQTND
MiAvKiBBdXRvY2FwaXRhbGl6ZVR5cGVzLmggaW4gSGVhZGVycyAqLywKQEAgLTI4MTk4LDYgKzI4
MjMwLDggQEAKIAkJCQk1OUE4RjFENjExQTY5NTEzMDAxQUMzNEEgLyogRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OTBFMUI0OTExRTRFRjRCMDA2OUY3
ODQgLyogRGV2aWNlT3JpZW50YXRpb25EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OUE4NUVB
NDExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTcyQjQwMUYyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MkI0MDNBMjE3NzI1ODEwMDBBRDQzRSAvKiBEZXZp
Y2VSZXNwb25zZUNvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjY3NzI1RkQxQTVCM0FE
OTAwM0MyNEREIC8qIERGQS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEOUY1NjYxQUEwRjczQzAw
REE0NUZGIC8qIERGQUJ5dGVjb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0Q5RjU2NzFBQTBG
NzQyMDBEQTQ1RkYgLyogREZBQnl0ZWNvZGVDb21waWxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
OTY4MSw2ICsyOTcxNSw3IEBACiAJCQkJNDY1MzA3RDAxREI2RUU0ODAwRTQxMzdDIC8qIEpTVUlF
dmVudEluaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNzNGQjEyMTkxRUY2RjQwMDdERTA2MSAv
KiBKU1VzZXJNZXNzYWdlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M3M0ZCMEQxOTFF
RjVBODAwN0RFMDYxIC8qIEpTVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNTcyQjQwMkMyMTc2OTAyMDAwMEFENDNFIC8qIEpTVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNUM3NzA5MzEwMEQzQ0E4MDA1QkEy
NjcgLyogSlNWYWxpZGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRThFRjA0QjE3MUM5
MDE0MDA5QjQ4QzMgLyogSlNWaWRlb1RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRThFRjA0
RDE3MUM5MDE0MDA5QjQ4QzMgLyogSlNWaWRlb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zMTMzMiw2ICszMTM2Nyw3IEBACiAJCQkJQkM4QkYxNTExMDU4MTNCRjAwQTQwQTA3IC8qIFVz
ZXJTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhCRjE1QTEwNTgxNDE4MDBBNDBB
MDcgLyogVXNlclN0eWxlU2hlZXRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNERjMxN0Mx
MUY4RDY4MzAwM0M1QkY4IC8qIFVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk1NzJCNDAzNjIxNzZBOTIyMDAwQUQ0M0UgLyogVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NUFGMTRFNjFFQUFDNTlCMDAyNkVFQUEg
LyogVVRJUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGQUZCRjE5MTVBNUZBNzQwMDA4
M0EyMCAvKiBVVElVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzQ1QjhFMURDMkI2
OEEwMDg4NzFCQSAvKiBWYWxpZGF0aW9uQnViYmxlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjZjEwN2Y1MTE3N2E2
ZDI5MjM3MzFkYWZhZDZjYjM2MWEzMDQzMjg0Li4zZDhlNzAxMzE0NmFmMDAwNWU1YmY1YTgwMGRh
MjQ3NDhiMTc5NmQ0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTgtMTAtMjIgIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aE5dIEltcG9ydCBDVEFQIGRldmljZSBy
ZXF1ZXN0L3Jlc3BvbnNlIGNvbnZlcnRlcnMgZnJvbSBDaHJvbWl1bQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNzg0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NTQ2MDMzMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DQk9SVmFs
dWVUZXN0LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9DdGFwUmVzcG9uc2VUZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpnZXRUZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNlKToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OmdldFRlc3RDcmVkZW50aWFsUmF3SWRCeXRlcyk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpjb252ZXJ0VG9WZWN0b3IpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5oOiBBZGRl
ZC4KKwogMjAxOC0xMC0zMCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgd2Via2l0cHk6IFN1cHBvcnQgYWx0ZXJuYXRlIHNpbWN0bCBsaXN0IG91dHB1dHMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDVmOWI3NzIwODE2ZGJkZGQ2YzEyNWFiNGM1N2Jl
OGQzYjlkMzE1Yi4uMDE3MzhlZjQ4NzliNzRhODZkNWYyMDhhNjBmMGFkYTQyMDRkZmQzNCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI0Niw2ICsyNDYsOCBAQAogCQk1NzE0RUNCQjFDQThC
RkU0MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MTRFQ0JB
MUNBOEJGRDEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWwg
Ki87IH07CiAJCTU3MTRFQ0JEMUNBOEMyMkEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmln
aW5hbFVSTDIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzE0RUNCQzFDQThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3Jp
Z2luYWxVUkwyLmh0bWwgKi87IH07CiAJCTU3MUY3RkQwMUYyOTYxRkIwMDk0NjY0OCAvKiBJbmRl
eGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxRjdG
Q0YxRjI5NjFFMTAwOTQ2NjQ4IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29t
cGF0aWJpbGl0eS5zcWxpdGUzLXdhbCAqLzsgfTsKKwkJNTcyQjQwMzQyMTc2OUE4ODAwMEFENDNF
IC8qIEN0YXBSZXF1ZXN0VGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzJCNDAzMzIxNzY5QTg4MDAwQUQ0M0UgLyogQ3RhcFJlcXVlc3RUZXN0
LmNwcCAqLzsgfTsKKwkJNTcyQjQwNDQyMTc4MUI0MzAwMEFENDNFIC8qIEN0YXBSZXNwb25zZVRl
c3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcy
QjQwNDMyMTc4MUI0MjAwMEFENDNFIC8qIEN0YXBSZXNwb25zZVRlc3QuY3BwICovOyB9OwogCQk1
NzMwM0JDOTIwMDgyNEQzMDAzNTU5NjUgLyogQ0JPUlZhbHVlVGVzdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzMwM0JBQzIwMDZDNTYwMDAzNTU5
NjUgLyogQ0JPUlZhbHVlVGVzdC5jcHAgKi87IH07CiAJCTU3MzAzQkNBMjAwODJDMDEwMDM1NTk2
NSAvKiBDQk9SV3JpdGVyVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzMwM0JBQjIwMDZDNTU0MDAzNTU5NjUgLyogQ0JPUldyaXRlclRlc3Qu
Y3BwICovOyB9OwogCQk1NzMwM0JDQjIwMDgzNzY1MDAzNTU5NjUgLyogQ0JPUlJlYWRlclRlc3Qu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNC
QzIyMDA3MUUyMjAwMzU1OTY1IC8qIENCT1JSZWFkZXJUZXN0LmNwcCAqLzsgfTsKQEAgLTE1NTEs
NiArMTU1Myw5IEBACiAJCTU3MTRFQ0JBMUNBOEJGRDEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVl
c3RPcmlnaW5hbFVSTEZyYW1lLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3du
bG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3MTRFQ0JDMUNBOEMyMTgwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5h
bFVSTDIuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERvd25sb2FkUmVxdWVzdE9y
aWdpbmFsVVJMMi5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzFGN0ZDRjFG
Mjk2MUUxMDA5NDY2NDggLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRp
YmlsaXR5LnNxbGl0ZTMtd2FsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9ICJJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2Fy
ZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1NzJCNDAzMzIxNzY5QTg4MDAwQUQ0M0UgLyogQ3RhcFJlcXVlc3RUZXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN0YXBSZXF1ZXN0VGVzdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDM1MjE3NkEwMjkwMDBBRDQzRSAvKiBGaWRv
VGVzdERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlkb1Rlc3REYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU3MkI0MDQzMjE3ODFCNDIwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VU
ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN0YXBSZXNwb25z
ZVRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzMwM0JBQjIwMDZDNTU0
MDAzNTU5NjUgLyogQ0JPUldyaXRlclRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ0JPUldyaXRlclRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1NzMwM0JBQzIwMDZDNTYwMDAzNTU5NjUgLyogQ0JPUlZhbHVlVGVzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQk9SVmFsdWVUZXN0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQzIyMDA3MUUyMjAwMzU1OTY1IC8qIENCT1JS
ZWFkZXJUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENCT1JS
ZWFkZXJUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1MzIsMTEgKzI1
MzcsMTQgQEAKIAkJCQkxQzlFQjg0MDFFMzgwREExMDA1QzY0NDIgLyogQ29tcGxleFRleHRDb250
cm9sbGVyLmNwcCAqLywKIAkJCQk3Q0IxODRDNDFBQTNGMjEwMDA2NkVERkQgLyogQ29udGVudEV4
dGVuc2lvbnMuY3BwICovLAogCQkJCUNENTQ1MUU5MTlFNDFGOUQwMDE2OTM2RiAvKiBDU1NQYXJz
ZXIuY3BwICovLAorCQkJCTU3MkI0MDMzMjE3NjlBODgwMDBBRDQzRSAvKiBDdGFwUmVxdWVzdFRl
c3QuY3BwICovLAorCQkJCTU3MkI0MDQzMjE3ODFCNDIwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VU
ZXN0LmNwcCAqLywKIAkJCQkyNjBCQTU3ODFCMUQyRTdCMDA0RkEwN0MgLyogREZBQ29tYmluZXIu
Y3BwICovLAogCQkJCTI2MEJBNTdBMUIxRDJFRTIwMDRGQTA3QyAvKiBERkFIZWxwZXJzLmggKi8s
CiAJCQkJMjZGNkUxRUYxQURDNzQ5QjAwREU2OTZCIC8qIERGQU1pbmltaXplci5jcHAgKi8sCiAJ
CQkJMzE1MTE4MEYxREIxQURENTAwMTc2MzA0IC8qIEV4dGVuZGVkQ29sb3IuY3BwICovLAogCQkJ
CTU3OTY1MUU2MjE2QkZENTMwMDZFQkZFNSAvKiBGaWRvSGlkTWVzc2FnZVRlc3QuY3BwICovLAor
CQkJCTU3MkI0MDM1MjE3NkEwMjkwMDBBRDQzRSAvKiBGaWRvVGVzdERhdGEuaCAqLywKIAkJCQk3
QTMyRDc0OTFGMDIxNTE1MDAxNjJDNDQgLyogRmlsZU1vbml0b3IuY3BwICovLAogCQkJCTQxOTcz
QjVBMUFGMjI4NkEwMDZDN0IzNiAvKiBGaWxlU3lzdGVtLmNwcCAqLywKIAkJCQk3QTkwOUE3MDFE
ODc3NDc1MDA3RTEwRjggLyogRmxvYXRQb2ludC5jcHAgKi8sCkBAIC0zNzY3LDYgKzM3NzUsOCBA
QAogCQkJCTdDQ0U3RUFDMUE0MTFBMzQwMDQ0N0M0QyAvKiBDb3VudGVycy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3QUVBRDQ3RjFFMjAxMTZDMDA0MTZFRkUgLyogQ3Jvc3NQYXJ0aXRpb25GaWxl
U2NoZW1lQWNjZXNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFREIxQTQxMUE5MjAwNDQ3
QzRDIC8qIENTU1BhcnNlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzJCNDAzNDIxNzY5QTg4
MDAwQUQ0M0UgLyogQ3RhcFJlcXVlc3RUZXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU3MkI0
MDQ0MjE3ODFCNDMwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdBQzdCNTcwMjBEOUJBNUIwMDJDMDlBMCAvKiBDdXN0b21CdW5kbGVPYmplY3QubW0g
aW4gU291cmNlcyAqLywKIAkJCQk3QUM3QjU2RDIwRDk3NjlGMDAyQzA5QTAgLyogQ3VzdG9tQnVu
ZGxlUGFyYW1ldGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMjkxQTQxMUIxMDAwNDQ3
QzRDIC8qIEN1c3RvbVByb3RvY29sc0ludmFsaWRTY2hlbWUubW0gaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DQk9SVmFsdWVUZXN0
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DQk9SVmFsdWVUZXN0LmNw
cAppbmRleCBhMmQ2Yjg5ZjI3MjhmZjVlODg5N2QyNDRiMGNiNTgzOWY5MzVlY2UxLi5mZjUyMGRj
N2E1OTQ5NGM1YTNkNmQ2MTZlYzVkZjVhMDRkYzdjN2QxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUlZhbHVlVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NCT1JWYWx1ZVRlc3QuY3BwCkBAIC0xNDgsNiArMTQ4
LDE3IEBAIFRFU1QoQ0JPUlZhbHVlVGVzdCwgQ29uc3RydWN0U2ltcGxlVmFsdWUpCiAgICAgRVhQ
RUNUX1RSVUUoQ0JPUlZhbHVlOjpTaW1wbGVWYWx1ZTo6VW5kZWZpbmVkID09IHVuZGVmaW5lZFZh
bHVlLmdldFNpbXBsZVZhbHVlKCkpOwogfQogCitURVNUKENCT1JWYWx1ZVRlc3QsIENvbnN0cnVj
dFNpbXBsZUJvb2xlYW5WYWx1ZSkKK3sKKyAgICBDQk9SVmFsdWUgdHJ1ZVZhbHVlKHRydWUpOwor
ICAgIEFTU0VSVF9FUShDQk9SVmFsdWU6OlR5cGU6OlNpbXBsZVZhbHVlLCB0cnVlVmFsdWUudHlw
ZSgpKTsKKyAgICBFWFBFQ1RfVFJVRSh0cnVlVmFsdWUuZ2V0Qm9vbCgpKTsKKworICAgIENCT1JW
YWx1ZSBmYWxzZVZhbHVlKGZhbHNlKTsKKyAgICBBU1NFUlRfRVEoQ0JPUlZhbHVlOjpUeXBlOjpT
aW1wbGVWYWx1ZSwgZmFsc2VWYWx1ZS50eXBlKCkpOworICAgIEVYUEVDVF9GQUxTRShmYWxzZVZh
bHVlLmdldEJvb2woKSk7Cit9CisKIC8vIFRlc3QgY29weSBjb25zdHJ1Y3RvcnMKIFRFU1QoQ0JP
UlZhbHVlVGVzdCwgQ29weVVuc2lnbmVkKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDM5ZGFk
NGVjMWE5MDgwMDc0MTdjZDJhN2U2YzYxZGQxMzVmYTY0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHAKQEAgLTAs
MCArMSwxMjggQEAKKy8vIENvcHlyaWdodCAyMDE3IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1l
dDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
Ky8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLwor
Ly8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1
ZGUgIkZpZG9UZXN0RGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGV2aWNlUmVxdWVzdENvbnZl
cnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlkb0NvbnN0YW50cy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvQmFzZTY0Lmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIGZpZG87CisKKy8vIExldmVyYWdpbmcgZXhh
bXBsZSAyIG9mIHNlY3Rpb24gNi4xIG9mIHRoZSBzcGVjCisvLyBodHRwczovL2ZpZG9hbGxpYW5j
ZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRp
Y2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sCitURVNUKENUQVBSZXF1ZXN0VGVz
dCwgVGVzdENvbnN0cnVjdE1ha2VDcmVkZW50aWFsUmVxdWVzdFBhcmFtKQoreworICAgIFB1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlJwRW50aXR5IHJwOworICAgIHJwLm5hbWUg
PSAiQWNtZSI7CisgICAgcnAuaWQgPSAiYWNtZS5jb20iOworCisgICAgUHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9uczo6VXNlckVudGl0eSB1c2VyOworICAgIHVzZXIubmFtZSA9ICJq
b2hucHNtaXRoQGV4YW1wbGUuY29tIjsKKyAgICB1c2VyLmljb24gPSAiaHR0cHM6Ly9waWNzLmFj
bWUuY29tLzAwL3AvYUJqampwcVBiLnBuZyI7CisgICAgdXNlci5pZFZlY3Rvci5hcHBlbmQoVGVz
dERhdGE6OmtVc2VySWQsIHNpemVvZihUZXN0RGF0YTo6a1VzZXJJZCkpOworICAgIHVzZXIuZGlz
cGxheU5hbWUgPSAiSm9obiBQLiBTbWl0aCI7CisKKyAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4gcGFyYW1zIHsgeyBQdWJsaWNLZXlDcmVk
ZW50aWFsVHlwZTo6UHVibGljS2V5LCA3IH0sIHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1
YmxpY0tleSwgMjU3IH0gfTsKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
OjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9uIHsgUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3Jt
LCB0cnVlLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZCB9OworCisgICAg
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIsIHsg
fSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwgc2VsZWN0aW9uIH07CisgICAgVmVjdG9yPHVp
bnQ4X3Q+IGhhc2g7CisgICAgaGFzaC5hcHBlbmQoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCwg
c2l6ZW9mKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gpKTsKKyAgICBhdXRvIHNlcmlhbGl6ZWRE
YXRhID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5
OjprU3VwcG9ydGVkQnV0Tm90Q29uZmlndXJlZCk7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWRE
YXRhLnNpemUoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdCkp
OworICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6
a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3QsIHNlcmlhbGl6ZWREYXRhLnNpemUoKSksIDApOwor
fQorCitURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdEdldEFzc2VydGlvblJlcXVl
c3QpCit7CisgICAgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIG9wdGlvbnM7Cisg
ICAgb3B0aW9ucy5ycElkID0gImFjbWUuY29tIjsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxE
ZXNjcmlwdG9yIGRlc2NyaXB0b3IxOworICAgIGRlc2NyaXB0b3IxLnR5cGUgPSBQdWJsaWNLZXlD
cmVkZW50aWFsVHlwZTo6UHVibGljS2V5OworICAgIGNvbnN0IHVpbnQ4X3QgaWQxW10gPSB7Cisg
ICAgICAgIDB4ZjIsIDB4MjAsIDB4MDYsIDB4ZGUsIDB4NGYsIDB4OTAsIDB4NWEsIDB4ZjYsIDB4
OGEsIDB4NDMsIDB4OTQsCisgICAgICAgIDB4MmYsIDB4MDIsIDB4NGYsIDB4MmEsIDB4NWUsIDB4
Y2UsIDB4NjAsIDB4M2QsIDB4OWMsIDB4NmQsIDB4NGIsCisgICAgICAgIDB4M2QsIDB4ZjgsIDB4
YmUsIDB4MDgsIDB4ZWQsIDB4MDEsIDB4ZmMsIDB4NDQsIDB4MjYsIDB4NDYsIDB4ZDAsCisgICAg
ICAgIDB4MzQsIDB4ODUsIDB4OGEsIDB4YzcsIDB4NWIsIDB4ZWQsIDB4M2YsIDB4ZDUsIDB4ODAs
IDB4YmYsIDB4OTgsCisgICAgICAgIDB4MDgsIDB4ZDksIDB4NGYsIDB4Y2IsIDB4ZWUsIDB4ODIs
IDB4YjksIDB4YjIsIDB4ZWYsIDB4NjYsIDB4NzcsCisgICAgICAgIDB4YWYsIDB4MGEsIDB4ZGMs
IDB4YzMsIDB4NTgsIDB4NTIsIDB4ZWEsIDB4NmIsIDB4OWUgfTsKKyAgICBkZXNjcmlwdG9yMS5p
ZFZlY3Rvci5hcHBlbmQoaWQxLCBzaXplb2YoaWQxKSk7CisgICAgb3B0aW9ucy5hbGxvd0NyZWRl
bnRpYWxzLmFwcGVuZChkZXNjcmlwdG9yMSk7CisKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsRGVz
Y3JpcHRvciBkZXNjcmlwdG9yMjsKKyAgICBkZXNjcmlwdG9yMi50eXBlID0gUHVibGljS2V5Q3Jl
ZGVudGlhbFR5cGU6OlB1YmxpY0tleTsKKyAgICBjb25zdCB1aW50OF90IGlkMltdID0geworICAg
ICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLAorICAgICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLAorICAgICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgICAgICAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgICAgICAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzIH07
CisgICAgZGVzY3JpcHRvcjIuaWRWZWN0b3IuYXBwZW5kKGlkMiwgc2l6ZW9mKGlkMikpOworICAg
IG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscy5hcHBlbmQoZGVzY3JpcHRvcjIpOworCisgICAgb3B0
aW9ucy51c2VyVmVyaWZpY2F0aW9uID0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1
aXJlZDsKKworICAgIFZlY3Rvcjx1aW50OF90PiBoYXNoOworICAgIGhhc2guYXBwZW5kKFRlc3RE
YXRhOjprQ2xpZW50RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7
CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NC
T1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJp
ZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkKTsKKyAgICBF
WFBFQ1RfRVEoc2VyaWFsaXplZERhdGEuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtUZXN0Q29t
cGxleEN0YXBHZXRBc3NlcnRpb25SZXF1ZXN0KSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJp
YWxpemVkRGF0YS5kYXRhKCksIFRlc3REYXRhOjprVGVzdENvbXBsZXhDdGFwR2V0QXNzZXJ0aW9u
UmVxdWVzdCwgc2VyaWFsaXplZERhdGEuc2l6ZSgpKSwgMCk7Cit9CisKK1RFU1QoQ1RBUFJlcXVl
c3RUZXN0LCBUZXN0Q29uc3RydWN0Q3RhcEF1dGhlbnRpY2F0b3JSZXF1ZXN0UGFyYW0pCit7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGtTZXJpYWxpemVkR2V0SW5mb0NtZCA9IDB4MDQ7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGtTZXJpYWxpemVkR2V0TmV4dEFzc2VydGlv
bkNtZCA9IDB4MDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGtTZXJpYWxpemVkUmVz
ZXRDbWQgPSAweDA3OworCisgICAgYXV0byBzZXJpYWxpemVkRGF0YTEgPSBlbmNvZGVFbXB0eUF1
dGhlbnRpY2F0b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFuZDo6a0F1dGhlbnRpY2F0b3JHZXRJ
bmZvKTsKKyAgICBFWFBFQ1RfRVEoc2VyaWFsaXplZERhdGExLnNpemUoKSwgMXUpOworICAgIEVY
UEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGExLmRhdGEoKSwgJmtTZXJpYWxpemVkR2V0SW5m
b0NtZCwgMSksIDApOworCisgICAgYXV0byBzZXJpYWxpemVkRGF0YTIgPSBlbmNvZGVFbXB0eUF1
dGhlbnRpY2F0b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFuZDo6a0F1dGhlbnRpY2F0b3JHZXRO
ZXh0QXNzZXJ0aW9uKTsKKyAgICBFWFBFQ1RfRVEoc2VyaWFsaXplZERhdGEyLnNpemUoKSwgMXUp
OworICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEyLmRhdGEoKSwgJmtTZXJpYWxp
emVkR2V0TmV4dEFzc2VydGlvbkNtZCwgMSksIDApOworCisgICAgYXV0byBzZXJpYWxpemVkRGF0
YTMgPSBlbmNvZGVFbXB0eUF1dGhlbnRpY2F0b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFuZDo6
a0F1dGhlbnRpY2F0b3JSZXNldCk7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhMy5zaXpl
KCksIDF1KTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhMy5kYXRhKCksICZr
U2VyaWFsaXplZFJlc2V0Q21kLCAxKSwgMCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlc3BvbnNlVGVzdC5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlc3BvbnNlVGVzdC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2I1ZDI1ZTVmZWVhZjc3M2MzN2M0MTY4YTc1OTMzYWY2NWYxZDhiMgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVzcG9uc2VUZXN0
LmNwcApAQCAtMCwwICsxLDM1NCBAQAorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIENocm9taXVtIEF1
dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorLy8gbWV0OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisv
LyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhO
KQorCisjaW5jbHVkZSAiRmlkb1Rlc3REYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQk9SUmVh
ZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DQk9SVmFsdWUuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0NCT1JXcml0ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RldmljZVJlc3BvbnNlQ29udmVydGVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWRvQ29uc3RhbnRzLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9QdWJsaWNLZXlDcmVkZW50aWFsLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKK3Vz
aW5nIG5hbWVzcGFjZSBmaWRvOworCitjb25zdGV4cHIgdWludDhfdCBrVGVzdEF1dGhlbnRpY2F0
b3JHZXRJbmZvUmVzcG9uc2VXaXRoTm9WZXJzaW9uW10gPSB7CisgICAgLy8gU3VjY2VzcyBzdGF0
dXMgYnl0ZQorICAgIDB4MDAsCisgICAgLy8gTWFwIG9mIDYgZWxlbWVudHMKKyAgICAweEE2LAor
ICAgIC8vIEtleSgwMSkgLSB2ZXJzaW9ucworICAgIDB4MDEsCisgICAgLy8gQXJyYXkoMCkKKyAg
ICAweDgwLAorICAgIC8vIEtleSgwMikgLSBleHRlbnNpb25zCisgICAgMHgwMiwKKyAgICAvLyBB
cnJheSgyKQorICAgIDB4ODIsCisgICAgLy8gInV2bSIKKyAgICAweDYzLCAweDc1LCAweDc2LCAw
eDZELAorICAgIC8vICJobWFjLXNlY3JldCIKKyAgICAweDZCLCAweDY4LCAweDZELCAweDYxLCAw
eDYzLCAweDJELCAweDczLCAweDY1LCAweDYzLCAweDcyLCAweDY1LCAweDc0LAorICAgIC8vIEtl
eSgwMykgLSBBQUdVSUQKKyAgICAweDAzLAorICAgIC8vIEJ5dGVzKDE2KQorICAgIDB4NTAsIDB4
RjgsIDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMsIDB4MEEsIDB4NEQsIDB4MTUsIDB4ODAsIDB4MDYs
IDB4MTcsCisgICAgMHgxMSwgMHgxRiwgMHg5RSwgMHhEQywgMHg3RCwKKyAgICAvLyBLZXkoMDQp
IC0gb3B0aW9ucworICAgIDB4MDQsCisgICAgLy8gTWFwKDA1KQorICAgIDB4QTUsCisgICAgLy8g
S2V5IC0gInJrIgorICAgIDB4NjIsIDB4NzIsIDB4NkIsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUs
CisgICAgLy8gS2V5IC0gInVwIgorICAgIDB4NjIsIDB4NzUsIDB4NzAsCisgICAgLy8gdHJ1ZQor
ICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInV2IgorICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAg
Ly8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInBsYXQiCisgICAgMHg2NCwgMHg3MCwg
MHg2QywgMHg2MSwgMHg3NCwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAi
Y2xpZW50UGluIgorICAgIDB4NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQs
IDB4NTAsIDB4NjksIDB4NkUsCisgICAgLy8gZmFsc2UKKyAgICAweEY0LAorICAgIC8vIEtleSgw
NSkgLSBNYXggbWVzc2FnZSBzaXplCisgICAgMHgwNSwKKyAgICAvLyAxMjAwCisgICAgMHgxOSwg
MHgwNCwgMHhCMCwKKyAgICAvLyBLZXkoMDYpIC0gUGluIHByb3RvY29scworICAgIDB4MDYsCisg
ICAgLy8gQXJyYXlbMV0KKyAgICAweDgxLCAweDAxLAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qg
a1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aER1cGxpY2F0ZVZlcnNpb25bXSA9
IHsKKyAgICAvLyBTdWNjZXNzIHN0YXR1cyBieXRlCisgICAgMHgwMCwKKyAgICAvLyBNYXAgb2Yg
NiBlbGVtZW50cworICAgIDB4QTYsCisgICAgLy8gS2V5KDAxKSAtIHZlcnNpb25zCisgICAgMHgw
MSwKKyAgICAvLyBBcnJheSgwMikKKyAgICAweDgyLAorICAgIC8vICJVMkZfVjIiCisgICAgMHg2
NiwgMHg1NSwgMHgzMiwgMHg0NiwgMHg1RiwgMHg1NiwgMHgzMiwKKyAgICAvLyAiVTJGX1YyIgor
ICAgIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYsIDB4NTYsIDB4MzIsCisgICAgLy8gS2V5
KDAyKSAtIGV4dGVuc2lvbnMKKyAgICAweDAyLAorICAgIC8vIEFycmF5KDIpCisgICAgMHg4MiwK
KyAgICAvLyAidXZtIgorICAgIDB4NjMsIDB4NzUsIDB4NzYsIDB4NkQsCisgICAgLy8gImhtYWMt
c2VjcmV0IgorICAgIDB4NkIsIDB4NjgsIDB4NkQsIDB4NjEsIDB4NjMsIDB4MkQsIDB4NzMsIDB4
NjUsIDB4NjMsIDB4NzIsIDB4NjUsIDB4NzQsCisgICAgLy8gS2V5KDAzKSAtIEFBR1VJRAorICAg
IDB4MDMsCisgICAgLy8gQnl0ZXMoMTYpCisgICAgMHg1MCwgMHhGOCwgMHhBMCwgMHgxMSwgMHhG
MywgMHg4QywgMHgwQSwgMHg0RCwgMHgxNSwgMHg4MCwgMHgwNiwgMHgxNywKKyAgICAweDExLCAw
eDFGLCAweDlFLCAweERDLCAweDdELAorICAgIC8vIEtleSgwNCkgLSBvcHRpb25zCisgICAgMHgw
NCwKKyAgICAvLyBNYXAoMDUpCisgICAgMHhBNSwKKyAgICAvLyBLZXkgLSAicmsiCisgICAgMHg2
MiwgMHg3MiwgMHg2QiwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAidXAi
CisgICAgMHg2MiwgMHg3NSwgMHg3MCwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBL
ZXkgLSAidXYiCisgICAgMHg2MiwgMHg3NSwgMHg3NiwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwK
KyAgICAvLyBLZXkgLSAicGxhdCIKKyAgICAweDY0LCAweDcwLCAweDZDLCAweDYxLCAweDc0LAor
ICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJjbGllbnRQaW4iCisgICAgMHg2
OSwgMHg2MywgMHg2QywgMHg2OSwgMHg2NSwgMHg2RSwgMHg3NCwgMHg1MCwgMHg2OSwgMHg2RSwK
KyAgICAvLyBmYWxzZQorICAgIDB4RjQsCisgICAgLy8gS2V5KDA1KSAtIE1heCBtZXNzYWdlIHNp
emUKKyAgICAweDA1LAorICAgIC8vIDEyMDAKKyAgICAweDE5LCAweDA0LCAweEIwLAorICAgIC8v
IEtleSgwNikgLSBQaW4gcHJvdG9jb2xzCisgICAgMHgwNiwKKyAgICAvLyBBcnJheVsxXQorICAg
IDB4ODEsIDB4MDEsCit9OworCitjb25zdGV4cHIgdWludDhfdCBrVGVzdEF1dGhlbnRpY2F0b3JH
ZXRJbmZvUmVzcG9uc2VXaXRoSW5jb3JyZWN0QWFndWlkW10gPSB7CisgICAgLy8gU3VjY2VzcyBz
dGF0dXMgYnl0ZQorICAgIDB4MDAsCisgICAgLy8gTWFwIG9mIDYgZWxlbWVudHMKKyAgICAweEE2
LAorICAgIC8vIEtleSgwMSkgLSB2ZXJzaW9ucworICAgIDB4MDEsCisgICAgLy8gQXJyYXkoMDEp
CisgICAgMHg4MSwKKyAgICAvLyAiVTJGX1YyIgorICAgIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYs
IDB4NUYsIDB4NTYsIDB4MzIsCisgICAgLy8gS2V5KDAyKSAtIGV4dGVuc2lvbnMKKyAgICAweDAy
LAorICAgIC8vIEFycmF5KDIpCisgICAgMHg4MiwKKyAgICAvLyAidXZtIgorICAgIDB4NjMsIDB4
NzUsIDB4NzYsIDB4NkQsCisgICAgLy8gImhtYWMtc2VjcmV0IgorICAgIDB4NkIsIDB4NjgsIDB4
NkQsIDB4NjEsIDB4NjMsIDB4MkQsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NzIsIDB4NjUsIDB4NzQs
CisgICAgLy8gS2V5KDAzKSAtIEFBR1VJRAorICAgIDB4MDMsCisgICAgLy8gQnl0ZXMoMTcpIC0g
RklETzIgZGV2aWNlIEFBR1VJRCBtdXN0IGJlIDE2IGJ5dGVzIGxvbmcgaW4gb3JkZXIgdG8gYmUK
KyAgICAvLyBjb3JyZWN0LgorICAgIDB4NTEsIDB4RjgsIDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMs
IDB4MEEsIDB4NEQsIDB4MTUsIDB4ODAsIDB4MDYsIDB4MTcsCisgICAgMHgxMSwgMHgxRiwgMHg5
RSwgMHhEQywgMHg3RCwgMHgwMCwKKyAgICAvLyBLZXkoMDQpIC0gb3B0aW9ucworICAgIDB4MDQs
CisgICAgLy8gTWFwKDA1KQorICAgIDB4QTUsCisgICAgLy8gS2V5IC0gInJrIgorICAgIDB4NjIs
IDB4NzIsIDB4NkIsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInVwIgor
ICAgIDB4NjIsIDB4NzUsIDB4NzAsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5
IC0gInV2IgorICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisg
ICAgLy8gS2V5IC0gInBsYXQiCisgICAgMHg2NCwgMHg3MCwgMHg2QywgMHg2MSwgMHg3NCwKKyAg
ICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAiY2xpZW50UGluIgorICAgIDB4Njks
IDB4NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4NTAsIDB4NjksIDB4NkUsCisg
ICAgLy8gZmFsc2UKKyAgICAweEY0LAorICAgIC8vIEtleSgwNSkgLSBNYXggbWVzc2FnZSBzaXpl
CisgICAgMHgwNSwKKyAgICAvLyAxMjAwCisgICAgMHgxOSwgMHgwNCwgMHhCMCwKKyAgICAvLyBL
ZXkoMDYpIC0gUGluIHByb3RvY29scworICAgIDB4MDYsCisgICAgLy8gQXJyYXlbMV0KKyAgICAw
eDgxLCAweDAxLAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3REZXZpY2VBYWd1aWRbXSA9
IHsKKyAgICAweEY4LCAweEEwLCAweDExLCAweEYzLCAweDhDLCAweDBBLCAweDRELCAweDE1LCAw
eDgwLCAweDA2LCAweDE3LCAweDExLCAweDFGLCAweDlFLCAweERDLCAweDdECit9OworCisvLyBH
ZXQgYSBzdWJzZXQgb2YgdGhlIHJlc3BvbnNlIGZvciB0ZXN0aW5nIGVycm9yIGhhbmRsaW5nLgor
VmVjdG9yPHVpbnQ4X3Q+IGdldFRlc3RDb3JydXB0ZWRTaWduUmVzcG9uc2Uoc2l6ZV90IGxlbmd0
aCkKK3sKKyAgICBBU1NFUlQobGVuZ3RoIDwgc2l6ZW9mKFRlc3REYXRhOjprVGVzdFUyZlNpZ25S
ZXNwb25zZSkpOworICAgIFZlY3Rvcjx1aW50OF90PiB0ZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNl
OworICAgIHRlc3RDb3JydXB0ZWRTaWduUmVzcG9uc2UucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShs
ZW5ndGgpOworICAgIHRlc3RDb3JydXB0ZWRTaWduUmVzcG9uc2UuYXBwZW5kKFRlc3REYXRhOjpr
VGVzdFUyZlNpZ25SZXNwb25zZSwgbGVuZ3RoKTsKKyAgICByZXR1cm4gdGVzdENvcnJ1cHRlZFNp
Z25SZXNwb25zZTsKK30KKworLy8gUmV0dXJuIGEga2V5IGhhbmRsZSB1c2VkIGZvciBHZXRBc3Nl
cnRpb24gcmVxdWVzdC4KK1ZlY3Rvcjx1aW50OF90PiBnZXRUZXN0Q3JlZGVudGlhbFJhd0lkQnl0
ZXMoKQoreworICAgIFZlY3Rvcjx1aW50OF90PiB0ZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXM7Cisg
ICAgdGVzdENyZWRlbnRpYWxSYXdJZEJ5dGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2l6ZW9m
KFRlc3REYXRhOjprVTJmU2lnbktleUhhbmRsZSkpOworICAgIHRlc3RDcmVkZW50aWFsUmF3SWRC
eXRlcy5hcHBlbmQoVGVzdERhdGE6OmtVMmZTaWduS2V5SGFuZGxlLCBzaXplb2YoVGVzdERhdGE6
OmtVMmZTaWduS2V5SGFuZGxlKSk7CisgICAgcmV0dXJuIHRlc3RDcmVkZW50aWFsUmF3SWRCeXRl
czsKK30KKworVmVjdG9yPHVpbnQ4X3Q+IGNvbnZlcnRUb1ZlY3Rvcihjb25zdCB1aW50OF90IGJ5
dGVBcnJheVtdLCBjb25zdCBzaXplX3QgbGVuZ3RoKQoreworICAgIFZlY3Rvcjx1aW50OF90PiBy
ZXN1bHQ7CisgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobGVuZ3RoKTsKKyAgICBy
ZXN1bHQuYXBwZW5kKGJ5dGVBcnJheSwgbGVuZ3RoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CisvLyBMZXZlcmFnaW5nIGV4YW1wbGUgNCBvZiBzZWN0aW9uIDYuMSBvZiB0aGUgc3BlYworLy8g
aHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRv
LWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNj
b21tYW5kcworVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBUZXN0UmVhZE1ha2VDcmVkZW50aWFsUmVz
cG9uc2UpCit7CisgICAgYXV0byBtYWtlQ3JlZGVudGlhbFJlc3BvbnNlID0gcmVhZENUQVBNYWtl
Q3JlZGVudGlhbFJlc3BvbnNlKGNvbnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a1Rlc3RNYWtlQ3Jl
ZGVudGlhbFJlc3BvbnNlLCBzaXplb2YoVGVzdERhdGE6OmtUZXN0TWFrZUNyZWRlbnRpYWxSZXNw
b25zZSkpKTsKKyAgICBBU1NFUlRfVFJVRShtYWtlQ3JlZGVudGlhbFJlc3BvbnNlKTsKKyAgICBh
dXRvIGNib3JBdHRlc3RhdGlvbk9iamVjdCA9IGNib3I6OkNCT1JSZWFkZXI6OnJlYWQoY29udmVy
dFRvVmVjdG9yKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KG1ha2VDcmVkZW50aWFsUmVzcG9u
c2UtPmF0dGVzdGF0aW9uT2JqZWN0LT5kYXRhKCkpLCBtYWtlQ3JlZGVudGlhbFJlc3BvbnNlLT5h
dHRlc3RhdGlvbk9iamVjdC0+Ynl0ZUxlbmd0aCgpKSk7CisgICAgQVNTRVJUX1RSVUUoY2JvckF0
dGVzdGF0aW9uT2JqZWN0KTsKKyAgICBBU1NFUlRfVFJVRShjYm9yQXR0ZXN0YXRpb25PYmplY3Qt
PmlzTWFwKCkpOworCisgICAgY29uc3QgYXV0byYgYXR0ZXN0YXRpb25PYmplY3RNYXAgPSBjYm9y
QXR0ZXN0YXRpb25PYmplY3QtPmdldE1hcCgpOworICAgIGF1dG8gaXQgPSBhdHRlc3RhdGlvbk9i
amVjdE1hcC5maW5kKGNib3I6OkNCT1JWYWx1ZShrRm9ybWF0S2V5KSk7CisgICAgQVNTRVJUX1RS
VUUoaXQgIT0gYXR0ZXN0YXRpb25PYmplY3RNYXAuZW5kKCkpOworICAgIEFTU0VSVF9UUlVFKGl0
LT5zZWNvbmQuaXNTdHJpbmcoKSk7CisgICAgRVhQRUNUX1NUUkVRKGl0LT5zZWNvbmQuZ2V0U3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSwgInBhY2tlZCIpOworCisgICAgaXQgPSBhdHRlc3RhdGlvbk9i
amVjdE1hcC5maW5kKGNib3I6OkNCT1JWYWx1ZShrQXV0aERhdGFLZXkpKTsKKyAgICBBU1NFUlRf
VFJVRShpdCAhPSBhdHRlc3RhdGlvbk9iamVjdE1hcC5lbmQoKSk7CisgICAgQVNTRVJUX1RSVUUo
aXQtPnNlY29uZC5pc0J5dGVTdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKGl0LT5zZWNvbmQuZ2V0
Qnl0ZVN0cmluZygpLCBjb252ZXJ0VG9WZWN0b3IoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50
aWFsQXV0aERhdGEsIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxBdXRoRGF0
YSkpKTsKKworICAgIGl0ID0gYXR0ZXN0YXRpb25PYmplY3RNYXAuZmluZChjYm9yOjpDQk9SVmFs
dWUoa0F0dGVzdGF0aW9uU3RhdGVtZW50S2V5KSk7CisgICAgQVNTRVJUX1RSVUUoaXQgIT0gYXR0
ZXN0YXRpb25PYmplY3RNYXAuZW5kKCkpOworICAgIEFTU0VSVF9UUlVFKGl0LT5zZWNvbmQuaXNN
YXAoKSk7CisKKyAgICBjb25zdCBhdXRvJiBhdHRlc3RhdGlvblN0YXRlbWVudE1hcCA9IGl0LT5z
ZWNvbmQuZ2V0TWFwKCk7CisgICAgYXV0byBhdHRTdG10SXQgPSBhdHRlc3RhdGlvblN0YXRlbWVu
dE1hcC5maW5kKGNib3I6OkNCT1JWYWx1ZSgiYWxnIikpOworCisgICAgQVNTRVJUX1RSVUUoYXR0
U3RtdEl0ICE9IGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwLmVuZCgpKTsKKyAgICBBU1NFUlRfVFJV
RShhdHRTdG10SXQtPnNlY29uZC5pc0ludGVnZXIoKSk7CisgICAgRVhQRUNUX0VRKGF0dFN0bXRJ
dC0+c2Vjb25kLmdldEludGVnZXIoKSwgLTcpOworCisgICAgYXR0U3RtdEl0ID0gYXR0ZXN0YXRp
b25TdGF0ZW1lbnRNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoInNpZyIpKTsKKyAgICBBU1NFUlRf
VFJVRShhdHRTdG10SXQgIT0gYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAuZW5kKCkpOworICAgIEFT
U0VSVF9UUlVFKGF0dFN0bXRJdC0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKTsKKyAgICBFWFBFQ1Rf
RVEoYXR0U3RtdEl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpLCBjb252ZXJ0VG9WZWN0b3IoVGVz
dERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsU2lnbmF0dXJlLCBzaXplb2YoVGVzdERhdGE6OmtD
dGFwMk1ha2VDcmVkZW50aWFsU2lnbmF0dXJlKSkpOworCisgICAgYXR0U3RtdEl0ID0gYXR0ZXN0
YXRpb25TdGF0ZW1lbnRNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoIng1YyIpKTsKKyAgICBBU1NF
UlRfVFJVRShhdHRTdG10SXQgIT0gYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAuZW5kKCkpOworICAg
IGNvbnN0IGF1dG8mIGNlcnRpZmljYXRlID0gYXR0U3RtdEl0LT5zZWNvbmQ7CisgICAgQVNTRVJU
X1RSVUUoY2VydGlmaWNhdGUuaXNBcnJheSgpKTsKKyAgICBBU1NFUlRfRVEoY2VydGlmaWNhdGUu
Z2V0QXJyYXkoKS5zaXplKCksIDF1KTsKKyAgICBBU1NFUlRfVFJVRShjZXJ0aWZpY2F0ZS5nZXRB
cnJheSgpWzBdLmlzQnl0ZVN0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoY2VydGlmaWNhdGUuZ2V0
QXJyYXkoKVswXS5nZXRCeXRlU3RyaW5nKCksIGNvbnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a0N0
YXAyTWFrZUNyZWRlbnRpYWxDZXJ0aWZpY2F0ZSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJNYWtl
Q3JlZGVudGlhbENlcnRpZmljYXRlKSkpOworICAgIEVYUEVDVF9FUShtYWtlQ3JlZGVudGlhbFJl
c3BvbnNlLT5yYXdJZC0+Ynl0ZUxlbmd0aCgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMk1ha2VD
cmVkZW50aWFsQ3JlZGVudGlhbElkKSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChtYWtlQ3JlZGVu
dGlhbFJlc3BvbnNlLT5yYXdJZC0+ZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRp
YWxDcmVkZW50aWFsSWQsIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxDcmVk
ZW50aWFsSWQpKSwgMCk7Cit9CisKKy8vIExldmVyYWdpbmcgZXhhbXBsZSA1IG9mIHNlY3Rpb24g
Ni4xIG9mIHRoZSBDVEFQIHNwZWMuCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3Mv
Zmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9j
b2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sCitURVNUKENUQVBSZXNwb25zZVRlc3QsIFRlc3RSZWFk
R2V0QXNzZXJ0aW9uUmVzcG9uc2UpCit7CisgICAgYXV0byBnZXRBc3NlcnRpb25SZXNwb25zZSA9
IHJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29udmVydFRvVmVjdG9yKFRlc3REYXRhOjpr
RGV2aWNlR2V0QXNzZXJ0aW9uUmVzcG9uc2UsIHNpemVvZihUZXN0RGF0YTo6a0RldmljZUdldEFz
c2VydGlvblJlc3BvbnNlKSkpOworICAgIEFTU0VSVF9UUlVFKGdldEFzc2VydGlvblJlc3BvbnNl
KTsKKworICAgIEVYUEVDVF9FUShnZXRBc3NlcnRpb25SZXNwb25zZS0+YXV0aGVudGljYXRvckRh
dGEtPmJ5dGVMZW5ndGgoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRo
RGF0YSkpOworICAgIEVYUEVDVF9FUShtZW1jbXAoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPmF1dGhl
bnRpY2F0b3JEYXRhLT5kYXRhKCksIFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0
YSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSkpLCAwKTsKKyAg
ICBFWFBFQ1RfRVEoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPnNpZ25hdHVyZS0+Ynl0ZUxlbmd0aCgp
LCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMkdldEFzc2VydGlvblNpZ25hdHVyZSkpOworICAgIEVY
UEVDVF9FUShtZW1jbXAoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPnNpZ25hdHVyZS0+ZGF0YSgpLCBU
ZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uU2lnbmF0dXJlLCBzaXplb2YoVGVzdERhdGE6OmtD
dGFwMkdldEFzc2VydGlvblNpZ25hdHVyZSkpLCAwKTsKK30KKworVEVTVChDVEFQUmVzcG9uc2VU
ZXN0LCBUZXN0UmVhZEdldEluZm9SZXNwb25zZSkKK3sKKyAgICBhdXRvIGdldEluZm9SZXNwb25z
ZSA9IHJlYWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNvbnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a1Rl
c3RHZXRJbmZvUmVzcG9uc2VQbGF0Zm9ybURldmljZSwgc2l6ZW9mKFRlc3REYXRhOjprVGVzdEdl
dEluZm9SZXNwb25zZVBsYXRmb3JtRGV2aWNlKSkpOworICAgIEFTU0VSVF9UUlVFKGdldEluZm9S
ZXNwb25zZSk7CisgICAgQVNTRVJUX1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5tYXhNc2dTaXplKCkp
OworICAgIEVYUEVDVF9FUSgqZ2V0SW5mb1Jlc3BvbnNlLT5tYXhNc2dTaXplKCksIDEyMDB1KTsK
KyAgICBFWFBFQ1RfTkUoZ2V0SW5mb1Jlc3BvbnNlLT52ZXJzaW9ucygpLmZpbmQoUHJvdG9jb2xW
ZXJzaW9uOjprQ3RhcCksIGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5lbmQoKSk7CisgICAg
RVhQRUNUX05FKGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5maW5kKFByb3RvY29sVmVyc2lv
bjo6a1UyZiksIGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5lbmQoKSk7CisgICAgRVhQRUNU
X1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5vcHRpb25zKCkuaXNQbGF0Zm9ybURldmljZSgpKTsKKyAg
ICBFWFBFQ1RfVFJVRShnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS5zdXBwb3J0c1Jlc2lkZW50
S2V5KCkpOworICAgIEVYUEVDVF9UUlVFKGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnVzZXJQ
cmVzZW5jZVJlcXVpcmVkKCkpOworICAgIEVYUEVDVF9FUShBdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZp
Z3VyZWQsIGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFi
aWxpdHkoKSk7CisgICAgRVhQRUNUX0VRKEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpD
bGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXRQaW5Ob3RTZXQsIGdldEluZm9SZXNw
b25zZS0+b3B0aW9ucygpLmNsaWVudFBpbkF2YWlsYWJpbGl0eSgpKTsKK30KKworVEVTVChDVEFQ
UmVzcG9uc2VUZXN0LCBUZXN0UmVhZEdldEluZm9SZXNwb25zZVdpdGhJbmNvcnJlY3RGb3JtYXQp
Cit7CisgICAgRVhQRUNUX0ZBTFNFKHJlYWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNvbnZlcnRUb1Zl
Y3RvcihrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoTm9WZXJzaW9uLCBzaXpl
b2Yoa1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aE5vVmVyc2lvbikpKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKHJlYWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNvbnZlcnRUb1ZlY3Rvcihr
VGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoRHVwbGljYXRlVmVyc2lvbiwgc2l6
ZW9mKGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVdpdGhEdXBsaWNhdGVWZXJzaW9u
KSkpKTsKKyAgICBFWFBFQ1RfRkFMU0UocmVhZENUQVBHZXRJbmZvUmVzcG9uc2UoY29udmVydFRv
VmVjdG9yKGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVdpdGhJbmNvcnJlY3RBYWd1
aWQsIHNpemVvZihrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoSW5jb3JyZWN0
QWFndWlkKSkpKTsKK30KKworVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBUZXN0U2VyaWFsaXplR2V0
SW5mb1Jlc3BvbnNlKQoreworICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UgcmVzcG9u
c2UoeyBQcm90b2NvbFZlcnNpb246OmtDdGFwLCBQcm90b2NvbFZlcnNpb246OmtVMmYgfSwgY29u
dmVydFRvVmVjdG9yKGtUZXN0RGV2aWNlQWFndWlkLCBzaXplb2Yoa1Rlc3REZXZpY2VBYWd1aWQp
KSk7CisgICAgcmVzcG9uc2Uuc2V0RXh0ZW5zaW9ucyh7ICJ1dm0iLCAiaG1hYy1zZWNyZXQiIH0p
OworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9u
cy5zZXRTdXBwb3J0c1Jlc2lkZW50S2V5KHRydWUpOworICAgIG9wdGlvbnMuc2V0SXNQbGF0Zm9y
bURldmljZSh0cnVlKTsKKyAgICBvcHRpb25zLnNldENsaWVudFBpbkF2YWlsYWJpbGl0eShBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9y
dGVkQnV0UGluTm90U2V0KTsKKyAgICBvcHRpb25zLnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFi
aWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFp
bGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkKTsKKyAgICByZXNwb25zZS5zZXRPcHRp
b25zKFdURk1vdmUob3B0aW9ucykpOworICAgIHJlc3BvbnNlLnNldE1heE1zZ1NpemUoMTIwMCk7
CisgICAgcmVzcG9uc2Uuc2V0UGluUHJvdG9jb2xzKHsgMSB9KTsKKworICAgIGF1dG8gcmVzcG9u
c2VBc0NCT1IgPSBlbmNvZGVBc0NCT1IocmVzcG9uc2UpOworICAgIEVYUEVDVF9FUShyZXNwb25z
ZUFzQ0JPUi5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a1Rlc3RHZXRJbmZvUmVzcG9uc2VQbGF0
Zm9ybURldmljZSkgLSAxKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHJlc3BvbnNlQXNDQk9SLmRh
dGEoKSwgVGVzdERhdGE6OmtUZXN0R2V0SW5mb1Jlc3BvbnNlUGxhdGZvcm1EZXZpY2UgKyAxLCBy
ZXNwb25zZUFzQ0JPUi5zaXplKCkpLCAwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZmVhNjViZjJh
MDJkNzNjNjhkMjIwYzYyYzBhMDY5MGY2ZjEzODdjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5oCkBAIC0wLDAgKzEsNjQ1
IEBACisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLwor
Ly8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgeworCituYW1lc3BhY2UgVGVzdERhdGEgeworCisvLyBVMkYgcmVxdWVzdCBwYXJhbWV0ZXJz
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisvLyBTYW1wbGUgVTJGIHJlZ2lzdGVyIHJlcXVlc3QgcGFyYW1ldGVycyB1c2VkIGluIGV4YW1w
bGUgNiBvZiB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNz
L2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3Rv
Y29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCN1c2luZy10aGUtY3RhcDItYXV0aGVudGljYXRvcm1h
a2VjcmVkZW50aWFsLWNvbW1hbmQtd2l0aC1jdGFwMS11MmYtYXV0aGVudGljYXRvcnMKK2NvbnN0
ZXhwciB1aW50OF90IGtDbGllbnREYXRhSGFzaFtdID0geworICAgIDB4NjgsIDB4NzEsIDB4MzQs
IDB4OTYsIDB4ODIsIDB4MjIsIDB4ZWMsIDB4MTcsIDB4MjAsIDB4MmUsIDB4NDIsCisgICAgMHg1
MCwgMHg1ZiwgMHg4ZSwgMHhkMiwgMHhiMSwgMHg2YSwgMHhlMiwgMHgyZiwgMHgxNiwgMHhiYiwg
MHgwNSwKKyAgICAweGI4LCAweDhjLCAweDI1LCAweGRiLCAweDllLCAweDYwLCAweDI2LCAweDQ1
LCAweGYxLCAweDQxfTsKKworY29uc3RleHByIHVpbnQ4X3Qga1VzZXJJZFtdID0gezB4MTAsIDB4
OTgsIDB4MjMsIDB4NzIsIDB4MzUsIDB4NDAsIDB4OTgsIDB4NzJ9OworCisvLyBTYW1wbGUgVTJG
IHNpZ24gcmVxdWVzdCBwYXJhbWV0ZXJzIHVzZWQgaW4gZXhhbXBsZSA3IG9mIHRoZSBDVEFQIHNw
ZWMuCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcw
OTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDky
Ny5odG1sI3VzaW5nLXRoZS1jdGFwMi1hdXRoZW50aWNhdG9ybWFrZWNyZWRlbnRpYWwtY29tbWFu
ZC13aXRoLWN0YXAxLXUyZi1hdXRoZW50aWNhdG9ycworY29uc3RleHByIHVpbnQ4X3Qga1UyZlNp
Z25LZXlIYW5kbGVbXSA9IHsKKyAgICAweDNFLCAweEJELCAweDg5LCAweEJGLCAweDc3LCAweEVD
LCAweDUwLCAweDk3LCAweDU1LCAweEVFLCAweDlDLAorICAgIDB4MjYsIDB4MzUsIDB4RUYsIDB4
QUEsIDB4QUMsIDB4N0IsIDB4MkIsIDB4OUMsIDB4NUMsIDB4RUYsIDB4MTcsCisgICAgMHgzNiwg
MHhDMywgMHg3MSwgMHg3RCwgMHhBNCwgMHg4NSwgMHgzNCwgMHhDOCwgMHhDNiwgMHhCNiwgMHg1
NCwKKyAgICAweEQ3LCAweEZGLCAweDk0LCAweDVGLCAweDUwLCAweEI1LCAweENDLCAweDRFLCAw
eDc4LCAweDA1LCAweDVCLAorICAgIDB4REQsIDB4MzksIDB4NkIsIDB4NjQsIDB4RjcsIDB4OEQs
IDB4QTIsIDB4QzUsIDB4RjksIDB4NjIsIDB4MDAsCisgICAgMHhDQywgMHhENCwgMHgxNSwgMHhD
RCwgMHgwOCwgMHhGRSwgMHg0MiwgMHgwMCwgMHgzOCwKK307CisKKy8vIFUyRiByZXNwb25zZXMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKy8vIEVDIHB1YmxpYyBrZXkgZW5jb2RlZCBpbiBDT1NFX0tleSBmb3JtYXQgZXh0
cmFjdGVkIGZyb20gYWJvdmUKKy8vIHxrVGVzdFUyZlJlZ2lzdGVyUmVzcG9uc2V8LgorY29uc3Rl
eHByIHVpbnQ4X3Qga1Rlc3RFQ1B1YmxpY0tleUNPU0VbXSA9IHsKKyAgICAvLyBNYXAoNSkKKyAg
ICAweEE1LAorICAgIC8vIGt0eTogRUMga2V5IHR5cGUKKyAgICAweDAxLCAweDAyLAorICAgIC8v
IGFsZzogRUMyNTYgc2lnbmF0dXJlIGFsZ29yaXRobQorICAgIDB4MDMsIDB4MjYsCisgICAgLy8g
Y3J2OiBQLTI1NiBjdXJ2ZQorICAgIDB4MjAsIDB4MDEsCisgICAgLy8geC1jb29yZGluYXRlCisg
ICAgMHgyMSwKKyAgICAvLyBCeXRlcygzMikKKyAgICAweDU4LCAweDIwLAorICAgIC8vIEJ5dGUg
YXJyYXkgY29udGVudAorICAgIDB4RTgsIDB4NzYsIDB4MjUsIDB4ODksIDB4NkUsIDB4RTQsIDB4
RTQsIDB4NkQsIDB4QzAsIDB4MzIsIDB4NzYsIDB4NkUsCisgICAgMHg4MCwgMHg4NywgMHg5Niwg
MHgyRiwgMHgzNiwgMHhERiwgMHg5RCwgMHhGRSwgMHg4QiwgMHg1NiwgMHg3RiwgMHgzNywKKyAg
ICAweDYzLCAweDAxLCAweDVCLCAweDE5LCAweDkwLCAweEE2LCAweDBFLCAweDE0LAorICAgIC8v
IHktY29vcmRpbmF0ZQorICAgIDB4MjIsCisgICAgLy8gQnl0ZXMoMzIpCisgICAgMHg1OCwgMHgy
MCwKKyAgICAvLyBCeXRlIGFycmF5IGNvbnRlbnQKKyAgICAweDI3LCAweERFLCAweDYxLCAweDJE
LCAweDY2LCAweDQxLCAweDhCLCAweERBLCAweDE5LCAweDUwLCAweDU4LCAweDFFLAorICAgIDB4
QkMsIDB4NUMsIDB4OEMsIDB4MUQsIDB4QUQsIDB4NzEsIDB4MEMsIDB4QjEsIDB4NEMsIDB4MjIs
IDB4RjgsIDB4QzksCisgICAgMHg3MCwgMHg0NSwgMHhGNCwgMHg2MSwgMHgyRiwgMHhCMiwgMHgw
QywgMHg5MSwKK307CisKKy8vIFRoZSBhdHRlc3RhdGlvbiBzdGF0ZW1lbnQgZXh0cmFjdGVkIGZy
b20gYWJvdmUgfGtUZXN0VTJmUmVnaXN0ZXJSZXNwb25zZXwsIGEKKy8vIENCT1ItZW5jb2RlZCBi
eXRlIGFycmF5LgorLy8gRGlhZ25vc3RpYyBub3RhdGlvbjoKKy8vIHsic2lnIjoKKy8vIGgnMzA0
NTAyMjAzMjQ3NzlDNjhGMzM4MDI4OEExMTk3QjYwOTVGN0E2RUI5QjFCMUMxMjdGNjZBRTEyQTk5
RkU4NTMyRUMyM0I5CisvLyAgIDAyMjEwMEUzOTUxNkFDNEQ2MUVFNjQwNDRENTBCNDE1QTZBNEQ0
RDg0QkE2RDg5NUNCNUFCN0ExQUE3RDA4MURFMzQxRkEnLAorLy8gIng1YyI6IFtoJzMwODIwMjRB
MzA4MjAxMzJBMDAzMDIwMTAyMDIwNDA0NkM4ODIyMzAwRDA2MDkyQTg2NDg4NkY3MEQwMTAxMEIw
IFwKKy8vIDUwMDMwMkUzMTJDMzAyQTA2MDM1NTA0MDMxMzIzNTk3NTYyNjk2MzZGMjA1NTMyNDYy
MDUyNkY2Rjc0MjA0MzQxMjA1MzY1NzI2OSBcCisvLyA2MTZDMjAzNDM1MzczMjMwMzAzNjMzMzEz
MDIwMTcwRDMxMzQzMDM4MzAzMTMwMzAzMDMwMzAzMDVBMTgwRjMyMzAzNTMwMzAzOTMgXAorLy8g
MDM0MzAzMDMwMzAzMDMwNUEzMDJDMzEyQTMwMjgwNjAzNTUwNDAzMEMyMTU5NzU2MjY5NjM2RjIw
NTUzMjQ2MjA0NTQ1MjA1MzY1IFwKKy8vIDcyNjk2MTZDMjAzMjM0MzkzMTM4MzIzMzMyMzQzNzM3
MzAzMDU5MzAxMzA2MDcyQTg2NDhDRTNEMDIwMTA2MDgyQTg2NDhDRTNEMCBcCisvLyAzMDEwNzAz
NDIwMDA0M0NDQUI5MkNDQjk3Mjg3RUU4RTYzOTQzN0UyMUZDRDZCNkYxNjVCMkQ1QTNGM0RCMTMx
RDMxQzE2Qjc0MkIgXAorLy8gQjQ3NkQ4RDFFOTkwODBFQjU0NkM5QkJERjU1NkU2MjEwRkQ0Mjc4
NTg5OUU3OENDNTg5RUJFMzEwRjZDREI5RkY0QTMzQjMwMzkzIFwKKy8vIDAyMjA2MDkyQjA2MDEw
NDAxODJDNDBBMDIwNDE1MzEyRTMzMkUzNjJFMzEyRTM0MkUzMTJFMzQzMTM0MzgzMjJFMzEyRTMy
MzAxMyBcCisvLyAwNjBCMkIwNjAxMDQwMTgyRTUxQzAyMDEwMTA0MDQwMzAyMDQzMDMwMEQwNjA5
MkE4NjQ4ODZGNzBEMDEwMTBCMDUwMDAzODIwMTAgXAorLy8gMTAwOUY5QjA1MjI0OEJDNENGNDJD
QzU5OTFGQ0FBQkFDOUI2NTFCQkU1QkRDREM4RUYwQUQyQzFDMUZGQjM2RDE4NzE1RDQyRTc4IFwK
Ky8vIEIyNDkyMjRGOTJDN0U2RTdBMDVDNDlGMEU3RTRDODgxQkYyRTk0RjQ1RTRBMjE4MzNENzQ1
Njg1MUQwRjZDMTQ1QTI5NTQwQzg3NCBcCisvLyBGMzA5MkM5MzRCNDNEMjIyQjg5NjJDMEY0MTBD
RUYxREI3NTg5MkFGMTE2QjQ0QTk2RjVEMzVBREVBMzgyMkZDNzE0NkY2MDA0MzggXAorLy8gNUJD
QjY5QjY1Qzk5RTdFQjY5MTk3ODY3MDNDMEQ4Q0Q0MUU4Rjc1Q0NBNDRBQThBQjcyNUFEOEU3OTlG
RjNBODY5NkE2RjFCMjY1IFwKKy8vIDZFNjMxQjFFNDAxODNDMDhGREE1M0ZBNEE4Rjg1QTA1Njkz
OTQ0QUUxNzlBMTMzOUQwMDJEMTVDQUJEODEwMDkwRUM3MjJFRjVERSBcCisvLyBGOTk2NUEzNzFE
NDE1RDYyNEI2OEEyNzA3Q0FEOTdCQ0REMTc4NUFGOTdFMjU4RjMzREY1NkEwMzFBQTAzNTZEOEU4
RDVFQkNBREMgXAorLy8gNzRFMDcxNjM2QzZCMTEwQUNFNUNDOUI5MERGRUFDQUU2NDBGRjFCQjBG
MUZFNURCNEVGRjdBOTVGMDYwNzMzRjUnXX0KK2NvbnN0ZXhwciB1aW50OF90IGtVMmZBdHRlc3Rh
dGlvblN0YXRlbWVudENCT1JbXSA9IHsKKyAgICAvLyBNYXAoMikKKyAgICAweEEyLAorICAgIC8v
IFRleHQoMykKKyAgICAweDYzLAorICAgIC8vICJzaWciCisgICAgMHg3MywgMHg2OSwgMHg2NywK
KyAgICAvLyBCeXRlcyg3MSkKKyAgICAweDU4LCAweDQ3LAorICAgIC8vIEJ5dGUgYXJyYXkgY29u
dGVudAorICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4MjAsIDB4MzIsIDB4NDcsIDB4NzksIDB4QzYs
IDB4OEYsIDB4MzMsIDB4ODAsIDB4MjgsCisgICAgMHg4QSwgMHgxMSwgMHg5NywgMHhCNiwgMHgw
OSwgMHg1RiwgMHg3QSwgMHg2RSwgMHhCOSwgMHhCMSwgMHhCMSwgMHhDMSwKKyAgICAweDI3LCAw
eEY2LCAweDZBLCAweEUxLCAweDJBLCAweDk5LCAweEZFLCAweDg1LCAweDMyLCAweEVDLCAweDIz
LCAweEI5LAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4RTMsIDB4OTUsIDB4MTYsIDB4QUMsIDB4
NEQsIDB4NjEsIDB4RUUsIDB4NjQsIDB4MDQsCisgICAgMHg0RCwgMHg1MCwgMHhCNCwgMHgxNSwg
MHhBNiwgMHhBNCwgMHhENCwgMHhEOCwgMHg0QiwgMHhBNiwgMHhEOCwgMHg5NSwKKyAgICAweENC
LCAweDVBLCAweEI3LCAweEExLCAweEFBLCAweDdELCAweDA4LCAweDFELCAweEUzLCAweDQxLCAw
eEZBLAorICAgIC8vIFRleHQoMykKKyAgICAweDYzLAorICAgIC8vICJ4NWMiCisgICAgMHg3OCwg
MHgzNSwgMHg2MywKKyAgICAvLyBBcnJheSgxKQorICAgIDB4ODEsCisgICAgLy8gQnl0ZXMoNTkw
KQorICAgIDB4NTksIDB4MDIsIDB4NEUsCisgICAgLy8gQnl0ZSBhcnJheSBjb250ZW50CisgICAg
MHgzMCwgMHg4MiwgMHgwMiwgMHg0QSwgMHgzMCwgMHg4MiwgMHgwMSwgMHgzMiwgMHhBMCwgMHgw
MywgMHgwMiwgMHgwMSwKKyAgICAweDAyLCAweDAyLCAweDA0LCAweDA0LCAweDZDLCAweDg4LCAw
eDIyLCAweDMwLCAweDBELCAweDA2LCAweDA5LCAweDJBLAorICAgIDB4ODYsIDB4NDgsIDB4ODYs
IDB4RjcsIDB4MEQsIDB4MDEsIDB4MDEsIDB4MEIsIDB4MDUsIDB4MDAsIDB4MzAsIDB4MkUsCisg
ICAgMHgzMSwgMHgyQywgMHgzMCwgMHgyQSwgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwMywg
MHgxMywgMHgyMywgMHg1OSwKKyAgICAweDc1LCAweDYyLCAweDY5LCAweDYzLCAweDZGLCAweDIw
LCAweDU1LCAweDMyLCAweDQ2LCAweDIwLCAweDUyLCAweDZGLAorICAgIDB4NkYsIDB4NzQsIDB4
MjAsIDB4NDMsIDB4NDEsIDB4MjAsIDB4NTMsIDB4NjUsIDB4NzIsIDB4NjksIDB4NjEsIDB4NkMs
CisgICAgMHgyMCwgMHgzNCwgMHgzNSwgMHgzNywgMHgzMiwgMHgzMCwgMHgzMCwgMHgzNiwgMHgz
MywgMHgzMSwgMHgzMCwgMHgyMCwKKyAgICAweDE3LCAweDBELCAweDMxLCAweDM0LCAweDMwLCAw
eDM4LCAweDMwLCAweDMxLCAweDMwLCAweDMwLCAweDMwLCAweDMwLAorICAgIDB4MzAsIDB4MzAs
IDB4NUEsIDB4MTgsIDB4MEYsIDB4MzIsIDB4MzAsIDB4MzUsIDB4MzAsIDB4MzAsIDB4MzksIDB4
MzAsCisgICAgMHgzNCwgMHgzMCwgMHgzMCwgMHgzMCwgMHgzMCwgMHgzMCwgMHgzMCwgMHg1QSwg
MHgzMCwgMHgyQywgMHgzMSwgMHgyQSwKKyAgICAweDMwLCAweDI4LCAweDA2LCAweDAzLCAweDU1
LCAweDA0LCAweDAzLCAweDBDLCAweDIxLCAweDU5LCAweDc1LCAweDYyLAorICAgIDB4NjksIDB4
NjMsIDB4NkYsIDB4MjAsIDB4NTUsIDB4MzIsIDB4NDYsIDB4MjAsIDB4NDUsIDB4NDUsIDB4MjAs
IDB4NTMsCisgICAgMHg2NSwgMHg3MiwgMHg2OSwgMHg2MSwgMHg2QywgMHgyMCwgMHgzMiwgMHgz
NCwgMHgzOSwgMHgzMSwgMHgzOCwgMHgzMiwKKyAgICAweDMzLCAweDMyLCAweDM0LCAweDM3LCAw
eDM3LCAweDMwLCAweDMwLCAweDU5LCAweDMwLCAweDEzLCAweDA2LCAweDA3LAorICAgIDB4MkEs
IDB4ODYsIDB4NDgsIDB4Q0UsIDB4M0QsIDB4MDIsIDB4MDEsIDB4MDYsIDB4MDgsIDB4MkEsIDB4
ODYsIDB4NDgsCisgICAgMHhDRSwgMHgzRCwgMHgwMywgMHgwMSwgMHgwNywgMHgwMywgMHg0Miwg
MHgwMCwgMHgwNCwgMHgzQywgMHhDQSwgMHhCOSwKKyAgICAweDJDLCAweENCLCAweDk3LCAweDI4
LCAweDdFLCAweEU4LCAweEU2LCAweDM5LCAweDQzLCAweDdFLCAweDIxLCAweEZDLAorICAgIDB4
RDYsIDB4QjYsIDB4RjEsIDB4NjUsIDB4QjIsIDB4RDUsIDB4QTMsIDB4RjMsIDB4REIsIDB4MTMs
IDB4MUQsIDB4MzEsCisgICAgMHhDMSwgMHg2QiwgMHg3NCwgMHgyQiwgMHhCNCwgMHg3NiwgMHhE
OCwgMHhEMSwgMHhFOSwgMHg5MCwgMHg4MCwgMHhFQiwKKyAgICAweDU0LCAweDZDLCAweDlCLCAw
eEJELCAweEY1LCAweDU2LCAweEU2LCAweDIxLCAweDBGLCAweEQ0LCAweDI3LCAweDg1LAorICAg
IDB4ODksIDB4OUUsIDB4NzgsIDB4Q0MsIDB4NTgsIDB4OUUsIDB4QkUsIDB4MzEsIDB4MEYsIDB4
NkMsIDB4REIsIDB4OUYsCisgICAgMHhGNCwgMHhBMywgMHgzQiwgMHgzMCwgMHgzOSwgMHgzMCwg
MHgyMiwgMHgwNiwgMHgwOSwgMHgyQiwgMHgwNiwgMHgwMSwKKyAgICAweDA0LCAweDAxLCAweDgy
LCAweEM0LCAweDBBLCAweDAyLCAweDA0LCAweDE1LCAweDMxLCAweDJFLCAweDMzLCAweDJFLAor
ICAgIDB4MzYsIDB4MkUsIDB4MzEsIDB4MkUsIDB4MzQsIDB4MkUsIDB4MzEsIDB4MkUsIDB4MzQs
IDB4MzEsIDB4MzQsIDB4MzgsCisgICAgMHgzMiwgMHgyRSwgMHgzMSwgMHgyRSwgMHgzMiwgMHgz
MCwgMHgxMywgMHgwNiwgMHgwQiwgMHgyQiwgMHgwNiwgMHgwMSwKKyAgICAweDA0LCAweDAxLCAw
eDgyLCAweEU1LCAweDFDLCAweDAyLCAweDAxLCAweDAxLCAweDA0LCAweDA0LCAweDAzLCAweDAy
LAorICAgIDB4MDQsIDB4MzAsIDB4MzAsIDB4MEQsIDB4MDYsIDB4MDksIDB4MkEsIDB4ODYsIDB4
NDgsIDB4ODYsIDB4RjcsIDB4MEQsCisgICAgMHgwMSwgMHgwMSwgMHgwQiwgMHgwNSwgMHgwMCwg
MHgwMywgMHg4MiwgMHgwMSwgMHgwMSwgMHgwMCwgMHg5RiwgMHg5QiwKKyAgICAweDA1LCAweDIy
LCAweDQ4LCAweEJDLCAweDRDLCAweEY0LCAweDJDLCAweEM1LCAweDk5LCAweDFGLCAweENBLCAw
eEFCLAorICAgIDB4QUMsIDB4OUIsIDB4NjUsIDB4MUIsIDB4QkUsIDB4NUIsIDB4REMsIDB4REMs
IDB4OEUsIDB4RjAsIDB4QUQsIDB4MkMsCisgICAgMHgxQywgMHgxRiwgMHhGQiwgMHgzNiwgMHhE
MSwgMHg4NywgMHgxNSwgMHhENCwgMHgyRSwgMHg3OCwgMHhCMiwgMHg0OSwKKyAgICAweDIyLCAw
eDRGLCAweDkyLCAweEM3LCAweEU2LCAweEU3LCAweEEwLCAweDVDLCAweDQ5LCAweEYwLCAweEU3
LCAweEU0LAorICAgIDB4QzgsIDB4ODEsIDB4QkYsIDB4MkUsIDB4OTQsIDB4RjQsIDB4NUUsIDB4
NEEsIDB4MjEsIDB4ODMsIDB4M0QsIDB4NzQsCisgICAgMHg1NiwgMHg4NSwgMHgxRCwgMHgwRiwg
MHg2QywgMHgxNCwgMHg1QSwgMHgyOSwgMHg1NCwgMHgwQywgMHg4NywgMHg0RiwKKyAgICAweDMw
LCAweDkyLCAweEM5LCAweDM0LCAweEI0LCAweDNELCAweDIyLCAweDJCLCAweDg5LCAweDYyLCAw
eEMwLCAweEY0LAorICAgIDB4MTAsIDB4Q0UsIDB4RjEsIDB4REIsIDB4NzUsIDB4ODksIDB4MkEs
IDB4RjEsIDB4MTYsIDB4QjQsIDB4NEEsIDB4OTYsCisgICAgMHhGNSwgMHhEMywgMHg1QSwgMHhE
RSwgMHhBMywgMHg4MiwgMHgyRiwgMHhDNywgMHgxNCwgMHg2RiwgMHg2MCwgMHgwNCwKKyAgICAw
eDM4LCAweDVCLCAweENCLCAweDY5LCAweEI2LCAweDVDLCAweDk5LCAweEU3LCAweEVCLCAweDY5
LCAweDE5LCAweDc4LAorICAgIDB4NjcsIDB4MDMsIDB4QzAsIDB4RDgsIDB4Q0QsIDB4NDEsIDB4
RTgsIDB4RjcsIDB4NUMsIDB4Q0EsIDB4NDQsIDB4QUEsCisgICAgMHg4QSwgMHhCNywgMHgyNSwg
MHhBRCwgMHg4RSwgMHg3OSwgMHg5RiwgMHhGMywgMHhBOCwgMHg2OSwgMHg2QSwgMHg2RiwKKyAg
ICAweDFCLCAweDI2LCAweDU2LCAweEU2LCAweDMxLCAweEIxLCAweEU0LCAweDAxLCAweDgzLCAw
eEMwLCAweDhGLCAweERBLAorICAgIDB4NTMsIDB4RkEsIDB4NEEsIDB4OEYsIDB4ODUsIDB4QTAs
IDB4NTYsIDB4OTMsIDB4OTQsIDB4NEEsIDB4RTEsIDB4NzksCisgICAgMHhBMSwgMHgzMywgMHg5
RCwgMHgwMCwgMHgyRCwgMHgxNSwgMHhDQSwgMHhCRCwgMHg4MSwgMHgwMCwgMHg5MCwgMHhFQywK
KyAgICAweDcyLCAweDJFLCAweEY1LCAweERFLCAweEY5LCAweDk2LCAweDVBLCAweDM3LCAweDFE
LCAweDQxLCAweDVELCAweDYyLAorICAgIDB4NEIsIDB4NjgsIDB4QTIsIDB4NzAsIDB4N0MsIDB4
QUQsIDB4OTcsIDB4QkMsIDB4REQsIDB4MTcsIDB4ODUsIDB4QUYsCisgICAgMHg5NywgMHhFMiwg
MHg1OCwgMHhGMywgMHgzRCwgMHhGNSwgMHg2QSwgMHgwMywgMHgxQSwgMHhBMCwgMHgzNSwgMHg2
RCwKKyAgICAweDhFLCAweDhELCAweDVFLCAweEJDLCAweEFELCAweEM3LCAweDRFLCAweDA3LCAw
eDE2LCAweDM2LCAweEM2LCAweEIxLAorICAgIDB4MTAsIDB4QUMsIDB4RTUsIDB4Q0MsIDB4OUIs
IDB4OTAsIDB4REYsIDB4RUEsIDB4Q0EsIDB4RTYsIDB4NDAsIDB4RkYsCisgICAgMHgxQiwgMHhC
MCwgMHhGMSwgMHhGRSwgMHg1RCwgMHhCNCwgMHhFRiwgMHhGNywgMHhBOSwgMHg1RiwgMHgwNiwg
MHgwNywKKyAgICAweDMzLCAweEY1LAorfTsKKworLy8gVTJGIHJlc3BvbnNlIGJsb2IgcHJvZHVj
ZWQgYnkgYSBVMkYgc2lnbiByZXF1ZXN0IHVzZWQgaW4gZXhhbXBsZSA3IG9mIHRoZQorLy8gQ1RB
UCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0y
MDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAx
NzA5MjcuaHRtbCN1c2luZy10aGUtY3RhcDItYXV0aGVudGljYXRvcmdldGFzc2VydGlvbi1jb21t
YW5kLXdpdGgtY3RhcDEtdTJmLWF1dGhlbnRpY2F0b3JzCitjb25zdGV4cHIgdWludDhfdCBrVGVz
dFUyZlNpZ25SZXNwb25zZVtdID0geworICAgIC8vIFVzZXIgcHJlc2VuY2UKKyAgICAweDAxLAor
ICAgIC8vIFNpZ24gY291bnQoNCBieXRlcykKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDNCLAor
ICAgIC8vIFNpZ25hdHVyZQorICAgIDB4MzAsIDB4NDQsIDB4MDIsIDB4MjAsIDB4N0IsIDB4REUs
IDB4MEEsIDB4NTIsIDB4QUMsIDB4MUYsIDB4NEMsIDB4OEIsCisgICAgMHgyNywgMHhFMCwgMHgw
MywgMHhBMywgMHg3MCwgMHhDRCwgMHg2NiwgMHhBNCwgMHhDNywgMHgxMSwgMHg4RCwgMHhEMiwK
KyAgICAweDJELCAweDU0LCAweDQ3LCAweDgzLCAweDVGLCAweDQ1LCAweEI5LCAweDlDLCAweDY4
LCAweDQyLCAweDNGLCAweEY3LAorICAgIDB4MDIsIDB4MjAsIDB4M0MsIDB4NTEsIDB4N0IsIDB4
NDcsIDB4ODcsIDB4N0YsIDB4ODUsIDB4NzgsIDB4MkQsIDB4RTEsCisgICAgMHgwMCwgMHg4Niwg
MHhBNywgMHg4MywgMHhEMSwgMHhFNywgMHhERiwgMHg0RSwgMHgzNiwgMHgzOSwgMHhFNywgMHg3
MSwKKyAgICAweEY1LCAweEY2LCAweEFGLCAweEEzLCAweDVBLCAweEFELCAweDUzLCAweDczLCAw
eDg1LCAweDhFLAorfTsKKworLy8gQ1RBUCByZXF1ZXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2NvbnN0ZXhwciB1aW50
OF90IGtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0W10gPSB7CisgICAgLy8gYXV0aGVudGljYXRv
ck1ha2VDcmVkZW50aWFsIGNvbW1hbmQKKyAgICAweDAxLAorICAgIC8vIG1hcCg1KQorICAgIDB4
YTUsCisgICAgLy8ga2V5KDEpIC0gY2xpZW50RGF0YUhhc2gKKyAgICAweDAxLAorICAgIC8vIGJ5
dGVzKDMyKQorICAgIDB4NTgsIDB4MjAsIDB4NjgsIDB4NzEsIDB4MzQsIDB4OTYsIDB4ODIsIDB4
MjIsIDB4ZWMsIDB4MTcsIDB4MjAsIDB4MmUsCisgICAgMHg0MiwgMHg1MCwgMHg1ZiwgMHg4ZSwg
MHhkMiwgMHhiMSwgMHg2YSwgMHhlMiwgMHgyZiwgMHgxNiwgMHhiYiwgMHgwNSwKKyAgICAweGI4
LCAweDhjLCAweDI1LCAweGRiLCAweDllLCAweDYwLCAweDI2LCAweDQ1LCAweGYxLCAweDQxLAor
ICAgIC8vIGtleSgyKSAtIHJwCisgICAgMHgwMiwKKyAgICAvLyBtYXAoMikKKyAgICAweGEyLAor
ICAgIC8vIGtleSAtICJpZCIKKyAgICAweDYyLCAweDY5LCAweDY0LAorICAgIC8vIHZhbHVlIC0g
ImFjbWUuY29tIgorICAgIDB4NjgsIDB4NjEsIDB4NjMsIDB4NmQsIDB4NjUsIDB4MmUsIDB4NjMs
IDB4NmYsIDB4NmQsCisgICAgLy8ga2V5IC0gICJuYW1lIgorICAgIDB4NjQsIDB4NmUsIDB4NjEs
IDB4NmQsIDB4NjUsCisgICAgLy8gdmFsdWUgLSAiQWNtZSIKKyAgICAweDY0LCAweDQxLCAweDYz
LCAweDZkLCAweDY1LAorICAgIC8vIGtleSgzKSAtIHVzZXIKKyAgICAweDAzLAorICAgIC8vIG1h
cCg0KQorICAgIDB4YTQsCisgICAgLy8ga2V5IC0gImlkIgorICAgIDB4NjIsIDB4NjksIDB4NjQs
CisgICAgLy8gdmFsdWUgLSB1c2VyIGlkCisgICAgMHg0OCwgMHgxMCwgMHg5OCwgMHgyMywgMHg3
MiwgMHgzNSwgMHg0MCwgMHg5OCwgMHg3MiwKKyAgICAvLyBrZXkgLSAiaWNvbiIKKyAgICAweDY0
LCAweDY5LCAweDYzLCAweDZmLCAweDZlLAorICAgIC8vIHZhbHVlIC0gImh0dHBzOi8vcGljcy5h
Y21lLmNvbS8wMC9wL2FCampqcHFQYi5wbmciCisgICAgMHg3OCwgMHgyOCwgMHg2OCwgMHg3NCwg
MHg3NCwgMHg3MCwgMHg3MywgMHgzYSwgMHgyZiwgMHgyZiwgMHg3MCwgMHg2OSwKKyAgICAweDYz
LCAweDczLCAweDJlLCAweDYxLCAweDYzLCAweDZkLCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAw
eDZkLCAweDJmLAorICAgIDB4MzAsIDB4MzAsIDB4MmYsIDB4NzAsIDB4MmYsIDB4NjEsIDB4NDIs
IDB4NmEsIDB4NmEsIDB4NmEsIDB4NzAsIDB4NzEsCisgICAgMHg1MCwgMHg2MiwgMHgyZSwgMHg3
MCwgMHg2ZSwgMHg2NywKKyAgICAvLyBrZXkgLSAibmFtZSIKKyAgICAweDY0LCAweDZlLCAweDYx
LCAweDZkLCAweDY1LAorICAgIC8vIHZhbHVlIC0gImpvaG5wc21pdGhAZXhhbXBsZS5jb20iCisg
ICAgMHg3NiwgMHg2YSwgMHg2ZiwgMHg2OCwgMHg2ZSwgMHg3MCwgMHg3MywgMHg2ZCwgMHg2OSwg
MHg3NCwgMHg2OCwgMHg0MCwKKyAgICAweDY1LCAweDc4LCAweDYxLCAweDZkLCAweDcwLCAweDZj
LCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAweDZkLAorICAgIC8vIGtleSAtICJkaXNwbGF5TmFt
ZSIKKyAgICAweDZiLCAweDY0LCAweDY5LCAweDczLCAweDcwLCAweDZjLCAweDYxLCAweDc5LCAw
eDRlLCAweDYxLCAweDZkLCAweDY1LAorICAgIC8vIHZhbHVlIC0gIkpvaG4gUC4gU21pdGgiCisg
ICAgMHg2ZCwgMHg0YSwgMHg2ZiwgMHg2OCwgMHg2ZSwgMHgyMCwgMHg1MCwgMHgyZSwgMHgyMCwg
MHg1MywgMHg2ZCwgMHg2OSwKKyAgICAweDc0LCAweDY4LAorICAgIC8vIGtleSg0KSAtIHB1Yktl
eUNyZWRQYXJhbXMKKyAgICAweDA0LAorICAgIC8vIGFycmF5KDIpCisgICAgMHg4MiwKKyAgICAv
LyBtYXAoMikKKyAgICAweGEyLAorICAgIC8vIGtleSAtICJhbGciCisgICAgMHg2MywgMHg2MSwg
MHg2YywgMHg2NywKKyAgICAvLyB2YWx1ZSAtIDcKKyAgICAweDA3LAorICAgIC8vIGtleSAtICJ0
eXBlIgorICAgIDB4NjQsIDB4NzQsIDB4NzksIDB4NzAsIDB4NjUsCisgICAgLy8gdmFsdWUgLSAi
cHVibGljLWtleSIKKyAgICAweDZhLCAweDcwLCAweDc1LCAweDYyLCAweDZDLCAweDY5LCAweDYz
LCAweDJELCAweDZCLCAweDY1LCAweDc5LAorICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAg
Ly8ga2V5IC0gImFsZyIKKyAgICAweDYzLCAweDYxLCAweDZjLCAweDY3LAorICAgIC8vIHZhbHVl
IC0gMjU3CisgICAgMHgxOSwgMHgwMSwgMHgwMSwKKyAgICAvLyBrZXkgLSAidHlwZSIKKyAgICAw
eDY0LCAweDc0LCAweDc5LCAweDcwLCAweDY1LCAvLyAidHlwZSIKKyAgICAvLyB2YWx1ZSAtICJw
dWJsaWMta2V5IgorICAgIDB4NmEsIDB4NzAsIDB4NzUsIDB4NjIsIDB4NkMsIDB4NjksIDB4NjMs
IDB4MkQsIDB4NkIsIDB4NjUsIDB4NzksCisgICAgLy8ga2V5KDcpIC0gb3B0aW9ucworICAgIDB4
MDcsCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyBrZXkgLSAicmsiCisgICAgMHg2
MiwgMHg3MiwgMHg2YiwKKyAgICAvLyBUcnVlKDIxKQorICAgIDB4ZjUsCisgICAgLy8ga2V5IC0g
InV2IgorICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gVHJ1ZSgyMSkKKyAgICAweGY1fTsK
KworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3Rb
XSA9IHsKKyAgICAvLyBhdXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9uIGNvbW1hbmQKKyAgICAweDAy
LAorICAgIC8vIG1hcCg0KQorICAgIDB4YTQsCisgICAgLy8ga2V5KDAxKSAtcnBJZAorICAgIDB4
MDEsCisgICAgLy8gdmFsdWUgLSAiYWNtZS5jb20iCisgICAgMHg2OCwgMHg2MSwgMHg2MywgMHg2
ZCwgMHg2NSwgMHgyZSwgMHg2MywgMHg2ZiwgMHg2ZCwKKyAgICAvLyBrZXkoMDIpIC0gY2xpZW50
IGRhdGEgaGFzaAorICAgIDB4MDIsCisgICAgLy8gdmFsdWUgLSBieXRlcygzMikKKyAgICAweDU4
LCAweDIwLCAweDY4LCAweDcxLCAweDM0LCAweDk2LCAweDgyLCAweDIyLCAweGVjLCAweDE3LCAw
eDIwLCAweDJlLAorICAgIDB4NDIsIDB4NTAsIDB4NWYsIDB4OGUsIDB4ZDIsIDB4YjEsIDB4NmEs
IDB4ZTIsIDB4MmYsIDB4MTYsIDB4YmIsIDB4MDUsCisgICAgMHhiOCwgMHg4YywgMHgyNSwgMHhk
YiwgMHg5ZSwgMHg2MCwgMHgyNiwgMHg0NSwgMHhmMSwgMHg0MSwKKyAgICAvLyBrZXkoMDMpIC0g
YWxsb3cgbGlzdAorICAgIDB4MDMsCisgICAgLy8gdmFsdWUgLSBhcnJheSgyKQorICAgIDB4ODIs
CisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyBrZXkgLSAiaWQiCisgICAgMHg2Miwg
MHg2OSwgMHg2NCwKKyAgICAvLyB2YWx1ZSAtIGNyZWRlbnRpYWwgSUQKKyAgICAweDU4LCAweDQw
LCAweGYyLCAweDIwLCAweDA2LCAweGRlLCAweDRmLCAweDkwLCAweDVhLCAweGY2LCAweDhhLCAw
eDQzLAorICAgIDB4OTQsIDB4MmYsIDB4MDIsIDB4NGYsIDB4MmEsIDB4NWUsIDB4Y2UsIDB4NjAs
IDB4M2QsIDB4OWMsIDB4NmQsIDB4NGIsCisgICAgMHgzZCwgMHhmOCwgMHhiZSwgMHgwOCwgMHhl
ZCwgMHgwMSwgMHhmYywgMHg0NCwgMHgyNiwgMHg0NiwgMHhkMCwgMHgzNCwKKyAgICAweDg1LCAw
eDhhLCAweGM3LCAweDViLCAweGVkLCAweDNmLCAweGQ1LCAweDgwLCAweGJmLCAweDk4LCAweDA4
LCAweGQ5LAorICAgIDB4NGYsIDB4Y2IsIDB4ZWUsIDB4ODIsIDB4YjksIDB4YjIsIDB4ZWYsIDB4
NjYsIDB4NzcsIDB4YWYsIDB4MGEsIDB4ZGMsCisgICAgMHhjMywgMHg1OCwgMHg1MiwgMHhlYSwg
MHg2YiwgMHg5ZSwKKyAgICAvLyBrZXkgLSAidHlwZSIKKyAgICAweDY0LCAweDc0LCAweDc5LCAw
eDcwLCAweDY1LAorICAgIC8vIHZhbHVlIC0gInB1YmxpYy1rZXkiCisgICAgMHg2YSwgMHg3MCwg
MHg3NSwgMHg2MiwgMHg2QywgMHg2OSwgMHg2MywgMHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAg
ICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8vIGtleSAtICJpZCIKKyAgICAweDYyLCAweDY5
LCAweDY0LAorICAgIC8vIHZhbHVlIC0gY3JlZGVudGlhbCBJRAorICAgIDB4NTgsIDB4MzIsIDB4
MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMs
CisgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgw
MywgMHgwMywgMHgwMywgMHgwMywKKyAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAw
eDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgIDB4MDMsIDB4MDMs
IDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4
MDMsCisgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAvLyBrZXkgLSAidHlwZSIKKyAg
ICAweDY0LCAweDc0LCAweDc5LCAweDcwLCAweDY1LAorICAgIC8vIHZhbHVlIC0gInB1YmxpYy1r
ZXkiCisgICAgMHg2YSwgMHg3MCwgMHg3NSwgMHg2MiwgMHg2QywgMHg2OSwgMHg2MywgMHgyRCwg
MHg2QiwgMHg2NSwgMHg3OSwKKyAgICAvLyB1bnNpZ25lZCg1KSAtIG9wdGlvbnMKKyAgICAweDA1
LAorICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8ga2V5IC0idXAiCisgICAgMHg2Miwg
MHg3NSwgMHg3MCwKKyAgICAvLyB2YWx1ZSAtIEZhbHNlKDIwKQorICAgIDB4ZjQsCisgICAgLy8g
a2V5IC0gInV2IgorICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gdmFsdWUgLSBUcnVlKDIx
KQorICAgIDB4ZjUsCit9OworCisvLyBDVEFQIHJlc3BvbnNlcyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBBIHNhbXBs
ZSB3ZWxsIGZvcm1lZCByZXNwb25zZSB0byBDVEFQIEF1dGhlbnRpY2F0b3JHZXRJbmZvIHJlcXVl
c3QuIENyb3NzCisvLyBwbGF0Zm9ybSBkZXZpY2UgdGhhdCBzdXBwb3J0cyByZXNpZGVudCBrZXks
IGFuZCB1c2VyIHZlcmlmaWNhdGlvbi4KK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0QXV0aGVudGlj
YXRvckdldEluZm9SZXNwb25zZVtdID0geworICAgIDB4MDAsIDB4QTYsIDB4MDEsIDB4ODIsIDB4
NjgsIDB4NDYsIDB4NDksIDB4NDQsIDB4NEYsIDB4NUYsIDB4MzIsIDB4NUYsCisgICAgMHgzMCwg
MHg2NiwgMHg1NSwgMHgzMiwgMHg0NiwgMHg1RiwgMHg1NiwgMHgzMiwgMHgwMiwgMHg4MiwgMHg2
MywgMHg3NSwKKyAgICAweDc2LCAweDZELCAweDZCLCAweDY4LCAweDZELCAweDYxLCAweDYzLCAw
eDJELCAweDczLCAweDY1LCAweDYzLCAweDcyLAorICAgIDB4NjUsIDB4NzQsIDB4MDMsIDB4NTAs
IDB4RjgsIDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMsIDB4MEEsIDB4NEQsIDB4MTUsCisgICAgMHg4
MCwgMHgwNiwgMHgxNywgMHgxMSwgMHgxRiwgMHg5RSwgMHhEQywgMHg3RCwgMHgwNCwgMHhBNSwg
MHg2MiwgMHg3MiwKKyAgICAweDZCLCAweEY1LCAweDYyLCAweDc1LCAweDcwLCAweEY1LCAweDYy
LCAweDc1LCAweDc2LCAweEY1LCAweDY0LCAweDcwLAorICAgIDB4NkMsIDB4NjEsIDB4NzQsIDB4
RjQsIDB4NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4NTAsCisgICAg
MHg2OSwgMHg2RSwgMHhGNCwgMHgwNSwgMHgxOSwgMHgwNCwgMHhCMCwgMHgwNiwgMHg4MSwgMHgw
MSwKK307CisKKy8vIEF1dGhlbnRpY2F0b3JHZXRJbmZvIHJlcXVlc3Qgd2l0aCBhbGwgY29uZmln
dXJhdGlvbnMgZXF1YWwgdG8gdGhhdCBvZgorLy8ga1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jl
c3BvbnNlIGV4Y2VwdCBwbGF0Zm9ybSBkZXZpY2Ugb3B0aW9uIGlzIHNldCB0bworLy8gdHJ1ZS4K
K2NvbnN0ZXhwciB1aW50OF90IGtUZXN0R2V0SW5mb1Jlc3BvbnNlUGxhdGZvcm1EZXZpY2VbXSA9
IHsKKyAgICAweDAwLCAweEE2LCAweDAxLCAweDgyLCAweDY4LCAweDQ2LCAweDQ5LCAweDQ0LCAw
eDRGLCAweDVGLCAweDMyLCAweDVGLAorICAgIDB4MzAsIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYs
IDB4NUYsIDB4NTYsIDB4MzIsIDB4MDIsIDB4ODIsIDB4NjMsIDB4NzUsCisgICAgMHg3NiwgMHg2
RCwgMHg2QiwgMHg2OCwgMHg2RCwgMHg2MSwgMHg2MywgMHgyRCwgMHg3MywgMHg2NSwgMHg2Mywg
MHg3MiwKKyAgICAweDY1LCAweDc0LCAweDAzLCAweDUwLCAweEY4LCAweEEwLCAweDExLCAweEYz
LCAweDhDLCAweDBBLCAweDRELCAweDE1LAorICAgIDB4ODAsIDB4MDYsIDB4MTcsIDB4MTEsIDB4
MUYsIDB4OUUsIDB4REMsIDB4N0QsIDB4MDQsIDB4QTUsIDB4NjIsIDB4NzIsCisgICAgMHg2Qiwg
MHhGNSwgMHg2MiwgMHg3NSwgMHg3MCwgMHhGNSwgMHg2MiwgMHg3NSwgMHg3NiwgMHhGNSwgMHg2
NCwgMHg3MCwKKyAgICAvLyBwbGF0Zm9ybSBkZXZpY2UgOiB0cnVlCisgICAgMHg2QywgMHg2MSwg
MHg3NCwgMHhGNSwKKyAgICAvLyBFbmQgb2YgcGxhdGZvcm1fZGV2aWNlIHNldHRpbmcuCisgICAg
MHg2OSwgMHg2MywgMHg2QywgMHg2OSwgMHg2NSwgMHg2RSwgMHg3NCwgMHg1MCwgMHg2OSwgMHg2
RSwgMHhGNCwgMHgwNSwKKyAgICAweDE5LCAweDA0LCAweEIwLCAweDA2LCAweDgxLCAweDAxLAor
fTsKKworLy8gQSBTYW1wbGUgd2VsbCBmb3JtZWQgcmVzcG9uc2UgdG8gQ1RBUCBNYWtlQ3JlZGVu
dGlhbCByZXF1ZXN0LgorY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RNYWtlQ3JlZGVudGlhbFJlc3Bv
bnNlW10gPSB7CisgICAgLy8gU3VjY2VzcyBzdGF0dXMgYnl0ZQorICAgIDB4MDAsCisgICAgLy8g
TWFwKDAzKQorICAgIDB4YTMsCisgICAgLy8ga2V5KDAxKSAtIEZvcm1hdAorICAgIDB4MDEsCisg
ICAgLy8gInBhY2tlZCIKKyAgICAweDY2LCAweDcwLCAweDYxLCAweDYzLCAweDZiLCAweDY1LCAw
eDY0LAorICAgIC8vIGtleSgwMikgLSBBdXRoZW50aWNhdG9yIERhdGEKKyAgICAweDAyLAorICAg
IC8vIEJ5dGUoMTU0KQorICAgIDB4NTgsIDB4OWEsIDB4MTEsIDB4OTQsIDB4MjIsIDB4OGQsIDB4
YTgsIDB4ZmQsIDB4YmQsIDB4ZWUsIDB4ZmQsIDB4MjYsCisgICAgMHgxYiwgMHhkNywgMHhiNiwg
MHg1OSwgMHg1YywgMHhmZCwgMHg3MCwgMHhhNSwgMHgwZCwgMHg3MCwgMHhjNiwgMHg0MCwKKyAg
ICAweDdiLCAweGNmLCAweDAxLCAweDNkLCAweGU5LCAweDZkLCAweDRlLCAweGZiLCAweDE3LCAw
eGRlLCAweDQxLCAweDAwLAorICAgIDB4MDAsIDB4MDAsIDB4MGIsIDB4ZjgsIDB4YTAsIDB4MTEs
IDB4ZjMsIDB4OGMsIDB4MGEsIDB4NGQsIDB4MTUsIDB4ODAsCisgICAgMHgwNiwgMHgxNywgMHgx
MSwgMHgxZiwgMHg5ZSwgMHhkYywgMHg3ZCwgMHgwMCwgMHgxMCwgMHg4OSwgMHg1OSwgMHhjZSwK
KyAgICAweGFkLCAweDViLCAweDVjLCAweDQ4LCAweDE2LCAweDRlLCAweDhhLCAweGJjLCAweGQ2
LCAweGQ5LCAweDQzLCAweDVjLAorICAgIDB4NmYsIDB4YTMsIDB4NjMsIDB4NjEsIDB4NmMsIDB4
NjcsIDB4NjUsIDB4NDUsIDB4NTMsIDB4MzIsIDB4MzUsIDB4MzYsCisgICAgMHg2MSwgMHg3OCwg
MHg1OCwgMHgyMCwgMHhmNywgMHhjNCwgMHhmNCwgMHhhNiwgMHhmMSwgMHhkNywgMHg5NSwgMHgz
OCwKKyAgICAweGRmLCAweGE0LCAweGM5LCAweGFjLCAweDUwLCAweDg0LCAweDhkLCAweGY3LCAw
eDA4LCAweGJjLCAweDFjLCAweDk5LAorICAgIDB4ZjUsIDB4ZTYsIDB4MGUsIDB4NTEsIDB4YjQs
IDB4MmEsIDB4NTIsIDB4MWIsIDB4MzUsIDB4ZDMsIDB4YjYsIDB4OWEsCisgICAgMHg2MSwgMHg3
OSwgMHg1OCwgMHgyMCwgMHhkZSwgMHg3YiwgMHg3ZCwgMHg2YywgMHhhNSwgMHg2NCwgMHhlNywg
MHgwZSwKKyAgICAweGEzLCAweDIxLCAweGE0LCAweGQ1LCAweGQ5LCAweDZlLCAweGEwLCAweDBl
LCAweGYwLCAweGUyLCAweGRiLCAweDg5LAorICAgIDB4ZGQsIDB4NjEsIDB4ZDQsIDB4ODksIDB4
NGMsIDB4MTUsIDB4YWMsIDB4NTgsIDB4NWIsIDB4ZDIsIDB4MzYsIDB4ODQsCisgICAgLy8gS2V5
KDAzKSAtIEF0dGVzdGF0aW9uIG9iamVjdAorICAgIDB4MDMsCisgICAgLy8gTWFwIC0gQXR0ZXN0
YXRpb24gb2JqZWN0CisgICAgMHhhMywgMHg2MywgMHg2MSwgMHg2YywgMHg2NywgMHgyNiwgMHg2
MywgMHg3MywgMHg2OSwgMHg2NywgMHg1OCwgMHg0NywKKyAgICAweDMwLCAweDQ1LCAweDAyLCAw
eDIwLCAweDEzLCAweGY3LCAweDNjLCAweDVkLCAweDlkLCAweDUzLCAweDBlLCAweDhjLAorICAg
IDB4YzEsIDB4NWMsIDB4YzksIDB4YmQsIDB4OTYsIDB4YWQsIDB4NTgsIDB4NmQsIDB4MzksIDB4
MzYsIDB4NjQsIDB4ZTQsCisgICAgMHg2MiwgMHhkNSwgMHhmMCwgMHg1NiwgMHgxMiwgMHgzNSwg
MHhlNiwgMHgzNSwgMHgwZiwgMHgyYiwgMHg3MiwgMHg4OSwKKyAgICAweDAyLCAweDIxLCAweDAw
LCAweDkwLCAweDM1LCAweDdmLCAweGY5LCAweDEwLCAweGNjLCAweGI1LCAweDZhLCAweGM1LAor
ICAgIDB4YjUsIDB4OTYsIDB4NTEsIDB4MTksIDB4NDgsIDB4NTgsIDB4MWMsIDB4OGYsIDB4ZGQs
IDB4YjQsIDB4YTIsIDB4YjcsCisgICAgMHg5OSwgMHg1OSwgMHg5NCwgMHg4MCwgMHg3OCwgMHhi
MCwgMHg5ZiwgMHg0YiwgMHhkYywgMHg2MiwgMHgyOSwgMHg2MywKKyAgICAweDc4LCAweDM1LCAw
eDYzLCAweDgxLCAweDU5LCAweDAxLCAweDk3LCAweDMwLCAweDgyLCAweDAxLCAweDkzLCAweDMw
LAorICAgIDB4ODIsIDB4MDEsIDB4MzgsIDB4YTAsIDB4MDMsIDB4MDIsIDB4MDEsIDB4MDIsIDB4
MDIsIDB4MDksIDB4MDAsIDB4ODUsCisgICAgMHg5YiwgMHg3MiwgMHg2YywgMHhiMiwgMHg0Yiwg
MHg0YywgMHgyOSwgMHgzMCwgMHgwYSwgMHgwNiwgMHgwOCwgMHgyYSwKKyAgICAweDg2LCAweDQ4
LCAweGNlLCAweDNkLCAweDA0LCAweDAzLCAweDAyLCAweDMwLCAweDQ3LCAweDMxLCAweDBiLCAw
eDMwLAorICAgIDB4MDksIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MDYsIDB4MTMsIDB4MDIs
IDB4NTUsIDB4NTMsIDB4MzEsIDB4MTQsCisgICAgMHgzMCwgMHgxMiwgMHgwNiwgMHgwMywgMHg1
NSwgMHgwNCwgMHgwYSwgMHgwYywgMHgwYiwgMHg1OSwgMHg3NSwgMHg2MiwKKyAgICAweDY5LCAw
eDYzLCAweDZmLCAweDIwLCAweDU0LCAweDY1LCAweDczLCAweDc0LCAweDMxLCAweDIyLCAweDMw
LCAweDIwLAorICAgIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MGIsIDB4MGMsIDB4MTksIDB4
NDEsIDB4NzUsIDB4NzQsIDB4NjgsIDB4NjUsCisgICAgMHg2ZSwgMHg3NCwgMHg2OSwgMHg2Mywg
MHg2MSwgMHg3NCwgMHg2ZiwgMHg3MiwgMHgyMCwgMHg0MSwgMHg3NCwgMHg3NCwKKyAgICAweDY1
LCAweDczLCAweDc0LCAweDYxLCAweDc0LCAweDY5LCAweDZmLCAweDZlLCAweDMwLCAweDFlLCAw
eDE3LCAweDBkLAorICAgIDB4MzEsIDB4MzYsIDB4MzEsIDB4MzIsIDB4MzAsIDB4MzQsIDB4MzEs
IDB4MzEsIDB4MzUsIDB4MzUsIDB4MzAsIDB4MzAsCisgICAgMHg1YSwgMHgxNywgMHgwZCwgMHgz
MiwgMHgzNiwgMHgzMSwgMHgzMiwgMHgzMCwgMHgzMiwgMHgzMSwgMHgzMSwgMHgzNSwKKyAgICAw
eDM1LCAweDMwLCAweDMwLCAweDVhLCAweDMwLCAweDQ3LCAweDMxLCAweDBiLCAweDMwLCAweDA5
LCAweDA2LCAweDAzLAorICAgIDB4NTUsIDB4MDQsIDB4MDYsIDB4MTMsIDB4MDIsIDB4NTUsIDB4
NTMsIDB4MzEsIDB4MTQsIDB4MzAsIDB4MTIsIDB4MDYsCisgICAgMHgwMywgMHg1NSwgMHgwNCwg
MHgwYSwgMHgwYywgMHgwYiwgMHg1OSwgMHg3NSwgMHg2MiwgMHg2OSwgMHg2MywgMHg2ZiwKKyAg
ICAweDIwLCAweDU0LCAweDY1LCAweDczLCAweDc0LCAweDMxLCAweDIyLCAweDMwLCAweDIwLCAw
eDA2LCAweDAzLCAweDU1LAorICAgIDB4MDQsIDB4MGIsIDB4MGMsIDB4MTksIDB4NDEsIDB4NzUs
IDB4NzQsIDB4NjgsIDB4NjUsIDB4NmUsIDB4NzQsIDB4NjksCisgICAgMHg2MywgMHg2MSwgMHg3
NCwgMHg2ZiwgMHg3MiwgMHgyMCwgMHg0MSwgMHg3NCwgMHg3NCwgMHg2NSwgMHg3MywgMHg3NCwK
KyAgICAweDYxLCAweDc0LCAweDY5LCAweDZmLCAweDZlLCAweDMwLCAweDU5LCAweDMwLCAweDEz
LCAweDA2LCAweDA3LCAweDJhLAorICAgIDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2QsIDB4MDIsIDB4
MDEsIDB4MDYsIDB4MDgsIDB4MmEsIDB4ODYsIDB4NDgsIDB4Y2UsCisgICAgMHgzZCwgMHgwMywg
MHgwMSwgMHgwNywgMHgwMywgMHg0MiwgMHgwMCwgMHgwNCwgMHhhZCwgMHgxMSwgMHhlYiwgMHgw
ZSwKKyAgICAweDg4LCAweDUyLCAweGU1LCAweDNhLCAweGQ1LCAweGRmLCAweGVkLCAweDg2LCAw
eGI0LCAweDFlLCAweDYxLCAweDM0LAorICAgIDB4YTEsIDB4OGUsIDB4YzQsIDB4ZTEsIDB4YWYs
IDB4OGYsIDB4MjIsIDB4MWEsIDB4M2MsIDB4N2QsIDB4NmUsIDB4NjMsCisgICAgMHg2YywgMHg4
MCwgMHhlYSwgMHgxMywgMHhjMywgMHhkNSwgMHgwNCwgMHhmZiwgMHgyZSwgMHg3NiwgMHgyMSwg
MHgxYiwKKyAgICAweGI0LCAweDQ1LCAweDI1LCAweGIxLCAweDk2LCAweGM0LCAweDRjLCAweGI0
LCAweDg0LCAweDk5LCAweDc5LCAweGNmLAorICAgIDB4NmYsIDB4ODksIDB4NmUsIDB4Y2QsIDB4
MmIsIDB4YjgsIDB4NjAsIDB4ZGUsIDB4MWIsIDB4ZjQsIDB4MzcsIDB4NmIsCisgICAgMHhhMywg
MHgwZCwgMHgzMCwgMHgwYiwgMHgzMCwgMHgwOSwgMHgwNiwgMHgwMywgMHg1NSwgMHgxZCwgMHgx
MywgMHgwNCwKKyAgICAweDAyLCAweDMwLCAweDAwLCAweDMwLCAweDBhLCAweDA2LCAweDA4LCAw
eDJhLCAweDg2LCAweDQ4LCAweGNlLCAweDNkLAorICAgIDB4MDQsIDB4MDMsIDB4MDIsIDB4MDMs
IDB4NDksIDB4MDAsIDB4MzAsIDB4NDYsIDB4MDIsIDB4MjEsIDB4MDAsIDB4ZTksCisgICAgMHhh
MywgMHg5ZiwgMHgxYiwgMHgwMywgMHgxOSwgMHg3NSwgMHgyNSwgMHhmNywgMHgzNywgMHgzZSwg
MHgxMCwgMHhjZSwKKyAgICAweDc3LCAweGU3LCAweDgwLCAweDIxLCAweDczLCAweDFiLCAweDk0
LCAweGQwLCAweGMwLCAweDNmLCAweDNmLCAweGRhLAorICAgIDB4MWYsIDB4ZDIsIDB4MmQsIDB4
YjMsIDB4ZDAsIDB4MzAsIDB4ZTcsIDB4MDIsIDB4MjEsIDB4MDAsIDB4YzQsIDB4ZmEsCisgICAg
MHhlYywgMHgzNCwgMHg0NSwgMHhhOCwgMHgyMCwgMHhjZiwgMHg0MywgMHgxMiwgMHg5YywgMHhk
YiwgMHgwMCwgMHhhYSwKKyAgICAweGJlLCAweGZkLCAweDlhLCAweGUyLCAweGQ4LCAweDc0LCAw
eGY5LCAweGM1LCAweGQzLCAweDQzLCAweGNiLCAweDJmLAorICAgIDB4MTEsIDB4M2QsIDB4YTIs
IDB4MzcsIDB4MjMsIDB4ZjMsCit9OworCisvLyBCZWxvdyB8a0N0YXAyTWFrZUNyZWRlbnRpYWxD
ZXJ0aWZpY2F0ZXwsIHxrQ3RhcDJNYWtlQ3JlZGVudGlhbEF1dGhEYXRhfCwgYW5kCisvLyB8a0N0
YXAyTWFrZUNyZWRlbnRpYWxTaWduYXR1cmV8IGxldmVyYWdlIGV4YW1wbGUgNCBvZiB0aGUgQ1RB
UCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0y
MDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAx
NzA5MjcuaHRtbAorY29uc3RleHByIHVpbnQ4X3Qga0N0YXAyTWFrZUNyZWRlbnRpYWxDZXJ0aWZp
Y2F0ZVtdID0geworICAgIDB4MzAsIDB4ODIsIDB4MDEsIDB4OTMsIDB4MzAsIDB4ODIsIDB4MDEs
IDB4MzgsIDB4YTAsIDB4MDMsIDB4MDIsIDB4MDEsCisgICAgMHgwMiwgMHgwMiwgMHgwOSwgMHgw
MCwgMHg4NSwgMHg5YiwgMHg3MiwgMHg2YywgMHhiMiwgMHg0YiwgMHg0YywgMHgyOSwKKyAgICAw
eDMwLCAweDBhLCAweDA2LCAweDA4LCAweDJhLCAweDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDA0
LCAweDAzLCAweDAyLAorICAgIDB4MzAsIDB4NDcsIDB4MzEsIDB4MGIsIDB4MzAsIDB4MDksIDB4
MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MDYsIDB4MTMsCisgICAgMHgwMiwgMHg1NSwgMHg1Mywg
MHgzMSwgMHgxNCwgMHgzMCwgMHgxMiwgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwYSwKKyAg
ICAweDBjLCAweDBiLCAweDU5LCAweDc1LCAweDYyLCAweDY5LCAweDYzLCAweDZmLCAweDIwLCAw
eDU0LCAweDY1LCAweDczLAorICAgIDB4NzQsIDB4MzEsIDB4MjIsIDB4MzAsIDB4MjAsIDB4MDYs
IDB4MDMsIDB4NTUsIDB4MDQsIDB4MGIsIDB4MGMsIDB4MTksCisgICAgMHg0MSwgMHg3NSwgMHg3
NCwgMHg2OCwgMHg2NSwgMHg2ZSwgMHg3NCwgMHg2OSwgMHg2MywgMHg2MSwgMHg3NCwgMHg2ZiwK
KyAgICAweDcyLCAweDIwLCAweDQxLCAweDc0LCAweDc0LCAweDY1LCAweDczLCAweDc0LCAweDYx
LCAweDc0LCAweDY5LCAweDZmLAorICAgIDB4NmUsIDB4MzAsIDB4MWUsIDB4MTcsIDB4MGQsIDB4
MzEsIDB4MzYsIDB4MzEsIDB4MzIsIDB4MzAsIDB4MzQsIDB4MzEsCisgICAgMHgzMSwgMHgzNSwg
MHgzNSwgMHgzMCwgMHgzMCwgMHg1YSwgMHgxNywgMHgwZCwgMHgzMiwgMHgzNiwgMHgzMSwgMHgz
MiwKKyAgICAweDMwLCAweDMyLCAweDMxLCAweDMxLCAweDM1LCAweDM1LCAweDMwLCAweDMwLCAw
eDVhLCAweDMwLCAweDQ3LCAweDMxLAorICAgIDB4MGIsIDB4MzAsIDB4MDksIDB4MDYsIDB4MDMs
IDB4NTUsIDB4MDQsIDB4MDYsIDB4MTMsIDB4MDIsIDB4NTUsIDB4NTMsCisgICAgMHgzMSwgMHgx
NCwgMHgzMCwgMHgxMiwgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwYSwgMHgwYywgMHgwYiwg
MHg1OSwKKyAgICAweDc1LCAweDYyLCAweDY5LCAweDYzLCAweDZmLCAweDIwLCAweDU0LCAweDY1
LCAweDczLCAweDc0LCAweDMxLCAweDIyLAorICAgIDB4MzAsIDB4MjAsIDB4MDYsIDB4MDMsIDB4
NTUsIDB4MDQsIDB4MGIsIDB4MGMsIDB4MTksIDB4NDEsIDB4NzUsIDB4NzQsCisgICAgMHg2OCwg
MHg2NSwgMHg2ZSwgMHg3NCwgMHg2OSwgMHg2MywgMHg2MSwgMHg3NCwgMHg2ZiwgMHg3MiwgMHgy
MCwgMHg0MSwKKyAgICAweDc0LCAweDc0LCAweDY1LCAweDczLCAweDc0LCAweDYxLCAweDc0LCAw
eDY5LCAweDZmLCAweDZlLCAweDMwLCAweDU5LAorICAgIDB4MzAsIDB4MTMsIDB4MDYsIDB4MDcs
IDB4MmEsIDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2QsIDB4MDIsIDB4MDEsIDB4MDYsCisgICAgMHgw
OCwgMHgyYSwgMHg4NiwgMHg0OCwgMHhjZSwgMHgzZCwgMHgwMywgMHgwMSwgMHgwNywgMHgwMywg
MHg0MiwgMHgwMCwKKyAgICAweDA0LCAweGFkLCAweDExLCAweGViLCAweDBlLCAweDg4LCAweDUy
LCAweGU1LCAweDNhLCAweGQ1LCAweGRmLCAweGVkLAorICAgIDB4ODYsIDB4YjQsIDB4MWUsIDB4
NjEsIDB4MzQsIDB4YTEsIDB4OGUsIDB4YzQsIDB4ZTEsIDB4YWYsIDB4OGYsIDB4MjIsCisgICAg
MHgxYSwgMHgzYywgMHg3ZCwgMHg2ZSwgMHg2MywgMHg2YywgMHg4MCwgMHhlYSwgMHgxMywgMHhj
MywgMHhkNSwgMHgwNCwKKyAgICAweGZmLCAweDJlLCAweDc2LCAweDIxLCAweDFiLCAweGI0LCAw
eDQ1LCAweDI1LCAweGIxLCAweDk2LCAweGM0LCAweDRjLAorICAgIDB4YjQsIDB4ODQsIDB4OTks
IDB4NzksIDB4Y2YsIDB4NmYsIDB4ODksIDB4NmUsIDB4Y2QsIDB4MmIsIDB4YjgsIDB4NjAsCisg
ICAgMHhkZSwgMHgxYiwgMHhmNCwgMHgzNywgMHg2YiwgMHhhMywgMHgwZCwgMHgzMCwgMHgwYiwg
MHgzMCwgMHgwOSwgMHgwNiwKKyAgICAweDAzLCAweDU1LCAweDFkLCAweDEzLCAweDA0LCAweDAy
LCAweDMwLCAweDAwLCAweDMwLCAweDBhLCAweDA2LCAweDA4LAorICAgIDB4MmEsIDB4ODYsIDB4
NDgsIDB4Y2UsIDB4M2QsIDB4MDQsIDB4MDMsIDB4MDIsIDB4MDMsIDB4NDksIDB4MDAsIDB4MzAs
CisgICAgMHg0NiwgMHgwMiwgMHgyMSwgMHgwMCwgMHhlOSwgMHhhMywgMHg5ZiwgMHgxYiwgMHgw
MywgMHgxOSwgMHg3NSwgMHgyNSwKKyAgICAweGY3LCAweDM3LCAweDNlLCAweDEwLCAweGNlLCAw
eDc3LCAweGU3LCAweDgwLCAweDIxLCAweDczLCAweDFiLCAweDk0LAorICAgIDB4ZDAsIDB4YzAs
IDB4M2YsIDB4M2YsIDB4ZGEsIDB4MWYsIDB4ZDIsIDB4MmQsIDB4YjMsIDB4ZDAsIDB4MzAsIDB4
ZTcsCisgICAgMHgwMiwgMHgyMSwgMHgwMCwgMHhjNCwgMHhmYSwgMHhlYywgMHgzNCwgMHg0NSwg
MHhhOCwgMHgyMCwgMHhjZiwgMHg0MywKKyAgICAweDEyLCAweDljLCAweGRiLCAweDAwLCAweGFh
LCAweGJlLCAweGZkLCAweDlhLCAweGUyLCAweGQ4LCAweDc0LCAweGY5LAorICAgIDB4YzUsIDB4
ZDMsIDB4NDMsIDB4Y2IsIDB4MmYsIDB4MTEsIDB4M2QsIDB4YTIsIDB4MzcsIDB4MjMsIDB4ZjN9
OworCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcDJNYWtlQ3JlZGVudGlhbEF1dGhEYXRhW10gPSB7
CisgICAgMHgxMSwgMHg5NCwgMHgyMiwgMHg4RCwgMHhBOCwgMHhGRCwgMHhCRCwgMHhFRSwgMHhG
RCwgMHgyNiwgMHgxQiwgMHhENywKKyAgICAweEI2LCAweDU5LCAweDVDLCAweEZELCAweDcwLCAw
eEE1LCAweDBELCAweDcwLCAweEM2LCAweDQwLCAweDdCLCAweENGLAorICAgIDB4MDEsIDB4M0Qs
IDB4RTksIDB4NkQsIDB4NEUsIDB4RkIsIDB4MTcsIDB4REUsIDB4NDEsIDB4MDAsIDB4MDAsIDB4
MDAsCisgICAgMHgwYiwgMHhmOCwgMHhhMCwgMHgxMSwgMHhmMywgMHg4YywgMHgwYSwgMHg0ZCwg
MHgxNSwgMHg4MCwgMHgwNiwgMHgxNywKKyAgICAweDExLCAweDFmLCAweDllLCAweGRjLCAweDdk
LCAweDAwLCAweDEwLCAweDg5LCAweDU5LCAweGNlLCAweGFkLCAweDViLAorICAgIDB4NWMsIDB4
NDgsIDB4MTYsIDB4NGUsIDB4OGEsIDB4YmMsIDB4ZDYsIDB4ZDksIDB4NDMsIDB4NWMsIDB4NmYs
IDB4YTMsCisgICAgMHg2MywgMHg2MSwgMHg2YywgMHg2NywgMHg2NSwgMHg0NSwgMHg1MywgMHgz
MiwgMHgzNSwgMHgzNiwgMHg2MSwgMHg3OCwKKyAgICAweDU4LCAweDIwLCAweGY3LCAweGM0LCAw
eGY0LCAweGE2LCAweGYxLCAweGQ3LCAweDk1LCAweDM4LCAweGRmLCAweGE0LAorICAgIDB4Yzks
IDB4YWMsIDB4NTAsIDB4ODQsIDB4OGQsIDB4ZjcsIDB4MDgsIDB4YmMsIDB4MWMsIDB4OTksIDB4
ZjUsIDB4ZTYsCisgICAgMHgwZSwgMHg1MSwgMHhiNCwgMHgyYSwgMHg1MiwgMHgxYiwgMHgzNSwg
MHhkMywgMHhiNiwgMHg5YSwgMHg2MSwgMHg3OSwKKyAgICAweDU4LCAweDIwLCAweGRlLCAweDdi
LCAweDdkLCAweDZjLCAweGE1LCAweDY0LCAweGU3LCAweDBlLCAweGEzLCAweDIxLAorICAgIDB4
YTQsIDB4ZDUsIDB4ZDksIDB4NmUsIDB4YTAsIDB4MGUsIDB4ZjAsIDB4ZTIsIDB4ZGIsIDB4ODks
IDB4ZGQsIDB4NjEsCisgICAgMHhkNCwgMHg4OSwgMHg0YywgMHgxNSwgMHhhYywgMHg1OCwgMHg1
YiwgMHhkMiwgMHgzNiwgMHg4NH07CisKK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwMk1ha2VDcmVk
ZW50aWFsU2lnbmF0dXJlW10gPSB7CisgICAgMHgzMCwgMHg0NSwgMHgwMiwgMHgyMCwgMHgxMywg
MHhmNywgMHgzYywgMHg1ZCwgMHg5ZCwgMHg1MywgMHgwZSwgMHg4YywKKyAgICAweGMxLCAweDVj
LCAweGM5LCAweGJkLCAweDk2LCAweGFkLCAweDU4LCAweDZkLCAweDM5LCAweDM2LCAweDY0LCAw
eGU0LAorICAgIDB4NjIsIDB4ZDUsIDB4ZjAsIDB4NTYsIDB4MTIsIDB4MzUsIDB4ZTYsIDB4MzUs
IDB4MGYsIDB4MmIsIDB4NzIsIDB4ODksCisgICAgMHgwMiwgMHgyMSwgMHgwMCwgMHg5MCwgMHgz
NSwgMHg3ZiwgMHhmOSwgMHgxMCwgMHhjYywgMHhiNSwgMHg2YSwgMHhjNSwKKyAgICAweGI1LCAw
eDk2LCAweDUxLCAweDE5LCAweDQ4LCAweDU4LCAweDFjLCAweDhmLCAweGRkLCAweGI0LCAweGEy
LCAweGI3LAorICAgIDB4OTksIDB4NTksIDB4OTQsIDB4ODAsIDB4NzgsIDB4YjAsIDB4OWYsIDB4
NGIsIDB4ZGMsIDB4NjIsIDB4Mjl9OworCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcDJNYWtlQ3Jl
ZGVudGlhbENyZWRlbnRpYWxJZFtdID0geworICAgIDB4ODksIDB4NTksIDB4Y2UsIDB4YWQsIDB4
NWIsIDB4NWMsIDB4NDgsIDB4MTYsCisgICAgMHg0ZSwgMHg4YSwgMHhiYywgMHhkNiwgMHhkOSwg
MHg0MywgMHg1YywgMHg2ZiwKK307CisKK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwMkdldEFzc2Vy
dGlvbkF1dGhEYXRhW10gPSB7CisgICAgMHg2MiwgMHg1ZCwgMHhkYSwgMHhkZiwgMHg3NCwgMHgz
ZiwgMHg1NywgMHgyNywgMHhlNiwgMHg2YiwKKyAgICAweGJhLCAweDhjLCAweDJlLCAweDM4LCAw
eDc5LCAweDIyLCAweGQxLCAweGFmLCAweDQzLCAweGM1LAorICAgIDB4MDMsIDB4ZDksIDB4MTEs
IDB4NGEsIDB4OGYsIDB4YmEsIDB4MTAsIDB4NGQsIDB4ODQsIDB4ZDAsCisgICAgMHgyYiwgMHhm
YSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMX07CisKK2NvbnN0ZXhwciB1aW50OF90IGtD
dGFwMkdldEFzc2VydGlvblNpZ25hdHVyZVtdID0geworICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4
MjAsIDB4NGEsIDB4NWEsIDB4OWQsIDB4ZDMsIDB4OTIsIDB4OTgsIDB4MTQsIDB4OWQsCisgICAg
MHg5MCwgMHg0NywgMHg2OSwgMHhiNSwgMHgxYSwgMHg0NSwgMHgxNCwgMHgzMywgMHgwMCwgMHg2
ZiwgMHgxOCwgMHgyYSwKKyAgICAweDM0LCAweGZiLCAweGRmLCAweDY2LCAweGRlLCAweDVmLCAw
eGM3LCAweDE3LCAweGQ3LCAweDVmLCAweGIzLCAweDUwLAorICAgIDB4MDIsIDB4MjEsIDB4MDAs
IDB4YTQsIDB4NmIsIDB4OGUsIDB4YTMsIDB4YzMsIDB4YjksIDB4MzMsIDB4ODIsIDB4MWMsCisg
ICAgMHg2ZSwgMHg3ZiwgMHg1ZSwgMHhmOSwgMHhkYSwgMHhhZSwgMHg5NCwgMHhhYiwgMHg0Nywg
MHhmMSwgMHg4ZCwgMHhiNCwKKyAgICAweDc0LCAweGM3LCAweDQ3LCAweDkwLCAweGVhLCAweGFi
LCAweGIxLCAweDQ0LCAweDExLCAweGU3LCAweGEwLAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qg
a0RldmljZUdldEFzc2VydGlvblJlc3BvbnNlW10gPSB7CisgICAgLy8gU3VjY2VzcyByZXNwb25z
ZSBjb2RlCisgICAgMHgwMCwKKyAgICAvLyBtYXAoNSkKKyAgICAweGE1LAorICAgIC8vIHVuc2ln
bmVkKDEpIC0gQ3JlZGVudGlhbAorICAgIDB4MDEsCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwK
KyAgICAvLyB0ZXh0KDIpCisgICAgMHg2MiwKKyAgICAvLyAiaWQiCisgICAgMHg2OSwgMHg2NCwK
KyAgICAvLyBieXRlcyg2NCkKKyAgICAweDU4LCAweDQwLAorICAgIC8vIGNyZWRlbnRpYWwgaWQK
KyAgICAweGYyLCAweDIwLCAweDA2LCAweGRlLCAweDRmLCAweDkwLCAweDVhLCAweGY2LCAweDhh
LCAweDQzLCAweDk0LCAweDJmLAorICAgIDB4MDIsIDB4NGYsIDB4MmEsIDB4NWUsIDB4Y2UsIDB4
NjAsIDB4M2QsIDB4OWMsIDB4NmQsIDB4NGIsIDB4M2QsIDB4ZjgsCisgICAgMHhiZSwgMHgwOCwg
MHhlZCwgMHgwMSwgMHhmYywgMHg0NCwgMHgyNiwgMHg0NiwgMHhkMCwgMHgzNCwgMHg4NSwgMHg4
YSwKKyAgICAweGM3LCAweDViLCAweGVkLCAweDNmLCAweGQ1LCAweDgwLCAweGJmLCAweDk4LCAw
eDA4LCAweGQ5LCAweDRmLCAweGNiLAorICAgIDB4ZWUsIDB4ODIsIDB4YjksIDB4YjIsIDB4ZWYs
IDB4NjYsIDB4NzcsIDB4YWYsIDB4MGEsIDB4ZGMsIDB4YzMsIDB4NTgsCisgICAgMHg1MiwgMHhl
YSwgMHg2YiwgMHg5ZSwKKyAgICAvLyB0ZXh0KDQpCisgICAgMHg2NCwKKyAgICAvLyAidHlwZSIK
KyAgICAweDc0LCAweDc5LCAweDcwLCAweDY1LAorICAgIC8vIHRleHQoMTApCisgICAgMHg2YSwK
KyAgICAvLyAicHVibGljLWtleSIKKyAgICAweDcwLCAweDc1LCAweDYyLCAweDZDLCAweDY5LCAw
eDYzLCAweDJELCAweDZCLCAweDY1LCAweDc5LAorICAgIC8vIHVuc2lnbmVkKDIpIC0gQXV0aCBk
YXRhCisgICAgMHgwMiwKKyAgICAvLyBieXRlcygzNykKKyAgICAweDU4LCAweDI1LAorICAgIC8v
IGF1dGggZGF0YQorICAgIDB4NjIsIDB4NWQsIDB4ZGEsIDB4ZGYsIDB4NzQsIDB4M2YsIDB4NTcs
IDB4MjcsIDB4ZTYsIDB4NmIsIDB4YmEsIDB4OGMsCisgICAgMHgyZSwgMHgzOCwgMHg3OSwgMHgy
MiwgMHhkMSwgMHhhZiwgMHg0MywgMHhjNSwgMHgwMywgMHhkOSwgMHgxMSwgMHg0YSwKKyAgICAw
eDhmLCAweGJhLCAweDEwLCAweDRkLCAweDg0LCAweGQwLCAweDJiLCAweGZhLCAweDAxLCAweDAw
LCAweDAwLCAweDAwLAorICAgIDB4MTEsCisgICAgLy8gdW5zaWduZWQoMykgLSBzaWduYXR1cmUK
KyAgICAweDAzLAorICAgIC8vIGJ5dGVzKDcxKQorICAgIDB4NTgsIDB4NDcsCisgICAgLy8gc2ln
bmF0dXJlCisgICAgMHgzMCwgMHg0NSwgMHgwMiwgMHgyMCwgMHg0YSwgMHg1YSwgMHg5ZCwgMHhk
MywgMHg5MiwgMHg5OCwgMHgxNCwgMHg5ZCwKKyAgICAweDkwLCAweDQ3LCAweDY5LCAweGI1LCAw
eDFhLCAweDQ1LCAweDE0LCAweDMzLCAweDAwLCAweDZmLCAweDE4LCAweDJhLAorICAgIDB4MzQs
IDB4ZmIsIDB4ZGYsIDB4NjYsIDB4ZGUsIDB4NWYsIDB4YzcsIDB4MTcsIDB4ZDcsIDB4NWYsIDB4
YjMsIDB4NTAsCisgICAgMHgwMiwgMHgyMSwgMHgwMCwgMHhhNCwgMHg2YiwgMHg4ZSwgMHhhMywg
MHhjMywgMHhiOSwgMHgzMywgMHg4MiwgMHgxYywKKyAgICAweDZlLCAweDdmLCAweDVlLCAweGY5
LCAweGRhLCAweGFlLCAweDk0LCAweGFiLCAweDQ3LCAweGYxLCAweDhkLCAweGI0LAorICAgIDB4
NzQsIDB4YzcsIDB4NDcsIDB4OTAsIDB4ZWEsIDB4YWIsIDB4YjEsIDB4NDQsIDB4MTEsIDB4ZTcs
IDB4YTAsCisgICAgLy8gdW5zaWduZWQoNCkgLSBwdWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0
eQorICAgIDB4MDQsCisgICAgLy8gbWFwKDQpCisgICAgMHhhNCwKKyAgICAvLyB0ZXh0KDIpCisg
ICAgMHg2MiwKKyAgICAvLyAiaWQiCisgICAgMHg2OSwgMHg2NCwKKyAgICAvLyBieXRlcygzMikg
LSB1c2VyIGlkCisgICAgMHg1OCwgMHgyMCwKKyAgICAvLyB1c2VyIGlkCisgICAgMHgzMCwgMHg4
MiwgMHgwMSwgMHg5MywgMHgzMCwgMHg4MiwgMHgwMSwgMHgzOCwgMHhhMCwgMHgwMywgMHgwMiwg
MHgwMSwKKyAgICAweDAyLCAweDMwLCAweDgyLCAweDAxLCAweDkzLCAweDMwLCAweDgyLCAweDAx
LCAweDM4LCAweGEwLCAweDAzLCAweDAyLAorICAgIDB4MDEsIDB4MDIsIDB4MzAsIDB4ODIsIDB4
MDEsIDB4OTMsIDB4MzAsIDB4ODIsCisgICAgLy8gdGV4dCg0KQorICAgIDB4NjQsCisgICAgLy8g
Imljb24iCisgICAgMHg2OSwgMHg2MywgMHg2ZiwgMHg2ZSwKKyAgICAvLyB0ZXh0KDQwKQorICAg
IDB4NzgsIDB4MjgsCisgICAgLy8gImh0dHBzOi8vcGljcy5hY21lLmNvbS8wMC9wL2FCampqcHFQ
Yi5wbmciCisgICAgMHg2OCwgMHg3NCwgMHg3NCwgMHg3MCwgMHg3MywgMHgzYSwgMHgyZiwgMHgy
ZiwgMHg3MCwgMHg2OSwgMHg2MywgMHg3MywKKyAgICAweDJlLCAweDYxLCAweDYzLCAweDZkLCAw
eDY1LCAweDJlLCAweDYzLCAweDZmLCAweDZkLCAweDJmLCAweDMwLCAweDMwLAorICAgIDB4MmYs
IDB4NzAsIDB4MmYsIDB4NjEsIDB4NDIsIDB4NmEsIDB4NmEsIDB4NmEsIDB4NzAsIDB4NzEsIDB4
NTAsIDB4NjIsCisgICAgMHgyZSwgMHg3MCwgMHg2ZSwgMHg2NywKKyAgICAvLyB0ZXh0KDQpCisg
ICAgMHg2NCwKKyAgICAvLyAibmFtZSIKKyAgICAweDZlLCAweDYxLCAweDZkLCAweDY1LAorICAg
IC8vIHRleHQoMjIpCisgICAgMHg3NiwKKyAgICAvLyAiam9obnBzbWl0aEBleGFtcGxlLmNvbSIK
KyAgICAweDZhLCAweDZmLCAweDY4LCAweDZlLCAweDcwLCAweDczLCAweDZkLCAweDY5LCAweDc0
LCAweDY4LCAweDQwLCAweDY1LAorICAgIDB4NzgsIDB4NjEsIDB4NmQsIDB4NzAsIDB4NmMsIDB4
NjUsIDB4MmUsIDB4NjMsIDB4NmYsIDB4NmQsCisgICAgLy8gdGV4dCgxMSkKKyAgICAweDZiLAor
ICAgIC8vICJkaXNwbGF5TmFtZSIKKyAgICAweDY0LCAweDY5LCAweDczLCAweDcwLCAweDZjLCAw
eDYxLCAweDc5LCAweDRlLCAweDYxLCAweDZkLCAweDY1LAorICAgIC8vIHRleHQoMTMpCisgICAg
MHg2ZCwKKyAgICAvLyAiSm9obiBQLiBTbWl0aCIKKyAgICAweDRhLCAweDZmLCAweDY4LCAweDZl
LCAweDIwLCAweDUwLCAweDJlLCAweDIwLCAweDUzLCAweDZkLCAweDY5LCAweDc0LAorICAgIDB4
NjgsCisgICAgLy8gdW5zaWduZWQoNSkgLSBudW1iZXIgb2YgY3JlZGVudGlhbHMKKyAgICAweDA1
LAorICAgIC8vIDEKKyAgICAweDAxLAorfTsKKworfSAvLyBuYW1lc3BhY2UgVGVzdERhdGEKKwor
fSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRI
TikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353518</attachid>
            <date>2018-10-31 12:22:26 -0700</date>
            <delta_ts>2018-10-31 12:43:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190784-20181031122225.patch</filename>
            <type>text/plain</type>
            <size>148661</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFmNDQ3ZDE1N2JlMDJh
MzA1Y2UyMDk2MDdlNTc5ZjYxNjM3YmNhOS4uMzU1MzE5MjU4ZTc3MmEyYzJiMTJiOWZhYWQ2Mzkx
OTcwNWRmNzY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDE4LTEwLTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBv
cnQgQ1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzIGZyb20gQ2hyb21pdW0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDc4NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU0NjAzMzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBvcnRzIENocm9taXVtJ3Mg
Q1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzOgorICAgICAgICBodHRwczov
L2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50
LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sI21lc3NhZ2Ut
ZW5jb2RpbmcKKyAgICAgICAgMS4gSXQgZGlyZWN0bHkgaW1wb3J0cyB0aGUgZm9sbG93aW5nIGZp
bGVzIGFuZCBzdWl0IHRoZW0gdG8gV2ViS2l0J3MgY29kaW5nIHN0eWxlOgorICAgICAgICBodHRw
czovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vZGV2aWNlX3Jlc3Bv
bnNlX2NvbnZlcnRlci5jYz9sPTIwJnJjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQy
ZDk5YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9k
ZXZpY2UvZmlkby9kZXZpY2VfcmVzcG9uc2VfY29udmVydGVyLmg/cmNsPTA5OGRmZDkwODUwZmZh
ODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5v
cmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhlbnRpY2F0b3JfZ2V0X2luZm9fcmVzcG9u
c2UuY2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAg
ICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhl
bnRpY2F0b3JfZ2V0X2luZm9fcmVzcG9uc2UuaD9yY2w9MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRh
Yjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1
bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9zdXBwb3J0ZWRfb3B0aW9ucy5jYz9yY2w9
MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczov
L2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9z
dXBwb3J0ZWRfb3B0aW9ucy5oP3JjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5
YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9kZXZp
Y2UvZmlkby9jdGFwX3JlcXVlc3RfdW5pdHRlc3QuY2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdh
ODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hy
b21pdW0vc3JjL2RldmljZS9maWRvL2N0YXBfcmVzcG9uc2VfdW5pdHRlc3QuY2M/cmNsPTA5OGRm
ZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5j
aHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2ZpZG9fdGVzdF9kYXRhLmg/bD0x
JnJjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5YzRlYzQ1CisgICAgICAgIDIu
IEl0IGdhdGhlcnMgdGhlIGZvbGxvd2luZyBtZXRob2RzIGludG8gRGV2aWNlUmVxdWVzdENvbnZl
cnRlcjoKKyAgICAgICAgQ3RhcEdldEFzc2VydGlvblJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisg
ICAgICAgIEN0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisgICAgICAg
IFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yOjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAg
UHVibGljS2V5Q3JlZGVudGlhbFBhcmFtczo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1Ymxp
Y0tleUNyZWRlbnRpYWxScEVudGl0eTo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1YmxpY0tl
eUNyZWRlbnRpYWxVc2VyRW50aXR5OjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAgMy4gSXQgYWxz
byBhcHBseSBhIHBhdGNoIGZyb20gQ2hyb21pdW0gdG8gQ0JPUlZhbHVlOgorICAgICAgICBodHRw
czovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjLysvN2I2ZmJmZjM1Y2Q4
ZTRkNTA4ZjA4ZTFjZDkzYjRhYTBhMGRjNDAyYyU1RSUyMS8KKworICAgICAgICBCZXNpZGVzIGlt
cG9ydGluZyB0aGluZ3MgZnJvbSBDaHJvbWl1bSwgaXQgYWxzbyBpbXBsZW1lbnRzIFVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudCBmb3IgYm90aAorICAgICAgICBQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zIGFuZCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgc3Vj
aCB0aGF0IGJvdGggb3B0aW9ucworICAgICAgICBjYW4gc3BlY2lmeSBtb3JlIGRpbWVuc2lvbnMg
b2YgYSBkZXNpcmVkIGF1dGhlbnRpY2F0b3IuCisKKyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVz
dHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
czo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjpkZWNvZGUpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9uczo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMu
aWRsLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpDQk9S
VmFsdWUpOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpnZXRCb29sIGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmg6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKGZpZG86OnRvQXJyYXlWYWx1ZSk6CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlOjpBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKToKKyAgICAg
ICAgKGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldE1heE1zZ1NpemUpOgor
ICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0UGluUHJvdG9j
b2xzKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldEV4
dGVuc2lvbnMpOgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6
c2V0T3B0aW9ucyk6CisgICAgICAgIChmaWRvOjplbmNvZGVBc0NCT1IpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnM6OnNldFN1cHBvcnRzUmVzaWRlbnRLZXkpOgorICAgICAgICAoZmlkbzo6QXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkp
OgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJQ
cmVzZW5jZVJlcXVpcmVkKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zOjpzZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkpOgorICAgICAgICAoZmlkbzo6QXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldElzUGxhdGZvcm1EZXZpY2UpOgorICAgICAgICAo
Zmlkbzo6Y29udmVydFRvQ0JPUik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChmaWRvOjpjb252ZXJ0UnBFbnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFVz
ZXJFbnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFBhcmFtZXRlcnNUb0NCT1Ip
OgorICAgICAgICAoZmlkbzo6Y29udmVydERlc2NyaXB0b3JUb0NCT1IpOgorICAgICAgICAoZmlk
bzo6ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKToKKyAgICAgICAgKGZpZG86OmVu
Y29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IpOgorICAgICAgICAoZmlkbzo6ZW5jb2RlRW1w
dHlBdXRoZW50aWNhdG9yUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRv
L0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KGZpZG86OmNvbnZlcnRTdHJpbmdUb1Byb3RvY29sVmVyc2lvbik6CisgICAgICAgIChmaWRvOjpn
ZXRSZXNwb25zZUNvZGUpOgorICAgICAgICAoZmlkbzo6Z2V0Q3JlZGVudGlhbElkKToKKyAgICAg
ICAgKGZpZG86OnJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZSk6CisgICAgICAgIChmaWRv
OjpyZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKToKKyAgICAgICAgKGZpZG86OnJlYWRDVEFQ
R2V0SW5mb1Jlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNl
UmVzcG9uc2VDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0
aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcDoKKyAgICAgICAgKGZpZG86OmlzQ3RhcERldmljZVJl
c3BvbnNlQ29kZSk6CisgICAgICAgIChmaWRvOjpwdWJsaWNLZXlDcmVkZW50aWFsVHlwZVRvU3Ry
aW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxOC0xMC0zMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxl
LmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBzb21lIG9ic29sZXRlIE1BWF9BTExPV0VEIG1hY3Jv
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMjliNmM1NDkzMmY5ZTRlODg0NjZkY2Y5MThjYmQ2
ZTE3NDY0MmQ1Li44YTEwYmQzNDg5MjRhZDFlMmViYzAyNWQ5NTAxNDQwZWM1ZWY2MzEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtNDMxLDYgKzQzMSw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdf
SURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3Jp
cHRvci5pZGwKICAgICBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5pZGwKICAgICBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxUeXBl
LmlkbAorICAgIE1vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50Lmlk
bAogCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5pZGwKICAg
ICBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggNjYzOTBkNDlmYjM5ZDZjNGIyYzQ3NjI2MDVkMjYwNWZiMmI1YjEwZC4uZTBj
NTIwNzQ3ODhhNWRmMTdmZjU0YWI1ZjQ4YTUxZmE3NTM1NThmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCkBAIC0zNTUsNiArMzU1LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRv
ci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50
aWFsUmVxdWVzdE9wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXV0aG4v
UHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
YXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ2FsbGJhY2suaWRsIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKaW5kZXggOGFmYjRkZDRkNDYxZTg2ZTY5NDgzMzllMjEx
YjE5OWU3MWE5ODczMy4uYmE2OGRmOTJiMTgyYzdhOWIxM2EzNjZmYTkxMTYwODJlYjQ2NWRiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50
aWFsRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmgiCisj
aW5jbHVkZSAiVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL0Ny
b3NzVGhyZWFkQ29waWVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtNjUsNyAr
NjYsOSBAQCBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyB7CiAgICAg
fTsKIAogICAgIHN0cnVjdCBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgewotICAgICAg
ICBBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yQXR0YWNobWVudD4gYXV0aGVudGljYXRvckF0
dGFjaG1lbnQ7CisgICAgICAgIGJvb2wgcmVxdWlyZVJlc2lkZW50S2V5IHsgZmFsc2UgfTsKKyAg
ICAgICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IHVzZXJWZXJpZmljYXRpb24geyBVc2Vy
VmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZCB9OwogCiAgICAgICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICAgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRvclNl
bGVjdGlvbkNyaXRlcmlhPiBkZWNvZGUoRGVjb2RlciYpOwpAQCAtMTA1LDE0ICsxMDgsMjcgQEAg
c3RkOjpvcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0
ZXJzPiBQdWJsaWNLZXlDcmVkZW50aWEKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25D
cml0ZXJpYTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8
PCBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAgICBlbmNvZGVyIDw8IGF1dGhlbnRpY2F0b3JB
dHRhY2htZW50IDw8IHJlcXVpcmVSZXNpZGVudEtleSA8PCB1c2VyVmVyaWZpY2F0aW9uOwogfQog
CiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE+IFB1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0
ZXJpYTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHJlc3VsdDsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuYXV0aGVudGljYXRvckF0dGFjaG1l
bnQpKQorCisgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPEF1dGhlbnRpY2F0b3JBdHRh
Y2htZW50Pj4gYXV0aGVudGljYXRvckF0dGFjaG1lbnQ7CisgICAgZGVjb2RlciA+PiBhdXRoZW50
aWNhdG9yQXR0YWNobWVudDsKKyAgICBpZiAoIWF1dGhlbnRpY2F0b3JBdHRhY2htZW50KQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJlc3VsdC5hdXRoZW50aWNhdG9yQXR0YWNo
bWVudCA9IFdURk1vdmUoKmF1dGhlbnRpY2F0b3JBdHRhY2htZW50KTsKKworICAgIHN0ZDo6b3B0
aW9uYWw8Ym9vbD4gcmVxdWlyZVJlc2lkZW50S2V5OworICAgIGRlY29kZXIgPj4gcmVxdWlyZVJl
c2lkZW50S2V5OworICAgIGlmICghcmVxdWlyZVJlc2lkZW50S2V5KQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIHJlc3VsdC5yZXF1aXJlUmVzaWRlbnRLZXkgPSAqcmVxdWlyZVJl
c2lkZW50S2V5OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LnVzZXJWZXJp
ZmljYXRpb24pKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIHJldHVybiByZXN1
bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbAppbmRleCBh
MzE1MjVmMzI1NDhkYjY1ODM5MzZlYmIwMzI3Yjk1NGExYzcxMDYxLi4zNmUxODBiZWRmYzgyMDFm
M2JjNGI1MzVjYWMwZjc0M2M4ZTdjNWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucy5pZGwKQEAgLTc0LDEwICs3NCw4IEBAIHR5cGVkZWYgbG9uZyBDT1NFQWxnb3Jp
dGhtSWRlbnRpZmllcjsKICAgICBDb25kaXRpb25hbD1XRUJfQVVUSE4sCiBdIGRpY3Rpb25hcnkg
QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHsKICAgICBBdXRoZW50aWNhdG9yQXR0YWNo
bWVudCAgICAgIGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OwotICAgIC8vIFdlIGRvbid0IGFsbG93
IFJQcyB0byBzZXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgYXQgdGhpcyBzdGFnZS4KLSAgICAvLyBI
ZW5jZSwgdGhvc2Ugb3B0aW9ucyBhcmUgYWx3YXlzIHsgdHJ1ZSwgInJlcXVpcmVkIiB9LgotICAg
IC8vIGJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZVJlc2lkZW50S2V5ID0gZmFs
c2U7Ci0gICAgLy8gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50ICB1c2VyVmVyaWZpY2F0aW9u
ID0gInByZWZlcnJlZCI7CisgICAgYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJl
UmVzaWRlbnRLZXkgPSBmYWxzZTsKKyAgICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgIHVz
ZXJWZXJpZmljYXRpb24gPSAicHJlZmVycmVkIjsKIH07CiAKIFsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucy5oCmluZGV4IDI3NDQ3NmVmNzI3Yjg1ZDc1ZGQxYTllMjBjNTg3YWQx
YjkyZjBmMDEuLmJiNGZmOTJjMmM1MWNiZDgyOTM1ZDA4ZmQwYTU2MTIyMjcxZWU4OGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9Q
dWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaApAQCAtMjksNiArMjksNyBAQAogCiAj
aW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbERl
c2NyaXB0b3IuaCIKKyNpbmNsdWRlICJVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCIKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCw2ICsz
OSw3IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgewogICAgIHN0
ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHRpbWVvdXQ7CiAgICAgbXV0YWJsZSBTdHJpbmcgcnBJZDsK
ICAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I+IGFsbG93Q3JlZGVudGlh
bHM7CisgICAgc3RkOjpvcHRpb25hbDxVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ+IHVzZXJW
ZXJpZmljYXRpb24geyBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZCB9Owog
CiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4gZGVjb2RlKERlY29kZXImKTsKQEAgLTQ3LDcg
KzQ5LDcgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyB7CiB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgdGlt
ZW91dCA8PCBycElkIDw8IGFsbG93Q3JlZGVudGlhbHM7CisgICAgZW5jb2RlciA8PCB0aW1lb3V0
IDw8IHJwSWQgPDwgYWxsb3dDcmVkZW50aWFscyA8PCB1c2VyVmVyaWZpY2F0aW9uOwogfQogCiB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtNjUsNiArNjcsMTMgQEAgc3RkOjpvcHRpb25hbDxQ
dWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1
ZXN0T3B0aW8KICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5hbGxvd0NyZWRlbnRpYWxzKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQ+PiB1c2VyVmVyaWZpY2F0aW9uOworICAgIGRlY29kZXIgPj4gdXNlclZlcmlm
aWNhdGlvbjsKKyAgICBpZiAoIXVzZXJWZXJpZmljYXRpb24pCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgcmVzdWx0LnVzZXJWZXJpZmljYXRpb24gPSBXVEZNb3ZlKCp1c2VyVmVy
aWZpY2F0aW9uKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zLmlkbAppbmRleCA4OWEyMDZkYzljOWZkMjE3OGI5MTYxNmVkMTE2
NWZiNDdlOGU0ZGUwLi5kNjUxZGIyOGFlNjZkMGZjNjk4MjEwZDY4NzE2ZDZlMTExNDBjODM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsCkBAIC0zMCw4ICszMCw3
IEBACiAgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0OwogICAgIFVTVlN0cmluZyBycElkOwogICAg
IHNlcXVlbmNlPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiBhbGxvd0NyZWRlbnRpYWxz
ID0gW107Ci0gICAgLy8gQWx3YXlzICJyZXF1aXJlZCIgYXQgdGhpcyBzdGFnZQotICAgIC8vIFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB1c2VyVmVyaWZpY2F0aW9uID0gInByZWZlcnJlZCI7
CisgICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IHVzZXJWZXJpZmljYXRpb24gPSAicHJl
ZmVycmVkIjsKICAgICAvLyBOb3Qgc3VwcG9ydCB5ZXQuCiAgICAgLy8gQXV0aGVudGljYXRpb25F
eHRlbnNpb25zIGV4dGVuc2lvbnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODMxNGQwMmM1MmQ5YWFjMjE1NzVmZWI2ZmVhOGY0MTQ4ZmM1NzQ5NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQgeworICAgIFJlcXVpcmVkLAorICAgIFByZWZlcnJlZCwKKyAgICBEaXNjb3VyYWdl
ZAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3Jl
OjpVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQsCisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQsCisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkLAorICAgICAgICBXZWJDb3JlOjpVc2VyVmVy
aWZpY2F0aW9uUmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkCisgICAgPjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmY0ZmI5NWVhMDAyZTViYTk2NWNkNTdiMTUyMWM1
ODBlNjQ5OWNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVVEhOLAorICAgIEltcGxlbWVudGVk
QXM9VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50CitdIGVudW0gVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50IHsKKyAgICAicmVxdWlyZWQiLAorICAgICJwcmVmZXJyZWQiLAorICAgICJkaXNj
b3VyYWdlZCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2Nib3IvQ0JPUlZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jv
ci9DQk9SVmFsdWUuY3BwCmluZGV4IDI1ZWQ5OGI5MWY4M2E0YjQ2ODMwZGY0OGZhMDViYTg2OGM4
MTIyYjMuLjRjOGZmYWQxYThjZjBmNTE0N2NjNzY3NDRiYmE4NmRlNTFjOWRjYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwCkBA
IC0xNTMsNiArMTUzLDEyIEBAIENCT1JWYWx1ZTo6Q0JPUlZhbHVlKFNpbXBsZVZhbHVlIGluU2lt
cGxlKQogICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KGluU2ltcGxlKSA+PSAyMCAmJiBzdGF0
aWNfY2FzdDxpbnQ+KGluU2ltcGxlKSA8PSAyMyk7CiB9CiAKK0NCT1JWYWx1ZTo6Q0JPUlZhbHVl
KGJvb2wgaW5Cb29sKQorICAgIDogbV90eXBlKFR5cGU6OlNpbXBsZVZhbHVlKQoreworICAgIG1f
c2ltcGxlVmFsdWUgPSBpbkJvb2wgPyBDQk9SVmFsdWU6OlNpbXBsZVZhbHVlOjpUcnVlVmFsdWUg
OiBDQk9SVmFsdWU6OlNpbXBsZVZhbHVlOjpGYWxzZVZhbHVlOworfQorCiBDQk9SVmFsdWUmIENC
T1JWYWx1ZTo6b3BlcmF0b3I9KENCT1JWYWx1ZSYmIHRoYXQpCiB7CiAgICAgaW50ZXJuYWxDbGVh
bnVwKCk7CkBAIC0yNDAsNiArMjQ2LDEyIEBAIENCT1JWYWx1ZTo6U2ltcGxlVmFsdWUgQ0JPUlZh
bHVlOjpnZXRTaW1wbGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2ltcGxlVmFsdWU7CiB9
CiAKK2Jvb2wgQ0JPUlZhbHVlOjpnZXRCb29sKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNCb29s
KCkpOworICAgIHJldHVybiBtX3NpbXBsZVZhbHVlID09IFNpbXBsZVZhbHVlOjpUcnVlVmFsdWU7
Cit9CisKIHZvaWQgQ0JPUlZhbHVlOjppbnRlcm5hbE1vdmVDb25zdHJ1Y3RGcm9tKENCT1JWYWx1
ZSYmIHRoYXQpCiB7CiAgICAgbV90eXBlID0gdGhhdC5tX3R5cGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmgKaW5kZXggZTJkYjBlMTI3Mzhh
OTlhNzQ3YzgyZjQwOTEzMDA0YzY2MGI3ZThkNC4uNmE0YzgzYWJhMDMxYzM4ZDM3OWU2NmJjOTNl
YzQ3ZTVmMTkzMTc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9jYm9yL0NCT1JWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Y2Jvci9DQk9SVmFsdWUuaApAQCAtMTM4LDYgKzEzOCw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBDQk9SVmFsdWUoTWFwVmFsdWUmJik7CiAKICAgICBleHBsaWNpdCBDQk9SVmFsdWUoU2ltcGxl
VmFsdWUpOworICAgIGV4cGxpY2l0IENCT1JWYWx1ZShib29sKTsKIAogICAgIENCT1JWYWx1ZSYg
b3BlcmF0b3I9KENCT1JWYWx1ZSYmKTsKIApAQCAtMTYxLDkgKzE2MiwxMSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0FycmF5KCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFR5cGU6OkFycmF5OyB9
CiAgICAgYm9vbCBpc01hcCgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBUeXBlOjpNYXA7IH0K
ICAgICBib29sIGlzU2ltcGxlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFR5cGU6OlNpbXBs
ZVZhbHVlOyB9CisgICAgYm9vbCBpc0Jvb2woKSBjb25zdCB7IHJldHVybiBpc1NpbXBsZSgpICYm
IChtX3NpbXBsZVZhbHVlID09IFNpbXBsZVZhbHVlOjpUcnVlVmFsdWUgfHwgbV9zaW1wbGVWYWx1
ZSA9PSBTaW1wbGVWYWx1ZTo6RmFsc2VWYWx1ZSk7IH0KIAogICAgIC8vIFRoZXNlIHdpbGwgYWxs
IGZhdGFsbHkgYXNzZXJ0IGlmIHRoZSB0eXBlIGRvZXNuJ3QgbWF0Y2guCiAgICAgU2ltcGxlVmFs
dWUgZ2V0U2ltcGxlVmFsdWUoKSBjb25zdDsKKyAgICBib29sIGdldEJvb2woKSBjb25zdDsKICAg
ICBjb25zdCBpbnQ2NF90JiBnZXRJbnRlZ2VyKCkgY29uc3Q7CiAgICAgY29uc3QgaW50NjRfdCYg
Z2V0VW5zaWduZWQoKSBjb25zdDsKICAgICBjb25zdCBpbnQ2NF90JiBnZXROZWdhdGl2ZSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM5ZWNmNzkxNDhiZmEyZjZkN2ExMDRlNzAzMWQyZTA1YzMzMWJiOTYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZS5jcHAKQEAgLTAsMCArMSwxMTAgQEAKKy8vIENvcHlyaWdodCAyMDE4IFRo
ZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
Ky8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisv
LyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
Ly8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
Ly8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCIKKworI2lmIEVOQUJMRShXRUJfQVVUSE4p
CisKKyNpbmNsdWRlICJDQk9SVmFsdWUuaCIKKyNpbmNsdWRlICJDQk9SV3JpdGVyLmgiCisKK25h
bWVzcGFjZSBmaWRvIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIENvbnRhaW5lcj4KK2Nib3I6OkNC
T1JWYWx1ZTo6QXJyYXlWYWx1ZSB0b0FycmF5VmFsdWUoY29uc3QgQ29udGFpbmVyJiBjb250YWlu
ZXIpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpBcnJheVZhbHVlIHZhbHVlOworICAgIHZhbHVl
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY29udGFpbmVyLnNpemUoKSk7CisgICAgZm9yIChjb25z
dCBhdXRvJiBpdGVtIDogY29udGFpbmVyKQorICAgICAgICB2YWx1ZS5hcHBlbmQoY2Jvcjo6Q0JP
UlZhbHVlKGl0ZW0pKTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK0F1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2U6OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UoU3RkU2V0PFByb3RvY29s
VmVyc2lvbj4mJiB2ZXJzaW9ucywgVmVjdG9yPHVpbnQ4X3Q+JiYgYWFndWlkKQorICAgIDogbV92
ZXJzaW9ucyhXVEZNb3ZlKHZlcnNpb25zKSkKKyAgICAsIG1fYWFndWlkKFdURk1vdmUoYWFndWlk
KSkKK3sKK30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgQXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZTo6c2V0TWF4TXNnU2l6ZSh1aW50MzJfdCBtYXhNc2dTaXplKQoreworICAg
IG1fbWF4TXNnU2l6ZSA9IG1heE1zZ1NpemU7CisgICAgcmV0dXJuICp0aGlzOworfQorCitBdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlOjpz
ZXRQaW5Qcm90b2NvbHMoVmVjdG9yPHVpbnQ4X3Q+JiYgcGluUHJvdG9jb2xzKQoreworICAgIG1f
cGluUHJvdG9jb2xzID0gV1RGTW92ZShwaW5Qcm90b2NvbHMpOworICAgIHJldHVybiAqdGhpczsK
K30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgQXV0aGVudGljYXRvckdldEluZm9S
ZXNwb25zZTo6c2V0RXh0ZW5zaW9ucyhWZWN0b3I8U3RyaW5nPiYmIGV4dGVuc2lvbnMpCit7Cisg
ICAgbV9leHRlbnNpb25zID0gV1RGTW92ZShleHRlbnNpb25zKTsKKyAgICByZXR1cm4gKnRoaXM7
Cit9CisKK0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2U6OnNldE9wdGlvbnMoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmJiBvcHRp
b25zKQoreworICAgIG1fb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyk7CisgICAgcmV0dXJuICp0
aGlzOworfQorCitWZWN0b3I8dWludDhfdD4gZW5jb2RlQXNDQk9SKGNvbnN0IEF1dGhlbnRpY2F0
b3JHZXRJbmZvUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHVzaW5nIG5hbWVzcGFjZSBjYm9y
OworCisgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBkZXZpY2VJbmZvTWFwOworCisgICAgQ0JPUlZh
bHVlOjpBcnJheVZhbHVlIHZlcnNpb25BcnJheTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHZlcnNp
b24gOiByZXNwb25zZS52ZXJzaW9ucygpKQorICAgICAgICB2ZXJzaW9uQXJyYXkuYXBwZW5kKHZl
cnNpb24gPT0gUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCA/IGtDdGFwMlZlcnNpb24gOiBrVTJmVmVy
c2lvbik7CisgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKENCT1JWYWx1ZSgxKSwgV1RGTW92ZSh2
ZXJzaW9uQXJyYXkpKTsKKworICAgIGlmIChyZXNwb25zZS5leHRlbnNpb25zKCkpCisgICAgICAg
IGRldmljZUluZm9NYXAuZW1wbGFjZShDQk9SVmFsdWUoMiksIHRvQXJyYXlWYWx1ZSgqcmVzcG9u
c2UuZXh0ZW5zaW9ucygpKSk7CisKKyAgICBkZXZpY2VJbmZvTWFwLmVtcGxhY2UoQ0JPUlZhbHVl
KDMpLCBDQk9SVmFsdWUocmVzcG9uc2UuYWFndWlkKCkpKTsKKyAgICBkZXZpY2VJbmZvTWFwLmVt
cGxhY2UoQ0JPUlZhbHVlKDQpLCBjb252ZXJ0VG9DQk9SKHJlc3BvbnNlLm9wdGlvbnMoKSkpOwor
CisgICAgaWYgKHJlc3BvbnNlLm1heE1zZ1NpemUoKSkKKyAgICAgICAgZGV2aWNlSW5mb01hcC5l
bXBsYWNlKENCT1JWYWx1ZSg1KSwgQ0JPUlZhbHVlKHN0YXRpY19jYXN0PGludDY0X3Q+KCpyZXNw
b25zZS5tYXhNc2dTaXplKCkpKSk7CisKKyAgICBpZiAocmVzcG9uc2UucGluUHJvdG9jb2woKSkK
KyAgICAgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKENCT1JWYWx1ZSg2KSwgdG9BcnJheVZhbHVl
KCpyZXNwb25zZS5waW5Qcm90b2NvbCgpKSk7CisKKyAgICBhdXRvIGVuY29kZWRCeXRlcyA9IENC
T1JXcml0ZXI6OndyaXRlKENCT1JWYWx1ZShXVEZNb3ZlKGRldmljZUluZm9NYXApKSk7CisgICAg
QVNTRVJUKGVuY29kZWRCeXRlcyk7CisgICAgcmV0dXJuICplbmNvZGVkQnl0ZXM7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIGZpZG8KKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDYzYzRmNWM5MzVmOTcz
ZGMxMTU0MDIwMzU5N2M1ODU2YzM0YWZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaApA
QCAtMCwwICsxLDc2IEBACisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisv
LyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
Ly8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8g
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUg
IkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgiCisjaW5jbHVkZSAiRmlkb0NvbnN0YW50
cy5oIgorI2luY2x1ZGUgPHd0Zi9TdGRTZXQuaD4KKworbmFtZXNwYWNlIGZpZG8geworCisvLyBB
dXRoZW50aWNhdG9yIHJlc3BvbnNlIGZvciBBdXRoZW50aWNhdG9yR2V0SW5mbyByZXF1ZXN0IHRo
YXQgZW5jYXBzdWxhdGVzCisvLyB2ZXJzaW9ucywgb3B0aW9ucywgQUFHVUlEKEF1dGhlbnRpY2F0
b3IgQXR0ZXN0YXRpb24gR1VJRCksIG90aGVyCisvLyBhdXRoZW50aWNhdG9yIGRldmljZSBpbmZv
cm1hdGlvbi4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMt
MjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIw
MTcwOTI3Lmh0bWwjYXV0aGVudGljYXRvcmdldGluZm8tMHgwNAorY2xhc3MgV0VCQ09SRV9FWFBP
UlQgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSk7CitwdWJsaWM6CisgICAgQXV0aGVudGlj
YXRvckdldEluZm9SZXNwb25zZShTdGRTZXQ8UHJvdG9jb2xWZXJzaW9uPiYmIHZlcnNpb25zLCBW
ZWN0b3I8dWludDhfdD4mJiBhYWd1aWQpOworICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9u
c2UoQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYmIHRoYXQpID0gZGVmYXVsdDsKKyAgICBB
dXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBvcGVyYXRvcj0oQXV0aGVudGljYXRvckdldElu
Zm9SZXNwb25zZSYmIG90aGVyKSA9IGRlZmF1bHQ7CisKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5m
b1Jlc3BvbnNlJiBzZXRNYXhNc2dTaXplKHVpbnQzMl90KTsKKyAgICBBdXRoZW50aWNhdG9yR2V0
SW5mb1Jlc3BvbnNlJiBzZXRQaW5Qcm90b2NvbHMoVmVjdG9yPHVpbnQ4X3Q+JiYpOworICAgIEF1
dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIHNldEV4dGVuc2lvbnMoVmVjdG9yPFN0cmluZz4m
Jik7CisgICAgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgc2V0T3B0aW9ucyhBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYmKTsKKworICAgIGNvbnN0IFN0ZFNldDxQcm90b2NvbFZl
cnNpb24+JiB2ZXJzaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fdmVyc2lvbnM7IH0KKyAgICBjb25z
dCBWZWN0b3I8dWludDhfdD4mIGFhZ3VpZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWFndWlkOyB9Cisg
ICAgY29uc3Qgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4mIG1heE1zZ1NpemUoKSBjb25zdCB7IHJl
dHVybiBtX21heE1zZ1NpemU7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50
OF90Pj4mIHBpblByb3RvY29sKCkgY29uc3QgeyByZXR1cm4gbV9waW5Qcm90b2NvbHM7IH0KKyAg
ICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgZXh0ZW5zaW9ucygpIGNvbnN0
IHsgcmV0dXJuIG1fZXh0ZW5zaW9uczsgfQorICAgIGNvbnN0IEF1dGhlbnRpY2F0b3JTdXBwb3J0
ZWRPcHRpb25zJiBvcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zOyB9CisKK3ByaXZh
dGU6CisgICAgU3RkU2V0PFByb3RvY29sVmVyc2lvbj4gbV92ZXJzaW9uczsKKyAgICBWZWN0b3I8
dWludDhfdD4gbV9hYWd1aWQ7CisgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gbV9tYXhNc2dT
aXplOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBtX3BpblByb3RvY29sczsK
KyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBtX2V4dGVuc2lvbnM7CisgICAgQXV0
aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMgbV9vcHRpb25zOworfTsKKworV0VCQ09SRV9FWFBP
UlQgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUFzQ0JPUihjb25zdCBBdXRoZW50aWNhdG9yR2V0SW5m
b1Jlc3BvbnNlJik7CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKworI2VuZGlmIC8vIEVOQUJMRShX
RUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iZGNmOGE0Y2Q1NGFmNzdmOGYzMzM4MTM4ZTk0MWJkYmFmNjBkYzRhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcApAQCAtMCwwICsxLDEwOSBAQAorLy8gQ29weXJpZ2h0
IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8v
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9u
LgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
Ly8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCIKKworI2lmIEVOQUJMRShX
RUJfQVVUSE4pCisKKyNpbmNsdWRlICJGaWRvQ29uc3RhbnRzLmgiCisKK25hbWVzcGFjZSBmaWRv
IHsKKworQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIEF1dGhlbnRpY2F0b3JTdXBwb3J0
ZWRPcHRpb25zOjpzZXRTdXBwb3J0c1Jlc2lkZW50S2V5KGJvb2wgc3VwcG9ydHNSZXNpZGVudEtl
eSkKK3sKKyAgICBtX3N1cHBvcnRzUmVzaWRlbnRLZXkgPSBzdXBwb3J0c1Jlc2lkZW50S2V5Owor
ICAgIHJldHVybiAqdGhpczsKK30KKworQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIEF1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpzZXRVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmls
aXR5KFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgdXNlclZlcmlmaWNhdGlvbkF2YWlsYWJp
bGl0eSkKK3sKKyAgICBtX3VzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgPSB1c2VyVmVyaWZp
Y2F0aW9uQXZhaWxhYmlsaXR5OworICAgIHJldHVybiAqdGhpczsKK30KKworQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnMmIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpzZXRVc2Vy
UHJlc2VuY2VSZXF1aXJlZChib29sIHVzZXJQcmVzZW5jZVJlcXVpcmVkKQoreworICAgIG1fdXNl
clByZXNlbmNlUmVxdWlyZWQgPSB1c2VyUHJlc2VuY2VSZXF1aXJlZDsKKyAgICByZXR1cm4gKnRo
aXM7Cit9CisKK0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9uczo6c2V0Q2xpZW50UGluQXZhaWxhYmlsaXR5KENsaWVudFBpbkF2YWlsYWJp
bGl0eSBjbGllbnRQaW5BdmFpbGFiaWxpdHkpCit7CisgICAgbV9jbGllbnRQaW5BdmFpbGFiaWxp
dHkgPSBjbGllbnRQaW5BdmFpbGFiaWxpdHk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6
OnNldElzUGxhdGZvcm1EZXZpY2UoYm9vbCBpc1BsYXRmb3JtRGV2aWNlKQoreworICAgIG1faXNQ
bGF0Zm9ybURldmljZSA9IGlzUGxhdGZvcm1EZXZpY2U7CisgICAgcmV0dXJuICp0aGlzOworfQor
CitjYm9yOjpDQk9SVmFsdWUgY29udmVydFRvQ0JPUihjb25zdCBBdXRoZW50aWNhdG9yU3VwcG9y
dGVkT3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICB1c2luZyBuYW1lc3BhY2UgY2JvcjsKKworICAg
IENCT1JWYWx1ZTo6TWFwVmFsdWUgb3B0aW9uTWFwOworICAgIG9wdGlvbk1hcC5lbXBsYWNlKENC
T1JWYWx1ZShrUmVzaWRlbnRLZXlNYXBLZXkpLCBDQk9SVmFsdWUob3B0aW9ucy5zdXBwb3J0c1Jl
c2lkZW50S2V5KCkpKTsKKyAgICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFsdWUoa1VzZXJQcmVz
ZW5jZU1hcEtleSksIENCT1JWYWx1ZShvcHRpb25zLnVzZXJQcmVzZW5jZVJlcXVpcmVkKCkpKTsK
KyAgICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFsdWUoa1BsYXRmb3JtRGV2aWNlTWFwS2V5KSwg
Q0JPUlZhbHVlKG9wdGlvbnMuaXNQbGF0Zm9ybURldmljZSgpKSk7CisKKyAgICB1c2luZyBVdkF2
YWlsYWJpbGl0eSA9IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0
aW9uQXZhaWxhYmlsaXR5OworCisgICAgc3dpdGNoIChvcHRpb25zLnVzZXJWZXJpZmljYXRpb25B
dmFpbGFiaWxpdHkoKSkgeworICAgIGNhc2UgVXZBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRD
b25maWd1cmVkOgorICAgICAgICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFsdWUoa1VzZXJWZXJp
ZmljYXRpb25NYXBLZXkpLCBDQk9SVmFsdWUodHJ1ZSkpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFV2QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0Tm90Q29uZmlndXJlZDoKKyAgICAgICAg
b3B0aW9uTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5KSwgQ0JP
UlZhbHVlKGZhbHNlKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVXZBdmFpbGFiaWxpdHk6
OmtOb3RTdXBwb3J0ZWQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHVzaW5nIENsaWVu
dFBpbkF2YWlsYWJpbGl0eSA9IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQ
aW5BdmFpbGFiaWxpdHk7CisKKyAgICBzd2l0Y2ggKG9wdGlvbnMuY2xpZW50UGluQXZhaWxhYmls
aXR5KCkpIHsKKyAgICBjYXNlIENsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBp
blNldDoKKyAgICAgICAgb3B0aW9uTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtDbGllbnRQaW5NYXBL
ZXkpLCBDQk9SVmFsdWUodHJ1ZSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENsaWVudFBp
bkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dFBpbk5vdFNldDoKKyAgICAgICAgb3B0aW9uTWFw
LmVtcGxhY2UoQ0JPUlZhbHVlKGtDbGllbnRQaW5NYXBLZXkpLCBDQk9SVmFsdWUoZmFsc2UpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtOb3RTdXBw
b3J0ZWQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBDQk9SVmFsdWUoV1RG
TW92ZShvcHRpb25NYXApKTsKK30KKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8g
RU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWM0MGFlNGJlNDI2MTRjNzE0ZTU3ZmFmNmE0NDY1YzdmMmZmOTkxNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oCkBAIC0wLDAgKzEsOTYgQEAKKy8vIENvcHlyaWdo
dCAyMDE4IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisv
LyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlv
bi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8g
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
Ky8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiQ0JPUlZhbHVlLmgiCisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIGZpZG8geworCisvLyBSZXByZXNlbnRzIENUQVAgZGV2
aWNlIHByb3BlcnRpZXMgYW5kIGNhcGFiaWxpdGllcyByZWNlaXZlZCBhcyBhIHJlc3BvbnNlIHRv
CisvLyBBdXRoZW50aWNhdG9yR2V0SW5mbyBjb21tYW5kLgorY2xhc3MgV0VCQ09SRV9FWFBPUlQg
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zKTsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNz
IFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgeworICAgICAgICAvLyBlLmcuIEF1dGhlbnRp
Y2F0b3Igd2l0aCBmaW5nZXIgcHJpbnQgc2Vuc29yIGFuZCB1c2VyJ3MgZmluZ2VycHJpbnQgaXMK
KyAgICAgICAgLy8gcmVnaXN0ZXJlZCB0byB0aGUgZGV2aWNlLgorICAgICAgICBrU3VwcG9ydGVk
QW5kQ29uZmlndXJlZCwKKyAgICAgICAgLy8gZS5nLiBBdXRoZW50aWNhdG9yIHdpdGggZmluZ2Vy
cHJpbnQgc2Vuc29yIHdpdGhvdXQgdXNlcidzIGZpbmdlcnByaW50CisgICAgICAgIC8vIHJlZ2lz
dGVyZWQuCisgICAgICAgIGtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkLAorICAgICAgICBrTm90
U3VwcG9ydGVkCisgICAgfTsKKworICAgIGVudW0gY2xhc3MgQ2xpZW50UGluQXZhaWxhYmlsaXR5
IHsKKyAgICAgICAga1N1cHBvcnRlZEFuZFBpblNldCwKKyAgICAgICAga1N1cHBvcnRlZEJ1dFBp
bk5vdFNldCwKKyAgICAgICAga05vdFN1cHBvcnRlZCwKKyAgICB9OworCisgICAgQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnMoKSA9IGRlZmF1bHQ7CisgICAgQXV0aGVudGljYXRvclN1cHBv
cnRlZE9wdGlvbnMoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmJikgPSBkZWZhdWx0Owor
ICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBvcGVyYXRvcj0oQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnMmJikgPSBkZWZhdWx0OworCisgICAgQXV0aGVudGljYXRvclN1cHBv
cnRlZE9wdGlvbnMmIHNldElzUGxhdGZvcm1EZXZpY2UoYm9vbCk7CisgICAgQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnMmIHNldFN1cHBvcnRzUmVzaWRlbnRLZXkoYm9vbCk7CisgICAgQXV0
aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIHNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxp
dHkoVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSk7CisgICAgQXV0aGVudGljYXRvclN1cHBv
cnRlZE9wdGlvbnMmIHNldFVzZXJQcmVzZW5jZVJlcXVpcmVkKGJvb2wpOworICAgIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBzZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkoQ2xpZW50UGlu
QXZhaWxhYmlsaXR5KTsKKworICAgIGJvb2wgaXNQbGF0Zm9ybURldmljZSgpIGNvbnN0IHsgcmV0
dXJuIG1faXNQbGF0Zm9ybURldmljZTsgfQorICAgIGJvb2wgc3VwcG9ydHNSZXNpZGVudEtleSgp
IGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydHNSZXNpZGVudEtleTsgfQorICAgIFVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHkgdXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSgpIGNvbnN0IHsg
cmV0dXJuIG1fdXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTsgfQorICAgIGJvb2wgdXNlclBy
ZXNlbmNlUmVxdWlyZWQoKSBjb25zdCB7IHJldHVybiBtX3VzZXJQcmVzZW5jZVJlcXVpcmVkOyB9
CisgICAgQ2xpZW50UGluQXZhaWxhYmlsaXR5IGNsaWVudFBpbkF2YWlsYWJpbGl0eSgpIGNvbnN0
IHsgcmV0dXJuIG1fY2xpZW50UGluQXZhaWxhYmlsaXR5OyB9CisKK3ByaXZhdGU6CisgICAgLy8g
SW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBpcyBhdHRhY2hlZCB0byB0aGUgY2xpZW50IGFuZCB0
aGVyZWZvcmUgY2FuJ3QgYmUKKyAgICAvLyByZW1vdmVkIGFuZCB1c2VkIG9uIGFub3RoZXIgY2xp
ZW50LgorICAgIGJvb2wgbV9pc1BsYXRmb3JtRGV2aWNlIHsgZmFsc2UgfTsKKyAgICAvLyBJbmRp
Y2F0ZXMgdGhhdCB0aGUgZGV2aWNlIGlzIGNhcGFibGUgb2Ygc3RvcmluZyBrZXlzIG9uIHRoZSBk
ZXZpY2UgaXRzZWxmCisgICAgLy8gYW5kIHRoZXJlZm9yZSBjYW4gc2F0aXNmeSB0aGUgYXV0aGVu
dGljYXRvckdldEFzc2VydGlvbiByZXF1ZXN0IHdpdGgKKyAgICAvLyBhbGxvd0xpc3QgcGFyYW1l
dGVyIG5vdCBzcGVjaWZpZWQgb3IgZW1wdHkuCisgICAgYm9vbCBtX3N1cHBvcnRzUmVzaWRlbnRL
ZXkgeyBmYWxzZSB9OworICAgIC8vIEluZGljYXRlcyB3aGV0aGVyIHRoZSBkZXZpY2UgaXMgY2Fw
YWJsZSBvZiB2ZXJpZnlpbmcgdGhlIHVzZXIgb24gaXRzIG93bi4KKyAgICBVc2VyVmVyaWZpY2F0
aW9uQXZhaWxhYmlsaXR5IG1fdXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSB7IFVzZXJWZXJp
ZmljYXRpb25BdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQgfTsKKyAgICBib29sIG1fdXNlclBy
ZXNlbmNlUmVxdWlyZWQgeyB0cnVlIH07CisgICAgLy8gUmVwcmVzZW50cyB3aGV0aGVyIGNsaWVu
dCBwaW4gaW4gc2V0IGFuZCBzdG9yZWQgaW4gZGV2aWNlLiBTZXQgYXMgbnVsbAorICAgIC8vIG9w
dGlvbmFsIGlmIGNsaWVudCBwaW4gY2FwYWJpbGl0eSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBh
dXRoZW50aWNhdG9yLgorICAgIENsaWVudFBpbkF2YWlsYWJpbGl0eSBtX2NsaWVudFBpbkF2YWls
YWJpbGl0eSB7IENsaWVudFBpbkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCB9OworfTsKKwor
V0VCQ09SRV9FWFBPUlQgY2Jvcjo6Q0JPUlZhbHVlIGNvbnZlcnRUb0NCT1IoY29uc3QgQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnMmKTsKKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5k
aWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40ODFmZjRhZWU4MmE2Y2FkMmUwMzAzNTY3MDRkOTdhNTk4YTcwOGRkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJl
cXVlc3RDb252ZXJ0ZXIuY3BwCkBAIC0wLDAgKzEsMTgzIEBACisvLyBDb3B5cmlnaHQgMjAxNyBU
aGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
Ly8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
Ky8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
Ky8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisj
aW5jbHVkZSAiQ0JPUldyaXRlci5oIgorI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnMuaCIKKyNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnMuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBmaWRvIHsKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIGNib3I7CisKK3VzaW5nIFVWQXZh
aWxhYmlsaXR5ID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRp
b25BdmFpbGFiaWxpdHk7CisKK3N0YXRpYyBDQk9SVmFsdWUgY29udmVydFJwRW50aXR5VG9DQk9S
KGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlJwRW50aXR5JiBycEVu
dGl0eSkKK3sKKyAgICBDQk9SVmFsdWU6Ok1hcFZhbHVlIHJwTWFwOworICAgIHJwTWFwLmVtcGxh
Y2UoQ0JPUlZhbHVlKGtFbnRpdHlOYW1lTWFwS2V5KSwgQ0JPUlZhbHVlKHJwRW50aXR5Lm5hbWUp
KTsKKyAgICBpZiAoIXJwRW50aXR5Lmljb24uaXNFbXB0eSgpKQorICAgICAgICBycE1hcC5lbXBs
YWNlKENCT1JWYWx1ZShrSWNvblVybE1hcEtleSksIENCT1JWYWx1ZShycEVudGl0eS5pY29uKSk7
CisgICAgaWYgKCFycEVudGl0eS5pZC5pc0VtcHR5KCkpCisgICAgICAgIHJwTWFwLmVtcGxhY2Uo
Q0JPUlZhbHVlKGtFbnRpdHlJZE1hcEtleSksIENCT1JWYWx1ZShycEVudGl0eS5pZCkpOworCisg
ICAgcmV0dXJuIENCT1JWYWx1ZShXVEZNb3ZlKHJwTWFwKSk7Cit9CisKK3N0YXRpYyBDQk9SVmFs
dWUgY29udmVydFVzZXJFbnRpdHlUb0NCT1IoY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9uczo6VXNlckVudGl0eSYgdXNlckVudGl0eSkKK3sKKyAgICBDQk9SVmFsdWU6Ok1h
cFZhbHVlIHVzZXJNYXA7CisgICAgdXNlck1hcC5lbXBsYWNlKENCT1JWYWx1ZShrRW50aXR5TmFt
ZU1hcEtleSksIENCT1JWYWx1ZSh1c2VyRW50aXR5Lm5hbWUpKTsKKyAgICBpZiAoIXVzZXJFbnRp
dHkuaWNvbi5pc0VtcHR5KCkpCisgICAgICAgIHVzZXJNYXAuZW1wbGFjZShDQk9SVmFsdWUoa0lj
b25VcmxNYXBLZXkpLCBDQk9SVmFsdWUodXNlckVudGl0eS5pY29uKSk7CisgICAgdXNlck1hcC5l
bXBsYWNlKENCT1JWYWx1ZShrRW50aXR5SWRNYXBLZXkpLCBDQk9SVmFsdWUodXNlckVudGl0eS5p
ZFZlY3RvcikpOworICAgIHVzZXJNYXAuZW1wbGFjZShDQk9SVmFsdWUoa0Rpc3BsYXlOYW1lTWFw
S2V5KSwgQ0JPUlZhbHVlKHVzZXJFbnRpdHkuZGlzcGxheU5hbWUpKTsKKyAgICByZXR1cm4gQ0JP
UlZhbHVlKFdURk1vdmUodXNlck1hcCkpOworfQorCitzdGF0aWMgQ0JPUlZhbHVlIGNvbnZlcnRQ
YXJhbWV0ZXJzVG9DQk9SKGNvbnN0IFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zOjpQYXJhbWV0ZXJzPiYgcGFyYW1ldGVycykKK3sKKyAgICBDQk9SVmFsdWU6OkFycmF5
VmFsdWUgY3JlZGVudGlhbFBhcmFtQXJyYXk7CisgICAgY3JlZGVudGlhbFBhcmFtQXJyYXkucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShwYXJhbWV0ZXJzLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBh
dXRvJiBjcmVkZW50aWFsIDogcGFyYW1ldGVycykgeworICAgICAgICBDQk9SVmFsdWU6Ok1hcFZh
bHVlIGNib3JDcmVkZW50aWFsTWFwOworICAgICAgICBjYm9yQ3JlZGVudGlhbE1hcC5lbXBsYWNl
KENCT1JWYWx1ZShrQ3JlZGVudGlhbFR5cGVNYXBLZXkpLCBDQk9SVmFsdWUocHVibGljS2V5Q3Jl
ZGVudGlhbFR5cGVUb1N0cmluZyhjcmVkZW50aWFsLnR5cGUpKSk7CisgICAgICAgIGNib3JDcmVk
ZW50aWFsTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtDcmVkZW50aWFsQWxnb3JpdGhtTWFwS2V5KSwg
Q0JPUlZhbHVlKGNyZWRlbnRpYWwuYWxnKSk7CisgICAgICAgIGNyZWRlbnRpYWxQYXJhbUFycmF5
LmFwcGVuZChXVEZNb3ZlKGNib3JDcmVkZW50aWFsTWFwKSk7CisgICAgfQorICAgIHJldHVybiBD
Qk9SVmFsdWUoV1RGTW92ZShjcmVkZW50aWFsUGFyYW1BcnJheSkpOworfQorCitzdGF0aWMgQ0JP
UlZhbHVlIGNvbnZlcnREZXNjcmlwdG9yVG9DQk9SKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQoreworICAgIENCT1JWYWx1ZTo6TWFwVmFsdWUgY2JvckRl
c2NyaXB0b3JNYXA7CisgICAgY2JvckRlc2NyaXB0b3JNYXBbQ0JPUlZhbHVlKGtDcmVkZW50aWFs
VHlwZUtleSldID0gQ0JPUlZhbHVlKHB1YmxpY0tleUNyZWRlbnRpYWxUeXBlVG9TdHJpbmcoZGVz
Y3JpcHRvci50eXBlKSk7CisgICAgY2JvckRlc2NyaXB0b3JNYXBbQ0JPUlZhbHVlKGtDcmVkZW50
aWFsSWRLZXkpXSA9IENCT1JWYWx1ZShkZXNjcmlwdG9yLmlkVmVjdG9yKTsKKyAgICByZXR1cm4g
Q0JPUlZhbHVlKFdURk1vdmUoY2JvckRlc2NyaXB0b3JNYXApKTsKK30KKworVmVjdG9yPHVpbnQ4
X3Q+IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihjb25zdCBWZWN0b3I8dWludDhf
dD4mIGhhc2gsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlv
bnMsIFVWQXZhaWxhYmlsaXR5IHV2Q2FwYWJpbGl0eSkKK3sKKyAgICBDQk9SVmFsdWU6Ok1hcFZh
bHVlIGNib3JNYXA7CisgICAgY2Jvck1hcFtDQk9SVmFsdWUoMSldID0gQ0JPUlZhbHVlKGhhc2gp
OworICAgIGNib3JNYXBbQ0JPUlZhbHVlKDIpXSA9IGNvbnZlcnRScEVudGl0eVRvQ0JPUihvcHRp
b25zLnJwKTsKKyAgICBjYm9yTWFwW0NCT1JWYWx1ZSgzKV0gPSBjb252ZXJ0VXNlckVudGl0eVRv
Q0JPUihvcHRpb25zLnVzZXIpOworICAgIGNib3JNYXBbQ0JPUlZhbHVlKDQpXSA9IGNvbnZlcnRQ
YXJhbWV0ZXJzVG9DQk9SKG9wdGlvbnMucHViS2V5Q3JlZFBhcmFtcyk7CisgICAgaWYgKCFvcHRp
b25zLmV4Y2x1ZGVDcmVkZW50aWFscy5pc0VtcHR5KCkpIHsKKyAgICAgICAgQ0JPUlZhbHVlOjpB
cnJheVZhbHVlIGV4Y2x1ZGVMaXN0QXJyYXk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgZGVz
Y3JpcHRvciA6IG9wdGlvbnMuZXhjbHVkZUNyZWRlbnRpYWxzKQorICAgICAgICAgICAgZXhjbHVk
ZUxpc3RBcnJheS5hcHBlbmQoY29udmVydERlc2NyaXB0b3JUb0NCT1IoZGVzY3JpcHRvcikpOwor
ICAgICAgICBjYm9yTWFwW0NCT1JWYWx1ZSg1KV0gPSBDQk9SVmFsdWUoV1RGTW92ZShleGNsdWRl
TGlzdEFycmF5KSk7CisgICAgfQorCisgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25NYXA7
CisgICAgaWYgKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbikgeworICAgICAgICAvLyBS
ZXNpZGVudCBrZXlzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IGRlZmF1bHQuCisgICAgICAgIGlmIChv
cHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnJlcXVpcmVSZXNpZGVudEtleSkKKyAgICAg
ICAgICAgIG9wdGlvbk1hcFtDQk9SVmFsdWUoa1Jlc2lkZW50S2V5TWFwS2V5KV0gPSBDQk9SVmFs
dWUodHJ1ZSk7CisKKyAgICAgICAgLy8gVXNlciB2ZXJpZmljYXRpb24gaXMgbm90IHJlcXVpcmVk
IGJ5IGRlZmF1bHQuCisgICAgICAgIGJvb2wgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSBmYWxz
ZTsKKyAgICAgICAgc3dpdGNoIChvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnVzZXJW
ZXJpZmljYXRpb24pIHsKKyAgICAgICAgY2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6
OlJlcXVpcmVkOgorICAgICAgICAgICAgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSB0cnVlOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50OjpQcmVmZXJyZWQ6CisgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IHV2
Q2FwYWJpbGl0eSA9PSBVVkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCA/IGZhbHNlIDogdHJ1
ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1
aXJlbWVudDo6RGlzY291cmFnZWQ6CisgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlv
biA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIG9wdGlvbk1hcFtDQk9SVmFsdWUoa1VzZXJW
ZXJpZmljYXRpb25NYXBLZXkpXSA9IENCT1JWYWx1ZShyZXF1aXJlVXNlclZlcmlmaWNhdGlvbik7
CisgICAgfQorICAgIGlmICghb3B0aW9uTWFwLmVtcHR5KCkpCisgICAgICAgIGNib3JNYXBbQ0JP
UlZhbHVlKDcpXSA9IENCT1JWYWx1ZShXVEZNb3ZlKG9wdGlvbk1hcCkpOworCisgICAgYXV0byBz
ZXJpYWxpemVkUGFyYW0gPSBDQk9SV3JpdGVyOjp3cml0ZShDQk9SVmFsdWUoV1RGTW92ZShjYm9y
TWFwKSkpOworICAgIEFTU0VSVChzZXJpYWxpemVkUGFyYW0pOworCisgICAgVmVjdG9yPHVpbnQ4
X3Q+IGNib3JSZXF1ZXN0KHsgc3RhdGljX2Nhc3Q8dWludDhfdD4oQ3RhcFJlcXVlc3RDb21tYW5k
OjprQXV0aGVudGljYXRvck1ha2VDcmVkZW50aWFsKSB9KTsKKyAgICBjYm9yUmVxdWVzdC5hcHBl
bmRWZWN0b3IoKnNlcmlhbGl6ZWRQYXJhbSk7CisgICAgcmV0dXJuIGNib3JSZXF1ZXN0OworfQor
CitWZWN0b3I8dWludDhfdD4gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUihjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0
aW9ucyYgb3B0aW9ucywgVVZBdmFpbGFiaWxpdHkgdXZDYXBhYmlsaXR5KQoreworICAgIENCT1JW
YWx1ZTo6TWFwVmFsdWUgY2Jvck1hcDsKKyAgICBjYm9yTWFwW0NCT1JWYWx1ZSgxKV0gPSBDQk9S
VmFsdWUob3B0aW9ucy5ycElkKTsKKyAgICBjYm9yTWFwW0NCT1JWYWx1ZSgyKV0gPSBDQk9SVmFs
dWUoaGFzaCk7CisKKyAgICBpZiAoIW9wdGlvbnMuYWxsb3dDcmVkZW50aWFscy5pc0VtcHR5KCkp
IHsKKyAgICAgICAgQ0JPUlZhbHVlOjpBcnJheVZhbHVlIGFsbG93TGlzdEFycmF5OworICAgICAg
ICBmb3IgKGNvbnN0IGF1dG8mIGRlc2NyaXB0b3IgOiBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMp
CisgICAgICAgICAgICBhbGxvd0xpc3RBcnJheS5hcHBlbmQoY29udmVydERlc2NyaXB0b3JUb0NC
T1IoZGVzY3JpcHRvcikpOworICAgICAgICBjYm9yTWFwW0NCT1JWYWx1ZSgzKV0gPSBDQk9SVmFs
dWUoV1RGTW92ZShhbGxvd0xpc3RBcnJheSkpOworICAgIH0KKworICAgIENCT1JWYWx1ZTo6TWFw
VmFsdWUgb3B0aW9uTWFwOworICAgIGlmIChvcHRpb25zLnVzZXJWZXJpZmljYXRpb24pIHsKKyAg
ICAgICAgLy8gVXNlciB2ZXJpZmljYXRpb24gaXMgbm90IHJlcXVpcmVkIGJ5IGRlZmF1bHQuCisg
ICAgICAgIGJvb2wgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSBmYWxzZTsKKyAgICAgICAgc3dp
dGNoICgqb3B0aW9ucy51c2VyVmVyaWZpY2F0aW9uKSB7CisgICAgICAgIGNhc2UgVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZDoKKyAgICAgICAgICAgIHJlcXVpcmVVc2VyVmVy
aWZpY2F0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFVzZXJW
ZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkOgorICAgICAgICAgICAgcmVxdWlyZVVz
ZXJWZXJpZmljYXRpb24gPSB1dkNhcGFiaWxpdHkgPT0gVVZBdmFpbGFiaWxpdHk6OmtOb3RTdXBw
b3J0ZWQgPyBmYWxzZSA6IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBV
c2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkOgorICAgICAgICAgICAgcmVx
dWlyZVVzZXJWZXJpZmljYXRpb24gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBvcHRpb25N
YXBbQ0JPUlZhbHVlKGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5KV0gPSBDQk9SVmFsdWUocmVxdWly
ZVVzZXJWZXJpZmljYXRpb24pOworICAgICAgICBvcHRpb25NYXBbQ0JPUlZhbHVlKGtVc2VyUHJl
c2VuY2VNYXBLZXkpXSA9IENCT1JWYWx1ZSghcmVxdWlyZVVzZXJWZXJpZmljYXRpb24pOworICAg
IH0KKyAgICBpZiAoIW9wdGlvbk1hcC5lbXB0eSgpKQorICAgICAgICBjYm9yTWFwW0NCT1JWYWx1
ZSg1KV0gPSBDQk9SVmFsdWUoV1RGTW92ZShvcHRpb25NYXApKTsKKworICAgIGF1dG8gc2VyaWFs
aXplZFBhcmFtID0gQ0JPUldyaXRlcjo6d3JpdGUoQ0JPUlZhbHVlKFdURk1vdmUoY2Jvck1hcCkp
KTsKKyAgICBBU1NFUlQoc2VyaWFsaXplZFBhcmFtKTsKKworICAgIFZlY3Rvcjx1aW50OF90PiBj
Ym9yUmVxdWVzdCh7IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KEN0YXBSZXF1ZXN0Q29tbWFuZDo6a0F1
dGhlbnRpY2F0b3JHZXRBc3NlcnRpb24pIH0pOworICAgIGNib3JSZXF1ZXN0LmFwcGVuZFZlY3Rv
cigqc2VyaWFsaXplZFBhcmFtKTsKKyAgICByZXR1cm4gY2JvclJlcXVlc3Q7Cit9CisKK1ZlY3Rv
cjx1aW50OF90PiBlbmNvZGVFbXB0eUF1dGhlbnRpY2F0b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29t
bWFuZCBjbWQpCit7CisgICAgcmV0dXJuIHsgc3RhdGljX2Nhc3Q8dWludDhfdD4oY21kKSB9Owor
fQorCit9IC8vIG5hbWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJl
cXVlc3RDb252ZXJ0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9E
ZXZpY2VSZXF1ZXN0Q29udmVydGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFjYzNmZjYyYjk1MjQ5ZjQ4N2Iy
MmNlODRhYzQxNzlmNGMzMTg2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmgKQEAgLTAsMCArMSw2
MiBAQAorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8K
Ky8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8g
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9ucy5oIgorI2luY2x1ZGUgIkZpZG9Db25zdGFudHMuaCIKKyNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgUHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczsKK3N0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFs
UmVxdWVzdE9wdGlvbnM7Cit9CisKK25hbWVzcGFjZSBmaWRvIHsKKworLy8gU2VyaWFsaXplcyBN
YWtlQ3JlZGVudGlhbCByZXF1ZXN0IHBhcmFtZXRlciBpbnRvIENCT1IgZW5jb2RlZCBtYXAgd2l0
aAorLy8gaW50ZWdlciBrZXlzIGFuZCBDQk9SIGVuY29kZWQgdmFsdWVzIGFzIGRlZmluZWQgYnkg
dGhlIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYy
LjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4w
LXBzLTIwMTcwOTI3Lmh0bWwjYXV0aGVudGljYXRvck1ha2VDcmVkZW50aWFsCitXRUJDT1JFX0VY
UE9SVCBWZWN0b3I8dWludDhfdD4gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVu
dGlhbENyZWF0aW9uT3B0aW9ucyYsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2Vy
VmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KTsKKworLy8gU2VyaWFsaXplcyBHZXRBc3NlcnRpb24g
cmVxdWVzdCBwYXJhbWV0ZXIgaW50byBDQk9SIGVuY29kZWQgbWFwIHdpdGgKKy8vIGludGVnZXIg
a2V5cyBhbmQgQ0JPUiBlbmNvZGVkIHZhbHVlcyBhcyBkZWZpbmVkIGJ5IHRoZSBDVEFQIHNwZWMu
CisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3
L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5o
dG1sI2F1dGhlbnRpY2F0b3JHZXRBc3NlcnRpb24KK1dFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50
OF90PiBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYgaGFzaCwgY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
JiwgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFi
aWxpdHkpOworCisvLyBSZXByZXNlbnRzIENUQVAgcmVxdWVzdHMgd2l0aCBlbXB0eSBwYXJhbWV0
ZXJzLCBpbmNsdWRpbmcKKy8vIEF1dGhlbnRpY2F0b3JHZXRJbmZvLCBBdXRoZW50aWNhdG9yQ2Fu
Y2VsLCBBdXRoZW50aWNhdG9yUmVzZXQgYW5kCisvLyBBdXRoZW50aWNhdG9yR2V0TmV4dEFzc2Vy
dGlvbiBjb21tYW5kcy4KK1dFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVFbXB0
eUF1dGhlbnRpY2F0b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFuZCk7CisKK30gLy8gbmFtZXNw
YWNlIGZpZG8KKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNl
Q29udmVydGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjZhOTU5YjgzZDNlMDAxZTk0OGUyNDAxMDgzYTUy
NzMxM2VmN2RjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcApAQCAtMCwwICsxLDMxMiBAQAor
Ly8gQ29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8g
ZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8g
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCIKKworI2lmIEVO
QUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9u
cy5oIgorI2luY2x1ZGUgIkNCT1JSZWFkZXIuaCIKKyNpbmNsdWRlICJDQk9SV3JpdGVyLmgiCisj
aW5jbHVkZSA8d3RmL1N0ZFNldC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNw
YWNlIGZpZG8gewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBDQk9SID0gY2Jvcjo6
Q0JPUlZhbHVlOworCitjb25zdGV4cHIgc2l6ZV90IGtSZXNwb25zZUNvZGVMZW5ndGggPSAxOwor
CitzdGF0aWMgUHJvdG9jb2xWZXJzaW9uIGNvbnZlcnRTdHJpbmdUb1Byb3RvY29sVmVyc2lvbihj
b25zdCBTdHJpbmcmIHZlcnNpb24pCit7CisgICAgaWYgKHZlcnNpb24gPT0ga0N0YXAyVmVyc2lv
bikKKyAgICAgICAgcmV0dXJuIFByb3RvY29sVmVyc2lvbjo6a0N0YXA7CisgICAgaWYgKHZlcnNp
b24gPT0ga1UyZlZlcnNpb24pCisgICAgICAgIHJldHVybiBQcm90b2NvbFZlcnNpb246OmtVMmY7
CisKKyAgICByZXR1cm4gUHJvdG9jb2xWZXJzaW9uOjprVW5rbm93bjsKK30KKworQ3RhcERldmlj
ZVJlc3BvbnNlQ29kZSBnZXRSZXNwb25zZUNvZGUoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZm
ZXIpCit7CisgICAgaWYgKGJ1ZmZlci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJJbnZhbGlkQ0JPUjsKKworICAgIGF1dG8gY29kZSA9
IHN0YXRpY19jYXN0PEN0YXBEZXZpY2VSZXNwb25zZUNvZGU+KGJ1ZmZlclswXSk7CisgICAgcmV0
dXJuIGlzQ3RhcERldmljZVJlc3BvbnNlQ29kZShjb2RlKSA/IGNvZGUgOiBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDJFcnJJbnZhbGlkQ0JPUjsKK30KKworc3RhdGljIFZlY3Rvcjx1aW50
OF90PiBnZXRDcmVkZW50aWFsSWQoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBhdXRoZW50aWNhdG9y
RGF0YSkKK3sKKyAgICBjb25zdCBzaXplX3QgY3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0ID0ga1Jw
SWRIYXNoTGVuZ3RoICsga0ZsYWdzTGVuZ3RoICsga1NpZ25Db3VudGVyTGVuZ3RoICsga0FhZ3Vp
ZExlbmd0aDsKKworICAgIGlmIChhdXRoZW50aWNhdG9yRGF0YS5zaXplKCkgPCBjcmVkZW50aWFs
SWRMZW5ndGhPZmZzZXQgKyBrQ3JlZGVudGlhbElkTGVuZ3RoTGVuZ3RoKQorICAgICAgICByZXR1
cm4geyB9OworICAgIHNpemVfdCBjcmVkZW50aWFsSWRMZW5ndGggPSAoc3RhdGljX2Nhc3Q8c2l6
ZV90PihhdXRoZW50aWNhdG9yRGF0YVtjcmVkZW50aWFsSWRMZW5ndGhPZmZzZXRdKSA8PCA4KSB8
IHN0YXRpY19jYXN0PHNpemVfdD4oYXV0aGVudGljYXRvckRhdGFbY3JlZGVudGlhbElkTGVuZ3Ro
T2Zmc2V0ICsgMV0pOworCisgICAgaWYgKGF1dGhlbnRpY2F0b3JEYXRhLnNpemUoKSA8IGNyZWRl
bnRpYWxJZExlbmd0aE9mZnNldCArIGtDcmVkZW50aWFsSWRMZW5ndGhMZW5ndGggKyBjcmVkZW50
aWFsSWRMZW5ndGgpCisgICAgICAgIHJldHVybiB7IH07CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGNy
ZWRlbnRpYWxJZDsKKyAgICBjcmVkZW50aWFsSWQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjcmVk
ZW50aWFsSWRMZW5ndGgpOworICAgIGF1dG8gYmVnaW5JdCA9IGF1dGhlbnRpY2F0b3JEYXRhLmJl
Z2luKCkgKyBjcmVkZW50aWFsSWRMZW5ndGhPZmZzZXQgKyBrQ3JlZGVudGlhbElkTGVuZ3RoTGVu
Z3RoOworICAgIGNyZWRlbnRpYWxJZC5hcHBlbmRSYW5nZShiZWdpbkl0LCBiZWdpbkl0ICsgY3Jl
ZGVudGlhbElkTGVuZ3RoKTsKKyAgICByZXR1cm4gY3JlZGVudGlhbElkOworfQorCisKKy8vIERl
Y29kZXMgYnl0ZSBhcnJheSByZXNwb25zZSBmcm9tIGF1dGhlbnRpY2F0b3IgdG8gQ0JPUiB2YWx1
ZSBvYmplY3QgYW5kCisvLyBjaGVja3MgZm9yIGNvcnJlY3QgZW5jb2RpbmcgZm9ybWF0Lgorc3Rk
OjpvcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZENUQVBNYWtlQ3JlZGVudGlh
bFJlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaW5CdWZmZXIpCit7CisgICAgaWYgKGlu
QnVmZmVyLnNpemUoKSA8PSBrUmVzcG9uc2VDb2RlTGVuZ3RoKQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKKyAgICBidWZmZXIuYXBw
ZW5kKGluQnVmZmVyLmRhdGEoKSArIDEsIGluQnVmZmVyLnNpemUoKSAtIDEpOworICAgIHN0ZDo6
b3B0aW9uYWw8Q0JPUj4gZGVjb2RlZFJlc3BvbnNlID0gY2Jvcjo6Q0JPUlJlYWRlcjo6cmVhZChi
dWZmZXIpOworICAgIGlmICghZGVjb2RlZFJlc3BvbnNlIHx8ICFkZWNvZGVkUmVzcG9uc2UtPmlz
TWFwKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgY29uc3QgYXV0byYgZGVj
b2RlZE1hcCA9IGRlY29kZWRSZXNwb25zZS0+Z2V0TWFwKCk7CisKKyAgICBhdXRvIGl0ID0gZGVj
b2RlZE1hcC5maW5kKENCT1IoMSkpOworICAgIGlmIChpdCA9PSBkZWNvZGVkTWFwLmVuZCgpIHx8
ICFpdC0+c2Vjb25kLmlzU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgYXV0byBmb3JtYXQgPSBpdC0+c2Vjb25kLmNsb25lKCk7CisKKyAgICBpdCA9IGRlY29kZWRN
YXAuZmluZChDQk9SKDIpKTsKKyAgICBpZiAoaXQgPT0gZGVjb2RlZE1hcC5lbmQoKSB8fCAhaXQt
PnNlY29uZC5pc0J5dGVTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICBhdXRvIGF1dGhlbnRpY2F0b3JEYXRhID0gaXQtPnNlY29uZC5jbG9uZSgpOworCisgICAgYXV0
byBjcmVkZW50aWFsSWQgPSBnZXRDcmVkZW50aWFsSWQoYXV0aGVudGljYXRvckRhdGEuZ2V0Qnl0
ZVN0cmluZygpKTsKKyAgICBpZiAoY3JlZGVudGlhbElkLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGl0ID0gZGVjb2RlZE1hcC5maW5kKENCT1IoMykpOwor
ICAgIGlmIChpdCA9PSBkZWNvZGVkTWFwLmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzTWFwKCkpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgYXV0byBhdHRTdG10ID0gaXQtPnNlY29u
ZC5jbG9uZSgpOworCisgICAgQ0JPUjo6TWFwVmFsdWUgYXR0ZXN0YXRpb25PYmplY3RNYXA7Cisg
ICAgYXR0ZXN0YXRpb25PYmplY3RNYXBbQ0JPUigiYXV0aERhdGEiKV0gPSBXVEZNb3ZlKGF1dGhl
bnRpY2F0b3JEYXRhKTsKKyAgICBhdHRlc3RhdGlvbk9iamVjdE1hcFtDQk9SKCJmbXQiKV0gPSBX
VEZNb3ZlKGZvcm1hdCk7CisgICAgYXR0ZXN0YXRpb25PYmplY3RNYXBbQ0JPUigiYXR0U3RtdCIp
XSA9IFdURk1vdmUoYXR0U3RtdCk7CisgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGNib3I6
OkNCT1JXcml0ZXI6OndyaXRlKENCT1IoV1RGTW92ZShhdHRlc3RhdGlvbk9iamVjdE1hcCkpKTsK
KworICAgIHJldHVybiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSB7IEFycmF5QnVmZmVyOjpjcmVh
dGUoY3JlZGVudGlhbElkLmRhdGEoKSwgY3JlZGVudGlhbElkLnNpemUoKSksIHRydWUsIG51bGxw
dHIsIEFycmF5QnVmZmVyOjpjcmVhdGUoYXR0ZXN0YXRpb25PYmplY3QudmFsdWUoKS5kYXRhKCks
IGF0dGVzdGF0aW9uT2JqZWN0LnZhbHVlKCkuc2l6ZSgpKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVs
bHB0ciB9OworfQorCitzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhPiByZWFk
Q1RBUEdldEFzc2VydGlvblJlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaW5CdWZmZXIp
Cit7CisgICAgaWYgKGluQnVmZmVyLnNpemUoKSA8PSBrUmVzcG9uc2VDb2RlTGVuZ3RoKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsK
KyAgICBidWZmZXIuYXBwZW5kKGluQnVmZmVyLmRhdGEoKSArIDEsIGluQnVmZmVyLnNpemUoKSAt
IDEpOworICAgIHN0ZDo6b3B0aW9uYWw8Q0JPUj4gZGVjb2RlZFJlc3BvbnNlID0gY2Jvcjo6Q0JP
UlJlYWRlcjo6cmVhZChidWZmZXIpOworCisgICAgaWYgKCFkZWNvZGVkUmVzcG9uc2UgfHwgIWRl
Y29kZWRSZXNwb25zZS0+aXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIGF1dG8mIHJlc3BvbnNlTWFwID0gZGVjb2RlZFJlc3BvbnNlLT5nZXRNYXAoKTsKKworICAg
IFJlZlB0cjxBcnJheUJ1ZmZlcj4gY3JlZGVudGlhbElkOworICAgIGF1dG8gaXQgPSByZXNwb25z
ZU1hcC5maW5kKENCT1IoMSkpOworICAgIGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSAmJiBp
dC0+c2Vjb25kLmlzTWFwKCkpIHsKKyAgICAgICAgYXV0byYgY3JlZGVudGlhbCA9IGl0LT5zZWNv
bmQuZ2V0TWFwKCk7CisgICAgICAgIGF1dG8gaXRyID0gY3JlZGVudGlhbC5maW5kKENCT1Ioa0Ny
ZWRlbnRpYWxJZEtleSkpOworICAgICAgICBpZiAoaXRyID09IGNyZWRlbnRpYWwuZW5kKCkgfHwg
IWl0ci0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICAgICAgYXV0byYgaWQgPSBpdHItPnNlY29uZC5nZXRCeXRlU3RyaW5nKCk7Cisg
ICAgICAgIGNyZWRlbnRpYWxJZCA9IEFycmF5QnVmZmVyOjpjcmVhdGUoaWQuZGF0YSgpLCBpZC5z
aXplKCkpOworICAgIH0KKworICAgIGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDIpKTsKKyAg
ICBpZiAoaXQgPT0gcmVzcG9uc2VNYXAuZW5kKCkgfHwgIWl0LT5zZWNvbmQuaXNCeXRlU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgYXV0byYgYXV0aERhdGEgPSBp
dC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKTsKKworICAgIGl0ID0gcmVzcG9uc2VNYXAuZmluZChD
Qk9SKDMpKTsKKyAgICBpZiAoaXQgPT0gcmVzcG9uc2VNYXAuZW5kKCkgfHwgIWl0LT5zZWNvbmQu
aXNCeXRlU3RyaW5nKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgYXV0byYg
c2lnbmF0dXJlID0gaXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCk7CisKKyAgICBSZWZQdHI8QXJy
YXlCdWZmZXI+IHVzZXJIYW5kbGU7CisgICAgeworICAgICAgICBpdCA9IHJlc3BvbnNlTWFwLmZp
bmQoQ0JPUig0KSk7CisgICAgICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5lbmQoKSB8fCAhaXQt
PnNlY29uZC5pc01hcCgpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAg
ICAgYXV0byYgdXNlciA9IGl0LT5zZWNvbmQuZ2V0TWFwKCk7CisgICAgICAgIGF1dG8gaXRyID0g
dXNlci5maW5kKENCT1Ioa0VudGl0eUlkTWFwS2V5KSk7CisgICAgICAgIGlmIChpdHIgPT0gdXNl
ci5lbmQoKSB8fCAhaXRyLT5zZWNvbmQuaXNCeXRlU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworICAgICAgICBhdXRvJiBpZCA9IGl0ci0+c2Vjb25kLmdldEJ5dGVT
dHJpbmcoKTsKKyAgICAgICAgdXNlckhhbmRsZSA9IEFycmF5QnVmZmVyOjpjcmVhdGUoaWQuZGF0
YSgpLCBpZC5zaXplKCkpOworICAgIH0KKworICAgIHJldHVybiBQdWJsaWNLZXlDcmVkZW50aWFs
RGF0YSB7IFdURk1vdmUoY3JlZGVudGlhbElkKSwgZmFsc2UsIG51bGxwdHIsIG51bGxwdHIsIEFy
cmF5QnVmZmVyOjpjcmVhdGUoYXV0aERhdGEuZGF0YSgpLCBhdXRoRGF0YS5zaXplKCkpLCBBcnJh
eUJ1ZmZlcjo6Y3JlYXRlKHNpZ25hdHVyZS5kYXRhKCksIHNpZ25hdHVyZS5zaXplKCkpLCBXVEZN
b3ZlKHVzZXJIYW5kbGUpIH07Cit9CisKK3N0ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRvckdldElu
Zm9SZXNwb25zZT4gcmVhZENUQVBHZXRJbmZvUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiBpbkJ1ZmZlcikKK3sKKyAgICBpZiAoaW5CdWZmZXIuc2l6ZSgpIDw9IGtSZXNwb25zZUNvZGVM
ZW5ndGggfHwgZ2V0UmVzcG9uc2VDb2RlKGluQnVmZmVyKSAhPSBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlOjprU3VjY2VzcykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIFZlY3Rv
cjx1aW50OF90PiBidWZmZXI7CisgICAgYnVmZmVyLmFwcGVuZChpbkJ1ZmZlci5kYXRhKCkgKyAx
LCBpbkJ1ZmZlci5zaXplKCkgLSAxKTsKKyAgICBzdGQ6Om9wdGlvbmFsPENCT1I+IGRlY29kZWRS
ZXNwb25zZSA9IGNib3I6OkNCT1JSZWFkZXI6OnJlYWQoYnVmZmVyKTsKKyAgICBpZiAoIWRlY29k
ZWRSZXNwb25zZSB8fCAhZGVjb2RlZFJlc3BvbnNlLT5pc01hcCgpKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIGNvbnN0IGF1dG8mIHJlc3BvbnNlTWFwID0gZGVjb2RlZFJlc3Bv
bnNlLT5nZXRNYXAoKTsKKworICAgIGF1dG8gaXQgPSByZXNwb25zZU1hcC5maW5kKENCT1IoMSkp
OworICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5lbmQoKSB8fCAhaXQtPnNlY29uZC5pc0FycmF5
KCkgfHwgaXQtPnNlY29uZC5nZXRBcnJheSgpLnNpemUoKSA+IDIpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgU3RkU2V0PFByb3RvY29sVmVyc2lvbj4gcHJvdG9jb2xWZXJzaW9u
czsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHZlcnNpb24gOiBpdC0+c2Vjb25kLmdldEFycmF5KCkp
IHsKKyAgICAgICAgaWYgKCF2ZXJzaW9uLmlzU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIGF1dG8gcHJvdG9jb2wgPSBjb252ZXJ0U3RyaW5nVG9Q
cm90b2NvbFZlcnNpb24odmVyc2lvbi5nZXRTdHJpbmcoKSk7CisgICAgICAgIGlmIChwcm90b2Nv
bCA9PSBQcm90b2NvbFZlcnNpb246OmtVbmtub3duKSB7CisgICAgICAgICAgICBMT0dfRVJST1Io
IlVuZXhwZWN0ZWQgcHJvdG9jb2wgdmVyc2lvbiByZWNlaXZlZC4iKTsKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFwcm90b2NvbFZlcnNpb25zLmluc2Vy
dChwcm90b2NvbCkuc2Vjb25kKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICB9CisgICAgaWYgKHByb3RvY29sVmVyc2lvbnMuZW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDMpKTsKKyAgICBp
ZiAoaXQgPT0gcmVzcG9uc2VNYXAuZW5kKCkgfHwgIWl0LT5zZWNvbmQuaXNCeXRlU3RyaW5nKCkg
fHwgaXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCkuc2l6ZSgpICE9IGtBYWd1aWRMZW5ndGgpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jl
c3BvbnNlIHJlc3BvbnNlKFdURk1vdmUocHJvdG9jb2xWZXJzaW9ucyksIFZlY3Rvcjx1aW50OF90
PihpdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKSkpOworCisgICAgaXQgPSByZXNwb25zZU1hcC5m
aW5kKENCT1IoMikpOworICAgIGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSkgeworICAgICAg
ICBpZiAoIWl0LT5zZWNvbmQuaXNBcnJheSgpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBWZWN0b3I8U3RyaW5nPiBleHRlbnNpb25zOworICAgICAgICBmb3Ig
KGNvbnN0IGF1dG8mIGV4dGVuc2lvbiA6IGl0LT5zZWNvbmQuZ2V0QXJyYXkoKSkgeworICAgICAg
ICAgICAgaWYgKCFleHRlbnNpb24uaXNTdHJpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgICAgICBleHRlbnNpb25zLmFwcGVuZChleHRlbnNpb24u
Z2V0U3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIHJlc3BvbnNlLnNldEV4dGVuc2lvbnMo
V1RGTW92ZShleHRlbnNpb25zKSk7CisgICAgfQorCisgICAgQXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnMgb3B0aW9uczsKKyAgICBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUig0KSk7Cisg
ICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFwLmVuZCgpKSB7CisgICAgICAgIGlmICghaXQtPnNlY29u
ZC5pc01hcCgpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgY29u
c3QgYXV0byYgb3B0aW9uTWFwID0gaXQtPnNlY29uZC5nZXRNYXAoKTsKKyAgICAgICAgYXV0byBv
cHRpb25NYXBJdCA9IG9wdGlvbk1hcC5maW5kKENCT1Ioa1BsYXRmb3JtRGV2aWNlTWFwS2V5KSk7
CisgICAgICAgIGlmIChvcHRpb25NYXBJdCAhPSBvcHRpb25NYXAuZW5kKCkpIHsKKyAgICAgICAg
ICAgIGlmICghb3B0aW9uTWFwSXQtPnNlY29uZC5pc0Jvb2woKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgICAgICBvcHRpb25zLnNldElzUGxhdGZvcm1E
ZXZpY2Uob3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29sKCkpOworICAgICAgICB9CisKKyAgICAg
ICAgb3B0aW9uTWFwSXQgPSBvcHRpb25NYXAuZmluZChDQk9SKGtSZXNpZGVudEtleU1hcEtleSkp
OworICAgICAgICBpZiAob3B0aW9uTWFwSXQgIT0gb3B0aW9uTWFwLmVuZCgpKSB7CisgICAgICAg
ICAgICBpZiAoIW9wdGlvbk1hcEl0LT5zZWNvbmQuaXNCb29sKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICAgICAgb3B0aW9ucy5zZXRTdXBwb3J0c1Jl
c2lkZW50S2V5KG9wdGlvbk1hcEl0LT5zZWNvbmQuZ2V0Qm9vbCgpKTsKKyAgICAgICAgfQorCisg
ICAgICAgIG9wdGlvbk1hcEl0ID0gb3B0aW9uTWFwLmZpbmQoQ0JPUihrVXNlclByZXNlbmNlTWFw
S2V5KSk7CisgICAgICAgIGlmIChvcHRpb25NYXBJdCAhPSBvcHRpb25NYXAuZW5kKCkpIHsKKyAg
ICAgICAgICAgIGlmICghb3B0aW9uTWFwSXQtPnNlY29uZC5pc0Jvb2woKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgICAgICBvcHRpb25zLnNldFVzZXJQ
cmVzZW5jZVJlcXVpcmVkKG9wdGlvbk1hcEl0LT5zZWNvbmQuZ2V0Qm9vbCgpKTsKKyAgICAgICAg
fQorCisgICAgICAgIG9wdGlvbk1hcEl0ID0gb3B0aW9uTWFwLmZpbmQoQ0JPUihrVXNlclZlcmlm
aWNhdGlvbk1hcEtleSkpOworICAgICAgICBpZiAob3B0aW9uTWFwSXQgIT0gb3B0aW9uTWFwLmVu
ZCgpKSB7CisgICAgICAgICAgICBpZiAoIW9wdGlvbk1hcEl0LT5zZWNvbmQuaXNCb29sKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICAgICAgaWYgKG9w
dGlvbk1hcEl0LT5zZWNvbmQuZ2V0Qm9vbCgpKQorICAgICAgICAgICAgICAgIG9wdGlvbnMuc2V0
VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9u
czo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG9wdGlvbnMuc2V0VXNlclZlcmlm
aWNhdGlvbkF2YWlsYWJpbGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZl
cmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dE5vdENvbmZpZ3VyZWQpOworICAg
ICAgICB9CisKKyAgICAgICAgb3B0aW9uTWFwSXQgPSBvcHRpb25NYXAuZmluZChDQk9SKGtDbGll
bnRQaW5NYXBLZXkpKTsKKyAgICAgICAgaWYgKG9wdGlvbk1hcEl0ICE9IG9wdGlvbk1hcC5lbmQo
KSkgeworICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJdC0+c2Vjb25kLmlzQm9vbCgpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIGlmIChvcHRp
b25NYXBJdC0+c2Vjb25kLmdldEJvb2woKSkKKyAgICAgICAgICAgICAgICBvcHRpb25zLnNldENs
aWVudFBpbkF2YWlsYWJpbGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50
UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kUGluU2V0KTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBvcHRpb25zLnNldENsaWVudFBpbkF2YWlsYWJpbGl0eShBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVk
QnV0UGluTm90U2V0KTsKKyAgICAgICAgfQorICAgICAgICByZXNwb25zZS5zZXRPcHRpb25zKFdU
Rk1vdmUob3B0aW9ucykpOworICAgIH0KKworICAgIGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9S
KDUpKTsKKyAgICBpZiAoaXQgIT0gcmVzcG9uc2VNYXAuZW5kKCkpIHsKKyAgICAgICAgaWYgKCFp
dC0+c2Vjb25kLmlzVW5zaWduZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgcmVzcG9uc2Uuc2V0TWF4TXNnU2l6ZShpdC0+c2Vjb25kLmdldFVuc2lnbmVk
KCkpOworICAgIH0KKworICAgIGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDYpKTsKKyAgICBp
ZiAoaXQgIT0gcmVzcG9uc2VNYXAuZW5kKCkpIHsKKyAgICAgICAgaWYgKCFpdC0+c2Vjb25kLmlz
QXJyYXkoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgVmVj
dG9yPHVpbnQ4X3Q+IHN1cHBvcnRlZFBpblByb3RvY29sczsKKyAgICAgICAgZm9yIChjb25zdCBh
dXRvJiBwcm90b2NvbCA6IGl0LT5zZWNvbmQuZ2V0QXJyYXkoKSkgeworICAgICAgICAgICAgaWYg
KCFwcm90b2NvbC5pc1Vuc2lnbmVkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICAgICAgc3VwcG9ydGVkUGluUHJvdG9jb2xzLmFwcGVuZChwcm90b2Nv
bC5nZXRVbnNpZ25lZCgpKTsKKyAgICAgICAgfQorICAgICAgICByZXNwb25zZS5zZXRQaW5Qcm90
b2NvbHMoV1RGTW92ZShzdXBwb3J0ZWRQaW5Qcm90b2NvbHMpKTsKKyAgICB9CisKKyAgICByZXR1
cm4gV1RGTW92ZShyZXNwb25zZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKworI2VuZGlm
IC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjgxOTYzMzU0NWNkZTI1YzBkYmRjNGM2M2RhNWYxYjE2NmUyMzc0OTMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9u
c2VDb252ZXJ0ZXIuaApAQCAtMCwwICsxLDY2IEBACisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgQ2hy
b21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRI
TikKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCIKKyNpbmNsdWRl
ICJGaWRvQ29uc3RhbnRzLmgiCisjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbERhdGEuaCIK
KworLy8gQ29udmVydHMgcmVzcG9uc2UgZnJvbSBhdXRoZW50aWNhdG9ycyB0byBDVEFQUmVzcG9u
c2Ugb2JqZWN0cy4gSWYgdGhlCisvLyByZXNwb25zZSBvZiB0aGUgYXV0aGVudGljYXRvciBkb2Vz
IG5vdCBjb25mb3JtIHRvIGZvcm1hdCBzcGVjaWZpZWQgYnkgdGhlCisvLyBDVEFQIHByb3RvY29s
LCBudWxsIG9wdGlvbmFsIGlzIHJldHVybmVkLgorbmFtZXNwYWNlIGZpZG8geworCisvLyBQYXJz
ZXMgcmVzcG9uc2UgY29kZSBmcm9tIHJlc3BvbnNlIHJlY2VpdmVkIGZyb20gdGhlIGF1dGhlbnRp
Y2F0b3IuIElmCisvLyB1bmtub3duIHJlc3BvbnNlIGNvZGUgdmFsdWUgaXMgcmVjZWl2ZWQsIHRo
ZW4gQ1RBUDJfRVJSX09USEVSIGlzIHJldHVybmVkLgorV0VCQ09SRV9FWFBPUlQgQ3RhcERldmlj
ZVJlc3BvbnNlQ29kZSBnZXRSZXNwb25zZUNvZGUoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7CisK
Ky8vIERlLXNlcmlhbGl6ZXMgQ0JPUiBlbmNvZGVkIHJlc3BvbnNlLCBjaGVja3MgZm9yIHZhbGlk
IENCT1IgbWFwIGZvcm1hdHRpbmcsCisvLyBhbmQgY29udmVydHMgcmVzcG9uc2UgdG8gQXV0aGVu
dGljYXRvck1ha2VDcmVkZW50aWFsUmVzcG9uc2Ugb2JqZWN0IHdpdGgKKy8vIENCT1IgbWFwIGtl
eXMgdGhhdCBjb25mb3JtIHRvIGZvcm1hdCBvZiBhdHRlc3RhdGlvbiBvYmplY3QgZGVmaW5lZCBi
eSB0aGUKKy8vIFdlYkF1dGhOIHNwZWMgOiBodHRwczovL3czYy5naXRodWIuaW8vd2ViYXV0aG4v
I2ZpZy1hdHRTdHJ1Y3RzCitXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlB1
YmxpY0tleUNyZWRlbnRpYWxEYXRhPiByZWFkQ1RBUE1ha2VDcmVkZW50aWFsUmVzcG9uc2UoY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+Jik7CisKKy8vIERlLXNlcmlhbGl6ZXMgQ0JPUiBlbmNvZGVkIHJl
c3BvbnNlIHRvIEF1dGhlbnRpY2F0b3JHZXRBc3NlcnRpb24gLworLy8gQXV0aGVudGljYXRvckdl
dE5leHRBc3NlcnRpb24gcmVxdWVzdCB0byBBdXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9uUmVzcG9u
c2UKKy8vIG9iamVjdC4KKy8vIEZJWE1FKDE5MDc4Myk6IFByb2JhYmx5IG5lZWQgdG8gcmVtYWtl
IEF1dGhlbnRpY2F0b3JSZXNwb25zZSB0byBpbmNsdWRlIG1vcmUgZmllbGRzIGxpa2UgbnVtYmVy
T2ZDcmVkZW50aWFscywKKy8vIGFuZCB1c2UgaXQgaGVyZSBpbnN0ZWFkIG9mIFB1YmxpY0tleUNy
ZWRlbnRpYWxEYXRhLgorV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZENUQVBHZXRBc3NlcnRpb25SZXNwb25zZShjb25zdCBW
ZWN0b3I8dWludDhfdD4mKTsKKworLy8gRGUtc2VyaWFsaXplcyBDQk9SIGVuY29kZWQgcmVzcG9u
c2UgdG8gQXV0aGVudGljYXRvckdldEluZm8gcmVxdWVzdCB0bworLy8gQXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZSBvYmplY3QuCitXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPEF1dGhl
bnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U+IHJlYWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYpOworCit9IC8vIG5hbWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9maWRvL0ZpZG9Db25zdGFudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9maWRvL0ZpZG9Db25zdGFudHMuY3BwCmluZGV4IDM4ODFmZDJmMjY0ZTlmMGVlNGRhMDM5MjQy
ZTVhZDEwZDcwNGE0ZjMuLjgxNzI1Y2VhZjJjZWQyOTE5Njc4NDNjOTc5MTc4YWY2ZWM0NGU3MzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29u
c3RhbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlk
b0NvbnN0YW50cy5jcHAKQEAgLTMzLDYgKzMzLDY2IEBACiAjaWYgRU5BQkxFKFdFQl9BVVRITikK
IAogbmFtZXNwYWNlIGZpZG8gewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK2Jvb2wgaXND
dGFwRGV2aWNlUmVzcG9uc2VDb2RlKEN0YXBEZXZpY2VSZXNwb25zZUNvZGUgY29kZSkKK3sKKyAg
ICBzd2l0Y2ggKGNvZGUpIHsKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtTdWNj
ZXNzOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAxRXJySW52YWxpZENv
bW1hbmQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDFFcnJJbnZhbGlk
UGFyYW1ldGVyOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAxRXJySW52
YWxpZExlbmd0aDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMUVycklu
dmFsaWRTZXE6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDFFcnJUaW1l
b3V0OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAxRXJyQ2hhbm5lbEJ1
c3k6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDFFcnJMb2NrUmVxdWly
ZWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDFFcnJJbnZhbGlkQ2hh
bm5lbDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckNCT1JQYXJz
aW5nOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVW5leHBlY3Rl
ZFR5cGU6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJJbnZhbGlk
Q0JPUjoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRD
Qk9SVHlwZToKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyck1pc3Np
bmdQYXJhbWV0ZXI6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJM
aW1pdEV4Y2VlZGVkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJy
VW5zdXBwb3J0ZWRFeHRlbnNpb246CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjpr
Q3RhcDJFcnJUb29NYW55RWxlbWVudHM6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2Rl
OjprQ3RhcDJFcnJFeHRlbnNpb25Ob3RTdXBwb3J0ZWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDJFcnJDcmVkZW50aWFsRXhjbHVkZWQ6CisgICAgY2FzZSBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQcm9jZXNzc2luZzoKKyAgICBjYXNlIEN0YXBEZXZp
Y2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRDcmVkZW50aWFsOgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVXNlckFjdGlvblBlbmRpbmc6CisgICAgY2Fz
ZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJPcGVyYXRpb25QZW5kaW5nOgorICAg
IGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyTm9PcGVyYXRpb25zOgorICAg
IGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVW5zdXBwb3J0ZWRBbGdvcml0
aG1zOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyT3BlcmF0aW9u
RGVuaWVkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyS2V5U3Rv
cmVGdWxsOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyTm90QnVz
eToKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyck5vT3BlcmF0aW9u
UGVuZGluZzoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclVuc3Vw
cG9ydGVkT3B0aW9uOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJy
SW52YWxpZE9wdGlvbjoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVy
cktlZXBBbGl2ZUNhbmNlbDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFw
MkVyck5vQ3JlZGVudGlhbHM6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3Rh
cDJFcnJVc2VyQWN0aW9uVGltZW91dDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6
OmtDdGFwMkVyck5vdEFsbG93ZWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjpr
Q3RhcDJFcnJQaW5JbnZhbGlkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0
YXAyRXJyUGluQmxvY2tlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFw
MkVyclBpbkF1dGhJbnZhbGlkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0
YXAyRXJyUGluQXV0aEJsb2NrZWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjpr
Q3RhcDJFcnJQaW5Ob3RTZXQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3Rh
cDJFcnJQaW5SZXF1aXJlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFw
MkVyclBpblBvbGljeVZpb2xhdGlvbjoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6
OmtDdGFwMkVyclBpblRva2VuRXhwaXJlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMkVyclJlcXVlc3RUb29MYXJnZToKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25z
ZUNvZGU6OmtDdGFwMkVyck90aGVyOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6
a0N0YXAyRXJyU3BlY0xhc3Q6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3Rh
cDJFcnJFeHRlbnNpb25GaXJzdDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtD
dGFwMkVyckV4dGVuc2lvbkxhc3Q6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjpr
Q3RhcDJFcnJWZW5kb3JGaXJzdDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtD
dGFwMkVyclZlbmRvckxhc3Q6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CiAKIGJvb2wgaXNGaWRvSGlkRGV2aWNlQ29t
bWFuZChGaWRvSGlkRGV2aWNlQ29tbWFuZCBjbWQpCiB7CkBAIC01Miw2ICsxMTIsMTYgQEAgYm9v
bCBpc0ZpZG9IaWREZXZpY2VDb21tYW5kKEZpZG9IaWREZXZpY2VDb21tYW5kIGNtZCkKICAgICB9
CiB9CiAKK2NvbnN0IGNoYXIqIHB1YmxpY0tleUNyZWRlbnRpYWxUeXBlVG9TdHJpbmcoUHVibGlj
S2V5Q3JlZGVudGlhbFR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNl
IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXk6CisgICAgICAgIHJldHVybiBrUHVi
bGljS2V5OworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4ga1B1
YmxpY0tleTsKK30KKwogfSAvLyBuYW1lc3BhY2UgZmlkbwogCiAjZW5kaWYgLy8gRU5BQkxFKFdF
Ql9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlk
by9GaWRvQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
Rmlkb0NvbnN0YW50cy5oCmluZGV4IGI4NjkwZjAzZGQ0ODRkZmQzNjc1Njc1MGUwNTZhMjc1YzZk
ZDNlNTYuLjVjZDdhZThiMzkxMzUxNDAxNDdmYzA2OTc5MzYzODBmNDkwMGJhN2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMu
aApAQCAtMzEsOCArMzEsOTMgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKKyNpbmNsdWRl
ICJQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5oIgorCiBuYW1lc3BhY2UgZmlkbyB7CiAKK2VudW0g
Y2xhc3MgUHJvdG9jb2xWZXJzaW9uIHsKKyAgICBrQ3RhcCwKKyAgICBrVTJmLAorICAgIGtVbmtu
b3duLAorfTsKKworLy8gTGVuZ3RoIG9mIHRoZSBTSEEtMjU2IGhhc2ggb2YgdGhlIFJQIElEIGFz
c3NvY2lhdGVkIHdpdGggdGhlIGNyZWRlbnRpYWw6CisvLyBodHRwczovL3d3dy53My5vcmcvVFIv
d2ViYXV0aG4vI3NlYy1hdXRoZW50aWNhdG9yLWRhdGEKK2NvbnN0ZXhwciBzaXplX3Qga1JwSWRI
YXNoTGVuZ3RoID0gMzI7CisKKy8vIExlbmd0aCBvZiB0aGUgZmxhZ3M6CisvLyBodHRwczovL3d3
dy53My5vcmcvVFIvd2ViYXV0aG4vI3NlYy1hdXRoZW50aWNhdG9yLWRhdGEKK2NvbnN0ZXhwciBz
aXplX3Qga0ZsYWdzTGVuZ3RoID0gMTsKKworLy8gTGVuZ3RoIG9mIHRoZSBzaWduYXR1cmUgY291
bnRlciwgMzItYml0IHVuc2lnbmVkIGJpZy1lbmRpYW4gaW50ZWdlcjoKKy8vIGh0dHBzOi8vd3d3
LnczLm9yZy9UUi93ZWJhdXRobi8jc2VjLWF1dGhlbnRpY2F0b3ItZGF0YQorY29uc3RleHByIHNp
emVfdCBrU2lnbkNvdW50ZXJMZW5ndGggPSA0OworCisvLyBMZW5ndGggb2YgdGhlIEFBR1VJRCBv
ZiB0aGUgYXV0aGVudGljYXRvcjoKKy8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8j
c2VjLWF0dGVzdGVkLWNyZWRlbnRpYWwtZGF0YQorY29uc3RleHByIHNpemVfdCBrQWFndWlkTGVu
Z3RoID0gMTY7CisKKy8vIExlbmd0aCBvZiB0aGUgYnl0ZSBsZW5ndGggTCBvZiBDcmVkZW50aWFs
IElELCAxNi1iaXQgdW5zaWduZWQgYmlnLWVuZGlhbgorLy8gaW50ZWdlcjogaHR0cHM6Ly93d3cu
dzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXR0ZXN0ZWQtY3JlZGVudGlhbC1kYXRhCitjb25zdGV4
cHIgc2l6ZV90IGtDcmVkZW50aWFsSWRMZW5ndGhMZW5ndGggPSAyOworCisvLyBDVEFQIHByb3Rv
Y29sIGRldmljZSByZXNwb25zZSBjb2RlLCBhcyBzcGVjaWZpZWQgaW4KKy8vIGh0dHBzOi8vZmlk
b2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8t
YXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjZXJyb3ItcmVzcG9u
c2VzCitlbnVtIGNsYXNzIEN0YXBEZXZpY2VSZXNwb25zZUNvZGUgOiB1aW50OF90IHsKKyAgICBr
U3VjY2VzcyA9IDB4MDAsCisgICAga0N0YXAxRXJySW52YWxpZENvbW1hbmQgPSAweDAxLAorICAg
IGtDdGFwMUVyckludmFsaWRQYXJhbWV0ZXIgPSAweDAyLAorICAgIGtDdGFwMUVyckludmFsaWRM
ZW5ndGggPSAweDAzLAorICAgIGtDdGFwMUVyckludmFsaWRTZXEgPSAweDA0LAorICAgIGtDdGFw
MUVyclRpbWVvdXQgPSAweDA1LAorICAgIGtDdGFwMUVyckNoYW5uZWxCdXN5ID0gMHgwNiwKKyAg
ICBrQ3RhcDFFcnJMb2NrUmVxdWlyZWQgPSAweDBBLAorICAgIGtDdGFwMUVyckludmFsaWRDaGFu
bmVsID0gMHgwQiwKKyAgICBrQ3RhcDJFcnJDQk9SUGFyc2luZyA9IDB4MTAsCisgICAga0N0YXAy
RXJyVW5leHBlY3RlZFR5cGUgPSAweDExLAorICAgIGtDdGFwMkVyckludmFsaWRDQk9SID0gMHgx
MiwKKyAgICBrQ3RhcDJFcnJJbnZhbGlkQ0JPUlR5cGUgPSAweDEzLAorICAgIGtDdGFwMkVyck1p
c3NpbmdQYXJhbWV0ZXIgPSAweDE0LAorICAgIGtDdGFwMkVyckxpbWl0RXhjZWVkZWQgPSAweDE1
LAorICAgIGtDdGFwMkVyclVuc3VwcG9ydGVkRXh0ZW5zaW9uID0gMHgxNiwKKyAgICBrQ3RhcDJF
cnJUb29NYW55RWxlbWVudHMgPSAweDE3LAorICAgIGtDdGFwMkVyckV4dGVuc2lvbk5vdFN1cHBv
cnRlZCA9IDB4MTgsCisgICAga0N0YXAyRXJyQ3JlZGVudGlhbEV4Y2x1ZGVkID0gMHgxOSwKKyAg
ICBrQ3RhcDJFcnJQcm9jZXNzc2luZyA9IDB4MjEsCisgICAga0N0YXAyRXJySW52YWxpZENyZWRl
bnRpYWwgPSAweDIyLAorICAgIGtDdGFwMkVyclVzZXJBY3Rpb25QZW5kaW5nID0gMHgyMywKKyAg
ICBrQ3RhcDJFcnJPcGVyYXRpb25QZW5kaW5nID0gMHgyNCwKKyAgICBrQ3RhcDJFcnJOb09wZXJh
dGlvbnMgPSAweDI1LAorICAgIGtDdGFwMkVyclVuc3VwcG9ydGVkQWxnb3JpdGhtcyA9IDB4MjYs
CisgICAga0N0YXAyRXJyT3BlcmF0aW9uRGVuaWVkID0gMHgyNywKKyAgICBrQ3RhcDJFcnJLZXlT
dG9yZUZ1bGwgPSAweDI4LAorICAgIGtDdGFwMkVyck5vdEJ1c3kgPSAweDI5LAorICAgIGtDdGFw
MkVyck5vT3BlcmF0aW9uUGVuZGluZyA9IDB4MkEsCisgICAga0N0YXAyRXJyVW5zdXBwb3J0ZWRP
cHRpb24gPSAweDJCLAorICAgIGtDdGFwMkVyckludmFsaWRPcHRpb24gPSAweDJDLAorICAgIGtD
dGFwMkVycktlZXBBbGl2ZUNhbmNlbCA9IDB4MkQsCisgICAga0N0YXAyRXJyTm9DcmVkZW50aWFs
cyA9IDB4MkUsCisgICAga0N0YXAyRXJyVXNlckFjdGlvblRpbWVvdXQgPSAweDJGLAorICAgIGtD
dGFwMkVyck5vdEFsbG93ZWQgPSAweDMwLAorICAgIGtDdGFwMkVyclBpbkludmFsaWQgPSAweDMx
LAorICAgIGtDdGFwMkVyclBpbkJsb2NrZWQgPSAweDMyLAorICAgIGtDdGFwMkVyclBpbkF1dGhJ
bnZhbGlkID0gMHgzMywKKyAgICBrQ3RhcDJFcnJQaW5BdXRoQmxvY2tlZCA9IDB4MzQsCisgICAg
a0N0YXAyRXJyUGluTm90U2V0ID0gMHgzNSwKKyAgICBrQ3RhcDJFcnJQaW5SZXF1aXJlZCA9IDB4
MzYsCisgICAga0N0YXAyRXJyUGluUG9saWN5VmlvbGF0aW9uID0gMHgzNywKKyAgICBrQ3RhcDJF
cnJQaW5Ub2tlbkV4cGlyZWQgPSAweDM4LAorICAgIGtDdGFwMkVyclJlcXVlc3RUb29MYXJnZSA9
IDB4MzksCisgICAga0N0YXAyRXJyT3RoZXIgPSAweDdGLAorICAgIGtDdGFwMkVyclNwZWNMYXN0
ID0gMHhERiwKKyAgICBrQ3RhcDJFcnJFeHRlbnNpb25GaXJzdCA9IDB4RTAsCisgICAga0N0YXAy
RXJyRXh0ZW5zaW9uTGFzdCA9IDB4RUYsCisgICAga0N0YXAyRXJyVmVuZG9yRmlyc3QgPSAweEYw
LAorICAgIGtDdGFwMkVyclZlbmRvckxhc3QgPSAweEZGCit9OworCitib29sIGlzQ3RhcERldmlj
ZVJlc3BvbnNlQ29kZShDdGFwRGV2aWNlUmVzcG9uc2VDb2RlKTsKKwogLy8gQ29tbWFuZHMgc3Vw
cG9ydGVkIGJ5IENUQVBISUQgZGV2aWNlIGFzIHNwZWNpZmllZCBpbgogLy8gaHR0cHM6Ly9maWRv
YWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1h
dXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNjdGFwaGlkLWNvbW1h
bmRzCiBlbnVtIGNsYXNzIEZpZG9IaWREZXZpY2VDb21tYW5kIDogdWludDhfdCB7CkBAIC00Nyw3
ICsxMzIsMjQgQEAgZW51bSBjbGFzcyBGaWRvSGlkRGV2aWNlQ29tbWFuZCA6IHVpbnQ4X3Qgewog
ICAgIGtMb2NrID0gMHgwNCwKIH07CiAKLWJvb2wgaXNGaWRvSGlkRGV2aWNlQ29tbWFuZChGaWRv
SGlkRGV2aWNlQ29tbWFuZCBjbWQpOworYm9vbCBpc0ZpZG9IaWREZXZpY2VDb21tYW5kKEZpZG9I
aWREZXZpY2VDb21tYW5kKTsKKworLy8gU3RyaW5nIGtleSB2YWx1ZXMgZm9yIENUQVAgcmVxdWVz
dCBvcHRpb25hbCBwYXJhbWV0ZXJzIGFuZAorLy8gQXV0aGVudGljYXRvckdldEluZm8gcmVzcG9u
c2UuCitjb25zdCBjaGFyIGtSZXNpZGVudEtleU1hcEtleVtdID0gInJrIjsKK2NvbnN0IGNoYXIg
a1VzZXJWZXJpZmljYXRpb25NYXBLZXlbXSA9ICJ1diI7Citjb25zdCBjaGFyIGtVc2VyUHJlc2Vu
Y2VNYXBLZXlbXSA9ICJ1cCI7Citjb25zdCBjaGFyIGtDbGllbnRQaW5NYXBLZXlbXSA9ICJjbGll
bnRQaW4iOworY29uc3QgY2hhciBrUGxhdGZvcm1EZXZpY2VNYXBLZXlbXSA9ICJwbGF0IjsKK2Nv
bnN0IGNoYXIga0VudGl0eUlkTWFwS2V5W10gPSAiaWQiOworY29uc3QgY2hhciBrRW50aXR5TmFt
ZU1hcEtleVtdID0gIm5hbWUiOworY29uc3QgY2hhciBrRGlzcGxheU5hbWVNYXBLZXlbXSA9ICJk
aXNwbGF5TmFtZSI7Citjb25zdCBjaGFyIGtJY29uVXJsTWFwS2V5W10gPSAiaWNvbiI7Citjb25z
dCBjaGFyIGtDcmVkZW50aWFsVHlwZU1hcEtleVtdID0gInR5cGUiOworY29uc3QgY2hhciBrQ3Jl
ZGVudGlhbEFsZ29yaXRobU1hcEtleVtdID0gImFsZyI7CisvLyBLZXlzIGZvciBzdG9yaW5nIGNy
ZWRlbnRpYWwgZGVzY3JpcHRvciBpbmZvcm1hdGlvbiBpbiBDQk9SIG1hcC4KK2NvbnN0IGNoYXIg
a0NyZWRlbnRpYWxJZEtleVtdID0gImlkIjsKK2NvbnN0IGNoYXIga0NyZWRlbnRpYWxUeXBlS2V5
W10gPSAidHlwZSI7CiAKIC8vIEhJRCB0cmFuc3BvcnQgc3BlY2lmaWMgY29uc3RhbnRzLgogY29u
c3Qgc2l6ZV90IGtIaWRQYWNrZXRTaXplID0gNjQ7CkBAIC02Myw2ICsxNjUsMzQgQEAgY29uc3Qg
dWludDhfdCBrSGlkTWF4TG9ja1NlY29uZHMgPSAxMDsKIC8vIE1lc3NhZ2VzIGFyZSBsaW1pdGVk
IHRvIGFuIGluaXRpYXRpb24gcGFja2V0IGFuZCAxMjggY29udGludWF0aW9uIHBhY2tldHMuCiBj
b25zdCBzaXplX3Qga0hpZE1heE1lc3NhZ2VTaXplID0gNzYwOTsKIAorLy8gQXV0aGVudGljYXRv
ciBBUEkgY29tbWFuZHMgc3VwcG9ydGVkIGJ5IENUQVAgZGV2aWNlcywgYXMgc3BlY2lmaWVkIGlu
CisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXJkLTIwMTcwOTI3
L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1yZC0yMDE3MDkyNy5o
dG1sI2F1dGhlbnRpY2F0b3ItYXBpCitlbnVtIGNsYXNzIEN0YXBSZXF1ZXN0Q29tbWFuZCA6IHVp
bnQ4X3QgeworICAgIGtBdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRpYWwgPSAweDAxLAorICAgIGtB
dXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9uID0gMHgwMiwKKyAgICBrQXV0aGVudGljYXRvckdldE5l
eHRBc3NlcnRpb24gPSAweDA4LAorICAgIGtBdXRoZW50aWNhdG9yR2V0SW5mbyA9IDB4MDQsCisg
ICAga0F1dGhlbnRpY2F0b3JDbGllbnRQaW4gPSAweDA2LAorICAgIGtBdXRoZW50aWNhdG9yUmVz
ZXQgPSAweDA3LAorfTsKKworLy8gU3RyaW5nIGtleSB2YWx1ZXMgZm9yIGF0dGVzdGF0aW9uIG9i
amVjdCBhcyBhIHJlc3BvbnNlIHRvIE1ha2VDcmVkZW50aWFsCisvLyByZXF1ZXN0LgorY29uc3Qg
Y2hhciBrRm9ybWF0S2V5W10gPSAiZm10IjsKK2NvbnN0IGNoYXIga0F0dGVzdGF0aW9uU3RhdGVt
ZW50S2V5W10gPSAiYXR0U3RtdCI7Citjb25zdCBjaGFyIGtBdXRoRGF0YUtleVtdID0gImF1dGhE
YXRhIjsKK2NvbnN0IGNoYXIga05vbmVBdHRlc3RhdGlvblZhbHVlW10gPSAibm9uZSI7CisKKy8v
IFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBwdWJsaWMga2V5IGNyZWRlbnRpYWwgZW51bS4KKy8v
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhdXRobi8jY3JlZGVudGlhbFR5cGUKK2NvbnN0IGNo
YXIga1B1YmxpY0tleVtdID0gInB1YmxpYy1rZXkiOworCitjb25zdCBjaGFyKiBwdWJsaWNLZXlD
cmVkZW50aWFsVHlwZVRvU3RyaW5nKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxUeXBlKTsK
KworLy8gRklYTUU6IEFkZCB1cmwgdG8gdGhlIG9mZmljaWFsIHNwZWMgb25jZSBpdCdzIHN0YW5k
YXJkaXplZC4KK2NvbnN0IGNoYXIga0N0YXAyVmVyc2lvbltdID0gIkZJRE9fMl8wIjsKK2NvbnN0
IGNoYXIga1UyZlZlcnNpb25bXSA9ICJVMkZfVjIiOworCiB9IC8vIG5hbWVzcGFjZSBmaWRvCiAK
ICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNwcAppbmRleCA2ZGY0NWUxYmVkNjI0Y2I1OThiMjk4YWRh
OTI2NTIyMDUyYjFmZmY3Li5hMGIyMTQ5YzM3MjFkZGIyYThmNzlkZTc5NTcxMzA2ZWVlZDNkMTkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNw
cApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
ICNpbmNsdWRlICJXZWJHUFVBZGFwdGVyRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIldlYkdQVURl
dmljZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IDE0YjRiOWYyOGEwYjMwODdmODEyOTFiZjcwY2FhZDYxZjAyNDI2YTIu
LjliN2RjMzlhZDA2NDlmZjg1NThmNjg5YmU2MzIyZTA3YWM0MWRiOWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC0yNTgsNiArMjU4LDEwIEBAIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlh
bC5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SUmVhZGVyLmNwcAogTW9kdWxlcy93ZWJh
dXRobi9jYm9yL0NCT1JWYWx1ZS5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SV3JpdGVy
LmNwcAorTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2Uu
Y3BwCitNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMu
Y3BwCitNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAKK01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKIE1vZHVsZXMv
d2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcAogTW9kdWxlcy93ZWJhdXRobi9maWRvL0Zp
ZG9IaWRNZXNzYWdlLmNwcAogTW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9IaWRQYWNrZXQuY3Bw
CkBAIC0zMTU5LDYgKzMxNjMsNyBAQCBKU1RyZWVXYWxrZXIuY3BwCiBKU1VJRXZlbnQuY3BwCiBK
U1VJRXZlbnRJbml0LmNwcAogSlNVUkxTZWFyY2hQYXJhbXMuY3BwCitKU1VzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudC5jcHAKIEpTVlJEaXNwbGF5LmNwcAogSlNWUkRpc3BsYXlDYXBhYmlsaXRp
ZXMuY3BwCiBKU1ZSRGlzcGxheUV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIxZDI1ZmQ4NTFhNmUyMWE4MWNlZTNm
ZjdmNmM2MzNlYWM2ZDI1MTYuLmZjM2EyMDI0YTg0NGE1MGU5M2UxZTQxNGQ4N2M0OTNlM2ZmMzE0
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE3NTQsNiArMTc1NCwxMiBAQAogCQk1NzIxQTk4NzFFQ0U1M0IxMDA4MTI5NUEg
LyogQ3J5cHRvRGlnZXN0QWxnb3JpdGhtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzIxQTk4NjFFQ0U1M0IxMDA4MTI5NUEgLyogQ3J5cHRvRGlnZXN0
QWxnb3JpdGhtLmggKi87IH07CiAJCTU3MjFBOThCMUVDRTU3MDQwMDgxMjk1QSAvKiBDcnlwdG9B
bGdvcml0aG1Sc2FQc3NQYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3MjFBOTg4MUVDRTU3MDQwMDgxMjk1QSAvKiBDcnlwdG9BbGdvcml0aG1S
c2FQc3NQYXJhbXMuaCAqLzsgfTsKIAkJNTcyQTdGMjExQzZFNTcxOTAwOUM2MTQ5IC8qIFNpbXVs
YXRlZENsaWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzJBN0YyMDFDNkU1NzE5MDA5QzYxNDkgLyogU2ltdWxhdGVkQ2xpY2suaCAqLzsgfTsKKwkJ
NTcyQjQwMUYyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDFEMjE3NTdB
NjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTcyQjQwMkMyMTc2OTAyMDAwMEFENDNF
IC8qIEpTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJCNDAyQTIxNzY5MDFGMDAwQUQ0M0UgLyogSlNV
c2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCAqLzsgfTsKKwkJNTcyQjQwMzYyMTc2QTkyMjAw
MEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwMjMyMTc2OEQ4NTAwMEFENDNFIC8q
IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTU3MkI0MDNBMjE3NzI1ODEwMDBBRDQzRSAvKiBEZXZp
Y2VSZXNwb25zZUNvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTcyQjQwMzcyMTc3MjU2QzAwMEFENDNFIC8qIERldmljZVJlc3BvbnNlQ29u
dmVydGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNTcyQjQwNDAyMTc4MDE3MTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJC
NDAzRTIxNzgwMTcwMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NzJCNDA0
MjIxNzgxMTRBMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwM0MyMTc3RkI2
MTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NzMwM0JCOTIwMDZDNkVFMDAz
NTU5NjUgLyogQ0JPUlZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzMwM0JCNDIwMDZDNkVEMDAzNTU5NjUgLyogQ0JPUlZhbHVlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTczMDNCQkEyMDA2
QzZFRTAwMzU1OTY1IC8qIENCT1JXcml0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzAzQkI1MjAwNkM2RUQwMDM1NTk2NSAvKiBDQk9SV3JpdGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTcz
MDNCQkIyMDA2QzZFRTAwMzU1OTY1IC8qIENCT1JCaW5hcnkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzAzQkI2MjAwNkM2RUQwMDM1NTk2NSAvKiBD
Qk9SQmluYXJ5LmggKi87IH07CkBAIC04NTcyLDYgKzg1NzgsMTggQEAKIAkJNTcyMUE5OEExRUNF
NTcwNDAwODEyOTVBIC8qIFJzYVBzc1BhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhUHNzUGFyYW1zLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyQTdGMjAxQzZFNTcxOTAwOUM2MTQ5IC8q
IFNpbXVsYXRlZENsaWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNpbXVs
YXRlZENsaWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkE3RjIyMUM2RTVB
NjYwMDlDNjE0OSAvKiBTaW11bGF0ZWRDbGljay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTaW11bGF0ZWRDbGljay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTU3MkI0MDFEMjE3NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVydGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMUUyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVl
c3RDb252ZXJ0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlUmVxdWVzdENvbnZlcnRl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDIzMjE3NjhEODUwMDBB
RDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTU3MkI0MDI1MjE3NjhEODUwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU3MkI0MDJBMjE3NjkwMUYwMDBBRDQzRSAvKiBKU1VzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Vz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1NzJCNDAyQjIxNzY5MDFGMDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNVc2VyVmVyaWZp
Y2F0aW9uUmVxdWlyZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJC
NDAzNzIxNzcyNTZDMDAwQUQ0M0UgLyogRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMzgyMTc3MjU2QzAwMEFENDNFIC8qIERl
dmljZVJlc3BvbnNlQ29udmVydGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTcyQjQwM0IyMTc3RkI2MDAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVu
dGljYXRvckdldEluZm9SZXNwb25zZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTU3MkI0MDNDMjE3N0ZCNjEwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwM0QyMTc4MDE2
RjAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25z
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwM0UyMTc4MDE3MDAwMEFE
NDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAzQkI0MjAwNkM2RUQwMDM1NTk2NSAvKiBDQk9SVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0JPUlZhbHVlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAzQkI1MjAwNkM2RUQwMDM1NTk2NSAvKiBDQk9S
V3JpdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENCT1JXcml0ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQjYyMDA2QzZFRDAwMzU1OTY1IC8q
IENCT1JCaW5hcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0JPUkJpbmFy
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkwOTMsNiArMTkxMTEsMTQgQEAK
IAkJNTc4QTRCRkEyMTY2QUUwMDAwRDA4RjM0IC8qIGZpZG8gKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTU3MkI0MDNCMjE3N0ZCNjAwMDBBRDQzRSAvKiBB
dXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmNwcCAqLywKKwkJCQk1NzJCNDAzQzIxNzdGQjYx
MDAwQUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oICovLAorCQkJCTU3MkI0
MDNEMjE3ODAxNkYwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAg
Ki8sCisJCQkJNTcyQjQwM0UyMTc4MDE3MDAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0
ZWRPcHRpb25zLmggKi8sCisJCQkJNTcyQjQwMUUyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJl
cXVlc3RDb252ZXJ0ZXIuY3BwICovLAorCQkJCTU3MkI0MDFEMjE3NTdBNjQwMDBBRDQzRSAvKiBE
ZXZpY2VSZXF1ZXN0Q29udmVydGVyLmggKi8sCisJCQkJNTcyQjQwMzgyMTc3MjU2QzAwMEFENDNF
IC8qIERldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcCAqLywKKwkJCQk1NzJCNDAzNzIxNzcyNTZD
MDAwQUQ0M0UgLyogRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCAqLywKIAkJCQk1N0JBRjI4NzIx
NjdEMkY3MDA4RTk1NEUgLyogRmlkb0NvbnN0YW50cy5jcHAgKi8sCiAJCQkJNTc4QTRDMEIyMTY3
RDI5NjAwRDA4RjM0IC8qIEZpZG9Db25zdGFudHMuaCAqLywKIAkJCQk1NzhBNEMwODIxNjdEMjk1
MDBEMDhGMzQgLyogRmlkb0hpZE1lc3NhZ2UuY3BwICovLApAQCAtMTkxNzIsNiArMTkxOTgsOCBA
QAogCQkJCTU3MzAzQzA4MjAwOTk4RjgwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnMuaWRsICovLAogCQkJCTU3MzAzQkVBMjAwOTdGNDAwMDM1NTk2NSAvKiBQdWJs
aWNLZXlDcmVkZW50aWFsVHlwZS5oICovLAogCQkJCTU3MzAzQkYwMjAwOTg0NjEwMDM1NTk2NSAv
KiBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5pZGwgKi8sCisJCQkJNTcyQjQwMjMyMTc2OEQ4NTAw
MEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICovLAorCQkJCTU3MkI0MDI1
MjE3NjhEODUwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsICovLAog
CQkJKTsKIAkJCXBhdGggPSB3ZWJhdXRobjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0xOTE5Nyw2ICsxOTIyNSw4IEBACiAJCQkJNTczMDNDMEMyMDA5OUM3NTAwMzU1OTY1IC8qIEpT
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmggKi8sCiAJCQkJNTczMDNCRkEyMDA5
OTEzNTAwMzU1OTY1IC8qIEpTUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuY3BwICovLAogCQkJCTU3
MzAzQkY5MjAwOTkxMzQwMDM1NTk2NSAvKiBKU1B1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmggKi8s
CisJCQkJNTcyQjQwMkIyMTc2OTAxRjAwMEFENDNFIC8qIEpTVXNlclZlcmlmaWNhdGlvblJlcXVp
cmVtZW50LmNwcCAqLywKKwkJCQk1NzJCNDAyQTIxNzY5MDFGMDAwQUQ0M0UgLyogSlNVc2VyVmVy
aWZpY2F0aW9uUmVxdWlyZW1lbnQuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gV2ViQXV0aE47CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjc2ODAsNyArMjc3MTAsOSBAQAogCQkJCTU3
MzAzQzFGMjAwOUFCNDIwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25z
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNDNDYyMDEwNUQyRjAwMzU1OTY1IC8qIEF1dGhl
bnRpY2F0b3JDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc2MDgyNzIyMDIxNUE1
NTAwMTE2Njc4IC8qIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTcyQjQwNDIyMTc4MTE0QTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQkQyMjAwODdBODMwMDM1NTk2NSAv
KiBBdXRoZW50aWNhdG9yUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MkI0MDQwMjE3
ODAxNzEwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTdEQ0VEOTAyMTQ4N0ZGNzAwMTZCODQ3IC8qIEF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MDE5MjBFMTMyRUJGMkUwMDhCRkU1NSAvKiBB
dXRvY2FwaXRhbGl6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVBN0FBNDMxMzJGMEVDQzAwRDNB
M0MyIC8qIEF1dG9jYXBpdGFsaXplVHlwZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjgxOTgsNiAr
MjgyMzAsOCBAQAogCQkJCTU5QThGMUQ2MTFBNjk1MTMwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5MEUxQjQ5MTFFNEVGNEIwMDY5
Rjc4NCAvKiBEZXZpY2VPcmllbnRhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5QTg1
RUE0MTE5RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk1NzJCNDAxRjIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZl
cnRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcyQjQwM0EyMTc3MjU4MTAwMEFENDNFIC8qIERl
dmljZVJlc3BvbnNlQ29udmVydGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjc3MjVGRDFBNUIz
QUQ5MDAzQzI0REQgLyogREZBLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0Q5RjU2NjFBQTBGNzND
MDBEQTQ1RkYgLyogREZBQnl0ZWNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDlGNTY3MUFB
MEY3NDIwMERBNDVGRiAvKiBERkFCeXRlY29kZUNvbXBpbGVyLmggaW4gSGVhZGVycyAqLywKQEAg
LTI5NjgxLDYgKzI5NzE1LDcgQEAKIAkJCQk0NjUzMDdEMDFEQjZFRTQ4MDBFNDEzN0MgLyogSlNV
SUV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M3M0ZCMTIxOTFFRjZGNDAwN0RFMDYx
IC8qIEpTVXNlck1lc3NhZ2VIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzczRkIwRDE5
MUVGNUE4MDA3REUwNjEgLyogSlNVc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1NzJCNDAyQzIxNzY5MDIwMDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZpY2F0
aW9uUmVxdWlyZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1Qzc3MDkzMTAwRDNDQTgwMDVC
QTI2NyAvKiBKU1ZhbGlkaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFOEVGMDRCMTcx
QzkwMTQwMDlCNDhDMyAvKiBKU1ZpZGVvVHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJFOEVG
MDREMTcxQzkwMTQwMDlCNDhDMyAvKiBKU1ZpZGVvVHJhY2tMaXN0LmggaW4gSGVhZGVycyAqLywK
QEAgLTMxMzMyLDYgKzMxMzY3LDcgQEAKIAkJCQlCQzhCRjE1MTEwNTgxM0JGMDBBNDBBMDcgLyog
VXNlclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOEJGMTVBMTA1ODE0MTgwMEE0
MEEwNyAvKiBVc2VyU3R5bGVTaGVldFR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGMzE3
QzExRjhENjgzMDAzQzVCRjggLyogVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTU3MkI0MDM2MjE3NkE5MjIwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUYxNEU2MUVBQUM1OUIwMDI2RUVB
QSAvKiBVVElSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUZBRkJGMTkxNUE1RkE3NDAw
MDgzQTIwIC8qIFVUSVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDNDVCOEUxREMy
QjY4QTAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJibGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGNmMTA3ZjUxMTc3
YTZkMjkyMzczMWRhZmFkNmNiMzYxYTMwNDMyODQuLjNkOGU3MDEzMTQ2YWYwMDA1ZTViZjVhODAw
ZGEyNDc0OGIxNzk2ZDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOC0xMC0yMiAgSmlld2VuIFRhbiAgPGppZXdl
bl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRoTl0gSW1wb3J0IENUQVAgZGV2aWNl
IHJlcXVlc3QvcmVzcG9uc2UgY29udmVydGVycyBmcm9tIENocm9taXVtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA3ODQKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzQ1NDYwMzMzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NCT1JW
YWx1ZVRlc3QuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHA6IEFkZGVkLgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OmdldFRlc3RDb3JydXB0ZWRTaWduUmVzcG9uc2UpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6Z2V0VGVzdENyZWRlbnRpYWxSYXdJZEJ5dGVzKToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OmNvbnZlcnRUb1ZlY3Rvcik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmg6IEFk
ZGVkLgorCiAyMDE4LTEwLTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4K
IAogICAgICAgICB3ZWJraXRweTogU3VwcG9ydCBhbHRlcm5hdGUgc2ltY3RsIGxpc3Qgb3V0cHV0
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNWY5Yjc3MjA4MTZkYmRkZDZjMTI1YWI0YzU3
YmU4ZDNiOWQzMTViLi4wMTczOGVmNDg3OWI3NGE4NmQ1ZjIwOGE2MGYwYWRhNDIwNGRmZDM0IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQ2LDYgKzI0Niw4IEBACiAJCTU3MTRFQ0JCMUNB
OEJGRTQwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVD
QkExQ0E4QkZEMTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRt
bCAqLzsgfTsKIAkJNTcxNEVDQkQxQ0E4QzIyQTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9y
aWdpbmFsVVJMMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3MTRFQ0JDMUNBOEMyMTgwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RP
cmlnaW5hbFVSTDIuaHRtbCAqLzsgfTsKIAkJNTcxRjdGRDAxRjI5NjFGQjAwOTQ2NjQ4IC8qIElu
ZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXdhbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzFG
N0ZDRjFGMjk2MUUxMDA5NDY2NDggLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRD
b21wYXRpYmlsaXR5LnNxbGl0ZTMtd2FsICovOyB9OworCQk1NzJCNDAzNDIxNzY5QTg4MDAwQUQ0
M0UgLyogQ3RhcFJlcXVlc3RUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3MkI0MDMzMjE3NjlBODgwMDBBRDQzRSAvKiBDdGFwUmVxdWVzdFRl
c3QuY3BwICovOyB9OworCQk1NzJCNDA0NDIxNzgxQjQzMDAwQUQ0M0UgLyogQ3RhcFJlc3BvbnNl
VGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
NzJCNDA0MzIxNzgxQjQyMDAwQUQ0M0UgLyogQ3RhcFJlc3BvbnNlVGVzdC5jcHAgKi87IH07CiAJ
CTU3MzAzQkM5MjAwODI0RDMwMDM1NTk2NSAvKiBDQk9SVmFsdWVUZXN0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzAzQkFDMjAwNkM1NjAwMDM1
NTk2NSAvKiBDQk9SVmFsdWVUZXN0LmNwcCAqLzsgfTsKIAkJNTczMDNCQ0EyMDA4MkMwMTAwMzU1
OTY1IC8qIENCT1JXcml0ZXJUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3MzAzQkFCMjAwNkM1NTQwMDM1NTk2NSAvKiBDQk9SV3JpdGVyVGVz
dC5jcHAgKi87IH07CiAJCTU3MzAzQkNCMjAwODM3NjUwMDM1NTk2NSAvKiBDQk9SUmVhZGVyVGVz
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzMw
M0JDMjIwMDcxRTIyMDAzNTU5NjUgLyogQ0JPUlJlYWRlclRlc3QuY3BwICovOyB9OwpAQCAtMTU1
MSw2ICsxNTUzLDkgQEAKIAkJNTcxNEVDQkExQ0E4QkZEMTAwMDUxQUM4IC8qIERvd25sb2FkUmVx
dWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERv
d25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTcxNEVDQkMxQ0E4QzIxODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdp
bmFsVVJMMi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0
T3JpZ2luYWxVUkwyLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MUY3RkNG
MUYyOTYxRTEwMDk0NjY0OCAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBh
dGliaWxpdHkuc3FsaXRlMy13YWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIkluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3
YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXdhbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTU3MkI0MDMzMjE3NjlBODgwMDBBRDQzRSAvKiBDdGFwUmVxdWVzdFRlc3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3RhcFJlcXVlc3RUZXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMzUyMTc2QTAyOTAwMEFENDNFIC8qIEZp
ZG9UZXN0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWRvVGVzdERhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwNDMyMTc4MUI0MjAwMEFENDNFIC8qIEN0YXBSZXNwb25z
ZVRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3RhcFJlc3Bv
bnNlVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAzQkFCMjAwNkM1
NTQwMDM1NTk2NSAvKiBDQk9SV3JpdGVyVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDQk9SV3JpdGVyVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3MzAzQkFDMjAwNkM1NjAwMDM1NTk2NSAvKiBDQk9SVmFsdWVUZXN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENCT1JWYWx1ZVRlc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzMwM0JDMjIwMDcxRTIyMDAzNTU5NjUgLyogQ0JP
UlJlYWRlclRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0JP
UlJlYWRlclRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUzMiwxMSAr
MjUzNywxNCBAQAogCQkJCTFDOUVCODQwMUUzODBEQTEwMDVDNjQ0MiAvKiBDb21wbGV4VGV4dENv
bnRyb2xsZXIuY3BwICovLAogCQkJCTdDQjE4NEM0MUFBM0YyMTAwMDY2RURGRCAvKiBDb250ZW50
RXh0ZW5zaW9ucy5jcHAgKi8sCiAJCQkJQ0Q1NDUxRTkxOUU0MUY5RDAwMTY5MzZGIC8qIENTU1Bh
cnNlci5jcHAgKi8sCisJCQkJNTcyQjQwMzMyMTc2OUE4ODAwMEFENDNFIC8qIEN0YXBSZXF1ZXN0
VGVzdC5jcHAgKi8sCisJCQkJNTcyQjQwNDMyMTc4MUI0MjAwMEFENDNFIC8qIEN0YXBSZXNwb25z
ZVRlc3QuY3BwICovLAogCQkJCTI2MEJBNTc4MUIxRDJFN0IwMDRGQTA3QyAvKiBERkFDb21iaW5l
ci5jcHAgKi8sCiAJCQkJMjYwQkE1N0ExQjFEMkVFMjAwNEZBMDdDIC8qIERGQUhlbHBlcnMuaCAq
LywKIAkJCQkyNkY2RTFFRjFBREM3NDlCMDBERTY5NkIgLyogREZBTWluaW1pemVyLmNwcCAqLywK
IAkJCQkzMTUxMTgwRjFEQjFBREQ1MDAxNzYzMDQgLyogRXh0ZW5kZWRDb2xvci5jcHAgKi8sCiAJ
CQkJNTc5NjUxRTYyMTZCRkQ1MzAwNkVCRkU1IC8qIEZpZG9IaWRNZXNzYWdlVGVzdC5jcHAgKi8s
CisJCQkJNTcyQjQwMzUyMTc2QTAyOTAwMEFENDNFIC8qIEZpZG9UZXN0RGF0YS5oICovLAogCQkJ
CTdBMzJENzQ5MUYwMjE1MTUwMDE2MkM0NCAvKiBGaWxlTW9uaXRvci5jcHAgKi8sCiAJCQkJNDE5
NzNCNUExQUYyMjg2QTAwNkM3QjM2IC8qIEZpbGVTeXN0ZW0uY3BwICovLAogCQkJCTdBOTA5QTcw
MUQ4Nzc0NzUwMDdFMTBGOCAvKiBGbG9hdFBvaW50LmNwcCAqLywKQEAgLTM3NjcsNiArMzc3NSw4
IEBACiAJCQkJN0NDRTdFQUMxQTQxMUEzNDAwNDQ3QzRDIC8qIENvdW50ZXJzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdBRUFENDdGMUUyMDExNkMwMDQxNkVGRSAvKiBDcm9zc1BhcnRpdGlvbkZp
bGVTY2hlbWVBY2Nlc3MubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VEQjFBNDExQTkyMDA0
NDdDNEMgLyogQ1NTUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU3MkI0MDM0MjE3NjlB
ODgwMDBBRDQzRSAvKiBDdGFwUmVxdWVzdFRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTcy
QjQwNDQyMTc4MUI0MzAwMEFENDNFIC8qIEN0YXBSZXNwb25zZVRlc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0FDN0I1NzAyMEQ5QkE1QjAwMkMwOUEwIC8qIEN1c3RvbUJ1bmRsZU9iamVjdC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTdBQzdCNTZEMjBEOTc2OUYwMDJDMDlBMCAvKiBDdXN0b21C
dW5kbGVQYXJhbWV0ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YyOTFBNDExQjEwMDA0
NDdDNEMgLyogQ3VzdG9tUHJvdG9jb2xzSW52YWxpZFNjaGVtZS5tbSBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NCT1JWYWx1ZVRl
c3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NCT1JWYWx1ZVRlc3Qu
Y3BwCmluZGV4IGEyZDZiODlmMjcyOGZmNWU4ODk3ZDI0NGIwY2I1ODM5ZjkzNWVjZTEuLmZmNTIw
ZGM3YTU5NDk0YzVhM2Q2ZDYxNmVjNWRmNWEwNGRjN2M3ZDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DQk9SVmFsdWVUZXN0LmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUlZhbHVlVGVzdC5jcHAKQEAgLTE0OCw2ICsx
NDgsMTcgQEAgVEVTVChDQk9SVmFsdWVUZXN0LCBDb25zdHJ1Y3RTaW1wbGVWYWx1ZSkKICAgICBF
WFBFQ1RfVFJVRShDQk9SVmFsdWU6OlNpbXBsZVZhbHVlOjpVbmRlZmluZWQgPT0gdW5kZWZpbmVk
VmFsdWUuZ2V0U2ltcGxlVmFsdWUoKSk7CiB9CiAKK1RFU1QoQ0JPUlZhbHVlVGVzdCwgQ29uc3Ry
dWN0U2ltcGxlQm9vbGVhblZhbHVlKQoreworICAgIENCT1JWYWx1ZSB0cnVlVmFsdWUodHJ1ZSk7
CisgICAgQVNTRVJUX0VRKENCT1JWYWx1ZTo6VHlwZTo6U2ltcGxlVmFsdWUsIHRydWVWYWx1ZS50
eXBlKCkpOworICAgIEVYUEVDVF9UUlVFKHRydWVWYWx1ZS5nZXRCb29sKCkpOworCisgICAgQ0JP
UlZhbHVlIGZhbHNlVmFsdWUoZmFsc2UpOworICAgIEFTU0VSVF9FUShDQk9SVmFsdWU6OlR5cGU6
OlNpbXBsZVZhbHVlLCBmYWxzZVZhbHVlLnR5cGUoKSk7CisgICAgRVhQRUNUX0ZBTFNFKGZhbHNl
VmFsdWUuZ2V0Qm9vbCgpKTsKK30KKwogLy8gVGVzdCBjb3B5IGNvbnN0cnVjdG9ycwogVEVTVChD
Qk9SVmFsdWVUZXN0LCBDb3B5VW5zaWduZWQpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0Mzlk
YWQ0ZWMxYTkwODAwNzQxN2NkMmE3ZTZjNjFkZDEzNWZhNjQKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcApAQCAt
MCwwICsxLDEyOCBAQAorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIENocm9taXVtIEF1dGhvcnMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8g
bWV0OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8v
CisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5j
bHVkZSAiRmlkb1Rlc3REYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9EZXZpY2VSZXF1ZXN0Q29u
dmVydGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWRvQ29uc3RhbnRzLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9CYXNlNjQuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgZmlkbzsKKworLy8gTGV2ZXJhZ2luZyBl
eGFtcGxlIDIgb2Ygc2VjdGlvbiA2LjEgb2YgdGhlIHNwZWMKKy8vIGh0dHBzOi8vZmlkb2FsbGlh
bmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVu
dGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwKK1RFU1QoQ1RBUFJlcXVlc3RU
ZXN0LCBUZXN0Q29uc3RydWN0TWFrZUNyZWRlbnRpYWxSZXF1ZXN0UGFyYW0pCit7CisgICAgUHVi
bGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UnBFbnRpdHkgcnA7CisgICAgcnAubmFt
ZSA9ICJBY21lIjsKKyAgICBycC5pZCA9ICJhY21lLmNvbSI7CisKKyAgICBQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zOjpVc2VyRW50aXR5IHVzZXI7CisgICAgdXNlci5uYW1lID0g
ImpvaG5wc21pdGhAZXhhbXBsZS5jb20iOworICAgIHVzZXIuaWNvbiA9ICJodHRwczovL3BpY3Mu
YWNtZS5jb20vMDAvcC9hQmpqanBxUGIucG5nIjsKKyAgICB1c2VyLmlkVmVjdG9yLmFwcGVuZChU
ZXN0RGF0YTo6a1VzZXJJZCwgc2l6ZW9mKFRlc3REYXRhOjprVXNlcklkKSk7CisgICAgdXNlci5k
aXNwbGF5TmFtZSA9ICJKb2huIFAuIFNtaXRoIjsKKworICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0ZXJzPiBwYXJhbXMgeyB7IFB1YmxpY0tleUNy
ZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDcgfSwgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6
UHVibGljS2V5LCAyNTcgfSB9OworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rpb24geyBQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZv
cm0sIHRydWUsIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkIH07CisKKyAg
ICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMgeyBycCwgdXNlciwg
eyB9LCBwYXJhbXMsIHN0ZDo6bnVsbG9wdCwgeyB9LCBzZWxlY3Rpb24gfTsKKyAgICBWZWN0b3I8
dWludDhfdD4gaGFzaDsKKyAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNo
LCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOworICAgIGF1dG8gc2VyaWFsaXpl
ZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywg
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxp
dHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVkKTsKKyAgICBFWFBFQ1RfRVEoc2VyaWFsaXpl
ZERhdGEuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0
KSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0YS5kYXRhKCksIFRlc3REYXRh
OjprQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdCwgc2VyaWFsaXplZERhdGEuc2l6ZSgpKSwgMCk7
Cit9CisKK1RFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0R2V0QXNzZXJ0aW9uUmVx
dWVzdCkKK3sKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgb3B0aW9uczsK
KyAgICBvcHRpb25zLnJwSWQgPSAiYWNtZS5jb20iOworCisgICAgUHVibGljS2V5Q3JlZGVudGlh
bERlc2NyaXB0b3IgZGVzY3JpcHRvcjE7CisgICAgZGVzY3JpcHRvcjEudHlwZSA9IFB1YmxpY0tl
eUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXk7CisgICAgY29uc3QgdWludDhfdCBpZDFbXSA9IHsK
KyAgICAgICAgMHhmMiwgMHgyMCwgMHgwNiwgMHhkZSwgMHg0ZiwgMHg5MCwgMHg1YSwgMHhmNiwg
MHg4YSwgMHg0MywgMHg5NCwKKyAgICAgICAgMHgyZiwgMHgwMiwgMHg0ZiwgMHgyYSwgMHg1ZSwg
MHhjZSwgMHg2MCwgMHgzZCwgMHg5YywgMHg2ZCwgMHg0YiwKKyAgICAgICAgMHgzZCwgMHhmOCwg
MHhiZSwgMHgwOCwgMHhlZCwgMHgwMSwgMHhmYywgMHg0NCwgMHgyNiwgMHg0NiwgMHhkMCwKKyAg
ICAgICAgMHgzNCwgMHg4NSwgMHg4YSwgMHhjNywgMHg1YiwgMHhlZCwgMHgzZiwgMHhkNSwgMHg4
MCwgMHhiZiwgMHg5OCwKKyAgICAgICAgMHgwOCwgMHhkOSwgMHg0ZiwgMHhjYiwgMHhlZSwgMHg4
MiwgMHhiOSwgMHhiMiwgMHhlZiwgMHg2NiwgMHg3NywKKyAgICAgICAgMHhhZiwgMHgwYSwgMHhk
YywgMHhjMywgMHg1OCwgMHg1MiwgMHhlYSwgMHg2YiwgMHg5ZSB9OworICAgIGRlc2NyaXB0b3Ix
LmlkVmVjdG9yLmFwcGVuZChpZDEsIHNpemVvZihpZDEpKTsKKyAgICBvcHRpb25zLmFsbG93Q3Jl
ZGVudGlhbHMuYXBwZW5kKGRlc2NyaXB0b3IxKTsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxE
ZXNjcmlwdG9yIGRlc2NyaXB0b3IyOworICAgIGRlc2NyaXB0b3IyLnR5cGUgPSBQdWJsaWNLZXlD
cmVkZW50aWFsVHlwZTo6UHVibGljS2V5OworICAgIGNvbnN0IHVpbnQ4X3QgaWQyW10gPSB7Cisg
ICAgICAgIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4
MDMsIDB4MDMsCisgICAgICAgIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4
MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAgICAgIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4
MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAgICAgIDB4MDMsIDB4MDMsIDB4
MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAgICAgIDB4
MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMg
fTsKKyAgICBkZXNjcmlwdG9yMi5pZFZlY3Rvci5hcHBlbmQoaWQyLCBzaXplb2YoaWQyKSk7Cisg
ICAgb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzLmFwcGVuZChkZXNjcmlwdG9yMik7CisKKyAgICBv
cHRpb25zLnVzZXJWZXJpZmljYXRpb24gPSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlJl
cXVpcmVkOworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGhhc2g7CisgICAgaGFzaC5hcHBlbmQoVGVz
dERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9mKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gp
KTsKKyAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFz
Q0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZl
cmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dE5vdENvbmZpZ3VyZWQpOworICAg
IEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a1Rlc3RD
b21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3QpKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNl
cmlhbGl6ZWREYXRhLmRhdGEoKSwgVGVzdERhdGE6OmtUZXN0Q29tcGxleEN0YXBHZXRBc3NlcnRp
b25SZXF1ZXN0LCBzZXJpYWxpemVkRGF0YS5zaXplKCkpLCAwKTsKK30KKworVEVTVChDVEFQUmVx
dWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RDdGFwQXV0aGVudGljYXRvclJlcXVlc3RQYXJhbSkKK3sK
KyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ4X3Qga1NlcmlhbGl6ZWRHZXRJbmZvQ21kID0gMHgw
NDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ4X3Qga1NlcmlhbGl6ZWRHZXROZXh0QXNzZXJ0
aW9uQ21kID0gMHgwODsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ4X3Qga1NlcmlhbGl6ZWRS
ZXNldENtZCA9IDB4MDc7CisKKyAgICBhdXRvIHNlcmlhbGl6ZWREYXRhMSA9IGVuY29kZUVtcHR5
QXV0aGVudGljYXRvclJlcXVlc3QoQ3RhcFJlcXVlc3RDb21tYW5kOjprQXV0aGVudGljYXRvckdl
dEluZm8pOworICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YTEuc2l6ZSgpLCAxdSk7CisgICAg
RVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0YTEuZGF0YSgpLCAma1NlcmlhbGl6ZWRHZXRJ
bmZvQ21kLCAxKSwgMCk7CisKKyAgICBhdXRvIHNlcmlhbGl6ZWREYXRhMiA9IGVuY29kZUVtcHR5
QXV0aGVudGljYXRvclJlcXVlc3QoQ3RhcFJlcXVlc3RDb21tYW5kOjprQXV0aGVudGljYXRvckdl
dE5leHRBc3NlcnRpb24pOworICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YTIuc2l6ZSgpLCAx
dSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0YTIuZGF0YSgpLCAma1Nlcmlh
bGl6ZWRHZXROZXh0QXNzZXJ0aW9uQ21kLCAxKSwgMCk7CisKKyAgICBhdXRvIHNlcmlhbGl6ZWRE
YXRhMyA9IGVuY29kZUVtcHR5QXV0aGVudGljYXRvclJlcXVlc3QoQ3RhcFJlcXVlc3RDb21tYW5k
OjprQXV0aGVudGljYXRvclJlc2V0KTsKKyAgICBFWFBFQ1RfRVEoc2VyaWFsaXplZERhdGEzLnNp
emUoKSwgMXUpOworICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEzLmRhdGEoKSwg
JmtTZXJpYWxpemVkUmVzZXRDbWQsIDEpLCAwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVzcG9uc2VUZXN0LmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVzcG9uc2VUZXN0LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zYjVkMjVlNWZlZWFmNzczYzM3YzQxNjhhNzU5MzNhZjY1ZjFkOGIyCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRl
c3QuY3BwCkBAIC0wLDAgKzEsMzU0IEBACisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgQ2hyb21pdW0g
QXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
Ky8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8v
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVU
SE4pCisKKyNpbmNsdWRlICJGaWRvVGVzdERhdGEuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NCT1JS
ZWFkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NCT1JWYWx1ZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvQ0JPUldyaXRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGV2aWNlUmVzcG9uc2VDb252ZXJ0
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpZG9Db25zdGFudHMuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1B1YmxpY0tleUNyZWRlbnRpYWwuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewor
dXNpbmcgbmFtZXNwYWNlIGZpZG87CisKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0QXV0aGVudGlj
YXRvckdldEluZm9SZXNwb25zZVdpdGhOb1ZlcnNpb25bXSA9IHsKKyAgICAvLyBTdWNjZXNzIHN0
YXR1cyBieXRlCisgICAgMHgwMCwKKyAgICAvLyBNYXAgb2YgNiBlbGVtZW50cworICAgIDB4QTYs
CisgICAgLy8gS2V5KDAxKSAtIHZlcnNpb25zCisgICAgMHgwMSwKKyAgICAvLyBBcnJheSgwKQor
ICAgIDB4ODAsCisgICAgLy8gS2V5KDAyKSAtIGV4dGVuc2lvbnMKKyAgICAweDAyLAorICAgIC8v
IEFycmF5KDIpCisgICAgMHg4MiwKKyAgICAvLyAidXZtIgorICAgIDB4NjMsIDB4NzUsIDB4NzYs
IDB4NkQsCisgICAgLy8gImhtYWMtc2VjcmV0IgorICAgIDB4NkIsIDB4NjgsIDB4NkQsIDB4NjEs
IDB4NjMsIDB4MkQsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NzIsIDB4NjUsIDB4NzQsCisgICAgLy8g
S2V5KDAzKSAtIEFBR1VJRAorICAgIDB4MDMsCisgICAgLy8gQnl0ZXMoMTYpCisgICAgMHg1MCwg
MHhGOCwgMHhBMCwgMHgxMSwgMHhGMywgMHg4QywgMHgwQSwgMHg0RCwgMHgxNSwgMHg4MCwgMHgw
NiwgMHgxNywKKyAgICAweDExLCAweDFGLCAweDlFLCAweERDLCAweDdELAorICAgIC8vIEtleSgw
NCkgLSBvcHRpb25zCisgICAgMHgwNCwKKyAgICAvLyBNYXAoMDUpCisgICAgMHhBNSwKKyAgICAv
LyBLZXkgLSAicmsiCisgICAgMHg2MiwgMHg3MiwgMHg2QiwKKyAgICAvLyB0cnVlCisgICAgMHhG
NSwKKyAgICAvLyBLZXkgLSAidXAiCisgICAgMHg2MiwgMHg3NSwgMHg3MCwKKyAgICAvLyB0cnVl
CisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAidXYiCisgICAgMHg2MiwgMHg3NSwgMHg3NiwKKyAg
ICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAicGxhdCIKKyAgICAweDY0LCAweDcw
LCAweDZDLCAweDYxLCAweDc0LAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAt
ICJjbGllbnRQaW4iCisgICAgMHg2OSwgMHg2MywgMHg2QywgMHg2OSwgMHg2NSwgMHg2RSwgMHg3
NCwgMHg1MCwgMHg2OSwgMHg2RSwKKyAgICAvLyBmYWxzZQorICAgIDB4RjQsCisgICAgLy8gS2V5
KDA1KSAtIE1heCBtZXNzYWdlIHNpemUKKyAgICAweDA1LAorICAgIC8vIDEyMDAKKyAgICAweDE5
LCAweDA0LCAweEIwLAorICAgIC8vIEtleSgwNikgLSBQaW4gcHJvdG9jb2xzCisgICAgMHgwNiwK
KyAgICAvLyBBcnJheVsxXQorICAgIDB4ODEsIDB4MDEsCit9OworCitjb25zdGV4cHIgdWludDhf
dCBrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoRHVwbGljYXRlVmVyc2lvbltd
ID0geworICAgIC8vIFN1Y2Nlc3Mgc3RhdHVzIGJ5dGUKKyAgICAweDAwLAorICAgIC8vIE1hcCBv
ZiA2IGVsZW1lbnRzCisgICAgMHhBNiwKKyAgICAvLyBLZXkoMDEpIC0gdmVyc2lvbnMKKyAgICAw
eDAxLAorICAgIC8vIEFycmF5KDAyKQorICAgIDB4ODIsCisgICAgLy8gIlUyRl9WMiIKKyAgICAw
eDY2LCAweDU1LCAweDMyLCAweDQ2LCAweDVGLCAweDU2LCAweDMyLAorICAgIC8vICJVMkZfVjIi
CisgICAgMHg2NiwgMHg1NSwgMHgzMiwgMHg0NiwgMHg1RiwgMHg1NiwgMHgzMiwKKyAgICAvLyBL
ZXkoMDIpIC0gZXh0ZW5zaW9ucworICAgIDB4MDIsCisgICAgLy8gQXJyYXkoMikKKyAgICAweDgy
LAorICAgIC8vICJ1dm0iCisgICAgMHg2MywgMHg3NSwgMHg3NiwgMHg2RCwKKyAgICAvLyAiaG1h
Yy1zZWNyZXQiCisgICAgMHg2QiwgMHg2OCwgMHg2RCwgMHg2MSwgMHg2MywgMHgyRCwgMHg3Mywg
MHg2NSwgMHg2MywgMHg3MiwgMHg2NSwgMHg3NCwKKyAgICAvLyBLZXkoMDMpIC0gQUFHVUlECisg
ICAgMHgwMywKKyAgICAvLyBCeXRlcygxNikKKyAgICAweDUwLCAweEY4LCAweEEwLCAweDExLCAw
eEYzLCAweDhDLCAweDBBLCAweDRELCAweDE1LCAweDgwLCAweDA2LCAweDE3LAorICAgIDB4MTEs
IDB4MUYsIDB4OUUsIDB4REMsIDB4N0QsCisgICAgLy8gS2V5KDA0KSAtIG9wdGlvbnMKKyAgICAw
eDA0LAorICAgIC8vIE1hcCgwNSkKKyAgICAweEE1LAorICAgIC8vIEtleSAtICJyayIKKyAgICAw
eDYyLCAweDcyLCAweDZCLAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJ1
cCIKKyAgICAweDYyLCAweDc1LCAweDcwLAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8v
IEtleSAtICJ1diIKKyAgICAweDYyLCAweDc1LCAweDc2LAorICAgIC8vIHRydWUKKyAgICAweEY1
LAorICAgIC8vIEtleSAtICJwbGF0IgorICAgIDB4NjQsIDB4NzAsIDB4NkMsIDB4NjEsIDB4NzQs
CisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gImNsaWVudFBpbiIKKyAgICAw
eDY5LCAweDYzLCAweDZDLCAweDY5LCAweDY1LCAweDZFLCAweDc0LCAweDUwLCAweDY5LCAweDZF
LAorICAgIC8vIGZhbHNlCisgICAgMHhGNCwKKyAgICAvLyBLZXkoMDUpIC0gTWF4IG1lc3NhZ2Ug
c2l6ZQorICAgIDB4MDUsCisgICAgLy8gMTIwMAorICAgIDB4MTksIDB4MDQsIDB4QjAsCisgICAg
Ly8gS2V5KDA2KSAtIFBpbiBwcm90b2NvbHMKKyAgICAweDA2LAorICAgIC8vIEFycmF5WzFdCisg
ICAgMHg4MSwgMHgwMSwKK307CisKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0QXV0aGVudGljYXRv
ckdldEluZm9SZXNwb25zZVdpdGhJbmNvcnJlY3RBYWd1aWRbXSA9IHsKKyAgICAvLyBTdWNjZXNz
IHN0YXR1cyBieXRlCisgICAgMHgwMCwKKyAgICAvLyBNYXAgb2YgNiBlbGVtZW50cworICAgIDB4
QTYsCisgICAgLy8gS2V5KDAxKSAtIHZlcnNpb25zCisgICAgMHgwMSwKKyAgICAvLyBBcnJheSgw
MSkKKyAgICAweDgxLAorICAgIC8vICJVMkZfVjIiCisgICAgMHg2NiwgMHg1NSwgMHgzMiwgMHg0
NiwgMHg1RiwgMHg1NiwgMHgzMiwKKyAgICAvLyBLZXkoMDIpIC0gZXh0ZW5zaW9ucworICAgIDB4
MDIsCisgICAgLy8gQXJyYXkoMikKKyAgICAweDgyLAorICAgIC8vICJ1dm0iCisgICAgMHg2Mywg
MHg3NSwgMHg3NiwgMHg2RCwKKyAgICAvLyAiaG1hYy1zZWNyZXQiCisgICAgMHg2QiwgMHg2OCwg
MHg2RCwgMHg2MSwgMHg2MywgMHgyRCwgMHg3MywgMHg2NSwgMHg2MywgMHg3MiwgMHg2NSwgMHg3
NCwKKyAgICAvLyBLZXkoMDMpIC0gQUFHVUlECisgICAgMHgwMywKKyAgICAvLyBCeXRlcygxNykg
LSBGSURPMiBkZXZpY2UgQUFHVUlEIG11c3QgYmUgMTYgYnl0ZXMgbG9uZyBpbiBvcmRlciB0byBi
ZQorICAgIC8vIGNvcnJlY3QuCisgICAgMHg1MSwgMHhGOCwgMHhBMCwgMHgxMSwgMHhGMywgMHg4
QywgMHgwQSwgMHg0RCwgMHgxNSwgMHg4MCwgMHgwNiwgMHgxNywKKyAgICAweDExLCAweDFGLCAw
eDlFLCAweERDLCAweDdELCAweDAwLAorICAgIC8vIEtleSgwNCkgLSBvcHRpb25zCisgICAgMHgw
NCwKKyAgICAvLyBNYXAoMDUpCisgICAgMHhBNSwKKyAgICAvLyBLZXkgLSAicmsiCisgICAgMHg2
MiwgMHg3MiwgMHg2QiwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAidXAi
CisgICAgMHg2MiwgMHg3NSwgMHg3MCwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBL
ZXkgLSAidXYiCisgICAgMHg2MiwgMHg3NSwgMHg3NiwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwK
KyAgICAvLyBLZXkgLSAicGxhdCIKKyAgICAweDY0LCAweDcwLCAweDZDLCAweDYxLCAweDc0LAor
ICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJjbGllbnRQaW4iCisgICAgMHg2
OSwgMHg2MywgMHg2QywgMHg2OSwgMHg2NSwgMHg2RSwgMHg3NCwgMHg1MCwgMHg2OSwgMHg2RSwK
KyAgICAvLyBmYWxzZQorICAgIDB4RjQsCisgICAgLy8gS2V5KDA1KSAtIE1heCBtZXNzYWdlIHNp
emUKKyAgICAweDA1LAorICAgIC8vIDEyMDAKKyAgICAweDE5LCAweDA0LCAweEIwLAorICAgIC8v
IEtleSgwNikgLSBQaW4gcHJvdG9jb2xzCisgICAgMHgwNiwKKyAgICAvLyBBcnJheVsxXQorICAg
IDB4ODEsIDB4MDEsCit9OworCitjb25zdGV4cHIgdWludDhfdCBrVGVzdERldmljZUFhZ3VpZFtd
ID0geworICAgIDB4RjgsIDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMsIDB4MEEsIDB4NEQsIDB4MTUs
IDB4ODAsIDB4MDYsIDB4MTcsIDB4MTEsIDB4MUYsIDB4OUUsIDB4REMsIDB4N0QKK307CisKKy8v
IEdldCBhIHN1YnNldCBvZiB0aGUgcmVzcG9uc2UgZm9yIHRlc3RpbmcgZXJyb3IgaGFuZGxpbmcu
CitWZWN0b3I8dWludDhfdD4gZ2V0VGVzdENvcnJ1cHRlZFNpZ25SZXNwb25zZShzaXplX3QgbGVu
Z3RoKQoreworICAgIEFTU0VSVChsZW5ndGggPCBzaXplb2YoVGVzdERhdGE6OmtUZXN0VTJmU2ln
blJlc3BvbnNlKSk7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IHRlc3RDb3JydXB0ZWRTaWduUmVzcG9u
c2U7CisgICAgdGVzdENvcnJ1cHRlZFNpZ25SZXNwb25zZS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KGxlbmd0aCk7CisgICAgdGVzdENvcnJ1cHRlZFNpZ25SZXNwb25zZS5hcHBlbmQoVGVzdERhdGE6
OmtUZXN0VTJmU2lnblJlc3BvbnNlLCBsZW5ndGgpOworICAgIHJldHVybiB0ZXN0Q29ycnVwdGVk
U2lnblJlc3BvbnNlOworfQorCisvLyBSZXR1cm4gYSBrZXkgaGFuZGxlIHVzZWQgZm9yIEdldEFz
c2VydGlvbiByZXF1ZXN0LgorVmVjdG9yPHVpbnQ4X3Q+IGdldFRlc3RDcmVkZW50aWFsUmF3SWRC
eXRlcygpCit7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IHRlc3RDcmVkZW50aWFsUmF3SWRCeXRlczsK
KyAgICB0ZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzaXpl
b2YoVGVzdERhdGE6OmtVMmZTaWduS2V5SGFuZGxlKSk7CisgICAgdGVzdENyZWRlbnRpYWxSYXdJ
ZEJ5dGVzLmFwcGVuZChUZXN0RGF0YTo6a1UyZlNpZ25LZXlIYW5kbGUsIHNpemVvZihUZXN0RGF0
YTo6a1UyZlNpZ25LZXlIYW5kbGUpKTsKKyAgICByZXR1cm4gdGVzdENyZWRlbnRpYWxSYXdJZEJ5
dGVzOworfQorCitWZWN0b3I8dWludDhfdD4gY29udmVydFRvVmVjdG9yKGNvbnN0IHVpbnQ4X3Qg
Ynl0ZUFycmF5W10sIGNvbnN0IHNpemVfdCBsZW5ndGgpCit7CisgICAgVmVjdG9yPHVpbnQ4X3Q+
IHJlc3VsdDsKKyAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShsZW5ndGgpOworICAg
IHJlc3VsdC5hcHBlbmQoYnl0ZUFycmF5LCBsZW5ndGgpOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKKy8vIExldmVyYWdpbmcgZXhhbXBsZSA0IG9mIHNlY3Rpb24gNi4xIG9mIHRoZSBzcGVjCisv
LyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2Zp
ZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1s
I2NvbW1hbmRzCitURVNUKENUQVBSZXNwb25zZVRlc3QsIFRlc3RSZWFkTWFrZUNyZWRlbnRpYWxS
ZXNwb25zZSkKK3sKKyAgICBhdXRvIG1ha2VDcmVkZW50aWFsUmVzcG9uc2UgPSByZWFkQ1RBUE1h
a2VDcmVkZW50aWFsUmVzcG9uc2UoY29udmVydFRvVmVjdG9yKFRlc3REYXRhOjprVGVzdE1ha2VD
cmVkZW50aWFsUmVzcG9uc2UsIHNpemVvZihUZXN0RGF0YTo6a1Rlc3RNYWtlQ3JlZGVudGlhbFJl
c3BvbnNlKSkpOworICAgIEFTU0VSVF9UUlVFKG1ha2VDcmVkZW50aWFsUmVzcG9uc2UpOworICAg
IGF1dG8gY2JvckF0dGVzdGF0aW9uT2JqZWN0ID0gY2Jvcjo6Q0JPUlJlYWRlcjo6cmVhZChjb252
ZXJ0VG9WZWN0b3IocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4obWFrZUNyZWRlbnRpYWxSZXNw
b25zZS0+YXR0ZXN0YXRpb25PYmplY3QtPmRhdGEoKSksIG1ha2VDcmVkZW50aWFsUmVzcG9uc2Ut
PmF0dGVzdGF0aW9uT2JqZWN0LT5ieXRlTGVuZ3RoKCkpKTsKKyAgICBBU1NFUlRfVFJVRShjYm9y
QXR0ZXN0YXRpb25PYmplY3QpOworICAgIEFTU0VSVF9UUlVFKGNib3JBdHRlc3RhdGlvbk9iamVj
dC0+aXNNYXAoKSk7CisKKyAgICBjb25zdCBhdXRvJiBhdHRlc3RhdGlvbk9iamVjdE1hcCA9IGNi
b3JBdHRlc3RhdGlvbk9iamVjdC0+Z2V0TWFwKCk7CisgICAgYXV0byBpdCA9IGF0dGVzdGF0aW9u
T2JqZWN0TWFwLmZpbmQoY2Jvcjo6Q0JPUlZhbHVlKGtGb3JtYXRLZXkpKTsKKyAgICBBU1NFUlRf
VFJVRShpdCAhPSBhdHRlc3RhdGlvbk9iamVjdE1hcC5lbmQoKSk7CisgICAgQVNTRVJUX1RSVUUo
aXQtPnNlY29uZC5pc1N0cmluZygpKTsKKyAgICBFWFBFQ1RfU1RSRVEoaXQtPnNlY29uZC5nZXRT
dHJpbmcoKS51dGY4KCkuZGF0YSgpLCAicGFja2VkIik7CisKKyAgICBpdCA9IGF0dGVzdGF0aW9u
T2JqZWN0TWFwLmZpbmQoY2Jvcjo6Q0JPUlZhbHVlKGtBdXRoRGF0YUtleSkpOworICAgIEFTU0VS
VF9UUlVFKGl0ICE9IGF0dGVzdGF0aW9uT2JqZWN0TWFwLmVuZCgpKTsKKyAgICBBU1NFUlRfVFJV
RShpdC0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoaXQtPnNlY29uZC5n
ZXRCeXRlU3RyaW5nKCksIGNvbnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRl
bnRpYWxBdXRoRGF0YSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVudGlhbEF1dGhE
YXRhKSkpOworCisgICAgaXQgPSBhdHRlc3RhdGlvbk9iamVjdE1hcC5maW5kKGNib3I6OkNCT1JW
YWx1ZShrQXR0ZXN0YXRpb25TdGF0ZW1lbnRLZXkpKTsKKyAgICBBU1NFUlRfVFJVRShpdCAhPSBh
dHRlc3RhdGlvbk9iamVjdE1hcC5lbmQoKSk7CisgICAgQVNTRVJUX1RSVUUoaXQtPnNlY29uZC5p
c01hcCgpKTsKKworICAgIGNvbnN0IGF1dG8mIGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwID0gaXQt
PnNlY29uZC5nZXRNYXAoKTsKKyAgICBhdXRvIGF0dFN0bXRJdCA9IGF0dGVzdGF0aW9uU3RhdGVt
ZW50TWFwLmZpbmQoY2Jvcjo6Q0JPUlZhbHVlKCJhbGciKSk7CisKKyAgICBBU1NFUlRfVFJVRShh
dHRTdG10SXQgIT0gYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAuZW5kKCkpOworICAgIEFTU0VSVF9U
UlVFKGF0dFN0bXRJdC0+c2Vjb25kLmlzSW50ZWdlcigpKTsKKyAgICBFWFBFQ1RfRVEoYXR0U3Rt
dEl0LT5zZWNvbmQuZ2V0SW50ZWdlcigpLCAtNyk7CisKKyAgICBhdHRTdG10SXQgPSBhdHRlc3Rh
dGlvblN0YXRlbWVudE1hcC5maW5kKGNib3I6OkNCT1JWYWx1ZSgic2lnIikpOworICAgIEFTU0VS
VF9UUlVFKGF0dFN0bXRJdCAhPSBhdHRlc3RhdGlvblN0YXRlbWVudE1hcC5lbmQoKSk7CisgICAg
QVNTRVJUX1RSVUUoYXR0U3RtdEl0LT5zZWNvbmQuaXNCeXRlU3RyaW5nKCkpOworICAgIEVYUEVD
VF9FUShhdHRTdG10SXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCksIGNvbnZlcnRUb1ZlY3RvcihU
ZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxTaWduYXR1cmUsIHNpemVvZihUZXN0RGF0YTo6
a0N0YXAyTWFrZUNyZWRlbnRpYWxTaWduYXR1cmUpKSk7CisKKyAgICBhdHRTdG10SXQgPSBhdHRl
c3RhdGlvblN0YXRlbWVudE1hcC5maW5kKGNib3I6OkNCT1JWYWx1ZSgieDVjIikpOworICAgIEFT
U0VSVF9UUlVFKGF0dFN0bXRJdCAhPSBhdHRlc3RhdGlvblN0YXRlbWVudE1hcC5lbmQoKSk7Cisg
ICAgY29uc3QgYXV0byYgY2VydGlmaWNhdGUgPSBhdHRTdG10SXQtPnNlY29uZDsKKyAgICBBU1NF
UlRfVFJVRShjZXJ0aWZpY2F0ZS5pc0FycmF5KCkpOworICAgIEFTU0VSVF9FUShjZXJ0aWZpY2F0
ZS5nZXRBcnJheSgpLnNpemUoKSwgMXUpOworICAgIEFTU0VSVF9UUlVFKGNlcnRpZmljYXRlLmdl
dEFycmF5KClbMF0uaXNCeXRlU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShjZXJ0aWZpY2F0ZS5n
ZXRBcnJheSgpWzBdLmdldEJ5dGVTdHJpbmcoKSwgY29udmVydFRvVmVjdG9yKFRlc3REYXRhOjpr
Q3RhcDJNYWtlQ3JlZGVudGlhbENlcnRpZmljYXRlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMk1h
a2VDcmVkZW50aWFsQ2VydGlmaWNhdGUpKSk7CisgICAgRVhQRUNUX0VRKG1ha2VDcmVkZW50aWFs
UmVzcG9uc2UtPnJhd0lkLT5ieXRlTGVuZ3RoKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyTWFr
ZUNyZWRlbnRpYWxDcmVkZW50aWFsSWQpKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKG1ha2VDcmVk
ZW50aWFsUmVzcG9uc2UtPnJhd0lkLT5kYXRhKCksIFRlc3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVu
dGlhbENyZWRlbnRpYWxJZCwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVudGlhbENy
ZWRlbnRpYWxJZCkpLCAwKTsKK30KKworLy8gTGV2ZXJhZ2luZyBleGFtcGxlIDUgb2Ygc2VjdGlv
biA2LjEgb2YgdGhlIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVj
cy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90
b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwKK1RFU1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVzdFJl
YWRHZXRBc3NlcnRpb25SZXNwb25zZSkKK3sKKyAgICBhdXRvIGdldEFzc2VydGlvblJlc3BvbnNl
ID0gcmVhZENUQVBHZXRBc3NlcnRpb25SZXNwb25zZShjb252ZXJ0VG9WZWN0b3IoVGVzdERhdGE6
OmtEZXZpY2VHZXRBc3NlcnRpb25SZXNwb25zZSwgc2l6ZW9mKFRlc3REYXRhOjprRGV2aWNlR2V0
QXNzZXJ0aW9uUmVzcG9uc2UpKSk7CisgICAgQVNTRVJUX1RSVUUoZ2V0QXNzZXJ0aW9uUmVzcG9u
c2UpOworCisgICAgRVhQRUNUX0VRKGdldEFzc2VydGlvblJlc3BvbnNlLT5hdXRoZW50aWNhdG9y
RGF0YS0+Ynl0ZUxlbmd0aCgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMkdldEFzc2VydGlvbkF1
dGhEYXRhKSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChnZXRBc3NlcnRpb25SZXNwb25zZS0+YXV0
aGVudGljYXRvckRhdGEtPmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwMkdldEFzc2VydGlvbkF1dGhE
YXRhLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMkdldEFzc2VydGlvbkF1dGhEYXRhKSksIDApOwor
ICAgIEVYUEVDVF9FUShnZXRBc3NlcnRpb25SZXNwb25zZS0+c2lnbmF0dXJlLT5ieXRlTGVuZ3Ro
KCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uU2lnbmF0dXJlKSk7CisgICAg
RVhQRUNUX0VRKG1lbWNtcChnZXRBc3NlcnRpb25SZXNwb25zZS0+c2lnbmF0dXJlLT5kYXRhKCks
IFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25TaWduYXR1cmUsIHNpemVvZihUZXN0RGF0YTo6
a0N0YXAyR2V0QXNzZXJ0aW9uU2lnbmF0dXJlKSksIDApOworfQorCitURVNUKENUQVBSZXNwb25z
ZVRlc3QsIFRlc3RSZWFkR2V0SW5mb1Jlc3BvbnNlKQoreworICAgIGF1dG8gZ2V0SW5mb1Jlc3Bv
bnNlID0gcmVhZENUQVBHZXRJbmZvUmVzcG9uc2UoY29udmVydFRvVmVjdG9yKFRlc3REYXRhOjpr
VGVzdEdldEluZm9SZXNwb25zZVBsYXRmb3JtRGV2aWNlLCBzaXplb2YoVGVzdERhdGE6OmtUZXN0
R2V0SW5mb1Jlc3BvbnNlUGxhdGZvcm1EZXZpY2UpKSk7CisgICAgQVNTRVJUX1RSVUUoZ2V0SW5m
b1Jlc3BvbnNlKTsKKyAgICBBU1NFUlRfVFJVRShnZXRJbmZvUmVzcG9uc2UtPm1heE1zZ1NpemUo
KSk7CisgICAgRVhQRUNUX0VRKCpnZXRJbmZvUmVzcG9uc2UtPm1heE1zZ1NpemUoKSwgMTIwMHUp
OworICAgIEVYUEVDVF9ORShnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZmluZChQcm90b2Nv
bFZlcnNpb246OmtDdGFwKSwgZ2V0SW5mb1Jlc3BvbnNlLT52ZXJzaW9ucygpLmVuZCgpKTsKKyAg
ICBFWFBFQ1RfTkUoZ2V0SW5mb1Jlc3BvbnNlLT52ZXJzaW9ucygpLmZpbmQoUHJvdG9jb2xWZXJz
aW9uOjprVTJmKSwgZ2V0SW5mb1Jlc3BvbnNlLT52ZXJzaW9ucygpLmVuZCgpKTsKKyAgICBFWFBF
Q1RfVFJVRShnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS5pc1BsYXRmb3JtRGV2aWNlKCkpOwor
ICAgIEVYUEVDVF9UUlVFKGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLnN1cHBvcnRzUmVzaWRl
bnRLZXkoKSk7CisgICAgRVhQRUNUX1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5vcHRpb25zKCkudXNl
clByZXNlbmNlUmVxdWlyZWQoKSk7CisgICAgRVhQRUNUX0VRKEF1dGhlbnRpY2F0b3JTdXBwb3J0
ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29u
ZmlndXJlZCwgZ2V0SW5mb1Jlc3BvbnNlLT5vcHRpb25zKCkudXNlclZlcmlmaWNhdGlvbkF2YWls
YWJpbGl0eSgpKTsKKyAgICBFWFBFQ1RfRVEoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6
OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dFBpbk5vdFNldCwgZ2V0SW5mb1Jl
c3BvbnNlLT5vcHRpb25zKCkuY2xpZW50UGluQXZhaWxhYmlsaXR5KCkpOworfQorCitURVNUKENU
QVBSZXNwb25zZVRlc3QsIFRlc3RSZWFkR2V0SW5mb1Jlc3BvbnNlV2l0aEluY29ycmVjdEZvcm1h
dCkKK3sKKyAgICBFWFBFQ1RfRkFMU0UocmVhZENUQVBHZXRJbmZvUmVzcG9uc2UoY29udmVydFRv
VmVjdG9yKGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVdpdGhOb1ZlcnNpb24sIHNp
emVvZihrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoTm9WZXJzaW9uKSkpKTsK
KyAgICBFWFBFQ1RfRkFMU0UocmVhZENUQVBHZXRJbmZvUmVzcG9uc2UoY29udmVydFRvVmVjdG9y
KGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVdpdGhEdXBsaWNhdGVWZXJzaW9uLCBz
aXplb2Yoa1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aER1cGxpY2F0ZVZlcnNp
b24pKSkpOworICAgIEVYUEVDVF9GQUxTRShyZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb252ZXJ0
VG9WZWN0b3Ioa1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aEluY29ycmVjdEFh
Z3VpZCwgc2l6ZW9mKGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVdpdGhJbmNvcnJl
Y3RBYWd1aWQpKSkpOworfQorCitURVNUKENUQVBSZXNwb25zZVRlc3QsIFRlc3RTZXJpYWxpemVH
ZXRJbmZvUmVzcG9uc2UpCit7CisgICAgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSByZXNw
b25zZSh7IFByb3RvY29sVmVyc2lvbjo6a0N0YXAsIFByb3RvY29sVmVyc2lvbjo6a1UyZiB9LCBj
b252ZXJ0VG9WZWN0b3Ioa1Rlc3REZXZpY2VBYWd1aWQsIHNpemVvZihrVGVzdERldmljZUFhZ3Vp
ZCkpKTsKKyAgICByZXNwb25zZS5zZXRFeHRlbnNpb25zKHsgInV2bSIsICJobWFjLXNlY3JldCIg
fSk7CisgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMgb3B0aW9uczsKKyAgICBvcHRp
b25zLnNldFN1cHBvcnRzUmVzaWRlbnRLZXkodHJ1ZSk7CisgICAgb3B0aW9ucy5zZXRJc1BsYXRm
b3JtRGV2aWNlKHRydWUpOworICAgIG9wdGlvbnMuc2V0Q2xpZW50UGluQXZhaWxhYmlsaXR5KEF1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBw
b3J0ZWRCdXRQaW5Ob3RTZXQpOworICAgIG9wdGlvbnMuc2V0VXNlclZlcmlmaWNhdGlvbkF2YWls
YWJpbGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2
YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQpOworICAgIHJlc3BvbnNlLnNldE9w
dGlvbnMoV1RGTW92ZShvcHRpb25zKSk7CisgICAgcmVzcG9uc2Uuc2V0TWF4TXNnU2l6ZSgxMjAw
KTsKKyAgICByZXNwb25zZS5zZXRQaW5Qcm90b2NvbHMoeyAxIH0pOworCisgICAgYXV0byByZXNw
b25zZUFzQ0JPUiA9IGVuY29kZUFzQ0JPUihyZXNwb25zZSk7CisgICAgRVhQRUNUX0VRKHJlc3Bv
bnNlQXNDQk9SLnNpemUoKSwgc2l6ZW9mKFRlc3REYXRhOjprVGVzdEdldEluZm9SZXNwb25zZVBs
YXRmb3JtRGV2aWNlKSAtIDEpOworICAgIEVYUEVDVF9FUShtZW1jbXAocmVzcG9uc2VBc0NCT1Iu
ZGF0YSgpLCBUZXN0RGF0YTo6a1Rlc3RHZXRJbmZvUmVzcG9uc2VQbGF0Zm9ybURldmljZSArIDEs
IHJlc3BvbnNlQXNDQk9SLnNpemUoKSksIDApOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5oIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpZG9UZXN0RGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmZWE2NWJm
MmEwMmQ3M2M2OGQyMjBjNjJjMGEwNjkwZjZmMTM4N2MKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmgKQEAgLTAsMCArMSw2
NDUgQEAKKy8vIENvcHlyaWdodCAyMDE3IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8v
CisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8v
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCituYW1lc3BhY2UgVGVzdFdlYktp
dEFQSSB7CisKK25hbWVzcGFjZSBUZXN0RGF0YSB7CisKKy8vIFUyRiByZXF1ZXN0IHBhcmFtZXRl
cnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKKy8vIFNhbXBsZSBVMkYgcmVnaXN0ZXIgcmVxdWVzdCBwYXJhbWV0ZXJzIHVzZWQgaW4gZXhh
bXBsZSA2IG9mIHRoZSBDVEFQIHNwZWMuCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3Bl
Y3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJv
dG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sI3VzaW5nLXRoZS1jdGFwMi1hdXRoZW50aWNhdG9y
bWFrZWNyZWRlbnRpYWwtY29tbWFuZC13aXRoLWN0YXAxLXUyZi1hdXRoZW50aWNhdG9ycworY29u
c3RleHByIHVpbnQ4X3Qga0NsaWVudERhdGFIYXNoW10gPSB7CisgICAgMHg2OCwgMHg3MSwgMHgz
NCwgMHg5NiwgMHg4MiwgMHgyMiwgMHhlYywgMHgxNywgMHgyMCwgMHgyZSwgMHg0MiwKKyAgICAw
eDUwLCAweDVmLCAweDhlLCAweGQyLCAweGIxLCAweDZhLCAweGUyLCAweDJmLCAweDE2LCAweGJi
LCAweDA1LAorICAgIDB4YjgsIDB4OGMsIDB4MjUsIDB4ZGIsIDB4OWUsIDB4NjAsIDB4MjYsIDB4
NDUsIDB4ZjEsIDB4NDF9OworCitjb25zdGV4cHIgdWludDhfdCBrVXNlcklkW10gPSB7MHgxMCwg
MHg5OCwgMHgyMywgMHg3MiwgMHgzNSwgMHg0MCwgMHg5OCwgMHg3Mn07CisKKy8vIFNhbXBsZSBV
MkYgc2lnbiByZXF1ZXN0IHBhcmFtZXRlcnMgdXNlZCBpbiBleGFtcGxlIDcgb2YgdGhlIENUQVAg
c3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAx
NzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcw
OTI3Lmh0bWwjdXNpbmctdGhlLWN0YXAyLWF1dGhlbnRpY2F0b3JtYWtlY3JlZGVudGlhbC1jb21t
YW5kLXdpdGgtY3RhcDEtdTJmLWF1dGhlbnRpY2F0b3JzCitjb25zdGV4cHIgdWludDhfdCBrVTJm
U2lnbktleUhhbmRsZVtdID0geworICAgIDB4M0UsIDB4QkQsIDB4ODksIDB4QkYsIDB4NzcsIDB4
RUMsIDB4NTAsIDB4OTcsIDB4NTUsIDB4RUUsIDB4OUMsCisgICAgMHgyNiwgMHgzNSwgMHhFRiwg
MHhBQSwgMHhBQywgMHg3QiwgMHgyQiwgMHg5QywgMHg1QywgMHhFRiwgMHgxNywKKyAgICAweDM2
LCAweEMzLCAweDcxLCAweDdELCAweEE0LCAweDg1LCAweDM0LCAweEM4LCAweEM2LCAweEI2LCAw
eDU0LAorICAgIDB4RDcsIDB4RkYsIDB4OTQsIDB4NUYsIDB4NTAsIDB4QjUsIDB4Q0MsIDB4NEUs
IDB4NzgsIDB4MDUsIDB4NUIsCisgICAgMHhERCwgMHgzOSwgMHg2QiwgMHg2NCwgMHhGNywgMHg4
RCwgMHhBMiwgMHhDNSwgMHhGOSwgMHg2MiwgMHgwMCwKKyAgICAweENDLCAweEQ0LCAweDE1LCAw
eENELCAweDA4LCAweEZFLCAweDQyLCAweDAwLCAweDM4LAorfTsKKworLy8gVTJGIHJlc3BvbnNl
cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworLy8gRUMgcHVibGljIGtleSBlbmNvZGVkIGluIENPU0VfS2V5IGZvcm1hdCBl
eHRyYWN0ZWQgZnJvbSBhYm92ZQorLy8gfGtUZXN0VTJmUmVnaXN0ZXJSZXNwb25zZXwuCitjb25z
dGV4cHIgdWludDhfdCBrVGVzdEVDUHVibGljS2V5Q09TRVtdID0geworICAgIC8vIE1hcCg1KQor
ICAgIDB4QTUsCisgICAgLy8ga3R5OiBFQyBrZXkgdHlwZQorICAgIDB4MDEsIDB4MDIsCisgICAg
Ly8gYWxnOiBFQzI1NiBzaWduYXR1cmUgYWxnb3JpdGhtCisgICAgMHgwMywgMHgyNiwKKyAgICAv
LyBjcnY6IFAtMjU2IGN1cnZlCisgICAgMHgyMCwgMHgwMSwKKyAgICAvLyB4LWNvb3JkaW5hdGUK
KyAgICAweDIxLAorICAgIC8vIEJ5dGVzKDMyKQorICAgIDB4NTgsIDB4MjAsCisgICAgLy8gQnl0
ZSBhcnJheSBjb250ZW50CisgICAgMHhFOCwgMHg3NiwgMHgyNSwgMHg4OSwgMHg2RSwgMHhFNCwg
MHhFNCwgMHg2RCwgMHhDMCwgMHgzMiwgMHg3NiwgMHg2RSwKKyAgICAweDgwLCAweDg3LCAweDk2
LCAweDJGLCAweDM2LCAweERGLCAweDlELCAweEZFLCAweDhCLCAweDU2LCAweDdGLCAweDM3LAor
ICAgIDB4NjMsIDB4MDEsIDB4NUIsIDB4MTksIDB4OTAsIDB4QTYsIDB4MEUsIDB4MTQsCisgICAg
Ly8geS1jb29yZGluYXRlCisgICAgMHgyMiwKKyAgICAvLyBCeXRlcygzMikKKyAgICAweDU4LCAw
eDIwLAorICAgIC8vIEJ5dGUgYXJyYXkgY29udGVudAorICAgIDB4MjcsIDB4REUsIDB4NjEsIDB4
MkQsIDB4NjYsIDB4NDEsIDB4OEIsIDB4REEsIDB4MTksIDB4NTAsIDB4NTgsIDB4MUUsCisgICAg
MHhCQywgMHg1QywgMHg4QywgMHgxRCwgMHhBRCwgMHg3MSwgMHgwQywgMHhCMSwgMHg0QywgMHgy
MiwgMHhGOCwgMHhDOSwKKyAgICAweDcwLCAweDQ1LCAweEY0LCAweDYxLCAweDJGLCAweEIyLCAw
eDBDLCAweDkxLAorfTsKKworLy8gVGhlIGF0dGVzdGF0aW9uIHN0YXRlbWVudCBleHRyYWN0ZWQg
ZnJvbSBhYm92ZSB8a1Rlc3RVMmZSZWdpc3RlclJlc3BvbnNlfCwgYQorLy8gQ0JPUi1lbmNvZGVk
IGJ5dGUgYXJyYXkuCisvLyBEaWFnbm9zdGljIG5vdGF0aW9uOgorLy8geyJzaWciOgorLy8gaCcz
MDQ1MDIyMDMyNDc3OUM2OEYzMzgwMjg4QTExOTdCNjA5NUY3QTZFQjlCMUIxQzEyN0Y2NkFFMTJB
OTlGRTg1MzJFQzIzQjkKKy8vICAgMDIyMTAwRTM5NTE2QUM0RDYxRUU2NDA0NEQ1MEI0MTVBNkE0
RDREODRCQTZEODk1Q0I1QUI3QTFBQTdEMDgxREUzNDFGQScsCisvLyAieDVjIjogW2gnMzA4MjAy
NEEzMDgyMDEzMkEwMDMwMjAxMDIwMjA0MDQ2Qzg4MjIzMDBEMDYwOTJBODY0ODg2RjcwRDAxMDEw
QjAgXAorLy8gNTAwMzAyRTMxMkMzMDJBMDYwMzU1MDQwMzEzMjM1OTc1NjI2OTYzNkYyMDU1MzI0
NjIwNTI2RjZGNzQyMDQzNDEyMDUzNjU3MjY5IFwKKy8vIDYxNkMyMDM0MzUzNzMyMzAzMDM2MzMz
MTMwMjAxNzBEMzEzNDMwMzgzMDMxMzAzMDMwMzAzMDMwNUExODBGMzIzMDM1MzAzMDM5MyBcCisv
LyAwMzQzMDMwMzAzMDMwMzA1QTMwMkMzMTJBMzAyODA2MDM1NTA0MDMwQzIxNTk3NTYyNjk2MzZG
MjA1NTMyNDYyMDQ1NDUyMDUzNjUgXAorLy8gNzI2OTYxNkMyMDMyMzQzOTMxMzgzMjMzMzIzNDM3
MzczMDMwNTkzMDEzMDYwNzJBODY0OENFM0QwMjAxMDYwODJBODY0OENFM0QwIFwKKy8vIDMwMTA3
MDM0MjAwMDQzQ0NBQjkyQ0NCOTcyODdFRThFNjM5NDM3RTIxRkNENkI2RjE2NUIyRDVBM0YzREIx
MzFEMzFDMTZCNzQyQiBcCisvLyBCNDc2RDhEMUU5OTA4MEVCNTQ2QzlCQkRGNTU2RTYyMTBGRDQy
Nzg1ODk5RTc4Q0M1ODlFQkUzMTBGNkNEQjlGRjRBMzNCMzAzOTMgXAorLy8gMDIyMDYwOTJCMDYw
MTA0MDE4MkM0MEEwMjA0MTUzMTJFMzMyRTM2MkUzMTJFMzQyRTMxMkUzNDMxMzQzODMyMkUzMTJF
MzIzMDEzIFwKKy8vIDA2MEIyQjA2MDEwNDAxODJFNTFDMDIwMTAxMDQwNDAzMDIwNDMwMzAwRDA2
MDkyQTg2NDg4NkY3MEQwMTAxMEIwNTAwMDM4MjAxMCBcCisvLyAxMDA5RjlCMDUyMjQ4QkM0Q0Y0
MkNDNTk5MUZDQUFCQUM5QjY1MUJCRTVCRENEQzhFRjBBRDJDMUMxRkZCMzZEMTg3MTVENDJFNzgg
XAorLy8gQjI0OTIyNEY5MkM3RTZFN0EwNUM0OUYwRTdFNEM4ODFCRjJFOTRGNDVFNEEyMTgzM0Q3
NDU2ODUxRDBGNkMxNDVBMjk1NDBDODc0IFwKKy8vIEYzMDkyQzkzNEI0M0QyMjJCODk2MkMwRjQx
MENFRjFEQjc1ODkyQUYxMTZCNDRBOTZGNUQzNUFERUEzODIyRkM3MTQ2RjYwMDQzOCBcCisvLyA1
QkNCNjlCNjVDOTlFN0VCNjkxOTc4NjcwM0MwRDhDRDQxRThGNzVDQ0E0NEFBOEFCNzI1QUQ4RTc5
OUZGM0E4Njk2QTZGMUIyNjUgXAorLy8gNkU2MzFCMUU0MDE4M0MwOEZEQTUzRkE0QThGODVBMDU2
OTM5NDRBRTE3OUExMzM5RDAwMkQxNUNBQkQ4MTAwOTBFQzcyMkVGNURFIFwKKy8vIEY5OTY1QTM3
MUQ0MTVENjI0QjY4QTI3MDdDQUQ5N0JDREQxNzg1QUY5N0UyNThGMzNERjU2QTAzMUFBMDM1NkQ4
RThENUVCQ0FEQyBcCisvLyA3NEUwNzE2MzZDNkIxMTBBQ0U1Q0M5QjkwREZFQUNBRTY0MEZGMUJC
MEYxRkU1REI0RUZGN0E5NUYwNjA3MzNGNSddfQorY29uc3RleHByIHVpbnQ4X3Qga1UyZkF0dGVz
dGF0aW9uU3RhdGVtZW50Q0JPUltdID0geworICAgIC8vIE1hcCgyKQorICAgIDB4QTIsCisgICAg
Ly8gVGV4dCgzKQorICAgIDB4NjMsCisgICAgLy8gInNpZyIKKyAgICAweDczLCAweDY5LCAweDY3
LAorICAgIC8vIEJ5dGVzKDcxKQorICAgIDB4NTgsIDB4NDcsCisgICAgLy8gQnl0ZSBhcnJheSBj
b250ZW50CisgICAgMHgzMCwgMHg0NSwgMHgwMiwgMHgyMCwgMHgzMiwgMHg0NywgMHg3OSwgMHhD
NiwgMHg4RiwgMHgzMywgMHg4MCwgMHgyOCwKKyAgICAweDhBLCAweDExLCAweDk3LCAweEI2LCAw
eDA5LCAweDVGLCAweDdBLCAweDZFLCAweEI5LCAweEIxLCAweEIxLCAweEMxLAorICAgIDB4Mjcs
IDB4RjYsIDB4NkEsIDB4RTEsIDB4MkEsIDB4OTksIDB4RkUsIDB4ODUsIDB4MzIsIDB4RUMsIDB4
MjMsIDB4QjksCisgICAgMHgwMiwgMHgyMSwgMHgwMCwgMHhFMywgMHg5NSwgMHgxNiwgMHhBQywg
MHg0RCwgMHg2MSwgMHhFRSwgMHg2NCwgMHgwNCwKKyAgICAweDRELCAweDUwLCAweEI0LCAweDE1
LCAweEE2LCAweEE0LCAweEQ0LCAweEQ4LCAweDRCLCAweEE2LCAweEQ4LCAweDk1LAorICAgIDB4
Q0IsIDB4NUEsIDB4QjcsIDB4QTEsIDB4QUEsIDB4N0QsIDB4MDgsIDB4MUQsIDB4RTMsIDB4NDEs
IDB4RkEsCisgICAgLy8gVGV4dCgzKQorICAgIDB4NjMsCisgICAgLy8gIng1YyIKKyAgICAweDc4
LCAweDM1LCAweDYzLAorICAgIC8vIEFycmF5KDEpCisgICAgMHg4MSwKKyAgICAvLyBCeXRlcyg1
OTApCisgICAgMHg1OSwgMHgwMiwgMHg0RSwKKyAgICAvLyBCeXRlIGFycmF5IGNvbnRlbnQKKyAg
ICAweDMwLCAweDgyLCAweDAyLCAweDRBLCAweDMwLCAweDgyLCAweDAxLCAweDMyLCAweEEwLCAw
eDAzLCAweDAyLCAweDAxLAorICAgIDB4MDIsIDB4MDIsIDB4MDQsIDB4MDQsIDB4NkMsIDB4ODgs
IDB4MjIsIDB4MzAsIDB4MEQsIDB4MDYsIDB4MDksIDB4MkEsCisgICAgMHg4NiwgMHg0OCwgMHg4
NiwgMHhGNywgMHgwRCwgMHgwMSwgMHgwMSwgMHgwQiwgMHgwNSwgMHgwMCwgMHgzMCwgMHgyRSwK
KyAgICAweDMxLCAweDJDLCAweDMwLCAweDJBLCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDAz
LCAweDEzLCAweDIzLCAweDU5LAorICAgIDB4NzUsIDB4NjIsIDB4NjksIDB4NjMsIDB4NkYsIDB4
MjAsIDB4NTUsIDB4MzIsIDB4NDYsIDB4MjAsIDB4NTIsIDB4NkYsCisgICAgMHg2RiwgMHg3NCwg
MHgyMCwgMHg0MywgMHg0MSwgMHgyMCwgMHg1MywgMHg2NSwgMHg3MiwgMHg2OSwgMHg2MSwgMHg2
QywKKyAgICAweDIwLCAweDM0LCAweDM1LCAweDM3LCAweDMyLCAweDMwLCAweDMwLCAweDM2LCAw
eDMzLCAweDMxLCAweDMwLCAweDIwLAorICAgIDB4MTcsIDB4MEQsIDB4MzEsIDB4MzQsIDB4MzAs
IDB4MzgsIDB4MzAsIDB4MzEsIDB4MzAsIDB4MzAsIDB4MzAsIDB4MzAsCisgICAgMHgzMCwgMHgz
MCwgMHg1QSwgMHgxOCwgMHgwRiwgMHgzMiwgMHgzMCwgMHgzNSwgMHgzMCwgMHgzMCwgMHgzOSwg
MHgzMCwKKyAgICAweDM0LCAweDMwLCAweDMwLCAweDMwLCAweDMwLCAweDMwLCAweDMwLCAweDVB
LCAweDMwLCAweDJDLCAweDMxLCAweDJBLAorICAgIDB4MzAsIDB4MjgsIDB4MDYsIDB4MDMsIDB4
NTUsIDB4MDQsIDB4MDMsIDB4MEMsIDB4MjEsIDB4NTksIDB4NzUsIDB4NjIsCisgICAgMHg2OSwg
MHg2MywgMHg2RiwgMHgyMCwgMHg1NSwgMHgzMiwgMHg0NiwgMHgyMCwgMHg0NSwgMHg0NSwgMHgy
MCwgMHg1MywKKyAgICAweDY1LCAweDcyLCAweDY5LCAweDYxLCAweDZDLCAweDIwLCAweDMyLCAw
eDM0LCAweDM5LCAweDMxLCAweDM4LCAweDMyLAorICAgIDB4MzMsIDB4MzIsIDB4MzQsIDB4Mzcs
IDB4MzcsIDB4MzAsIDB4MzAsIDB4NTksIDB4MzAsIDB4MTMsIDB4MDYsIDB4MDcsCisgICAgMHgy
QSwgMHg4NiwgMHg0OCwgMHhDRSwgMHgzRCwgMHgwMiwgMHgwMSwgMHgwNiwgMHgwOCwgMHgyQSwg
MHg4NiwgMHg0OCwKKyAgICAweENFLCAweDNELCAweDAzLCAweDAxLCAweDA3LCAweDAzLCAweDQy
LCAweDAwLCAweDA0LCAweDNDLCAweENBLCAweEI5LAorICAgIDB4MkMsIDB4Q0IsIDB4OTcsIDB4
MjgsIDB4N0UsIDB4RTgsIDB4RTYsIDB4MzksIDB4NDMsIDB4N0UsIDB4MjEsIDB4RkMsCisgICAg
MHhENiwgMHhCNiwgMHhGMSwgMHg2NSwgMHhCMiwgMHhENSwgMHhBMywgMHhGMywgMHhEQiwgMHgx
MywgMHgxRCwgMHgzMSwKKyAgICAweEMxLCAweDZCLCAweDc0LCAweDJCLCAweEI0LCAweDc2LCAw
eEQ4LCAweEQxLCAweEU5LCAweDkwLCAweDgwLCAweEVCLAorICAgIDB4NTQsIDB4NkMsIDB4OUIs
IDB4QkQsIDB4RjUsIDB4NTYsIDB4RTYsIDB4MjEsIDB4MEYsIDB4RDQsIDB4MjcsIDB4ODUsCisg
ICAgMHg4OSwgMHg5RSwgMHg3OCwgMHhDQywgMHg1OCwgMHg5RSwgMHhCRSwgMHgzMSwgMHgwRiwg
MHg2QywgMHhEQiwgMHg5RiwKKyAgICAweEY0LCAweEEzLCAweDNCLCAweDMwLCAweDM5LCAweDMw
LCAweDIyLCAweDA2LCAweDA5LCAweDJCLCAweDA2LCAweDAxLAorICAgIDB4MDQsIDB4MDEsIDB4
ODIsIDB4QzQsIDB4MEEsIDB4MDIsIDB4MDQsIDB4MTUsIDB4MzEsIDB4MkUsIDB4MzMsIDB4MkUs
CisgICAgMHgzNiwgMHgyRSwgMHgzMSwgMHgyRSwgMHgzNCwgMHgyRSwgMHgzMSwgMHgyRSwgMHgz
NCwgMHgzMSwgMHgzNCwgMHgzOCwKKyAgICAweDMyLCAweDJFLCAweDMxLCAweDJFLCAweDMyLCAw
eDMwLCAweDEzLCAweDA2LCAweDBCLCAweDJCLCAweDA2LCAweDAxLAorICAgIDB4MDQsIDB4MDEs
IDB4ODIsIDB4RTUsIDB4MUMsIDB4MDIsIDB4MDEsIDB4MDEsIDB4MDQsIDB4MDQsIDB4MDMsIDB4
MDIsCisgICAgMHgwNCwgMHgzMCwgMHgzMCwgMHgwRCwgMHgwNiwgMHgwOSwgMHgyQSwgMHg4Niwg
MHg0OCwgMHg4NiwgMHhGNywgMHgwRCwKKyAgICAweDAxLCAweDAxLCAweDBCLCAweDA1LCAweDAw
LCAweDAzLCAweDgyLCAweDAxLCAweDAxLCAweDAwLCAweDlGLCAweDlCLAorICAgIDB4MDUsIDB4
MjIsIDB4NDgsIDB4QkMsIDB4NEMsIDB4RjQsIDB4MkMsIDB4QzUsIDB4OTksIDB4MUYsIDB4Q0Es
IDB4QUIsCisgICAgMHhBQywgMHg5QiwgMHg2NSwgMHgxQiwgMHhCRSwgMHg1QiwgMHhEQywgMHhE
QywgMHg4RSwgMHhGMCwgMHhBRCwgMHgyQywKKyAgICAweDFDLCAweDFGLCAweEZCLCAweDM2LCAw
eEQxLCAweDg3LCAweDE1LCAweEQ0LCAweDJFLCAweDc4LCAweEIyLCAweDQ5LAorICAgIDB4MjIs
IDB4NEYsIDB4OTIsIDB4QzcsIDB4RTYsIDB4RTcsIDB4QTAsIDB4NUMsIDB4NDksIDB4RjAsIDB4
RTcsIDB4RTQsCisgICAgMHhDOCwgMHg4MSwgMHhCRiwgMHgyRSwgMHg5NCwgMHhGNCwgMHg1RSwg
MHg0QSwgMHgyMSwgMHg4MywgMHgzRCwgMHg3NCwKKyAgICAweDU2LCAweDg1LCAweDFELCAweDBG
LCAweDZDLCAweDE0LCAweDVBLCAweDI5LCAweDU0LCAweDBDLCAweDg3LCAweDRGLAorICAgIDB4
MzAsIDB4OTIsIDB4QzksIDB4MzQsIDB4QjQsIDB4M0QsIDB4MjIsIDB4MkIsIDB4ODksIDB4NjIs
IDB4QzAsIDB4RjQsCisgICAgMHgxMCwgMHhDRSwgMHhGMSwgMHhEQiwgMHg3NSwgMHg4OSwgMHgy
QSwgMHhGMSwgMHgxNiwgMHhCNCwgMHg0QSwgMHg5NiwKKyAgICAweEY1LCAweEQzLCAweDVBLCAw
eERFLCAweEEzLCAweDgyLCAweDJGLCAweEM3LCAweDE0LCAweDZGLCAweDYwLCAweDA0LAorICAg
IDB4MzgsIDB4NUIsIDB4Q0IsIDB4NjksIDB4QjYsIDB4NUMsIDB4OTksIDB4RTcsIDB4RUIsIDB4
NjksIDB4MTksIDB4NzgsCisgICAgMHg2NywgMHgwMywgMHhDMCwgMHhEOCwgMHhDRCwgMHg0MSwg
MHhFOCwgMHhGNywgMHg1QywgMHhDQSwgMHg0NCwgMHhBQSwKKyAgICAweDhBLCAweEI3LCAweDI1
LCAweEFELCAweDhFLCAweDc5LCAweDlGLCAweEYzLCAweEE4LCAweDY5LCAweDZBLCAweDZGLAor
ICAgIDB4MUIsIDB4MjYsIDB4NTYsIDB4RTYsIDB4MzEsIDB4QjEsIDB4RTQsIDB4MDEsIDB4ODMs
IDB4QzAsIDB4OEYsIDB4REEsCisgICAgMHg1MywgMHhGQSwgMHg0QSwgMHg4RiwgMHg4NSwgMHhB
MCwgMHg1NiwgMHg5MywgMHg5NCwgMHg0QSwgMHhFMSwgMHg3OSwKKyAgICAweEExLCAweDMzLCAw
eDlELCAweDAwLCAweDJELCAweDE1LCAweENBLCAweEJELCAweDgxLCAweDAwLCAweDkwLCAweEVD
LAorICAgIDB4NzIsIDB4MkUsIDB4RjUsIDB4REUsIDB4RjksIDB4OTYsIDB4NUEsIDB4MzcsIDB4
MUQsIDB4NDEsIDB4NUQsIDB4NjIsCisgICAgMHg0QiwgMHg2OCwgMHhBMiwgMHg3MCwgMHg3Qywg
MHhBRCwgMHg5NywgMHhCQywgMHhERCwgMHgxNywgMHg4NSwgMHhBRiwKKyAgICAweDk3LCAweEUy
LCAweDU4LCAweEYzLCAweDNELCAweEY1LCAweDZBLCAweDAzLCAweDFBLCAweEEwLCAweDM1LCAw
eDZELAorICAgIDB4OEUsIDB4OEQsIDB4NUUsIDB4QkMsIDB4QUQsIDB4QzcsIDB4NEUsIDB4MDcs
IDB4MTYsIDB4MzYsIDB4QzYsIDB4QjEsCisgICAgMHgxMCwgMHhBQywgMHhFNSwgMHhDQywgMHg5
QiwgMHg5MCwgMHhERiwgMHhFQSwgMHhDQSwgMHhFNiwgMHg0MCwgMHhGRiwKKyAgICAweDFCLCAw
eEIwLCAweEYxLCAweEZFLCAweDVELCAweEI0LCAweEVGLCAweEY3LCAweEE5LCAweDVGLCAweDA2
LCAweDA3LAorICAgIDB4MzMsIDB4RjUsCit9OworCisvLyBVMkYgcmVzcG9uc2UgYmxvYiBwcm9k
dWNlZCBieSBhIFUyRiBzaWduIHJlcXVlc3QgdXNlZCBpbiBleGFtcGxlIDcgb2YgdGhlCisvLyBD
VEFQIHNwZWMuCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBz
LTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0y
MDE3MDkyNy5odG1sI3VzaW5nLXRoZS1jdGFwMi1hdXRoZW50aWNhdG9yZ2V0YXNzZXJ0aW9uLWNv
bW1hbmQtd2l0aC1jdGFwMS11MmYtYXV0aGVudGljYXRvcnMKK2NvbnN0ZXhwciB1aW50OF90IGtU
ZXN0VTJmU2lnblJlc3BvbnNlW10gPSB7CisgICAgLy8gVXNlciBwcmVzZW5jZQorICAgIDB4MDEs
CisgICAgLy8gU2lnbiBjb3VudCg0IGJ5dGVzKQorICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4M0Is
CisgICAgLy8gU2lnbmF0dXJlCisgICAgMHgzMCwgMHg0NCwgMHgwMiwgMHgyMCwgMHg3QiwgMHhE
RSwgMHgwQSwgMHg1MiwgMHhBQywgMHgxRiwgMHg0QywgMHg4QiwKKyAgICAweDI3LCAweEUwLCAw
eDAzLCAweEEzLCAweDcwLCAweENELCAweDY2LCAweEE0LCAweEM3LCAweDExLCAweDhELCAweEQy
LAorICAgIDB4MkQsIDB4NTQsIDB4NDcsIDB4ODMsIDB4NUYsIDB4NDUsIDB4QjksIDB4OUMsIDB4
NjgsIDB4NDIsIDB4M0YsIDB4RjcsCisgICAgMHgwMiwgMHgyMCwgMHgzQywgMHg1MSwgMHg3Qiwg
MHg0NywgMHg4NywgMHg3RiwgMHg4NSwgMHg3OCwgMHgyRCwgMHhFMSwKKyAgICAweDAwLCAweDg2
LCAweEE3LCAweDgzLCAweEQxLCAweEU3LCAweERGLCAweDRFLCAweDM2LCAweDM5LCAweEU3LCAw
eDcxLAorICAgIDB4RjUsIDB4RjYsIDB4QUYsIDB4QTMsIDB4NUEsIDB4QUQsIDB4NTMsIDB4NzMs
IDB4ODUsIDB4OEUsCit9OworCisvLyBDVEFQIHJlcXVlc3RzIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorY29uc3RleHByIHVp
bnQ4X3Qga0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3RbXSA9IHsKKyAgICAvLyBhdXRoZW50aWNh
dG9yTWFrZUNyZWRlbnRpYWwgY29tbWFuZAorICAgIDB4MDEsCisgICAgLy8gbWFwKDUpCisgICAg
MHhhNSwKKyAgICAvLyBrZXkoMSkgLSBjbGllbnREYXRhSGFzaAorICAgIDB4MDEsCisgICAgLy8g
Ynl0ZXMoMzIpCisgICAgMHg1OCwgMHgyMCwgMHg2OCwgMHg3MSwgMHgzNCwgMHg5NiwgMHg4Miwg
MHgyMiwgMHhlYywgMHgxNywgMHgyMCwgMHgyZSwKKyAgICAweDQyLCAweDUwLCAweDVmLCAweDhl
LCAweGQyLCAweGIxLCAweDZhLCAweGUyLCAweDJmLCAweDE2LCAweGJiLCAweDA1LAorICAgIDB4
YjgsIDB4OGMsIDB4MjUsIDB4ZGIsIDB4OWUsIDB4NjAsIDB4MjYsIDB4NDUsIDB4ZjEsIDB4NDEs
CisgICAgLy8ga2V5KDIpIC0gcnAKKyAgICAweDAyLAorICAgIC8vIG1hcCgyKQorICAgIDB4YTIs
CisgICAgLy8ga2V5IC0gImlkIgorICAgIDB4NjIsIDB4NjksIDB4NjQsCisgICAgLy8gdmFsdWUg
LSAiYWNtZS5jb20iCisgICAgMHg2OCwgMHg2MSwgMHg2MywgMHg2ZCwgMHg2NSwgMHgyZSwgMHg2
MywgMHg2ZiwgMHg2ZCwKKyAgICAvLyBrZXkgLSAgIm5hbWUiCisgICAgMHg2NCwgMHg2ZSwgMHg2
MSwgMHg2ZCwgMHg2NSwKKyAgICAvLyB2YWx1ZSAtICJBY21lIgorICAgIDB4NjQsIDB4NDEsIDB4
NjMsIDB4NmQsIDB4NjUsCisgICAgLy8ga2V5KDMpIC0gdXNlcgorICAgIDB4MDMsCisgICAgLy8g
bWFwKDQpCisgICAgMHhhNCwKKyAgICAvLyBrZXkgLSAiaWQiCisgICAgMHg2MiwgMHg2OSwgMHg2
NCwKKyAgICAvLyB2YWx1ZSAtIHVzZXIgaWQKKyAgICAweDQ4LCAweDEwLCAweDk4LCAweDIzLCAw
eDcyLCAweDM1LCAweDQwLCAweDk4LCAweDcyLAorICAgIC8vIGtleSAtICJpY29uIgorICAgIDB4
NjQsIDB4NjksIDB4NjMsIDB4NmYsIDB4NmUsCisgICAgLy8gdmFsdWUgLSAiaHR0cHM6Ly9waWNz
LmFjbWUuY29tLzAwL3AvYUJqampwcVBiLnBuZyIKKyAgICAweDc4LCAweDI4LCAweDY4LCAweDc0
LCAweDc0LCAweDcwLCAweDczLCAweDNhLCAweDJmLCAweDJmLCAweDcwLCAweDY5LAorICAgIDB4
NjMsIDB4NzMsIDB4MmUsIDB4NjEsIDB4NjMsIDB4NmQsIDB4NjUsIDB4MmUsIDB4NjMsIDB4NmYs
IDB4NmQsIDB4MmYsCisgICAgMHgzMCwgMHgzMCwgMHgyZiwgMHg3MCwgMHgyZiwgMHg2MSwgMHg0
MiwgMHg2YSwgMHg2YSwgMHg2YSwgMHg3MCwgMHg3MSwKKyAgICAweDUwLCAweDYyLCAweDJlLCAw
eDcwLCAweDZlLCAweDY3LAorICAgIC8vIGtleSAtICJuYW1lIgorICAgIDB4NjQsIDB4NmUsIDB4
NjEsIDB4NmQsIDB4NjUsCisgICAgLy8gdmFsdWUgLSAiam9obnBzbWl0aEBleGFtcGxlLmNvbSIK
KyAgICAweDc2LCAweDZhLCAweDZmLCAweDY4LCAweDZlLCAweDcwLCAweDczLCAweDZkLCAweDY5
LCAweDc0LCAweDY4LCAweDQwLAorICAgIDB4NjUsIDB4NzgsIDB4NjEsIDB4NmQsIDB4NzAsIDB4
NmMsIDB4NjUsIDB4MmUsIDB4NjMsIDB4NmYsIDB4NmQsCisgICAgLy8ga2V5IC0gImRpc3BsYXlO
YW1lIgorICAgIDB4NmIsIDB4NjQsIDB4NjksIDB4NzMsIDB4NzAsIDB4NmMsIDB4NjEsIDB4Nzks
IDB4NGUsIDB4NjEsIDB4NmQsIDB4NjUsCisgICAgLy8gdmFsdWUgLSAiSm9obiBQLiBTbWl0aCIK
KyAgICAweDZkLCAweDRhLCAweDZmLCAweDY4LCAweDZlLCAweDIwLCAweDUwLCAweDJlLCAweDIw
LCAweDUzLCAweDZkLCAweDY5LAorICAgIDB4NzQsIDB4NjgsCisgICAgLy8ga2V5KDQpIC0gcHVi
S2V5Q3JlZFBhcmFtcworICAgIDB4MDQsCisgICAgLy8gYXJyYXkoMikKKyAgICAweDgyLAorICAg
IC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8ga2V5IC0gImFsZyIKKyAgICAweDYzLCAweDYx
LCAweDZjLCAweDY3LAorICAgIC8vIHZhbHVlIC0gNworICAgIDB4MDcsCisgICAgLy8ga2V5IC0g
InR5cGUiCisgICAgMHg2NCwgMHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwKKyAgICAvLyB2YWx1ZSAt
ICJwdWJsaWMta2V5IgorICAgIDB4NmEsIDB4NzAsIDB4NzUsIDB4NjIsIDB4NkMsIDB4NjksIDB4
NjMsIDB4MkQsIDB4NkIsIDB4NjUsIDB4NzksCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAg
ICAvLyBrZXkgLSAiYWxnIgorICAgIDB4NjMsIDB4NjEsIDB4NmMsIDB4NjcsCisgICAgLy8gdmFs
dWUgLSAyNTcKKyAgICAweDE5LCAweDAxLCAweDAxLAorICAgIC8vIGtleSAtICJ0eXBlIgorICAg
IDB4NjQsIDB4NzQsIDB4NzksIDB4NzAsIDB4NjUsIC8vICJ0eXBlIgorICAgIC8vIHZhbHVlIC0g
InB1YmxpYy1rZXkiCisgICAgMHg2YSwgMHg3MCwgMHg3NSwgMHg2MiwgMHg2QywgMHg2OSwgMHg2
MywgMHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAgICAvLyBrZXkoNykgLSBvcHRpb25zCisgICAg
MHgwNywKKyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8vIGtleSAtICJyayIKKyAgICAw
eDYyLCAweDcyLCAweDZiLAorICAgIC8vIFRydWUoMjEpCisgICAgMHhmNSwKKyAgICAvLyBrZXkg
LSAidXYiCisgICAgMHg2MiwgMHg3NSwgMHg3NiwKKyAgICAvLyBUcnVlKDIxKQorICAgIDB4ZjV9
OworCitjb25zdGV4cHIgdWludDhfdCBrVGVzdENvbXBsZXhDdGFwR2V0QXNzZXJ0aW9uUmVxdWVz
dFtdID0geworICAgIC8vIGF1dGhlbnRpY2F0b3JHZXRBc3NlcnRpb24gY29tbWFuZAorICAgIDB4
MDIsCisgICAgLy8gbWFwKDQpCisgICAgMHhhNCwKKyAgICAvLyBrZXkoMDEpIC1ycElkCisgICAg
MHgwMSwKKyAgICAvLyB2YWx1ZSAtICJhY21lLmNvbSIKKyAgICAweDY4LCAweDYxLCAweDYzLCAw
eDZkLCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAweDZkLAorICAgIC8vIGtleSgwMikgLSBjbGll
bnQgZGF0YSBoYXNoCisgICAgMHgwMiwKKyAgICAvLyB2YWx1ZSAtIGJ5dGVzKDMyKQorICAgIDB4
NTgsIDB4MjAsIDB4NjgsIDB4NzEsIDB4MzQsIDB4OTYsIDB4ODIsIDB4MjIsIDB4ZWMsIDB4MTcs
IDB4MjAsIDB4MmUsCisgICAgMHg0MiwgMHg1MCwgMHg1ZiwgMHg4ZSwgMHhkMiwgMHhiMSwgMHg2
YSwgMHhlMiwgMHgyZiwgMHgxNiwgMHhiYiwgMHgwNSwKKyAgICAweGI4LCAweDhjLCAweDI1LCAw
eGRiLCAweDllLCAweDYwLCAweDI2LCAweDQ1LCAweGYxLCAweDQxLAorICAgIC8vIGtleSgwMykg
LSBhbGxvdyBsaXN0CisgICAgMHgwMywKKyAgICAvLyB2YWx1ZSAtIGFycmF5KDIpCisgICAgMHg4
MiwKKyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8vIGtleSAtICJpZCIKKyAgICAweDYy
LCAweDY5LCAweDY0LAorICAgIC8vIHZhbHVlIC0gY3JlZGVudGlhbCBJRAorICAgIDB4NTgsIDB4
NDAsIDB4ZjIsIDB4MjAsIDB4MDYsIDB4ZGUsIDB4NGYsIDB4OTAsIDB4NWEsIDB4ZjYsIDB4OGEs
IDB4NDMsCisgICAgMHg5NCwgMHgyZiwgMHgwMiwgMHg0ZiwgMHgyYSwgMHg1ZSwgMHhjZSwgMHg2
MCwgMHgzZCwgMHg5YywgMHg2ZCwgMHg0YiwKKyAgICAweDNkLCAweGY4LCAweGJlLCAweDA4LCAw
eGVkLCAweDAxLCAweGZjLCAweDQ0LCAweDI2LCAweDQ2LCAweGQwLCAweDM0LAorICAgIDB4ODUs
IDB4OGEsIDB4YzcsIDB4NWIsIDB4ZWQsIDB4M2YsIDB4ZDUsIDB4ODAsIDB4YmYsIDB4OTgsIDB4
MDgsIDB4ZDksCisgICAgMHg0ZiwgMHhjYiwgMHhlZSwgMHg4MiwgMHhiOSwgMHhiMiwgMHhlZiwg
MHg2NiwgMHg3NywgMHhhZiwgMHgwYSwgMHhkYywKKyAgICAweGMzLCAweDU4LCAweDUyLCAweGVh
LCAweDZiLCAweDllLAorICAgIC8vIGtleSAtICJ0eXBlIgorICAgIDB4NjQsIDB4NzQsIDB4Nzks
IDB4NzAsIDB4NjUsCisgICAgLy8gdmFsdWUgLSAicHVibGljLWtleSIKKyAgICAweDZhLCAweDcw
LCAweDc1LCAweDYyLCAweDZDLCAweDY5LCAweDYzLCAweDJELCAweDZCLCAweDY1LCAweDc5LAor
ICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8ga2V5IC0gImlkIgorICAgIDB4NjIsIDB4
NjksIDB4NjQsCisgICAgLy8gdmFsdWUgLSBjcmVkZW50aWFsIElECisgICAgMHg1OCwgMHgzMiwg
MHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgw
MywKKyAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAw
eDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMs
IDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAgMHgwMywgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMywKKyAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgIC8vIGtleSAtICJ0eXBlIgor
ICAgIDB4NjQsIDB4NzQsIDB4NzksIDB4NzAsIDB4NjUsCisgICAgLy8gdmFsdWUgLSAicHVibGlj
LWtleSIKKyAgICAweDZhLCAweDcwLCAweDc1LCAweDYyLCAweDZDLCAweDY5LCAweDYzLCAweDJE
LCAweDZCLCAweDY1LCAweDc5LAorICAgIC8vIHVuc2lnbmVkKDUpIC0gb3B0aW9ucworICAgIDB4
MDUsCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyBrZXkgLSJ1cCIKKyAgICAweDYy
LCAweDc1LCAweDcwLAorICAgIC8vIHZhbHVlIC0gRmFsc2UoMjApCisgICAgMHhmNCwKKyAgICAv
LyBrZXkgLSAidXYiCisgICAgMHg2MiwgMHg3NSwgMHg3NiwKKyAgICAvLyB2YWx1ZSAtIFRydWUo
MjEpCisgICAgMHhmNSwKK307CisKKy8vIENUQVAgcmVzcG9uc2VzIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIEEgc2Ft
cGxlIHdlbGwgZm9ybWVkIHJlc3BvbnNlIHRvIENUQVAgQXV0aGVudGljYXRvckdldEluZm8gcmVx
dWVzdC4gQ3Jvc3MKKy8vIHBsYXRmb3JtIGRldmljZSB0aGF0IHN1cHBvcnRzIHJlc2lkZW50IGtl
eSwgYW5kIHVzZXIgdmVyaWZpY2F0aW9uLgorY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RBdXRoZW50
aWNhdG9yR2V0SW5mb1Jlc3BvbnNlW10gPSB7CisgICAgMHgwMCwgMHhBNiwgMHgwMSwgMHg4Miwg
MHg2OCwgMHg0NiwgMHg0OSwgMHg0NCwgMHg0RiwgMHg1RiwgMHgzMiwgMHg1RiwKKyAgICAweDMw
LCAweDY2LCAweDU1LCAweDMyLCAweDQ2LCAweDVGLCAweDU2LCAweDMyLCAweDAyLCAweDgyLCAw
eDYzLCAweDc1LAorICAgIDB4NzYsIDB4NkQsIDB4NkIsIDB4NjgsIDB4NkQsIDB4NjEsIDB4NjMs
IDB4MkQsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NzIsCisgICAgMHg2NSwgMHg3NCwgMHgwMywgMHg1
MCwgMHhGOCwgMHhBMCwgMHgxMSwgMHhGMywgMHg4QywgMHgwQSwgMHg0RCwgMHgxNSwKKyAgICAw
eDgwLCAweDA2LCAweDE3LCAweDExLCAweDFGLCAweDlFLCAweERDLCAweDdELCAweDA0LCAweEE1
LCAweDYyLCAweDcyLAorICAgIDB4NkIsIDB4RjUsIDB4NjIsIDB4NzUsIDB4NzAsIDB4RjUsIDB4
NjIsIDB4NzUsIDB4NzYsIDB4RjUsIDB4NjQsIDB4NzAsCisgICAgMHg2QywgMHg2MSwgMHg3NCwg
MHhGNCwgMHg2OSwgMHg2MywgMHg2QywgMHg2OSwgMHg2NSwgMHg2RSwgMHg3NCwgMHg1MCwKKyAg
ICAweDY5LCAweDZFLCAweEY0LCAweDA1LCAweDE5LCAweDA0LCAweEIwLCAweDA2LCAweDgxLCAw
eDAxLAorfTsKKworLy8gQXV0aGVudGljYXRvckdldEluZm8gcmVxdWVzdCB3aXRoIGFsbCBjb25m
aWd1cmF0aW9ucyBlcXVhbCB0byB0aGF0IG9mCisvLyBrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2UgZXhjZXB0IHBsYXRmb3JtIGRldmljZSBvcHRpb24gaXMgc2V0IHRvCisvLyB0cnVl
LgorY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RHZXRJbmZvUmVzcG9uc2VQbGF0Zm9ybURldmljZVtd
ID0geworICAgIDB4MDAsIDB4QTYsIDB4MDEsIDB4ODIsIDB4NjgsIDB4NDYsIDB4NDksIDB4NDQs
IDB4NEYsIDB4NUYsIDB4MzIsIDB4NUYsCisgICAgMHgzMCwgMHg2NiwgMHg1NSwgMHgzMiwgMHg0
NiwgMHg1RiwgMHg1NiwgMHgzMiwgMHgwMiwgMHg4MiwgMHg2MywgMHg3NSwKKyAgICAweDc2LCAw
eDZELCAweDZCLCAweDY4LCAweDZELCAweDYxLCAweDYzLCAweDJELCAweDczLCAweDY1LCAweDYz
LCAweDcyLAorICAgIDB4NjUsIDB4NzQsIDB4MDMsIDB4NTAsIDB4RjgsIDB4QTAsIDB4MTEsIDB4
RjMsIDB4OEMsIDB4MEEsIDB4NEQsIDB4MTUsCisgICAgMHg4MCwgMHgwNiwgMHgxNywgMHgxMSwg
MHgxRiwgMHg5RSwgMHhEQywgMHg3RCwgMHgwNCwgMHhBNSwgMHg2MiwgMHg3MiwKKyAgICAweDZC
LCAweEY1LCAweDYyLCAweDc1LCAweDcwLCAweEY1LCAweDYyLCAweDc1LCAweDc2LCAweEY1LCAw
eDY0LCAweDcwLAorICAgIC8vIHBsYXRmb3JtIGRldmljZSA6IHRydWUKKyAgICAweDZDLCAweDYx
LCAweDc0LCAweEY1LAorICAgIC8vIEVuZCBvZiBwbGF0Zm9ybV9kZXZpY2Ugc2V0dGluZy4KKyAg
ICAweDY5LCAweDYzLCAweDZDLCAweDY5LCAweDY1LCAweDZFLCAweDc0LCAweDUwLCAweDY5LCAw
eDZFLCAweEY0LCAweDA1LAorICAgIDB4MTksIDB4MDQsIDB4QjAsIDB4MDYsIDB4ODEsIDB4MDEs
Cit9OworCisvLyBBIFNhbXBsZSB3ZWxsIGZvcm1lZCByZXNwb25zZSB0byBDVEFQIE1ha2VDcmVk
ZW50aWFsIHJlcXVlc3QuCitjb25zdGV4cHIgdWludDhfdCBrVGVzdE1ha2VDcmVkZW50aWFsUmVz
cG9uc2VbXSA9IHsKKyAgICAvLyBTdWNjZXNzIHN0YXR1cyBieXRlCisgICAgMHgwMCwKKyAgICAv
LyBNYXAoMDMpCisgICAgMHhhMywKKyAgICAvLyBrZXkoMDEpIC0gRm9ybWF0CisgICAgMHgwMSwK
KyAgICAvLyAicGFja2VkIgorICAgIDB4NjYsIDB4NzAsIDB4NjEsIDB4NjMsIDB4NmIsIDB4NjUs
IDB4NjQsCisgICAgLy8ga2V5KDAyKSAtIEF1dGhlbnRpY2F0b3IgRGF0YQorICAgIDB4MDIsCisg
ICAgLy8gQnl0ZSgxNTQpCisgICAgMHg1OCwgMHg5YSwgMHgxMSwgMHg5NCwgMHgyMiwgMHg4ZCwg
MHhhOCwgMHhmZCwgMHhiZCwgMHhlZSwgMHhmZCwgMHgyNiwKKyAgICAweDFiLCAweGQ3LCAweGI2
LCAweDU5LCAweDVjLCAweGZkLCAweDcwLCAweGE1LCAweDBkLCAweDcwLCAweGM2LCAweDQwLAor
ICAgIDB4N2IsIDB4Y2YsIDB4MDEsIDB4M2QsIDB4ZTksIDB4NmQsIDB4NGUsIDB4ZmIsIDB4MTcs
IDB4ZGUsIDB4NDEsIDB4MDAsCisgICAgMHgwMCwgMHgwMCwgMHgwYiwgMHhmOCwgMHhhMCwgMHgx
MSwgMHhmMywgMHg4YywgMHgwYSwgMHg0ZCwgMHgxNSwgMHg4MCwKKyAgICAweDA2LCAweDE3LCAw
eDExLCAweDFmLCAweDllLCAweGRjLCAweDdkLCAweDAwLCAweDEwLCAweDg5LCAweDU5LCAweGNl
LAorICAgIDB4YWQsIDB4NWIsIDB4NWMsIDB4NDgsIDB4MTYsIDB4NGUsIDB4OGEsIDB4YmMsIDB4
ZDYsIDB4ZDksIDB4NDMsIDB4NWMsCisgICAgMHg2ZiwgMHhhMywgMHg2MywgMHg2MSwgMHg2Yywg
MHg2NywgMHg2NSwgMHg0NSwgMHg1MywgMHgzMiwgMHgzNSwgMHgzNiwKKyAgICAweDYxLCAweDc4
LCAweDU4LCAweDIwLCAweGY3LCAweGM0LCAweGY0LCAweGE2LCAweGYxLCAweGQ3LCAweDk1LCAw
eDM4LAorICAgIDB4ZGYsIDB4YTQsIDB4YzksIDB4YWMsIDB4NTAsIDB4ODQsIDB4OGQsIDB4Zjcs
IDB4MDgsIDB4YmMsIDB4MWMsIDB4OTksCisgICAgMHhmNSwgMHhlNiwgMHgwZSwgMHg1MSwgMHhi
NCwgMHgyYSwgMHg1MiwgMHgxYiwgMHgzNSwgMHhkMywgMHhiNiwgMHg5YSwKKyAgICAweDYxLCAw
eDc5LCAweDU4LCAweDIwLCAweGRlLCAweDdiLCAweDdkLCAweDZjLCAweGE1LCAweDY0LCAweGU3
LCAweDBlLAorICAgIDB4YTMsIDB4MjEsIDB4YTQsIDB4ZDUsIDB4ZDksIDB4NmUsIDB4YTAsIDB4
MGUsIDB4ZjAsIDB4ZTIsIDB4ZGIsIDB4ODksCisgICAgMHhkZCwgMHg2MSwgMHhkNCwgMHg4OSwg
MHg0YywgMHgxNSwgMHhhYywgMHg1OCwgMHg1YiwgMHhkMiwgMHgzNiwgMHg4NCwKKyAgICAvLyBL
ZXkoMDMpIC0gQXR0ZXN0YXRpb24gb2JqZWN0CisgICAgMHgwMywKKyAgICAvLyBNYXAgLSBBdHRl
c3RhdGlvbiBvYmplY3QKKyAgICAweGEzLCAweDYzLCAweDYxLCAweDZjLCAweDY3LCAweDI2LCAw
eDYzLCAweDczLCAweDY5LCAweDY3LCAweDU4LCAweDQ3LAorICAgIDB4MzAsIDB4NDUsIDB4MDIs
IDB4MjAsIDB4MTMsIDB4ZjcsIDB4M2MsIDB4NWQsIDB4OWQsIDB4NTMsIDB4MGUsIDB4OGMsCisg
ICAgMHhjMSwgMHg1YywgMHhjOSwgMHhiZCwgMHg5NiwgMHhhZCwgMHg1OCwgMHg2ZCwgMHgzOSwg
MHgzNiwgMHg2NCwgMHhlNCwKKyAgICAweDYyLCAweGQ1LCAweGYwLCAweDU2LCAweDEyLCAweDM1
LCAweGU2LCAweDM1LCAweDBmLCAweDJiLCAweDcyLCAweDg5LAorICAgIDB4MDIsIDB4MjEsIDB4
MDAsIDB4OTAsIDB4MzUsIDB4N2YsIDB4ZjksIDB4MTAsIDB4Y2MsIDB4YjUsIDB4NmEsIDB4YzUs
CisgICAgMHhiNSwgMHg5NiwgMHg1MSwgMHgxOSwgMHg0OCwgMHg1OCwgMHgxYywgMHg4ZiwgMHhk
ZCwgMHhiNCwgMHhhMiwgMHhiNywKKyAgICAweDk5LCAweDU5LCAweDk0LCAweDgwLCAweDc4LCAw
eGIwLCAweDlmLCAweDRiLCAweGRjLCAweDYyLCAweDI5LCAweDYzLAorICAgIDB4NzgsIDB4MzUs
IDB4NjMsIDB4ODEsIDB4NTksIDB4MDEsIDB4OTcsIDB4MzAsIDB4ODIsIDB4MDEsIDB4OTMsIDB4
MzAsCisgICAgMHg4MiwgMHgwMSwgMHgzOCwgMHhhMCwgMHgwMywgMHgwMiwgMHgwMSwgMHgwMiwg
MHgwMiwgMHgwOSwgMHgwMCwgMHg4NSwKKyAgICAweDliLCAweDcyLCAweDZjLCAweGIyLCAweDRi
LCAweDRjLCAweDI5LCAweDMwLCAweDBhLCAweDA2LCAweDA4LCAweDJhLAorICAgIDB4ODYsIDB4
NDgsIDB4Y2UsIDB4M2QsIDB4MDQsIDB4MDMsIDB4MDIsIDB4MzAsIDB4NDcsIDB4MzEsIDB4MGIs
IDB4MzAsCisgICAgMHgwOSwgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwNiwgMHgxMywgMHgw
MiwgMHg1NSwgMHg1MywgMHgzMSwgMHgxNCwKKyAgICAweDMwLCAweDEyLCAweDA2LCAweDAzLCAw
eDU1LCAweDA0LCAweDBhLCAweDBjLCAweDBiLCAweDU5LCAweDc1LCAweDYyLAorICAgIDB4Njks
IDB4NjMsIDB4NmYsIDB4MjAsIDB4NTQsIDB4NjUsIDB4NzMsIDB4NzQsIDB4MzEsIDB4MjIsIDB4
MzAsIDB4MjAsCisgICAgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwYiwgMHgwYywgMHgxOSwg
MHg0MSwgMHg3NSwgMHg3NCwgMHg2OCwgMHg2NSwKKyAgICAweDZlLCAweDc0LCAweDY5LCAweDYz
LCAweDYxLCAweDc0LCAweDZmLCAweDcyLCAweDIwLCAweDQxLCAweDc0LCAweDc0LAorICAgIDB4
NjUsIDB4NzMsIDB4NzQsIDB4NjEsIDB4NzQsIDB4NjksIDB4NmYsIDB4NmUsIDB4MzAsIDB4MWUs
IDB4MTcsIDB4MGQsCisgICAgMHgzMSwgMHgzNiwgMHgzMSwgMHgzMiwgMHgzMCwgMHgzNCwgMHgz
MSwgMHgzMSwgMHgzNSwgMHgzNSwgMHgzMCwgMHgzMCwKKyAgICAweDVhLCAweDE3LCAweDBkLCAw
eDMyLCAweDM2LCAweDMxLCAweDMyLCAweDMwLCAweDMyLCAweDMxLCAweDMxLCAweDM1LAorICAg
IDB4MzUsIDB4MzAsIDB4MzAsIDB4NWEsIDB4MzAsIDB4NDcsIDB4MzEsIDB4MGIsIDB4MzAsIDB4
MDksIDB4MDYsIDB4MDMsCisgICAgMHg1NSwgMHgwNCwgMHgwNiwgMHgxMywgMHgwMiwgMHg1NSwg
MHg1MywgMHgzMSwgMHgxNCwgMHgzMCwgMHgxMiwgMHgwNiwKKyAgICAweDAzLCAweDU1LCAweDA0
LCAweDBhLCAweDBjLCAweDBiLCAweDU5LCAweDc1LCAweDYyLCAweDY5LCAweDYzLCAweDZmLAor
ICAgIDB4MjAsIDB4NTQsIDB4NjUsIDB4NzMsIDB4NzQsIDB4MzEsIDB4MjIsIDB4MzAsIDB4MjAs
IDB4MDYsIDB4MDMsIDB4NTUsCisgICAgMHgwNCwgMHgwYiwgMHgwYywgMHgxOSwgMHg0MSwgMHg3
NSwgMHg3NCwgMHg2OCwgMHg2NSwgMHg2ZSwgMHg3NCwgMHg2OSwKKyAgICAweDYzLCAweDYxLCAw
eDc0LCAweDZmLCAweDcyLCAweDIwLCAweDQxLCAweDc0LCAweDc0LCAweDY1LCAweDczLCAweDc0
LAorICAgIDB4NjEsIDB4NzQsIDB4NjksIDB4NmYsIDB4NmUsIDB4MzAsIDB4NTksIDB4MzAsIDB4
MTMsIDB4MDYsIDB4MDcsIDB4MmEsCisgICAgMHg4NiwgMHg0OCwgMHhjZSwgMHgzZCwgMHgwMiwg
MHgwMSwgMHgwNiwgMHgwOCwgMHgyYSwgMHg4NiwgMHg0OCwgMHhjZSwKKyAgICAweDNkLCAweDAz
LCAweDAxLCAweDA3LCAweDAzLCAweDQyLCAweDAwLCAweDA0LCAweGFkLCAweDExLCAweGViLCAw
eDBlLAorICAgIDB4ODgsIDB4NTIsIDB4ZTUsIDB4M2EsIDB4ZDUsIDB4ZGYsIDB4ZWQsIDB4ODYs
IDB4YjQsIDB4MWUsIDB4NjEsIDB4MzQsCisgICAgMHhhMSwgMHg4ZSwgMHhjNCwgMHhlMSwgMHhh
ZiwgMHg4ZiwgMHgyMiwgMHgxYSwgMHgzYywgMHg3ZCwgMHg2ZSwgMHg2MywKKyAgICAweDZjLCAw
eDgwLCAweGVhLCAweDEzLCAweGMzLCAweGQ1LCAweDA0LCAweGZmLCAweDJlLCAweDc2LCAweDIx
LCAweDFiLAorICAgIDB4YjQsIDB4NDUsIDB4MjUsIDB4YjEsIDB4OTYsIDB4YzQsIDB4NGMsIDB4
YjQsIDB4ODQsIDB4OTksIDB4NzksIDB4Y2YsCisgICAgMHg2ZiwgMHg4OSwgMHg2ZSwgMHhjZCwg
MHgyYiwgMHhiOCwgMHg2MCwgMHhkZSwgMHgxYiwgMHhmNCwgMHgzNywgMHg2YiwKKyAgICAweGEz
LCAweDBkLCAweDMwLCAweDBiLCAweDMwLCAweDA5LCAweDA2LCAweDAzLCAweDU1LCAweDFkLCAw
eDEzLCAweDA0LAorICAgIDB4MDIsIDB4MzAsIDB4MDAsIDB4MzAsIDB4MGEsIDB4MDYsIDB4MDgs
IDB4MmEsIDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2QsCisgICAgMHgwNCwgMHgwMywgMHgwMiwgMHgw
MywgMHg0OSwgMHgwMCwgMHgzMCwgMHg0NiwgMHgwMiwgMHgyMSwgMHgwMCwgMHhlOSwKKyAgICAw
eGEzLCAweDlmLCAweDFiLCAweDAzLCAweDE5LCAweDc1LCAweDI1LCAweGY3LCAweDM3LCAweDNl
LCAweDEwLCAweGNlLAorICAgIDB4NzcsIDB4ZTcsIDB4ODAsIDB4MjEsIDB4NzMsIDB4MWIsIDB4
OTQsIDB4ZDAsIDB4YzAsIDB4M2YsIDB4M2YsIDB4ZGEsCisgICAgMHgxZiwgMHhkMiwgMHgyZCwg
MHhiMywgMHhkMCwgMHgzMCwgMHhlNywgMHgwMiwgMHgyMSwgMHgwMCwgMHhjNCwgMHhmYSwKKyAg
ICAweGVjLCAweDM0LCAweDQ1LCAweGE4LCAweDIwLCAweGNmLCAweDQzLCAweDEyLCAweDljLCAw
eGRiLCAweDAwLCAweGFhLAorICAgIDB4YmUsIDB4ZmQsIDB4OWEsIDB4ZTIsIDB4ZDgsIDB4NzQs
IDB4ZjksIDB4YzUsIDB4ZDMsIDB4NDMsIDB4Y2IsIDB4MmYsCisgICAgMHgxMSwgMHgzZCwgMHhh
MiwgMHgzNywgMHgyMywgMHhmMywKK307CisKKy8vIEJlbG93IHxrQ3RhcDJNYWtlQ3JlZGVudGlh
bENlcnRpZmljYXRlfCwgfGtDdGFwMk1ha2VDcmVkZW50aWFsQXV0aERhdGF8LCBhbmQKKy8vIHxr
Q3RhcDJNYWtlQ3JlZGVudGlhbFNpZ25hdHVyZXwgbGV2ZXJhZ2UgZXhhbXBsZSA0IG9mIHRoZSBD
VEFQIHNwZWMuCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBz
LTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0y
MDE3MDkyNy5odG1sCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcDJNYWtlQ3JlZGVudGlhbENlcnRp
ZmljYXRlW10gPSB7CisgICAgMHgzMCwgMHg4MiwgMHgwMSwgMHg5MywgMHgzMCwgMHg4MiwgMHgw
MSwgMHgzOCwgMHhhMCwgMHgwMywgMHgwMiwgMHgwMSwKKyAgICAweDAyLCAweDAyLCAweDA5LCAw
eDAwLCAweDg1LCAweDliLCAweDcyLCAweDZjLCAweGIyLCAweDRiLCAweDRjLCAweDI5LAorICAg
IDB4MzAsIDB4MGEsIDB4MDYsIDB4MDgsIDB4MmEsIDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2QsIDB4
MDQsIDB4MDMsIDB4MDIsCisgICAgMHgzMCwgMHg0NywgMHgzMSwgMHgwYiwgMHgzMCwgMHgwOSwg
MHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwNiwgMHgxMywKKyAgICAweDAyLCAweDU1LCAweDUz
LCAweDMxLCAweDE0LCAweDMwLCAweDEyLCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDBhLAor
ICAgIDB4MGMsIDB4MGIsIDB4NTksIDB4NzUsIDB4NjIsIDB4NjksIDB4NjMsIDB4NmYsIDB4MjAs
IDB4NTQsIDB4NjUsIDB4NzMsCisgICAgMHg3NCwgMHgzMSwgMHgyMiwgMHgzMCwgMHgyMCwgMHgw
NiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwYiwgMHgwYywgMHgxOSwKKyAgICAweDQxLCAweDc1LCAw
eDc0LCAweDY4LCAweDY1LCAweDZlLCAweDc0LCAweDY5LCAweDYzLCAweDYxLCAweDc0LCAweDZm
LAorICAgIDB4NzIsIDB4MjAsIDB4NDEsIDB4NzQsIDB4NzQsIDB4NjUsIDB4NzMsIDB4NzQsIDB4
NjEsIDB4NzQsIDB4NjksIDB4NmYsCisgICAgMHg2ZSwgMHgzMCwgMHgxZSwgMHgxNywgMHgwZCwg
MHgzMSwgMHgzNiwgMHgzMSwgMHgzMiwgMHgzMCwgMHgzNCwgMHgzMSwKKyAgICAweDMxLCAweDM1
LCAweDM1LCAweDMwLCAweDMwLCAweDVhLCAweDE3LCAweDBkLCAweDMyLCAweDM2LCAweDMxLCAw
eDMyLAorICAgIDB4MzAsIDB4MzIsIDB4MzEsIDB4MzEsIDB4MzUsIDB4MzUsIDB4MzAsIDB4MzAs
IDB4NWEsIDB4MzAsIDB4NDcsIDB4MzEsCisgICAgMHgwYiwgMHgzMCwgMHgwOSwgMHgwNiwgMHgw
MywgMHg1NSwgMHgwNCwgMHgwNiwgMHgxMywgMHgwMiwgMHg1NSwgMHg1MywKKyAgICAweDMxLCAw
eDE0LCAweDMwLCAweDEyLCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDBhLCAweDBjLCAweDBi
LCAweDU5LAorICAgIDB4NzUsIDB4NjIsIDB4NjksIDB4NjMsIDB4NmYsIDB4MjAsIDB4NTQsIDB4
NjUsIDB4NzMsIDB4NzQsIDB4MzEsIDB4MjIsCisgICAgMHgzMCwgMHgyMCwgMHgwNiwgMHgwMywg
MHg1NSwgMHgwNCwgMHgwYiwgMHgwYywgMHgxOSwgMHg0MSwgMHg3NSwgMHg3NCwKKyAgICAweDY4
LCAweDY1LCAweDZlLCAweDc0LCAweDY5LCAweDYzLCAweDYxLCAweDc0LCAweDZmLCAweDcyLCAw
eDIwLCAweDQxLAorICAgIDB4NzQsIDB4NzQsIDB4NjUsIDB4NzMsIDB4NzQsIDB4NjEsIDB4NzQs
IDB4NjksIDB4NmYsIDB4NmUsIDB4MzAsIDB4NTksCisgICAgMHgzMCwgMHgxMywgMHgwNiwgMHgw
NywgMHgyYSwgMHg4NiwgMHg0OCwgMHhjZSwgMHgzZCwgMHgwMiwgMHgwMSwgMHgwNiwKKyAgICAw
eDA4LCAweDJhLCAweDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDAzLCAweDAxLCAweDA3LCAweDAz
LCAweDQyLCAweDAwLAorICAgIDB4MDQsIDB4YWQsIDB4MTEsIDB4ZWIsIDB4MGUsIDB4ODgsIDB4
NTIsIDB4ZTUsIDB4M2EsIDB4ZDUsIDB4ZGYsIDB4ZWQsCisgICAgMHg4NiwgMHhiNCwgMHgxZSwg
MHg2MSwgMHgzNCwgMHhhMSwgMHg4ZSwgMHhjNCwgMHhlMSwgMHhhZiwgMHg4ZiwgMHgyMiwKKyAg
ICAweDFhLCAweDNjLCAweDdkLCAweDZlLCAweDYzLCAweDZjLCAweDgwLCAweGVhLCAweDEzLCAw
eGMzLCAweGQ1LCAweDA0LAorICAgIDB4ZmYsIDB4MmUsIDB4NzYsIDB4MjEsIDB4MWIsIDB4YjQs
IDB4NDUsIDB4MjUsIDB4YjEsIDB4OTYsIDB4YzQsIDB4NGMsCisgICAgMHhiNCwgMHg4NCwgMHg5
OSwgMHg3OSwgMHhjZiwgMHg2ZiwgMHg4OSwgMHg2ZSwgMHhjZCwgMHgyYiwgMHhiOCwgMHg2MCwK
KyAgICAweGRlLCAweDFiLCAweGY0LCAweDM3LCAweDZiLCAweGEzLCAweDBkLCAweDMwLCAweDBi
LCAweDMwLCAweDA5LCAweDA2LAorICAgIDB4MDMsIDB4NTUsIDB4MWQsIDB4MTMsIDB4MDQsIDB4
MDIsIDB4MzAsIDB4MDAsIDB4MzAsIDB4MGEsIDB4MDYsIDB4MDgsCisgICAgMHgyYSwgMHg4Niwg
MHg0OCwgMHhjZSwgMHgzZCwgMHgwNCwgMHgwMywgMHgwMiwgMHgwMywgMHg0OSwgMHgwMCwgMHgz
MCwKKyAgICAweDQ2LCAweDAyLCAweDIxLCAweDAwLCAweGU5LCAweGEzLCAweDlmLCAweDFiLCAw
eDAzLCAweDE5LCAweDc1LCAweDI1LAorICAgIDB4ZjcsIDB4MzcsIDB4M2UsIDB4MTAsIDB4Y2Us
IDB4NzcsIDB4ZTcsIDB4ODAsIDB4MjEsIDB4NzMsIDB4MWIsIDB4OTQsCisgICAgMHhkMCwgMHhj
MCwgMHgzZiwgMHgzZiwgMHhkYSwgMHgxZiwgMHhkMiwgMHgyZCwgMHhiMywgMHhkMCwgMHgzMCwg
MHhlNywKKyAgICAweDAyLCAweDIxLCAweDAwLCAweGM0LCAweGZhLCAweGVjLCAweDM0LCAweDQ1
LCAweGE4LCAweDIwLCAweGNmLCAweDQzLAorICAgIDB4MTIsIDB4OWMsIDB4ZGIsIDB4MDAsIDB4
YWEsIDB4YmUsIDB4ZmQsIDB4OWEsIDB4ZTIsIDB4ZDgsIDB4NzQsIDB4ZjksCisgICAgMHhjNSwg
MHhkMywgMHg0MywgMHhjYiwgMHgyZiwgMHgxMSwgMHgzZCwgMHhhMiwgMHgzNywgMHgyMywgMHhm
M307CisKK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwMk1ha2VDcmVkZW50aWFsQXV0aERhdGFbXSA9
IHsKKyAgICAweDExLCAweDk0LCAweDIyLCAweDhELCAweEE4LCAweEZELCAweEJELCAweEVFLCAw
eEZELCAweDI2LCAweDFCLCAweEQ3LAorICAgIDB4QjYsIDB4NTksIDB4NUMsIDB4RkQsIDB4NzAs
IDB4QTUsIDB4MEQsIDB4NzAsIDB4QzYsIDB4NDAsIDB4N0IsIDB4Q0YsCisgICAgMHgwMSwgMHgz
RCwgMHhFOSwgMHg2RCwgMHg0RSwgMHhGQiwgMHgxNywgMHhERSwgMHg0MSwgMHgwMCwgMHgwMCwg
MHgwMCwKKyAgICAweDBiLCAweGY4LCAweGEwLCAweDExLCAweGYzLCAweDhjLCAweDBhLCAweDRk
LCAweDE1LCAweDgwLCAweDA2LCAweDE3LAorICAgIDB4MTEsIDB4MWYsIDB4OWUsIDB4ZGMsIDB4
N2QsIDB4MDAsIDB4MTAsIDB4ODksIDB4NTksIDB4Y2UsIDB4YWQsIDB4NWIsCisgICAgMHg1Yywg
MHg0OCwgMHgxNiwgMHg0ZSwgMHg4YSwgMHhiYywgMHhkNiwgMHhkOSwgMHg0MywgMHg1YywgMHg2
ZiwgMHhhMywKKyAgICAweDYzLCAweDYxLCAweDZjLCAweDY3LCAweDY1LCAweDQ1LCAweDUzLCAw
eDMyLCAweDM1LCAweDM2LCAweDYxLCAweDc4LAorICAgIDB4NTgsIDB4MjAsIDB4ZjcsIDB4YzQs
IDB4ZjQsIDB4YTYsIDB4ZjEsIDB4ZDcsIDB4OTUsIDB4MzgsIDB4ZGYsIDB4YTQsCisgICAgMHhj
OSwgMHhhYywgMHg1MCwgMHg4NCwgMHg4ZCwgMHhmNywgMHgwOCwgMHhiYywgMHgxYywgMHg5OSwg
MHhmNSwgMHhlNiwKKyAgICAweDBlLCAweDUxLCAweGI0LCAweDJhLCAweDUyLCAweDFiLCAweDM1
LCAweGQzLCAweGI2LCAweDlhLCAweDYxLCAweDc5LAorICAgIDB4NTgsIDB4MjAsIDB4ZGUsIDB4
N2IsIDB4N2QsIDB4NmMsIDB4YTUsIDB4NjQsIDB4ZTcsIDB4MGUsIDB4YTMsIDB4MjEsCisgICAg
MHhhNCwgMHhkNSwgMHhkOSwgMHg2ZSwgMHhhMCwgMHgwZSwgMHhmMCwgMHhlMiwgMHhkYiwgMHg4
OSwgMHhkZCwgMHg2MSwKKyAgICAweGQ0LCAweDg5LCAweDRjLCAweDE1LCAweGFjLCAweDU4LCAw
eDViLCAweGQyLCAweDM2LCAweDg0fTsKKworY29uc3RleHByIHVpbnQ4X3Qga0N0YXAyTWFrZUNy
ZWRlbnRpYWxTaWduYXR1cmVbXSA9IHsKKyAgICAweDMwLCAweDQ1LCAweDAyLCAweDIwLCAweDEz
LCAweGY3LCAweDNjLCAweDVkLCAweDlkLCAweDUzLCAweDBlLCAweDhjLAorICAgIDB4YzEsIDB4
NWMsIDB4YzksIDB4YmQsIDB4OTYsIDB4YWQsIDB4NTgsIDB4NmQsIDB4MzksIDB4MzYsIDB4NjQs
IDB4ZTQsCisgICAgMHg2MiwgMHhkNSwgMHhmMCwgMHg1NiwgMHgxMiwgMHgzNSwgMHhlNiwgMHgz
NSwgMHgwZiwgMHgyYiwgMHg3MiwgMHg4OSwKKyAgICAweDAyLCAweDIxLCAweDAwLCAweDkwLCAw
eDM1LCAweDdmLCAweGY5LCAweDEwLCAweGNjLCAweGI1LCAweDZhLCAweGM1LAorICAgIDB4YjUs
IDB4OTYsIDB4NTEsIDB4MTksIDB4NDgsIDB4NTgsIDB4MWMsIDB4OGYsIDB4ZGQsIDB4YjQsIDB4
YTIsIDB4YjcsCisgICAgMHg5OSwgMHg1OSwgMHg5NCwgMHg4MCwgMHg3OCwgMHhiMCwgMHg5Ziwg
MHg0YiwgMHhkYywgMHg2MiwgMHgyOX07CisKK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwMk1ha2VD
cmVkZW50aWFsQ3JlZGVudGlhbElkW10gPSB7CisgICAgMHg4OSwgMHg1OSwgMHhjZSwgMHhhZCwg
MHg1YiwgMHg1YywgMHg0OCwgMHgxNiwKKyAgICAweDRlLCAweDhhLCAweGJjLCAweGQ2LCAweGQ5
LCAweDQzLCAweDVjLCAweDZmLAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga0N0YXAyR2V0QXNz
ZXJ0aW9uQXV0aERhdGFbXSA9IHsKKyAgICAweDYyLCAweDVkLCAweGRhLCAweGRmLCAweDc0LCAw
eDNmLCAweDU3LCAweDI3LCAweGU2LCAweDZiLAorICAgIDB4YmEsIDB4OGMsIDB4MmUsIDB4Mzgs
IDB4NzksIDB4MjIsIDB4ZDEsIDB4YWYsIDB4NDMsIDB4YzUsCisgICAgMHgwMywgMHhkOSwgMHgx
MSwgMHg0YSwgMHg4ZiwgMHhiYSwgMHgxMCwgMHg0ZCwgMHg4NCwgMHhkMCwKKyAgICAweDJiLCAw
eGZhLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDExfTsKKworY29uc3RleHByIHVpbnQ4X3Qg
a0N0YXAyR2V0QXNzZXJ0aW9uU2lnbmF0dXJlW10gPSB7CisgICAgMHgzMCwgMHg0NSwgMHgwMiwg
MHgyMCwgMHg0YSwgMHg1YSwgMHg5ZCwgMHhkMywgMHg5MiwgMHg5OCwgMHgxNCwgMHg5ZCwKKyAg
ICAweDkwLCAweDQ3LCAweDY5LCAweGI1LCAweDFhLCAweDQ1LCAweDE0LCAweDMzLCAweDAwLCAw
eDZmLCAweDE4LCAweDJhLAorICAgIDB4MzQsIDB4ZmIsIDB4ZGYsIDB4NjYsIDB4ZGUsIDB4NWYs
IDB4YzcsIDB4MTcsIDB4ZDcsIDB4NWYsIDB4YjMsIDB4NTAsCisgICAgMHgwMiwgMHgyMSwgMHgw
MCwgMHhhNCwgMHg2YiwgMHg4ZSwgMHhhMywgMHhjMywgMHhiOSwgMHgzMywgMHg4MiwgMHgxYywK
KyAgICAweDZlLCAweDdmLCAweDVlLCAweGY5LCAweGRhLCAweGFlLCAweDk0LCAweGFiLCAweDQ3
LCAweGYxLCAweDhkLCAweGI0LAorICAgIDB4NzQsIDB4YzcsIDB4NDcsIDB4OTAsIDB4ZWEsIDB4
YWIsIDB4YjEsIDB4NDQsIDB4MTEsIDB4ZTcsIDB4YTAsCit9OworCitjb25zdGV4cHIgdWludDhf
dCBrRGV2aWNlR2V0QXNzZXJ0aW9uUmVzcG9uc2VbXSA9IHsKKyAgICAvLyBTdWNjZXNzIHJlc3Bv
bnNlIGNvZGUKKyAgICAweDAwLAorICAgIC8vIG1hcCg1KQorICAgIDB4YTUsCisgICAgLy8gdW5z
aWduZWQoMSkgLSBDcmVkZW50aWFsCisgICAgMHgwMSwKKyAgICAvLyBtYXAoMikKKyAgICAweGEy
LAorICAgIC8vIHRleHQoMikKKyAgICAweDYyLAorICAgIC8vICJpZCIKKyAgICAweDY5LCAweDY0
LAorICAgIC8vIGJ5dGVzKDY0KQorICAgIDB4NTgsIDB4NDAsCisgICAgLy8gY3JlZGVudGlhbCBp
ZAorICAgIDB4ZjIsIDB4MjAsIDB4MDYsIDB4ZGUsIDB4NGYsIDB4OTAsIDB4NWEsIDB4ZjYsIDB4
OGEsIDB4NDMsIDB4OTQsIDB4MmYsCisgICAgMHgwMiwgMHg0ZiwgMHgyYSwgMHg1ZSwgMHhjZSwg
MHg2MCwgMHgzZCwgMHg5YywgMHg2ZCwgMHg0YiwgMHgzZCwgMHhmOCwKKyAgICAweGJlLCAweDA4
LCAweGVkLCAweDAxLCAweGZjLCAweDQ0LCAweDI2LCAweDQ2LCAweGQwLCAweDM0LCAweDg1LCAw
eDhhLAorICAgIDB4YzcsIDB4NWIsIDB4ZWQsIDB4M2YsIDB4ZDUsIDB4ODAsIDB4YmYsIDB4OTgs
IDB4MDgsIDB4ZDksIDB4NGYsIDB4Y2IsCisgICAgMHhlZSwgMHg4MiwgMHhiOSwgMHhiMiwgMHhl
ZiwgMHg2NiwgMHg3NywgMHhhZiwgMHgwYSwgMHhkYywgMHhjMywgMHg1OCwKKyAgICAweDUyLCAw
eGVhLCAweDZiLCAweDllLAorICAgIC8vIHRleHQoNCkKKyAgICAweDY0LAorICAgIC8vICJ0eXBl
IgorICAgIDB4NzQsIDB4NzksIDB4NzAsIDB4NjUsCisgICAgLy8gdGV4dCgxMCkKKyAgICAweDZh
LAorICAgIC8vICJwdWJsaWMta2V5IgorICAgIDB4NzAsIDB4NzUsIDB4NjIsIDB4NkMsIDB4Njks
IDB4NjMsIDB4MkQsIDB4NkIsIDB4NjUsIDB4NzksCisgICAgLy8gdW5zaWduZWQoMikgLSBBdXRo
IGRhdGEKKyAgICAweDAyLAorICAgIC8vIGJ5dGVzKDM3KQorICAgIDB4NTgsIDB4MjUsCisgICAg
Ly8gYXV0aCBkYXRhCisgICAgMHg2MiwgMHg1ZCwgMHhkYSwgMHhkZiwgMHg3NCwgMHgzZiwgMHg1
NywgMHgyNywgMHhlNiwgMHg2YiwgMHhiYSwgMHg4YywKKyAgICAweDJlLCAweDM4LCAweDc5LCAw
eDIyLCAweGQxLCAweGFmLCAweDQzLCAweGM1LCAweDAzLCAweGQ5LCAweDExLCAweDRhLAorICAg
IDB4OGYsIDB4YmEsIDB4MTAsIDB4NGQsIDB4ODQsIDB4ZDAsIDB4MmIsIDB4ZmEsIDB4MDEsIDB4
MDAsIDB4MDAsIDB4MDAsCisgICAgMHgxMSwKKyAgICAvLyB1bnNpZ25lZCgzKSAtIHNpZ25hdHVy
ZQorICAgIDB4MDMsCisgICAgLy8gYnl0ZXMoNzEpCisgICAgMHg1OCwgMHg0NywKKyAgICAvLyBz
aWduYXR1cmUKKyAgICAweDMwLCAweDQ1LCAweDAyLCAweDIwLCAweDRhLCAweDVhLCAweDlkLCAw
eGQzLCAweDkyLCAweDk4LCAweDE0LCAweDlkLAorICAgIDB4OTAsIDB4NDcsIDB4NjksIDB4YjUs
IDB4MWEsIDB4NDUsIDB4MTQsIDB4MzMsIDB4MDAsIDB4NmYsIDB4MTgsIDB4MmEsCisgICAgMHgz
NCwgMHhmYiwgMHhkZiwgMHg2NiwgMHhkZSwgMHg1ZiwgMHhjNywgMHgxNywgMHhkNywgMHg1Ziwg
MHhiMywgMHg1MCwKKyAgICAweDAyLCAweDIxLCAweDAwLCAweGE0LCAweDZiLCAweDhlLCAweGEz
LCAweGMzLCAweGI5LCAweDMzLCAweDgyLCAweDFjLAorICAgIDB4NmUsIDB4N2YsIDB4NWUsIDB4
ZjksIDB4ZGEsIDB4YWUsIDB4OTQsIDB4YWIsIDB4NDcsIDB4ZjEsIDB4OGQsIDB4YjQsCisgICAg
MHg3NCwgMHhjNywgMHg0NywgMHg5MCwgMHhlYSwgMHhhYiwgMHhiMSwgMHg0NCwgMHgxMSwgMHhl
NywgMHhhMCwKKyAgICAvLyB1bnNpZ25lZCg0KSAtIHB1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50
aXR5CisgICAgMHgwNCwKKyAgICAvLyBtYXAoNCkKKyAgICAweGE0LAorICAgIC8vIHRleHQoMikK
KyAgICAweDYyLAorICAgIC8vICJpZCIKKyAgICAweDY5LCAweDY0LAorICAgIC8vIGJ5dGVzKDMy
KSAtIHVzZXIgaWQKKyAgICAweDU4LCAweDIwLAorICAgIC8vIHVzZXIgaWQKKyAgICAweDMwLCAw
eDgyLCAweDAxLCAweDkzLCAweDMwLCAweDgyLCAweDAxLCAweDM4LCAweGEwLCAweDAzLCAweDAy
LCAweDAxLAorICAgIDB4MDIsIDB4MzAsIDB4ODIsIDB4MDEsIDB4OTMsIDB4MzAsIDB4ODIsIDB4
MDEsIDB4MzgsIDB4YTAsIDB4MDMsIDB4MDIsCisgICAgMHgwMSwgMHgwMiwgMHgzMCwgMHg4Miwg
MHgwMSwgMHg5MywgMHgzMCwgMHg4MiwKKyAgICAvLyB0ZXh0KDQpCisgICAgMHg2NCwKKyAgICAv
LyAiaWNvbiIKKyAgICAweDY5LCAweDYzLCAweDZmLCAweDZlLAorICAgIC8vIHRleHQoNDApCisg
ICAgMHg3OCwgMHgyOCwKKyAgICAvLyAiaHR0cHM6Ly9waWNzLmFjbWUuY29tLzAwL3AvYUJqampw
cVBiLnBuZyIKKyAgICAweDY4LCAweDc0LCAweDc0LCAweDcwLCAweDczLCAweDNhLCAweDJmLCAw
eDJmLCAweDcwLCAweDY5LCAweDYzLCAweDczLAorICAgIDB4MmUsIDB4NjEsIDB4NjMsIDB4NmQs
IDB4NjUsIDB4MmUsIDB4NjMsIDB4NmYsIDB4NmQsIDB4MmYsIDB4MzAsIDB4MzAsCisgICAgMHgy
ZiwgMHg3MCwgMHgyZiwgMHg2MSwgMHg0MiwgMHg2YSwgMHg2YSwgMHg2YSwgMHg3MCwgMHg3MSwg
MHg1MCwgMHg2MiwKKyAgICAweDJlLCAweDcwLCAweDZlLCAweDY3LAorICAgIC8vIHRleHQoNCkK
KyAgICAweDY0LAorICAgIC8vICJuYW1lIgorICAgIDB4NmUsIDB4NjEsIDB4NmQsIDB4NjUsCisg
ICAgLy8gdGV4dCgyMikKKyAgICAweDc2LAorICAgIC8vICJqb2hucHNtaXRoQGV4YW1wbGUuY29t
IgorICAgIDB4NmEsIDB4NmYsIDB4NjgsIDB4NmUsIDB4NzAsIDB4NzMsIDB4NmQsIDB4NjksIDB4
NzQsIDB4NjgsIDB4NDAsIDB4NjUsCisgICAgMHg3OCwgMHg2MSwgMHg2ZCwgMHg3MCwgMHg2Yywg
MHg2NSwgMHgyZSwgMHg2MywgMHg2ZiwgMHg2ZCwKKyAgICAvLyB0ZXh0KDExKQorICAgIDB4NmIs
CisgICAgLy8gImRpc3BsYXlOYW1lIgorICAgIDB4NjQsIDB4NjksIDB4NzMsIDB4NzAsIDB4NmMs
IDB4NjEsIDB4NzksIDB4NGUsIDB4NjEsIDB4NmQsIDB4NjUsCisgICAgLy8gdGV4dCgxMykKKyAg
ICAweDZkLAorICAgIC8vICJKb2huIFAuIFNtaXRoIgorICAgIDB4NGEsIDB4NmYsIDB4NjgsIDB4
NmUsIDB4MjAsIDB4NTAsIDB4MmUsIDB4MjAsIDB4NTMsIDB4NmQsIDB4NjksIDB4NzQsCisgICAg
MHg2OCwKKyAgICAvLyB1bnNpZ25lZCg1KSAtIG51bWJlciBvZiBjcmVkZW50aWFscworICAgIDB4
MDUsCisgICAgLy8gMQorICAgIDB4MDEsCit9OworCit9IC8vIG5hbWVzcGFjZSBUZXN0RGF0YQor
Cit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353519</attachid>
            <date>2018-10-31 12:43:10 -0700</date>
            <delta_ts>2018-10-31 13:56:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190784-20181031124310.patch</filename>
            <type>text/plain</type>
            <size>148672</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFmNDQ3ZDE1N2JlMDJh
MzA1Y2UyMDk2MDdlNTc5ZjYxNjM3YmNhOS4uMzU1MzE5MjU4ZTc3MmEyYzJiMTJiOWZhYWQ2Mzkx
OTcwNWRmNzY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDE4LTEwLTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBv
cnQgQ1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzIGZyb20gQ2hyb21pdW0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDc4NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU0NjAzMzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBvcnRzIENocm9taXVtJ3Mg
Q1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzOgorICAgICAgICBodHRwczov
L2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50
LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sI21lc3NhZ2Ut
ZW5jb2RpbmcKKyAgICAgICAgMS4gSXQgZGlyZWN0bHkgaW1wb3J0cyB0aGUgZm9sbG93aW5nIGZp
bGVzIGFuZCBzdWl0IHRoZW0gdG8gV2ViS2l0J3MgY29kaW5nIHN0eWxlOgorICAgICAgICBodHRw
czovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vZGV2aWNlX3Jlc3Bv
bnNlX2NvbnZlcnRlci5jYz9sPTIwJnJjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQy
ZDk5YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9k
ZXZpY2UvZmlkby9kZXZpY2VfcmVzcG9uc2VfY29udmVydGVyLmg/cmNsPTA5OGRmZDkwODUwZmZh
ODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5v
cmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhlbnRpY2F0b3JfZ2V0X2luZm9fcmVzcG9u
c2UuY2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAg
ICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhl
bnRpY2F0b3JfZ2V0X2luZm9fcmVzcG9uc2UuaD9yY2w9MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRh
Yjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1
bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9zdXBwb3J0ZWRfb3B0aW9ucy5jYz9yY2w9
MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczov
L2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9z
dXBwb3J0ZWRfb3B0aW9ucy5oP3JjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5
YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9kZXZp
Y2UvZmlkby9jdGFwX3JlcXVlc3RfdW5pdHRlc3QuY2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdh
ODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hy
b21pdW0vc3JjL2RldmljZS9maWRvL2N0YXBfcmVzcG9uc2VfdW5pdHRlc3QuY2M/cmNsPTA5OGRm
ZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5j
aHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2ZpZG9fdGVzdF9kYXRhLmg/bD0x
JnJjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5YzRlYzQ1CisgICAgICAgIDIu
IEl0IGdhdGhlcnMgdGhlIGZvbGxvd2luZyBtZXRob2RzIGludG8gRGV2aWNlUmVxdWVzdENvbnZl
cnRlcjoKKyAgICAgICAgQ3RhcEdldEFzc2VydGlvblJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisg
ICAgICAgIEN0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisgICAgICAg
IFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yOjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAg
UHVibGljS2V5Q3JlZGVudGlhbFBhcmFtczo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1Ymxp
Y0tleUNyZWRlbnRpYWxScEVudGl0eTo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1YmxpY0tl
eUNyZWRlbnRpYWxVc2VyRW50aXR5OjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAgMy4gSXQgYWxz
byBhcHBseSBhIHBhdGNoIGZyb20gQ2hyb21pdW0gdG8gQ0JPUlZhbHVlOgorICAgICAgICBodHRw
czovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjLysvN2I2ZmJmZjM1Y2Q4
ZTRkNTA4ZjA4ZTFjZDkzYjRhYTBhMGRjNDAyYyU1RSUyMS8KKworICAgICAgICBCZXNpZGVzIGlt
cG9ydGluZyB0aGluZ3MgZnJvbSBDaHJvbWl1bSwgaXQgYWxzbyBpbXBsZW1lbnRzIFVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudCBmb3IgYm90aAorICAgICAgICBQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zIGFuZCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgc3Vj
aCB0aGF0IGJvdGggb3B0aW9ucworICAgICAgICBjYW4gc3BlY2lmeSBtb3JlIGRpbWVuc2lvbnMg
b2YgYSBkZXNpcmVkIGF1dGhlbnRpY2F0b3IuCisKKyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVz
dHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
czo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjpkZWNvZGUpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9uczo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMu
aWRsLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpDQk9S
VmFsdWUpOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpnZXRCb29sIGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmg6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKGZpZG86OnRvQXJyYXlWYWx1ZSk6CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlOjpBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKToKKyAgICAg
ICAgKGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldE1heE1zZ1NpemUpOgor
ICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0UGluUHJvdG9j
b2xzKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldEV4
dGVuc2lvbnMpOgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6
c2V0T3B0aW9ucyk6CisgICAgICAgIChmaWRvOjplbmNvZGVBc0NCT1IpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnM6OnNldFN1cHBvcnRzUmVzaWRlbnRLZXkpOgorICAgICAgICAoZmlkbzo6QXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkp
OgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJQ
cmVzZW5jZVJlcXVpcmVkKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zOjpzZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkpOgorICAgICAgICAoZmlkbzo6QXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldElzUGxhdGZvcm1EZXZpY2UpOgorICAgICAgICAo
Zmlkbzo6Y29udmVydFRvQ0JPUik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChmaWRvOjpjb252ZXJ0UnBFbnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFVz
ZXJFbnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFBhcmFtZXRlcnNUb0NCT1Ip
OgorICAgICAgICAoZmlkbzo6Y29udmVydERlc2NyaXB0b3JUb0NCT1IpOgorICAgICAgICAoZmlk
bzo6ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKToKKyAgICAgICAgKGZpZG86OmVu
Y29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IpOgorICAgICAgICAoZmlkbzo6ZW5jb2RlRW1w
dHlBdXRoZW50aWNhdG9yUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRv
L0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KGZpZG86OmNvbnZlcnRTdHJpbmdUb1Byb3RvY29sVmVyc2lvbik6CisgICAgICAgIChmaWRvOjpn
ZXRSZXNwb25zZUNvZGUpOgorICAgICAgICAoZmlkbzo6Z2V0Q3JlZGVudGlhbElkKToKKyAgICAg
ICAgKGZpZG86OnJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZSk6CisgICAgICAgIChmaWRv
OjpyZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKToKKyAgICAgICAgKGZpZG86OnJlYWRDVEFQ
R2V0SW5mb1Jlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNl
UmVzcG9uc2VDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0
aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcDoKKyAgICAgICAgKGZpZG86OmlzQ3RhcERldmljZVJl
c3BvbnNlQ29kZSk6CisgICAgICAgIChmaWRvOjpwdWJsaWNLZXlDcmVkZW50aWFsVHlwZVRvU3Ry
aW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxOC0xMC0zMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxl
LmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBzb21lIG9ic29sZXRlIE1BWF9BTExPV0VEIG1hY3Jv
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMjliNmM1NDkzMmY5ZTRlODg0NjZkY2Y5MThjYmQ2
ZTE3NDY0MmQ1Li44YTEwYmQzNDg5MjRhZDFlMmViYzAyNWQ5NTAxNDQwZWM1ZWY2MzEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtNDMxLDYgKzQzMSw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdf
SURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3Jp
cHRvci5pZGwKICAgICBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5pZGwKICAgICBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxUeXBl
LmlkbAorICAgIE1vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50Lmlk
bAogCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5pZGwKICAg
ICBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggNjYzOTBkNDlmYjM5ZDZjNGIyYzQ3NjI2MDVkMjYwNWZiMmI1YjEwZC4uZTBj
NTIwNzQ3ODhhNWRmMTdmZjU0YWI1ZjQ4YTUxZmE3NTM1NThmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCkBAIC0zNTUsNiArMzU1LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRv
ci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50
aWFsUmVxdWVzdE9wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXV0aG4v
UHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
YXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ2FsbGJhY2suaWRsIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKaW5kZXggOGFmYjRkZDRkNDYxZTg2ZTY5NDgzMzllMjEx
YjE5OWU3MWE5ODczMy4uYmE2OGRmOTJiMTgyYzdhOWIxM2EzNjZmYTkxMTYwODJlYjQ2NWRiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50
aWFsRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmgiCisj
aW5jbHVkZSAiVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL0Ny
b3NzVGhyZWFkQ29waWVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtNjUsNyAr
NjYsOSBAQCBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyB7CiAgICAg
fTsKIAogICAgIHN0cnVjdCBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgewotICAgICAg
ICBBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yQXR0YWNobWVudD4gYXV0aGVudGljYXRvckF0
dGFjaG1lbnQ7CisgICAgICAgIGJvb2wgcmVxdWlyZVJlc2lkZW50S2V5IHsgZmFsc2UgfTsKKyAg
ICAgICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IHVzZXJWZXJpZmljYXRpb24geyBVc2Vy
VmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZCB9OwogCiAgICAgICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICAgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRvclNl
bGVjdGlvbkNyaXRlcmlhPiBkZWNvZGUoRGVjb2RlciYpOwpAQCAtMTA1LDE0ICsxMDgsMjcgQEAg
c3RkOjpvcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0
ZXJzPiBQdWJsaWNLZXlDcmVkZW50aWEKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25D
cml0ZXJpYTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8
PCBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAgICBlbmNvZGVyIDw8IGF1dGhlbnRpY2F0b3JB
dHRhY2htZW50IDw8IHJlcXVpcmVSZXNpZGVudEtleSA8PCB1c2VyVmVyaWZpY2F0aW9uOwogfQog
CiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE+IFB1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0
ZXJpYTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHJlc3VsdDsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuYXV0aGVudGljYXRvckF0dGFjaG1l
bnQpKQorCisgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPEF1dGhlbnRpY2F0b3JBdHRh
Y2htZW50Pj4gYXV0aGVudGljYXRvckF0dGFjaG1lbnQ7CisgICAgZGVjb2RlciA+PiBhdXRoZW50
aWNhdG9yQXR0YWNobWVudDsKKyAgICBpZiAoIWF1dGhlbnRpY2F0b3JBdHRhY2htZW50KQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJlc3VsdC5hdXRoZW50aWNhdG9yQXR0YWNo
bWVudCA9IFdURk1vdmUoKmF1dGhlbnRpY2F0b3JBdHRhY2htZW50KTsKKworICAgIHN0ZDo6b3B0
aW9uYWw8Ym9vbD4gcmVxdWlyZVJlc2lkZW50S2V5OworICAgIGRlY29kZXIgPj4gcmVxdWlyZVJl
c2lkZW50S2V5OworICAgIGlmICghcmVxdWlyZVJlc2lkZW50S2V5KQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIHJlc3VsdC5yZXF1aXJlUmVzaWRlbnRLZXkgPSAqcmVxdWlyZVJl
c2lkZW50S2V5OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LnVzZXJWZXJp
ZmljYXRpb24pKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIHJldHVybiByZXN1
bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbAppbmRleCBh
MzE1MjVmMzI1NDhkYjY1ODM5MzZlYmIwMzI3Yjk1NGExYzcxMDYxLi4zNmUxODBiZWRmYzgyMDFm
M2JjNGI1MzVjYWMwZjc0M2M4ZTdjNWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucy5pZGwKQEAgLTc0LDEwICs3NCw4IEBAIHR5cGVkZWYgbG9uZyBDT1NFQWxnb3Jp
dGhtSWRlbnRpZmllcjsKICAgICBDb25kaXRpb25hbD1XRUJfQVVUSE4sCiBdIGRpY3Rpb25hcnkg
QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHsKICAgICBBdXRoZW50aWNhdG9yQXR0YWNo
bWVudCAgICAgIGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OwotICAgIC8vIFdlIGRvbid0IGFsbG93
IFJQcyB0byBzZXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgYXQgdGhpcyBzdGFnZS4KLSAgICAvLyBI
ZW5jZSwgdGhvc2Ugb3B0aW9ucyBhcmUgYWx3YXlzIHsgdHJ1ZSwgInJlcXVpcmVkIiB9LgotICAg
IC8vIGJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZVJlc2lkZW50S2V5ID0gZmFs
c2U7Ci0gICAgLy8gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50ICB1c2VyVmVyaWZpY2F0aW9u
ID0gInByZWZlcnJlZCI7CisgICAgYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJl
UmVzaWRlbnRLZXkgPSBmYWxzZTsKKyAgICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgIHVz
ZXJWZXJpZmljYXRpb24gPSAicHJlZmVycmVkIjsKIH07CiAKIFsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucy5oCmluZGV4IDI3NDQ3NmVmNzI3Yjg1ZDc1ZGQxYTllMjBjNTg3YWQx
YjkyZjBmMDEuLmJiNGZmOTJjMmM1MWNiZDgyOTM1ZDA4ZmQwYTU2MTIyMjcxZWU4OGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9Q
dWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaApAQCAtMjksNiArMjksNyBAQAogCiAj
aW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbERl
c2NyaXB0b3IuaCIKKyNpbmNsdWRlICJVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCIKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCw2ICsz
OSw3IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgewogICAgIHN0
ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHRpbWVvdXQ7CiAgICAgbXV0YWJsZSBTdHJpbmcgcnBJZDsK
ICAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I+IGFsbG93Q3JlZGVudGlh
bHM7CisgICAgc3RkOjpvcHRpb25hbDxVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ+IHVzZXJW
ZXJpZmljYXRpb24geyBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZCB9Owog
CiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4gZGVjb2RlKERlY29kZXImKTsKQEAgLTQ3LDcg
KzQ5LDcgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyB7CiB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgdGlt
ZW91dCA8PCBycElkIDw8IGFsbG93Q3JlZGVudGlhbHM7CisgICAgZW5jb2RlciA8PCB0aW1lb3V0
IDw8IHJwSWQgPDwgYWxsb3dDcmVkZW50aWFscyA8PCB1c2VyVmVyaWZpY2F0aW9uOwogfQogCiB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtNjUsNiArNjcsMTMgQEAgc3RkOjpvcHRpb25hbDxQ
dWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1
ZXN0T3B0aW8KICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5hbGxvd0NyZWRlbnRpYWxzKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQ+PiB1c2VyVmVyaWZpY2F0aW9uOworICAgIGRlY29kZXIgPj4gdXNlclZlcmlm
aWNhdGlvbjsKKyAgICBpZiAoIXVzZXJWZXJpZmljYXRpb24pCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgcmVzdWx0LnVzZXJWZXJpZmljYXRpb24gPSBXVEZNb3ZlKCp1c2VyVmVy
aWZpY2F0aW9uKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zLmlkbAppbmRleCA4OWEyMDZkYzljOWZkMjE3OGI5MTYxNmVkMTE2
NWZiNDdlOGU0ZGUwLi5kNjUxZGIyOGFlNjZkMGZjNjk4MjEwZDY4NzE2ZDZlMTExNDBjODM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsCkBAIC0zMCw4ICszMCw3
IEBACiAgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0OwogICAgIFVTVlN0cmluZyBycElkOwogICAg
IHNlcXVlbmNlPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiBhbGxvd0NyZWRlbnRpYWxz
ID0gW107Ci0gICAgLy8gQWx3YXlzICJyZXF1aXJlZCIgYXQgdGhpcyBzdGFnZQotICAgIC8vIFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB1c2VyVmVyaWZpY2F0aW9uID0gInByZWZlcnJlZCI7
CisgICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IHVzZXJWZXJpZmljYXRpb24gPSAicHJl
ZmVycmVkIjsKICAgICAvLyBOb3Qgc3VwcG9ydCB5ZXQuCiAgICAgLy8gQXV0aGVudGljYXRpb25F
eHRlbnNpb25zIGV4dGVuc2lvbnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODMxNGQwMmM1MmQ5YWFjMjE1NzVmZWI2ZmVhOGY0MTQ4ZmM1NzQ5NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQgeworICAgIFJlcXVpcmVkLAorICAgIFByZWZlcnJlZCwKKyAgICBEaXNjb3VyYWdl
ZAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3Jl
OjpVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQsCisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQsCisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkLAorICAgICAgICBXZWJDb3JlOjpVc2VyVmVy
aWZpY2F0aW9uUmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkCisgICAgPjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmY0ZmI5NWVhMDAyZTViYTk2NWNkNTdiMTUyMWM1
ODBlNjQ5OWNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVVEhOLAorICAgIEltcGxlbWVudGVk
QXM9VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50CitdIGVudW0gVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50IHsKKyAgICAicmVxdWlyZWQiLAorICAgICJwcmVmZXJyZWQiLAorICAgICJkaXNj
b3VyYWdlZCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2Nib3IvQ0JPUlZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jv
ci9DQk9SVmFsdWUuY3BwCmluZGV4IDI1ZWQ5OGI5MWY4M2E0YjQ2ODMwZGY0OGZhMDViYTg2OGM4
MTIyYjMuLjRjOGZmYWQxYThjZjBmNTE0N2NjNzY3NDRiYmE4NmRlNTFjOWRjYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwCkBA
IC0xNTMsNiArMTUzLDEyIEBAIENCT1JWYWx1ZTo6Q0JPUlZhbHVlKFNpbXBsZVZhbHVlIGluU2lt
cGxlKQogICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KGluU2ltcGxlKSA+PSAyMCAmJiBzdGF0
aWNfY2FzdDxpbnQ+KGluU2ltcGxlKSA8PSAyMyk7CiB9CiAKK0NCT1JWYWx1ZTo6Q0JPUlZhbHVl
KGJvb2wgaW5Cb29sKQorICAgIDogbV90eXBlKFR5cGU6OlNpbXBsZVZhbHVlKQoreworICAgIG1f
c2ltcGxlVmFsdWUgPSBpbkJvb2wgPyBDQk9SVmFsdWU6OlNpbXBsZVZhbHVlOjpUcnVlVmFsdWUg
OiBDQk9SVmFsdWU6OlNpbXBsZVZhbHVlOjpGYWxzZVZhbHVlOworfQorCiBDQk9SVmFsdWUmIENC
T1JWYWx1ZTo6b3BlcmF0b3I9KENCT1JWYWx1ZSYmIHRoYXQpCiB7CiAgICAgaW50ZXJuYWxDbGVh
bnVwKCk7CkBAIC0yNDAsNiArMjQ2LDEyIEBAIENCT1JWYWx1ZTo6U2ltcGxlVmFsdWUgQ0JPUlZh
bHVlOjpnZXRTaW1wbGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2ltcGxlVmFsdWU7CiB9
CiAKK2Jvb2wgQ0JPUlZhbHVlOjpnZXRCb29sKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNCb29s
KCkpOworICAgIHJldHVybiBtX3NpbXBsZVZhbHVlID09IFNpbXBsZVZhbHVlOjpUcnVlVmFsdWU7
Cit9CisKIHZvaWQgQ0JPUlZhbHVlOjppbnRlcm5hbE1vdmVDb25zdHJ1Y3RGcm9tKENCT1JWYWx1
ZSYmIHRoYXQpCiB7CiAgICAgbV90eXBlID0gdGhhdC5tX3R5cGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmgKaW5kZXggZTJkYjBlMTI3Mzhh
OTlhNzQ3YzgyZjQwOTEzMDA0YzY2MGI3ZThkNC4uNmE0YzgzYWJhMDMxYzM4ZDM3OWU2NmJjOTNl
YzQ3ZTVmMTkzMTc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9jYm9yL0NCT1JWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Y2Jvci9DQk9SVmFsdWUuaApAQCAtMTM4LDYgKzEzOCw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBDQk9SVmFsdWUoTWFwVmFsdWUmJik7CiAKICAgICBleHBsaWNpdCBDQk9SVmFsdWUoU2ltcGxl
VmFsdWUpOworICAgIGV4cGxpY2l0IENCT1JWYWx1ZShib29sKTsKIAogICAgIENCT1JWYWx1ZSYg
b3BlcmF0b3I9KENCT1JWYWx1ZSYmKTsKIApAQCAtMTYxLDkgKzE2MiwxMSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0FycmF5KCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFR5cGU6OkFycmF5OyB9
CiAgICAgYm9vbCBpc01hcCgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBUeXBlOjpNYXA7IH0K
ICAgICBib29sIGlzU2ltcGxlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFR5cGU6OlNpbXBs
ZVZhbHVlOyB9CisgICAgYm9vbCBpc0Jvb2woKSBjb25zdCB7IHJldHVybiBpc1NpbXBsZSgpICYm
IChtX3NpbXBsZVZhbHVlID09IFNpbXBsZVZhbHVlOjpUcnVlVmFsdWUgfHwgbV9zaW1wbGVWYWx1
ZSA9PSBTaW1wbGVWYWx1ZTo6RmFsc2VWYWx1ZSk7IH0KIAogICAgIC8vIFRoZXNlIHdpbGwgYWxs
IGZhdGFsbHkgYXNzZXJ0IGlmIHRoZSB0eXBlIGRvZXNuJ3QgbWF0Y2guCiAgICAgU2ltcGxlVmFs
dWUgZ2V0U2ltcGxlVmFsdWUoKSBjb25zdDsKKyAgICBib29sIGdldEJvb2woKSBjb25zdDsKICAg
ICBjb25zdCBpbnQ2NF90JiBnZXRJbnRlZ2VyKCkgY29uc3Q7CiAgICAgY29uc3QgaW50NjRfdCYg
Z2V0VW5zaWduZWQoKSBjb25zdDsKICAgICBjb25zdCBpbnQ2NF90JiBnZXROZWdhdGl2ZSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU0N2NjMGViMTJmNWE3ZjYyYTYyYzI1OWUwZWE0YjlhNmRhNWVjMzMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZS5jcHAKQEAgLTAsMCArMSwxMTAgQEAKKy8vIENvcHlyaWdodCAyMDE4IFRo
ZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
Ky8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisv
LyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
Ly8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
Ly8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCIKKworI2lmIEVOQUJMRShXRUJfQVVUSE4p
CisKKyNpbmNsdWRlICJDQk9SVmFsdWUuaCIKKyNpbmNsdWRlICJDQk9SV3JpdGVyLmgiCisKK25h
bWVzcGFjZSBmaWRvIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIENvbnRhaW5lcj4KK2Nib3I6OkNC
T1JWYWx1ZTo6QXJyYXlWYWx1ZSB0b0FycmF5VmFsdWUoY29uc3QgQ29udGFpbmVyJiBjb250YWlu
ZXIpCit7CisgICAgY2Jvcjo6Q0JPUlZhbHVlOjpBcnJheVZhbHVlIHZhbHVlOworICAgIHZhbHVl
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY29udGFpbmVyLnNpemUoKSk7CisgICAgZm9yIChjb25z
dCBhdXRvJiBpdGVtIDogY29udGFpbmVyKQorICAgICAgICB2YWx1ZS5hcHBlbmQoY2Jvcjo6Q0JP
UlZhbHVlKGl0ZW0pKTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK0F1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2U6OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UoU3RkU2V0PFByb3RvY29s
VmVyc2lvbj4mJiB2ZXJzaW9ucywgVmVjdG9yPHVpbnQ4X3Q+JiYgYWFndWlkKQorICAgIDogbV92
ZXJzaW9ucyhXVEZNb3ZlKHZlcnNpb25zKSkKKyAgICAsIG1fYWFndWlkKFdURk1vdmUoYWFndWlk
KSkKK3sKK30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgQXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZTo6c2V0TWF4TXNnU2l6ZSh1aW50MzJfdCBtYXhNc2dTaXplKQoreworICAg
IG1fbWF4TXNnU2l6ZSA9IG1heE1zZ1NpemU7CisgICAgcmV0dXJuICp0aGlzOworfQorCitBdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlOjpz
ZXRQaW5Qcm90b2NvbHMoVmVjdG9yPHVpbnQ4X3Q+JiYgcGluUHJvdG9jb2xzKQoreworICAgIG1f
cGluUHJvdG9jb2xzID0gV1RGTW92ZShwaW5Qcm90b2NvbHMpOworICAgIHJldHVybiAqdGhpczsK
K30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgQXV0aGVudGljYXRvckdldEluZm9S
ZXNwb25zZTo6c2V0RXh0ZW5zaW9ucyhWZWN0b3I8U3RyaW5nPiYmIGV4dGVuc2lvbnMpCit7Cisg
ICAgbV9leHRlbnNpb25zID0gV1RGTW92ZShleHRlbnNpb25zKTsKKyAgICByZXR1cm4gKnRoaXM7
Cit9CisKK0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2U6OnNldE9wdGlvbnMoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmJiBvcHRp
b25zKQoreworICAgIG1fb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyk7CisgICAgcmV0dXJuICp0
aGlzOworfQorCitWZWN0b3I8dWludDhfdD4gZW5jb2RlQXNDQk9SKGNvbnN0IEF1dGhlbnRpY2F0
b3JHZXRJbmZvUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHVzaW5nIG5hbWVzcGFjZSBjYm9y
OworCisgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBkZXZpY2VJbmZvTWFwOworCisgICAgQ0JPUlZh
bHVlOjpBcnJheVZhbHVlIHZlcnNpb25BcnJheTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHZlcnNp
b24gOiByZXNwb25zZS52ZXJzaW9ucygpKQorICAgICAgICB2ZXJzaW9uQXJyYXkuYXBwZW5kKHZl
cnNpb24gPT0gUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCA/IGtDdGFwMlZlcnNpb24gOiBrVTJmVmVy
c2lvbik7CisgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKENCT1JWYWx1ZSgxKSwgQ0JPUlZhbHVl
KFdURk1vdmUodmVyc2lvbkFycmF5KSkpOworCisgICAgaWYgKHJlc3BvbnNlLmV4dGVuc2lvbnMo
KSkKKyAgICAgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKENCT1JWYWx1ZSgyKSwgdG9BcnJheVZh
bHVlKCpyZXNwb25zZS5leHRlbnNpb25zKCkpKTsKKworICAgIGRldmljZUluZm9NYXAuZW1wbGFj
ZShDQk9SVmFsdWUoMyksIENCT1JWYWx1ZShyZXNwb25zZS5hYWd1aWQoKSkpOworICAgIGRldmlj
ZUluZm9NYXAuZW1wbGFjZShDQk9SVmFsdWUoNCksIGNvbnZlcnRUb0NCT1IocmVzcG9uc2Uub3B0
aW9ucygpKSk7CisKKyAgICBpZiAocmVzcG9uc2UubWF4TXNnU2l6ZSgpKQorICAgICAgICBkZXZp
Y2VJbmZvTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKDUpLCBDQk9SVmFsdWUoc3RhdGljX2Nhc3Q8aW50
NjRfdD4oKnJlc3BvbnNlLm1heE1zZ1NpemUoKSkpKTsKKworICAgIGlmIChyZXNwb25zZS5waW5Q
cm90b2NvbCgpKQorICAgICAgICBkZXZpY2VJbmZvTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKDYpLCB0
b0FycmF5VmFsdWUoKnJlc3BvbnNlLnBpblByb3RvY29sKCkpKTsKKworICAgIGF1dG8gZW5jb2Rl
ZEJ5dGVzID0gQ0JPUldyaXRlcjo6d3JpdGUoQ0JPUlZhbHVlKFdURk1vdmUoZGV2aWNlSW5mb01h
cCkpKTsKKyAgICBBU1NFUlQoZW5jb2RlZEJ5dGVzKTsKKyAgICByZXR1cm4gKmVuY29kZWRCeXRl
czsKK30KKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRI
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL2ZpZG8vQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwNjNj
NGY1YzkzNWY5NzNkYzExNTQwMjAzNTk3YzU4NTZjMzRhZmUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdldEluZm9S
ZXNwb25zZS5oCkBAIC0wLDAgKzEsNzYgQEAKKy8vIENvcHlyaWdodCAyMDE4IFRoZSBDaHJvbWl1
bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8v
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
Ly8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQor
CisjaW5jbHVkZSAiQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCIKKyNpbmNsdWRlICJG
aWRvQ29uc3RhbnRzLmgiCisjaW5jbHVkZSA8d3RmL1N0ZFNldC5oPgorCituYW1lc3BhY2UgZmlk
byB7CisKKy8vIEF1dGhlbnRpY2F0b3IgcmVzcG9uc2UgZm9yIEF1dGhlbnRpY2F0b3JHZXRJbmZv
IHJlcXVlc3QgdGhhdCBlbmNhcHN1bGF0ZXMKKy8vIHZlcnNpb25zLCBvcHRpb25zLCBBQUdVSUQo
QXV0aGVudGljYXRvciBBdHRlc3RhdGlvbiBHVUlEKSwgb3RoZXIKKy8vIGF1dGhlbnRpY2F0b3Ig
ZGV2aWNlIGluZm9ybWF0aW9uLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2Zp
ZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29s
LXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNhdG9yZ2V0aW5mby0weDA0CitjbGFzcyBX
RUJDT1JFX0VYUE9SVCBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlIHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKTsKK3B1YmxpYzoKKyAg
ICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKFN0ZFNldDxQcm90b2NvbFZlcnNpb24+JiYg
dmVyc2lvbnMsIFZlY3Rvcjx1aW50OF90PiYmIGFhZ3VpZCk7CisgICAgQXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZShBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiYgdGhhdCkgPSBkZWZh
dWx0OworICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIG9wZXJhdG9yPShBdXRoZW50
aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiYgb3RoZXIpID0gZGVmYXVsdDsKKworICAgIEF1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UmIHNldE1heE1zZ1NpemUodWludDMyX3QpOworICAgIEF1dGhl
bnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIHNldFBpblByb3RvY29scyhWZWN0b3I8dWludDhfdD4m
Jik7CisgICAgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgc2V0RXh0ZW5zaW9ucyhWZWN0
b3I8U3RyaW5nPiYmKTsKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBzZXRPcHRp
b25zKEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiYpOworCisgICAgY29uc3QgU3RkU2V0
PFByb3RvY29sVmVyc2lvbj4mIHZlcnNpb25zKCkgY29uc3QgeyByZXR1cm4gbV92ZXJzaW9uczsg
fQorICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYWFndWlkKCkgY29uc3QgeyByZXR1cm4gbV9h
YWd1aWQ7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiYgbWF4TXNnU2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWF4TXNnU2l6ZTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPHVpbnQ4X3Q+PiYgcGluUHJvdG9jb2woKSBjb25zdCB7IHJldHVybiBtX3BpblByb3Rv
Y29sczsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBleHRlbnNp
b25zKCkgY29uc3QgeyByZXR1cm4gbV9leHRlbnNpb25zOyB9CisgICAgY29uc3QgQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnMmIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7
IH0KKworcHJpdmF0ZToKKyAgICBTdGRTZXQ8UHJvdG9jb2xWZXJzaW9uPiBtX3ZlcnNpb25zOwor
ICAgIFZlY3Rvcjx1aW50OF90PiBtX2FhZ3VpZDsKKyAgICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90
PiBtX21heE1zZ1NpemU7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IG1fcGlu
UHJvdG9jb2xzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IG1fZXh0ZW5zaW9u
czsKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBtX29wdGlvbnM7Cit9OworCitX
RUJDT1JFX0VYUE9SVCBWZWN0b3I8dWludDhfdD4gZW5jb2RlQXNDQk9SKGNvbnN0IEF1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UmKTsKKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlv
bnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJkY2Y4YTRjZDU0YWY3N2Y4ZjMzMzgxMzhlOTQxYmRiYWY2MGRj
NGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3BwCkBAIC0wLDAgKzEsMTA5IEBACisv
LyBDb3B5cmlnaHQgMjAxOCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBk
aXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
Ky8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oIgorCisj
aWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkZpZG9Db25zdGFudHMuaCIKKworbmFt
ZXNwYWNlIGZpZG8geworCitBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFN1cHBvcnRzUmVzaWRlbnRLZXkoYm9vbCBzdXBwb3J0
c1Jlc2lkZW50S2V5KQoreworICAgIG1fc3VwcG9ydHNSZXNpZGVudEtleSA9IHN1cHBvcnRzUmVz
aWRlbnRLZXk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitBdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9ucyYgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJWZXJpZmljYXRp
b25BdmFpbGFiaWxpdHkoVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSB1c2VyVmVyaWZpY2F0
aW9uQXZhaWxhYmlsaXR5KQoreworICAgIG1fdXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSA9
IHVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlv
bnM6OnNldFVzZXJQcmVzZW5jZVJlcXVpcmVkKGJvb2wgdXNlclByZXNlbmNlUmVxdWlyZWQpCit7
CisgICAgbV91c2VyUHJlc2VuY2VSZXF1aXJlZCA9IHVzZXJQcmVzZW5jZVJlcXVpcmVkOworICAg
IHJldHVybiAqdGhpczsKK30KKworQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpzZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkoQ2xpZW50
UGluQXZhaWxhYmlsaXR5IGNsaWVudFBpbkF2YWlsYWJpbGl0eSkKK3sKKyAgICBtX2NsaWVudFBp
bkF2YWlsYWJpbGl0eSA9IGNsaWVudFBpbkF2YWlsYWJpbGl0eTsKKyAgICByZXR1cm4gKnRoaXM7
Cit9CisKK0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBBdXRoZW50aWNhdG9yU3VwcG9y
dGVkT3B0aW9uczo6c2V0SXNQbGF0Zm9ybURldmljZShib29sIGlzUGxhdGZvcm1EZXZpY2UpCit7
CisgICAgbV9pc1BsYXRmb3JtRGV2aWNlID0gaXNQbGF0Zm9ybURldmljZTsKKyAgICByZXR1cm4g
KnRoaXM7Cit9CisKK2Nib3I6OkNCT1JWYWx1ZSBjb252ZXJ0VG9DQk9SKGNvbnN0IEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBvcHRpb25zKQoreworICAgIHVzaW5nIG5hbWVzcGFjZSBj
Ym9yOworCisgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25NYXA7CisgICAgb3B0aW9uTWFw
LmVtcGxhY2UoQ0JPUlZhbHVlKGtSZXNpZGVudEtleU1hcEtleSksIENCT1JWYWx1ZShvcHRpb25z
LnN1cHBvcnRzUmVzaWRlbnRLZXkoKSkpOworICAgIG9wdGlvbk1hcC5lbXBsYWNlKENCT1JWYWx1
ZShrVXNlclByZXNlbmNlTWFwS2V5KSwgQ0JPUlZhbHVlKG9wdGlvbnMudXNlclByZXNlbmNlUmVx
dWlyZWQoKSkpOworICAgIG9wdGlvbk1hcC5lbXBsYWNlKENCT1JWYWx1ZShrUGxhdGZvcm1EZXZp
Y2VNYXBLZXkpLCBDQk9SVmFsdWUob3B0aW9ucy5pc1BsYXRmb3JtRGV2aWNlKCkpKTsKKworICAg
IHVzaW5nIFV2QXZhaWxhYmlsaXR5ID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVz
ZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk7CisKKyAgICBzd2l0Y2ggKG9wdGlvbnMudXNlclZl
cmlmaWNhdGlvbkF2YWlsYWJpbGl0eSgpKSB7CisgICAgY2FzZSBVdkF2YWlsYWJpbGl0eTo6a1N1
cHBvcnRlZEFuZENvbmZpZ3VyZWQ6CisgICAgICAgIG9wdGlvbk1hcC5lbXBsYWNlKENCT1JWYWx1
ZShrVXNlclZlcmlmaWNhdGlvbk1hcEtleSksIENCT1JWYWx1ZSh0cnVlKSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgVXZBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1cmVk
OgorICAgICAgICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFsdWUoa1VzZXJWZXJpZmljYXRpb25N
YXBLZXkpLCBDQk9SVmFsdWUoZmFsc2UpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBVdkF2
YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAg
dXNpbmcgQ2xpZW50UGluQXZhaWxhYmlsaXR5ID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlv
bnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTsKKworICAgIHN3aXRjaCAob3B0aW9ucy5jbGllbnRQ
aW5BdmFpbGFiaWxpdHkoKSkgeworICAgIGNhc2UgQ2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3Vw
cG9ydGVkQW5kUGluU2V0OgorICAgICAgICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFsdWUoa0Ns
aWVudFBpbk1hcEtleSksIENCT1JWYWx1ZSh0cnVlKSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0UGluTm90U2V0OgorICAgICAg
ICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFsdWUoa0NsaWVudFBpbk1hcEtleSksIENCT1JWYWx1
ZShmYWxzZSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENsaWVudFBpbkF2YWlsYWJpbGl0
eTo6a05vdFN1cHBvcnRlZDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIENC
T1JWYWx1ZShXVEZNb3ZlKG9wdGlvbk1hcCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBmaWRvCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzQwYWU0YmU0MjYxNGM3MTRlNTdmYWY2YTQ0NjVjN2Yy
ZmY5OTE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgKQEAgLTAsMCArMSw5NiBAQAor
Ly8gQ29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8g
ZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8g
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJDQk9SVmFsdWUuaCIKKyNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgZmlkbyB7CisKKy8vIFJlcHJlc2Vu
dHMgQ1RBUCBkZXZpY2UgcHJvcGVydGllcyBhbmQgY2FwYWJpbGl0aWVzIHJlY2VpdmVkIGFzIGEg
cmVzcG9uc2UgdG8KKy8vIEF1dGhlbnRpY2F0b3JHZXRJbmZvIGNvbW1hbmQuCitjbGFzcyBXRUJD
T1JFX0VYUE9SVCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyB7CisgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMpOworcHVibGljOgorICAg
IGVudW0gY2xhc3MgVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSB7CisgICAgICAgIC8vIGUu
Zy4gQXV0aGVudGljYXRvciB3aXRoIGZpbmdlciBwcmludCBzZW5zb3IgYW5kIHVzZXIncyBmaW5n
ZXJwcmludCBpcworICAgICAgICAvLyByZWdpc3RlcmVkIHRvIHRoZSBkZXZpY2UuCisgICAgICAg
IGtTdXBwb3J0ZWRBbmRDb25maWd1cmVkLAorICAgICAgICAvLyBlLmcuIEF1dGhlbnRpY2F0b3Ig
d2l0aCBmaW5nZXJwcmludCBzZW5zb3Igd2l0aG91dCB1c2VyJ3MgZmluZ2VycHJpbnQKKyAgICAg
ICAgLy8gcmVnaXN0ZXJlZC4KKyAgICAgICAga1N1cHBvcnRlZEJ1dE5vdENvbmZpZ3VyZWQsCisg
ICAgICAgIGtOb3RTdXBwb3J0ZWQKKyAgICB9OworCisgICAgZW51bSBjbGFzcyBDbGllbnRQaW5B
dmFpbGFiaWxpdHkgeworICAgICAgICBrU3VwcG9ydGVkQW5kUGluU2V0LAorICAgICAgICBrU3Vw
cG9ydGVkQnV0UGluTm90U2V0LAorICAgICAgICBrTm90U3VwcG9ydGVkLAorICAgIH07CisKKyAg
ICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucygpID0gZGVmYXVsdDsKKyAgICBBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyhBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYmKSA9
IGRlZmF1bHQ7CisgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIG9wZXJhdG9yPShB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYmKSA9IGRlZmF1bHQ7CisKKyAgICBBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0SXNQbGF0Zm9ybURldmljZShib29sKTsKKyAgICBB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0U3VwcG9ydHNSZXNpZGVudEtleShib29s
KTsKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0VXNlclZlcmlmaWNhdGlv
bkF2YWlsYWJpbGl0eShVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KTsKKyAgICBBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0VXNlclByZXNlbmNlUmVxdWlyZWQoYm9vbCk7Cisg
ICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIHNldENsaWVudFBpbkF2YWlsYWJpbGl0
eShDbGllbnRQaW5BdmFpbGFiaWxpdHkpOworCisgICAgYm9vbCBpc1BsYXRmb3JtRGV2aWNlKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1BsYXRmb3JtRGV2aWNlOyB9CisgICAgYm9vbCBzdXBwb3J0c1Jl
c2lkZW50S2V5KCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c1Jlc2lkZW50S2V5OyB9CisgICAg
VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSB1c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5
KCkgY29uc3QgeyByZXR1cm4gbV91c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OyB9CisgICAg
Ym9vbCB1c2VyUHJlc2VuY2VSZXF1aXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclByZXNlbmNl
UmVxdWlyZWQ7IH0KKyAgICBDbGllbnRQaW5BdmFpbGFiaWxpdHkgY2xpZW50UGluQXZhaWxhYmls
aXR5KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRQaW5BdmFpbGFiaWxpdHk7IH0KKworcHJpdmF0
ZToKKyAgICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgZGV2aWNlIGlzIGF0dGFjaGVkIHRvIHRoZSBj
bGllbnQgYW5kIHRoZXJlZm9yZSBjYW4ndCBiZQorICAgIC8vIHJlbW92ZWQgYW5kIHVzZWQgb24g
YW5vdGhlciBjbGllbnQuCisgICAgYm9vbCBtX2lzUGxhdGZvcm1EZXZpY2UgeyBmYWxzZSB9Owor
ICAgIC8vIEluZGljYXRlcyB0aGF0IHRoZSBkZXZpY2UgaXMgY2FwYWJsZSBvZiBzdG9yaW5nIGtl
eXMgb24gdGhlIGRldmljZSBpdHNlbGYKKyAgICAvLyBhbmQgdGhlcmVmb3JlIGNhbiBzYXRpc2Z5
IHRoZSBhdXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9uIHJlcXVlc3Qgd2l0aAorICAgIC8vIGFsbG93
TGlzdCBwYXJhbWV0ZXIgbm90IHNwZWNpZmllZCBvciBlbXB0eS4KKyAgICBib29sIG1fc3VwcG9y
dHNSZXNpZGVudEtleSB7IGZhbHNlIH07CisgICAgLy8gSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGRl
dmljZSBpcyBjYXBhYmxlIG9mIHZlcmlmeWluZyB0aGUgdXNlciBvbiBpdHMgb3duLgorICAgIFVz
ZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgbV91c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5
IHsgVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCB9OworICAgIGJv
b2wgbV91c2VyUHJlc2VuY2VSZXF1aXJlZCB7IHRydWUgfTsKKyAgICAvLyBSZXByZXNlbnRzIHdo
ZXRoZXIgY2xpZW50IHBpbiBpbiBzZXQgYW5kIHN0b3JlZCBpbiBkZXZpY2UuIFNldCBhcyBudWxs
CisgICAgLy8gb3B0aW9uYWwgaWYgY2xpZW50IHBpbiBjYXBhYmlsaXR5IGlzIG5vdCBzdXBwb3J0
ZWQgYnkgdGhlIGF1dGhlbnRpY2F0b3IuCisgICAgQ2xpZW50UGluQXZhaWxhYmlsaXR5IG1fY2xp
ZW50UGluQXZhaWxhYmlsaXR5IHsgQ2xpZW50UGluQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVk
IH07Cit9OworCitXRUJDT1JFX0VYUE9SVCBjYm9yOjpDQk9SVmFsdWUgY29udmVydFRvQ0JPUihj
b25zdCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYpOworCit9IC8vIG5hbWVzcGFjZSBm
aWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ4MWZmNGFlZTgyYTZjYWQyZTAzMDM1NjcwNGQ5N2E1OThhNzA4
ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAKQEAgLTAsMCArMSwxODMgQEAKKy8vIENvcHly
aWdodCAyMDE3IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8g
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisv
LyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1
dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
Ly8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkRldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCIKKworI2lmIEVOQUJMRShXRUJf
QVVUSE4pCisKKyNpbmNsdWRlICJDQk9SV3JpdGVyLmgiCisjaW5jbHVkZSAiUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oIgorI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIGZp
ZG8gewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgY2JvcjsKKwor
dXNpbmcgVVZBdmFpbGFiaWxpdHkgPSBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNl
clZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTsKKworc3RhdGljIENCT1JWYWx1ZSBjb252ZXJ0UnBF
bnRpdHlUb0NCT1IoY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UnBF
bnRpdHkmIHJwRW50aXR5KQoreworICAgIENCT1JWYWx1ZTo6TWFwVmFsdWUgcnBNYXA7CisgICAg
cnBNYXAuZW1wbGFjZShDQk9SVmFsdWUoa0VudGl0eU5hbWVNYXBLZXkpLCBDQk9SVmFsdWUocnBF
bnRpdHkubmFtZSkpOworICAgIGlmICghcnBFbnRpdHkuaWNvbi5pc0VtcHR5KCkpCisgICAgICAg
IHJwTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtJY29uVXJsTWFwS2V5KSwgQ0JPUlZhbHVlKHJwRW50
aXR5Lmljb24pKTsKKyAgICBpZiAoIXJwRW50aXR5LmlkLmlzRW1wdHkoKSkKKyAgICAgICAgcnBN
YXAuZW1wbGFjZShDQk9SVmFsdWUoa0VudGl0eUlkTWFwS2V5KSwgQ0JPUlZhbHVlKHJwRW50aXR5
LmlkKSk7CisKKyAgICByZXR1cm4gQ0JPUlZhbHVlKFdURk1vdmUocnBNYXApKTsKK30KKworc3Rh
dGljIENCT1JWYWx1ZSBjb252ZXJ0VXNlckVudGl0eVRvQ0JPUihjb25zdCBQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zOjpVc2VyRW50aXR5JiB1c2VyRW50aXR5KQoreworICAgIENC
T1JWYWx1ZTo6TWFwVmFsdWUgdXNlck1hcDsKKyAgICB1c2VyTWFwLmVtcGxhY2UoQ0JPUlZhbHVl
KGtFbnRpdHlOYW1lTWFwS2V5KSwgQ0JPUlZhbHVlKHVzZXJFbnRpdHkubmFtZSkpOworICAgIGlm
ICghdXNlckVudGl0eS5pY29uLmlzRW1wdHkoKSkKKyAgICAgICAgdXNlck1hcC5lbXBsYWNlKENC
T1JWYWx1ZShrSWNvblVybE1hcEtleSksIENCT1JWYWx1ZSh1c2VyRW50aXR5Lmljb24pKTsKKyAg
ICB1c2VyTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtFbnRpdHlJZE1hcEtleSksIENCT1JWYWx1ZSh1
c2VyRW50aXR5LmlkVmVjdG9yKSk7CisgICAgdXNlck1hcC5lbXBsYWNlKENCT1JWYWx1ZShrRGlz
cGxheU5hbWVNYXBLZXkpLCBDQk9SVmFsdWUodXNlckVudGl0eS5kaXNwbGF5TmFtZSkpOworICAg
IHJldHVybiBDQk9SVmFsdWUoV1RGTW92ZSh1c2VyTWFwKSk7Cit9CisKK3N0YXRpYyBDQk9SVmFs
dWUgY29udmVydFBhcmFtZXRlcnNUb0NCT1IoY29uc3QgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+JiBwYXJhbWV0ZXJzKQoreworICAgIENCT1JW
YWx1ZTo6QXJyYXlWYWx1ZSBjcmVkZW50aWFsUGFyYW1BcnJheTsKKyAgICBjcmVkZW50aWFsUGFy
YW1BcnJheS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHBhcmFtZXRlcnMuc2l6ZSgpKTsKKyAgICBm
b3IgKGNvbnN0IGF1dG8mIGNyZWRlbnRpYWwgOiBwYXJhbWV0ZXJzKSB7CisgICAgICAgIENCT1JW
YWx1ZTo6TWFwVmFsdWUgY2JvckNyZWRlbnRpYWxNYXA7CisgICAgICAgIGNib3JDcmVkZW50aWFs
TWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtDcmVkZW50aWFsVHlwZU1hcEtleSksIENCT1JWYWx1ZShw
dWJsaWNLZXlDcmVkZW50aWFsVHlwZVRvU3RyaW5nKGNyZWRlbnRpYWwudHlwZSkpKTsKKyAgICAg
ICAgY2JvckNyZWRlbnRpYWxNYXAuZW1wbGFjZShDQk9SVmFsdWUoa0NyZWRlbnRpYWxBbGdvcml0
aG1NYXBLZXkpLCBDQk9SVmFsdWUoY3JlZGVudGlhbC5hbGcpKTsKKyAgICAgICAgY3JlZGVudGlh
bFBhcmFtQXJyYXkuYXBwZW5kKFdURk1vdmUoY2JvckNyZWRlbnRpYWxNYXApKTsKKyAgICB9Cisg
ICAgcmV0dXJuIENCT1JWYWx1ZShXVEZNb3ZlKGNyZWRlbnRpYWxQYXJhbUFycmF5KSk7Cit9CisK
K3N0YXRpYyBDQk9SVmFsdWUgY29udmVydERlc2NyaXB0b3JUb0NCT1IoY29uc3QgUHVibGljS2V5
Q3JlZGVudGlhbERlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCit7CisgICAgQ0JPUlZhbHVlOjpNYXBW
YWx1ZSBjYm9yRGVzY3JpcHRvck1hcDsKKyAgICBjYm9yRGVzY3JpcHRvck1hcFtDQk9SVmFsdWUo
a0NyZWRlbnRpYWxUeXBlS2V5KV0gPSBDQk9SVmFsdWUocHVibGljS2V5Q3JlZGVudGlhbFR5cGVU
b1N0cmluZyhkZXNjcmlwdG9yLnR5cGUpKTsKKyAgICBjYm9yRGVzY3JpcHRvck1hcFtDQk9SVmFs
dWUoa0NyZWRlbnRpYWxJZEtleSldID0gQ0JPUlZhbHVlKGRlc2NyaXB0b3IuaWRWZWN0b3IpOwor
ICAgIHJldHVybiBDQk9SVmFsdWUoV1RGTW92ZShjYm9yRGVzY3JpcHRvck1hcCkpOworfQorCitW
ZWN0b3I8dWludDhfdD4gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucyYgb3B0aW9ucywgVVZBdmFpbGFiaWxpdHkgdXZDYXBhYmlsaXR5KQoreworICAgIENCT1JW
YWx1ZTo6TWFwVmFsdWUgY2Jvck1hcDsKKyAgICBjYm9yTWFwW0NCT1JWYWx1ZSgxKV0gPSBDQk9S
VmFsdWUoaGFzaCk7CisgICAgY2Jvck1hcFtDQk9SVmFsdWUoMildID0gY29udmVydFJwRW50aXR5
VG9DQk9SKG9wdGlvbnMucnApOworICAgIGNib3JNYXBbQ0JPUlZhbHVlKDMpXSA9IGNvbnZlcnRV
c2VyRW50aXR5VG9DQk9SKG9wdGlvbnMudXNlcik7CisgICAgY2Jvck1hcFtDQk9SVmFsdWUoNCld
ID0gY29udmVydFBhcmFtZXRlcnNUb0NCT1Iob3B0aW9ucy5wdWJLZXlDcmVkUGFyYW1zKTsKKyAg
ICBpZiAoIW9wdGlvbnMuZXhjbHVkZUNyZWRlbnRpYWxzLmlzRW1wdHkoKSkgeworICAgICAgICBD
Qk9SVmFsdWU6OkFycmF5VmFsdWUgZXhjbHVkZUxpc3RBcnJheTsKKyAgICAgICAgZm9yIChjb25z
dCBhdXRvJiBkZXNjcmlwdG9yIDogb3B0aW9ucy5leGNsdWRlQ3JlZGVudGlhbHMpCisgICAgICAg
ICAgICBleGNsdWRlTGlzdEFycmF5LmFwcGVuZChjb252ZXJ0RGVzY3JpcHRvclRvQ0JPUihkZXNj
cmlwdG9yKSk7CisgICAgICAgIGNib3JNYXBbQ0JPUlZhbHVlKDUpXSA9IENCT1JWYWx1ZShXVEZN
b3ZlKGV4Y2x1ZGVMaXN0QXJyYXkpKTsKKyAgICB9CisKKyAgICBDQk9SVmFsdWU6Ok1hcFZhbHVl
IG9wdGlvbk1hcDsKKyAgICBpZiAob3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uKSB7Cisg
ICAgICAgIC8vIFJlc2lkZW50IGtleXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgZGVmYXVsdC4KKyAg
ICAgICAgaWYgKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+cmVxdWlyZVJlc2lkZW50
S2V5KQorICAgICAgICAgICAgb3B0aW9uTWFwW0NCT1JWYWx1ZShrUmVzaWRlbnRLZXlNYXBLZXkp
XSA9IENCT1JWYWx1ZSh0cnVlKTsKKworICAgICAgICAvLyBVc2VyIHZlcmlmaWNhdGlvbiBpcyBu
b3QgcmVxdWlyZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgYm9vbCByZXF1aXJlVXNlclZlcmlmaWNh
dGlvbiA9IGZhbHNlOworICAgICAgICBzd2l0Y2ggKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVj
dGlvbi0+dXNlclZlcmlmaWNhdGlvbikgeworICAgICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25S
ZXF1aXJlbWVudDo6UmVxdWlyZWQ6CisgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlv
biA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBVc2VyVmVyaWZpY2F0
aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZDoKKyAgICAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZp
Y2F0aW9uID0gdXZDYXBhYmlsaXR5ID09IFVWQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkID8g
ZmFsc2UgOiB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZDoKKyAgICAgICAgICAgIHJlcXVpcmVVc2Vy
VmVyaWZpY2F0aW9uID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgb3B0aW9uTWFwW0NCT1JW
YWx1ZShrVXNlclZlcmlmaWNhdGlvbk1hcEtleSldID0gQ0JPUlZhbHVlKHJlcXVpcmVVc2VyVmVy
aWZpY2F0aW9uKTsKKyAgICB9CisgICAgaWYgKCFvcHRpb25NYXAuZW1wdHkoKSkKKyAgICAgICAg
Y2Jvck1hcFtDQk9SVmFsdWUoNyldID0gQ0JPUlZhbHVlKFdURk1vdmUob3B0aW9uTWFwKSk7CisK
KyAgICBhdXRvIHNlcmlhbGl6ZWRQYXJhbSA9IENCT1JXcml0ZXI6OndyaXRlKENCT1JWYWx1ZShX
VEZNb3ZlKGNib3JNYXApKSk7CisgICAgQVNTRVJUKHNlcmlhbGl6ZWRQYXJhbSk7CisKKyAgICBW
ZWN0b3I8dWludDhfdD4gY2JvclJlcXVlc3QoeyBzdGF0aWNfY2FzdDx1aW50OF90PihDdGFwUmVx
dWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRpYWwpIH0pOworICAgIGNib3JS
ZXF1ZXN0LmFwcGVuZFZlY3Rvcigqc2VyaWFsaXplZFBhcmFtKTsKKyAgICByZXR1cm4gY2JvclJl
cXVlc3Q7Cit9CisKK1ZlY3Rvcjx1aW50OF90PiBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXND
Qk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zJiBvcHRpb25zLCBVVkF2YWlsYWJpbGl0eSB1dkNhcGFiaWxpdHkpCit7
CisgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBjYm9yTWFwOworICAgIGNib3JNYXBbQ0JPUlZhbHVl
KDEpXSA9IENCT1JWYWx1ZShvcHRpb25zLnJwSWQpOworICAgIGNib3JNYXBbQ0JPUlZhbHVlKDIp
XSA9IENCT1JWYWx1ZShoYXNoKTsKKworICAgIGlmICghb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxz
LmlzRW1wdHkoKSkgeworICAgICAgICBDQk9SVmFsdWU6OkFycmF5VmFsdWUgYWxsb3dMaXN0QXJy
YXk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgZGVzY3JpcHRvciA6IG9wdGlvbnMuYWxsb3dD
cmVkZW50aWFscykKKyAgICAgICAgICAgIGFsbG93TGlzdEFycmF5LmFwcGVuZChjb252ZXJ0RGVz
Y3JpcHRvclRvQ0JPUihkZXNjcmlwdG9yKSk7CisgICAgICAgIGNib3JNYXBbQ0JPUlZhbHVlKDMp
XSA9IENCT1JWYWx1ZShXVEZNb3ZlKGFsbG93TGlzdEFycmF5KSk7CisgICAgfQorCisgICAgQ0JP
UlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25NYXA7CisgICAgaWYgKG9wdGlvbnMudXNlclZlcmlmaWNh
dGlvbikgeworICAgICAgICAvLyBVc2VyIHZlcmlmaWNhdGlvbiBpcyBub3QgcmVxdWlyZWQgYnkg
ZGVmYXVsdC4KKyAgICAgICAgYm9vbCByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IGZhbHNlOwor
ICAgICAgICBzd2l0Y2ggKCpvcHRpb25zLnVzZXJWZXJpZmljYXRpb24pIHsKKyAgICAgICAgY2Fz
ZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlJlcXVpcmVkOgorICAgICAgICAgICAgcmVx
dWlyZVVzZXJWZXJpZmljYXRpb24gPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQ6CisgICAgICAgICAg
ICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IHV2Q2FwYWJpbGl0eSA9PSBVVkF2YWlsYWJpbGl0
eTo6a05vdFN1cHBvcnRlZCA/IGZhbHNlIDogdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlzY291cmFnZWQ6CisgICAg
ICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IGZhbHNlOworICAgICAgICB9CisgICAg
ICAgIG9wdGlvbk1hcFtDQk9SVmFsdWUoa1VzZXJWZXJpZmljYXRpb25NYXBLZXkpXSA9IENCT1JW
YWx1ZShyZXF1aXJlVXNlclZlcmlmaWNhdGlvbik7CisgICAgICAgIG9wdGlvbk1hcFtDQk9SVmFs
dWUoa1VzZXJQcmVzZW5jZU1hcEtleSldID0gQ0JPUlZhbHVlKCFyZXF1aXJlVXNlclZlcmlmaWNh
dGlvbik7CisgICAgfQorICAgIGlmICghb3B0aW9uTWFwLmVtcHR5KCkpCisgICAgICAgIGNib3JN
YXBbQ0JPUlZhbHVlKDUpXSA9IENCT1JWYWx1ZShXVEZNb3ZlKG9wdGlvbk1hcCkpOworCisgICAg
YXV0byBzZXJpYWxpemVkUGFyYW0gPSBDQk9SV3JpdGVyOjp3cml0ZShDQk9SVmFsdWUoV1RGTW92
ZShjYm9yTWFwKSkpOworICAgIEFTU0VSVChzZXJpYWxpemVkUGFyYW0pOworCisgICAgVmVjdG9y
PHVpbnQ4X3Q+IGNib3JSZXF1ZXN0KHsgc3RhdGljX2Nhc3Q8dWludDhfdD4oQ3RhcFJlcXVlc3RD
b21tYW5kOjprQXV0aGVudGljYXRvckdldEFzc2VydGlvbikgfSk7CisgICAgY2JvclJlcXVlc3Qu
YXBwZW5kVmVjdG9yKCpzZXJpYWxpemVkUGFyYW0pOworICAgIHJldHVybiBjYm9yUmVxdWVzdDsK
K30KKworVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUVtcHR5QXV0aGVudGljYXRvclJlcXVlc3QoQ3Rh
cFJlcXVlc3RDb21tYW5kIGNtZCkKK3sKKyAgICByZXR1cm4geyBzdGF0aWNfY2FzdDx1aW50OF90
PihjbWQpIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKworI2VuZGlmIC8vIEVOQUJMRShX
RUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWNjM2ZmNjJi
OTUyNDlmNDg3YjIyY2U4NGFjNDE3OWY0YzMxODZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaApA
QCAtMCwwICsxLDYyIEBACisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisv
LyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
Ly8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8g
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUg
IkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgiCisjaW5jbHVkZSAiRmlkb0NvbnN0YW50
cy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0
cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOworc3RydWN0IFB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKK30KKworbmFtZXNwYWNlIGZpZG8geworCisvLyBT
ZXJpYWxpemVzIE1ha2VDcmVkZW50aWFsIHJlcXVlc3QgcGFyYW1ldGVyIGludG8gQ0JPUiBlbmNv
ZGVkIG1hcCB3aXRoCisvLyBpbnRlZ2VyIGtleXMgYW5kIENCT1IgZW5jb2RlZCB2YWx1ZXMgYXMg
ZGVmaW5lZCBieSB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3Nw
ZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXBy
b3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRpYWwK
K1dFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVl
c3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwgQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkpOworCisvLyBTZXJpYWxpemVzIEdl
dEFzc2VydGlvbiByZXF1ZXN0IHBhcmFtZXRlciBpbnRvIENCT1IgZW5jb2RlZCBtYXAgd2l0aAor
Ly8gaW50ZWdlciBrZXlzIGFuZCBDQk9SIGVuY29kZWQgdmFsdWVzIGFzIGRlZmluZWQgYnkgdGhl
IENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAt
cHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBz
LTIwMTcwOTI3Lmh0bWwjYXV0aGVudGljYXRvckdldEFzc2VydGlvbgorV0VCQ09SRV9FWFBPUlQg
VmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnMmLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNh
dGlvbkF2YWlsYWJpbGl0eSk7CisKKy8vIFJlcHJlc2VudHMgQ1RBUCByZXF1ZXN0cyB3aXRoIGVt
cHR5IHBhcmFtZXRlcnMsIGluY2x1ZGluZworLy8gQXV0aGVudGljYXRvckdldEluZm8sIEF1dGhl
bnRpY2F0b3JDYW5jZWwsIEF1dGhlbnRpY2F0b3JSZXNldCBhbmQKKy8vIEF1dGhlbnRpY2F0b3JH
ZXROZXh0QXNzZXJ0aW9uIGNvbW1hbmRzLgorV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHVpbnQ4X3Q+
IGVuY29kZUVtcHR5QXV0aGVudGljYXRvclJlcXVlc3QoQ3RhcFJlcXVlc3RDb21tYW5kKTsKKwor
fSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25z
ZUNvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2
aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmNmE5NTliODNkM2UwMDFlOTQ4
ZTI0MDEwODNhNTI3MzEzZWY3ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCkBAIC0wLDAg
KzEsMzEyIEBACisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6
CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisv
LyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8v
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5o
IgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zLmgiCisjaW5jbHVkZSAiQ0JPUlJlYWRlci5oIgorI2luY2x1ZGUgIkNCT1JX
cml0ZXIuaCIKKyNpbmNsdWRlIDx3dGYvU3RkU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgorCituYW1lc3BhY2UgZmlkbyB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIENC
T1IgPSBjYm9yOjpDQk9SVmFsdWU7CisKK2NvbnN0ZXhwciBzaXplX3Qga1Jlc3BvbnNlQ29kZUxl
bmd0aCA9IDE7CisKK3N0YXRpYyBQcm90b2NvbFZlcnNpb24gY29udmVydFN0cmluZ1RvUHJvdG9j
b2xWZXJzaW9uKGNvbnN0IFN0cmluZyYgdmVyc2lvbikKK3sKKyAgICBpZiAodmVyc2lvbiA9PSBr
Q3RhcDJWZXJzaW9uKQorICAgICAgICByZXR1cm4gUHJvdG9jb2xWZXJzaW9uOjprQ3RhcDsKKyAg
ICBpZiAodmVyc2lvbiA9PSBrVTJmVmVyc2lvbikKKyAgICAgICAgcmV0dXJuIFByb3RvY29sVmVy
c2lvbjo6a1UyZjsKKworICAgIHJldHVybiBQcm90b2NvbFZlcnNpb246OmtVbmtub3duOworfQor
CitDdGFwRGV2aWNlUmVzcG9uc2VDb2RlIGdldFJlc3BvbnNlQ29kZShjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIGJ1ZmZlcikKK3sKKyAgICBpZiAoYnVmZmVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRDQk9SOworCisgICAg
YXV0byBjb2RlID0gc3RhdGljX2Nhc3Q8Q3RhcERldmljZVJlc3BvbnNlQ29kZT4oYnVmZmVyWzBd
KTsKKyAgICByZXR1cm4gaXNDdGFwRGV2aWNlUmVzcG9uc2VDb2RlKGNvZGUpID8gY29kZSA6IEN0
YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRDQk9SOworfQorCitzdGF0aWMg
VmVjdG9yPHVpbnQ4X3Q+IGdldENyZWRlbnRpYWxJZChjb25zdCBWZWN0b3I8dWludDhfdD4mIGF1
dGhlbnRpY2F0b3JEYXRhKQoreworICAgIGNvbnN0IHNpemVfdCBjcmVkZW50aWFsSWRMZW5ndGhP
ZmZzZXQgPSBrUnBJZEhhc2hMZW5ndGggKyBrRmxhZ3NMZW5ndGggKyBrU2lnbkNvdW50ZXJMZW5n
dGggKyBrQWFndWlkTGVuZ3RoOworCisgICAgaWYgKGF1dGhlbnRpY2F0b3JEYXRhLnNpemUoKSA8
IGNyZWRlbnRpYWxJZExlbmd0aE9mZnNldCArIGtDcmVkZW50aWFsSWRMZW5ndGhMZW5ndGgpCisg
ICAgICAgIHJldHVybiB7IH07CisgICAgc2l6ZV90IGNyZWRlbnRpYWxJZExlbmd0aCA9IChzdGF0
aWNfY2FzdDxzaXplX3Q+KGF1dGhlbnRpY2F0b3JEYXRhW2NyZWRlbnRpYWxJZExlbmd0aE9mZnNl
dF0pIDw8IDgpIHwgc3RhdGljX2Nhc3Q8c2l6ZV90PihhdXRoZW50aWNhdG9yRGF0YVtjcmVkZW50
aWFsSWRMZW5ndGhPZmZzZXQgKyAxXSk7CisKKyAgICBpZiAoYXV0aGVudGljYXRvckRhdGEuc2l6
ZSgpIDwgY3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0ICsga0NyZWRlbnRpYWxJZExlbmd0aExlbmd0
aCArIGNyZWRlbnRpYWxJZExlbmd0aCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBWZWN0b3I8
dWludDhfdD4gY3JlZGVudGlhbElkOworICAgIGNyZWRlbnRpYWxJZC5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KGNyZWRlbnRpYWxJZExlbmd0aCk7CisgICAgYXV0byBiZWdpbkl0ID0gYXV0aGVudGlj
YXRvckRhdGEuYmVnaW4oKSArIGNyZWRlbnRpYWxJZExlbmd0aE9mZnNldCArIGtDcmVkZW50aWFs
SWRMZW5ndGhMZW5ndGg7CisgICAgY3JlZGVudGlhbElkLmFwcGVuZFJhbmdlKGJlZ2luSXQsIGJl
Z2luSXQgKyBjcmVkZW50aWFsSWRMZW5ndGgpOworICAgIHJldHVybiBjcmVkZW50aWFsSWQ7Cit9
CisKKworLy8gRGVjb2RlcyBieXRlIGFycmF5IHJlc3BvbnNlIGZyb20gYXV0aGVudGljYXRvciB0
byBDQk9SIHZhbHVlIG9iamVjdCBhbmQKKy8vIGNoZWNrcyBmb3IgY29ycmVjdCBlbmNvZGluZyBm
b3JtYXQuCitzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhPiByZWFkQ1RBUE1h
a2VDcmVkZW50aWFsUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpbkJ1ZmZlcikKK3sK
KyAgICBpZiAoaW5CdWZmZXIuc2l6ZSgpIDw9IGtSZXNwb25zZUNvZGVMZW5ndGgpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8dWludDhfdD4gYnVmZmVyOworICAg
IGJ1ZmZlci5hcHBlbmQoaW5CdWZmZXIuZGF0YSgpICsgMSwgaW5CdWZmZXIuc2l6ZSgpIC0gMSk7
CisgICAgc3RkOjpvcHRpb25hbDxDQk9SPiBkZWNvZGVkUmVzcG9uc2UgPSBjYm9yOjpDQk9SUmVh
ZGVyOjpyZWFkKGJ1ZmZlcik7CisgICAgaWYgKCFkZWNvZGVkUmVzcG9uc2UgfHwgIWRlY29kZWRS
ZXNwb25zZS0+aXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBjb25z
dCBhdXRvJiBkZWNvZGVkTWFwID0gZGVjb2RlZFJlc3BvbnNlLT5nZXRNYXAoKTsKKworICAgIGF1
dG8gaXQgPSBkZWNvZGVkTWFwLmZpbmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ID09IGRlY29kZWRN
YXAuZW5kKCkgfHwgIWl0LT5zZWNvbmQuaXNTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICBhdXRvIGZvcm1hdCA9IGl0LT5zZWNvbmQuY2xvbmUoKTsKKworICAgIGl0
ID0gZGVjb2RlZE1hcC5maW5kKENCT1IoMikpOworICAgIGlmIChpdCA9PSBkZWNvZGVkTWFwLmVu
ZCgpIHx8ICFpdC0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworICAgIGF1dG8gYXV0aGVudGljYXRvckRhdGEgPSBpdC0+c2Vjb25kLmNsb25lKCk7
CisKKyAgICBhdXRvIGNyZWRlbnRpYWxJZCA9IGdldENyZWRlbnRpYWxJZChhdXRoZW50aWNhdG9y
RGF0YS5nZXRCeXRlU3RyaW5nKCkpOworICAgIGlmIChjcmVkZW50aWFsSWQuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgaXQgPSBkZWNvZGVkTWFwLmZpbmQo
Q0JPUigzKSk7CisgICAgaWYgKGl0ID09IGRlY29kZWRNYXAuZW5kKCkgfHwgIWl0LT5zZWNvbmQu
aXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBhdXRvIGF0dFN0bXQg
PSBpdC0+c2Vjb25kLmNsb25lKCk7CisKKyAgICBDQk9SOjpNYXBWYWx1ZSBhdHRlc3RhdGlvbk9i
amVjdE1hcDsKKyAgICBhdHRlc3RhdGlvbk9iamVjdE1hcFtDQk9SKCJhdXRoRGF0YSIpXSA9IFdU
Rk1vdmUoYXV0aGVudGljYXRvckRhdGEpOworICAgIGF0dGVzdGF0aW9uT2JqZWN0TWFwW0NCT1Io
ImZtdCIpXSA9IFdURk1vdmUoZm9ybWF0KTsKKyAgICBhdHRlc3RhdGlvbk9iamVjdE1hcFtDQk9S
KCJhdHRTdG10IildID0gV1RGTW92ZShhdHRTdG10KTsKKyAgICBhdXRvIGF0dGVzdGF0aW9uT2Jq
ZWN0ID0gY2Jvcjo6Q0JPUldyaXRlcjo6d3JpdGUoQ0JPUihXVEZNb3ZlKGF0dGVzdGF0aW9uT2Jq
ZWN0TWFwKSkpOworCisgICAgcmV0dXJuIFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgQXJyYXlC
dWZmZXI6OmNyZWF0ZShjcmVkZW50aWFsSWQuZGF0YSgpLCBjcmVkZW50aWFsSWQuc2l6ZSgpKSwg
dHJ1ZSwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdHRlc3RhdGlvbk9iamVjdC52YWx1
ZSgpLmRhdGEoKSwgYXR0ZXN0YXRpb25PYmplY3QudmFsdWUoKS5zaXplKCkpLCBudWxscHRyLCBu
dWxscHRyLCBudWxscHRyIH07Cit9CisKK3N0ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlh
bERhdGE+IHJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiBpbkJ1ZmZlcikKK3sKKyAgICBpZiAoaW5CdWZmZXIuc2l6ZSgpIDw9IGtSZXNwb25zZUNvZGVM
ZW5ndGgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8dWludDhf
dD4gYnVmZmVyOworICAgIGJ1ZmZlci5hcHBlbmQoaW5CdWZmZXIuZGF0YSgpICsgMSwgaW5CdWZm
ZXIuc2l6ZSgpIC0gMSk7CisgICAgc3RkOjpvcHRpb25hbDxDQk9SPiBkZWNvZGVkUmVzcG9uc2Ug
PSBjYm9yOjpDQk9SUmVhZGVyOjpyZWFkKGJ1ZmZlcik7CisKKyAgICBpZiAoIWRlY29kZWRSZXNw
b25zZSB8fCAhZGVjb2RlZFJlc3BvbnNlLT5pc01hcCgpKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgYXV0byYgcmVzcG9uc2VNYXAgPSBkZWNvZGVkUmVzcG9uc2UtPmdldE1h
cCgpOworCisgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVkZW50aWFsSWQ7CisgICAgYXV0byBp
dCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFw
LmVuZCgpICYmIGl0LT5zZWNvbmQuaXNNYXAoKSkgeworICAgICAgICBhdXRvJiBjcmVkZW50aWFs
ID0gaXQtPnNlY29uZC5nZXRNYXAoKTsKKyAgICAgICAgYXV0byBpdHIgPSBjcmVkZW50aWFsLmZp
bmQoQ0JPUihrQ3JlZGVudGlhbElkS2V5KSk7CisgICAgICAgIGlmIChpdHIgPT0gY3JlZGVudGlh
bC5lbmQoKSB8fCAhaXRyLT5zZWNvbmQuaXNCeXRlU3RyaW5nKCkpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworICAgICAgICBhdXRvJiBpZCA9IGl0ci0+c2Vjb25kLmdldEJ5dGVT
dHJpbmcoKTsKKyAgICAgICAgY3JlZGVudGlhbElkID0gQXJyYXlCdWZmZXI6OmNyZWF0ZShpZC5k
YXRhKCksIGlkLnNpemUoKSk7CisgICAgfQorCisgICAgaXQgPSByZXNwb25zZU1hcC5maW5kKENC
T1IoMikpOworICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5lbmQoKSB8fCAhaXQtPnNlY29uZC5p
c0J5dGVTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBhdXRvJiBh
dXRoRGF0YSA9IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOworCisgICAgaXQgPSByZXNwb25z
ZU1hcC5maW5kKENCT1IoMykpOworICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5lbmQoKSB8fCAh
aXQtPnNlY29uZC5pc0J5dGVTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICBhdXRvJiBzaWduYXR1cmUgPSBpdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKTsKKworICAg
IFJlZlB0cjxBcnJheUJ1ZmZlcj4gdXNlckhhbmRsZTsKKyAgICB7CisgICAgICAgIGl0ID0gcmVz
cG9uc2VNYXAuZmluZChDQk9SKDQpKTsKKyAgICAgICAgaWYgKGl0ID09IHJlc3BvbnNlTWFwLmVu
ZCgpIHx8ICFpdC0+c2Vjb25kLmlzTWFwKCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgICAgICBhdXRvJiB1c2VyID0gaXQtPnNlY29uZC5nZXRNYXAoKTsKKyAgICAgICAg
YXV0byBpdHIgPSB1c2VyLmZpbmQoQ0JPUihrRW50aXR5SWRNYXBLZXkpKTsKKyAgICAgICAgaWYg
KGl0ciA9PSB1c2VyLmVuZCgpIHx8ICFpdHItPnNlY29uZC5pc0J5dGVTdHJpbmcoKSkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGF1dG8mIGlkID0gaXRyLT5zZWNv
bmQuZ2V0Qnl0ZVN0cmluZygpOworICAgICAgICB1c2VySGFuZGxlID0gQXJyYXlCdWZmZXI6OmNy
ZWF0ZShpZC5kYXRhKCksIGlkLnNpemUoKSk7CisgICAgfQorCisgICAgcmV0dXJuIFB1YmxpY0tl
eUNyZWRlbnRpYWxEYXRhIHsgV1RGTW92ZShjcmVkZW50aWFsSWQpLCBmYWxzZSwgbnVsbHB0ciwg
bnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdXRoRGF0YS5kYXRhKCksIGF1dGhEYXRhLnNp
emUoKSksIEFycmF5QnVmZmVyOjpjcmVhdGUoc2lnbmF0dXJlLmRhdGEoKSwgc2lnbmF0dXJlLnNp
emUoKSksIFdURk1vdmUodXNlckhhbmRsZSkgfTsKK30KKworc3RkOjpvcHRpb25hbDxBdXRoZW50
aWNhdG9yR2V0SW5mb1Jlc3BvbnNlPiByZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb25zdCBWZWN0
b3I8dWludDhfdD4mIGluQnVmZmVyKQoreworICAgIGlmIChpbkJ1ZmZlci5zaXplKCkgPD0ga1Jl
c3BvbnNlQ29kZUxlbmd0aCB8fCBnZXRSZXNwb25zZUNvZGUoaW5CdWZmZXIpICE9IEN0YXBEZXZp
Y2VSZXNwb25zZUNvZGU6OmtTdWNjZXNzKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKKyAgICBidWZmZXIuYXBwZW5kKGluQnVmZmVy
LmRhdGEoKSArIDEsIGluQnVmZmVyLnNpemUoKSAtIDEpOworICAgIHN0ZDo6b3B0aW9uYWw8Q0JP
Uj4gZGVjb2RlZFJlc3BvbnNlID0gY2Jvcjo6Q0JPUlJlYWRlcjo6cmVhZChidWZmZXIpOworICAg
IGlmICghZGVjb2RlZFJlc3BvbnNlIHx8ICFkZWNvZGVkUmVzcG9uc2UtPmlzTWFwKCkpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgY29uc3QgYXV0byYgcmVzcG9uc2VNYXAgPSBk
ZWNvZGVkUmVzcG9uc2UtPmdldE1hcCgpOworCisgICAgYXV0byBpdCA9IHJlc3BvbnNlTWFwLmZp
bmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ID09IHJlc3BvbnNlTWFwLmVuZCgpIHx8ICFpdC0+c2Vj
b25kLmlzQXJyYXkoKSB8fCBpdC0+c2Vjb25kLmdldEFycmF5KCkuc2l6ZSgpID4gMikKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBTdGRTZXQ8UHJvdG9jb2xWZXJzaW9uPiBwcm90
b2NvbFZlcnNpb25zOworICAgIGZvciAoY29uc3QgYXV0byYgdmVyc2lvbiA6IGl0LT5zZWNvbmQu
Z2V0QXJyYXkoKSkgeworICAgICAgICBpZiAoIXZlcnNpb24uaXNTdHJpbmcoKSkKKyAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgYXV0byBwcm90b2NvbCA9IGNvbnZl
cnRTdHJpbmdUb1Byb3RvY29sVmVyc2lvbih2ZXJzaW9uLmdldFN0cmluZygpKTsKKyAgICAgICAg
aWYgKHByb3RvY29sID09IFByb3RvY29sVmVyc2lvbjo6a1Vua25vd24pIHsKKyAgICAgICAgICAg
IExPR19FUlJPUigiVW5leHBlY3RlZCBwcm90b2NvbCB2ZXJzaW9uIHJlY2VpdmVkLiIpOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXByb3RvY29sVmVy
c2lvbnMuaW5zZXJ0KHByb3RvY29sKS5zZWNvbmQpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworICAgIH0KKyAgICBpZiAocHJvdG9jb2xWZXJzaW9ucy5lbXB0eSgpKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgaXQgPSByZXNwb25zZU1hcC5maW5kKENCT1Io
MykpOworICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5lbmQoKSB8fCAhaXQtPnNlY29uZC5pc0J5
dGVTdHJpbmcoKSB8fCBpdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKS5zaXplKCkgIT0ga0FhZ3Vp
ZExlbmd0aCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIEF1dGhlbnRpY2F0
b3JHZXRJbmZvUmVzcG9uc2UgcmVzcG9uc2UoV1RGTW92ZShwcm90b2NvbFZlcnNpb25zKSwgVmVj
dG9yPHVpbnQ4X3Q+KGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpKSk7CisKKyAgICBpdCA9IHJl
c3BvbnNlTWFwLmZpbmQoQ0JPUigyKSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFwLmVuZCgp
KSB7CisgICAgICAgIGlmICghaXQtPnNlY29uZC5pc0FycmF5KCkpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGV4dGVuc2lvbnM7Cisg
ICAgICAgIGZvciAoY29uc3QgYXV0byYgZXh0ZW5zaW9uIDogaXQtPnNlY29uZC5nZXRBcnJheSgp
KSB7CisgICAgICAgICAgICBpZiAoIWV4dGVuc2lvbi5pc1N0cmluZygpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIGV4dGVuc2lvbnMuYXBwZW5k
KGV4dGVuc2lvbi5nZXRTdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmVzcG9uc2Uuc2V0
RXh0ZW5zaW9ucyhXVEZNb3ZlKGV4dGVuc2lvbnMpKTsKKyAgICB9CisKKyAgICBBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9ucyBvcHRpb25zOworICAgIGl0ID0gcmVzcG9uc2VNYXAuZmluZChD
Qk9SKDQpKTsKKyAgICBpZiAoaXQgIT0gcmVzcG9uc2VNYXAuZW5kKCkpIHsKKyAgICAgICAgaWYg
KCFpdC0+c2Vjb25kLmlzTWFwKCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgICAgICBjb25zdCBhdXRvJiBvcHRpb25NYXAgPSBpdC0+c2Vjb25kLmdldE1hcCgpOworICAg
ICAgICBhdXRvIG9wdGlvbk1hcEl0ID0gb3B0aW9uTWFwLmZpbmQoQ0JPUihrUGxhdGZvcm1EZXZp
Y2VNYXBLZXkpKTsKKyAgICAgICAgaWYgKG9wdGlvbk1hcEl0ICE9IG9wdGlvbk1hcC5lbmQoKSkg
eworICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJdC0+c2Vjb25kLmlzQm9vbCgpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIG9wdGlvbnMuc2V0
SXNQbGF0Zm9ybURldmljZShvcHRpb25NYXBJdC0+c2Vjb25kLmdldEJvb2woKSk7CisgICAgICAg
IH0KKworICAgICAgICBvcHRpb25NYXBJdCA9IG9wdGlvbk1hcC5maW5kKENCT1Ioa1Jlc2lkZW50
S2V5TWFwS2V5KSk7CisgICAgICAgIGlmIChvcHRpb25NYXBJdCAhPSBvcHRpb25NYXAuZW5kKCkp
IHsKKyAgICAgICAgICAgIGlmICghb3B0aW9uTWFwSXQtPnNlY29uZC5pc0Jvb2woKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgICAgICBvcHRpb25zLnNl
dFN1cHBvcnRzUmVzaWRlbnRLZXkob3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29sKCkpOworICAg
ICAgICB9CisKKyAgICAgICAgb3B0aW9uTWFwSXQgPSBvcHRpb25NYXAuZmluZChDQk9SKGtVc2Vy
UHJlc2VuY2VNYXBLZXkpKTsKKyAgICAgICAgaWYgKG9wdGlvbk1hcEl0ICE9IG9wdGlvbk1hcC5l
bmQoKSkgeworICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJdC0+c2Vjb25kLmlzQm9vbCgpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIG9wdGlv
bnMuc2V0VXNlclByZXNlbmNlUmVxdWlyZWQob3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29sKCkp
OworICAgICAgICB9CisKKyAgICAgICAgb3B0aW9uTWFwSXQgPSBvcHRpb25NYXAuZmluZChDQk9S
KGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5KSk7CisgICAgICAgIGlmIChvcHRpb25NYXBJdCAhPSBv
cHRpb25NYXAuZW5kKCkpIHsKKyAgICAgICAgICAgIGlmICghb3B0aW9uTWFwSXQtPnNlY29uZC5p
c0Jvb2woKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAg
ICAgICBpZiAob3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29sKCkpCisgICAgICAgICAgICAgICAg
b3B0aW9ucy5zZXRVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5k
Q29uZmlndXJlZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3B0aW9ucy5z
ZXRVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0Tm90Q29uZmln
dXJlZCk7CisgICAgICAgIH0KKworICAgICAgICBvcHRpb25NYXBJdCA9IG9wdGlvbk1hcC5maW5k
KENCT1Ioa0NsaWVudFBpbk1hcEtleSkpOworICAgICAgICBpZiAob3B0aW9uTWFwSXQgIT0gb3B0
aW9uTWFwLmVuZCgpKSB7CisgICAgICAgICAgICBpZiAoIW9wdGlvbk1hcEl0LT5zZWNvbmQuaXNC
b29sKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICAg
ICAgaWYgKG9wdGlvbk1hcEl0LT5zZWNvbmQuZ2V0Qm9vbCgpKQorICAgICAgICAgICAgICAgIG9w
dGlvbnMuc2V0Q2xpZW50UGluQXZhaWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRQaW5TZXQpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG9wdGlvbnMuc2V0Q2xpZW50UGluQXZhaWxhYmls
aXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk6
OmtTdXBwb3J0ZWRCdXRQaW5Ob3RTZXQpOworICAgICAgICB9CisgICAgICAgIHJlc3BvbnNlLnNl
dE9wdGlvbnMoV1RGTW92ZShvcHRpb25zKSk7CisgICAgfQorCisgICAgaXQgPSByZXNwb25zZU1h
cC5maW5kKENCT1IoNSkpOworICAgIGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSkgeworICAg
ICAgICBpZiAoIWl0LT5zZWNvbmQuaXNVbnNpZ25lZCgpKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICByZXNwb25zZS5zZXRNYXhNc2dTaXplKGl0LT5zZWNvbmQu
Z2V0VW5zaWduZWQoKSk7CisgICAgfQorCisgICAgaXQgPSByZXNwb25zZU1hcC5maW5kKENCT1Io
NikpOworICAgIGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSkgeworICAgICAgICBpZiAoIWl0
LT5zZWNvbmQuaXNBcnJheSgpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgICAgICBWZWN0b3I8dWludDhfdD4gc3VwcG9ydGVkUGluUHJvdG9jb2xzOworICAgICAgICBm
b3IgKGNvbnN0IGF1dG8mIHByb3RvY29sIDogaXQtPnNlY29uZC5nZXRBcnJheSgpKSB7CisgICAg
ICAgICAgICBpZiAoIXByb3RvY29sLmlzVW5zaWduZWQoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgICAgICBzdXBwb3J0ZWRQaW5Qcm90b2NvbHMuYXBw
ZW5kKHByb3RvY29sLmdldFVuc2lnbmVkKCkpOworICAgICAgICB9CisgICAgICAgIHJlc3BvbnNl
LnNldFBpblByb3RvY29scyhXVEZNb3ZlKHN1cHBvcnRlZFBpblByb3RvY29scykpOworICAgIH0K
KworICAgIHJldHVybiBXVEZNb3ZlKHJlc3BvbnNlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgZmlk
bworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODE5NjMzNTQ1Y2RlMjVjMGRiZGM0YzYzZGE1ZjFiMTY2ZTIzNzQ5Mwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9E
ZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oCkBAIC0wLDAgKzEsNjYgQEAKKy8vIENvcHlyaWdodCAy
MDE4IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4K
Ky8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
Ky8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8v
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5o
IgorI2luY2x1ZGUgIkZpZG9Db25zdGFudHMuaCIKKyNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50
aWFsRGF0YS5oIgorCisvLyBDb252ZXJ0cyByZXNwb25zZSBmcm9tIGF1dGhlbnRpY2F0b3JzIHRv
IENUQVBSZXNwb25zZSBvYmplY3RzLiBJZiB0aGUKKy8vIHJlc3BvbnNlIG9mIHRoZSBhdXRoZW50
aWNhdG9yIGRvZXMgbm90IGNvbmZvcm0gdG8gZm9ybWF0IHNwZWNpZmllZCBieSB0aGUKKy8vIENU
QVAgcHJvdG9jb2wsIG51bGwgb3B0aW9uYWwgaXMgcmV0dXJuZWQuCituYW1lc3BhY2UgZmlkbyB7
CisKKy8vIFBhcnNlcyByZXNwb25zZSBjb2RlIGZyb20gcmVzcG9uc2UgcmVjZWl2ZWQgZnJvbSB0
aGUgYXV0aGVudGljYXRvci4gSWYKKy8vIHVua25vd24gcmVzcG9uc2UgY29kZSB2YWx1ZSBpcyBy
ZWNlaXZlZCwgdGhlbiBDVEFQMl9FUlJfT1RIRVIgaXMgcmV0dXJuZWQuCitXRUJDT1JFX0VYUE9S
VCBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlIGdldFJlc3BvbnNlQ29kZShjb25zdCBWZWN0b3I8dWlu
dDhfdD4mKTsKKworLy8gRGUtc2VyaWFsaXplcyBDQk9SIGVuY29kZWQgcmVzcG9uc2UsIGNoZWNr
cyBmb3IgdmFsaWQgQ0JPUiBtYXAgZm9ybWF0dGluZywKKy8vIGFuZCBjb252ZXJ0cyByZXNwb25z
ZSB0byBBdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRpYWxSZXNwb25zZSBvYmplY3Qgd2l0aAorLy8g
Q0JPUiBtYXAga2V5cyB0aGF0IGNvbmZvcm0gdG8gZm9ybWF0IG9mIGF0dGVzdGF0aW9uIG9iamVj
dCBkZWZpbmVkIGJ5IHRoZQorLy8gV2ViQXV0aE4gc3BlYyA6IGh0dHBzOi8vdzNjLmdpdGh1Yi5p
by93ZWJhdXRobi8jZmlnLWF0dFN0cnVjdHMKK1dFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlYWRDVEFQTWFrZUNyZWRlbnRpYWxS
ZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4mKTsKKworLy8gRGUtc2VyaWFsaXplcyBDQk9S
IGVuY29kZWQgcmVzcG9uc2UgdG8gQXV0aGVudGljYXRvckdldEFzc2VydGlvbiAvCisvLyBBdXRo
ZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbiByZXF1ZXN0IHRvIEF1dGhlbnRpY2F0b3JHZXRBc3Nl
cnRpb25SZXNwb25zZQorLy8gb2JqZWN0LgorLy8gRklYTUUoMTkwNzgzKTogUHJvYmFibHkgbmVl
ZCB0byByZW1ha2UgQXV0aGVudGljYXRvclJlc3BvbnNlIHRvIGluY2x1ZGUgbW9yZSBmaWVsZHMg
bGlrZSBudW1iZXJPZkNyZWRlbnRpYWxzLAorLy8gYW5kIHVzZSBpdCBoZXJlIGluc3RlYWQgb2Yg
UHVibGljS2V5Q3JlZGVudGlhbERhdGEuCitXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxEYXRhPiByZWFkQ1RBUEdldEFzc2VydGlvblJlc3Bv
bnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYpOworCisvLyBEZS1zZXJpYWxpemVzIENCT1IgZW5j
b2RlZCByZXNwb25zZSB0byBBdXRoZW50aWNhdG9yR2V0SW5mbyByZXF1ZXN0IHRvCisvLyBBdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlIG9iamVjdC4KK1dFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0
aW9uYWw8QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZT4gcmVhZENUQVBHZXRJbmZvUmVzcG9u
c2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5jcHAKaW5kZXggMzg4MWZkMmYyNjRlOWYw
ZWU0ZGEwMzkyNDJlNWFkMTBkNzA0YTRmMy4uODE3MjVjZWFmMmNlZDI5MTk2Nzg0M2M5NzkxNzhh
ZjZlYzQ0ZTczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9m
aWRvL0ZpZG9Db25zdGFudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcApAQCAtMzMsNiArMzMsNjYgQEAKICNpZiBFTkFCTEUo
V0VCX0FVVEhOKQogCiBuYW1lc3BhY2UgZmlkbyB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworYm9vbCBpc0N0YXBEZXZpY2VSZXNwb25zZUNvZGUoQ3RhcERldmljZVJlc3BvbnNlQ29kZSBj
b2RlKQoreworICAgIHN3aXRjaCAoY29kZSkgeworICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNl
Q29kZTo6a1N1Y2Nlc3M6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDFF
cnJJbnZhbGlkQ29tbWFuZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFw
MUVyckludmFsaWRQYXJhbWV0ZXI6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjpr
Q3RhcDFFcnJJbnZhbGlkTGVuZ3RoOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6
a0N0YXAxRXJySW52YWxpZFNlcToKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtD
dGFwMUVyclRpbWVvdXQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDFF
cnJDaGFubmVsQnVzeToKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMUVy
ckxvY2tSZXF1aXJlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMUVy
ckludmFsaWRDaGFubmVsOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAy
RXJyQ0JPUlBhcnNpbmc6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJF
cnJVbmV4cGVjdGVkVHlwZToKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFw
MkVyckludmFsaWRDQk9SOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAy
RXJySW52YWxpZENCT1JUeXBlOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0
YXAyRXJyTWlzc2luZ1BhcmFtZXRlcjoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6
OmtDdGFwMkVyckxpbWl0RXhjZWVkZWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2Rl
OjprQ3RhcDJFcnJVbnN1cHBvcnRlZEV4dGVuc2lvbjoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNw
b25zZUNvZGU6OmtDdGFwMkVyclRvb01hbnlFbGVtZW50czoKKyAgICBjYXNlIEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMkVyckV4dGVuc2lvbk5vdFN1cHBvcnRlZDoKKyAgICBjYXNlIEN0
YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckNyZWRlbnRpYWxFeGNsdWRlZDoKKyAgICBj
YXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclByb2Nlc3NzaW5nOgorICAgIGNh
c2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJySW52YWxpZENyZWRlbnRpYWw6Cisg
ICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJVc2VyQWN0aW9uUGVuZGlu
ZzoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyck9wZXJhdGlvblBl
bmRpbmc6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJOb09wZXJh
dGlvbnM6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJVbnN1cHBv
cnRlZEFsZ29yaXRobXM6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJF
cnJPcGVyYXRpb25EZW5pZWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3Rh
cDJFcnJLZXlTdG9yZUZ1bGw6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3Rh
cDJFcnJOb3RCdXN5OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJy
Tm9PcGVyYXRpb25QZW5kaW5nOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0
YXAyRXJyVW5zdXBwb3J0ZWRPcHRpb246CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2Rl
OjprQ3RhcDJFcnJJbnZhbGlkT3B0aW9uOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29k
ZTo6a0N0YXAyRXJyS2VlcEFsaXZlQ2FuY2VsOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNl
Q29kZTo6a0N0YXAyRXJyTm9DcmVkZW50aWFsczoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25z
ZUNvZGU6OmtDdGFwMkVyclVzZXJBY3Rpb25UaW1lb3V0OgorICAgIGNhc2UgQ3RhcERldmljZVJl
c3BvbnNlQ29kZTo6a0N0YXAyRXJyTm90QWxsb3dlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNw
b25zZUNvZGU6OmtDdGFwMkVyclBpbkludmFsaWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9u
c2VDb2RlOjprQ3RhcDJFcnJQaW5CbG9ja2VkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNl
Q29kZTo6a0N0YXAyRXJyUGluQXV0aEludmFsaWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9u
c2VDb2RlOjprQ3RhcDJFcnJQaW5BdXRoQmxvY2tlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNw
b25zZUNvZGU6OmtDdGFwMkVyclBpbk5vdFNldDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25z
ZUNvZGU6OmtDdGFwMkVyclBpblJlcXVpcmVkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNl
Q29kZTo6a0N0YXAyRXJyUGluUG9saWN5VmlvbGF0aW9uOgorICAgIGNhc2UgQ3RhcERldmljZVJl
c3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluVG9rZW5FeHBpcmVkOgorICAgIGNhc2UgQ3RhcERldmlj
ZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUmVxdWVzdFRvb0xhcmdlOgorICAgIGNhc2UgQ3RhcERl
dmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyT3RoZXI6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDJFcnJTcGVjTGFzdDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25z
ZUNvZGU6OmtDdGFwMkVyckV4dGVuc2lvbkZpcnN0OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a0N0YXAyRXJyRXh0ZW5zaW9uTGFzdDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNw
b25zZUNvZGU6OmtDdGFwMkVyclZlbmRvckZpcnN0OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a0N0YXAyRXJyVmVuZG9yTGFzdDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KIAogYm9vbCBpc0ZpZG9I
aWREZXZpY2VDb21tYW5kKEZpZG9IaWREZXZpY2VDb21tYW5kIGNtZCkKIHsKQEAgLTUyLDYgKzEx
MiwxNiBAQCBib29sIGlzRmlkb0hpZERldmljZUNvbW1hbmQoRmlkb0hpZERldmljZUNvbW1hbmQg
Y21kKQogICAgIH0KIH0KIAorY29uc3QgY2hhciogcHVibGljS2V5Q3JlZGVudGlhbFR5cGVUb1N0
cmluZyhQdWJsaWNLZXlDcmVkZW50aWFsVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkg
eworICAgIGNhc2UgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleToKKyAgICAgICAg
cmV0dXJuIGtQdWJsaWNLZXk7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBrUHVibGljS2V5OworfQorCiB9IC8vIG5hbWVzcGFjZSBmaWRvCiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmgKaW5kZXggYjg2OTBmMDNkZDQ4NGRmZDM2NzU2NzUw
ZTA1NmEyNzVjNmRkM2U1Ni4uNWNkN2FlOGIzOTEzNTE0MDE0N2ZjMDY5NzkzNjM4MGY0OTAwYmE3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9D
b25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlk
b0NvbnN0YW50cy5oCkBAIC0zMSw4ICszMSw5MyBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVVRITikK
IAorI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmgiCisKIG5hbWVzcGFjZSBmaWRv
IHsKIAorZW51bSBjbGFzcyBQcm90b2NvbFZlcnNpb24geworICAgIGtDdGFwLAorICAgIGtVMmYs
CisgICAga1Vua25vd24sCit9OworCisvLyBMZW5ndGggb2YgdGhlIFNIQS0yNTYgaGFzaCBvZiB0
aGUgUlAgSUQgYXNzc29jaWF0ZWQgd2l0aCB0aGUgY3JlZGVudGlhbDoKKy8vIGh0dHBzOi8vd3d3
LnczLm9yZy9UUi93ZWJhdXRobi8jc2VjLWF1dGhlbnRpY2F0b3ItZGF0YQorY29uc3RleHByIHNp
emVfdCBrUnBJZEhhc2hMZW5ndGggPSAzMjsKKworLy8gTGVuZ3RoIG9mIHRoZSBmbGFnczoKKy8v
IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jc2VjLWF1dGhlbnRpY2F0b3ItZGF0YQor
Y29uc3RleHByIHNpemVfdCBrRmxhZ3NMZW5ndGggPSAxOworCisvLyBMZW5ndGggb2YgdGhlIHNp
Z25hdHVyZSBjb3VudGVyLCAzMi1iaXQgdW5zaWduZWQgYmlnLWVuZGlhbiBpbnRlZ2VyOgorLy8g
aHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXV0aGVudGljYXRvci1kYXRhCitj
b25zdGV4cHIgc2l6ZV90IGtTaWduQ291bnRlckxlbmd0aCA9IDQ7CisKKy8vIExlbmd0aCBvZiB0
aGUgQUFHVUlEIG9mIHRoZSBhdXRoZW50aWNhdG9yOgorLy8gaHR0cHM6Ly93d3cudzMub3JnL1RS
L3dlYmF1dGhuLyNzZWMtYXR0ZXN0ZWQtY3JlZGVudGlhbC1kYXRhCitjb25zdGV4cHIgc2l6ZV90
IGtBYWd1aWRMZW5ndGggPSAxNjsKKworLy8gTGVuZ3RoIG9mIHRoZSBieXRlIGxlbmd0aCBMIG9m
IENyZWRlbnRpYWwgSUQsIDE2LWJpdCB1bnNpZ25lZCBiaWctZW5kaWFuCisvLyBpbnRlZ2VyOiBo
dHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI3NlYy1hdHRlc3RlZC1jcmVkZW50aWFsLWRh
dGEKK2NvbnN0ZXhwciBzaXplX3Qga0NyZWRlbnRpYWxJZExlbmd0aExlbmd0aCA9IDI7CisKKy8v
IENUQVAgcHJvdG9jb2wgZGV2aWNlIHJlc3BvbnNlIGNvZGUsIGFzIHNwZWNpZmllZCBpbgorLy8g
aHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRv
LWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNl
cnJvci1yZXNwb25zZXMKK2VudW0gY2xhc3MgQ3RhcERldmljZVJlc3BvbnNlQ29kZSA6IHVpbnQ4
X3QgeworICAgIGtTdWNjZXNzID0gMHgwMCwKKyAgICBrQ3RhcDFFcnJJbnZhbGlkQ29tbWFuZCA9
IDB4MDEsCisgICAga0N0YXAxRXJySW52YWxpZFBhcmFtZXRlciA9IDB4MDIsCisgICAga0N0YXAx
RXJySW52YWxpZExlbmd0aCA9IDB4MDMsCisgICAga0N0YXAxRXJySW52YWxpZFNlcSA9IDB4MDQs
CisgICAga0N0YXAxRXJyVGltZW91dCA9IDB4MDUsCisgICAga0N0YXAxRXJyQ2hhbm5lbEJ1c3kg
PSAweDA2LAorICAgIGtDdGFwMUVyckxvY2tSZXF1aXJlZCA9IDB4MEEsCisgICAga0N0YXAxRXJy
SW52YWxpZENoYW5uZWwgPSAweDBCLAorICAgIGtDdGFwMkVyckNCT1JQYXJzaW5nID0gMHgxMCwK
KyAgICBrQ3RhcDJFcnJVbmV4cGVjdGVkVHlwZSA9IDB4MTEsCisgICAga0N0YXAyRXJySW52YWxp
ZENCT1IgPSAweDEyLAorICAgIGtDdGFwMkVyckludmFsaWRDQk9SVHlwZSA9IDB4MTMsCisgICAg
a0N0YXAyRXJyTWlzc2luZ1BhcmFtZXRlciA9IDB4MTQsCisgICAga0N0YXAyRXJyTGltaXRFeGNl
ZWRlZCA9IDB4MTUsCisgICAga0N0YXAyRXJyVW5zdXBwb3J0ZWRFeHRlbnNpb24gPSAweDE2LAor
ICAgIGtDdGFwMkVyclRvb01hbnlFbGVtZW50cyA9IDB4MTcsCisgICAga0N0YXAyRXJyRXh0ZW5z
aW9uTm90U3VwcG9ydGVkID0gMHgxOCwKKyAgICBrQ3RhcDJFcnJDcmVkZW50aWFsRXhjbHVkZWQg
PSAweDE5LAorICAgIGtDdGFwMkVyclByb2Nlc3NzaW5nID0gMHgyMSwKKyAgICBrQ3RhcDJFcnJJ
bnZhbGlkQ3JlZGVudGlhbCA9IDB4MjIsCisgICAga0N0YXAyRXJyVXNlckFjdGlvblBlbmRpbmcg
PSAweDIzLAorICAgIGtDdGFwMkVyck9wZXJhdGlvblBlbmRpbmcgPSAweDI0LAorICAgIGtDdGFw
MkVyck5vT3BlcmF0aW9ucyA9IDB4MjUsCisgICAga0N0YXAyRXJyVW5zdXBwb3J0ZWRBbGdvcml0
aG1zID0gMHgyNiwKKyAgICBrQ3RhcDJFcnJPcGVyYXRpb25EZW5pZWQgPSAweDI3LAorICAgIGtD
dGFwMkVycktleVN0b3JlRnVsbCA9IDB4MjgsCisgICAga0N0YXAyRXJyTm90QnVzeSA9IDB4Mjks
CisgICAga0N0YXAyRXJyTm9PcGVyYXRpb25QZW5kaW5nID0gMHgyQSwKKyAgICBrQ3RhcDJFcnJV
bnN1cHBvcnRlZE9wdGlvbiA9IDB4MkIsCisgICAga0N0YXAyRXJySW52YWxpZE9wdGlvbiA9IDB4
MkMsCisgICAga0N0YXAyRXJyS2VlcEFsaXZlQ2FuY2VsID0gMHgyRCwKKyAgICBrQ3RhcDJFcnJO
b0NyZWRlbnRpYWxzID0gMHgyRSwKKyAgICBrQ3RhcDJFcnJVc2VyQWN0aW9uVGltZW91dCA9IDB4
MkYsCisgICAga0N0YXAyRXJyTm90QWxsb3dlZCA9IDB4MzAsCisgICAga0N0YXAyRXJyUGluSW52
YWxpZCA9IDB4MzEsCisgICAga0N0YXAyRXJyUGluQmxvY2tlZCA9IDB4MzIsCisgICAga0N0YXAy
RXJyUGluQXV0aEludmFsaWQgPSAweDMzLAorICAgIGtDdGFwMkVyclBpbkF1dGhCbG9ja2VkID0g
MHgzNCwKKyAgICBrQ3RhcDJFcnJQaW5Ob3RTZXQgPSAweDM1LAorICAgIGtDdGFwMkVyclBpblJl
cXVpcmVkID0gMHgzNiwKKyAgICBrQ3RhcDJFcnJQaW5Qb2xpY3lWaW9sYXRpb24gPSAweDM3LAor
ICAgIGtDdGFwMkVyclBpblRva2VuRXhwaXJlZCA9IDB4MzgsCisgICAga0N0YXAyRXJyUmVxdWVz
dFRvb0xhcmdlID0gMHgzOSwKKyAgICBrQ3RhcDJFcnJPdGhlciA9IDB4N0YsCisgICAga0N0YXAy
RXJyU3BlY0xhc3QgPSAweERGLAorICAgIGtDdGFwMkVyckV4dGVuc2lvbkZpcnN0ID0gMHhFMCwK
KyAgICBrQ3RhcDJFcnJFeHRlbnNpb25MYXN0ID0gMHhFRiwKKyAgICBrQ3RhcDJFcnJWZW5kb3JG
aXJzdCA9IDB4RjAsCisgICAga0N0YXAyRXJyVmVuZG9yTGFzdCA9IDB4RkYKK307CisKK2Jvb2wg
aXNDdGFwRGV2aWNlUmVzcG9uc2VDb2RlKEN0YXBEZXZpY2VSZXNwb25zZUNvZGUpOworCiAvLyBD
b21tYW5kcyBzdXBwb3J0ZWQgYnkgQ1RBUEhJRCBkZXZpY2UgYXMgc3BlY2lmaWVkIGluCiAvLyBo
dHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8t
Y2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sI2N0
YXBoaWQtY29tbWFuZHMKIGVudW0gY2xhc3MgRmlkb0hpZERldmljZUNvbW1hbmQgOiB1aW50OF90
IHsKQEAgLTQ3LDcgKzEzMiwyNCBAQCBlbnVtIGNsYXNzIEZpZG9IaWREZXZpY2VDb21tYW5kIDog
dWludDhfdCB7CiAgICAga0xvY2sgPSAweDA0LAogfTsKIAotYm9vbCBpc0ZpZG9IaWREZXZpY2VD
b21tYW5kKEZpZG9IaWREZXZpY2VDb21tYW5kIGNtZCk7Citib29sIGlzRmlkb0hpZERldmljZUNv
bW1hbmQoRmlkb0hpZERldmljZUNvbW1hbmQpOworCisvLyBTdHJpbmcga2V5IHZhbHVlcyBmb3Ig
Q1RBUCByZXF1ZXN0IG9wdGlvbmFsIHBhcmFtZXRlcnMgYW5kCisvLyBBdXRoZW50aWNhdG9yR2V0
SW5mbyByZXNwb25zZS4KK2NvbnN0IGNoYXIga1Jlc2lkZW50S2V5TWFwS2V5W10gPSAicmsiOwor
Y29uc3QgY2hhciBrVXNlclZlcmlmaWNhdGlvbk1hcEtleVtdID0gInV2IjsKK2NvbnN0IGNoYXIg
a1VzZXJQcmVzZW5jZU1hcEtleVtdID0gInVwIjsKK2NvbnN0IGNoYXIga0NsaWVudFBpbk1hcEtl
eVtdID0gImNsaWVudFBpbiI7Citjb25zdCBjaGFyIGtQbGF0Zm9ybURldmljZU1hcEtleVtdID0g
InBsYXQiOworY29uc3QgY2hhciBrRW50aXR5SWRNYXBLZXlbXSA9ICJpZCI7Citjb25zdCBjaGFy
IGtFbnRpdHlOYW1lTWFwS2V5W10gPSAibmFtZSI7Citjb25zdCBjaGFyIGtEaXNwbGF5TmFtZU1h
cEtleVtdID0gImRpc3BsYXlOYW1lIjsKK2NvbnN0IGNoYXIga0ljb25VcmxNYXBLZXlbXSA9ICJp
Y29uIjsKK2NvbnN0IGNoYXIga0NyZWRlbnRpYWxUeXBlTWFwS2V5W10gPSAidHlwZSI7Citjb25z
dCBjaGFyIGtDcmVkZW50aWFsQWxnb3JpdGhtTWFwS2V5W10gPSAiYWxnIjsKKy8vIEtleXMgZm9y
IHN0b3JpbmcgY3JlZGVudGlhbCBkZXNjcmlwdG9yIGluZm9ybWF0aW9uIGluIENCT1IgbWFwLgor
Y29uc3QgY2hhciBrQ3JlZGVudGlhbElkS2V5W10gPSAiaWQiOworY29uc3QgY2hhciBrQ3JlZGVu
dGlhbFR5cGVLZXlbXSA9ICJ0eXBlIjsKIAogLy8gSElEIHRyYW5zcG9ydCBzcGVjaWZpYyBjb25z
dGFudHMuCiBjb25zdCBzaXplX3Qga0hpZFBhY2tldFNpemUgPSA2NDsKQEAgLTYzLDYgKzE2NSwz
NCBAQCBjb25zdCB1aW50OF90IGtIaWRNYXhMb2NrU2Vjb25kcyA9IDEwOwogLy8gTWVzc2FnZXMg
YXJlIGxpbWl0ZWQgdG8gYW4gaW5pdGlhdGlvbiBwYWNrZXQgYW5kIDEyOCBjb250aW51YXRpb24g
cGFja2V0cy4KIGNvbnN0IHNpemVfdCBrSGlkTWF4TWVzc2FnZVNpemUgPSA3NjA5OwogCisvLyBB
dXRoZW50aWNhdG9yIEFQSSBjb21tYW5kcyBzdXBwb3J0ZWQgYnkgQ1RBUCBkZXZpY2VzLCBhcyBz
cGVjaWZpZWQgaW4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAt
cmQtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXJk
LTIwMTcwOTI3Lmh0bWwjYXV0aGVudGljYXRvci1hcGkKK2VudW0gY2xhc3MgQ3RhcFJlcXVlc3RD
b21tYW5kIDogdWludDhfdCB7CisgICAga0F1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbCA9IDB4
MDEsCisgICAga0F1dGhlbnRpY2F0b3JHZXRBc3NlcnRpb24gPSAweDAyLAorICAgIGtBdXRoZW50
aWNhdG9yR2V0TmV4dEFzc2VydGlvbiA9IDB4MDgsCisgICAga0F1dGhlbnRpY2F0b3JHZXRJbmZv
ID0gMHgwNCwKKyAgICBrQXV0aGVudGljYXRvckNsaWVudFBpbiA9IDB4MDYsCisgICAga0F1dGhl
bnRpY2F0b3JSZXNldCA9IDB4MDcsCit9OworCisvLyBTdHJpbmcga2V5IHZhbHVlcyBmb3IgYXR0
ZXN0YXRpb24gb2JqZWN0IGFzIGEgcmVzcG9uc2UgdG8gTWFrZUNyZWRlbnRpYWwKKy8vIHJlcXVl
c3QuCitjb25zdCBjaGFyIGtGb3JtYXRLZXlbXSA9ICJmbXQiOworY29uc3QgY2hhciBrQXR0ZXN0
YXRpb25TdGF0ZW1lbnRLZXlbXSA9ICJhdHRTdG10IjsKK2NvbnN0IGNoYXIga0F1dGhEYXRhS2V5
W10gPSAiYXV0aERhdGEiOworY29uc3QgY2hhciBrTm9uZUF0dGVzdGF0aW9uVmFsdWVbXSA9ICJu
b25lIjsKKworLy8gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHB1YmxpYyBrZXkgY3JlZGVudGlh
bCBlbnVtLgorLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmF1dGhuLyNjcmVkZW50aWFsVHlw
ZQorY29uc3QgY2hhciBrUHVibGljS2V5W10gPSAicHVibGljLWtleSI7CisKK2NvbnN0IGNoYXIq
IHB1YmxpY0tleUNyZWRlbnRpYWxUeXBlVG9TdHJpbmcoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVu
dGlhbFR5cGUpOworCisvLyBGSVhNRTogQWRkIHVybCB0byB0aGUgb2ZmaWNpYWwgc3BlYyBvbmNl
IGl0J3Mgc3RhbmRhcmRpemVkLgorY29uc3QgY2hhciBrQ3RhcDJWZXJzaW9uW10gPSAiRklET18y
XzAiOworY29uc3QgY2hhciBrVTJmVmVyc2lvbltdID0gIlUyRl9WMiI7CisKIH0gLy8gbmFtZXNw
YWNlIGZpZG8KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuY3BwCmluZGV4IDZkZjQ1ZTFiZWQ2MjRj
YjU5OGIyOThhZGE5MjY1MjIwNTJiMWZmZjcuLmEwYjIxNDljMzcyMWRkYjJhOGY3OWRlNzk1NzEz
MDZlZWVkM2QxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dl
YkdQVUFkYXB0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQ
VUFkYXB0ZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdQVUFkYXB0ZXJEZXNjcmlwdG9yLmgiCiAjaW5jbHVk
ZSAiV2ViR1BVRGV2aWNlLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMTRiNGI5ZjI4YTBiMzA4N2Y4MTI5MWJmNzBjYWFk
NjFmMDI0MjZhMi4uOWI3ZGMzOWFkMDY0OWZmODU1OGY2ODliZTYzMjJlMDdhYzQxZGI5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKQEAgLTI1OCw2ICsyNTgsMTAgQEAgTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsLmNwcAogTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JSZWFkZXIuY3BwCiBN
b2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmNwcAogTW9kdWxlcy93ZWJhdXRobi9jYm9y
L0NCT1JXcml0ZXIuY3BwCitNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdldElu
Zm9SZXNwb25zZS5jcHAKK01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9y
dGVkT3B0aW9ucy5jcHAKK01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVy
dGVyLmNwcAorTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNw
cAogTW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwCiBNb2R1bGVzL3dlYmF1
dGhuL2ZpZG8vRmlkb0hpZE1lc3NhZ2UuY3BwCiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0hp
ZFBhY2tldC5jcHAKQEAgLTMxNTksNiArMzE2Myw3IEBAIEpTVHJlZVdhbGtlci5jcHAKIEpTVUlF
dmVudC5jcHAKIEpTVUlFdmVudEluaXQuY3BwCiBKU1VSTFNlYXJjaFBhcmFtcy5jcHAKK0pTVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmNwcAogSlNWUkRpc3BsYXkuY3BwCiBKU1ZSRGlzcGxh
eUNhcGFiaWxpdGllcy5jcHAKIEpTVlJEaXNwbGF5RXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjFkMjVmZDg1MWE2
ZTIxYTgxY2VlM2ZmN2Y2YzYzM2VhYzZkMjUxNi4uZmMzYTIwMjRhODQ0YTUwZTkzZTFlNDE0ZDg3
YzQ5M2UzZmYzMTQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTc1NCw2ICsxNzU0LDEyIEBACiAJCTU3MjFBOTg3MUVDRTUz
QjEwMDgxMjk1QSAvKiBDcnlwdG9EaWdlc3RBbGdvcml0aG0uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MjFBOTg2MUVDRTUzQjEwMDgxMjk1QSAvKiBD
cnlwdG9EaWdlc3RBbGdvcml0aG0uaCAqLzsgfTsKIAkJNTcyMUE5OEIxRUNFNTcwNDAwODEyOTVB
IC8qIENyeXB0b0FsZ29yaXRobVJzYVBzc1BhcmFtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyMUE5ODgxRUNFNTcwNDAwODEyOTVBIC8qIENyeXB0
b0FsZ29yaXRobVJzYVBzc1BhcmFtcy5oICovOyB9OwogCQk1NzJBN0YyMTFDNkU1NzE5MDA5QzYx
NDkgLyogU2ltdWxhdGVkQ2xpY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3MkE3RjIwMUM2RTU3MTkwMDlDNjE0OSAvKiBTaW11bGF0ZWRDbGljay5o
ICovOyB9OworCQk1NzJCNDAxRjIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZl
cnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcy
QjQwMUQyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NzJCNDAyQzIxNzY5
MDIwMDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDJBMjE3NjkwMUYwMDBB
RDQzRSAvKiBKU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICovOyB9OworCQk1NzJCNDAz
NjIxNzZBOTIyMDAwQUQ0M0UgLyogVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJCNDAyMzIxNzY4RDg1
MDAwQUQ0M0UgLyogVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTcyQjQwM0EyMTc3MjU4MTAwMEFE
NDNFIC8qIERldmljZVJlc3BvbnNlQ29udmVydGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJCNDAzNzIxNzcyNTZDMDAwQUQ0M0UgLyogRGV2aWNl
UmVzcG9uc2VDb252ZXJ0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk1NzJCNDA0MDIxNzgwMTcxMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3MkI0MDNFMjE3ODAxNzAwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTU3MkI0MDQyMjE3ODExNEEwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3Bv
bnNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJC
NDAzQzIxNzdGQjYxMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU3MzAzQkI5
MjAwNkM2RUUwMDM1NTk2NSAvKiBDQk9SVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzAzQkI0MjAwNkM2RUQwMDM1NTk2NSAvKiBDQk9SVmFs
dWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
NzMwM0JCQTIwMDZDNkVFMDAzNTU5NjUgLyogQ0JPUldyaXRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQjUyMDA2QzZFRDAwMzU1OTY1IC8q
IENCT1JXcml0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1NzMwM0JCQjIwMDZDNkVFMDAzNTU5NjUgLyogQ0JPUkJpbmFyeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQjYyMDA2QzZFRDAw
MzU1OTY1IC8qIENCT1JCaW5hcnkuaCAqLzsgfTsKQEAgLTg1NzIsNiArODU3OCwxOCBAQAogCQk1
NzIxQTk4QTFFQ0U1NzA0MDA4MTI5NUEgLyogUnNhUHNzUGFyYW1zLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSc2FQc3NQ
YXJhbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJBN0YyMDFDNkU1NzE5
MDA5QzYxNDkgLyogU2ltdWxhdGVkQ2xpY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2ltdWxhdGVkQ2xpY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcy
QTdGMjIxQzZFNUE2NjAwOUM2MTQ5IC8qIFNpbXVsYXRlZENsaWNrLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpbXVsYXRlZENsaWNrLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMUQyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVl
c3RDb252ZXJ0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAxRTIxNzU3QTY0MDAwQUQ0M0UgLyog
RGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZpY2VSZXF1
ZXN0Q29udmVydGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMjMy
MTc2OEQ4NTAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTcyQjQwMjUyMTc2OEQ4NTAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25S
ZXF1aXJlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMkEyMTc2OTAxRjAwMEFENDNFIC8qIEpT
VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU3MkI0MDJCMjE3NjkwMUYwMDBBRDQzRSAvKiBKU1VzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTU3MkI0MDM3MjE3NzI1NkMwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VSZXNwb25zZUNvbnZl
cnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAzODIxNzcyNTZDMDAw
QUQ0M0UgLyogRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAzQjIxNzdGQjYwMDAwQUQ0M0UgLyogQXV0aGVudGlj
YXRvckdldEluZm9SZXNwb25zZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTcyQjQwM0MyMTc3RkI2MTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGlj
YXRvckdldEluZm9SZXNwb25zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJC
NDAzRDIxNzgwMTZGMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRvclN1cHBv
cnRlZE9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAzRTIx
NzgwMTcwMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQjQyMDA2QzZFRDAwMzU1OTY1
IC8qIENCT1JWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDQk9SVmFs
dWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQjUyMDA2QzZFRDAwMzU1
OTY1IC8qIENCT1JXcml0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0JP
UldyaXRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzMwM0JCNjIwMDZDNkVE
MDAzNTU5NjUgLyogQ0JPUkJpbmFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDQk9SQmluYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTA5Myw2ICsx
OTExMSwxNCBAQAogCQk1NzhBNEJGQTIxNjZBRTAwMDBEMDhGMzQgLyogZmlkbyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTcyQjQwM0IyMTc3RkI2MDAw
MEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwICovLAorCQkJCTU3MkI0
MDNDMjE3N0ZCNjEwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmggKi8s
CisJCQkJNTcyQjQwM0QyMTc4MDE2RjAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zLmNwcCAqLywKKwkJCQk1NzJCNDAzRTIxNzgwMTcwMDAwQUQ0M0UgLyogQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnMuaCAqLywKKwkJCQk1NzJCNDAxRTIxNzU3QTY0MDAwQUQ0M0Ug
LyogRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAgKi8sCisJCQkJNTcyQjQwMUQyMTc1N0E2NDAw
MEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCAqLywKKwkJCQk1NzJCNDAzODIxNzcy
NTZDMDAwQUQ0M0UgLyogRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwICovLAorCQkJCTU3MkI0
MDM3MjE3NzI1NkMwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oICovLAogCQkJ
CTU3QkFGMjg3MjE2N0QyRjcwMDhFOTU0RSAvKiBGaWRvQ29uc3RhbnRzLmNwcCAqLywKIAkJCQk1
NzhBNEMwQjIxNjdEMjk2MDBEMDhGMzQgLyogRmlkb0NvbnN0YW50cy5oICovLAogCQkJCTU3OEE0
QzA4MjE2N0QyOTUwMEQwOEYzNCAvKiBGaWRvSGlkTWVzc2FnZS5jcHAgKi8sCkBAIC0xOTE3Miw2
ICsxOTE5OCw4IEBACiAJCQkJNTczMDNDMDgyMDA5OThGODAwMzU1OTY1IC8qIFB1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwgKi8sCiAJCQkJNTczMDNCRUEyMDA5N0Y0MDAwMzU1
OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmggKi8sCiAJCQkJNTczMDNCRjAyMDA5ODQ2
MTAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmlkbCAqLywKKwkJCQk1NzJCNDAy
MzIxNzY4RDg1MDAwQUQ0M0UgLyogVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggKi8sCisJ
CQkJNTcyQjQwMjUyMTc2OEQ4NTAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dC5pZGwgKi8sCiAJCQkpOwogCQkJcGF0aCA9IHdlYmF1dGhuOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTE5MTk3LDYgKzE5MjI1LDggQEAKIAkJCQk1NzMwM0MwQzIwMDk5Qzc1MDAz
NTU5NjUgLyogSlNQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaCAqLywKIAkJCQk1
NzMwM0JGQTIwMDk5MTM1MDAzNTU5NjUgLyogSlNQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5jcHAg
Ki8sCiAJCQkJNTczMDNCRjkyMDA5OTEzNDAwMzU1OTY1IC8qIEpTUHVibGljS2V5Q3JlZGVudGlh
bFR5cGUuaCAqLywKKwkJCQk1NzJCNDAyQjIxNzY5MDFGMDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZp
Y2F0aW9uUmVxdWlyZW1lbnQuY3BwICovLAorCQkJCTU3MkI0MDJBMjE3NjkwMUYwMDBBRDQzRSAv
KiBKU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBX
ZWJBdXRoTjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNzY4MCw3ICsyNzcxMCw5
IEBACiAJCQkJNTczMDNDMUYyMDA5QUI0MjAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBdHRlc3Rh
dGlvblJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0M0NjIwMTA1RDJGMDAzNTU5
NjUgLyogQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzYw
ODI3MjIwMjE1QTU1MDAxMTY2NzggLyogQXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1NzJCNDA0MjIxNzgxMTRBMDAwQUQ0M0UgLyogQXV0aGVudGlj
YXRvckdldEluZm9SZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNCRDIyMDA4N0E4
MzAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NTcyQjQwNDAyMTc4MDE3MTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25z
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0RDRUQ5MDIxNDg3RkY3MDAxNkI4NDcgLyogQXV0aGVu
dGljYXRvclRyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwMTkyMEUxMzJFQkYyRTAw
OEJGRTU1IC8qIEF1dG9jYXBpdGFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUE3QUE0MzEz
MkYwRUNDMDBEM0EzQzIgLyogQXV0b2NhcGl0YWxpemVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yODE5OCw2ICsyODIzMCw4IEBACiAJCQkJNTlBOEYxRDYxMUE2OTUxMzAwMUFDMzRBIC8qIERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTkwRTFCNDkx
MUU0RUY0QjAwNjlGNzg0IC8qIERldmljZU9yaWVudGF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTlBODVFQTQxMTlENjhFQzAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTU3MkI0MDFGMjE3NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VS
ZXF1ZXN0Q29udmVydGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzJCNDAzQTIxNzcyNTgxMDAw
QUQ0M0UgLyogRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2
NzcyNUZEMUE1QjNBRDkwMDNDMjRERCAvKiBERkEuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDlG
NTY2MUFBMEY3M0MwMERBNDVGRiAvKiBERkFCeXRlY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNEOUY1NjcxQUEwRjc0MjAwREE0NUZGIC8qIERGQUJ5dGVjb2RlQ29tcGlsZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjk2ODEsNiArMjk3MTUsNyBAQAogCQkJCTQ2NTMwN0QwMURCNkVFNDgwMEU0
MTM3QyAvKiBKU1VJRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzczRkIxMjE5MUVG
NkY0MDA3REUwNjEgLyogSlNVc2VyTWVzc2FnZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdDNzNGQjBEMTkxRUY1QTgwMDdERTA2MSAvKiBKU1VzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3Bh
Y2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MkI0MDJDMjE3NjkwMjAwMDBBRDQzRSAvKiBKU1Vz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTVDNzcwOTMx
MDBEM0NBODAwNUJBMjY3IC8qIEpTVmFsaWRpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkU4RUYwNEIxNzFDOTAxNDAwOUI0OEMzIC8qIEpTVmlkZW9UcmFjay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkU4RUYwNEQxNzFDOTAxNDAwOUI0OEMzIC8qIEpTVmlkZW9UcmFja0xpc3QuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzEzMzIsNiArMzEzNjcsNyBAQAogCQkJCUJDOEJGMTUxMTA1ODEzQkYw
MEE0MEEwNyAvKiBVc2VyU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4QkYxNUEx
MDU4MTQxODAwQTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0VHlwZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDREYzMTdDMTFGOEQ2ODMwMDNDNUJGOCAvKiBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRv
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcyQjQwMzYyMTc2QTkyMjAwMEFENDNFIC8qIFVzZXJW
ZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRjE0RTYxRUFB
QzU5QjAwMjZFRUFBIC8qIFVUSVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxRkFGQkYx
OTE1QTVGQTc0MDAwODNBMjAgLyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
M0M0NUI4RTFEQzJCNjhBMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
Y2YxMDdmNTExNzdhNmQyOTIzNzMxZGFmYWQ2Y2IzNjFhMzA0MzI4NC4uM2Q4ZTcwMTMxNDZhZjAw
MDVlNWJmNWE4MDBkYTI0NzQ4YjE3OTZkNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTEwLTIyICBKaWV3ZW4g
VGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBvcnQg
Q1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzIGZyb20gQ2hyb21pdW0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDc4NAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDU0NjAzMzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvQ0JPUlZhbHVlVGVzdC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNw
cDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlc3BvbnNlVGVzdC5jcHA6IEFkZGVkLgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6Z2V0VGVzdENvcnJ1cHRlZFNpZ25SZXNwb25zZSk6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpnZXRUZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXMpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6Y29udmVydFRvVmVjdG9yKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVz
dERhdGEuaDogQWRkZWQuCisKIDIwMTgtMTAtMzAgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRA
YXBwbGUuY29tPgogCiAgICAgICAgIHdlYmtpdHB5OiBTdXBwb3J0IGFsdGVybmF0ZSBzaW1jdGwg
bGlzdCBvdXRwdXRzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ1ZjliNzcyMDgxNmRiZGRk
NmMxMjVhYjRjNTdiZThkM2I5ZDMxNWIuLjAxNzM4ZWY0ODc5Yjc0YTg2ZDVmMjA4YTYwZjBhZGE0
MjA0ZGZkMzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDYsNiArMjQ2LDggQEAKIAkJ
NTcxNEVDQkIxQ0E4QkZFNDAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJh
bWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxV
UkxGcmFtZS5odG1sICovOyB9OwogCQk1NzE0RUNCRDFDQThDMjJBMDAwNTFBQzggLyogRG93bmxv
YWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQkMxQ0E4QzIxODAwMDUxQUM4IC8qIERvd25s
b2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sICovOyB9OwogCQk1NzFGN0ZEMDFGMjk2MUZCMDA5
NDY2NDggLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNx
bGl0ZTMtd2FsIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3MUY3RkNGMUYyOTYxRTEwMDk0NjY0OCAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xv
bmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwgKi87IH07CisJCTU3MkI0MDM0MjE3
NjlBODgwMDBBRDQzRSAvKiBDdGFwUmVxdWVzdFRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwMzMyMTc2OUE4ODAwMEFENDNFIC8qIEN0
YXBSZXF1ZXN0VGVzdC5jcHAgKi87IH07CisJCTU3MkI0MDQ0MjE3ODFCNDMwMDBBRDQzRSAvKiBD
dGFwUmVzcG9uc2VUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3MkI0MDQzMjE3ODFCNDIwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNw
cCAqLzsgfTsKIAkJNTczMDNCQzkyMDA4MjREMzAwMzU1OTY1IC8qIENCT1JWYWx1ZVRlc3QuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQUMy
MDA2QzU2MDAwMzU1OTY1IC8qIENCT1JWYWx1ZVRlc3QuY3BwICovOyB9OwogCQk1NzMwM0JDQTIw
MDgyQzAxMDAzNTU5NjUgLyogQ0JPUldyaXRlclRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQUIyMDA2QzU1NDAwMzU1OTY1IC8qIENC
T1JXcml0ZXJUZXN0LmNwcCAqLzsgfTsKIAkJNTczMDNCQ0IyMDA4Mzc2NTAwMzU1OTY1IC8qIENC
T1JSZWFkZXJUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3MzAzQkMyMjAwNzFFMjIwMDM1NTk2NSAvKiBDQk9SUmVhZGVyVGVzdC5jcHAgKi87
IH07CkBAIC0xNTUxLDYgKzE1NTMsOSBAQAogCQk1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyog
RG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NzE0RUNCQzFDQThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRS
ZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3du
bG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTcxRjdGQ0YxRjI5NjFFMTAwOTQ2NjQ4IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJh
Y2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXdhbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCU3RydWN0dXJl
ZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtd2FsIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMzMyMTc2OUE4ODAwMEFENDNFIC8qIEN0YXBSZXF1ZXN0VGVz
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdGFwUmVxdWVzdFRl
c3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAzNTIxNzZBMDI5MDAw
QUQ0M0UgLyogRmlkb1Rlc3REYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpZG9UZXN0RGF0YS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDA0MzIxNzgxQjQyMDAwQUQ0M0UgLyog
Q3RhcFJlc3BvbnNlVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDdGFwUmVzcG9uc2VUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcz
MDNCQUIyMDA2QzU1NDAwMzU1OTY1IC8qIENCT1JXcml0ZXJUZXN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENCT1JXcml0ZXJUZXN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQUMyMDA2QzU2MDAwMzU1OTY1IC8qIENCT1JWYWx1ZVRl
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0JPUlZhbHVlVGVz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAzQkMyMjAwNzFFMjIwMDM1
NTk2NSAvKiBDQk9SUmVhZGVyVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDQk9SUmVhZGVyVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yNTMyLDExICsyNTM3LDE0IEBACiAJCQkJMUM5RUI4NDAxRTM4MERBMTAwNUM2NDQyIC8qIENv
bXBsZXhUZXh0Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJN0NCMTg0QzQxQUEzRjIxMDAwNjZFREZE
IC8qIENvbnRlbnRFeHRlbnNpb25zLmNwcCAqLywKIAkJCQlDRDU0NTFFOTE5RTQxRjlEMDAxNjkz
NkYgLyogQ1NTUGFyc2VyLmNwcCAqLywKKwkJCQk1NzJCNDAzMzIxNzY5QTg4MDAwQUQ0M0UgLyog
Q3RhcFJlcXVlc3RUZXN0LmNwcCAqLywKKwkJCQk1NzJCNDA0MzIxNzgxQjQyMDAwQUQ0M0UgLyog
Q3RhcFJlc3BvbnNlVGVzdC5jcHAgKi8sCiAJCQkJMjYwQkE1NzgxQjFEMkU3QjAwNEZBMDdDIC8q
IERGQUNvbWJpbmVyLmNwcCAqLywKIAkJCQkyNjBCQTU3QTFCMUQyRUUyMDA0RkEwN0MgLyogREZB
SGVscGVycy5oICovLAogCQkJCTI2RjZFMUVGMUFEQzc0OUIwMERFNjk2QiAvKiBERkFNaW5pbWl6
ZXIuY3BwICovLAogCQkJCTMxNTExODBGMURCMUFERDUwMDE3NjMwNCAvKiBFeHRlbmRlZENvbG9y
LmNwcCAqLywKIAkJCQk1Nzk2NTFFNjIxNkJGRDUzMDA2RUJGRTUgLyogRmlkb0hpZE1lc3NhZ2VU
ZXN0LmNwcCAqLywKKwkJCQk1NzJCNDAzNTIxNzZBMDI5MDAwQUQ0M0UgLyogRmlkb1Rlc3REYXRh
LmggKi8sCiAJCQkJN0EzMkQ3NDkxRjAyMTUxNTAwMTYyQzQ0IC8qIEZpbGVNb25pdG9yLmNwcCAq
LywKIAkJCQk0MTk3M0I1QTFBRjIyODZBMDA2QzdCMzYgLyogRmlsZVN5c3RlbS5jcHAgKi8sCiAJ
CQkJN0E5MDlBNzAxRDg3NzQ3NTAwN0UxMEY4IC8qIEZsb2F0UG9pbnQuY3BwICovLApAQCAtMzc2
Nyw2ICszNzc1LDggQEAKIAkJCQk3Q0NFN0VBQzFBNDExQTM0MDA0NDdDNEMgLyogQ291bnRlcnMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FFQUQ0N0YxRTIwMTE2QzAwNDE2RUZFIC8qIENyb3Nz
UGFydGl0aW9uRmlsZVNjaGVtZUFjY2Vzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RURC
MUE0MTFBOTIwMDQ0N0M0QyAvKiBDU1NQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTcy
QjQwMzQyMTc2OUE4ODAwMEFENDNFIC8qIEN0YXBSZXF1ZXN0VGVzdC5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk1NzJCNDA0NDIxNzgxQjQzMDAwQUQ0M0UgLyogQ3RhcFJlc3BvbnNlVGVzdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3QUM3QjU3MDIwRDlCQTVCMDAyQzA5QTAgLyogQ3VzdG9tQnVu
ZGxlT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FDN0I1NkQyMEQ5NzY5RjAwMkMwOUEw
IC8qIEN1c3RvbUJ1bmRsZVBhcmFtZXRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjI5
MUE0MTFCMTAwMDQ0N0M0QyAvKiBDdXN0b21Qcm90b2NvbHNJbnZhbGlkU2NoZW1lLm1tIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q0JPUlZhbHVlVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JP
UlZhbHVlVGVzdC5jcHAKaW5kZXggYTJkNmI4OWYyNzI4ZmY1ZTg4OTdkMjQ0YjBjYjU4MzlmOTM1
ZWNlMS4uZmY1MjBkYzdhNTk0OTRjNWEzZDZkNjE2ZWM1ZGY1YTA0ZGM3YzdkMSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NCT1JWYWx1ZVRlc3QuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DQk9SVmFsdWVUZXN0LmNwcApA
QCAtMTQ4LDYgKzE0OCwxNyBAQCBURVNUKENCT1JWYWx1ZVRlc3QsIENvbnN0cnVjdFNpbXBsZVZh
bHVlKQogICAgIEVYUEVDVF9UUlVFKENCT1JWYWx1ZTo6U2ltcGxlVmFsdWU6OlVuZGVmaW5lZCA9
PSB1bmRlZmluZWRWYWx1ZS5nZXRTaW1wbGVWYWx1ZSgpKTsKIH0KIAorVEVTVChDQk9SVmFsdWVU
ZXN0LCBDb25zdHJ1Y3RTaW1wbGVCb29sZWFuVmFsdWUpCit7CisgICAgQ0JPUlZhbHVlIHRydWVW
YWx1ZSh0cnVlKTsKKyAgICBBU1NFUlRfRVEoQ0JPUlZhbHVlOjpUeXBlOjpTaW1wbGVWYWx1ZSwg
dHJ1ZVZhbHVlLnR5cGUoKSk7CisgICAgRVhQRUNUX1RSVUUodHJ1ZVZhbHVlLmdldEJvb2woKSk7
CisKKyAgICBDQk9SVmFsdWUgZmFsc2VWYWx1ZShmYWxzZSk7CisgICAgQVNTRVJUX0VRKENCT1JW
YWx1ZTo6VHlwZTo6U2ltcGxlVmFsdWUsIGZhbHNlVmFsdWUudHlwZSgpKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoZmFsc2VWYWx1ZS5nZXRCb29sKCkpOworfQorCiAvLyBUZXN0IGNvcHkgY29uc3RydWN0
b3JzCiBURVNUKENCT1JWYWx1ZVRlc3QsIENvcHlVbnNpZ25lZCkKIHsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjQzOWRhZDRlYzFhOTA4MDA3NDE3Y2QyYTdlNmM2MWRkMTM1ZmE2NAotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRl
c3QuY3BwCkBAIC0wLDAgKzEsMTI4IEBACisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgQ2hyb21pdW0g
QXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
Ky8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8v
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVU
SE4pCisKKyNpbmNsdWRlICJGaWRvVGVzdERhdGEuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rldmlj
ZVJlcXVlc3RDb252ZXJ0ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpZG9Db25zdGFudHMuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBmaWRvOworCisvLyBM
ZXZlcmFnaW5nIGV4YW1wbGUgMiBvZiBzZWN0aW9uIDYuMSBvZiB0aGUgc3BlYworLy8gaHR0cHM6
Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVu
dC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbAorVEVTVChD
VEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RQYXJhbSkK
K3sKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpScEVudGl0eSBycDsK
KyAgICBycC5uYW1lID0gIkFjbWUiOworICAgIHJwLmlkID0gImFjbWUuY29tIjsKKworICAgIFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkgdXNlcjsKKyAgICB1
c2VyLm5hbWUgPSAiam9obnBzbWl0aEBleGFtcGxlLmNvbSI7CisgICAgdXNlci5pY29uID0gImh0
dHBzOi8vcGljcy5hY21lLmNvbS8wMC9wL2FCampqcHFQYi5wbmciOworICAgIHVzZXIuaWRWZWN0
b3IuYXBwZW5kKFRlc3REYXRhOjprVXNlcklkLCBzaXplb2YoVGVzdERhdGE6OmtVc2VySWQpKTsK
KyAgICB1c2VyLmRpc3BsYXlOYW1lID0gIkpvaG4gUC4gU21pdGgiOworCisgICAgVmVjdG9yPFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IHBhcmFtcyB7IHsg
UHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1YmxpY0tleUNyZWRl
bnRpYWxUeXBlOjpQdWJsaWNLZXksIDI1NyB9IH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7
IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JBdHRhY2ht
ZW50OjpQbGF0Zm9ybSwgdHJ1ZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJy
ZWQgfTsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7
IHJwLCB1c2VyLCB7IH0sIHBhcmFtcywgc3RkOjpudWxsb3B0LCB7IH0sIHNlbGVjdGlvbiB9Owor
ICAgIFZlY3Rvcjx1aW50OF90PiBoYXNoOworICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xp
ZW50RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7CisgICAgYXV0
byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNo
LCBvcHRpb25zLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlv
bkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dE5vdENvbmZpZ3VyZWQpOworICAgIEVYUEVDVF9F
UShzZXJpYWxpemVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVu
dGlhbFJlcXVlc3QpKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhLmRhdGEo
KSwgVGVzdERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0LCBzZXJpYWxpemVkRGF0YS5z
aXplKCkpLCAwKTsKK30KKworVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RHZXRB
c3NlcnRpb25SZXF1ZXN0KQoreworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cyBvcHRpb25zOworICAgIG9wdGlvbnMucnBJZCA9ICJhY21lLmNvbSI7CisKKyAgICBQdWJsaWNL
ZXlDcmVkZW50aWFsRGVzY3JpcHRvciBkZXNjcmlwdG9yMTsKKyAgICBkZXNjcmlwdG9yMS50eXBl
ID0gUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleTsKKyAgICBjb25zdCB1aW50OF90
IGlkMVtdID0geworICAgICAgICAweGYyLCAweDIwLCAweDA2LCAweGRlLCAweDRmLCAweDkwLCAw
eDVhLCAweGY2LCAweDhhLCAweDQzLCAweDk0LAorICAgICAgICAweDJmLCAweDAyLCAweDRmLCAw
eDJhLCAweDVlLCAweGNlLCAweDYwLCAweDNkLCAweDljLCAweDZkLCAweDRiLAorICAgICAgICAw
eDNkLCAweGY4LCAweGJlLCAweDA4LCAweGVkLCAweDAxLCAweGZjLCAweDQ0LCAweDI2LCAweDQ2
LCAweGQwLAorICAgICAgICAweDM0LCAweDg1LCAweDhhLCAweGM3LCAweDViLCAweGVkLCAweDNm
LCAweGQ1LCAweDgwLCAweGJmLCAweDk4LAorICAgICAgICAweDA4LCAweGQ5LCAweDRmLCAweGNi
LCAweGVlLCAweDgyLCAweGI5LCAweGIyLCAweGVmLCAweDY2LCAweDc3LAorICAgICAgICAweGFm
LCAweDBhLCAweGRjLCAweGMzLCAweDU4LCAweDUyLCAweGVhLCAweDZiLCAweDllIH07CisgICAg
ZGVzY3JpcHRvcjEuaWRWZWN0b3IuYXBwZW5kKGlkMSwgc2l6ZW9mKGlkMSkpOworICAgIG9wdGlv
bnMuYWxsb3dDcmVkZW50aWFscy5hcHBlbmQoZGVzY3JpcHRvcjEpOworCisgICAgUHVibGljS2V5
Q3JlZGVudGlhbERlc2NyaXB0b3IgZGVzY3JpcHRvcjI7CisgICAgZGVzY3JpcHRvcjIudHlwZSA9
IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXk7CisgICAgY29uc3QgdWludDhfdCBp
ZDJbXSA9IHsKKyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgw
MywgMHgwMywgMHgwMywgMHgwMywKKyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAgICAgMHgwMywgMHgwMywgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAgICAgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywK
KyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMywgMHgwMyB9OworICAgIGRlc2NyaXB0b3IyLmlkVmVjdG9yLmFwcGVuZChpZDIsIHNpemVv
ZihpZDIpKTsKKyAgICBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMuYXBwZW5kKGRlc2NyaXB0b3Iy
KTsKKworICAgIG9wdGlvbnMudXNlclZlcmlmaWNhdGlvbiA9IFVzZXJWZXJpZmljYXRpb25SZXF1
aXJlbWVudDo6UmVxdWlyZWQ7CisKKyAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKKyAgICBoYXNo
LmFwcGVuZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGll
bnREYXRhSGFzaCkpOworICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVHZXRBc3NlcnRp
b25SZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0Tm90Q29uZmln
dXJlZCk7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhLnNpemUoKSwgc2l6ZW9mKFRlc3RE
YXRhOjprVGVzdENvbXBsZXhDdGFwR2V0QXNzZXJ0aW9uUmVxdWVzdCkpOworICAgIEVYUEVDVF9F
UShtZW1jbXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3Rh
cEdldEFzc2VydGlvblJlcXVlc3QsIHNlcmlhbGl6ZWREYXRhLnNpemUoKSksIDApOworfQorCitU
RVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdEN0YXBBdXRoZW50aWNhdG9yUmVxdWVz
dFBhcmFtKQoreworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBrU2VyaWFsaXplZEdldElu
Zm9DbWQgPSAweDA0OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBrU2VyaWFsaXplZEdl
dE5leHRBc3NlcnRpb25DbWQgPSAweDA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBr
U2VyaWFsaXplZFJlc2V0Q21kID0gMHgwNzsKKworICAgIGF1dG8gc2VyaWFsaXplZERhdGExID0g
ZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRo
ZW50aWNhdG9yR2V0SW5mbyk7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhMS5zaXplKCks
IDF1KTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhMS5kYXRhKCksICZrU2Vy
aWFsaXplZEdldEluZm9DbWQsIDEpLCAwKTsKKworICAgIGF1dG8gc2VyaWFsaXplZERhdGEyID0g
ZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRo
ZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbik7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRh
Mi5zaXplKCksIDF1KTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhMi5kYXRh
KCksICZrU2VyaWFsaXplZEdldE5leHRBc3NlcnRpb25DbWQsIDEpLCAwKTsKKworICAgIGF1dG8g
c2VyaWFsaXplZERhdGEzID0gZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVx
dWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yUmVzZXQpOworICAgIEVYUEVDVF9FUShzZXJpYWxp
emVkRGF0YTMuc2l6ZSgpLCAxdSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0
YTMuZGF0YSgpLCAma1NlcmlhbGl6ZWRSZXNldENtZCwgMSksIDApOworfQorCit9IC8vIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRlc3Qu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRlc3Qu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNiNWQyNWU1ZmVlYWY3NzNjMzdjNDE2OGE3NTkzM2FmNjVmMWQ4YjIK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3Rh
cFJlc3BvbnNlVGVzdC5jcHAKQEAgLTAsMCArMSwzNTQgQEAKKy8vIENvcHlyaWdodCAyMDE3IFRo
ZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
Ky8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisv
LyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
Ly8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
Ly8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5B
QkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkZpZG9UZXN0RGF0YS5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvQ0JPUlJlYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ0JPUlZhbHVlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9DQk9SV3JpdGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EZXZpY2VSZXNw
b25zZUNvbnZlcnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlkb0NvbnN0YW50cy5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUHVibGljS2V5Q3JlZGVudGlhbC5oPgorCituYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7Cit1c2luZyBuYW1lc3BhY2UgZmlkbzsKKworY29uc3RleHByIHVpbnQ4X3Qga1Rl
c3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aE5vVmVyc2lvbltdID0geworICAgIC8v
IFN1Y2Nlc3Mgc3RhdHVzIGJ5dGUKKyAgICAweDAwLAorICAgIC8vIE1hcCBvZiA2IGVsZW1lbnRz
CisgICAgMHhBNiwKKyAgICAvLyBLZXkoMDEpIC0gdmVyc2lvbnMKKyAgICAweDAxLAorICAgIC8v
IEFycmF5KDApCisgICAgMHg4MCwKKyAgICAvLyBLZXkoMDIpIC0gZXh0ZW5zaW9ucworICAgIDB4
MDIsCisgICAgLy8gQXJyYXkoMikKKyAgICAweDgyLAorICAgIC8vICJ1dm0iCisgICAgMHg2Mywg
MHg3NSwgMHg3NiwgMHg2RCwKKyAgICAvLyAiaG1hYy1zZWNyZXQiCisgICAgMHg2QiwgMHg2OCwg
MHg2RCwgMHg2MSwgMHg2MywgMHgyRCwgMHg3MywgMHg2NSwgMHg2MywgMHg3MiwgMHg2NSwgMHg3
NCwKKyAgICAvLyBLZXkoMDMpIC0gQUFHVUlECisgICAgMHgwMywKKyAgICAvLyBCeXRlcygxNikK
KyAgICAweDUwLCAweEY4LCAweEEwLCAweDExLCAweEYzLCAweDhDLCAweDBBLCAweDRELCAweDE1
LCAweDgwLCAweDA2LCAweDE3LAorICAgIDB4MTEsIDB4MUYsIDB4OUUsIDB4REMsIDB4N0QsCisg
ICAgLy8gS2V5KDA0KSAtIG9wdGlvbnMKKyAgICAweDA0LAorICAgIC8vIE1hcCgwNSkKKyAgICAw
eEE1LAorICAgIC8vIEtleSAtICJyayIKKyAgICAweDYyLCAweDcyLCAweDZCLAorICAgIC8vIHRy
dWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJ1cCIKKyAgICAweDYyLCAweDc1LCAweDcwLAor
ICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJ1diIKKyAgICAweDYyLCAweDc1
LCAweDc2LAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJwbGF0IgorICAg
IDB4NjQsIDB4NzAsIDB4NkMsIDB4NjEsIDB4NzQsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisg
ICAgLy8gS2V5IC0gImNsaWVudFBpbiIKKyAgICAweDY5LCAweDYzLCAweDZDLCAweDY5LCAweDY1
LCAweDZFLCAweDc0LCAweDUwLCAweDY5LCAweDZFLAorICAgIC8vIGZhbHNlCisgICAgMHhGNCwK
KyAgICAvLyBLZXkoMDUpIC0gTWF4IG1lc3NhZ2Ugc2l6ZQorICAgIDB4MDUsCisgICAgLy8gMTIw
MAorICAgIDB4MTksIDB4MDQsIDB4QjAsCisgICAgLy8gS2V5KDA2KSAtIFBpbiBwcm90b2NvbHMK
KyAgICAweDA2LAorICAgIC8vIEFycmF5WzFdCisgICAgMHg4MSwgMHgwMSwKK307CisKK2NvbnN0
ZXhwciB1aW50OF90IGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVdpdGhEdXBsaWNh
dGVWZXJzaW9uW10gPSB7CisgICAgLy8gU3VjY2VzcyBzdGF0dXMgYnl0ZQorICAgIDB4MDAsCisg
ICAgLy8gTWFwIG9mIDYgZWxlbWVudHMKKyAgICAweEE2LAorICAgIC8vIEtleSgwMSkgLSB2ZXJz
aW9ucworICAgIDB4MDEsCisgICAgLy8gQXJyYXkoMDIpCisgICAgMHg4MiwKKyAgICAvLyAiVTJG
X1YyIgorICAgIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYsIDB4NTYsIDB4MzIsCisgICAg
Ly8gIlUyRl9WMiIKKyAgICAweDY2LCAweDU1LCAweDMyLCAweDQ2LCAweDVGLCAweDU2LCAweDMy
LAorICAgIC8vIEtleSgwMikgLSBleHRlbnNpb25zCisgICAgMHgwMiwKKyAgICAvLyBBcnJheSgy
KQorICAgIDB4ODIsCisgICAgLy8gInV2bSIKKyAgICAweDYzLCAweDc1LCAweDc2LCAweDZELAor
ICAgIC8vICJobWFjLXNlY3JldCIKKyAgICAweDZCLCAweDY4LCAweDZELCAweDYxLCAweDYzLCAw
eDJELCAweDczLCAweDY1LCAweDYzLCAweDcyLCAweDY1LCAweDc0LAorICAgIC8vIEtleSgwMykg
LSBBQUdVSUQKKyAgICAweDAzLAorICAgIC8vIEJ5dGVzKDE2KQorICAgIDB4NTAsIDB4RjgsIDB4
QTAsIDB4MTEsIDB4RjMsIDB4OEMsIDB4MEEsIDB4NEQsIDB4MTUsIDB4ODAsIDB4MDYsIDB4MTcs
CisgICAgMHgxMSwgMHgxRiwgMHg5RSwgMHhEQywgMHg3RCwKKyAgICAvLyBLZXkoMDQpIC0gb3B0
aW9ucworICAgIDB4MDQsCisgICAgLy8gTWFwKDA1KQorICAgIDB4QTUsCisgICAgLy8gS2V5IC0g
InJrIgorICAgIDB4NjIsIDB4NzIsIDB4NkIsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAg
Ly8gS2V5IC0gInVwIgorICAgIDB4NjIsIDB4NzUsIDB4NzAsCisgICAgLy8gdHJ1ZQorICAgIDB4
RjUsCisgICAgLy8gS2V5IC0gInV2IgorICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gdHJ1
ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInBsYXQiCisgICAgMHg2NCwgMHg3MCwgMHg2Qywg
MHg2MSwgMHg3NCwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAiY2xpZW50
UGluIgorICAgIDB4NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4NTAs
IDB4NjksIDB4NkUsCisgICAgLy8gZmFsc2UKKyAgICAweEY0LAorICAgIC8vIEtleSgwNSkgLSBN
YXggbWVzc2FnZSBzaXplCisgICAgMHgwNSwKKyAgICAvLyAxMjAwCisgICAgMHgxOSwgMHgwNCwg
MHhCMCwKKyAgICAvLyBLZXkoMDYpIC0gUGluIHByb3RvY29scworICAgIDB4MDYsCisgICAgLy8g
QXJyYXlbMV0KKyAgICAweDgxLCAweDAxLAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RB
dXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aEluY29ycmVjdEFhZ3VpZFtdID0geworICAg
IC8vIFN1Y2Nlc3Mgc3RhdHVzIGJ5dGUKKyAgICAweDAwLAorICAgIC8vIE1hcCBvZiA2IGVsZW1l
bnRzCisgICAgMHhBNiwKKyAgICAvLyBLZXkoMDEpIC0gdmVyc2lvbnMKKyAgICAweDAxLAorICAg
IC8vIEFycmF5KDAxKQorICAgIDB4ODEsCisgICAgLy8gIlUyRl9WMiIKKyAgICAweDY2LCAweDU1
LCAweDMyLCAweDQ2LCAweDVGLCAweDU2LCAweDMyLAorICAgIC8vIEtleSgwMikgLSBleHRlbnNp
b25zCisgICAgMHgwMiwKKyAgICAvLyBBcnJheSgyKQorICAgIDB4ODIsCisgICAgLy8gInV2bSIK
KyAgICAweDYzLCAweDc1LCAweDc2LCAweDZELAorICAgIC8vICJobWFjLXNlY3JldCIKKyAgICAw
eDZCLCAweDY4LCAweDZELCAweDYxLCAweDYzLCAweDJELCAweDczLCAweDY1LCAweDYzLCAweDcy
LCAweDY1LCAweDc0LAorICAgIC8vIEtleSgwMykgLSBBQUdVSUQKKyAgICAweDAzLAorICAgIC8v
IEJ5dGVzKDE3KSAtIEZJRE8yIGRldmljZSBBQUdVSUQgbXVzdCBiZSAxNiBieXRlcyBsb25nIGlu
IG9yZGVyIHRvIGJlCisgICAgLy8gY29ycmVjdC4KKyAgICAweDUxLCAweEY4LCAweEEwLCAweDEx
LCAweEYzLCAweDhDLCAweDBBLCAweDRELCAweDE1LCAweDgwLCAweDA2LCAweDE3LAorICAgIDB4
MTEsIDB4MUYsIDB4OUUsIDB4REMsIDB4N0QsIDB4MDAsCisgICAgLy8gS2V5KDA0KSAtIG9wdGlv
bnMKKyAgICAweDA0LAorICAgIC8vIE1hcCgwNSkKKyAgICAweEE1LAorICAgIC8vIEtleSAtICJy
ayIKKyAgICAweDYyLCAweDcyLCAweDZCLAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8v
IEtleSAtICJ1cCIKKyAgICAweDYyLCAweDc1LCAweDcwLAorICAgIC8vIHRydWUKKyAgICAweEY1
LAorICAgIC8vIEtleSAtICJ1diIKKyAgICAweDYyLCAweDc1LCAweDc2LAorICAgIC8vIHRydWUK
KyAgICAweEY1LAorICAgIC8vIEtleSAtICJwbGF0IgorICAgIDB4NjQsIDB4NzAsIDB4NkMsIDB4
NjEsIDB4NzQsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gImNsaWVudFBp
biIKKyAgICAweDY5LCAweDYzLCAweDZDLCAweDY5LCAweDY1LCAweDZFLCAweDc0LCAweDUwLCAw
eDY5LCAweDZFLAorICAgIC8vIGZhbHNlCisgICAgMHhGNCwKKyAgICAvLyBLZXkoMDUpIC0gTWF4
IG1lc3NhZ2Ugc2l6ZQorICAgIDB4MDUsCisgICAgLy8gMTIwMAorICAgIDB4MTksIDB4MDQsIDB4
QjAsCisgICAgLy8gS2V5KDA2KSAtIFBpbiBwcm90b2NvbHMKKyAgICAweDA2LAorICAgIC8vIEFy
cmF5WzFdCisgICAgMHg4MSwgMHgwMSwKK307CisKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0RGV2
aWNlQWFndWlkW10gPSB7CisgICAgMHhGOCwgMHhBMCwgMHgxMSwgMHhGMywgMHg4QywgMHgwQSwg
MHg0RCwgMHgxNSwgMHg4MCwgMHgwNiwgMHgxNywgMHgxMSwgMHgxRiwgMHg5RSwgMHhEQywgMHg3
RAorfTsKKworLy8gR2V0IGEgc3Vic2V0IG9mIHRoZSByZXNwb25zZSBmb3IgdGVzdGluZyBlcnJv
ciBoYW5kbGluZy4KK1ZlY3Rvcjx1aW50OF90PiBnZXRUZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNl
KHNpemVfdCBsZW5ndGgpCit7CisgICAgQVNTRVJUKGxlbmd0aCA8IHNpemVvZihUZXN0RGF0YTo6
a1Rlc3RVMmZTaWduUmVzcG9uc2UpKTsKKyAgICBWZWN0b3I8dWludDhfdD4gdGVzdENvcnJ1cHRl
ZFNpZ25SZXNwb25zZTsKKyAgICB0ZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNlLnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkobGVuZ3RoKTsKKyAgICB0ZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNlLmFwcGVu
ZChUZXN0RGF0YTo6a1Rlc3RVMmZTaWduUmVzcG9uc2UsIGxlbmd0aCk7CisgICAgcmV0dXJuIHRl
c3RDb3JydXB0ZWRTaWduUmVzcG9uc2U7Cit9CisKKy8vIFJldHVybiBhIGtleSBoYW5kbGUgdXNl
ZCBmb3IgR2V0QXNzZXJ0aW9uIHJlcXVlc3QuCitWZWN0b3I8dWludDhfdD4gZ2V0VGVzdENyZWRl
bnRpYWxSYXdJZEJ5dGVzKCkKK3sKKyAgICBWZWN0b3I8dWludDhfdD4gdGVzdENyZWRlbnRpYWxS
YXdJZEJ5dGVzOworICAgIHRlc3RDcmVkZW50aWFsUmF3SWRCeXRlcy5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KHNpemVvZihUZXN0RGF0YTo6a1UyZlNpZ25LZXlIYW5kbGUpKTsKKyAgICB0ZXN0Q3Jl
ZGVudGlhbFJhd0lkQnl0ZXMuYXBwZW5kKFRlc3REYXRhOjprVTJmU2lnbktleUhhbmRsZSwgc2l6
ZW9mKFRlc3REYXRhOjprVTJmU2lnbktleUhhbmRsZSkpOworICAgIHJldHVybiB0ZXN0Q3JlZGVu
dGlhbFJhd0lkQnl0ZXM7Cit9CisKK1ZlY3Rvcjx1aW50OF90PiBjb252ZXJ0VG9WZWN0b3IoY29u
c3QgdWludDhfdCBieXRlQXJyYXlbXSwgY29uc3Qgc2l6ZV90IGxlbmd0aCkKK3sKKyAgICBWZWN0
b3I8dWludDhfdD4gcmVzdWx0OworICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGxl
bmd0aCk7CisgICAgcmVzdWx0LmFwcGVuZChieXRlQXJyYXksIGxlbmd0aCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworLy8gTGV2ZXJhZ2luZyBleGFtcGxlIDQgb2Ygc2VjdGlvbiA2LjEgb2Yg
dGhlIHNwZWMKKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMt
MjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIw
MTcwOTI3Lmh0bWwjY29tbWFuZHMKK1RFU1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVzdFJlYWRNYWtl
Q3JlZGVudGlhbFJlc3BvbnNlKQoreworICAgIGF1dG8gbWFrZUNyZWRlbnRpYWxSZXNwb25zZSA9
IHJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZShjb252ZXJ0VG9WZWN0b3IoVGVzdERhdGE6
OmtUZXN0TWFrZUNyZWRlbnRpYWxSZXNwb25zZSwgc2l6ZW9mKFRlc3REYXRhOjprVGVzdE1ha2VD
cmVkZW50aWFsUmVzcG9uc2UpKSk7CisgICAgQVNTRVJUX1RSVUUobWFrZUNyZWRlbnRpYWxSZXNw
b25zZSk7CisgICAgYXV0byBjYm9yQXR0ZXN0YXRpb25PYmplY3QgPSBjYm9yOjpDQk9SUmVhZGVy
OjpyZWFkKGNvbnZlcnRUb1ZlY3RvcihyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihtYWtlQ3Jl
ZGVudGlhbFJlc3BvbnNlLT5hdHRlc3RhdGlvbk9iamVjdC0+ZGF0YSgpKSwgbWFrZUNyZWRlbnRp
YWxSZXNwb25zZS0+YXR0ZXN0YXRpb25PYmplY3QtPmJ5dGVMZW5ndGgoKSkpOworICAgIEFTU0VS
VF9UUlVFKGNib3JBdHRlc3RhdGlvbk9iamVjdCk7CisgICAgQVNTRVJUX1RSVUUoY2JvckF0dGVz
dGF0aW9uT2JqZWN0LT5pc01hcCgpKTsKKworICAgIGNvbnN0IGF1dG8mIGF0dGVzdGF0aW9uT2Jq
ZWN0TWFwID0gY2JvckF0dGVzdGF0aW9uT2JqZWN0LT5nZXRNYXAoKTsKKyAgICBhdXRvIGl0ID0g
YXR0ZXN0YXRpb25PYmplY3RNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoa0Zvcm1hdEtleSkpOwor
ICAgIEFTU0VSVF9UUlVFKGl0ICE9IGF0dGVzdGF0aW9uT2JqZWN0TWFwLmVuZCgpKTsKKyAgICBB
U1NFUlRfVFJVRShpdC0+c2Vjb25kLmlzU3RyaW5nKCkpOworICAgIEVYUEVDVF9TVFJFUShpdC0+
c2Vjb25kLmdldFN0cmluZygpLnV0ZjgoKS5kYXRhKCksICJwYWNrZWQiKTsKKworICAgIGl0ID0g
YXR0ZXN0YXRpb25PYmplY3RNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoa0F1dGhEYXRhS2V5KSk7
CisgICAgQVNTRVJUX1RSVUUoaXQgIT0gYXR0ZXN0YXRpb25PYmplY3RNYXAuZW5kKCkpOworICAg
IEFTU0VSVF9UUlVFKGl0LT5zZWNvbmQuaXNCeXRlU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShp
dC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKSwgY29udmVydFRvVmVjdG9yKFRlc3REYXRhOjprQ3Rh
cDJNYWtlQ3JlZGVudGlhbEF1dGhEYXRhLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVk
ZW50aWFsQXV0aERhdGEpKSk7CisKKyAgICBpdCA9IGF0dGVzdGF0aW9uT2JqZWN0TWFwLmZpbmQo
Y2Jvcjo6Q0JPUlZhbHVlKGtBdHRlc3RhdGlvblN0YXRlbWVudEtleSkpOworICAgIEFTU0VSVF9U
UlVFKGl0ICE9IGF0dGVzdGF0aW9uT2JqZWN0TWFwLmVuZCgpKTsKKyAgICBBU1NFUlRfVFJVRShp
dC0+c2Vjb25kLmlzTWFwKCkpOworCisgICAgY29uc3QgYXV0byYgYXR0ZXN0YXRpb25TdGF0ZW1l
bnRNYXAgPSBpdC0+c2Vjb25kLmdldE1hcCgpOworICAgIGF1dG8gYXR0U3RtdEl0ID0gYXR0ZXN0
YXRpb25TdGF0ZW1lbnRNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoImFsZyIpKTsKKworICAgIEFT
U0VSVF9UUlVFKGF0dFN0bXRJdCAhPSBhdHRlc3RhdGlvblN0YXRlbWVudE1hcC5lbmQoKSk7Cisg
ICAgQVNTRVJUX1RSVUUoYXR0U3RtdEl0LT5zZWNvbmQuaXNJbnRlZ2VyKCkpOworICAgIEVYUEVD
VF9FUShhdHRTdG10SXQtPnNlY29uZC5nZXRJbnRlZ2VyKCksIC03KTsKKworICAgIGF0dFN0bXRJ
dCA9IGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwLmZpbmQoY2Jvcjo6Q0JPUlZhbHVlKCJzaWciKSk7
CisgICAgQVNTRVJUX1RSVUUoYXR0U3RtdEl0ICE9IGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwLmVu
ZCgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRTdG10SXQtPnNlY29uZC5pc0J5dGVTdHJpbmcoKSk7
CisgICAgRVhQRUNUX0VRKGF0dFN0bXRJdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKSwgY29udmVy
dFRvVmVjdG9yKFRlc3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVudGlhbFNpZ25hdHVyZSwgc2l6ZW9m
KFRlc3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVudGlhbFNpZ25hdHVyZSkpKTsKKworICAgIGF0dFN0
bXRJdCA9IGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwLmZpbmQoY2Jvcjo6Q0JPUlZhbHVlKCJ4NWMi
KSk7CisgICAgQVNTRVJUX1RSVUUoYXR0U3RtdEl0ICE9IGF0dGVzdGF0aW9uU3RhdGVtZW50TWFw
LmVuZCgpKTsKKyAgICBjb25zdCBhdXRvJiBjZXJ0aWZpY2F0ZSA9IGF0dFN0bXRJdC0+c2Vjb25k
OworICAgIEFTU0VSVF9UUlVFKGNlcnRpZmljYXRlLmlzQXJyYXkoKSk7CisgICAgQVNTRVJUX0VR
KGNlcnRpZmljYXRlLmdldEFycmF5KCkuc2l6ZSgpLCAxdSk7CisgICAgQVNTRVJUX1RSVUUoY2Vy
dGlmaWNhdGUuZ2V0QXJyYXkoKVswXS5pc0J5dGVTdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKGNl
cnRpZmljYXRlLmdldEFycmF5KClbMF0uZ2V0Qnl0ZVN0cmluZygpLCBjb252ZXJ0VG9WZWN0b3Io
VGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsQ2VydGlmaWNhdGUsIHNpemVvZihUZXN0RGF0
YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxDZXJ0aWZpY2F0ZSkpKTsKKyAgICBFWFBFQ1RfRVEobWFr
ZUNyZWRlbnRpYWxSZXNwb25zZS0+cmF3SWQtPmJ5dGVMZW5ndGgoKSwgc2l6ZW9mKFRlc3REYXRh
OjprQ3RhcDJNYWtlQ3JlZGVudGlhbENyZWRlbnRpYWxJZCkpOworICAgIEVYUEVDVF9FUShtZW1j
bXAobWFrZUNyZWRlbnRpYWxSZXNwb25zZS0+cmF3SWQtPmRhdGEoKSwgVGVzdERhdGE6OmtDdGFw
Mk1ha2VDcmVkZW50aWFsQ3JlZGVudGlhbElkLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMk1ha2VD
cmVkZW50aWFsQ3JlZGVudGlhbElkKSksIDApOworfQorCisvLyBMZXZlcmFnaW5nIGV4YW1wbGUg
NSBvZiBzZWN0aW9uIDYuMSBvZiB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFu
Y2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50
aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbAorVEVTVChDVEFQUmVzcG9uc2VU
ZXN0LCBUZXN0UmVhZEdldEFzc2VydGlvblJlc3BvbnNlKQoreworICAgIGF1dG8gZ2V0QXNzZXJ0
aW9uUmVzcG9uc2UgPSByZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKGNvbnZlcnRUb1ZlY3Rv
cihUZXN0RGF0YTo6a0RldmljZUdldEFzc2VydGlvblJlc3BvbnNlLCBzaXplb2YoVGVzdERhdGE6
OmtEZXZpY2VHZXRBc3NlcnRpb25SZXNwb25zZSkpKTsKKyAgICBBU1NFUlRfVFJVRShnZXRBc3Nl
cnRpb25SZXNwb25zZSk7CisKKyAgICBFWFBFQ1RfRVEoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPmF1
dGhlbnRpY2F0b3JEYXRhLT5ieXRlTGVuZ3RoKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyR2V0
QXNzZXJ0aW9uQXV0aERhdGEpKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKGdldEFzc2VydGlvblJl
c3BvbnNlLT5hdXRoZW50aWNhdG9yRGF0YS0+ZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXAyR2V0QXNz
ZXJ0aW9uQXV0aERhdGEsIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uQXV0aERh
dGEpKSwgMCk7CisgICAgRVhQRUNUX0VRKGdldEFzc2VydGlvblJlc3BvbnNlLT5zaWduYXR1cmUt
PmJ5dGVMZW5ndGgoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25TaWduYXR1
cmUpKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKGdldEFzc2VydGlvblJlc3BvbnNlLT5zaWduYXR1
cmUtPmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwMkdldEFzc2VydGlvblNpZ25hdHVyZSwgc2l6ZW9m
KFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25TaWduYXR1cmUpKSwgMCk7Cit9CisKK1RFU1Qo
Q1RBUFJlc3BvbnNlVGVzdCwgVGVzdFJlYWRHZXRJbmZvUmVzcG9uc2UpCit7CisgICAgYXV0byBn
ZXRJbmZvUmVzcG9uc2UgPSByZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb252ZXJ0VG9WZWN0b3Io
VGVzdERhdGE6OmtUZXN0R2V0SW5mb1Jlc3BvbnNlUGxhdGZvcm1EZXZpY2UsIHNpemVvZihUZXN0
RGF0YTo6a1Rlc3RHZXRJbmZvUmVzcG9uc2VQbGF0Zm9ybURldmljZSkpKTsKKyAgICBBU1NFUlRf
VFJVRShnZXRJbmZvUmVzcG9uc2UpOworICAgIEFTU0VSVF9UUlVFKGdldEluZm9SZXNwb25zZS0+
bWF4TXNnU2l6ZSgpKTsKKyAgICBFWFBFQ1RfRVEoKmdldEluZm9SZXNwb25zZS0+bWF4TXNnU2l6
ZSgpLCAxMjAwdSk7CisgICAgRVhQRUNUX05FKGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5m
aW5kKFByb3RvY29sVmVyc2lvbjo6a0N0YXApLCBnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCku
ZW5kKCkpOworICAgIEVYUEVDVF9ORShnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZmluZChQ
cm90b2NvbFZlcnNpb246OmtVMmYpLCBnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZW5kKCkp
OworICAgIEVYUEVDVF9UUlVFKGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLmlzUGxhdGZvcm1E
ZXZpY2UoKSk7CisgICAgRVhQRUNUX1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5vcHRpb25zKCkuc3Vw
cG9ydHNSZXNpZGVudEtleSgpKTsKKyAgICBFWFBFQ1RfVFJVRShnZXRJbmZvUmVzcG9uc2UtPm9w
dGlvbnMoKS51c2VyUHJlc2VuY2VSZXF1aXJlZCgpKTsKKyAgICBFWFBFQ1RfRVEoQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBw
b3J0ZWRBbmRDb25maWd1cmVkLCBnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS51c2VyVmVyaWZp
Y2F0aW9uQXZhaWxhYmlsaXR5KCkpOworICAgIEVYUEVDVF9FUShBdXRoZW50aWNhdG9yU3VwcG9y
dGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0UGluTm90U2V0
LCBnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS5jbGllbnRQaW5BdmFpbGFiaWxpdHkoKSk7Cit9
CisKK1RFU1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVzdFJlYWRHZXRJbmZvUmVzcG9uc2VXaXRoSW5j
b3JyZWN0Rm9ybWF0KQoreworICAgIEVYUEVDVF9GQUxTRShyZWFkQ1RBUEdldEluZm9SZXNwb25z
ZShjb252ZXJ0VG9WZWN0b3Ioa1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aE5v
VmVyc2lvbiwgc2l6ZW9mKGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVdpdGhOb1Zl
cnNpb24pKSkpOworICAgIEVYUEVDVF9GQUxTRShyZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb252
ZXJ0VG9WZWN0b3Ioa1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aER1cGxpY2F0
ZVZlcnNpb24sIHNpemVvZihrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoRHVw
bGljYXRlVmVyc2lvbikpKSk7CisgICAgRVhQRUNUX0ZBTFNFKHJlYWRDVEFQR2V0SW5mb1Jlc3Bv
bnNlKGNvbnZlcnRUb1ZlY3RvcihrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRo
SW5jb3JyZWN0QWFndWlkLCBzaXplb2Yoa1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNl
V2l0aEluY29ycmVjdEFhZ3VpZCkpKSk7Cit9CisKK1RFU1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVz
dFNlcmlhbGl6ZUdldEluZm9SZXNwb25zZSkKK3sKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jl
c3BvbnNlIHJlc3BvbnNlKHsgUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCwgUHJvdG9jb2xWZXJzaW9u
OjprVTJmIH0sIGNvbnZlcnRUb1ZlY3RvcihrVGVzdERldmljZUFhZ3VpZCwgc2l6ZW9mKGtUZXN0
RGV2aWNlQWFndWlkKSkpOworICAgIHJlc3BvbnNlLnNldEV4dGVuc2lvbnMoeyAidXZtIiwgImht
YWMtc2VjcmV0IiB9KTsKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBvcHRpb25z
OworICAgIG9wdGlvbnMuc2V0U3VwcG9ydHNSZXNpZGVudEtleSh0cnVlKTsKKyAgICBvcHRpb25z
LnNldElzUGxhdGZvcm1EZXZpY2UodHJ1ZSk7CisgICAgb3B0aW9ucy5zZXRDbGllbnRQaW5BdmFp
bGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJp
bGl0eTo6a1N1cHBvcnRlZEJ1dFBpbk5vdFNldCk7CisgICAgb3B0aW9ucy5zZXRVc2VyVmVyaWZp
Y2F0aW9uQXZhaWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVy
aWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCk7CisgICAgcmVz
cG9uc2Uuc2V0T3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKTsKKyAgICByZXNwb25zZS5zZXRNYXhN
c2dTaXplKDEyMDApOworICAgIHJlc3BvbnNlLnNldFBpblByb3RvY29scyh7IDEgfSk7CisKKyAg
ICBhdXRvIHJlc3BvbnNlQXNDQk9SID0gZW5jb2RlQXNDQk9SKHJlc3BvbnNlKTsKKyAgICBFWFBF
Q1RfRVEocmVzcG9uc2VBc0NCT1Iuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtUZXN0R2V0SW5m
b1Jlc3BvbnNlUGxhdGZvcm1EZXZpY2UpIC0gMSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChyZXNw
b25zZUFzQ0JPUi5kYXRhKCksIFRlc3REYXRhOjprVGVzdEdldEluZm9SZXNwb25zZVBsYXRmb3Jt
RGV2aWNlICsgMSwgcmVzcG9uc2VBc0NCT1Iuc2l6ZSgpKSwgMCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmggYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWZlYTY1YmYyYTAyZDczYzY4ZDIyMGM2MmMwYTA2OTBmNmYxMzg3YwotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaApA
QCAtMCwwICsxLDY0NSBAQAorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIENocm9taXVtIEF1dGhvcnMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
Ly8gbWV0OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
Ky8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8v
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKK25hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJIHsKKworbmFtZXNwYWNlIFRlc3REYXRhIHsKKworLy8gVTJGIHJlcXVl
c3QgcGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworLy8gU2FtcGxlIFUyRiByZWdpc3RlciByZXF1ZXN0IHBhcmFtZXRlcnMg
dXNlZCBpbiBleGFtcGxlIDYgb2YgdGhlIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlh
bmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVu
dGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjdXNpbmctdGhlLWN0YXAyLWF1
dGhlbnRpY2F0b3JtYWtlY3JlZGVudGlhbC1jb21tYW5kLXdpdGgtY3RhcDEtdTJmLWF1dGhlbnRp
Y2F0b3JzCitjb25zdGV4cHIgdWludDhfdCBrQ2xpZW50RGF0YUhhc2hbXSA9IHsKKyAgICAweDY4
LCAweDcxLCAweDM0LCAweDk2LCAweDgyLCAweDIyLCAweGVjLCAweDE3LCAweDIwLCAweDJlLCAw
eDQyLAorICAgIDB4NTAsIDB4NWYsIDB4OGUsIDB4ZDIsIDB4YjEsIDB4NmEsIDB4ZTIsIDB4MmYs
IDB4MTYsIDB4YmIsIDB4MDUsCisgICAgMHhiOCwgMHg4YywgMHgyNSwgMHhkYiwgMHg5ZSwgMHg2
MCwgMHgyNiwgMHg0NSwgMHhmMSwgMHg0MX07CisKK2NvbnN0ZXhwciB1aW50OF90IGtVc2VySWRb
XSA9IHsweDEwLCAweDk4LCAweDIzLCAweDcyLCAweDM1LCAweDQwLCAweDk4LCAweDcyfTsKKwor
Ly8gU2FtcGxlIFUyRiBzaWduIHJlcXVlc3QgcGFyYW1ldGVycyB1c2VkIGluIGV4YW1wbGUgNyBv
ZiB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8t
djIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYy
LjAtcHMtMjAxNzA5MjcuaHRtbCN1c2luZy10aGUtY3RhcDItYXV0aGVudGljYXRvcm1ha2VjcmVk
ZW50aWFsLWNvbW1hbmQtd2l0aC1jdGFwMS11MmYtYXV0aGVudGljYXRvcnMKK2NvbnN0ZXhwciB1
aW50OF90IGtVMmZTaWduS2V5SGFuZGxlW10gPSB7CisgICAgMHgzRSwgMHhCRCwgMHg4OSwgMHhC
RiwgMHg3NywgMHhFQywgMHg1MCwgMHg5NywgMHg1NSwgMHhFRSwgMHg5QywKKyAgICAweDI2LCAw
eDM1LCAweEVGLCAweEFBLCAweEFDLCAweDdCLCAweDJCLCAweDlDLCAweDVDLCAweEVGLCAweDE3
LAorICAgIDB4MzYsIDB4QzMsIDB4NzEsIDB4N0QsIDB4QTQsIDB4ODUsIDB4MzQsIDB4QzgsIDB4
QzYsIDB4QjYsIDB4NTQsCisgICAgMHhENywgMHhGRiwgMHg5NCwgMHg1RiwgMHg1MCwgMHhCNSwg
MHhDQywgMHg0RSwgMHg3OCwgMHgwNSwgMHg1QiwKKyAgICAweERELCAweDM5LCAweDZCLCAweDY0
LCAweEY3LCAweDhELCAweEEyLCAweEM1LCAweEY5LCAweDYyLCAweDAwLAorICAgIDB4Q0MsIDB4
RDQsIDB4MTUsIDB4Q0QsIDB4MDgsIDB4RkUsIDB4NDIsIDB4MDAsIDB4MzgsCit9OworCisvLyBV
MkYgcmVzcG9uc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBFQyBwdWJsaWMga2V5IGVuY29kZWQgaW4gQ09TRV9L
ZXkgZm9ybWF0IGV4dHJhY3RlZCBmcm9tIGFib3ZlCisvLyB8a1Rlc3RVMmZSZWdpc3RlclJlc3Bv
bnNlfC4KK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0RUNQdWJsaWNLZXlDT1NFW10gPSB7CisgICAg
Ly8gTWFwKDUpCisgICAgMHhBNSwKKyAgICAvLyBrdHk6IEVDIGtleSB0eXBlCisgICAgMHgwMSwg
MHgwMiwKKyAgICAvLyBhbGc6IEVDMjU2IHNpZ25hdHVyZSBhbGdvcml0aG0KKyAgICAweDAzLCAw
eDI2LAorICAgIC8vIGNydjogUC0yNTYgY3VydmUKKyAgICAweDIwLCAweDAxLAorICAgIC8vIHgt
Y29vcmRpbmF0ZQorICAgIDB4MjEsCisgICAgLy8gQnl0ZXMoMzIpCisgICAgMHg1OCwgMHgyMCwK
KyAgICAvLyBCeXRlIGFycmF5IGNvbnRlbnQKKyAgICAweEU4LCAweDc2LCAweDI1LCAweDg5LCAw
eDZFLCAweEU0LCAweEU0LCAweDZELCAweEMwLCAweDMyLCAweDc2LCAweDZFLAorICAgIDB4ODAs
IDB4ODcsIDB4OTYsIDB4MkYsIDB4MzYsIDB4REYsIDB4OUQsIDB4RkUsIDB4OEIsIDB4NTYsIDB4
N0YsIDB4MzcsCisgICAgMHg2MywgMHgwMSwgMHg1QiwgMHgxOSwgMHg5MCwgMHhBNiwgMHgwRSwg
MHgxNCwKKyAgICAvLyB5LWNvb3JkaW5hdGUKKyAgICAweDIyLAorICAgIC8vIEJ5dGVzKDMyKQor
ICAgIDB4NTgsIDB4MjAsCisgICAgLy8gQnl0ZSBhcnJheSBjb250ZW50CisgICAgMHgyNywgMHhE
RSwgMHg2MSwgMHgyRCwgMHg2NiwgMHg0MSwgMHg4QiwgMHhEQSwgMHgxOSwgMHg1MCwgMHg1OCwg
MHgxRSwKKyAgICAweEJDLCAweDVDLCAweDhDLCAweDFELCAweEFELCAweDcxLCAweDBDLCAweEIx
LCAweDRDLCAweDIyLCAweEY4LCAweEM5LAorICAgIDB4NzAsIDB4NDUsIDB4RjQsIDB4NjEsIDB4
MkYsIDB4QjIsIDB4MEMsIDB4OTEsCit9OworCisvLyBUaGUgYXR0ZXN0YXRpb24gc3RhdGVtZW50
IGV4dHJhY3RlZCBmcm9tIGFib3ZlIHxrVGVzdFUyZlJlZ2lzdGVyUmVzcG9uc2V8LCBhCisvLyBD
Qk9SLWVuY29kZWQgYnl0ZSBhcnJheS4KKy8vIERpYWdub3N0aWMgbm90YXRpb246CisvLyB7InNp
ZyI6CisvLyBoJzMwNDUwMjIwMzI0Nzc5QzY4RjMzODAyODhBMTE5N0I2MDk1RjdBNkVCOUIxQjFD
MTI3RjY2QUUxMkE5OUZFODUzMkVDMjNCOQorLy8gICAwMjIxMDBFMzk1MTZBQzRENjFFRTY0MDQ0
RDUwQjQxNUE2QTRENEQ4NEJBNkQ4OTVDQjVBQjdBMUFBN0QwODFERTM0MUZBJywKKy8vICJ4NWMi
OiBbaCczMDgyMDI0QTMwODIwMTMyQTAwMzAyMDEwMjAyMDQwNDZDODgyMjMwMEQwNjA5MkE4NjQ4
ODZGNzBEMDEwMTBCMCBcCisvLyA1MDAzMDJFMzEyQzMwMkEwNjAzNTUwNDAzMTMyMzU5NzU2MjY5
NjM2RjIwNTUzMjQ2MjA1MjZGNkY3NDIwNDM0MTIwNTM2NTcyNjkgXAorLy8gNjE2QzIwMzQzNTM3
MzIzMDMwMzYzMzMxMzAyMDE3MEQzMTM0MzAzODMwMzEzMDMwMzAzMDMwMzA1QTE4MEYzMjMwMzUz
MDMwMzkzIFwKKy8vIDAzNDMwMzAzMDMwMzAzMDVBMzAyQzMxMkEzMDI4MDYwMzU1MDQwMzBDMjE1
OTc1NjI2OTYzNkYyMDU1MzI0NjIwNDU0NTIwNTM2NSBcCisvLyA3MjY5NjE2QzIwMzIzNDM5MzEz
ODMyMzMzMjM0MzczNzMwMzA1OTMwMTMwNjA3MkE4NjQ4Q0UzRDAyMDEwNjA4MkE4NjQ4Q0UzRDAg
XAorLy8gMzAxMDcwMzQyMDAwNDNDQ0FCOTJDQ0I5NzI4N0VFOEU2Mzk0MzdFMjFGQ0Q2QjZGMTY1
QjJENUEzRjNEQjEzMUQzMUMxNkI3NDJCIFwKKy8vIEI0NzZEOEQxRTk5MDgwRUI1NDZDOUJCREY1
NTZFNjIxMEZENDI3ODU4OTlFNzhDQzU4OUVCRTMxMEY2Q0RCOUZGNEEzM0IzMDM5MyBcCisvLyAw
MjIwNjA5MkIwNjAxMDQwMTgyQzQwQTAyMDQxNTMxMkUzMzJFMzYyRTMxMkUzNDJFMzEyRTM0MzEz
NDM4MzIyRTMxMkUzMjMwMTMgXAorLy8gMDYwQjJCMDYwMTA0MDE4MkU1MUMwMjAxMDEwNDA0MDMw
MjA0MzAzMDBEMDYwOTJBODY0ODg2RjcwRDAxMDEwQjA1MDAwMzgyMDEwIFwKKy8vIDEwMDlGOUIw
NTIyNDhCQzRDRjQyQ0M1OTkxRkNBQUJBQzlCNjUxQkJFNUJEQ0RDOEVGMEFEMkMxQzFGRkIzNkQx
ODcxNUQ0MkU3OCBcCisvLyBCMjQ5MjI0RjkyQzdFNkU3QTA1QzQ5RjBFN0U0Qzg4MUJGMkU5NEY0
NUU0QTIxODMzRDc0NTY4NTFEMEY2QzE0NUEyOTU0MEM4NzQgXAorLy8gRjMwOTJDOTM0QjQzRDIy
MkI4OTYyQzBGNDEwQ0VGMURCNzU4OTJBRjExNkI0NEE5NkY1RDM1QURFQTM4MjJGQzcxNDZGNjAw
NDM4IFwKKy8vIDVCQ0I2OUI2NUM5OUU3RUI2OTE5Nzg2NzAzQzBEOENENDFFOEY3NUNDQTQ0QUE4
QUI3MjVBRDhFNzk5RkYzQTg2OTZBNkYxQjI2NSBcCisvLyA2RTYzMUIxRTQwMTgzQzA4RkRBNTNG
QTRBOEY4NUEwNTY5Mzk0NEFFMTc5QTEzMzlEMDAyRDE1Q0FCRDgxMDA5MEVDNzIyRUY1REUgXAor
Ly8gRjk5NjVBMzcxRDQxNUQ2MjRCNjhBMjcwN0NBRDk3QkNERDE3ODVBRjk3RTI1OEYzM0RGNTZB
MDMxQUEwMzU2RDhFOEQ1RUJDQURDIFwKKy8vIDc0RTA3MTYzNkM2QjExMEFDRTVDQzlCOTBERkVB
Q0FFNjQwRkYxQkIwRjFGRTVEQjRFRkY3QTk1RjA2MDczM0Y1J119Citjb25zdGV4cHIgdWludDhf
dCBrVTJmQXR0ZXN0YXRpb25TdGF0ZW1lbnRDQk9SW10gPSB7CisgICAgLy8gTWFwKDIpCisgICAg
MHhBMiwKKyAgICAvLyBUZXh0KDMpCisgICAgMHg2MywKKyAgICAvLyAic2lnIgorICAgIDB4NzMs
IDB4NjksIDB4NjcsCisgICAgLy8gQnl0ZXMoNzEpCisgICAgMHg1OCwgMHg0NywKKyAgICAvLyBC
eXRlIGFycmF5IGNvbnRlbnQKKyAgICAweDMwLCAweDQ1LCAweDAyLCAweDIwLCAweDMyLCAweDQ3
LCAweDc5LCAweEM2LCAweDhGLCAweDMzLCAweDgwLCAweDI4LAorICAgIDB4OEEsIDB4MTEsIDB4
OTcsIDB4QjYsIDB4MDksIDB4NUYsIDB4N0EsIDB4NkUsIDB4QjksIDB4QjEsIDB4QjEsIDB4QzEs
CisgICAgMHgyNywgMHhGNiwgMHg2QSwgMHhFMSwgMHgyQSwgMHg5OSwgMHhGRSwgMHg4NSwgMHgz
MiwgMHhFQywgMHgyMywgMHhCOSwKKyAgICAweDAyLCAweDIxLCAweDAwLCAweEUzLCAweDk1LCAw
eDE2LCAweEFDLCAweDRELCAweDYxLCAweEVFLCAweDY0LCAweDA0LAorICAgIDB4NEQsIDB4NTAs
IDB4QjQsIDB4MTUsIDB4QTYsIDB4QTQsIDB4RDQsIDB4RDgsIDB4NEIsIDB4QTYsIDB4RDgsIDB4
OTUsCisgICAgMHhDQiwgMHg1QSwgMHhCNywgMHhBMSwgMHhBQSwgMHg3RCwgMHgwOCwgMHgxRCwg
MHhFMywgMHg0MSwgMHhGQSwKKyAgICAvLyBUZXh0KDMpCisgICAgMHg2MywKKyAgICAvLyAieDVj
IgorICAgIDB4NzgsIDB4MzUsIDB4NjMsCisgICAgLy8gQXJyYXkoMSkKKyAgICAweDgxLAorICAg
IC8vIEJ5dGVzKDU5MCkKKyAgICAweDU5LCAweDAyLCAweDRFLAorICAgIC8vIEJ5dGUgYXJyYXkg
Y29udGVudAorICAgIDB4MzAsIDB4ODIsIDB4MDIsIDB4NEEsIDB4MzAsIDB4ODIsIDB4MDEsIDB4
MzIsIDB4QTAsIDB4MDMsIDB4MDIsIDB4MDEsCisgICAgMHgwMiwgMHgwMiwgMHgwNCwgMHgwNCwg
MHg2QywgMHg4OCwgMHgyMiwgMHgzMCwgMHgwRCwgMHgwNiwgMHgwOSwgMHgyQSwKKyAgICAweDg2
LCAweDQ4LCAweDg2LCAweEY3LCAweDBELCAweDAxLCAweDAxLCAweDBCLCAweDA1LCAweDAwLCAw
eDMwLCAweDJFLAorICAgIDB4MzEsIDB4MkMsIDB4MzAsIDB4MkEsIDB4MDYsIDB4MDMsIDB4NTUs
IDB4MDQsIDB4MDMsIDB4MTMsIDB4MjMsIDB4NTksCisgICAgMHg3NSwgMHg2MiwgMHg2OSwgMHg2
MywgMHg2RiwgMHgyMCwgMHg1NSwgMHgzMiwgMHg0NiwgMHgyMCwgMHg1MiwgMHg2RiwKKyAgICAw
eDZGLCAweDc0LCAweDIwLCAweDQzLCAweDQxLCAweDIwLCAweDUzLCAweDY1LCAweDcyLCAweDY5
LCAweDYxLCAweDZDLAorICAgIDB4MjAsIDB4MzQsIDB4MzUsIDB4MzcsIDB4MzIsIDB4MzAsIDB4
MzAsIDB4MzYsIDB4MzMsIDB4MzEsIDB4MzAsIDB4MjAsCisgICAgMHgxNywgMHgwRCwgMHgzMSwg
MHgzNCwgMHgzMCwgMHgzOCwgMHgzMCwgMHgzMSwgMHgzMCwgMHgzMCwgMHgzMCwgMHgzMCwKKyAg
ICAweDMwLCAweDMwLCAweDVBLCAweDE4LCAweDBGLCAweDMyLCAweDMwLCAweDM1LCAweDMwLCAw
eDMwLCAweDM5LCAweDMwLAorICAgIDB4MzQsIDB4MzAsIDB4MzAsIDB4MzAsIDB4MzAsIDB4MzAs
IDB4MzAsIDB4NUEsIDB4MzAsIDB4MkMsIDB4MzEsIDB4MkEsCisgICAgMHgzMCwgMHgyOCwgMHgw
NiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwMywgMHgwQywgMHgyMSwgMHg1OSwgMHg3NSwgMHg2MiwK
KyAgICAweDY5LCAweDYzLCAweDZGLCAweDIwLCAweDU1LCAweDMyLCAweDQ2LCAweDIwLCAweDQ1
LCAweDQ1LCAweDIwLCAweDUzLAorICAgIDB4NjUsIDB4NzIsIDB4NjksIDB4NjEsIDB4NkMsIDB4
MjAsIDB4MzIsIDB4MzQsIDB4MzksIDB4MzEsIDB4MzgsIDB4MzIsCisgICAgMHgzMywgMHgzMiwg
MHgzNCwgMHgzNywgMHgzNywgMHgzMCwgMHgzMCwgMHg1OSwgMHgzMCwgMHgxMywgMHgwNiwgMHgw
NywKKyAgICAweDJBLCAweDg2LCAweDQ4LCAweENFLCAweDNELCAweDAyLCAweDAxLCAweDA2LCAw
eDA4LCAweDJBLCAweDg2LCAweDQ4LAorICAgIDB4Q0UsIDB4M0QsIDB4MDMsIDB4MDEsIDB4MDcs
IDB4MDMsIDB4NDIsIDB4MDAsIDB4MDQsIDB4M0MsIDB4Q0EsIDB4QjksCisgICAgMHgyQywgMHhD
QiwgMHg5NywgMHgyOCwgMHg3RSwgMHhFOCwgMHhFNiwgMHgzOSwgMHg0MywgMHg3RSwgMHgyMSwg
MHhGQywKKyAgICAweEQ2LCAweEI2LCAweEYxLCAweDY1LCAweEIyLCAweEQ1LCAweEEzLCAweEYz
LCAweERCLCAweDEzLCAweDFELCAweDMxLAorICAgIDB4QzEsIDB4NkIsIDB4NzQsIDB4MkIsIDB4
QjQsIDB4NzYsIDB4RDgsIDB4RDEsIDB4RTksIDB4OTAsIDB4ODAsIDB4RUIsCisgICAgMHg1NCwg
MHg2QywgMHg5QiwgMHhCRCwgMHhGNSwgMHg1NiwgMHhFNiwgMHgyMSwgMHgwRiwgMHhENCwgMHgy
NywgMHg4NSwKKyAgICAweDg5LCAweDlFLCAweDc4LCAweENDLCAweDU4LCAweDlFLCAweEJFLCAw
eDMxLCAweDBGLCAweDZDLCAweERCLCAweDlGLAorICAgIDB4RjQsIDB4QTMsIDB4M0IsIDB4MzAs
IDB4MzksIDB4MzAsIDB4MjIsIDB4MDYsIDB4MDksIDB4MkIsIDB4MDYsIDB4MDEsCisgICAgMHgw
NCwgMHgwMSwgMHg4MiwgMHhDNCwgMHgwQSwgMHgwMiwgMHgwNCwgMHgxNSwgMHgzMSwgMHgyRSwg
MHgzMywgMHgyRSwKKyAgICAweDM2LCAweDJFLCAweDMxLCAweDJFLCAweDM0LCAweDJFLCAweDMx
LCAweDJFLCAweDM0LCAweDMxLCAweDM0LCAweDM4LAorICAgIDB4MzIsIDB4MkUsIDB4MzEsIDB4
MkUsIDB4MzIsIDB4MzAsIDB4MTMsIDB4MDYsIDB4MEIsIDB4MkIsIDB4MDYsIDB4MDEsCisgICAg
MHgwNCwgMHgwMSwgMHg4MiwgMHhFNSwgMHgxQywgMHgwMiwgMHgwMSwgMHgwMSwgMHgwNCwgMHgw
NCwgMHgwMywgMHgwMiwKKyAgICAweDA0LCAweDMwLCAweDMwLCAweDBELCAweDA2LCAweDA5LCAw
eDJBLCAweDg2LCAweDQ4LCAweDg2LCAweEY3LCAweDBELAorICAgIDB4MDEsIDB4MDEsIDB4MEIs
IDB4MDUsIDB4MDAsIDB4MDMsIDB4ODIsIDB4MDEsIDB4MDEsIDB4MDAsIDB4OUYsIDB4OUIsCisg
ICAgMHgwNSwgMHgyMiwgMHg0OCwgMHhCQywgMHg0QywgMHhGNCwgMHgyQywgMHhDNSwgMHg5OSwg
MHgxRiwgMHhDQSwgMHhBQiwKKyAgICAweEFDLCAweDlCLCAweDY1LCAweDFCLCAweEJFLCAweDVC
LCAweERDLCAweERDLCAweDhFLCAweEYwLCAweEFELCAweDJDLAorICAgIDB4MUMsIDB4MUYsIDB4
RkIsIDB4MzYsIDB4RDEsIDB4ODcsIDB4MTUsIDB4RDQsIDB4MkUsIDB4NzgsIDB4QjIsIDB4NDks
CisgICAgMHgyMiwgMHg0RiwgMHg5MiwgMHhDNywgMHhFNiwgMHhFNywgMHhBMCwgMHg1QywgMHg0
OSwgMHhGMCwgMHhFNywgMHhFNCwKKyAgICAweEM4LCAweDgxLCAweEJGLCAweDJFLCAweDk0LCAw
eEY0LCAweDVFLCAweDRBLCAweDIxLCAweDgzLCAweDNELCAweDc0LAorICAgIDB4NTYsIDB4ODUs
IDB4MUQsIDB4MEYsIDB4NkMsIDB4MTQsIDB4NUEsIDB4MjksIDB4NTQsIDB4MEMsIDB4ODcsIDB4
NEYsCisgICAgMHgzMCwgMHg5MiwgMHhDOSwgMHgzNCwgMHhCNCwgMHgzRCwgMHgyMiwgMHgyQiwg
MHg4OSwgMHg2MiwgMHhDMCwgMHhGNCwKKyAgICAweDEwLCAweENFLCAweEYxLCAweERCLCAweDc1
LCAweDg5LCAweDJBLCAweEYxLCAweDE2LCAweEI0LCAweDRBLCAweDk2LAorICAgIDB4RjUsIDB4
RDMsIDB4NUEsIDB4REUsIDB4QTMsIDB4ODIsIDB4MkYsIDB4QzcsIDB4MTQsIDB4NkYsIDB4NjAs
IDB4MDQsCisgICAgMHgzOCwgMHg1QiwgMHhDQiwgMHg2OSwgMHhCNiwgMHg1QywgMHg5OSwgMHhF
NywgMHhFQiwgMHg2OSwgMHgxOSwgMHg3OCwKKyAgICAweDY3LCAweDAzLCAweEMwLCAweEQ4LCAw
eENELCAweDQxLCAweEU4LCAweEY3LCAweDVDLCAweENBLCAweDQ0LCAweEFBLAorICAgIDB4OEEs
IDB4QjcsIDB4MjUsIDB4QUQsIDB4OEUsIDB4NzksIDB4OUYsIDB4RjMsIDB4QTgsIDB4NjksIDB4
NkEsIDB4NkYsCisgICAgMHgxQiwgMHgyNiwgMHg1NiwgMHhFNiwgMHgzMSwgMHhCMSwgMHhFNCwg
MHgwMSwgMHg4MywgMHhDMCwgMHg4RiwgMHhEQSwKKyAgICAweDUzLCAweEZBLCAweDRBLCAweDhG
LCAweDg1LCAweEEwLCAweDU2LCAweDkzLCAweDk0LCAweDRBLCAweEUxLCAweDc5LAorICAgIDB4
QTEsIDB4MzMsIDB4OUQsIDB4MDAsIDB4MkQsIDB4MTUsIDB4Q0EsIDB4QkQsIDB4ODEsIDB4MDAs
IDB4OTAsIDB4RUMsCisgICAgMHg3MiwgMHgyRSwgMHhGNSwgMHhERSwgMHhGOSwgMHg5NiwgMHg1
QSwgMHgzNywgMHgxRCwgMHg0MSwgMHg1RCwgMHg2MiwKKyAgICAweDRCLCAweDY4LCAweEEyLCAw
eDcwLCAweDdDLCAweEFELCAweDk3LCAweEJDLCAweERELCAweDE3LCAweDg1LCAweEFGLAorICAg
IDB4OTcsIDB4RTIsIDB4NTgsIDB4RjMsIDB4M0QsIDB4RjUsIDB4NkEsIDB4MDMsIDB4MUEsIDB4
QTAsIDB4MzUsIDB4NkQsCisgICAgMHg4RSwgMHg4RCwgMHg1RSwgMHhCQywgMHhBRCwgMHhDNywg
MHg0RSwgMHgwNywgMHgxNiwgMHgzNiwgMHhDNiwgMHhCMSwKKyAgICAweDEwLCAweEFDLCAweEU1
LCAweENDLCAweDlCLCAweDkwLCAweERGLCAweEVBLCAweENBLCAweEU2LCAweDQwLCAweEZGLAor
ICAgIDB4MUIsIDB4QjAsIDB4RjEsIDB4RkUsIDB4NUQsIDB4QjQsIDB4RUYsIDB4RjcsIDB4QTks
IDB4NUYsIDB4MDYsIDB4MDcsCisgICAgMHgzMywgMHhGNSwKK307CisKKy8vIFUyRiByZXNwb25z
ZSBibG9iIHByb2R1Y2VkIGJ5IGEgVTJGIHNpZ24gcmVxdWVzdCB1c2VkIGluIGV4YW1wbGUgNyBv
ZiB0aGUKKy8vIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9m
aWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2Nv
bC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjdXNpbmctdGhlLWN0YXAyLWF1dGhlbnRpY2F0b3JnZXRh
c3NlcnRpb24tY29tbWFuZC13aXRoLWN0YXAxLXUyZi1hdXRoZW50aWNhdG9ycworY29uc3RleHBy
IHVpbnQ4X3Qga1Rlc3RVMmZTaWduUmVzcG9uc2VbXSA9IHsKKyAgICAvLyBVc2VyIHByZXNlbmNl
CisgICAgMHgwMSwKKyAgICAvLyBTaWduIGNvdW50KDQgYnl0ZXMpCisgICAgMHgwMCwgMHgwMCwg
MHgwMCwgMHgzQiwKKyAgICAvLyBTaWduYXR1cmUKKyAgICAweDMwLCAweDQ0LCAweDAyLCAweDIw
LCAweDdCLCAweERFLCAweDBBLCAweDUyLCAweEFDLCAweDFGLCAweDRDLCAweDhCLAorICAgIDB4
MjcsIDB4RTAsIDB4MDMsIDB4QTMsIDB4NzAsIDB4Q0QsIDB4NjYsIDB4QTQsIDB4QzcsIDB4MTEs
IDB4OEQsIDB4RDIsCisgICAgMHgyRCwgMHg1NCwgMHg0NywgMHg4MywgMHg1RiwgMHg0NSwgMHhC
OSwgMHg5QywgMHg2OCwgMHg0MiwgMHgzRiwgMHhGNywKKyAgICAweDAyLCAweDIwLCAweDNDLCAw
eDUxLCAweDdCLCAweDQ3LCAweDg3LCAweDdGLCAweDg1LCAweDc4LCAweDJELCAweEUxLAorICAg
IDB4MDAsIDB4ODYsIDB4QTcsIDB4ODMsIDB4RDEsIDB4RTcsIDB4REYsIDB4NEUsIDB4MzYsIDB4
MzksIDB4RTcsIDB4NzEsCisgICAgMHhGNSwgMHhGNiwgMHhBRiwgMHhBMywgMHg1QSwgMHhBRCwg
MHg1MywgMHg3MywgMHg4NSwgMHg4RSwKK307CisKKy8vIENUQVAgcmVxdWVzdHMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitj
b25zdGV4cHIgdWludDhfdCBrQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFtdID0geworICAgIC8v
IGF1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbCBjb21tYW5kCisgICAgMHgwMSwKKyAgICAvLyBt
YXAoNSkKKyAgICAweGE1LAorICAgIC8vIGtleSgxKSAtIGNsaWVudERhdGFIYXNoCisgICAgMHgw
MSwKKyAgICAvLyBieXRlcygzMikKKyAgICAweDU4LCAweDIwLCAweDY4LCAweDcxLCAweDM0LCAw
eDk2LCAweDgyLCAweDIyLCAweGVjLCAweDE3LCAweDIwLCAweDJlLAorICAgIDB4NDIsIDB4NTAs
IDB4NWYsIDB4OGUsIDB4ZDIsIDB4YjEsIDB4NmEsIDB4ZTIsIDB4MmYsIDB4MTYsIDB4YmIsIDB4
MDUsCisgICAgMHhiOCwgMHg4YywgMHgyNSwgMHhkYiwgMHg5ZSwgMHg2MCwgMHgyNiwgMHg0NSwg
MHhmMSwgMHg0MSwKKyAgICAvLyBrZXkoMikgLSBycAorICAgIDB4MDIsCisgICAgLy8gbWFwKDIp
CisgICAgMHhhMiwKKyAgICAvLyBrZXkgLSAiaWQiCisgICAgMHg2MiwgMHg2OSwgMHg2NCwKKyAg
ICAvLyB2YWx1ZSAtICJhY21lLmNvbSIKKyAgICAweDY4LCAweDYxLCAweDYzLCAweDZkLCAweDY1
LCAweDJlLCAweDYzLCAweDZmLCAweDZkLAorICAgIC8vIGtleSAtICAibmFtZSIKKyAgICAweDY0
LCAweDZlLCAweDYxLCAweDZkLCAweDY1LAorICAgIC8vIHZhbHVlIC0gIkFjbWUiCisgICAgMHg2
NCwgMHg0MSwgMHg2MywgMHg2ZCwgMHg2NSwKKyAgICAvLyBrZXkoMykgLSB1c2VyCisgICAgMHgw
MywKKyAgICAvLyBtYXAoNCkKKyAgICAweGE0LAorICAgIC8vIGtleSAtICJpZCIKKyAgICAweDYy
LCAweDY5LCAweDY0LAorICAgIC8vIHZhbHVlIC0gdXNlciBpZAorICAgIDB4NDgsIDB4MTAsIDB4
OTgsIDB4MjMsIDB4NzIsIDB4MzUsIDB4NDAsIDB4OTgsIDB4NzIsCisgICAgLy8ga2V5IC0gImlj
b24iCisgICAgMHg2NCwgMHg2OSwgMHg2MywgMHg2ZiwgMHg2ZSwKKyAgICAvLyB2YWx1ZSAtICJo
dHRwczovL3BpY3MuYWNtZS5jb20vMDAvcC9hQmpqanBxUGIucG5nIgorICAgIDB4NzgsIDB4Mjgs
IDB4NjgsIDB4NzQsIDB4NzQsIDB4NzAsIDB4NzMsIDB4M2EsIDB4MmYsIDB4MmYsIDB4NzAsIDB4
NjksCisgICAgMHg2MywgMHg3MywgMHgyZSwgMHg2MSwgMHg2MywgMHg2ZCwgMHg2NSwgMHgyZSwg
MHg2MywgMHg2ZiwgMHg2ZCwgMHgyZiwKKyAgICAweDMwLCAweDMwLCAweDJmLCAweDcwLCAweDJm
LCAweDYxLCAweDQyLCAweDZhLCAweDZhLCAweDZhLCAweDcwLCAweDcxLAorICAgIDB4NTAsIDB4
NjIsIDB4MmUsIDB4NzAsIDB4NmUsIDB4NjcsCisgICAgLy8ga2V5IC0gIm5hbWUiCisgICAgMHg2
NCwgMHg2ZSwgMHg2MSwgMHg2ZCwgMHg2NSwKKyAgICAvLyB2YWx1ZSAtICJqb2hucHNtaXRoQGV4
YW1wbGUuY29tIgorICAgIDB4NzYsIDB4NmEsIDB4NmYsIDB4NjgsIDB4NmUsIDB4NzAsIDB4NzMs
IDB4NmQsIDB4NjksIDB4NzQsIDB4NjgsIDB4NDAsCisgICAgMHg2NSwgMHg3OCwgMHg2MSwgMHg2
ZCwgMHg3MCwgMHg2YywgMHg2NSwgMHgyZSwgMHg2MywgMHg2ZiwgMHg2ZCwKKyAgICAvLyBrZXkg
LSAiZGlzcGxheU5hbWUiCisgICAgMHg2YiwgMHg2NCwgMHg2OSwgMHg3MywgMHg3MCwgMHg2Yywg
MHg2MSwgMHg3OSwgMHg0ZSwgMHg2MSwgMHg2ZCwgMHg2NSwKKyAgICAvLyB2YWx1ZSAtICJKb2hu
IFAuIFNtaXRoIgorICAgIDB4NmQsIDB4NGEsIDB4NmYsIDB4NjgsIDB4NmUsIDB4MjAsIDB4NTAs
IDB4MmUsIDB4MjAsIDB4NTMsIDB4NmQsIDB4NjksCisgICAgMHg3NCwgMHg2OCwKKyAgICAvLyBr
ZXkoNCkgLSBwdWJLZXlDcmVkUGFyYW1zCisgICAgMHgwNCwKKyAgICAvLyBhcnJheSgyKQorICAg
IDB4ODIsCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyBrZXkgLSAiYWxnIgorICAg
IDB4NjMsIDB4NjEsIDB4NmMsIDB4NjcsCisgICAgLy8gdmFsdWUgLSA3CisgICAgMHgwNywKKyAg
ICAvLyBrZXkgLSAidHlwZSIKKyAgICAweDY0LCAweDc0LCAweDc5LCAweDcwLCAweDY1LAorICAg
IC8vIHZhbHVlIC0gInB1YmxpYy1rZXkiCisgICAgMHg2YSwgMHg3MCwgMHg3NSwgMHg2MiwgMHg2
QywgMHg2OSwgMHg2MywgMHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAgICAvLyBtYXAoMikKKyAg
ICAweGEyLAorICAgIC8vIGtleSAtICJhbGciCisgICAgMHg2MywgMHg2MSwgMHg2YywgMHg2NywK
KyAgICAvLyB2YWx1ZSAtIDI1NworICAgIDB4MTksIDB4MDEsIDB4MDEsCisgICAgLy8ga2V5IC0g
InR5cGUiCisgICAgMHg2NCwgMHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwgLy8gInR5cGUiCisgICAg
Ly8gdmFsdWUgLSAicHVibGljLWtleSIKKyAgICAweDZhLCAweDcwLCAweDc1LCAweDYyLCAweDZD
LCAweDY5LCAweDYzLCAweDJELCAweDZCLCAweDY1LCAweDc5LAorICAgIC8vIGtleSg3KSAtIG9w
dGlvbnMKKyAgICAweDA3LAorICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8ga2V5IC0g
InJrIgorICAgIDB4NjIsIDB4NzIsIDB4NmIsCisgICAgLy8gVHJ1ZSgyMSkKKyAgICAweGY1LAor
ICAgIC8vIGtleSAtICJ1diIKKyAgICAweDYyLCAweDc1LCAweDc2LAorICAgIC8vIFRydWUoMjEp
CisgICAgMHhmNX07CisKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0Q29tcGxleEN0YXBHZXRBc3Nl
cnRpb25SZXF1ZXN0W10gPSB7CisgICAgLy8gYXV0aGVudGljYXRvckdldEFzc2VydGlvbiBjb21t
YW5kCisgICAgMHgwMiwKKyAgICAvLyBtYXAoNCkKKyAgICAweGE0LAorICAgIC8vIGtleSgwMSkg
LXJwSWQKKyAgICAweDAxLAorICAgIC8vIHZhbHVlIC0gImFjbWUuY29tIgorICAgIDB4NjgsIDB4
NjEsIDB4NjMsIDB4NmQsIDB4NjUsIDB4MmUsIDB4NjMsIDB4NmYsIDB4NmQsCisgICAgLy8ga2V5
KDAyKSAtIGNsaWVudCBkYXRhIGhhc2gKKyAgICAweDAyLAorICAgIC8vIHZhbHVlIC0gYnl0ZXMo
MzIpCisgICAgMHg1OCwgMHgyMCwgMHg2OCwgMHg3MSwgMHgzNCwgMHg5NiwgMHg4MiwgMHgyMiwg
MHhlYywgMHgxNywgMHgyMCwgMHgyZSwKKyAgICAweDQyLCAweDUwLCAweDVmLCAweDhlLCAweGQy
LCAweGIxLCAweDZhLCAweGUyLCAweDJmLCAweDE2LCAweGJiLCAweDA1LAorICAgIDB4YjgsIDB4
OGMsIDB4MjUsIDB4ZGIsIDB4OWUsIDB4NjAsIDB4MjYsIDB4NDUsIDB4ZjEsIDB4NDEsCisgICAg
Ly8ga2V5KDAzKSAtIGFsbG93IGxpc3QKKyAgICAweDAzLAorICAgIC8vIHZhbHVlIC0gYXJyYXko
MikKKyAgICAweDgyLAorICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8ga2V5IC0gImlk
IgorICAgIDB4NjIsIDB4NjksIDB4NjQsCisgICAgLy8gdmFsdWUgLSBjcmVkZW50aWFsIElECisg
ICAgMHg1OCwgMHg0MCwgMHhmMiwgMHgyMCwgMHgwNiwgMHhkZSwgMHg0ZiwgMHg5MCwgMHg1YSwg
MHhmNiwgMHg4YSwgMHg0MywKKyAgICAweDk0LCAweDJmLCAweDAyLCAweDRmLCAweDJhLCAweDVl
LCAweGNlLCAweDYwLCAweDNkLCAweDljLCAweDZkLCAweDRiLAorICAgIDB4M2QsIDB4ZjgsIDB4
YmUsIDB4MDgsIDB4ZWQsIDB4MDEsIDB4ZmMsIDB4NDQsIDB4MjYsIDB4NDYsIDB4ZDAsIDB4MzQs
CisgICAgMHg4NSwgMHg4YSwgMHhjNywgMHg1YiwgMHhlZCwgMHgzZiwgMHhkNSwgMHg4MCwgMHhi
ZiwgMHg5OCwgMHgwOCwgMHhkOSwKKyAgICAweDRmLCAweGNiLCAweGVlLCAweDgyLCAweGI5LCAw
eGIyLCAweGVmLCAweDY2LCAweDc3LCAweGFmLCAweDBhLCAweGRjLAorICAgIDB4YzMsIDB4NTgs
IDB4NTIsIDB4ZWEsIDB4NmIsIDB4OWUsCisgICAgLy8ga2V5IC0gInR5cGUiCisgICAgMHg2NCwg
MHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwKKyAgICAvLyB2YWx1ZSAtICJwdWJsaWMta2V5IgorICAg
IDB4NmEsIDB4NzAsIDB4NzUsIDB4NjIsIDB4NkMsIDB4NjksIDB4NjMsIDB4MkQsIDB4NkIsIDB4
NjUsIDB4NzksCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyBrZXkgLSAiaWQiCisg
ICAgMHg2MiwgMHg2OSwgMHg2NCwKKyAgICAvLyB2YWx1ZSAtIGNyZWRlbnRpYWwgSUQKKyAgICAw
eDU4LCAweDMyLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLAorICAgIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4
MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAgMHgwMywgMHgwMywgMHgwMywg
MHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAg
ICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAw
eDAzLCAweDAzLCAweDAzLAorICAgIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAgLy8ga2V5
IC0gInR5cGUiCisgICAgMHg2NCwgMHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwKKyAgICAvLyB2YWx1
ZSAtICJwdWJsaWMta2V5IgorICAgIDB4NmEsIDB4NzAsIDB4NzUsIDB4NjIsIDB4NkMsIDB4Njks
IDB4NjMsIDB4MkQsIDB4NkIsIDB4NjUsIDB4NzksCisgICAgLy8gdW5zaWduZWQoNSkgLSBvcHRp
b25zCisgICAgMHgwNSwKKyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8vIGtleSAtInVw
IgorICAgIDB4NjIsIDB4NzUsIDB4NzAsCisgICAgLy8gdmFsdWUgLSBGYWxzZSgyMCkKKyAgICAw
eGY0LAorICAgIC8vIGtleSAtICJ1diIKKyAgICAweDYyLCAweDc1LCAweDc2LAorICAgIC8vIHZh
bHVlIC0gVHJ1ZSgyMSkKKyAgICAweGY1LAorfTsKKworLy8gQ1RBUCByZXNwb25zZXMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworLy8gQSBzYW1wbGUgd2VsbCBmb3JtZWQgcmVzcG9uc2UgdG8gQ1RBUCBBdXRoZW50aWNhdG9y
R2V0SW5mbyByZXF1ZXN0LiBDcm9zcworLy8gcGxhdGZvcm0gZGV2aWNlIHRoYXQgc3VwcG9ydHMg
cmVzaWRlbnQga2V5LCBhbmQgdXNlciB2ZXJpZmljYXRpb24uCitjb25zdGV4cHIgdWludDhfdCBr
VGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VbXSA9IHsKKyAgICAweDAwLCAweEE2LCAw
eDAxLCAweDgyLCAweDY4LCAweDQ2LCAweDQ5LCAweDQ0LCAweDRGLCAweDVGLCAweDMyLCAweDVG
LAorICAgIDB4MzAsIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYsIDB4NTYsIDB4MzIsIDB4
MDIsIDB4ODIsIDB4NjMsIDB4NzUsCisgICAgMHg3NiwgMHg2RCwgMHg2QiwgMHg2OCwgMHg2RCwg
MHg2MSwgMHg2MywgMHgyRCwgMHg3MywgMHg2NSwgMHg2MywgMHg3MiwKKyAgICAweDY1LCAweDc0
LCAweDAzLCAweDUwLCAweEY4LCAweEEwLCAweDExLCAweEYzLCAweDhDLCAweDBBLCAweDRELCAw
eDE1LAorICAgIDB4ODAsIDB4MDYsIDB4MTcsIDB4MTEsIDB4MUYsIDB4OUUsIDB4REMsIDB4N0Qs
IDB4MDQsIDB4QTUsIDB4NjIsIDB4NzIsCisgICAgMHg2QiwgMHhGNSwgMHg2MiwgMHg3NSwgMHg3
MCwgMHhGNSwgMHg2MiwgMHg3NSwgMHg3NiwgMHhGNSwgMHg2NCwgMHg3MCwKKyAgICAweDZDLCAw
eDYxLCAweDc0LCAweEY0LCAweDY5LCAweDYzLCAweDZDLCAweDY5LCAweDY1LCAweDZFLCAweDc0
LCAweDUwLAorICAgIDB4NjksIDB4NkUsIDB4RjQsIDB4MDUsIDB4MTksIDB4MDQsIDB4QjAsIDB4
MDYsIDB4ODEsIDB4MDEsCit9OworCisvLyBBdXRoZW50aWNhdG9yR2V0SW5mbyByZXF1ZXN0IHdp
dGggYWxsIGNvbmZpZ3VyYXRpb25zIGVxdWFsIHRvIHRoYXQgb2YKKy8vIGtUZXN0QXV0aGVudGlj
YXRvckdldEluZm9SZXNwb25zZSBleGNlcHQgcGxhdGZvcm0gZGV2aWNlIG9wdGlvbiBpcyBzZXQg
dG8KKy8vIHRydWUuCitjb25zdGV4cHIgdWludDhfdCBrVGVzdEdldEluZm9SZXNwb25zZVBsYXRm
b3JtRGV2aWNlW10gPSB7CisgICAgMHgwMCwgMHhBNiwgMHgwMSwgMHg4MiwgMHg2OCwgMHg0Niwg
MHg0OSwgMHg0NCwgMHg0RiwgMHg1RiwgMHgzMiwgMHg1RiwKKyAgICAweDMwLCAweDY2LCAweDU1
LCAweDMyLCAweDQ2LCAweDVGLCAweDU2LCAweDMyLCAweDAyLCAweDgyLCAweDYzLCAweDc1LAor
ICAgIDB4NzYsIDB4NkQsIDB4NkIsIDB4NjgsIDB4NkQsIDB4NjEsIDB4NjMsIDB4MkQsIDB4NzMs
IDB4NjUsIDB4NjMsIDB4NzIsCisgICAgMHg2NSwgMHg3NCwgMHgwMywgMHg1MCwgMHhGOCwgMHhB
MCwgMHgxMSwgMHhGMywgMHg4QywgMHgwQSwgMHg0RCwgMHgxNSwKKyAgICAweDgwLCAweDA2LCAw
eDE3LCAweDExLCAweDFGLCAweDlFLCAweERDLCAweDdELCAweDA0LCAweEE1LCAweDYyLCAweDcy
LAorICAgIDB4NkIsIDB4RjUsIDB4NjIsIDB4NzUsIDB4NzAsIDB4RjUsIDB4NjIsIDB4NzUsIDB4
NzYsIDB4RjUsIDB4NjQsIDB4NzAsCisgICAgLy8gcGxhdGZvcm0gZGV2aWNlIDogdHJ1ZQorICAg
IDB4NkMsIDB4NjEsIDB4NzQsIDB4RjUsCisgICAgLy8gRW5kIG9mIHBsYXRmb3JtX2RldmljZSBz
ZXR0aW5nLgorICAgIDB4NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4
NTAsIDB4NjksIDB4NkUsIDB4RjQsIDB4MDUsCisgICAgMHgxOSwgMHgwNCwgMHhCMCwgMHgwNiwg
MHg4MSwgMHgwMSwKK307CisKKy8vIEEgU2FtcGxlIHdlbGwgZm9ybWVkIHJlc3BvbnNlIHRvIENU
QVAgTWFrZUNyZWRlbnRpYWwgcmVxdWVzdC4KK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0TWFrZUNy
ZWRlbnRpYWxSZXNwb25zZVtdID0geworICAgIC8vIFN1Y2Nlc3Mgc3RhdHVzIGJ5dGUKKyAgICAw
eDAwLAorICAgIC8vIE1hcCgwMykKKyAgICAweGEzLAorICAgIC8vIGtleSgwMSkgLSBGb3JtYXQK
KyAgICAweDAxLAorICAgIC8vICJwYWNrZWQiCisgICAgMHg2NiwgMHg3MCwgMHg2MSwgMHg2Mywg
MHg2YiwgMHg2NSwgMHg2NCwKKyAgICAvLyBrZXkoMDIpIC0gQXV0aGVudGljYXRvciBEYXRhCisg
ICAgMHgwMiwKKyAgICAvLyBCeXRlKDE1NCkKKyAgICAweDU4LCAweDlhLCAweDExLCAweDk0LCAw
eDIyLCAweDhkLCAweGE4LCAweGZkLCAweGJkLCAweGVlLCAweGZkLCAweDI2LAorICAgIDB4MWIs
IDB4ZDcsIDB4YjYsIDB4NTksIDB4NWMsIDB4ZmQsIDB4NzAsIDB4YTUsIDB4MGQsIDB4NzAsIDB4
YzYsIDB4NDAsCisgICAgMHg3YiwgMHhjZiwgMHgwMSwgMHgzZCwgMHhlOSwgMHg2ZCwgMHg0ZSwg
MHhmYiwgMHgxNywgMHhkZSwgMHg0MSwgMHgwMCwKKyAgICAweDAwLCAweDAwLCAweDBiLCAweGY4
LCAweGEwLCAweDExLCAweGYzLCAweDhjLCAweDBhLCAweDRkLCAweDE1LCAweDgwLAorICAgIDB4
MDYsIDB4MTcsIDB4MTEsIDB4MWYsIDB4OWUsIDB4ZGMsIDB4N2QsIDB4MDAsIDB4MTAsIDB4ODks
IDB4NTksIDB4Y2UsCisgICAgMHhhZCwgMHg1YiwgMHg1YywgMHg0OCwgMHgxNiwgMHg0ZSwgMHg4
YSwgMHhiYywgMHhkNiwgMHhkOSwgMHg0MywgMHg1YywKKyAgICAweDZmLCAweGEzLCAweDYzLCAw
eDYxLCAweDZjLCAweDY3LCAweDY1LCAweDQ1LCAweDUzLCAweDMyLCAweDM1LCAweDM2LAorICAg
IDB4NjEsIDB4NzgsIDB4NTgsIDB4MjAsIDB4ZjcsIDB4YzQsIDB4ZjQsIDB4YTYsIDB4ZjEsIDB4
ZDcsIDB4OTUsIDB4MzgsCisgICAgMHhkZiwgMHhhNCwgMHhjOSwgMHhhYywgMHg1MCwgMHg4NCwg
MHg4ZCwgMHhmNywgMHgwOCwgMHhiYywgMHgxYywgMHg5OSwKKyAgICAweGY1LCAweGU2LCAweDBl
LCAweDUxLCAweGI0LCAweDJhLCAweDUyLCAweDFiLCAweDM1LCAweGQzLCAweGI2LCAweDlhLAor
ICAgIDB4NjEsIDB4NzksIDB4NTgsIDB4MjAsIDB4ZGUsIDB4N2IsIDB4N2QsIDB4NmMsIDB4YTUs
IDB4NjQsIDB4ZTcsIDB4MGUsCisgICAgMHhhMywgMHgyMSwgMHhhNCwgMHhkNSwgMHhkOSwgMHg2
ZSwgMHhhMCwgMHgwZSwgMHhmMCwgMHhlMiwgMHhkYiwgMHg4OSwKKyAgICAweGRkLCAweDYxLCAw
eGQ0LCAweDg5LCAweDRjLCAweDE1LCAweGFjLCAweDU4LCAweDViLCAweGQyLCAweDM2LCAweDg0
LAorICAgIC8vIEtleSgwMykgLSBBdHRlc3RhdGlvbiBvYmplY3QKKyAgICAweDAzLAorICAgIC8v
IE1hcCAtIEF0dGVzdGF0aW9uIG9iamVjdAorICAgIDB4YTMsIDB4NjMsIDB4NjEsIDB4NmMsIDB4
NjcsIDB4MjYsIDB4NjMsIDB4NzMsIDB4NjksIDB4NjcsIDB4NTgsIDB4NDcsCisgICAgMHgzMCwg
MHg0NSwgMHgwMiwgMHgyMCwgMHgxMywgMHhmNywgMHgzYywgMHg1ZCwgMHg5ZCwgMHg1MywgMHgw
ZSwgMHg4YywKKyAgICAweGMxLCAweDVjLCAweGM5LCAweGJkLCAweDk2LCAweGFkLCAweDU4LCAw
eDZkLCAweDM5LCAweDM2LCAweDY0LCAweGU0LAorICAgIDB4NjIsIDB4ZDUsIDB4ZjAsIDB4NTYs
IDB4MTIsIDB4MzUsIDB4ZTYsIDB4MzUsIDB4MGYsIDB4MmIsIDB4NzIsIDB4ODksCisgICAgMHgw
MiwgMHgyMSwgMHgwMCwgMHg5MCwgMHgzNSwgMHg3ZiwgMHhmOSwgMHgxMCwgMHhjYywgMHhiNSwg
MHg2YSwgMHhjNSwKKyAgICAweGI1LCAweDk2LCAweDUxLCAweDE5LCAweDQ4LCAweDU4LCAweDFj
LCAweDhmLCAweGRkLCAweGI0LCAweGEyLCAweGI3LAorICAgIDB4OTksIDB4NTksIDB4OTQsIDB4
ODAsIDB4NzgsIDB4YjAsIDB4OWYsIDB4NGIsIDB4ZGMsIDB4NjIsIDB4MjksIDB4NjMsCisgICAg
MHg3OCwgMHgzNSwgMHg2MywgMHg4MSwgMHg1OSwgMHgwMSwgMHg5NywgMHgzMCwgMHg4MiwgMHgw
MSwgMHg5MywgMHgzMCwKKyAgICAweDgyLCAweDAxLCAweDM4LCAweGEwLCAweDAzLCAweDAyLCAw
eDAxLCAweDAyLCAweDAyLCAweDA5LCAweDAwLCAweDg1LAorICAgIDB4OWIsIDB4NzIsIDB4NmMs
IDB4YjIsIDB4NGIsIDB4NGMsIDB4MjksIDB4MzAsIDB4MGEsIDB4MDYsIDB4MDgsIDB4MmEsCisg
ICAgMHg4NiwgMHg0OCwgMHhjZSwgMHgzZCwgMHgwNCwgMHgwMywgMHgwMiwgMHgzMCwgMHg0Nywg
MHgzMSwgMHgwYiwgMHgzMCwKKyAgICAweDA5LCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDA2
LCAweDEzLCAweDAyLCAweDU1LCAweDUzLCAweDMxLCAweDE0LAorICAgIDB4MzAsIDB4MTIsIDB4
MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MGEsIDB4MGMsIDB4MGIsIDB4NTksIDB4NzUsIDB4NjIs
CisgICAgMHg2OSwgMHg2MywgMHg2ZiwgMHgyMCwgMHg1NCwgMHg2NSwgMHg3MywgMHg3NCwgMHgz
MSwgMHgyMiwgMHgzMCwgMHgyMCwKKyAgICAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDBiLCAw
eDBjLCAweDE5LCAweDQxLCAweDc1LCAweDc0LCAweDY4LCAweDY1LAorICAgIDB4NmUsIDB4NzQs
IDB4NjksIDB4NjMsIDB4NjEsIDB4NzQsIDB4NmYsIDB4NzIsIDB4MjAsIDB4NDEsIDB4NzQsIDB4
NzQsCisgICAgMHg2NSwgMHg3MywgMHg3NCwgMHg2MSwgMHg3NCwgMHg2OSwgMHg2ZiwgMHg2ZSwg
MHgzMCwgMHgxZSwgMHgxNywgMHgwZCwKKyAgICAweDMxLCAweDM2LCAweDMxLCAweDMyLCAweDMw
LCAweDM0LCAweDMxLCAweDMxLCAweDM1LCAweDM1LCAweDMwLCAweDMwLAorICAgIDB4NWEsIDB4
MTcsIDB4MGQsIDB4MzIsIDB4MzYsIDB4MzEsIDB4MzIsIDB4MzAsIDB4MzIsIDB4MzEsIDB4MzEs
IDB4MzUsCisgICAgMHgzNSwgMHgzMCwgMHgzMCwgMHg1YSwgMHgzMCwgMHg0NywgMHgzMSwgMHgw
YiwgMHgzMCwgMHgwOSwgMHgwNiwgMHgwMywKKyAgICAweDU1LCAweDA0LCAweDA2LCAweDEzLCAw
eDAyLCAweDU1LCAweDUzLCAweDMxLCAweDE0LCAweDMwLCAweDEyLCAweDA2LAorICAgIDB4MDMs
IDB4NTUsIDB4MDQsIDB4MGEsIDB4MGMsIDB4MGIsIDB4NTksIDB4NzUsIDB4NjIsIDB4NjksIDB4
NjMsIDB4NmYsCisgICAgMHgyMCwgMHg1NCwgMHg2NSwgMHg3MywgMHg3NCwgMHgzMSwgMHgyMiwg
MHgzMCwgMHgyMCwgMHgwNiwgMHgwMywgMHg1NSwKKyAgICAweDA0LCAweDBiLCAweDBjLCAweDE5
LCAweDQxLCAweDc1LCAweDc0LCAweDY4LCAweDY1LCAweDZlLCAweDc0LCAweDY5LAorICAgIDB4
NjMsIDB4NjEsIDB4NzQsIDB4NmYsIDB4NzIsIDB4MjAsIDB4NDEsIDB4NzQsIDB4NzQsIDB4NjUs
IDB4NzMsIDB4NzQsCisgICAgMHg2MSwgMHg3NCwgMHg2OSwgMHg2ZiwgMHg2ZSwgMHgzMCwgMHg1
OSwgMHgzMCwgMHgxMywgMHgwNiwgMHgwNywgMHgyYSwKKyAgICAweDg2LCAweDQ4LCAweGNlLCAw
eDNkLCAweDAyLCAweDAxLCAweDA2LCAweDA4LCAweDJhLCAweDg2LCAweDQ4LCAweGNlLAorICAg
IDB4M2QsIDB4MDMsIDB4MDEsIDB4MDcsIDB4MDMsIDB4NDIsIDB4MDAsIDB4MDQsIDB4YWQsIDB4
MTEsIDB4ZWIsIDB4MGUsCisgICAgMHg4OCwgMHg1MiwgMHhlNSwgMHgzYSwgMHhkNSwgMHhkZiwg
MHhlZCwgMHg4NiwgMHhiNCwgMHgxZSwgMHg2MSwgMHgzNCwKKyAgICAweGExLCAweDhlLCAweGM0
LCAweGUxLCAweGFmLCAweDhmLCAweDIyLCAweDFhLCAweDNjLCAweDdkLCAweDZlLCAweDYzLAor
ICAgIDB4NmMsIDB4ODAsIDB4ZWEsIDB4MTMsIDB4YzMsIDB4ZDUsIDB4MDQsIDB4ZmYsIDB4MmUs
IDB4NzYsIDB4MjEsIDB4MWIsCisgICAgMHhiNCwgMHg0NSwgMHgyNSwgMHhiMSwgMHg5NiwgMHhj
NCwgMHg0YywgMHhiNCwgMHg4NCwgMHg5OSwgMHg3OSwgMHhjZiwKKyAgICAweDZmLCAweDg5LCAw
eDZlLCAweGNkLCAweDJiLCAweGI4LCAweDYwLCAweGRlLCAweDFiLCAweGY0LCAweDM3LCAweDZi
LAorICAgIDB4YTMsIDB4MGQsIDB4MzAsIDB4MGIsIDB4MzAsIDB4MDksIDB4MDYsIDB4MDMsIDB4
NTUsIDB4MWQsIDB4MTMsIDB4MDQsCisgICAgMHgwMiwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwYSwg
MHgwNiwgMHgwOCwgMHgyYSwgMHg4NiwgMHg0OCwgMHhjZSwgMHgzZCwKKyAgICAweDA0LCAweDAz
LCAweDAyLCAweDAzLCAweDQ5LCAweDAwLCAweDMwLCAweDQ2LCAweDAyLCAweDIxLCAweDAwLCAw
eGU5LAorICAgIDB4YTMsIDB4OWYsIDB4MWIsIDB4MDMsIDB4MTksIDB4NzUsIDB4MjUsIDB4Zjcs
IDB4MzcsIDB4M2UsIDB4MTAsIDB4Y2UsCisgICAgMHg3NywgMHhlNywgMHg4MCwgMHgyMSwgMHg3
MywgMHgxYiwgMHg5NCwgMHhkMCwgMHhjMCwgMHgzZiwgMHgzZiwgMHhkYSwKKyAgICAweDFmLCAw
eGQyLCAweDJkLCAweGIzLCAweGQwLCAweDMwLCAweGU3LCAweDAyLCAweDIxLCAweDAwLCAweGM0
LCAweGZhLAorICAgIDB4ZWMsIDB4MzQsIDB4NDUsIDB4YTgsIDB4MjAsIDB4Y2YsIDB4NDMsIDB4
MTIsIDB4OWMsIDB4ZGIsIDB4MDAsIDB4YWEsCisgICAgMHhiZSwgMHhmZCwgMHg5YSwgMHhlMiwg
MHhkOCwgMHg3NCwgMHhmOSwgMHhjNSwgMHhkMywgMHg0MywgMHhjYiwgMHgyZiwKKyAgICAweDEx
LCAweDNkLCAweGEyLCAweDM3LCAweDIzLCAweGYzLAorfTsKKworLy8gQmVsb3cgfGtDdGFwMk1h
a2VDcmVkZW50aWFsQ2VydGlmaWNhdGV8LCB8a0N0YXAyTWFrZUNyZWRlbnRpYWxBdXRoRGF0YXws
IGFuZAorLy8gfGtDdGFwMk1ha2VDcmVkZW50aWFsU2lnbmF0dXJlfCBsZXZlcmFnZSBleGFtcGxl
IDQgb2YgdGhlIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9m
aWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2Nv
bC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwKK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwMk1ha2VDcmVk
ZW50aWFsQ2VydGlmaWNhdGVbXSA9IHsKKyAgICAweDMwLCAweDgyLCAweDAxLCAweDkzLCAweDMw
LCAweDgyLCAweDAxLCAweDM4LCAweGEwLCAweDAzLCAweDAyLCAweDAxLAorICAgIDB4MDIsIDB4
MDIsIDB4MDksIDB4MDAsIDB4ODUsIDB4OWIsIDB4NzIsIDB4NmMsIDB4YjIsIDB4NGIsIDB4NGMs
IDB4MjksCisgICAgMHgzMCwgMHgwYSwgMHgwNiwgMHgwOCwgMHgyYSwgMHg4NiwgMHg0OCwgMHhj
ZSwgMHgzZCwgMHgwNCwgMHgwMywgMHgwMiwKKyAgICAweDMwLCAweDQ3LCAweDMxLCAweDBiLCAw
eDMwLCAweDA5LCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDA2LCAweDEzLAorICAgIDB4MDIs
IDB4NTUsIDB4NTMsIDB4MzEsIDB4MTQsIDB4MzAsIDB4MTIsIDB4MDYsIDB4MDMsIDB4NTUsIDB4
MDQsIDB4MGEsCisgICAgMHgwYywgMHgwYiwgMHg1OSwgMHg3NSwgMHg2MiwgMHg2OSwgMHg2Mywg
MHg2ZiwgMHgyMCwgMHg1NCwgMHg2NSwgMHg3MywKKyAgICAweDc0LCAweDMxLCAweDIyLCAweDMw
LCAweDIwLCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDBiLCAweDBjLCAweDE5LAorICAgIDB4
NDEsIDB4NzUsIDB4NzQsIDB4NjgsIDB4NjUsIDB4NmUsIDB4NzQsIDB4NjksIDB4NjMsIDB4NjEs
IDB4NzQsIDB4NmYsCisgICAgMHg3MiwgMHgyMCwgMHg0MSwgMHg3NCwgMHg3NCwgMHg2NSwgMHg3
MywgMHg3NCwgMHg2MSwgMHg3NCwgMHg2OSwgMHg2ZiwKKyAgICAweDZlLCAweDMwLCAweDFlLCAw
eDE3LCAweDBkLCAweDMxLCAweDM2LCAweDMxLCAweDMyLCAweDMwLCAweDM0LCAweDMxLAorICAg
IDB4MzEsIDB4MzUsIDB4MzUsIDB4MzAsIDB4MzAsIDB4NWEsIDB4MTcsIDB4MGQsIDB4MzIsIDB4
MzYsIDB4MzEsIDB4MzIsCisgICAgMHgzMCwgMHgzMiwgMHgzMSwgMHgzMSwgMHgzNSwgMHgzNSwg
MHgzMCwgMHgzMCwgMHg1YSwgMHgzMCwgMHg0NywgMHgzMSwKKyAgICAweDBiLCAweDMwLCAweDA5
LCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDA2LCAweDEzLCAweDAyLCAweDU1LCAweDUzLAor
ICAgIDB4MzEsIDB4MTQsIDB4MzAsIDB4MTIsIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MGEs
IDB4MGMsIDB4MGIsIDB4NTksCisgICAgMHg3NSwgMHg2MiwgMHg2OSwgMHg2MywgMHg2ZiwgMHgy
MCwgMHg1NCwgMHg2NSwgMHg3MywgMHg3NCwgMHgzMSwgMHgyMiwKKyAgICAweDMwLCAweDIwLCAw
eDA2LCAweDAzLCAweDU1LCAweDA0LCAweDBiLCAweDBjLCAweDE5LCAweDQxLCAweDc1LCAweDc0
LAorICAgIDB4NjgsIDB4NjUsIDB4NmUsIDB4NzQsIDB4NjksIDB4NjMsIDB4NjEsIDB4NzQsIDB4
NmYsIDB4NzIsIDB4MjAsIDB4NDEsCisgICAgMHg3NCwgMHg3NCwgMHg2NSwgMHg3MywgMHg3NCwg
MHg2MSwgMHg3NCwgMHg2OSwgMHg2ZiwgMHg2ZSwgMHgzMCwgMHg1OSwKKyAgICAweDMwLCAweDEz
LCAweDA2LCAweDA3LCAweDJhLCAweDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDAyLCAweDAxLCAw
eDA2LAorICAgIDB4MDgsIDB4MmEsIDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2QsIDB4MDMsIDB4MDEs
IDB4MDcsIDB4MDMsIDB4NDIsIDB4MDAsCisgICAgMHgwNCwgMHhhZCwgMHgxMSwgMHhlYiwgMHgw
ZSwgMHg4OCwgMHg1MiwgMHhlNSwgMHgzYSwgMHhkNSwgMHhkZiwgMHhlZCwKKyAgICAweDg2LCAw
eGI0LCAweDFlLCAweDYxLCAweDM0LCAweGExLCAweDhlLCAweGM0LCAweGUxLCAweGFmLCAweDhm
LCAweDIyLAorICAgIDB4MWEsIDB4M2MsIDB4N2QsIDB4NmUsIDB4NjMsIDB4NmMsIDB4ODAsIDB4
ZWEsIDB4MTMsIDB4YzMsIDB4ZDUsIDB4MDQsCisgICAgMHhmZiwgMHgyZSwgMHg3NiwgMHgyMSwg
MHgxYiwgMHhiNCwgMHg0NSwgMHgyNSwgMHhiMSwgMHg5NiwgMHhjNCwgMHg0YywKKyAgICAweGI0
LCAweDg0LCAweDk5LCAweDc5LCAweGNmLCAweDZmLCAweDg5LCAweDZlLCAweGNkLCAweDJiLCAw
eGI4LCAweDYwLAorICAgIDB4ZGUsIDB4MWIsIDB4ZjQsIDB4MzcsIDB4NmIsIDB4YTMsIDB4MGQs
IDB4MzAsIDB4MGIsIDB4MzAsIDB4MDksIDB4MDYsCisgICAgMHgwMywgMHg1NSwgMHgxZCwgMHgx
MywgMHgwNCwgMHgwMiwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwYSwgMHgwNiwgMHgwOCwKKyAgICAw
eDJhLCAweDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDA0LCAweDAzLCAweDAyLCAweDAzLCAweDQ5
LCAweDAwLCAweDMwLAorICAgIDB4NDYsIDB4MDIsIDB4MjEsIDB4MDAsIDB4ZTksIDB4YTMsIDB4
OWYsIDB4MWIsIDB4MDMsIDB4MTksIDB4NzUsIDB4MjUsCisgICAgMHhmNywgMHgzNywgMHgzZSwg
MHgxMCwgMHhjZSwgMHg3NywgMHhlNywgMHg4MCwgMHgyMSwgMHg3MywgMHgxYiwgMHg5NCwKKyAg
ICAweGQwLCAweGMwLCAweDNmLCAweDNmLCAweGRhLCAweDFmLCAweGQyLCAweDJkLCAweGIzLCAw
eGQwLCAweDMwLCAweGU3LAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4YzQsIDB4ZmEsIDB4ZWMs
IDB4MzQsIDB4NDUsIDB4YTgsIDB4MjAsIDB4Y2YsIDB4NDMsCisgICAgMHgxMiwgMHg5YywgMHhk
YiwgMHgwMCwgMHhhYSwgMHhiZSwgMHhmZCwgMHg5YSwgMHhlMiwgMHhkOCwgMHg3NCwgMHhmOSwK
KyAgICAweGM1LCAweGQzLCAweDQzLCAweGNiLCAweDJmLCAweDExLCAweDNkLCAweGEyLCAweDM3
LCAweDIzLCAweGYzfTsKKworY29uc3RleHByIHVpbnQ4X3Qga0N0YXAyTWFrZUNyZWRlbnRpYWxB
dXRoRGF0YVtdID0geworICAgIDB4MTEsIDB4OTQsIDB4MjIsIDB4OEQsIDB4QTgsIDB4RkQsIDB4
QkQsIDB4RUUsIDB4RkQsIDB4MjYsIDB4MUIsIDB4RDcsCisgICAgMHhCNiwgMHg1OSwgMHg1Qywg
MHhGRCwgMHg3MCwgMHhBNSwgMHgwRCwgMHg3MCwgMHhDNiwgMHg0MCwgMHg3QiwgMHhDRiwKKyAg
ICAweDAxLCAweDNELCAweEU5LCAweDZELCAweDRFLCAweEZCLCAweDE3LCAweERFLCAweDQxLCAw
eDAwLCAweDAwLCAweDAwLAorICAgIDB4MGIsIDB4ZjgsIDB4YTAsIDB4MTEsIDB4ZjMsIDB4OGMs
IDB4MGEsIDB4NGQsIDB4MTUsIDB4ODAsIDB4MDYsIDB4MTcsCisgICAgMHgxMSwgMHgxZiwgMHg5
ZSwgMHhkYywgMHg3ZCwgMHgwMCwgMHgxMCwgMHg4OSwgMHg1OSwgMHhjZSwgMHhhZCwgMHg1YiwK
KyAgICAweDVjLCAweDQ4LCAweDE2LCAweDRlLCAweDhhLCAweGJjLCAweGQ2LCAweGQ5LCAweDQz
LCAweDVjLCAweDZmLCAweGEzLAorICAgIDB4NjMsIDB4NjEsIDB4NmMsIDB4NjcsIDB4NjUsIDB4
NDUsIDB4NTMsIDB4MzIsIDB4MzUsIDB4MzYsIDB4NjEsIDB4NzgsCisgICAgMHg1OCwgMHgyMCwg
MHhmNywgMHhjNCwgMHhmNCwgMHhhNiwgMHhmMSwgMHhkNywgMHg5NSwgMHgzOCwgMHhkZiwgMHhh
NCwKKyAgICAweGM5LCAweGFjLCAweDUwLCAweDg0LCAweDhkLCAweGY3LCAweDA4LCAweGJjLCAw
eDFjLCAweDk5LCAweGY1LCAweGU2LAorICAgIDB4MGUsIDB4NTEsIDB4YjQsIDB4MmEsIDB4NTIs
IDB4MWIsIDB4MzUsIDB4ZDMsIDB4YjYsIDB4OWEsIDB4NjEsIDB4NzksCisgICAgMHg1OCwgMHgy
MCwgMHhkZSwgMHg3YiwgMHg3ZCwgMHg2YywgMHhhNSwgMHg2NCwgMHhlNywgMHgwZSwgMHhhMywg
MHgyMSwKKyAgICAweGE0LCAweGQ1LCAweGQ5LCAweDZlLCAweGEwLCAweDBlLCAweGYwLCAweGUy
LCAweGRiLCAweDg5LCAweGRkLCAweDYxLAorICAgIDB4ZDQsIDB4ODksIDB4NGMsIDB4MTUsIDB4
YWMsIDB4NTgsIDB4NWIsIDB4ZDIsIDB4MzYsIDB4ODR9OworCitjb25zdGV4cHIgdWludDhfdCBr
Q3RhcDJNYWtlQ3JlZGVudGlhbFNpZ25hdHVyZVtdID0geworICAgIDB4MzAsIDB4NDUsIDB4MDIs
IDB4MjAsIDB4MTMsIDB4ZjcsIDB4M2MsIDB4NWQsIDB4OWQsIDB4NTMsIDB4MGUsIDB4OGMsCisg
ICAgMHhjMSwgMHg1YywgMHhjOSwgMHhiZCwgMHg5NiwgMHhhZCwgMHg1OCwgMHg2ZCwgMHgzOSwg
MHgzNiwgMHg2NCwgMHhlNCwKKyAgICAweDYyLCAweGQ1LCAweGYwLCAweDU2LCAweDEyLCAweDM1
LCAweGU2LCAweDM1LCAweDBmLCAweDJiLCAweDcyLCAweDg5LAorICAgIDB4MDIsIDB4MjEsIDB4
MDAsIDB4OTAsIDB4MzUsIDB4N2YsIDB4ZjksIDB4MTAsIDB4Y2MsIDB4YjUsIDB4NmEsIDB4YzUs
CisgICAgMHhiNSwgMHg5NiwgMHg1MSwgMHgxOSwgMHg0OCwgMHg1OCwgMHgxYywgMHg4ZiwgMHhk
ZCwgMHhiNCwgMHhhMiwgMHhiNywKKyAgICAweDk5LCAweDU5LCAweDk0LCAweDgwLCAweDc4LCAw
eGIwLCAweDlmLCAweDRiLCAweGRjLCAweDYyLCAweDI5fTsKKworY29uc3RleHByIHVpbnQ4X3Qg
a0N0YXAyTWFrZUNyZWRlbnRpYWxDcmVkZW50aWFsSWRbXSA9IHsKKyAgICAweDg5LCAweDU5LCAw
eGNlLCAweGFkLCAweDViLCAweDVjLCAweDQ4LCAweDE2LAorICAgIDB4NGUsIDB4OGEsIDB4YmMs
IDB4ZDYsIDB4ZDksIDB4NDMsIDB4NWMsIDB4NmYsCit9OworCitjb25zdGV4cHIgdWludDhfdCBr
Q3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YVtdID0geworICAgIDB4NjIsIDB4NWQsIDB4ZGEsIDB4
ZGYsIDB4NzQsIDB4M2YsIDB4NTcsIDB4MjcsIDB4ZTYsIDB4NmIsCisgICAgMHhiYSwgMHg4Yywg
MHgyZSwgMHgzOCwgMHg3OSwgMHgyMiwgMHhkMSwgMHhhZiwgMHg0MywgMHhjNSwKKyAgICAweDAz
LCAweGQ5LCAweDExLCAweDRhLCAweDhmLCAweGJhLCAweDEwLCAweDRkLCAweDg0LCAweGQwLAor
ICAgIDB4MmIsIDB4ZmEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTF9OworCitjb25zdGV4
cHIgdWludDhfdCBrQ3RhcDJHZXRBc3NlcnRpb25TaWduYXR1cmVbXSA9IHsKKyAgICAweDMwLCAw
eDQ1LCAweDAyLCAweDIwLCAweDRhLCAweDVhLCAweDlkLCAweGQzLCAweDkyLCAweDk4LCAweDE0
LCAweDlkLAorICAgIDB4OTAsIDB4NDcsIDB4NjksIDB4YjUsIDB4MWEsIDB4NDUsIDB4MTQsIDB4
MzMsIDB4MDAsIDB4NmYsIDB4MTgsIDB4MmEsCisgICAgMHgzNCwgMHhmYiwgMHhkZiwgMHg2Niwg
MHhkZSwgMHg1ZiwgMHhjNywgMHgxNywgMHhkNywgMHg1ZiwgMHhiMywgMHg1MCwKKyAgICAweDAy
LCAweDIxLCAweDAwLCAweGE0LCAweDZiLCAweDhlLCAweGEzLCAweGMzLCAweGI5LCAweDMzLCAw
eDgyLCAweDFjLAorICAgIDB4NmUsIDB4N2YsIDB4NWUsIDB4ZjksIDB4ZGEsIDB4YWUsIDB4OTQs
IDB4YWIsIDB4NDcsIDB4ZjEsIDB4OGQsIDB4YjQsCisgICAgMHg3NCwgMHhjNywgMHg0NywgMHg5
MCwgMHhlYSwgMHhhYiwgMHhiMSwgMHg0NCwgMHgxMSwgMHhlNywgMHhhMCwKK307CisKK2NvbnN0
ZXhwciB1aW50OF90IGtEZXZpY2VHZXRBc3NlcnRpb25SZXNwb25zZVtdID0geworICAgIC8vIFN1
Y2Nlc3MgcmVzcG9uc2UgY29kZQorICAgIDB4MDAsCisgICAgLy8gbWFwKDUpCisgICAgMHhhNSwK
KyAgICAvLyB1bnNpZ25lZCgxKSAtIENyZWRlbnRpYWwKKyAgICAweDAxLAorICAgIC8vIG1hcCgy
KQorICAgIDB4YTIsCisgICAgLy8gdGV4dCgyKQorICAgIDB4NjIsCisgICAgLy8gImlkIgorICAg
IDB4NjksIDB4NjQsCisgICAgLy8gYnl0ZXMoNjQpCisgICAgMHg1OCwgMHg0MCwKKyAgICAvLyBj
cmVkZW50aWFsIGlkCisgICAgMHhmMiwgMHgyMCwgMHgwNiwgMHhkZSwgMHg0ZiwgMHg5MCwgMHg1
YSwgMHhmNiwgMHg4YSwgMHg0MywgMHg5NCwgMHgyZiwKKyAgICAweDAyLCAweDRmLCAweDJhLCAw
eDVlLCAweGNlLCAweDYwLCAweDNkLCAweDljLCAweDZkLCAweDRiLCAweDNkLCAweGY4LAorICAg
IDB4YmUsIDB4MDgsIDB4ZWQsIDB4MDEsIDB4ZmMsIDB4NDQsIDB4MjYsIDB4NDYsIDB4ZDAsIDB4
MzQsIDB4ODUsIDB4OGEsCisgICAgMHhjNywgMHg1YiwgMHhlZCwgMHgzZiwgMHhkNSwgMHg4MCwg
MHhiZiwgMHg5OCwgMHgwOCwgMHhkOSwgMHg0ZiwgMHhjYiwKKyAgICAweGVlLCAweDgyLCAweGI5
LCAweGIyLCAweGVmLCAweDY2LCAweDc3LCAweGFmLCAweDBhLCAweGRjLCAweGMzLCAweDU4LAor
ICAgIDB4NTIsIDB4ZWEsIDB4NmIsIDB4OWUsCisgICAgLy8gdGV4dCg0KQorICAgIDB4NjQsCisg
ICAgLy8gInR5cGUiCisgICAgMHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwKKyAgICAvLyB0ZXh0KDEw
KQorICAgIDB4NmEsCisgICAgLy8gInB1YmxpYy1rZXkiCisgICAgMHg3MCwgMHg3NSwgMHg2Miwg
MHg2QywgMHg2OSwgMHg2MywgMHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAgICAvLyB1bnNpZ25l
ZCgyKSAtIEF1dGggZGF0YQorICAgIDB4MDIsCisgICAgLy8gYnl0ZXMoMzcpCisgICAgMHg1OCwg
MHgyNSwKKyAgICAvLyBhdXRoIGRhdGEKKyAgICAweDYyLCAweDVkLCAweGRhLCAweGRmLCAweDc0
LCAweDNmLCAweDU3LCAweDI3LCAweGU2LCAweDZiLCAweGJhLCAweDhjLAorICAgIDB4MmUsIDB4
MzgsIDB4NzksIDB4MjIsIDB4ZDEsIDB4YWYsIDB4NDMsIDB4YzUsIDB4MDMsIDB4ZDksIDB4MTEs
IDB4NGEsCisgICAgMHg4ZiwgMHhiYSwgMHgxMCwgMHg0ZCwgMHg4NCwgMHhkMCwgMHgyYiwgMHhm
YSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDExLAorICAgIC8vIHVuc2lnbmVkKDMp
IC0gc2lnbmF0dXJlCisgICAgMHgwMywKKyAgICAvLyBieXRlcyg3MSkKKyAgICAweDU4LCAweDQ3
LAorICAgIC8vIHNpZ25hdHVyZQorICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4MjAsIDB4NGEsIDB4
NWEsIDB4OWQsIDB4ZDMsIDB4OTIsIDB4OTgsIDB4MTQsIDB4OWQsCisgICAgMHg5MCwgMHg0Nywg
MHg2OSwgMHhiNSwgMHgxYSwgMHg0NSwgMHgxNCwgMHgzMywgMHgwMCwgMHg2ZiwgMHgxOCwgMHgy
YSwKKyAgICAweDM0LCAweGZiLCAweGRmLCAweDY2LCAweGRlLCAweDVmLCAweGM3LCAweDE3LCAw
eGQ3LCAweDVmLCAweGIzLCAweDUwLAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4YTQsIDB4NmIs
IDB4OGUsIDB4YTMsIDB4YzMsIDB4YjksIDB4MzMsIDB4ODIsIDB4MWMsCisgICAgMHg2ZSwgMHg3
ZiwgMHg1ZSwgMHhmOSwgMHhkYSwgMHhhZSwgMHg5NCwgMHhhYiwgMHg0NywgMHhmMSwgMHg4ZCwg
MHhiNCwKKyAgICAweDc0LCAweGM3LCAweDQ3LCAweDkwLCAweGVhLCAweGFiLCAweGIxLCAweDQ0
LCAweDExLCAweGU3LCAweGEwLAorICAgIC8vIHVuc2lnbmVkKDQpIC0gcHVibGljS2V5Q3JlZGVu
dGlhbFVzZXJFbnRpdHkKKyAgICAweDA0LAorICAgIC8vIG1hcCg0KQorICAgIDB4YTQsCisgICAg
Ly8gdGV4dCgyKQorICAgIDB4NjIsCisgICAgLy8gImlkIgorICAgIDB4NjksIDB4NjQsCisgICAg
Ly8gYnl0ZXMoMzIpIC0gdXNlciBpZAorICAgIDB4NTgsIDB4MjAsCisgICAgLy8gdXNlciBpZAor
ICAgIDB4MzAsIDB4ODIsIDB4MDEsIDB4OTMsIDB4MzAsIDB4ODIsIDB4MDEsIDB4MzgsIDB4YTAs
IDB4MDMsIDB4MDIsIDB4MDEsCisgICAgMHgwMiwgMHgzMCwgMHg4MiwgMHgwMSwgMHg5MywgMHgz
MCwgMHg4MiwgMHgwMSwgMHgzOCwgMHhhMCwgMHgwMywgMHgwMiwKKyAgICAweDAxLCAweDAyLCAw
eDMwLCAweDgyLCAweDAxLCAweDkzLCAweDMwLCAweDgyLAorICAgIC8vIHRleHQoNCkKKyAgICAw
eDY0LAorICAgIC8vICJpY29uIgorICAgIDB4NjksIDB4NjMsIDB4NmYsIDB4NmUsCisgICAgLy8g
dGV4dCg0MCkKKyAgICAweDc4LCAweDI4LAorICAgIC8vICJodHRwczovL3BpY3MuYWNtZS5jb20v
MDAvcC9hQmpqanBxUGIucG5nIgorICAgIDB4NjgsIDB4NzQsIDB4NzQsIDB4NzAsIDB4NzMsIDB4
M2EsIDB4MmYsIDB4MmYsIDB4NzAsIDB4NjksIDB4NjMsIDB4NzMsCisgICAgMHgyZSwgMHg2MSwg
MHg2MywgMHg2ZCwgMHg2NSwgMHgyZSwgMHg2MywgMHg2ZiwgMHg2ZCwgMHgyZiwgMHgzMCwgMHgz
MCwKKyAgICAweDJmLCAweDcwLCAweDJmLCAweDYxLCAweDQyLCAweDZhLCAweDZhLCAweDZhLCAw
eDcwLCAweDcxLCAweDUwLCAweDYyLAorICAgIDB4MmUsIDB4NzAsIDB4NmUsIDB4NjcsCisgICAg
Ly8gdGV4dCg0KQorICAgIDB4NjQsCisgICAgLy8gIm5hbWUiCisgICAgMHg2ZSwgMHg2MSwgMHg2
ZCwgMHg2NSwKKyAgICAvLyB0ZXh0KDIyKQorICAgIDB4NzYsCisgICAgLy8gImpvaG5wc21pdGhA
ZXhhbXBsZS5jb20iCisgICAgMHg2YSwgMHg2ZiwgMHg2OCwgMHg2ZSwgMHg3MCwgMHg3MywgMHg2
ZCwgMHg2OSwgMHg3NCwgMHg2OCwgMHg0MCwgMHg2NSwKKyAgICAweDc4LCAweDYxLCAweDZkLCAw
eDcwLCAweDZjLCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAweDZkLAorICAgIC8vIHRleHQoMTEp
CisgICAgMHg2YiwKKyAgICAvLyAiZGlzcGxheU5hbWUiCisgICAgMHg2NCwgMHg2OSwgMHg3Mywg
MHg3MCwgMHg2YywgMHg2MSwgMHg3OSwgMHg0ZSwgMHg2MSwgMHg2ZCwgMHg2NSwKKyAgICAvLyB0
ZXh0KDEzKQorICAgIDB4NmQsCisgICAgLy8gIkpvaG4gUC4gU21pdGgiCisgICAgMHg0YSwgMHg2
ZiwgMHg2OCwgMHg2ZSwgMHgyMCwgMHg1MCwgMHgyZSwgMHgyMCwgMHg1MywgMHg2ZCwgMHg2OSwg
MHg3NCwKKyAgICAweDY4LAorICAgIC8vIHVuc2lnbmVkKDUpIC0gbnVtYmVyIG9mIGNyZWRlbnRp
YWxzCisgICAgMHgwNSwKKyAgICAvLyAxCisgICAgMHgwMSwKK307CisKK30gLy8gbmFtZXNwYWNl
IFRlc3REYXRhCisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVO
QUJMRShXRUJfQVVUSE4pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353527</attachid>
            <date>2018-10-31 13:56:09 -0700</date>
            <delta_ts>2018-11-07 13:47:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190784-20181031135608.patch</filename>
            <type>text/plain</type>
            <size>148686</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFmNDQ3ZDE1N2JlMDJh
MzA1Y2UyMDk2MDdlNTc5ZjYxNjM3YmNhOS4uMzU1MzE5MjU4ZTc3MmEyYzJiMTJiOWZhYWQ2Mzkx
OTcwNWRmNzY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDE4LTEwLTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBv
cnQgQ1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzIGZyb20gQ2hyb21pdW0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDc4NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU0NjAzMzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBvcnRzIENocm9taXVtJ3Mg
Q1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzOgorICAgICAgICBodHRwczov
L2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50
LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sI21lc3NhZ2Ut
ZW5jb2RpbmcKKyAgICAgICAgMS4gSXQgZGlyZWN0bHkgaW1wb3J0cyB0aGUgZm9sbG93aW5nIGZp
bGVzIGFuZCBzdWl0IHRoZW0gdG8gV2ViS2l0J3MgY29kaW5nIHN0eWxlOgorICAgICAgICBodHRw
czovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vZGV2aWNlX3Jlc3Bv
bnNlX2NvbnZlcnRlci5jYz9sPTIwJnJjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQy
ZDk5YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9k
ZXZpY2UvZmlkby9kZXZpY2VfcmVzcG9uc2VfY29udmVydGVyLmg/cmNsPTA5OGRmZDkwODUwZmZh
ODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5v
cmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhlbnRpY2F0b3JfZ2V0X2luZm9fcmVzcG9u
c2UuY2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAg
ICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2F1dGhl
bnRpY2F0b3JfZ2V0X2luZm9fcmVzcG9uc2UuaD9yY2w9MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRh
Yjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1
bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9zdXBwb3J0ZWRfb3B0aW9ucy5jYz9yY2w9
MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczov
L2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9z
dXBwb3J0ZWRfb3B0aW9ucy5oP3JjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5
YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9kZXZp
Y2UvZmlkby9jdGFwX3JlcXVlc3RfdW5pdHRlc3QuY2M/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdh
ODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hy
b21pdW0vc3JjL2RldmljZS9maWRvL2N0YXBfcmVzcG9uc2VfdW5pdHRlc3QuY2M/cmNsPTA5OGRm
ZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5j
aHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2RldmljZS9maWRvL2ZpZG9fdGVzdF9kYXRhLmg/bD0x
JnJjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5YzRlYzQ1CisgICAgICAgIDIu
IEl0IGdhdGhlcnMgdGhlIGZvbGxvd2luZyBtZXRob2RzIGludG8gRGV2aWNlUmVxdWVzdENvbnZl
cnRlcjoKKyAgICAgICAgQ3RhcEdldEFzc2VydGlvblJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisg
ICAgICAgIEN0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3Q6OkVuY29kZUFzQ0JPUigpCisgICAgICAg
IFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yOjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAg
UHVibGljS2V5Q3JlZGVudGlhbFBhcmFtczo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1Ymxp
Y0tleUNyZWRlbnRpYWxScEVudGl0eTo6Q29udmVydFRvQ0JPUigpCisgICAgICAgIFB1YmxpY0tl
eUNyZWRlbnRpYWxVc2VyRW50aXR5OjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAgMy4gSXQgYWxz
byBhcHBseSBhIHBhdGNoIGZyb20gQ2hyb21pdW0gdG8gQ0JPUlZhbHVlOgorICAgICAgICBodHRw
czovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjLysvN2I2ZmJmZjM1Y2Q4
ZTRkNTA4ZjA4ZTFjZDkzYjRhYTBhMGRjNDAyYyU1RSUyMS8KKworICAgICAgICBCZXNpZGVzIGlt
cG9ydGluZyB0aGluZ3MgZnJvbSBDaHJvbWl1bSwgaXQgYWxzbyBpbXBsZW1lbnRzIFVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudCBmb3IgYm90aAorICAgICAgICBQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zIGFuZCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgc3Vj
aCB0aGF0IGJvdGggb3B0aW9ucworICAgICAgICBjYW4gc3BlY2lmeSBtb3JlIGRpbWVuc2lvbnMg
b2YgYSBkZXNpcmVkIGF1dGhlbnRpY2F0b3IuCisKKyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVz
dHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
czo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjpkZWNvZGUpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9uczo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMu
aWRsLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpDQk9S
VmFsdWUpOgorICAgICAgICAoY2Jvcjo6Q0JPUlZhbHVlOjpnZXRCb29sIGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmg6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKGZpZG86OnRvQXJyYXlWYWx1ZSk6CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlOjpBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKToKKyAgICAg
ICAgKGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldE1heE1zZ1NpemUpOgor
ICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0UGluUHJvdG9j
b2xzKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U6OnNldEV4
dGVuc2lvbnMpOgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6
c2V0T3B0aW9ucyk6CisgICAgICAgIChmaWRvOjplbmNvZGVBc0NCT1IpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9ucy5jcHA6IEFkZGVkLgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnM6OnNldFN1cHBvcnRzUmVzaWRlbnRLZXkpOgorICAgICAgICAoZmlkbzo6QXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkp
OgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJQ
cmVzZW5jZVJlcXVpcmVkKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zOjpzZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkpOgorICAgICAgICAoZmlkbzo6QXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldElzUGxhdGZvcm1EZXZpY2UpOgorICAgICAgICAo
Zmlkbzo6Y29udmVydFRvQ0JPUik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcDogQWRkZWQuCisgICAgICAg
IChmaWRvOjpjb252ZXJ0UnBFbnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFVz
ZXJFbnRpdHlUb0NCT1IpOgorICAgICAgICAoZmlkbzo6Y29udmVydFBhcmFtZXRlcnNUb0NCT1Ip
OgorICAgICAgICAoZmlkbzo6Y29udmVydERlc2NyaXB0b3JUb0NCT1IpOgorICAgICAgICAoZmlk
bzo6ZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKToKKyAgICAgICAgKGZpZG86OmVu
Y29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IpOgorICAgICAgICAoZmlkbzo6ZW5jb2RlRW1w
dHlBdXRoZW50aWNhdG9yUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRv
L0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaC4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KGZpZG86OmNvbnZlcnRTdHJpbmdUb1Byb3RvY29sVmVyc2lvbik6CisgICAgICAgIChmaWRvOjpn
ZXRSZXNwb25zZUNvZGUpOgorICAgICAgICAoZmlkbzo6Z2V0Q3JlZGVudGlhbElkKToKKyAgICAg
ICAgKGZpZG86OnJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZSk6CisgICAgICAgIChmaWRv
OjpyZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKToKKyAgICAgICAgKGZpZG86OnJlYWRDVEFQ
R2V0SW5mb1Jlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNl
UmVzcG9uc2VDb252ZXJ0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0
aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcDoKKyAgICAgICAgKGZpZG86OmlzQ3RhcERldmljZVJl
c3BvbnNlQ29kZSk6CisgICAgICAgIChmaWRvOjpwdWJsaWNLZXlDcmVkZW50aWFsVHlwZVRvU3Ry
aW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxOC0xMC0zMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxl
LmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBzb21lIG9ic29sZXRlIE1BWF9BTExPV0VEIG1hY3Jv
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMjliNmM1NDkzMmY5ZTRlODg0NjZkY2Y5MThjYmQ2
ZTE3NDY0MmQ1Li44YTEwYmQzNDg5MjRhZDFlMmViYzAyNWQ5NTAxNDQwZWM1ZWY2MzEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtNDMxLDYgKzQzMSw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdf
SURMX0ZJTEVTCiAgICAgTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3Jp
cHRvci5pZGwKICAgICBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5pZGwKICAgICBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxUeXBl
LmlkbAorICAgIE1vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50Lmlk
bAogCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5pZGwKICAg
ICBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggNjYzOTBkNDlmYjM5ZDZjNGIyYzQ3NjI2MDVkMjYwNWZiMmI1YjEwZC4uZTBj
NTIwNzQ3ODhhNWRmMTdmZjU0YWI1ZjQ4YTUxZmE3NTM1NThmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCkBAIC0zNTUsNiArMzU1LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRv
ci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50
aWFsUmVxdWVzdE9wdGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXV0aG4v
UHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
YXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ2FsbGJhY2suaWRsIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKaW5kZXggOGFmYjRkZDRkNDYxZTg2ZTY5NDgzMzllMjEx
YjE5OWU3MWE5ODczMy4uYmE2OGRmOTJiMTgyYzdhOWIxM2EzNjZmYTkxMTYwODJlYjQ2NWRiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50
aWFsRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmgiCisj
aW5jbHVkZSAiVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL0Ny
b3NzVGhyZWFkQ29waWVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtNjUsNyAr
NjYsOSBAQCBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyB7CiAgICAg
fTsKIAogICAgIHN0cnVjdCBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgewotICAgICAg
ICBBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yQXR0YWNobWVudD4gYXV0aGVudGljYXRvckF0
dGFjaG1lbnQ7CisgICAgICAgIGJvb2wgcmVxdWlyZVJlc2lkZW50S2V5IHsgZmFsc2UgfTsKKyAg
ICAgICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IHVzZXJWZXJpZmljYXRpb24geyBVc2Vy
VmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZCB9OwogCiAgICAgICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICAgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRvclNl
bGVjdGlvbkNyaXRlcmlhPiBkZWNvZGUoRGVjb2RlciYpOwpAQCAtMTA1LDE0ICsxMDgsMjcgQEAg
c3RkOjpvcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0
ZXJzPiBQdWJsaWNLZXlDcmVkZW50aWEKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25D
cml0ZXJpYTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8
PCBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAgICBlbmNvZGVyIDw8IGF1dGhlbnRpY2F0b3JB
dHRhY2htZW50IDw8IHJlcXVpcmVSZXNpZGVudEtleSA8PCB1c2VyVmVyaWZpY2F0aW9uOwogfQog
CiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE+IFB1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0
ZXJpYTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHJlc3VsdDsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuYXV0aGVudGljYXRvckF0dGFjaG1l
bnQpKQorCisgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPEF1dGhlbnRpY2F0b3JBdHRh
Y2htZW50Pj4gYXV0aGVudGljYXRvckF0dGFjaG1lbnQ7CisgICAgZGVjb2RlciA+PiBhdXRoZW50
aWNhdG9yQXR0YWNobWVudDsKKyAgICBpZiAoIWF1dGhlbnRpY2F0b3JBdHRhY2htZW50KQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJlc3VsdC5hdXRoZW50aWNhdG9yQXR0YWNo
bWVudCA9IFdURk1vdmUoKmF1dGhlbnRpY2F0b3JBdHRhY2htZW50KTsKKworICAgIHN0ZDo6b3B0
aW9uYWw8Ym9vbD4gcmVxdWlyZVJlc2lkZW50S2V5OworICAgIGRlY29kZXIgPj4gcmVxdWlyZVJl
c2lkZW50S2V5OworICAgIGlmICghcmVxdWlyZVJlc2lkZW50S2V5KQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIHJlc3VsdC5yZXF1aXJlUmVzaWRlbnRLZXkgPSAqcmVxdWlyZVJl
c2lkZW50S2V5OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LnVzZXJWZXJp
ZmljYXRpb24pKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIHJldHVybiByZXN1
bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbAppbmRleCBh
MzE1MjVmMzI1NDhkYjY1ODM5MzZlYmIwMzI3Yjk1NGExYzcxMDYxLi4zNmUxODBiZWRmYzgyMDFm
M2JjNGI1MzVjYWMwZjc0M2M4ZTdjNWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucy5pZGwKQEAgLTc0LDEwICs3NCw4IEBAIHR5cGVkZWYgbG9uZyBDT1NFQWxnb3Jp
dGhtSWRlbnRpZmllcjsKICAgICBDb25kaXRpb25hbD1XRUJfQVVUSE4sCiBdIGRpY3Rpb25hcnkg
QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHsKICAgICBBdXRoZW50aWNhdG9yQXR0YWNo
bWVudCAgICAgIGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OwotICAgIC8vIFdlIGRvbid0IGFsbG93
IFJQcyB0byBzZXQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgYXQgdGhpcyBzdGFnZS4KLSAgICAvLyBI
ZW5jZSwgdGhvc2Ugb3B0aW9ucyBhcmUgYWx3YXlzIHsgdHJ1ZSwgInJlcXVpcmVkIiB9LgotICAg
IC8vIGJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZVJlc2lkZW50S2V5ID0gZmFs
c2U7Ci0gICAgLy8gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50ICB1c2VyVmVyaWZpY2F0aW9u
ID0gInByZWZlcnJlZCI7CisgICAgYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJl
UmVzaWRlbnRLZXkgPSBmYWxzZTsKKyAgICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgIHVz
ZXJWZXJpZmljYXRpb24gPSAicHJlZmVycmVkIjsKIH07CiAKIFsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucy5oCmluZGV4IDI3NDQ3NmVmNzI3Yjg1ZDc1ZGQxYTllMjBjNTg3YWQx
YjkyZjBmMDEuLmJiNGZmOTJjMmM1MWNiZDgyOTM1ZDA4ZmQwYTU2MTIyMjcxZWU4OGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9Q
dWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaApAQCAtMjksNiArMjksNyBAQAogCiAj
aW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbERl
c2NyaXB0b3IuaCIKKyNpbmNsdWRlICJVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCIKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCw2ICsz
OSw3IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgewogICAgIHN0
ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHRpbWVvdXQ7CiAgICAgbXV0YWJsZSBTdHJpbmcgcnBJZDsK
ICAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I+IGFsbG93Q3JlZGVudGlh
bHM7CisgICAgc3RkOjpvcHRpb25hbDxVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ+IHVzZXJW
ZXJpZmljYXRpb24geyBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZCB9Owog
CiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4gZGVjb2RlKERlY29kZXImKTsKQEAgLTQ3LDcg
KzQ5LDcgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyB7CiB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgdGlt
ZW91dCA8PCBycElkIDw8IGFsbG93Q3JlZGVudGlhbHM7CisgICAgZW5jb2RlciA8PCB0aW1lb3V0
IDw8IHJwSWQgPDwgYWxsb3dDcmVkZW50aWFscyA8PCB1c2VyVmVyaWZpY2F0aW9uOwogfQogCiB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtNjUsNiArNjcsMTMgQEAgc3RkOjpvcHRpb25hbDxQ
dWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1
ZXN0T3B0aW8KICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5hbGxvd0NyZWRlbnRpYWxzKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQ+PiB1c2VyVmVyaWZpY2F0aW9uOworICAgIGRlY29kZXIgPj4gdXNlclZlcmlm
aWNhdGlvbjsKKyAgICBpZiAoIXVzZXJWZXJpZmljYXRpb24pCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgcmVzdWx0LnVzZXJWZXJpZmljYXRpb24gPSBXVEZNb3ZlKCp1c2VyVmVy
aWZpY2F0aW9uKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zLmlkbAppbmRleCA4OWEyMDZkYzljOWZkMjE3OGI5MTYxNmVkMTE2
NWZiNDdlOGU0ZGUwLi5kNjUxZGIyOGFlNjZkMGZjNjk4MjEwZDY4NzE2ZDZlMTExNDBjODM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsCkBAIC0zMCw4ICszMCw3
IEBACiAgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0OwogICAgIFVTVlN0cmluZyBycElkOwogICAg
IHNlcXVlbmNlPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiBhbGxvd0NyZWRlbnRpYWxz
ID0gW107Ci0gICAgLy8gQWx3YXlzICJyZXF1aXJlZCIgYXQgdGhpcyBzdGFnZQotICAgIC8vIFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB1c2VyVmVyaWZpY2F0aW9uID0gInByZWZlcnJlZCI7
CisgICAgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IHVzZXJWZXJpZmljYXRpb24gPSAicHJl
ZmVycmVkIjsKICAgICAvLyBOb3Qgc3VwcG9ydCB5ZXQuCiAgICAgLy8gQXV0aGVudGljYXRpb25F
eHRlbnNpb25zIGV4dGVuc2lvbnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODMxNGQwMmM1MmQ5YWFjMjE1NzVmZWI2ZmVhOGY0MTQ4ZmM1NzQ5NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQgeworICAgIFJlcXVpcmVkLAorICAgIFByZWZlcnJlZCwKKyAgICBEaXNjb3VyYWdl
ZAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3Jl
OjpVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQsCisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQsCisgICAgICAgIFdlYkNvcmU6OlVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkLAorICAgICAgICBXZWJDb3JlOjpVc2VyVmVy
aWZpY2F0aW9uUmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkCisgICAgPjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmY0ZmI5NWVhMDAyZTViYTk2NWNkNTdiMTUyMWM1
ODBlNjQ5OWNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCX0FVVEhOLAorICAgIEltcGxlbWVudGVk
QXM9VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50CitdIGVudW0gVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50IHsKKyAgICAicmVxdWlyZWQiLAorICAgICJwcmVmZXJyZWQiLAorICAgICJkaXNj
b3VyYWdlZCIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2Nib3IvQ0JPUlZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jv
ci9DQk9SVmFsdWUuY3BwCmluZGV4IDI1ZWQ5OGI5MWY4M2E0YjQ2ODMwZGY0OGZhMDViYTg2OGM4
MTIyYjMuLjRjOGZmYWQxYThjZjBmNTE0N2NjNzY3NDRiYmE4NmRlNTFjOWRjYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwCkBA
IC0xNTMsNiArMTUzLDEyIEBAIENCT1JWYWx1ZTo6Q0JPUlZhbHVlKFNpbXBsZVZhbHVlIGluU2lt
cGxlKQogICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KGluU2ltcGxlKSA+PSAyMCAmJiBzdGF0
aWNfY2FzdDxpbnQ+KGluU2ltcGxlKSA8PSAyMyk7CiB9CiAKK0NCT1JWYWx1ZTo6Q0JPUlZhbHVl
KGJvb2wgaW5Cb29sKQorICAgIDogbV90eXBlKFR5cGU6OlNpbXBsZVZhbHVlKQoreworICAgIG1f
c2ltcGxlVmFsdWUgPSBpbkJvb2wgPyBDQk9SVmFsdWU6OlNpbXBsZVZhbHVlOjpUcnVlVmFsdWUg
OiBDQk9SVmFsdWU6OlNpbXBsZVZhbHVlOjpGYWxzZVZhbHVlOworfQorCiBDQk9SVmFsdWUmIENC
T1JWYWx1ZTo6b3BlcmF0b3I9KENCT1JWYWx1ZSYmIHRoYXQpCiB7CiAgICAgaW50ZXJuYWxDbGVh
bnVwKCk7CkBAIC0yNDAsNiArMjQ2LDEyIEBAIENCT1JWYWx1ZTo6U2ltcGxlVmFsdWUgQ0JPUlZh
bHVlOjpnZXRTaW1wbGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2ltcGxlVmFsdWU7CiB9
CiAKK2Jvb2wgQ0JPUlZhbHVlOjpnZXRCb29sKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNCb29s
KCkpOworICAgIHJldHVybiBtX3NpbXBsZVZhbHVlID09IFNpbXBsZVZhbHVlOjpUcnVlVmFsdWU7
Cit9CisKIHZvaWQgQ0JPUlZhbHVlOjppbnRlcm5hbE1vdmVDb25zdHJ1Y3RGcm9tKENCT1JWYWx1
ZSYmIHRoYXQpCiB7CiAgICAgbV90eXBlID0gdGhhdC5tX3R5cGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmgKaW5kZXggZTJkYjBlMTI3Mzhh
OTlhNzQ3YzgyZjQwOTEzMDA0YzY2MGI3ZThkNC4uNmE0YzgzYWJhMDMxYzM4ZDM3OWU2NmJjOTNl
YzQ3ZTVmMTkzMTc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9jYm9yL0NCT1JWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Y2Jvci9DQk9SVmFsdWUuaApAQCAtMTM4LDYgKzEzOCw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNp
dCBDQk9SVmFsdWUoTWFwVmFsdWUmJik7CiAKICAgICBleHBsaWNpdCBDQk9SVmFsdWUoU2ltcGxl
VmFsdWUpOworICAgIGV4cGxpY2l0IENCT1JWYWx1ZShib29sKTsKIAogICAgIENCT1JWYWx1ZSYg
b3BlcmF0b3I9KENCT1JWYWx1ZSYmKTsKIApAQCAtMTYxLDkgKzE2MiwxMSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0FycmF5KCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFR5cGU6OkFycmF5OyB9
CiAgICAgYm9vbCBpc01hcCgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBUeXBlOjpNYXA7IH0K
ICAgICBib29sIGlzU2ltcGxlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IFR5cGU6OlNpbXBs
ZVZhbHVlOyB9CisgICAgYm9vbCBpc0Jvb2woKSBjb25zdCB7IHJldHVybiBpc1NpbXBsZSgpICYm
IChtX3NpbXBsZVZhbHVlID09IFNpbXBsZVZhbHVlOjpUcnVlVmFsdWUgfHwgbV9zaW1wbGVWYWx1
ZSA9PSBTaW1wbGVWYWx1ZTo6RmFsc2VWYWx1ZSk7IH0KIAogICAgIC8vIFRoZXNlIHdpbGwgYWxs
IGZhdGFsbHkgYXNzZXJ0IGlmIHRoZSB0eXBlIGRvZXNuJ3QgbWF0Y2guCiAgICAgU2ltcGxlVmFs
dWUgZ2V0U2ltcGxlVmFsdWUoKSBjb25zdDsKKyAgICBib29sIGdldEJvb2woKSBjb25zdDsKICAg
ICBjb25zdCBpbnQ2NF90JiBnZXRJbnRlZ2VyKCkgY29uc3Q7CiAgICAgY29uc3QgaW50NjRfdCYg
Z2V0VW5zaWduZWQoKSBjb25zdDsKICAgICBjb25zdCBpbnQ2NF90JiBnZXROZWdhdGl2ZSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1
dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMwOWFkNzZlZTI3MDRjZTJjNjVkZGNlMGZhNzQzNGViNjk5MWY5ZGUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZS5jcHAKQEAgLTAsMCArMSwxMTAgQEAKKy8vIENvcHlyaWdodCAyMDE4IFRo
ZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
Ky8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisv
LyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
Ly8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
Ly8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCIKKworI2lmIEVOQUJMRShXRUJfQVVUSE4p
CisKKyNpbmNsdWRlICJDQk9SVmFsdWUuaCIKKyNpbmNsdWRlICJDQk9SV3JpdGVyLmgiCisKK25h
bWVzcGFjZSBmaWRvIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIENvbnRhaW5lcj4KK2Nib3I6OkNC
T1JWYWx1ZSB0b0FycmF5VmFsdWUoY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIpCit7CisgICAg
Y2Jvcjo6Q0JPUlZhbHVlOjpBcnJheVZhbHVlIHZhbHVlOworICAgIHZhbHVlLnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkoY29udGFpbmVyLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBpdGVt
IDogY29udGFpbmVyKQorICAgICAgICB2YWx1ZS5hcHBlbmQoY2Jvcjo6Q0JPUlZhbHVlKGl0ZW0p
KTsKKyAgICByZXR1cm4gY2Jvcjo6Q0JPUlZhbHVlKFdURk1vdmUodmFsdWUpKTsKK30KKworQXV0
aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZShT
dGRTZXQ8UHJvdG9jb2xWZXJzaW9uPiYmIHZlcnNpb25zLCBWZWN0b3I8dWludDhfdD4mJiBhYWd1
aWQpCisgICAgOiBtX3ZlcnNpb25zKFdURk1vdmUodmVyc2lvbnMpKQorICAgICwgbV9hYWd1aWQo
V1RGTW92ZShhYWd1aWQpKQoreworfQorCitBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBB
dXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlOjpzZXRNYXhNc2dTaXplKHVpbnQzMl90IG1heE1z
Z1NpemUpCit7CisgICAgbV9tYXhNc2dTaXplID0gbWF4TXNnU2l6ZTsKKyAgICByZXR1cm4gKnRo
aXM7Cit9CisKK0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIEF1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2U6OnNldFBpblByb3RvY29scyhWZWN0b3I8dWludDhfdD4mJiBwaW5Qcm90b2Nv
bHMpCit7CisgICAgbV9waW5Qcm90b2NvbHMgPSBXVEZNb3ZlKHBpblByb3RvY29scyk7CisgICAg
cmV0dXJuICp0aGlzOworfQorCitBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBBdXRoZW50
aWNhdG9yR2V0SW5mb1Jlc3BvbnNlOjpzZXRFeHRlbnNpb25zKFZlY3RvcjxTdHJpbmc+JiYgZXh0
ZW5zaW9ucykKK3sKKyAgICBtX2V4dGVuc2lvbnMgPSBXVEZNb3ZlKGV4dGVuc2lvbnMpOworICAg
IHJldHVybiAqdGhpczsKK30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgQXV0aGVu
dGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0T3B0aW9ucyhBdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9ucyYmIG9wdGlvbnMpCit7CisgICAgbV9vcHRpb25zID0gV1RGTW92ZShvcHRpb25zKTsK
KyAgICByZXR1cm4gKnRoaXM7Cit9CisKK1ZlY3Rvcjx1aW50OF90PiBlbmNvZGVBc0NCT1IoY29u
c3QgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgdXNpbmcg
bmFtZXNwYWNlIGNib3I7CisKKyAgICBDQk9SVmFsdWU6Ok1hcFZhbHVlIGRldmljZUluZm9NYXA7
CisKKyAgICBDQk9SVmFsdWU6OkFycmF5VmFsdWUgdmVyc2lvbkFycmF5OworICAgIGZvciAoY29u
c3QgYXV0byYgdmVyc2lvbiA6IHJlc3BvbnNlLnZlcnNpb25zKCkpCisgICAgICAgIHZlcnNpb25B
cnJheS5hcHBlbmQodmVyc2lvbiA9PSBQcm90b2NvbFZlcnNpb246OmtDdGFwID8ga0N0YXAyVmVy
c2lvbiA6IGtVMmZWZXJzaW9uKTsKKyAgICBkZXZpY2VJbmZvTWFwLmVtcGxhY2UoQ0JPUlZhbHVl
KDEpLCBDQk9SVmFsdWUoV1RGTW92ZSh2ZXJzaW9uQXJyYXkpKSk7CisKKyAgICBpZiAocmVzcG9u
c2UuZXh0ZW5zaW9ucygpKQorICAgICAgICBkZXZpY2VJbmZvTWFwLmVtcGxhY2UoQ0JPUlZhbHVl
KDIpLCB0b0FycmF5VmFsdWUoKnJlc3BvbnNlLmV4dGVuc2lvbnMoKSkpOworCisgICAgZGV2aWNl
SW5mb01hcC5lbXBsYWNlKENCT1JWYWx1ZSgzKSwgQ0JPUlZhbHVlKHJlc3BvbnNlLmFhZ3VpZCgp
KSk7CisgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKENCT1JWYWx1ZSg0KSwgY29udmVydFRvQ0JP
UihyZXNwb25zZS5vcHRpb25zKCkpKTsKKworICAgIGlmIChyZXNwb25zZS5tYXhNc2dTaXplKCkp
CisgICAgICAgIGRldmljZUluZm9NYXAuZW1wbGFjZShDQk9SVmFsdWUoNSksIENCT1JWYWx1ZShz
dGF0aWNfY2FzdDxpbnQ2NF90PigqcmVzcG9uc2UubWF4TXNnU2l6ZSgpKSkpOworCisgICAgaWYg
KHJlc3BvbnNlLnBpblByb3RvY29sKCkpCisgICAgICAgIGRldmljZUluZm9NYXAuZW1wbGFjZShD
Qk9SVmFsdWUoNiksIHRvQXJyYXlWYWx1ZSgqcmVzcG9uc2UucGluUHJvdG9jb2woKSkpOworCisg
ICAgYXV0byBlbmNvZGVkQnl0ZXMgPSBDQk9SV3JpdGVyOjp3cml0ZShDQk9SVmFsdWUoV1RGTW92
ZShkZXZpY2VJbmZvTWFwKSkpOworICAgIEFTU0VSVChlbmNvZGVkQnl0ZXMpOworICAgIHJldHVy
biAqZW5jb2RlZEJ5dGVzOworfQorCit9IC8vIG5hbWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzA2M2M0ZjVjOTM1Zjk3M2RjMTE1NDAyMDM1OTdjNTg1NmMzNGFmZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50
aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmgKQEAgLTAsMCArMSw3NiBAQAorLy8gQ29weXJpZ2h0IDIw
MTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgor
Ly8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
Ly8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8g
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5o
IgorI2luY2x1ZGUgIkZpZG9Db25zdGFudHMuaCIKKyNpbmNsdWRlIDx3dGYvU3RkU2V0Lmg+CisK
K25hbWVzcGFjZSBmaWRvIHsKKworLy8gQXV0aGVudGljYXRvciByZXNwb25zZSBmb3IgQXV0aGVu
dGljYXRvckdldEluZm8gcmVxdWVzdCB0aGF0IGVuY2Fwc3VsYXRlcworLy8gdmVyc2lvbnMsIG9w
dGlvbnMsIEFBR1VJRChBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uIEdVSUQpLCBvdGhlcgorLy8g
YXV0aGVudGljYXRvciBkZXZpY2UgaW5mb3JtYXRpb24uCisvLyBodHRwczovL2ZpZG9hbGxpYW5j
ZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRp
Y2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sI2F1dGhlbnRpY2F0b3JnZXRpbmZv
LTB4MDQKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2Ug
eworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2Up
OworcHVibGljOgorICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UoU3RkU2V0PFByb3Rv
Y29sVmVyc2lvbj4mJiB2ZXJzaW9ucywgVmVjdG9yPHVpbnQ4X3Q+JiYgYWFndWlkKTsKKyAgICBB
dXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2Um
JiB0aGF0KSA9IGRlZmF1bHQ7CisgICAgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgb3Bl
cmF0b3I9KEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmJiBvdGhlcikgPSBkZWZhdWx0Owor
CisgICAgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgc2V0TWF4TXNnU2l6ZSh1aW50MzJf
dCk7CisgICAgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgc2V0UGluUHJvdG9jb2xzKFZl
Y3Rvcjx1aW50OF90PiYmKTsKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBzZXRF
eHRlbnNpb25zKFZlY3RvcjxTdHJpbmc+JiYpOworICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVz
cG9uc2UmIHNldE9wdGlvbnMoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmJik7CisKKyAg
ICBjb25zdCBTdGRTZXQ8UHJvdG9jb2xWZXJzaW9uPiYgdmVyc2lvbnMoKSBjb25zdCB7IHJldHVy
biBtX3ZlcnNpb25zOyB9CisgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBhYWd1aWQoKSBjb25z
dCB7IHJldHVybiBtX2FhZ3VpZDsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+
JiBtYXhNc2dTaXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhNc2dTaXplOyB9CisgICAgY29uc3Qg
c3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+JiBwaW5Qcm90b2NvbCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGluUHJvdG9jb2xzOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3Ry
aW5nPj4mIGV4dGVuc2lvbnMoKSBjb25zdCB7IHJldHVybiBtX2V4dGVuc2lvbnM7IH0KKyAgICBj
b25zdCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgb3B0aW9ucygpIGNvbnN0IHsgcmV0
dXJuIG1fb3B0aW9uczsgfQorCitwcml2YXRlOgorICAgIFN0ZFNldDxQcm90b2NvbFZlcnNpb24+
IG1fdmVyc2lvbnM7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IG1fYWFndWlkOworICAgIHN0ZDo6b3B0
aW9uYWw8dWludDMyX3Q+IG1fbWF4TXNnU2l6ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1
aW50OF90Pj4gbV9waW5Qcm90b2NvbHM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5n
Pj4gbV9leHRlbnNpb25zOworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zIG1fb3B0
aW9uczsKK307CisKK1dFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVBc0NCT1Io
Y29uc3QgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYpOworCit9IC8vIG5hbWVzcGFjZSBm
aWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25z
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9ucy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmRjZjhhNGNkNTRhZjc3ZjhmMzMzODEz
OGU5NDFiZGJhZjYwZGM0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAKQEAgLTAs
MCArMSwxMDkgQEAKKy8vIENvcHlyaWdodCAyMDE4IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1l
dDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
Ky8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLwor
Ly8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiRmlkb0NvbnN0
YW50cy5oIgorCituYW1lc3BhY2UgZmlkbyB7CisKK0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zJiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0U3VwcG9ydHNSZXNpZGVudEtl
eShib29sIHN1cHBvcnRzUmVzaWRlbnRLZXkpCit7CisgICAgbV9zdXBwb3J0c1Jlc2lkZW50S2V5
ID0gc3VwcG9ydHNSZXNpZGVudEtleTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0F1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0
VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eShVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5
IHVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkpCit7CisgICAgbV91c2VyVmVyaWZpY2F0aW9u
QXZhaWxhYmlsaXR5ID0gdXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTsKKyAgICByZXR1cm4g
KnRoaXM7Cit9CisKK0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBBdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9uczo6c2V0VXNlclByZXNlbmNlUmVxdWlyZWQoYm9vbCB1c2VyUHJlc2Vu
Y2VSZXF1aXJlZCkKK3sKKyAgICBtX3VzZXJQcmVzZW5jZVJlcXVpcmVkID0gdXNlclByZXNlbmNl
UmVxdWlyZWQ7CisgICAgcmV0dXJuICp0aGlzOworfQorCitBdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9ucyYgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldENsaWVudFBpbkF2YWls
YWJpbGl0eShDbGllbnRQaW5BdmFpbGFiaWxpdHkgY2xpZW50UGluQXZhaWxhYmlsaXR5KQorewor
ICAgIG1fY2xpZW50UGluQXZhaWxhYmlsaXR5ID0gY2xpZW50UGluQXZhaWxhYmlsaXR5OworICAg
IHJldHVybiAqdGhpczsKK30KKworQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpzZXRJc1BsYXRmb3JtRGV2aWNlKGJvb2wgaXNQbGF0
Zm9ybURldmljZSkKK3sKKyAgICBtX2lzUGxhdGZvcm1EZXZpY2UgPSBpc1BsYXRmb3JtRGV2aWNl
OworICAgIHJldHVybiAqdGhpczsKK30KKworY2Jvcjo6Q0JPUlZhbHVlIGNvbnZlcnRUb0NCT1Io
Y29uc3QgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIG9wdGlvbnMpCit7CisgICAgdXNp
bmcgbmFtZXNwYWNlIGNib3I7CisKKyAgICBDQk9SVmFsdWU6Ok1hcFZhbHVlIG9wdGlvbk1hcDsK
KyAgICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFsdWUoa1Jlc2lkZW50S2V5TWFwS2V5KSwgQ0JP
UlZhbHVlKG9wdGlvbnMuc3VwcG9ydHNSZXNpZGVudEtleSgpKSk7CisgICAgb3B0aW9uTWFwLmVt
cGxhY2UoQ0JPUlZhbHVlKGtVc2VyUHJlc2VuY2VNYXBLZXkpLCBDQk9SVmFsdWUob3B0aW9ucy51
c2VyUHJlc2VuY2VSZXF1aXJlZCgpKSk7CisgICAgb3B0aW9uTWFwLmVtcGxhY2UoQ0JPUlZhbHVl
KGtQbGF0Zm9ybURldmljZU1hcEtleSksIENCT1JWYWx1ZShvcHRpb25zLmlzUGxhdGZvcm1EZXZp
Y2UoKSkpOworCisgICAgdXNpbmcgVXZBdmFpbGFiaWxpdHkgPSBBdXRoZW50aWNhdG9yU3VwcG9y
dGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTsKKworICAgIHN3aXRjaCAo
b3B0aW9ucy51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCkpIHsKKyAgICBjYXNlIFV2QXZh
aWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZDoKKyAgICAgICAgb3B0aW9uTWFwLmVt
cGxhY2UoQ0JPUlZhbHVlKGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5KSwgQ0JPUlZhbHVlKHRydWUp
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBVdkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1
dE5vdENvbmZpZ3VyZWQ6CisgICAgICAgIG9wdGlvbk1hcC5lbXBsYWNlKENCT1JWYWx1ZShrVXNl
clZlcmlmaWNhdGlvbk1hcEtleSksIENCT1JWYWx1ZShmYWxzZSkpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFV2QXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkOgorICAgICAgICBicmVhazsK
KyAgICB9CisKKyAgICB1c2luZyBDbGllbnRQaW5BdmFpbGFiaWxpdHkgPSBBdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OworCisgICAgc3dpdGNoIChv
cHRpb25zLmNsaWVudFBpbkF2YWlsYWJpbGl0eSgpKSB7CisgICAgY2FzZSBDbGllbnRQaW5BdmFp
bGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRQaW5TZXQ6CisgICAgICAgIG9wdGlvbk1hcC5lbXBsYWNl
KENCT1JWYWx1ZShrQ2xpZW50UGluTWFwS2V5KSwgQ0JPUlZhbHVlKHRydWUpKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXRQaW5O
b3RTZXQ6CisgICAgICAgIG9wdGlvbk1hcC5lbXBsYWNlKENCT1JWYWx1ZShrQ2xpZW50UGluTWFw
S2V5KSwgQ0JPUlZhbHVlKGZhbHNlKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2xpZW50
UGluQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkOgorICAgICAgICBicmVhazsKKyAgICB9CisK
KyAgICByZXR1cm4gQ0JPUlZhbHVlKFdURk1vdmUob3B0aW9uTWFwKSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIGZpZG8KKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjNDBhZTRiZTQyNjE0YzcxNGU1
N2ZhZjZhNDQ2NWM3ZjJmZjk5MTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaApAQCAt
MCwwICsxLDk2IEBACisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBt
ZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8K
Ky8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkNC
T1JWYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBmaWRvIHsK
KworLy8gUmVwcmVzZW50cyBDVEFQIGRldmljZSBwcm9wZXJ0aWVzIGFuZCBjYXBhYmlsaXRpZXMg
cmVjZWl2ZWQgYXMgYSByZXNwb25zZSB0bworLy8gQXV0aGVudGljYXRvckdldEluZm8gY29tbWFu
ZC4KK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyk7
CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5IHsK
KyAgICAgICAgLy8gZS5nLiBBdXRoZW50aWNhdG9yIHdpdGggZmluZ2VyIHByaW50IHNlbnNvciBh
bmQgdXNlcidzIGZpbmdlcnByaW50IGlzCisgICAgICAgIC8vIHJlZ2lzdGVyZWQgdG8gdGhlIGRl
dmljZS4KKyAgICAgICAga1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQsCisgICAgICAgIC8vIGUuZy4g
QXV0aGVudGljYXRvciB3aXRoIGZpbmdlcnByaW50IHNlbnNvciB3aXRob3V0IHVzZXIncyBmaW5n
ZXJwcmludAorICAgICAgICAvLyByZWdpc3RlcmVkLgorICAgICAgICBrU3VwcG9ydGVkQnV0Tm90
Q29uZmlndXJlZCwKKyAgICAgICAga05vdFN1cHBvcnRlZAorICAgIH07CisKKyAgICBlbnVtIGNs
YXNzIENsaWVudFBpbkF2YWlsYWJpbGl0eSB7CisgICAgICAgIGtTdXBwb3J0ZWRBbmRQaW5TZXQs
CisgICAgICAgIGtTdXBwb3J0ZWRCdXRQaW5Ob3RTZXQsCisgICAgICAgIGtOb3RTdXBwb3J0ZWQs
CisgICAgfTsKKworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zKCkgPSBkZWZhdWx0
OworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zKEF1dGhlbnRpY2F0b3JTdXBwb3J0
ZWRPcHRpb25zJiYpID0gZGVmYXVsdDsKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9u
cyYgb3BlcmF0b3I9KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiYpID0gZGVmYXVsdDsK
KworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBzZXRJc1BsYXRmb3JtRGV2aWNl
KGJvb2wpOworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBzZXRTdXBwb3J0c1Jl
c2lkZW50S2V5KGJvb2wpOworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBzZXRV
c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkp
OworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBzZXRVc2VyUHJlc2VuY2VSZXF1
aXJlZChib29sKTsKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0Q2xpZW50
UGluQXZhaWxhYmlsaXR5KENsaWVudFBpbkF2YWlsYWJpbGl0eSk7CisKKyAgICBib29sIGlzUGxh
dGZvcm1EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2lzUGxhdGZvcm1EZXZpY2U7IH0KKyAgICBi
b29sIHN1cHBvcnRzUmVzaWRlbnRLZXkoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRzUmVzaWRl
bnRLZXk7IH0KKyAgICBVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5IHVzZXJWZXJpZmljYXRp
b25BdmFpbGFiaWxpdHkoKSBjb25zdCB7IHJldHVybiBtX3VzZXJWZXJpZmljYXRpb25BdmFpbGFi
aWxpdHk7IH0KKyAgICBib29sIHVzZXJQcmVzZW5jZVJlcXVpcmVkKCkgY29uc3QgeyByZXR1cm4g
bV91c2VyUHJlc2VuY2VSZXF1aXJlZDsgfQorICAgIENsaWVudFBpbkF2YWlsYWJpbGl0eSBjbGll
bnRQaW5BdmFpbGFiaWxpdHkoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudFBpbkF2YWlsYWJpbGl0
eTsgfQorCitwcml2YXRlOgorICAgIC8vIEluZGljYXRlcyB0aGF0IHRoZSBkZXZpY2UgaXMgYXR0
YWNoZWQgdG8gdGhlIGNsaWVudCBhbmQgdGhlcmVmb3JlIGNhbid0IGJlCisgICAgLy8gcmVtb3Zl
ZCBhbmQgdXNlZCBvbiBhbm90aGVyIGNsaWVudC4KKyAgICBib29sIG1faXNQbGF0Zm9ybURldmlj
ZSB7IGZhbHNlIH07CisgICAgLy8gSW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBpcyBjYXBhYmxl
IG9mIHN0b3Jpbmcga2V5cyBvbiB0aGUgZGV2aWNlIGl0c2VsZgorICAgIC8vIGFuZCB0aGVyZWZv
cmUgY2FuIHNhdGlzZnkgdGhlIGF1dGhlbnRpY2F0b3JHZXRBc3NlcnRpb24gcmVxdWVzdCB3aXRo
CisgICAgLy8gYWxsb3dMaXN0IHBhcmFtZXRlciBub3Qgc3BlY2lmaWVkIG9yIGVtcHR5LgorICAg
IGJvb2wgbV9zdXBwb3J0c1Jlc2lkZW50S2V5IHsgZmFsc2UgfTsKKyAgICAvLyBJbmRpY2F0ZXMg
d2hldGhlciB0aGUgZGV2aWNlIGlzIGNhcGFibGUgb2YgdmVyaWZ5aW5nIHRoZSB1c2VyIG9uIGl0
cyBvd24uCisgICAgVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSBtX3VzZXJWZXJpZmljYXRp
b25BdmFpbGFiaWxpdHkgeyBVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprTm90U3VwcG9y
dGVkIH07CisgICAgYm9vbCBtX3VzZXJQcmVzZW5jZVJlcXVpcmVkIHsgdHJ1ZSB9OworICAgIC8v
IFJlcHJlc2VudHMgd2hldGhlciBjbGllbnQgcGluIGluIHNldCBhbmQgc3RvcmVkIGluIGRldmlj
ZS4gU2V0IGFzIG51bGwKKyAgICAvLyBvcHRpb25hbCBpZiBjbGllbnQgcGluIGNhcGFiaWxpdHkg
aXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYXV0aGVudGljYXRvci4KKyAgICBDbGllbnRQaW5BdmFp
bGFiaWxpdHkgbV9jbGllbnRQaW5BdmFpbGFiaWxpdHkgeyBDbGllbnRQaW5BdmFpbGFiaWxpdHk6
OmtOb3RTdXBwb3J0ZWQgfTsKK307CisKK1dFQkNPUkVfRVhQT1JUIGNib3I6OkNCT1JWYWx1ZSBj
b252ZXJ0VG9DQk9SKGNvbnN0IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJik7CisKK30g
Ly8gbmFtZXNwYWNlIGZpZG8KKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENv
bnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNl
UmVxdWVzdENvbnZlcnRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDgxZmY0YWVlODJhNmNhZDJlMDMwMzU2
NzA0ZDk3YTU5OGE3MDhkZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcApAQCAtMCwwICsxLDE4
MyBAQAorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8K
Ky8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8g
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oIgorCisj
aWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkNCT1JXcml0ZXIuaCIKKyNpbmNsdWRl
ICJQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgiCisjaW5jbHVkZSAiUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
CituYW1lc3BhY2UgZmlkbyB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVz
cGFjZSBjYm9yOworCit1c2luZyBVVkF2YWlsYWJpbGl0eSA9IEF1dGhlbnRpY2F0b3JTdXBwb3J0
ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OworCitzdGF0aWMgQ0JPUlZh
bHVlIGNvbnZlcnRScEVudGl0eVRvQ0JPUihjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zOjpScEVudGl0eSYgcnBFbnRpdHkpCit7CisgICAgQ0JPUlZhbHVlOjpNYXBWYWx1
ZSBycE1hcDsKKyAgICBycE1hcC5lbXBsYWNlKENCT1JWYWx1ZShrRW50aXR5TmFtZU1hcEtleSks
IENCT1JWYWx1ZShycEVudGl0eS5uYW1lKSk7CisgICAgaWYgKCFycEVudGl0eS5pY29uLmlzRW1w
dHkoKSkKKyAgICAgICAgcnBNYXAuZW1wbGFjZShDQk9SVmFsdWUoa0ljb25VcmxNYXBLZXkpLCBD
Qk9SVmFsdWUocnBFbnRpdHkuaWNvbikpOworICAgIGlmICghcnBFbnRpdHkuaWQuaXNFbXB0eSgp
KQorICAgICAgICBycE1hcC5lbXBsYWNlKENCT1JWYWx1ZShrRW50aXR5SWRNYXBLZXkpLCBDQk9S
VmFsdWUocnBFbnRpdHkuaWQpKTsKKworICAgIHJldHVybiBDQk9SVmFsdWUoV1RGTW92ZShycE1h
cCkpOworfQorCitzdGF0aWMgQ0JPUlZhbHVlIGNvbnZlcnRVc2VyRW50aXR5VG9DQk9SKGNvbnN0
IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkmIHVzZXJFbnRp
dHkpCit7CisgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSB1c2VyTWFwOworICAgIHVzZXJNYXAuZW1w
bGFjZShDQk9SVmFsdWUoa0VudGl0eU5hbWVNYXBLZXkpLCBDQk9SVmFsdWUodXNlckVudGl0eS5u
YW1lKSk7CisgICAgaWYgKCF1c2VyRW50aXR5Lmljb24uaXNFbXB0eSgpKQorICAgICAgICB1c2Vy
TWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtJY29uVXJsTWFwS2V5KSwgQ0JPUlZhbHVlKHVzZXJFbnRp
dHkuaWNvbikpOworICAgIHVzZXJNYXAuZW1wbGFjZShDQk9SVmFsdWUoa0VudGl0eUlkTWFwS2V5
KSwgQ0JPUlZhbHVlKHVzZXJFbnRpdHkuaWRWZWN0b3IpKTsKKyAgICB1c2VyTWFwLmVtcGxhY2Uo
Q0JPUlZhbHVlKGtEaXNwbGF5TmFtZU1hcEtleSksIENCT1JWYWx1ZSh1c2VyRW50aXR5LmRpc3Bs
YXlOYW1lKSk7CisgICAgcmV0dXJuIENCT1JWYWx1ZShXVEZNb3ZlKHVzZXJNYXApKTsKK30KKwor
c3RhdGljIENCT1JWYWx1ZSBjb252ZXJ0UGFyYW1ldGVyc1RvQ0JPUihjb25zdCBWZWN0b3I8UHVi
bGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4mIHBhcmFtZXRlcnMp
Cit7CisgICAgQ0JPUlZhbHVlOjpBcnJheVZhbHVlIGNyZWRlbnRpYWxQYXJhbUFycmF5OworICAg
IGNyZWRlbnRpYWxQYXJhbUFycmF5LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocGFyYW1ldGVycy5z
aXplKCkpOworICAgIGZvciAoY29uc3QgYXV0byYgY3JlZGVudGlhbCA6IHBhcmFtZXRlcnMpIHsK
KyAgICAgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBjYm9yQ3JlZGVudGlhbE1hcDsKKyAgICAgICAg
Y2JvckNyZWRlbnRpYWxNYXAuZW1wbGFjZShDQk9SVmFsdWUoa0NyZWRlbnRpYWxUeXBlTWFwS2V5
KSwgQ0JPUlZhbHVlKHB1YmxpY0tleUNyZWRlbnRpYWxUeXBlVG9TdHJpbmcoY3JlZGVudGlhbC50
eXBlKSkpOworICAgICAgICBjYm9yQ3JlZGVudGlhbE1hcC5lbXBsYWNlKENCT1JWYWx1ZShrQ3Jl
ZGVudGlhbEFsZ29yaXRobU1hcEtleSksIENCT1JWYWx1ZShjcmVkZW50aWFsLmFsZykpOworICAg
ICAgICBjcmVkZW50aWFsUGFyYW1BcnJheS5hcHBlbmQoV1RGTW92ZShjYm9yQ3JlZGVudGlhbE1h
cCkpOworICAgIH0KKyAgICByZXR1cm4gQ0JPUlZhbHVlKFdURk1vdmUoY3JlZGVudGlhbFBhcmFt
QXJyYXkpKTsKK30KKworc3RhdGljIENCT1JWYWx1ZSBjb252ZXJ0RGVzY3JpcHRvclRvQ0JPUihj
b25zdCBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK3sKKyAgICBD
Qk9SVmFsdWU6Ok1hcFZhbHVlIGNib3JEZXNjcmlwdG9yTWFwOworICAgIGNib3JEZXNjcmlwdG9y
TWFwW0NCT1JWYWx1ZShrQ3JlZGVudGlhbFR5cGVLZXkpXSA9IENCT1JWYWx1ZShwdWJsaWNLZXlD
cmVkZW50aWFsVHlwZVRvU3RyaW5nKGRlc2NyaXB0b3IudHlwZSkpOworICAgIGNib3JEZXNjcmlw
dG9yTWFwW0NCT1JWYWx1ZShrQ3JlZGVudGlhbElkS2V5KV0gPSBDQk9SVmFsdWUoZGVzY3JpcHRv
ci5pZFZlY3Rvcik7CisgICAgcmV0dXJuIENCT1JWYWx1ZShXVEZNb3ZlKGNib3JEZXNjcmlwdG9y
TWFwKSk7Cit9CisKK1ZlY3Rvcjx1aW50OF90PiBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RB
c0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zJiBvcHRpb25zLCBVVkF2YWlsYWJpbGl0eSB1dkNhcGFiaWxpdHkp
Cit7CisgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBjYm9yTWFwOworICAgIGNib3JNYXBbQ0JPUlZh
bHVlKDEpXSA9IENCT1JWYWx1ZShoYXNoKTsKKyAgICBjYm9yTWFwW0NCT1JWYWx1ZSgyKV0gPSBj
b252ZXJ0UnBFbnRpdHlUb0NCT1Iob3B0aW9ucy5ycCk7CisgICAgY2Jvck1hcFtDQk9SVmFsdWUo
MyldID0gY29udmVydFVzZXJFbnRpdHlUb0NCT1Iob3B0aW9ucy51c2VyKTsKKyAgICBjYm9yTWFw
W0NCT1JWYWx1ZSg0KV0gPSBjb252ZXJ0UGFyYW1ldGVyc1RvQ0JPUihvcHRpb25zLnB1YktleUNy
ZWRQYXJhbXMpOworICAgIGlmICghb3B0aW9ucy5leGNsdWRlQ3JlZGVudGlhbHMuaXNFbXB0eSgp
KSB7CisgICAgICAgIENCT1JWYWx1ZTo6QXJyYXlWYWx1ZSBleGNsdWRlTGlzdEFycmF5OworICAg
ICAgICBmb3IgKGNvbnN0IGF1dG8mIGRlc2NyaXB0b3IgOiBvcHRpb25zLmV4Y2x1ZGVDcmVkZW50
aWFscykKKyAgICAgICAgICAgIGV4Y2x1ZGVMaXN0QXJyYXkuYXBwZW5kKGNvbnZlcnREZXNjcmlw
dG9yVG9DQk9SKGRlc2NyaXB0b3IpKTsKKyAgICAgICAgY2Jvck1hcFtDQk9SVmFsdWUoNSldID0g
Q0JPUlZhbHVlKFdURk1vdmUoZXhjbHVkZUxpc3RBcnJheSkpOworICAgIH0KKworICAgIENCT1JW
YWx1ZTo6TWFwVmFsdWUgb3B0aW9uTWFwOworICAgIGlmIChvcHRpb25zLmF1dGhlbnRpY2F0b3JT
ZWxlY3Rpb24pIHsKKyAgICAgICAgLy8gUmVzaWRlbnQga2V5cyBhcmUgbm90IHN1cHBvcnRlZCBi
eSBkZWZhdWx0LgorICAgICAgICBpZiAob3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT5y
ZXF1aXJlUmVzaWRlbnRLZXkpCisgICAgICAgICAgICBvcHRpb25NYXBbQ0JPUlZhbHVlKGtSZXNp
ZGVudEtleU1hcEtleSldID0gQ0JPUlZhbHVlKHRydWUpOworCisgICAgICAgIC8vIFVzZXIgdmVy
aWZpY2F0aW9uIGlzIG5vdCByZXF1aXJlZCBieSBkZWZhdWx0LgorICAgICAgICBib29sIHJlcXVp
cmVVc2VyVmVyaWZpY2F0aW9uID0gZmFsc2U7CisgICAgICAgIHN3aXRjaCAob3B0aW9ucy5hdXRo
ZW50aWNhdG9yU2VsZWN0aW9uLT51c2VyVmVyaWZpY2F0aW9uKSB7CisgICAgICAgIGNhc2UgVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZDoKKyAgICAgICAgICAgIHJlcXVpcmVV
c2VyVmVyaWZpY2F0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkOgorICAgICAgICAgICAgcmVx
dWlyZVVzZXJWZXJpZmljYXRpb24gPSB1dkNhcGFiaWxpdHkgPT0gVVZBdmFpbGFiaWxpdHk6OmtO
b3RTdXBwb3J0ZWQgPyBmYWxzZSA6IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkOgorICAgICAgICAg
ICAgcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBv
cHRpb25NYXBbQ0JPUlZhbHVlKGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5KV0gPSBDQk9SVmFsdWUo
cmVxdWlyZVVzZXJWZXJpZmljYXRpb24pOworICAgIH0KKyAgICBpZiAoIW9wdGlvbk1hcC5lbXB0
eSgpKQorICAgICAgICBjYm9yTWFwW0NCT1JWYWx1ZSg3KV0gPSBDQk9SVmFsdWUoV1RGTW92ZShv
cHRpb25NYXApKTsKKworICAgIGF1dG8gc2VyaWFsaXplZFBhcmFtID0gQ0JPUldyaXRlcjo6d3Jp
dGUoQ0JPUlZhbHVlKFdURk1vdmUoY2Jvck1hcCkpKTsKKyAgICBBU1NFUlQoc2VyaWFsaXplZFBh
cmFtKTsKKworICAgIFZlY3Rvcjx1aW50OF90PiBjYm9yUmVxdWVzdCh7IHN0YXRpY19jYXN0PHVp
bnQ4X3Q+KEN0YXBSZXF1ZXN0Q29tbWFuZDo6a0F1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbCkg
fSk7CisgICAgY2JvclJlcXVlc3QuYXBwZW5kVmVjdG9yKCpzZXJpYWxpemVkUGFyYW0pOworICAg
IHJldHVybiBjYm9yUmVxdWVzdDsKK30KKworVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUdldEFzc2Vy
dGlvblJlcXVlc3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmIG9wdGlvbnMsIFVWQXZhaWxhYmlsaXR5IHV2
Q2FwYWJpbGl0eSkKK3sKKyAgICBDQk9SVmFsdWU6Ok1hcFZhbHVlIGNib3JNYXA7CisgICAgY2Jv
ck1hcFtDQk9SVmFsdWUoMSldID0gQ0JPUlZhbHVlKG9wdGlvbnMucnBJZCk7CisgICAgY2Jvck1h
cFtDQk9SVmFsdWUoMildID0gQ0JPUlZhbHVlKGhhc2gpOworCisgICAgaWYgKCFvcHRpb25zLmFs
bG93Q3JlZGVudGlhbHMuaXNFbXB0eSgpKSB7CisgICAgICAgIENCT1JWYWx1ZTo6QXJyYXlWYWx1
ZSBhbGxvd0xpc3RBcnJheTsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXNjcmlwdG9yIDog
b3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKQorICAgICAgICAgICAgYWxsb3dMaXN0QXJyYXkuYXBw
ZW5kKGNvbnZlcnREZXNjcmlwdG9yVG9DQk9SKGRlc2NyaXB0b3IpKTsKKyAgICAgICAgY2Jvck1h
cFtDQk9SVmFsdWUoMyldID0gQ0JPUlZhbHVlKFdURk1vdmUoYWxsb3dMaXN0QXJyYXkpKTsKKyAg
ICB9CisKKyAgICBDQk9SVmFsdWU6Ok1hcFZhbHVlIG9wdGlvbk1hcDsKKyAgICBpZiAob3B0aW9u
cy51c2VyVmVyaWZpY2F0aW9uKSB7CisgICAgICAgIC8vIFVzZXIgdmVyaWZpY2F0aW9uIGlzIG5v
dCByZXF1aXJlZCBieSBkZWZhdWx0LgorICAgICAgICBib29sIHJlcXVpcmVVc2VyVmVyaWZpY2F0
aW9uID0gZmFsc2U7CisgICAgICAgIHN3aXRjaCAoKm9wdGlvbnMudXNlclZlcmlmaWNhdGlvbikg
eworICAgICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQ6Cisg
ICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IHRydWU7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJl
ZDoKKyAgICAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uID0gdXZDYXBhYmlsaXR5ID09
IFVWQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkID8gZmFsc2UgOiB0cnVlOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpEaXNj
b3VyYWdlZDoKKyAgICAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uID0gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICAgICAgb3B0aW9uTWFwW0NCT1JWYWx1ZShrVXNlclZlcmlmaWNhdGlvbk1h
cEtleSldID0gQ0JPUlZhbHVlKHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uKTsKKyAgICAgICAgb3B0
aW9uTWFwW0NCT1JWYWx1ZShrVXNlclByZXNlbmNlTWFwS2V5KV0gPSBDQk9SVmFsdWUoIXJlcXVp
cmVVc2VyVmVyaWZpY2F0aW9uKTsKKyAgICB9CisgICAgaWYgKCFvcHRpb25NYXAuZW1wdHkoKSkK
KyAgICAgICAgY2Jvck1hcFtDQk9SVmFsdWUoNSldID0gQ0JPUlZhbHVlKFdURk1vdmUob3B0aW9u
TWFwKSk7CisKKyAgICBhdXRvIHNlcmlhbGl6ZWRQYXJhbSA9IENCT1JXcml0ZXI6OndyaXRlKENC
T1JWYWx1ZShXVEZNb3ZlKGNib3JNYXApKSk7CisgICAgQVNTRVJUKHNlcmlhbGl6ZWRQYXJhbSk7
CisKKyAgICBWZWN0b3I8dWludDhfdD4gY2JvclJlcXVlc3QoeyBzdGF0aWNfY2FzdDx1aW50OF90
PihDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9uKSB9KTsKKyAg
ICBjYm9yUmVxdWVzdC5hcHBlbmRWZWN0b3IoKnNlcmlhbGl6ZWRQYXJhbSk7CisgICAgcmV0dXJu
IGNib3JSZXF1ZXN0OworfQorCitWZWN0b3I8dWludDhfdD4gZW5jb2RlRW1wdHlBdXRoZW50aWNh
dG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQgY21kKQoreworICAgIHJldHVybiB7IHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KGNtZCkgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5k
aWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1ZXN0Q29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjRhY2MzZmY2MmI5NTI0OWY0ODdiMjJjZTg0YWM0MTc5ZjRjMzE4NmYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVz
dENvbnZlcnRlci5oCkBAIC0wLDAgKzEsNjIgQEAKKy8vIENvcHlyaWdodCAyMDE3IFRoZSBDaHJv
bWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
Ky8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhO
KQorCisjaW5jbHVkZSAiQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCIKKyNpbmNsdWRl
ICJGaWRvQ29uc3RhbnRzLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM7Citz
dHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOworfQorCituYW1lc3BhY2Ug
ZmlkbyB7CisKKy8vIFNlcmlhbGl6ZXMgTWFrZUNyZWRlbnRpYWwgcmVxdWVzdCBwYXJhbWV0ZXIg
aW50byBDQk9SIGVuY29kZWQgbWFwIHdpdGgKKy8vIGludGVnZXIga2V5cyBhbmQgQ0JPUiBlbmNv
ZGVkIHZhbHVlcyBhcyBkZWZpbmVkIGJ5IHRoZSBDVEFQIHNwZWMuCisvLyBodHRwczovL2ZpZG9h
bGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1
dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sI2F1dGhlbnRpY2F0b3JN
YWtlQ3JlZGVudGlhbAorV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZU1ha2VD
cmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0
IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmLCBBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSk7CisKKy8v
IFNlcmlhbGl6ZXMgR2V0QXNzZXJ0aW9uIHJlcXVlc3QgcGFyYW1ldGVyIGludG8gQ0JPUiBlbmNv
ZGVkIG1hcCB3aXRoCisvLyBpbnRlZ2VyIGtleXMgYW5kIENCT1IgZW5jb2RlZCB2YWx1ZXMgYXMg
ZGVmaW5lZCBieSB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3Nw
ZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXBy
b3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9uCitX
RUJDT1JFX0VYUE9SVCBWZWN0b3I8dWludDhfdD4gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFz
Q0JPUihjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25z
OjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KTsKKworLy8gUmVwcmVzZW50cyBDVEFQIHJl
cXVlc3RzIHdpdGggZW1wdHkgcGFyYW1ldGVycywgaW5jbHVkaW5nCisvLyBBdXRoZW50aWNhdG9y
R2V0SW5mbywgQXV0aGVudGljYXRvckNhbmNlbCwgQXV0aGVudGljYXRvclJlc2V0IGFuZAorLy8g
QXV0aGVudGljYXRvckdldE5leHRBc3NlcnRpb24gY29tbWFuZHMuCitXRUJDT1JFX0VYUE9SVCBW
ZWN0b3I8dWludDhfdD4gZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVz
dENvbW1hbmQpOworCit9IC8vIG5hbWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRv
L0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y2YTk1
OWI4M2QzZTAwMWU5NDhlMjQwMTA4M2E1MjczMTNlZjdkYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRl
ci5jcHAKQEAgLTAsMCArMSwzMTIgQEAKKy8vIENvcHlyaWdodCAyMDE4IFRoZSBDaHJvbWl1bSBB
dXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
Ly8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8g
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZVJlc3Bv
bnNlQ29udmVydGVyLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiQXV0
aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCIKKyNpbmNsdWRlICJDQk9SUmVhZGVyLmgiCisj
aW5jbHVkZSAiQ0JPUldyaXRlci5oIgorI2luY2x1ZGUgPHd0Zi9TdGRTZXQuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBmaWRvIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwordXNpbmcgQ0JPUiA9IGNib3I6OkNCT1JWYWx1ZTsKKworY29uc3RleHByIHNpemVfdCBr
UmVzcG9uc2VDb2RlTGVuZ3RoID0gMTsKKworc3RhdGljIFByb3RvY29sVmVyc2lvbiBjb252ZXJ0
U3RyaW5nVG9Qcm90b2NvbFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQoreworICAgIGlm
ICh2ZXJzaW9uID09IGtDdGFwMlZlcnNpb24pCisgICAgICAgIHJldHVybiBQcm90b2NvbFZlcnNp
b246OmtDdGFwOworICAgIGlmICh2ZXJzaW9uID09IGtVMmZWZXJzaW9uKQorICAgICAgICByZXR1
cm4gUHJvdG9jb2xWZXJzaW9uOjprVTJmOworCisgICAgcmV0dXJuIFByb3RvY29sVmVyc2lvbjo6
a1Vua25vd247Cit9CisKK0N0YXBEZXZpY2VSZXNwb25zZUNvZGUgZ2V0UmVzcG9uc2VDb2RlKGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyKQoreworICAgIGlmIChidWZmZXIuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJySW52YWxp
ZENCT1I7CisKKyAgICBhdXRvIGNvZGUgPSBzdGF0aWNfY2FzdDxDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlPihidWZmZXJbMF0pOworICAgIHJldHVybiBpc0N0YXBEZXZpY2VSZXNwb25zZUNvZGUoY29k
ZSkgPyBjb2RlIDogQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJySW52YWxpZENCT1I7
Cit9CisKK3N0YXRpYyBWZWN0b3I8dWludDhfdD4gZ2V0Q3JlZGVudGlhbElkKGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgYXV0aGVudGljYXRvckRhdGEpCit7CisgICAgY29uc3Qgc2l6ZV90IGNyZWRl
bnRpYWxJZExlbmd0aE9mZnNldCA9IGtScElkSGFzaExlbmd0aCArIGtGbGFnc0xlbmd0aCArIGtT
aWduQ291bnRlckxlbmd0aCArIGtBYWd1aWRMZW5ndGg7CisKKyAgICBpZiAoYXV0aGVudGljYXRv
ckRhdGEuc2l6ZSgpIDwgY3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0ICsga0NyZWRlbnRpYWxJZExl
bmd0aExlbmd0aCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBzaXplX3QgY3JlZGVudGlhbElk
TGVuZ3RoID0gKHN0YXRpY19jYXN0PHNpemVfdD4oYXV0aGVudGljYXRvckRhdGFbY3JlZGVudGlh
bElkTGVuZ3RoT2Zmc2V0XSkgPDwgOCkgfCBzdGF0aWNfY2FzdDxzaXplX3Q+KGF1dGhlbnRpY2F0
b3JEYXRhW2NyZWRlbnRpYWxJZExlbmd0aE9mZnNldCArIDFdKTsKKworICAgIGlmIChhdXRoZW50
aWNhdG9yRGF0YS5zaXplKCkgPCBjcmVkZW50aWFsSWRMZW5ndGhPZmZzZXQgKyBrQ3JlZGVudGlh
bElkTGVuZ3RoTGVuZ3RoICsgY3JlZGVudGlhbElkTGVuZ3RoKQorICAgICAgICByZXR1cm4geyB9
OworICAgIFZlY3Rvcjx1aW50OF90PiBjcmVkZW50aWFsSWQ7CisgICAgY3JlZGVudGlhbElkLnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkoY3JlZGVudGlhbElkTGVuZ3RoKTsKKyAgICBhdXRvIGJlZ2lu
SXQgPSBhdXRoZW50aWNhdG9yRGF0YS5iZWdpbigpICsgY3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0
ICsga0NyZWRlbnRpYWxJZExlbmd0aExlbmd0aDsKKyAgICBjcmVkZW50aWFsSWQuYXBwZW5kUmFu
Z2UoYmVnaW5JdCwgYmVnaW5JdCArIGNyZWRlbnRpYWxJZExlbmd0aCk7CisgICAgcmV0dXJuIGNy
ZWRlbnRpYWxJZDsKK30KKworCisvLyBEZWNvZGVzIGJ5dGUgYXJyYXkgcmVzcG9uc2UgZnJvbSBh
dXRoZW50aWNhdG9yIHRvIENCT1IgdmFsdWUgb2JqZWN0IGFuZAorLy8gY2hlY2tzIGZvciBjb3Jy
ZWN0IGVuY29kaW5nIGZvcm1hdC4KK3N0ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbERh
dGE+IHJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4m
IGluQnVmZmVyKQoreworICAgIGlmIChpbkJ1ZmZlci5zaXplKCkgPD0ga1Jlc3BvbnNlQ29kZUxl
bmd0aCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIFZlY3Rvcjx1aW50OF90
PiBidWZmZXI7CisgICAgYnVmZmVyLmFwcGVuZChpbkJ1ZmZlci5kYXRhKCkgKyAxLCBpbkJ1ZmZl
ci5zaXplKCkgLSAxKTsKKyAgICBzdGQ6Om9wdGlvbmFsPENCT1I+IGRlY29kZWRSZXNwb25zZSA9
IGNib3I6OkNCT1JSZWFkZXI6OnJlYWQoYnVmZmVyKTsKKyAgICBpZiAoIWRlY29kZWRSZXNwb25z
ZSB8fCAhZGVjb2RlZFJlc3BvbnNlLT5pc01hcCgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgIGNvbnN0IGF1dG8mIGRlY29kZWRNYXAgPSBkZWNvZGVkUmVzcG9uc2UtPmdldE1h
cCgpOworCisgICAgYXV0byBpdCA9IGRlY29kZWRNYXAuZmluZChDQk9SKDEpKTsKKyAgICBpZiAo
aXQgPT0gZGVjb2RlZE1hcC5lbmQoKSB8fCAhaXQtPnNlY29uZC5pc1N0cmluZygpKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGF1dG8gZm9ybWF0ID0gaXQtPnNlY29uZC5jbG9u
ZSgpOworCisgICAgaXQgPSBkZWNvZGVkTWFwLmZpbmQoQ0JPUigyKSk7CisgICAgaWYgKGl0ID09
IGRlY29kZWRNYXAuZW5kKCkgfHwgIWl0LT5zZWNvbmQuaXNCeXRlU3RyaW5nKCkpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgYXV0byBhdXRoZW50aWNhdG9yRGF0YSA9IGl0LT5z
ZWNvbmQuY2xvbmUoKTsKKworICAgIGF1dG8gY3JlZGVudGlhbElkID0gZ2V0Q3JlZGVudGlhbElk
KGF1dGhlbnRpY2F0b3JEYXRhLmdldEJ5dGVTdHJpbmcoKSk7CisgICAgaWYgKGNyZWRlbnRpYWxJ
ZC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBpdCA9IGRl
Y29kZWRNYXAuZmluZChDQk9SKDMpKTsKKyAgICBpZiAoaXQgPT0gZGVjb2RlZE1hcC5lbmQoKSB8
fCAhaXQtPnNlY29uZC5pc01hcCgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
IGF1dG8gYXR0U3RtdCA9IGl0LT5zZWNvbmQuY2xvbmUoKTsKKworICAgIENCT1I6Ok1hcFZhbHVl
IGF0dGVzdGF0aW9uT2JqZWN0TWFwOworICAgIGF0dGVzdGF0aW9uT2JqZWN0TWFwW0NCT1IoImF1
dGhEYXRhIildID0gV1RGTW92ZShhdXRoZW50aWNhdG9yRGF0YSk7CisgICAgYXR0ZXN0YXRpb25P
YmplY3RNYXBbQ0JPUigiZm10IildID0gV1RGTW92ZShmb3JtYXQpOworICAgIGF0dGVzdGF0aW9u
T2JqZWN0TWFwW0NCT1IoImF0dFN0bXQiKV0gPSBXVEZNb3ZlKGF0dFN0bXQpOworICAgIGF1dG8g
YXR0ZXN0YXRpb25PYmplY3QgPSBjYm9yOjpDQk9SV3JpdGVyOjp3cml0ZShDQk9SKFdURk1vdmUo
YXR0ZXN0YXRpb25PYmplY3RNYXApKSk7CisKKyAgICByZXR1cm4gUHVibGljS2V5Q3JlZGVudGlh
bERhdGEgeyBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGNyZWRlbnRpYWxJZC5kYXRhKCksIGNyZWRlbnRp
YWxJZC5zaXplKCkpLCB0cnVlLCBudWxscHRyLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGF0dGVzdGF0
aW9uT2JqZWN0LnZhbHVlKCkuZGF0YSgpLCBhdHRlc3RhdGlvbk9iamVjdC52YWx1ZSgpLnNpemUo
KSksIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKK30KKworc3RkOjpvcHRpb25hbDxQdWJs
aWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZENUQVBHZXRBc3NlcnRpb25SZXNwb25zZShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGluQnVmZmVyKQoreworICAgIGlmIChpbkJ1ZmZlci5zaXplKCkgPD0g
a1Jlc3BvbnNlQ29kZUxlbmd0aCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IFZlY3Rvcjx1aW50OF90PiBidWZmZXI7CisgICAgYnVmZmVyLmFwcGVuZChpbkJ1ZmZlci5kYXRh
KCkgKyAxLCBpbkJ1ZmZlci5zaXplKCkgLSAxKTsKKyAgICBzdGQ6Om9wdGlvbmFsPENCT1I+IGRl
Y29kZWRSZXNwb25zZSA9IGNib3I6OkNCT1JSZWFkZXI6OnJlYWQoYnVmZmVyKTsKKworICAgIGlm
ICghZGVjb2RlZFJlc3BvbnNlIHx8ICFkZWNvZGVkUmVzcG9uc2UtPmlzTWFwKCkpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvJiByZXNwb25zZU1hcCA9IGRlY29kZWRS
ZXNwb25zZS0+Z2V0TWFwKCk7CisKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGNyZWRlbnRpYWxJ
ZDsKKyAgICBhdXRvIGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDEpKTsKKyAgICBpZiAoaXQg
IT0gcmVzcG9uc2VNYXAuZW5kKCkgJiYgaXQtPnNlY29uZC5pc01hcCgpKSB7CisgICAgICAgIGF1
dG8mIGNyZWRlbnRpYWwgPSBpdC0+c2Vjb25kLmdldE1hcCgpOworICAgICAgICBhdXRvIGl0ciA9
IGNyZWRlbnRpYWwuZmluZChDQk9SKGtDcmVkZW50aWFsSWRLZXkpKTsKKyAgICAgICAgaWYgKGl0
ciA9PSBjcmVkZW50aWFsLmVuZCgpIHx8ICFpdHItPnNlY29uZC5pc0J5dGVTdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGF1dG8mIGlkID0gaXRyLT5z
ZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOworICAgICAgICBjcmVkZW50aWFsSWQgPSBBcnJheUJ1ZmZl
cjo6Y3JlYXRlKGlkLmRhdGEoKSwgaWQuc2l6ZSgpKTsKKyAgICB9CisKKyAgICBpdCA9IHJlc3Bv
bnNlTWFwLmZpbmQoQ0JPUigyKSk7CisgICAgaWYgKGl0ID09IHJlc3BvbnNlTWFwLmVuZCgpIHx8
ICFpdC0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworICAgIGF1dG8mIGF1dGhEYXRhID0gaXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCk7CisKKyAg
ICBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUigzKSk7CisgICAgaWYgKGl0ID09IHJlc3BvbnNl
TWFwLmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIGF1dG8mIHNpZ25hdHVyZSA9IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0
cmluZygpOworCisgICAgUmVmUHRyPEFycmF5QnVmZmVyPiB1c2VySGFuZGxlOworICAgIHsKKyAg
ICAgICAgaXQgPSByZXNwb25zZU1hcC5maW5kKENCT1IoNCkpOworICAgICAgICBpZiAoaXQgPT0g
cmVzcG9uc2VNYXAuZW5kKCkgfHwgIWl0LT5zZWNvbmQuaXNNYXAoKSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGF1dG8mIHVzZXIgPSBpdC0+c2Vjb25kLmdldE1h
cCgpOworICAgICAgICBhdXRvIGl0ciA9IHVzZXIuZmluZChDQk9SKGtFbnRpdHlJZE1hcEtleSkp
OworICAgICAgICBpZiAoaXRyID09IHVzZXIuZW5kKCkgfHwgIWl0ci0+c2Vjb25kLmlzQnl0ZVN0
cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgYXV0byYg
aWQgPSBpdHItPnNlY29uZC5nZXRCeXRlU3RyaW5nKCk7CisgICAgICAgIHVzZXJIYW5kbGUgPSBB
cnJheUJ1ZmZlcjo6Y3JlYXRlKGlkLmRhdGEoKSwgaWQuc2l6ZSgpKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gUHVibGljS2V5Q3JlZGVudGlhbERhdGEgeyBXVEZNb3ZlKGNyZWRlbnRpYWxJZCksIGZh
bHNlLCBudWxscHRyLCBudWxscHRyLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGF1dGhEYXRhLmRhdGEo
KSwgYXV0aERhdGEuc2l6ZSgpKSwgQXJyYXlCdWZmZXI6OmNyZWF0ZShzaWduYXR1cmUuZGF0YSgp
LCBzaWduYXR1cmUuc2l6ZSgpKSwgV1RGTW92ZSh1c2VySGFuZGxlKSB9OworfQorCitzdGQ6Om9w
dGlvbmFsPEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2U+IHJlYWRDVEFQR2V0SW5mb1Jlc3Bv
bnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaW5CdWZmZXIpCit7CisgICAgaWYgKGluQnVmZmVy
LnNpemUoKSA8PSBrUmVzcG9uc2VDb2RlTGVuZ3RoIHx8IGdldFJlc3BvbnNlQ29kZShpbkJ1ZmZl
cikgIT0gQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a1N1Y2Nlc3MpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8dWludDhfdD4gYnVmZmVyOworICAgIGJ1ZmZlci5h
cHBlbmQoaW5CdWZmZXIuZGF0YSgpICsgMSwgaW5CdWZmZXIuc2l6ZSgpIC0gMSk7CisgICAgc3Rk
OjpvcHRpb25hbDxDQk9SPiBkZWNvZGVkUmVzcG9uc2UgPSBjYm9yOjpDQk9SUmVhZGVyOjpyZWFk
KGJ1ZmZlcik7CisgICAgaWYgKCFkZWNvZGVkUmVzcG9uc2UgfHwgIWRlY29kZWRSZXNwb25zZS0+
aXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBy
ZXNwb25zZU1hcCA9IGRlY29kZWRSZXNwb25zZS0+Z2V0TWFwKCk7CisKKyAgICBhdXRvIGl0ID0g
cmVzcG9uc2VNYXAuZmluZChDQk9SKDEpKTsKKyAgICBpZiAoaXQgPT0gcmVzcG9uc2VNYXAuZW5k
KCkgfHwgIWl0LT5zZWNvbmQuaXNBcnJheSgpIHx8IGl0LT5zZWNvbmQuZ2V0QXJyYXkoKS5zaXpl
KCkgPiAyKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIFN0ZFNldDxQcm90b2Nv
bFZlcnNpb24+IHByb3RvY29sVmVyc2lvbnM7CisgICAgZm9yIChjb25zdCBhdXRvJiB2ZXJzaW9u
IDogaXQtPnNlY29uZC5nZXRBcnJheSgpKSB7CisgICAgICAgIGlmICghdmVyc2lvbi5pc1N0cmlu
ZygpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBhdXRvIHBy
b3RvY29sID0gY29udmVydFN0cmluZ1RvUHJvdG9jb2xWZXJzaW9uKHZlcnNpb24uZ2V0U3RyaW5n
KCkpOworICAgICAgICBpZiAocHJvdG9jb2wgPT0gUHJvdG9jb2xWZXJzaW9uOjprVW5rbm93bikg
eworICAgICAgICAgICAgTE9HX0VSUk9SKCJVbmV4cGVjdGVkIHByb3RvY29sIHZlcnNpb24gcmVj
ZWl2ZWQuIik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlm
ICghcHJvdG9jb2xWZXJzaW9ucy5pbnNlcnQocHJvdG9jb2wpLnNlY29uZCkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorICAgIGlmIChwcm90b2NvbFZlcnNpb25zLmVt
cHR5KCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBpdCA9IHJlc3BvbnNl
TWFwLmZpbmQoQ0JPUigzKSk7CisgICAgaWYgKGl0ID09IHJlc3BvbnNlTWFwLmVuZCgpIHx8ICFp
dC0+c2Vjb25kLmlzQnl0ZVN0cmluZygpIHx8IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpLnNp
emUoKSAhPSBrQWFndWlkTGVuZ3RoKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSByZXNwb25zZShXVEZNb3ZlKHByb3RvY29s
VmVyc2lvbnMpLCBWZWN0b3I8dWludDhfdD4oaXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCkpKTsK
KworICAgIGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDIpKTsKKyAgICBpZiAoaXQgIT0gcmVz
cG9uc2VNYXAuZW5kKCkpIHsKKyAgICAgICAgaWYgKCFpdC0+c2Vjb25kLmlzQXJyYXkoKSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgVmVjdG9yPFN0cmluZz4g
ZXh0ZW5zaW9uczsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBleHRlbnNpb24gOiBpdC0+c2Vj
b25kLmdldEFycmF5KCkpIHsKKyAgICAgICAgICAgIGlmICghZXh0ZW5zaW9uLmlzU3RyaW5nKCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICAgICAgZXh0
ZW5zaW9ucy5hcHBlbmQoZXh0ZW5zaW9uLmdldFN0cmluZygpKTsKKyAgICAgICAgfQorICAgICAg
ICByZXNwb25zZS5zZXRFeHRlbnNpb25zKFdURk1vdmUoZXh0ZW5zaW9ucykpOworICAgIH0KKwor
ICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zIG9wdGlvbnM7CisgICAgaXQgPSByZXNw
b25zZU1hcC5maW5kKENCT1IoNCkpOworICAgIGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSkg
eworICAgICAgICBpZiAoIWl0LT5zZWNvbmQuaXNNYXAoKSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgICAgIGNvbnN0IGF1dG8mIG9wdGlvbk1hcCA9IGl0LT5zZWNvbmQu
Z2V0TWFwKCk7CisgICAgICAgIGF1dG8gb3B0aW9uTWFwSXQgPSBvcHRpb25NYXAuZmluZChDQk9S
KGtQbGF0Zm9ybURldmljZU1hcEtleSkpOworICAgICAgICBpZiAob3B0aW9uTWFwSXQgIT0gb3B0
aW9uTWFwLmVuZCgpKSB7CisgICAgICAgICAgICBpZiAoIW9wdGlvbk1hcEl0LT5zZWNvbmQuaXNC
b29sKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICAg
ICAgb3B0aW9ucy5zZXRJc1BsYXRmb3JtRGV2aWNlKG9wdGlvbk1hcEl0LT5zZWNvbmQuZ2V0Qm9v
bCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIG9wdGlvbk1hcEl0ID0gb3B0aW9uTWFwLmZpbmQo
Q0JPUihrUmVzaWRlbnRLZXlNYXBLZXkpKTsKKyAgICAgICAgaWYgKG9wdGlvbk1hcEl0ICE9IG9w
dGlvbk1hcC5lbmQoKSkgeworICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJdC0+c2Vjb25kLmlz
Qm9vbCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAg
ICAgIG9wdGlvbnMuc2V0U3VwcG9ydHNSZXNpZGVudEtleShvcHRpb25NYXBJdC0+c2Vjb25kLmdl
dEJvb2woKSk7CisgICAgICAgIH0KKworICAgICAgICBvcHRpb25NYXBJdCA9IG9wdGlvbk1hcC5m
aW5kKENCT1Ioa1VzZXJQcmVzZW5jZU1hcEtleSkpOworICAgICAgICBpZiAob3B0aW9uTWFwSXQg
IT0gb3B0aW9uTWFwLmVuZCgpKSB7CisgICAgICAgICAgICBpZiAoIW9wdGlvbk1hcEl0LT5zZWNv
bmQuaXNCb29sKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
ICAgICAgICAgb3B0aW9ucy5zZXRVc2VyUHJlc2VuY2VSZXF1aXJlZChvcHRpb25NYXBJdC0+c2Vj
b25kLmdldEJvb2woKSk7CisgICAgICAgIH0KKworICAgICAgICBvcHRpb25NYXBJdCA9IG9wdGlv
bk1hcC5maW5kKENCT1Ioa1VzZXJWZXJpZmljYXRpb25NYXBLZXkpKTsKKyAgICAgICAgaWYgKG9w
dGlvbk1hcEl0ICE9IG9wdGlvbk1hcC5lbmQoKSkgeworICAgICAgICAgICAgaWYgKCFvcHRpb25N
YXBJdC0+c2Vjb25kLmlzQm9vbCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAgICAgICAgIGlmIChvcHRpb25NYXBJdC0+c2Vjb25kLmdldEJvb2woKSkKKyAg
ICAgICAgICAgICAgICBvcHRpb25zLnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoQXV0
aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6
OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBvcHRpb25zLnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0
ZWRCdXROb3RDb25maWd1cmVkKTsKKyAgICAgICAgfQorCisgICAgICAgIG9wdGlvbk1hcEl0ID0g
b3B0aW9uTWFwLmZpbmQoQ0JPUihrQ2xpZW50UGluTWFwS2V5KSk7CisgICAgICAgIGlmIChvcHRp
b25NYXBJdCAhPSBvcHRpb25NYXAuZW5kKCkpIHsKKyAgICAgICAgICAgIGlmICghb3B0aW9uTWFw
SXQtPnNlY29uZC5pc0Jvb2woKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgICAgICBpZiAob3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29sKCkpCisgICAg
ICAgICAgICAgICAgb3B0aW9ucy5zZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBp
blNldCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3B0aW9ucy5zZXRDbGll
bnRQaW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBp
bkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dFBpbk5vdFNldCk7CisgICAgICAgIH0KKyAgICAg
ICAgcmVzcG9uc2Uuc2V0T3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKTsKKyAgICB9CisKKyAgICBp
dCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUig1KSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFw
LmVuZCgpKSB7CisgICAgICAgIGlmICghaXQtPnNlY29uZC5pc1Vuc2lnbmVkKCkpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHJlc3BvbnNlLnNldE1heE1zZ1Np
emUoaXQtPnNlY29uZC5nZXRVbnNpZ25lZCgpKTsKKyAgICB9CisKKyAgICBpdCA9IHJlc3BvbnNl
TWFwLmZpbmQoQ0JPUig2KSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFwLmVuZCgpKSB7Cisg
ICAgICAgIGlmICghaXQtPnNlY29uZC5pc0FycmF5KCkpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBzdXBwb3J0ZWRQaW5Qcm90b2Nv
bHM7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcHJvdG9jb2wgOiBpdC0+c2Vjb25kLmdldEFy
cmF5KCkpIHsKKyAgICAgICAgICAgIGlmICghcHJvdG9jb2wuaXNVbnNpZ25lZCgpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIHN1cHBvcnRlZFBp
blByb3RvY29scy5hcHBlbmQocHJvdG9jb2wuZ2V0VW5zaWduZWQoKSk7CisgICAgICAgIH0KKyAg
ICAgICAgcmVzcG9uc2Uuc2V0UGluUHJvdG9jb2xzKFdURk1vdmUoc3VwcG9ydGVkUGluUHJvdG9j
b2xzKSk7CisgICAgfQorCisgICAgcmV0dXJuIFdURk1vdmUocmVzcG9uc2UpOworfQorCit9IC8v
IG5hbWVzcGFjZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29u
dmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVz
cG9uc2VDb252ZXJ0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTk2MzM1NDVjZGUyNWMwZGJkYzRjNjNkYTVm
MWIxNjZlMjM3NDkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmgKQEAgLTAsMCArMSw2NiBAQAor
Ly8gQ29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8g
ZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8g
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9yR2V0
SW5mb1Jlc3BvbnNlLmgiCisjaW5jbHVkZSAiRmlkb0NvbnN0YW50cy5oIgorI2luY2x1ZGUgIlB1
YmxpY0tleUNyZWRlbnRpYWxEYXRhLmgiCisKKy8vIENvbnZlcnRzIHJlc3BvbnNlIGZyb20gYXV0
aGVudGljYXRvcnMgdG8gQ1RBUFJlc3BvbnNlIG9iamVjdHMuIElmIHRoZQorLy8gcmVzcG9uc2Ug
b2YgdGhlIGF1dGhlbnRpY2F0b3IgZG9lcyBub3QgY29uZm9ybSB0byBmb3JtYXQgc3BlY2lmaWVk
IGJ5IHRoZQorLy8gQ1RBUCBwcm90b2NvbCwgbnVsbCBvcHRpb25hbCBpcyByZXR1cm5lZC4KK25h
bWVzcGFjZSBmaWRvIHsKKworLy8gUGFyc2VzIHJlc3BvbnNlIGNvZGUgZnJvbSByZXNwb25zZSBy
ZWNlaXZlZCBmcm9tIHRoZSBhdXRoZW50aWNhdG9yLiBJZgorLy8gdW5rbm93biByZXNwb25zZSBj
b2RlIHZhbHVlIGlzIHJlY2VpdmVkLCB0aGVuIENUQVAyX0VSUl9PVEhFUiBpcyByZXR1cm5lZC4K
K1dFQkNPUkVfRVhQT1JUIEN0YXBEZXZpY2VSZXNwb25zZUNvZGUgZ2V0UmVzcG9uc2VDb2RlKGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYpOworCisvLyBEZS1zZXJpYWxpemVzIENCT1IgZW5jb2RlZCBy
ZXNwb25zZSwgY2hlY2tzIGZvciB2YWxpZCBDQk9SIG1hcCBmb3JtYXR0aW5nLAorLy8gYW5kIGNv
bnZlcnRzIHJlc3BvbnNlIHRvIEF1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbFJlc3BvbnNlIG9i
amVjdCB3aXRoCisvLyBDQk9SIG1hcCBrZXlzIHRoYXQgY29uZm9ybSB0byBmb3JtYXQgb2YgYXR0
ZXN0YXRpb24gb2JqZWN0IGRlZmluZWQgYnkgdGhlCisvLyBXZWJBdXRoTiBzcGVjIDogaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL3dlYmF1dGhuLyNmaWctYXR0U3RydWN0cworV0VCQ09SRV9FWFBPUlQg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZENUQVBN
YWtlQ3JlZGVudGlhbFJlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYpOworCisvLyBEZS1z
ZXJpYWxpemVzIENCT1IgZW5jb2RlZCByZXNwb25zZSB0byBBdXRoZW50aWNhdG9yR2V0QXNzZXJ0
aW9uIC8KKy8vIEF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uIHJlcXVlc3QgdG8gQXV0aGVu
dGljYXRvckdldEFzc2VydGlvblJlc3BvbnNlCisvLyBvYmplY3QuCisvLyBGSVhNRSgxOTA3ODMp
OiBQcm9iYWJseSBuZWVkIHRvIHJlbWFrZSBBdXRoZW50aWNhdG9yUmVzcG9uc2UgdG8gaW5jbHVk
ZSBtb3JlIGZpZWxkcyBsaWtlIG51bWJlck9mQ3JlZGVudGlhbHMsCisvLyBhbmQgdXNlIGl0IGhl
cmUgaW5zdGVhZCBvZiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YS4KK1dFQkNPUkVfRVhQT1JUIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlYWRDVEFQR2V0
QXNzZXJ0aW9uUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7CisKKy8vIERlLXNlcmlh
bGl6ZXMgQ0JPUiBlbmNvZGVkIHJlc3BvbnNlIHRvIEF1dGhlbnRpY2F0b3JHZXRJbmZvIHJlcXVl
c3QgdG8KKy8vIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2Ugb2JqZWN0LgorV0VCQ09SRV9F
WFBPUlQgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlPiByZWFkQ1RB
UEdldEluZm9SZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4mKTsKKworfSAvLyBuYW1lc3Bh
Y2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcAppbmRleCAz
ODgxZmQyZjI2NGU5ZjBlZTRkYTAzOTI0MmU1YWQxMGQ3MDRhNGYzLi44MTcyNWNlYWYyY2VkMjkx
OTY3ODQzYzk3OTE3OGFmNmVjNDRlNzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwCkBAIC0zMyw2ICszMyw2NiBA
QAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKIG5hbWVzcGFjZSBmaWRvIHsKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCitib29sIGlzQ3RhcERldmljZVJlc3BvbnNlQ29kZShDdGFwRGV2aWNl
UmVzcG9uc2VDb2RlIGNvZGUpCit7CisgICAgc3dpdGNoIChjb2RlKSB7CisgICAgY2FzZSBDdGFw
RGV2aWNlUmVzcG9uc2VDb2RlOjprU3VjY2VzczoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25z
ZUNvZGU6OmtDdGFwMUVyckludmFsaWRDb21tYW5kOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a0N0YXAxRXJySW52YWxpZFBhcmFtZXRlcjoKKyAgICBjYXNlIEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMUVyckludmFsaWRMZW5ndGg6CisgICAgY2FzZSBDdGFwRGV2aWNl
UmVzcG9uc2VDb2RlOjprQ3RhcDFFcnJJbnZhbGlkU2VxOgorICAgIGNhc2UgQ3RhcERldmljZVJl
c3BvbnNlQ29kZTo6a0N0YXAxRXJyVGltZW91dDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25z
ZUNvZGU6OmtDdGFwMUVyckNoYW5uZWxCdXN5OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNl
Q29kZTo6a0N0YXAxRXJyTG9ja1JlcXVpcmVkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNl
Q29kZTo6a0N0YXAxRXJySW52YWxpZENoYW5uZWw6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9u
c2VDb2RlOjprQ3RhcDJFcnJDQk9SUGFyc2luZzoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25z
ZUNvZGU6OmtDdGFwMkVyclVuZXhwZWN0ZWRUeXBlOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a0N0YXAyRXJySW52YWxpZENCT1I6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9u
c2VDb2RlOjprQ3RhcDJFcnJJbnZhbGlkQ0JPUlR5cGU6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDJFcnJNaXNzaW5nUGFyYW1ldGVyOgorICAgIGNhc2UgQ3RhcERldmlj
ZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyTGltaXRFeGNlZWRlZDoKKyAgICBjYXNlIEN0YXBEZXZp
Y2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclVuc3VwcG9ydGVkRXh0ZW5zaW9uOgorICAgIGNhc2Ug
Q3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVG9vTWFueUVsZW1lbnRzOgorICAgIGNh
c2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyRXh0ZW5zaW9uTm90U3VwcG9ydGVk
OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyQ3JlZGVudGlhbEV4
Y2x1ZGVkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUHJvY2Vz
c3Npbmc6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJJbnZhbGlk
Q3JlZGVudGlhbDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclVz
ZXJBY3Rpb25QZW5kaW5nOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAy
RXJyT3BlcmF0aW9uUGVuZGluZzoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtD
dGFwMkVyck5vT3BlcmF0aW9uczoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtD
dGFwMkVyclVuc3VwcG9ydGVkQWxnb3JpdGhtczoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25z
ZUNvZGU6OmtDdGFwMkVyck9wZXJhdGlvbkRlbmllZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNw
b25zZUNvZGU6OmtDdGFwMkVycktleVN0b3JlRnVsbDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNw
b25zZUNvZGU6OmtDdGFwMkVyck5vdEJ1c3k6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlOjprQ3RhcDJFcnJOb09wZXJhdGlvblBlbmRpbmc6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDJFcnJVbnN1cHBvcnRlZE9wdGlvbjoKKyAgICBjYXNlIEN0YXBEZXZp
Y2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRPcHRpb246CisgICAgY2FzZSBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJLZWVwQWxpdmVDYW5jZWw6CisgICAgY2FzZSBDdGFw
RGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJOb0NyZWRlbnRpYWxzOgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVXNlckFjdGlvblRpbWVvdXQ6CisgICAgY2Fz
ZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJOb3RBbGxvd2VkOgorICAgIGNhc2Ug
Q3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluSW52YWxpZDoKKyAgICBjYXNlIEN0
YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbkJsb2NrZWQ6CisgICAgY2FzZSBDdGFw
RGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5BdXRoSW52YWxpZDoKKyAgICBjYXNlIEN0
YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbkF1dGhCbG9ja2VkOgorICAgIGNhc2Ug
Q3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluTm90U2V0OgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluUmVxdWlyZWQ6CisgICAgY2FzZSBDdGFw
RGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5Qb2xpY3lWaW9sYXRpb246CisgICAgY2Fz
ZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5Ub2tlbkV4cGlyZWQ6CisgICAg
Y2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJSZXF1ZXN0VG9vTGFyZ2U6Cisg
ICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJPdGhlcjoKKyAgICBjYXNl
IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclNwZWNMYXN0OgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyRXh0ZW5zaW9uRmlyc3Q6CisgICAgY2FzZSBD
dGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJFeHRlbnNpb25MYXN0OgorICAgIGNhc2Ug
Q3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVmVuZG9yRmlyc3Q6CisgICAgY2FzZSBD
dGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJWZW5kb3JMYXN0OgorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQog
CiBib29sIGlzRmlkb0hpZERldmljZUNvbW1hbmQoRmlkb0hpZERldmljZUNvbW1hbmQgY21kKQog
ewpAQCAtNTIsNiArMTEyLDE2IEBAIGJvb2wgaXNGaWRvSGlkRGV2aWNlQ29tbWFuZChGaWRvSGlk
RGV2aWNlQ29tbWFuZCBjbWQpCiAgICAgfQogfQogCitjb25zdCBjaGFyKiBwdWJsaWNLZXlDcmVk
ZW50aWFsVHlwZVRvU3RyaW5nKFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlIHR5cGUpCit7CisgICAg
c3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGlj
S2V5OgorICAgICAgICByZXR1cm4ga1B1YmxpY0tleTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIGtQdWJsaWNLZXk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIGZp
ZG8KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaAppbmRleCBiODY5MGYwM2Rk
NDg0ZGZkMzY3NTY3NTBlMDU2YTI3NWM2ZGQzZTU2Li41Y2Q3YWU4YjM5MTM1MTQwMTQ3ZmMwNjk3
OTM2MzgwZjQ5MDBiYTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmgKQEAgLTMxLDggKzMxLDkzIEBACiAKICNpZiBFTkFC
TEUoV0VCX0FVVEhOKQogCisjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCIKKwog
bmFtZXNwYWNlIGZpZG8gewogCitlbnVtIGNsYXNzIFByb3RvY29sVmVyc2lvbiB7CisgICAga0N0
YXAsCisgICAga1UyZiwKKyAgICBrVW5rbm93biwKK307CisKKy8vIExlbmd0aCBvZiB0aGUgU0hB
LTI1NiBoYXNoIG9mIHRoZSBSUCBJRCBhc3Nzb2NpYXRlZCB3aXRoIHRoZSBjcmVkZW50aWFsOgor
Ly8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXV0aGVudGljYXRvci1kYXRh
Citjb25zdGV4cHIgc2l6ZV90IGtScElkSGFzaExlbmd0aCA9IDMyOworCisvLyBMZW5ndGggb2Yg
dGhlIGZsYWdzOgorLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXV0aGVu
dGljYXRvci1kYXRhCitjb25zdGV4cHIgc2l6ZV90IGtGbGFnc0xlbmd0aCA9IDE7CisKKy8vIExl
bmd0aCBvZiB0aGUgc2lnbmF0dXJlIGNvdW50ZXIsIDMyLWJpdCB1bnNpZ25lZCBiaWctZW5kaWFu
IGludGVnZXI6CisvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI3NlYy1hdXRoZW50
aWNhdG9yLWRhdGEKK2NvbnN0ZXhwciBzaXplX3Qga1NpZ25Db3VudGVyTGVuZ3RoID0gNDsKKwor
Ly8gTGVuZ3RoIG9mIHRoZSBBQUdVSUQgb2YgdGhlIGF1dGhlbnRpY2F0b3I6CisvLyBodHRwczov
L3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI3NlYy1hdHRlc3RlZC1jcmVkZW50aWFsLWRhdGEKK2Nv
bnN0ZXhwciBzaXplX3Qga0FhZ3VpZExlbmd0aCA9IDE2OworCisvLyBMZW5ndGggb2YgdGhlIGJ5
dGUgbGVuZ3RoIEwgb2YgQ3JlZGVudGlhbCBJRCwgMTYtYml0IHVuc2lnbmVkIGJpZy1lbmRpYW4K
Ky8vIGludGVnZXI6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jc2VjLWF0dGVzdGVk
LWNyZWRlbnRpYWwtZGF0YQorY29uc3RleHByIHNpemVfdCBrQ3JlZGVudGlhbElkTGVuZ3RoTGVu
Z3RoID0gMjsKKworLy8gQ1RBUCBwcm90b2NvbCBkZXZpY2UgcmVzcG9uc2UgY29kZSwgYXMgc3Bl
Y2lmaWVkIGluCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBz
LTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0y
MDE3MDkyNy5odG1sI2Vycm9yLXJlc3BvbnNlcworZW51bSBjbGFzcyBDdGFwRGV2aWNlUmVzcG9u
c2VDb2RlIDogdWludDhfdCB7CisgICAga1N1Y2Nlc3MgPSAweDAwLAorICAgIGtDdGFwMUVycklu
dmFsaWRDb21tYW5kID0gMHgwMSwKKyAgICBrQ3RhcDFFcnJJbnZhbGlkUGFyYW1ldGVyID0gMHgw
MiwKKyAgICBrQ3RhcDFFcnJJbnZhbGlkTGVuZ3RoID0gMHgwMywKKyAgICBrQ3RhcDFFcnJJbnZh
bGlkU2VxID0gMHgwNCwKKyAgICBrQ3RhcDFFcnJUaW1lb3V0ID0gMHgwNSwKKyAgICBrQ3RhcDFF
cnJDaGFubmVsQnVzeSA9IDB4MDYsCisgICAga0N0YXAxRXJyTG9ja1JlcXVpcmVkID0gMHgwQSwK
KyAgICBrQ3RhcDFFcnJJbnZhbGlkQ2hhbm5lbCA9IDB4MEIsCisgICAga0N0YXAyRXJyQ0JPUlBh
cnNpbmcgPSAweDEwLAorICAgIGtDdGFwMkVyclVuZXhwZWN0ZWRUeXBlID0gMHgxMSwKKyAgICBr
Q3RhcDJFcnJJbnZhbGlkQ0JPUiA9IDB4MTIsCisgICAga0N0YXAyRXJySW52YWxpZENCT1JUeXBl
ID0gMHgxMywKKyAgICBrQ3RhcDJFcnJNaXNzaW5nUGFyYW1ldGVyID0gMHgxNCwKKyAgICBrQ3Rh
cDJFcnJMaW1pdEV4Y2VlZGVkID0gMHgxNSwKKyAgICBrQ3RhcDJFcnJVbnN1cHBvcnRlZEV4dGVu
c2lvbiA9IDB4MTYsCisgICAga0N0YXAyRXJyVG9vTWFueUVsZW1lbnRzID0gMHgxNywKKyAgICBr
Q3RhcDJFcnJFeHRlbnNpb25Ob3RTdXBwb3J0ZWQgPSAweDE4LAorICAgIGtDdGFwMkVyckNyZWRl
bnRpYWxFeGNsdWRlZCA9IDB4MTksCisgICAga0N0YXAyRXJyUHJvY2Vzc3NpbmcgPSAweDIxLAor
ICAgIGtDdGFwMkVyckludmFsaWRDcmVkZW50aWFsID0gMHgyMiwKKyAgICBrQ3RhcDJFcnJVc2Vy
QWN0aW9uUGVuZGluZyA9IDB4MjMsCisgICAga0N0YXAyRXJyT3BlcmF0aW9uUGVuZGluZyA9IDB4
MjQsCisgICAga0N0YXAyRXJyTm9PcGVyYXRpb25zID0gMHgyNSwKKyAgICBrQ3RhcDJFcnJVbnN1
cHBvcnRlZEFsZ29yaXRobXMgPSAweDI2LAorICAgIGtDdGFwMkVyck9wZXJhdGlvbkRlbmllZCA9
IDB4MjcsCisgICAga0N0YXAyRXJyS2V5U3RvcmVGdWxsID0gMHgyOCwKKyAgICBrQ3RhcDJFcnJO
b3RCdXN5ID0gMHgyOSwKKyAgICBrQ3RhcDJFcnJOb09wZXJhdGlvblBlbmRpbmcgPSAweDJBLAor
ICAgIGtDdGFwMkVyclVuc3VwcG9ydGVkT3B0aW9uID0gMHgyQiwKKyAgICBrQ3RhcDJFcnJJbnZh
bGlkT3B0aW9uID0gMHgyQywKKyAgICBrQ3RhcDJFcnJLZWVwQWxpdmVDYW5jZWwgPSAweDJELAor
ICAgIGtDdGFwMkVyck5vQ3JlZGVudGlhbHMgPSAweDJFLAorICAgIGtDdGFwMkVyclVzZXJBY3Rp
b25UaW1lb3V0ID0gMHgyRiwKKyAgICBrQ3RhcDJFcnJOb3RBbGxvd2VkID0gMHgzMCwKKyAgICBr
Q3RhcDJFcnJQaW5JbnZhbGlkID0gMHgzMSwKKyAgICBrQ3RhcDJFcnJQaW5CbG9ja2VkID0gMHgz
MiwKKyAgICBrQ3RhcDJFcnJQaW5BdXRoSW52YWxpZCA9IDB4MzMsCisgICAga0N0YXAyRXJyUGlu
QXV0aEJsb2NrZWQgPSAweDM0LAorICAgIGtDdGFwMkVyclBpbk5vdFNldCA9IDB4MzUsCisgICAg
a0N0YXAyRXJyUGluUmVxdWlyZWQgPSAweDM2LAorICAgIGtDdGFwMkVyclBpblBvbGljeVZpb2xh
dGlvbiA9IDB4MzcsCisgICAga0N0YXAyRXJyUGluVG9rZW5FeHBpcmVkID0gMHgzOCwKKyAgICBr
Q3RhcDJFcnJSZXF1ZXN0VG9vTGFyZ2UgPSAweDM5LAorICAgIGtDdGFwMkVyck90aGVyID0gMHg3
RiwKKyAgICBrQ3RhcDJFcnJTcGVjTGFzdCA9IDB4REYsCisgICAga0N0YXAyRXJyRXh0ZW5zaW9u
Rmlyc3QgPSAweEUwLAorICAgIGtDdGFwMkVyckV4dGVuc2lvbkxhc3QgPSAweEVGLAorICAgIGtD
dGFwMkVyclZlbmRvckZpcnN0ID0gMHhGMCwKKyAgICBrQ3RhcDJFcnJWZW5kb3JMYXN0ID0gMHhG
RgorfTsKKworYm9vbCBpc0N0YXBEZXZpY2VSZXNwb25zZUNvZGUoQ3RhcERldmljZVJlc3BvbnNl
Q29kZSk7CisKIC8vIENvbW1hbmRzIHN1cHBvcnRlZCBieSBDVEFQSElEIGRldmljZSBhcyBzcGVj
aWZpZWQgaW4KIC8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMt
MjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIw
MTcwOTI3Lmh0bWwjY3RhcGhpZC1jb21tYW5kcwogZW51bSBjbGFzcyBGaWRvSGlkRGV2aWNlQ29t
bWFuZCA6IHVpbnQ4X3QgewpAQCAtNDcsNyArMTMyLDI0IEBAIGVudW0gY2xhc3MgRmlkb0hpZERl
dmljZUNvbW1hbmQgOiB1aW50OF90IHsKICAgICBrTG9jayA9IDB4MDQsCiB9OwogCi1ib29sIGlz
Rmlkb0hpZERldmljZUNvbW1hbmQoRmlkb0hpZERldmljZUNvbW1hbmQgY21kKTsKK2Jvb2wgaXNG
aWRvSGlkRGV2aWNlQ29tbWFuZChGaWRvSGlkRGV2aWNlQ29tbWFuZCk7CisKKy8vIFN0cmluZyBr
ZXkgdmFsdWVzIGZvciBDVEFQIHJlcXVlc3Qgb3B0aW9uYWwgcGFyYW1ldGVycyBhbmQKKy8vIEF1
dGhlbnRpY2F0b3JHZXRJbmZvIHJlc3BvbnNlLgorY29uc3QgY2hhciBrUmVzaWRlbnRLZXlNYXBL
ZXlbXSA9ICJyayI7Citjb25zdCBjaGFyIGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5W10gPSAidXYi
OworY29uc3QgY2hhciBrVXNlclByZXNlbmNlTWFwS2V5W10gPSAidXAiOworY29uc3QgY2hhciBr
Q2xpZW50UGluTWFwS2V5W10gPSAiY2xpZW50UGluIjsKK2NvbnN0IGNoYXIga1BsYXRmb3JtRGV2
aWNlTWFwS2V5W10gPSAicGxhdCI7Citjb25zdCBjaGFyIGtFbnRpdHlJZE1hcEtleVtdID0gImlk
IjsKK2NvbnN0IGNoYXIga0VudGl0eU5hbWVNYXBLZXlbXSA9ICJuYW1lIjsKK2NvbnN0IGNoYXIg
a0Rpc3BsYXlOYW1lTWFwS2V5W10gPSAiZGlzcGxheU5hbWUiOworY29uc3QgY2hhciBrSWNvblVy
bE1hcEtleVtdID0gImljb24iOworY29uc3QgY2hhciBrQ3JlZGVudGlhbFR5cGVNYXBLZXlbXSA9
ICJ0eXBlIjsKK2NvbnN0IGNoYXIga0NyZWRlbnRpYWxBbGdvcml0aG1NYXBLZXlbXSA9ICJhbGci
OworLy8gS2V5cyBmb3Igc3RvcmluZyBjcmVkZW50aWFsIGRlc2NyaXB0b3IgaW5mb3JtYXRpb24g
aW4gQ0JPUiBtYXAuCitjb25zdCBjaGFyIGtDcmVkZW50aWFsSWRLZXlbXSA9ICJpZCI7Citjb25z
dCBjaGFyIGtDcmVkZW50aWFsVHlwZUtleVtdID0gInR5cGUiOwogCiAvLyBISUQgdHJhbnNwb3J0
IHNwZWNpZmljIGNvbnN0YW50cy4KIGNvbnN0IHNpemVfdCBrSGlkUGFja2V0U2l6ZSA9IDY0OwpA
QCAtNjMsNiArMTY1LDM0IEBAIGNvbnN0IHVpbnQ4X3Qga0hpZE1heExvY2tTZWNvbmRzID0gMTA7
CiAvLyBNZXNzYWdlcyBhcmUgbGltaXRlZCB0byBhbiBpbml0aWF0aW9uIHBhY2tldCBhbmQgMTI4
IGNvbnRpbnVhdGlvbiBwYWNrZXRzLgogY29uc3Qgc2l6ZV90IGtIaWRNYXhNZXNzYWdlU2l6ZSA9
IDc2MDk7CiAKKy8vIEF1dGhlbnRpY2F0b3IgQVBJIGNvbW1hbmRzIHN1cHBvcnRlZCBieSBDVEFQ
IGRldmljZXMsIGFzIHNwZWNpZmllZCBpbgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3Nw
ZWNzL2ZpZG8tdjIuMC1yZC0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXBy
b3RvY29sLXYyLjAtcmQtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNhdG9yLWFwaQorZW51bSBjbGFz
cyBDdGFwUmVxdWVzdENvbW1hbmQgOiB1aW50OF90IHsKKyAgICBrQXV0aGVudGljYXRvck1ha2VD
cmVkZW50aWFsID0gMHgwMSwKKyAgICBrQXV0aGVudGljYXRvckdldEFzc2VydGlvbiA9IDB4MDIs
CisgICAga0F1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uID0gMHgwOCwKKyAgICBrQXV0aGVu
dGljYXRvckdldEluZm8gPSAweDA0LAorICAgIGtBdXRoZW50aWNhdG9yQ2xpZW50UGluID0gMHgw
NiwKKyAgICBrQXV0aGVudGljYXRvclJlc2V0ID0gMHgwNywKK307CisKKy8vIFN0cmluZyBrZXkg
dmFsdWVzIGZvciBhdHRlc3RhdGlvbiBvYmplY3QgYXMgYSByZXNwb25zZSB0byBNYWtlQ3JlZGVu
dGlhbAorLy8gcmVxdWVzdC4KK2NvbnN0IGNoYXIga0Zvcm1hdEtleVtdID0gImZtdCI7Citjb25z
dCBjaGFyIGtBdHRlc3RhdGlvblN0YXRlbWVudEtleVtdID0gImF0dFN0bXQiOworY29uc3QgY2hh
ciBrQXV0aERhdGFLZXlbXSA9ICJhdXRoRGF0YSI7Citjb25zdCBjaGFyIGtOb25lQXR0ZXN0YXRp
b25WYWx1ZVtdID0gIm5vbmUiOworCisvLyBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgcHVibGlj
IGtleSBjcmVkZW50aWFsIGVudW0uCisvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViYXV0aG4v
I2NyZWRlbnRpYWxUeXBlCitjb25zdCBjaGFyIGtQdWJsaWNLZXlbXSA9ICJwdWJsaWMta2V5IjsK
KworY29uc3QgY2hhciogcHVibGljS2V5Q3JlZGVudGlhbFR5cGVUb1N0cmluZyhXZWJDb3JlOjpQ
dWJsaWNLZXlDcmVkZW50aWFsVHlwZSk7CisKKy8vIEZJWE1FOiBBZGQgdXJsIHRvIHRoZSBvZmZp
Y2lhbCBzcGVjIG9uY2UgaXQncyBzdGFuZGFyZGl6ZWQuCitjb25zdCBjaGFyIGtDdGFwMlZlcnNp
b25bXSA9ICJGSURPXzJfMCI7Citjb25zdCBjaGFyIGtVMmZWZXJzaW9uW10gPSAiVTJGX1YyIjsK
KwogfSAvLyBuYW1lc3BhY2UgZmlkbwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dlYkdQVUFkYXB0ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAKaW5kZXgg
NmRmNDVlMWJlZDYyNGNiNTk4YjI5OGFkYTkyNjUyMjA1MmIxZmZmNy4uYTBiMjE0OWMzNzIxZGRi
MmE4Zjc5ZGU3OTU3MTMwNmVlZWQzZDE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV2ViR1BVQWRhcHRlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR1BVQWRhcHRlckRlc2NyaXB0
b3IuaCIKICNpbmNsdWRlICJXZWJHUFVEZXZpY2UuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAxNGI0YjlmMjhhMGIzMDg3
ZjgxMjkxYmY3MGNhYWQ2MWYwMjQyNmEyLi45YjdkYzM5YWQwNjQ5ZmY4NTU4ZjY4OWJlNjMyMmUw
N2FjNDFkYjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjU4LDYgKzI1OCwxMCBAQCBNb2R1bGVzL3dl
YmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWwuY3BwCiBNb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JP
UlJlYWRlci5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuY3BwCiBNb2R1bGVz
L3dlYmF1dGhuL2Nib3IvQ0JPUldyaXRlci5jcHAKK01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmNwcAorTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcAorTW9kdWxlcy93ZWJhdXRobi9maWRvL0Rldmlj
ZVJlcXVlc3RDb252ZXJ0ZXIuY3BwCitNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9u
c2VDb252ZXJ0ZXIuY3BwCiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5jcHAK
IE1vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvSGlkTWVzc2FnZS5jcHAKIE1vZHVsZXMvd2ViYXV0
aG4vZmlkby9GaWRvSGlkUGFja2V0LmNwcApAQCAtMzE1OSw2ICszMTYzLDcgQEAgSlNUcmVlV2Fs
a2VyLmNwcAogSlNVSUV2ZW50LmNwcAogSlNVSUV2ZW50SW5pdC5jcHAKIEpTVVJMU2VhcmNoUGFy
YW1zLmNwcAorSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuY3BwCiBKU1ZSRGlzcGxheS5j
cHAKIEpTVlJEaXNwbGF5Q2FwYWJpbGl0aWVzLmNwcAogSlNWUkRpc3BsYXlFdmVudC5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAyMWQyNWZkODUxYTZlMjFhODFjZWUzZmY3ZjZjNjMzZWFjNmQyNTE2Li5mYzNhMjAyNGE4NDRh
NTBlOTNlMWU0MTRkODdjNDkzZTNmZjMxNDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzU0LDYgKzE3NTQsMTIgQEAKIAkJ
NTcyMUE5ODcxRUNFNTNCMTAwODEyOTVBIC8qIENyeXB0b0RpZ2VzdEFsZ29yaXRobS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyMUE5ODYxRUNFNTNC
MTAwODEyOTVBIC8qIENyeXB0b0RpZ2VzdEFsZ29yaXRobS5oICovOyB9OwogCQk1NzIxQTk4QjFF
Q0U1NzA0MDA4MTI5NUEgLyogQ3J5cHRvQWxnb3JpdGhtUnNhUHNzUGFyYW1zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzIxQTk4ODFFQ0U1NzA0MDA4
MTI5NUEgLyogQ3J5cHRvQWxnb3JpdGhtUnNhUHNzUGFyYW1zLmggKi87IH07CiAJCTU3MkE3RjIx
MUM2RTU3MTkwMDlDNjE0OSAvKiBTaW11bGF0ZWRDbGljay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQTdGMjAxQzZFNTcxOTAwOUM2MTQ5IC8qIFNp
bXVsYXRlZENsaWNrLmggKi87IH07CisJCTU3MkI0MDFGMjE3NTdBNjQwMDBBRDQzRSAvKiBEZXZp
Y2VSZXF1ZXN0Q29udmVydGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzJCNDAxRDIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZl
cnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTU3MkI0MDJDMjE3NjkwMjAwMDBBRDQzRSAvKiBKU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQw
MkEyMTc2OTAxRjAwMEFENDNFIC8qIEpTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggKi87
IH07CisJCTU3MkI0MDM2MjE3NkE5MjIwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
MkI0MDIzMjE3NjhEODUwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NzJCNDAz
QTIxNzcyNTgxMDAwQUQ0M0UgLyogRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDM3MjE3NzI1NkMwMDBB
RDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU3MkI0MDQwMjE3ODAxNzEwMDBBRDQzRSAvKiBB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwM0UyMTc4MDE3MDAwMEFENDNFIC8qIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNTcyQjQwNDIyMTc4MTE0QTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0
b3JHZXRJbmZvUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3MkI0MDNDMjE3N0ZCNjEwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yR2V0SW5m
b1Jlc3BvbnNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNTczMDNCQjkyMDA2QzZFRTAwMzU1OTY1IC8qIENCT1JWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQjQyMDA2QzZFRDAwMzU1
OTY1IC8qIENCT1JWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTU3MzAzQkJBMjAwNkM2RUUwMDM1NTk2NSAvKiBDQk9SV3JpdGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzMwM0JCNTIwMDZD
NkVEMDAzNTU5NjUgLyogQ0JPUldyaXRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTU3MzAzQkJCMjAwNkM2RUUwMDM1NTk2NSAvKiBDQk9SQmlu
YXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzMw
M0JCNjIwMDZDNkVEMDAzNTU5NjUgLyogQ0JPUkJpbmFyeS5oICovOyB9OwpAQCAtODU3Miw2ICs4
NTc4LDE4IEBACiAJCTU3MjFBOThBMUVDRTU3MDQwMDgxMjk1QSAvKiBSc2FQc3NQYXJhbXMuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJzYVBzc1BhcmFtcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3
MkE3RjIwMUM2RTU3MTkwMDlDNjE0OSAvKiBTaW11bGF0ZWRDbGljay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTaW11bGF0ZWRDbGljay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzJBN0YyMjFDNkU1QTY2MDA5QzYxNDkgLyogU2ltdWxhdGVkQ2xpY2suY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2ltdWxhdGVkQ2xpY2suY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAxRDIxNzU3QTY0MDAwQUQ0M0Ug
LyogRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VSZXF1ZXN0
Q29udmVydGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDFFMjE3NTdB
NjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1NzJCNDAyMzIxNzY4RDg1MDAwQUQ0M0UgLyogVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAyNTIxNzY4RDg1MDAwQUQ0M0UgLyogVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAyQTIxNzY5MDFG
MDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMkIyMTc2OTAxRjAwMEFENDNFIC8qIEpT
VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMzcyMTc3MjU2QzAwMEFENDNFIC8qIERldmljZVJl
c3BvbnNlQ29udmVydGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmlj
ZVJlc3BvbnNlQ29udmVydGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0
MDM4MjE3NzI1NkMwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDNCMjE3N0ZCNjAwMDBBRDQz
RSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAzQzIxNzdGQjYxMDAwQUQ0M0UgLyogQXV0
aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTU3MkI0MDNEMjE3ODAxNkYwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yU3VwcG9y
dGVkT3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTU3MkI0MDNFMjE3ODAxNzAwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzMwM0JCNDIw
MDZDNkVEMDAzNTU5NjUgLyogQ0JPUlZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENCT1JWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzMwM0JC
NTIwMDZDNkVEMDAzNTU5NjUgLyogQ0JPUldyaXRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDQk9SV3JpdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3
MzAzQkI2MjAwNkM2RUQwMDM1NTk2NSAvKiBDQk9SQmluYXJ5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENCT1JCaW5hcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE5MDkzLDYgKzE5MTExLDE0IEBACiAJCTU3OEE0QkZBMjE2NkFFMDAwMEQwOEYzNCAvKiBm
aWRvICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1NzJC
NDAzQjIxNzdGQjYwMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5jcHAg
Ki8sCisJCQkJNTcyQjQwM0MyMTc3RkI2MTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2UuaCAqLywKKwkJCQk1NzJCNDAzRDIxNzgwMTZGMDAwQUQ0M0UgLyogQXV0aGVudGlj
YXRvclN1cHBvcnRlZE9wdGlvbnMuY3BwICovLAorCQkJCTU3MkI0MDNFMjE3ODAxNzAwMDBBRDQz
RSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oICovLAorCQkJCTU3MkI0MDFFMjE3
NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmNwcCAqLywKKwkJCQk1NzJC
NDAxRDIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oICovLAorCQkJ
CTU3MkI0MDM4MjE3NzI1NkMwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAg
Ki8sCisJCQkJNTcyQjQwMzcyMTc3MjU2QzAwMEFENDNFIC8qIERldmljZVJlc3BvbnNlQ29udmVy
dGVyLmggKi8sCiAJCQkJNTdCQUYyODcyMTY3RDJGNzAwOEU5NTRFIC8qIEZpZG9Db25zdGFudHMu
Y3BwICovLAogCQkJCTU3OEE0QzBCMjE2N0QyOTYwMEQwOEYzNCAvKiBGaWRvQ29uc3RhbnRzLmgg
Ki8sCiAJCQkJNTc4QTRDMDgyMTY3RDI5NTAwRDA4RjM0IC8qIEZpZG9IaWRNZXNzYWdlLmNwcCAq
LywKQEAgLTE5MTcyLDYgKzE5MTk4LDggQEAKIAkJCQk1NzMwM0MwODIwMDk5OEY4MDAzNTU5NjUg
LyogUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbCAqLywKIAkJCQk1NzMwM0JF
QTIwMDk3RjQwMDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCAqLywKIAkJCQk1
NzMwM0JGMDIwMDk4NDYxMDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaWRsICov
LAorCQkJCTU3MkI0MDIzMjE3NjhEODUwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQuaCAqLywKKwkJCQk1NzJCNDAyNTIxNzY4RDg1MDAwQUQ0M0UgLyogVXNlclZlcmlmaWNh
dGlvblJlcXVpcmVtZW50LmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gd2ViYXV0aG47CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTkxOTcsNiArMTkyMjUsOCBAQAogCQkJCTU3MzAz
QzBDMjAwOTlDNzUwMDM1NTk2NSAvKiBKU1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cy5oICovLAogCQkJCTU3MzAzQkZBMjAwOTkxMzUwMDM1NTk2NSAvKiBKU1B1YmxpY0tleUNyZWRl
bnRpYWxUeXBlLmNwcCAqLywKIAkJCQk1NzMwM0JGOTIwMDk5MTM0MDAzNTU5NjUgLyogSlNQdWJs
aWNLZXlDcmVkZW50aWFsVHlwZS5oICovLAorCQkJCTU3MkI0MDJCMjE3NjkwMUYwMDBBRDQzRSAv
KiBKU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5jcHAgKi8sCisJCQkJNTcyQjQwMkEyMTc2
OTAxRjAwMEFENDNFIC8qIEpTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggKi8sCiAJCQkp
OwogCQkJbmFtZSA9IFdlYkF1dGhOOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI3
NjgwLDcgKzI3NzEwLDkgQEAKIAkJCQk1NzMwM0MxRjIwMDlBQjQyMDAzNTU5NjUgLyogQXV0aGVu
dGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQzQ2
MjAxMDVEMkYwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3NjA4MjcyMjAyMTVBNTUwMDExNjY3OCAvKiBBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MkI0MDQyMjE3ODExNEEwMDBBRDQz
RSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
NzMwM0JEMjIwMDg3QTgzMDAzNTU5NjUgLyogQXV0aGVudGljYXRvclJlc3BvbnNlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1NzJCNDA0MDIxNzgwMTcxMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RENFRDkwMjE0ODdGRjcwMDE2
Qjg0NyAvKiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTAx
OTIwRTEzMkVCRjJFMDA4QkZFNTUgLyogQXV0b2NhcGl0YWxpemUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1QTdBQTQzMTMyRjBFQ0MwMEQzQTNDMiAvKiBBdXRvY2FwaXRhbGl6ZVR5cGVzLmggaW4g
SGVhZGVycyAqLywKQEAgLTI4MTk4LDYgKzI4MjMwLDggQEAKIAkJCQk1OUE4RjFENjExQTY5NTEz
MDAxQUMzNEEgLyogRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1OTBFMUI0OTExRTRFRjRCMDA2OUY3ODQgLyogRGV2aWNlT3JpZW50YXRpb25EYXRhLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1OUE4NUVBNDExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3Jp
ZW50YXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcyQjQwMUYyMTc1N0E2NDAwMEFE
NDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MkI0
MDNBMjE3NzI1ODEwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMjY3NzI1RkQxQTVCM0FEOTAwM0MyNEREIC8qIERGQS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNEOUY1NjYxQUEwRjczQzAwREE0NUZGIC8qIERGQUJ5dGVjb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1Q0Q5RjU2NzFBQTBGNzQyMDBEQTQ1RkYgLyogREZBQnl0ZWNvZGVDb21w
aWxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTY4MSw2ICsyOTcxNSw3IEBACiAJCQkJNDY1MzA3
RDAxREI2RUU0ODAwRTQxMzdDIC8qIEpTVUlFdmVudEluaXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdDNzNGQjEyMTkxRUY2RjQwMDdERTA2MSAvKiBKU1VzZXJNZXNzYWdlSGFuZGxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0M3M0ZCMEQxOTFFRjVBODAwN0RFMDYxIC8qIEpTVXNlck1lc3NhZ2VI
YW5kbGVyc05hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcyQjQwMkMyMTc2OTAyMDAw
MEFENDNFIC8qIEpTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQkxNUM3NzA5MzEwMEQzQ0E4MDA1QkEyNjcgLyogSlNWYWxpZGl0eVN0YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCRThFRjA0QjE3MUM5MDE0MDA5QjQ4QzMgLyogSlNWaWRlb1RyYWNrLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCRThFRjA0RDE3MUM5MDE0MDA5QjQ4QzMgLyogSlNWaWRlb1Ry
YWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTMzMiw2ICszMTM2Nyw3IEBACiAJCQkJQkM4
QkYxNTExMDU4MTNCRjAwQTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzhCRjE1QTEwNTgxNDE4MDBBNDBBMDcgLyogVXNlclN0eWxlU2hlZXRUeXBlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNERjMxN0MxMUY4RDY4MzAwM0M1QkY4IC8qIFVzZXJUeXBpbmdH
ZXN0dXJlSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzJCNDAzNjIxNzZBOTIyMDAw
QUQ0M0UgLyogVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1NUFGMTRFNjFFQUFDNTlCMDAyNkVFQUEgLyogVVRJUmVnaXN0cnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFGQUZCRjE5MTVBNUZBNzQwMDA4M0EyMCAvKiBVVElVdGlsaXRpZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTgzQzQ1QjhFMURDMkI2OEEwMDg4NzFCQSAvKiBWYWxpZGF0aW9uQnViYmxl
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBjZjEwN2Y1MTE3N2E2ZDI5MjM3MzFkYWZhZDZjYjM2MWEzMDQzMjg0Li4z
ZDhlNzAxMzE0NmFmMDAwNWU1YmY1YTgwMGRhMjQ3NDhiMTc5NmQ0IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTgt
MTAtMjIgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2Vi
QXV0aE5dIEltcG9ydCBDVEFQIGRldmljZSByZXF1ZXN0L3Jlc3BvbnNlIGNvbnZlcnRlcnMgZnJv
bSBDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkwNzg0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTQ2MDMzMz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9DQk9SVmFsdWVUZXN0LmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFw
UmVxdWVzdFRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVzcG9uc2VUZXN0LmNw
cDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpnZXRUZXN0Q29ycnVwdGVkU2lnblJl
c3BvbnNlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmdldFRlc3RDcmVkZW50aWFsUmF3SWRC
eXRlcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpjb252ZXJ0VG9WZWN0b3IpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0ZpZG9UZXN0RGF0YS5oOiBBZGRlZC4KKwogMjAxOC0xMC0zMCAgSm9uYXRoYW4gQmVk
YXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgd2Via2l0cHk6IFN1cHBvcnQgYWx0
ZXJuYXRlIHNpbWN0bCBsaXN0IG91dHB1dHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDVm
OWI3NzIwODE2ZGJkZGQ2YzEyNWFiNGM1N2JlOGQzYjlkMzE1Yi4uMDE3MzhlZjQ4NzliNzRhODZk
NWYyMDhhNjBmMGFkYTQyMDRkZmQzNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI0Niw2
ICsyNDYsOCBAQAogCQk1NzE0RUNCQjFDQThCRkU0MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0
T3JpZ2luYWxVUkxGcmFtZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3MTRFQ0JBMUNBOEJGRDEwMDA1MUFDOCAvKiBEb3dubG9hZFJl
cXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWwgKi87IH07CiAJCTU3MTRFQ0JEMUNBOEMyMkEwMDA1
MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzE0RUNCQzFDQThDMjE4MDAw
NTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgKi87IH07CiAJCTU3MUY3
RkQwMUYyOTYxRkIwMDk0NjY0OCAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENv
bXBhdGliaWxpdHkuc3FsaXRlMy13YWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxRjdGQ0YxRjI5NjFFMTAwOTQ2NjQ4IC8qIEluZGV4ZWRE
QlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXdhbCAqLzsgfTsK
KwkJNTcyQjQwMzQyMTc2OUE4ODAwMEFENDNFIC8qIEN0YXBSZXF1ZXN0VGVzdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJCNDAzMzIxNzY5QTg4
MDAwQUQ0M0UgLyogQ3RhcFJlcXVlc3RUZXN0LmNwcCAqLzsgfTsKKwkJNTcyQjQwNDQyMTc4MUI0
MzAwMEFENDNFIC8qIEN0YXBSZXNwb25zZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwNDMyMTc4MUI0MjAwMEFENDNFIC8qIEN0YXBS
ZXNwb25zZVRlc3QuY3BwICovOyB9OwogCQk1NzMwM0JDOTIwMDgyNEQzMDAzNTU5NjUgLyogQ0JP
UlZhbHVlVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzMwM0JBQzIwMDZDNTYwMDAzNTU5NjUgLyogQ0JPUlZhbHVlVGVzdC5jcHAgKi87IH07
CiAJCTU3MzAzQkNBMjAwODJDMDEwMDM1NTk2NSAvKiBDQk9SV3JpdGVyVGVzdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzMwM0JBQjIwMDZDNTU0
MDAzNTU5NjUgLyogQ0JPUldyaXRlclRlc3QuY3BwICovOyB9OwogCQk1NzMwM0JDQjIwMDgzNzY1
MDAzNTU5NjUgLyogQ0JPUlJlYWRlclRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQzIyMDA3MUUyMjAwMzU1OTY1IC8qIENCT1JSZWFk
ZXJUZXN0LmNwcCAqLzsgfTsKQEAgLTE1NTEsNiArMTU1Myw5IEBACiAJCTU3MTRFQ0JBMUNBOEJG
RDEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0
bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MTRFQ0JDMUNBOEMyMTgwMDA1MUFD
OCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9IERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NzFGN0ZDRjFGMjk2MUUxMDA5NDY2NDggLyogSW5kZXhlZERCU3Ry
dWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtd2FsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9ICJJbmRl
eGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAzMzIxNzY5QTg4MDAwQUQ0M0UgLyog
Q3RhcFJlcXVlc3RUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEN0YXBSZXF1ZXN0VGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0
MDM1MjE3NkEwMjkwMDBBRDQzRSAvKiBGaWRvVGVzdERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlk
b1Rlc3REYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDQzMjE3ODFC
NDIwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEN0YXBSZXNwb25zZVRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzMwM0JBQjIwMDZDNTU0MDAzNTU5NjUgLyogQ0JPUldyaXRlclRlc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0JPUldyaXRlclRlc3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzMwM0JBQzIwMDZDNTYwMDAzNTU5NjUg
LyogQ0JPUlZhbHVlVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDQk9SVmFsdWVUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNC
QzIyMDA3MUUyMjAwMzU1OTY1IC8qIENCT1JSZWFkZXJUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENCT1JSZWFkZXJUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTI1MzIsMTEgKzI1MzcsMTQgQEAKIAkJCQkxQzlFQjg0MDFFMzgwREEx
MDA1QzY0NDIgLyogQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCAqLywKIAkJCQk3Q0IxODRDNDFB
QTNGMjEwMDA2NkVERkQgLyogQ29udGVudEV4dGVuc2lvbnMuY3BwICovLAogCQkJCUNENTQ1MUU5
MTlFNDFGOUQwMDE2OTM2RiAvKiBDU1NQYXJzZXIuY3BwICovLAorCQkJCTU3MkI0MDMzMjE3NjlB
ODgwMDBBRDQzRSAvKiBDdGFwUmVxdWVzdFRlc3QuY3BwICovLAorCQkJCTU3MkI0MDQzMjE3ODFC
NDIwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNwcCAqLywKIAkJCQkyNjBCQTU3ODFCMUQy
RTdCMDA0RkEwN0MgLyogREZBQ29tYmluZXIuY3BwICovLAogCQkJCTI2MEJBNTdBMUIxRDJFRTIw
MDRGQTA3QyAvKiBERkFIZWxwZXJzLmggKi8sCiAJCQkJMjZGNkUxRUYxQURDNzQ5QjAwREU2OTZC
IC8qIERGQU1pbmltaXplci5jcHAgKi8sCiAJCQkJMzE1MTE4MEYxREIxQURENTAwMTc2MzA0IC8q
IEV4dGVuZGVkQ29sb3IuY3BwICovLAogCQkJCTU3OTY1MUU2MjE2QkZENTMwMDZFQkZFNSAvKiBG
aWRvSGlkTWVzc2FnZVRlc3QuY3BwICovLAorCQkJCTU3MkI0MDM1MjE3NkEwMjkwMDBBRDQzRSAv
KiBGaWRvVGVzdERhdGEuaCAqLywKIAkJCQk3QTMyRDc0OTFGMDIxNTE1MDAxNjJDNDQgLyogRmls
ZU1vbml0b3IuY3BwICovLAogCQkJCTQxOTczQjVBMUFGMjI4NkEwMDZDN0IzNiAvKiBGaWxlU3lz
dGVtLmNwcCAqLywKIAkJCQk3QTkwOUE3MDFEODc3NDc1MDA3RTEwRjggLyogRmxvYXRQb2ludC5j
cHAgKi8sCkBAIC0zNzY3LDYgKzM3NzUsOCBAQAogCQkJCTdDQ0U3RUFDMUE0MTFBMzQwMDQ0N0M0
QyAvKiBDb3VudGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUVBRDQ3RjFFMjAxMTZDMDA0
MTZFRkUgLyogQ3Jvc3NQYXJ0aXRpb25GaWxlU2NoZW1lQWNjZXNzLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdFREIxQTQxMUE5MjAwNDQ3QzRDIC8qIENTU1BhcnNlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk1NzJCNDAzNDIxNzY5QTg4MDAwQUQ0M0UgLyogQ3RhcFJlcXVlc3RUZXN0LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTU3MkI0MDQ0MjE3ODFCNDMwMDBBRDQzRSAvKiBDdGFwUmVz
cG9uc2VUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBQzdCNTcwMjBEOUJBNUIwMDJDMDlB
MCAvKiBDdXN0b21CdW5kbGVPYmplY3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QUM3QjU2RDIw
RDk3NjlGMDAyQzA5QTAgLyogQ3VzdG9tQnVuZGxlUGFyYW1ldGVyLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdGMjkxQTQxMUIxMDAwNDQ3QzRDIC8qIEN1c3RvbVByb3RvY29sc0ludmFsaWRT
Y2hlbWUubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9DQk9SVmFsdWVUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9DQk9SVmFsdWVUZXN0LmNwcAppbmRleCBhMmQ2Yjg5ZjI3MjhmZjVlODg5N2Qy
NDRiMGNiNTgzOWY5MzVlY2UxLi5mZjUyMGRjN2E1OTQ5NGM1YTNkNmQ2MTZlYzVkZjVhMDRkYzdj
N2QxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUlZh
bHVlVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NCT1JW
YWx1ZVRlc3QuY3BwCkBAIC0xNDgsNiArMTQ4LDE3IEBAIFRFU1QoQ0JPUlZhbHVlVGVzdCwgQ29u
c3RydWN0U2ltcGxlVmFsdWUpCiAgICAgRVhQRUNUX1RSVUUoQ0JPUlZhbHVlOjpTaW1wbGVWYWx1
ZTo6VW5kZWZpbmVkID09IHVuZGVmaW5lZFZhbHVlLmdldFNpbXBsZVZhbHVlKCkpOwogfQogCitU
RVNUKENCT1JWYWx1ZVRlc3QsIENvbnN0cnVjdFNpbXBsZUJvb2xlYW5WYWx1ZSkKK3sKKyAgICBD
Qk9SVmFsdWUgdHJ1ZVZhbHVlKHRydWUpOworICAgIEFTU0VSVF9FUShDQk9SVmFsdWU6OlR5cGU6
OlNpbXBsZVZhbHVlLCB0cnVlVmFsdWUudHlwZSgpKTsKKyAgICBFWFBFQ1RfVFJVRSh0cnVlVmFs
dWUuZ2V0Qm9vbCgpKTsKKworICAgIENCT1JWYWx1ZSBmYWxzZVZhbHVlKGZhbHNlKTsKKyAgICBB
U1NFUlRfRVEoQ0JPUlZhbHVlOjpUeXBlOjpTaW1wbGVWYWx1ZSwgZmFsc2VWYWx1ZS50eXBlKCkp
OworICAgIEVYUEVDVF9GQUxTRShmYWxzZVZhbHVlLmdldEJvb2woKSk7Cit9CisKIC8vIFRlc3Qg
Y29weSBjb25zdHJ1Y3RvcnMKIFRFU1QoQ0JPUlZhbHVlVGVzdCwgQ29weVVuc2lnbmVkKQogewpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0
VGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RU
ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mNDM5ZGFkNGVjMWE5MDgwMDc0MTdjZDJhN2U2YzYxZGQxMzVm
YTY0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0N0YXBSZXF1ZXN0VGVzdC5jcHAKQEAgLTAsMCArMSwxMjggQEAKKy8vIENvcHlyaWdodCAyMDE3
IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8v
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8v
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
RU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkZpZG9UZXN0RGF0YS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlk
b0NvbnN0YW50cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHVibGljS2V5Q3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQmFzZTY0Lmg+CisKK25hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNl
IGZpZG87CisKKy8vIExldmVyYWdpbmcgZXhhbXBsZSAyIG9mIHNlY3Rpb24gNi4xIG9mIHRoZSBz
cGVjCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcw
OTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDky
Ny5odG1sCitURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdE1ha2VDcmVkZW50aWFs
UmVxdWVzdFBhcmFtKQoreworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6
OlJwRW50aXR5IHJwOworICAgIHJwLm5hbWUgPSAiQWNtZSI7CisgICAgcnAuaWQgPSAiYWNtZS5j
b20iOworCisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6VXNlckVudGl0
eSB1c2VyOworICAgIHVzZXIubmFtZSA9ICJqb2hucHNtaXRoQGV4YW1wbGUuY29tIjsKKyAgICB1
c2VyLmljb24gPSAiaHR0cHM6Ly9waWNzLmFjbWUuY29tLzAwL3AvYUJqampwcVBiLnBuZyI7Cisg
ICAgdXNlci5pZFZlY3Rvci5hcHBlbmQoVGVzdERhdGE6OmtVc2VySWQsIHNpemVvZihUZXN0RGF0
YTo6a1VzZXJJZCkpOworICAgIHVzZXIuZGlzcGxheU5hbWUgPSAiSm9obiBQLiBTbWl0aCI7CisK
KyAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVy
cz4gcGFyYW1zIHsgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5LCA3IH0sIHsg
UHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgMjU3IH0gfTsKKyAgICBQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVy
aWEgc2VsZWN0aW9uIHsgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVu
dGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtLCB0cnVlLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQ6OlByZWZlcnJlZCB9OworCisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwg
c2VsZWN0aW9uIH07CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGhhc2g7CisgICAgaGFzaC5hcHBlbmQo
VGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9mKFRlc3REYXRhOjprQ2xpZW50RGF0YUhh
c2gpKTsKKyAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1
ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpV
c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0Tm90Q29uZmlndXJlZCk7
CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhLnNpemUoKSwgc2l6ZW9mKFRlc3REYXRhOjpr
Q3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdCkpOworICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFs
aXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3QsIHNl
cmlhbGl6ZWREYXRhLnNpemUoKSksIDApOworfQorCitURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVz
dENvbnN0cnVjdEdldEFzc2VydGlvblJlcXVlc3QpCit7CisgICAgUHVibGljS2V5Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5ycElkID0gImFjbWUuY29tIjsK
KworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yIGRlc2NyaXB0b3IxOworICAgIGRl
c2NyaXB0b3IxLnR5cGUgPSBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5OworICAg
IGNvbnN0IHVpbnQ4X3QgaWQxW10gPSB7CisgICAgICAgIDB4ZjIsIDB4MjAsIDB4MDYsIDB4ZGUs
IDB4NGYsIDB4OTAsIDB4NWEsIDB4ZjYsIDB4OGEsIDB4NDMsIDB4OTQsCisgICAgICAgIDB4MmYs
IDB4MDIsIDB4NGYsIDB4MmEsIDB4NWUsIDB4Y2UsIDB4NjAsIDB4M2QsIDB4OWMsIDB4NmQsIDB4
NGIsCisgICAgICAgIDB4M2QsIDB4ZjgsIDB4YmUsIDB4MDgsIDB4ZWQsIDB4MDEsIDB4ZmMsIDB4
NDQsIDB4MjYsIDB4NDYsIDB4ZDAsCisgICAgICAgIDB4MzQsIDB4ODUsIDB4OGEsIDB4YzcsIDB4
NWIsIDB4ZWQsIDB4M2YsIDB4ZDUsIDB4ODAsIDB4YmYsIDB4OTgsCisgICAgICAgIDB4MDgsIDB4
ZDksIDB4NGYsIDB4Y2IsIDB4ZWUsIDB4ODIsIDB4YjksIDB4YjIsIDB4ZWYsIDB4NjYsIDB4Nzcs
CisgICAgICAgIDB4YWYsIDB4MGEsIDB4ZGMsIDB4YzMsIDB4NTgsIDB4NTIsIDB4ZWEsIDB4NmIs
IDB4OWUgfTsKKyAgICBkZXNjcmlwdG9yMS5pZFZlY3Rvci5hcHBlbmQoaWQxLCBzaXplb2YoaWQx
KSk7CisgICAgb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzLmFwcGVuZChkZXNjcmlwdG9yMSk7CisK
KyAgICBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvciBkZXNjcmlwdG9yMjsKKyAgICBkZXNj
cmlwdG9yMi50eXBlID0gUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleTsKKyAgICBj
b25zdCB1aW50OF90IGlkMltdID0geworICAgICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAw
eDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgICAgICAweDAzLCAweDAzLCAw
eDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgICAgICAw
eDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LAorICAgICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLAorICAgICAgICAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzIH07CisgICAgZGVzY3JpcHRvcjIuaWRWZWN0b3IuYXBw
ZW5kKGlkMiwgc2l6ZW9mKGlkMikpOworICAgIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscy5hcHBl
bmQoZGVzY3JpcHRvcjIpOworCisgICAgb3B0aW9ucy51c2VyVmVyaWZpY2F0aW9uID0gVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZDsKKworICAgIFZlY3Rvcjx1aW50OF90PiBo
YXNoOworICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gsIHNpemVvZihU
ZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVu
Y29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0
ZWRCdXROb3RDb25maWd1cmVkKTsKKyAgICBFWFBFQ1RfRVEoc2VyaWFsaXplZERhdGEuc2l6ZSgp
LCBzaXplb2YoVGVzdERhdGE6OmtUZXN0Q29tcGxleEN0YXBHZXRBc3NlcnRpb25SZXF1ZXN0KSk7
CisgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0YS5kYXRhKCksIFRlc3REYXRhOjpr
VGVzdENvbXBsZXhDdGFwR2V0QXNzZXJ0aW9uUmVxdWVzdCwgc2VyaWFsaXplZERhdGEuc2l6ZSgp
KSwgMCk7Cit9CisKK1RFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0Q3RhcEF1dGhl
bnRpY2F0b3JSZXF1ZXN0UGFyYW0pCit7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IGtT
ZXJpYWxpemVkR2V0SW5mb0NtZCA9IDB4MDQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90
IGtTZXJpYWxpemVkR2V0TmV4dEFzc2VydGlvbkNtZCA9IDB4MDg7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1aW50OF90IGtTZXJpYWxpemVkUmVzZXRDbWQgPSAweDA3OworCisgICAgYXV0byBzZXJp
YWxpemVkRGF0YTEgPSBlbmNvZGVFbXB0eUF1dGhlbnRpY2F0b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0
Q29tbWFuZDo6a0F1dGhlbnRpY2F0b3JHZXRJbmZvKTsKKyAgICBFWFBFQ1RfRVEoc2VyaWFsaXpl
ZERhdGExLnNpemUoKSwgMXUpOworICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERhdGEx
LmRhdGEoKSwgJmtTZXJpYWxpemVkR2V0SW5mb0NtZCwgMSksIDApOworCisgICAgYXV0byBzZXJp
YWxpemVkRGF0YTIgPSBlbmNvZGVFbXB0eUF1dGhlbnRpY2F0b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0
Q29tbWFuZDo6a0F1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uKTsKKyAgICBFWFBFQ1RfRVEo
c2VyaWFsaXplZERhdGEyLnNpemUoKSwgMXUpOworICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFs
aXplZERhdGEyLmRhdGEoKSwgJmtTZXJpYWxpemVkR2V0TmV4dEFzc2VydGlvbkNtZCwgMSksIDAp
OworCisgICAgYXV0byBzZXJpYWxpemVkRGF0YTMgPSBlbmNvZGVFbXB0eUF1dGhlbnRpY2F0b3JS
ZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFuZDo6a0F1dGhlbnRpY2F0b3JSZXNldCk7CisgICAgRVhQ
RUNUX0VRKHNlcmlhbGl6ZWREYXRhMy5zaXplKCksIDF1KTsKKyAgICBFWFBFQ1RfRVEobWVtY21w
KHNlcmlhbGl6ZWREYXRhMy5kYXRhKCksICZrU2VyaWFsaXplZFJlc2V0Q21kLCAxKSwgMCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVUSE4pCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3Rh
cFJlc3BvbnNlVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3Rh
cFJlc3BvbnNlVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I1ZDI1ZTVmZWVhZjc3M2MzN2M0MTY4YTc1
OTMzYWY2NWYxZDhiMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9DdGFwUmVzcG9uc2VUZXN0LmNwcApAQCAtMCwwICsxLDM1NCBAQAorLy8gQ29w
eXJpZ2h0IDIwMTcgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisv
LyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8K
Ky8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJp
YnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiRmlkb1Rlc3REYXRhLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9DQk9SUmVhZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DQk9S
VmFsdWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NCT1JXcml0ZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWRvQ29u
c3RhbnRzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QdWJsaWNLZXlDcmVkZW50aWFsLmg+CisKK25h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKK3VzaW5nIG5hbWVzcGFjZSBmaWRvOworCitjb25zdGV4
cHIgdWludDhfdCBrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoTm9WZXJzaW9u
W10gPSB7CisgICAgLy8gU3VjY2VzcyBzdGF0dXMgYnl0ZQorICAgIDB4MDAsCisgICAgLy8gTWFw
IG9mIDYgZWxlbWVudHMKKyAgICAweEE2LAorICAgIC8vIEtleSgwMSkgLSB2ZXJzaW9ucworICAg
IDB4MDEsCisgICAgLy8gQXJyYXkoMCkKKyAgICAweDgwLAorICAgIC8vIEtleSgwMikgLSBleHRl
bnNpb25zCisgICAgMHgwMiwKKyAgICAvLyBBcnJheSgyKQorICAgIDB4ODIsCisgICAgLy8gInV2
bSIKKyAgICAweDYzLCAweDc1LCAweDc2LCAweDZELAorICAgIC8vICJobWFjLXNlY3JldCIKKyAg
ICAweDZCLCAweDY4LCAweDZELCAweDYxLCAweDYzLCAweDJELCAweDczLCAweDY1LCAweDYzLCAw
eDcyLCAweDY1LCAweDc0LAorICAgIC8vIEtleSgwMykgLSBBQUdVSUQKKyAgICAweDAzLAorICAg
IC8vIEJ5dGVzKDE2KQorICAgIDB4NTAsIDB4RjgsIDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMsIDB4
MEEsIDB4NEQsIDB4MTUsIDB4ODAsIDB4MDYsIDB4MTcsCisgICAgMHgxMSwgMHgxRiwgMHg5RSwg
MHhEQywgMHg3RCwKKyAgICAvLyBLZXkoMDQpIC0gb3B0aW9ucworICAgIDB4MDQsCisgICAgLy8g
TWFwKDA1KQorICAgIDB4QTUsCisgICAgLy8gS2V5IC0gInJrIgorICAgIDB4NjIsIDB4NzIsIDB4
NkIsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInVwIgorICAgIDB4NjIs
IDB4NzUsIDB4NzAsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInV2Igor
ICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5
IC0gInBsYXQiCisgICAgMHg2NCwgMHg3MCwgMHg2QywgMHg2MSwgMHg3NCwKKyAgICAvLyB0cnVl
CisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAiY2xpZW50UGluIgorICAgIDB4NjksIDB4NjMsIDB4
NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4NTAsIDB4NjksIDB4NkUsCisgICAgLy8gZmFs
c2UKKyAgICAweEY0LAorICAgIC8vIEtleSgwNSkgLSBNYXggbWVzc2FnZSBzaXplCisgICAgMHgw
NSwKKyAgICAvLyAxMjAwCisgICAgMHgxOSwgMHgwNCwgMHhCMCwKKyAgICAvLyBLZXkoMDYpIC0g
UGluIHByb3RvY29scworICAgIDB4MDYsCisgICAgLy8gQXJyYXlbMV0KKyAgICAweDgxLCAweDAx
LAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3Bv
bnNlV2l0aER1cGxpY2F0ZVZlcnNpb25bXSA9IHsKKyAgICAvLyBTdWNjZXNzIHN0YXR1cyBieXRl
CisgICAgMHgwMCwKKyAgICAvLyBNYXAgb2YgNiBlbGVtZW50cworICAgIDB4QTYsCisgICAgLy8g
S2V5KDAxKSAtIHZlcnNpb25zCisgICAgMHgwMSwKKyAgICAvLyBBcnJheSgwMikKKyAgICAweDgy
LAorICAgIC8vICJVMkZfVjIiCisgICAgMHg2NiwgMHg1NSwgMHgzMiwgMHg0NiwgMHg1RiwgMHg1
NiwgMHgzMiwKKyAgICAvLyAiVTJGX1YyIgorICAgIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4
NUYsIDB4NTYsIDB4MzIsCisgICAgLy8gS2V5KDAyKSAtIGV4dGVuc2lvbnMKKyAgICAweDAyLAor
ICAgIC8vIEFycmF5KDIpCisgICAgMHg4MiwKKyAgICAvLyAidXZtIgorICAgIDB4NjMsIDB4NzUs
IDB4NzYsIDB4NkQsCisgICAgLy8gImhtYWMtc2VjcmV0IgorICAgIDB4NkIsIDB4NjgsIDB4NkQs
IDB4NjEsIDB4NjMsIDB4MkQsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NzIsIDB4NjUsIDB4NzQsCisg
ICAgLy8gS2V5KDAzKSAtIEFBR1VJRAorICAgIDB4MDMsCisgICAgLy8gQnl0ZXMoMTYpCisgICAg
MHg1MCwgMHhGOCwgMHhBMCwgMHgxMSwgMHhGMywgMHg4QywgMHgwQSwgMHg0RCwgMHgxNSwgMHg4
MCwgMHgwNiwgMHgxNywKKyAgICAweDExLCAweDFGLCAweDlFLCAweERDLCAweDdELAorICAgIC8v
IEtleSgwNCkgLSBvcHRpb25zCisgICAgMHgwNCwKKyAgICAvLyBNYXAoMDUpCisgICAgMHhBNSwK
KyAgICAvLyBLZXkgLSAicmsiCisgICAgMHg2MiwgMHg3MiwgMHg2QiwKKyAgICAvLyB0cnVlCisg
ICAgMHhGNSwKKyAgICAvLyBLZXkgLSAidXAiCisgICAgMHg2MiwgMHg3NSwgMHg3MCwKKyAgICAv
LyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAidXYiCisgICAgMHg2MiwgMHg3NSwgMHg3
NiwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAicGxhdCIKKyAgICAweDY0
LCAweDcwLCAweDZDLCAweDYxLCAweDc0LAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8v
IEtleSAtICJjbGllbnRQaW4iCisgICAgMHg2OSwgMHg2MywgMHg2QywgMHg2OSwgMHg2NSwgMHg2
RSwgMHg3NCwgMHg1MCwgMHg2OSwgMHg2RSwKKyAgICAvLyBmYWxzZQorICAgIDB4RjQsCisgICAg
Ly8gS2V5KDA1KSAtIE1heCBtZXNzYWdlIHNpemUKKyAgICAweDA1LAorICAgIC8vIDEyMDAKKyAg
ICAweDE5LCAweDA0LCAweEIwLAorICAgIC8vIEtleSgwNikgLSBQaW4gcHJvdG9jb2xzCisgICAg
MHgwNiwKKyAgICAvLyBBcnJheVsxXQorICAgIDB4ODEsIDB4MDEsCit9OworCitjb25zdGV4cHIg
dWludDhfdCBrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoSW5jb3JyZWN0QWFn
dWlkW10gPSB7CisgICAgLy8gU3VjY2VzcyBzdGF0dXMgYnl0ZQorICAgIDB4MDAsCisgICAgLy8g
TWFwIG9mIDYgZWxlbWVudHMKKyAgICAweEE2LAorICAgIC8vIEtleSgwMSkgLSB2ZXJzaW9ucwor
ICAgIDB4MDEsCisgICAgLy8gQXJyYXkoMDEpCisgICAgMHg4MSwKKyAgICAvLyAiVTJGX1YyIgor
ICAgIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYsIDB4NTYsIDB4MzIsCisgICAgLy8gS2V5
KDAyKSAtIGV4dGVuc2lvbnMKKyAgICAweDAyLAorICAgIC8vIEFycmF5KDIpCisgICAgMHg4MiwK
KyAgICAvLyAidXZtIgorICAgIDB4NjMsIDB4NzUsIDB4NzYsIDB4NkQsCisgICAgLy8gImhtYWMt
c2VjcmV0IgorICAgIDB4NkIsIDB4NjgsIDB4NkQsIDB4NjEsIDB4NjMsIDB4MkQsIDB4NzMsIDB4
NjUsIDB4NjMsIDB4NzIsIDB4NjUsIDB4NzQsCisgICAgLy8gS2V5KDAzKSAtIEFBR1VJRAorICAg
IDB4MDMsCisgICAgLy8gQnl0ZXMoMTcpIC0gRklETzIgZGV2aWNlIEFBR1VJRCBtdXN0IGJlIDE2
IGJ5dGVzIGxvbmcgaW4gb3JkZXIgdG8gYmUKKyAgICAvLyBjb3JyZWN0LgorICAgIDB4NTEsIDB4
RjgsIDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMsIDB4MEEsIDB4NEQsIDB4MTUsIDB4ODAsIDB4MDYs
IDB4MTcsCisgICAgMHgxMSwgMHgxRiwgMHg5RSwgMHhEQywgMHg3RCwgMHgwMCwKKyAgICAvLyBL
ZXkoMDQpIC0gb3B0aW9ucworICAgIDB4MDQsCisgICAgLy8gTWFwKDA1KQorICAgIDB4QTUsCisg
ICAgLy8gS2V5IC0gInJrIgorICAgIDB4NjIsIDB4NzIsIDB4NkIsCisgICAgLy8gdHJ1ZQorICAg
IDB4RjUsCisgICAgLy8gS2V5IC0gInVwIgorICAgIDB4NjIsIDB4NzUsIDB4NzAsCisgICAgLy8g
dHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInV2IgorICAgIDB4NjIsIDB4NzUsIDB4NzYs
CisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInBsYXQiCisgICAgMHg2NCwg
MHg3MCwgMHg2QywgMHg2MSwgMHg3NCwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBL
ZXkgLSAiY2xpZW50UGluIgorICAgIDB4NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4NkUs
IDB4NzQsIDB4NTAsIDB4NjksIDB4NkUsCisgICAgLy8gZmFsc2UKKyAgICAweEY0LAorICAgIC8v
IEtleSgwNSkgLSBNYXggbWVzc2FnZSBzaXplCisgICAgMHgwNSwKKyAgICAvLyAxMjAwCisgICAg
MHgxOSwgMHgwNCwgMHhCMCwKKyAgICAvLyBLZXkoMDYpIC0gUGluIHByb3RvY29scworICAgIDB4
MDYsCisgICAgLy8gQXJyYXlbMV0KKyAgICAweDgxLCAweDAxLAorfTsKKworY29uc3RleHByIHVp
bnQ4X3Qga1Rlc3REZXZpY2VBYWd1aWRbXSA9IHsKKyAgICAweEY4LCAweEEwLCAweDExLCAweEYz
LCAweDhDLCAweDBBLCAweDRELCAweDE1LCAweDgwLCAweDA2LCAweDE3LCAweDExLCAweDFGLCAw
eDlFLCAweERDLCAweDdECit9OworCisvLyBHZXQgYSBzdWJzZXQgb2YgdGhlIHJlc3BvbnNlIGZv
ciB0ZXN0aW5nIGVycm9yIGhhbmRsaW5nLgorVmVjdG9yPHVpbnQ4X3Q+IGdldFRlc3RDb3JydXB0
ZWRTaWduUmVzcG9uc2Uoc2l6ZV90IGxlbmd0aCkKK3sKKyAgICBBU1NFUlQobGVuZ3RoIDwgc2l6
ZW9mKFRlc3REYXRhOjprVGVzdFUyZlNpZ25SZXNwb25zZSkpOworICAgIFZlY3Rvcjx1aW50OF90
PiB0ZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNlOworICAgIHRlc3RDb3JydXB0ZWRTaWduUmVzcG9u
c2UucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShsZW5ndGgpOworICAgIHRlc3RDb3JydXB0ZWRTaWdu
UmVzcG9uc2UuYXBwZW5kKFRlc3REYXRhOjprVGVzdFUyZlNpZ25SZXNwb25zZSwgbGVuZ3RoKTsK
KyAgICByZXR1cm4gdGVzdENvcnJ1cHRlZFNpZ25SZXNwb25zZTsKK30KKworLy8gUmV0dXJuIGEg
a2V5IGhhbmRsZSB1c2VkIGZvciBHZXRBc3NlcnRpb24gcmVxdWVzdC4KK1ZlY3Rvcjx1aW50OF90
PiBnZXRUZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXMoKQoreworICAgIFZlY3Rvcjx1aW50OF90PiB0
ZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXM7CisgICAgdGVzdENyZWRlbnRpYWxSYXdJZEJ5dGVzLnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkoc2l6ZW9mKFRlc3REYXRhOjprVTJmU2lnbktleUhhbmRsZSkp
OworICAgIHRlc3RDcmVkZW50aWFsUmF3SWRCeXRlcy5hcHBlbmQoVGVzdERhdGE6OmtVMmZTaWdu
S2V5SGFuZGxlLCBzaXplb2YoVGVzdERhdGE6OmtVMmZTaWduS2V5SGFuZGxlKSk7CisgICAgcmV0
dXJuIHRlc3RDcmVkZW50aWFsUmF3SWRCeXRlczsKK30KKworVmVjdG9yPHVpbnQ4X3Q+IGNvbnZl
cnRUb1ZlY3Rvcihjb25zdCB1aW50OF90IGJ5dGVBcnJheVtdLCBjb25zdCBzaXplX3QgbGVuZ3Ro
KQoreworICAgIFZlY3Rvcjx1aW50OF90PiByZXN1bHQ7CisgICAgcmVzdWx0LnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkobGVuZ3RoKTsKKyAgICByZXN1bHQuYXBwZW5kKGJ5dGVBcnJheSwgbGVuZ3Ro
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvLyBMZXZlcmFnaW5nIGV4YW1wbGUgNCBvZiBz
ZWN0aW9uIDYuMSBvZiB0aGUgc3BlYworLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNz
L2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3Rv
Y29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNjb21tYW5kcworVEVTVChDVEFQUmVzcG9uc2VUZXN0
LCBUZXN0UmVhZE1ha2VDcmVkZW50aWFsUmVzcG9uc2UpCit7CisgICAgYXV0byBtYWtlQ3JlZGVu
dGlhbFJlc3BvbnNlID0gcmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKGNvbnZlcnRUb1Zl
Y3RvcihUZXN0RGF0YTo6a1Rlc3RNYWtlQ3JlZGVudGlhbFJlc3BvbnNlLCBzaXplb2YoVGVzdERh
dGE6OmtUZXN0TWFrZUNyZWRlbnRpYWxSZXNwb25zZSkpKTsKKyAgICBBU1NFUlRfVFJVRShtYWtl
Q3JlZGVudGlhbFJlc3BvbnNlKTsKKyAgICBhdXRvIGNib3JBdHRlc3RhdGlvbk9iamVjdCA9IGNi
b3I6OkNCT1JSZWFkZXI6OnJlYWQoY29udmVydFRvVmVjdG9yKHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDhfdCo+KG1ha2VDcmVkZW50aWFsUmVzcG9uc2UtPmF0dGVzdGF0aW9uT2JqZWN0LT5kYXRhKCkp
LCBtYWtlQ3JlZGVudGlhbFJlc3BvbnNlLT5hdHRlc3RhdGlvbk9iamVjdC0+Ynl0ZUxlbmd0aCgp
KSk7CisgICAgQVNTRVJUX1RSVUUoY2JvckF0dGVzdGF0aW9uT2JqZWN0KTsKKyAgICBBU1NFUlRf
VFJVRShjYm9yQXR0ZXN0YXRpb25PYmplY3QtPmlzTWFwKCkpOworCisgICAgY29uc3QgYXV0byYg
YXR0ZXN0YXRpb25PYmplY3RNYXAgPSBjYm9yQXR0ZXN0YXRpb25PYmplY3QtPmdldE1hcCgpOwor
ICAgIGF1dG8gaXQgPSBhdHRlc3RhdGlvbk9iamVjdE1hcC5maW5kKGNib3I6OkNCT1JWYWx1ZShr
Rm9ybWF0S2V5KSk7CisgICAgQVNTRVJUX1RSVUUoaXQgIT0gYXR0ZXN0YXRpb25PYmplY3RNYXAu
ZW5kKCkpOworICAgIEFTU0VSVF9UUlVFKGl0LT5zZWNvbmQuaXNTdHJpbmcoKSk7CisgICAgRVhQ
RUNUX1NUUkVRKGl0LT5zZWNvbmQuZ2V0U3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgInBhY2tlZCIp
OworCisgICAgaXQgPSBhdHRlc3RhdGlvbk9iamVjdE1hcC5maW5kKGNib3I6OkNCT1JWYWx1ZShr
QXV0aERhdGFLZXkpKTsKKyAgICBBU1NFUlRfVFJVRShpdCAhPSBhdHRlc3RhdGlvbk9iamVjdE1h
cC5lbmQoKSk7CisgICAgQVNTRVJUX1RSVUUoaXQtPnNlY29uZC5pc0J5dGVTdHJpbmcoKSk7Cisg
ICAgRVhQRUNUX0VRKGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpLCBjb252ZXJ0VG9WZWN0b3Io
VGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsQXV0aERhdGEsIHNpemVvZihUZXN0RGF0YTo6
a0N0YXAyTWFrZUNyZWRlbnRpYWxBdXRoRGF0YSkpKTsKKworICAgIGl0ID0gYXR0ZXN0YXRpb25P
YmplY3RNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoa0F0dGVzdGF0aW9uU3RhdGVtZW50S2V5KSk7
CisgICAgQVNTRVJUX1RSVUUoaXQgIT0gYXR0ZXN0YXRpb25PYmplY3RNYXAuZW5kKCkpOworICAg
IEFTU0VSVF9UUlVFKGl0LT5zZWNvbmQuaXNNYXAoKSk7CisKKyAgICBjb25zdCBhdXRvJiBhdHRl
c3RhdGlvblN0YXRlbWVudE1hcCA9IGl0LT5zZWNvbmQuZ2V0TWFwKCk7CisgICAgYXV0byBhdHRT
dG10SXQgPSBhdHRlc3RhdGlvblN0YXRlbWVudE1hcC5maW5kKGNib3I6OkNCT1JWYWx1ZSgiYWxn
IikpOworCisgICAgQVNTRVJUX1RSVUUoYXR0U3RtdEl0ICE9IGF0dGVzdGF0aW9uU3RhdGVtZW50
TWFwLmVuZCgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRTdG10SXQtPnNlY29uZC5pc0ludGVnZXIo
KSk7CisgICAgRVhQRUNUX0VRKGF0dFN0bXRJdC0+c2Vjb25kLmdldEludGVnZXIoKSwgLTcpOwor
CisgICAgYXR0U3RtdEl0ID0gYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAuZmluZChjYm9yOjpDQk9S
VmFsdWUoInNpZyIpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRTdG10SXQgIT0gYXR0ZXN0YXRpb25T
dGF0ZW1lbnRNYXAuZW5kKCkpOworICAgIEFTU0VSVF9UUlVFKGF0dFN0bXRJdC0+c2Vjb25kLmlz
Qnl0ZVN0cmluZygpKTsKKyAgICBFWFBFQ1RfRVEoYXR0U3RtdEl0LT5zZWNvbmQuZ2V0Qnl0ZVN0
cmluZygpLCBjb252ZXJ0VG9WZWN0b3IoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsU2ln
bmF0dXJlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsU2lnbmF0dXJlKSkp
OworCisgICAgYXR0U3RtdEl0ID0gYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAuZmluZChjYm9yOjpD
Qk9SVmFsdWUoIng1YyIpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRTdG10SXQgIT0gYXR0ZXN0YXRp
b25TdGF0ZW1lbnRNYXAuZW5kKCkpOworICAgIGNvbnN0IGF1dG8mIGNlcnRpZmljYXRlID0gYXR0
U3RtdEl0LT5zZWNvbmQ7CisgICAgQVNTRVJUX1RSVUUoY2VydGlmaWNhdGUuaXNBcnJheSgpKTsK
KyAgICBBU1NFUlRfRVEoY2VydGlmaWNhdGUuZ2V0QXJyYXkoKS5zaXplKCksIDF1KTsKKyAgICBB
U1NFUlRfVFJVRShjZXJ0aWZpY2F0ZS5nZXRBcnJheSgpWzBdLmlzQnl0ZVN0cmluZygpKTsKKyAg
ICBFWFBFQ1RfRVEoY2VydGlmaWNhdGUuZ2V0QXJyYXkoKVswXS5nZXRCeXRlU3RyaW5nKCksIGNv
bnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxDZXJ0aWZpY2F0ZSwg
c2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVudGlhbENlcnRpZmljYXRlKSkpOworICAg
IEVYUEVDVF9FUShtYWtlQ3JlZGVudGlhbFJlc3BvbnNlLT5yYXdJZC0+Ynl0ZUxlbmd0aCgpLCBz
aXplb2YoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsQ3JlZGVudGlhbElkKSk7CisgICAg
RVhQRUNUX0VRKG1lbWNtcChtYWtlQ3JlZGVudGlhbFJlc3BvbnNlLT5yYXdJZC0+ZGF0YSgpLCBU
ZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxDcmVkZW50aWFsSWQsIHNpemVvZihUZXN0RGF0
YTo6a0N0YXAyTWFrZUNyZWRlbnRpYWxDcmVkZW50aWFsSWQpKSwgMCk7Cit9CisKKy8vIExldmVy
YWdpbmcgZXhhbXBsZSA1IG9mIHNlY3Rpb24gNi4xIG9mIHRoZSBDVEFQIHNwZWMuCisvLyBodHRw
czovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xp
ZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sCitURVNU
KENUQVBSZXNwb25zZVRlc3QsIFRlc3RSZWFkR2V0QXNzZXJ0aW9uUmVzcG9uc2UpCit7CisgICAg
YXV0byBnZXRBc3NlcnRpb25SZXNwb25zZSA9IHJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2Uo
Y29udmVydFRvVmVjdG9yKFRlc3REYXRhOjprRGV2aWNlR2V0QXNzZXJ0aW9uUmVzcG9uc2UsIHNp
emVvZihUZXN0RGF0YTo6a0RldmljZUdldEFzc2VydGlvblJlc3BvbnNlKSkpOworICAgIEFTU0VS
VF9UUlVFKGdldEFzc2VydGlvblJlc3BvbnNlKTsKKworICAgIEVYUEVDVF9FUShnZXRBc3NlcnRp
b25SZXNwb25zZS0+YXV0aGVudGljYXRvckRhdGEtPmJ5dGVMZW5ndGgoKSwgc2l6ZW9mKFRlc3RE
YXRhOjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSkpOworICAgIEVYUEVDVF9FUShtZW1jbXAo
Z2V0QXNzZXJ0aW9uUmVzcG9uc2UtPmF1dGhlbnRpY2F0b3JEYXRhLT5kYXRhKCksIFRlc3REYXRh
OjprQ3RhcDJHZXRBc3NlcnRpb25BdXRoRGF0YSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRB
c3NlcnRpb25BdXRoRGF0YSkpLCAwKTsKKyAgICBFWFBFQ1RfRVEoZ2V0QXNzZXJ0aW9uUmVzcG9u
c2UtPnNpZ25hdHVyZS0+Ynl0ZUxlbmd0aCgpLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMkdldEFz
c2VydGlvblNpZ25hdHVyZSkpOworICAgIEVYUEVDVF9FUShtZW1jbXAoZ2V0QXNzZXJ0aW9uUmVz
cG9uc2UtPnNpZ25hdHVyZS0+ZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uU2ln
bmF0dXJlLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMkdldEFzc2VydGlvblNpZ25hdHVyZSkpLCAw
KTsKK30KKworVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBUZXN0UmVhZEdldEluZm9SZXNwb25zZSkK
K3sKKyAgICBhdXRvIGdldEluZm9SZXNwb25zZSA9IHJlYWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNv
bnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a1Rlc3RHZXRJbmZvUmVzcG9uc2VQbGF0Zm9ybURldmlj
ZSwgc2l6ZW9mKFRlc3REYXRhOjprVGVzdEdldEluZm9SZXNwb25zZVBsYXRmb3JtRGV2aWNlKSkp
OworICAgIEFTU0VSVF9UUlVFKGdldEluZm9SZXNwb25zZSk7CisgICAgQVNTRVJUX1RSVUUoZ2V0
SW5mb1Jlc3BvbnNlLT5tYXhNc2dTaXplKCkpOworICAgIEVYUEVDVF9FUSgqZ2V0SW5mb1Jlc3Bv
bnNlLT5tYXhNc2dTaXplKCksIDEyMDB1KTsKKyAgICBFWFBFQ1RfTkUoZ2V0SW5mb1Jlc3BvbnNl
LT52ZXJzaW9ucygpLmZpbmQoUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCksIGdldEluZm9SZXNwb25z
ZS0+dmVyc2lvbnMoKS5lbmQoKSk7CisgICAgRVhQRUNUX05FKGdldEluZm9SZXNwb25zZS0+dmVy
c2lvbnMoKS5maW5kKFByb3RvY29sVmVyc2lvbjo6a1UyZiksIGdldEluZm9SZXNwb25zZS0+dmVy
c2lvbnMoKS5lbmQoKSk7CisgICAgRVhQRUNUX1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5vcHRpb25z
KCkuaXNQbGF0Zm9ybURldmljZSgpKTsKKyAgICBFWFBFQ1RfVFJVRShnZXRJbmZvUmVzcG9uc2Ut
Pm9wdGlvbnMoKS5zdXBwb3J0c1Jlc2lkZW50S2V5KCkpOworICAgIEVYUEVDVF9UUlVFKGdldElu
Zm9SZXNwb25zZS0+b3B0aW9ucygpLnVzZXJQcmVzZW5jZVJlcXVpcmVkKCkpOworICAgIEVYUEVD
VF9FUShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWls
YWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQsIGdldEluZm9SZXNwb25zZS0+b3B0aW9u
cygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSk7CisgICAgRVhQRUNUX0VRKEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0
ZWRCdXRQaW5Ob3RTZXQsIGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLmNsaWVudFBpbkF2YWls
YWJpbGl0eSgpKTsKK30KKworVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBUZXN0UmVhZEdldEluZm9S
ZXNwb25zZVdpdGhJbmNvcnJlY3RGb3JtYXQpCit7CisgICAgRVhQRUNUX0ZBTFNFKHJlYWRDVEFQ
R2V0SW5mb1Jlc3BvbnNlKGNvbnZlcnRUb1ZlY3RvcihrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZv
UmVzcG9uc2VXaXRoTm9WZXJzaW9uLCBzaXplb2Yoa1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jl
c3BvbnNlV2l0aE5vVmVyc2lvbikpKSk7CisgICAgRVhQRUNUX0ZBTFNFKHJlYWRDVEFQR2V0SW5m
b1Jlc3BvbnNlKGNvbnZlcnRUb1ZlY3RvcihrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9u
c2VXaXRoRHVwbGljYXRlVmVyc2lvbiwgc2l6ZW9mKGtUZXN0QXV0aGVudGljYXRvckdldEluZm9S
ZXNwb25zZVdpdGhEdXBsaWNhdGVWZXJzaW9uKSkpKTsKKyAgICBFWFBFQ1RfRkFMU0UocmVhZENU
QVBHZXRJbmZvUmVzcG9uc2UoY29udmVydFRvVmVjdG9yKGtUZXN0QXV0aGVudGljYXRvckdldElu
Zm9SZXNwb25zZVdpdGhJbmNvcnJlY3RBYWd1aWQsIHNpemVvZihrVGVzdEF1dGhlbnRpY2F0b3JH
ZXRJbmZvUmVzcG9uc2VXaXRoSW5jb3JyZWN0QWFndWlkKSkpKTsKK30KKworVEVTVChDVEFQUmVz
cG9uc2VUZXN0LCBUZXN0U2VyaWFsaXplR2V0SW5mb1Jlc3BvbnNlKQoreworICAgIEF1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UgcmVzcG9uc2UoeyBQcm90b2NvbFZlcnNpb246OmtDdGFwLCBQ
cm90b2NvbFZlcnNpb246OmtVMmYgfSwgY29udmVydFRvVmVjdG9yKGtUZXN0RGV2aWNlQWFndWlk
LCBzaXplb2Yoa1Rlc3REZXZpY2VBYWd1aWQpKSk7CisgICAgcmVzcG9uc2Uuc2V0RXh0ZW5zaW9u
cyh7ICJ1dm0iLCAiaG1hYy1zZWNyZXQiIH0pOworICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zIG9wdGlvbnM7CisgICAgb3B0aW9ucy5zZXRTdXBwb3J0c1Jlc2lkZW50S2V5KHRydWUp
OworICAgIG9wdGlvbnMuc2V0SXNQbGF0Zm9ybURldmljZSh0cnVlKTsKKyAgICBvcHRpb25zLnNl
dENsaWVudFBpbkF2YWlsYWJpbGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xp
ZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0UGluTm90U2V0KTsKKyAgICBvcHRpb25z
LnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1
cmVkKTsKKyAgICByZXNwb25zZS5zZXRPcHRpb25zKFdURk1vdmUob3B0aW9ucykpOworICAgIHJl
c3BvbnNlLnNldE1heE1zZ1NpemUoMTIwMCk7CisgICAgcmVzcG9uc2Uuc2V0UGluUHJvdG9jb2xz
KHsgMSB9KTsKKworICAgIGF1dG8gcmVzcG9uc2VBc0NCT1IgPSBlbmNvZGVBc0NCT1IocmVzcG9u
c2UpOworICAgIEVYUEVDVF9FUShyZXNwb25zZUFzQ0JPUi5zaXplKCksIHNpemVvZihUZXN0RGF0
YTo6a1Rlc3RHZXRJbmZvUmVzcG9uc2VQbGF0Zm9ybURldmljZSkgLSAxKTsKKyAgICBFWFBFQ1Rf
RVEobWVtY21wKHJlc3BvbnNlQXNDQk9SLmRhdGEoKSwgVGVzdERhdGE6OmtUZXN0R2V0SW5mb1Jl
c3BvbnNlUGxhdGZvcm1EZXZpY2UgKyAxLCByZXNwb25zZUFzQ0JPUi5zaXplKCkpLCAwKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9B
VVRITikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRv
VGVzdERhdGEuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERh
dGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lZmVhNjViZjJhMDJkNzNjNjhkMjIwYzYyYzBhMDY5MGY2ZjEzODdj
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zp
ZG9UZXN0RGF0YS5oCkBAIC0wLDAgKzEsNjQ1IEBACisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgQ2hy
b21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRI
TikKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCituYW1lc3BhY2UgVGVzdERhdGEgewor
CisvLyBVMkYgcmVxdWVzdCBwYXJhbWV0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBTYW1wbGUgVTJGIHJlZ2lzdGVyIHJlcXVl
c3QgcGFyYW1ldGVycyB1c2VkIGluIGV4YW1wbGUgNiBvZiB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0
cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNs
aWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCN1c2lu
Zy10aGUtY3RhcDItYXV0aGVudGljYXRvcm1ha2VjcmVkZW50aWFsLWNvbW1hbmQtd2l0aC1jdGFw
MS11MmYtYXV0aGVudGljYXRvcnMKK2NvbnN0ZXhwciB1aW50OF90IGtDbGllbnREYXRhSGFzaFtd
ID0geworICAgIDB4NjgsIDB4NzEsIDB4MzQsIDB4OTYsIDB4ODIsIDB4MjIsIDB4ZWMsIDB4MTcs
IDB4MjAsIDB4MmUsIDB4NDIsCisgICAgMHg1MCwgMHg1ZiwgMHg4ZSwgMHhkMiwgMHhiMSwgMHg2
YSwgMHhlMiwgMHgyZiwgMHgxNiwgMHhiYiwgMHgwNSwKKyAgICAweGI4LCAweDhjLCAweDI1LCAw
eGRiLCAweDllLCAweDYwLCAweDI2LCAweDQ1LCAweGYxLCAweDQxfTsKKworY29uc3RleHByIHVp
bnQ4X3Qga1VzZXJJZFtdID0gezB4MTAsIDB4OTgsIDB4MjMsIDB4NzIsIDB4MzUsIDB4NDAsIDB4
OTgsIDB4NzJ9OworCisvLyBTYW1wbGUgVTJGIHNpZ24gcmVxdWVzdCBwYXJhbWV0ZXJzIHVzZWQg
aW4gZXhhbXBsZSA3IG9mIHRoZSBDVEFQIHNwZWMuCisvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5v
cmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0
b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1sI3VzaW5nLXRoZS1jdGFwMi1hdXRoZW50
aWNhdG9ybWFrZWNyZWRlbnRpYWwtY29tbWFuZC13aXRoLWN0YXAxLXUyZi1hdXRoZW50aWNhdG9y
cworY29uc3RleHByIHVpbnQ4X3Qga1UyZlNpZ25LZXlIYW5kbGVbXSA9IHsKKyAgICAweDNFLCAw
eEJELCAweDg5LCAweEJGLCAweDc3LCAweEVDLCAweDUwLCAweDk3LCAweDU1LCAweEVFLCAweDlD
LAorICAgIDB4MjYsIDB4MzUsIDB4RUYsIDB4QUEsIDB4QUMsIDB4N0IsIDB4MkIsIDB4OUMsIDB4
NUMsIDB4RUYsIDB4MTcsCisgICAgMHgzNiwgMHhDMywgMHg3MSwgMHg3RCwgMHhBNCwgMHg4NSwg
MHgzNCwgMHhDOCwgMHhDNiwgMHhCNiwgMHg1NCwKKyAgICAweEQ3LCAweEZGLCAweDk0LCAweDVG
LCAweDUwLCAweEI1LCAweENDLCAweDRFLCAweDc4LCAweDA1LCAweDVCLAorICAgIDB4REQsIDB4
MzksIDB4NkIsIDB4NjQsIDB4RjcsIDB4OEQsIDB4QTIsIDB4QzUsIDB4RjksIDB4NjIsIDB4MDAs
CisgICAgMHhDQywgMHhENCwgMHgxNSwgMHhDRCwgMHgwOCwgMHhGRSwgMHg0MiwgMHgwMCwgMHgz
OCwKK307CisKKy8vIFUyRiByZXNwb25zZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vIEVDIHB1YmxpYyBrZXkgZW5j
b2RlZCBpbiBDT1NFX0tleSBmb3JtYXQgZXh0cmFjdGVkIGZyb20gYWJvdmUKKy8vIHxrVGVzdFUy
ZlJlZ2lzdGVyUmVzcG9uc2V8LgorY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RFQ1B1YmxpY0tleUNP
U0VbXSA9IHsKKyAgICAvLyBNYXAoNSkKKyAgICAweEE1LAorICAgIC8vIGt0eTogRUMga2V5IHR5
cGUKKyAgICAweDAxLCAweDAyLAorICAgIC8vIGFsZzogRUMyNTYgc2lnbmF0dXJlIGFsZ29yaXRo
bQorICAgIDB4MDMsIDB4MjYsCisgICAgLy8gY3J2OiBQLTI1NiBjdXJ2ZQorICAgIDB4MjAsIDB4
MDEsCisgICAgLy8geC1jb29yZGluYXRlCisgICAgMHgyMSwKKyAgICAvLyBCeXRlcygzMikKKyAg
ICAweDU4LCAweDIwLAorICAgIC8vIEJ5dGUgYXJyYXkgY29udGVudAorICAgIDB4RTgsIDB4NzYs
IDB4MjUsIDB4ODksIDB4NkUsIDB4RTQsIDB4RTQsIDB4NkQsIDB4QzAsIDB4MzIsIDB4NzYsIDB4
NkUsCisgICAgMHg4MCwgMHg4NywgMHg5NiwgMHgyRiwgMHgzNiwgMHhERiwgMHg5RCwgMHhGRSwg
MHg4QiwgMHg1NiwgMHg3RiwgMHgzNywKKyAgICAweDYzLCAweDAxLCAweDVCLCAweDE5LCAweDkw
LCAweEE2LCAweDBFLCAweDE0LAorICAgIC8vIHktY29vcmRpbmF0ZQorICAgIDB4MjIsCisgICAg
Ly8gQnl0ZXMoMzIpCisgICAgMHg1OCwgMHgyMCwKKyAgICAvLyBCeXRlIGFycmF5IGNvbnRlbnQK
KyAgICAweDI3LCAweERFLCAweDYxLCAweDJELCAweDY2LCAweDQxLCAweDhCLCAweERBLCAweDE5
LCAweDUwLCAweDU4LCAweDFFLAorICAgIDB4QkMsIDB4NUMsIDB4OEMsIDB4MUQsIDB4QUQsIDB4
NzEsIDB4MEMsIDB4QjEsIDB4NEMsIDB4MjIsIDB4RjgsIDB4QzksCisgICAgMHg3MCwgMHg0NSwg
MHhGNCwgMHg2MSwgMHgyRiwgMHhCMiwgMHgwQywgMHg5MSwKK307CisKKy8vIFRoZSBhdHRlc3Rh
dGlvbiBzdGF0ZW1lbnQgZXh0cmFjdGVkIGZyb20gYWJvdmUgfGtUZXN0VTJmUmVnaXN0ZXJSZXNw
b25zZXwsIGEKKy8vIENCT1ItZW5jb2RlZCBieXRlIGFycmF5LgorLy8gRGlhZ25vc3RpYyBub3Rh
dGlvbjoKKy8vIHsic2lnIjoKKy8vIGgnMzA0NTAyMjAzMjQ3NzlDNjhGMzM4MDI4OEExMTk3QjYw
OTVGN0E2RUI5QjFCMUMxMjdGNjZBRTEyQTk5RkU4NTMyRUMyM0I5CisvLyAgIDAyMjEwMEUzOTUx
NkFDNEQ2MUVFNjQwNDRENTBCNDE1QTZBNEQ0RDg0QkE2RDg5NUNCNUFCN0ExQUE3RDA4MURFMzQx
RkEnLAorLy8gIng1YyI6IFtoJzMwODIwMjRBMzA4MjAxMzJBMDAzMDIwMTAyMDIwNDA0NkM4ODIy
MzAwRDA2MDkyQTg2NDg4NkY3MEQwMTAxMEIwIFwKKy8vIDUwMDMwMkUzMTJDMzAyQTA2MDM1NTA0
MDMxMzIzNTk3NTYyNjk2MzZGMjA1NTMyNDYyMDUyNkY2Rjc0MjA0MzQxMjA1MzY1NzI2OSBcCisv
LyA2MTZDMjAzNDM1MzczMjMwMzAzNjMzMzEzMDIwMTcwRDMxMzQzMDM4MzAzMTMwMzAzMDMwMzAz
MDVBMTgwRjMyMzAzNTMwMzAzOTMgXAorLy8gMDM0MzAzMDMwMzAzMDMwNUEzMDJDMzEyQTMwMjgw
NjAzNTUwNDAzMEMyMTU5NzU2MjY5NjM2RjIwNTUzMjQ2MjA0NTQ1MjA1MzY1IFwKKy8vIDcyNjk2
MTZDMjAzMjM0MzkzMTM4MzIzMzMyMzQzNzM3MzAzMDU5MzAxMzA2MDcyQTg2NDhDRTNEMDIwMTA2
MDgyQTg2NDhDRTNEMCBcCisvLyAzMDEwNzAzNDIwMDA0M0NDQUI5MkNDQjk3Mjg3RUU4RTYzOTQz
N0UyMUZDRDZCNkYxNjVCMkQ1QTNGM0RCMTMxRDMxQzE2Qjc0MkIgXAorLy8gQjQ3NkQ4RDFFOTkw
ODBFQjU0NkM5QkJERjU1NkU2MjEwRkQ0Mjc4NTg5OUU3OENDNTg5RUJFMzEwRjZDREI5RkY0QTMz
QjMwMzkzIFwKKy8vIDAyMjA2MDkyQjA2MDEwNDAxODJDNDBBMDIwNDE1MzEyRTMzMkUzNjJFMzEy
RTM0MkUzMTJFMzQzMTM0MzgzMjJFMzEyRTMyMzAxMyBcCisvLyAwNjBCMkIwNjAxMDQwMTgyRTUx
QzAyMDEwMTA0MDQwMzAyMDQzMDMwMEQwNjA5MkE4NjQ4ODZGNzBEMDEwMTBCMDUwMDAzODIwMTAg
XAorLy8gMTAwOUY5QjA1MjI0OEJDNENGNDJDQzU5OTFGQ0FBQkFDOUI2NTFCQkU1QkRDREM4RUYw
QUQyQzFDMUZGQjM2RDE4NzE1RDQyRTc4IFwKKy8vIEIyNDkyMjRGOTJDN0U2RTdBMDVDNDlGMEU3
RTRDODgxQkYyRTk0RjQ1RTRBMjE4MzNENzQ1Njg1MUQwRjZDMTQ1QTI5NTQwQzg3NCBcCisvLyBG
MzA5MkM5MzRCNDNEMjIyQjg5NjJDMEY0MTBDRUYxREI3NTg5MkFGMTE2QjQ0QTk2RjVEMzVBREVB
MzgyMkZDNzE0NkY2MDA0MzggXAorLy8gNUJDQjY5QjY1Qzk5RTdFQjY5MTk3ODY3MDNDMEQ4Q0Q0
MUU4Rjc1Q0NBNDRBQThBQjcyNUFEOEU3OTlGRjNBODY5NkE2RjFCMjY1IFwKKy8vIDZFNjMxQjFF
NDAxODNDMDhGREE1M0ZBNEE4Rjg1QTA1NjkzOTQ0QUUxNzlBMTMzOUQwMDJEMTVDQUJEODEwMDkw
RUM3MjJFRjVERSBcCisvLyBGOTk2NUEzNzFENDE1RDYyNEI2OEEyNzA3Q0FEOTdCQ0REMTc4NUFG
OTdFMjU4RjMzREY1NkEwMzFBQTAzNTZEOEU4RDVFQkNBREMgXAorLy8gNzRFMDcxNjM2QzZCMTEw
QUNFNUNDOUI5MERGRUFDQUU2NDBGRjFCQjBGMUZFNURCNEVGRjdBOTVGMDYwNzMzRjUnXX0KK2Nv
bnN0ZXhwciB1aW50OF90IGtVMmZBdHRlc3RhdGlvblN0YXRlbWVudENCT1JbXSA9IHsKKyAgICAv
LyBNYXAoMikKKyAgICAweEEyLAorICAgIC8vIFRleHQoMykKKyAgICAweDYzLAorICAgIC8vICJz
aWciCisgICAgMHg3MywgMHg2OSwgMHg2NywKKyAgICAvLyBCeXRlcyg3MSkKKyAgICAweDU4LCAw
eDQ3LAorICAgIC8vIEJ5dGUgYXJyYXkgY29udGVudAorICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4
MjAsIDB4MzIsIDB4NDcsIDB4NzksIDB4QzYsIDB4OEYsIDB4MzMsIDB4ODAsIDB4MjgsCisgICAg
MHg4QSwgMHgxMSwgMHg5NywgMHhCNiwgMHgwOSwgMHg1RiwgMHg3QSwgMHg2RSwgMHhCOSwgMHhC
MSwgMHhCMSwgMHhDMSwKKyAgICAweDI3LCAweEY2LCAweDZBLCAweEUxLCAweDJBLCAweDk5LCAw
eEZFLCAweDg1LCAweDMyLCAweEVDLCAweDIzLCAweEI5LAorICAgIDB4MDIsIDB4MjEsIDB4MDAs
IDB4RTMsIDB4OTUsIDB4MTYsIDB4QUMsIDB4NEQsIDB4NjEsIDB4RUUsIDB4NjQsIDB4MDQsCisg
ICAgMHg0RCwgMHg1MCwgMHhCNCwgMHgxNSwgMHhBNiwgMHhBNCwgMHhENCwgMHhEOCwgMHg0Qiwg
MHhBNiwgMHhEOCwgMHg5NSwKKyAgICAweENCLCAweDVBLCAweEI3LCAweEExLCAweEFBLCAweDdE
LCAweDA4LCAweDFELCAweEUzLCAweDQxLCAweEZBLAorICAgIC8vIFRleHQoMykKKyAgICAweDYz
LAorICAgIC8vICJ4NWMiCisgICAgMHg3OCwgMHgzNSwgMHg2MywKKyAgICAvLyBBcnJheSgxKQor
ICAgIDB4ODEsCisgICAgLy8gQnl0ZXMoNTkwKQorICAgIDB4NTksIDB4MDIsIDB4NEUsCisgICAg
Ly8gQnl0ZSBhcnJheSBjb250ZW50CisgICAgMHgzMCwgMHg4MiwgMHgwMiwgMHg0QSwgMHgzMCwg
MHg4MiwgMHgwMSwgMHgzMiwgMHhBMCwgMHgwMywgMHgwMiwgMHgwMSwKKyAgICAweDAyLCAweDAy
LCAweDA0LCAweDA0LCAweDZDLCAweDg4LCAweDIyLCAweDMwLCAweDBELCAweDA2LCAweDA5LCAw
eDJBLAorICAgIDB4ODYsIDB4NDgsIDB4ODYsIDB4RjcsIDB4MEQsIDB4MDEsIDB4MDEsIDB4MEIs
IDB4MDUsIDB4MDAsIDB4MzAsIDB4MkUsCisgICAgMHgzMSwgMHgyQywgMHgzMCwgMHgyQSwgMHgw
NiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwMywgMHgxMywgMHgyMywgMHg1OSwKKyAgICAweDc1LCAw
eDYyLCAweDY5LCAweDYzLCAweDZGLCAweDIwLCAweDU1LCAweDMyLCAweDQ2LCAweDIwLCAweDUy
LCAweDZGLAorICAgIDB4NkYsIDB4NzQsIDB4MjAsIDB4NDMsIDB4NDEsIDB4MjAsIDB4NTMsIDB4
NjUsIDB4NzIsIDB4NjksIDB4NjEsIDB4NkMsCisgICAgMHgyMCwgMHgzNCwgMHgzNSwgMHgzNywg
MHgzMiwgMHgzMCwgMHgzMCwgMHgzNiwgMHgzMywgMHgzMSwgMHgzMCwgMHgyMCwKKyAgICAweDE3
LCAweDBELCAweDMxLCAweDM0LCAweDMwLCAweDM4LCAweDMwLCAweDMxLCAweDMwLCAweDMwLCAw
eDMwLCAweDMwLAorICAgIDB4MzAsIDB4MzAsIDB4NUEsIDB4MTgsIDB4MEYsIDB4MzIsIDB4MzAs
IDB4MzUsIDB4MzAsIDB4MzAsIDB4MzksIDB4MzAsCisgICAgMHgzNCwgMHgzMCwgMHgzMCwgMHgz
MCwgMHgzMCwgMHgzMCwgMHgzMCwgMHg1QSwgMHgzMCwgMHgyQywgMHgzMSwgMHgyQSwKKyAgICAw
eDMwLCAweDI4LCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDAzLCAweDBDLCAweDIxLCAweDU5
LCAweDc1LCAweDYyLAorICAgIDB4NjksIDB4NjMsIDB4NkYsIDB4MjAsIDB4NTUsIDB4MzIsIDB4
NDYsIDB4MjAsIDB4NDUsIDB4NDUsIDB4MjAsIDB4NTMsCisgICAgMHg2NSwgMHg3MiwgMHg2OSwg
MHg2MSwgMHg2QywgMHgyMCwgMHgzMiwgMHgzNCwgMHgzOSwgMHgzMSwgMHgzOCwgMHgzMiwKKyAg
ICAweDMzLCAweDMyLCAweDM0LCAweDM3LCAweDM3LCAweDMwLCAweDMwLCAweDU5LCAweDMwLCAw
eDEzLCAweDA2LCAweDA3LAorICAgIDB4MkEsIDB4ODYsIDB4NDgsIDB4Q0UsIDB4M0QsIDB4MDIs
IDB4MDEsIDB4MDYsIDB4MDgsIDB4MkEsIDB4ODYsIDB4NDgsCisgICAgMHhDRSwgMHgzRCwgMHgw
MywgMHgwMSwgMHgwNywgMHgwMywgMHg0MiwgMHgwMCwgMHgwNCwgMHgzQywgMHhDQSwgMHhCOSwK
KyAgICAweDJDLCAweENCLCAweDk3LCAweDI4LCAweDdFLCAweEU4LCAweEU2LCAweDM5LCAweDQz
LCAweDdFLCAweDIxLCAweEZDLAorICAgIDB4RDYsIDB4QjYsIDB4RjEsIDB4NjUsIDB4QjIsIDB4
RDUsIDB4QTMsIDB4RjMsIDB4REIsIDB4MTMsIDB4MUQsIDB4MzEsCisgICAgMHhDMSwgMHg2Qiwg
MHg3NCwgMHgyQiwgMHhCNCwgMHg3NiwgMHhEOCwgMHhEMSwgMHhFOSwgMHg5MCwgMHg4MCwgMHhF
QiwKKyAgICAweDU0LCAweDZDLCAweDlCLCAweEJELCAweEY1LCAweDU2LCAweEU2LCAweDIxLCAw
eDBGLCAweEQ0LCAweDI3LCAweDg1LAorICAgIDB4ODksIDB4OUUsIDB4NzgsIDB4Q0MsIDB4NTgs
IDB4OUUsIDB4QkUsIDB4MzEsIDB4MEYsIDB4NkMsIDB4REIsIDB4OUYsCisgICAgMHhGNCwgMHhB
MywgMHgzQiwgMHgzMCwgMHgzOSwgMHgzMCwgMHgyMiwgMHgwNiwgMHgwOSwgMHgyQiwgMHgwNiwg
MHgwMSwKKyAgICAweDA0LCAweDAxLCAweDgyLCAweEM0LCAweDBBLCAweDAyLCAweDA0LCAweDE1
LCAweDMxLCAweDJFLCAweDMzLCAweDJFLAorICAgIDB4MzYsIDB4MkUsIDB4MzEsIDB4MkUsIDB4
MzQsIDB4MkUsIDB4MzEsIDB4MkUsIDB4MzQsIDB4MzEsIDB4MzQsIDB4MzgsCisgICAgMHgzMiwg
MHgyRSwgMHgzMSwgMHgyRSwgMHgzMiwgMHgzMCwgMHgxMywgMHgwNiwgMHgwQiwgMHgyQiwgMHgw
NiwgMHgwMSwKKyAgICAweDA0LCAweDAxLCAweDgyLCAweEU1LCAweDFDLCAweDAyLCAweDAxLCAw
eDAxLCAweDA0LCAweDA0LCAweDAzLCAweDAyLAorICAgIDB4MDQsIDB4MzAsIDB4MzAsIDB4MEQs
IDB4MDYsIDB4MDksIDB4MkEsIDB4ODYsIDB4NDgsIDB4ODYsIDB4RjcsIDB4MEQsCisgICAgMHgw
MSwgMHgwMSwgMHgwQiwgMHgwNSwgMHgwMCwgMHgwMywgMHg4MiwgMHgwMSwgMHgwMSwgMHgwMCwg
MHg5RiwgMHg5QiwKKyAgICAweDA1LCAweDIyLCAweDQ4LCAweEJDLCAweDRDLCAweEY0LCAweDJD
LCAweEM1LCAweDk5LCAweDFGLCAweENBLCAweEFCLAorICAgIDB4QUMsIDB4OUIsIDB4NjUsIDB4
MUIsIDB4QkUsIDB4NUIsIDB4REMsIDB4REMsIDB4OEUsIDB4RjAsIDB4QUQsIDB4MkMsCisgICAg
MHgxQywgMHgxRiwgMHhGQiwgMHgzNiwgMHhEMSwgMHg4NywgMHgxNSwgMHhENCwgMHgyRSwgMHg3
OCwgMHhCMiwgMHg0OSwKKyAgICAweDIyLCAweDRGLCAweDkyLCAweEM3LCAweEU2LCAweEU3LCAw
eEEwLCAweDVDLCAweDQ5LCAweEYwLCAweEU3LCAweEU0LAorICAgIDB4QzgsIDB4ODEsIDB4QkYs
IDB4MkUsIDB4OTQsIDB4RjQsIDB4NUUsIDB4NEEsIDB4MjEsIDB4ODMsIDB4M0QsIDB4NzQsCisg
ICAgMHg1NiwgMHg4NSwgMHgxRCwgMHgwRiwgMHg2QywgMHgxNCwgMHg1QSwgMHgyOSwgMHg1NCwg
MHgwQywgMHg4NywgMHg0RiwKKyAgICAweDMwLCAweDkyLCAweEM5LCAweDM0LCAweEI0LCAweDNE
LCAweDIyLCAweDJCLCAweDg5LCAweDYyLCAweEMwLCAweEY0LAorICAgIDB4MTAsIDB4Q0UsIDB4
RjEsIDB4REIsIDB4NzUsIDB4ODksIDB4MkEsIDB4RjEsIDB4MTYsIDB4QjQsIDB4NEEsIDB4OTYs
CisgICAgMHhGNSwgMHhEMywgMHg1QSwgMHhERSwgMHhBMywgMHg4MiwgMHgyRiwgMHhDNywgMHgx
NCwgMHg2RiwgMHg2MCwgMHgwNCwKKyAgICAweDM4LCAweDVCLCAweENCLCAweDY5LCAweEI2LCAw
eDVDLCAweDk5LCAweEU3LCAweEVCLCAweDY5LCAweDE5LCAweDc4LAorICAgIDB4NjcsIDB4MDMs
IDB4QzAsIDB4RDgsIDB4Q0QsIDB4NDEsIDB4RTgsIDB4RjcsIDB4NUMsIDB4Q0EsIDB4NDQsIDB4
QUEsCisgICAgMHg4QSwgMHhCNywgMHgyNSwgMHhBRCwgMHg4RSwgMHg3OSwgMHg5RiwgMHhGMywg
MHhBOCwgMHg2OSwgMHg2QSwgMHg2RiwKKyAgICAweDFCLCAweDI2LCAweDU2LCAweEU2LCAweDMx
LCAweEIxLCAweEU0LCAweDAxLCAweDgzLCAweEMwLCAweDhGLCAweERBLAorICAgIDB4NTMsIDB4
RkEsIDB4NEEsIDB4OEYsIDB4ODUsIDB4QTAsIDB4NTYsIDB4OTMsIDB4OTQsIDB4NEEsIDB4RTEs
IDB4NzksCisgICAgMHhBMSwgMHgzMywgMHg5RCwgMHgwMCwgMHgyRCwgMHgxNSwgMHhDQSwgMHhC
RCwgMHg4MSwgMHgwMCwgMHg5MCwgMHhFQywKKyAgICAweDcyLCAweDJFLCAweEY1LCAweERFLCAw
eEY5LCAweDk2LCAweDVBLCAweDM3LCAweDFELCAweDQxLCAweDVELCAweDYyLAorICAgIDB4NEIs
IDB4NjgsIDB4QTIsIDB4NzAsIDB4N0MsIDB4QUQsIDB4OTcsIDB4QkMsIDB4REQsIDB4MTcsIDB4
ODUsIDB4QUYsCisgICAgMHg5NywgMHhFMiwgMHg1OCwgMHhGMywgMHgzRCwgMHhGNSwgMHg2QSwg
MHgwMywgMHgxQSwgMHhBMCwgMHgzNSwgMHg2RCwKKyAgICAweDhFLCAweDhELCAweDVFLCAweEJD
LCAweEFELCAweEM3LCAweDRFLCAweDA3LCAweDE2LCAweDM2LCAweEM2LCAweEIxLAorICAgIDB4
MTAsIDB4QUMsIDB4RTUsIDB4Q0MsIDB4OUIsIDB4OTAsIDB4REYsIDB4RUEsIDB4Q0EsIDB4RTYs
IDB4NDAsIDB4RkYsCisgICAgMHgxQiwgMHhCMCwgMHhGMSwgMHhGRSwgMHg1RCwgMHhCNCwgMHhF
RiwgMHhGNywgMHhBOSwgMHg1RiwgMHgwNiwgMHgwNywKKyAgICAweDMzLCAweEY1LAorfTsKKwor
Ly8gVTJGIHJlc3BvbnNlIGJsb2IgcHJvZHVjZWQgYnkgYSBVMkYgc2lnbiByZXF1ZXN0IHVzZWQg
aW4gZXhhbXBsZSA3IG9mIHRoZQorLy8gQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFu
Y2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50
aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCN1c2luZy10aGUtY3RhcDItYXV0
aGVudGljYXRvcmdldGFzc2VydGlvbi1jb21tYW5kLXdpdGgtY3RhcDEtdTJmLWF1dGhlbnRpY2F0
b3JzCitjb25zdGV4cHIgdWludDhfdCBrVGVzdFUyZlNpZ25SZXNwb25zZVtdID0geworICAgIC8v
IFVzZXIgcHJlc2VuY2UKKyAgICAweDAxLAorICAgIC8vIFNpZ24gY291bnQoNCBieXRlcykKKyAg
ICAweDAwLCAweDAwLCAweDAwLCAweDNCLAorICAgIC8vIFNpZ25hdHVyZQorICAgIDB4MzAsIDB4
NDQsIDB4MDIsIDB4MjAsIDB4N0IsIDB4REUsIDB4MEEsIDB4NTIsIDB4QUMsIDB4MUYsIDB4NEMs
IDB4OEIsCisgICAgMHgyNywgMHhFMCwgMHgwMywgMHhBMywgMHg3MCwgMHhDRCwgMHg2NiwgMHhB
NCwgMHhDNywgMHgxMSwgMHg4RCwgMHhEMiwKKyAgICAweDJELCAweDU0LCAweDQ3LCAweDgzLCAw
eDVGLCAweDQ1LCAweEI5LCAweDlDLCAweDY4LCAweDQyLCAweDNGLCAweEY3LAorICAgIDB4MDIs
IDB4MjAsIDB4M0MsIDB4NTEsIDB4N0IsIDB4NDcsIDB4ODcsIDB4N0YsIDB4ODUsIDB4NzgsIDB4
MkQsIDB4RTEsCisgICAgMHgwMCwgMHg4NiwgMHhBNywgMHg4MywgMHhEMSwgMHhFNywgMHhERiwg
MHg0RSwgMHgzNiwgMHgzOSwgMHhFNywgMHg3MSwKKyAgICAweEY1LCAweEY2LCAweEFGLCAweEEz
LCAweDVBLCAweEFELCAweDUzLCAweDczLCAweDg1LCAweDhFLAorfTsKKworLy8gQ1RBUCByZXF1
ZXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0
W10gPSB7CisgICAgLy8gYXV0aGVudGljYXRvck1ha2VDcmVkZW50aWFsIGNvbW1hbmQKKyAgICAw
eDAxLAorICAgIC8vIG1hcCg1KQorICAgIDB4YTUsCisgICAgLy8ga2V5KDEpIC0gY2xpZW50RGF0
YUhhc2gKKyAgICAweDAxLAorICAgIC8vIGJ5dGVzKDMyKQorICAgIDB4NTgsIDB4MjAsIDB4Njgs
IDB4NzEsIDB4MzQsIDB4OTYsIDB4ODIsIDB4MjIsIDB4ZWMsIDB4MTcsIDB4MjAsIDB4MmUsCisg
ICAgMHg0MiwgMHg1MCwgMHg1ZiwgMHg4ZSwgMHhkMiwgMHhiMSwgMHg2YSwgMHhlMiwgMHgyZiwg
MHgxNiwgMHhiYiwgMHgwNSwKKyAgICAweGI4LCAweDhjLCAweDI1LCAweGRiLCAweDllLCAweDYw
LCAweDI2LCAweDQ1LCAweGYxLCAweDQxLAorICAgIC8vIGtleSgyKSAtIHJwCisgICAgMHgwMiwK
KyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8vIGtleSAtICJpZCIKKyAgICAweDYyLCAw
eDY5LCAweDY0LAorICAgIC8vIHZhbHVlIC0gImFjbWUuY29tIgorICAgIDB4NjgsIDB4NjEsIDB4
NjMsIDB4NmQsIDB4NjUsIDB4MmUsIDB4NjMsIDB4NmYsIDB4NmQsCisgICAgLy8ga2V5IC0gICJu
YW1lIgorICAgIDB4NjQsIDB4NmUsIDB4NjEsIDB4NmQsIDB4NjUsCisgICAgLy8gdmFsdWUgLSAi
QWNtZSIKKyAgICAweDY0LCAweDQxLCAweDYzLCAweDZkLCAweDY1LAorICAgIC8vIGtleSgzKSAt
IHVzZXIKKyAgICAweDAzLAorICAgIC8vIG1hcCg0KQorICAgIDB4YTQsCisgICAgLy8ga2V5IC0g
ImlkIgorICAgIDB4NjIsIDB4NjksIDB4NjQsCisgICAgLy8gdmFsdWUgLSB1c2VyIGlkCisgICAg
MHg0OCwgMHgxMCwgMHg5OCwgMHgyMywgMHg3MiwgMHgzNSwgMHg0MCwgMHg5OCwgMHg3MiwKKyAg
ICAvLyBrZXkgLSAiaWNvbiIKKyAgICAweDY0LCAweDY5LCAweDYzLCAweDZmLCAweDZlLAorICAg
IC8vIHZhbHVlIC0gImh0dHBzOi8vcGljcy5hY21lLmNvbS8wMC9wL2FCampqcHFQYi5wbmciCisg
ICAgMHg3OCwgMHgyOCwgMHg2OCwgMHg3NCwgMHg3NCwgMHg3MCwgMHg3MywgMHgzYSwgMHgyZiwg
MHgyZiwgMHg3MCwgMHg2OSwKKyAgICAweDYzLCAweDczLCAweDJlLCAweDYxLCAweDYzLCAweDZk
LCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAweDZkLCAweDJmLAorICAgIDB4MzAsIDB4MzAsIDB4
MmYsIDB4NzAsIDB4MmYsIDB4NjEsIDB4NDIsIDB4NmEsIDB4NmEsIDB4NmEsIDB4NzAsIDB4NzEs
CisgICAgMHg1MCwgMHg2MiwgMHgyZSwgMHg3MCwgMHg2ZSwgMHg2NywKKyAgICAvLyBrZXkgLSAi
bmFtZSIKKyAgICAweDY0LCAweDZlLCAweDYxLCAweDZkLCAweDY1LAorICAgIC8vIHZhbHVlIC0g
ImpvaG5wc21pdGhAZXhhbXBsZS5jb20iCisgICAgMHg3NiwgMHg2YSwgMHg2ZiwgMHg2OCwgMHg2
ZSwgMHg3MCwgMHg3MywgMHg2ZCwgMHg2OSwgMHg3NCwgMHg2OCwgMHg0MCwKKyAgICAweDY1LCAw
eDc4LCAweDYxLCAweDZkLCAweDcwLCAweDZjLCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAweDZk
LAorICAgIC8vIGtleSAtICJkaXNwbGF5TmFtZSIKKyAgICAweDZiLCAweDY0LCAweDY5LCAweDcz
LCAweDcwLCAweDZjLCAweDYxLCAweDc5LCAweDRlLCAweDYxLCAweDZkLCAweDY1LAorICAgIC8v
IHZhbHVlIC0gIkpvaG4gUC4gU21pdGgiCisgICAgMHg2ZCwgMHg0YSwgMHg2ZiwgMHg2OCwgMHg2
ZSwgMHgyMCwgMHg1MCwgMHgyZSwgMHgyMCwgMHg1MywgMHg2ZCwgMHg2OSwKKyAgICAweDc0LCAw
eDY4LAorICAgIC8vIGtleSg0KSAtIHB1YktleUNyZWRQYXJhbXMKKyAgICAweDA0LAorICAgIC8v
IGFycmF5KDIpCisgICAgMHg4MiwKKyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8vIGtl
eSAtICJhbGciCisgICAgMHg2MywgMHg2MSwgMHg2YywgMHg2NywKKyAgICAvLyB2YWx1ZSAtIDcK
KyAgICAweDA3LAorICAgIC8vIGtleSAtICJ0eXBlIgorICAgIDB4NjQsIDB4NzQsIDB4NzksIDB4
NzAsIDB4NjUsCisgICAgLy8gdmFsdWUgLSAicHVibGljLWtleSIKKyAgICAweDZhLCAweDcwLCAw
eDc1LCAweDYyLCAweDZDLCAweDY5LCAweDYzLCAweDJELCAweDZCLCAweDY1LCAweDc5LAorICAg
IC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8ga2V5IC0gImFsZyIKKyAgICAweDYzLCAweDYx
LCAweDZjLCAweDY3LAorICAgIC8vIHZhbHVlIC0gMjU3CisgICAgMHgxOSwgMHgwMSwgMHgwMSwK
KyAgICAvLyBrZXkgLSAidHlwZSIKKyAgICAweDY0LCAweDc0LCAweDc5LCAweDcwLCAweDY1LCAv
LyAidHlwZSIKKyAgICAvLyB2YWx1ZSAtICJwdWJsaWMta2V5IgorICAgIDB4NmEsIDB4NzAsIDB4
NzUsIDB4NjIsIDB4NkMsIDB4NjksIDB4NjMsIDB4MkQsIDB4NkIsIDB4NjUsIDB4NzksCisgICAg
Ly8ga2V5KDcpIC0gb3B0aW9ucworICAgIDB4MDcsCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwK
KyAgICAvLyBrZXkgLSAicmsiCisgICAgMHg2MiwgMHg3MiwgMHg2YiwKKyAgICAvLyBUcnVlKDIx
KQorICAgIDB4ZjUsCisgICAgLy8ga2V5IC0gInV2IgorICAgIDB4NjIsIDB4NzUsIDB4NzYsCisg
ICAgLy8gVHJ1ZSgyMSkKKyAgICAweGY1fTsKKworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RDb21w
bGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3RbXSA9IHsKKyAgICAvLyBhdXRoZW50aWNhdG9yR2V0
QXNzZXJ0aW9uIGNvbW1hbmQKKyAgICAweDAyLAorICAgIC8vIG1hcCg0KQorICAgIDB4YTQsCisg
ICAgLy8ga2V5KDAxKSAtcnBJZAorICAgIDB4MDEsCisgICAgLy8gdmFsdWUgLSAiYWNtZS5jb20i
CisgICAgMHg2OCwgMHg2MSwgMHg2MywgMHg2ZCwgMHg2NSwgMHgyZSwgMHg2MywgMHg2ZiwgMHg2
ZCwKKyAgICAvLyBrZXkoMDIpIC0gY2xpZW50IGRhdGEgaGFzaAorICAgIDB4MDIsCisgICAgLy8g
dmFsdWUgLSBieXRlcygzMikKKyAgICAweDU4LCAweDIwLCAweDY4LCAweDcxLCAweDM0LCAweDk2
LCAweDgyLCAweDIyLCAweGVjLCAweDE3LCAweDIwLCAweDJlLAorICAgIDB4NDIsIDB4NTAsIDB4
NWYsIDB4OGUsIDB4ZDIsIDB4YjEsIDB4NmEsIDB4ZTIsIDB4MmYsIDB4MTYsIDB4YmIsIDB4MDUs
CisgICAgMHhiOCwgMHg4YywgMHgyNSwgMHhkYiwgMHg5ZSwgMHg2MCwgMHgyNiwgMHg0NSwgMHhm
MSwgMHg0MSwKKyAgICAvLyBrZXkoMDMpIC0gYWxsb3cgbGlzdAorICAgIDB4MDMsCisgICAgLy8g
dmFsdWUgLSBhcnJheSgyKQorICAgIDB4ODIsCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAg
ICAvLyBrZXkgLSAiaWQiCisgICAgMHg2MiwgMHg2OSwgMHg2NCwKKyAgICAvLyB2YWx1ZSAtIGNy
ZWRlbnRpYWwgSUQKKyAgICAweDU4LCAweDQwLCAweGYyLCAweDIwLCAweDA2LCAweGRlLCAweDRm
LCAweDkwLCAweDVhLCAweGY2LCAweDhhLCAweDQzLAorICAgIDB4OTQsIDB4MmYsIDB4MDIsIDB4
NGYsIDB4MmEsIDB4NWUsIDB4Y2UsIDB4NjAsIDB4M2QsIDB4OWMsIDB4NmQsIDB4NGIsCisgICAg
MHgzZCwgMHhmOCwgMHhiZSwgMHgwOCwgMHhlZCwgMHgwMSwgMHhmYywgMHg0NCwgMHgyNiwgMHg0
NiwgMHhkMCwgMHgzNCwKKyAgICAweDg1LCAweDhhLCAweGM3LCAweDViLCAweGVkLCAweDNmLCAw
eGQ1LCAweDgwLCAweGJmLCAweDk4LCAweDA4LCAweGQ5LAorICAgIDB4NGYsIDB4Y2IsIDB4ZWUs
IDB4ODIsIDB4YjksIDB4YjIsIDB4ZWYsIDB4NjYsIDB4NzcsIDB4YWYsIDB4MGEsIDB4ZGMsCisg
ICAgMHhjMywgMHg1OCwgMHg1MiwgMHhlYSwgMHg2YiwgMHg5ZSwKKyAgICAvLyBrZXkgLSAidHlw
ZSIKKyAgICAweDY0LCAweDc0LCAweDc5LCAweDcwLCAweDY1LAorICAgIC8vIHZhbHVlIC0gInB1
YmxpYy1rZXkiCisgICAgMHg2YSwgMHg3MCwgMHg3NSwgMHg2MiwgMHg2QywgMHg2OSwgMHg2Mywg
MHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8v
IGtleSAtICJpZCIKKyAgICAweDYyLCAweDY5LCAweDY0LAorICAgIC8vIHZhbHVlIC0gY3JlZGVu
dGlhbCBJRAorICAgIDB4NTgsIDB4MzIsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4
MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAw
eDAzLCAweDAzLAorICAgIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMs
IDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAgMHgwMywgMHgwMywgMHgwMywgMHgw
MywKKyAgICAvLyBrZXkgLSAidHlwZSIKKyAgICAweDY0LCAweDc0LCAweDc5LCAweDcwLCAweDY1
LAorICAgIC8vIHZhbHVlIC0gInB1YmxpYy1rZXkiCisgICAgMHg2YSwgMHg3MCwgMHg3NSwgMHg2
MiwgMHg2QywgMHg2OSwgMHg2MywgMHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAgICAvLyB1bnNp
Z25lZCg1KSAtIG9wdGlvbnMKKyAgICAweDA1LAorICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisg
ICAgLy8ga2V5IC0idXAiCisgICAgMHg2MiwgMHg3NSwgMHg3MCwKKyAgICAvLyB2YWx1ZSAtIEZh
bHNlKDIwKQorICAgIDB4ZjQsCisgICAgLy8ga2V5IC0gInV2IgorICAgIDB4NjIsIDB4NzUsIDB4
NzYsCisgICAgLy8gdmFsdWUgLSBUcnVlKDIxKQorICAgIDB4ZjUsCit9OworCisvLyBDVEFQIHJl
c3BvbnNlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCisvLyBBIHNhbXBsZSB3ZWxsIGZvcm1lZCByZXNwb25zZSB0byBDVEFQ
IEF1dGhlbnRpY2F0b3JHZXRJbmZvIHJlcXVlc3QuIENyb3NzCisvLyBwbGF0Zm9ybSBkZXZpY2Ug
dGhhdCBzdXBwb3J0cyByZXNpZGVudCBrZXksIGFuZCB1c2VyIHZlcmlmaWNhdGlvbi4KK2NvbnN0
ZXhwciB1aW50OF90IGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVtdID0geworICAg
IDB4MDAsIDB4QTYsIDB4MDEsIDB4ODIsIDB4NjgsIDB4NDYsIDB4NDksIDB4NDQsIDB4NEYsIDB4
NUYsIDB4MzIsIDB4NUYsCisgICAgMHgzMCwgMHg2NiwgMHg1NSwgMHgzMiwgMHg0NiwgMHg1Riwg
MHg1NiwgMHgzMiwgMHgwMiwgMHg4MiwgMHg2MywgMHg3NSwKKyAgICAweDc2LCAweDZELCAweDZC
LCAweDY4LCAweDZELCAweDYxLCAweDYzLCAweDJELCAweDczLCAweDY1LCAweDYzLCAweDcyLAor
ICAgIDB4NjUsIDB4NzQsIDB4MDMsIDB4NTAsIDB4RjgsIDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMs
IDB4MEEsIDB4NEQsIDB4MTUsCisgICAgMHg4MCwgMHgwNiwgMHgxNywgMHgxMSwgMHgxRiwgMHg5
RSwgMHhEQywgMHg3RCwgMHgwNCwgMHhBNSwgMHg2MiwgMHg3MiwKKyAgICAweDZCLCAweEY1LCAw
eDYyLCAweDc1LCAweDcwLCAweEY1LCAweDYyLCAweDc1LCAweDc2LCAweEY1LCAweDY0LCAweDcw
LAorICAgIDB4NkMsIDB4NjEsIDB4NzQsIDB4RjQsIDB4NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4
NjUsIDB4NkUsIDB4NzQsIDB4NTAsCisgICAgMHg2OSwgMHg2RSwgMHhGNCwgMHgwNSwgMHgxOSwg
MHgwNCwgMHhCMCwgMHgwNiwgMHg4MSwgMHgwMSwKK307CisKKy8vIEF1dGhlbnRpY2F0b3JHZXRJ
bmZvIHJlcXVlc3Qgd2l0aCBhbGwgY29uZmlndXJhdGlvbnMgZXF1YWwgdG8gdGhhdCBvZgorLy8g
a1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlIGV4Y2VwdCBwbGF0Zm9ybSBkZXZpY2Ug
b3B0aW9uIGlzIHNldCB0bworLy8gdHJ1ZS4KK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0R2V0SW5m
b1Jlc3BvbnNlUGxhdGZvcm1EZXZpY2VbXSA9IHsKKyAgICAweDAwLCAweEE2LCAweDAxLCAweDgy
LCAweDY4LCAweDQ2LCAweDQ5LCAweDQ0LCAweDRGLCAweDVGLCAweDMyLCAweDVGLAorICAgIDB4
MzAsIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYsIDB4NTYsIDB4MzIsIDB4MDIsIDB4ODIs
IDB4NjMsIDB4NzUsCisgICAgMHg3NiwgMHg2RCwgMHg2QiwgMHg2OCwgMHg2RCwgMHg2MSwgMHg2
MywgMHgyRCwgMHg3MywgMHg2NSwgMHg2MywgMHg3MiwKKyAgICAweDY1LCAweDc0LCAweDAzLCAw
eDUwLCAweEY4LCAweEEwLCAweDExLCAweEYzLCAweDhDLCAweDBBLCAweDRELCAweDE1LAorICAg
IDB4ODAsIDB4MDYsIDB4MTcsIDB4MTEsIDB4MUYsIDB4OUUsIDB4REMsIDB4N0QsIDB4MDQsIDB4
QTUsIDB4NjIsIDB4NzIsCisgICAgMHg2QiwgMHhGNSwgMHg2MiwgMHg3NSwgMHg3MCwgMHhGNSwg
MHg2MiwgMHg3NSwgMHg3NiwgMHhGNSwgMHg2NCwgMHg3MCwKKyAgICAvLyBwbGF0Zm9ybSBkZXZp
Y2UgOiB0cnVlCisgICAgMHg2QywgMHg2MSwgMHg3NCwgMHhGNSwKKyAgICAvLyBFbmQgb2YgcGxh
dGZvcm1fZGV2aWNlIHNldHRpbmcuCisgICAgMHg2OSwgMHg2MywgMHg2QywgMHg2OSwgMHg2NSwg
MHg2RSwgMHg3NCwgMHg1MCwgMHg2OSwgMHg2RSwgMHhGNCwgMHgwNSwKKyAgICAweDE5LCAweDA0
LCAweEIwLCAweDA2LCAweDgxLCAweDAxLAorfTsKKworLy8gQSBTYW1wbGUgd2VsbCBmb3JtZWQg
cmVzcG9uc2UgdG8gQ1RBUCBNYWtlQ3JlZGVudGlhbCByZXF1ZXN0LgorY29uc3RleHByIHVpbnQ4
X3Qga1Rlc3RNYWtlQ3JlZGVudGlhbFJlc3BvbnNlW10gPSB7CisgICAgLy8gU3VjY2VzcyBzdGF0
dXMgYnl0ZQorICAgIDB4MDAsCisgICAgLy8gTWFwKDAzKQorICAgIDB4YTMsCisgICAgLy8ga2V5
KDAxKSAtIEZvcm1hdAorICAgIDB4MDEsCisgICAgLy8gInBhY2tlZCIKKyAgICAweDY2LCAweDcw
LCAweDYxLCAweDYzLCAweDZiLCAweDY1LCAweDY0LAorICAgIC8vIGtleSgwMikgLSBBdXRoZW50
aWNhdG9yIERhdGEKKyAgICAweDAyLAorICAgIC8vIEJ5dGUoMTU0KQorICAgIDB4NTgsIDB4OWEs
IDB4MTEsIDB4OTQsIDB4MjIsIDB4OGQsIDB4YTgsIDB4ZmQsIDB4YmQsIDB4ZWUsIDB4ZmQsIDB4
MjYsCisgICAgMHgxYiwgMHhkNywgMHhiNiwgMHg1OSwgMHg1YywgMHhmZCwgMHg3MCwgMHhhNSwg
MHgwZCwgMHg3MCwgMHhjNiwgMHg0MCwKKyAgICAweDdiLCAweGNmLCAweDAxLCAweDNkLCAweGU5
LCAweDZkLCAweDRlLCAweGZiLCAweDE3LCAweGRlLCAweDQxLCAweDAwLAorICAgIDB4MDAsIDB4
MDAsIDB4MGIsIDB4ZjgsIDB4YTAsIDB4MTEsIDB4ZjMsIDB4OGMsIDB4MGEsIDB4NGQsIDB4MTUs
IDB4ODAsCisgICAgMHgwNiwgMHgxNywgMHgxMSwgMHgxZiwgMHg5ZSwgMHhkYywgMHg3ZCwgMHgw
MCwgMHgxMCwgMHg4OSwgMHg1OSwgMHhjZSwKKyAgICAweGFkLCAweDViLCAweDVjLCAweDQ4LCAw
eDE2LCAweDRlLCAweDhhLCAweGJjLCAweGQ2LCAweGQ5LCAweDQzLCAweDVjLAorICAgIDB4NmYs
IDB4YTMsIDB4NjMsIDB4NjEsIDB4NmMsIDB4NjcsIDB4NjUsIDB4NDUsIDB4NTMsIDB4MzIsIDB4
MzUsIDB4MzYsCisgICAgMHg2MSwgMHg3OCwgMHg1OCwgMHgyMCwgMHhmNywgMHhjNCwgMHhmNCwg
MHhhNiwgMHhmMSwgMHhkNywgMHg5NSwgMHgzOCwKKyAgICAweGRmLCAweGE0LCAweGM5LCAweGFj
LCAweDUwLCAweDg0LCAweDhkLCAweGY3LCAweDA4LCAweGJjLCAweDFjLCAweDk5LAorICAgIDB4
ZjUsIDB4ZTYsIDB4MGUsIDB4NTEsIDB4YjQsIDB4MmEsIDB4NTIsIDB4MWIsIDB4MzUsIDB4ZDMs
IDB4YjYsIDB4OWEsCisgICAgMHg2MSwgMHg3OSwgMHg1OCwgMHgyMCwgMHhkZSwgMHg3YiwgMHg3
ZCwgMHg2YywgMHhhNSwgMHg2NCwgMHhlNywgMHgwZSwKKyAgICAweGEzLCAweDIxLCAweGE0LCAw
eGQ1LCAweGQ5LCAweDZlLCAweGEwLCAweDBlLCAweGYwLCAweGUyLCAweGRiLCAweDg5LAorICAg
IDB4ZGQsIDB4NjEsIDB4ZDQsIDB4ODksIDB4NGMsIDB4MTUsIDB4YWMsIDB4NTgsIDB4NWIsIDB4
ZDIsIDB4MzYsIDB4ODQsCisgICAgLy8gS2V5KDAzKSAtIEF0dGVzdGF0aW9uIG9iamVjdAorICAg
IDB4MDMsCisgICAgLy8gTWFwIC0gQXR0ZXN0YXRpb24gb2JqZWN0CisgICAgMHhhMywgMHg2Mywg
MHg2MSwgMHg2YywgMHg2NywgMHgyNiwgMHg2MywgMHg3MywgMHg2OSwgMHg2NywgMHg1OCwgMHg0
NywKKyAgICAweDMwLCAweDQ1LCAweDAyLCAweDIwLCAweDEzLCAweGY3LCAweDNjLCAweDVkLCAw
eDlkLCAweDUzLCAweDBlLCAweDhjLAorICAgIDB4YzEsIDB4NWMsIDB4YzksIDB4YmQsIDB4OTYs
IDB4YWQsIDB4NTgsIDB4NmQsIDB4MzksIDB4MzYsIDB4NjQsIDB4ZTQsCisgICAgMHg2MiwgMHhk
NSwgMHhmMCwgMHg1NiwgMHgxMiwgMHgzNSwgMHhlNiwgMHgzNSwgMHgwZiwgMHgyYiwgMHg3Miwg
MHg4OSwKKyAgICAweDAyLCAweDIxLCAweDAwLCAweDkwLCAweDM1LCAweDdmLCAweGY5LCAweDEw
LCAweGNjLCAweGI1LCAweDZhLCAweGM1LAorICAgIDB4YjUsIDB4OTYsIDB4NTEsIDB4MTksIDB4
NDgsIDB4NTgsIDB4MWMsIDB4OGYsIDB4ZGQsIDB4YjQsIDB4YTIsIDB4YjcsCisgICAgMHg5OSwg
MHg1OSwgMHg5NCwgMHg4MCwgMHg3OCwgMHhiMCwgMHg5ZiwgMHg0YiwgMHhkYywgMHg2MiwgMHgy
OSwgMHg2MywKKyAgICAweDc4LCAweDM1LCAweDYzLCAweDgxLCAweDU5LCAweDAxLCAweDk3LCAw
eDMwLCAweDgyLCAweDAxLCAweDkzLCAweDMwLAorICAgIDB4ODIsIDB4MDEsIDB4MzgsIDB4YTAs
IDB4MDMsIDB4MDIsIDB4MDEsIDB4MDIsIDB4MDIsIDB4MDksIDB4MDAsIDB4ODUsCisgICAgMHg5
YiwgMHg3MiwgMHg2YywgMHhiMiwgMHg0YiwgMHg0YywgMHgyOSwgMHgzMCwgMHgwYSwgMHgwNiwg
MHgwOCwgMHgyYSwKKyAgICAweDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDA0LCAweDAzLCAweDAy
LCAweDMwLCAweDQ3LCAweDMxLCAweDBiLCAweDMwLAorICAgIDB4MDksIDB4MDYsIDB4MDMsIDB4
NTUsIDB4MDQsIDB4MDYsIDB4MTMsIDB4MDIsIDB4NTUsIDB4NTMsIDB4MzEsIDB4MTQsCisgICAg
MHgzMCwgMHgxMiwgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwgMHgwYSwgMHgwYywgMHgwYiwgMHg1
OSwgMHg3NSwgMHg2MiwKKyAgICAweDY5LCAweDYzLCAweDZmLCAweDIwLCAweDU0LCAweDY1LCAw
eDczLCAweDc0LCAweDMxLCAweDIyLCAweDMwLCAweDIwLAorICAgIDB4MDYsIDB4MDMsIDB4NTUs
IDB4MDQsIDB4MGIsIDB4MGMsIDB4MTksIDB4NDEsIDB4NzUsIDB4NzQsIDB4NjgsIDB4NjUsCisg
ICAgMHg2ZSwgMHg3NCwgMHg2OSwgMHg2MywgMHg2MSwgMHg3NCwgMHg2ZiwgMHg3MiwgMHgyMCwg
MHg0MSwgMHg3NCwgMHg3NCwKKyAgICAweDY1LCAweDczLCAweDc0LCAweDYxLCAweDc0LCAweDY5
LCAweDZmLCAweDZlLCAweDMwLCAweDFlLCAweDE3LCAweDBkLAorICAgIDB4MzEsIDB4MzYsIDB4
MzEsIDB4MzIsIDB4MzAsIDB4MzQsIDB4MzEsIDB4MzEsIDB4MzUsIDB4MzUsIDB4MzAsIDB4MzAs
CisgICAgMHg1YSwgMHgxNywgMHgwZCwgMHgzMiwgMHgzNiwgMHgzMSwgMHgzMiwgMHgzMCwgMHgz
MiwgMHgzMSwgMHgzMSwgMHgzNSwKKyAgICAweDM1LCAweDMwLCAweDMwLCAweDVhLCAweDMwLCAw
eDQ3LCAweDMxLCAweDBiLCAweDMwLCAweDA5LCAweDA2LCAweDAzLAorICAgIDB4NTUsIDB4MDQs
IDB4MDYsIDB4MTMsIDB4MDIsIDB4NTUsIDB4NTMsIDB4MzEsIDB4MTQsIDB4MzAsIDB4MTIsIDB4
MDYsCisgICAgMHgwMywgMHg1NSwgMHgwNCwgMHgwYSwgMHgwYywgMHgwYiwgMHg1OSwgMHg3NSwg
MHg2MiwgMHg2OSwgMHg2MywgMHg2ZiwKKyAgICAweDIwLCAweDU0LCAweDY1LCAweDczLCAweDc0
LCAweDMxLCAweDIyLCAweDMwLCAweDIwLCAweDA2LCAweDAzLCAweDU1LAorICAgIDB4MDQsIDB4
MGIsIDB4MGMsIDB4MTksIDB4NDEsIDB4NzUsIDB4NzQsIDB4NjgsIDB4NjUsIDB4NmUsIDB4NzQs
IDB4NjksCisgICAgMHg2MywgMHg2MSwgMHg3NCwgMHg2ZiwgMHg3MiwgMHgyMCwgMHg0MSwgMHg3
NCwgMHg3NCwgMHg2NSwgMHg3MywgMHg3NCwKKyAgICAweDYxLCAweDc0LCAweDY5LCAweDZmLCAw
eDZlLCAweDMwLCAweDU5LCAweDMwLCAweDEzLCAweDA2LCAweDA3LCAweDJhLAorICAgIDB4ODYs
IDB4NDgsIDB4Y2UsIDB4M2QsIDB4MDIsIDB4MDEsIDB4MDYsIDB4MDgsIDB4MmEsIDB4ODYsIDB4
NDgsIDB4Y2UsCisgICAgMHgzZCwgMHgwMywgMHgwMSwgMHgwNywgMHgwMywgMHg0MiwgMHgwMCwg
MHgwNCwgMHhhZCwgMHgxMSwgMHhlYiwgMHgwZSwKKyAgICAweDg4LCAweDUyLCAweGU1LCAweDNh
LCAweGQ1LCAweGRmLCAweGVkLCAweDg2LCAweGI0LCAweDFlLCAweDYxLCAweDM0LAorICAgIDB4
YTEsIDB4OGUsIDB4YzQsIDB4ZTEsIDB4YWYsIDB4OGYsIDB4MjIsIDB4MWEsIDB4M2MsIDB4N2Qs
IDB4NmUsIDB4NjMsCisgICAgMHg2YywgMHg4MCwgMHhlYSwgMHgxMywgMHhjMywgMHhkNSwgMHgw
NCwgMHhmZiwgMHgyZSwgMHg3NiwgMHgyMSwgMHgxYiwKKyAgICAweGI0LCAweDQ1LCAweDI1LCAw
eGIxLCAweDk2LCAweGM0LCAweDRjLCAweGI0LCAweDg0LCAweDk5LCAweDc5LCAweGNmLAorICAg
IDB4NmYsIDB4ODksIDB4NmUsIDB4Y2QsIDB4MmIsIDB4YjgsIDB4NjAsIDB4ZGUsIDB4MWIsIDB4
ZjQsIDB4MzcsIDB4NmIsCisgICAgMHhhMywgMHgwZCwgMHgzMCwgMHgwYiwgMHgzMCwgMHgwOSwg
MHgwNiwgMHgwMywgMHg1NSwgMHgxZCwgMHgxMywgMHgwNCwKKyAgICAweDAyLCAweDMwLCAweDAw
LCAweDMwLCAweDBhLCAweDA2LCAweDA4LCAweDJhLCAweDg2LCAweDQ4LCAweGNlLCAweDNkLAor
ICAgIDB4MDQsIDB4MDMsIDB4MDIsIDB4MDMsIDB4NDksIDB4MDAsIDB4MzAsIDB4NDYsIDB4MDIs
IDB4MjEsIDB4MDAsIDB4ZTksCisgICAgMHhhMywgMHg5ZiwgMHgxYiwgMHgwMywgMHgxOSwgMHg3
NSwgMHgyNSwgMHhmNywgMHgzNywgMHgzZSwgMHgxMCwgMHhjZSwKKyAgICAweDc3LCAweGU3LCAw
eDgwLCAweDIxLCAweDczLCAweDFiLCAweDk0LCAweGQwLCAweGMwLCAweDNmLCAweDNmLCAweGRh
LAorICAgIDB4MWYsIDB4ZDIsIDB4MmQsIDB4YjMsIDB4ZDAsIDB4MzAsIDB4ZTcsIDB4MDIsIDB4
MjEsIDB4MDAsIDB4YzQsIDB4ZmEsCisgICAgMHhlYywgMHgzNCwgMHg0NSwgMHhhOCwgMHgyMCwg
MHhjZiwgMHg0MywgMHgxMiwgMHg5YywgMHhkYiwgMHgwMCwgMHhhYSwKKyAgICAweGJlLCAweGZk
LCAweDlhLCAweGUyLCAweGQ4LCAweDc0LCAweGY5LCAweGM1LCAweGQzLCAweDQzLCAweGNiLCAw
eDJmLAorICAgIDB4MTEsIDB4M2QsIDB4YTIsIDB4MzcsIDB4MjMsIDB4ZjMsCit9OworCisvLyBC
ZWxvdyB8a0N0YXAyTWFrZUNyZWRlbnRpYWxDZXJ0aWZpY2F0ZXwsIHxrQ3RhcDJNYWtlQ3JlZGVu
dGlhbEF1dGhEYXRhfCwgYW5kCisvLyB8a0N0YXAyTWFrZUNyZWRlbnRpYWxTaWduYXR1cmV8IGxl
dmVyYWdlIGV4YW1wbGUgNCBvZiB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFu
Y2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50
aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbAorY29uc3RleHByIHVpbnQ4X3Qg
a0N0YXAyTWFrZUNyZWRlbnRpYWxDZXJ0aWZpY2F0ZVtdID0geworICAgIDB4MzAsIDB4ODIsIDB4
MDEsIDB4OTMsIDB4MzAsIDB4ODIsIDB4MDEsIDB4MzgsIDB4YTAsIDB4MDMsIDB4MDIsIDB4MDEs
CisgICAgMHgwMiwgMHgwMiwgMHgwOSwgMHgwMCwgMHg4NSwgMHg5YiwgMHg3MiwgMHg2YywgMHhi
MiwgMHg0YiwgMHg0YywgMHgyOSwKKyAgICAweDMwLCAweDBhLCAweDA2LCAweDA4LCAweDJhLCAw
eDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDA0LCAweDAzLCAweDAyLAorICAgIDB4MzAsIDB4NDcs
IDB4MzEsIDB4MGIsIDB4MzAsIDB4MDksIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MDYsIDB4
MTMsCisgICAgMHgwMiwgMHg1NSwgMHg1MywgMHgzMSwgMHgxNCwgMHgzMCwgMHgxMiwgMHgwNiwg
MHgwMywgMHg1NSwgMHgwNCwgMHgwYSwKKyAgICAweDBjLCAweDBiLCAweDU5LCAweDc1LCAweDYy
LCAweDY5LCAweDYzLCAweDZmLCAweDIwLCAweDU0LCAweDY1LCAweDczLAorICAgIDB4NzQsIDB4
MzEsIDB4MjIsIDB4MzAsIDB4MjAsIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MGIsIDB4MGMs
IDB4MTksCisgICAgMHg0MSwgMHg3NSwgMHg3NCwgMHg2OCwgMHg2NSwgMHg2ZSwgMHg3NCwgMHg2
OSwgMHg2MywgMHg2MSwgMHg3NCwgMHg2ZiwKKyAgICAweDcyLCAweDIwLCAweDQxLCAweDc0LCAw
eDc0LCAweDY1LCAweDczLCAweDc0LCAweDYxLCAweDc0LCAweDY5LCAweDZmLAorICAgIDB4NmUs
IDB4MzAsIDB4MWUsIDB4MTcsIDB4MGQsIDB4MzEsIDB4MzYsIDB4MzEsIDB4MzIsIDB4MzAsIDB4
MzQsIDB4MzEsCisgICAgMHgzMSwgMHgzNSwgMHgzNSwgMHgzMCwgMHgzMCwgMHg1YSwgMHgxNywg
MHgwZCwgMHgzMiwgMHgzNiwgMHgzMSwgMHgzMiwKKyAgICAweDMwLCAweDMyLCAweDMxLCAweDMx
LCAweDM1LCAweDM1LCAweDMwLCAweDMwLCAweDVhLCAweDMwLCAweDQ3LCAweDMxLAorICAgIDB4
MGIsIDB4MzAsIDB4MDksIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MDYsIDB4MTMsIDB4MDIs
IDB4NTUsIDB4NTMsCisgICAgMHgzMSwgMHgxNCwgMHgzMCwgMHgxMiwgMHgwNiwgMHgwMywgMHg1
NSwgMHgwNCwgMHgwYSwgMHgwYywgMHgwYiwgMHg1OSwKKyAgICAweDc1LCAweDYyLCAweDY5LCAw
eDYzLCAweDZmLCAweDIwLCAweDU0LCAweDY1LCAweDczLCAweDc0LCAweDMxLCAweDIyLAorICAg
IDB4MzAsIDB4MjAsIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MGIsIDB4MGMsIDB4MTksIDB4
NDEsIDB4NzUsIDB4NzQsCisgICAgMHg2OCwgMHg2NSwgMHg2ZSwgMHg3NCwgMHg2OSwgMHg2Mywg
MHg2MSwgMHg3NCwgMHg2ZiwgMHg3MiwgMHgyMCwgMHg0MSwKKyAgICAweDc0LCAweDc0LCAweDY1
LCAweDczLCAweDc0LCAweDYxLCAweDc0LCAweDY5LCAweDZmLCAweDZlLCAweDMwLCAweDU5LAor
ICAgIDB4MzAsIDB4MTMsIDB4MDYsIDB4MDcsIDB4MmEsIDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2Qs
IDB4MDIsIDB4MDEsIDB4MDYsCisgICAgMHgwOCwgMHgyYSwgMHg4NiwgMHg0OCwgMHhjZSwgMHgz
ZCwgMHgwMywgMHgwMSwgMHgwNywgMHgwMywgMHg0MiwgMHgwMCwKKyAgICAweDA0LCAweGFkLCAw
eDExLCAweGViLCAweDBlLCAweDg4LCAweDUyLCAweGU1LCAweDNhLCAweGQ1LCAweGRmLCAweGVk
LAorICAgIDB4ODYsIDB4YjQsIDB4MWUsIDB4NjEsIDB4MzQsIDB4YTEsIDB4OGUsIDB4YzQsIDB4
ZTEsIDB4YWYsIDB4OGYsIDB4MjIsCisgICAgMHgxYSwgMHgzYywgMHg3ZCwgMHg2ZSwgMHg2Mywg
MHg2YywgMHg4MCwgMHhlYSwgMHgxMywgMHhjMywgMHhkNSwgMHgwNCwKKyAgICAweGZmLCAweDJl
LCAweDc2LCAweDIxLCAweDFiLCAweGI0LCAweDQ1LCAweDI1LCAweGIxLCAweDk2LCAweGM0LCAw
eDRjLAorICAgIDB4YjQsIDB4ODQsIDB4OTksIDB4NzksIDB4Y2YsIDB4NmYsIDB4ODksIDB4NmUs
IDB4Y2QsIDB4MmIsIDB4YjgsIDB4NjAsCisgICAgMHhkZSwgMHgxYiwgMHhmNCwgMHgzNywgMHg2
YiwgMHhhMywgMHgwZCwgMHgzMCwgMHgwYiwgMHgzMCwgMHgwOSwgMHgwNiwKKyAgICAweDAzLCAw
eDU1LCAweDFkLCAweDEzLCAweDA0LCAweDAyLCAweDMwLCAweDAwLCAweDMwLCAweDBhLCAweDA2
LCAweDA4LAorICAgIDB4MmEsIDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2QsIDB4MDQsIDB4MDMsIDB4
MDIsIDB4MDMsIDB4NDksIDB4MDAsIDB4MzAsCisgICAgMHg0NiwgMHgwMiwgMHgyMSwgMHgwMCwg
MHhlOSwgMHhhMywgMHg5ZiwgMHgxYiwgMHgwMywgMHgxOSwgMHg3NSwgMHgyNSwKKyAgICAweGY3
LCAweDM3LCAweDNlLCAweDEwLCAweGNlLCAweDc3LCAweGU3LCAweDgwLCAweDIxLCAweDczLCAw
eDFiLCAweDk0LAorICAgIDB4ZDAsIDB4YzAsIDB4M2YsIDB4M2YsIDB4ZGEsIDB4MWYsIDB4ZDIs
IDB4MmQsIDB4YjMsIDB4ZDAsIDB4MzAsIDB4ZTcsCisgICAgMHgwMiwgMHgyMSwgMHgwMCwgMHhj
NCwgMHhmYSwgMHhlYywgMHgzNCwgMHg0NSwgMHhhOCwgMHgyMCwgMHhjZiwgMHg0MywKKyAgICAw
eDEyLCAweDljLCAweGRiLCAweDAwLCAweGFhLCAweGJlLCAweGZkLCAweDlhLCAweGUyLCAweGQ4
LCAweDc0LCAweGY5LAorICAgIDB4YzUsIDB4ZDMsIDB4NDMsIDB4Y2IsIDB4MmYsIDB4MTEsIDB4
M2QsIDB4YTIsIDB4MzcsIDB4MjMsIDB4ZjN9OworCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcDJN
YWtlQ3JlZGVudGlhbEF1dGhEYXRhW10gPSB7CisgICAgMHgxMSwgMHg5NCwgMHgyMiwgMHg4RCwg
MHhBOCwgMHhGRCwgMHhCRCwgMHhFRSwgMHhGRCwgMHgyNiwgMHgxQiwgMHhENywKKyAgICAweEI2
LCAweDU5LCAweDVDLCAweEZELCAweDcwLCAweEE1LCAweDBELCAweDcwLCAweEM2LCAweDQwLCAw
eDdCLCAweENGLAorICAgIDB4MDEsIDB4M0QsIDB4RTksIDB4NkQsIDB4NEUsIDB4RkIsIDB4MTcs
IDB4REUsIDB4NDEsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgMHgwYiwgMHhmOCwgMHhhMCwgMHgx
MSwgMHhmMywgMHg4YywgMHgwYSwgMHg0ZCwgMHgxNSwgMHg4MCwgMHgwNiwgMHgxNywKKyAgICAw
eDExLCAweDFmLCAweDllLCAweGRjLCAweDdkLCAweDAwLCAweDEwLCAweDg5LCAweDU5LCAweGNl
LCAweGFkLCAweDViLAorICAgIDB4NWMsIDB4NDgsIDB4MTYsIDB4NGUsIDB4OGEsIDB4YmMsIDB4
ZDYsIDB4ZDksIDB4NDMsIDB4NWMsIDB4NmYsIDB4YTMsCisgICAgMHg2MywgMHg2MSwgMHg2Yywg
MHg2NywgMHg2NSwgMHg0NSwgMHg1MywgMHgzMiwgMHgzNSwgMHgzNiwgMHg2MSwgMHg3OCwKKyAg
ICAweDU4LCAweDIwLCAweGY3LCAweGM0LCAweGY0LCAweGE2LCAweGYxLCAweGQ3LCAweDk1LCAw
eDM4LCAweGRmLCAweGE0LAorICAgIDB4YzksIDB4YWMsIDB4NTAsIDB4ODQsIDB4OGQsIDB4Zjcs
IDB4MDgsIDB4YmMsIDB4MWMsIDB4OTksIDB4ZjUsIDB4ZTYsCisgICAgMHgwZSwgMHg1MSwgMHhi
NCwgMHgyYSwgMHg1MiwgMHgxYiwgMHgzNSwgMHhkMywgMHhiNiwgMHg5YSwgMHg2MSwgMHg3OSwK
KyAgICAweDU4LCAweDIwLCAweGRlLCAweDdiLCAweDdkLCAweDZjLCAweGE1LCAweDY0LCAweGU3
LCAweDBlLCAweGEzLCAweDIxLAorICAgIDB4YTQsIDB4ZDUsIDB4ZDksIDB4NmUsIDB4YTAsIDB4
MGUsIDB4ZjAsIDB4ZTIsIDB4ZGIsIDB4ODksIDB4ZGQsIDB4NjEsCisgICAgMHhkNCwgMHg4OSwg
MHg0YywgMHgxNSwgMHhhYywgMHg1OCwgMHg1YiwgMHhkMiwgMHgzNiwgMHg4NH07CisKK2NvbnN0
ZXhwciB1aW50OF90IGtDdGFwMk1ha2VDcmVkZW50aWFsU2lnbmF0dXJlW10gPSB7CisgICAgMHgz
MCwgMHg0NSwgMHgwMiwgMHgyMCwgMHgxMywgMHhmNywgMHgzYywgMHg1ZCwgMHg5ZCwgMHg1Mywg
MHgwZSwgMHg4YywKKyAgICAweGMxLCAweDVjLCAweGM5LCAweGJkLCAweDk2LCAweGFkLCAweDU4
LCAweDZkLCAweDM5LCAweDM2LCAweDY0LCAweGU0LAorICAgIDB4NjIsIDB4ZDUsIDB4ZjAsIDB4
NTYsIDB4MTIsIDB4MzUsIDB4ZTYsIDB4MzUsIDB4MGYsIDB4MmIsIDB4NzIsIDB4ODksCisgICAg
MHgwMiwgMHgyMSwgMHgwMCwgMHg5MCwgMHgzNSwgMHg3ZiwgMHhmOSwgMHgxMCwgMHhjYywgMHhi
NSwgMHg2YSwgMHhjNSwKKyAgICAweGI1LCAweDk2LCAweDUxLCAweDE5LCAweDQ4LCAweDU4LCAw
eDFjLCAweDhmLCAweGRkLCAweGI0LCAweGEyLCAweGI3LAorICAgIDB4OTksIDB4NTksIDB4OTQs
IDB4ODAsIDB4NzgsIDB4YjAsIDB4OWYsIDB4NGIsIDB4ZGMsIDB4NjIsIDB4Mjl9OworCitjb25z
dGV4cHIgdWludDhfdCBrQ3RhcDJNYWtlQ3JlZGVudGlhbENyZWRlbnRpYWxJZFtdID0geworICAg
IDB4ODksIDB4NTksIDB4Y2UsIDB4YWQsIDB4NWIsIDB4NWMsIDB4NDgsIDB4MTYsCisgICAgMHg0
ZSwgMHg4YSwgMHhiYywgMHhkNiwgMHhkOSwgMHg0MywgMHg1YywgMHg2ZiwKK307CisKK2NvbnN0
ZXhwciB1aW50OF90IGtDdGFwMkdldEFzc2VydGlvbkF1dGhEYXRhW10gPSB7CisgICAgMHg2Miwg
MHg1ZCwgMHhkYSwgMHhkZiwgMHg3NCwgMHgzZiwgMHg1NywgMHgyNywgMHhlNiwgMHg2YiwKKyAg
ICAweGJhLCAweDhjLCAweDJlLCAweDM4LCAweDc5LCAweDIyLCAweGQxLCAweGFmLCAweDQzLCAw
eGM1LAorICAgIDB4MDMsIDB4ZDksIDB4MTEsIDB4NGEsIDB4OGYsIDB4YmEsIDB4MTAsIDB4NGQs
IDB4ODQsIDB4ZDAsCisgICAgMHgyYiwgMHhmYSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgx
MX07CisKK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwMkdldEFzc2VydGlvblNpZ25hdHVyZVtdID0g
eworICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4MjAsIDB4NGEsIDB4NWEsIDB4OWQsIDB4ZDMsIDB4
OTIsIDB4OTgsIDB4MTQsIDB4OWQsCisgICAgMHg5MCwgMHg0NywgMHg2OSwgMHhiNSwgMHgxYSwg
MHg0NSwgMHgxNCwgMHgzMywgMHgwMCwgMHg2ZiwgMHgxOCwgMHgyYSwKKyAgICAweDM0LCAweGZi
LCAweGRmLCAweDY2LCAweGRlLCAweDVmLCAweGM3LCAweDE3LCAweGQ3LCAweDVmLCAweGIzLCAw
eDUwLAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4YTQsIDB4NmIsIDB4OGUsIDB4YTMsIDB4YzMs
IDB4YjksIDB4MzMsIDB4ODIsIDB4MWMsCisgICAgMHg2ZSwgMHg3ZiwgMHg1ZSwgMHhmOSwgMHhk
YSwgMHhhZSwgMHg5NCwgMHhhYiwgMHg0NywgMHhmMSwgMHg4ZCwgMHhiNCwKKyAgICAweDc0LCAw
eGM3LCAweDQ3LCAweDkwLCAweGVhLCAweGFiLCAweGIxLCAweDQ0LCAweDExLCAweGU3LCAweGEw
LAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga0RldmljZUdldEFzc2VydGlvblJlc3BvbnNlW10g
PSB7CisgICAgLy8gU3VjY2VzcyByZXNwb25zZSBjb2RlCisgICAgMHgwMCwKKyAgICAvLyBtYXAo
NSkKKyAgICAweGE1LAorICAgIC8vIHVuc2lnbmVkKDEpIC0gQ3JlZGVudGlhbAorICAgIDB4MDEs
CisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyB0ZXh0KDIpCisgICAgMHg2MiwKKyAg
ICAvLyAiaWQiCisgICAgMHg2OSwgMHg2NCwKKyAgICAvLyBieXRlcyg2NCkKKyAgICAweDU4LCAw
eDQwLAorICAgIC8vIGNyZWRlbnRpYWwgaWQKKyAgICAweGYyLCAweDIwLCAweDA2LCAweGRlLCAw
eDRmLCAweDkwLCAweDVhLCAweGY2LCAweDhhLCAweDQzLCAweDk0LCAweDJmLAorICAgIDB4MDIs
IDB4NGYsIDB4MmEsIDB4NWUsIDB4Y2UsIDB4NjAsIDB4M2QsIDB4OWMsIDB4NmQsIDB4NGIsIDB4
M2QsIDB4ZjgsCisgICAgMHhiZSwgMHgwOCwgMHhlZCwgMHgwMSwgMHhmYywgMHg0NCwgMHgyNiwg
MHg0NiwgMHhkMCwgMHgzNCwgMHg4NSwgMHg4YSwKKyAgICAweGM3LCAweDViLCAweGVkLCAweDNm
LCAweGQ1LCAweDgwLCAweGJmLCAweDk4LCAweDA4LCAweGQ5LCAweDRmLCAweGNiLAorICAgIDB4
ZWUsIDB4ODIsIDB4YjksIDB4YjIsIDB4ZWYsIDB4NjYsIDB4NzcsIDB4YWYsIDB4MGEsIDB4ZGMs
IDB4YzMsIDB4NTgsCisgICAgMHg1MiwgMHhlYSwgMHg2YiwgMHg5ZSwKKyAgICAvLyB0ZXh0KDQp
CisgICAgMHg2NCwKKyAgICAvLyAidHlwZSIKKyAgICAweDc0LCAweDc5LCAweDcwLCAweDY1LAor
ICAgIC8vIHRleHQoMTApCisgICAgMHg2YSwKKyAgICAvLyAicHVibGljLWtleSIKKyAgICAweDcw
LCAweDc1LCAweDYyLCAweDZDLCAweDY5LCAweDYzLCAweDJELCAweDZCLCAweDY1LCAweDc5LAor
ICAgIC8vIHVuc2lnbmVkKDIpIC0gQXV0aCBkYXRhCisgICAgMHgwMiwKKyAgICAvLyBieXRlcygz
NykKKyAgICAweDU4LCAweDI1LAorICAgIC8vIGF1dGggZGF0YQorICAgIDB4NjIsIDB4NWQsIDB4
ZGEsIDB4ZGYsIDB4NzQsIDB4M2YsIDB4NTcsIDB4MjcsIDB4ZTYsIDB4NmIsIDB4YmEsIDB4OGMs
CisgICAgMHgyZSwgMHgzOCwgMHg3OSwgMHgyMiwgMHhkMSwgMHhhZiwgMHg0MywgMHhjNSwgMHgw
MywgMHhkOSwgMHgxMSwgMHg0YSwKKyAgICAweDhmLCAweGJhLCAweDEwLCAweDRkLCAweDg0LCAw
eGQwLCAweDJiLCAweGZhLCAweDAxLCAweDAwLCAweDAwLCAweDAwLAorICAgIDB4MTEsCisgICAg
Ly8gdW5zaWduZWQoMykgLSBzaWduYXR1cmUKKyAgICAweDAzLAorICAgIC8vIGJ5dGVzKDcxKQor
ICAgIDB4NTgsIDB4NDcsCisgICAgLy8gc2lnbmF0dXJlCisgICAgMHgzMCwgMHg0NSwgMHgwMiwg
MHgyMCwgMHg0YSwgMHg1YSwgMHg5ZCwgMHhkMywgMHg5MiwgMHg5OCwgMHgxNCwgMHg5ZCwKKyAg
ICAweDkwLCAweDQ3LCAweDY5LCAweGI1LCAweDFhLCAweDQ1LCAweDE0LCAweDMzLCAweDAwLCAw
eDZmLCAweDE4LCAweDJhLAorICAgIDB4MzQsIDB4ZmIsIDB4ZGYsIDB4NjYsIDB4ZGUsIDB4NWYs
IDB4YzcsIDB4MTcsIDB4ZDcsIDB4NWYsIDB4YjMsIDB4NTAsCisgICAgMHgwMiwgMHgyMSwgMHgw
MCwgMHhhNCwgMHg2YiwgMHg4ZSwgMHhhMywgMHhjMywgMHhiOSwgMHgzMywgMHg4MiwgMHgxYywK
KyAgICAweDZlLCAweDdmLCAweDVlLCAweGY5LCAweGRhLCAweGFlLCAweDk0LCAweGFiLCAweDQ3
LCAweGYxLCAweDhkLCAweGI0LAorICAgIDB4NzQsIDB4YzcsIDB4NDcsIDB4OTAsIDB4ZWEsIDB4
YWIsIDB4YjEsIDB4NDQsIDB4MTEsIDB4ZTcsIDB4YTAsCisgICAgLy8gdW5zaWduZWQoNCkgLSBw
dWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eQorICAgIDB4MDQsCisgICAgLy8gbWFwKDQpCisg
ICAgMHhhNCwKKyAgICAvLyB0ZXh0KDIpCisgICAgMHg2MiwKKyAgICAvLyAiaWQiCisgICAgMHg2
OSwgMHg2NCwKKyAgICAvLyBieXRlcygzMikgLSB1c2VyIGlkCisgICAgMHg1OCwgMHgyMCwKKyAg
ICAvLyB1c2VyIGlkCisgICAgMHgzMCwgMHg4MiwgMHgwMSwgMHg5MywgMHgzMCwgMHg4MiwgMHgw
MSwgMHgzOCwgMHhhMCwgMHgwMywgMHgwMiwgMHgwMSwKKyAgICAweDAyLCAweDMwLCAweDgyLCAw
eDAxLCAweDkzLCAweDMwLCAweDgyLCAweDAxLCAweDM4LCAweGEwLCAweDAzLCAweDAyLAorICAg
IDB4MDEsIDB4MDIsIDB4MzAsIDB4ODIsIDB4MDEsIDB4OTMsIDB4MzAsIDB4ODIsCisgICAgLy8g
dGV4dCg0KQorICAgIDB4NjQsCisgICAgLy8gImljb24iCisgICAgMHg2OSwgMHg2MywgMHg2Ziwg
MHg2ZSwKKyAgICAvLyB0ZXh0KDQwKQorICAgIDB4NzgsIDB4MjgsCisgICAgLy8gImh0dHBzOi8v
cGljcy5hY21lLmNvbS8wMC9wL2FCampqcHFQYi5wbmciCisgICAgMHg2OCwgMHg3NCwgMHg3NCwg
MHg3MCwgMHg3MywgMHgzYSwgMHgyZiwgMHgyZiwgMHg3MCwgMHg2OSwgMHg2MywgMHg3MywKKyAg
ICAweDJlLCAweDYxLCAweDYzLCAweDZkLCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAweDZkLCAw
eDJmLCAweDMwLCAweDMwLAorICAgIDB4MmYsIDB4NzAsIDB4MmYsIDB4NjEsIDB4NDIsIDB4NmEs
IDB4NmEsIDB4NmEsIDB4NzAsIDB4NzEsIDB4NTAsIDB4NjIsCisgICAgMHgyZSwgMHg3MCwgMHg2
ZSwgMHg2NywKKyAgICAvLyB0ZXh0KDQpCisgICAgMHg2NCwKKyAgICAvLyAibmFtZSIKKyAgICAw
eDZlLCAweDYxLCAweDZkLCAweDY1LAorICAgIC8vIHRleHQoMjIpCisgICAgMHg3NiwKKyAgICAv
LyAiam9obnBzbWl0aEBleGFtcGxlLmNvbSIKKyAgICAweDZhLCAweDZmLCAweDY4LCAweDZlLCAw
eDcwLCAweDczLCAweDZkLCAweDY5LCAweDc0LCAweDY4LCAweDQwLCAweDY1LAorICAgIDB4Nzgs
IDB4NjEsIDB4NmQsIDB4NzAsIDB4NmMsIDB4NjUsIDB4MmUsIDB4NjMsIDB4NmYsIDB4NmQsCisg
ICAgLy8gdGV4dCgxMSkKKyAgICAweDZiLAorICAgIC8vICJkaXNwbGF5TmFtZSIKKyAgICAweDY0
LCAweDY5LCAweDczLCAweDcwLCAweDZjLCAweDYxLCAweDc5LCAweDRlLCAweDYxLCAweDZkLCAw
eDY1LAorICAgIC8vIHRleHQoMTMpCisgICAgMHg2ZCwKKyAgICAvLyAiSm9obiBQLiBTbWl0aCIK
KyAgICAweDRhLCAweDZmLCAweDY4LCAweDZlLCAweDIwLCAweDUwLCAweDJlLCAweDIwLCAweDUz
LCAweDZkLCAweDY5LCAweDc0LAorICAgIDB4NjgsCisgICAgLy8gdW5zaWduZWQoNSkgLSBudW1i
ZXIgb2YgY3JlZGVudGlhbHMKKyAgICAweDA1LAorICAgIC8vIDEKKyAgICAweDAxLAorfTsKKwor
fSAvLyBuYW1lc3BhY2UgVGVzdERhdGEKKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikK
</data>
<flag name="review"
          id="370741"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354221</attachid>
            <date>2018-11-08 01:33:02 -0800</date>
            <delta_ts>2018-11-08 01:39:03 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-190784-20181108013301.patch</filename>
            <type>text/plain</type>
            <size>148195</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA5ZjVkOGQ4OTNiM2Jl
YWZmMzVlZmM5YWM3ZTY2ZDI0ZjlkM2NjNy4uOTk4MjhkZWVjM2JhNDE3YmQxNzhmY2RiZWIyMGE2
N2JlY2E1ZDZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDE4LTEwLTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBv
cnQgQ1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzIGZyb20gQ2hyb21pdW0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDc4NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU0NjAzMzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcG9ydHMgQ2hyb21pdW0ncyBD
VEFQIGRldmljZSByZXF1ZXN0L3Jlc3BvbnNlIGNvbnZlcnRlcnM6CisgICAgICAgIGh0dHBzOi8v
Zmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQt
dG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjbWVzc2FnZS1l
bmNvZGluZworICAgICAgICAxLiBJdCBkaXJlY3RseSBpbXBvcnRzIHRoZSBmb2xsb3dpbmcgZmls
ZXMgYW5kIHN1aXQgdGhlbSB0byBXZWJLaXQncyBjb2Rpbmcgc3R5bGU6CisgICAgICAgIGh0dHBz
Oi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9kZXZpY2UvZmlkby9kZXZpY2VfcmVzcG9u
c2VfY29udmVydGVyLmNjP2w9MjAmcmNsPTA5OGRmZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJk
OTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2Rl
dmljZS9maWRvL2RldmljZV9yZXNwb25zZV9jb252ZXJ0ZXIuaD9yY2w9MDk4ZGZkOTA4NTBmZmE4
NGMyN2E4ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczovL2NzLmNocm9taXVtLm9y
Zy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9nZXRfaW5mb19yZXNwb25z
ZS5jYz9yY2w9MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAg
ICBodHRwczovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVu
dGljYXRvcl9nZXRfaW5mb19yZXNwb25zZS5oP3JjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFi
NzVlZGQyZDk5YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVt
L3NyYy9kZXZpY2UvZmlkby9hdXRoZW50aWNhdG9yX3N1cHBvcnRlZF9vcHRpb25zLmNjP3JjbD0w
OThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5YzRlYzQ1CisgICAgICAgIGh0dHBzOi8v
Y3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9kZXZpY2UvZmlkby9hdXRoZW50aWNhdG9yX3N1
cHBvcnRlZF9vcHRpb25zLmg/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTlj
NGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2Rldmlj
ZS9maWRvL2N0YXBfcmVxdWVzdF91bml0dGVzdC5jYz9yY2w9MDk4ZGZkOTA4NTBmZmE4NGMyN2E4
ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczovL2NzLmNocm9taXVtLm9yZy9jaHJv
bWl1bS9zcmMvZGV2aWNlL2ZpZG8vY3RhcF9yZXNwb25zZV91bml0dGVzdC5jYz9yY2w9MDk4ZGZk
OTA4NTBmZmE4NGMyN2E4ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczovL2NzLmNo
cm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vZmlkb190ZXN0X2RhdGEuaD9sPTEm
cmNsPTA5OGRmZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgMi4g
SXQgZ2F0aGVycyB0aGUgZm9sbG93aW5nIG1ldGhvZHMgaW50byBEZXZpY2VSZXF1ZXN0Q29udmVy
dGVyOgorICAgICAgICBDdGFwR2V0QXNzZXJ0aW9uUmVxdWVzdDo6RW5jb2RlQXNDQk9SKCkKKyAg
ICAgICAgQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdDo6RW5jb2RlQXNDQk9SKCkKKyAgICAgICAg
UHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I6OkNvbnZlcnRUb0NCT1IoKQorICAgICAgICBQ
dWJsaWNLZXlDcmVkZW50aWFsUGFyYW1zOjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAgUHVibGlj
S2V5Q3JlZGVudGlhbFJwRW50aXR5OjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAgUHVibGljS2V5
Q3JlZGVudGlhbFVzZXJFbnRpdHk6OkNvbnZlcnRUb0NCT1IoKQorICAgICAgICAzLiBJdCBhbHNv
IGFwcGx5IGEgcGF0Y2ggZnJvbSBDaHJvbWl1bSB0byBDQk9SVmFsdWU6CisgICAgICAgIGh0dHBz
Oi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy83YjZmYmZmMzVjZDhl
NGQ1MDhmMDhlMWNkOTNiNGFhMGEwZGM0MDJjJTVFJTIxLworCisgICAgICAgIEJlc2lkZXMgaW1w
b3J0aW5nIHRoaW5ncyBmcm9tIENocm9taXVtLCBpdCBhbHNvIGltcGxlbWVudHMgVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50IGZvciBib3RoCisgICAgICAgIFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMgYW5kIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyBzdWNo
IHRoYXQgYm90aCBvcHRpb25zCisgICAgICAgIGNhbiBzcGVjaWZ5IG1vcmUgZGltZW5zaW9ucyBv
ZiBhIGRlc2lyZWQgYXV0aGVudGljYXRvci4KKworICAgICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0
cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
OjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmRlY29kZSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cy5oOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5p
ZGwuCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwuCisgICAgICAgICogTW9kdWxlcy93ZWJh
dXRobi9jYm9yL0NCT1JWYWx1ZS5jcHA6CisgICAgICAgIChjYm9yOjpDQk9SVmFsdWU6OkNCT1JW
YWx1ZSk6CisgICAgICAgIChjYm9yOjpDQk9SVmFsdWU6OmdldEJvb2wgY29uc3QpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5jcHA6IEFkZGVkLgor
ICAgICAgICAoZmlkbzo6dG9BcnJheVZhbHVlKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0
b3JHZXRJbmZvUmVzcG9uc2U6OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UpOgorICAgICAg
ICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0TWF4TXNnU2l6ZSk6Cisg
ICAgICAgIChmaWRvOjpBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlOjpzZXRQaW5Qcm90b2Nv
bHMpOgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0RXh0
ZW5zaW9ucyk6CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlOjpz
ZXRPcHRpb25zKToKKyAgICAgICAgKGZpZG86OmVuY29kZUFzQ0JPUik6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zLmNwcDogQWRkZWQuCisgICAgICAgIChmaWRvOjpBdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9uczo6c2V0U3VwcG9ydHNSZXNpZGVudEtleSk6CisgICAgICAgIChmaWRvOjpBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSk6
CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0VXNlclBy
ZXNlbmNlUmVxdWlyZWQpOgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OnNldENsaWVudFBpbkF2YWlsYWJpbGl0eSk6CisgICAgICAgIChmaWRvOjpBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0SXNQbGF0Zm9ybURldmljZSk6CisgICAgICAgIChm
aWRvOjpjb252ZXJ0VG9DQk9SKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0
aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93
ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KGZpZG86OmNvbnZlcnRScEVudGl0eVRvQ0JPUik6CisgICAgICAgIChmaWRvOjpjb252ZXJ0VXNl
ckVudGl0eVRvQ0JPUik6CisgICAgICAgIChmaWRvOjpjb252ZXJ0UGFyYW1ldGVyc1RvQ0JPUik6
CisgICAgICAgIChmaWRvOjpjb252ZXJ0RGVzY3JpcHRvclRvQ0JPUik6CisgICAgICAgIChmaWRv
OjplbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IpOgorICAgICAgICAoZmlkbzo6ZW5j
b2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUik6CisgICAgICAgIChmaWRvOjplbmNvZGVFbXB0
eUF1dGhlbnRpY2F0b3JSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
RGV2aWNlUmVxdWVzdENvbnZlcnRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHA6IEFkZGVkLgorICAgICAgICAo
Zmlkbzo6Y29udmVydFN0cmluZ1RvUHJvdG9jb2xWZXJzaW9uKToKKyAgICAgICAgKGZpZG86Omdl
dFJlc3BvbnNlQ29kZSk6CisgICAgICAgIChmaWRvOjpnZXRDcmVkZW50aWFsSWQpOgorICAgICAg
ICAoZmlkbzo6cmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKToKKyAgICAgICAgKGZpZG86
OnJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UpOgorICAgICAgICAoZmlkbzo6cmVhZENUQVBH
ZXRJbmZvUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VS
ZXNwb25zZUNvbnZlcnRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5jcHAuCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRo
bi9maWRvL0ZpZG9Db25zdGFudHMuY3BwOgorICAgICAgICAoZmlkbzo6aXNDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlKToKKyAgICAgICAgKGZpZG86OnB1YmxpY0tleUNyZWRlbnRpYWxUeXBlVG9TdHJp
bmcpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmg6Cisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDE4LTExLTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3
YUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NHXSBBZG9wdCBDRyBTUEkgZm9yIG5vbi1ldmVuIGNv
cm5lcmVkIHJvdW5kZWQgcmVjdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZmZjOTJkY2ZjMTRh
YzBlMWVlZmMyYjZhMTdiZjliZGMyMWM4NWU4Ni4uNmI1ZGE3MzQ4ZjFkNThlZjNlMDk5MzRjMzQ4
MmRhZjUxZmIzOTY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQzMiw2ICs0MzIsNyBAQCBz
ZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvd2ViYXV0aG4vUHVibGlj
S2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaWRsCiAgICAgTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsCiAgICAgTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsVHlwZS5pZGwKKyAgICBNb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudC5pZGwKIAogICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93
V2ViRGF0YWJhc2UuaWRsCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5pZGwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDY2MzkwZDQ5ZmIzOWQ2YzRiMmM0NzYyNjA1
ZDI2MDVmYjJiNWIxMGQuLmUwYzUyMDc0Nzg4YTVkZjE3ZmY1NGFiNWY0OGE1MWZhNzUzNTU4ZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzU1LDYgKzM1NSw3IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5
Q3JlZGVudGlhbERlc2NyaXB0b3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXV0
aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmlkbCBcCisgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFz
ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNhbGxiYWNrLmlk
bCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCmluZGV4IDhhZmI0ZGQ0
ZDQ2MWU4NmU2OTQ4MzM5ZTIxMWIxOTllNzFhOTg3MzMuLmJhNjhkZjkyYjE4MmM3YTliMTNhMzY2
ZmE5MTE2MDgyZWI0NjVkYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cy5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5jbHVk
ZSAiUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJQdWJsaWNLZXlD
cmVkZW50aWFsVHlwZS5oIgorI2luY2x1ZGUgIlVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5o
IgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAKQEAgLTY1LDcgKzY2LDkgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnMgewogICAgIH07CiAKICAgICBzdHJ1Y3QgQXV0aGVudGljYXRvclNlbGVjdGlv
bkNyaXRlcmlhIHsKLSAgICAgICAgQXV0aGVudGljYXRvckF0dGFjaG1lbnQgYXV0aGVudGljYXRv
ckF0dGFjaG1lbnQ7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRvckF0dGFjaG1l
bnQ+IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OworICAgICAgICBib29sIHJlcXVpcmVSZXNpZGVu
dEtleSB7IGZhbHNlIH07CisgICAgICAgIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB1c2Vy
VmVyaWZpY2F0aW9uIHsgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQgfTsK
IAogICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikg
Y29uc3Q7CiAgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYT4gZGVjb2RlKERlY29kZXImKTsKQEAg
LTEwNSwxNCArMTA4LDI3IEBAIHN0ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9uczo6UGFyYW1ldGVycz4gUHVibGljS2V5Q3JlZGVudGlhCiB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPgogdm9pZCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRo
ZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogewotICAgIGVuY29kZXIgPDwgYXV0aGVudGljYXRvckF0dGFjaG1lbnQ7CisgICAgZW5jb2Rl
ciA8PCBhdXRoZW50aWNhdG9yQXR0YWNobWVudCA8PCByZXF1aXJlUmVzaWRlbnRLZXkgPDwgdXNl
clZlcmlmaWNhdGlvbjsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KIHN0ZDo6b3B0aW9u
YWw8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVj
dGlvbkNyaXRlcmlhPiBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50
aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rp
b25Dcml0ZXJpYSByZXN1bHQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LmF1
dGhlbnRpY2F0b3JBdHRhY2htZW50KSkKKworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25h
bDxBdXRoZW50aWNhdG9yQXR0YWNobWVudD4+IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OworICAg
IGRlY29kZXIgPj4gYXV0aGVudGljYXRvckF0dGFjaG1lbnQ7CisgICAgaWYgKCFhdXRoZW50aWNh
dG9yQXR0YWNobWVudCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXN1bHQu
YXV0aGVudGljYXRvckF0dGFjaG1lbnQgPSBXVEZNb3ZlKCphdXRoZW50aWNhdG9yQXR0YWNobWVu
dCk7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHJlcXVpcmVSZXNpZGVudEtleTsKKyAgICBk
ZWNvZGVyID4+IHJlcXVpcmVSZXNpZGVudEtleTsKKyAgICBpZiAoIXJlcXVpcmVSZXNpZGVudEtl
eSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXN1bHQucmVxdWlyZVJlc2lk
ZW50S2V5ID0gKnJlcXVpcmVSZXNpZGVudEtleTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGVF
bnVtKHJlc3VsdC51c2VyVmVyaWZpY2F0aW9uKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5pZGwKaW5kZXggYTMxNTI1ZjMyNTQ4ZGI2NTgzOTM2ZWJiMDMyN2I5NTRhMWM3MTA2
MS4uMzZlMTgwYmVkZmM4MjAxZjNiYzRiNTM1Y2FjMGY3NDNjOGU3YzVmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsCkBAIC03NCwxMCArNzQsOCBAQCB0eXBl
ZGVmIGxvbmcgQ09TRUFsZ29yaXRobUlkZW50aWZpZXI7CiAgICAgQ29uZGl0aW9uYWw9V0VCX0FV
VEhOLAogXSBkaWN0aW9uYXJ5IEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSB7CiAgICAg
QXV0aGVudGljYXRvckF0dGFjaG1lbnQgICAgICBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKLSAg
ICAvLyBXZSBkb24ndCBhbGxvdyBSUHMgdG8gc2V0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGF0IHRo
aXMgc3RhZ2UuCi0gICAgLy8gSGVuY2UsIHRob3NlIG9wdGlvbnMgYXJlIGFsd2F5cyB7IHRydWUs
ICJyZXF1aXJlZCIgfS4KLSAgICAvLyBib29sZWFuICAgICAgICAgICAgICAgICAgICAgIHJlcXVp
cmVSZXNpZGVudEtleSA9IGZhbHNlOwotICAgIC8vIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dCAgdXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJyZWQiOworICAgIGJvb2xlYW4gICAgICAgICAg
ICAgICAgICAgICAgcmVxdWlyZVJlc2lkZW50S2V5ID0gZmFsc2U7CisgICAgVXNlclZlcmlmaWNh
dGlvblJlcXVpcmVtZW50ICB1c2VyVmVyaWZpY2F0aW9uID0gInByZWZlcnJlZCI7CiB9OwogCiBb
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaAppbmRleCAyNzQ0NzZlZjcyN2I4
NWQ3NWRkMWE5ZTIwYzU4N2FkMWI5MmYwZjAxLi5lMmIwZTMzNmQ1MjEzZjk5ODI1ZGU2YmEwMDlh
NDBmMWIzNWYwYTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgKQEAg
LTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUgIlB1
YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzgsNiArMzksNyBAQCBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zIHsKICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiB0aW1lb3V0OwogICAgIG11
dGFibGUgU3RyaW5nIHJwSWQ7CiAgICAgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlw
dG9yPiBhbGxvd0NyZWRlbnRpYWxzOworICAgIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB1
c2VyVmVyaWZpY2F0aW9uIHsgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQg
fTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQ
dWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+IGRlY29kZShEZWNvZGVyJik7CkBAIC00
Nyw3ICs0OSw3IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgewog
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8
IHRpbWVvdXQgPDwgcnBJZCA8PCBhbGxvd0NyZWRlbnRpYWxzOworICAgIGVuY29kZXIgPDwgdGlt
ZW91dCA8PCBycElkIDw8IGFsbG93Q3JlZGVudGlhbHMgPDwgdXNlclZlcmlmaWNhdGlvbjsKIH0K
IAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTY1LDYgKzY3LDEzIEBAIHN0ZDo6b3B0aW9u
YWw8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiBQdWJsaWNLZXlDcmVkZW50aWFs
UmVxdWVzdE9wdGlvCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQuYWxsb3dDcmVkZW50aWFscykpCiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dD4gdXNlclZlcmlmaWNhdGlvbjsKKyAgICBkZWNvZGVyID4+IHVzZXJWZXJpZmljYXRpb247Cisg
ICAgaWYgKCF1c2VyVmVyaWZpY2F0aW9uKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgIHJlc3VsdC51c2VyVmVyaWZpY2F0aW9uID0gV1RGTW92ZSgqdXNlclZlcmlmaWNhdGlvbik7
CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5pZGwKaW5kZXggODlhMjA2ZGM5YzlmZDIxNzhiOTE2MTZlZDExNjVmYjQ3ZThlNGRl
MC4uZDY1MWRiMjhhZTY2ZDBmYzY5ODIxMGQ2ODcxNmQ2ZTExMTQwYzgzOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVz
dE9wdGlvbnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbApAQCAtMzAsOCArMzAsNyBAQAogICAgIHVu
c2lnbmVkIGxvbmcgdGltZW91dDsKICAgICBVU1ZTdHJpbmcgcnBJZDsKICAgICBzZXF1ZW5jZTxQ
dWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvcj4gYWxsb3dDcmVkZW50aWFscyA9IFtdOwotICAg
IC8vIEFsd2F5cyAicmVxdWlyZWQiIGF0IHRoaXMgc3RhZ2UKLSAgICAvLyBVc2VyVmVyaWZpY2F0
aW9uUmVxdWlyZW1lbnQgdXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJyZWQiOworICAgIFVzZXJW
ZXJpZmljYXRpb25SZXF1aXJlbWVudCB1c2VyVmVyaWZpY2F0aW9uID0gInByZWZlcnJlZCI7CiAg
ICAgLy8gTm90IHN1cHBvcnQgeWV0LgogICAgIC8vIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9ucyBl
eHRlbnNpb25zOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzMTRk
MDJjNTJkOWFhYzIxNTc1ZmViNmZlYThmNDE0OGZjNTc0OTcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IHsK
KyAgICBSZXF1aXJlZCwKKyAgICBQcmVmZXJyZWQsCisgICAgRGlzY291cmFnZWQKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50PiB7Cisg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6VXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50LAorICAgICAgICBXZWJDb3JlOjpVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQ6OlJlcXVpcmVkLAorICAgICAgICBXZWJDb3JlOjpVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQ6OlByZWZlcnJlZCwKKyAgICAgICAgV2ViQ29yZTo6VXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50OjpEaXNjb3VyYWdlZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWJmNGZiOTVlYTAwMmU1YmE5NjVjZDU3YjE1MjFjNTgwZTY0OTljYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
WworICAgIENvbmRpdGlvbmFsPVdFQl9BVVRITiwKKyAgICBJbXBsZW1lbnRlZEFzPVVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudAorXSBlbnVtIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB7
CisgICAgInJlcXVpcmVkIiwKKyAgICAicHJlZmVycmVkIiwKKyAgICAiZGlzY291cmFnZWQiCit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JW
YWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVl
LmNwcAppbmRleCAyNWVkOThiOTFmODNhNGI0NjgzMGRmNDhmYTA1YmE4NjhjODEyMmIzLi40Yzhm
ZmFkMWE4Y2YwZjUxNDdjYzc2NzQ0YmJhODZkZTUxYzlkY2M3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmNwcApAQCAtMTUzLDYgKzE1
MywxMiBAQCBDQk9SVmFsdWU6OkNCT1JWYWx1ZShTaW1wbGVWYWx1ZSBpblNpbXBsZSkKICAgICBB
U1NFUlQoc3RhdGljX2Nhc3Q8aW50PihpblNpbXBsZSkgPj0gMjAgJiYgc3RhdGljX2Nhc3Q8aW50
PihpblNpbXBsZSkgPD0gMjMpOwogfQogCitDQk9SVmFsdWU6OkNCT1JWYWx1ZShib29sIGluQm9v
bCkKKyAgICA6IG1fdHlwZShUeXBlOjpTaW1wbGVWYWx1ZSkKK3sKKyAgICBtX3NpbXBsZVZhbHVl
ID0gaW5Cb29sID8gQ0JPUlZhbHVlOjpTaW1wbGVWYWx1ZTo6VHJ1ZVZhbHVlIDogQ0JPUlZhbHVl
OjpTaW1wbGVWYWx1ZTo6RmFsc2VWYWx1ZTsKK30KKwogQ0JPUlZhbHVlJiBDQk9SVmFsdWU6Om9w
ZXJhdG9yPShDQk9SVmFsdWUmJiB0aGF0KQogewogICAgIGludGVybmFsQ2xlYW51cCgpOwpAQCAt
MjQwLDYgKzI0NiwxMiBAQCBDQk9SVmFsdWU6OlNpbXBsZVZhbHVlIENCT1JWYWx1ZTo6Z2V0U2lt
cGxlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBtX3NpbXBsZVZhbHVlOwogfQogCitib29sIENC
T1JWYWx1ZTo6Z2V0Qm9vbCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzQm9vbCgpKTsKKyAgICBy
ZXR1cm4gbV9zaW1wbGVWYWx1ZSA9PSBTaW1wbGVWYWx1ZTo6VHJ1ZVZhbHVlOworfQorCiB2b2lk
IENCT1JWYWx1ZTo6aW50ZXJuYWxNb3ZlQ29uc3RydWN0RnJvbShDQk9SVmFsdWUmJiB0aGF0KQog
ewogICAgIG1fdHlwZSA9IHRoYXQubV90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5oCmluZGV4IGUyZGIwZTEyNzM4YTk5YTc0N2M4MmY0
MDkxMzAwNGM2NjBiN2U4ZDQuLjZhNGM4M2FiYTAzMWMzOGQzNzllNjZiYzkzZWM0N2U1ZjE5MzE3
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9S
VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZh
bHVlLmgKQEAgLTEzOCw2ICsxMzgsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgQ0JPUlZhbHVl
KE1hcFZhbHVlJiYpOwogCiAgICAgZXhwbGljaXQgQ0JPUlZhbHVlKFNpbXBsZVZhbHVlKTsKKyAg
ICBleHBsaWNpdCBDQk9SVmFsdWUoYm9vbCk7CiAKICAgICBDQk9SVmFsdWUmIG9wZXJhdG9yPShD
Qk9SVmFsdWUmJik7CiAKQEAgLTE2MSw5ICsxNjIsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNB
cnJheSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBUeXBlOjpBcnJheTsgfQogICAgIGJvb2wg
aXNNYXAoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gVHlwZTo6TWFwOyB9CiAgICAgYm9vbCBp
c1NpbXBsZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBUeXBlOjpTaW1wbGVWYWx1ZTsgfQor
ICAgIGJvb2wgaXNCb29sKCkgY29uc3QgeyByZXR1cm4gaXNTaW1wbGUoKSAmJiAobV9zaW1wbGVW
YWx1ZSA9PSBTaW1wbGVWYWx1ZTo6VHJ1ZVZhbHVlIHx8IG1fc2ltcGxlVmFsdWUgPT0gU2ltcGxl
VmFsdWU6OkZhbHNlVmFsdWUpOyB9CiAKICAgICAvLyBUaGVzZSB3aWxsIGFsbCBmYXRhbGx5IGFz
c2VydCBpZiB0aGUgdHlwZSBkb2Vzbid0IG1hdGNoLgogICAgIFNpbXBsZVZhbHVlIGdldFNpbXBs
ZVZhbHVlKCkgY29uc3Q7CisgICAgYm9vbCBnZXRCb29sKCkgY29uc3Q7CiAgICAgY29uc3QgaW50
NjRfdCYgZ2V0SW50ZWdlcigpIGNvbnN0OwogICAgIGNvbnN0IGludDY0X3QmIGdldFVuc2lnbmVk
KCkgY29uc3Q7CiAgICAgY29uc3QgaW50NjRfdCYgZ2V0TmVnYXRpdmUoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9y
R2V0SW5mb1Jlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlk
by9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDlhZDc2ZWUy
NzA0Y2UyYzY1ZGRjZTBmYTc0MzRlYjY5OTFmOWRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9u
c2UuY3BwCkBAIC0wLDAgKzEsMTEwIEBACisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgQ2hyb21pdW0g
QXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
Ky8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8v
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVk
ZSAiQ0JPUlZhbHVlLmgiCisjaW5jbHVkZSAiQ0JPUldyaXRlci5oIgorCituYW1lc3BhY2UgZmlk
byB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBDb250YWluZXI+CitjYm9yOjpDQk9SVmFsdWUgdG9B
cnJheVZhbHVlKGNvbnN0IENvbnRhaW5lciYgY29udGFpbmVyKQoreworICAgIGNib3I6OkNCT1JW
YWx1ZTo6QXJyYXlWYWx1ZSB2YWx1ZTsKKyAgICB2YWx1ZS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KGNvbnRhaW5lci5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0byYgaXRlbSA6IGNvbnRhaW5l
cikKKyAgICAgICAgdmFsdWUuYXBwZW5kKGNib3I6OkNCT1JWYWx1ZShpdGVtKSk7CisgICAgcmV0
dXJuIGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKHZhbHVlKSk7Cit9CisKK0F1dGhlbnRpY2F0b3JH
ZXRJbmZvUmVzcG9uc2U6OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UoU3RkU2V0PFByb3Rv
Y29sVmVyc2lvbj4mJiB2ZXJzaW9ucywgVmVjdG9yPHVpbnQ4X3Q+JiYgYWFndWlkKQorICAgIDog
bV92ZXJzaW9ucyhXVEZNb3ZlKHZlcnNpb25zKSkKKyAgICAsIG1fYWFndWlkKFdURk1vdmUoYWFn
dWlkKSkKK3sKK30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgQXV0aGVudGljYXRv
ckdldEluZm9SZXNwb25zZTo6c2V0TWF4TXNnU2l6ZSh1aW50MzJfdCBtYXhNc2dTaXplKQorewor
ICAgIG1fbWF4TXNnU2l6ZSA9IG1heE1zZ1NpemU7CisgICAgcmV0dXJuICp0aGlzOworfQorCitB
dXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNl
OjpzZXRQaW5Qcm90b2NvbHMoVmVjdG9yPHVpbnQ4X3Q+JiYgcGluUHJvdG9jb2xzKQoreworICAg
IG1fcGluUHJvdG9jb2xzID0gV1RGTW92ZShwaW5Qcm90b2NvbHMpOworICAgIHJldHVybiAqdGhp
czsKK30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgQXV0aGVudGljYXRvckdldElu
Zm9SZXNwb25zZTo6c2V0RXh0ZW5zaW9ucyhWZWN0b3I8U3RyaW5nPiYmIGV4dGVuc2lvbnMpCit7
CisgICAgbV9leHRlbnNpb25zID0gV1RGTW92ZShleHRlbnNpb25zKTsKKyAgICByZXR1cm4gKnRo
aXM7Cit9CisKK0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIEF1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2U6OnNldE9wdGlvbnMoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmJiBv
cHRpb25zKQoreworICAgIG1fb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyk7CisgICAgcmV0dXJu
ICp0aGlzOworfQorCitWZWN0b3I8dWludDhfdD4gZW5jb2RlQXNDQk9SKGNvbnN0IEF1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHVzaW5nIG5hbWVzcGFjZSBj
Ym9yOworCisgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBkZXZpY2VJbmZvTWFwOworCisgICAgQ0JP
UlZhbHVlOjpBcnJheVZhbHVlIHZlcnNpb25BcnJheTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHZl
cnNpb24gOiByZXNwb25zZS52ZXJzaW9ucygpKQorICAgICAgICB2ZXJzaW9uQXJyYXkuYXBwZW5k
KHZlcnNpb24gPT0gUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCA/IGtDdGFwMlZlcnNpb24gOiBrVTJm
VmVyc2lvbik7CisgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKENCT1JWYWx1ZSgxKSwgQ0JPUlZh
bHVlKFdURk1vdmUodmVyc2lvbkFycmF5KSkpOworCisgICAgaWYgKHJlc3BvbnNlLmV4dGVuc2lv
bnMoKSkKKyAgICAgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKENCT1JWYWx1ZSgyKSwgdG9BcnJh
eVZhbHVlKCpyZXNwb25zZS5leHRlbnNpb25zKCkpKTsKKworICAgIGRldmljZUluZm9NYXAuZW1w
bGFjZShDQk9SVmFsdWUoMyksIENCT1JWYWx1ZShyZXNwb25zZS5hYWd1aWQoKSkpOworICAgIGRl
dmljZUluZm9NYXAuZW1wbGFjZShDQk9SVmFsdWUoNCksIGNvbnZlcnRUb0NCT1IocmVzcG9uc2Uu
b3B0aW9ucygpKSk7CisKKyAgICBpZiAocmVzcG9uc2UubWF4TXNnU2l6ZSgpKQorICAgICAgICBk
ZXZpY2VJbmZvTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKDUpLCBDQk9SVmFsdWUoc3RhdGljX2Nhc3Q8
aW50NjRfdD4oKnJlc3BvbnNlLm1heE1zZ1NpemUoKSkpKTsKKworICAgIGlmIChyZXNwb25zZS5w
aW5Qcm90b2NvbCgpKQorICAgICAgICBkZXZpY2VJbmZvTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKDYp
LCB0b0FycmF5VmFsdWUoKnJlc3BvbnNlLnBpblByb3RvY29sKCkpKTsKKworICAgIGF1dG8gZW5j
b2RlZEJ5dGVzID0gQ0JPUldyaXRlcjo6d3JpdGUoQ0JPUlZhbHVlKFdURk1vdmUoZGV2aWNlSW5m
b01hcCkpKTsKKyAgICBBU1NFUlQoZW5jb2RlZEJ5dGVzKTsKKyAgICByZXR1cm4gKmVuY29kZWRC
eXRlczsKK30KKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9B
VVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9B
dXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMw
NjNjNGY1YzkzNWY5NzNkYzExNTQwMjAzNTk3YzU4NTZjMzRhZmUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdldElu
Zm9SZXNwb25zZS5oCkBAIC0wLDAgKzEsNzYgQEAKKy8vIENvcHlyaWdodCAyMDE4IFRoZSBDaHJv
bWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
Ky8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhO
KQorCisjaW5jbHVkZSAiQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCIKKyNpbmNsdWRl
ICJGaWRvQ29uc3RhbnRzLmgiCisjaW5jbHVkZSA8d3RmL1N0ZFNldC5oPgorCituYW1lc3BhY2Ug
ZmlkbyB7CisKKy8vIEF1dGhlbnRpY2F0b3IgcmVzcG9uc2UgZm9yIEF1dGhlbnRpY2F0b3JHZXRJ
bmZvIHJlcXVlc3QgdGhhdCBlbmNhcHN1bGF0ZXMKKy8vIHZlcnNpb25zLCBvcHRpb25zLCBBQUdV
SUQoQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbiBHVUlEKSwgb3RoZXIKKy8vIGF1dGhlbnRpY2F0
b3IgZGV2aWNlIGluZm9ybWF0aW9uLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNz
L2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3Rv
Y29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNhdG9yZ2V0aW5mby0weDA0CitjbGFz
cyBXRUJDT1JFX0VYUE9SVCBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlIHsKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKTsKK3B1YmxpYzoK
KyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKFN0ZFNldDxQcm90b2NvbFZlcnNpb24+
JiYgdmVyc2lvbnMsIFZlY3Rvcjx1aW50OF90PiYmIGFhZ3VpZCk7CisgICAgQXV0aGVudGljYXRv
ckdldEluZm9SZXNwb25zZShBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiYgdGhhdCkgPSBk
ZWZhdWx0OworICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIG9wZXJhdG9yPShBdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiYgb3RoZXIpID0gZGVmYXVsdDsKKworICAgIEF1dGhl
bnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIHNldE1heE1zZ1NpemUodWludDMyX3QpOworICAgIEF1
dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIHNldFBpblByb3RvY29scyhWZWN0b3I8dWludDhf
dD4mJik7CisgICAgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgc2V0RXh0ZW5zaW9ucyhW
ZWN0b3I8U3RyaW5nPiYmKTsKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBzZXRP
cHRpb25zKEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiYpOworCisgICAgY29uc3QgU3Rk
U2V0PFByb3RvY29sVmVyc2lvbj4mIHZlcnNpb25zKCkgY29uc3QgeyByZXR1cm4gbV92ZXJzaW9u
czsgfQorICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYWFndWlkKCkgY29uc3QgeyByZXR1cm4g
bV9hYWd1aWQ7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiYgbWF4TXNnU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4TXNnU2l6ZTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPHVpbnQ4X3Q+PiYgcGluUHJvdG9jb2woKSBjb25zdCB7IHJldHVybiBtX3BpblBy
b3RvY29sczsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBleHRl
bnNpb25zKCkgY29uc3QgeyByZXR1cm4gbV9leHRlbnNpb25zOyB9CisgICAgY29uc3QgQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlv
bnM7IH0KKworcHJpdmF0ZToKKyAgICBTdGRTZXQ8UHJvdG9jb2xWZXJzaW9uPiBtX3ZlcnNpb25z
OworICAgIFZlY3Rvcjx1aW50OF90PiBtX2FhZ3VpZDsKKyAgICBzdGQ6Om9wdGlvbmFsPHVpbnQz
Ml90PiBtX21heE1zZ1NpemU7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IG1f
cGluUHJvdG9jb2xzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IG1fZXh0ZW5z
aW9uczsKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBtX29wdGlvbnM7Cit9Owor
CitXRUJDT1JFX0VYUE9SVCBWZWN0b3I8dWludDhfdD4gZW5jb2RlQXNDQk9SKGNvbnN0IEF1dGhl
bnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmKTsKKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5k
aWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkY2Y4YTRjZDU0YWY3N2Y4ZjMzMzgxMzhlOTQxYmRiYWY2
MGRjNGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3BwCkBAIC0wLDAgKzEsMTA5IEBA
CisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8g
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisv
LyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisv
LyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oIgor
CisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkZpZG9Db25zdGFudHMuaCIKKwor
bmFtZXNwYWNlIGZpZG8geworCitBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFN1cHBvcnRzUmVzaWRlbnRLZXkoYm9vbCBzdXBw
b3J0c1Jlc2lkZW50S2V5KQoreworICAgIG1fc3VwcG9ydHNSZXNpZGVudEtleSA9IHN1cHBvcnRz
UmVzaWRlbnRLZXk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitBdXRoZW50aWNhdG9yU3VwcG9y
dGVkT3B0aW9ucyYgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHkoVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSB1c2VyVmVyaWZp
Y2F0aW9uQXZhaWxhYmlsaXR5KQoreworICAgIG1fdXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0
eSA9IHVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk7CisgICAgcmV0dXJuICp0aGlzOworfQor
CitBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OnNldFVzZXJQcmVzZW5jZVJlcXVpcmVkKGJvb2wgdXNlclByZXNlbmNlUmVxdWlyZWQp
Cit7CisgICAgbV91c2VyUHJlc2VuY2VSZXF1aXJlZCA9IHVzZXJQcmVzZW5jZVJlcXVpcmVkOwor
ICAgIHJldHVybiAqdGhpczsKK30KKworQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIEF1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpzZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkoQ2xp
ZW50UGluQXZhaWxhYmlsaXR5IGNsaWVudFBpbkF2YWlsYWJpbGl0eSkKK3sKKyAgICBtX2NsaWVu
dFBpbkF2YWlsYWJpbGl0eSA9IGNsaWVudFBpbkF2YWlsYWJpbGl0eTsKKyAgICByZXR1cm4gKnRo
aXM7Cit9CisKK0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9uczo6c2V0SXNQbGF0Zm9ybURldmljZShib29sIGlzUGxhdGZvcm1EZXZpY2Up
Cit7CisgICAgbV9pc1BsYXRmb3JtRGV2aWNlID0gaXNQbGF0Zm9ybURldmljZTsKKyAgICByZXR1
cm4gKnRoaXM7Cit9CisKK2Nib3I6OkNCT1JWYWx1ZSBjb252ZXJ0VG9DQk9SKGNvbnN0IEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBvcHRpb25zKQoreworICAgIHVzaW5nIG5hbWVzcGFj
ZSBjYm9yOworCisgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25NYXA7CisgICAgb3B0aW9u
TWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtSZXNpZGVudEtleU1hcEtleSksIENCT1JWYWx1ZShvcHRp
b25zLnN1cHBvcnRzUmVzaWRlbnRLZXkoKSkpOworICAgIG9wdGlvbk1hcC5lbXBsYWNlKENCT1JW
YWx1ZShrVXNlclByZXNlbmNlTWFwS2V5KSwgQ0JPUlZhbHVlKG9wdGlvbnMudXNlclByZXNlbmNl
UmVxdWlyZWQoKSkpOworICAgIG9wdGlvbk1hcC5lbXBsYWNlKENCT1JWYWx1ZShrUGxhdGZvcm1E
ZXZpY2VNYXBLZXkpLCBDQk9SVmFsdWUob3B0aW9ucy5pc1BsYXRmb3JtRGV2aWNlKCkpKTsKKwor
ICAgIHVzaW5nIFV2QXZhaWxhYmlsaXR5ID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6
OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk7CisKKyAgICBzd2l0Y2ggKG9wdGlvbnMudXNl
clZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSgpKSB7CisgICAgY2FzZSBVdkF2YWlsYWJpbGl0eTo6
a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQ6CisgICAgICAgIG9wdGlvbk1hcC5lbXBsYWNlKENCT1JW
YWx1ZShrVXNlclZlcmlmaWNhdGlvbk1hcEtleSksIENCT1JWYWx1ZSh0cnVlKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVXZBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1
cmVkOgorICAgICAgICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFsdWUoa1VzZXJWZXJpZmljYXRp
b25NYXBLZXkpLCBDQk9SVmFsdWUoZmFsc2UpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBV
dkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisg
ICAgdXNpbmcgQ2xpZW50UGluQXZhaWxhYmlsaXR5ID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTsKKworICAgIHN3aXRjaCAob3B0aW9ucy5jbGll
bnRQaW5BdmFpbGFiaWxpdHkoKSkgeworICAgIGNhc2UgQ2xpZW50UGluQXZhaWxhYmlsaXR5Ojpr
U3VwcG9ydGVkQW5kUGluU2V0OgorICAgICAgICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFsdWUo
a0NsaWVudFBpbk1hcEtleSksIENCT1JWYWx1ZSh0cnVlKSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0UGluTm90U2V0OgorICAg
ICAgICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFsdWUoa0NsaWVudFBpbk1hcEtleSksIENCT1JW
YWx1ZShmYWxzZSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENsaWVudFBpbkF2YWlsYWJp
bGl0eTo6a05vdFN1cHBvcnRlZDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJu
IENCT1JWYWx1ZShXVEZNb3ZlKG9wdGlvbk1hcCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBmaWRv
CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBv
cnRlZE9wdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzQwYWU0YmU0MjYxNGM3MTRlNTdmYWY2YTQ0NjVj
N2YyZmY5OTE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgKQEAgLTAsMCArMSw5NiBA
QAorLy8gQ29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8v
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
Ly8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
Ly8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJDQk9SVmFsdWUuaCIK
KyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgZmlkbyB7CisKKy8vIFJlcHJl
c2VudHMgQ1RBUCBkZXZpY2UgcHJvcGVydGllcyBhbmQgY2FwYWJpbGl0aWVzIHJlY2VpdmVkIGFz
IGEgcmVzcG9uc2UgdG8KKy8vIEF1dGhlbnRpY2F0b3JHZXRJbmZvIGNvbW1hbmQuCitjbGFzcyBX
RUJDT1JFX0VYUE9SVCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMpOworcHVibGljOgor
ICAgIGVudW0gY2xhc3MgVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSB7CisgICAgICAgIC8v
IGUuZy4gQXV0aGVudGljYXRvciB3aXRoIGZpbmdlciBwcmludCBzZW5zb3IgYW5kIHVzZXIncyBm
aW5nZXJwcmludCBpcworICAgICAgICAvLyByZWdpc3RlcmVkIHRvIHRoZSBkZXZpY2UuCisgICAg
ICAgIGtTdXBwb3J0ZWRBbmRDb25maWd1cmVkLAorICAgICAgICAvLyBlLmcuIEF1dGhlbnRpY2F0
b3Igd2l0aCBmaW5nZXJwcmludCBzZW5zb3Igd2l0aG91dCB1c2VyJ3MgZmluZ2VycHJpbnQKKyAg
ICAgICAgLy8gcmVnaXN0ZXJlZC4KKyAgICAgICAga1N1cHBvcnRlZEJ1dE5vdENvbmZpZ3VyZWQs
CisgICAgICAgIGtOb3RTdXBwb3J0ZWQKKyAgICB9OworCisgICAgZW51bSBjbGFzcyBDbGllbnRQ
aW5BdmFpbGFiaWxpdHkgeworICAgICAgICBrU3VwcG9ydGVkQW5kUGluU2V0LAorICAgICAgICBr
U3VwcG9ydGVkQnV0UGluTm90U2V0LAorICAgICAgICBrTm90U3VwcG9ydGVkLAorICAgIH07CisK
KyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucygpID0gZGVmYXVsdDsKKyAgICBBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyhBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYm
KSA9IGRlZmF1bHQ7CisgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIG9wZXJhdG9y
PShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYmKSA9IGRlZmF1bHQ7CisKKyAgICBBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0SXNQbGF0Zm9ybURldmljZShib29sKTsKKyAg
ICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0U3VwcG9ydHNSZXNpZGVudEtleShi
b29sKTsKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0VXNlclZlcmlmaWNh
dGlvbkF2YWlsYWJpbGl0eShVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KTsKKyAgICBBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0VXNlclByZXNlbmNlUmVxdWlyZWQoYm9vbCk7
CisgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIHNldENsaWVudFBpbkF2YWlsYWJp
bGl0eShDbGllbnRQaW5BdmFpbGFiaWxpdHkpOworCisgICAgYm9vbCBpc1BsYXRmb3JtRGV2aWNl
KCkgY29uc3QgeyByZXR1cm4gbV9pc1BsYXRmb3JtRGV2aWNlOyB9CisgICAgYm9vbCBzdXBwb3J0
c1Jlc2lkZW50S2V5KCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c1Jlc2lkZW50S2V5OyB9Cisg
ICAgVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSB1c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmls
aXR5KCkgY29uc3QgeyByZXR1cm4gbV91c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OyB9Cisg
ICAgYm9vbCB1c2VyUHJlc2VuY2VSZXF1aXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclByZXNl
bmNlUmVxdWlyZWQ7IH0KKyAgICBDbGllbnRQaW5BdmFpbGFiaWxpdHkgY2xpZW50UGluQXZhaWxh
YmlsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRQaW5BdmFpbGFiaWxpdHk7IH0KKworcHJp
dmF0ZToKKyAgICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgZGV2aWNlIGlzIGF0dGFjaGVkIHRvIHRo
ZSBjbGllbnQgYW5kIHRoZXJlZm9yZSBjYW4ndCBiZQorICAgIC8vIHJlbW92ZWQgYW5kIHVzZWQg
b24gYW5vdGhlciBjbGllbnQuCisgICAgYm9vbCBtX2lzUGxhdGZvcm1EZXZpY2UgeyBmYWxzZSB9
OworICAgIC8vIEluZGljYXRlcyB0aGF0IHRoZSBkZXZpY2UgaXMgY2FwYWJsZSBvZiBzdG9yaW5n
IGtleXMgb24gdGhlIGRldmljZSBpdHNlbGYKKyAgICAvLyBhbmQgdGhlcmVmb3JlIGNhbiBzYXRp
c2Z5IHRoZSBhdXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9uIHJlcXVlc3Qgd2l0aAorICAgIC8vIGFs
bG93TGlzdCBwYXJhbWV0ZXIgbm90IHNwZWNpZmllZCBvciBlbXB0eS4KKyAgICBib29sIG1fc3Vw
cG9ydHNSZXNpZGVudEtleSB7IGZhbHNlIH07CisgICAgLy8gSW5kaWNhdGVzIHdoZXRoZXIgdGhl
IGRldmljZSBpcyBjYXBhYmxlIG9mIHZlcmlmeWluZyB0aGUgdXNlciBvbiBpdHMgb3duLgorICAg
IFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgbV91c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmls
aXR5IHsgVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCB9OworICAg
IGJvb2wgbV91c2VyUHJlc2VuY2VSZXF1aXJlZCB7IHRydWUgfTsKKyAgICAvLyBSZXByZXNlbnRz
IHdoZXRoZXIgY2xpZW50IHBpbiBpbiBzZXQgYW5kIHN0b3JlZCBpbiBkZXZpY2UuIFNldCBhcyBu
dWxsCisgICAgLy8gb3B0aW9uYWwgaWYgY2xpZW50IHBpbiBjYXBhYmlsaXR5IGlzIG5vdCBzdXBw
b3J0ZWQgYnkgdGhlIGF1dGhlbnRpY2F0b3IuCisgICAgQ2xpZW50UGluQXZhaWxhYmlsaXR5IG1f
Y2xpZW50UGluQXZhaWxhYmlsaXR5IHsgQ2xpZW50UGluQXZhaWxhYmlsaXR5OjprTm90U3VwcG9y
dGVkIH07Cit9OworCitXRUJDT1JFX0VYUE9SVCBjYm9yOjpDQk9SVmFsdWUgY29udmVydFRvQ0JP
Uihjb25zdCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYpOworCit9IC8vIG5hbWVzcGFj
ZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252
ZXJ0ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MWZmNGFlZTgyYTZjYWQyZTAzMDM1NjcwNGQ5N2E1OThh
NzA4ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAKQEAgLTAsMCArMSwxODMgQEAKKy8vIENv
cHlyaWdodCAyMDE3IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8v
CisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3Ry
aWJ1dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8g
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkRldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCIKKworI2lmIEVOQUJMRShX
RUJfQVVUSE4pCisKKyNpbmNsdWRlICJDQk9SV3JpdGVyLmgiCisjaW5jbHVkZSAiUHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oIgorI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNl
IGZpZG8gewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgY2JvcjsK
KwordXNpbmcgVVZBdmFpbGFiaWxpdHkgPSBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6
VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTsKKworc3RhdGljIENCT1JWYWx1ZSBjb252ZXJ0
UnBFbnRpdHlUb0NCT1IoY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6
UnBFbnRpdHkmIHJwRW50aXR5KQoreworICAgIENCT1JWYWx1ZTo6TWFwVmFsdWUgcnBNYXA7Cisg
ICAgcnBNYXAuZW1wbGFjZShDQk9SVmFsdWUoa0VudGl0eU5hbWVNYXBLZXkpLCBDQk9SVmFsdWUo
cnBFbnRpdHkubmFtZSkpOworICAgIGlmICghcnBFbnRpdHkuaWNvbi5pc0VtcHR5KCkpCisgICAg
ICAgIHJwTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtJY29uVXJsTWFwS2V5KSwgQ0JPUlZhbHVlKHJw
RW50aXR5Lmljb24pKTsKKyAgICBpZiAoIXJwRW50aXR5LmlkLmlzRW1wdHkoKSkKKyAgICAgICAg
cnBNYXAuZW1wbGFjZShDQk9SVmFsdWUoa0VudGl0eUlkTWFwS2V5KSwgQ0JPUlZhbHVlKHJwRW50
aXR5LmlkKSk7CisKKyAgICByZXR1cm4gQ0JPUlZhbHVlKFdURk1vdmUocnBNYXApKTsKK30KKwor
c3RhdGljIENCT1JWYWx1ZSBjb252ZXJ0VXNlckVudGl0eVRvQ0JPUihjb25zdCBQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpVc2VyRW50aXR5JiB1c2VyRW50aXR5KQoreworICAg
IENCT1JWYWx1ZTo6TWFwVmFsdWUgdXNlck1hcDsKKyAgICB1c2VyTWFwLmVtcGxhY2UoQ0JPUlZh
bHVlKGtFbnRpdHlOYW1lTWFwS2V5KSwgQ0JPUlZhbHVlKHVzZXJFbnRpdHkubmFtZSkpOworICAg
IGlmICghdXNlckVudGl0eS5pY29uLmlzRW1wdHkoKSkKKyAgICAgICAgdXNlck1hcC5lbXBsYWNl
KENCT1JWYWx1ZShrSWNvblVybE1hcEtleSksIENCT1JWYWx1ZSh1c2VyRW50aXR5Lmljb24pKTsK
KyAgICB1c2VyTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtFbnRpdHlJZE1hcEtleSksIENCT1JWYWx1
ZSh1c2VyRW50aXR5LmlkVmVjdG9yKSk7CisgICAgdXNlck1hcC5lbXBsYWNlKENCT1JWYWx1ZShr
RGlzcGxheU5hbWVNYXBLZXkpLCBDQk9SVmFsdWUodXNlckVudGl0eS5kaXNwbGF5TmFtZSkpOwor
ICAgIHJldHVybiBDQk9SVmFsdWUoV1RGTW92ZSh1c2VyTWFwKSk7Cit9CisKK3N0YXRpYyBDQk9S
VmFsdWUgY29udmVydFBhcmFtZXRlcnNUb0NCT1IoY29uc3QgVmVjdG9yPFB1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+JiBwYXJhbWV0ZXJzKQoreworICAgIENC
T1JWYWx1ZTo6QXJyYXlWYWx1ZSBjcmVkZW50aWFsUGFyYW1BcnJheTsKKyAgICBjcmVkZW50aWFs
UGFyYW1BcnJheS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHBhcmFtZXRlcnMuc2l6ZSgpKTsKKyAg
ICBmb3IgKGNvbnN0IGF1dG8mIGNyZWRlbnRpYWwgOiBwYXJhbWV0ZXJzKSB7CisgICAgICAgIENC
T1JWYWx1ZTo6TWFwVmFsdWUgY2JvckNyZWRlbnRpYWxNYXA7CisgICAgICAgIGNib3JDcmVkZW50
aWFsTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtDcmVkZW50aWFsVHlwZU1hcEtleSksIENCT1JWYWx1
ZShwdWJsaWNLZXlDcmVkZW50aWFsVHlwZVRvU3RyaW5nKGNyZWRlbnRpYWwudHlwZSkpKTsKKyAg
ICAgICAgY2JvckNyZWRlbnRpYWxNYXAuZW1wbGFjZShDQk9SVmFsdWUoa0NyZWRlbnRpYWxBbGdv
cml0aG1NYXBLZXkpLCBDQk9SVmFsdWUoY3JlZGVudGlhbC5hbGcpKTsKKyAgICAgICAgY3JlZGVu
dGlhbFBhcmFtQXJyYXkuYXBwZW5kKFdURk1vdmUoY2JvckNyZWRlbnRpYWxNYXApKTsKKyAgICB9
CisgICAgcmV0dXJuIENCT1JWYWx1ZShXVEZNb3ZlKGNyZWRlbnRpYWxQYXJhbUFycmF5KSk7Cit9
CisKK3N0YXRpYyBDQk9SVmFsdWUgY29udmVydERlc2NyaXB0b3JUb0NCT1IoY29uc3QgUHVibGlj
S2V5Q3JlZGVudGlhbERlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCit7CisgICAgQ0JPUlZhbHVlOjpN
YXBWYWx1ZSBjYm9yRGVzY3JpcHRvck1hcDsKKyAgICBjYm9yRGVzY3JpcHRvck1hcFtDQk9SVmFs
dWUoa0NyZWRlbnRpYWxUeXBlS2V5KV0gPSBDQk9SVmFsdWUocHVibGljS2V5Q3JlZGVudGlhbFR5
cGVUb1N0cmluZyhkZXNjcmlwdG9yLnR5cGUpKTsKKyAgICBjYm9yRGVzY3JpcHRvck1hcFtDQk9S
VmFsdWUoa0NyZWRlbnRpYWxJZEtleSldID0gQ0JPUlZhbHVlKGRlc2NyaXB0b3IuaWRWZWN0b3Ip
OworICAgIHJldHVybiBDQk9SVmFsdWUoV1RGTW92ZShjYm9yRGVzY3JpcHRvck1hcCkpOworfQor
CitWZWN0b3I8dWludDhfdD4gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucyYgb3B0aW9ucywgVVZBdmFpbGFiaWxpdHkgdXZDYXBhYmlsaXR5KQoreworICAgIENC
T1JWYWx1ZTo6TWFwVmFsdWUgY2Jvck1hcDsKKyAgICBjYm9yTWFwW0NCT1JWYWx1ZSgxKV0gPSBD
Qk9SVmFsdWUoaGFzaCk7CisgICAgY2Jvck1hcFtDQk9SVmFsdWUoMildID0gY29udmVydFJwRW50
aXR5VG9DQk9SKG9wdGlvbnMucnApOworICAgIGNib3JNYXBbQ0JPUlZhbHVlKDMpXSA9IGNvbnZl
cnRVc2VyRW50aXR5VG9DQk9SKG9wdGlvbnMudXNlcik7CisgICAgY2Jvck1hcFtDQk9SVmFsdWUo
NCldID0gY29udmVydFBhcmFtZXRlcnNUb0NCT1Iob3B0aW9ucy5wdWJLZXlDcmVkUGFyYW1zKTsK
KyAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZUNyZWRlbnRpYWxzLmlzRW1wdHkoKSkgeworICAgICAg
ICBDQk9SVmFsdWU6OkFycmF5VmFsdWUgZXhjbHVkZUxpc3RBcnJheTsKKyAgICAgICAgZm9yIChj
b25zdCBhdXRvJiBkZXNjcmlwdG9yIDogb3B0aW9ucy5leGNsdWRlQ3JlZGVudGlhbHMpCisgICAg
ICAgICAgICBleGNsdWRlTGlzdEFycmF5LmFwcGVuZChjb252ZXJ0RGVzY3JpcHRvclRvQ0JPUihk
ZXNjcmlwdG9yKSk7CisgICAgICAgIGNib3JNYXBbQ0JPUlZhbHVlKDUpXSA9IENCT1JWYWx1ZShX
VEZNb3ZlKGV4Y2x1ZGVMaXN0QXJyYXkpKTsKKyAgICB9CisKKyAgICBDQk9SVmFsdWU6Ok1hcFZh
bHVlIG9wdGlvbk1hcDsKKyAgICBpZiAob3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uKSB7
CisgICAgICAgIC8vIFJlc2lkZW50IGtleXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgZGVmYXVsdC4K
KyAgICAgICAgaWYgKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+cmVxdWlyZVJlc2lk
ZW50S2V5KQorICAgICAgICAgICAgb3B0aW9uTWFwW0NCT1JWYWx1ZShrUmVzaWRlbnRLZXlNYXBL
ZXkpXSA9IENCT1JWYWx1ZSh0cnVlKTsKKworICAgICAgICAvLyBVc2VyIHZlcmlmaWNhdGlvbiBp
cyBub3QgcmVxdWlyZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgYm9vbCByZXF1aXJlVXNlclZlcmlm
aWNhdGlvbiA9IGZhbHNlOworICAgICAgICBzd2l0Y2ggKG9wdGlvbnMuYXV0aGVudGljYXRvclNl
bGVjdGlvbi0+dXNlclZlcmlmaWNhdGlvbikgeworICAgICAgICBjYXNlIFVzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudDo6UmVxdWlyZWQ6CisgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNh
dGlvbiA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBVc2VyVmVyaWZp
Y2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZDoKKyAgICAgICAgICAgIHJlcXVpcmVVc2VyVmVy
aWZpY2F0aW9uID0gdXZDYXBhYmlsaXR5ID09IFVWQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVk
ID8gZmFsc2UgOiB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZDoKKyAgICAgICAgICAgIHJlcXVpcmVV
c2VyVmVyaWZpY2F0aW9uID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgb3B0aW9uTWFwW0NC
T1JWYWx1ZShrVXNlclZlcmlmaWNhdGlvbk1hcEtleSldID0gQ0JPUlZhbHVlKHJlcXVpcmVVc2Vy
VmVyaWZpY2F0aW9uKTsKKyAgICB9CisgICAgaWYgKCFvcHRpb25NYXAuZW1wdHkoKSkKKyAgICAg
ICAgY2Jvck1hcFtDQk9SVmFsdWUoNyldID0gQ0JPUlZhbHVlKFdURk1vdmUob3B0aW9uTWFwKSk7
CisKKyAgICBhdXRvIHNlcmlhbGl6ZWRQYXJhbSA9IENCT1JXcml0ZXI6OndyaXRlKENCT1JWYWx1
ZShXVEZNb3ZlKGNib3JNYXApKSk7CisgICAgQVNTRVJUKHNlcmlhbGl6ZWRQYXJhbSk7CisKKyAg
ICBWZWN0b3I8dWludDhfdD4gY2JvclJlcXVlc3QoeyBzdGF0aWNfY2FzdDx1aW50OF90PihDdGFw
UmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRpYWwpIH0pOworICAgIGNi
b3JSZXF1ZXN0LmFwcGVuZFZlY3Rvcigqc2VyaWFsaXplZFBhcmFtKTsKKyAgICByZXR1cm4gY2Jv
clJlcXVlc3Q7Cit9CisKK1ZlY3Rvcjx1aW50OF90PiBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0
QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zLCBVVkF2YWlsYWJpbGl0eSB1dkNhcGFiaWxpdHkp
Cit7CisgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBjYm9yTWFwOworICAgIGNib3JNYXBbQ0JPUlZh
bHVlKDEpXSA9IENCT1JWYWx1ZShvcHRpb25zLnJwSWQpOworICAgIGNib3JNYXBbQ0JPUlZhbHVl
KDIpXSA9IENCT1JWYWx1ZShoYXNoKTsKKworICAgIGlmICghb3B0aW9ucy5hbGxvd0NyZWRlbnRp
YWxzLmlzRW1wdHkoKSkgeworICAgICAgICBDQk9SVmFsdWU6OkFycmF5VmFsdWUgYWxsb3dMaXN0
QXJyYXk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgZGVzY3JpcHRvciA6IG9wdGlvbnMuYWxs
b3dDcmVkZW50aWFscykKKyAgICAgICAgICAgIGFsbG93TGlzdEFycmF5LmFwcGVuZChjb252ZXJ0
RGVzY3JpcHRvclRvQ0JPUihkZXNjcmlwdG9yKSk7CisgICAgICAgIGNib3JNYXBbQ0JPUlZhbHVl
KDMpXSA9IENCT1JWYWx1ZShXVEZNb3ZlKGFsbG93TGlzdEFycmF5KSk7CisgICAgfQorCisgICAg
Q0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25NYXA7CisgICAgaWYgKG9wdGlvbnMudXNlclZlcmlm
aWNhdGlvbikgeworICAgICAgICAvLyBVc2VyIHZlcmlmaWNhdGlvbiBpcyBub3QgcmVxdWlyZWQg
YnkgZGVmYXVsdC4KKyAgICAgICAgYm9vbCByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IGZhbHNl
OworICAgICAgICBzd2l0Y2ggKCpvcHRpb25zLnVzZXJWZXJpZmljYXRpb24pIHsKKyAgICAgICAg
Y2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlJlcXVpcmVkOgorICAgICAgICAgICAg
cmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQ6CisgICAgICAg
ICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IHV2Q2FwYWJpbGl0eSA9PSBVVkF2YWlsYWJp
bGl0eTo6a05vdFN1cHBvcnRlZCA/IGZhbHNlIDogdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlzY291cmFnZWQ6Cisg
ICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IGZhbHNlOworICAgICAgICB9Cisg
ICAgICAgIG9wdGlvbk1hcFtDQk9SVmFsdWUoa1VzZXJWZXJpZmljYXRpb25NYXBLZXkpXSA9IENC
T1JWYWx1ZShyZXF1aXJlVXNlclZlcmlmaWNhdGlvbik7CisgICAgICAgIG9wdGlvbk1hcFtDQk9S
VmFsdWUoa1VzZXJQcmVzZW5jZU1hcEtleSldID0gQ0JPUlZhbHVlKCFyZXF1aXJlVXNlclZlcmlm
aWNhdGlvbik7CisgICAgfQorICAgIGlmICghb3B0aW9uTWFwLmVtcHR5KCkpCisgICAgICAgIGNi
b3JNYXBbQ0JPUlZhbHVlKDUpXSA9IENCT1JWYWx1ZShXVEZNb3ZlKG9wdGlvbk1hcCkpOworCisg
ICAgYXV0byBzZXJpYWxpemVkUGFyYW0gPSBDQk9SV3JpdGVyOjp3cml0ZShDQk9SVmFsdWUoV1RG
TW92ZShjYm9yTWFwKSkpOworICAgIEFTU0VSVChzZXJpYWxpemVkUGFyYW0pOworCisgICAgVmVj
dG9yPHVpbnQ4X3Q+IGNib3JSZXF1ZXN0KHsgc3RhdGljX2Nhc3Q8dWludDhfdD4oQ3RhcFJlcXVl
c3RDb21tYW5kOjprQXV0aGVudGljYXRvckdldEFzc2VydGlvbikgfSk7CisgICAgY2JvclJlcXVl
c3QuYXBwZW5kVmVjdG9yKCpzZXJpYWxpemVkUGFyYW0pOworICAgIHJldHVybiBjYm9yUmVxdWVz
dDsKK30KKworVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUVtcHR5QXV0aGVudGljYXRvclJlcXVlc3Qo
Q3RhcFJlcXVlc3RDb21tYW5kIGNtZCkKK3sKKyAgICByZXR1cm4geyBzdGF0aWNfY2FzdDx1aW50
OF90PihjbWQpIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWNjM2Zm
NjJiOTUyNDlmNDg3YjIyY2U4NGFjNDE3OWY0YzMxODZmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIu
aApAQCAtMCwwICsxLDYyIEBACisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgQ2hyb21pdW0gQXV0aG9y
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisv
LyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
Ly8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1
ZGUgIkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgiCisjaW5jbHVkZSAiRmlkb0NvbnN0
YW50cy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K3N0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOworc3RydWN0IFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKK30KKworbmFtZXNwYWNlIGZpZG8geworCisv
LyBTZXJpYWxpemVzIE1ha2VDcmVkZW50aWFsIHJlcXVlc3QgcGFyYW1ldGVyIGludG8gQ0JPUiBl
bmNvZGVkIG1hcCB3aXRoCisvLyBpbnRlZ2VyIGtleXMgYW5kIENCT1IgZW5jb2RlZCB2YWx1ZXMg
YXMgZGVmaW5lZCBieSB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3Jn
L3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9y
LXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRp
YWwKK1dFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJl
cXVlc3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQ
dWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwgQXV0aGVudGljYXRvclN1cHBvcnRl
ZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkpOworCisvLyBTZXJpYWxpemVz
IEdldEFzc2VydGlvbiByZXF1ZXN0IHBhcmFtZXRlciBpbnRvIENCT1IgZW5jb2RlZCBtYXAgd2l0
aAorLy8gaW50ZWdlciBrZXlzIGFuZCBDQk9SIGVuY29kZWQgdmFsdWVzIGFzIGRlZmluZWQgYnkg
dGhlIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYy
LjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4w
LXBzLTIwMTcwOTI3Lmh0bWwjYXV0aGVudGljYXRvckdldEFzc2VydGlvbgorV0VCQ09SRV9FWFBP
UlQgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IoY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFs
UmVxdWVzdE9wdGlvbnMmLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlm
aWNhdGlvbkF2YWlsYWJpbGl0eSk7CisKKy8vIFJlcHJlc2VudHMgQ1RBUCByZXF1ZXN0cyB3aXRo
IGVtcHR5IHBhcmFtZXRlcnMsIGluY2x1ZGluZworLy8gQXV0aGVudGljYXRvckdldEluZm8sIEF1
dGhlbnRpY2F0b3JDYW5jZWwsIEF1dGhlbnRpY2F0b3JSZXNldCBhbmQKKy8vIEF1dGhlbnRpY2F0
b3JHZXROZXh0QXNzZXJ0aW9uIGNvbW1hbmRzLgorV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHVpbnQ4
X3Q+IGVuY29kZUVtcHR5QXV0aGVudGljYXRvclJlcXVlc3QoQ3RhcFJlcXVlc3RDb21tYW5kKTsK
KworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNw
b25zZUNvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
RGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmNmE5NTliODNkM2UwMDFl
OTQ4ZTI0MDEwODNhNTI3MzEzZWY3ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCkBAIC0w
LDAgKzEsMzEyIEBACisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBt
ZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8K
Ky8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VSZXNwb25zZUNvbnZlcnRl
ci5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JT
dXBwb3J0ZWRPcHRpb25zLmgiCisjaW5jbHVkZSAiQ0JPUlJlYWRlci5oIgorI2luY2x1ZGUgIkNC
T1JXcml0ZXIuaCIKKyNpbmNsdWRlIDx3dGYvU3RkU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgorCituYW1lc3BhY2UgZmlkbyB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5n
IENCT1IgPSBjYm9yOjpDQk9SVmFsdWU7CisKK2NvbnN0ZXhwciBzaXplX3Qga1Jlc3BvbnNlQ29k
ZUxlbmd0aCA9IDE7CisKK3N0YXRpYyBQcm90b2NvbFZlcnNpb24gY29udmVydFN0cmluZ1RvUHJv
dG9jb2xWZXJzaW9uKGNvbnN0IFN0cmluZyYgdmVyc2lvbikKK3sKKyAgICBpZiAodmVyc2lvbiA9
PSBrQ3RhcDJWZXJzaW9uKQorICAgICAgICByZXR1cm4gUHJvdG9jb2xWZXJzaW9uOjprQ3RhcDsK
KyAgICBpZiAodmVyc2lvbiA9PSBrVTJmVmVyc2lvbikKKyAgICAgICAgcmV0dXJuIFByb3RvY29s
VmVyc2lvbjo6a1UyZjsKKworICAgIHJldHVybiBQcm90b2NvbFZlcnNpb246OmtVbmtub3duOwor
fQorCitDdGFwRGV2aWNlUmVzcG9uc2VDb2RlIGdldFJlc3BvbnNlQ29kZShjb25zdCBWZWN0b3I8
dWludDhfdD4mIGJ1ZmZlcikKK3sKKyAgICBpZiAoYnVmZmVyLmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRDQk9SOworCisg
ICAgYXV0byBjb2RlID0gc3RhdGljX2Nhc3Q8Q3RhcERldmljZVJlc3BvbnNlQ29kZT4oYnVmZmVy
WzBdKTsKKyAgICByZXR1cm4gaXNDdGFwRGV2aWNlUmVzcG9uc2VDb2RlKGNvZGUpID8gY29kZSA6
IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRDQk9SOworfQorCitzdGF0
aWMgVmVjdG9yPHVpbnQ4X3Q+IGdldENyZWRlbnRpYWxJZChjb25zdCBWZWN0b3I8dWludDhfdD4m
IGF1dGhlbnRpY2F0b3JEYXRhKQoreworICAgIGNvbnN0IHNpemVfdCBjcmVkZW50aWFsSWRMZW5n
dGhPZmZzZXQgPSBrUnBJZEhhc2hMZW5ndGggKyBrRmxhZ3NMZW5ndGggKyBrU2lnbkNvdW50ZXJM
ZW5ndGggKyBrQWFndWlkTGVuZ3RoOworCisgICAgaWYgKGF1dGhlbnRpY2F0b3JEYXRhLnNpemUo
KSA8IGNyZWRlbnRpYWxJZExlbmd0aE9mZnNldCArIGtDcmVkZW50aWFsSWRMZW5ndGhMZW5ndGgp
CisgICAgICAgIHJldHVybiB7IH07CisgICAgc2l6ZV90IGNyZWRlbnRpYWxJZExlbmd0aCA9IChz
dGF0aWNfY2FzdDxzaXplX3Q+KGF1dGhlbnRpY2F0b3JEYXRhW2NyZWRlbnRpYWxJZExlbmd0aE9m
ZnNldF0pIDw8IDgpIHwgc3RhdGljX2Nhc3Q8c2l6ZV90PihhdXRoZW50aWNhdG9yRGF0YVtjcmVk
ZW50aWFsSWRMZW5ndGhPZmZzZXQgKyAxXSk7CisKKyAgICBpZiAoYXV0aGVudGljYXRvckRhdGEu
c2l6ZSgpIDwgY3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0ICsga0NyZWRlbnRpYWxJZExlbmd0aExl
bmd0aCArIGNyZWRlbnRpYWxJZExlbmd0aCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBWZWN0
b3I8dWludDhfdD4gY3JlZGVudGlhbElkOworICAgIGNyZWRlbnRpYWxJZC5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KGNyZWRlbnRpYWxJZExlbmd0aCk7CisgICAgYXV0byBiZWdpbkl0ID0gYXV0aGVu
dGljYXRvckRhdGEuYmVnaW4oKSArIGNyZWRlbnRpYWxJZExlbmd0aE9mZnNldCArIGtDcmVkZW50
aWFsSWRMZW5ndGhMZW5ndGg7CisgICAgY3JlZGVudGlhbElkLmFwcGVuZFJhbmdlKGJlZ2luSXQs
IGJlZ2luSXQgKyBjcmVkZW50aWFsSWRMZW5ndGgpOworICAgIHJldHVybiBjcmVkZW50aWFsSWQ7
Cit9CisKKworLy8gRGVjb2RlcyBieXRlIGFycmF5IHJlc3BvbnNlIGZyb20gYXV0aGVudGljYXRv
ciB0byBDQk9SIHZhbHVlIG9iamVjdCBhbmQKKy8vIGNoZWNrcyBmb3IgY29ycmVjdCBlbmNvZGlu
ZyBmb3JtYXQuCitzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhPiByZWFkQ1RB
UE1ha2VDcmVkZW50aWFsUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpbkJ1ZmZlcikK
K3sKKyAgICBpZiAoaW5CdWZmZXIuc2l6ZSgpIDw9IGtSZXNwb25zZUNvZGVMZW5ndGgpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8dWludDhfdD4gYnVmZmVyOwor
ICAgIGJ1ZmZlci5hcHBlbmQoaW5CdWZmZXIuZGF0YSgpICsgMSwgaW5CdWZmZXIuc2l6ZSgpIC0g
MSk7CisgICAgc3RkOjpvcHRpb25hbDxDQk9SPiBkZWNvZGVkUmVzcG9uc2UgPSBjYm9yOjpDQk9S
UmVhZGVyOjpyZWFkKGJ1ZmZlcik7CisgICAgaWYgKCFkZWNvZGVkUmVzcG9uc2UgfHwgIWRlY29k
ZWRSZXNwb25zZS0+aXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBj
b25zdCBhdXRvJiBkZWNvZGVkTWFwID0gZGVjb2RlZFJlc3BvbnNlLT5nZXRNYXAoKTsKKworICAg
IGF1dG8gaXQgPSBkZWNvZGVkTWFwLmZpbmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ID09IGRlY29k
ZWRNYXAuZW5kKCkgfHwgIWl0LT5zZWNvbmQuaXNTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICBhdXRvIGZvcm1hdCA9IGl0LT5zZWNvbmQuY2xvbmUoKTsKKworICAg
IGl0ID0gZGVjb2RlZE1hcC5maW5kKENCT1IoMikpOworICAgIGlmIChpdCA9PSBkZWNvZGVkTWFw
LmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgIGF1dG8gYXV0aGVudGljYXRvckRhdGEgPSBpdC0+c2Vjb25kLmNsb25l
KCk7CisKKyAgICBhdXRvIGNyZWRlbnRpYWxJZCA9IGdldENyZWRlbnRpYWxJZChhdXRoZW50aWNh
dG9yRGF0YS5nZXRCeXRlU3RyaW5nKCkpOworICAgIGlmIChjcmVkZW50aWFsSWQuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgaXQgPSBkZWNvZGVkTWFwLmZp
bmQoQ0JPUigzKSk7CisgICAgaWYgKGl0ID09IGRlY29kZWRNYXAuZW5kKCkgfHwgIWl0LT5zZWNv
bmQuaXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBhdXRvIGF0dFN0
bXQgPSBpdC0+c2Vjb25kLmNsb25lKCk7CisKKyAgICBDQk9SOjpNYXBWYWx1ZSBhdHRlc3RhdGlv
bk9iamVjdE1hcDsKKyAgICBhdHRlc3RhdGlvbk9iamVjdE1hcFtDQk9SKCJhdXRoRGF0YSIpXSA9
IFdURk1vdmUoYXV0aGVudGljYXRvckRhdGEpOworICAgIGF0dGVzdGF0aW9uT2JqZWN0TWFwW0NC
T1IoImZtdCIpXSA9IFdURk1vdmUoZm9ybWF0KTsKKyAgICBhdHRlc3RhdGlvbk9iamVjdE1hcFtD
Qk9SKCJhdHRTdG10IildID0gV1RGTW92ZShhdHRTdG10KTsKKyAgICBhdXRvIGF0dGVzdGF0aW9u
T2JqZWN0ID0gY2Jvcjo6Q0JPUldyaXRlcjo6d3JpdGUoQ0JPUihXVEZNb3ZlKGF0dGVzdGF0aW9u
T2JqZWN0TWFwKSkpOworCisgICAgcmV0dXJuIFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgQXJy
YXlCdWZmZXI6OmNyZWF0ZShjcmVkZW50aWFsSWQuZGF0YSgpLCBjcmVkZW50aWFsSWQuc2l6ZSgp
KSwgdHJ1ZSwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdHRlc3RhdGlvbk9iamVjdC52
YWx1ZSgpLmRhdGEoKSwgYXR0ZXN0YXRpb25PYmplY3QudmFsdWUoKS5zaXplKCkpLCBudWxscHRy
LCBudWxscHRyLCBudWxscHRyIH07Cit9CisKK3N0ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3JlZGVu
dGlhbERhdGE+IHJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiBpbkJ1ZmZlcikKK3sKKyAgICBpZiAoaW5CdWZmZXIuc2l6ZSgpIDw9IGtSZXNwb25zZUNv
ZGVMZW5ndGgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8dWlu
dDhfdD4gYnVmZmVyOworICAgIGJ1ZmZlci5hcHBlbmQoaW5CdWZmZXIuZGF0YSgpICsgMSwgaW5C
dWZmZXIuc2l6ZSgpIC0gMSk7CisgICAgc3RkOjpvcHRpb25hbDxDQk9SPiBkZWNvZGVkUmVzcG9u
c2UgPSBjYm9yOjpDQk9SUmVhZGVyOjpyZWFkKGJ1ZmZlcik7CisKKyAgICBpZiAoIWRlY29kZWRS
ZXNwb25zZSB8fCAhZGVjb2RlZFJlc3BvbnNlLT5pc01hcCgpKQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgYXV0byYgcmVzcG9uc2VNYXAgPSBkZWNvZGVkUmVzcG9uc2UtPmdl
dE1hcCgpOworCisgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVkZW50aWFsSWQ7CisgICAgYXV0
byBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNl
TWFwLmVuZCgpICYmIGl0LT5zZWNvbmQuaXNNYXAoKSkgeworICAgICAgICBhdXRvJiBjcmVkZW50
aWFsID0gaXQtPnNlY29uZC5nZXRNYXAoKTsKKyAgICAgICAgYXV0byBpdHIgPSBjcmVkZW50aWFs
LmZpbmQoQ0JPUihrQ3JlZGVudGlhbElkS2V5KSk7CisgICAgICAgIGlmIChpdHIgPT0gY3JlZGVu
dGlhbC5lbmQoKSB8fCAhaXRyLT5zZWNvbmQuaXNCeXRlU3RyaW5nKCkpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBhdXRvJiBpZCA9IGl0ci0+c2Vjb25kLmdldEJ5
dGVTdHJpbmcoKTsKKyAgICAgICAgY3JlZGVudGlhbElkID0gQXJyYXlCdWZmZXI6OmNyZWF0ZShp
ZC5kYXRhKCksIGlkLnNpemUoKSk7CisgICAgfQorCisgICAgaXQgPSByZXNwb25zZU1hcC5maW5k
KENCT1IoMikpOworICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5lbmQoKSB8fCAhaXQtPnNlY29u
ZC5pc0J5dGVTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBhdXRv
JiBhdXRoRGF0YSA9IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOworCisgICAgaXQgPSByZXNw
b25zZU1hcC5maW5kKENCT1IoMykpOworICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5lbmQoKSB8
fCAhaXQtPnNlY29uZC5pc0J5dGVTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICBhdXRvJiBzaWduYXR1cmUgPSBpdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKTsKKwor
ICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gdXNlckhhbmRsZTsKKyAgICB7CisgICAgICAgIGl0ID0g
cmVzcG9uc2VNYXAuZmluZChDQk9SKDQpKTsKKyAgICAgICAgaWYgKGl0ID09IHJlc3BvbnNlTWFw
LmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzTWFwKCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworICAgICAgICBhdXRvJiB1c2VyID0gaXQtPnNlY29uZC5nZXRNYXAoKTsKKyAgICAg
ICAgYXV0byBpdHIgPSB1c2VyLmZpbmQoQ0JPUihrRW50aXR5SWRNYXBLZXkpKTsKKyAgICAgICAg
aWYgKGl0ciA9PSB1c2VyLmVuZCgpIHx8ICFpdHItPnNlY29uZC5pc0J5dGVTdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGF1dG8mIGlkID0gaXRyLT5z
ZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOworICAgICAgICB1c2VySGFuZGxlID0gQXJyYXlCdWZmZXI6
OmNyZWF0ZShpZC5kYXRhKCksIGlkLnNpemUoKSk7CisgICAgfQorCisgICAgcmV0dXJuIFB1Ymxp
Y0tleUNyZWRlbnRpYWxEYXRhIHsgV1RGTW92ZShjcmVkZW50aWFsSWQpLCBmYWxzZSwgbnVsbHB0
ciwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdXRoRGF0YS5kYXRhKCksIGF1dGhEYXRh
LnNpemUoKSksIEFycmF5QnVmZmVyOjpjcmVhdGUoc2lnbmF0dXJlLmRhdGEoKSwgc2lnbmF0dXJl
LnNpemUoKSksIFdURk1vdmUodXNlckhhbmRsZSkgfTsKK30KKworc3RkOjpvcHRpb25hbDxBdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlPiByZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGluQnVmZmVyKQoreworICAgIGlmIChpbkJ1ZmZlci5zaXplKCkgPD0g
a1Jlc3BvbnNlQ29kZUxlbmd0aCB8fCBnZXRSZXNwb25zZUNvZGUoaW5CdWZmZXIpICE9IEN0YXBE
ZXZpY2VSZXNwb25zZUNvZGU6OmtTdWNjZXNzKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKKyAgICBidWZmZXIuYXBwZW5kKGluQnVm
ZmVyLmRhdGEoKSArIDEsIGluQnVmZmVyLnNpemUoKSAtIDEpOworICAgIHN0ZDo6b3B0aW9uYWw8
Q0JPUj4gZGVjb2RlZFJlc3BvbnNlID0gY2Jvcjo6Q0JPUlJlYWRlcjo6cmVhZChidWZmZXIpOwor
ICAgIGlmICghZGVjb2RlZFJlc3BvbnNlIHx8ICFkZWNvZGVkUmVzcG9uc2UtPmlzTWFwKCkpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgY29uc3QgYXV0byYgcmVzcG9uc2VNYXAg
PSBkZWNvZGVkUmVzcG9uc2UtPmdldE1hcCgpOworCisgICAgYXV0byBpdCA9IHJlc3BvbnNlTWFw
LmZpbmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ID09IHJlc3BvbnNlTWFwLmVuZCgpIHx8ICFpdC0+
c2Vjb25kLmlzQXJyYXkoKSB8fCBpdC0+c2Vjb25kLmdldEFycmF5KCkuc2l6ZSgpID4gMikKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBTdGRTZXQ8UHJvdG9jb2xWZXJzaW9uPiBw
cm90b2NvbFZlcnNpb25zOworICAgIGZvciAoY29uc3QgYXV0byYgdmVyc2lvbiA6IGl0LT5zZWNv
bmQuZ2V0QXJyYXkoKSkgeworICAgICAgICBpZiAoIXZlcnNpb24uaXNTdHJpbmcoKSkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgYXV0byBwcm90b2NvbCA9IGNv
bnZlcnRTdHJpbmdUb1Byb3RvY29sVmVyc2lvbih2ZXJzaW9uLmdldFN0cmluZygpKTsKKyAgICAg
ICAgaWYgKHByb3RvY29sID09IFByb3RvY29sVmVyc2lvbjo6a1Vua25vd24pIHsKKyAgICAgICAg
ICAgIExPR19FUlJPUigiVW5leHBlY3RlZCBwcm90b2NvbCB2ZXJzaW9uIHJlY2VpdmVkLiIpOwor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXByb3RvY29s
VmVyc2lvbnMuaW5zZXJ0KHByb3RvY29sKS5zZWNvbmQpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgIH0KKyAgICBpZiAocHJvdG9jb2xWZXJzaW9ucy5lbXB0eSgpKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgaXQgPSByZXNwb25zZU1hcC5maW5kKENC
T1IoMykpOworICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5lbmQoKSB8fCAhaXQtPnNlY29uZC5p
c0J5dGVTdHJpbmcoKSB8fCBpdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKS5zaXplKCkgIT0ga0Fh
Z3VpZExlbmd0aCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIEF1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UgcmVzcG9uc2UoV1RGTW92ZShwcm90b2NvbFZlcnNpb25zKSwg
VmVjdG9yPHVpbnQ4X3Q+KGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpKSk7CisKKyAgICBpdCA9
IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUigyKSk7CisgICAgaWYgKGl0ICE9IHJlc3BvbnNlTWFwLmVu
ZCgpKSB7CisgICAgICAgIGlmICghaXQtPnNlY29uZC5pc0FycmF5KCkpCisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGV4dGVuc2lvbnM7
CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgZXh0ZW5zaW9uIDogaXQtPnNlY29uZC5nZXRBcnJh
eSgpKSB7CisgICAgICAgICAgICBpZiAoIWV4dGVuc2lvbi5pc1N0cmluZygpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIGV4dGVuc2lvbnMuYXBw
ZW5kKGV4dGVuc2lvbi5nZXRTdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmVzcG9uc2Uu
c2V0RXh0ZW5zaW9ucyhXVEZNb3ZlKGV4dGVuc2lvbnMpKTsKKyAgICB9CisKKyAgICBBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBvcHRpb25zOworICAgIGl0ID0gcmVzcG9uc2VNYXAuZmlu
ZChDQk9SKDQpKTsKKyAgICBpZiAoaXQgIT0gcmVzcG9uc2VNYXAuZW5kKCkpIHsKKyAgICAgICAg
aWYgKCFpdC0+c2Vjb25kLmlzTWFwKCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworICAgICAgICBjb25zdCBhdXRvJiBvcHRpb25NYXAgPSBpdC0+c2Vjb25kLmdldE1hcCgpOwor
ICAgICAgICBhdXRvIG9wdGlvbk1hcEl0ID0gb3B0aW9uTWFwLmZpbmQoQ0JPUihrUGxhdGZvcm1E
ZXZpY2VNYXBLZXkpKTsKKyAgICAgICAgaWYgKG9wdGlvbk1hcEl0ICE9IG9wdGlvbk1hcC5lbmQo
KSkgeworICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJdC0+c2Vjb25kLmlzQm9vbCgpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIG9wdGlvbnMu
c2V0SXNQbGF0Zm9ybURldmljZShvcHRpb25NYXBJdC0+c2Vjb25kLmdldEJvb2woKSk7CisgICAg
ICAgIH0KKworICAgICAgICBvcHRpb25NYXBJdCA9IG9wdGlvbk1hcC5maW5kKENCT1Ioa1Jlc2lk
ZW50S2V5TWFwS2V5KSk7CisgICAgICAgIGlmIChvcHRpb25NYXBJdCAhPSBvcHRpb25NYXAuZW5k
KCkpIHsKKyAgICAgICAgICAgIGlmICghb3B0aW9uTWFwSXQtPnNlY29uZC5pc0Jvb2woKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgICAgICBvcHRpb25z
LnNldFN1cHBvcnRzUmVzaWRlbnRLZXkob3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29sKCkpOwor
ICAgICAgICB9CisKKyAgICAgICAgb3B0aW9uTWFwSXQgPSBvcHRpb25NYXAuZmluZChDQk9SKGtV
c2VyUHJlc2VuY2VNYXBLZXkpKTsKKyAgICAgICAgaWYgKG9wdGlvbk1hcEl0ICE9IG9wdGlvbk1h
cC5lbmQoKSkgeworICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJdC0+c2Vjb25kLmlzQm9vbCgp
KQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIG9w
dGlvbnMuc2V0VXNlclByZXNlbmNlUmVxdWlyZWQob3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29s
KCkpOworICAgICAgICB9CisKKyAgICAgICAgb3B0aW9uTWFwSXQgPSBvcHRpb25NYXAuZmluZChD
Qk9SKGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5KSk7CisgICAgICAgIGlmIChvcHRpb25NYXBJdCAh
PSBvcHRpb25NYXAuZW5kKCkpIHsKKyAgICAgICAgICAgIGlmICghb3B0aW9uTWFwSXQtPnNlY29u
ZC5pc0Jvb2woKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgICAgICBpZiAob3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29sKCkpCisgICAgICAgICAgICAg
ICAgb3B0aW9ucy5zZXRVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JT
dXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVk
QW5kQ29uZmlndXJlZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3B0aW9u
cy5zZXRVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0Tm90Q29u
ZmlndXJlZCk7CisgICAgICAgIH0KKworICAgICAgICBvcHRpb25NYXBJdCA9IG9wdGlvbk1hcC5m
aW5kKENCT1Ioa0NsaWVudFBpbk1hcEtleSkpOworICAgICAgICBpZiAob3B0aW9uTWFwSXQgIT0g
b3B0aW9uTWFwLmVuZCgpKSB7CisgICAgICAgICAgICBpZiAoIW9wdGlvbk1hcEl0LT5zZWNvbmQu
aXNCb29sKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAg
ICAgICAgaWYgKG9wdGlvbk1hcEl0LT5zZWNvbmQuZ2V0Qm9vbCgpKQorICAgICAgICAgICAgICAg
IG9wdGlvbnMuc2V0Q2xpZW50UGluQXZhaWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRQaW5TZXQpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG9wdGlvbnMuc2V0Q2xpZW50UGluQXZhaWxh
YmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxp
dHk6OmtTdXBwb3J0ZWRCdXRQaW5Ob3RTZXQpOworICAgICAgICB9CisgICAgICAgIHJlc3BvbnNl
LnNldE9wdGlvbnMoV1RGTW92ZShvcHRpb25zKSk7CisgICAgfQorCisgICAgaXQgPSByZXNwb25z
ZU1hcC5maW5kKENCT1IoNSkpOworICAgIGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSkgewor
ICAgICAgICBpZiAoIWl0LT5zZWNvbmQuaXNVbnNpZ25lZCgpKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXNwb25zZS5zZXRNYXhNc2dTaXplKGl0LT5zZWNv
bmQuZ2V0VW5zaWduZWQoKSk7CisgICAgfQorCisgICAgaXQgPSByZXNwb25zZU1hcC5maW5kKENC
T1IoNikpOworICAgIGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSkgeworICAgICAgICBpZiAo
IWl0LT5zZWNvbmQuaXNBcnJheSgpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgICAgICBWZWN0b3I8dWludDhfdD4gc3VwcG9ydGVkUGluUHJvdG9jb2xzOworICAgICAg
ICBmb3IgKGNvbnN0IGF1dG8mIHByb3RvY29sIDogaXQtPnNlY29uZC5nZXRBcnJheSgpKSB7Cisg
ICAgICAgICAgICBpZiAoIXByb3RvY29sLmlzVW5zaWduZWQoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgICAgICBzdXBwb3J0ZWRQaW5Qcm90b2NvbHMu
YXBwZW5kKHByb3RvY29sLmdldFVuc2lnbmVkKCkpOworICAgICAgICB9CisgICAgICAgIHJlc3Bv
bnNlLnNldFBpblByb3RvY29scyhXVEZNb3ZlKHN1cHBvcnRlZFBpblByb3RvY29scykpOworICAg
IH0KKworICAgIHJldHVybiBXVEZNb3ZlKHJlc3BvbnNlKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
ZmlkbworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVy
dGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODE5NjMzNTQ1Y2RlMjVjMGRiZGM0YzYzZGE1ZjFiMTY2ZTIzNzQ5
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlk
by9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oCkBAIC0wLDAgKzEsNjYgQEAKKy8vIENvcHlyaWdo
dCAyMDE4IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisv
LyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlv
bi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8g
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
Ky8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiQXV0aGVudGljYXRvckdldEluZm9SZXNwb25z
ZS5oIgorI2luY2x1ZGUgIkZpZG9Db25zdGFudHMuaCIKKyNpbmNsdWRlICJQdWJsaWNLZXlDcmVk
ZW50aWFsRGF0YS5oIgorCisvLyBDb252ZXJ0cyByZXNwb25zZSBmcm9tIGF1dGhlbnRpY2F0b3Jz
IHRvIENUQVBSZXNwb25zZSBvYmplY3RzLiBJZiB0aGUKKy8vIHJlc3BvbnNlIG9mIHRoZSBhdXRo
ZW50aWNhdG9yIGRvZXMgbm90IGNvbmZvcm0gdG8gZm9ybWF0IHNwZWNpZmllZCBieSB0aGUKKy8v
IENUQVAgcHJvdG9jb2wsIG51bGwgb3B0aW9uYWwgaXMgcmV0dXJuZWQuCituYW1lc3BhY2UgZmlk
byB7CisKKy8vIFBhcnNlcyByZXNwb25zZSBjb2RlIGZyb20gcmVzcG9uc2UgcmVjZWl2ZWQgZnJv
bSB0aGUgYXV0aGVudGljYXRvci4gSWYKKy8vIHVua25vd24gcmVzcG9uc2UgY29kZSB2YWx1ZSBp
cyByZWNlaXZlZCwgdGhlbiBDVEFQMl9FUlJfT1RIRVIgaXMgcmV0dXJuZWQuCitXRUJDT1JFX0VY
UE9SVCBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlIGdldFJlc3BvbnNlQ29kZShjb25zdCBWZWN0b3I8
dWludDhfdD4mKTsKKworLy8gRGUtc2VyaWFsaXplcyBDQk9SIGVuY29kZWQgcmVzcG9uc2UsIGNo
ZWNrcyBmb3IgdmFsaWQgQ0JPUiBtYXAgZm9ybWF0dGluZywKKy8vIGFuZCBjb252ZXJ0cyByZXNw
b25zZSB0byBBdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRpYWxSZXNwb25zZSBvYmplY3Qgd2l0aAor
Ly8gQ0JPUiBtYXAga2V5cyB0aGF0IGNvbmZvcm0gdG8gZm9ybWF0IG9mIGF0dGVzdGF0aW9uIG9i
amVjdCBkZWZpbmVkIGJ5IHRoZQorLy8gV2ViQXV0aE4gc3BlYyA6IGh0dHBzOi8vdzNjLmdpdGh1
Yi5pby93ZWJhdXRobi8jZmlnLWF0dFN0cnVjdHMKK1dFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlYWRDVEFQTWFrZUNyZWRlbnRp
YWxSZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4mKTsKKworLy8gRGUtc2VyaWFsaXplcyBD
Qk9SIGVuY29kZWQgcmVzcG9uc2UgdG8gQXV0aGVudGljYXRvckdldEFzc2VydGlvbiAvCisvLyBB
dXRoZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbiByZXF1ZXN0IHRvIEF1dGhlbnRpY2F0b3JHZXRB
c3NlcnRpb25SZXNwb25zZQorLy8gb2JqZWN0LgorLy8gRklYTUUoMTkwNzgzKTogUHJvYmFibHkg
bmVlZCB0byByZW1ha2UgQXV0aGVudGljYXRvclJlc3BvbnNlIHRvIGluY2x1ZGUgbW9yZSBmaWVs
ZHMgbGlrZSBudW1iZXJPZkNyZWRlbnRpYWxzLAorLy8gYW5kIHVzZSBpdCBoZXJlIGluc3RlYWQg
b2YgUHVibGljS2V5Q3JlZGVudGlhbERhdGEuCitXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxEYXRhPiByZWFkQ1RBUEdldEFzc2VydGlvblJl
c3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYpOworCisvLyBEZS1zZXJpYWxpemVzIENCT1Ig
ZW5jb2RlZCByZXNwb25zZSB0byBBdXRoZW50aWNhdG9yR2V0SW5mbyByZXF1ZXN0IHRvCisvLyBB
dXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlIG9iamVjdC4KK1dFQkNPUkVfRVhQT1JUIHN0ZDo6
b3B0aW9uYWw8QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZT4gcmVhZENUQVBHZXRJbmZvUmVz
cG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5jcHAKaW5kZXggMzg4MWZkMmYyNjRl
OWYwZWU0ZGEwMzkyNDJlNWFkMTBkNzA0YTRmMy4uODE3MjVjZWFmMmNlZDI5MTk2Nzg0M2M5Nzkx
NzhhZjZlYzQ0ZTczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9maWRvL0ZpZG9Db25zdGFudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcApAQCAtMzMsNiArMzMsNjYgQEAKICNpZiBFTkFC
TEUoV0VCX0FVVEhOKQogCiBuYW1lc3BhY2UgZmlkbyB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworYm9vbCBpc0N0YXBEZXZpY2VSZXNwb25zZUNvZGUoQ3RhcERldmljZVJlc3BvbnNlQ29k
ZSBjb2RlKQoreworICAgIHN3aXRjaCAoY29kZSkgeworICAgIGNhc2UgQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a1N1Y2Nlc3M6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3Rh
cDFFcnJJbnZhbGlkQ29tbWFuZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtD
dGFwMUVyckludmFsaWRQYXJhbWV0ZXI6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2Rl
OjprQ3RhcDFFcnJJbnZhbGlkTGVuZ3RoOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29k
ZTo6a0N0YXAxRXJySW52YWxpZFNlcToKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6
OmtDdGFwMUVyclRpbWVvdXQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3Rh
cDFFcnJDaGFubmVsQnVzeToKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFw
MUVyckxvY2tSZXF1aXJlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFw
MUVyckludmFsaWRDaGFubmVsOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0
YXAyRXJyQ0JPUlBhcnNpbmc6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3Rh
cDJFcnJVbmV4cGVjdGVkVHlwZToKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtD
dGFwMkVyckludmFsaWRDQk9SOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0
YXAyRXJySW52YWxpZENCT1JUeXBlOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6
a0N0YXAyRXJyTWlzc2luZ1BhcmFtZXRlcjoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMkVyckxpbWl0RXhjZWVkZWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlOjprQ3RhcDJFcnJVbnN1cHBvcnRlZEV4dGVuc2lvbjoKKyAgICBjYXNlIEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMkVyclRvb01hbnlFbGVtZW50czoKKyAgICBjYXNlIEN0YXBEZXZp
Y2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckV4dGVuc2lvbk5vdFN1cHBvcnRlZDoKKyAgICBjYXNl
IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckNyZWRlbnRpYWxFeGNsdWRlZDoKKyAg
ICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclByb2Nlc3NzaW5nOgorICAg
IGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJySW52YWxpZENyZWRlbnRpYWw6
CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJVc2VyQWN0aW9uUGVu
ZGluZzoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyck9wZXJhdGlv
blBlbmRpbmc6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJOb09w
ZXJhdGlvbnM6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJVbnN1
cHBvcnRlZEFsZ29yaXRobXM6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3Rh
cDJFcnJPcGVyYXRpb25EZW5pZWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjpr
Q3RhcDJFcnJLZXlTdG9yZUZ1bGw6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjpr
Q3RhcDJFcnJOb3RCdXN5OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAy
RXJyTm9PcGVyYXRpb25QZW5kaW5nOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6
a0N0YXAyRXJyVW5zdXBwb3J0ZWRPcHRpb246CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VD
b2RlOjprQ3RhcDJFcnJJbnZhbGlkT3B0aW9uOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNl
Q29kZTo6a0N0YXAyRXJyS2VlcEFsaXZlQ2FuY2VsOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a0N0YXAyRXJyTm9DcmVkZW50aWFsczoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNw
b25zZUNvZGU6OmtDdGFwMkVyclVzZXJBY3Rpb25UaW1lb3V0OgorICAgIGNhc2UgQ3RhcERldmlj
ZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyTm90QWxsb3dlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbkludmFsaWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5CbG9ja2VkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a0N0YXAyRXJyUGluQXV0aEludmFsaWQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5BdXRoQmxvY2tlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbk5vdFNldDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNw
b25zZUNvZGU6OmtDdGFwMkVyclBpblJlcXVpcmVkOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a0N0YXAyRXJyUGluUG9saWN5VmlvbGF0aW9uOgorICAgIGNhc2UgQ3RhcERldmlj
ZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluVG9rZW5FeHBpcmVkOgorICAgIGNhc2UgQ3RhcERl
dmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUmVxdWVzdFRvb0xhcmdlOgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyT3RoZXI6CisgICAgY2FzZSBDdGFwRGV2aWNl
UmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJTcGVjTGFzdDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNw
b25zZUNvZGU6OmtDdGFwMkVyckV4dGVuc2lvbkZpcnN0OgorICAgIGNhc2UgQ3RhcERldmljZVJl
c3BvbnNlQ29kZTo6a0N0YXAyRXJyRXh0ZW5zaW9uTGFzdDoKKyAgICBjYXNlIEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMkVyclZlbmRvckZpcnN0OgorICAgIGNhc2UgQ3RhcERldmljZVJl
c3BvbnNlQ29kZTo6a0N0YXAyRXJyVmVuZG9yTGFzdDoKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KIAogYm9vbCBpc0Zp
ZG9IaWREZXZpY2VDb21tYW5kKEZpZG9IaWREZXZpY2VDb21tYW5kIGNtZCkKIHsKQEAgLTUyLDYg
KzExMiwxNiBAQCBib29sIGlzRmlkb0hpZERldmljZUNvbW1hbmQoRmlkb0hpZERldmljZUNvbW1h
bmQgY21kKQogICAgIH0KIH0KIAorY29uc3QgY2hhciogcHVibGljS2V5Q3JlZGVudGlhbFR5cGVU
b1N0cmluZyhQdWJsaWNLZXlDcmVkZW50aWFsVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlw
ZSkgeworICAgIGNhc2UgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleToKKyAgICAg
ICAgcmV0dXJuIGtQdWJsaWNLZXk7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBrUHVibGljS2V5OworfQorCiB9IC8vIG5hbWVzcGFjZSBmaWRvCiAKICNlbmRp
ZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmgKaW5kZXggYjg2OTBmMDNkZDQ4NGRmZDM2NzU2
NzUwZTA1NmEyNzVjNmRkM2U1Ni4uNWNkN2FlOGIzOTEzNTE0MDE0N2ZjMDY5NzkzNjM4MGY0OTAw
YmE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0Zp
ZG9Db25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
Rmlkb0NvbnN0YW50cy5oCkBAIC0zMSw4ICszMSw5MyBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVVRI
TikKIAorI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmgiCisKIG5hbWVzcGFjZSBm
aWRvIHsKIAorZW51bSBjbGFzcyBQcm90b2NvbFZlcnNpb24geworICAgIGtDdGFwLAorICAgIGtV
MmYsCisgICAga1Vua25vd24sCit9OworCisvLyBMZW5ndGggb2YgdGhlIFNIQS0yNTYgaGFzaCBv
ZiB0aGUgUlAgSUQgYXNzc29jaWF0ZWQgd2l0aCB0aGUgY3JlZGVudGlhbDoKKy8vIGh0dHBzOi8v
d3d3LnczLm9yZy9UUi93ZWJhdXRobi8jc2VjLWF1dGhlbnRpY2F0b3ItZGF0YQorY29uc3RleHBy
IHNpemVfdCBrUnBJZEhhc2hMZW5ndGggPSAzMjsKKworLy8gTGVuZ3RoIG9mIHRoZSBmbGFnczoK
Ky8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jc2VjLWF1dGhlbnRpY2F0b3ItZGF0
YQorY29uc3RleHByIHNpemVfdCBrRmxhZ3NMZW5ndGggPSAxOworCisvLyBMZW5ndGggb2YgdGhl
IHNpZ25hdHVyZSBjb3VudGVyLCAzMi1iaXQgdW5zaWduZWQgYmlnLWVuZGlhbiBpbnRlZ2VyOgor
Ly8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXV0aGVudGljYXRvci1kYXRh
Citjb25zdGV4cHIgc2l6ZV90IGtTaWduQ291bnRlckxlbmd0aCA9IDQ7CisKKy8vIExlbmd0aCBv
ZiB0aGUgQUFHVUlEIG9mIHRoZSBhdXRoZW50aWNhdG9yOgorLy8gaHR0cHM6Ly93d3cudzMub3Jn
L1RSL3dlYmF1dGhuLyNzZWMtYXR0ZXN0ZWQtY3JlZGVudGlhbC1kYXRhCitjb25zdGV4cHIgc2l6
ZV90IGtBYWd1aWRMZW5ndGggPSAxNjsKKworLy8gTGVuZ3RoIG9mIHRoZSBieXRlIGxlbmd0aCBM
IG9mIENyZWRlbnRpYWwgSUQsIDE2LWJpdCB1bnNpZ25lZCBiaWctZW5kaWFuCisvLyBpbnRlZ2Vy
OiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI3NlYy1hdHRlc3RlZC1jcmVkZW50aWFs
LWRhdGEKK2NvbnN0ZXhwciBzaXplX3Qga0NyZWRlbnRpYWxJZExlbmd0aExlbmd0aCA9IDI7CisK
Ky8vIENUQVAgcHJvdG9jb2wgZGV2aWNlIHJlc3BvbnNlIGNvZGUsIGFzIHNwZWNpZmllZCBpbgor
Ly8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9m
aWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRt
bCNlcnJvci1yZXNwb25zZXMKK2VudW0gY2xhc3MgQ3RhcERldmljZVJlc3BvbnNlQ29kZSA6IHVp
bnQ4X3QgeworICAgIGtTdWNjZXNzID0gMHgwMCwKKyAgICBrQ3RhcDFFcnJJbnZhbGlkQ29tbWFu
ZCA9IDB4MDEsCisgICAga0N0YXAxRXJySW52YWxpZFBhcmFtZXRlciA9IDB4MDIsCisgICAga0N0
YXAxRXJySW52YWxpZExlbmd0aCA9IDB4MDMsCisgICAga0N0YXAxRXJySW52YWxpZFNlcSA9IDB4
MDQsCisgICAga0N0YXAxRXJyVGltZW91dCA9IDB4MDUsCisgICAga0N0YXAxRXJyQ2hhbm5lbEJ1
c3kgPSAweDA2LAorICAgIGtDdGFwMUVyckxvY2tSZXF1aXJlZCA9IDB4MEEsCisgICAga0N0YXAx
RXJySW52YWxpZENoYW5uZWwgPSAweDBCLAorICAgIGtDdGFwMkVyckNCT1JQYXJzaW5nID0gMHgx
MCwKKyAgICBrQ3RhcDJFcnJVbmV4cGVjdGVkVHlwZSA9IDB4MTEsCisgICAga0N0YXAyRXJySW52
YWxpZENCT1IgPSAweDEyLAorICAgIGtDdGFwMkVyckludmFsaWRDQk9SVHlwZSA9IDB4MTMsCisg
ICAga0N0YXAyRXJyTWlzc2luZ1BhcmFtZXRlciA9IDB4MTQsCisgICAga0N0YXAyRXJyTGltaXRF
eGNlZWRlZCA9IDB4MTUsCisgICAga0N0YXAyRXJyVW5zdXBwb3J0ZWRFeHRlbnNpb24gPSAweDE2
LAorICAgIGtDdGFwMkVyclRvb01hbnlFbGVtZW50cyA9IDB4MTcsCisgICAga0N0YXAyRXJyRXh0
ZW5zaW9uTm90U3VwcG9ydGVkID0gMHgxOCwKKyAgICBrQ3RhcDJFcnJDcmVkZW50aWFsRXhjbHVk
ZWQgPSAweDE5LAorICAgIGtDdGFwMkVyclByb2Nlc3NzaW5nID0gMHgyMSwKKyAgICBrQ3RhcDJF
cnJJbnZhbGlkQ3JlZGVudGlhbCA9IDB4MjIsCisgICAga0N0YXAyRXJyVXNlckFjdGlvblBlbmRp
bmcgPSAweDIzLAorICAgIGtDdGFwMkVyck9wZXJhdGlvblBlbmRpbmcgPSAweDI0LAorICAgIGtD
dGFwMkVyck5vT3BlcmF0aW9ucyA9IDB4MjUsCisgICAga0N0YXAyRXJyVW5zdXBwb3J0ZWRBbGdv
cml0aG1zID0gMHgyNiwKKyAgICBrQ3RhcDJFcnJPcGVyYXRpb25EZW5pZWQgPSAweDI3LAorICAg
IGtDdGFwMkVycktleVN0b3JlRnVsbCA9IDB4MjgsCisgICAga0N0YXAyRXJyTm90QnVzeSA9IDB4
MjksCisgICAga0N0YXAyRXJyTm9PcGVyYXRpb25QZW5kaW5nID0gMHgyQSwKKyAgICBrQ3RhcDJF
cnJVbnN1cHBvcnRlZE9wdGlvbiA9IDB4MkIsCisgICAga0N0YXAyRXJySW52YWxpZE9wdGlvbiA9
IDB4MkMsCisgICAga0N0YXAyRXJyS2VlcEFsaXZlQ2FuY2VsID0gMHgyRCwKKyAgICBrQ3RhcDJF
cnJOb0NyZWRlbnRpYWxzID0gMHgyRSwKKyAgICBrQ3RhcDJFcnJVc2VyQWN0aW9uVGltZW91dCA9
IDB4MkYsCisgICAga0N0YXAyRXJyTm90QWxsb3dlZCA9IDB4MzAsCisgICAga0N0YXAyRXJyUGlu
SW52YWxpZCA9IDB4MzEsCisgICAga0N0YXAyRXJyUGluQmxvY2tlZCA9IDB4MzIsCisgICAga0N0
YXAyRXJyUGluQXV0aEludmFsaWQgPSAweDMzLAorICAgIGtDdGFwMkVyclBpbkF1dGhCbG9ja2Vk
ID0gMHgzNCwKKyAgICBrQ3RhcDJFcnJQaW5Ob3RTZXQgPSAweDM1LAorICAgIGtDdGFwMkVyclBp
blJlcXVpcmVkID0gMHgzNiwKKyAgICBrQ3RhcDJFcnJQaW5Qb2xpY3lWaW9sYXRpb24gPSAweDM3
LAorICAgIGtDdGFwMkVyclBpblRva2VuRXhwaXJlZCA9IDB4MzgsCisgICAga0N0YXAyRXJyUmVx
dWVzdFRvb0xhcmdlID0gMHgzOSwKKyAgICBrQ3RhcDJFcnJPdGhlciA9IDB4N0YsCisgICAga0N0
YXAyRXJyU3BlY0xhc3QgPSAweERGLAorICAgIGtDdGFwMkVyckV4dGVuc2lvbkZpcnN0ID0gMHhF
MCwKKyAgICBrQ3RhcDJFcnJFeHRlbnNpb25MYXN0ID0gMHhFRiwKKyAgICBrQ3RhcDJFcnJWZW5k
b3JGaXJzdCA9IDB4RjAsCisgICAga0N0YXAyRXJyVmVuZG9yTGFzdCA9IDB4RkYKK307CisKK2Jv
b2wgaXNDdGFwRGV2aWNlUmVzcG9uc2VDb2RlKEN0YXBEZXZpY2VSZXNwb25zZUNvZGUpOworCiAv
LyBDb21tYW5kcyBzdXBwb3J0ZWQgYnkgQ1RBUEhJRCBkZXZpY2UgYXMgc3BlY2lmaWVkIGluCiAv
LyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTcwOTI3L2Zp
ZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE3MDkyNy5odG1s
I2N0YXBoaWQtY29tbWFuZHMKIGVudW0gY2xhc3MgRmlkb0hpZERldmljZUNvbW1hbmQgOiB1aW50
OF90IHsKQEAgLTQ3LDcgKzEzMiwyNCBAQCBlbnVtIGNsYXNzIEZpZG9IaWREZXZpY2VDb21tYW5k
IDogdWludDhfdCB7CiAgICAga0xvY2sgPSAweDA0LAogfTsKIAotYm9vbCBpc0ZpZG9IaWREZXZp
Y2VDb21tYW5kKEZpZG9IaWREZXZpY2VDb21tYW5kIGNtZCk7Citib29sIGlzRmlkb0hpZERldmlj
ZUNvbW1hbmQoRmlkb0hpZERldmljZUNvbW1hbmQpOworCisvLyBTdHJpbmcga2V5IHZhbHVlcyBm
b3IgQ1RBUCByZXF1ZXN0IG9wdGlvbmFsIHBhcmFtZXRlcnMgYW5kCisvLyBBdXRoZW50aWNhdG9y
R2V0SW5mbyByZXNwb25zZS4KK2NvbnN0IGNoYXIga1Jlc2lkZW50S2V5TWFwS2V5W10gPSAicmsi
OworY29uc3QgY2hhciBrVXNlclZlcmlmaWNhdGlvbk1hcEtleVtdID0gInV2IjsKK2NvbnN0IGNo
YXIga1VzZXJQcmVzZW5jZU1hcEtleVtdID0gInVwIjsKK2NvbnN0IGNoYXIga0NsaWVudFBpbk1h
cEtleVtdID0gImNsaWVudFBpbiI7Citjb25zdCBjaGFyIGtQbGF0Zm9ybURldmljZU1hcEtleVtd
ID0gInBsYXQiOworY29uc3QgY2hhciBrRW50aXR5SWRNYXBLZXlbXSA9ICJpZCI7Citjb25zdCBj
aGFyIGtFbnRpdHlOYW1lTWFwS2V5W10gPSAibmFtZSI7Citjb25zdCBjaGFyIGtEaXNwbGF5TmFt
ZU1hcEtleVtdID0gImRpc3BsYXlOYW1lIjsKK2NvbnN0IGNoYXIga0ljb25VcmxNYXBLZXlbXSA9
ICJpY29uIjsKK2NvbnN0IGNoYXIga0NyZWRlbnRpYWxUeXBlTWFwS2V5W10gPSAidHlwZSI7Citj
b25zdCBjaGFyIGtDcmVkZW50aWFsQWxnb3JpdGhtTWFwS2V5W10gPSAiYWxnIjsKKy8vIEtleXMg
Zm9yIHN0b3JpbmcgY3JlZGVudGlhbCBkZXNjcmlwdG9yIGluZm9ybWF0aW9uIGluIENCT1IgbWFw
LgorY29uc3QgY2hhciBrQ3JlZGVudGlhbElkS2V5W10gPSAiaWQiOworY29uc3QgY2hhciBrQ3Jl
ZGVudGlhbFR5cGVLZXlbXSA9ICJ0eXBlIjsKIAogLy8gSElEIHRyYW5zcG9ydCBzcGVjaWZpYyBj
b25zdGFudHMuCiBjb25zdCBzaXplX3Qga0hpZFBhY2tldFNpemUgPSA2NDsKQEAgLTYzLDYgKzE2
NSwzNCBAQCBjb25zdCB1aW50OF90IGtIaWRNYXhMb2NrU2Vjb25kcyA9IDEwOwogLy8gTWVzc2Fn
ZXMgYXJlIGxpbWl0ZWQgdG8gYW4gaW5pdGlhdGlvbiBwYWNrZXQgYW5kIDEyOCBjb250aW51YXRp
b24gcGFja2V0cy4KIGNvbnN0IHNpemVfdCBrSGlkTWF4TWVzc2FnZVNpemUgPSA3NjA5OwogCisv
LyBBdXRoZW50aWNhdG9yIEFQSSBjb21tYW5kcyBzdXBwb3J0ZWQgYnkgQ1RBUCBkZXZpY2VzLCBh
cyBzcGVjaWZpZWQgaW4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYy
LjAtcmQtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4w
LXJkLTIwMTcwOTI3Lmh0bWwjYXV0aGVudGljYXRvci1hcGkKK2VudW0gY2xhc3MgQ3RhcFJlcXVl
c3RDb21tYW5kIDogdWludDhfdCB7CisgICAga0F1dGhlbnRpY2F0b3JNYWtlQ3JlZGVudGlhbCA9
IDB4MDEsCisgICAga0F1dGhlbnRpY2F0b3JHZXRBc3NlcnRpb24gPSAweDAyLAorICAgIGtBdXRo
ZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbiA9IDB4MDgsCisgICAga0F1dGhlbnRpY2F0b3JHZXRJ
bmZvID0gMHgwNCwKKyAgICBrQXV0aGVudGljYXRvckNsaWVudFBpbiA9IDB4MDYsCisgICAga0F1
dGhlbnRpY2F0b3JSZXNldCA9IDB4MDcsCit9OworCisvLyBTdHJpbmcga2V5IHZhbHVlcyBmb3Ig
YXR0ZXN0YXRpb24gb2JqZWN0IGFzIGEgcmVzcG9uc2UgdG8gTWFrZUNyZWRlbnRpYWwKKy8vIHJl
cXVlc3QuCitjb25zdCBjaGFyIGtGb3JtYXRLZXlbXSA9ICJmbXQiOworY29uc3QgY2hhciBrQXR0
ZXN0YXRpb25TdGF0ZW1lbnRLZXlbXSA9ICJhdHRTdG10IjsKK2NvbnN0IGNoYXIga0F1dGhEYXRh
S2V5W10gPSAiYXV0aERhdGEiOworY29uc3QgY2hhciBrTm9uZUF0dGVzdGF0aW9uVmFsdWVbXSA9
ICJub25lIjsKKworLy8gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHB1YmxpYyBrZXkgY3JlZGVu
dGlhbCBlbnVtLgorLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmF1dGhuLyNjcmVkZW50aWFs
VHlwZQorY29uc3QgY2hhciBrUHVibGljS2V5W10gPSAicHVibGljLWtleSI7CisKK2NvbnN0IGNo
YXIqIHB1YmxpY0tleUNyZWRlbnRpYWxUeXBlVG9TdHJpbmcoV2ViQ29yZTo6UHVibGljS2V5Q3Jl
ZGVudGlhbFR5cGUpOworCisvLyBGSVhNRTogQWRkIHVybCB0byB0aGUgb2ZmaWNpYWwgc3BlYyBv
bmNlIGl0J3Mgc3RhbmRhcmRpemVkLgorY29uc3QgY2hhciBrQ3RhcDJWZXJzaW9uW10gPSAiRklE
T18yXzAiOworY29uc3QgY2hhciBrVTJmVmVyc2lvbltdID0gIlUyRl9WMiI7CisKIH0gLy8gbmFt
ZXNwYWNlIGZpZG8KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cmlu
ZGV4IGNhMjZkNWFkZGJkOGI4MjBiM2JlNzVmMGIyNjcxMTY3MWE4NWM2YTcuLmY4NGE2OWUzZTdj
NzYyNDc1NzZkNTIzNDk1NzhjY2NhZjU3Mzc4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yNTksNiAr
MjU5LDEwIEBAIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbC5jcHAKIE1vZHVs
ZXMvd2ViYXV0aG4vY2Jvci9DQk9SUmVhZGVyLmNwcAogTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NC
T1JWYWx1ZS5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SV3JpdGVyLmNwcAorTW9kdWxl
cy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwCitNb2R1bGVz
L3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3BwCitNb2R1bGVz
L3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAKK01vZHVsZXMvd2ViYXV0
aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vZmlk
by9GaWRvQ29uc3RhbnRzLmNwcAogTW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9IaWRNZXNzYWdl
LmNwcAogTW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9IaWRQYWNrZXQuY3BwCkBAIC0zMTYyLDYg
KzMxNjYsNyBAQCBKU1RyZWVXYWxrZXIuY3BwCiBKU1VJRXZlbnQuY3BwCiBKU1VJRXZlbnRJbml0
LmNwcAogSlNVUkxTZWFyY2hQYXJhbXMuY3BwCitKU1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dC5jcHAKIEpTVlJEaXNwbGF5LmNwcAogSlNWUkRpc3BsYXlDYXBhYmlsaXRpZXMuY3BwCiBKU1ZS
RGlzcGxheUV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDExY2IwZTdjNTY5ZjUwYjZiYWFhYWI1ZDcxOTgyNWNkNmUx
MGE1YjIuLjY2NzIyNmU2ZjA5MjA3M2ZiYjQ1NDg4NWU3MGU1ODcyYjM2ODhkOTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3
NTMsNiArMTc1MywxMiBAQAogCQk1NzIxQTk4NzFFQ0U1M0IxMDA4MTI5NUEgLyogQ3J5cHRvRGln
ZXN0QWxnb3JpdGhtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzIxQTk4NjFFQ0U1M0IxMDA4MTI5NUEgLyogQ3J5cHRvRGlnZXN0QWxnb3JpdGhtLmgg
Ki87IH07CiAJCTU3MjFBOThCMUVDRTU3MDQwMDgxMjk1QSAvKiBDcnlwdG9BbGdvcml0aG1Sc2FQ
c3NQYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3MjFBOTg4MUVDRTU3MDQwMDgxMjk1QSAvKiBDcnlwdG9BbGdvcml0aG1Sc2FQc3NQYXJhbXMu
aCAqLzsgfTsKIAkJNTcyQTdGMjExQzZFNTcxOTAwOUM2MTQ5IC8qIFNpbXVsYXRlZENsaWNrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJBN0YyMDFD
NkU1NzE5MDA5QzYxNDkgLyogU2ltdWxhdGVkQ2xpY2suaCAqLzsgfTsKKwkJNTcyQjQwMUYyMTc1
N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDFEMjE3NTdBNjQwMDBBRDQzRSAv
KiBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTcyQjQwMkMyMTc2OTAyMDAwMEFENDNFIC8qIEpTVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzJCNDAyQTIxNzY5MDFGMDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZpY2F0
aW9uUmVxdWlyZW1lbnQuaCAqLzsgfTsKKwkJNTcyQjQwMzYyMTc2QTkyMjAwMEFENDNFIC8qIFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwMjMyMTc2OEQ4NTAwMEFENDNFIC8qIFVzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTU3MkI0MDNBMjE3NzI1ODEwMDBBRDQzRSAvKiBEZXZpY2VSZXNwb25zZUNv
bnZlcnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTcyQjQwMzcyMTc3MjU2QzAwMEFENDNFIC8qIERldmljZVJlc3BvbnNlQ29udmVydGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTcyQjQwNDAy
MTc4MDE3MTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJCNDAzRTIxNzgwMTcw
MDAwQUQ0M0UgLyogQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NzJCNDA0MjIxNzgxMTRBMDAw
QUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwM0MyMTc3RkI2MTAwMEFENDNFIC8q
IEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NzMwM0JCOTIwMDZDNkVFMDAzNTU5NjUgLyogQ0JP
UlZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
NzMwM0JCNDIwMDZDNkVEMDAzNTU5NjUgLyogQ0JPUlZhbHVlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTczMDNCQkEyMDA2QzZFRTAwMzU1OTY1
IC8qIENCT1JXcml0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3MzAzQkI1MjAwNkM2RUQwMDM1NTk2NSAvKiBDQk9SV3JpdGVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTczMDNCQkIyMDA2QzZF
RTAwMzU1OTY1IC8qIENCT1JCaW5hcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3MzAzQkI2MjAwNkM2RUQwMDM1NTk2NSAvKiBDQk9SQmluYXJ5Lmgg
Ki87IH07CkBAIC04NTcyLDYgKzg1NzgsMTggQEAKIAkJNTcyMUE5OEExRUNFNTcwNDAwODEyOTVB
IC8qIFJzYVBzc1BhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhUHNzUGFyYW1zLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTcyQTdGMjAxQzZFNTcxOTAwOUM2MTQ5IC8qIFNpbXVsYXRlZENs
aWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNpbXVsYXRlZENsaWNrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkE3RjIyMUM2RTVBNjYwMDlDNjE0OSAv
KiBTaW11bGF0ZWRDbGljay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTaW11bGF0ZWRDbGljay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0
MDFEMjE3NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTcyQjQwMUUyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDIzMjE3NjhEODUwMDBBRDQzRSAvKiBVc2Vy
VmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDI1MjE3
NjhEODUwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTU3MkI0MDJBMjE3NjkwMUYwMDBBRDQzRSAvKiBKU1VzZXJWZXJpZmljYXRpb25SZXF1aXJl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1VzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAyQjIx
NzY5MDFGMDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAzNzIxNzcyNTZD
MDAwQUQ0M0UgLyogRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMzgyMTc3MjU2QzAwMEFENDNFIC8qIERldmljZVJlc3BvbnNl
Q29udmVydGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldmlj
ZVJlc3BvbnNlQ29udmVydGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcy
QjQwM0IyMTc3RkI2MDAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRvckdldElu
Zm9SZXNwb25zZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDNDMjE3
N0ZCNjEwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwM0QyMTc4MDE2RjAwMEFENDNFIC8q
IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwM0UyMTc4MDE3MDAwMEFENDNFIC8qIEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3MzAzQkI0MjAwNkM2RUQwMDM1NTk2NSAvKiBDQk9SVmFsdWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0JPUlZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU3MzAzQkI1MjAwNkM2RUQwMDM1NTk2NSAvKiBDQk9SV3JpdGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENCT1JXcml0ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQjYyMDA2QzZFRDAwMzU1OTY1IC8qIENCT1JCaW5hcnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0JPUkJpbmFyeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkxMDEsNiArMTkxMTksMTQgQEAKIAkJNTc4QTRCRkEy
MTY2QUUwMDAwRDA4RjM0IC8qIGZpZG8gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTU3MkI0MDNCMjE3N0ZCNjAwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9y
R2V0SW5mb1Jlc3BvbnNlLmNwcCAqLywKKwkJCQk1NzJCNDAzQzIxNzdGQjYxMDAwQUQ0M0UgLyog
QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oICovLAorCQkJCTU3MkI0MDNEMjE3ODAxNkYw
MDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAgKi8sCisJCQkJNTcy
QjQwM0UyMTc4MDE3MDAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgg
Ki8sCisJCQkJNTcyQjQwMUUyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0
ZXIuY3BwICovLAorCQkJCTU3MkI0MDFEMjE3NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0
Q29udmVydGVyLmggKi8sCisJCQkJNTcyQjQwMzgyMTc3MjU2QzAwMEFENDNFIC8qIERldmljZVJl
c3BvbnNlQ29udmVydGVyLmNwcCAqLywKKwkJCQk1NzJCNDAzNzIxNzcyNTZDMDAwQUQ0M0UgLyog
RGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCAqLywKIAkJCQk1N0JBRjI4NzIxNjdEMkY3MDA4RTk1
NEUgLyogRmlkb0NvbnN0YW50cy5jcHAgKi8sCiAJCQkJNTc4QTRDMEIyMTY3RDI5NjAwRDA4RjM0
IC8qIEZpZG9Db25zdGFudHMuaCAqLywKIAkJCQk1NzhBNEMwODIxNjdEMjk1MDBEMDhGMzQgLyog
Rmlkb0hpZE1lc3NhZ2UuY3BwICovLApAQCAtMTkxODAsNiArMTkyMDYsOCBAQAogCQkJCTU3MzAz
QzA4MjAwOTk4RjgwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMu
aWRsICovLAogCQkJCTU3MzAzQkVBMjAwOTdGNDAwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50
aWFsVHlwZS5oICovLAogCQkJCTU3MzAzQkYwMjAwOTg0NjEwMDM1NTk2NSAvKiBQdWJsaWNLZXlD
cmVkZW50aWFsVHlwZS5pZGwgKi8sCisJCQkJNTcyQjQwMjMyMTc2OEQ4NTAwMEFENDNFIC8qIFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICovLAorCQkJCTU3MkI0MDI1MjE3NjhEODUwMDBB
RDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsICovLAogCQkJKTsKIAkJCXBh
dGggPSB3ZWJhdXRobjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xOTIwNSw2ICsx
OTIzMyw4IEBACiAJCQkJNTczMDNDMEMyMDA5OUM3NTAwMzU1OTY1IC8qIEpTUHVibGljS2V5Q3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zLmggKi8sCiAJCQkJNTczMDNCRkEyMDA5OTEzNTAwMzU1OTY1
IC8qIEpTUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuY3BwICovLAogCQkJCTU3MzAzQkY5MjAwOTkx
MzQwMDM1NTk2NSAvKiBKU1B1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmggKi8sCisJCQkJNTcyQjQw
MkIyMTc2OTAxRjAwMEFENDNFIC8qIEpTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmNwcCAq
LywKKwkJCQk1NzJCNDAyQTIxNzY5MDFGMDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gV2ViQXV0aE47CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMjc2OTAsNyArMjc3MjAsOSBAQAogCQkJCTU3MzAzQzFGMjAwOUFC
NDIwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTczMDNDNDYyMDEwNUQyRjAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc2MDgyNzIyMDIxNUE1NTAwMTE2Njc4IC8q
IEF1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcy
QjQwNDIyMTc4MTE0QTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTU3MzAzQkQyMjAwODdBODMwMDM1NTk2NSAvKiBBdXRoZW50aWNh
dG9yUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MkI0MDQwMjE3ODAxNzEwMDBBRDQz
RSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTdEQ0VEOTAyMTQ4N0ZGNzAwMTZCODQ3IC8qIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE1MDE5MjBFMTMyRUJGMkUwMDhCRkU1NSAvKiBBdXRvY2FwaXRhbGl6
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVBN0FBNDMxMzJGMEVDQzAwRDNBM0MyIC8qIEF1dG9j
YXBpdGFsaXplVHlwZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjgyMDgsNiArMjgyNDAsOCBAQAog
CQkJCTU5QThGMUQ2MTFBNjk1MTMwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5MEUxQjQ5MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZp
Y2VPcmllbnRhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5QTg1RUE0MTE5RDY4RUMw
MERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1
NzJCNDAxRjIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTcyQjQwM0EyMTc3MjU4MTAwMEFENDNFIC8qIERldmljZVJlc3BvbnNl
Q29udmVydGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjc3MjVGRDFBNUIzQUQ5MDAzQzI0REQg
LyogREZBLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0Q5RjU2NjFBQTBGNzNDMDBEQTQ1RkYgLyog
REZBQnl0ZWNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDlGNTY3MUFBMEY3NDIwMERBNDVG
RiAvKiBERkFCeXRlY29kZUNvbXBpbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI5NjkxLDYgKzI5
NzI1LDcgQEAKIAkJCQk0NjUzMDdEMDFEQjZFRTQ4MDBFNDEzN0MgLyogSlNVSUV2ZW50SW5pdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0M3M0ZCMTIxOTFFRjZGNDAwN0RFMDYxIC8qIEpTVXNlck1l
c3NhZ2VIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzczRkIwRDE5MUVGNUE4MDA3REUw
NjEgLyogSlNVc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1NzJCNDAyQzIxNzY5MDIwMDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1Qzc3MDkzMTAwRDNDQTgwMDVCQTI2NyAvKiBKU1Zh
bGlkaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFOEVGMDRCMTcxQzkwMTQwMDlCNDhD
MyAvKiBKU1ZpZGVvVHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJFOEVGMDREMTcxQzkwMTQw
MDlCNDhDMyAvKiBKU1ZpZGVvVHJhY2tMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTMxMzQyLDYg
KzMxMzc3LDcgQEAKIAkJCQlCQzhCRjE1MTEwNTgxM0JGMDBBNDBBMDcgLyogVXNlclN0eWxlU2hl
ZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOEJGMTVBMTA1ODE0MTgwMEE0MEEwNyAvKiBVc2Vy
U3R5bGVTaGVldFR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGMzE3QzExRjhENjgzMDAz
QzVCRjggLyogVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTU3MkI0MDM2MjE3NkE5MjIwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUYxNEU2MUVBQUM1OUIwMDI2RUVBQSAvKiBVVElSZWdp
c3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUZBRkJGMTkxNUE1RkE3NDAwMDgzQTIwIC8qIFVU
SVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDNDVCOEUxREMyQjY4QTAwODg3MUJB
IC8qIFZhbGlkYXRpb25CdWJibGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc4OWRmMDY0YTE4ZDAwMjBjYWJhMzBh
NjM1MzVlMGRiZmI5Mzk0MjMuLmZhOTIxNWY2MDE2NjRkNzE5MjllN2QzZmExODA2YWExNjc1YWNk
NzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMyBAQAorMjAxOC0xMC0yMiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFtXZWJBdXRoTl0gSW1wb3J0IENUQVAgZGV2aWNlIHJlcXVlc3QvcmVz
cG9uc2UgY29udmVydGVycyBmcm9tIENocm9taXVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA3ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1
NDYwMzMzPgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUlZhbHVlVGVzdC5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q3RhcFJlc3BvbnNlVGVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Z2V0
VGVzdENvcnJ1cHRlZFNpZ25SZXNwb25zZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpnZXRU
ZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXMpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y29udmVy
dFRvVmVjdG9yKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaDogQWRkZWQuCisKIDIwMTgt
MTEtMDEgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBGaXggYnVpbGQgd2l0aCBWSURFTyBhbmQgV0VCX0FVRElPIGRpc2FibGVkCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGQ1ZjliNzcyMDgxNmRiZGRkNmMxMjVhYjRjNTdiZThkM2I5ZDMx
NWIuLjAxNzM4ZWY0ODc5Yjc0YTg2ZDVmMjA4YTYwZjBhZGE0MjA0ZGZkMzQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0yNDYsNiArMjQ2LDggQEAKIAkJNTcxNEVDQkIxQ0E4QkZFNDAwMDUx
QUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzE0RUNCQTFDQThCRkQx
MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovOyB9Owog
CQk1NzE0RUNCRDFDQThDMjJBMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwy
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTcxNEVDQkMxQ0E4QzIxODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJM
Mi5odG1sICovOyB9OwogCQk1NzFGN0ZEMDFGMjk2MUZCMDA5NDY2NDggLyogSW5kZXhlZERCU3Ry
dWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtd2FsIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MUY3RkNGMUYyOTYx
RTEwMDk0NjY0OCAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxp
dHkuc3FsaXRlMy13YWwgKi87IH07CisJCTU3MkI0MDM0MjE3NjlBODgwMDBBRDQzRSAvKiBDdGFw
UmVxdWVzdFRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTcyQjQwMzMyMTc2OUE4ODAwMEFENDNFIC8qIEN0YXBSZXF1ZXN0VGVzdC5jcHAgKi87
IH07CisJCTU3MkI0MDQ0MjE3ODFCNDMwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDQzMjE3
ODFCNDIwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNwcCAqLzsgfTsKIAkJNTczMDNCQzky
MDA4MjREMzAwMzU1OTY1IC8qIENCT1JWYWx1ZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQUMyMDA2QzU2MDAwMzU1OTY1IC8qIENC
T1JWYWx1ZVRlc3QuY3BwICovOyB9OwogCQk1NzMwM0JDQTIwMDgyQzAxMDAzNTU5NjUgLyogQ0JP
UldyaXRlclRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTczMDNCQUIyMDA2QzU1NDAwMzU1OTY1IC8qIENCT1JXcml0ZXJUZXN0LmNwcCAqLzsg
fTsKIAkJNTczMDNCQ0IyMDA4Mzc2NTAwMzU1OTY1IC8qIENCT1JSZWFkZXJUZXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzAzQkMyMjAwNzFF
MjIwMDM1NTk2NSAvKiBDQk9SUmVhZGVyVGVzdC5jcHAgKi87IH07CkBAIC0xNTUxLDYgKzE1NTMs
OSBAQAogCQk1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2lu
YWxVUkxGcmFtZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRSZXF1
ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NzE0RUNCQzFDQThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVS
TDIuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcxRjdGQ0YxRjI5NjFFMTAw
OTQ2NjQ4IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5z
cWxpdGUzLXdhbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRp
YmlsaXR5LnNxbGl0ZTMtd2FsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQw
MzMyMTc2OUE4ODAwMEFENDNFIC8qIEN0YXBSZXF1ZXN0VGVzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdGFwUmVxdWVzdFRlc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1NzJCNDAzNTIxNzZBMDI5MDAwQUQ0M0UgLyogRmlkb1Rlc3REYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZpZG9UZXN0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1NzJCNDA0MzIxNzgxQjQyMDAwQUQ0M0UgLyogQ3RhcFJlc3BvbnNlVGVzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdGFwUmVzcG9uc2VUZXN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQUIyMDA2QzU1NDAwMzU1OTY1
IC8qIENCT1JXcml0ZXJUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENCT1JXcml0ZXJUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcz
MDNCQUMyMDA2QzU2MDAwMzU1OTY1IC8qIENCT1JWYWx1ZVRlc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0JPUlZhbHVlVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU3MzAzQkMyMjAwNzFFMjIwMDM1NTk2NSAvKiBDQk9SUmVhZGVyVGVz
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQk9SUmVhZGVyVGVz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTMyLDExICsyNTM3LDE0IEBA
CiAJCQkJMUM5RUI4NDAxRTM4MERBMTAwNUM2NDQyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlci5j
cHAgKi8sCiAJCQkJN0NCMTg0QzQxQUEzRjIxMDAwNjZFREZEIC8qIENvbnRlbnRFeHRlbnNpb25z
LmNwcCAqLywKIAkJCQlDRDU0NTFFOTE5RTQxRjlEMDAxNjkzNkYgLyogQ1NTUGFyc2VyLmNwcCAq
LywKKwkJCQk1NzJCNDAzMzIxNzY5QTg4MDAwQUQ0M0UgLyogQ3RhcFJlcXVlc3RUZXN0LmNwcCAq
LywKKwkJCQk1NzJCNDA0MzIxNzgxQjQyMDAwQUQ0M0UgLyogQ3RhcFJlc3BvbnNlVGVzdC5jcHAg
Ki8sCiAJCQkJMjYwQkE1NzgxQjFEMkU3QjAwNEZBMDdDIC8qIERGQUNvbWJpbmVyLmNwcCAqLywK
IAkJCQkyNjBCQTU3QTFCMUQyRUUyMDA0RkEwN0MgLyogREZBSGVscGVycy5oICovLAogCQkJCTI2
RjZFMUVGMUFEQzc0OUIwMERFNjk2QiAvKiBERkFNaW5pbWl6ZXIuY3BwICovLAogCQkJCTMxNTEx
ODBGMURCMUFERDUwMDE3NjMwNCAvKiBFeHRlbmRlZENvbG9yLmNwcCAqLywKIAkJCQk1Nzk2NTFF
NjIxNkJGRDUzMDA2RUJGRTUgLyogRmlkb0hpZE1lc3NhZ2VUZXN0LmNwcCAqLywKKwkJCQk1NzJC
NDAzNTIxNzZBMDI5MDAwQUQ0M0UgLyogRmlkb1Rlc3REYXRhLmggKi8sCiAJCQkJN0EzMkQ3NDkx
RjAyMTUxNTAwMTYyQzQ0IC8qIEZpbGVNb25pdG9yLmNwcCAqLywKIAkJCQk0MTk3M0I1QTFBRjIy
ODZBMDA2QzdCMzYgLyogRmlsZVN5c3RlbS5jcHAgKi8sCiAJCQkJN0E5MDlBNzAxRDg3NzQ3NTAw
N0UxMEY4IC8qIEZsb2F0UG9pbnQuY3BwICovLApAQCAtMzc2Nyw2ICszNzc1LDggQEAKIAkJCQk3
Q0NFN0VBQzFBNDExQTM0MDA0NDdDNEMgLyogQ291bnRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0FFQUQ0N0YxRTIwMTE2QzAwNDE2RUZFIC8qIENyb3NzUGFydGl0aW9uRmlsZVNjaGVtZUFj
Y2Vzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RURCMUE0MTFBOTIwMDQ0N0M0QyAvKiBD
U1NQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTcyQjQwMzQyMTc2OUE4ODAwMEFENDNF
IC8qIEN0YXBSZXF1ZXN0VGVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzJCNDA0NDIxNzgx
QjQzMDAwQUQ0M0UgLyogQ3RhcFJlc3BvbnNlVGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
QUM3QjU3MDIwRDlCQTVCMDAyQzA5QTAgLyogQ3VzdG9tQnVuZGxlT2JqZWN0Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0FDN0I1NkQyMEQ5NzY5RjAwMkMwOUEwIC8qIEN1c3RvbUJ1bmRsZVBhcmFt
ZXRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjI5MUE0MTFCMTAwMDQ0N0M0QyAvKiBD
dXN0b21Qcm90b2NvbHNJbnZhbGlkU2NoZW1lLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUlZhbHVlVGVzdC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUlZhbHVlVGVzdC5jcHAKaW5kZXgg
YTJkNmI4OWYyNzI4ZmY1ZTg4OTdkMjQ0YjBjYjU4MzlmOTM1ZWNlMS4uZmY1MjBkYzdhNTk0OTRj
NWEzZDZkNjE2ZWM1ZGY1YTA0ZGM3YzdkMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0NCT1JWYWx1ZVRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9DQk9SVmFsdWVUZXN0LmNwcApAQCAtMTQ4LDYgKzE0OCwxNyBAQCBU
RVNUKENCT1JWYWx1ZVRlc3QsIENvbnN0cnVjdFNpbXBsZVZhbHVlKQogICAgIEVYUEVDVF9UUlVF
KENCT1JWYWx1ZTo6U2ltcGxlVmFsdWU6OlVuZGVmaW5lZCA9PSB1bmRlZmluZWRWYWx1ZS5nZXRT
aW1wbGVWYWx1ZSgpKTsKIH0KIAorVEVTVChDQk9SVmFsdWVUZXN0LCBDb25zdHJ1Y3RTaW1wbGVC
b29sZWFuVmFsdWUpCit7CisgICAgQ0JPUlZhbHVlIHRydWVWYWx1ZSh0cnVlKTsKKyAgICBBU1NF
UlRfRVEoQ0JPUlZhbHVlOjpUeXBlOjpTaW1wbGVWYWx1ZSwgdHJ1ZVZhbHVlLnR5cGUoKSk7Cisg
ICAgRVhQRUNUX1RSVUUodHJ1ZVZhbHVlLmdldEJvb2woKSk7CisKKyAgICBDQk9SVmFsdWUgZmFs
c2VWYWx1ZShmYWxzZSk7CisgICAgQVNTRVJUX0VRKENCT1JWYWx1ZTo6VHlwZTo6U2ltcGxlVmFs
dWUsIGZhbHNlVmFsdWUudHlwZSgpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZmFsc2VWYWx1ZS5nZXRC
b29sKCkpOworfQorCiAvLyBUZXN0IGNvcHkgY29uc3RydWN0b3JzCiBURVNUKENCT1JWYWx1ZVRl
c3QsIENvcHlVbnNpZ25lZCkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQzOWRhZDRlYzFhOTA4
MDA3NDE3Y2QyYTdlNmM2MWRkMTM1ZmE2NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCkBAIC0wLDAgKzEsMTI4
IEBACisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLwor
Ly8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJGaWRv
VGVzdERhdGEuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ZpZG9Db25zdGFudHMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1B1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1B1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0Jh
c2U2NC5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Cit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKK3VzaW5nIG5hbWVzcGFjZSBmaWRvOworCisvLyBMZXZlcmFnaW5nIGV4YW1wbGUgMiBv
ZiBzZWN0aW9uIDYuMSBvZiB0aGUgc3BlYworLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3Nw
ZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXBy
b3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbAorVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RD
b25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RQYXJhbSkKK3sKKyAgICBQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zOjpScEVudGl0eSBycDsKKyAgICBycC5uYW1lID0gIkFjbWUi
OworICAgIHJwLmlkID0gImFjbWUuY29tIjsKKworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkgdXNlcjsKKyAgICB1c2VyLm5hbWUgPSAiam9obnBzbWl0
aEBleGFtcGxlLmNvbSI7CisgICAgdXNlci5pY29uID0gImh0dHBzOi8vcGljcy5hY21lLmNvbS8w
MC9wL2FCampqcHFQYi5wbmciOworICAgIHVzZXIuaWRWZWN0b3IuYXBwZW5kKFRlc3REYXRhOjpr
VXNlcklkLCBzaXplb2YoVGVzdERhdGE6OmtVc2VySWQpKTsKKyAgICB1c2VyLmRpc3BsYXlOYW1l
ID0gIkpvaG4gUC4gU21pdGgiOworCisgICAgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IHBhcmFtcyB7IHsgUHVibGljS2V5Q3JlZGVudGlhbFR5
cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXks
IDI1NyB9IH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVu
dGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7IFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgdHJ1ZSwg
VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQgfTsKKworICAgIFB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7IHJwLCB1c2VyLCB7IH0sIHBhcmFt
cywgc3RkOjpudWxsb3B0LCB7IH0sIHNlbGVjdGlvbiB9OworICAgIFZlY3Rvcjx1aW50OF90PiBo
YXNoOworICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gsIHNpemVvZihU
ZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7CisgICAgYXV0byBzZXJpYWxpemVkRGF0YSA9IGVu
Y29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRpb25zLCBBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBv
cnRlZEJ1dE5vdENvbmZpZ3VyZWQpOworICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YS5zaXpl
KCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJlcXVlc3QpKTsKKyAgICBF
WFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhLmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwTWFr
ZUNyZWRlbnRpYWxSZXF1ZXN0LCBzZXJpYWxpemVkRGF0YS5zaXplKCkpLCAwKTsKK30KKworVEVT
VChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RHZXRBc3NlcnRpb25SZXF1ZXN0KQorewor
ICAgIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyBvcHRpb25zOworICAgIG9wdGlv
bnMucnBJZCA9ICJhY21lLmNvbSI7CisKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRv
ciBkZXNjcmlwdG9yMTsKKyAgICBkZXNjcmlwdG9yMS50eXBlID0gUHVibGljS2V5Q3JlZGVudGlh
bFR5cGU6OlB1YmxpY0tleTsKKyAgICBjb25zdCB1aW50OF90IGlkMVtdID0geworICAgICAgICAw
eGYyLCAweDIwLCAweDA2LCAweGRlLCAweDRmLCAweDkwLCAweDVhLCAweGY2LCAweDhhLCAweDQz
LCAweDk0LAorICAgICAgICAweDJmLCAweDAyLCAweDRmLCAweDJhLCAweDVlLCAweGNlLCAweDYw
LCAweDNkLCAweDljLCAweDZkLCAweDRiLAorICAgICAgICAweDNkLCAweGY4LCAweGJlLCAweDA4
LCAweGVkLCAweDAxLCAweGZjLCAweDQ0LCAweDI2LCAweDQ2LCAweGQwLAorICAgICAgICAweDM0
LCAweDg1LCAweDhhLCAweGM3LCAweDViLCAweGVkLCAweDNmLCAweGQ1LCAweDgwLCAweGJmLCAw
eDk4LAorICAgICAgICAweDA4LCAweGQ5LCAweDRmLCAweGNiLCAweGVlLCAweDgyLCAweGI5LCAw
eGIyLCAweGVmLCAweDY2LCAweDc3LAorICAgICAgICAweGFmLCAweDBhLCAweGRjLCAweGMzLCAw
eDU4LCAweDUyLCAweGVhLCAweDZiLCAweDllIH07CisgICAgZGVzY3JpcHRvcjEuaWRWZWN0b3Iu
YXBwZW5kKGlkMSwgc2l6ZW9mKGlkMSkpOworICAgIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscy5h
cHBlbmQoZGVzY3JpcHRvcjEpOworCisgICAgUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3Ig
ZGVzY3JpcHRvcjI7CisgICAgZGVzY3JpcHRvcjIudHlwZSA9IFB1YmxpY0tleUNyZWRlbnRpYWxU
eXBlOjpQdWJsaWNLZXk7CisgICAgY29uc3QgdWludDhfdCBpZDJbXSA9IHsKKyAgICAgICAgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywK
KyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMywgMHgwMywKKyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAgICAgMHgwMywgMHgwMywg
MHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMyB9OworICAgIGRl
c2NyaXB0b3IyLmlkVmVjdG9yLmFwcGVuZChpZDIsIHNpemVvZihpZDIpKTsKKyAgICBvcHRpb25z
LmFsbG93Q3JlZGVudGlhbHMuYXBwZW5kKGRlc2NyaXB0b3IyKTsKKworICAgIG9wdGlvbnMudXNl
clZlcmlmaWNhdGlvbiA9IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQ7CisK
KyAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKKyAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0Ns
aWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOworICAgIGF1
dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKGhhc2gs
IG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9u
QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0Tm90Q29uZmlndXJlZCk7CisgICAgRVhQRUNUX0VR
KHNlcmlhbGl6ZWREYXRhLnNpemUoKSwgc2l6ZW9mKFRlc3REYXRhOjprVGVzdENvbXBsZXhDdGFw
R2V0QXNzZXJ0aW9uUmVxdWVzdCkpOworICAgIEVYUEVDVF9FUShtZW1jbXAoc2VyaWFsaXplZERh
dGEuZGF0YSgpLCBUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFzc2VydGlvblJlcXVlc3Qs
IHNlcmlhbGl6ZWREYXRhLnNpemUoKSksIDApOworfQorCitURVNUKENUQVBSZXF1ZXN0VGVzdCwg
VGVzdENvbnN0cnVjdEN0YXBBdXRoZW50aWNhdG9yUmVxdWVzdFBhcmFtKQoreworICAgIHN0YXRp
YyBjb25zdGV4cHIgdWludDhfdCBrU2VyaWFsaXplZEdldEluZm9DbWQgPSAweDA0OworICAgIHN0
YXRpYyBjb25zdGV4cHIgdWludDhfdCBrU2VyaWFsaXplZEdldE5leHRBc3NlcnRpb25DbWQgPSAw
eDA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBrU2VyaWFsaXplZFJlc2V0Q21kID0g
MHgwNzsKKworICAgIGF1dG8gc2VyaWFsaXplZERhdGExID0gZW5jb2RlRW1wdHlBdXRoZW50aWNh
dG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yR2V0SW5mbyk7Cisg
ICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhMS5zaXplKCksIDF1KTsKKyAgICBFWFBFQ1RfRVEo
bWVtY21wKHNlcmlhbGl6ZWREYXRhMS5kYXRhKCksICZrU2VyaWFsaXplZEdldEluZm9DbWQsIDEp
LCAwKTsKKworICAgIGF1dG8gc2VyaWFsaXplZERhdGEyID0gZW5jb2RlRW1wdHlBdXRoZW50aWNh
dG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yR2V0TmV4dEFzc2Vy
dGlvbik7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhMi5zaXplKCksIDF1KTsKKyAgICBF
WFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhMi5kYXRhKCksICZrU2VyaWFsaXplZEdldE5l
eHRBc3NlcnRpb25DbWQsIDEpLCAwKTsKKworICAgIGF1dG8gc2VyaWFsaXplZERhdGEzID0gZW5j
b2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50
aWNhdG9yUmVzZXQpOworICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0YTMuc2l6ZSgpLCAxdSk7
CisgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0YTMuZGF0YSgpLCAma1NlcmlhbGl6
ZWRSZXNldENtZCwgMSksIDApOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiNWQy
NWU1ZmVlYWY3NzNjMzdjNDE2OGE3NTkzM2FmNjVmMWQ4YjIKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlc3BvbnNlVGVzdC5jcHAKQEAg
LTAsMCArMSwzNTQgQEAKKy8vIENvcHlyaWdodCAyMDE3IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8v
IG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisv
LworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2lu
Y2x1ZGUgIkZpZG9UZXN0RGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0JPUlJlYWRlci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvQ0JPUlZhbHVlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DQk9SV3Jp
dGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRmlkb0NvbnN0YW50cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHVibGlj
S2V5Q3JlZGVudGlhbC5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Cit1c2luZyBuYW1l
c3BhY2UgZmlkbzsKKworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5m
b1Jlc3BvbnNlV2l0aE5vVmVyc2lvbltdID0geworICAgIC8vIFN1Y2Nlc3Mgc3RhdHVzIGJ5dGUK
KyAgICAweDAwLAorICAgIC8vIE1hcCBvZiA2IGVsZW1lbnRzCisgICAgMHhBNiwKKyAgICAvLyBL
ZXkoMDEpIC0gdmVyc2lvbnMKKyAgICAweDAxLAorICAgIC8vIEFycmF5KDApCisgICAgMHg4MCwK
KyAgICAvLyBLZXkoMDIpIC0gZXh0ZW5zaW9ucworICAgIDB4MDIsCisgICAgLy8gQXJyYXkoMikK
KyAgICAweDgyLAorICAgIC8vICJ1dm0iCisgICAgMHg2MywgMHg3NSwgMHg3NiwgMHg2RCwKKyAg
ICAvLyAiaG1hYy1zZWNyZXQiCisgICAgMHg2QiwgMHg2OCwgMHg2RCwgMHg2MSwgMHg2MywgMHgy
RCwgMHg3MywgMHg2NSwgMHg2MywgMHg3MiwgMHg2NSwgMHg3NCwKKyAgICAvLyBLZXkoMDMpIC0g
QUFHVUlECisgICAgMHgwMywKKyAgICAvLyBCeXRlcygxNikKKyAgICAweDUwLCAweEY4LCAweEEw
LCAweDExLCAweEYzLCAweDhDLCAweDBBLCAweDRELCAweDE1LCAweDgwLCAweDA2LCAweDE3LAor
ICAgIDB4MTEsIDB4MUYsIDB4OUUsIDB4REMsIDB4N0QsCisgICAgLy8gS2V5KDA0KSAtIG9wdGlv
bnMKKyAgICAweDA0LAorICAgIC8vIE1hcCgwNSkKKyAgICAweEE1LAorICAgIC8vIEtleSAtICJy
ayIKKyAgICAweDYyLCAweDcyLCAweDZCLAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8v
IEtleSAtICJ1cCIKKyAgICAweDYyLCAweDc1LCAweDcwLAorICAgIC8vIHRydWUKKyAgICAweEY1
LAorICAgIC8vIEtleSAtICJ1diIKKyAgICAweDYyLCAweDc1LCAweDc2LAorICAgIC8vIHRydWUK
KyAgICAweEY1LAorICAgIC8vIEtleSAtICJwbGF0IgorICAgIDB4NjQsIDB4NzAsIDB4NkMsIDB4
NjEsIDB4NzQsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gImNsaWVudFBp
biIKKyAgICAweDY5LCAweDYzLCAweDZDLCAweDY5LCAweDY1LCAweDZFLCAweDc0LCAweDUwLCAw
eDY5LCAweDZFLAorICAgIC8vIGZhbHNlCisgICAgMHhGNCwKKyAgICAvLyBLZXkoMDUpIC0gTWF4
IG1lc3NhZ2Ugc2l6ZQorICAgIDB4MDUsCisgICAgLy8gMTIwMAorICAgIDB4MTksIDB4MDQsIDB4
QjAsCisgICAgLy8gS2V5KDA2KSAtIFBpbiBwcm90b2NvbHMKKyAgICAweDA2LAorICAgIC8vIEFy
cmF5WzFdCisgICAgMHg4MSwgMHgwMSwKK307CisKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0QXV0
aGVudGljYXRvckdldEluZm9SZXNwb25zZVdpdGhEdXBsaWNhdGVWZXJzaW9uW10gPSB7CisgICAg
Ly8gU3VjY2VzcyBzdGF0dXMgYnl0ZQorICAgIDB4MDAsCisgICAgLy8gTWFwIG9mIDYgZWxlbWVu
dHMKKyAgICAweEE2LAorICAgIC8vIEtleSgwMSkgLSB2ZXJzaW9ucworICAgIDB4MDEsCisgICAg
Ly8gQXJyYXkoMDIpCisgICAgMHg4MiwKKyAgICAvLyAiVTJGX1YyIgorICAgIDB4NjYsIDB4NTUs
IDB4MzIsIDB4NDYsIDB4NUYsIDB4NTYsIDB4MzIsCisgICAgLy8gIlUyRl9WMiIKKyAgICAweDY2
LCAweDU1LCAweDMyLCAweDQ2LCAweDVGLCAweDU2LCAweDMyLAorICAgIC8vIEtleSgwMikgLSBl
eHRlbnNpb25zCisgICAgMHgwMiwKKyAgICAvLyBBcnJheSgyKQorICAgIDB4ODIsCisgICAgLy8g
InV2bSIKKyAgICAweDYzLCAweDc1LCAweDc2LCAweDZELAorICAgIC8vICJobWFjLXNlY3JldCIK
KyAgICAweDZCLCAweDY4LCAweDZELCAweDYxLCAweDYzLCAweDJELCAweDczLCAweDY1LCAweDYz
LCAweDcyLCAweDY1LCAweDc0LAorICAgIC8vIEtleSgwMykgLSBBQUdVSUQKKyAgICAweDAzLAor
ICAgIC8vIEJ5dGVzKDE2KQorICAgIDB4NTAsIDB4RjgsIDB4QTAsIDB4MTEsIDB4RjMsIDB4OEMs
IDB4MEEsIDB4NEQsIDB4MTUsIDB4ODAsIDB4MDYsIDB4MTcsCisgICAgMHgxMSwgMHgxRiwgMHg5
RSwgMHhEQywgMHg3RCwKKyAgICAvLyBLZXkoMDQpIC0gb3B0aW9ucworICAgIDB4MDQsCisgICAg
Ly8gTWFwKDA1KQorICAgIDB4QTUsCisgICAgLy8gS2V5IC0gInJrIgorICAgIDB4NjIsIDB4NzIs
IDB4NkIsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInVwIgorICAgIDB4
NjIsIDB4NzUsIDB4NzAsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gInV2
IgorICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8g
S2V5IC0gInBsYXQiCisgICAgMHg2NCwgMHg3MCwgMHg2QywgMHg2MSwgMHg3NCwKKyAgICAvLyB0
cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAiY2xpZW50UGluIgorICAgIDB4NjksIDB4NjMs
IDB4NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4NTAsIDB4NjksIDB4NkUsCisgICAgLy8g
ZmFsc2UKKyAgICAweEY0LAorICAgIC8vIEtleSgwNSkgLSBNYXggbWVzc2FnZSBzaXplCisgICAg
MHgwNSwKKyAgICAvLyAxMjAwCisgICAgMHgxOSwgMHgwNCwgMHhCMCwKKyAgICAvLyBLZXkoMDYp
IC0gUGluIHByb3RvY29scworICAgIDB4MDYsCisgICAgLy8gQXJyYXlbMV0KKyAgICAweDgxLCAw
eDAxLAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jl
c3BvbnNlV2l0aEluY29ycmVjdEFhZ3VpZFtdID0geworICAgIC8vIFN1Y2Nlc3Mgc3RhdHVzIGJ5
dGUKKyAgICAweDAwLAorICAgIC8vIE1hcCBvZiA2IGVsZW1lbnRzCisgICAgMHhBNiwKKyAgICAv
LyBLZXkoMDEpIC0gdmVyc2lvbnMKKyAgICAweDAxLAorICAgIC8vIEFycmF5KDAxKQorICAgIDB4
ODEsCisgICAgLy8gIlUyRl9WMiIKKyAgICAweDY2LCAweDU1LCAweDMyLCAweDQ2LCAweDVGLCAw
eDU2LCAweDMyLAorICAgIC8vIEtleSgwMikgLSBleHRlbnNpb25zCisgICAgMHgwMiwKKyAgICAv
LyBBcnJheSgyKQorICAgIDB4ODIsCisgICAgLy8gInV2bSIKKyAgICAweDYzLCAweDc1LCAweDc2
LCAweDZELAorICAgIC8vICJobWFjLXNlY3JldCIKKyAgICAweDZCLCAweDY4LCAweDZELCAweDYx
LCAweDYzLCAweDJELCAweDczLCAweDY1LCAweDYzLCAweDcyLCAweDY1LCAweDc0LAorICAgIC8v
IEtleSgwMykgLSBBQUdVSUQKKyAgICAweDAzLAorICAgIC8vIEJ5dGVzKDE3KSAtIEZJRE8yIGRl
dmljZSBBQUdVSUQgbXVzdCBiZSAxNiBieXRlcyBsb25nIGluIG9yZGVyIHRvIGJlCisgICAgLy8g
Y29ycmVjdC4KKyAgICAweDUxLCAweEY4LCAweEEwLCAweDExLCAweEYzLCAweDhDLCAweDBBLCAw
eDRELCAweDE1LCAweDgwLCAweDA2LCAweDE3LAorICAgIDB4MTEsIDB4MUYsIDB4OUUsIDB4REMs
IDB4N0QsIDB4MDAsCisgICAgLy8gS2V5KDA0KSAtIG9wdGlvbnMKKyAgICAweDA0LAorICAgIC8v
IE1hcCgwNSkKKyAgICAweEE1LAorICAgIC8vIEtleSAtICJyayIKKyAgICAweDYyLCAweDcyLCAw
eDZCLAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJ1cCIKKyAgICAweDYy
LCAweDc1LCAweDcwLAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJ1diIK
KyAgICAweDYyLCAweDc1LCAweDc2LAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8vIEtl
eSAtICJwbGF0IgorICAgIDB4NjQsIDB4NzAsIDB4NkMsIDB4NjEsIDB4NzQsCisgICAgLy8gdHJ1
ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gImNsaWVudFBpbiIKKyAgICAweDY5LCAweDYzLCAw
eDZDLCAweDY5LCAweDY1LCAweDZFLCAweDc0LCAweDUwLCAweDY5LCAweDZFLAorICAgIC8vIGZh
bHNlCisgICAgMHhGNCwKKyAgICAvLyBLZXkoMDUpIC0gTWF4IG1lc3NhZ2Ugc2l6ZQorICAgIDB4
MDUsCisgICAgLy8gMTIwMAorICAgIDB4MTksIDB4MDQsIDB4QjAsCisgICAgLy8gS2V5KDA2KSAt
IFBpbiBwcm90b2NvbHMKKyAgICAweDA2LAorICAgIC8vIEFycmF5WzFdCisgICAgMHg4MSwgMHgw
MSwKK307CisKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0RGV2aWNlQWFndWlkW10gPSB7CisgICAg
MHhGOCwgMHhBMCwgMHgxMSwgMHhGMywgMHg4QywgMHgwQSwgMHg0RCwgMHgxNSwgMHg4MCwgMHgw
NiwgMHgxNywgMHgxMSwgMHgxRiwgMHg5RSwgMHhEQywgMHg3RAorfTsKKworLy8gR2V0IGEgc3Vi
c2V0IG9mIHRoZSByZXNwb25zZSBmb3IgdGVzdGluZyBlcnJvciBoYW5kbGluZy4KK1ZlY3Rvcjx1
aW50OF90PiBnZXRUZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNlKHNpemVfdCBsZW5ndGgpCit7Cisg
ICAgQVNTRVJUKGxlbmd0aCA8IHNpemVvZihUZXN0RGF0YTo6a1Rlc3RVMmZTaWduUmVzcG9uc2Up
KTsKKyAgICBWZWN0b3I8dWludDhfdD4gdGVzdENvcnJ1cHRlZFNpZ25SZXNwb25zZTsKKyAgICB0
ZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNlLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobGVuZ3RoKTsK
KyAgICB0ZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNlLmFwcGVuZChUZXN0RGF0YTo6a1Rlc3RVMmZT
aWduUmVzcG9uc2UsIGxlbmd0aCk7CisgICAgcmV0dXJuIHRlc3RDb3JydXB0ZWRTaWduUmVzcG9u
c2U7Cit9CisKKy8vIFJldHVybiBhIGtleSBoYW5kbGUgdXNlZCBmb3IgR2V0QXNzZXJ0aW9uIHJl
cXVlc3QuCitWZWN0b3I8dWludDhfdD4gZ2V0VGVzdENyZWRlbnRpYWxSYXdJZEJ5dGVzKCkKK3sK
KyAgICBWZWN0b3I8dWludDhfdD4gdGVzdENyZWRlbnRpYWxSYXdJZEJ5dGVzOworICAgIHRlc3RD
cmVkZW50aWFsUmF3SWRCeXRlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNpemVvZihUZXN0RGF0
YTo6a1UyZlNpZ25LZXlIYW5kbGUpKTsKKyAgICB0ZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXMuYXBw
ZW5kKFRlc3REYXRhOjprVTJmU2lnbktleUhhbmRsZSwgc2l6ZW9mKFRlc3REYXRhOjprVTJmU2ln
bktleUhhbmRsZSkpOworICAgIHJldHVybiB0ZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXM7Cit9CisK
K1ZlY3Rvcjx1aW50OF90PiBjb252ZXJ0VG9WZWN0b3IoY29uc3QgdWludDhfdCBieXRlQXJyYXlb
XSwgY29uc3Qgc2l6ZV90IGxlbmd0aCkKK3sKKyAgICBWZWN0b3I8dWludDhfdD4gcmVzdWx0Owor
ICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGxlbmd0aCk7CisgICAgcmVzdWx0LmFw
cGVuZChieXRlQXJyYXksIGxlbmd0aCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLy8gTGV2
ZXJhZ2luZyBleGFtcGxlIDQgb2Ygc2VjdGlvbiA2LjEgb2YgdGhlIHNwZWMKKy8vIGh0dHBzOi8v
Zmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQt
dG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjY29tbWFuZHMK
K1RFU1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVzdFJlYWRNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKQor
eworICAgIGF1dG8gbWFrZUNyZWRlbnRpYWxSZXNwb25zZSA9IHJlYWRDVEFQTWFrZUNyZWRlbnRp
YWxSZXNwb25zZShjb252ZXJ0VG9WZWN0b3IoVGVzdERhdGE6OmtUZXN0TWFrZUNyZWRlbnRpYWxS
ZXNwb25zZSwgc2l6ZW9mKFRlc3REYXRhOjprVGVzdE1ha2VDcmVkZW50aWFsUmVzcG9uc2UpKSk7
CisgICAgQVNTRVJUX1RSVUUobWFrZUNyZWRlbnRpYWxSZXNwb25zZSk7CisgICAgYXV0byBjYm9y
QXR0ZXN0YXRpb25PYmplY3QgPSBjYm9yOjpDQk9SUmVhZGVyOjpyZWFkKGNvbnZlcnRUb1ZlY3Rv
cihyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihtYWtlQ3JlZGVudGlhbFJlc3BvbnNlLT5hdHRl
c3RhdGlvbk9iamVjdC0+ZGF0YSgpKSwgbWFrZUNyZWRlbnRpYWxSZXNwb25zZS0+YXR0ZXN0YXRp
b25PYmplY3QtPmJ5dGVMZW5ndGgoKSkpOworICAgIEFTU0VSVF9UUlVFKGNib3JBdHRlc3RhdGlv
bk9iamVjdCk7CisgICAgQVNTRVJUX1RSVUUoY2JvckF0dGVzdGF0aW9uT2JqZWN0LT5pc01hcCgp
KTsKKworICAgIGNvbnN0IGF1dG8mIGF0dGVzdGF0aW9uT2JqZWN0TWFwID0gY2JvckF0dGVzdGF0
aW9uT2JqZWN0LT5nZXRNYXAoKTsKKyAgICBhdXRvIGl0ID0gYXR0ZXN0YXRpb25PYmplY3RNYXAu
ZmluZChjYm9yOjpDQk9SVmFsdWUoa0Zvcm1hdEtleSkpOworICAgIEFTU0VSVF9UUlVFKGl0ICE9
IGF0dGVzdGF0aW9uT2JqZWN0TWFwLmVuZCgpKTsKKyAgICBBU1NFUlRfVFJVRShpdC0+c2Vjb25k
LmlzU3RyaW5nKCkpOworICAgIEVYUEVDVF9TVFJFUShpdC0+c2Vjb25kLmdldFN0cmluZygpLnV0
ZjgoKS5kYXRhKCksICJwYWNrZWQiKTsKKworICAgIGl0ID0gYXR0ZXN0YXRpb25PYmplY3RNYXAu
ZmluZChjYm9yOjpDQk9SVmFsdWUoa0F1dGhEYXRhS2V5KSk7CisgICAgQVNTRVJUX1RSVUUoaXQg
IT0gYXR0ZXN0YXRpb25PYmplY3RNYXAuZW5kKCkpOworICAgIEFTU0VSVF9UUlVFKGl0LT5zZWNv
bmQuaXNCeXRlU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShpdC0+c2Vjb25kLmdldEJ5dGVTdHJp
bmcoKSwgY29udmVydFRvVmVjdG9yKFRlc3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVudGlhbEF1dGhE
YXRhLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsQXV0aERhdGEpKSk7CisK
KyAgICBpdCA9IGF0dGVzdGF0aW9uT2JqZWN0TWFwLmZpbmQoY2Jvcjo6Q0JPUlZhbHVlKGtBdHRl
c3RhdGlvblN0YXRlbWVudEtleSkpOworICAgIEFTU0VSVF9UUlVFKGl0ICE9IGF0dGVzdGF0aW9u
T2JqZWN0TWFwLmVuZCgpKTsKKyAgICBBU1NFUlRfVFJVRShpdC0+c2Vjb25kLmlzTWFwKCkpOwor
CisgICAgY29uc3QgYXV0byYgYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAgPSBpdC0+c2Vjb25kLmdl
dE1hcCgpOworICAgIGF1dG8gYXR0U3RtdEl0ID0gYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAuZmlu
ZChjYm9yOjpDQk9SVmFsdWUoImFsZyIpKTsKKworICAgIEFTU0VSVF9UUlVFKGF0dFN0bXRJdCAh
PSBhdHRlc3RhdGlvblN0YXRlbWVudE1hcC5lbmQoKSk7CisgICAgQVNTRVJUX1RSVUUoYXR0U3Rt
dEl0LT5zZWNvbmQuaXNJbnRlZ2VyKCkpOworICAgIEVYUEVDVF9FUShhdHRTdG10SXQtPnNlY29u
ZC5nZXRJbnRlZ2VyKCksIC03KTsKKworICAgIGF0dFN0bXRJdCA9IGF0dGVzdGF0aW9uU3RhdGVt
ZW50TWFwLmZpbmQoY2Jvcjo6Q0JPUlZhbHVlKCJzaWciKSk7CisgICAgQVNTRVJUX1RSVUUoYXR0
U3RtdEl0ICE9IGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwLmVuZCgpKTsKKyAgICBBU1NFUlRfVFJV
RShhdHRTdG10SXQtPnNlY29uZC5pc0J5dGVTdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKGF0dFN0
bXRJdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKSwgY29udmVydFRvVmVjdG9yKFRlc3REYXRhOjpr
Q3RhcDJNYWtlQ3JlZGVudGlhbFNpZ25hdHVyZSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJNYWtl
Q3JlZGVudGlhbFNpZ25hdHVyZSkpKTsKKworICAgIGF0dFN0bXRJdCA9IGF0dGVzdGF0aW9uU3Rh
dGVtZW50TWFwLmZpbmQoY2Jvcjo6Q0JPUlZhbHVlKCJ4NWMiKSk7CisgICAgQVNTRVJUX1RSVUUo
YXR0U3RtdEl0ICE9IGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwLmVuZCgpKTsKKyAgICBjb25zdCBh
dXRvJiBjZXJ0aWZpY2F0ZSA9IGF0dFN0bXRJdC0+c2Vjb25kOworICAgIEFTU0VSVF9UUlVFKGNl
cnRpZmljYXRlLmlzQXJyYXkoKSk7CisgICAgQVNTRVJUX0VRKGNlcnRpZmljYXRlLmdldEFycmF5
KCkuc2l6ZSgpLCAxdSk7CisgICAgQVNTRVJUX1RSVUUoY2VydGlmaWNhdGUuZ2V0QXJyYXkoKVsw
XS5pc0J5dGVTdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKGNlcnRpZmljYXRlLmdldEFycmF5KClb
MF0uZ2V0Qnl0ZVN0cmluZygpLCBjb252ZXJ0VG9WZWN0b3IoVGVzdERhdGE6OmtDdGFwMk1ha2VD
cmVkZW50aWFsQ2VydGlmaWNhdGUsIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyTWFrZUNyZWRlbnRp
YWxDZXJ0aWZpY2F0ZSkpKTsKKyAgICBFWFBFQ1RfRVEobWFrZUNyZWRlbnRpYWxSZXNwb25zZS0+
cmF3SWQtPmJ5dGVMZW5ndGgoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVudGlh
bENyZWRlbnRpYWxJZCkpOworICAgIEVYUEVDVF9FUShtZW1jbXAobWFrZUNyZWRlbnRpYWxSZXNw
b25zZS0+cmF3SWQtPmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsQ3JlZGVu
dGlhbElkLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsQ3JlZGVudGlhbElk
KSksIDApOworfQorCisvLyBMZXZlcmFnaW5nIGV4YW1wbGUgNSBvZiBzZWN0aW9uIDYuMSBvZiB0
aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIu
MC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAt
cHMtMjAxNzA5MjcuaHRtbAorVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBUZXN0UmVhZEdldEFzc2Vy
dGlvblJlc3BvbnNlKQoreworICAgIGF1dG8gZ2V0QXNzZXJ0aW9uUmVzcG9uc2UgPSByZWFkQ1RB
UEdldEFzc2VydGlvblJlc3BvbnNlKGNvbnZlcnRUb1ZlY3RvcihUZXN0RGF0YTo6a0RldmljZUdl
dEFzc2VydGlvblJlc3BvbnNlLCBzaXplb2YoVGVzdERhdGE6OmtEZXZpY2VHZXRBc3NlcnRpb25S
ZXNwb25zZSkpKTsKKyAgICBBU1NFUlRfVFJVRShnZXRBc3NlcnRpb25SZXNwb25zZSk7CisKKyAg
ICBFWFBFQ1RfRVEoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPmF1dGhlbnRpY2F0b3JEYXRhLT5ieXRl
TGVuZ3RoKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uQXV0aERhdGEpKTsK
KyAgICBFWFBFQ1RfRVEobWVtY21wKGdldEFzc2VydGlvblJlc3BvbnNlLT5hdXRoZW50aWNhdG9y
RGF0YS0+ZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uQXV0aERhdGEsIHNpemVv
ZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uQXV0aERhdGEpKSwgMCk7CisgICAgRVhQRUNU
X0VRKGdldEFzc2VydGlvblJlc3BvbnNlLT5zaWduYXR1cmUtPmJ5dGVMZW5ndGgoKSwgc2l6ZW9m
KFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25TaWduYXR1cmUpKTsKKyAgICBFWFBFQ1RfRVEo
bWVtY21wKGdldEFzc2VydGlvblJlc3BvbnNlLT5zaWduYXR1cmUtPmRhdGEoKSwgVGVzdERhdGE6
OmtDdGFwMkdldEFzc2VydGlvblNpZ25hdHVyZSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRB
c3NlcnRpb25TaWduYXR1cmUpKSwgMCk7Cit9CisKK1RFU1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVz
dFJlYWRHZXRJbmZvUmVzcG9uc2UpCit7CisgICAgYXV0byBnZXRJbmZvUmVzcG9uc2UgPSByZWFk
Q1RBUEdldEluZm9SZXNwb25zZShjb252ZXJ0VG9WZWN0b3IoVGVzdERhdGE6OmtUZXN0R2V0SW5m
b1Jlc3BvbnNlUGxhdGZvcm1EZXZpY2UsIHNpemVvZihUZXN0RGF0YTo6a1Rlc3RHZXRJbmZvUmVz
cG9uc2VQbGF0Zm9ybURldmljZSkpKTsKKyAgICBBU1NFUlRfVFJVRShnZXRJbmZvUmVzcG9uc2Up
OworICAgIEFTU0VSVF9UUlVFKGdldEluZm9SZXNwb25zZS0+bWF4TXNnU2l6ZSgpKTsKKyAgICBF
WFBFQ1RfRVEoKmdldEluZm9SZXNwb25zZS0+bWF4TXNnU2l6ZSgpLCAxMjAwdSk7CisgICAgRVhQ
RUNUX05FKGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5maW5kKFByb3RvY29sVmVyc2lvbjo6
a0N0YXApLCBnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZW5kKCkpOworICAgIEVYUEVDVF9O
RShnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZmluZChQcm90b2NvbFZlcnNpb246OmtVMmYp
LCBnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZW5kKCkpOworICAgIEVYUEVDVF9UUlVFKGdl
dEluZm9SZXNwb25zZS0+b3B0aW9ucygpLmlzUGxhdGZvcm1EZXZpY2UoKSk7CisgICAgRVhQRUNU
X1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5vcHRpb25zKCkuc3VwcG9ydHNSZXNpZGVudEtleSgpKTsK
KyAgICBFWFBFQ1RfVFJVRShnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS51c2VyUHJlc2VuY2VS
ZXF1aXJlZCgpKTsKKyAgICBFWFBFQ1RfRVEoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6
OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkLCBn
ZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCkp
OworICAgIEVYUEVDVF9FUShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGlu
QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0UGluTm90U2V0LCBnZXRJbmZvUmVzcG9uc2UtPm9w
dGlvbnMoKS5jbGllbnRQaW5BdmFpbGFiaWxpdHkoKSk7Cit9CisKK1RFU1QoQ1RBUFJlc3BvbnNl
VGVzdCwgVGVzdFJlYWRHZXRJbmZvUmVzcG9uc2VXaXRoSW5jb3JyZWN0Rm9ybWF0KQoreworICAg
IEVYUEVDVF9GQUxTRShyZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb252ZXJ0VG9WZWN0b3Ioa1Rl
c3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aE5vVmVyc2lvbiwgc2l6ZW9mKGtUZXN0
QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVdpdGhOb1ZlcnNpb24pKSkpOworICAgIEVYUEVD
VF9GQUxTRShyZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb252ZXJ0VG9WZWN0b3Ioa1Rlc3RBdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aER1cGxpY2F0ZVZlcnNpb24sIHNpemVvZihrVGVz
dEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoRHVwbGljYXRlVmVyc2lvbikpKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKHJlYWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNvbnZlcnRUb1ZlY3Rvcihr
VGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoSW5jb3JyZWN0QWFndWlkLCBzaXpl
b2Yoa1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aEluY29ycmVjdEFhZ3VpZCkp
KSk7Cit9CisKK1RFU1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVzdFNlcmlhbGl6ZUdldEluZm9SZXNw
b25zZSkKK3sKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlIHJlc3BvbnNlKHsgUHJv
dG9jb2xWZXJzaW9uOjprQ3RhcCwgUHJvdG9jb2xWZXJzaW9uOjprVTJmIH0sIGNvbnZlcnRUb1Zl
Y3RvcihrVGVzdERldmljZUFhZ3VpZCwgc2l6ZW9mKGtUZXN0RGV2aWNlQWFndWlkKSkpOworICAg
IHJlc3BvbnNlLnNldEV4dGVuc2lvbnMoeyAidXZtIiwgImhtYWMtc2VjcmV0IiB9KTsKKyAgICBB
dXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBvcHRpb25zOworICAgIG9wdGlvbnMuc2V0U3Vw
cG9ydHNSZXNpZGVudEtleSh0cnVlKTsKKyAgICBvcHRpb25zLnNldElzUGxhdGZvcm1EZXZpY2Uo
dHJ1ZSk7CisgICAgb3B0aW9ucy5zZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEJ1dFBp
bk5vdFNldCk7CisgICAgb3B0aW9ucy5zZXRVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KEF1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5
OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCk7CisgICAgcmVzcG9uc2Uuc2V0T3B0aW9ucyhXVEZN
b3ZlKG9wdGlvbnMpKTsKKyAgICByZXNwb25zZS5zZXRNYXhNc2dTaXplKDEyMDApOworICAgIHJl
c3BvbnNlLnNldFBpblByb3RvY29scyh7IDEgfSk7CisKKyAgICBhdXRvIHJlc3BvbnNlQXNDQk9S
ID0gZW5jb2RlQXNDQk9SKHJlc3BvbnNlKTsKKyAgICBFWFBFQ1RfRVEocmVzcG9uc2VBc0NCT1Iu
c2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtUZXN0R2V0SW5mb1Jlc3BvbnNlUGxhdGZvcm1EZXZp
Y2UpIC0gMSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChyZXNwb25zZUFzQ0JPUi5kYXRhKCksIFRl
c3REYXRhOjprVGVzdEdldEluZm9SZXNwb25zZVBsYXRmb3JtRGV2aWNlICsgMSwgcmVzcG9uc2VB
c0NCT1Iuc2l6ZSgpKSwgMCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWZlYTY1YmYyYTAyZDczYzY4
ZDIyMGM2MmMwYTA2OTBmNmYxMzg3YwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaApAQCAtMCwwICsxLDY0NSBAQAorLy8g
Q29weXJpZ2h0IDIwMTcgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlz
dHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisv
LyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwor
bmFtZXNwYWNlIFRlc3REYXRhIHsKKworLy8gVTJGIHJlcXVlc3QgcGFyYW1ldGVycyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gU2Ft
cGxlIFUyRiByZWdpc3RlciByZXF1ZXN0IHBhcmFtZXRlcnMgdXNlZCBpbiBleGFtcGxlIDYgb2Yg
dGhlIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYy
LjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4w
LXBzLTIwMTcwOTI3Lmh0bWwjdXNpbmctdGhlLWN0YXAyLWF1dGhlbnRpY2F0b3JtYWtlY3JlZGVu
dGlhbC1jb21tYW5kLXdpdGgtY3RhcDEtdTJmLWF1dGhlbnRpY2F0b3JzCitjb25zdGV4cHIgdWlu
dDhfdCBrQ2xpZW50RGF0YUhhc2hbXSA9IHsKKyAgICAweDY4LCAweDcxLCAweDM0LCAweDk2LCAw
eDgyLCAweDIyLCAweGVjLCAweDE3LCAweDIwLCAweDJlLCAweDQyLAorICAgIDB4NTAsIDB4NWYs
IDB4OGUsIDB4ZDIsIDB4YjEsIDB4NmEsIDB4ZTIsIDB4MmYsIDB4MTYsIDB4YmIsIDB4MDUsCisg
ICAgMHhiOCwgMHg4YywgMHgyNSwgMHhkYiwgMHg5ZSwgMHg2MCwgMHgyNiwgMHg0NSwgMHhmMSwg
MHg0MX07CisKK2NvbnN0ZXhwciB1aW50OF90IGtVc2VySWRbXSA9IHsweDEwLCAweDk4LCAweDIz
LCAweDcyLCAweDM1LCAweDQwLCAweDk4LCAweDcyfTsKKworLy8gU2FtcGxlIFUyRiBzaWduIHJl
cXVlc3QgcGFyYW1ldGVycyB1c2VkIGluIGV4YW1wbGUgNyBvZiB0aGUgQ1RBUCBzcGVjLgorLy8g
aHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRv
LWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCN1
c2luZy10aGUtY3RhcDItYXV0aGVudGljYXRvcm1ha2VjcmVkZW50aWFsLWNvbW1hbmQtd2l0aC1j
dGFwMS11MmYtYXV0aGVudGljYXRvcnMKK2NvbnN0ZXhwciB1aW50OF90IGtVMmZTaWduS2V5SGFu
ZGxlW10gPSB7CisgICAgMHgzRSwgMHhCRCwgMHg4OSwgMHhCRiwgMHg3NywgMHhFQywgMHg1MCwg
MHg5NywgMHg1NSwgMHhFRSwgMHg5QywKKyAgICAweDI2LCAweDM1LCAweEVGLCAweEFBLCAweEFD
LCAweDdCLCAweDJCLCAweDlDLCAweDVDLCAweEVGLCAweDE3LAorICAgIDB4MzYsIDB4QzMsIDB4
NzEsIDB4N0QsIDB4QTQsIDB4ODUsIDB4MzQsIDB4QzgsIDB4QzYsIDB4QjYsIDB4NTQsCisgICAg
MHhENywgMHhGRiwgMHg5NCwgMHg1RiwgMHg1MCwgMHhCNSwgMHhDQywgMHg0RSwgMHg3OCwgMHgw
NSwgMHg1QiwKKyAgICAweERELCAweDM5LCAweDZCLCAweDY0LCAweEY3LCAweDhELCAweEEyLCAw
eEM1LCAweEY5LCAweDYyLCAweDAwLAorICAgIDB4Q0MsIDB4RDQsIDB4MTUsIDB4Q0QsIDB4MDgs
IDB4RkUsIDB4NDIsIDB4MDAsIDB4MzgsCit9OworCisvLyBVMkYgcmVzcG9uc2VzIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisvLyBFQyBwdWJsaWMga2V5IGVuY29kZWQgaW4gQ09TRV9LZXkgZm9ybWF0IGV4dHJhY3RlZCBm
cm9tIGFib3ZlCisvLyB8a1Rlc3RVMmZSZWdpc3RlclJlc3BvbnNlfC4KK2NvbnN0ZXhwciB1aW50
OF90IGtUZXN0RUNQdWJsaWNLZXlDT1NFW10gPSB7CisgICAgLy8gTWFwKDUpCisgICAgMHhBNSwK
KyAgICAvLyBrdHk6IEVDIGtleSB0eXBlCisgICAgMHgwMSwgMHgwMiwKKyAgICAvLyBhbGc6IEVD
MjU2IHNpZ25hdHVyZSBhbGdvcml0aG0KKyAgICAweDAzLCAweDI2LAorICAgIC8vIGNydjogUC0y
NTYgY3VydmUKKyAgICAweDIwLCAweDAxLAorICAgIC8vIHgtY29vcmRpbmF0ZQorICAgIDB4MjEs
CisgICAgLy8gQnl0ZXMoMzIpCisgICAgMHg1OCwgMHgyMCwKKyAgICAvLyBCeXRlIGFycmF5IGNv
bnRlbnQKKyAgICAweEU4LCAweDc2LCAweDI1LCAweDg5LCAweDZFLCAweEU0LCAweEU0LCAweDZE
LCAweEMwLCAweDMyLCAweDc2LCAweDZFLAorICAgIDB4ODAsIDB4ODcsIDB4OTYsIDB4MkYsIDB4
MzYsIDB4REYsIDB4OUQsIDB4RkUsIDB4OEIsIDB4NTYsIDB4N0YsIDB4MzcsCisgICAgMHg2Mywg
MHgwMSwgMHg1QiwgMHgxOSwgMHg5MCwgMHhBNiwgMHgwRSwgMHgxNCwKKyAgICAvLyB5LWNvb3Jk
aW5hdGUKKyAgICAweDIyLAorICAgIC8vIEJ5dGVzKDMyKQorICAgIDB4NTgsIDB4MjAsCisgICAg
Ly8gQnl0ZSBhcnJheSBjb250ZW50CisgICAgMHgyNywgMHhERSwgMHg2MSwgMHgyRCwgMHg2Niwg
MHg0MSwgMHg4QiwgMHhEQSwgMHgxOSwgMHg1MCwgMHg1OCwgMHgxRSwKKyAgICAweEJDLCAweDVD
LCAweDhDLCAweDFELCAweEFELCAweDcxLCAweDBDLCAweEIxLCAweDRDLCAweDIyLCAweEY4LCAw
eEM5LAorICAgIDB4NzAsIDB4NDUsIDB4RjQsIDB4NjEsIDB4MkYsIDB4QjIsIDB4MEMsIDB4OTEs
Cit9OworCisvLyBUaGUgYXR0ZXN0YXRpb24gc3RhdGVtZW50IGV4dHJhY3RlZCBmcm9tIGFib3Zl
IHxrVGVzdFUyZlJlZ2lzdGVyUmVzcG9uc2V8LCBhCisvLyBDQk9SLWVuY29kZWQgYnl0ZSBhcnJh
eS4KKy8vIERpYWdub3N0aWMgbm90YXRpb246CisvLyB7InNpZyI6CisvLyBoJzMwNDUwMjIwMzI0
Nzc5QzY4RjMzODAyODhBMTE5N0I2MDk1RjdBNkVCOUIxQjFDMTI3RjY2QUUxMkE5OUZFODUzMkVD
MjNCOQorLy8gICAwMjIxMDBFMzk1MTZBQzRENjFFRTY0MDQ0RDUwQjQxNUE2QTRENEQ4NEJBNkQ4
OTVDQjVBQjdBMUFBN0QwODFERTM0MUZBJywKKy8vICJ4NWMiOiBbaCczMDgyMDI0QTMwODIwMTMy
QTAwMzAyMDEwMjAyMDQwNDZDODgyMjMwMEQwNjA5MkE4NjQ4ODZGNzBEMDEwMTBCMCBcCisvLyA1
MDAzMDJFMzEyQzMwMkEwNjAzNTUwNDAzMTMyMzU5NzU2MjY5NjM2RjIwNTUzMjQ2MjA1MjZGNkY3
NDIwNDM0MTIwNTM2NTcyNjkgXAorLy8gNjE2QzIwMzQzNTM3MzIzMDMwMzYzMzMxMzAyMDE3MEQz
MTM0MzAzODMwMzEzMDMwMzAzMDMwMzA1QTE4MEYzMjMwMzUzMDMwMzkzIFwKKy8vIDAzNDMwMzAz
MDMwMzAzMDVBMzAyQzMxMkEzMDI4MDYwMzU1MDQwMzBDMjE1OTc1NjI2OTYzNkYyMDU1MzI0NjIw
NDU0NTIwNTM2NSBcCisvLyA3MjY5NjE2QzIwMzIzNDM5MzEzODMyMzMzMjM0MzczNzMwMzA1OTMw
MTMwNjA3MkE4NjQ4Q0UzRDAyMDEwNjA4MkE4NjQ4Q0UzRDAgXAorLy8gMzAxMDcwMzQyMDAwNDND
Q0FCOTJDQ0I5NzI4N0VFOEU2Mzk0MzdFMjFGQ0Q2QjZGMTY1QjJENUEzRjNEQjEzMUQzMUMxNkI3
NDJCIFwKKy8vIEI0NzZEOEQxRTk5MDgwRUI1NDZDOUJCREY1NTZFNjIxMEZENDI3ODU4OTlFNzhD
QzU4OUVCRTMxMEY2Q0RCOUZGNEEzM0IzMDM5MyBcCisvLyAwMjIwNjA5MkIwNjAxMDQwMTgyQzQw
QTAyMDQxNTMxMkUzMzJFMzYyRTMxMkUzNDJFMzEyRTM0MzEzNDM4MzIyRTMxMkUzMjMwMTMgXAor
Ly8gMDYwQjJCMDYwMTA0MDE4MkU1MUMwMjAxMDEwNDA0MDMwMjA0MzAzMDBEMDYwOTJBODY0ODg2
RjcwRDAxMDEwQjA1MDAwMzgyMDEwIFwKKy8vIDEwMDlGOUIwNTIyNDhCQzRDRjQyQ0M1OTkxRkNB
QUJBQzlCNjUxQkJFNUJEQ0RDOEVGMEFEMkMxQzFGRkIzNkQxODcxNUQ0MkU3OCBcCisvLyBCMjQ5
MjI0RjkyQzdFNkU3QTA1QzQ5RjBFN0U0Qzg4MUJGMkU5NEY0NUU0QTIxODMzRDc0NTY4NTFEMEY2
QzE0NUEyOTU0MEM4NzQgXAorLy8gRjMwOTJDOTM0QjQzRDIyMkI4OTYyQzBGNDEwQ0VGMURCNzU4
OTJBRjExNkI0NEE5NkY1RDM1QURFQTM4MjJGQzcxNDZGNjAwNDM4IFwKKy8vIDVCQ0I2OUI2NUM5
OUU3RUI2OTE5Nzg2NzAzQzBEOENENDFFOEY3NUNDQTQ0QUE4QUI3MjVBRDhFNzk5RkYzQTg2OTZB
NkYxQjI2NSBcCisvLyA2RTYzMUIxRTQwMTgzQzA4RkRBNTNGQTRBOEY4NUEwNTY5Mzk0NEFFMTc5
QTEzMzlEMDAyRDE1Q0FCRDgxMDA5MEVDNzIyRUY1REUgXAorLy8gRjk5NjVBMzcxRDQxNUQ2MjRC
NjhBMjcwN0NBRDk3QkNERDE3ODVBRjk3RTI1OEYzM0RGNTZBMDMxQUEwMzU2RDhFOEQ1RUJDQURD
IFwKKy8vIDc0RTA3MTYzNkM2QjExMEFDRTVDQzlCOTBERkVBQ0FFNjQwRkYxQkIwRjFGRTVEQjRF
RkY3QTk1RjA2MDczM0Y1J119Citjb25zdGV4cHIgdWludDhfdCBrVTJmQXR0ZXN0YXRpb25TdGF0
ZW1lbnRDQk9SW10gPSB7CisgICAgLy8gTWFwKDIpCisgICAgMHhBMiwKKyAgICAvLyBUZXh0KDMp
CisgICAgMHg2MywKKyAgICAvLyAic2lnIgorICAgIDB4NzMsIDB4NjksIDB4NjcsCisgICAgLy8g
Qnl0ZXMoNzEpCisgICAgMHg1OCwgMHg0NywKKyAgICAvLyBCeXRlIGFycmF5IGNvbnRlbnQKKyAg
ICAweDMwLCAweDQ1LCAweDAyLCAweDIwLCAweDMyLCAweDQ3LCAweDc5LCAweEM2LCAweDhGLCAw
eDMzLCAweDgwLCAweDI4LAorICAgIDB4OEEsIDB4MTEsIDB4OTcsIDB4QjYsIDB4MDksIDB4NUYs
IDB4N0EsIDB4NkUsIDB4QjksIDB4QjEsIDB4QjEsIDB4QzEsCisgICAgMHgyNywgMHhGNiwgMHg2
QSwgMHhFMSwgMHgyQSwgMHg5OSwgMHhGRSwgMHg4NSwgMHgzMiwgMHhFQywgMHgyMywgMHhCOSwK
KyAgICAweDAyLCAweDIxLCAweDAwLCAweEUzLCAweDk1LCAweDE2LCAweEFDLCAweDRELCAweDYx
LCAweEVFLCAweDY0LCAweDA0LAorICAgIDB4NEQsIDB4NTAsIDB4QjQsIDB4MTUsIDB4QTYsIDB4
QTQsIDB4RDQsIDB4RDgsIDB4NEIsIDB4QTYsIDB4RDgsIDB4OTUsCisgICAgMHhDQiwgMHg1QSwg
MHhCNywgMHhBMSwgMHhBQSwgMHg3RCwgMHgwOCwgMHgxRCwgMHhFMywgMHg0MSwgMHhGQSwKKyAg
ICAvLyBUZXh0KDMpCisgICAgMHg2MywKKyAgICAvLyAieDVjIgorICAgIDB4NzgsIDB4MzUsIDB4
NjMsCisgICAgLy8gQXJyYXkoMSkKKyAgICAweDgxLAorICAgIC8vIEJ5dGVzKDU5MCkKKyAgICAw
eDU5LCAweDAyLCAweDRFLAorICAgIC8vIEJ5dGUgYXJyYXkgY29udGVudAorICAgIDB4MzAsIDB4
ODIsIDB4MDIsIDB4NEEsIDB4MzAsIDB4ODIsIDB4MDEsIDB4MzIsIDB4QTAsIDB4MDMsIDB4MDIs
IDB4MDEsCisgICAgMHgwMiwgMHgwMiwgMHgwNCwgMHgwNCwgMHg2QywgMHg4OCwgMHgyMiwgMHgz
MCwgMHgwRCwgMHgwNiwgMHgwOSwgMHgyQSwKKyAgICAweDg2LCAweDQ4LCAweDg2LCAweEY3LCAw
eDBELCAweDAxLCAweDAxLCAweDBCLCAweDA1LCAweDAwLCAweDMwLCAweDJFLAorICAgIDB4MzEs
IDB4MkMsIDB4MzAsIDB4MkEsIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MDMsIDB4MTMsIDB4
MjMsIDB4NTksCisgICAgMHg3NSwgMHg2MiwgMHg2OSwgMHg2MywgMHg2RiwgMHgyMCwgMHg1NSwg
MHgzMiwgMHg0NiwgMHgyMCwgMHg1MiwgMHg2RiwKKyAgICAweDZGLCAweDc0LCAweDIwLCAweDQz
LCAweDQxLCAweDIwLCAweDUzLCAweDY1LCAweDcyLCAweDY5LCAweDYxLCAweDZDLAorICAgIDB4
MjAsIDB4MzQsIDB4MzUsIDB4MzcsIDB4MzIsIDB4MzAsIDB4MzAsIDB4MzYsIDB4MzMsIDB4MzEs
IDB4MzAsIDB4MjAsCisgICAgMHgxNywgMHgwRCwgMHgzMSwgMHgzNCwgMHgzMCwgMHgzOCwgMHgz
MCwgMHgzMSwgMHgzMCwgMHgzMCwgMHgzMCwgMHgzMCwKKyAgICAweDMwLCAweDMwLCAweDVBLCAw
eDE4LCAweDBGLCAweDMyLCAweDMwLCAweDM1LCAweDMwLCAweDMwLCAweDM5LCAweDMwLAorICAg
IDB4MzQsIDB4MzAsIDB4MzAsIDB4MzAsIDB4MzAsIDB4MzAsIDB4MzAsIDB4NUEsIDB4MzAsIDB4
MkMsIDB4MzEsIDB4MkEsCisgICAgMHgzMCwgMHgyOCwgMHgwNiwgMHgwMywgMHg1NSwgMHgwNCwg
MHgwMywgMHgwQywgMHgyMSwgMHg1OSwgMHg3NSwgMHg2MiwKKyAgICAweDY5LCAweDYzLCAweDZG
LCAweDIwLCAweDU1LCAweDMyLCAweDQ2LCAweDIwLCAweDQ1LCAweDQ1LCAweDIwLCAweDUzLAor
ICAgIDB4NjUsIDB4NzIsIDB4NjksIDB4NjEsIDB4NkMsIDB4MjAsIDB4MzIsIDB4MzQsIDB4Mzks
IDB4MzEsIDB4MzgsIDB4MzIsCisgICAgMHgzMywgMHgzMiwgMHgzNCwgMHgzNywgMHgzNywgMHgz
MCwgMHgzMCwgMHg1OSwgMHgzMCwgMHgxMywgMHgwNiwgMHgwNywKKyAgICAweDJBLCAweDg2LCAw
eDQ4LCAweENFLCAweDNELCAweDAyLCAweDAxLCAweDA2LCAweDA4LCAweDJBLCAweDg2LCAweDQ4
LAorICAgIDB4Q0UsIDB4M0QsIDB4MDMsIDB4MDEsIDB4MDcsIDB4MDMsIDB4NDIsIDB4MDAsIDB4
MDQsIDB4M0MsIDB4Q0EsIDB4QjksCisgICAgMHgyQywgMHhDQiwgMHg5NywgMHgyOCwgMHg3RSwg
MHhFOCwgMHhFNiwgMHgzOSwgMHg0MywgMHg3RSwgMHgyMSwgMHhGQywKKyAgICAweEQ2LCAweEI2
LCAweEYxLCAweDY1LCAweEIyLCAweEQ1LCAweEEzLCAweEYzLCAweERCLCAweDEzLCAweDFELCAw
eDMxLAorICAgIDB4QzEsIDB4NkIsIDB4NzQsIDB4MkIsIDB4QjQsIDB4NzYsIDB4RDgsIDB4RDEs
IDB4RTksIDB4OTAsIDB4ODAsIDB4RUIsCisgICAgMHg1NCwgMHg2QywgMHg5QiwgMHhCRCwgMHhG
NSwgMHg1NiwgMHhFNiwgMHgyMSwgMHgwRiwgMHhENCwgMHgyNywgMHg4NSwKKyAgICAweDg5LCAw
eDlFLCAweDc4LCAweENDLCAweDU4LCAweDlFLCAweEJFLCAweDMxLCAweDBGLCAweDZDLCAweERC
LCAweDlGLAorICAgIDB4RjQsIDB4QTMsIDB4M0IsIDB4MzAsIDB4MzksIDB4MzAsIDB4MjIsIDB4
MDYsIDB4MDksIDB4MkIsIDB4MDYsIDB4MDEsCisgICAgMHgwNCwgMHgwMSwgMHg4MiwgMHhDNCwg
MHgwQSwgMHgwMiwgMHgwNCwgMHgxNSwgMHgzMSwgMHgyRSwgMHgzMywgMHgyRSwKKyAgICAweDM2
LCAweDJFLCAweDMxLCAweDJFLCAweDM0LCAweDJFLCAweDMxLCAweDJFLCAweDM0LCAweDMxLCAw
eDM0LCAweDM4LAorICAgIDB4MzIsIDB4MkUsIDB4MzEsIDB4MkUsIDB4MzIsIDB4MzAsIDB4MTMs
IDB4MDYsIDB4MEIsIDB4MkIsIDB4MDYsIDB4MDEsCisgICAgMHgwNCwgMHgwMSwgMHg4MiwgMHhF
NSwgMHgxQywgMHgwMiwgMHgwMSwgMHgwMSwgMHgwNCwgMHgwNCwgMHgwMywgMHgwMiwKKyAgICAw
eDA0LCAweDMwLCAweDMwLCAweDBELCAweDA2LCAweDA5LCAweDJBLCAweDg2LCAweDQ4LCAweDg2
LCAweEY3LCAweDBELAorICAgIDB4MDEsIDB4MDEsIDB4MEIsIDB4MDUsIDB4MDAsIDB4MDMsIDB4
ODIsIDB4MDEsIDB4MDEsIDB4MDAsIDB4OUYsIDB4OUIsCisgICAgMHgwNSwgMHgyMiwgMHg0OCwg
MHhCQywgMHg0QywgMHhGNCwgMHgyQywgMHhDNSwgMHg5OSwgMHgxRiwgMHhDQSwgMHhBQiwKKyAg
ICAweEFDLCAweDlCLCAweDY1LCAweDFCLCAweEJFLCAweDVCLCAweERDLCAweERDLCAweDhFLCAw
eEYwLCAweEFELCAweDJDLAorICAgIDB4MUMsIDB4MUYsIDB4RkIsIDB4MzYsIDB4RDEsIDB4ODcs
IDB4MTUsIDB4RDQsIDB4MkUsIDB4NzgsIDB4QjIsIDB4NDksCisgICAgMHgyMiwgMHg0RiwgMHg5
MiwgMHhDNywgMHhFNiwgMHhFNywgMHhBMCwgMHg1QywgMHg0OSwgMHhGMCwgMHhFNywgMHhFNCwK
KyAgICAweEM4LCAweDgxLCAweEJGLCAweDJFLCAweDk0LCAweEY0LCAweDVFLCAweDRBLCAweDIx
LCAweDgzLCAweDNELCAweDc0LAorICAgIDB4NTYsIDB4ODUsIDB4MUQsIDB4MEYsIDB4NkMsIDB4
MTQsIDB4NUEsIDB4MjksIDB4NTQsIDB4MEMsIDB4ODcsIDB4NEYsCisgICAgMHgzMCwgMHg5Miwg
MHhDOSwgMHgzNCwgMHhCNCwgMHgzRCwgMHgyMiwgMHgyQiwgMHg4OSwgMHg2MiwgMHhDMCwgMHhG
NCwKKyAgICAweDEwLCAweENFLCAweEYxLCAweERCLCAweDc1LCAweDg5LCAweDJBLCAweEYxLCAw
eDE2LCAweEI0LCAweDRBLCAweDk2LAorICAgIDB4RjUsIDB4RDMsIDB4NUEsIDB4REUsIDB4QTMs
IDB4ODIsIDB4MkYsIDB4QzcsIDB4MTQsIDB4NkYsIDB4NjAsIDB4MDQsCisgICAgMHgzOCwgMHg1
QiwgMHhDQiwgMHg2OSwgMHhCNiwgMHg1QywgMHg5OSwgMHhFNywgMHhFQiwgMHg2OSwgMHgxOSwg
MHg3OCwKKyAgICAweDY3LCAweDAzLCAweEMwLCAweEQ4LCAweENELCAweDQxLCAweEU4LCAweEY3
LCAweDVDLCAweENBLCAweDQ0LCAweEFBLAorICAgIDB4OEEsIDB4QjcsIDB4MjUsIDB4QUQsIDB4
OEUsIDB4NzksIDB4OUYsIDB4RjMsIDB4QTgsIDB4NjksIDB4NkEsIDB4NkYsCisgICAgMHgxQiwg
MHgyNiwgMHg1NiwgMHhFNiwgMHgzMSwgMHhCMSwgMHhFNCwgMHgwMSwgMHg4MywgMHhDMCwgMHg4
RiwgMHhEQSwKKyAgICAweDUzLCAweEZBLCAweDRBLCAweDhGLCAweDg1LCAweEEwLCAweDU2LCAw
eDkzLCAweDk0LCAweDRBLCAweEUxLCAweDc5LAorICAgIDB4QTEsIDB4MzMsIDB4OUQsIDB4MDAs
IDB4MkQsIDB4MTUsIDB4Q0EsIDB4QkQsIDB4ODEsIDB4MDAsIDB4OTAsIDB4RUMsCisgICAgMHg3
MiwgMHgyRSwgMHhGNSwgMHhERSwgMHhGOSwgMHg5NiwgMHg1QSwgMHgzNywgMHgxRCwgMHg0MSwg
MHg1RCwgMHg2MiwKKyAgICAweDRCLCAweDY4LCAweEEyLCAweDcwLCAweDdDLCAweEFELCAweDk3
LCAweEJDLCAweERELCAweDE3LCAweDg1LCAweEFGLAorICAgIDB4OTcsIDB4RTIsIDB4NTgsIDB4
RjMsIDB4M0QsIDB4RjUsIDB4NkEsIDB4MDMsIDB4MUEsIDB4QTAsIDB4MzUsIDB4NkQsCisgICAg
MHg4RSwgMHg4RCwgMHg1RSwgMHhCQywgMHhBRCwgMHhDNywgMHg0RSwgMHgwNywgMHgxNiwgMHgz
NiwgMHhDNiwgMHhCMSwKKyAgICAweDEwLCAweEFDLCAweEU1LCAweENDLCAweDlCLCAweDkwLCAw
eERGLCAweEVBLCAweENBLCAweEU2LCAweDQwLCAweEZGLAorICAgIDB4MUIsIDB4QjAsIDB4RjEs
IDB4RkUsIDB4NUQsIDB4QjQsIDB4RUYsIDB4RjcsIDB4QTksIDB4NUYsIDB4MDYsIDB4MDcsCisg
ICAgMHgzMywgMHhGNSwKK307CisKKy8vIFUyRiByZXNwb25zZSBibG9iIHByb2R1Y2VkIGJ5IGEg
VTJGIHNpZ24gcmVxdWVzdCB1c2VkIGluIGV4YW1wbGUgNyBvZiB0aGUKKy8vIENUQVAgc3BlYy4K
Ky8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5Mjcv
Zmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0
bWwjdXNpbmctdGhlLWN0YXAyLWF1dGhlbnRpY2F0b3JnZXRhc3NlcnRpb24tY29tbWFuZC13aXRo
LWN0YXAxLXUyZi1hdXRoZW50aWNhdG9ycworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RVMmZTaWdu
UmVzcG9uc2VbXSA9IHsKKyAgICAvLyBVc2VyIHByZXNlbmNlCisgICAgMHgwMSwKKyAgICAvLyBT
aWduIGNvdW50KDQgYnl0ZXMpCisgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgzQiwKKyAgICAvLyBT
aWduYXR1cmUKKyAgICAweDMwLCAweDQ0LCAweDAyLCAweDIwLCAweDdCLCAweERFLCAweDBBLCAw
eDUyLCAweEFDLCAweDFGLCAweDRDLCAweDhCLAorICAgIDB4MjcsIDB4RTAsIDB4MDMsIDB4QTMs
IDB4NzAsIDB4Q0QsIDB4NjYsIDB4QTQsIDB4QzcsIDB4MTEsIDB4OEQsIDB4RDIsCisgICAgMHgy
RCwgMHg1NCwgMHg0NywgMHg4MywgMHg1RiwgMHg0NSwgMHhCOSwgMHg5QywgMHg2OCwgMHg0Miwg
MHgzRiwgMHhGNywKKyAgICAweDAyLCAweDIwLCAweDNDLCAweDUxLCAweDdCLCAweDQ3LCAweDg3
LCAweDdGLCAweDg1LCAweDc4LCAweDJELCAweEUxLAorICAgIDB4MDAsIDB4ODYsIDB4QTcsIDB4
ODMsIDB4RDEsIDB4RTcsIDB4REYsIDB4NEUsIDB4MzYsIDB4MzksIDB4RTcsIDB4NzEsCisgICAg
MHhGNSwgMHhGNiwgMHhBRiwgMHhBMywgMHg1QSwgMHhBRCwgMHg1MywgMHg3MywgMHg4NSwgMHg4
RSwKK307CisKKy8vIENUQVAgcmVxdWVzdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitjb25zdGV4cHIgdWludDhfdCBrQ3Rh
cE1ha2VDcmVkZW50aWFsUmVxdWVzdFtdID0geworICAgIC8vIGF1dGhlbnRpY2F0b3JNYWtlQ3Jl
ZGVudGlhbCBjb21tYW5kCisgICAgMHgwMSwKKyAgICAvLyBtYXAoNSkKKyAgICAweGE1LAorICAg
IC8vIGtleSgxKSAtIGNsaWVudERhdGFIYXNoCisgICAgMHgwMSwKKyAgICAvLyBieXRlcygzMikK
KyAgICAweDU4LCAweDIwLCAweDY4LCAweDcxLCAweDM0LCAweDk2LCAweDgyLCAweDIyLCAweGVj
LCAweDE3LCAweDIwLCAweDJlLAorICAgIDB4NDIsIDB4NTAsIDB4NWYsIDB4OGUsIDB4ZDIsIDB4
YjEsIDB4NmEsIDB4ZTIsIDB4MmYsIDB4MTYsIDB4YmIsIDB4MDUsCisgICAgMHhiOCwgMHg4Yywg
MHgyNSwgMHhkYiwgMHg5ZSwgMHg2MCwgMHgyNiwgMHg0NSwgMHhmMSwgMHg0MSwKKyAgICAvLyBr
ZXkoMikgLSBycAorICAgIDB4MDIsCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyBr
ZXkgLSAiaWQiCisgICAgMHg2MiwgMHg2OSwgMHg2NCwKKyAgICAvLyB2YWx1ZSAtICJhY21lLmNv
bSIKKyAgICAweDY4LCAweDYxLCAweDYzLCAweDZkLCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAw
eDZkLAorICAgIC8vIGtleSAtICAibmFtZSIKKyAgICAweDY0LCAweDZlLCAweDYxLCAweDZkLCAw
eDY1LAorICAgIC8vIHZhbHVlIC0gIkFjbWUiCisgICAgMHg2NCwgMHg0MSwgMHg2MywgMHg2ZCwg
MHg2NSwKKyAgICAvLyBrZXkoMykgLSB1c2VyCisgICAgMHgwMywKKyAgICAvLyBtYXAoNCkKKyAg
ICAweGE0LAorICAgIC8vIGtleSAtICJpZCIKKyAgICAweDYyLCAweDY5LCAweDY0LAorICAgIC8v
IHZhbHVlIC0gdXNlciBpZAorICAgIDB4NDgsIDB4MTAsIDB4OTgsIDB4MjMsIDB4NzIsIDB4MzUs
IDB4NDAsIDB4OTgsIDB4NzIsCisgICAgLy8ga2V5IC0gImljb24iCisgICAgMHg2NCwgMHg2OSwg
MHg2MywgMHg2ZiwgMHg2ZSwKKyAgICAvLyB2YWx1ZSAtICJodHRwczovL3BpY3MuYWNtZS5jb20v
MDAvcC9hQmpqanBxUGIucG5nIgorICAgIDB4NzgsIDB4MjgsIDB4NjgsIDB4NzQsIDB4NzQsIDB4
NzAsIDB4NzMsIDB4M2EsIDB4MmYsIDB4MmYsIDB4NzAsIDB4NjksCisgICAgMHg2MywgMHg3Mywg
MHgyZSwgMHg2MSwgMHg2MywgMHg2ZCwgMHg2NSwgMHgyZSwgMHg2MywgMHg2ZiwgMHg2ZCwgMHgy
ZiwKKyAgICAweDMwLCAweDMwLCAweDJmLCAweDcwLCAweDJmLCAweDYxLCAweDQyLCAweDZhLCAw
eDZhLCAweDZhLCAweDcwLCAweDcxLAorICAgIDB4NTAsIDB4NjIsIDB4MmUsIDB4NzAsIDB4NmUs
IDB4NjcsCisgICAgLy8ga2V5IC0gIm5hbWUiCisgICAgMHg2NCwgMHg2ZSwgMHg2MSwgMHg2ZCwg
MHg2NSwKKyAgICAvLyB2YWx1ZSAtICJqb2hucHNtaXRoQGV4YW1wbGUuY29tIgorICAgIDB4NzYs
IDB4NmEsIDB4NmYsIDB4NjgsIDB4NmUsIDB4NzAsIDB4NzMsIDB4NmQsIDB4NjksIDB4NzQsIDB4
NjgsIDB4NDAsCisgICAgMHg2NSwgMHg3OCwgMHg2MSwgMHg2ZCwgMHg3MCwgMHg2YywgMHg2NSwg
MHgyZSwgMHg2MywgMHg2ZiwgMHg2ZCwKKyAgICAvLyBrZXkgLSAiZGlzcGxheU5hbWUiCisgICAg
MHg2YiwgMHg2NCwgMHg2OSwgMHg3MywgMHg3MCwgMHg2YywgMHg2MSwgMHg3OSwgMHg0ZSwgMHg2
MSwgMHg2ZCwgMHg2NSwKKyAgICAvLyB2YWx1ZSAtICJKb2huIFAuIFNtaXRoIgorICAgIDB4NmQs
IDB4NGEsIDB4NmYsIDB4NjgsIDB4NmUsIDB4MjAsIDB4NTAsIDB4MmUsIDB4MjAsIDB4NTMsIDB4
NmQsIDB4NjksCisgICAgMHg3NCwgMHg2OCwKKyAgICAvLyBrZXkoNCkgLSBwdWJLZXlDcmVkUGFy
YW1zCisgICAgMHgwNCwKKyAgICAvLyBhcnJheSgyKQorICAgIDB4ODIsCisgICAgLy8gbWFwKDIp
CisgICAgMHhhMiwKKyAgICAvLyBrZXkgLSAiYWxnIgorICAgIDB4NjMsIDB4NjEsIDB4NmMsIDB4
NjcsCisgICAgLy8gdmFsdWUgLSA3CisgICAgMHgwNywKKyAgICAvLyBrZXkgLSAidHlwZSIKKyAg
ICAweDY0LCAweDc0LCAweDc5LCAweDcwLCAweDY1LAorICAgIC8vIHZhbHVlIC0gInB1YmxpYy1r
ZXkiCisgICAgMHg2YSwgMHg3MCwgMHg3NSwgMHg2MiwgMHg2QywgMHg2OSwgMHg2MywgMHgyRCwg
MHg2QiwgMHg2NSwgMHg3OSwKKyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8vIGtleSAt
ICJhbGciCisgICAgMHg2MywgMHg2MSwgMHg2YywgMHg2NywKKyAgICAvLyB2YWx1ZSAtIDI1Nwor
ICAgIDB4MTksIDB4MDEsIDB4MDEsCisgICAgLy8ga2V5IC0gInR5cGUiCisgICAgMHg2NCwgMHg3
NCwgMHg3OSwgMHg3MCwgMHg2NSwgLy8gInR5cGUiCisgICAgLy8gdmFsdWUgLSAicHVibGljLWtl
eSIKKyAgICAweDZhLCAweDcwLCAweDc1LCAweDYyLCAweDZDLCAweDY5LCAweDYzLCAweDJELCAw
eDZCLCAweDY1LCAweDc5LAorICAgIC8vIGtleSg3KSAtIG9wdGlvbnMKKyAgICAweDA3LAorICAg
IC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8ga2V5IC0gInJrIgorICAgIDB4NjIsIDB4NzIs
IDB4NmIsCisgICAgLy8gVHJ1ZSgyMSkKKyAgICAweGY1LAorICAgIC8vIGtleSAtICJ1diIKKyAg
ICAweDYyLCAweDc1LCAweDc2LAorICAgIC8vIFRydWUoMjEpCisgICAgMHhmNX07CisKK2NvbnN0
ZXhwciB1aW50OF90IGtUZXN0Q29tcGxleEN0YXBHZXRBc3NlcnRpb25SZXF1ZXN0W10gPSB7Cisg
ICAgLy8gYXV0aGVudGljYXRvckdldEFzc2VydGlvbiBjb21tYW5kCisgICAgMHgwMiwKKyAgICAv
LyBtYXAoNCkKKyAgICAweGE0LAorICAgIC8vIGtleSgwMSkgLXJwSWQKKyAgICAweDAxLAorICAg
IC8vIHZhbHVlIC0gImFjbWUuY29tIgorICAgIDB4NjgsIDB4NjEsIDB4NjMsIDB4NmQsIDB4NjUs
IDB4MmUsIDB4NjMsIDB4NmYsIDB4NmQsCisgICAgLy8ga2V5KDAyKSAtIGNsaWVudCBkYXRhIGhh
c2gKKyAgICAweDAyLAorICAgIC8vIHZhbHVlIC0gYnl0ZXMoMzIpCisgICAgMHg1OCwgMHgyMCwg
MHg2OCwgMHg3MSwgMHgzNCwgMHg5NiwgMHg4MiwgMHgyMiwgMHhlYywgMHgxNywgMHgyMCwgMHgy
ZSwKKyAgICAweDQyLCAweDUwLCAweDVmLCAweDhlLCAweGQyLCAweGIxLCAweDZhLCAweGUyLCAw
eDJmLCAweDE2LCAweGJiLCAweDA1LAorICAgIDB4YjgsIDB4OGMsIDB4MjUsIDB4ZGIsIDB4OWUs
IDB4NjAsIDB4MjYsIDB4NDUsIDB4ZjEsIDB4NDEsCisgICAgLy8ga2V5KDAzKSAtIGFsbG93IGxp
c3QKKyAgICAweDAzLAorICAgIC8vIHZhbHVlIC0gYXJyYXkoMikKKyAgICAweDgyLAorICAgIC8v
IG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8ga2V5IC0gImlkIgorICAgIDB4NjIsIDB4NjksIDB4
NjQsCisgICAgLy8gdmFsdWUgLSBjcmVkZW50aWFsIElECisgICAgMHg1OCwgMHg0MCwgMHhmMiwg
MHgyMCwgMHgwNiwgMHhkZSwgMHg0ZiwgMHg5MCwgMHg1YSwgMHhmNiwgMHg4YSwgMHg0MywKKyAg
ICAweDk0LCAweDJmLCAweDAyLCAweDRmLCAweDJhLCAweDVlLCAweGNlLCAweDYwLCAweDNkLCAw
eDljLCAweDZkLCAweDRiLAorICAgIDB4M2QsIDB4ZjgsIDB4YmUsIDB4MDgsIDB4ZWQsIDB4MDEs
IDB4ZmMsIDB4NDQsIDB4MjYsIDB4NDYsIDB4ZDAsIDB4MzQsCisgICAgMHg4NSwgMHg4YSwgMHhj
NywgMHg1YiwgMHhlZCwgMHgzZiwgMHhkNSwgMHg4MCwgMHhiZiwgMHg5OCwgMHgwOCwgMHhkOSwK
KyAgICAweDRmLCAweGNiLCAweGVlLCAweDgyLCAweGI5LCAweGIyLCAweGVmLCAweDY2LCAweDc3
LCAweGFmLCAweDBhLCAweGRjLAorICAgIDB4YzMsIDB4NTgsIDB4NTIsIDB4ZWEsIDB4NmIsIDB4
OWUsCisgICAgLy8ga2V5IC0gInR5cGUiCisgICAgMHg2NCwgMHg3NCwgMHg3OSwgMHg3MCwgMHg2
NSwKKyAgICAvLyB2YWx1ZSAtICJwdWJsaWMta2V5IgorICAgIDB4NmEsIDB4NzAsIDB4NzUsIDB4
NjIsIDB4NkMsIDB4NjksIDB4NjMsIDB4MkQsIDB4NkIsIDB4NjUsIDB4NzksCisgICAgLy8gbWFw
KDIpCisgICAgMHhhMiwKKyAgICAvLyBrZXkgLSAiaWQiCisgICAgMHg2MiwgMHg2OSwgMHg2NCwK
KyAgICAvLyB2YWx1ZSAtIGNyZWRlbnRpYWwgSUQKKyAgICAweDU4LCAweDMyLCAweDAzLCAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAgIDB4
MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMs
IDB4MDMsIDB4MDMsCisgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAweDAzLCAweDAzLCAweDAzLCAw
eDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLAorICAg
IDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAgLy8ga2V5IC0gInR5cGUiCisgICAgMHg2NCwg
MHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwKKyAgICAvLyB2YWx1ZSAtICJwdWJsaWMta2V5IgorICAg
IDB4NmEsIDB4NzAsIDB4NzUsIDB4NjIsIDB4NkMsIDB4NjksIDB4NjMsIDB4MkQsIDB4NkIsIDB4
NjUsIDB4NzksCisgICAgLy8gdW5zaWduZWQoNSkgLSBvcHRpb25zCisgICAgMHgwNSwKKyAgICAv
LyBtYXAoMikKKyAgICAweGEyLAorICAgIC8vIGtleSAtInVwIgorICAgIDB4NjIsIDB4NzUsIDB4
NzAsCisgICAgLy8gdmFsdWUgLSBGYWxzZSgyMCkKKyAgICAweGY0LAorICAgIC8vIGtleSAtICJ1
diIKKyAgICAweDYyLCAweDc1LCAweDc2LAorICAgIC8vIHZhbHVlIC0gVHJ1ZSgyMSkKKyAgICAw
eGY1LAorfTsKKworLy8gQ1RBUCByZXNwb25zZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gQSBzYW1wbGUgd2VsbCBm
b3JtZWQgcmVzcG9uc2UgdG8gQ1RBUCBBdXRoZW50aWNhdG9yR2V0SW5mbyByZXF1ZXN0LiBDcm9z
cworLy8gcGxhdGZvcm0gZGV2aWNlIHRoYXQgc3VwcG9ydHMgcmVzaWRlbnQga2V5LCBhbmQgdXNl
ciB2ZXJpZmljYXRpb24uCitjb25zdGV4cHIgdWludDhfdCBrVGVzdEF1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2VbXSA9IHsKKyAgICAweDAwLCAweEE2LCAweDAxLCAweDgyLCAweDY4LCAweDQ2
LCAweDQ5LCAweDQ0LCAweDRGLCAweDVGLCAweDMyLCAweDVGLAorICAgIDB4MzAsIDB4NjYsIDB4
NTUsIDB4MzIsIDB4NDYsIDB4NUYsIDB4NTYsIDB4MzIsIDB4MDIsIDB4ODIsIDB4NjMsIDB4NzUs
CisgICAgMHg3NiwgMHg2RCwgMHg2QiwgMHg2OCwgMHg2RCwgMHg2MSwgMHg2MywgMHgyRCwgMHg3
MywgMHg2NSwgMHg2MywgMHg3MiwKKyAgICAweDY1LCAweDc0LCAweDAzLCAweDUwLCAweEY4LCAw
eEEwLCAweDExLCAweEYzLCAweDhDLCAweDBBLCAweDRELCAweDE1LAorICAgIDB4ODAsIDB4MDYs
IDB4MTcsIDB4MTEsIDB4MUYsIDB4OUUsIDB4REMsIDB4N0QsIDB4MDQsIDB4QTUsIDB4NjIsIDB4
NzIsCisgICAgMHg2QiwgMHhGNSwgMHg2MiwgMHg3NSwgMHg3MCwgMHhGNSwgMHg2MiwgMHg3NSwg
MHg3NiwgMHhGNSwgMHg2NCwgMHg3MCwKKyAgICAweDZDLCAweDYxLCAweDc0LCAweEY0LCAweDY5
LCAweDYzLCAweDZDLCAweDY5LCAweDY1LCAweDZFLCAweDc0LCAweDUwLAorICAgIDB4NjksIDB4
NkUsIDB4RjQsIDB4MDUsIDB4MTksIDB4MDQsIDB4QjAsIDB4MDYsIDB4ODEsIDB4MDEsCit9Owor
CisvLyBBdXRoZW50aWNhdG9yR2V0SW5mbyByZXF1ZXN0IHdpdGggYWxsIGNvbmZpZ3VyYXRpb25z
IGVxdWFsIHRvIHRoYXQgb2YKKy8vIGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSBl
eGNlcHQgcGxhdGZvcm0gZGV2aWNlIG9wdGlvbiBpcyBzZXQgdG8KKy8vIHRydWUuCitjb25zdGV4
cHIgdWludDhfdCBrVGVzdEdldEluZm9SZXNwb25zZVBsYXRmb3JtRGV2aWNlW10gPSB7CisgICAg
MHgwMCwgMHhBNiwgMHgwMSwgMHg4MiwgMHg2OCwgMHg0NiwgMHg0OSwgMHg0NCwgMHg0RiwgMHg1
RiwgMHgzMiwgMHg1RiwKKyAgICAweDMwLCAweDY2LCAweDU1LCAweDMyLCAweDQ2LCAweDVGLCAw
eDU2LCAweDMyLCAweDAyLCAweDgyLCAweDYzLCAweDc1LAorICAgIDB4NzYsIDB4NkQsIDB4NkIs
IDB4NjgsIDB4NkQsIDB4NjEsIDB4NjMsIDB4MkQsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NzIsCisg
ICAgMHg2NSwgMHg3NCwgMHgwMywgMHg1MCwgMHhGOCwgMHhBMCwgMHgxMSwgMHhGMywgMHg4Qywg
MHgwQSwgMHg0RCwgMHgxNSwKKyAgICAweDgwLCAweDA2LCAweDE3LCAweDExLCAweDFGLCAweDlF
LCAweERDLCAweDdELCAweDA0LCAweEE1LCAweDYyLCAweDcyLAorICAgIDB4NkIsIDB4RjUsIDB4
NjIsIDB4NzUsIDB4NzAsIDB4RjUsIDB4NjIsIDB4NzUsIDB4NzYsIDB4RjUsIDB4NjQsIDB4NzAs
CisgICAgLy8gcGxhdGZvcm0gZGV2aWNlIDogdHJ1ZQorICAgIDB4NkMsIDB4NjEsIDB4NzQsIDB4
RjUsCisgICAgLy8gRW5kIG9mIHBsYXRmb3JtX2RldmljZSBzZXR0aW5nLgorICAgIDB4NjksIDB4
NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4NTAsIDB4NjksIDB4NkUsIDB4RjQs
IDB4MDUsCisgICAgMHgxOSwgMHgwNCwgMHhCMCwgMHgwNiwgMHg4MSwgMHgwMSwKK307CisKKy8v
IEEgU2FtcGxlIHdlbGwgZm9ybWVkIHJlc3BvbnNlIHRvIENUQVAgTWFrZUNyZWRlbnRpYWwgcmVx
dWVzdC4KK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0TWFrZUNyZWRlbnRpYWxSZXNwb25zZVtdID0g
eworICAgIC8vIFN1Y2Nlc3Mgc3RhdHVzIGJ5dGUKKyAgICAweDAwLAorICAgIC8vIE1hcCgwMykK
KyAgICAweGEzLAorICAgIC8vIGtleSgwMSkgLSBGb3JtYXQKKyAgICAweDAxLAorICAgIC8vICJw
YWNrZWQiCisgICAgMHg2NiwgMHg3MCwgMHg2MSwgMHg2MywgMHg2YiwgMHg2NSwgMHg2NCwKKyAg
ICAvLyBrZXkoMDIpIC0gQXV0aGVudGljYXRvciBEYXRhCisgICAgMHgwMiwKKyAgICAvLyBCeXRl
KDE1NCkKKyAgICAweDU4LCAweDlhLCAweDExLCAweDk0LCAweDIyLCAweDhkLCAweGE4LCAweGZk
LCAweGJkLCAweGVlLCAweGZkLCAweDI2LAorICAgIDB4MWIsIDB4ZDcsIDB4YjYsIDB4NTksIDB4
NWMsIDB4ZmQsIDB4NzAsIDB4YTUsIDB4MGQsIDB4NzAsIDB4YzYsIDB4NDAsCisgICAgMHg3Yiwg
MHhjZiwgMHgwMSwgMHgzZCwgMHhlOSwgMHg2ZCwgMHg0ZSwgMHhmYiwgMHgxNywgMHhkZSwgMHg0
MSwgMHgwMCwKKyAgICAweDAwLCAweDAwLCAweDBiLCAweGY4LCAweGEwLCAweDExLCAweGYzLCAw
eDhjLCAweDBhLCAweDRkLCAweDE1LCAweDgwLAorICAgIDB4MDYsIDB4MTcsIDB4MTEsIDB4MWYs
IDB4OWUsIDB4ZGMsIDB4N2QsIDB4MDAsIDB4MTAsIDB4ODksIDB4NTksIDB4Y2UsCisgICAgMHhh
ZCwgMHg1YiwgMHg1YywgMHg0OCwgMHgxNiwgMHg0ZSwgMHg4YSwgMHhiYywgMHhkNiwgMHhkOSwg
MHg0MywgMHg1YywKKyAgICAweDZmLCAweGEzLCAweDYzLCAweDYxLCAweDZjLCAweDY3LCAweDY1
LCAweDQ1LCAweDUzLCAweDMyLCAweDM1LCAweDM2LAorICAgIDB4NjEsIDB4NzgsIDB4NTgsIDB4
MjAsIDB4ZjcsIDB4YzQsIDB4ZjQsIDB4YTYsIDB4ZjEsIDB4ZDcsIDB4OTUsIDB4MzgsCisgICAg
MHhkZiwgMHhhNCwgMHhjOSwgMHhhYywgMHg1MCwgMHg4NCwgMHg4ZCwgMHhmNywgMHgwOCwgMHhi
YywgMHgxYywgMHg5OSwKKyAgICAweGY1LCAweGU2LCAweDBlLCAweDUxLCAweGI0LCAweDJhLCAw
eDUyLCAweDFiLCAweDM1LCAweGQzLCAweGI2LCAweDlhLAorICAgIDB4NjEsIDB4NzksIDB4NTgs
IDB4MjAsIDB4ZGUsIDB4N2IsIDB4N2QsIDB4NmMsIDB4YTUsIDB4NjQsIDB4ZTcsIDB4MGUsCisg
ICAgMHhhMywgMHgyMSwgMHhhNCwgMHhkNSwgMHhkOSwgMHg2ZSwgMHhhMCwgMHgwZSwgMHhmMCwg
MHhlMiwgMHhkYiwgMHg4OSwKKyAgICAweGRkLCAweDYxLCAweGQ0LCAweDg5LCAweDRjLCAweDE1
LCAweGFjLCAweDU4LCAweDViLCAweGQyLCAweDM2LCAweDg0LAorICAgIC8vIEtleSgwMykgLSBB
dHRlc3RhdGlvbiBvYmplY3QKKyAgICAweDAzLAorICAgIC8vIE1hcCAtIEF0dGVzdGF0aW9uIG9i
amVjdAorICAgIDB4YTMsIDB4NjMsIDB4NjEsIDB4NmMsIDB4NjcsIDB4MjYsIDB4NjMsIDB4NzMs
IDB4NjksIDB4NjcsIDB4NTgsIDB4NDcsCisgICAgMHgzMCwgMHg0NSwgMHgwMiwgMHgyMCwgMHgx
MywgMHhmNywgMHgzYywgMHg1ZCwgMHg5ZCwgMHg1MywgMHgwZSwgMHg4YywKKyAgICAweGMxLCAw
eDVjLCAweGM5LCAweGJkLCAweDk2LCAweGFkLCAweDU4LCAweDZkLCAweDM5LCAweDM2LCAweDY0
LCAweGU0LAorICAgIDB4NjIsIDB4ZDUsIDB4ZjAsIDB4NTYsIDB4MTIsIDB4MzUsIDB4ZTYsIDB4
MzUsIDB4MGYsIDB4MmIsIDB4NzIsIDB4ODksCisgICAgMHgwMiwgMHgyMSwgMHgwMCwgMHg5MCwg
MHgzNSwgMHg3ZiwgMHhmOSwgMHgxMCwgMHhjYywgMHhiNSwgMHg2YSwgMHhjNSwKKyAgICAweGI1
LCAweDk2LCAweDUxLCAweDE5LCAweDQ4LCAweDU4LCAweDFjLCAweDhmLCAweGRkLCAweGI0LCAw
eGEyLCAweGI3LAorICAgIDB4OTksIDB4NTksIDB4OTQsIDB4ODAsIDB4NzgsIDB4YjAsIDB4OWYs
IDB4NGIsIDB4ZGMsIDB4NjIsIDB4MjksIDB4NjMsCisgICAgMHg3OCwgMHgzNSwgMHg2MywgMHg4
MSwgMHg1OSwgMHgwMSwgMHg5NywgMHgzMCwgMHg4MiwgMHgwMSwgMHg5MywgMHgzMCwKKyAgICAw
eDgyLCAweDAxLCAweDM4LCAweGEwLCAweDAzLCAweDAyLCAweDAxLCAweDAyLCAweDAyLCAweDA5
LCAweDAwLCAweDg1LAorICAgIDB4OWIsIDB4NzIsIDB4NmMsIDB4YjIsIDB4NGIsIDB4NGMsIDB4
MjksIDB4MzAsIDB4MGEsIDB4MDYsIDB4MDgsIDB4MmEsCisgICAgMHg4NiwgMHg0OCwgMHhjZSwg
MHgzZCwgMHgwNCwgMHgwMywgMHgwMiwgMHgzMCwgMHg0NywgMHgzMSwgMHgwYiwgMHgzMCwKKyAg
ICAweDA5LCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDA2LCAweDEzLCAweDAyLCAweDU1LCAw
eDUzLCAweDMxLCAweDE0LAorICAgIDB4MzAsIDB4MTIsIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQs
IDB4MGEsIDB4MGMsIDB4MGIsIDB4NTksIDB4NzUsIDB4NjIsCisgICAgMHg2OSwgMHg2MywgMHg2
ZiwgMHgyMCwgMHg1NCwgMHg2NSwgMHg3MywgMHg3NCwgMHgzMSwgMHgyMiwgMHgzMCwgMHgyMCwK
KyAgICAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDBiLCAweDBjLCAweDE5LCAweDQxLCAweDc1
LCAweDc0LCAweDY4LCAweDY1LAorICAgIDB4NmUsIDB4NzQsIDB4NjksIDB4NjMsIDB4NjEsIDB4
NzQsIDB4NmYsIDB4NzIsIDB4MjAsIDB4NDEsIDB4NzQsIDB4NzQsCisgICAgMHg2NSwgMHg3Mywg
MHg3NCwgMHg2MSwgMHg3NCwgMHg2OSwgMHg2ZiwgMHg2ZSwgMHgzMCwgMHgxZSwgMHgxNywgMHgw
ZCwKKyAgICAweDMxLCAweDM2LCAweDMxLCAweDMyLCAweDMwLCAweDM0LCAweDMxLCAweDMxLCAw
eDM1LCAweDM1LCAweDMwLCAweDMwLAorICAgIDB4NWEsIDB4MTcsIDB4MGQsIDB4MzIsIDB4MzYs
IDB4MzEsIDB4MzIsIDB4MzAsIDB4MzIsIDB4MzEsIDB4MzEsIDB4MzUsCisgICAgMHgzNSwgMHgz
MCwgMHgzMCwgMHg1YSwgMHgzMCwgMHg0NywgMHgzMSwgMHgwYiwgMHgzMCwgMHgwOSwgMHgwNiwg
MHgwMywKKyAgICAweDU1LCAweDA0LCAweDA2LCAweDEzLCAweDAyLCAweDU1LCAweDUzLCAweDMx
LCAweDE0LCAweDMwLCAweDEyLCAweDA2LAorICAgIDB4MDMsIDB4NTUsIDB4MDQsIDB4MGEsIDB4
MGMsIDB4MGIsIDB4NTksIDB4NzUsIDB4NjIsIDB4NjksIDB4NjMsIDB4NmYsCisgICAgMHgyMCwg
MHg1NCwgMHg2NSwgMHg3MywgMHg3NCwgMHgzMSwgMHgyMiwgMHgzMCwgMHgyMCwgMHgwNiwgMHgw
MywgMHg1NSwKKyAgICAweDA0LCAweDBiLCAweDBjLCAweDE5LCAweDQxLCAweDc1LCAweDc0LCAw
eDY4LCAweDY1LCAweDZlLCAweDc0LCAweDY5LAorICAgIDB4NjMsIDB4NjEsIDB4NzQsIDB4NmYs
IDB4NzIsIDB4MjAsIDB4NDEsIDB4NzQsIDB4NzQsIDB4NjUsIDB4NzMsIDB4NzQsCisgICAgMHg2
MSwgMHg3NCwgMHg2OSwgMHg2ZiwgMHg2ZSwgMHgzMCwgMHg1OSwgMHgzMCwgMHgxMywgMHgwNiwg
MHgwNywgMHgyYSwKKyAgICAweDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDAyLCAweDAxLCAweDA2
LCAweDA4LCAweDJhLCAweDg2LCAweDQ4LCAweGNlLAorICAgIDB4M2QsIDB4MDMsIDB4MDEsIDB4
MDcsIDB4MDMsIDB4NDIsIDB4MDAsIDB4MDQsIDB4YWQsIDB4MTEsIDB4ZWIsIDB4MGUsCisgICAg
MHg4OCwgMHg1MiwgMHhlNSwgMHgzYSwgMHhkNSwgMHhkZiwgMHhlZCwgMHg4NiwgMHhiNCwgMHgx
ZSwgMHg2MSwgMHgzNCwKKyAgICAweGExLCAweDhlLCAweGM0LCAweGUxLCAweGFmLCAweDhmLCAw
eDIyLCAweDFhLCAweDNjLCAweDdkLCAweDZlLCAweDYzLAorICAgIDB4NmMsIDB4ODAsIDB4ZWEs
IDB4MTMsIDB4YzMsIDB4ZDUsIDB4MDQsIDB4ZmYsIDB4MmUsIDB4NzYsIDB4MjEsIDB4MWIsCisg
ICAgMHhiNCwgMHg0NSwgMHgyNSwgMHhiMSwgMHg5NiwgMHhjNCwgMHg0YywgMHhiNCwgMHg4NCwg
MHg5OSwgMHg3OSwgMHhjZiwKKyAgICAweDZmLCAweDg5LCAweDZlLCAweGNkLCAweDJiLCAweGI4
LCAweDYwLCAweGRlLCAweDFiLCAweGY0LCAweDM3LCAweDZiLAorICAgIDB4YTMsIDB4MGQsIDB4
MzAsIDB4MGIsIDB4MzAsIDB4MDksIDB4MDYsIDB4MDMsIDB4NTUsIDB4MWQsIDB4MTMsIDB4MDQs
CisgICAgMHgwMiwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwYSwgMHgwNiwgMHgwOCwgMHgyYSwgMHg4
NiwgMHg0OCwgMHhjZSwgMHgzZCwKKyAgICAweDA0LCAweDAzLCAweDAyLCAweDAzLCAweDQ5LCAw
eDAwLCAweDMwLCAweDQ2LCAweDAyLCAweDIxLCAweDAwLCAweGU5LAorICAgIDB4YTMsIDB4OWYs
IDB4MWIsIDB4MDMsIDB4MTksIDB4NzUsIDB4MjUsIDB4ZjcsIDB4MzcsIDB4M2UsIDB4MTAsIDB4
Y2UsCisgICAgMHg3NywgMHhlNywgMHg4MCwgMHgyMSwgMHg3MywgMHgxYiwgMHg5NCwgMHhkMCwg
MHhjMCwgMHgzZiwgMHgzZiwgMHhkYSwKKyAgICAweDFmLCAweGQyLCAweDJkLCAweGIzLCAweGQw
LCAweDMwLCAweGU3LCAweDAyLCAweDIxLCAweDAwLCAweGM0LCAweGZhLAorICAgIDB4ZWMsIDB4
MzQsIDB4NDUsIDB4YTgsIDB4MjAsIDB4Y2YsIDB4NDMsIDB4MTIsIDB4OWMsIDB4ZGIsIDB4MDAs
IDB4YWEsCisgICAgMHhiZSwgMHhmZCwgMHg5YSwgMHhlMiwgMHhkOCwgMHg3NCwgMHhmOSwgMHhj
NSwgMHhkMywgMHg0MywgMHhjYiwgMHgyZiwKKyAgICAweDExLCAweDNkLCAweGEyLCAweDM3LCAw
eDIzLCAweGYzLAorfTsKKworLy8gQmVsb3cgfGtDdGFwMk1ha2VDcmVkZW50aWFsQ2VydGlmaWNh
dGV8LCB8a0N0YXAyTWFrZUNyZWRlbnRpYWxBdXRoRGF0YXwsIGFuZAorLy8gfGtDdGFwMk1ha2VD
cmVkZW50aWFsU2lnbmF0dXJlfCBsZXZlcmFnZSBleGFtcGxlIDQgb2YgdGhlIENUQVAgc3BlYy4K
Ky8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5Mjcv
Zmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0
bWwKK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwMk1ha2VDcmVkZW50aWFsQ2VydGlmaWNhdGVbXSA9
IHsKKyAgICAweDMwLCAweDgyLCAweDAxLCAweDkzLCAweDMwLCAweDgyLCAweDAxLCAweDM4LCAw
eGEwLCAweDAzLCAweDAyLCAweDAxLAorICAgIDB4MDIsIDB4MDIsIDB4MDksIDB4MDAsIDB4ODUs
IDB4OWIsIDB4NzIsIDB4NmMsIDB4YjIsIDB4NGIsIDB4NGMsIDB4MjksCisgICAgMHgzMCwgMHgw
YSwgMHgwNiwgMHgwOCwgMHgyYSwgMHg4NiwgMHg0OCwgMHhjZSwgMHgzZCwgMHgwNCwgMHgwMywg
MHgwMiwKKyAgICAweDMwLCAweDQ3LCAweDMxLCAweDBiLCAweDMwLCAweDA5LCAweDA2LCAweDAz
LCAweDU1LCAweDA0LCAweDA2LCAweDEzLAorICAgIDB4MDIsIDB4NTUsIDB4NTMsIDB4MzEsIDB4
MTQsIDB4MzAsIDB4MTIsIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MGEsCisgICAgMHgwYywg
MHgwYiwgMHg1OSwgMHg3NSwgMHg2MiwgMHg2OSwgMHg2MywgMHg2ZiwgMHgyMCwgMHg1NCwgMHg2
NSwgMHg3MywKKyAgICAweDc0LCAweDMxLCAweDIyLCAweDMwLCAweDIwLCAweDA2LCAweDAzLCAw
eDU1LCAweDA0LCAweDBiLCAweDBjLCAweDE5LAorICAgIDB4NDEsIDB4NzUsIDB4NzQsIDB4Njgs
IDB4NjUsIDB4NmUsIDB4NzQsIDB4NjksIDB4NjMsIDB4NjEsIDB4NzQsIDB4NmYsCisgICAgMHg3
MiwgMHgyMCwgMHg0MSwgMHg3NCwgMHg3NCwgMHg2NSwgMHg3MywgMHg3NCwgMHg2MSwgMHg3NCwg
MHg2OSwgMHg2ZiwKKyAgICAweDZlLCAweDMwLCAweDFlLCAweDE3LCAweDBkLCAweDMxLCAweDM2
LCAweDMxLCAweDMyLCAweDMwLCAweDM0LCAweDMxLAorICAgIDB4MzEsIDB4MzUsIDB4MzUsIDB4
MzAsIDB4MzAsIDB4NWEsIDB4MTcsIDB4MGQsIDB4MzIsIDB4MzYsIDB4MzEsIDB4MzIsCisgICAg
MHgzMCwgMHgzMiwgMHgzMSwgMHgzMSwgMHgzNSwgMHgzNSwgMHgzMCwgMHgzMCwgMHg1YSwgMHgz
MCwgMHg0NywgMHgzMSwKKyAgICAweDBiLCAweDMwLCAweDA5LCAweDA2LCAweDAzLCAweDU1LCAw
eDA0LCAweDA2LCAweDEzLCAweDAyLCAweDU1LCAweDUzLAorICAgIDB4MzEsIDB4MTQsIDB4MzAs
IDB4MTIsIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MGEsIDB4MGMsIDB4MGIsIDB4NTksCisg
ICAgMHg3NSwgMHg2MiwgMHg2OSwgMHg2MywgMHg2ZiwgMHgyMCwgMHg1NCwgMHg2NSwgMHg3Mywg
MHg3NCwgMHgzMSwgMHgyMiwKKyAgICAweDMwLCAweDIwLCAweDA2LCAweDAzLCAweDU1LCAweDA0
LCAweDBiLCAweDBjLCAweDE5LCAweDQxLCAweDc1LCAweDc0LAorICAgIDB4NjgsIDB4NjUsIDB4
NmUsIDB4NzQsIDB4NjksIDB4NjMsIDB4NjEsIDB4NzQsIDB4NmYsIDB4NzIsIDB4MjAsIDB4NDEs
CisgICAgMHg3NCwgMHg3NCwgMHg2NSwgMHg3MywgMHg3NCwgMHg2MSwgMHg3NCwgMHg2OSwgMHg2
ZiwgMHg2ZSwgMHgzMCwgMHg1OSwKKyAgICAweDMwLCAweDEzLCAweDA2LCAweDA3LCAweDJhLCAw
eDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDAyLCAweDAxLCAweDA2LAorICAgIDB4MDgsIDB4MmEs
IDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2QsIDB4MDMsIDB4MDEsIDB4MDcsIDB4MDMsIDB4NDIsIDB4
MDAsCisgICAgMHgwNCwgMHhhZCwgMHgxMSwgMHhlYiwgMHgwZSwgMHg4OCwgMHg1MiwgMHhlNSwg
MHgzYSwgMHhkNSwgMHhkZiwgMHhlZCwKKyAgICAweDg2LCAweGI0LCAweDFlLCAweDYxLCAweDM0
LCAweGExLCAweDhlLCAweGM0LCAweGUxLCAweGFmLCAweDhmLCAweDIyLAorICAgIDB4MWEsIDB4
M2MsIDB4N2QsIDB4NmUsIDB4NjMsIDB4NmMsIDB4ODAsIDB4ZWEsIDB4MTMsIDB4YzMsIDB4ZDUs
IDB4MDQsCisgICAgMHhmZiwgMHgyZSwgMHg3NiwgMHgyMSwgMHgxYiwgMHhiNCwgMHg0NSwgMHgy
NSwgMHhiMSwgMHg5NiwgMHhjNCwgMHg0YywKKyAgICAweGI0LCAweDg0LCAweDk5LCAweDc5LCAw
eGNmLCAweDZmLCAweDg5LCAweDZlLCAweGNkLCAweDJiLCAweGI4LCAweDYwLAorICAgIDB4ZGUs
IDB4MWIsIDB4ZjQsIDB4MzcsIDB4NmIsIDB4YTMsIDB4MGQsIDB4MzAsIDB4MGIsIDB4MzAsIDB4
MDksIDB4MDYsCisgICAgMHgwMywgMHg1NSwgMHgxZCwgMHgxMywgMHgwNCwgMHgwMiwgMHgzMCwg
MHgwMCwgMHgzMCwgMHgwYSwgMHgwNiwgMHgwOCwKKyAgICAweDJhLCAweDg2LCAweDQ4LCAweGNl
LCAweDNkLCAweDA0LCAweDAzLCAweDAyLCAweDAzLCAweDQ5LCAweDAwLCAweDMwLAorICAgIDB4
NDYsIDB4MDIsIDB4MjEsIDB4MDAsIDB4ZTksIDB4YTMsIDB4OWYsIDB4MWIsIDB4MDMsIDB4MTks
IDB4NzUsIDB4MjUsCisgICAgMHhmNywgMHgzNywgMHgzZSwgMHgxMCwgMHhjZSwgMHg3NywgMHhl
NywgMHg4MCwgMHgyMSwgMHg3MywgMHgxYiwgMHg5NCwKKyAgICAweGQwLCAweGMwLCAweDNmLCAw
eDNmLCAweGRhLCAweDFmLCAweGQyLCAweDJkLCAweGIzLCAweGQwLCAweDMwLCAweGU3LAorICAg
IDB4MDIsIDB4MjEsIDB4MDAsIDB4YzQsIDB4ZmEsIDB4ZWMsIDB4MzQsIDB4NDUsIDB4YTgsIDB4
MjAsIDB4Y2YsIDB4NDMsCisgICAgMHgxMiwgMHg5YywgMHhkYiwgMHgwMCwgMHhhYSwgMHhiZSwg
MHhmZCwgMHg5YSwgMHhlMiwgMHhkOCwgMHg3NCwgMHhmOSwKKyAgICAweGM1LCAweGQzLCAweDQz
LCAweGNiLCAweDJmLCAweDExLCAweDNkLCAweGEyLCAweDM3LCAweDIzLCAweGYzfTsKKworY29u
c3RleHByIHVpbnQ4X3Qga0N0YXAyTWFrZUNyZWRlbnRpYWxBdXRoRGF0YVtdID0geworICAgIDB4
MTEsIDB4OTQsIDB4MjIsIDB4OEQsIDB4QTgsIDB4RkQsIDB4QkQsIDB4RUUsIDB4RkQsIDB4MjYs
IDB4MUIsIDB4RDcsCisgICAgMHhCNiwgMHg1OSwgMHg1QywgMHhGRCwgMHg3MCwgMHhBNSwgMHgw
RCwgMHg3MCwgMHhDNiwgMHg0MCwgMHg3QiwgMHhDRiwKKyAgICAweDAxLCAweDNELCAweEU5LCAw
eDZELCAweDRFLCAweEZCLCAweDE3LCAweERFLCAweDQxLCAweDAwLCAweDAwLCAweDAwLAorICAg
IDB4MGIsIDB4ZjgsIDB4YTAsIDB4MTEsIDB4ZjMsIDB4OGMsIDB4MGEsIDB4NGQsIDB4MTUsIDB4
ODAsIDB4MDYsIDB4MTcsCisgICAgMHgxMSwgMHgxZiwgMHg5ZSwgMHhkYywgMHg3ZCwgMHgwMCwg
MHgxMCwgMHg4OSwgMHg1OSwgMHhjZSwgMHhhZCwgMHg1YiwKKyAgICAweDVjLCAweDQ4LCAweDE2
LCAweDRlLCAweDhhLCAweGJjLCAweGQ2LCAweGQ5LCAweDQzLCAweDVjLCAweDZmLCAweGEzLAor
ICAgIDB4NjMsIDB4NjEsIDB4NmMsIDB4NjcsIDB4NjUsIDB4NDUsIDB4NTMsIDB4MzIsIDB4MzUs
IDB4MzYsIDB4NjEsIDB4NzgsCisgICAgMHg1OCwgMHgyMCwgMHhmNywgMHhjNCwgMHhmNCwgMHhh
NiwgMHhmMSwgMHhkNywgMHg5NSwgMHgzOCwgMHhkZiwgMHhhNCwKKyAgICAweGM5LCAweGFjLCAw
eDUwLCAweDg0LCAweDhkLCAweGY3LCAweDA4LCAweGJjLCAweDFjLCAweDk5LCAweGY1LCAweGU2
LAorICAgIDB4MGUsIDB4NTEsIDB4YjQsIDB4MmEsIDB4NTIsIDB4MWIsIDB4MzUsIDB4ZDMsIDB4
YjYsIDB4OWEsIDB4NjEsIDB4NzksCisgICAgMHg1OCwgMHgyMCwgMHhkZSwgMHg3YiwgMHg3ZCwg
MHg2YywgMHhhNSwgMHg2NCwgMHhlNywgMHgwZSwgMHhhMywgMHgyMSwKKyAgICAweGE0LCAweGQ1
LCAweGQ5LCAweDZlLCAweGEwLCAweDBlLCAweGYwLCAweGUyLCAweGRiLCAweDg5LCAweGRkLCAw
eDYxLAorICAgIDB4ZDQsIDB4ODksIDB4NGMsIDB4MTUsIDB4YWMsIDB4NTgsIDB4NWIsIDB4ZDIs
IDB4MzYsIDB4ODR9OworCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcDJNYWtlQ3JlZGVudGlhbFNp
Z25hdHVyZVtdID0geworICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4MjAsIDB4MTMsIDB4ZjcsIDB4
M2MsIDB4NWQsIDB4OWQsIDB4NTMsIDB4MGUsIDB4OGMsCisgICAgMHhjMSwgMHg1YywgMHhjOSwg
MHhiZCwgMHg5NiwgMHhhZCwgMHg1OCwgMHg2ZCwgMHgzOSwgMHgzNiwgMHg2NCwgMHhlNCwKKyAg
ICAweDYyLCAweGQ1LCAweGYwLCAweDU2LCAweDEyLCAweDM1LCAweGU2LCAweDM1LCAweDBmLCAw
eDJiLCAweDcyLCAweDg5LAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4OTAsIDB4MzUsIDB4N2Ys
IDB4ZjksIDB4MTAsIDB4Y2MsIDB4YjUsIDB4NmEsIDB4YzUsCisgICAgMHhiNSwgMHg5NiwgMHg1
MSwgMHgxOSwgMHg0OCwgMHg1OCwgMHgxYywgMHg4ZiwgMHhkZCwgMHhiNCwgMHhhMiwgMHhiNywK
KyAgICAweDk5LCAweDU5LCAweDk0LCAweDgwLCAweDc4LCAweGIwLCAweDlmLCAweDRiLCAweGRj
LCAweDYyLCAweDI5fTsKKworY29uc3RleHByIHVpbnQ4X3Qga0N0YXAyTWFrZUNyZWRlbnRpYWxD
cmVkZW50aWFsSWRbXSA9IHsKKyAgICAweDg5LCAweDU5LCAweGNlLCAweGFkLCAweDViLCAweDVj
LCAweDQ4LCAweDE2LAorICAgIDB4NGUsIDB4OGEsIDB4YmMsIDB4ZDYsIDB4ZDksIDB4NDMsIDB4
NWMsIDB4NmYsCit9OworCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcDJHZXRBc3NlcnRpb25BdXRo
RGF0YVtdID0geworICAgIDB4NjIsIDB4NWQsIDB4ZGEsIDB4ZGYsIDB4NzQsIDB4M2YsIDB4NTcs
IDB4MjcsIDB4ZTYsIDB4NmIsCisgICAgMHhiYSwgMHg4YywgMHgyZSwgMHgzOCwgMHg3OSwgMHgy
MiwgMHhkMSwgMHhhZiwgMHg0MywgMHhjNSwKKyAgICAweDAzLCAweGQ5LCAweDExLCAweDRhLCAw
eDhmLCAweGJhLCAweDEwLCAweDRkLCAweDg0LCAweGQwLAorICAgIDB4MmIsIDB4ZmEsIDB4MDEs
IDB4MDAsIDB4MDAsIDB4MDAsIDB4MTF9OworCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcDJHZXRB
c3NlcnRpb25TaWduYXR1cmVbXSA9IHsKKyAgICAweDMwLCAweDQ1LCAweDAyLCAweDIwLCAweDRh
LCAweDVhLCAweDlkLCAweGQzLCAweDkyLCAweDk4LCAweDE0LCAweDlkLAorICAgIDB4OTAsIDB4
NDcsIDB4NjksIDB4YjUsIDB4MWEsIDB4NDUsIDB4MTQsIDB4MzMsIDB4MDAsIDB4NmYsIDB4MTgs
IDB4MmEsCisgICAgMHgzNCwgMHhmYiwgMHhkZiwgMHg2NiwgMHhkZSwgMHg1ZiwgMHhjNywgMHgx
NywgMHhkNywgMHg1ZiwgMHhiMywgMHg1MCwKKyAgICAweDAyLCAweDIxLCAweDAwLCAweGE0LCAw
eDZiLCAweDhlLCAweGEzLCAweGMzLCAweGI5LCAweDMzLCAweDgyLCAweDFjLAorICAgIDB4NmUs
IDB4N2YsIDB4NWUsIDB4ZjksIDB4ZGEsIDB4YWUsIDB4OTQsIDB4YWIsIDB4NDcsIDB4ZjEsIDB4
OGQsIDB4YjQsCisgICAgMHg3NCwgMHhjNywgMHg0NywgMHg5MCwgMHhlYSwgMHhhYiwgMHhiMSwg
MHg0NCwgMHgxMSwgMHhlNywgMHhhMCwKK307CisKK2NvbnN0ZXhwciB1aW50OF90IGtEZXZpY2VH
ZXRBc3NlcnRpb25SZXNwb25zZVtdID0geworICAgIC8vIFN1Y2Nlc3MgcmVzcG9uc2UgY29kZQor
ICAgIDB4MDAsCisgICAgLy8gbWFwKDUpCisgICAgMHhhNSwKKyAgICAvLyB1bnNpZ25lZCgxKSAt
IENyZWRlbnRpYWwKKyAgICAweDAxLAorICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8g
dGV4dCgyKQorICAgIDB4NjIsCisgICAgLy8gImlkIgorICAgIDB4NjksIDB4NjQsCisgICAgLy8g
Ynl0ZXMoNjQpCisgICAgMHg1OCwgMHg0MCwKKyAgICAvLyBjcmVkZW50aWFsIGlkCisgICAgMHhm
MiwgMHgyMCwgMHgwNiwgMHhkZSwgMHg0ZiwgMHg5MCwgMHg1YSwgMHhmNiwgMHg4YSwgMHg0Mywg
MHg5NCwgMHgyZiwKKyAgICAweDAyLCAweDRmLCAweDJhLCAweDVlLCAweGNlLCAweDYwLCAweDNk
LCAweDljLCAweDZkLCAweDRiLCAweDNkLCAweGY4LAorICAgIDB4YmUsIDB4MDgsIDB4ZWQsIDB4
MDEsIDB4ZmMsIDB4NDQsIDB4MjYsIDB4NDYsIDB4ZDAsIDB4MzQsIDB4ODUsIDB4OGEsCisgICAg
MHhjNywgMHg1YiwgMHhlZCwgMHgzZiwgMHhkNSwgMHg4MCwgMHhiZiwgMHg5OCwgMHgwOCwgMHhk
OSwgMHg0ZiwgMHhjYiwKKyAgICAweGVlLCAweDgyLCAweGI5LCAweGIyLCAweGVmLCAweDY2LCAw
eDc3LCAweGFmLCAweDBhLCAweGRjLCAweGMzLCAweDU4LAorICAgIDB4NTIsIDB4ZWEsIDB4NmIs
IDB4OWUsCisgICAgLy8gdGV4dCg0KQorICAgIDB4NjQsCisgICAgLy8gInR5cGUiCisgICAgMHg3
NCwgMHg3OSwgMHg3MCwgMHg2NSwKKyAgICAvLyB0ZXh0KDEwKQorICAgIDB4NmEsCisgICAgLy8g
InB1YmxpYy1rZXkiCisgICAgMHg3MCwgMHg3NSwgMHg2MiwgMHg2QywgMHg2OSwgMHg2MywgMHgy
RCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAgICAvLyB1bnNpZ25lZCgyKSAtIEF1dGggZGF0YQorICAg
IDB4MDIsCisgICAgLy8gYnl0ZXMoMzcpCisgICAgMHg1OCwgMHgyNSwKKyAgICAvLyBhdXRoIGRh
dGEKKyAgICAweDYyLCAweDVkLCAweGRhLCAweGRmLCAweDc0LCAweDNmLCAweDU3LCAweDI3LCAw
eGU2LCAweDZiLCAweGJhLCAweDhjLAorICAgIDB4MmUsIDB4MzgsIDB4NzksIDB4MjIsIDB4ZDEs
IDB4YWYsIDB4NDMsIDB4YzUsIDB4MDMsIDB4ZDksIDB4MTEsIDB4NGEsCisgICAgMHg4ZiwgMHhi
YSwgMHgxMCwgMHg0ZCwgMHg4NCwgMHhkMCwgMHgyYiwgMHhmYSwgMHgwMSwgMHgwMCwgMHgwMCwg
MHgwMCwKKyAgICAweDExLAorICAgIC8vIHVuc2lnbmVkKDMpIC0gc2lnbmF0dXJlCisgICAgMHgw
MywKKyAgICAvLyBieXRlcyg3MSkKKyAgICAweDU4LCAweDQ3LAorICAgIC8vIHNpZ25hdHVyZQor
ICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4MjAsIDB4NGEsIDB4NWEsIDB4OWQsIDB4ZDMsIDB4OTIs
IDB4OTgsIDB4MTQsIDB4OWQsCisgICAgMHg5MCwgMHg0NywgMHg2OSwgMHhiNSwgMHgxYSwgMHg0
NSwgMHgxNCwgMHgzMywgMHgwMCwgMHg2ZiwgMHgxOCwgMHgyYSwKKyAgICAweDM0LCAweGZiLCAw
eGRmLCAweDY2LCAweGRlLCAweDVmLCAweGM3LCAweDE3LCAweGQ3LCAweDVmLCAweGIzLCAweDUw
LAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4YTQsIDB4NmIsIDB4OGUsIDB4YTMsIDB4YzMsIDB4
YjksIDB4MzMsIDB4ODIsIDB4MWMsCisgICAgMHg2ZSwgMHg3ZiwgMHg1ZSwgMHhmOSwgMHhkYSwg
MHhhZSwgMHg5NCwgMHhhYiwgMHg0NywgMHhmMSwgMHg4ZCwgMHhiNCwKKyAgICAweDc0LCAweGM3
LCAweDQ3LCAweDkwLCAweGVhLCAweGFiLCAweGIxLCAweDQ0LCAweDExLCAweGU3LCAweGEwLAor
ICAgIC8vIHVuc2lnbmVkKDQpIC0gcHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkKKyAgICAw
eDA0LAorICAgIC8vIG1hcCg0KQorICAgIDB4YTQsCisgICAgLy8gdGV4dCgyKQorICAgIDB4NjIs
CisgICAgLy8gImlkIgorICAgIDB4NjksIDB4NjQsCisgICAgLy8gYnl0ZXMoMzIpIC0gdXNlciBp
ZAorICAgIDB4NTgsIDB4MjAsCisgICAgLy8gdXNlciBpZAorICAgIDB4MzAsIDB4ODIsIDB4MDEs
IDB4OTMsIDB4MzAsIDB4ODIsIDB4MDEsIDB4MzgsIDB4YTAsIDB4MDMsIDB4MDIsIDB4MDEsCisg
ICAgMHgwMiwgMHgzMCwgMHg4MiwgMHgwMSwgMHg5MywgMHgzMCwgMHg4MiwgMHgwMSwgMHgzOCwg
MHhhMCwgMHgwMywgMHgwMiwKKyAgICAweDAxLCAweDAyLCAweDMwLCAweDgyLCAweDAxLCAweDkz
LCAweDMwLCAweDgyLAorICAgIC8vIHRleHQoNCkKKyAgICAweDY0LAorICAgIC8vICJpY29uIgor
ICAgIDB4NjksIDB4NjMsIDB4NmYsIDB4NmUsCisgICAgLy8gdGV4dCg0MCkKKyAgICAweDc4LCAw
eDI4LAorICAgIC8vICJodHRwczovL3BpY3MuYWNtZS5jb20vMDAvcC9hQmpqanBxUGIucG5nIgor
ICAgIDB4NjgsIDB4NzQsIDB4NzQsIDB4NzAsIDB4NzMsIDB4M2EsIDB4MmYsIDB4MmYsIDB4NzAs
IDB4NjksIDB4NjMsIDB4NzMsCisgICAgMHgyZSwgMHg2MSwgMHg2MywgMHg2ZCwgMHg2NSwgMHgy
ZSwgMHg2MywgMHg2ZiwgMHg2ZCwgMHgyZiwgMHgzMCwgMHgzMCwKKyAgICAweDJmLCAweDcwLCAw
eDJmLCAweDYxLCAweDQyLCAweDZhLCAweDZhLCAweDZhLCAweDcwLCAweDcxLCAweDUwLCAweDYy
LAorICAgIDB4MmUsIDB4NzAsIDB4NmUsIDB4NjcsCisgICAgLy8gdGV4dCg0KQorICAgIDB4NjQs
CisgICAgLy8gIm5hbWUiCisgICAgMHg2ZSwgMHg2MSwgMHg2ZCwgMHg2NSwKKyAgICAvLyB0ZXh0
KDIyKQorICAgIDB4NzYsCisgICAgLy8gImpvaG5wc21pdGhAZXhhbXBsZS5jb20iCisgICAgMHg2
YSwgMHg2ZiwgMHg2OCwgMHg2ZSwgMHg3MCwgMHg3MywgMHg2ZCwgMHg2OSwgMHg3NCwgMHg2OCwg
MHg0MCwgMHg2NSwKKyAgICAweDc4LCAweDYxLCAweDZkLCAweDcwLCAweDZjLCAweDY1LCAweDJl
LCAweDYzLCAweDZmLCAweDZkLAorICAgIC8vIHRleHQoMTEpCisgICAgMHg2YiwKKyAgICAvLyAi
ZGlzcGxheU5hbWUiCisgICAgMHg2NCwgMHg2OSwgMHg3MywgMHg3MCwgMHg2YywgMHg2MSwgMHg3
OSwgMHg0ZSwgMHg2MSwgMHg2ZCwgMHg2NSwKKyAgICAvLyB0ZXh0KDEzKQorICAgIDB4NmQsCisg
ICAgLy8gIkpvaG4gUC4gU21pdGgiCisgICAgMHg0YSwgMHg2ZiwgMHg2OCwgMHg2ZSwgMHgyMCwg
MHg1MCwgMHgyZSwgMHgyMCwgMHg1MywgMHg2ZCwgMHg2OSwgMHg3NCwKKyAgICAweDY4LAorICAg
IC8vIHVuc2lnbmVkKDUpIC0gbnVtYmVyIG9mIGNyZWRlbnRpYWxzCisgICAgMHgwNSwKKyAgICAv
LyAxCisgICAgMHgwMSwKK307CisKK30gLy8gbmFtZXNwYWNlIFRlc3REYXRhCisKK30gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCg==
</data>
<flag name="commit-queue"
          id="371421"
          type_id="3"
          status="-"
          setter="jiewen_tan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354222</attachid>
            <date>2018-11-08 01:50:34 -0800</date>
            <delta_ts>2018-11-08 02:30:06 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-190784-20181108015033.patch</filename>
            <type>text/plain</type>
            <size>148096</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA5ZjVkOGQ4OTNiM2Jl
YWZmMzVlZmM5YWM3ZTY2ZDI0ZjlkM2NjNy4uOTk4MjhkZWVjM2JhNDE3YmQxNzhmY2RiZWIyMGE2
N2JlY2E1ZDZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDE4LTEwLTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBJbXBv
cnQgQ1RBUCBkZXZpY2UgcmVxdWVzdC9yZXNwb25zZSBjb252ZXJ0ZXJzIGZyb20gQ2hyb21pdW0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDc4NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU0NjAzMzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcG9ydHMgQ2hyb21pdW0ncyBD
VEFQIGRldmljZSByZXF1ZXN0L3Jlc3BvbnNlIGNvbnZlcnRlcnM6CisgICAgICAgIGh0dHBzOi8v
Zmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQt
dG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjbWVzc2FnZS1l
bmNvZGluZworICAgICAgICAxLiBJdCBkaXJlY3RseSBpbXBvcnRzIHRoZSBmb2xsb3dpbmcgZmls
ZXMgYW5kIHN1aXQgdGhlbSB0byBXZWJLaXQncyBjb2Rpbmcgc3R5bGU6CisgICAgICAgIGh0dHBz
Oi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9kZXZpY2UvZmlkby9kZXZpY2VfcmVzcG9u
c2VfY29udmVydGVyLmNjP2w9MjAmcmNsPTA5OGRmZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJk
OTljNGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2Rl
dmljZS9maWRvL2RldmljZV9yZXNwb25zZV9jb252ZXJ0ZXIuaD9yY2w9MDk4ZGZkOTA4NTBmZmE4
NGMyN2E4ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczovL2NzLmNocm9taXVtLm9y
Zy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVudGljYXRvcl9nZXRfaW5mb19yZXNwb25z
ZS5jYz9yY2w9MDk4ZGZkOTA4NTBmZmE4NGMyN2E4ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAg
ICBodHRwczovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vYXV0aGVu
dGljYXRvcl9nZXRfaW5mb19yZXNwb25zZS5oP3JjbD0wOThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFi
NzVlZGQyZDk5YzRlYzQ1CisgICAgICAgIGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVt
L3NyYy9kZXZpY2UvZmlkby9hdXRoZW50aWNhdG9yX3N1cHBvcnRlZF9vcHRpb25zLmNjP3JjbD0w
OThkZmQ5MDg1MGZmYTg0YzI3YTg4NGFiNzVlZGQyZDk5YzRlYzQ1CisgICAgICAgIGh0dHBzOi8v
Y3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy9kZXZpY2UvZmlkby9hdXRoZW50aWNhdG9yX3N1
cHBvcnRlZF9vcHRpb25zLmg/cmNsPTA5OGRmZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTlj
NGVjNDUKKyAgICAgICAgaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL2Rldmlj
ZS9maWRvL2N0YXBfcmVxdWVzdF91bml0dGVzdC5jYz9yY2w9MDk4ZGZkOTA4NTBmZmE4NGMyN2E4
ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczovL2NzLmNocm9taXVtLm9yZy9jaHJv
bWl1bS9zcmMvZGV2aWNlL2ZpZG8vY3RhcF9yZXNwb25zZV91bml0dGVzdC5jYz9yY2w9MDk4ZGZk
OTA4NTBmZmE4NGMyN2E4ODRhYjc1ZWRkMmQ5OWM0ZWM0NQorICAgICAgICBodHRwczovL2NzLmNo
cm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvZGV2aWNlL2ZpZG8vZmlkb190ZXN0X2RhdGEuaD9sPTEm
cmNsPTA5OGRmZDkwODUwZmZhODRjMjdhODg0YWI3NWVkZDJkOTljNGVjNDUKKyAgICAgICAgMi4g
SXQgZ2F0aGVycyB0aGUgZm9sbG93aW5nIG1ldGhvZHMgaW50byBEZXZpY2VSZXF1ZXN0Q29udmVy
dGVyOgorICAgICAgICBDdGFwR2V0QXNzZXJ0aW9uUmVxdWVzdDo6RW5jb2RlQXNDQk9SKCkKKyAg
ICAgICAgQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdDo6RW5jb2RlQXNDQk9SKCkKKyAgICAgICAg
UHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I6OkNvbnZlcnRUb0NCT1IoKQorICAgICAgICBQ
dWJsaWNLZXlDcmVkZW50aWFsUGFyYW1zOjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAgUHVibGlj
S2V5Q3JlZGVudGlhbFJwRW50aXR5OjpDb252ZXJ0VG9DQk9SKCkKKyAgICAgICAgUHVibGljS2V5
Q3JlZGVudGlhbFVzZXJFbnRpdHk6OkNvbnZlcnRUb0NCT1IoKQorICAgICAgICAzLiBJdCBhbHNv
IGFwcGx5IGEgcGF0Y2ggZnJvbSBDaHJvbWl1bSB0byBDQk9SVmFsdWU6CisgICAgICAgIGh0dHBz
Oi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy83YjZmYmZmMzVjZDhl
NGQ1MDhmMDhlMWNkOTNiNGFhMGEwZGM0MDJjJTVFJTIxLworCisgICAgICAgIEJlc2lkZXMgaW1w
b3J0aW5nIHRoaW5ncyBmcm9tIENocm9taXVtLCBpdCBhbHNvIGltcGxlbWVudHMgVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50IGZvciBib3RoCisgICAgICAgIFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMgYW5kIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyBzdWNo
IHRoYXQgYm90aCBvcHRpb25zCisgICAgICAgIGNhbiBzcGVjaWZ5IG1vcmUgZGltZW5zaW9ucyBv
ZiBhIGRlc2lyZWQgYXV0aGVudGljYXRvci4KKworICAgICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0
cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
OjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmRlY29kZSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cy5oOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5p
ZGwuCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwuCisgICAgICAgICogTW9kdWxlcy93ZWJh
dXRobi9jYm9yL0NCT1JWYWx1ZS5jcHA6CisgICAgICAgIChjYm9yOjpDQk9SVmFsdWU6OkNCT1JW
YWx1ZSk6CisgICAgICAgIChjYm9yOjpDQk9SVmFsdWU6OmdldEJvb2wgY29uc3QpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5jcHA6IEFkZGVkLgor
ICAgICAgICAoZmlkbzo6dG9BcnJheVZhbHVlKToKKyAgICAgICAgKGZpZG86OkF1dGhlbnRpY2F0
b3JHZXRJbmZvUmVzcG9uc2U6OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UpOgorICAgICAg
ICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0TWF4TXNnU2l6ZSk6Cisg
ICAgICAgIChmaWRvOjpBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlOjpzZXRQaW5Qcm90b2Nv
bHMpOgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZTo6c2V0RXh0
ZW5zaW9ucyk6CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlOjpz
ZXRPcHRpb25zKToKKyAgICAgICAgKGZpZG86OmVuY29kZUFzQ0JPUik6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zLmNwcDogQWRkZWQuCisgICAgICAgIChmaWRvOjpBdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9uczo6c2V0U3VwcG9ydHNSZXNpZGVudEtleSk6CisgICAgICAgIChmaWRvOjpBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSk6
CisgICAgICAgIChmaWRvOjpBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0VXNlclBy
ZXNlbmNlUmVxdWlyZWQpOgorICAgICAgICAoZmlkbzo6QXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OnNldENsaWVudFBpbkF2YWlsYWJpbGl0eSk6CisgICAgICAgIChmaWRvOjpBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6c2V0SXNQbGF0Zm9ybURldmljZSk6CisgICAgICAgIChm
aWRvOjpjb252ZXJ0VG9DQk9SKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0
aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93
ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KGZpZG86OmNvbnZlcnRScEVudGl0eVRvQ0JPUik6CisgICAgICAgIChmaWRvOjpjb252ZXJ0VXNl
ckVudGl0eVRvQ0JPUik6CisgICAgICAgIChmaWRvOjpjb252ZXJ0UGFyYW1ldGVyc1RvQ0JPUik6
CisgICAgICAgIChmaWRvOjpjb252ZXJ0RGVzY3JpcHRvclRvQ0JPUik6CisgICAgICAgIChmaWRv
OjplbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IpOgorICAgICAgICAoZmlkbzo6ZW5j
b2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUik6CisgICAgICAgIChmaWRvOjplbmNvZGVFbXB0
eUF1dGhlbnRpY2F0b3JSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
RGV2aWNlUmVxdWVzdENvbnZlcnRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oLgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHA6IEFkZGVkLgorICAgICAgICAo
Zmlkbzo6Y29udmVydFN0cmluZ1RvUHJvdG9jb2xWZXJzaW9uKToKKyAgICAgICAgKGZpZG86Omdl
dFJlc3BvbnNlQ29kZSk6CisgICAgICAgIChmaWRvOjpnZXRDcmVkZW50aWFsSWQpOgorICAgICAg
ICAoZmlkbzo6cmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKToKKyAgICAgICAgKGZpZG86
OnJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UpOgorICAgICAgICAoZmlkbzo6cmVhZENUQVBH
ZXRJbmZvUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VS
ZXNwb25zZUNvbnZlcnRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5jcHAuCisgICAgICAgICogTW9kdWxlcy93ZWJhdXRo
bi9maWRvL0ZpZG9Db25zdGFudHMuY3BwOgorICAgICAgICAoZmlkbzo6aXNDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlKToKKyAgICAgICAgKGZpZG86OnB1YmxpY0tleUNyZWRlbnRpYWxUeXBlVG9TdHJp
bmcpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmg6Cisg
ICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDE4LTExLTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3
YUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NHXSBBZG9wdCBDRyBTUEkgZm9yIG5vbi1ldmVuIGNv
cm5lcmVkIHJvdW5kZWQgcmVjdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZmZjOTJkY2ZjMTRh
YzBlMWVlZmMyYjZhMTdiZjliZGMyMWM4NWU4Ni4uNmI1ZGE3MzQ4ZjFkNThlZjNlMDk5MzRjMzQ4
MmRhZjUxZmIzOTY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQzMiw2ICs0MzIsNyBAQCBz
ZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvd2ViYXV0aG4vUHVibGlj
S2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaWRsCiAgICAgTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNL
ZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsCiAgICAgTW9kdWxlcy93ZWJhdXRobi9QdWJs
aWNLZXlDcmVkZW50aWFsVHlwZS5pZGwKKyAgICBNb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudC5pZGwKIAogICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93
V2ViRGF0YWJhc2UuaWRsCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5pZGwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDY2MzkwZDQ5ZmIzOWQ2YzRiMmM0NzYyNjA1
ZDI2MDVmYjJiNWIxMGQuLmUwYzUyMDc0Nzg4YTVkZjE3ZmY1NGFiNWY0OGE1MWZhNzUzNTU4ZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzU1LDYgKzM1NSw3IEBAIEpTX0JJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5
Q3JlZGVudGlhbERlc2NyaXB0b3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXV0
aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmlkbCBcCisgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFz
ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNhbGxiYWNrLmlk
bCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCmluZGV4IDhhZmI0ZGQ0
ZDQ2MWU4NmU2OTQ4MzM5ZTIxMWIxOTllNzFhOTg3MzMuLmJhNjhkZjkyYjE4MmM3YTliMTNhMzY2
ZmE5MTE2MDgyZWI0NjVkYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cy5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5jbHVk
ZSAiUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJQdWJsaWNLZXlD
cmVkZW50aWFsVHlwZS5oIgorI2luY2x1ZGUgIlVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5o
IgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAKQEAgLTY1LDcgKzY2LDkgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnMgewogICAgIH07CiAKICAgICBzdHJ1Y3QgQXV0aGVudGljYXRvclNlbGVjdGlv
bkNyaXRlcmlhIHsKLSAgICAgICAgQXV0aGVudGljYXRvckF0dGFjaG1lbnQgYXV0aGVudGljYXRv
ckF0dGFjaG1lbnQ7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRvckF0dGFjaG1l
bnQ+IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OworICAgICAgICBib29sIHJlcXVpcmVSZXNpZGVu
dEtleSB7IGZhbHNlIH07CisgICAgICAgIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB1c2Vy
VmVyaWZpY2F0aW9uIHsgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQgfTsK
IAogICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikg
Y29uc3Q7CiAgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYT4gZGVjb2RlKERlY29kZXImKTsKQEAg
LTEwNSwxNCArMTA4LDI3IEBAIHN0ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9uczo6UGFyYW1ldGVycz4gUHVibGljS2V5Q3JlZGVudGlhCiB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPgogdm9pZCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRo
ZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogewotICAgIGVuY29kZXIgPDwgYXV0aGVudGljYXRvckF0dGFjaG1lbnQ7CisgICAgZW5jb2Rl
ciA8PCBhdXRoZW50aWNhdG9yQXR0YWNobWVudCA8PCByZXF1aXJlUmVzaWRlbnRLZXkgPDwgdXNl
clZlcmlmaWNhdGlvbjsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KIHN0ZDo6b3B0aW9u
YWw8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVj
dGlvbkNyaXRlcmlhPiBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50
aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rp
b25Dcml0ZXJpYSByZXN1bHQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0LmF1
dGhlbnRpY2F0b3JBdHRhY2htZW50KSkKKworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25h
bDxBdXRoZW50aWNhdG9yQXR0YWNobWVudD4+IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OworICAg
IGRlY29kZXIgPj4gYXV0aGVudGljYXRvckF0dGFjaG1lbnQ7CisgICAgaWYgKCFhdXRoZW50aWNh
dG9yQXR0YWNobWVudCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXN1bHQu
YXV0aGVudGljYXRvckF0dGFjaG1lbnQgPSBXVEZNb3ZlKCphdXRoZW50aWNhdG9yQXR0YWNobWVu
dCk7CisKKyAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHJlcXVpcmVSZXNpZGVudEtleTsKKyAgICBk
ZWNvZGVyID4+IHJlcXVpcmVSZXNpZGVudEtleTsKKyAgICBpZiAoIXJlcXVpcmVSZXNpZGVudEtl
eSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXN1bHQucmVxdWlyZVJlc2lk
ZW50S2V5ID0gKnJlcXVpcmVSZXNpZGVudEtleTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGVF
bnVtKHJlc3VsdC51c2VyVmVyaWZpY2F0aW9uKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5pZGwKaW5kZXggYTMxNTI1ZjMyNTQ4ZGI2NTgzOTM2ZWJiMDMyN2I5NTRhMWM3MTA2
MS4uMzZlMTgwYmVkZmM4MjAxZjNiYzRiNTM1Y2FjMGY3NDNjOGU3YzVmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsCkBAIC03NCwxMCArNzQsOCBAQCB0eXBl
ZGVmIGxvbmcgQ09TRUFsZ29yaXRobUlkZW50aWZpZXI7CiAgICAgQ29uZGl0aW9uYWw9V0VCX0FV
VEhOLAogXSBkaWN0aW9uYXJ5IEF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSB7CiAgICAg
QXV0aGVudGljYXRvckF0dGFjaG1lbnQgICAgICBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKLSAg
ICAvLyBXZSBkb24ndCBhbGxvdyBSUHMgdG8gc2V0IHRoZSBmb2xsb3dpbmcgdmFsdWVzIGF0IHRo
aXMgc3RhZ2UuCi0gICAgLy8gSGVuY2UsIHRob3NlIG9wdGlvbnMgYXJlIGFsd2F5cyB7IHRydWUs
ICJyZXF1aXJlZCIgfS4KLSAgICAvLyBib29sZWFuICAgICAgICAgICAgICAgICAgICAgIHJlcXVp
cmVSZXNpZGVudEtleSA9IGZhbHNlOwotICAgIC8vIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dCAgdXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJyZWQiOworICAgIGJvb2xlYW4gICAgICAgICAg
ICAgICAgICAgICAgcmVxdWlyZVJlc2lkZW50S2V5ID0gZmFsc2U7CisgICAgVXNlclZlcmlmaWNh
dGlvblJlcXVpcmVtZW50ICB1c2VyVmVyaWZpY2F0aW9uID0gInByZWZlcnJlZCI7CiB9OwogCiBb
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaAppbmRleCAyNzQ0NzZlZjcyN2I4
NWQ3NWRkMWE5ZTIwYzU4N2FkMWI5MmYwZjAxLi5lMmIwZTMzNmQ1MjEzZjk5ODI1ZGU2YmEwMDlh
NDBmMWIzNWYwYTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgKQEAg
LTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUgIlB1
YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzgsNiArMzksNyBAQCBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zIHsKICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiB0aW1lb3V0OwogICAgIG11
dGFibGUgU3RyaW5nIHJwSWQ7CiAgICAgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlw
dG9yPiBhbGxvd0NyZWRlbnRpYWxzOworICAgIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB1
c2VyVmVyaWZpY2F0aW9uIHsgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQg
fTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQ
dWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+IGRlY29kZShEZWNvZGVyJik7CkBAIC00
Nyw3ICs0OSw3IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgewog
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8
IHRpbWVvdXQgPDwgcnBJZCA8PCBhbGxvd0NyZWRlbnRpYWxzOworICAgIGVuY29kZXIgPDwgdGlt
ZW91dCA8PCBycElkIDw8IGFsbG93Q3JlZGVudGlhbHMgPDwgdXNlclZlcmlmaWNhdGlvbjsKIH0K
IAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTY1LDYgKzY3LDEzIEBAIHN0ZDo6b3B0aW9u
YWw8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiBQdWJsaWNLZXlDcmVkZW50aWFs
UmVxdWVzdE9wdGlvCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQuYWxsb3dDcmVkZW50aWFscykpCiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dD4gdXNlclZlcmlmaWNhdGlvbjsKKyAgICBkZWNvZGVyID4+IHVzZXJWZXJpZmljYXRpb247Cisg
ICAgaWYgKCF1c2VyVmVyaWZpY2F0aW9uKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgIHJlc3VsdC51c2VyVmVyaWZpY2F0aW9uID0gV1RGTW92ZSgqdXNlclZlcmlmaWNhdGlvbik7
CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5pZGwKaW5kZXggODlhMjA2ZGM5YzlmZDIxNzhiOTE2MTZlZDExNjVmYjQ3ZThlNGRl
MC4uZDY1MWRiMjhhZTY2ZDBmYzY5ODIxMGQ2ODcxNmQ2ZTExMTQwYzgzOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVz
dE9wdGlvbnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbApAQCAtMzAsOCArMzAsNyBAQAogICAgIHVu
c2lnbmVkIGxvbmcgdGltZW91dDsKICAgICBVU1ZTdHJpbmcgcnBJZDsKICAgICBzZXF1ZW5jZTxQ
dWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvcj4gYWxsb3dDcmVkZW50aWFscyA9IFtdOwotICAg
IC8vIEFsd2F5cyAicmVxdWlyZWQiIGF0IHRoaXMgc3RhZ2UKLSAgICAvLyBVc2VyVmVyaWZpY2F0
aW9uUmVxdWlyZW1lbnQgdXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJyZWQiOworICAgIFVzZXJW
ZXJpZmljYXRpb25SZXF1aXJlbWVudCB1c2VyVmVyaWZpY2F0aW9uID0gInByZWZlcnJlZCI7CiAg
ICAgLy8gTm90IHN1cHBvcnQgeWV0LgogICAgIC8vIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9ucyBl
eHRlbnNpb25zOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzMTRk
MDJjNTJkOWFhYzIxNTc1ZmViNmZlYThmNDE0OGZjNTc0OTcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IHsK
KyAgICBSZXF1aXJlZCwKKyAgICBQcmVmZXJyZWQsCisgICAgRGlzY291cmFnZWQKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50PiB7Cisg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6VXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50LAorICAgICAgICBXZWJDb3JlOjpVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQ6OlJlcXVpcmVkLAorICAgICAgICBXZWJDb3JlOjpVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQ6OlByZWZlcnJlZCwKKyAgICAgICAgV2ViQ29yZTo6VXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50OjpEaXNjb3VyYWdlZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWJmNGZiOTVlYTAwMmU1YmE5NjVjZDU3YjE1MjFjNTgwZTY0OTljYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
WworICAgIENvbmRpdGlvbmFsPVdFQl9BVVRITiwKKyAgICBJbXBsZW1lbnRlZEFzPVVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudAorXSBlbnVtIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCB7
CisgICAgInJlcXVpcmVkIiwKKyAgICAicHJlZmVycmVkIiwKKyAgICAiZGlzY291cmFnZWQiCit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JW
YWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVl
LmNwcAppbmRleCAyNWVkOThiOTFmODNhNGI0NjgzMGRmNDhmYTA1YmE4NjhjODEyMmIzLi40Yzhm
ZmFkMWE4Y2YwZjUxNDdjYzc2NzQ0YmJhODZkZTUxYzlkY2M3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmNwcApAQCAtMTUzLDYgKzE1
MywxMiBAQCBDQk9SVmFsdWU6OkNCT1JWYWx1ZShTaW1wbGVWYWx1ZSBpblNpbXBsZSkKICAgICBB
U1NFUlQoc3RhdGljX2Nhc3Q8aW50PihpblNpbXBsZSkgPj0gMjAgJiYgc3RhdGljX2Nhc3Q8aW50
PihpblNpbXBsZSkgPD0gMjMpOwogfQogCitDQk9SVmFsdWU6OkNCT1JWYWx1ZShib29sIGluQm9v
bCkKKyAgICA6IG1fdHlwZShUeXBlOjpTaW1wbGVWYWx1ZSkKK3sKKyAgICBtX3NpbXBsZVZhbHVl
ID0gaW5Cb29sID8gQ0JPUlZhbHVlOjpTaW1wbGVWYWx1ZTo6VHJ1ZVZhbHVlIDogQ0JPUlZhbHVl
OjpTaW1wbGVWYWx1ZTo6RmFsc2VWYWx1ZTsKK30KKwogQ0JPUlZhbHVlJiBDQk9SVmFsdWU6Om9w
ZXJhdG9yPShDQk9SVmFsdWUmJiB0aGF0KQogewogICAgIGludGVybmFsQ2xlYW51cCgpOwpAQCAt
MjQwLDYgKzI0NiwxMiBAQCBDQk9SVmFsdWU6OlNpbXBsZVZhbHVlIENCT1JWYWx1ZTo6Z2V0U2lt
cGxlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBtX3NpbXBsZVZhbHVlOwogfQogCitib29sIENC
T1JWYWx1ZTo6Z2V0Qm9vbCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzQm9vbCgpKTsKKyAgICBy
ZXR1cm4gbV9zaW1wbGVWYWx1ZSA9PSBTaW1wbGVWYWx1ZTo6VHJ1ZVZhbHVlOworfQorCiB2b2lk
IENCT1JWYWx1ZTo6aW50ZXJuYWxNb3ZlQ29uc3RydWN0RnJvbShDQk9SVmFsdWUmJiB0aGF0KQog
ewogICAgIG1fdHlwZSA9IHRoYXQubV90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5oCmluZGV4IGUyZGIwZTEyNzM4YTk5YTc0N2M4MmY0
MDkxMzAwNGM2NjBiN2U4ZDQuLjZhNGM4M2FiYTAzMWMzOGQzNzllNjZiYzkzZWM0N2U1ZjE5MzE3
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9S
VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZh
bHVlLmgKQEAgLTEzOCw2ICsxMzgsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgQ0JPUlZhbHVl
KE1hcFZhbHVlJiYpOwogCiAgICAgZXhwbGljaXQgQ0JPUlZhbHVlKFNpbXBsZVZhbHVlKTsKKyAg
ICBleHBsaWNpdCBDQk9SVmFsdWUoYm9vbCk7CiAKICAgICBDQk9SVmFsdWUmIG9wZXJhdG9yPShD
Qk9SVmFsdWUmJik7CiAKQEAgLTE2MSw5ICsxNjIsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNB
cnJheSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBUeXBlOjpBcnJheTsgfQogICAgIGJvb2wg
aXNNYXAoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gVHlwZTo6TWFwOyB9CiAgICAgYm9vbCBp
c1NpbXBsZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBUeXBlOjpTaW1wbGVWYWx1ZTsgfQor
ICAgIGJvb2wgaXNCb29sKCkgY29uc3QgeyByZXR1cm4gaXNTaW1wbGUoKSAmJiAobV9zaW1wbGVW
YWx1ZSA9PSBTaW1wbGVWYWx1ZTo6VHJ1ZVZhbHVlIHx8IG1fc2ltcGxlVmFsdWUgPT0gU2ltcGxl
VmFsdWU6OkZhbHNlVmFsdWUpOyB9CiAKICAgICAvLyBUaGVzZSB3aWxsIGFsbCBmYXRhbGx5IGFz
c2VydCBpZiB0aGUgdHlwZSBkb2Vzbid0IG1hdGNoLgogICAgIFNpbXBsZVZhbHVlIGdldFNpbXBs
ZVZhbHVlKCkgY29uc3Q7CisgICAgYm9vbCBnZXRCb29sKCkgY29uc3Q7CiAgICAgY29uc3QgaW50
NjRfdCYgZ2V0SW50ZWdlcigpIGNvbnN0OwogICAgIGNvbnN0IGludDY0X3QmIGdldFVuc2lnbmVk
KCkgY29uc3Q7CiAgICAgY29uc3QgaW50NjRfdCYgZ2V0TmVnYXRpdmUoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9y
R2V0SW5mb1Jlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlk
by9BdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDlhZDc2ZWUy
NzA0Y2UyYzY1ZGRjZTBmYTc0MzRlYjY5OTFmOWRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9u
c2UuY3BwCkBAIC0wLDAgKzEsMTEwIEBACisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgQ2hyb21pdW0g
QXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
Ky8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8v
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBdXRoZW50aWNh
dG9yR2V0SW5mb1Jlc3BvbnNlLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVk
ZSAiQ0JPUlZhbHVlLmgiCisjaW5jbHVkZSAiQ0JPUldyaXRlci5oIgorCituYW1lc3BhY2UgZmlk
byB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBDb250YWluZXI+CitjYm9yOjpDQk9SVmFsdWUgdG9B
cnJheVZhbHVlKGNvbnN0IENvbnRhaW5lciYgY29udGFpbmVyKQoreworICAgIGNib3I6OkNCT1JW
YWx1ZTo6QXJyYXlWYWx1ZSB2YWx1ZTsKKyAgICB2YWx1ZS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KGNvbnRhaW5lci5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0byYgaXRlbSA6IGNvbnRhaW5l
cikKKyAgICAgICAgdmFsdWUuYXBwZW5kKGNib3I6OkNCT1JWYWx1ZShpdGVtKSk7CisgICAgcmV0
dXJuIGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKHZhbHVlKSk7Cit9CisKK0F1dGhlbnRpY2F0b3JH
ZXRJbmZvUmVzcG9uc2U6OkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UoU3RkU2V0PFByb3Rv
Y29sVmVyc2lvbj4mJiB2ZXJzaW9ucywgVmVjdG9yPHVpbnQ4X3Q+JiYgYWFndWlkKQorICAgIDog
bV92ZXJzaW9ucyhXVEZNb3ZlKHZlcnNpb25zKSkKKyAgICAsIG1fYWFndWlkKFdURk1vdmUoYWFn
dWlkKSkKK3sKK30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgQXV0aGVudGljYXRv
ckdldEluZm9SZXNwb25zZTo6c2V0TWF4TXNnU2l6ZSh1aW50MzJfdCBtYXhNc2dTaXplKQorewor
ICAgIG1fbWF4TXNnU2l6ZSA9IG1heE1zZ1NpemU7CisgICAgcmV0dXJuICp0aGlzOworfQorCitB
dXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNl
OjpzZXRQaW5Qcm90b2NvbHMoVmVjdG9yPHVpbnQ4X3Q+JiYgcGluUHJvdG9jb2xzKQoreworICAg
IG1fcGluUHJvdG9jb2xzID0gV1RGTW92ZShwaW5Qcm90b2NvbHMpOworICAgIHJldHVybiAqdGhp
czsKK30KKworQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgQXV0aGVudGljYXRvckdldElu
Zm9SZXNwb25zZTo6c2V0RXh0ZW5zaW9ucyhWZWN0b3I8U3RyaW5nPiYmIGV4dGVuc2lvbnMpCit7
CisgICAgbV9leHRlbnNpb25zID0gV1RGTW92ZShleHRlbnNpb25zKTsKKyAgICByZXR1cm4gKnRo
aXM7Cit9CisKK0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIEF1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2U6OnNldE9wdGlvbnMoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmJiBv
cHRpb25zKQoreworICAgIG1fb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyk7CisgICAgcmV0dXJu
ICp0aGlzOworfQorCitWZWN0b3I8dWludDhfdD4gZW5jb2RlQXNDQk9SKGNvbnN0IEF1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIHVzaW5nIG5hbWVzcGFjZSBj
Ym9yOworCisgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBkZXZpY2VJbmZvTWFwOworCisgICAgQ0JP
UlZhbHVlOjpBcnJheVZhbHVlIHZlcnNpb25BcnJheTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHZl
cnNpb24gOiByZXNwb25zZS52ZXJzaW9ucygpKQorICAgICAgICB2ZXJzaW9uQXJyYXkuYXBwZW5k
KHZlcnNpb24gPT0gUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCA/IGtDdGFwMlZlcnNpb24gOiBrVTJm
VmVyc2lvbik7CisgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKENCT1JWYWx1ZSgxKSwgQ0JPUlZh
bHVlKFdURk1vdmUodmVyc2lvbkFycmF5KSkpOworCisgICAgaWYgKHJlc3BvbnNlLmV4dGVuc2lv
bnMoKSkKKyAgICAgICAgZGV2aWNlSW5mb01hcC5lbXBsYWNlKENCT1JWYWx1ZSgyKSwgdG9BcnJh
eVZhbHVlKCpyZXNwb25zZS5leHRlbnNpb25zKCkpKTsKKworICAgIGRldmljZUluZm9NYXAuZW1w
bGFjZShDQk9SVmFsdWUoMyksIENCT1JWYWx1ZShyZXNwb25zZS5hYWd1aWQoKSkpOworICAgIGRl
dmljZUluZm9NYXAuZW1wbGFjZShDQk9SVmFsdWUoNCksIGNvbnZlcnRUb0NCT1IocmVzcG9uc2Uu
b3B0aW9ucygpKSk7CisKKyAgICBpZiAocmVzcG9uc2UubWF4TXNnU2l6ZSgpKQorICAgICAgICBk
ZXZpY2VJbmZvTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKDUpLCBDQk9SVmFsdWUoc3RhdGljX2Nhc3Q8
aW50NjRfdD4oKnJlc3BvbnNlLm1heE1zZ1NpemUoKSkpKTsKKworICAgIGlmIChyZXNwb25zZS5w
aW5Qcm90b2NvbCgpKQorICAgICAgICBkZXZpY2VJbmZvTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKDYp
LCB0b0FycmF5VmFsdWUoKnJlc3BvbnNlLnBpblByb3RvY29sKCkpKTsKKworICAgIGF1dG8gZW5j
b2RlZEJ5dGVzID0gQ0JPUldyaXRlcjo6d3JpdGUoQ0JPUlZhbHVlKFdURk1vdmUoZGV2aWNlSW5m
b01hcCkpKTsKKyAgICBBU1NFUlQoZW5jb2RlZEJ5dGVzKTsKKyAgICByZXR1cm4gKmVuY29kZWRC
eXRlczsKK30KKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9B
VVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9B
dXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMw
NjNjNGY1YzkzNWY5NzNkYzExNTQwMjAzNTk3YzU4NTZjMzRhZmUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvckdldElu
Zm9SZXNwb25zZS5oCkBAIC0wLDAgKzEsNzYgQEAKKy8vIENvcHlyaWdodCAyMDE4IFRoZSBDaHJv
bWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
Ky8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhO
KQorCisjaW5jbHVkZSAiQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuaCIKKyNpbmNsdWRl
ICJGaWRvQ29uc3RhbnRzLmgiCisjaW5jbHVkZSA8d3RmL1N0ZFNldC5oPgorCituYW1lc3BhY2Ug
ZmlkbyB7CisKKy8vIEF1dGhlbnRpY2F0b3IgcmVzcG9uc2UgZm9yIEF1dGhlbnRpY2F0b3JHZXRJ
bmZvIHJlcXVlc3QgdGhhdCBlbmNhcHN1bGF0ZXMKKy8vIHZlcnNpb25zLCBvcHRpb25zLCBBQUdV
SUQoQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbiBHVUlEKSwgb3RoZXIKKy8vIGF1dGhlbnRpY2F0
b3IgZGV2aWNlIGluZm9ybWF0aW9uLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNz
L2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3Rv
Y29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNhdG9yZ2V0aW5mby0weDA0CitjbGFz
cyBXRUJDT1JFX0VYUE9SVCBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlIHsKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKTsKK3B1YmxpYzoK
KyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKFN0ZFNldDxQcm90b2NvbFZlcnNpb24+
JiYgdmVyc2lvbnMsIFZlY3Rvcjx1aW50OF90PiYmIGFhZ3VpZCk7CisgICAgQXV0aGVudGljYXRv
ckdldEluZm9SZXNwb25zZShBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiYgdGhhdCkgPSBk
ZWZhdWx0OworICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIG9wZXJhdG9yPShBdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiYgb3RoZXIpID0gZGVmYXVsdDsKKworICAgIEF1dGhl
bnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIHNldE1heE1zZ1NpemUodWludDMyX3QpOworICAgIEF1
dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmIHNldFBpblByb3RvY29scyhWZWN0b3I8dWludDhf
dD4mJik7CisgICAgQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSYgc2V0RXh0ZW5zaW9ucyhW
ZWN0b3I8U3RyaW5nPiYmKTsKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlJiBzZXRP
cHRpb25zKEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiYpOworCisgICAgY29uc3QgU3Rk
U2V0PFByb3RvY29sVmVyc2lvbj4mIHZlcnNpb25zKCkgY29uc3QgeyByZXR1cm4gbV92ZXJzaW9u
czsgfQorICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYWFndWlkKCkgY29uc3QgeyByZXR1cm4g
bV9hYWd1aWQ7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiYgbWF4TXNnU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4TXNnU2l6ZTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPHVpbnQ4X3Q+PiYgcGluUHJvdG9jb2woKSBjb25zdCB7IHJldHVybiBtX3BpblBy
b3RvY29sczsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBleHRl
bnNpb25zKCkgY29uc3QgeyByZXR1cm4gbV9leHRlbnNpb25zOyB9CisgICAgY29uc3QgQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlv
bnM7IH0KKworcHJpdmF0ZToKKyAgICBTdGRTZXQ8UHJvdG9jb2xWZXJzaW9uPiBtX3ZlcnNpb25z
OworICAgIFZlY3Rvcjx1aW50OF90PiBtX2FhZ3VpZDsKKyAgICBzdGQ6Om9wdGlvbmFsPHVpbnQz
Ml90PiBtX21heE1zZ1NpemU7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IG1f
cGluUHJvdG9jb2xzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IG1fZXh0ZW5z
aW9uczsKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBtX29wdGlvbnM7Cit9Owor
CitXRUJDT1JFX0VYUE9SVCBWZWN0b3I8dWludDhfdD4gZW5jb2RlQXNDQk9SKGNvbnN0IEF1dGhl
bnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UmKTsKKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5k
aWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9BdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkY2Y4YTRjZDU0YWY3N2Y4ZjMzMzgxMzhlOTQxYmRiYWY2
MGRjNGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3BwCkBAIC0wLDAgKzEsMTA5IEBA
CisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8g
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisv
LyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisv
LyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oIgor
CisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkZpZG9Db25zdGFudHMuaCIKKwor
bmFtZXNwYWNlIGZpZG8geworCitBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFN1cHBvcnRzUmVzaWRlbnRLZXkoYm9vbCBzdXBw
b3J0c1Jlc2lkZW50S2V5KQoreworICAgIG1fc3VwcG9ydHNSZXNpZGVudEtleSA9IHN1cHBvcnRz
UmVzaWRlbnRLZXk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitBdXRoZW50aWNhdG9yU3VwcG9y
dGVkT3B0aW9ucyYgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OnNldFVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHkoVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSB1c2VyVmVyaWZp
Y2F0aW9uQXZhaWxhYmlsaXR5KQoreworICAgIG1fdXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0
eSA9IHVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk7CisgICAgcmV0dXJuICp0aGlzOworfQor
CitBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OnNldFVzZXJQcmVzZW5jZVJlcXVpcmVkKGJvb2wgdXNlclByZXNlbmNlUmVxdWlyZWQp
Cit7CisgICAgbV91c2VyUHJlc2VuY2VSZXF1aXJlZCA9IHVzZXJQcmVzZW5jZVJlcXVpcmVkOwor
ICAgIHJldHVybiAqdGhpczsKK30KKworQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIEF1
dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpzZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkoQ2xp
ZW50UGluQXZhaWxhYmlsaXR5IGNsaWVudFBpbkF2YWlsYWJpbGl0eSkKK3sKKyAgICBtX2NsaWVu
dFBpbkF2YWlsYWJpbGl0eSA9IGNsaWVudFBpbkF2YWlsYWJpbGl0eTsKKyAgICByZXR1cm4gKnRo
aXM7Cit9CisKK0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBBdXRoZW50aWNhdG9yU3Vw
cG9ydGVkT3B0aW9uczo6c2V0SXNQbGF0Zm9ybURldmljZShib29sIGlzUGxhdGZvcm1EZXZpY2Up
Cit7CisgICAgbV9pc1BsYXRmb3JtRGV2aWNlID0gaXNQbGF0Zm9ybURldmljZTsKKyAgICByZXR1
cm4gKnRoaXM7Cit9CisKK2Nib3I6OkNCT1JWYWx1ZSBjb252ZXJ0VG9DQk9SKGNvbnN0IEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zJiBvcHRpb25zKQoreworICAgIHVzaW5nIG5hbWVzcGFj
ZSBjYm9yOworCisgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25NYXA7CisgICAgb3B0aW9u
TWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtSZXNpZGVudEtleU1hcEtleSksIENCT1JWYWx1ZShvcHRp
b25zLnN1cHBvcnRzUmVzaWRlbnRLZXkoKSkpOworICAgIG9wdGlvbk1hcC5lbXBsYWNlKENCT1JW
YWx1ZShrVXNlclByZXNlbmNlTWFwS2V5KSwgQ0JPUlZhbHVlKG9wdGlvbnMudXNlclByZXNlbmNl
UmVxdWlyZWQoKSkpOworICAgIG9wdGlvbk1hcC5lbXBsYWNlKENCT1JWYWx1ZShrUGxhdGZvcm1E
ZXZpY2VNYXBLZXkpLCBDQk9SVmFsdWUob3B0aW9ucy5pc1BsYXRmb3JtRGV2aWNlKCkpKTsKKwor
ICAgIHVzaW5nIFV2QXZhaWxhYmlsaXR5ID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6
OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk7CisKKyAgICBzd2l0Y2ggKG9wdGlvbnMudXNl
clZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSgpKSB7CisgICAgY2FzZSBVdkF2YWlsYWJpbGl0eTo6
a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQ6CisgICAgICAgIG9wdGlvbk1hcC5lbXBsYWNlKENCT1JW
YWx1ZShrVXNlclZlcmlmaWNhdGlvbk1hcEtleSksIENCT1JWYWx1ZSh0cnVlKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVXZBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXROb3RDb25maWd1
cmVkOgorICAgICAgICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFsdWUoa1VzZXJWZXJpZmljYXRp
b25NYXBLZXkpLCBDQk9SVmFsdWUoZmFsc2UpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBV
dkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisg
ICAgdXNpbmcgQ2xpZW50UGluQXZhaWxhYmlsaXR5ID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9w
dGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTsKKworICAgIHN3aXRjaCAob3B0aW9ucy5jbGll
bnRQaW5BdmFpbGFiaWxpdHkoKSkgeworICAgIGNhc2UgQ2xpZW50UGluQXZhaWxhYmlsaXR5Ojpr
U3VwcG9ydGVkQW5kUGluU2V0OgorICAgICAgICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFsdWUo
a0NsaWVudFBpbk1hcEtleSksIENCT1JWYWx1ZSh0cnVlKSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0UGluTm90U2V0OgorICAg
ICAgICBvcHRpb25NYXAuZW1wbGFjZShDQk9SVmFsdWUoa0NsaWVudFBpbk1hcEtleSksIENCT1JW
YWx1ZShmYWxzZSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENsaWVudFBpbkF2YWlsYWJp
bGl0eTo6a05vdFN1cHBvcnRlZDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJu
IENCT1JWYWx1ZShXVEZNb3ZlKG9wdGlvbk1hcCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBmaWRv
CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBv
cnRlZE9wdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzQwYWU0YmU0MjYxNGM3MTRlNTdmYWY2YTQ0NjVj
N2YyZmY5OTE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL0F1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgKQEAgLTAsMCArMSw5NiBA
QAorLy8gQ29weXJpZ2h0IDIwMTggVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8v
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
Ly8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
Ly8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJDQk9SVmFsdWUuaCIK
KyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgZmlkbyB7CisKKy8vIFJlcHJl
c2VudHMgQ1RBUCBkZXZpY2UgcHJvcGVydGllcyBhbmQgY2FwYWJpbGl0aWVzIHJlY2VpdmVkIGFz
IGEgcmVzcG9uc2UgdG8KKy8vIEF1dGhlbnRpY2F0b3JHZXRJbmZvIGNvbW1hbmQuCitjbGFzcyBX
RUJDT1JFX0VYUE9SVCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMpOworcHVibGljOgor
ICAgIGVudW0gY2xhc3MgVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSB7CisgICAgICAgIC8v
IGUuZy4gQXV0aGVudGljYXRvciB3aXRoIGZpbmdlciBwcmludCBzZW5zb3IgYW5kIHVzZXIncyBm
aW5nZXJwcmludCBpcworICAgICAgICAvLyByZWdpc3RlcmVkIHRvIHRoZSBkZXZpY2UuCisgICAg
ICAgIGtTdXBwb3J0ZWRBbmRDb25maWd1cmVkLAorICAgICAgICAvLyBlLmcuIEF1dGhlbnRpY2F0
b3Igd2l0aCBmaW5nZXJwcmludCBzZW5zb3Igd2l0aG91dCB1c2VyJ3MgZmluZ2VycHJpbnQKKyAg
ICAgICAgLy8gcmVnaXN0ZXJlZC4KKyAgICAgICAga1N1cHBvcnRlZEJ1dE5vdENvbmZpZ3VyZWQs
CisgICAgICAgIGtOb3RTdXBwb3J0ZWQKKyAgICB9OworCisgICAgZW51bSBjbGFzcyBDbGllbnRQ
aW5BdmFpbGFiaWxpdHkgeworICAgICAgICBrU3VwcG9ydGVkQW5kUGluU2V0LAorICAgICAgICBr
U3VwcG9ydGVkQnV0UGluTm90U2V0LAorICAgICAgICBrTm90U3VwcG9ydGVkLAorICAgIH07CisK
KyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucygpID0gZGVmYXVsdDsKKyAgICBBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyhBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYm
KSA9IGRlZmF1bHQ7CisgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIG9wZXJhdG9y
PShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYmKSA9IGRlZmF1bHQ7CisKKyAgICBBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0SXNQbGF0Zm9ybURldmljZShib29sKTsKKyAg
ICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0U3VwcG9ydHNSZXNpZGVudEtleShi
b29sKTsKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0VXNlclZlcmlmaWNh
dGlvbkF2YWlsYWJpbGl0eShVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KTsKKyAgICBBdXRo
ZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYgc2V0VXNlclByZXNlbmNlUmVxdWlyZWQoYm9vbCk7
CisgICAgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMmIHNldENsaWVudFBpbkF2YWlsYWJp
bGl0eShDbGllbnRQaW5BdmFpbGFiaWxpdHkpOworCisgICAgYm9vbCBpc1BsYXRmb3JtRGV2aWNl
KCkgY29uc3QgeyByZXR1cm4gbV9pc1BsYXRmb3JtRGV2aWNlOyB9CisgICAgYm9vbCBzdXBwb3J0
c1Jlc2lkZW50S2V5KCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0c1Jlc2lkZW50S2V5OyB9Cisg
ICAgVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSB1c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmls
aXR5KCkgY29uc3QgeyByZXR1cm4gbV91c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OyB9Cisg
ICAgYm9vbCB1c2VyUHJlc2VuY2VSZXF1aXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclByZXNl
bmNlUmVxdWlyZWQ7IH0KKyAgICBDbGllbnRQaW5BdmFpbGFiaWxpdHkgY2xpZW50UGluQXZhaWxh
YmlsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRQaW5BdmFpbGFiaWxpdHk7IH0KKworcHJp
dmF0ZToKKyAgICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgZGV2aWNlIGlzIGF0dGFjaGVkIHRvIHRo
ZSBjbGllbnQgYW5kIHRoZXJlZm9yZSBjYW4ndCBiZQorICAgIC8vIHJlbW92ZWQgYW5kIHVzZWQg
b24gYW5vdGhlciBjbGllbnQuCisgICAgYm9vbCBtX2lzUGxhdGZvcm1EZXZpY2UgeyBmYWxzZSB9
OworICAgIC8vIEluZGljYXRlcyB0aGF0IHRoZSBkZXZpY2UgaXMgY2FwYWJsZSBvZiBzdG9yaW5n
IGtleXMgb24gdGhlIGRldmljZSBpdHNlbGYKKyAgICAvLyBhbmQgdGhlcmVmb3JlIGNhbiBzYXRp
c2Z5IHRoZSBhdXRoZW50aWNhdG9yR2V0QXNzZXJ0aW9uIHJlcXVlc3Qgd2l0aAorICAgIC8vIGFs
bG93TGlzdCBwYXJhbWV0ZXIgbm90IHNwZWNpZmllZCBvciBlbXB0eS4KKyAgICBib29sIG1fc3Vw
cG9ydHNSZXNpZGVudEtleSB7IGZhbHNlIH07CisgICAgLy8gSW5kaWNhdGVzIHdoZXRoZXIgdGhl
IGRldmljZSBpcyBjYXBhYmxlIG9mIHZlcmlmeWluZyB0aGUgdXNlciBvbiBpdHMgb3duLgorICAg
IFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkgbV91c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmls
aXR5IHsgVXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a05vdFN1cHBvcnRlZCB9OworICAg
IGJvb2wgbV91c2VyUHJlc2VuY2VSZXF1aXJlZCB7IHRydWUgfTsKKyAgICAvLyBSZXByZXNlbnRz
IHdoZXRoZXIgY2xpZW50IHBpbiBpbiBzZXQgYW5kIHN0b3JlZCBpbiBkZXZpY2UuIFNldCBhcyBu
dWxsCisgICAgLy8gb3B0aW9uYWwgaWYgY2xpZW50IHBpbiBjYXBhYmlsaXR5IGlzIG5vdCBzdXBw
b3J0ZWQgYnkgdGhlIGF1dGhlbnRpY2F0b3IuCisgICAgQ2xpZW50UGluQXZhaWxhYmlsaXR5IG1f
Y2xpZW50UGluQXZhaWxhYmlsaXR5IHsgQ2xpZW50UGluQXZhaWxhYmlsaXR5OjprTm90U3VwcG9y
dGVkIH07Cit9OworCitXRUJDT1JFX0VYUE9SVCBjYm9yOjpDQk9SVmFsdWUgY29udmVydFRvQ0JP
Uihjb25zdCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyYpOworCit9IC8vIG5hbWVzcGFj
ZSBmaWRvCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252
ZXJ0ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkMmQ5MjIzMzY3ZDU1YjZiZWIzMGZiZjNjYjJjMDMyMWFj
ZTFlNTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAKQEAgLTAsMCArMSwxODIgQEAKKy8vIENv
cHlyaWdodCAyMDE3IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
Ly8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8v
CisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3Ry
aWJ1dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8g
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkRldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCIKKworI2lmIEVOQUJMRShX
RUJfQVVUSE4pCisKKyNpbmNsdWRlICJDQk9SV3JpdGVyLmgiCisjaW5jbHVkZSAiUHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oIgorI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNl
IGZpZG8gewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgY2JvcjsK
KwordXNpbmcgVVZBdmFpbGFiaWxpdHkgPSBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6
VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTsKKworc3RhdGljIENCT1JWYWx1ZSBjb252ZXJ0
UnBFbnRpdHlUb0NCT1IoY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6
UnBFbnRpdHkmIHJwRW50aXR5KQoreworICAgIENCT1JWYWx1ZTo6TWFwVmFsdWUgcnBNYXA7Cisg
ICAgcnBNYXAuZW1wbGFjZShDQk9SVmFsdWUoa0VudGl0eU5hbWVNYXBLZXkpLCBDQk9SVmFsdWUo
cnBFbnRpdHkubmFtZSkpOworICAgIGlmICghcnBFbnRpdHkuaWNvbi5pc0VtcHR5KCkpCisgICAg
ICAgIHJwTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtJY29uVXJsTWFwS2V5KSwgQ0JPUlZhbHVlKHJw
RW50aXR5Lmljb24pKTsKKyAgICBpZiAoIXJwRW50aXR5LmlkLmlzRW1wdHkoKSkKKyAgICAgICAg
cnBNYXAuZW1wbGFjZShDQk9SVmFsdWUoa0VudGl0eUlkTWFwS2V5KSwgQ0JPUlZhbHVlKHJwRW50
aXR5LmlkKSk7CisKKyAgICByZXR1cm4gQ0JPUlZhbHVlKFdURk1vdmUocnBNYXApKTsKK30KKwor
c3RhdGljIENCT1JWYWx1ZSBjb252ZXJ0VXNlckVudGl0eVRvQ0JPUihjb25zdCBQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpVc2VyRW50aXR5JiB1c2VyRW50aXR5KQoreworICAg
IENCT1JWYWx1ZTo6TWFwVmFsdWUgdXNlck1hcDsKKyAgICB1c2VyTWFwLmVtcGxhY2UoQ0JPUlZh
bHVlKGtFbnRpdHlOYW1lTWFwS2V5KSwgQ0JPUlZhbHVlKHVzZXJFbnRpdHkubmFtZSkpOworICAg
IGlmICghdXNlckVudGl0eS5pY29uLmlzRW1wdHkoKSkKKyAgICAgICAgdXNlck1hcC5lbXBsYWNl
KENCT1JWYWx1ZShrSWNvblVybE1hcEtleSksIENCT1JWYWx1ZSh1c2VyRW50aXR5Lmljb24pKTsK
KyAgICB1c2VyTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtFbnRpdHlJZE1hcEtleSksIENCT1JWYWx1
ZSh1c2VyRW50aXR5LmlkVmVjdG9yKSk7CisgICAgdXNlck1hcC5lbXBsYWNlKENCT1JWYWx1ZShr
RGlzcGxheU5hbWVNYXBLZXkpLCBDQk9SVmFsdWUodXNlckVudGl0eS5kaXNwbGF5TmFtZSkpOwor
ICAgIHJldHVybiBDQk9SVmFsdWUoV1RGTW92ZSh1c2VyTWFwKSk7Cit9CisKK3N0YXRpYyBDQk9S
VmFsdWUgY29udmVydFBhcmFtZXRlcnNUb0NCT1IoY29uc3QgVmVjdG9yPFB1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+JiBwYXJhbWV0ZXJzKQoreworICAgIENC
T1JWYWx1ZTo6QXJyYXlWYWx1ZSBjcmVkZW50aWFsUGFyYW1BcnJheTsKKyAgICBjcmVkZW50aWFs
UGFyYW1BcnJheS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHBhcmFtZXRlcnMuc2l6ZSgpKTsKKyAg
ICBmb3IgKGNvbnN0IGF1dG8mIGNyZWRlbnRpYWwgOiBwYXJhbWV0ZXJzKSB7CisgICAgICAgIENC
T1JWYWx1ZTo6TWFwVmFsdWUgY2JvckNyZWRlbnRpYWxNYXA7CisgICAgICAgIGNib3JDcmVkZW50
aWFsTWFwLmVtcGxhY2UoQ0JPUlZhbHVlKGtDcmVkZW50aWFsVHlwZU1hcEtleSksIENCT1JWYWx1
ZShwdWJsaWNLZXlDcmVkZW50aWFsVHlwZVRvU3RyaW5nKGNyZWRlbnRpYWwudHlwZSkpKTsKKyAg
ICAgICAgY2JvckNyZWRlbnRpYWxNYXAuZW1wbGFjZShDQk9SVmFsdWUoa0NyZWRlbnRpYWxBbGdv
cml0aG1NYXBLZXkpLCBDQk9SVmFsdWUoY3JlZGVudGlhbC5hbGcpKTsKKyAgICAgICAgY3JlZGVu
dGlhbFBhcmFtQXJyYXkuYXBwZW5kKFdURk1vdmUoY2JvckNyZWRlbnRpYWxNYXApKTsKKyAgICB9
CisgICAgcmV0dXJuIENCT1JWYWx1ZShXVEZNb3ZlKGNyZWRlbnRpYWxQYXJhbUFycmF5KSk7Cit9
CisKK3N0YXRpYyBDQk9SVmFsdWUgY29udmVydERlc2NyaXB0b3JUb0NCT1IoY29uc3QgUHVibGlj
S2V5Q3JlZGVudGlhbERlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCit7CisgICAgQ0JPUlZhbHVlOjpN
YXBWYWx1ZSBjYm9yRGVzY3JpcHRvck1hcDsKKyAgICBjYm9yRGVzY3JpcHRvck1hcFtDQk9SVmFs
dWUoa0NyZWRlbnRpYWxUeXBlS2V5KV0gPSBDQk9SVmFsdWUocHVibGljS2V5Q3JlZGVudGlhbFR5
cGVUb1N0cmluZyhkZXNjcmlwdG9yLnR5cGUpKTsKKyAgICBjYm9yRGVzY3JpcHRvck1hcFtDQk9S
VmFsdWUoa0NyZWRlbnRpYWxJZEtleSldID0gQ0JPUlZhbHVlKGRlc2NyaXB0b3IuaWRWZWN0b3Ip
OworICAgIHJldHVybiBDQk9SVmFsdWUoV1RGTW92ZShjYm9yRGVzY3JpcHRvck1hcCkpOworfQor
CitWZWN0b3I8dWludDhfdD4gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucyYgb3B0aW9ucywgVVZBdmFpbGFiaWxpdHkgdXZDYXBhYmlsaXR5KQoreworICAgIENC
T1JWYWx1ZTo6TWFwVmFsdWUgY2Jvck1hcDsKKyAgICBjYm9yTWFwW0NCT1JWYWx1ZSgxKV0gPSBD
Qk9SVmFsdWUoaGFzaCk7CisgICAgY2Jvck1hcFtDQk9SVmFsdWUoMildID0gY29udmVydFJwRW50
aXR5VG9DQk9SKG9wdGlvbnMucnApOworICAgIGNib3JNYXBbQ0JPUlZhbHVlKDMpXSA9IGNvbnZl
cnRVc2VyRW50aXR5VG9DQk9SKG9wdGlvbnMudXNlcik7CisgICAgY2Jvck1hcFtDQk9SVmFsdWUo
NCldID0gY29udmVydFBhcmFtZXRlcnNUb0NCT1Iob3B0aW9ucy5wdWJLZXlDcmVkUGFyYW1zKTsK
KyAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZUNyZWRlbnRpYWxzLmlzRW1wdHkoKSkgeworICAgICAg
ICBDQk9SVmFsdWU6OkFycmF5VmFsdWUgZXhjbHVkZUxpc3RBcnJheTsKKyAgICAgICAgZm9yIChj
b25zdCBhdXRvJiBkZXNjcmlwdG9yIDogb3B0aW9ucy5leGNsdWRlQ3JlZGVudGlhbHMpCisgICAg
ICAgICAgICBleGNsdWRlTGlzdEFycmF5LmFwcGVuZChjb252ZXJ0RGVzY3JpcHRvclRvQ0JPUihk
ZXNjcmlwdG9yKSk7CisgICAgICAgIGNib3JNYXBbQ0JPUlZhbHVlKDUpXSA9IENCT1JWYWx1ZShX
VEZNb3ZlKGV4Y2x1ZGVMaXN0QXJyYXkpKTsKKyAgICB9CisKKyAgICBDQk9SVmFsdWU6Ok1hcFZh
bHVlIG9wdGlvbk1hcDsKKyAgICBpZiAob3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uKSB7
CisgICAgICAgIC8vIFJlc2lkZW50IGtleXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgZGVmYXVsdC4K
KyAgICAgICAgaWYgKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+cmVxdWlyZVJlc2lk
ZW50S2V5KQorICAgICAgICAgICAgb3B0aW9uTWFwW0NCT1JWYWx1ZShrUmVzaWRlbnRLZXlNYXBL
ZXkpXSA9IENCT1JWYWx1ZSh0cnVlKTsKKworICAgICAgICAvLyBVc2VyIHZlcmlmaWNhdGlvbiBp
cyBub3QgcmVxdWlyZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgYm9vbCByZXF1aXJlVXNlclZlcmlm
aWNhdGlvbiA9IGZhbHNlOworICAgICAgICBzd2l0Y2ggKG9wdGlvbnMuYXV0aGVudGljYXRvclNl
bGVjdGlvbi0+dXNlclZlcmlmaWNhdGlvbikgeworICAgICAgICBjYXNlIFVzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudDo6UmVxdWlyZWQ6CisgICAgICAgICAgICByZXF1aXJlVXNlclZlcmlmaWNh
dGlvbiA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBVc2VyVmVyaWZp
Y2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZDoKKyAgICAgICAgICAgIHJlcXVpcmVVc2VyVmVy
aWZpY2F0aW9uID0gdXZDYXBhYmlsaXR5ID09IFVWQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVk
ID8gZmFsc2UgOiB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZDoKKyAgICAgICAgICAgIHJlcXVpcmVV
c2VyVmVyaWZpY2F0aW9uID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgb3B0aW9uTWFwW0NC
T1JWYWx1ZShrVXNlclZlcmlmaWNhdGlvbk1hcEtleSldID0gQ0JPUlZhbHVlKHJlcXVpcmVVc2Vy
VmVyaWZpY2F0aW9uKTsKKyAgICB9CisgICAgaWYgKCFvcHRpb25NYXAuZW1wdHkoKSkKKyAgICAg
ICAgY2Jvck1hcFtDQk9SVmFsdWUoNyldID0gQ0JPUlZhbHVlKFdURk1vdmUob3B0aW9uTWFwKSk7
CisKKyAgICBhdXRvIHNlcmlhbGl6ZWRQYXJhbSA9IENCT1JXcml0ZXI6OndyaXRlKENCT1JWYWx1
ZShXVEZNb3ZlKGNib3JNYXApKSk7CisgICAgQVNTRVJUKHNlcmlhbGl6ZWRQYXJhbSk7CisKKyAg
ICBWZWN0b3I8dWludDhfdD4gY2JvclJlcXVlc3QoeyBzdGF0aWNfY2FzdDx1aW50OF90PihDdGFw
UmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRpYWwpIH0pOworICAgIGNi
b3JSZXF1ZXN0LmFwcGVuZFZlY3Rvcigqc2VyaWFsaXplZFBhcmFtKTsKKyAgICByZXR1cm4gY2Jv
clJlcXVlc3Q7Cit9CisKK1ZlY3Rvcjx1aW50OF90PiBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0
QXNDQk9SKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zLCBVVkF2YWlsYWJpbGl0eSB1dkNhcGFiaWxpdHkp
Cit7CisgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBjYm9yTWFwOworICAgIGNib3JNYXBbQ0JPUlZh
bHVlKDEpXSA9IENCT1JWYWx1ZShvcHRpb25zLnJwSWQpOworICAgIGNib3JNYXBbQ0JPUlZhbHVl
KDIpXSA9IENCT1JWYWx1ZShoYXNoKTsKKworICAgIGlmICghb3B0aW9ucy5hbGxvd0NyZWRlbnRp
YWxzLmlzRW1wdHkoKSkgeworICAgICAgICBDQk9SVmFsdWU6OkFycmF5VmFsdWUgYWxsb3dMaXN0
QXJyYXk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgZGVzY3JpcHRvciA6IG9wdGlvbnMuYWxs
b3dDcmVkZW50aWFscykKKyAgICAgICAgICAgIGFsbG93TGlzdEFycmF5LmFwcGVuZChjb252ZXJ0
RGVzY3JpcHRvclRvQ0JPUihkZXNjcmlwdG9yKSk7CisgICAgICAgIGNib3JNYXBbQ0JPUlZhbHVl
KDMpXSA9IENCT1JWYWx1ZShXVEZNb3ZlKGFsbG93TGlzdEFycmF5KSk7CisgICAgfQorCisgICAg
Q0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25NYXA7CisgICAgLy8gVXNlciB2ZXJpZmljYXRpb24g
aXMgbm90IHJlcXVpcmVkIGJ5IGRlZmF1bHQuCisgICAgYm9vbCByZXF1aXJlVXNlclZlcmlmaWNh
dGlvbiA9IGZhbHNlOworICAgIHN3aXRjaCAob3B0aW9ucy51c2VyVmVyaWZpY2F0aW9uKSB7Cisg
ICAgY2FzZSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlJlcXVpcmVkOgorICAgICAgICBy
ZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQ6CisgICAgICAgIHJlcXVpcmVV
c2VyVmVyaWZpY2F0aW9uID0gdXZDYXBhYmlsaXR5ID09IFVWQXZhaWxhYmlsaXR5OjprTm90U3Vw
cG9ydGVkID8gZmFsc2UgOiB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudDo6RGlzY291cmFnZWQ6CisgICAgICAgIHJlcXVpcmVVc2VyVmVy
aWZpY2F0aW9uID0gZmFsc2U7CisgICAgfQorICAgIG9wdGlvbk1hcFtDQk9SVmFsdWUoa1VzZXJW
ZXJpZmljYXRpb25NYXBLZXkpXSA9IENCT1JWYWx1ZShyZXF1aXJlVXNlclZlcmlmaWNhdGlvbik7
CisgICAgb3B0aW9uTWFwW0NCT1JWYWx1ZShrVXNlclByZXNlbmNlTWFwS2V5KV0gPSBDQk9SVmFs
dWUoIXJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uKTsKKworICAgIGlmICghb3B0aW9uTWFwLmVtcHR5
KCkpCisgICAgICAgIGNib3JNYXBbQ0JPUlZhbHVlKDUpXSA9IENCT1JWYWx1ZShXVEZNb3ZlKG9w
dGlvbk1hcCkpOworCisgICAgYXV0byBzZXJpYWxpemVkUGFyYW0gPSBDQk9SV3JpdGVyOjp3cml0
ZShDQk9SVmFsdWUoV1RGTW92ZShjYm9yTWFwKSkpOworICAgIEFTU0VSVChzZXJpYWxpemVkUGFy
YW0pOworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGNib3JSZXF1ZXN0KHsgc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oQ3RhcFJlcXVlc3RDb21tYW5kOjprQXV0aGVudGljYXRvckdldEFzc2VydGlvbikgfSk7
CisgICAgY2JvclJlcXVlc3QuYXBwZW5kVmVjdG9yKCpzZXJpYWxpemVkUGFyYW0pOworICAgIHJl
dHVybiBjYm9yUmVxdWVzdDsKK30KKworVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUVtcHR5QXV0aGVu
dGljYXRvclJlcXVlc3QoQ3RhcFJlcXVlc3RDb21tYW5kIGNtZCkKK3sKKyAgICByZXR1cm4geyBz
dGF0aWNfY2FzdDx1aW50OF90PihjbWQpIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIGZpZG8KKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RDb252ZXJ0ZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40YWNjM2ZmNjJiOTUyNDlmNDg3YjIyY2U4NGFjNDE3OWY0YzMxODZmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJl
cXVlc3RDb252ZXJ0ZXIuaApAQCAtMCwwICsxLDYyIEBACisvLyBDb3B5cmlnaHQgMjAxNyBUaGUg
Q2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisv
LyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8g
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8v
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8v
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9B
VVRITikKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgiCisjaW5j
bHVkZSAiRmlkb0NvbnN0YW50cy5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
Oworc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKK30KKworbmFtZXNw
YWNlIGZpZG8geworCisvLyBTZXJpYWxpemVzIE1ha2VDcmVkZW50aWFsIHJlcXVlc3QgcGFyYW1l
dGVyIGludG8gQ0JPUiBlbmNvZGVkIG1hcCB3aXRoCisvLyBpbnRlZ2VyIGtleXMgYW5kIENCT1Ig
ZW5jb2RlZCB2YWx1ZXMgYXMgZGVmaW5lZCBieSB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9m
aWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10
by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbCNhdXRoZW50aWNh
dG9yTWFrZUNyZWRlbnRpYWwKK1dFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVN
YWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBj
b25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwgQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkpOwor
CisvLyBTZXJpYWxpemVzIEdldEFzc2VydGlvbiByZXF1ZXN0IHBhcmFtZXRlciBpbnRvIENCT1Ig
ZW5jb2RlZCBtYXAgd2l0aAorLy8gaW50ZWdlciBrZXlzIGFuZCBDQk9SIGVuY29kZWQgdmFsdWVz
IGFzIGRlZmluZWQgYnkgdGhlIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9y
Zy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRv
ci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjYXV0aGVudGljYXRvckdldEFzc2VydGlv
bgorV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUdldEFzc2VydGlvblJlcXVl
c3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSk7CisKKy8vIFJlcHJlc2VudHMgQ1RB
UCByZXF1ZXN0cyB3aXRoIGVtcHR5IHBhcmFtZXRlcnMsIGluY2x1ZGluZworLy8gQXV0aGVudGlj
YXRvckdldEluZm8sIEF1dGhlbnRpY2F0b3JDYW5jZWwsIEF1dGhlbnRpY2F0b3JSZXNldCBhbmQK
Ky8vIEF1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uIGNvbW1hbmRzLgorV0VCQ09SRV9FWFBP
UlQgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUVtcHR5QXV0aGVudGljYXRvclJlcXVlc3QoQ3RhcFJl
cXVlc3RDb21tYW5kKTsKKworfSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxF
KFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Zmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNm
NmE5NTliODNkM2UwMDFlOTQ4ZTI0MDEwODNhNTI3MzEzZWY3ZGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252
ZXJ0ZXIuY3BwCkBAIC0wLDAgKzEsMzEyIEBACisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgQ2hyb21p
dW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisv
LyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKy8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
Ky8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VS
ZXNwb25zZUNvbnZlcnRlci5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUg
IkF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmgiCisjaW5jbHVkZSAiQ0JPUlJlYWRlci5o
IgorI2luY2x1ZGUgIkNCT1JXcml0ZXIuaCIKKyNpbmNsdWRlIDx3dGYvU3RkU2V0Lmg+CisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgZmlkbyB7Cit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKK3VzaW5nIENCT1IgPSBjYm9yOjpDQk9SVmFsdWU7CisKK2NvbnN0ZXhwciBzaXpl
X3Qga1Jlc3BvbnNlQ29kZUxlbmd0aCA9IDE7CisKK3N0YXRpYyBQcm90b2NvbFZlcnNpb24gY29u
dmVydFN0cmluZ1RvUHJvdG9jb2xWZXJzaW9uKGNvbnN0IFN0cmluZyYgdmVyc2lvbikKK3sKKyAg
ICBpZiAodmVyc2lvbiA9PSBrQ3RhcDJWZXJzaW9uKQorICAgICAgICByZXR1cm4gUHJvdG9jb2xW
ZXJzaW9uOjprQ3RhcDsKKyAgICBpZiAodmVyc2lvbiA9PSBrVTJmVmVyc2lvbikKKyAgICAgICAg
cmV0dXJuIFByb3RvY29sVmVyc2lvbjo6a1UyZjsKKworICAgIHJldHVybiBQcm90b2NvbFZlcnNp
b246OmtVbmtub3duOworfQorCitDdGFwRGV2aWNlUmVzcG9uc2VDb2RlIGdldFJlc3BvbnNlQ29k
ZShjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKK3sKKyAgICBpZiAoYnVmZmVyLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVycklu
dmFsaWRDQk9SOworCisgICAgYXV0byBjb2RlID0gc3RhdGljX2Nhc3Q8Q3RhcERldmljZVJlc3Bv
bnNlQ29kZT4oYnVmZmVyWzBdKTsKKyAgICByZXR1cm4gaXNDdGFwRGV2aWNlUmVzcG9uc2VDb2Rl
KGNvZGUpID8gY29kZSA6IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRD
Qk9SOworfQorCitzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGdldENyZWRlbnRpYWxJZChjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGF1dGhlbnRpY2F0b3JEYXRhKQoreworICAgIGNvbnN0IHNpemVfdCBj
cmVkZW50aWFsSWRMZW5ndGhPZmZzZXQgPSBrUnBJZEhhc2hMZW5ndGggKyBrRmxhZ3NMZW5ndGgg
KyBrU2lnbkNvdW50ZXJMZW5ndGggKyBrQWFndWlkTGVuZ3RoOworCisgICAgaWYgKGF1dGhlbnRp
Y2F0b3JEYXRhLnNpemUoKSA8IGNyZWRlbnRpYWxJZExlbmd0aE9mZnNldCArIGtDcmVkZW50aWFs
SWRMZW5ndGhMZW5ndGgpCisgICAgICAgIHJldHVybiB7IH07CisgICAgc2l6ZV90IGNyZWRlbnRp
YWxJZExlbmd0aCA9IChzdGF0aWNfY2FzdDxzaXplX3Q+KGF1dGhlbnRpY2F0b3JEYXRhW2NyZWRl
bnRpYWxJZExlbmd0aE9mZnNldF0pIDw8IDgpIHwgc3RhdGljX2Nhc3Q8c2l6ZV90PihhdXRoZW50
aWNhdG9yRGF0YVtjcmVkZW50aWFsSWRMZW5ndGhPZmZzZXQgKyAxXSk7CisKKyAgICBpZiAoYXV0
aGVudGljYXRvckRhdGEuc2l6ZSgpIDwgY3JlZGVudGlhbElkTGVuZ3RoT2Zmc2V0ICsga0NyZWRl
bnRpYWxJZExlbmd0aExlbmd0aCArIGNyZWRlbnRpYWxJZExlbmd0aCkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICBWZWN0b3I8dWludDhfdD4gY3JlZGVudGlhbElkOworICAgIGNyZWRlbnRpYWxJ
ZC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNyZWRlbnRpYWxJZExlbmd0aCk7CisgICAgYXV0byBi
ZWdpbkl0ID0gYXV0aGVudGljYXRvckRhdGEuYmVnaW4oKSArIGNyZWRlbnRpYWxJZExlbmd0aE9m
ZnNldCArIGtDcmVkZW50aWFsSWRMZW5ndGhMZW5ndGg7CisgICAgY3JlZGVudGlhbElkLmFwcGVu
ZFJhbmdlKGJlZ2luSXQsIGJlZ2luSXQgKyBjcmVkZW50aWFsSWRMZW5ndGgpOworICAgIHJldHVy
biBjcmVkZW50aWFsSWQ7Cit9CisKKworLy8gRGVjb2RlcyBieXRlIGFycmF5IHJlc3BvbnNlIGZy
b20gYXV0aGVudGljYXRvciB0byBDQk9SIHZhbHVlIG9iamVjdCBhbmQKKy8vIGNoZWNrcyBmb3Ig
Y29ycmVjdCBlbmNvZGluZyBmb3JtYXQuCitzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRp
YWxEYXRhPiByZWFkQ1RBUE1ha2VDcmVkZW50aWFsUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiBpbkJ1ZmZlcikKK3sKKyAgICBpZiAoaW5CdWZmZXIuc2l6ZSgpIDw9IGtSZXNwb25zZUNv
ZGVMZW5ndGgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8dWlu
dDhfdD4gYnVmZmVyOworICAgIGJ1ZmZlci5hcHBlbmQoaW5CdWZmZXIuZGF0YSgpICsgMSwgaW5C
dWZmZXIuc2l6ZSgpIC0gMSk7CisgICAgc3RkOjpvcHRpb25hbDxDQk9SPiBkZWNvZGVkUmVzcG9u
c2UgPSBjYm9yOjpDQk9SUmVhZGVyOjpyZWFkKGJ1ZmZlcik7CisgICAgaWYgKCFkZWNvZGVkUmVz
cG9uc2UgfHwgIWRlY29kZWRSZXNwb25zZS0+aXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICBjb25zdCBhdXRvJiBkZWNvZGVkTWFwID0gZGVjb2RlZFJlc3BvbnNlLT5n
ZXRNYXAoKTsKKworICAgIGF1dG8gaXQgPSBkZWNvZGVkTWFwLmZpbmQoQ0JPUigxKSk7CisgICAg
aWYgKGl0ID09IGRlY29kZWRNYXAuZW5kKCkgfHwgIWl0LT5zZWNvbmQuaXNTdHJpbmcoKSkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBhdXRvIGZvcm1hdCA9IGl0LT5zZWNvbmQu
Y2xvbmUoKTsKKworICAgIGl0ID0gZGVjb2RlZE1hcC5maW5kKENCT1IoMikpOworICAgIGlmIChp
dCA9PSBkZWNvZGVkTWFwLmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzQnl0ZVN0cmluZygpKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGF1dG8gYXV0aGVudGljYXRvckRhdGEgPSBp
dC0+c2Vjb25kLmNsb25lKCk7CisKKyAgICBhdXRvIGNyZWRlbnRpYWxJZCA9IGdldENyZWRlbnRp
YWxJZChhdXRoZW50aWNhdG9yRGF0YS5nZXRCeXRlU3RyaW5nKCkpOworICAgIGlmIChjcmVkZW50
aWFsSWQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgaXQg
PSBkZWNvZGVkTWFwLmZpbmQoQ0JPUigzKSk7CisgICAgaWYgKGl0ID09IGRlY29kZWRNYXAuZW5k
KCkgfHwgIWl0LT5zZWNvbmQuaXNNYXAoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICBhdXRvIGF0dFN0bXQgPSBpdC0+c2Vjb25kLmNsb25lKCk7CisKKyAgICBDQk9SOjpNYXBW
YWx1ZSBhdHRlc3RhdGlvbk9iamVjdE1hcDsKKyAgICBhdHRlc3RhdGlvbk9iamVjdE1hcFtDQk9S
KCJhdXRoRGF0YSIpXSA9IFdURk1vdmUoYXV0aGVudGljYXRvckRhdGEpOworICAgIGF0dGVzdGF0
aW9uT2JqZWN0TWFwW0NCT1IoImZtdCIpXSA9IFdURk1vdmUoZm9ybWF0KTsKKyAgICBhdHRlc3Rh
dGlvbk9iamVjdE1hcFtDQk9SKCJhdHRTdG10IildID0gV1RGTW92ZShhdHRTdG10KTsKKyAgICBh
dXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0gY2Jvcjo6Q0JPUldyaXRlcjo6d3JpdGUoQ0JPUihXVEZN
b3ZlKGF0dGVzdGF0aW9uT2JqZWN0TWFwKSkpOworCisgICAgcmV0dXJuIFB1YmxpY0tleUNyZWRl
bnRpYWxEYXRhIHsgQXJyYXlCdWZmZXI6OmNyZWF0ZShjcmVkZW50aWFsSWQuZGF0YSgpLCBjcmVk
ZW50aWFsSWQuc2l6ZSgpKSwgdHJ1ZSwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdHRl
c3RhdGlvbk9iamVjdC52YWx1ZSgpLmRhdGEoKSwgYXR0ZXN0YXRpb25PYmplY3QudmFsdWUoKS5z
aXplKCkpLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH07Cit9CisKK3N0ZDo6b3B0aW9uYWw8
UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlYWRDVEFQR2V0QXNzZXJ0aW9uUmVzcG9uc2UoY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBpbkJ1ZmZlcikKK3sKKyAgICBpZiAoaW5CdWZmZXIuc2l6ZSgp
IDw9IGtSZXNwb25zZUNvZGVMZW5ndGgpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICBWZWN0b3I8dWludDhfdD4gYnVmZmVyOworICAgIGJ1ZmZlci5hcHBlbmQoaW5CdWZmZXIu
ZGF0YSgpICsgMSwgaW5CdWZmZXIuc2l6ZSgpIC0gMSk7CisgICAgc3RkOjpvcHRpb25hbDxDQk9S
PiBkZWNvZGVkUmVzcG9uc2UgPSBjYm9yOjpDQk9SUmVhZGVyOjpyZWFkKGJ1ZmZlcik7CisKKyAg
ICBpZiAoIWRlY29kZWRSZXNwb25zZSB8fCAhZGVjb2RlZFJlc3BvbnNlLT5pc01hcCgpKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byYgcmVzcG9uc2VNYXAgPSBkZWNv
ZGVkUmVzcG9uc2UtPmdldE1hcCgpOworCisgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVkZW50
aWFsSWQ7CisgICAgYXV0byBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUigxKSk7CisgICAgaWYg
KGl0ICE9IHJlc3BvbnNlTWFwLmVuZCgpICYmIGl0LT5zZWNvbmQuaXNNYXAoKSkgeworICAgICAg
ICBhdXRvJiBjcmVkZW50aWFsID0gaXQtPnNlY29uZC5nZXRNYXAoKTsKKyAgICAgICAgYXV0byBp
dHIgPSBjcmVkZW50aWFsLmZpbmQoQ0JPUihrQ3JlZGVudGlhbElkS2V5KSk7CisgICAgICAgIGlm
IChpdHIgPT0gY3JlZGVudGlhbC5lbmQoKSB8fCAhaXRyLT5zZWNvbmQuaXNCeXRlU3RyaW5nKCkp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBhdXRvJiBpZCA9IGl0
ci0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKTsKKyAgICAgICAgY3JlZGVudGlhbElkID0gQXJyYXlC
dWZmZXI6OmNyZWF0ZShpZC5kYXRhKCksIGlkLnNpemUoKSk7CisgICAgfQorCisgICAgaXQgPSBy
ZXNwb25zZU1hcC5maW5kKENCT1IoMikpOworICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5lbmQo
KSB8fCAhaXQtPnNlY29uZC5pc0J5dGVTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICBhdXRvJiBhdXRoRGF0YSA9IGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOwor
CisgICAgaXQgPSByZXNwb25zZU1hcC5maW5kKENCT1IoMykpOworICAgIGlmIChpdCA9PSByZXNw
b25zZU1hcC5lbmQoKSB8fCAhaXQtPnNlY29uZC5pc0J5dGVTdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBhdXRvJiBzaWduYXR1cmUgPSBpdC0+c2Vjb25kLmdldEJ5
dGVTdHJpbmcoKTsKKworICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gdXNlckhhbmRsZTsKKyAgICB7
CisgICAgICAgIGl0ID0gcmVzcG9uc2VNYXAuZmluZChDQk9SKDQpKTsKKyAgICAgICAgaWYgKGl0
ID09IHJlc3BvbnNlTWFwLmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzTWFwKCkpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBhdXRvJiB1c2VyID0gaXQtPnNlY29uZC5n
ZXRNYXAoKTsKKyAgICAgICAgYXV0byBpdHIgPSB1c2VyLmZpbmQoQ0JPUihrRW50aXR5SWRNYXBL
ZXkpKTsKKyAgICAgICAgaWYgKGl0ciA9PSB1c2VyLmVuZCgpIHx8ICFpdHItPnNlY29uZC5pc0J5
dGVTdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGF1
dG8mIGlkID0gaXRyLT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOworICAgICAgICB1c2VySGFuZGxl
ID0gQXJyYXlCdWZmZXI6OmNyZWF0ZShpZC5kYXRhKCksIGlkLnNpemUoKSk7CisgICAgfQorCisg
ICAgcmV0dXJuIFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhIHsgV1RGTW92ZShjcmVkZW50aWFsSWQp
LCBmYWxzZSwgbnVsbHB0ciwgbnVsbHB0ciwgQXJyYXlCdWZmZXI6OmNyZWF0ZShhdXRoRGF0YS5k
YXRhKCksIGF1dGhEYXRhLnNpemUoKSksIEFycmF5QnVmZmVyOjpjcmVhdGUoc2lnbmF0dXJlLmRh
dGEoKSwgc2lnbmF0dXJlLnNpemUoKSksIFdURk1vdmUodXNlckhhbmRsZSkgfTsKK30KKworc3Rk
OjpvcHRpb25hbDxBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlPiByZWFkQ1RBUEdldEluZm9S
ZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4mIGluQnVmZmVyKQoreworICAgIGlmIChpbkJ1
ZmZlci5zaXplKCkgPD0ga1Jlc3BvbnNlQ29kZUxlbmd0aCB8fCBnZXRSZXNwb25zZUNvZGUoaW5C
dWZmZXIpICE9IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtTdWNjZXNzKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKKyAgICBidWZm
ZXIuYXBwZW5kKGluQnVmZmVyLmRhdGEoKSArIDEsIGluQnVmZmVyLnNpemUoKSAtIDEpOworICAg
IHN0ZDo6b3B0aW9uYWw8Q0JPUj4gZGVjb2RlZFJlc3BvbnNlID0gY2Jvcjo6Q0JPUlJlYWRlcjo6
cmVhZChidWZmZXIpOworICAgIGlmICghZGVjb2RlZFJlc3BvbnNlIHx8ICFkZWNvZGVkUmVzcG9u
c2UtPmlzTWFwKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgY29uc3QgYXV0
byYgcmVzcG9uc2VNYXAgPSBkZWNvZGVkUmVzcG9uc2UtPmdldE1hcCgpOworCisgICAgYXV0byBp
dCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUigxKSk7CisgICAgaWYgKGl0ID09IHJlc3BvbnNlTWFw
LmVuZCgpIHx8ICFpdC0+c2Vjb25kLmlzQXJyYXkoKSB8fCBpdC0+c2Vjb25kLmdldEFycmF5KCku
c2l6ZSgpID4gMikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBTdGRTZXQ8UHJv
dG9jb2xWZXJzaW9uPiBwcm90b2NvbFZlcnNpb25zOworICAgIGZvciAoY29uc3QgYXV0byYgdmVy
c2lvbiA6IGl0LT5zZWNvbmQuZ2V0QXJyYXkoKSkgeworICAgICAgICBpZiAoIXZlcnNpb24uaXNT
dHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgYXV0
byBwcm90b2NvbCA9IGNvbnZlcnRTdHJpbmdUb1Byb3RvY29sVmVyc2lvbih2ZXJzaW9uLmdldFN0
cmluZygpKTsKKyAgICAgICAgaWYgKHByb3RvY29sID09IFByb3RvY29sVmVyc2lvbjo6a1Vua25v
d24pIHsKKyAgICAgICAgICAgIExPR19FUlJPUigiVW5leHBlY3RlZCBwcm90b2NvbCB2ZXJzaW9u
IHJlY2VpdmVkLiIpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoIXByb3RvY29sVmVyc2lvbnMuaW5zZXJ0KHByb3RvY29sKS5zZWNvbmQpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKyAgICBpZiAocHJvdG9jb2xWZXJzaW9u
cy5lbXB0eSgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgaXQgPSByZXNw
b25zZU1hcC5maW5kKENCT1IoMykpOworICAgIGlmIChpdCA9PSByZXNwb25zZU1hcC5lbmQoKSB8
fCAhaXQtPnNlY29uZC5pc0J5dGVTdHJpbmcoKSB8fCBpdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmco
KS5zaXplKCkgIT0ga0FhZ3VpZExlbmd0aCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UgcmVzcG9uc2UoV1RGTW92ZShwcm90
b2NvbFZlcnNpb25zKSwgVmVjdG9yPHVpbnQ4X3Q+KGl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygp
KSk7CisKKyAgICBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoQ0JPUigyKSk7CisgICAgaWYgKGl0ICE9
IHJlc3BvbnNlTWFwLmVuZCgpKSB7CisgICAgICAgIGlmICghaXQtPnNlY29uZC5pc0FycmF5KCkp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIFZlY3RvcjxTdHJp
bmc+IGV4dGVuc2lvbnM7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgZXh0ZW5zaW9uIDogaXQt
PnNlY29uZC5nZXRBcnJheSgpKSB7CisgICAgICAgICAgICBpZiAoIWV4dGVuc2lvbi5pc1N0cmlu
ZygpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgICAg
IGV4dGVuc2lvbnMuYXBwZW5kKGV4dGVuc2lvbi5nZXRTdHJpbmcoKSk7CisgICAgICAgIH0KKyAg
ICAgICAgcmVzcG9uc2Uuc2V0RXh0ZW5zaW9ucyhXVEZNb3ZlKGV4dGVuc2lvbnMpKTsKKyAgICB9
CisKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBvcHRpb25zOworICAgIGl0ID0g
cmVzcG9uc2VNYXAuZmluZChDQk9SKDQpKTsKKyAgICBpZiAoaXQgIT0gcmVzcG9uc2VNYXAuZW5k
KCkpIHsKKyAgICAgICAgaWYgKCFpdC0+c2Vjb25kLmlzTWFwKCkpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworICAgICAgICBjb25zdCBhdXRvJiBvcHRpb25NYXAgPSBpdC0+c2Vj
b25kLmdldE1hcCgpOworICAgICAgICBhdXRvIG9wdGlvbk1hcEl0ID0gb3B0aW9uTWFwLmZpbmQo
Q0JPUihrUGxhdGZvcm1EZXZpY2VNYXBLZXkpKTsKKyAgICAgICAgaWYgKG9wdGlvbk1hcEl0ICE9
IG9wdGlvbk1hcC5lbmQoKSkgeworICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJdC0+c2Vjb25k
LmlzQm9vbCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgICAgIG9wdGlvbnMuc2V0SXNQbGF0Zm9ybURldmljZShvcHRpb25NYXBJdC0+c2Vjb25kLmdl
dEJvb2woKSk7CisgICAgICAgIH0KKworICAgICAgICBvcHRpb25NYXBJdCA9IG9wdGlvbk1hcC5m
aW5kKENCT1Ioa1Jlc2lkZW50S2V5TWFwS2V5KSk7CisgICAgICAgIGlmIChvcHRpb25NYXBJdCAh
PSBvcHRpb25NYXAuZW5kKCkpIHsKKyAgICAgICAgICAgIGlmICghb3B0aW9uTWFwSXQtPnNlY29u
ZC5pc0Jvb2woKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
ICAgICAgICBvcHRpb25zLnNldFN1cHBvcnRzUmVzaWRlbnRLZXkob3B0aW9uTWFwSXQtPnNlY29u
ZC5nZXRCb29sKCkpOworICAgICAgICB9CisKKyAgICAgICAgb3B0aW9uTWFwSXQgPSBvcHRpb25N
YXAuZmluZChDQk9SKGtVc2VyUHJlc2VuY2VNYXBLZXkpKTsKKyAgICAgICAgaWYgKG9wdGlvbk1h
cEl0ICE9IG9wdGlvbk1hcC5lbmQoKSkgeworICAgICAgICAgICAgaWYgKCFvcHRpb25NYXBJdC0+
c2Vjb25kLmlzQm9vbCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAgICAgICAgIG9wdGlvbnMuc2V0VXNlclByZXNlbmNlUmVxdWlyZWQob3B0aW9uTWFwSXQt
PnNlY29uZC5nZXRCb29sKCkpOworICAgICAgICB9CisKKyAgICAgICAgb3B0aW9uTWFwSXQgPSBv
cHRpb25NYXAuZmluZChDQk9SKGtVc2VyVmVyaWZpY2F0aW9uTWFwS2V5KSk7CisgICAgICAgIGlm
IChvcHRpb25NYXBJdCAhPSBvcHRpb25NYXAuZW5kKCkpIHsKKyAgICAgICAgICAgIGlmICghb3B0
aW9uTWFwSXQtPnNlY29uZC5pc0Jvb2woKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgICAgICBpZiAob3B0aW9uTWFwSXQtPnNlY29uZC5nZXRCb29sKCkp
CisgICAgICAgICAgICAgICAgb3B0aW9ucy5zZXRVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5
KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmls
aXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgb3B0aW9ucy5zZXRVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3Vw
cG9ydGVkQnV0Tm90Q29uZmlndXJlZCk7CisgICAgICAgIH0KKworICAgICAgICBvcHRpb25NYXBJ
dCA9IG9wdGlvbk1hcC5maW5kKENCT1Ioa0NsaWVudFBpbk1hcEtleSkpOworICAgICAgICBpZiAo
b3B0aW9uTWFwSXQgIT0gb3B0aW9uTWFwLmVuZCgpKSB7CisgICAgICAgICAgICBpZiAoIW9wdGlv
bk1hcEl0LT5zZWNvbmQuaXNCb29sKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICAgICAgaWYgKG9wdGlvbk1hcEl0LT5zZWNvbmQuZ2V0Qm9vbCgpKQor
ICAgICAgICAgICAgICAgIG9wdGlvbnMuc2V0Q2xpZW50UGluQXZhaWxhYmlsaXR5KEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRB
bmRQaW5TZXQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG9wdGlvbnMuc2V0
Q2xpZW50UGluQXZhaWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGll
bnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRCdXRQaW5Ob3RTZXQpOworICAgICAgICB9Cisg
ICAgICAgIHJlc3BvbnNlLnNldE9wdGlvbnMoV1RGTW92ZShvcHRpb25zKSk7CisgICAgfQorCisg
ICAgaXQgPSByZXNwb25zZU1hcC5maW5kKENCT1IoNSkpOworICAgIGlmIChpdCAhPSByZXNwb25z
ZU1hcC5lbmQoKSkgeworICAgICAgICBpZiAoIWl0LT5zZWNvbmQuaXNVbnNpZ25lZCgpKQorICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICByZXNwb25zZS5zZXRNYXhN
c2dTaXplKGl0LT5zZWNvbmQuZ2V0VW5zaWduZWQoKSk7CisgICAgfQorCisgICAgaXQgPSByZXNw
b25zZU1hcC5maW5kKENCT1IoNikpOworICAgIGlmIChpdCAhPSByZXNwb25zZU1hcC5lbmQoKSkg
eworICAgICAgICBpZiAoIWl0LT5zZWNvbmQuaXNBcnJheSgpKQorICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBWZWN0b3I8dWludDhfdD4gc3VwcG9ydGVkUGluUHJv
dG9jb2xzOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHByb3RvY29sIDogaXQtPnNlY29uZC5n
ZXRBcnJheSgpKSB7CisgICAgICAgICAgICBpZiAoIXByb3RvY29sLmlzVW5zaWduZWQoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgICAgICBzdXBwb3J0
ZWRQaW5Qcm90b2NvbHMuYXBwZW5kKHByb3RvY29sLmdldFVuc2lnbmVkKCkpOworICAgICAgICB9
CisgICAgICAgIHJlc3BvbnNlLnNldFBpblByb3RvY29scyhXVEZNb3ZlKHN1cHBvcnRlZFBpblBy
b3RvY29scykpOworICAgIH0KKworICAgIHJldHVybiBXVEZNb3ZlKHJlc3BvbnNlKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgZmlkbworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25z
ZUNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0Rldmlj
ZVJlc3BvbnNlQ29udmVydGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODE5NjMzNTQ1Y2RlMjVjMGRiZGM0YzYz
ZGE1ZjFiMTY2ZTIzNzQ5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oCkBAIC0wLDAgKzEsNjYg
QEAKKy8vIENvcHlyaWdodCAyMDE4IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisv
LyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
Ky8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
Ky8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiQXV0aGVudGljYXRv
ckdldEluZm9SZXNwb25zZS5oIgorI2luY2x1ZGUgIkZpZG9Db25zdGFudHMuaCIKKyNpbmNsdWRl
ICJQdWJsaWNLZXlDcmVkZW50aWFsRGF0YS5oIgorCisvLyBDb252ZXJ0cyByZXNwb25zZSBmcm9t
IGF1dGhlbnRpY2F0b3JzIHRvIENUQVBSZXNwb25zZSBvYmplY3RzLiBJZiB0aGUKKy8vIHJlc3Bv
bnNlIG9mIHRoZSBhdXRoZW50aWNhdG9yIGRvZXMgbm90IGNvbmZvcm0gdG8gZm9ybWF0IHNwZWNp
ZmllZCBieSB0aGUKKy8vIENUQVAgcHJvdG9jb2wsIG51bGwgb3B0aW9uYWwgaXMgcmV0dXJuZWQu
CituYW1lc3BhY2UgZmlkbyB7CisKKy8vIFBhcnNlcyByZXNwb25zZSBjb2RlIGZyb20gcmVzcG9u
c2UgcmVjZWl2ZWQgZnJvbSB0aGUgYXV0aGVudGljYXRvci4gSWYKKy8vIHVua25vd24gcmVzcG9u
c2UgY29kZSB2YWx1ZSBpcyByZWNlaXZlZCwgdGhlbiBDVEFQMl9FUlJfT1RIRVIgaXMgcmV0dXJu
ZWQuCitXRUJDT1JFX0VYUE9SVCBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlIGdldFJlc3BvbnNlQ29k
ZShjb25zdCBWZWN0b3I8dWludDhfdD4mKTsKKworLy8gRGUtc2VyaWFsaXplcyBDQk9SIGVuY29k
ZWQgcmVzcG9uc2UsIGNoZWNrcyBmb3IgdmFsaWQgQ0JPUiBtYXAgZm9ybWF0dGluZywKKy8vIGFu
ZCBjb252ZXJ0cyByZXNwb25zZSB0byBBdXRoZW50aWNhdG9yTWFrZUNyZWRlbnRpYWxSZXNwb25z
ZSBvYmplY3Qgd2l0aAorLy8gQ0JPUiBtYXAga2V5cyB0aGF0IGNvbmZvcm0gdG8gZm9ybWF0IG9m
IGF0dGVzdGF0aW9uIG9iamVjdCBkZWZpbmVkIGJ5IHRoZQorLy8gV2ViQXV0aE4gc3BlYyA6IGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhdXRobi8jZmlnLWF0dFN0cnVjdHMKK1dFQkNPUkVfRVhQ
T1JUIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlYWRD
VEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4mKTsKKworLy8g
RGUtc2VyaWFsaXplcyBDQk9SIGVuY29kZWQgcmVzcG9uc2UgdG8gQXV0aGVudGljYXRvckdldEFz
c2VydGlvbiAvCisvLyBBdXRoZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbiByZXF1ZXN0IHRvIEF1
dGhlbnRpY2F0b3JHZXRBc3NlcnRpb25SZXNwb25zZQorLy8gb2JqZWN0LgorLy8gRklYTUUoMTkw
NzgzKTogUHJvYmFibHkgbmVlZCB0byByZW1ha2UgQXV0aGVudGljYXRvclJlc3BvbnNlIHRvIGlu
Y2x1ZGUgbW9yZSBmaWVsZHMgbGlrZSBudW1iZXJPZkNyZWRlbnRpYWxzLAorLy8gYW5kIHVzZSBp
dCBoZXJlIGluc3RlYWQgb2YgUHVibGljS2V5Q3JlZGVudGlhbERhdGEuCitXRUJDT1JFX0VYUE9S
VCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxEYXRhPiByZWFkQ1RB
UEdldEFzc2VydGlvblJlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYpOworCisvLyBEZS1z
ZXJpYWxpemVzIENCT1IgZW5jb2RlZCByZXNwb25zZSB0byBBdXRoZW50aWNhdG9yR2V0SW5mbyBy
ZXF1ZXN0IHRvCisvLyBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlIG9iamVjdC4KK1dFQkNP
UkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZT4gcmVh
ZENUQVBHZXRJbmZvUmVzcG9uc2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7CisKK30gLy8gbmFt
ZXNwYWNlIGZpZG8KKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5jcHAKaW5k
ZXggMzg4MWZkMmYyNjRlOWYwZWU0ZGEwMzkyNDJlNWFkMTBkNzA0YTRmMy4uODE3MjVjZWFmMmNl
ZDI5MTk2Nzg0M2M5NzkxNzhhZjZlYzQ0ZTczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcApAQCAtMzMsNiArMzMs
NjYgQEAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCiBuYW1lc3BhY2UgZmlkbyB7Cit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworYm9vbCBpc0N0YXBEZXZpY2VSZXNwb25zZUNvZGUoQ3RhcERl
dmljZVJlc3BvbnNlQ29kZSBjb2RlKQoreworICAgIHN3aXRjaCAoY29kZSkgeworICAgIGNhc2Ug
Q3RhcERldmljZVJlc3BvbnNlQ29kZTo6a1N1Y2Nlc3M6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDFFcnJJbnZhbGlkQ29tbWFuZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMUVyckludmFsaWRQYXJhbWV0ZXI6CisgICAgY2FzZSBDdGFwRGV2
aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDFFcnJJbnZhbGlkTGVuZ3RoOgorICAgIGNhc2UgQ3RhcERl
dmljZVJlc3BvbnNlQ29kZTo6a0N0YXAxRXJySW52YWxpZFNlcToKKyAgICBjYXNlIEN0YXBEZXZp
Y2VSZXNwb25zZUNvZGU6OmtDdGFwMUVyclRpbWVvdXQ6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDFFcnJDaGFubmVsQnVzeToKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNw
b25zZUNvZGU6OmtDdGFwMUVyckxvY2tSZXF1aXJlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNw
b25zZUNvZGU6OmtDdGFwMUVyckludmFsaWRDaGFubmVsOgorICAgIGNhc2UgQ3RhcERldmljZVJl
c3BvbnNlQ29kZTo6a0N0YXAyRXJyQ0JPUlBhcnNpbmc6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDJFcnJVbmV4cGVjdGVkVHlwZToKKyAgICBjYXNlIEN0YXBEZXZpY2VS
ZXNwb25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRDQk9SOgorICAgIGNhc2UgQ3RhcERldmljZVJl
c3BvbnNlQ29kZTo6a0N0YXAyRXJySW52YWxpZENCT1JUeXBlOgorICAgIGNhc2UgQ3RhcERldmlj
ZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyTWlzc2luZ1BhcmFtZXRlcjoKKyAgICBjYXNlIEN0YXBE
ZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckxpbWl0RXhjZWVkZWQ6CisgICAgY2FzZSBDdGFw
RGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJVbnN1cHBvcnRlZEV4dGVuc2lvbjoKKyAgICBj
YXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclRvb01hbnlFbGVtZW50czoKKyAg
ICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckV4dGVuc2lvbk5vdFN1cHBv
cnRlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckNyZWRlbnRp
YWxFeGNsdWRlZDoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBy
b2Nlc3NzaW5nOgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJySW52
YWxpZENyZWRlbnRpYWw6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJF
cnJVc2VyQWN0aW9uUGVuZGluZzoKKyAgICBjYXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtD
dGFwMkVyck9wZXJhdGlvblBlbmRpbmc6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2Rl
OjprQ3RhcDJFcnJOb09wZXJhdGlvbnM6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2Rl
OjprQ3RhcDJFcnJVbnN1cHBvcnRlZEFsZ29yaXRobXM6CisgICAgY2FzZSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDJFcnJPcGVyYXRpb25EZW5pZWQ6CisgICAgY2FzZSBDdGFwRGV2aWNl
UmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJLZXlTdG9yZUZ1bGw6CisgICAgY2FzZSBDdGFwRGV2aWNl
UmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJOb3RCdXN5OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a0N0YXAyRXJyTm9PcGVyYXRpb25QZW5kaW5nOgorICAgIGNhc2UgQ3RhcERldmlj
ZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVW5zdXBwb3J0ZWRPcHRpb246CisgICAgY2FzZSBDdGFw
RGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJJbnZhbGlkT3B0aW9uOgorICAgIGNhc2UgQ3Rh
cERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyS2VlcEFsaXZlQ2FuY2VsOgorICAgIGNhc2Ug
Q3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyTm9DcmVkZW50aWFsczoKKyAgICBjYXNl
IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclVzZXJBY3Rpb25UaW1lb3V0OgorICAg
IGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyTm90QWxsb3dlZDoKKyAgICBj
YXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbkludmFsaWQ6CisgICAgY2Fz
ZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5CbG9ja2VkOgorICAgIGNhc2Ug
Q3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluQXV0aEludmFsaWQ6CisgICAgY2Fz
ZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJQaW5BdXRoQmxvY2tlZDoKKyAgICBj
YXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpbk5vdFNldDoKKyAgICBjYXNl
IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclBpblJlcXVpcmVkOgorICAgIGNhc2Ug
Q3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluUG9saWN5VmlvbGF0aW9uOgorICAg
IGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUGluVG9rZW5FeHBpcmVkOgor
ICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyUmVxdWVzdFRvb0xhcmdl
OgorICAgIGNhc2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyT3RoZXI6CisgICAg
Y2FzZSBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjprQ3RhcDJFcnJTcGVjTGFzdDoKKyAgICBjYXNl
IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckV4dGVuc2lvbkZpcnN0OgorICAgIGNh
c2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyRXh0ZW5zaW9uTGFzdDoKKyAgICBj
YXNlIEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyclZlbmRvckZpcnN0OgorICAgIGNh
c2UgQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a0N0YXAyRXJyVmVuZG9yTGFzdDoKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
K30KIAogYm9vbCBpc0ZpZG9IaWREZXZpY2VDb21tYW5kKEZpZG9IaWREZXZpY2VDb21tYW5kIGNt
ZCkKIHsKQEAgLTUyLDYgKzExMiwxNiBAQCBib29sIGlzRmlkb0hpZERldmljZUNvbW1hbmQoRmlk
b0hpZERldmljZUNvbW1hbmQgY21kKQogICAgIH0KIH0KIAorY29uc3QgY2hhciogcHVibGljS2V5
Q3JlZGVudGlhbFR5cGVUb1N0cmluZyhQdWJsaWNLZXlDcmVkZW50aWFsVHlwZSB0eXBlKQorewor
ICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1
YmxpY0tleToKKyAgICAgICAgcmV0dXJuIGtQdWJsaWNLZXk7CisgICAgfQorICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBrUHVibGljS2V5OworfQorCiB9IC8vIG5hbWVzcGFj
ZSBmaWRvCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmgKaW5kZXggYjg2OTBm
MDNkZDQ4NGRmZDM2NzU2NzUwZTA1NmEyNzVjNmRkM2U1Ni4uNWNkN2FlOGIzOTEzNTE0MDE0N2Zj
MDY5NzkzNjM4MGY0OTAwYmE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0ZpZG9Db25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oCkBAIC0zMSw4ICszMSw5MyBAQAogCiAjaWYg
RU5BQkxFKFdFQl9BVVRITikKIAorI2luY2x1ZGUgIlB1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmgi
CisKIG5hbWVzcGFjZSBmaWRvIHsKIAorZW51bSBjbGFzcyBQcm90b2NvbFZlcnNpb24geworICAg
IGtDdGFwLAorICAgIGtVMmYsCisgICAga1Vua25vd24sCit9OworCisvLyBMZW5ndGggb2YgdGhl
IFNIQS0yNTYgaGFzaCBvZiB0aGUgUlAgSUQgYXNzc29jaWF0ZWQgd2l0aCB0aGUgY3JlZGVudGlh
bDoKKy8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jc2VjLWF1dGhlbnRpY2F0b3It
ZGF0YQorY29uc3RleHByIHNpemVfdCBrUnBJZEhhc2hMZW5ndGggPSAzMjsKKworLy8gTGVuZ3Ro
IG9mIHRoZSBmbGFnczoKKy8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jc2VjLWF1
dGhlbnRpY2F0b3ItZGF0YQorY29uc3RleHByIHNpemVfdCBrRmxhZ3NMZW5ndGggPSAxOworCisv
LyBMZW5ndGggb2YgdGhlIHNpZ25hdHVyZSBjb3VudGVyLCAzMi1iaXQgdW5zaWduZWQgYmlnLWVu
ZGlhbiBpbnRlZ2VyOgorLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXV0
aGVudGljYXRvci1kYXRhCitjb25zdGV4cHIgc2l6ZV90IGtTaWduQ291bnRlckxlbmd0aCA9IDQ7
CisKKy8vIExlbmd0aCBvZiB0aGUgQUFHVUlEIG9mIHRoZSBhdXRoZW50aWNhdG9yOgorLy8gaHR0
cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXR0ZXN0ZWQtY3JlZGVudGlhbC1kYXRh
Citjb25zdGV4cHIgc2l6ZV90IGtBYWd1aWRMZW5ndGggPSAxNjsKKworLy8gTGVuZ3RoIG9mIHRo
ZSBieXRlIGxlbmd0aCBMIG9mIENyZWRlbnRpYWwgSUQsIDE2LWJpdCB1bnNpZ25lZCBiaWctZW5k
aWFuCisvLyBpbnRlZ2VyOiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI3NlYy1hdHRl
c3RlZC1jcmVkZW50aWFsLWRhdGEKK2NvbnN0ZXhwciBzaXplX3Qga0NyZWRlbnRpYWxJZExlbmd0
aExlbmd0aCA9IDI7CisKKy8vIENUQVAgcHJvdG9jb2wgZGV2aWNlIHJlc3BvbnNlIGNvZGUsIGFz
IHNwZWNpZmllZCBpbgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIu
MC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAt
cHMtMjAxNzA5MjcuaHRtbCNlcnJvci1yZXNwb25zZXMKK2VudW0gY2xhc3MgQ3RhcERldmljZVJl
c3BvbnNlQ29kZSA6IHVpbnQ4X3QgeworICAgIGtTdWNjZXNzID0gMHgwMCwKKyAgICBrQ3RhcDFF
cnJJbnZhbGlkQ29tbWFuZCA9IDB4MDEsCisgICAga0N0YXAxRXJySW52YWxpZFBhcmFtZXRlciA9
IDB4MDIsCisgICAga0N0YXAxRXJySW52YWxpZExlbmd0aCA9IDB4MDMsCisgICAga0N0YXAxRXJy
SW52YWxpZFNlcSA9IDB4MDQsCisgICAga0N0YXAxRXJyVGltZW91dCA9IDB4MDUsCisgICAga0N0
YXAxRXJyQ2hhbm5lbEJ1c3kgPSAweDA2LAorICAgIGtDdGFwMUVyckxvY2tSZXF1aXJlZCA9IDB4
MEEsCisgICAga0N0YXAxRXJySW52YWxpZENoYW5uZWwgPSAweDBCLAorICAgIGtDdGFwMkVyckNC
T1JQYXJzaW5nID0gMHgxMCwKKyAgICBrQ3RhcDJFcnJVbmV4cGVjdGVkVHlwZSA9IDB4MTEsCisg
ICAga0N0YXAyRXJySW52YWxpZENCT1IgPSAweDEyLAorICAgIGtDdGFwMkVyckludmFsaWRDQk9S
VHlwZSA9IDB4MTMsCisgICAga0N0YXAyRXJyTWlzc2luZ1BhcmFtZXRlciA9IDB4MTQsCisgICAg
a0N0YXAyRXJyTGltaXRFeGNlZWRlZCA9IDB4MTUsCisgICAga0N0YXAyRXJyVW5zdXBwb3J0ZWRF
eHRlbnNpb24gPSAweDE2LAorICAgIGtDdGFwMkVyclRvb01hbnlFbGVtZW50cyA9IDB4MTcsCisg
ICAga0N0YXAyRXJyRXh0ZW5zaW9uTm90U3VwcG9ydGVkID0gMHgxOCwKKyAgICBrQ3RhcDJFcnJD
cmVkZW50aWFsRXhjbHVkZWQgPSAweDE5LAorICAgIGtDdGFwMkVyclByb2Nlc3NzaW5nID0gMHgy
MSwKKyAgICBrQ3RhcDJFcnJJbnZhbGlkQ3JlZGVudGlhbCA9IDB4MjIsCisgICAga0N0YXAyRXJy
VXNlckFjdGlvblBlbmRpbmcgPSAweDIzLAorICAgIGtDdGFwMkVyck9wZXJhdGlvblBlbmRpbmcg
PSAweDI0LAorICAgIGtDdGFwMkVyck5vT3BlcmF0aW9ucyA9IDB4MjUsCisgICAga0N0YXAyRXJy
VW5zdXBwb3J0ZWRBbGdvcml0aG1zID0gMHgyNiwKKyAgICBrQ3RhcDJFcnJPcGVyYXRpb25EZW5p
ZWQgPSAweDI3LAorICAgIGtDdGFwMkVycktleVN0b3JlRnVsbCA9IDB4MjgsCisgICAga0N0YXAy
RXJyTm90QnVzeSA9IDB4MjksCisgICAga0N0YXAyRXJyTm9PcGVyYXRpb25QZW5kaW5nID0gMHgy
QSwKKyAgICBrQ3RhcDJFcnJVbnN1cHBvcnRlZE9wdGlvbiA9IDB4MkIsCisgICAga0N0YXAyRXJy
SW52YWxpZE9wdGlvbiA9IDB4MkMsCisgICAga0N0YXAyRXJyS2VlcEFsaXZlQ2FuY2VsID0gMHgy
RCwKKyAgICBrQ3RhcDJFcnJOb0NyZWRlbnRpYWxzID0gMHgyRSwKKyAgICBrQ3RhcDJFcnJVc2Vy
QWN0aW9uVGltZW91dCA9IDB4MkYsCisgICAga0N0YXAyRXJyTm90QWxsb3dlZCA9IDB4MzAsCisg
ICAga0N0YXAyRXJyUGluSW52YWxpZCA9IDB4MzEsCisgICAga0N0YXAyRXJyUGluQmxvY2tlZCA9
IDB4MzIsCisgICAga0N0YXAyRXJyUGluQXV0aEludmFsaWQgPSAweDMzLAorICAgIGtDdGFwMkVy
clBpbkF1dGhCbG9ja2VkID0gMHgzNCwKKyAgICBrQ3RhcDJFcnJQaW5Ob3RTZXQgPSAweDM1LAor
ICAgIGtDdGFwMkVyclBpblJlcXVpcmVkID0gMHgzNiwKKyAgICBrQ3RhcDJFcnJQaW5Qb2xpY3lW
aW9sYXRpb24gPSAweDM3LAorICAgIGtDdGFwMkVyclBpblRva2VuRXhwaXJlZCA9IDB4MzgsCisg
ICAga0N0YXAyRXJyUmVxdWVzdFRvb0xhcmdlID0gMHgzOSwKKyAgICBrQ3RhcDJFcnJPdGhlciA9
IDB4N0YsCisgICAga0N0YXAyRXJyU3BlY0xhc3QgPSAweERGLAorICAgIGtDdGFwMkVyckV4dGVu
c2lvbkZpcnN0ID0gMHhFMCwKKyAgICBrQ3RhcDJFcnJFeHRlbnNpb25MYXN0ID0gMHhFRiwKKyAg
ICBrQ3RhcDJFcnJWZW5kb3JGaXJzdCA9IDB4RjAsCisgICAga0N0YXAyRXJyVmVuZG9yTGFzdCA9
IDB4RkYKK307CisKK2Jvb2wgaXNDdGFwRGV2aWNlUmVzcG9uc2VDb2RlKEN0YXBEZXZpY2VSZXNw
b25zZUNvZGUpOworCiAvLyBDb21tYW5kcyBzdXBwb3J0ZWQgYnkgQ1RBUEhJRCBkZXZpY2UgYXMg
c3BlY2lmaWVkIGluCiAvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4w
LXBzLTIwMTcwOTI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1w
cy0yMDE3MDkyNy5odG1sI2N0YXBoaWQtY29tbWFuZHMKIGVudW0gY2xhc3MgRmlkb0hpZERldmlj
ZUNvbW1hbmQgOiB1aW50OF90IHsKQEAgLTQ3LDcgKzEzMiwyNCBAQCBlbnVtIGNsYXNzIEZpZG9I
aWREZXZpY2VDb21tYW5kIDogdWludDhfdCB7CiAgICAga0xvY2sgPSAweDA0LAogfTsKIAotYm9v
bCBpc0ZpZG9IaWREZXZpY2VDb21tYW5kKEZpZG9IaWREZXZpY2VDb21tYW5kIGNtZCk7Citib29s
IGlzRmlkb0hpZERldmljZUNvbW1hbmQoRmlkb0hpZERldmljZUNvbW1hbmQpOworCisvLyBTdHJp
bmcga2V5IHZhbHVlcyBmb3IgQ1RBUCByZXF1ZXN0IG9wdGlvbmFsIHBhcmFtZXRlcnMgYW5kCisv
LyBBdXRoZW50aWNhdG9yR2V0SW5mbyByZXNwb25zZS4KK2NvbnN0IGNoYXIga1Jlc2lkZW50S2V5
TWFwS2V5W10gPSAicmsiOworY29uc3QgY2hhciBrVXNlclZlcmlmaWNhdGlvbk1hcEtleVtdID0g
InV2IjsKK2NvbnN0IGNoYXIga1VzZXJQcmVzZW5jZU1hcEtleVtdID0gInVwIjsKK2NvbnN0IGNo
YXIga0NsaWVudFBpbk1hcEtleVtdID0gImNsaWVudFBpbiI7Citjb25zdCBjaGFyIGtQbGF0Zm9y
bURldmljZU1hcEtleVtdID0gInBsYXQiOworY29uc3QgY2hhciBrRW50aXR5SWRNYXBLZXlbXSA9
ICJpZCI7Citjb25zdCBjaGFyIGtFbnRpdHlOYW1lTWFwS2V5W10gPSAibmFtZSI7Citjb25zdCBj
aGFyIGtEaXNwbGF5TmFtZU1hcEtleVtdID0gImRpc3BsYXlOYW1lIjsKK2NvbnN0IGNoYXIga0lj
b25VcmxNYXBLZXlbXSA9ICJpY29uIjsKK2NvbnN0IGNoYXIga0NyZWRlbnRpYWxUeXBlTWFwS2V5
W10gPSAidHlwZSI7Citjb25zdCBjaGFyIGtDcmVkZW50aWFsQWxnb3JpdGhtTWFwS2V5W10gPSAi
YWxnIjsKKy8vIEtleXMgZm9yIHN0b3JpbmcgY3JlZGVudGlhbCBkZXNjcmlwdG9yIGluZm9ybWF0
aW9uIGluIENCT1IgbWFwLgorY29uc3QgY2hhciBrQ3JlZGVudGlhbElkS2V5W10gPSAiaWQiOwor
Y29uc3QgY2hhciBrQ3JlZGVudGlhbFR5cGVLZXlbXSA9ICJ0eXBlIjsKIAogLy8gSElEIHRyYW5z
cG9ydCBzcGVjaWZpYyBjb25zdGFudHMuCiBjb25zdCBzaXplX3Qga0hpZFBhY2tldFNpemUgPSA2
NDsKQEAgLTYzLDYgKzE2NSwzNCBAQCBjb25zdCB1aW50OF90IGtIaWRNYXhMb2NrU2Vjb25kcyA9
IDEwOwogLy8gTWVzc2FnZXMgYXJlIGxpbWl0ZWQgdG8gYW4gaW5pdGlhdGlvbiBwYWNrZXQgYW5k
IDEyOCBjb250aW51YXRpb24gcGFja2V0cy4KIGNvbnN0IHNpemVfdCBrSGlkTWF4TWVzc2FnZVNp
emUgPSA3NjA5OwogCisvLyBBdXRoZW50aWNhdG9yIEFQSSBjb21tYW5kcyBzdXBwb3J0ZWQgYnkg
Q1RBUCBkZXZpY2VzLCBhcyBzcGVjaWZpZWQgaW4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9y
Zy9zcGVjcy9maWRvLXYyLjAtcmQtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRv
ci1wcm90b2NvbC12Mi4wLXJkLTIwMTcwOTI3Lmh0bWwjYXV0aGVudGljYXRvci1hcGkKK2VudW0g
Y2xhc3MgQ3RhcFJlcXVlc3RDb21tYW5kIDogdWludDhfdCB7CisgICAga0F1dGhlbnRpY2F0b3JN
YWtlQ3JlZGVudGlhbCA9IDB4MDEsCisgICAga0F1dGhlbnRpY2F0b3JHZXRBc3NlcnRpb24gPSAw
eDAyLAorICAgIGtBdXRoZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbiA9IDB4MDgsCisgICAga0F1
dGhlbnRpY2F0b3JHZXRJbmZvID0gMHgwNCwKKyAgICBrQXV0aGVudGljYXRvckNsaWVudFBpbiA9
IDB4MDYsCisgICAga0F1dGhlbnRpY2F0b3JSZXNldCA9IDB4MDcsCit9OworCisvLyBTdHJpbmcg
a2V5IHZhbHVlcyBmb3IgYXR0ZXN0YXRpb24gb2JqZWN0IGFzIGEgcmVzcG9uc2UgdG8gTWFrZUNy
ZWRlbnRpYWwKKy8vIHJlcXVlc3QuCitjb25zdCBjaGFyIGtGb3JtYXRLZXlbXSA9ICJmbXQiOwor
Y29uc3QgY2hhciBrQXR0ZXN0YXRpb25TdGF0ZW1lbnRLZXlbXSA9ICJhdHRTdG10IjsKK2NvbnN0
IGNoYXIga0F1dGhEYXRhS2V5W10gPSAiYXV0aERhdGEiOworY29uc3QgY2hhciBrTm9uZUF0dGVz
dGF0aW9uVmFsdWVbXSA9ICJub25lIjsKKworLy8gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHB1
YmxpYyBrZXkgY3JlZGVudGlhbCBlbnVtLgorLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmF1
dGhuLyNjcmVkZW50aWFsVHlwZQorY29uc3QgY2hhciBrUHVibGljS2V5W10gPSAicHVibGljLWtl
eSI7CisKK2NvbnN0IGNoYXIqIHB1YmxpY0tleUNyZWRlbnRpYWxUeXBlVG9TdHJpbmcoV2ViQ29y
ZTo6UHVibGljS2V5Q3JlZGVudGlhbFR5cGUpOworCisvLyBGSVhNRTogQWRkIHVybCB0byB0aGUg
b2ZmaWNpYWwgc3BlYyBvbmNlIGl0J3Mgc3RhbmRhcmRpemVkLgorY29uc3QgY2hhciBrQ3RhcDJW
ZXJzaW9uW10gPSAiRklET18yXzAiOworY29uc3QgY2hhciBrVTJmVmVyc2lvbltdID0gIlUyRl9W
MiI7CisKIH0gLy8gbmFtZXNwYWNlIGZpZG8KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CmluZGV4IGNhMjZkNWFkZGJkOGI4MjBiM2JlNzVmMGIyNjcxMTY3MWE4NWM2
YTcuLmY4NGE2OWUzZTdjNzYyNDc1NzZkNTIzNDk1NzhjY2NhZjU3Mzc4MzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CkBAIC0yNTksNiArMjU5LDEwIEBAIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVu
dGlhbC5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SUmVhZGVyLmNwcAogTW9kdWxlcy93
ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SV3Jp
dGVyLmNwcAorTW9kdWxlcy93ZWJhdXRobi9maWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9u
c2UuY3BwCitNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlv
bnMuY3BwCitNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAK
K01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKIE1vZHVs
ZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmNwcAogTW9kdWxlcy93ZWJhdXRobi9maWRv
L0ZpZG9IaWRNZXNzYWdlLmNwcAogTW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9IaWRQYWNrZXQu
Y3BwCkBAIC0zMTYyLDYgKzMxNjYsNyBAQCBKU1RyZWVXYWxrZXIuY3BwCiBKU1VJRXZlbnQuY3Bw
CiBKU1VJRXZlbnRJbml0LmNwcAogSlNVUkxTZWFyY2hQYXJhbXMuY3BwCitKU1VzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudC5jcHAKIEpTVlJEaXNwbGF5LmNwcAogSlNWUkRpc3BsYXlDYXBhYmls
aXRpZXMuY3BwCiBKU1ZSRGlzcGxheUV2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDExY2IwZTdjNTY5ZjUwYjZiYWFh
YWI1ZDcxOTgyNWNkNmUxMGE1YjIuLjY2NzIyNmU2ZjA5MjA3M2ZiYjQ1NDg4NWU3MGU1ODcyYjM2
ODhkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE3NTMsNiArMTc1MywxMiBAQAogCQk1NzIxQTk4NzFFQ0U1M0IxMDA4MTI5
NUEgLyogQ3J5cHRvRGlnZXN0QWxnb3JpdGhtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzIxQTk4NjFFQ0U1M0IxMDA4MTI5NUEgLyogQ3J5cHRvRGln
ZXN0QWxnb3JpdGhtLmggKi87IH07CiAJCTU3MjFBOThCMUVDRTU3MDQwMDgxMjk1QSAvKiBDcnlw
dG9BbGdvcml0aG1Sc2FQc3NQYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3MjFBOTg4MUVDRTU3MDQwMDgxMjk1QSAvKiBDcnlwdG9BbGdvcml0
aG1Sc2FQc3NQYXJhbXMuaCAqLzsgfTsKIAkJNTcyQTdGMjExQzZFNTcxOTAwOUM2MTQ5IC8qIFNp
bXVsYXRlZENsaWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzJBN0YyMDFDNkU1NzE5MDA5QzYxNDkgLyogU2ltdWxhdGVkQ2xpY2suaCAqLzsgfTsK
KwkJNTcyQjQwMUYyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkI0MDFEMjE3
NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTcyQjQwMkMyMTc2OTAyMDAwMEFE
NDNFIC8qIEpTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJCNDAyQTIxNzY5MDFGMDAwQUQ0M0UgLyog
SlNVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCAqLzsgfTsKKwkJNTcyQjQwMzYyMTc2QTky
MjAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwMjMyMTc2OEQ4NTAwMEFENDNF
IC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU3MkI0MDNBMjE3NzI1ODEwMDBBRDQzRSAvKiBE
ZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTcyQjQwMzcyMTc3MjU2QzAwMEFENDNFIC8qIERldmljZVJlc3BvbnNl
Q29udmVydGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJNTcyQjQwNDAyMTc4MDE3MTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
NzJCNDAzRTIxNzgwMTcwMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1NzJC
NDA0MjIxNzgxMTRBMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwM0MyMTc3
RkI2MTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NzMwM0JCOTIwMDZDNkVF
MDAzNTU5NjUgLyogQ0JPUlZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzMwM0JCNDIwMDZDNkVEMDAzNTU5NjUgLyogQ0JPUlZhbHVlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTczMDNCQkEy
MDA2QzZFRTAwMzU1OTY1IC8qIENCT1JXcml0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzAzQkI1MjAwNkM2RUQwMDM1NTk2NSAvKiBDQk9SV3Jp
dGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTczMDNCQkIyMDA2QzZFRTAwMzU1OTY1IC8qIENCT1JCaW5hcnkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MzAzQkI2MjAwNkM2RUQwMDM1NTk2NSAv
KiBDQk9SQmluYXJ5LmggKi87IH07CkBAIC04NTcyLDYgKzg1NzgsMTggQEAKIAkJNTcyMUE5OEEx
RUNFNTcwNDAwODEyOTVBIC8qIFJzYVBzc1BhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUnNhUHNzUGFyYW1zLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyQTdGMjAxQzZFNTcxOTAwOUM2MTQ5
IC8qIFNpbXVsYXRlZENsaWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNp
bXVsYXRlZENsaWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkE3RjIyMUM2
RTVBNjYwMDlDNjE0OSAvKiBTaW11bGF0ZWRDbGljay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTaW11bGF0ZWRDbGljay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTU3MkI0MDFEMjE3NTdBNjQwMDBBRDQzRSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVy
dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZVJlcXVlc3RDb252ZXJ0ZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMUUyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJl
cXVlc3RDb252ZXJ0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlUmVxdWVzdENvbnZl
cnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDIzMjE3NjhEODUw
MDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTU3MkI0MDI1MjE3NjhEODUwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU3MkI0MDJBMjE3NjkwMUYwMDBBRDQzRSAvKiBKU1VzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1NzJCNDAyQjIxNzY5MDFGMDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNVc2VyVmVy
aWZpY2F0aW9uUmVxdWlyZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
NzJCNDAzNzIxNzcyNTZDMDAwQUQ0M0UgLyogRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwMzgyMTc3MjU2QzAwMEFENDNFIC8q
IERldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTcyQjQwM0IyMTc3RkI2MDAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0
aGVudGljYXRvckdldEluZm9SZXNwb25zZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTU3MkI0MDNDMjE3N0ZCNjEwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3Bv
bnNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwM0QyMTc4
MDE2RjAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcyQjQwM0UyMTc4MDE3MDAw
MEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAzQkI0MjAwNkM2RUQwMDM1NTk2NSAvKiBDQk9S
VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0JPUlZhbHVlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAzQkI1MjAwNkM2RUQwMDM1NTk2NSAvKiBD
Qk9SV3JpdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENCT1JXcml0ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQjYyMDA2QzZFRDAwMzU1OTY1
IC8qIENCT1JCaW5hcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0JPUkJp
bmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkxMDEsNiArMTkxMTksMTQg
QEAKIAkJNTc4QTRCRkEyMTY2QUUwMDAwRDA4RjM0IC8qIGZpZG8gKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTU3MkI0MDNCMjE3N0ZCNjAwMDBBRDQzRSAv
KiBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlLmNwcCAqLywKKwkJCQk1NzJCNDAzQzIxNzdG
QjYxMDAwQUQ0M0UgLyogQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZS5oICovLAorCQkJCTU3
MkI0MDNEMjE3ODAxNkYwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5j
cHAgKi8sCisJCQkJNTcyQjQwM0UyMTc4MDE3MDAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zLmggKi8sCisJCQkJNTcyQjQwMUUyMTc1N0E2NDAwMEFENDNFIC8qIERldmlj
ZVJlcXVlc3RDb252ZXJ0ZXIuY3BwICovLAorCQkJCTU3MkI0MDFEMjE3NTdBNjQwMDBBRDQzRSAv
KiBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmggKi8sCisJCQkJNTcyQjQwMzgyMTc3MjU2QzAwMEFE
NDNFIC8qIERldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcCAqLywKKwkJCQk1NzJCNDAzNzIxNzcy
NTZDMDAwQUQ0M0UgLyogRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCAqLywKIAkJCQk1N0JBRjI4
NzIxNjdEMkY3MDA4RTk1NEUgLyogRmlkb0NvbnN0YW50cy5jcHAgKi8sCiAJCQkJNTc4QTRDMEIy
MTY3RDI5NjAwRDA4RjM0IC8qIEZpZG9Db25zdGFudHMuaCAqLywKIAkJCQk1NzhBNEMwODIxNjdE
Mjk1MDBEMDhGMzQgLyogRmlkb0hpZE1lc3NhZ2UuY3BwICovLApAQCAtMTkxODAsNiArMTkyMDYs
OCBAQAogCQkJCTU3MzAzQzA4MjAwOTk4RjgwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFs
UmVxdWVzdE9wdGlvbnMuaWRsICovLAogCQkJCTU3MzAzQkVBMjAwOTdGNDAwMDM1NTk2NSAvKiBQ
dWJsaWNLZXlDcmVkZW50aWFsVHlwZS5oICovLAogCQkJCTU3MzAzQkYwMjAwOTg0NjEwMDM1NTk2
NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5pZGwgKi8sCisJCQkJNTcyQjQwMjMyMTc2OEQ4
NTAwMEFENDNFIC8qIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oICovLAorCQkJCTU3MkI0
MDI1MjE3NjhEODUwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaWRsICov
LAogCQkJKTsKIAkJCXBhdGggPSB3ZWJhdXRobjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0xOTIwNSw2ICsxOTIzMyw4IEBACiAJCQkJNTczMDNDMEMyMDA5OUM3NTAwMzU1OTY1IC8q
IEpTUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmggKi8sCiAJCQkJNTczMDNCRkEy
MDA5OTEzNTAwMzU1OTY1IC8qIEpTUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuY3BwICovLAogCQkJ
CTU3MzAzQkY5MjAwOTkxMzQwMDM1NTk2NSAvKiBKU1B1YmxpY0tleUNyZWRlbnRpYWxUeXBlLmgg
Ki8sCisJCQkJNTcyQjQwMkIyMTc2OTAxRjAwMEFENDNFIC8qIEpTVXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50LmNwcCAqLywKKwkJCQk1NzJCNDAyQTIxNzY5MDFGMDAwQUQ0M0UgLyogSlNVc2Vy
VmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gV2ViQXV0aE47
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjc2OTAsNyArMjc3MjAsOSBAQAogCQkJ
CTU3MzAzQzFGMjAwOUFCNDIwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNw
b25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNDNDYyMDEwNUQyRjAwMzU1OTY1IC8qIEF1
dGhlbnRpY2F0b3JDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc2MDgyNzIyMDIx
NUE1NTAwMTE2Njc4IC8qIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNTcyQjQwNDIyMTc4MTE0QTAwMEFENDNFIC8qIEF1dGhlbnRpY2F0b3JHZXRJ
bmZvUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQkQyMjAwODdBODMwMDM1NTk2
NSAvKiBBdXRoZW50aWNhdG9yUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3MkI0MDQw
MjE3ODAxNzEwMDBBRDQzRSAvKiBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTdEQ0VEOTAyMTQ4N0ZGNzAwMTZCODQ3IC8qIEF1dGhlbnRpY2F0b3JU
cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MDE5MjBFMTMyRUJGMkUwMDhCRkU1NSAv
KiBBdXRvY2FwaXRhbGl6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVBN0FBNDMxMzJGMEVDQzAw
RDNBM0MyIC8qIEF1dG9jYXBpdGFsaXplVHlwZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjgyMDgs
NiArMjgyNDAsOCBAQAogCQkJCTU5QThGMUQ2MTFBNjk1MTMwMDFBQzM0QSAvKiBEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5MEUxQjQ5MTFFNEVGNEIw
MDY5Rjc4NCAvKiBEZXZpY2VPcmllbnRhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5
QTg1RUE0MTE5RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1NzJCNDAxRjIxNzU3QTY0MDAwQUQ0M0UgLyogRGV2aWNlUmVxdWVzdENv
bnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcyQjQwM0EyMTc3MjU4MTAwMEFENDNFIC8q
IERldmljZVJlc3BvbnNlQ29udmVydGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjc3MjVGRDFB
NUIzQUQ5MDAzQzI0REQgLyogREZBLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0Q5RjU2NjFBQTBG
NzNDMDBEQTQ1RkYgLyogREZBQnl0ZWNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDlGNTY3
MUFBMEY3NDIwMERBNDVGRiAvKiBERkFCeXRlY29kZUNvbXBpbGVyLmggaW4gSGVhZGVycyAqLywK
QEAgLTI5NjkxLDYgKzI5NzI1LDcgQEAKIAkJCQk0NjUzMDdEMDFEQjZFRTQ4MDBFNDEzN0MgLyog
SlNVSUV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M3M0ZCMTIxOTFFRjZGNDAwN0RF
MDYxIC8qIEpTVXNlck1lc3NhZ2VIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzczRkIw
RDE5MUVGNUE4MDA3REUwNjEgLyogSlNVc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1NzJCNDAyQzIxNzY5MDIwMDAwQUQ0M0UgLyogSlNVc2VyVmVyaWZp
Y2F0aW9uUmVxdWlyZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1Qzc3MDkzMTAwRDNDQTgw
MDVCQTI2NyAvKiBKU1ZhbGlkaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFOEVGMDRC
MTcxQzkwMTQwMDlCNDhDMyAvKiBKU1ZpZGVvVHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJF
OEVGMDREMTcxQzkwMTQwMDlCNDhDMyAvKiBKU1ZpZGVvVHJhY2tMaXN0LmggaW4gSGVhZGVycyAq
LywKQEAgLTMxMzQyLDYgKzMxMzc3LDcgQEAKIAkJCQlCQzhCRjE1MTEwNTgxM0JGMDBBNDBBMDcg
LyogVXNlclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOEJGMTVBMTA1ODE0MTgw
MEE0MEEwNyAvKiBVc2VyU3R5bGVTaGVldFR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RG
MzE3QzExRjhENjgzMDAzQzVCRjggLyogVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTU3MkI0MDM2MjE3NkE5MjIwMDBBRDQzRSAvKiBVc2VyVmVyaWZpY2F0
aW9uUmVxdWlyZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUYxNEU2MUVBQUM1OUIwMDI2
RUVBQSAvKiBVVElSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUZBRkJGMTkxNUE1RkE3
NDAwMDgzQTIwIC8qIFVUSVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDNDVCOEUx
REMyQjY4QTAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJibGUuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc4OWRmMDY0
YTE4ZDAwMjBjYWJhMzBhNjM1MzVlMGRiZmI5Mzk0MjMuLmZhOTIxNWY2MDE2NjRkNzE5MjllN2Qz
ZmExODA2YWExNjc1YWNkNzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOC0xMC0yMiAgSmlld2VuIFRhbiAgPGpp
ZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRoTl0gSW1wb3J0IENUQVAgZGV2
aWNlIHJlcXVlc3QvcmVzcG9uc2UgY29udmVydGVycyBmcm9tIENocm9taXVtCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA3ODQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ1NDYwMzMzPgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdo
YW0uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JP
UlZhbHVlVGVzdC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcDogQWRkZWQu
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvQ3RhcFJlc3BvbnNlVGVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6Z2V0VGVzdENvcnJ1cHRlZFNpZ25SZXNwb25zZSk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpnZXRUZXN0Q3JlZGVudGlhbFJhd0lkQnl0ZXMpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6Y29udmVydFRvVmVjdG9yKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaDog
QWRkZWQuCisKIDIwMTgtMTEtMDEgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdh
bGlhLmNvbT4KIAogICAgICAgICBGaXggYnVpbGQgd2l0aCBWSURFTyBhbmQgV0VCX0FVRElPIGRp
c2FibGVkCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ1ZjliNzcyMDgxNmRiZGRkNmMxMjVh
YjRjNTdiZThkM2I5ZDMxNWIuLjAxNzM4ZWY0ODc5Yjc0YTg2ZDVmMjA4YTYwZjBhZGE0MjA0ZGZk
MzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDYsNiArMjQ2LDggQEAKIAkJNTcxNEVD
QkIxQ0E4QkZFNDAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFt
ZS5odG1sICovOyB9OwogCQk1NzE0RUNCRDFDQThDMjJBMDAwNTFBQzggLyogRG93bmxvYWRSZXF1
ZXN0T3JpZ2luYWxVUkwyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQkMxQ0E4QzIxODAwMDUxQUM4IC8qIERvd25sb2FkUmVx
dWVzdE9yaWdpbmFsVVJMMi5odG1sICovOyB9OwogCQk1NzFGN0ZEMDFGMjk2MUZCMDA5NDY2NDgg
LyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMt
d2FsIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3MUY3RkNGMUYyOTYxRTEwMDk0NjY0OCAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNr
d2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwgKi87IH07CisJCTU3MkI0MDM0MjE3NjlBODgw
MDBBRDQzRSAvKiBDdGFwUmVxdWVzdFRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyQjQwMzMyMTc2OUE4ODAwMEFENDNFIC8qIEN0YXBSZXF1
ZXN0VGVzdC5jcHAgKi87IH07CisJCTU3MkI0MDQ0MjE3ODFCNDMwMDBBRDQzRSAvKiBDdGFwUmVz
cG9uc2VUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU3MkI0MDQzMjE3ODFCNDIwMDBBRDQzRSAvKiBDdGFwUmVzcG9uc2VUZXN0LmNwcCAqLzsg
fTsKIAkJNTczMDNCQzkyMDA4MjREMzAwMzU1OTY1IC8qIENCT1JWYWx1ZVRlc3QuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQUMyMDA2QzU2
MDAwMzU1OTY1IC8qIENCT1JWYWx1ZVRlc3QuY3BwICovOyB9OwogCQk1NzMwM0JDQTIwMDgyQzAx
MDAzNTU5NjUgLyogQ0JPUldyaXRlclRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTczMDNCQUIyMDA2QzU1NDAwMzU1OTY1IC8qIENCT1JXcml0
ZXJUZXN0LmNwcCAqLzsgfTsKIAkJNTczMDNCQ0IyMDA4Mzc2NTAwMzU1OTY1IC8qIENCT1JSZWFk
ZXJUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3MzAzQkMyMjAwNzFFMjIwMDM1NTk2NSAvKiBDQk9SUmVhZGVyVGVzdC5jcHAgKi87IH07CkBA
IC0xNTUxLDYgKzE1NTMsOSBAQAogCQk1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93bmxv
YWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NzE0RUNCQzFDQThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0
T3JpZ2luYWxVUkwyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJl
cXVlc3RPcmlnaW5hbFVSTDIuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcx
RjdGQ0YxRjI5NjFFMTAwOTQ2NjQ4IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJk
Q29tcGF0aWJpbGl0eS5zcWxpdGUzLXdhbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCU3RydWN0dXJlZENsb25l
QmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtd2FsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTcyQjQwMzMyMTc2OUE4ODAwMEFENDNFIC8qIEN0YXBSZXF1ZXN0VGVzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdGFwUmVxdWVzdFRlc3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDAzNTIxNzZBMDI5MDAwQUQ0M0Ug
LyogRmlkb1Rlc3REYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpZG9UZXN0RGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1NzJCNDA0MzIxNzgxQjQyMDAwQUQ0M0UgLyogQ3RhcFJl
c3BvbnNlVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdGFw
UmVzcG9uc2VUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTczMDNCQUIy
MDA2QzU1NDAwMzU1OTY1IC8qIENCT1JXcml0ZXJUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENCT1JXcml0ZXJUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTczMDNCQUMyMDA2QzU2MDAwMzU1OTY1IC8qIENCT1JWYWx1ZVRlc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0JPUlZhbHVlVGVzdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MzAzQkMyMjAwNzFFMjIwMDM1NTk2NSAv
KiBDQk9SUmVhZGVyVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDQk9SUmVhZGVyVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTMy
LDExICsyNTM3LDE0IEBACiAJCQkJMUM5RUI4NDAxRTM4MERBMTAwNUM2NDQyIC8qIENvbXBsZXhU
ZXh0Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJN0NCMTg0QzQxQUEzRjIxMDAwNjZFREZEIC8qIENv
bnRlbnRFeHRlbnNpb25zLmNwcCAqLywKIAkJCQlDRDU0NTFFOTE5RTQxRjlEMDAxNjkzNkYgLyog
Q1NTUGFyc2VyLmNwcCAqLywKKwkJCQk1NzJCNDAzMzIxNzY5QTg4MDAwQUQ0M0UgLyogQ3RhcFJl
cXVlc3RUZXN0LmNwcCAqLywKKwkJCQk1NzJCNDA0MzIxNzgxQjQyMDAwQUQ0M0UgLyogQ3RhcFJl
c3BvbnNlVGVzdC5jcHAgKi8sCiAJCQkJMjYwQkE1NzgxQjFEMkU3QjAwNEZBMDdDIC8qIERGQUNv
bWJpbmVyLmNwcCAqLywKIAkJCQkyNjBCQTU3QTFCMUQyRUUyMDA0RkEwN0MgLyogREZBSGVscGVy
cy5oICovLAogCQkJCTI2RjZFMUVGMUFEQzc0OUIwMERFNjk2QiAvKiBERkFNaW5pbWl6ZXIuY3Bw
ICovLAogCQkJCTMxNTExODBGMURCMUFERDUwMDE3NjMwNCAvKiBFeHRlbmRlZENvbG9yLmNwcCAq
LywKIAkJCQk1Nzk2NTFFNjIxNkJGRDUzMDA2RUJGRTUgLyogRmlkb0hpZE1lc3NhZ2VUZXN0LmNw
cCAqLywKKwkJCQk1NzJCNDAzNTIxNzZBMDI5MDAwQUQ0M0UgLyogRmlkb1Rlc3REYXRhLmggKi8s
CiAJCQkJN0EzMkQ3NDkxRjAyMTUxNTAwMTYyQzQ0IC8qIEZpbGVNb25pdG9yLmNwcCAqLywKIAkJ
CQk0MTk3M0I1QTFBRjIyODZBMDA2QzdCMzYgLyogRmlsZVN5c3RlbS5jcHAgKi8sCiAJCQkJN0E5
MDlBNzAxRDg3NzQ3NTAwN0UxMEY4IC8qIEZsb2F0UG9pbnQuY3BwICovLApAQCAtMzc2Nyw2ICsz
Nzc1LDggQEAKIAkJCQk3Q0NFN0VBQzFBNDExQTM0MDA0NDdDNEMgLyogQ291bnRlcnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0FFQUQ0N0YxRTIwMTE2QzAwNDE2RUZFIC8qIENyb3NzUGFydGl0
aW9uRmlsZVNjaGVtZUFjY2Vzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RURCMUE0MTFB
OTIwMDQ0N0M0QyAvKiBDU1NQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTcyQjQwMzQy
MTc2OUE4ODAwMEFENDNFIC8qIEN0YXBSZXF1ZXN0VGVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk1NzJCNDA0NDIxNzgxQjQzMDAwQUQ0M0UgLyogQ3RhcFJlc3BvbnNlVGVzdC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3QUM3QjU3MDIwRDlCQTVCMDAyQzA5QTAgLyogQ3VzdG9tQnVuZGxlT2Jq
ZWN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FDN0I1NkQyMEQ5NzY5RjAwMkMwOUEwIC8qIEN1
c3RvbUJ1bmRsZVBhcmFtZXRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjI5MUE0MTFC
MTAwMDQ0N0M0QyAvKiBDdXN0b21Qcm90b2NvbHNJbnZhbGlkU2NoZW1lLm1tIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUlZh
bHVlVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ0JPUlZhbHVl
VGVzdC5jcHAKaW5kZXggYTJkNmI4OWYyNzI4ZmY1ZTg4OTdkMjQ0YjBjYjU4MzlmOTM1ZWNlMS4u
ZmY1MjBkYzdhNTk0OTRjNWEzZDZkNjE2ZWM1ZGY1YTA0ZGM3YzdkMSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NCT1JWYWx1ZVRlc3QuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DQk9SVmFsdWVUZXN0LmNwcApAQCAtMTQ4
LDYgKzE0OCwxNyBAQCBURVNUKENCT1JWYWx1ZVRlc3QsIENvbnN0cnVjdFNpbXBsZVZhbHVlKQog
ICAgIEVYUEVDVF9UUlVFKENCT1JWYWx1ZTo6U2ltcGxlVmFsdWU6OlVuZGVmaW5lZCA9PSB1bmRl
ZmluZWRWYWx1ZS5nZXRTaW1wbGVWYWx1ZSgpKTsKIH0KIAorVEVTVChDQk9SVmFsdWVUZXN0LCBD
b25zdHJ1Y3RTaW1wbGVCb29sZWFuVmFsdWUpCit7CisgICAgQ0JPUlZhbHVlIHRydWVWYWx1ZSh0
cnVlKTsKKyAgICBBU1NFUlRfRVEoQ0JPUlZhbHVlOjpUeXBlOjpTaW1wbGVWYWx1ZSwgdHJ1ZVZh
bHVlLnR5cGUoKSk7CisgICAgRVhQRUNUX1RSVUUodHJ1ZVZhbHVlLmdldEJvb2woKSk7CisKKyAg
ICBDQk9SVmFsdWUgZmFsc2VWYWx1ZShmYWxzZSk7CisgICAgQVNTRVJUX0VRKENCT1JWYWx1ZTo6
VHlwZTo6U2ltcGxlVmFsdWUsIGZhbHNlVmFsdWUudHlwZSgpKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
ZmFsc2VWYWx1ZS5nZXRCb29sKCkpOworfQorCiAvLyBUZXN0IGNvcHkgY29uc3RydWN0b3JzCiBU
RVNUKENCT1JWYWx1ZVRlc3QsIENvcHlVbnNpZ25lZCkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjQzOWRhZDRlYzFhOTA4MDA3NDE3Y2QyYTdlNmM2MWRkMTM1ZmE2NAotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3Bw
CkBAIC0wLDAgKzEsMTI4IEBACisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgQ2hyb21pdW0gQXV0aG9y
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisvLyBtZXQ6CisvLworLy8gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisv
LyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKy8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKy8vIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisvLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKy8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
Ly8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisvLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisK
KyNpbmNsdWRlICJGaWRvVGVzdERhdGEuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RldmljZVJlcXVl
c3RDb252ZXJ0ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpZG9Db25zdGFudHMuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Cit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBmaWRvOworCisvLyBMZXZlcmFn
aW5nIGV4YW1wbGUgMiBvZiBzZWN0aW9uIDYuMSBvZiB0aGUgc3BlYworLy8gaHR0cHM6Ly9maWRv
YWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1h
dXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbAorVEVTVChDVEFQUmVx
dWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RQYXJhbSkKK3sKKyAg
ICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpScEVudGl0eSBycDsKKyAgICBy
cC5uYW1lID0gIkFjbWUiOworICAgIHJwLmlkID0gImFjbWUuY29tIjsKKworICAgIFB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlVzZXJFbnRpdHkgdXNlcjsKKyAgICB1c2VyLm5h
bWUgPSAiam9obnBzbWl0aEBleGFtcGxlLmNvbSI7CisgICAgdXNlci5pY29uID0gImh0dHBzOi8v
cGljcy5hY21lLmNvbS8wMC9wL2FCampqcHFQYi5wbmciOworICAgIHVzZXIuaWRWZWN0b3IuYXBw
ZW5kKFRlc3REYXRhOjprVXNlcklkLCBzaXplb2YoVGVzdERhdGE6OmtVc2VySWQpKTsKKyAgICB1
c2VyLmRpc3BsYXlOYW1lID0gIkpvaG4gUC4gU21pdGgiOworCisgICAgVmVjdG9yPFB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IHBhcmFtcyB7IHsgUHVibGlj
S2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1YmxpY0tleUNyZWRlbnRpYWxU
eXBlOjpQdWJsaWNLZXksIDI1NyB9IH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7IFB1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQ
bGF0Zm9ybSwgdHJ1ZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQgfTsK
KworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7IHJwLCB1
c2VyLCB7IH0sIHBhcmFtcywgc3RkOjpudWxsb3B0LCB7IH0sIHNlbGVjdGlvbiB9OworICAgIFZl
Y3Rvcjx1aW50OF90PiBoYXNoOworICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xpZW50RGF0
YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7CisgICAgYXV0byBzZXJp
YWxpemVkRGF0YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNoLCBvcHRp
b25zLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWls
YWJpbGl0eTo6a1N1cHBvcnRlZEJ1dE5vdENvbmZpZ3VyZWQpOworICAgIEVYUEVDVF9FUShzZXJp
YWxpemVkRGF0YS5zaXplKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXBNYWtlQ3JlZGVudGlhbFJl
cXVlc3QpKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhLmRhdGEoKSwgVGVz
dERhdGE6OmtDdGFwTWFrZUNyZWRlbnRpYWxSZXF1ZXN0LCBzZXJpYWxpemVkRGF0YS5zaXplKCkp
LCAwKTsKK30KKworVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25zdHJ1Y3RHZXRBc3NlcnRp
b25SZXF1ZXN0KQoreworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyBvcHRp
b25zOworICAgIG9wdGlvbnMucnBJZCA9ICJhY21lLmNvbSI7CisKKyAgICBQdWJsaWNLZXlDcmVk
ZW50aWFsRGVzY3JpcHRvciBkZXNjcmlwdG9yMTsKKyAgICBkZXNjcmlwdG9yMS50eXBlID0gUHVi
bGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleTsKKyAgICBjb25zdCB1aW50OF90IGlkMVtd
ID0geworICAgICAgICAweGYyLCAweDIwLCAweDA2LCAweGRlLCAweDRmLCAweDkwLCAweDVhLCAw
eGY2LCAweDhhLCAweDQzLCAweDk0LAorICAgICAgICAweDJmLCAweDAyLCAweDRmLCAweDJhLCAw
eDVlLCAweGNlLCAweDYwLCAweDNkLCAweDljLCAweDZkLCAweDRiLAorICAgICAgICAweDNkLCAw
eGY4LCAweGJlLCAweDA4LCAweGVkLCAweDAxLCAweGZjLCAweDQ0LCAweDI2LCAweDQ2LCAweGQw
LAorICAgICAgICAweDM0LCAweDg1LCAweDhhLCAweGM3LCAweDViLCAweGVkLCAweDNmLCAweGQ1
LCAweDgwLCAweGJmLCAweDk4LAorICAgICAgICAweDA4LCAweGQ5LCAweDRmLCAweGNiLCAweGVl
LCAweDgyLCAweGI5LCAweGIyLCAweGVmLCAweDY2LCAweDc3LAorICAgICAgICAweGFmLCAweDBh
LCAweGRjLCAweGMzLCAweDU4LCAweDUyLCAweGVhLCAweDZiLCAweDllIH07CisgICAgZGVzY3Jp
cHRvcjEuaWRWZWN0b3IuYXBwZW5kKGlkMSwgc2l6ZW9mKGlkMSkpOworICAgIG9wdGlvbnMuYWxs
b3dDcmVkZW50aWFscy5hcHBlbmQoZGVzY3JpcHRvcjEpOworCisgICAgUHVibGljS2V5Q3JlZGVu
dGlhbERlc2NyaXB0b3IgZGVzY3JpcHRvcjI7CisgICAgZGVzY3JpcHRvcjIudHlwZSA9IFB1Ymxp
Y0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXk7CisgICAgY29uc3QgdWludDhfdCBpZDJbXSA9
IHsKKyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgw
MywgMHgwMywgMHgwMywKKyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAgICAgMHgwMywgMHgwMywgMHgwMywgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAgICAgMHgwMywgMHgw
MywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAg
ICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMyB9OworICAgIGRlc2NyaXB0b3IyLmlkVmVjdG9yLmFwcGVuZChpZDIsIHNpemVvZihpZDIp
KTsKKyAgICBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMuYXBwZW5kKGRlc2NyaXB0b3IyKTsKKwor
ICAgIG9wdGlvbnMudXNlclZlcmlmaWNhdGlvbiA9IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dDo6UmVxdWlyZWQ7CisKKyAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKKyAgICBoYXNoLmFwcGVu
ZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRh
SGFzaCkpOworICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVHZXRBc3NlcnRpb25SZXF1
ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpV
c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0Tm90Q29uZmlndXJlZCk7
CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhLnNpemUoKSwgc2l6ZW9mKFRlc3REYXRhOjpr
VGVzdENvbXBsZXhDdGFwR2V0QXNzZXJ0aW9uUmVxdWVzdCkpOworICAgIEVYUEVDVF9FUShtZW1j
bXAoc2VyaWFsaXplZERhdGEuZGF0YSgpLCBUZXN0RGF0YTo6a1Rlc3RDb21wbGV4Q3RhcEdldEFz
c2VydGlvblJlcXVlc3QsIHNlcmlhbGl6ZWREYXRhLnNpemUoKSksIDApOworfQorCitURVNUKENU
QVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdEN0YXBBdXRoZW50aWNhdG9yUmVxdWVzdFBhcmFt
KQoreworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBrU2VyaWFsaXplZEdldEluZm9DbWQg
PSAweDA0OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBrU2VyaWFsaXplZEdldE5leHRB
c3NlcnRpb25DbWQgPSAweDA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBrU2VyaWFs
aXplZFJlc2V0Q21kID0gMHgwNzsKKworICAgIGF1dG8gc2VyaWFsaXplZERhdGExID0gZW5jb2Rl
RW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNh
dG9yR2V0SW5mbyk7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhMS5zaXplKCksIDF1KTsK
KyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhMS5kYXRhKCksICZrU2VyaWFsaXpl
ZEdldEluZm9DbWQsIDEpLCAwKTsKKworICAgIGF1dG8gc2VyaWFsaXplZERhdGEyID0gZW5jb2Rl
RW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRoZW50aWNh
dG9yR2V0TmV4dEFzc2VydGlvbik7CisgICAgRVhQRUNUX0VRKHNlcmlhbGl6ZWREYXRhMi5zaXpl
KCksIDF1KTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKHNlcmlhbGl6ZWREYXRhMi5kYXRhKCksICZr
U2VyaWFsaXplZEdldE5leHRBc3NlcnRpb25DbWQsIDEpLCAwKTsKKworICAgIGF1dG8gc2VyaWFs
aXplZERhdGEzID0gZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENv
bW1hbmQ6OmtBdXRoZW50aWNhdG9yUmVzZXQpOworICAgIEVYUEVDVF9FUShzZXJpYWxpemVkRGF0
YTMuc2l6ZSgpLCAxdSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChzZXJpYWxpemVkRGF0YTMuZGF0
YSgpLCAma1NlcmlhbGl6ZWRSZXNldENtZCwgMSksIDApOworfQorCit9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRlc3QuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXNwb25zZVRlc3QuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNiNWQyNWU1ZmVlYWY3NzNjMzdjNDE2OGE3NTkzM2FmNjVmMWQ4YjIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlc3Bv
bnNlVGVzdC5jcHAKQEAgLTAsMCArMSwzNTQgQEAKKy8vIENvcHlyaWdodCAyMDE3IFRoZSBDaHJv
bWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
Ky8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdF
Ql9BVVRITikKKworI2luY2x1ZGUgIkZpZG9UZXN0RGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
Q0JPUlJlYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ0JPUlZhbHVlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9DQk9SV3JpdGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EZXZpY2VSZXNwb25zZUNv
bnZlcnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlkb0NvbnN0YW50cy5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUHVibGljS2V5Q3JlZGVudGlhbC5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7Cit1c2luZyBuYW1lc3BhY2UgZmlkbzsKKworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RBdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aE5vVmVyc2lvbltdID0geworICAgIC8vIFN1Y2Nl
c3Mgc3RhdHVzIGJ5dGUKKyAgICAweDAwLAorICAgIC8vIE1hcCBvZiA2IGVsZW1lbnRzCisgICAg
MHhBNiwKKyAgICAvLyBLZXkoMDEpIC0gdmVyc2lvbnMKKyAgICAweDAxLAorICAgIC8vIEFycmF5
KDApCisgICAgMHg4MCwKKyAgICAvLyBLZXkoMDIpIC0gZXh0ZW5zaW9ucworICAgIDB4MDIsCisg
ICAgLy8gQXJyYXkoMikKKyAgICAweDgyLAorICAgIC8vICJ1dm0iCisgICAgMHg2MywgMHg3NSwg
MHg3NiwgMHg2RCwKKyAgICAvLyAiaG1hYy1zZWNyZXQiCisgICAgMHg2QiwgMHg2OCwgMHg2RCwg
MHg2MSwgMHg2MywgMHgyRCwgMHg3MywgMHg2NSwgMHg2MywgMHg3MiwgMHg2NSwgMHg3NCwKKyAg
ICAvLyBLZXkoMDMpIC0gQUFHVUlECisgICAgMHgwMywKKyAgICAvLyBCeXRlcygxNikKKyAgICAw
eDUwLCAweEY4LCAweEEwLCAweDExLCAweEYzLCAweDhDLCAweDBBLCAweDRELCAweDE1LCAweDgw
LCAweDA2LCAweDE3LAorICAgIDB4MTEsIDB4MUYsIDB4OUUsIDB4REMsIDB4N0QsCisgICAgLy8g
S2V5KDA0KSAtIG9wdGlvbnMKKyAgICAweDA0LAorICAgIC8vIE1hcCgwNSkKKyAgICAweEE1LAor
ICAgIC8vIEtleSAtICJyayIKKyAgICAweDYyLCAweDcyLCAweDZCLAorICAgIC8vIHRydWUKKyAg
ICAweEY1LAorICAgIC8vIEtleSAtICJ1cCIKKyAgICAweDYyLCAweDc1LCAweDcwLAorICAgIC8v
IHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJ1diIKKyAgICAweDYyLCAweDc1LCAweDc2
LAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAtICJwbGF0IgorICAgIDB4NjQs
IDB4NzAsIDB4NkMsIDB4NjEsIDB4NzQsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8g
S2V5IC0gImNsaWVudFBpbiIKKyAgICAweDY5LCAweDYzLCAweDZDLCAweDY5LCAweDY1LCAweDZF
LCAweDc0LCAweDUwLCAweDY5LCAweDZFLAorICAgIC8vIGZhbHNlCisgICAgMHhGNCwKKyAgICAv
LyBLZXkoMDUpIC0gTWF4IG1lc3NhZ2Ugc2l6ZQorICAgIDB4MDUsCisgICAgLy8gMTIwMAorICAg
IDB4MTksIDB4MDQsIDB4QjAsCisgICAgLy8gS2V5KDA2KSAtIFBpbiBwcm90b2NvbHMKKyAgICAw
eDA2LAorICAgIC8vIEFycmF5WzFdCisgICAgMHg4MSwgMHgwMSwKK307CisKK2NvbnN0ZXhwciB1
aW50OF90IGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVdpdGhEdXBsaWNhdGVWZXJz
aW9uW10gPSB7CisgICAgLy8gU3VjY2VzcyBzdGF0dXMgYnl0ZQorICAgIDB4MDAsCisgICAgLy8g
TWFwIG9mIDYgZWxlbWVudHMKKyAgICAweEE2LAorICAgIC8vIEtleSgwMSkgLSB2ZXJzaW9ucwor
ICAgIDB4MDEsCisgICAgLy8gQXJyYXkoMDIpCisgICAgMHg4MiwKKyAgICAvLyAiVTJGX1YyIgor
ICAgIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYsIDB4NTYsIDB4MzIsCisgICAgLy8gIlUy
Rl9WMiIKKyAgICAweDY2LCAweDU1LCAweDMyLCAweDQ2LCAweDVGLCAweDU2LCAweDMyLAorICAg
IC8vIEtleSgwMikgLSBleHRlbnNpb25zCisgICAgMHgwMiwKKyAgICAvLyBBcnJheSgyKQorICAg
IDB4ODIsCisgICAgLy8gInV2bSIKKyAgICAweDYzLCAweDc1LCAweDc2LCAweDZELAorICAgIC8v
ICJobWFjLXNlY3JldCIKKyAgICAweDZCLCAweDY4LCAweDZELCAweDYxLCAweDYzLCAweDJELCAw
eDczLCAweDY1LCAweDYzLCAweDcyLCAweDY1LCAweDc0LAorICAgIC8vIEtleSgwMykgLSBBQUdV
SUQKKyAgICAweDAzLAorICAgIC8vIEJ5dGVzKDE2KQorICAgIDB4NTAsIDB4RjgsIDB4QTAsIDB4
MTEsIDB4RjMsIDB4OEMsIDB4MEEsIDB4NEQsIDB4MTUsIDB4ODAsIDB4MDYsIDB4MTcsCisgICAg
MHgxMSwgMHgxRiwgMHg5RSwgMHhEQywgMHg3RCwKKyAgICAvLyBLZXkoMDQpIC0gb3B0aW9ucwor
ICAgIDB4MDQsCisgICAgLy8gTWFwKDA1KQorICAgIDB4QTUsCisgICAgLy8gS2V5IC0gInJrIgor
ICAgIDB4NjIsIDB4NzIsIDB4NkIsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5
IC0gInVwIgorICAgIDB4NjIsIDB4NzUsIDB4NzAsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisg
ICAgLy8gS2V5IC0gInV2IgorICAgIDB4NjIsIDB4NzUsIDB4NzYsCisgICAgLy8gdHJ1ZQorICAg
IDB4RjUsCisgICAgLy8gS2V5IC0gInBsYXQiCisgICAgMHg2NCwgMHg3MCwgMHg2QywgMHg2MSwg
MHg3NCwKKyAgICAvLyB0cnVlCisgICAgMHhGNSwKKyAgICAvLyBLZXkgLSAiY2xpZW50UGluIgor
ICAgIDB4NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4NTAsIDB4Njks
IDB4NkUsCisgICAgLy8gZmFsc2UKKyAgICAweEY0LAorICAgIC8vIEtleSgwNSkgLSBNYXggbWVz
c2FnZSBzaXplCisgICAgMHgwNSwKKyAgICAvLyAxMjAwCisgICAgMHgxOSwgMHgwNCwgMHhCMCwK
KyAgICAvLyBLZXkoMDYpIC0gUGluIHByb3RvY29scworICAgIDB4MDYsCisgICAgLy8gQXJyYXlb
MV0KKyAgICAweDgxLCAweDAxLAorfTsKKworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RBdXRoZW50
aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aEluY29ycmVjdEFhZ3VpZFtdID0geworICAgIC8vIFN1
Y2Nlc3Mgc3RhdHVzIGJ5dGUKKyAgICAweDAwLAorICAgIC8vIE1hcCBvZiA2IGVsZW1lbnRzCisg
ICAgMHhBNiwKKyAgICAvLyBLZXkoMDEpIC0gdmVyc2lvbnMKKyAgICAweDAxLAorICAgIC8vIEFy
cmF5KDAxKQorICAgIDB4ODEsCisgICAgLy8gIlUyRl9WMiIKKyAgICAweDY2LCAweDU1LCAweDMy
LCAweDQ2LCAweDVGLCAweDU2LCAweDMyLAorICAgIC8vIEtleSgwMikgLSBleHRlbnNpb25zCisg
ICAgMHgwMiwKKyAgICAvLyBBcnJheSgyKQorICAgIDB4ODIsCisgICAgLy8gInV2bSIKKyAgICAw
eDYzLCAweDc1LCAweDc2LCAweDZELAorICAgIC8vICJobWFjLXNlY3JldCIKKyAgICAweDZCLCAw
eDY4LCAweDZELCAweDYxLCAweDYzLCAweDJELCAweDczLCAweDY1LCAweDYzLCAweDcyLCAweDY1
LCAweDc0LAorICAgIC8vIEtleSgwMykgLSBBQUdVSUQKKyAgICAweDAzLAorICAgIC8vIEJ5dGVz
KDE3KSAtIEZJRE8yIGRldmljZSBBQUdVSUQgbXVzdCBiZSAxNiBieXRlcyBsb25nIGluIG9yZGVy
IHRvIGJlCisgICAgLy8gY29ycmVjdC4KKyAgICAweDUxLCAweEY4LCAweEEwLCAweDExLCAweEYz
LCAweDhDLCAweDBBLCAweDRELCAweDE1LCAweDgwLCAweDA2LCAweDE3LAorICAgIDB4MTEsIDB4
MUYsIDB4OUUsIDB4REMsIDB4N0QsIDB4MDAsCisgICAgLy8gS2V5KDA0KSAtIG9wdGlvbnMKKyAg
ICAweDA0LAorICAgIC8vIE1hcCgwNSkKKyAgICAweEE1LAorICAgIC8vIEtleSAtICJyayIKKyAg
ICAweDYyLCAweDcyLCAweDZCLAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAgIC8vIEtleSAt
ICJ1cCIKKyAgICAweDYyLCAweDc1LCAweDcwLAorICAgIC8vIHRydWUKKyAgICAweEY1LAorICAg
IC8vIEtleSAtICJ1diIKKyAgICAweDYyLCAweDc1LCAweDc2LAorICAgIC8vIHRydWUKKyAgICAw
eEY1LAorICAgIC8vIEtleSAtICJwbGF0IgorICAgIDB4NjQsIDB4NzAsIDB4NkMsIDB4NjEsIDB4
NzQsCisgICAgLy8gdHJ1ZQorICAgIDB4RjUsCisgICAgLy8gS2V5IC0gImNsaWVudFBpbiIKKyAg
ICAweDY5LCAweDYzLCAweDZDLCAweDY5LCAweDY1LCAweDZFLCAweDc0LCAweDUwLCAweDY5LCAw
eDZFLAorICAgIC8vIGZhbHNlCisgICAgMHhGNCwKKyAgICAvLyBLZXkoMDUpIC0gTWF4IG1lc3Nh
Z2Ugc2l6ZQorICAgIDB4MDUsCisgICAgLy8gMTIwMAorICAgIDB4MTksIDB4MDQsIDB4QjAsCisg
ICAgLy8gS2V5KDA2KSAtIFBpbiBwcm90b2NvbHMKKyAgICAweDA2LAorICAgIC8vIEFycmF5WzFd
CisgICAgMHg4MSwgMHgwMSwKK307CisKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0RGV2aWNlQWFn
dWlkW10gPSB7CisgICAgMHhGOCwgMHhBMCwgMHgxMSwgMHhGMywgMHg4QywgMHgwQSwgMHg0RCwg
MHgxNSwgMHg4MCwgMHgwNiwgMHgxNywgMHgxMSwgMHgxRiwgMHg5RSwgMHhEQywgMHg3RAorfTsK
KworLy8gR2V0IGEgc3Vic2V0IG9mIHRoZSByZXNwb25zZSBmb3IgdGVzdGluZyBlcnJvciBoYW5k
bGluZy4KK1ZlY3Rvcjx1aW50OF90PiBnZXRUZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNlKHNpemVf
dCBsZW5ndGgpCit7CisgICAgQVNTRVJUKGxlbmd0aCA8IHNpemVvZihUZXN0RGF0YTo6a1Rlc3RV
MmZTaWduUmVzcG9uc2UpKTsKKyAgICBWZWN0b3I8dWludDhfdD4gdGVzdENvcnJ1cHRlZFNpZ25S
ZXNwb25zZTsKKyAgICB0ZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNlLnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkobGVuZ3RoKTsKKyAgICB0ZXN0Q29ycnVwdGVkU2lnblJlc3BvbnNlLmFwcGVuZChUZXN0
RGF0YTo6a1Rlc3RVMmZTaWduUmVzcG9uc2UsIGxlbmd0aCk7CisgICAgcmV0dXJuIHRlc3RDb3Jy
dXB0ZWRTaWduUmVzcG9uc2U7Cit9CisKKy8vIFJldHVybiBhIGtleSBoYW5kbGUgdXNlZCBmb3Ig
R2V0QXNzZXJ0aW9uIHJlcXVlc3QuCitWZWN0b3I8dWludDhfdD4gZ2V0VGVzdENyZWRlbnRpYWxS
YXdJZEJ5dGVzKCkKK3sKKyAgICBWZWN0b3I8dWludDhfdD4gdGVzdENyZWRlbnRpYWxSYXdJZEJ5
dGVzOworICAgIHRlc3RDcmVkZW50aWFsUmF3SWRCeXRlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KHNpemVvZihUZXN0RGF0YTo6a1UyZlNpZ25LZXlIYW5kbGUpKTsKKyAgICB0ZXN0Q3JlZGVudGlh
bFJhd0lkQnl0ZXMuYXBwZW5kKFRlc3REYXRhOjprVTJmU2lnbktleUhhbmRsZSwgc2l6ZW9mKFRl
c3REYXRhOjprVTJmU2lnbktleUhhbmRsZSkpOworICAgIHJldHVybiB0ZXN0Q3JlZGVudGlhbFJh
d0lkQnl0ZXM7Cit9CisKK1ZlY3Rvcjx1aW50OF90PiBjb252ZXJ0VG9WZWN0b3IoY29uc3QgdWlu
dDhfdCBieXRlQXJyYXlbXSwgY29uc3Qgc2l6ZV90IGxlbmd0aCkKK3sKKyAgICBWZWN0b3I8dWlu
dDhfdD4gcmVzdWx0OworICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGxlbmd0aCk7
CisgICAgcmVzdWx0LmFwcGVuZChieXRlQXJyYXksIGxlbmd0aCk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworLy8gTGV2ZXJhZ2luZyBleGFtcGxlIDQgb2Ygc2VjdGlvbiA2LjEgb2YgdGhlIHNw
ZWMKKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5
MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3
Lmh0bWwjY29tbWFuZHMKK1RFU1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVzdFJlYWRNYWtlQ3JlZGVu
dGlhbFJlc3BvbnNlKQoreworICAgIGF1dG8gbWFrZUNyZWRlbnRpYWxSZXNwb25zZSA9IHJlYWRD
VEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZShjb252ZXJ0VG9WZWN0b3IoVGVzdERhdGE6OmtUZXN0
TWFrZUNyZWRlbnRpYWxSZXNwb25zZSwgc2l6ZW9mKFRlc3REYXRhOjprVGVzdE1ha2VDcmVkZW50
aWFsUmVzcG9uc2UpKSk7CisgICAgQVNTRVJUX1RSVUUobWFrZUNyZWRlbnRpYWxSZXNwb25zZSk7
CisgICAgYXV0byBjYm9yQXR0ZXN0YXRpb25PYmplY3QgPSBjYm9yOjpDQk9SUmVhZGVyOjpyZWFk
KGNvbnZlcnRUb1ZlY3RvcihyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihtYWtlQ3JlZGVudGlh
bFJlc3BvbnNlLT5hdHRlc3RhdGlvbk9iamVjdC0+ZGF0YSgpKSwgbWFrZUNyZWRlbnRpYWxSZXNw
b25zZS0+YXR0ZXN0YXRpb25PYmplY3QtPmJ5dGVMZW5ndGgoKSkpOworICAgIEFTU0VSVF9UUlVF
KGNib3JBdHRlc3RhdGlvbk9iamVjdCk7CisgICAgQVNTRVJUX1RSVUUoY2JvckF0dGVzdGF0aW9u
T2JqZWN0LT5pc01hcCgpKTsKKworICAgIGNvbnN0IGF1dG8mIGF0dGVzdGF0aW9uT2JqZWN0TWFw
ID0gY2JvckF0dGVzdGF0aW9uT2JqZWN0LT5nZXRNYXAoKTsKKyAgICBhdXRvIGl0ID0gYXR0ZXN0
YXRpb25PYmplY3RNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoa0Zvcm1hdEtleSkpOworICAgIEFT
U0VSVF9UUlVFKGl0ICE9IGF0dGVzdGF0aW9uT2JqZWN0TWFwLmVuZCgpKTsKKyAgICBBU1NFUlRf
VFJVRShpdC0+c2Vjb25kLmlzU3RyaW5nKCkpOworICAgIEVYUEVDVF9TVFJFUShpdC0+c2Vjb25k
LmdldFN0cmluZygpLnV0ZjgoKS5kYXRhKCksICJwYWNrZWQiKTsKKworICAgIGl0ID0gYXR0ZXN0
YXRpb25PYmplY3RNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoa0F1dGhEYXRhS2V5KSk7CisgICAg
QVNTRVJUX1RSVUUoaXQgIT0gYXR0ZXN0YXRpb25PYmplY3RNYXAuZW5kKCkpOworICAgIEFTU0VS
VF9UUlVFKGl0LT5zZWNvbmQuaXNCeXRlU3RyaW5nKCkpOworICAgIEVYUEVDVF9FUShpdC0+c2Vj
b25kLmdldEJ5dGVTdHJpbmcoKSwgY29udmVydFRvVmVjdG9yKFRlc3REYXRhOjprQ3RhcDJNYWtl
Q3JlZGVudGlhbEF1dGhEYXRhLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50aWFs
QXV0aERhdGEpKSk7CisKKyAgICBpdCA9IGF0dGVzdGF0aW9uT2JqZWN0TWFwLmZpbmQoY2Jvcjo6
Q0JPUlZhbHVlKGtBdHRlc3RhdGlvblN0YXRlbWVudEtleSkpOworICAgIEFTU0VSVF9UUlVFKGl0
ICE9IGF0dGVzdGF0aW9uT2JqZWN0TWFwLmVuZCgpKTsKKyAgICBBU1NFUlRfVFJVRShpdC0+c2Vj
b25kLmlzTWFwKCkpOworCisgICAgY29uc3QgYXV0byYgYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAg
PSBpdC0+c2Vjb25kLmdldE1hcCgpOworICAgIGF1dG8gYXR0U3RtdEl0ID0gYXR0ZXN0YXRpb25T
dGF0ZW1lbnRNYXAuZmluZChjYm9yOjpDQk9SVmFsdWUoImFsZyIpKTsKKworICAgIEFTU0VSVF9U
UlVFKGF0dFN0bXRJdCAhPSBhdHRlc3RhdGlvblN0YXRlbWVudE1hcC5lbmQoKSk7CisgICAgQVNT
RVJUX1RSVUUoYXR0U3RtdEl0LT5zZWNvbmQuaXNJbnRlZ2VyKCkpOworICAgIEVYUEVDVF9FUShh
dHRTdG10SXQtPnNlY29uZC5nZXRJbnRlZ2VyKCksIC03KTsKKworICAgIGF0dFN0bXRJdCA9IGF0
dGVzdGF0aW9uU3RhdGVtZW50TWFwLmZpbmQoY2Jvcjo6Q0JPUlZhbHVlKCJzaWciKSk7CisgICAg
QVNTRVJUX1RSVUUoYXR0U3RtdEl0ICE9IGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwLmVuZCgpKTsK
KyAgICBBU1NFUlRfVFJVRShhdHRTdG10SXQtPnNlY29uZC5pc0J5dGVTdHJpbmcoKSk7CisgICAg
RVhQRUNUX0VRKGF0dFN0bXRJdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKSwgY29udmVydFRvVmVj
dG9yKFRlc3REYXRhOjprQ3RhcDJNYWtlQ3JlZGVudGlhbFNpZ25hdHVyZSwgc2l6ZW9mKFRlc3RE
YXRhOjprQ3RhcDJNYWtlQ3JlZGVudGlhbFNpZ25hdHVyZSkpKTsKKworICAgIGF0dFN0bXRJdCA9
IGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwLmZpbmQoY2Jvcjo6Q0JPUlZhbHVlKCJ4NWMiKSk7Cisg
ICAgQVNTRVJUX1RSVUUoYXR0U3RtdEl0ICE9IGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwLmVuZCgp
KTsKKyAgICBjb25zdCBhdXRvJiBjZXJ0aWZpY2F0ZSA9IGF0dFN0bXRJdC0+c2Vjb25kOworICAg
IEFTU0VSVF9UUlVFKGNlcnRpZmljYXRlLmlzQXJyYXkoKSk7CisgICAgQVNTRVJUX0VRKGNlcnRp
ZmljYXRlLmdldEFycmF5KCkuc2l6ZSgpLCAxdSk7CisgICAgQVNTRVJUX1RSVUUoY2VydGlmaWNh
dGUuZ2V0QXJyYXkoKVswXS5pc0J5dGVTdHJpbmcoKSk7CisgICAgRVhQRUNUX0VRKGNlcnRpZmlj
YXRlLmdldEFycmF5KClbMF0uZ2V0Qnl0ZVN0cmluZygpLCBjb252ZXJ0VG9WZWN0b3IoVGVzdERh
dGE6OmtDdGFwMk1ha2VDcmVkZW50aWFsQ2VydGlmaWNhdGUsIHNpemVvZihUZXN0RGF0YTo6a0N0
YXAyTWFrZUNyZWRlbnRpYWxDZXJ0aWZpY2F0ZSkpKTsKKyAgICBFWFBFQ1RfRVEobWFrZUNyZWRl
bnRpYWxSZXNwb25zZS0+cmF3SWQtPmJ5dGVMZW5ndGgoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3Rh
cDJNYWtlQ3JlZGVudGlhbENyZWRlbnRpYWxJZCkpOworICAgIEVYUEVDVF9FUShtZW1jbXAobWFr
ZUNyZWRlbnRpYWxSZXNwb25zZS0+cmF3SWQtPmRhdGEoKSwgVGVzdERhdGE6OmtDdGFwMk1ha2VD
cmVkZW50aWFsQ3JlZGVudGlhbElkLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMk1ha2VDcmVkZW50
aWFsQ3JlZGVudGlhbElkKSksIDApOworfQorCisvLyBMZXZlcmFnaW5nIGV4YW1wbGUgNSBvZiBz
ZWN0aW9uIDYuMSBvZiB0aGUgQ1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3Jn
L3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9y
LXByb3RvY29sLXYyLjAtcHMtMjAxNzA5MjcuaHRtbAorVEVTVChDVEFQUmVzcG9uc2VUZXN0LCBU
ZXN0UmVhZEdldEFzc2VydGlvblJlc3BvbnNlKQoreworICAgIGF1dG8gZ2V0QXNzZXJ0aW9uUmVz
cG9uc2UgPSByZWFkQ1RBUEdldEFzc2VydGlvblJlc3BvbnNlKGNvbnZlcnRUb1ZlY3RvcihUZXN0
RGF0YTo6a0RldmljZUdldEFzc2VydGlvblJlc3BvbnNlLCBzaXplb2YoVGVzdERhdGE6OmtEZXZp
Y2VHZXRBc3NlcnRpb25SZXNwb25zZSkpKTsKKyAgICBBU1NFUlRfVFJVRShnZXRBc3NlcnRpb25S
ZXNwb25zZSk7CisKKyAgICBFWFBFQ1RfRVEoZ2V0QXNzZXJ0aW9uUmVzcG9uc2UtPmF1dGhlbnRp
Y2F0b3JEYXRhLT5ieXRlTGVuZ3RoKCksIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0
aW9uQXV0aERhdGEpKTsKKyAgICBFWFBFQ1RfRVEobWVtY21wKGdldEFzc2VydGlvblJlc3BvbnNl
LT5hdXRoZW50aWNhdG9yRGF0YS0+ZGF0YSgpLCBUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9u
QXV0aERhdGEsIHNpemVvZihUZXN0RGF0YTo6a0N0YXAyR2V0QXNzZXJ0aW9uQXV0aERhdGEpKSwg
MCk7CisgICAgRVhQRUNUX0VRKGdldEFzc2VydGlvblJlc3BvbnNlLT5zaWduYXR1cmUtPmJ5dGVM
ZW5ndGgoKSwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJHZXRBc3NlcnRpb25TaWduYXR1cmUpKTsK
KyAgICBFWFBFQ1RfRVEobWVtY21wKGdldEFzc2VydGlvblJlc3BvbnNlLT5zaWduYXR1cmUtPmRh
dGEoKSwgVGVzdERhdGE6OmtDdGFwMkdldEFzc2VydGlvblNpZ25hdHVyZSwgc2l6ZW9mKFRlc3RE
YXRhOjprQ3RhcDJHZXRBc3NlcnRpb25TaWduYXR1cmUpKSwgMCk7Cit9CisKK1RFU1QoQ1RBUFJl
c3BvbnNlVGVzdCwgVGVzdFJlYWRHZXRJbmZvUmVzcG9uc2UpCit7CisgICAgYXV0byBnZXRJbmZv
UmVzcG9uc2UgPSByZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb252ZXJ0VG9WZWN0b3IoVGVzdERh
dGE6OmtUZXN0R2V0SW5mb1Jlc3BvbnNlUGxhdGZvcm1EZXZpY2UsIHNpemVvZihUZXN0RGF0YTo6
a1Rlc3RHZXRJbmZvUmVzcG9uc2VQbGF0Zm9ybURldmljZSkpKTsKKyAgICBBU1NFUlRfVFJVRShn
ZXRJbmZvUmVzcG9uc2UpOworICAgIEFTU0VSVF9UUlVFKGdldEluZm9SZXNwb25zZS0+bWF4TXNn
U2l6ZSgpKTsKKyAgICBFWFBFQ1RfRVEoKmdldEluZm9SZXNwb25zZS0+bWF4TXNnU2l6ZSgpLCAx
MjAwdSk7CisgICAgRVhQRUNUX05FKGdldEluZm9SZXNwb25zZS0+dmVyc2lvbnMoKS5maW5kKFBy
b3RvY29sVmVyc2lvbjo6a0N0YXApLCBnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZW5kKCkp
OworICAgIEVYUEVDVF9ORShnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZmluZChQcm90b2Nv
bFZlcnNpb246OmtVMmYpLCBnZXRJbmZvUmVzcG9uc2UtPnZlcnNpb25zKCkuZW5kKCkpOworICAg
IEVYUEVDVF9UUlVFKGdldEluZm9SZXNwb25zZS0+b3B0aW9ucygpLmlzUGxhdGZvcm1EZXZpY2Uo
KSk7CisgICAgRVhQRUNUX1RSVUUoZ2V0SW5mb1Jlc3BvbnNlLT5vcHRpb25zKCkuc3VwcG9ydHNS
ZXNpZGVudEtleSgpKTsKKyAgICBFWFBFQ1RfVFJVRShnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMo
KS51c2VyUHJlc2VuY2VSZXF1aXJlZCgpKTsKKyAgICBFWFBFQ1RfRVEoQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRB
bmRDb25maWd1cmVkLCBnZXRJbmZvUmVzcG9uc2UtPm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0aW9u
QXZhaWxhYmlsaXR5KCkpOworICAgIEVYUEVDVF9FUShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0UGluTm90U2V0LCBnZXRJ
bmZvUmVzcG9uc2UtPm9wdGlvbnMoKS5jbGllbnRQaW5BdmFpbGFiaWxpdHkoKSk7Cit9CisKK1RF
U1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVzdFJlYWRHZXRJbmZvUmVzcG9uc2VXaXRoSW5jb3JyZWN0
Rm9ybWF0KQoreworICAgIEVYUEVDVF9GQUxTRShyZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb252
ZXJ0VG9WZWN0b3Ioa1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aE5vVmVyc2lv
biwgc2l6ZW9mKGtUZXN0QXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZVdpdGhOb1ZlcnNpb24p
KSkpOworICAgIEVYUEVDVF9GQUxTRShyZWFkQ1RBUEdldEluZm9SZXNwb25zZShjb252ZXJ0VG9W
ZWN0b3Ioa1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aER1cGxpY2F0ZVZlcnNp
b24sIHNpemVvZihrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoRHVwbGljYXRl
VmVyc2lvbikpKSk7CisgICAgRVhQRUNUX0ZBTFNFKHJlYWRDVEFQR2V0SW5mb1Jlc3BvbnNlKGNv
bnZlcnRUb1ZlY3RvcihrVGVzdEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VXaXRoSW5jb3Jy
ZWN0QWFndWlkLCBzaXplb2Yoa1Rlc3RBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlV2l0aElu
Y29ycmVjdEFhZ3VpZCkpKSk7Cit9CisKK1RFU1QoQ1RBUFJlc3BvbnNlVGVzdCwgVGVzdFNlcmlh
bGl6ZUdldEluZm9SZXNwb25zZSkKK3sKKyAgICBBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNl
IHJlc3BvbnNlKHsgUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCwgUHJvdG9jb2xWZXJzaW9uOjprVTJm
IH0sIGNvbnZlcnRUb1ZlY3RvcihrVGVzdERldmljZUFhZ3VpZCwgc2l6ZW9mKGtUZXN0RGV2aWNl
QWFndWlkKSkpOworICAgIHJlc3BvbnNlLnNldEV4dGVuc2lvbnMoeyAidXZtIiwgImhtYWMtc2Vj
cmV0IiB9KTsKKyAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBvcHRpb25zOworICAg
IG9wdGlvbnMuc2V0U3VwcG9ydHNSZXNpZGVudEtleSh0cnVlKTsKKyAgICBvcHRpb25zLnNldElz
UGxhdGZvcm1EZXZpY2UodHJ1ZSk7CisgICAgb3B0aW9ucy5zZXRDbGllbnRQaW5BdmFpbGFiaWxp
dHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6
a1N1cHBvcnRlZEJ1dFBpbk5vdFNldCk7CisgICAgb3B0aW9ucy5zZXRVc2VyVmVyaWZpY2F0aW9u
QXZhaWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0
aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCk7CisgICAgcmVzcG9uc2Uu
c2V0T3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKTsKKyAgICByZXNwb25zZS5zZXRNYXhNc2dTaXpl
KDEyMDApOworICAgIHJlc3BvbnNlLnNldFBpblByb3RvY29scyh7IDEgfSk7CisKKyAgICBhdXRv
IHJlc3BvbnNlQXNDQk9SID0gZW5jb2RlQXNDQk9SKHJlc3BvbnNlKTsKKyAgICBFWFBFQ1RfRVEo
cmVzcG9uc2VBc0NCT1Iuc2l6ZSgpLCBzaXplb2YoVGVzdERhdGE6OmtUZXN0R2V0SW5mb1Jlc3Bv
bnNlUGxhdGZvcm1EZXZpY2UpIC0gMSk7CisgICAgRVhQRUNUX0VRKG1lbWNtcChyZXNwb25zZUFz
Q0JPUi5kYXRhKCksIFRlc3REYXRhOjprVGVzdEdldEluZm9SZXNwb25zZVBsYXRmb3JtRGV2aWNl
ICsgMSwgcmVzcG9uc2VBc0NCT1Iuc2l6ZSgpKSwgMCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmggYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlkb1Rlc3REYXRhLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWZl
YTY1YmYyYTAyZDczYzY4ZDIyMGM2MmMwYTA2OTBmNmYxMzg3YwotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWRvVGVzdERhdGEuaApAQCAtMCww
ICsxLDY0NSBAQAorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorLy8gbWV0
OgorLy8KKy8vICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
Ly8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisv
LyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKK25hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKKworbmFtZXNwYWNlIFRlc3REYXRhIHsKKworLy8gVTJGIHJlcXVlc3QgcGFy
YW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworLy8gU2FtcGxlIFUyRiByZWdpc3RlciByZXF1ZXN0IHBhcmFtZXRlcnMgdXNlZCBp
biBleGFtcGxlIDYgb2YgdGhlIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9y
Zy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRv
ci1wcm90b2NvbC12Mi4wLXBzLTIwMTcwOTI3Lmh0bWwjdXNpbmctdGhlLWN0YXAyLWF1dGhlbnRp
Y2F0b3JtYWtlY3JlZGVudGlhbC1jb21tYW5kLXdpdGgtY3RhcDEtdTJmLWF1dGhlbnRpY2F0b3Jz
Citjb25zdGV4cHIgdWludDhfdCBrQ2xpZW50RGF0YUhhc2hbXSA9IHsKKyAgICAweDY4LCAweDcx
LCAweDM0LCAweDk2LCAweDgyLCAweDIyLCAweGVjLCAweDE3LCAweDIwLCAweDJlLCAweDQyLAor
ICAgIDB4NTAsIDB4NWYsIDB4OGUsIDB4ZDIsIDB4YjEsIDB4NmEsIDB4ZTIsIDB4MmYsIDB4MTYs
IDB4YmIsIDB4MDUsCisgICAgMHhiOCwgMHg4YywgMHgyNSwgMHhkYiwgMHg5ZSwgMHg2MCwgMHgy
NiwgMHg0NSwgMHhmMSwgMHg0MX07CisKK2NvbnN0ZXhwciB1aW50OF90IGtVc2VySWRbXSA9IHsw
eDEwLCAweDk4LCAweDIzLCAweDcyLCAweDM1LCAweDQwLCAweDk4LCAweDcyfTsKKworLy8gU2Ft
cGxlIFUyRiBzaWduIHJlcXVlc3QgcGFyYW1ldGVycyB1c2VkIGluIGV4YW1wbGUgNyBvZiB0aGUg
Q1RBUCBzcGVjLgorLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1w
cy0yMDE3MDkyNy9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMt
MjAxNzA5MjcuaHRtbCN1c2luZy10aGUtY3RhcDItYXV0aGVudGljYXRvcm1ha2VjcmVkZW50aWFs
LWNvbW1hbmQtd2l0aC1jdGFwMS11MmYtYXV0aGVudGljYXRvcnMKK2NvbnN0ZXhwciB1aW50OF90
IGtVMmZTaWduS2V5SGFuZGxlW10gPSB7CisgICAgMHgzRSwgMHhCRCwgMHg4OSwgMHhCRiwgMHg3
NywgMHhFQywgMHg1MCwgMHg5NywgMHg1NSwgMHhFRSwgMHg5QywKKyAgICAweDI2LCAweDM1LCAw
eEVGLCAweEFBLCAweEFDLCAweDdCLCAweDJCLCAweDlDLCAweDVDLCAweEVGLCAweDE3LAorICAg
IDB4MzYsIDB4QzMsIDB4NzEsIDB4N0QsIDB4QTQsIDB4ODUsIDB4MzQsIDB4QzgsIDB4QzYsIDB4
QjYsIDB4NTQsCisgICAgMHhENywgMHhGRiwgMHg5NCwgMHg1RiwgMHg1MCwgMHhCNSwgMHhDQywg
MHg0RSwgMHg3OCwgMHgwNSwgMHg1QiwKKyAgICAweERELCAweDM5LCAweDZCLCAweDY0LCAweEY3
LCAweDhELCAweEEyLCAweEM1LCAweEY5LCAweDYyLCAweDAwLAorICAgIDB4Q0MsIDB4RDQsIDB4
MTUsIDB4Q0QsIDB4MDgsIDB4RkUsIDB4NDIsIDB4MDAsIDB4MzgsCit9OworCisvLyBVMkYgcmVz
cG9uc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCisvLyBFQyBwdWJsaWMga2V5IGVuY29kZWQgaW4gQ09TRV9LZXkgZm9y
bWF0IGV4dHJhY3RlZCBmcm9tIGFib3ZlCisvLyB8a1Rlc3RVMmZSZWdpc3RlclJlc3BvbnNlfC4K
K2NvbnN0ZXhwciB1aW50OF90IGtUZXN0RUNQdWJsaWNLZXlDT1NFW10gPSB7CisgICAgLy8gTWFw
KDUpCisgICAgMHhBNSwKKyAgICAvLyBrdHk6IEVDIGtleSB0eXBlCisgICAgMHgwMSwgMHgwMiwK
KyAgICAvLyBhbGc6IEVDMjU2IHNpZ25hdHVyZSBhbGdvcml0aG0KKyAgICAweDAzLCAweDI2LAor
ICAgIC8vIGNydjogUC0yNTYgY3VydmUKKyAgICAweDIwLCAweDAxLAorICAgIC8vIHgtY29vcmRp
bmF0ZQorICAgIDB4MjEsCisgICAgLy8gQnl0ZXMoMzIpCisgICAgMHg1OCwgMHgyMCwKKyAgICAv
LyBCeXRlIGFycmF5IGNvbnRlbnQKKyAgICAweEU4LCAweDc2LCAweDI1LCAweDg5LCAweDZFLCAw
eEU0LCAweEU0LCAweDZELCAweEMwLCAweDMyLCAweDc2LCAweDZFLAorICAgIDB4ODAsIDB4ODcs
IDB4OTYsIDB4MkYsIDB4MzYsIDB4REYsIDB4OUQsIDB4RkUsIDB4OEIsIDB4NTYsIDB4N0YsIDB4
MzcsCisgICAgMHg2MywgMHgwMSwgMHg1QiwgMHgxOSwgMHg5MCwgMHhBNiwgMHgwRSwgMHgxNCwK
KyAgICAvLyB5LWNvb3JkaW5hdGUKKyAgICAweDIyLAorICAgIC8vIEJ5dGVzKDMyKQorICAgIDB4
NTgsIDB4MjAsCisgICAgLy8gQnl0ZSBhcnJheSBjb250ZW50CisgICAgMHgyNywgMHhERSwgMHg2
MSwgMHgyRCwgMHg2NiwgMHg0MSwgMHg4QiwgMHhEQSwgMHgxOSwgMHg1MCwgMHg1OCwgMHgxRSwK
KyAgICAweEJDLCAweDVDLCAweDhDLCAweDFELCAweEFELCAweDcxLCAweDBDLCAweEIxLCAweDRD
LCAweDIyLCAweEY4LCAweEM5LAorICAgIDB4NzAsIDB4NDUsIDB4RjQsIDB4NjEsIDB4MkYsIDB4
QjIsIDB4MEMsIDB4OTEsCit9OworCisvLyBUaGUgYXR0ZXN0YXRpb24gc3RhdGVtZW50IGV4dHJh
Y3RlZCBmcm9tIGFib3ZlIHxrVGVzdFUyZlJlZ2lzdGVyUmVzcG9uc2V8LCBhCisvLyBDQk9SLWVu
Y29kZWQgYnl0ZSBhcnJheS4KKy8vIERpYWdub3N0aWMgbm90YXRpb246CisvLyB7InNpZyI6Cisv
LyBoJzMwNDUwMjIwMzI0Nzc5QzY4RjMzODAyODhBMTE5N0I2MDk1RjdBNkVCOUIxQjFDMTI3RjY2
QUUxMkE5OUZFODUzMkVDMjNCOQorLy8gICAwMjIxMDBFMzk1MTZBQzRENjFFRTY0MDQ0RDUwQjQx
NUE2QTRENEQ4NEJBNkQ4OTVDQjVBQjdBMUFBN0QwODFERTM0MUZBJywKKy8vICJ4NWMiOiBbaCcz
MDgyMDI0QTMwODIwMTMyQTAwMzAyMDEwMjAyMDQwNDZDODgyMjMwMEQwNjA5MkE4NjQ4ODZGNzBE
MDEwMTBCMCBcCisvLyA1MDAzMDJFMzEyQzMwMkEwNjAzNTUwNDAzMTMyMzU5NzU2MjY5NjM2RjIw
NTUzMjQ2MjA1MjZGNkY3NDIwNDM0MTIwNTM2NTcyNjkgXAorLy8gNjE2QzIwMzQzNTM3MzIzMDMw
MzYzMzMxMzAyMDE3MEQzMTM0MzAzODMwMzEzMDMwMzAzMDMwMzA1QTE4MEYzMjMwMzUzMDMwMzkz
IFwKKy8vIDAzNDMwMzAzMDMwMzAzMDVBMzAyQzMxMkEzMDI4MDYwMzU1MDQwMzBDMjE1OTc1NjI2
OTYzNkYyMDU1MzI0NjIwNDU0NTIwNTM2NSBcCisvLyA3MjY5NjE2QzIwMzIzNDM5MzEzODMyMzMz
MjM0MzczNzMwMzA1OTMwMTMwNjA3MkE4NjQ4Q0UzRDAyMDEwNjA4MkE4NjQ4Q0UzRDAgXAorLy8g
MzAxMDcwMzQyMDAwNDNDQ0FCOTJDQ0I5NzI4N0VFOEU2Mzk0MzdFMjFGQ0Q2QjZGMTY1QjJENUEz
RjNEQjEzMUQzMUMxNkI3NDJCIFwKKy8vIEI0NzZEOEQxRTk5MDgwRUI1NDZDOUJCREY1NTZFNjIx
MEZENDI3ODU4OTlFNzhDQzU4OUVCRTMxMEY2Q0RCOUZGNEEzM0IzMDM5MyBcCisvLyAwMjIwNjA5
MkIwNjAxMDQwMTgyQzQwQTAyMDQxNTMxMkUzMzJFMzYyRTMxMkUzNDJFMzEyRTM0MzEzNDM4MzIy
RTMxMkUzMjMwMTMgXAorLy8gMDYwQjJCMDYwMTA0MDE4MkU1MUMwMjAxMDEwNDA0MDMwMjA0MzAz
MDBEMDYwOTJBODY0ODg2RjcwRDAxMDEwQjA1MDAwMzgyMDEwIFwKKy8vIDEwMDlGOUIwNTIyNDhC
QzRDRjQyQ0M1OTkxRkNBQUJBQzlCNjUxQkJFNUJEQ0RDOEVGMEFEMkMxQzFGRkIzNkQxODcxNUQ0
MkU3OCBcCisvLyBCMjQ5MjI0RjkyQzdFNkU3QTA1QzQ5RjBFN0U0Qzg4MUJGMkU5NEY0NUU0QTIx
ODMzRDc0NTY4NTFEMEY2QzE0NUEyOTU0MEM4NzQgXAorLy8gRjMwOTJDOTM0QjQzRDIyMkI4OTYy
QzBGNDEwQ0VGMURCNzU4OTJBRjExNkI0NEE5NkY1RDM1QURFQTM4MjJGQzcxNDZGNjAwNDM4IFwK
Ky8vIDVCQ0I2OUI2NUM5OUU3RUI2OTE5Nzg2NzAzQzBEOENENDFFOEY3NUNDQTQ0QUE4QUI3MjVB
RDhFNzk5RkYzQTg2OTZBNkYxQjI2NSBcCisvLyA2RTYzMUIxRTQwMTgzQzA4RkRBNTNGQTRBOEY4
NUEwNTY5Mzk0NEFFMTc5QTEzMzlEMDAyRDE1Q0FCRDgxMDA5MEVDNzIyRUY1REUgXAorLy8gRjk5
NjVBMzcxRDQxNUQ2MjRCNjhBMjcwN0NBRDk3QkNERDE3ODVBRjk3RTI1OEYzM0RGNTZBMDMxQUEw
MzU2RDhFOEQ1RUJDQURDIFwKKy8vIDc0RTA3MTYzNkM2QjExMEFDRTVDQzlCOTBERkVBQ0FFNjQw
RkYxQkIwRjFGRTVEQjRFRkY3QTk1RjA2MDczM0Y1J119Citjb25zdGV4cHIgdWludDhfdCBrVTJm
QXR0ZXN0YXRpb25TdGF0ZW1lbnRDQk9SW10gPSB7CisgICAgLy8gTWFwKDIpCisgICAgMHhBMiwK
KyAgICAvLyBUZXh0KDMpCisgICAgMHg2MywKKyAgICAvLyAic2lnIgorICAgIDB4NzMsIDB4Njks
IDB4NjcsCisgICAgLy8gQnl0ZXMoNzEpCisgICAgMHg1OCwgMHg0NywKKyAgICAvLyBCeXRlIGFy
cmF5IGNvbnRlbnQKKyAgICAweDMwLCAweDQ1LCAweDAyLCAweDIwLCAweDMyLCAweDQ3LCAweDc5
LCAweEM2LCAweDhGLCAweDMzLCAweDgwLCAweDI4LAorICAgIDB4OEEsIDB4MTEsIDB4OTcsIDB4
QjYsIDB4MDksIDB4NUYsIDB4N0EsIDB4NkUsIDB4QjksIDB4QjEsIDB4QjEsIDB4QzEsCisgICAg
MHgyNywgMHhGNiwgMHg2QSwgMHhFMSwgMHgyQSwgMHg5OSwgMHhGRSwgMHg4NSwgMHgzMiwgMHhF
QywgMHgyMywgMHhCOSwKKyAgICAweDAyLCAweDIxLCAweDAwLCAweEUzLCAweDk1LCAweDE2LCAw
eEFDLCAweDRELCAweDYxLCAweEVFLCAweDY0LCAweDA0LAorICAgIDB4NEQsIDB4NTAsIDB4QjQs
IDB4MTUsIDB4QTYsIDB4QTQsIDB4RDQsIDB4RDgsIDB4NEIsIDB4QTYsIDB4RDgsIDB4OTUsCisg
ICAgMHhDQiwgMHg1QSwgMHhCNywgMHhBMSwgMHhBQSwgMHg3RCwgMHgwOCwgMHgxRCwgMHhFMywg
MHg0MSwgMHhGQSwKKyAgICAvLyBUZXh0KDMpCisgICAgMHg2MywKKyAgICAvLyAieDVjIgorICAg
IDB4NzgsIDB4MzUsIDB4NjMsCisgICAgLy8gQXJyYXkoMSkKKyAgICAweDgxLAorICAgIC8vIEJ5
dGVzKDU5MCkKKyAgICAweDU5LCAweDAyLCAweDRFLAorICAgIC8vIEJ5dGUgYXJyYXkgY29udGVu
dAorICAgIDB4MzAsIDB4ODIsIDB4MDIsIDB4NEEsIDB4MzAsIDB4ODIsIDB4MDEsIDB4MzIsIDB4
QTAsIDB4MDMsIDB4MDIsIDB4MDEsCisgICAgMHgwMiwgMHgwMiwgMHgwNCwgMHgwNCwgMHg2Qywg
MHg4OCwgMHgyMiwgMHgzMCwgMHgwRCwgMHgwNiwgMHgwOSwgMHgyQSwKKyAgICAweDg2LCAweDQ4
LCAweDg2LCAweEY3LCAweDBELCAweDAxLCAweDAxLCAweDBCLCAweDA1LCAweDAwLCAweDMwLCAw
eDJFLAorICAgIDB4MzEsIDB4MkMsIDB4MzAsIDB4MkEsIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQs
IDB4MDMsIDB4MTMsIDB4MjMsIDB4NTksCisgICAgMHg3NSwgMHg2MiwgMHg2OSwgMHg2MywgMHg2
RiwgMHgyMCwgMHg1NSwgMHgzMiwgMHg0NiwgMHgyMCwgMHg1MiwgMHg2RiwKKyAgICAweDZGLCAw
eDc0LCAweDIwLCAweDQzLCAweDQxLCAweDIwLCAweDUzLCAweDY1LCAweDcyLCAweDY5LCAweDYx
LCAweDZDLAorICAgIDB4MjAsIDB4MzQsIDB4MzUsIDB4MzcsIDB4MzIsIDB4MzAsIDB4MzAsIDB4
MzYsIDB4MzMsIDB4MzEsIDB4MzAsIDB4MjAsCisgICAgMHgxNywgMHgwRCwgMHgzMSwgMHgzNCwg
MHgzMCwgMHgzOCwgMHgzMCwgMHgzMSwgMHgzMCwgMHgzMCwgMHgzMCwgMHgzMCwKKyAgICAweDMw
LCAweDMwLCAweDVBLCAweDE4LCAweDBGLCAweDMyLCAweDMwLCAweDM1LCAweDMwLCAweDMwLCAw
eDM5LCAweDMwLAorICAgIDB4MzQsIDB4MzAsIDB4MzAsIDB4MzAsIDB4MzAsIDB4MzAsIDB4MzAs
IDB4NUEsIDB4MzAsIDB4MkMsIDB4MzEsIDB4MkEsCisgICAgMHgzMCwgMHgyOCwgMHgwNiwgMHgw
MywgMHg1NSwgMHgwNCwgMHgwMywgMHgwQywgMHgyMSwgMHg1OSwgMHg3NSwgMHg2MiwKKyAgICAw
eDY5LCAweDYzLCAweDZGLCAweDIwLCAweDU1LCAweDMyLCAweDQ2LCAweDIwLCAweDQ1LCAweDQ1
LCAweDIwLCAweDUzLAorICAgIDB4NjUsIDB4NzIsIDB4NjksIDB4NjEsIDB4NkMsIDB4MjAsIDB4
MzIsIDB4MzQsIDB4MzksIDB4MzEsIDB4MzgsIDB4MzIsCisgICAgMHgzMywgMHgzMiwgMHgzNCwg
MHgzNywgMHgzNywgMHgzMCwgMHgzMCwgMHg1OSwgMHgzMCwgMHgxMywgMHgwNiwgMHgwNywKKyAg
ICAweDJBLCAweDg2LCAweDQ4LCAweENFLCAweDNELCAweDAyLCAweDAxLCAweDA2LCAweDA4LCAw
eDJBLCAweDg2LCAweDQ4LAorICAgIDB4Q0UsIDB4M0QsIDB4MDMsIDB4MDEsIDB4MDcsIDB4MDMs
IDB4NDIsIDB4MDAsIDB4MDQsIDB4M0MsIDB4Q0EsIDB4QjksCisgICAgMHgyQywgMHhDQiwgMHg5
NywgMHgyOCwgMHg3RSwgMHhFOCwgMHhFNiwgMHgzOSwgMHg0MywgMHg3RSwgMHgyMSwgMHhGQywK
KyAgICAweEQ2LCAweEI2LCAweEYxLCAweDY1LCAweEIyLCAweEQ1LCAweEEzLCAweEYzLCAweERC
LCAweDEzLCAweDFELCAweDMxLAorICAgIDB4QzEsIDB4NkIsIDB4NzQsIDB4MkIsIDB4QjQsIDB4
NzYsIDB4RDgsIDB4RDEsIDB4RTksIDB4OTAsIDB4ODAsIDB4RUIsCisgICAgMHg1NCwgMHg2Qywg
MHg5QiwgMHhCRCwgMHhGNSwgMHg1NiwgMHhFNiwgMHgyMSwgMHgwRiwgMHhENCwgMHgyNywgMHg4
NSwKKyAgICAweDg5LCAweDlFLCAweDc4LCAweENDLCAweDU4LCAweDlFLCAweEJFLCAweDMxLCAw
eDBGLCAweDZDLCAweERCLCAweDlGLAorICAgIDB4RjQsIDB4QTMsIDB4M0IsIDB4MzAsIDB4Mzks
IDB4MzAsIDB4MjIsIDB4MDYsIDB4MDksIDB4MkIsIDB4MDYsIDB4MDEsCisgICAgMHgwNCwgMHgw
MSwgMHg4MiwgMHhDNCwgMHgwQSwgMHgwMiwgMHgwNCwgMHgxNSwgMHgzMSwgMHgyRSwgMHgzMywg
MHgyRSwKKyAgICAweDM2LCAweDJFLCAweDMxLCAweDJFLCAweDM0LCAweDJFLCAweDMxLCAweDJF
LCAweDM0LCAweDMxLCAweDM0LCAweDM4LAorICAgIDB4MzIsIDB4MkUsIDB4MzEsIDB4MkUsIDB4
MzIsIDB4MzAsIDB4MTMsIDB4MDYsIDB4MEIsIDB4MkIsIDB4MDYsIDB4MDEsCisgICAgMHgwNCwg
MHgwMSwgMHg4MiwgMHhFNSwgMHgxQywgMHgwMiwgMHgwMSwgMHgwMSwgMHgwNCwgMHgwNCwgMHgw
MywgMHgwMiwKKyAgICAweDA0LCAweDMwLCAweDMwLCAweDBELCAweDA2LCAweDA5LCAweDJBLCAw
eDg2LCAweDQ4LCAweDg2LCAweEY3LCAweDBELAorICAgIDB4MDEsIDB4MDEsIDB4MEIsIDB4MDUs
IDB4MDAsIDB4MDMsIDB4ODIsIDB4MDEsIDB4MDEsIDB4MDAsIDB4OUYsIDB4OUIsCisgICAgMHgw
NSwgMHgyMiwgMHg0OCwgMHhCQywgMHg0QywgMHhGNCwgMHgyQywgMHhDNSwgMHg5OSwgMHgxRiwg
MHhDQSwgMHhBQiwKKyAgICAweEFDLCAweDlCLCAweDY1LCAweDFCLCAweEJFLCAweDVCLCAweERD
LCAweERDLCAweDhFLCAweEYwLCAweEFELCAweDJDLAorICAgIDB4MUMsIDB4MUYsIDB4RkIsIDB4
MzYsIDB4RDEsIDB4ODcsIDB4MTUsIDB4RDQsIDB4MkUsIDB4NzgsIDB4QjIsIDB4NDksCisgICAg
MHgyMiwgMHg0RiwgMHg5MiwgMHhDNywgMHhFNiwgMHhFNywgMHhBMCwgMHg1QywgMHg0OSwgMHhG
MCwgMHhFNywgMHhFNCwKKyAgICAweEM4LCAweDgxLCAweEJGLCAweDJFLCAweDk0LCAweEY0LCAw
eDVFLCAweDRBLCAweDIxLCAweDgzLCAweDNELCAweDc0LAorICAgIDB4NTYsIDB4ODUsIDB4MUQs
IDB4MEYsIDB4NkMsIDB4MTQsIDB4NUEsIDB4MjksIDB4NTQsIDB4MEMsIDB4ODcsIDB4NEYsCisg
ICAgMHgzMCwgMHg5MiwgMHhDOSwgMHgzNCwgMHhCNCwgMHgzRCwgMHgyMiwgMHgyQiwgMHg4OSwg
MHg2MiwgMHhDMCwgMHhGNCwKKyAgICAweDEwLCAweENFLCAweEYxLCAweERCLCAweDc1LCAweDg5
LCAweDJBLCAweEYxLCAweDE2LCAweEI0LCAweDRBLCAweDk2LAorICAgIDB4RjUsIDB4RDMsIDB4
NUEsIDB4REUsIDB4QTMsIDB4ODIsIDB4MkYsIDB4QzcsIDB4MTQsIDB4NkYsIDB4NjAsIDB4MDQs
CisgICAgMHgzOCwgMHg1QiwgMHhDQiwgMHg2OSwgMHhCNiwgMHg1QywgMHg5OSwgMHhFNywgMHhF
QiwgMHg2OSwgMHgxOSwgMHg3OCwKKyAgICAweDY3LCAweDAzLCAweEMwLCAweEQ4LCAweENELCAw
eDQxLCAweEU4LCAweEY3LCAweDVDLCAweENBLCAweDQ0LCAweEFBLAorICAgIDB4OEEsIDB4Qjcs
IDB4MjUsIDB4QUQsIDB4OEUsIDB4NzksIDB4OUYsIDB4RjMsIDB4QTgsIDB4NjksIDB4NkEsIDB4
NkYsCisgICAgMHgxQiwgMHgyNiwgMHg1NiwgMHhFNiwgMHgzMSwgMHhCMSwgMHhFNCwgMHgwMSwg
MHg4MywgMHhDMCwgMHg4RiwgMHhEQSwKKyAgICAweDUzLCAweEZBLCAweDRBLCAweDhGLCAweDg1
LCAweEEwLCAweDU2LCAweDkzLCAweDk0LCAweDRBLCAweEUxLCAweDc5LAorICAgIDB4QTEsIDB4
MzMsIDB4OUQsIDB4MDAsIDB4MkQsIDB4MTUsIDB4Q0EsIDB4QkQsIDB4ODEsIDB4MDAsIDB4OTAs
IDB4RUMsCisgICAgMHg3MiwgMHgyRSwgMHhGNSwgMHhERSwgMHhGOSwgMHg5NiwgMHg1QSwgMHgz
NywgMHgxRCwgMHg0MSwgMHg1RCwgMHg2MiwKKyAgICAweDRCLCAweDY4LCAweEEyLCAweDcwLCAw
eDdDLCAweEFELCAweDk3LCAweEJDLCAweERELCAweDE3LCAweDg1LCAweEFGLAorICAgIDB4OTcs
IDB4RTIsIDB4NTgsIDB4RjMsIDB4M0QsIDB4RjUsIDB4NkEsIDB4MDMsIDB4MUEsIDB4QTAsIDB4
MzUsIDB4NkQsCisgICAgMHg4RSwgMHg4RCwgMHg1RSwgMHhCQywgMHhBRCwgMHhDNywgMHg0RSwg
MHgwNywgMHgxNiwgMHgzNiwgMHhDNiwgMHhCMSwKKyAgICAweDEwLCAweEFDLCAweEU1LCAweEND
LCAweDlCLCAweDkwLCAweERGLCAweEVBLCAweENBLCAweEU2LCAweDQwLCAweEZGLAorICAgIDB4
MUIsIDB4QjAsIDB4RjEsIDB4RkUsIDB4NUQsIDB4QjQsIDB4RUYsIDB4RjcsIDB4QTksIDB4NUYs
IDB4MDYsIDB4MDcsCisgICAgMHgzMywgMHhGNSwKK307CisKKy8vIFUyRiByZXNwb25zZSBibG9i
IHByb2R1Y2VkIGJ5IGEgVTJGIHNpZ24gcmVxdWVzdCB1c2VkIGluIGV4YW1wbGUgNyBvZiB0aGUK
Ky8vIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYy
LjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4w
LXBzLTIwMTcwOTI3Lmh0bWwjdXNpbmctdGhlLWN0YXAyLWF1dGhlbnRpY2F0b3JnZXRhc3NlcnRp
b24tY29tbWFuZC13aXRoLWN0YXAxLXUyZi1hdXRoZW50aWNhdG9ycworY29uc3RleHByIHVpbnQ4
X3Qga1Rlc3RVMmZTaWduUmVzcG9uc2VbXSA9IHsKKyAgICAvLyBVc2VyIHByZXNlbmNlCisgICAg
MHgwMSwKKyAgICAvLyBTaWduIGNvdW50KDQgYnl0ZXMpCisgICAgMHgwMCwgMHgwMCwgMHgwMCwg
MHgzQiwKKyAgICAvLyBTaWduYXR1cmUKKyAgICAweDMwLCAweDQ0LCAweDAyLCAweDIwLCAweDdC
LCAweERFLCAweDBBLCAweDUyLCAweEFDLCAweDFGLCAweDRDLCAweDhCLAorICAgIDB4MjcsIDB4
RTAsIDB4MDMsIDB4QTMsIDB4NzAsIDB4Q0QsIDB4NjYsIDB4QTQsIDB4QzcsIDB4MTEsIDB4OEQs
IDB4RDIsCisgICAgMHgyRCwgMHg1NCwgMHg0NywgMHg4MywgMHg1RiwgMHg0NSwgMHhCOSwgMHg5
QywgMHg2OCwgMHg0MiwgMHgzRiwgMHhGNywKKyAgICAweDAyLCAweDIwLCAweDNDLCAweDUxLCAw
eDdCLCAweDQ3LCAweDg3LCAweDdGLCAweDg1LCAweDc4LCAweDJELCAweEUxLAorICAgIDB4MDAs
IDB4ODYsIDB4QTcsIDB4ODMsIDB4RDEsIDB4RTcsIDB4REYsIDB4NEUsIDB4MzYsIDB4MzksIDB4
RTcsIDB4NzEsCisgICAgMHhGNSwgMHhGNiwgMHhBRiwgMHhBMywgMHg1QSwgMHhBRCwgMHg1Mywg
MHg3MywgMHg4NSwgMHg4RSwKK307CisKKy8vIENUQVAgcmVxdWVzdHMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitjb25zdGV4
cHIgdWludDhfdCBrQ3RhcE1ha2VDcmVkZW50aWFsUmVxdWVzdFtdID0geworICAgIC8vIGF1dGhl
bnRpY2F0b3JNYWtlQ3JlZGVudGlhbCBjb21tYW5kCisgICAgMHgwMSwKKyAgICAvLyBtYXAoNSkK
KyAgICAweGE1LAorICAgIC8vIGtleSgxKSAtIGNsaWVudERhdGFIYXNoCisgICAgMHgwMSwKKyAg
ICAvLyBieXRlcygzMikKKyAgICAweDU4LCAweDIwLCAweDY4LCAweDcxLCAweDM0LCAweDk2LCAw
eDgyLCAweDIyLCAweGVjLCAweDE3LCAweDIwLCAweDJlLAorICAgIDB4NDIsIDB4NTAsIDB4NWYs
IDB4OGUsIDB4ZDIsIDB4YjEsIDB4NmEsIDB4ZTIsIDB4MmYsIDB4MTYsIDB4YmIsIDB4MDUsCisg
ICAgMHhiOCwgMHg4YywgMHgyNSwgMHhkYiwgMHg5ZSwgMHg2MCwgMHgyNiwgMHg0NSwgMHhmMSwg
MHg0MSwKKyAgICAvLyBrZXkoMikgLSBycAorICAgIDB4MDIsCisgICAgLy8gbWFwKDIpCisgICAg
MHhhMiwKKyAgICAvLyBrZXkgLSAiaWQiCisgICAgMHg2MiwgMHg2OSwgMHg2NCwKKyAgICAvLyB2
YWx1ZSAtICJhY21lLmNvbSIKKyAgICAweDY4LCAweDYxLCAweDYzLCAweDZkLCAweDY1LCAweDJl
LCAweDYzLCAweDZmLCAweDZkLAorICAgIC8vIGtleSAtICAibmFtZSIKKyAgICAweDY0LCAweDZl
LCAweDYxLCAweDZkLCAweDY1LAorICAgIC8vIHZhbHVlIC0gIkFjbWUiCisgICAgMHg2NCwgMHg0
MSwgMHg2MywgMHg2ZCwgMHg2NSwKKyAgICAvLyBrZXkoMykgLSB1c2VyCisgICAgMHgwMywKKyAg
ICAvLyBtYXAoNCkKKyAgICAweGE0LAorICAgIC8vIGtleSAtICJpZCIKKyAgICAweDYyLCAweDY5
LCAweDY0LAorICAgIC8vIHZhbHVlIC0gdXNlciBpZAorICAgIDB4NDgsIDB4MTAsIDB4OTgsIDB4
MjMsIDB4NzIsIDB4MzUsIDB4NDAsIDB4OTgsIDB4NzIsCisgICAgLy8ga2V5IC0gImljb24iCisg
ICAgMHg2NCwgMHg2OSwgMHg2MywgMHg2ZiwgMHg2ZSwKKyAgICAvLyB2YWx1ZSAtICJodHRwczov
L3BpY3MuYWNtZS5jb20vMDAvcC9hQmpqanBxUGIucG5nIgorICAgIDB4NzgsIDB4MjgsIDB4Njgs
IDB4NzQsIDB4NzQsIDB4NzAsIDB4NzMsIDB4M2EsIDB4MmYsIDB4MmYsIDB4NzAsIDB4NjksCisg
ICAgMHg2MywgMHg3MywgMHgyZSwgMHg2MSwgMHg2MywgMHg2ZCwgMHg2NSwgMHgyZSwgMHg2Mywg
MHg2ZiwgMHg2ZCwgMHgyZiwKKyAgICAweDMwLCAweDMwLCAweDJmLCAweDcwLCAweDJmLCAweDYx
LCAweDQyLCAweDZhLCAweDZhLCAweDZhLCAweDcwLCAweDcxLAorICAgIDB4NTAsIDB4NjIsIDB4
MmUsIDB4NzAsIDB4NmUsIDB4NjcsCisgICAgLy8ga2V5IC0gIm5hbWUiCisgICAgMHg2NCwgMHg2
ZSwgMHg2MSwgMHg2ZCwgMHg2NSwKKyAgICAvLyB2YWx1ZSAtICJqb2hucHNtaXRoQGV4YW1wbGUu
Y29tIgorICAgIDB4NzYsIDB4NmEsIDB4NmYsIDB4NjgsIDB4NmUsIDB4NzAsIDB4NzMsIDB4NmQs
IDB4NjksIDB4NzQsIDB4NjgsIDB4NDAsCisgICAgMHg2NSwgMHg3OCwgMHg2MSwgMHg2ZCwgMHg3
MCwgMHg2YywgMHg2NSwgMHgyZSwgMHg2MywgMHg2ZiwgMHg2ZCwKKyAgICAvLyBrZXkgLSAiZGlz
cGxheU5hbWUiCisgICAgMHg2YiwgMHg2NCwgMHg2OSwgMHg3MywgMHg3MCwgMHg2YywgMHg2MSwg
MHg3OSwgMHg0ZSwgMHg2MSwgMHg2ZCwgMHg2NSwKKyAgICAvLyB2YWx1ZSAtICJKb2huIFAuIFNt
aXRoIgorICAgIDB4NmQsIDB4NGEsIDB4NmYsIDB4NjgsIDB4NmUsIDB4MjAsIDB4NTAsIDB4MmUs
IDB4MjAsIDB4NTMsIDB4NmQsIDB4NjksCisgICAgMHg3NCwgMHg2OCwKKyAgICAvLyBrZXkoNCkg
LSBwdWJLZXlDcmVkUGFyYW1zCisgICAgMHgwNCwKKyAgICAvLyBhcnJheSgyKQorICAgIDB4ODIs
CisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyBrZXkgLSAiYWxnIgorICAgIDB4NjMs
IDB4NjEsIDB4NmMsIDB4NjcsCisgICAgLy8gdmFsdWUgLSA3CisgICAgMHgwNywKKyAgICAvLyBr
ZXkgLSAidHlwZSIKKyAgICAweDY0LCAweDc0LCAweDc5LCAweDcwLCAweDY1LAorICAgIC8vIHZh
bHVlIC0gInB1YmxpYy1rZXkiCisgICAgMHg2YSwgMHg3MCwgMHg3NSwgMHg2MiwgMHg2QywgMHg2
OSwgMHg2MywgMHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAgICAvLyBtYXAoMikKKyAgICAweGEy
LAorICAgIC8vIGtleSAtICJhbGciCisgICAgMHg2MywgMHg2MSwgMHg2YywgMHg2NywKKyAgICAv
LyB2YWx1ZSAtIDI1NworICAgIDB4MTksIDB4MDEsIDB4MDEsCisgICAgLy8ga2V5IC0gInR5cGUi
CisgICAgMHg2NCwgMHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwgLy8gInR5cGUiCisgICAgLy8gdmFs
dWUgLSAicHVibGljLWtleSIKKyAgICAweDZhLCAweDcwLCAweDc1LCAweDYyLCAweDZDLCAweDY5
LCAweDYzLCAweDJELCAweDZCLCAweDY1LCAweDc5LAorICAgIC8vIGtleSg3KSAtIG9wdGlvbnMK
KyAgICAweDA3LAorICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8ga2V5IC0gInJrIgor
ICAgIDB4NjIsIDB4NzIsIDB4NmIsCisgICAgLy8gVHJ1ZSgyMSkKKyAgICAweGY1LAorICAgIC8v
IGtleSAtICJ1diIKKyAgICAweDYyLCAweDc1LCAweDc2LAorICAgIC8vIFRydWUoMjEpCisgICAg
MHhmNX07CisKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0Q29tcGxleEN0YXBHZXRBc3NlcnRpb25S
ZXF1ZXN0W10gPSB7CisgICAgLy8gYXV0aGVudGljYXRvckdldEFzc2VydGlvbiBjb21tYW5kCisg
ICAgMHgwMiwKKyAgICAvLyBtYXAoNCkKKyAgICAweGE0LAorICAgIC8vIGtleSgwMSkgLXJwSWQK
KyAgICAweDAxLAorICAgIC8vIHZhbHVlIC0gImFjbWUuY29tIgorICAgIDB4NjgsIDB4NjEsIDB4
NjMsIDB4NmQsIDB4NjUsIDB4MmUsIDB4NjMsIDB4NmYsIDB4NmQsCisgICAgLy8ga2V5KDAyKSAt
IGNsaWVudCBkYXRhIGhhc2gKKyAgICAweDAyLAorICAgIC8vIHZhbHVlIC0gYnl0ZXMoMzIpCisg
ICAgMHg1OCwgMHgyMCwgMHg2OCwgMHg3MSwgMHgzNCwgMHg5NiwgMHg4MiwgMHgyMiwgMHhlYywg
MHgxNywgMHgyMCwgMHgyZSwKKyAgICAweDQyLCAweDUwLCAweDVmLCAweDhlLCAweGQyLCAweGIx
LCAweDZhLCAweGUyLCAweDJmLCAweDE2LCAweGJiLCAweDA1LAorICAgIDB4YjgsIDB4OGMsIDB4
MjUsIDB4ZGIsIDB4OWUsIDB4NjAsIDB4MjYsIDB4NDUsIDB4ZjEsIDB4NDEsCisgICAgLy8ga2V5
KDAzKSAtIGFsbG93IGxpc3QKKyAgICAweDAzLAorICAgIC8vIHZhbHVlIC0gYXJyYXkoMikKKyAg
ICAweDgyLAorICAgIC8vIG1hcCgyKQorICAgIDB4YTIsCisgICAgLy8ga2V5IC0gImlkIgorICAg
IDB4NjIsIDB4NjksIDB4NjQsCisgICAgLy8gdmFsdWUgLSBjcmVkZW50aWFsIElECisgICAgMHg1
OCwgMHg0MCwgMHhmMiwgMHgyMCwgMHgwNiwgMHhkZSwgMHg0ZiwgMHg5MCwgMHg1YSwgMHhmNiwg
MHg4YSwgMHg0MywKKyAgICAweDk0LCAweDJmLCAweDAyLCAweDRmLCAweDJhLCAweDVlLCAweGNl
LCAweDYwLCAweDNkLCAweDljLCAweDZkLCAweDRiLAorICAgIDB4M2QsIDB4ZjgsIDB4YmUsIDB4
MDgsIDB4ZWQsIDB4MDEsIDB4ZmMsIDB4NDQsIDB4MjYsIDB4NDYsIDB4ZDAsIDB4MzQsCisgICAg
MHg4NSwgMHg4YSwgMHhjNywgMHg1YiwgMHhlZCwgMHgzZiwgMHhkNSwgMHg4MCwgMHhiZiwgMHg5
OCwgMHgwOCwgMHhkOSwKKyAgICAweDRmLCAweGNiLCAweGVlLCAweDgyLCAweGI5LCAweGIyLCAw
eGVmLCAweDY2LCAweDc3LCAweGFmLCAweDBhLCAweGRjLAorICAgIDB4YzMsIDB4NTgsIDB4NTIs
IDB4ZWEsIDB4NmIsIDB4OWUsCisgICAgLy8ga2V5IC0gInR5cGUiCisgICAgMHg2NCwgMHg3NCwg
MHg3OSwgMHg3MCwgMHg2NSwKKyAgICAvLyB2YWx1ZSAtICJwdWJsaWMta2V5IgorICAgIDB4NmEs
IDB4NzAsIDB4NzUsIDB4NjIsIDB4NkMsIDB4NjksIDB4NjMsIDB4MkQsIDB4NkIsIDB4NjUsIDB4
NzksCisgICAgLy8gbWFwKDIpCisgICAgMHhhMiwKKyAgICAvLyBrZXkgLSAiaWQiCisgICAgMHg2
MiwgMHg2OSwgMHg2NCwKKyAgICAvLyB2YWx1ZSAtIGNyZWRlbnRpYWwgSUQKKyAgICAweDU4LCAw
eDMyLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAz
LCAweDAzLAorICAgIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4
MDMsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywg
MHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHgwMywKKyAgICAweDAz
LCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAweDAzLCAw
eDAzLCAweDAzLAorICAgIDB4MDMsIDB4MDMsIDB4MDMsIDB4MDMsCisgICAgLy8ga2V5IC0gInR5
cGUiCisgICAgMHg2NCwgMHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwKKyAgICAvLyB2YWx1ZSAtICJw
dWJsaWMta2V5IgorICAgIDB4NmEsIDB4NzAsIDB4NzUsIDB4NjIsIDB4NkMsIDB4NjksIDB4NjMs
IDB4MkQsIDB4NkIsIDB4NjUsIDB4NzksCisgICAgLy8gdW5zaWduZWQoNSkgLSBvcHRpb25zCisg
ICAgMHgwNSwKKyAgICAvLyBtYXAoMikKKyAgICAweGEyLAorICAgIC8vIGtleSAtInVwIgorICAg
IDB4NjIsIDB4NzUsIDB4NzAsCisgICAgLy8gdmFsdWUgLSBGYWxzZSgyMCkKKyAgICAweGY0LAor
ICAgIC8vIGtleSAtICJ1diIKKyAgICAweDYyLCAweDc1LCAweDc2LAorICAgIC8vIHZhbHVlIC0g
VHJ1ZSgyMSkKKyAgICAweGY1LAorfTsKKworLy8gQ1RBUCByZXNwb25zZXMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8g
QSBzYW1wbGUgd2VsbCBmb3JtZWQgcmVzcG9uc2UgdG8gQ1RBUCBBdXRoZW50aWNhdG9yR2V0SW5m
byByZXF1ZXN0LiBDcm9zcworLy8gcGxhdGZvcm0gZGV2aWNlIHRoYXQgc3VwcG9ydHMgcmVzaWRl
bnQga2V5LCBhbmQgdXNlciB2ZXJpZmljYXRpb24uCitjb25zdGV4cHIgdWludDhfdCBrVGVzdEF1
dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2VbXSA9IHsKKyAgICAweDAwLCAweEE2LCAweDAxLCAw
eDgyLCAweDY4LCAweDQ2LCAweDQ5LCAweDQ0LCAweDRGLCAweDVGLCAweDMyLCAweDVGLAorICAg
IDB4MzAsIDB4NjYsIDB4NTUsIDB4MzIsIDB4NDYsIDB4NUYsIDB4NTYsIDB4MzIsIDB4MDIsIDB4
ODIsIDB4NjMsIDB4NzUsCisgICAgMHg3NiwgMHg2RCwgMHg2QiwgMHg2OCwgMHg2RCwgMHg2MSwg
MHg2MywgMHgyRCwgMHg3MywgMHg2NSwgMHg2MywgMHg3MiwKKyAgICAweDY1LCAweDc0LCAweDAz
LCAweDUwLCAweEY4LCAweEEwLCAweDExLCAweEYzLCAweDhDLCAweDBBLCAweDRELCAweDE1LAor
ICAgIDB4ODAsIDB4MDYsIDB4MTcsIDB4MTEsIDB4MUYsIDB4OUUsIDB4REMsIDB4N0QsIDB4MDQs
IDB4QTUsIDB4NjIsIDB4NzIsCisgICAgMHg2QiwgMHhGNSwgMHg2MiwgMHg3NSwgMHg3MCwgMHhG
NSwgMHg2MiwgMHg3NSwgMHg3NiwgMHhGNSwgMHg2NCwgMHg3MCwKKyAgICAweDZDLCAweDYxLCAw
eDc0LCAweEY0LCAweDY5LCAweDYzLCAweDZDLCAweDY5LCAweDY1LCAweDZFLCAweDc0LCAweDUw
LAorICAgIDB4NjksIDB4NkUsIDB4RjQsIDB4MDUsIDB4MTksIDB4MDQsIDB4QjAsIDB4MDYsIDB4
ODEsIDB4MDEsCit9OworCisvLyBBdXRoZW50aWNhdG9yR2V0SW5mbyByZXF1ZXN0IHdpdGggYWxs
IGNvbmZpZ3VyYXRpb25zIGVxdWFsIHRvIHRoYXQgb2YKKy8vIGtUZXN0QXV0aGVudGljYXRvckdl
dEluZm9SZXNwb25zZSBleGNlcHQgcGxhdGZvcm0gZGV2aWNlIG9wdGlvbiBpcyBzZXQgdG8KKy8v
IHRydWUuCitjb25zdGV4cHIgdWludDhfdCBrVGVzdEdldEluZm9SZXNwb25zZVBsYXRmb3JtRGV2
aWNlW10gPSB7CisgICAgMHgwMCwgMHhBNiwgMHgwMSwgMHg4MiwgMHg2OCwgMHg0NiwgMHg0OSwg
MHg0NCwgMHg0RiwgMHg1RiwgMHgzMiwgMHg1RiwKKyAgICAweDMwLCAweDY2LCAweDU1LCAweDMy
LCAweDQ2LCAweDVGLCAweDU2LCAweDMyLCAweDAyLCAweDgyLCAweDYzLCAweDc1LAorICAgIDB4
NzYsIDB4NkQsIDB4NkIsIDB4NjgsIDB4NkQsIDB4NjEsIDB4NjMsIDB4MkQsIDB4NzMsIDB4NjUs
IDB4NjMsIDB4NzIsCisgICAgMHg2NSwgMHg3NCwgMHgwMywgMHg1MCwgMHhGOCwgMHhBMCwgMHgx
MSwgMHhGMywgMHg4QywgMHgwQSwgMHg0RCwgMHgxNSwKKyAgICAweDgwLCAweDA2LCAweDE3LCAw
eDExLCAweDFGLCAweDlFLCAweERDLCAweDdELCAweDA0LCAweEE1LCAweDYyLCAweDcyLAorICAg
IDB4NkIsIDB4RjUsIDB4NjIsIDB4NzUsIDB4NzAsIDB4RjUsIDB4NjIsIDB4NzUsIDB4NzYsIDB4
RjUsIDB4NjQsIDB4NzAsCisgICAgLy8gcGxhdGZvcm0gZGV2aWNlIDogdHJ1ZQorICAgIDB4NkMs
IDB4NjEsIDB4NzQsIDB4RjUsCisgICAgLy8gRW5kIG9mIHBsYXRmb3JtX2RldmljZSBzZXR0aW5n
LgorICAgIDB4NjksIDB4NjMsIDB4NkMsIDB4NjksIDB4NjUsIDB4NkUsIDB4NzQsIDB4NTAsIDB4
NjksIDB4NkUsIDB4RjQsIDB4MDUsCisgICAgMHgxOSwgMHgwNCwgMHhCMCwgMHgwNiwgMHg4MSwg
MHgwMSwKK307CisKKy8vIEEgU2FtcGxlIHdlbGwgZm9ybWVkIHJlc3BvbnNlIHRvIENUQVAgTWFr
ZUNyZWRlbnRpYWwgcmVxdWVzdC4KK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0TWFrZUNyZWRlbnRp
YWxSZXNwb25zZVtdID0geworICAgIC8vIFN1Y2Nlc3Mgc3RhdHVzIGJ5dGUKKyAgICAweDAwLAor
ICAgIC8vIE1hcCgwMykKKyAgICAweGEzLAorICAgIC8vIGtleSgwMSkgLSBGb3JtYXQKKyAgICAw
eDAxLAorICAgIC8vICJwYWNrZWQiCisgICAgMHg2NiwgMHg3MCwgMHg2MSwgMHg2MywgMHg2Yiwg
MHg2NSwgMHg2NCwKKyAgICAvLyBrZXkoMDIpIC0gQXV0aGVudGljYXRvciBEYXRhCisgICAgMHgw
MiwKKyAgICAvLyBCeXRlKDE1NCkKKyAgICAweDU4LCAweDlhLCAweDExLCAweDk0LCAweDIyLCAw
eDhkLCAweGE4LCAweGZkLCAweGJkLCAweGVlLCAweGZkLCAweDI2LAorICAgIDB4MWIsIDB4ZDcs
IDB4YjYsIDB4NTksIDB4NWMsIDB4ZmQsIDB4NzAsIDB4YTUsIDB4MGQsIDB4NzAsIDB4YzYsIDB4
NDAsCisgICAgMHg3YiwgMHhjZiwgMHgwMSwgMHgzZCwgMHhlOSwgMHg2ZCwgMHg0ZSwgMHhmYiwg
MHgxNywgMHhkZSwgMHg0MSwgMHgwMCwKKyAgICAweDAwLCAweDAwLCAweDBiLCAweGY4LCAweGEw
LCAweDExLCAweGYzLCAweDhjLCAweDBhLCAweDRkLCAweDE1LCAweDgwLAorICAgIDB4MDYsIDB4
MTcsIDB4MTEsIDB4MWYsIDB4OWUsIDB4ZGMsIDB4N2QsIDB4MDAsIDB4MTAsIDB4ODksIDB4NTks
IDB4Y2UsCisgICAgMHhhZCwgMHg1YiwgMHg1YywgMHg0OCwgMHgxNiwgMHg0ZSwgMHg4YSwgMHhi
YywgMHhkNiwgMHhkOSwgMHg0MywgMHg1YywKKyAgICAweDZmLCAweGEzLCAweDYzLCAweDYxLCAw
eDZjLCAweDY3LCAweDY1LCAweDQ1LCAweDUzLCAweDMyLCAweDM1LCAweDM2LAorICAgIDB4NjEs
IDB4NzgsIDB4NTgsIDB4MjAsIDB4ZjcsIDB4YzQsIDB4ZjQsIDB4YTYsIDB4ZjEsIDB4ZDcsIDB4
OTUsIDB4MzgsCisgICAgMHhkZiwgMHhhNCwgMHhjOSwgMHhhYywgMHg1MCwgMHg4NCwgMHg4ZCwg
MHhmNywgMHgwOCwgMHhiYywgMHgxYywgMHg5OSwKKyAgICAweGY1LCAweGU2LCAweDBlLCAweDUx
LCAweGI0LCAweDJhLCAweDUyLCAweDFiLCAweDM1LCAweGQzLCAweGI2LCAweDlhLAorICAgIDB4
NjEsIDB4NzksIDB4NTgsIDB4MjAsIDB4ZGUsIDB4N2IsIDB4N2QsIDB4NmMsIDB4YTUsIDB4NjQs
IDB4ZTcsIDB4MGUsCisgICAgMHhhMywgMHgyMSwgMHhhNCwgMHhkNSwgMHhkOSwgMHg2ZSwgMHhh
MCwgMHgwZSwgMHhmMCwgMHhlMiwgMHhkYiwgMHg4OSwKKyAgICAweGRkLCAweDYxLCAweGQ0LCAw
eDg5LCAweDRjLCAweDE1LCAweGFjLCAweDU4LCAweDViLCAweGQyLCAweDM2LCAweDg0LAorICAg
IC8vIEtleSgwMykgLSBBdHRlc3RhdGlvbiBvYmplY3QKKyAgICAweDAzLAorICAgIC8vIE1hcCAt
IEF0dGVzdGF0aW9uIG9iamVjdAorICAgIDB4YTMsIDB4NjMsIDB4NjEsIDB4NmMsIDB4NjcsIDB4
MjYsIDB4NjMsIDB4NzMsIDB4NjksIDB4NjcsIDB4NTgsIDB4NDcsCisgICAgMHgzMCwgMHg0NSwg
MHgwMiwgMHgyMCwgMHgxMywgMHhmNywgMHgzYywgMHg1ZCwgMHg5ZCwgMHg1MywgMHgwZSwgMHg4
YywKKyAgICAweGMxLCAweDVjLCAweGM5LCAweGJkLCAweDk2LCAweGFkLCAweDU4LCAweDZkLCAw
eDM5LCAweDM2LCAweDY0LCAweGU0LAorICAgIDB4NjIsIDB4ZDUsIDB4ZjAsIDB4NTYsIDB4MTIs
IDB4MzUsIDB4ZTYsIDB4MzUsIDB4MGYsIDB4MmIsIDB4NzIsIDB4ODksCisgICAgMHgwMiwgMHgy
MSwgMHgwMCwgMHg5MCwgMHgzNSwgMHg3ZiwgMHhmOSwgMHgxMCwgMHhjYywgMHhiNSwgMHg2YSwg
MHhjNSwKKyAgICAweGI1LCAweDk2LCAweDUxLCAweDE5LCAweDQ4LCAweDU4LCAweDFjLCAweDhm
LCAweGRkLCAweGI0LCAweGEyLCAweGI3LAorICAgIDB4OTksIDB4NTksIDB4OTQsIDB4ODAsIDB4
NzgsIDB4YjAsIDB4OWYsIDB4NGIsIDB4ZGMsIDB4NjIsIDB4MjksIDB4NjMsCisgICAgMHg3OCwg
MHgzNSwgMHg2MywgMHg4MSwgMHg1OSwgMHgwMSwgMHg5NywgMHgzMCwgMHg4MiwgMHgwMSwgMHg5
MywgMHgzMCwKKyAgICAweDgyLCAweDAxLCAweDM4LCAweGEwLCAweDAzLCAweDAyLCAweDAxLCAw
eDAyLCAweDAyLCAweDA5LCAweDAwLCAweDg1LAorICAgIDB4OWIsIDB4NzIsIDB4NmMsIDB4YjIs
IDB4NGIsIDB4NGMsIDB4MjksIDB4MzAsIDB4MGEsIDB4MDYsIDB4MDgsIDB4MmEsCisgICAgMHg4
NiwgMHg0OCwgMHhjZSwgMHgzZCwgMHgwNCwgMHgwMywgMHgwMiwgMHgzMCwgMHg0NywgMHgzMSwg
MHgwYiwgMHgzMCwKKyAgICAweDA5LCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDA2LCAweDEz
LCAweDAyLCAweDU1LCAweDUzLCAweDMxLCAweDE0LAorICAgIDB4MzAsIDB4MTIsIDB4MDYsIDB4
MDMsIDB4NTUsIDB4MDQsIDB4MGEsIDB4MGMsIDB4MGIsIDB4NTksIDB4NzUsIDB4NjIsCisgICAg
MHg2OSwgMHg2MywgMHg2ZiwgMHgyMCwgMHg1NCwgMHg2NSwgMHg3MywgMHg3NCwgMHgzMSwgMHgy
MiwgMHgzMCwgMHgyMCwKKyAgICAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDBiLCAweDBjLCAw
eDE5LCAweDQxLCAweDc1LCAweDc0LCAweDY4LCAweDY1LAorICAgIDB4NmUsIDB4NzQsIDB4Njks
IDB4NjMsIDB4NjEsIDB4NzQsIDB4NmYsIDB4NzIsIDB4MjAsIDB4NDEsIDB4NzQsIDB4NzQsCisg
ICAgMHg2NSwgMHg3MywgMHg3NCwgMHg2MSwgMHg3NCwgMHg2OSwgMHg2ZiwgMHg2ZSwgMHgzMCwg
MHgxZSwgMHgxNywgMHgwZCwKKyAgICAweDMxLCAweDM2LCAweDMxLCAweDMyLCAweDMwLCAweDM0
LCAweDMxLCAweDMxLCAweDM1LCAweDM1LCAweDMwLCAweDMwLAorICAgIDB4NWEsIDB4MTcsIDB4
MGQsIDB4MzIsIDB4MzYsIDB4MzEsIDB4MzIsIDB4MzAsIDB4MzIsIDB4MzEsIDB4MzEsIDB4MzUs
CisgICAgMHgzNSwgMHgzMCwgMHgzMCwgMHg1YSwgMHgzMCwgMHg0NywgMHgzMSwgMHgwYiwgMHgz
MCwgMHgwOSwgMHgwNiwgMHgwMywKKyAgICAweDU1LCAweDA0LCAweDA2LCAweDEzLCAweDAyLCAw
eDU1LCAweDUzLCAweDMxLCAweDE0LCAweDMwLCAweDEyLCAweDA2LAorICAgIDB4MDMsIDB4NTUs
IDB4MDQsIDB4MGEsIDB4MGMsIDB4MGIsIDB4NTksIDB4NzUsIDB4NjIsIDB4NjksIDB4NjMsIDB4
NmYsCisgICAgMHgyMCwgMHg1NCwgMHg2NSwgMHg3MywgMHg3NCwgMHgzMSwgMHgyMiwgMHgzMCwg
MHgyMCwgMHgwNiwgMHgwMywgMHg1NSwKKyAgICAweDA0LCAweDBiLCAweDBjLCAweDE5LCAweDQx
LCAweDc1LCAweDc0LCAweDY4LCAweDY1LCAweDZlLCAweDc0LCAweDY5LAorICAgIDB4NjMsIDB4
NjEsIDB4NzQsIDB4NmYsIDB4NzIsIDB4MjAsIDB4NDEsIDB4NzQsIDB4NzQsIDB4NjUsIDB4NzMs
IDB4NzQsCisgICAgMHg2MSwgMHg3NCwgMHg2OSwgMHg2ZiwgMHg2ZSwgMHgzMCwgMHg1OSwgMHgz
MCwgMHgxMywgMHgwNiwgMHgwNywgMHgyYSwKKyAgICAweDg2LCAweDQ4LCAweGNlLCAweDNkLCAw
eDAyLCAweDAxLCAweDA2LCAweDA4LCAweDJhLCAweDg2LCAweDQ4LCAweGNlLAorICAgIDB4M2Qs
IDB4MDMsIDB4MDEsIDB4MDcsIDB4MDMsIDB4NDIsIDB4MDAsIDB4MDQsIDB4YWQsIDB4MTEsIDB4
ZWIsIDB4MGUsCisgICAgMHg4OCwgMHg1MiwgMHhlNSwgMHgzYSwgMHhkNSwgMHhkZiwgMHhlZCwg
MHg4NiwgMHhiNCwgMHgxZSwgMHg2MSwgMHgzNCwKKyAgICAweGExLCAweDhlLCAweGM0LCAweGUx
LCAweGFmLCAweDhmLCAweDIyLCAweDFhLCAweDNjLCAweDdkLCAweDZlLCAweDYzLAorICAgIDB4
NmMsIDB4ODAsIDB4ZWEsIDB4MTMsIDB4YzMsIDB4ZDUsIDB4MDQsIDB4ZmYsIDB4MmUsIDB4NzYs
IDB4MjEsIDB4MWIsCisgICAgMHhiNCwgMHg0NSwgMHgyNSwgMHhiMSwgMHg5NiwgMHhjNCwgMHg0
YywgMHhiNCwgMHg4NCwgMHg5OSwgMHg3OSwgMHhjZiwKKyAgICAweDZmLCAweDg5LCAweDZlLCAw
eGNkLCAweDJiLCAweGI4LCAweDYwLCAweGRlLCAweDFiLCAweGY0LCAweDM3LCAweDZiLAorICAg
IDB4YTMsIDB4MGQsIDB4MzAsIDB4MGIsIDB4MzAsIDB4MDksIDB4MDYsIDB4MDMsIDB4NTUsIDB4
MWQsIDB4MTMsIDB4MDQsCisgICAgMHgwMiwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwYSwgMHgwNiwg
MHgwOCwgMHgyYSwgMHg4NiwgMHg0OCwgMHhjZSwgMHgzZCwKKyAgICAweDA0LCAweDAzLCAweDAy
LCAweDAzLCAweDQ5LCAweDAwLCAweDMwLCAweDQ2LCAweDAyLCAweDIxLCAweDAwLCAweGU5LAor
ICAgIDB4YTMsIDB4OWYsIDB4MWIsIDB4MDMsIDB4MTksIDB4NzUsIDB4MjUsIDB4ZjcsIDB4Mzcs
IDB4M2UsIDB4MTAsIDB4Y2UsCisgICAgMHg3NywgMHhlNywgMHg4MCwgMHgyMSwgMHg3MywgMHgx
YiwgMHg5NCwgMHhkMCwgMHhjMCwgMHgzZiwgMHgzZiwgMHhkYSwKKyAgICAweDFmLCAweGQyLCAw
eDJkLCAweGIzLCAweGQwLCAweDMwLCAweGU3LCAweDAyLCAweDIxLCAweDAwLCAweGM0LCAweGZh
LAorICAgIDB4ZWMsIDB4MzQsIDB4NDUsIDB4YTgsIDB4MjAsIDB4Y2YsIDB4NDMsIDB4MTIsIDB4
OWMsIDB4ZGIsIDB4MDAsIDB4YWEsCisgICAgMHhiZSwgMHhmZCwgMHg5YSwgMHhlMiwgMHhkOCwg
MHg3NCwgMHhmOSwgMHhjNSwgMHhkMywgMHg0MywgMHhjYiwgMHgyZiwKKyAgICAweDExLCAweDNk
LCAweGEyLCAweDM3LCAweDIzLCAweGYzLAorfTsKKworLy8gQmVsb3cgfGtDdGFwMk1ha2VDcmVk
ZW50aWFsQ2VydGlmaWNhdGV8LCB8a0N0YXAyTWFrZUNyZWRlbnRpYWxBdXRoRGF0YXwsIGFuZAor
Ly8gfGtDdGFwMk1ha2VDcmVkZW50aWFsU2lnbmF0dXJlfCBsZXZlcmFnZSBleGFtcGxlIDQgb2Yg
dGhlIENUQVAgc3BlYy4KKy8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYy
LjAtcHMtMjAxNzA5MjcvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4w
LXBzLTIwMTcwOTI3Lmh0bWwKK2NvbnN0ZXhwciB1aW50OF90IGtDdGFwMk1ha2VDcmVkZW50aWFs
Q2VydGlmaWNhdGVbXSA9IHsKKyAgICAweDMwLCAweDgyLCAweDAxLCAweDkzLCAweDMwLCAweDgy
LCAweDAxLCAweDM4LCAweGEwLCAweDAzLCAweDAyLCAweDAxLAorICAgIDB4MDIsIDB4MDIsIDB4
MDksIDB4MDAsIDB4ODUsIDB4OWIsIDB4NzIsIDB4NmMsIDB4YjIsIDB4NGIsIDB4NGMsIDB4Mjks
CisgICAgMHgzMCwgMHgwYSwgMHgwNiwgMHgwOCwgMHgyYSwgMHg4NiwgMHg0OCwgMHhjZSwgMHgz
ZCwgMHgwNCwgMHgwMywgMHgwMiwKKyAgICAweDMwLCAweDQ3LCAweDMxLCAweDBiLCAweDMwLCAw
eDA5LCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDA2LCAweDEzLAorICAgIDB4MDIsIDB4NTUs
IDB4NTMsIDB4MzEsIDB4MTQsIDB4MzAsIDB4MTIsIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4
MGEsCisgICAgMHgwYywgMHgwYiwgMHg1OSwgMHg3NSwgMHg2MiwgMHg2OSwgMHg2MywgMHg2Ziwg
MHgyMCwgMHg1NCwgMHg2NSwgMHg3MywKKyAgICAweDc0LCAweDMxLCAweDIyLCAweDMwLCAweDIw
LCAweDA2LCAweDAzLCAweDU1LCAweDA0LCAweDBiLCAweDBjLCAweDE5LAorICAgIDB4NDEsIDB4
NzUsIDB4NzQsIDB4NjgsIDB4NjUsIDB4NmUsIDB4NzQsIDB4NjksIDB4NjMsIDB4NjEsIDB4NzQs
IDB4NmYsCisgICAgMHg3MiwgMHgyMCwgMHg0MSwgMHg3NCwgMHg3NCwgMHg2NSwgMHg3MywgMHg3
NCwgMHg2MSwgMHg3NCwgMHg2OSwgMHg2ZiwKKyAgICAweDZlLCAweDMwLCAweDFlLCAweDE3LCAw
eDBkLCAweDMxLCAweDM2LCAweDMxLCAweDMyLCAweDMwLCAweDM0LCAweDMxLAorICAgIDB4MzEs
IDB4MzUsIDB4MzUsIDB4MzAsIDB4MzAsIDB4NWEsIDB4MTcsIDB4MGQsIDB4MzIsIDB4MzYsIDB4
MzEsIDB4MzIsCisgICAgMHgzMCwgMHgzMiwgMHgzMSwgMHgzMSwgMHgzNSwgMHgzNSwgMHgzMCwg
MHgzMCwgMHg1YSwgMHgzMCwgMHg0NywgMHgzMSwKKyAgICAweDBiLCAweDMwLCAweDA5LCAweDA2
LCAweDAzLCAweDU1LCAweDA0LCAweDA2LCAweDEzLCAweDAyLCAweDU1LCAweDUzLAorICAgIDB4
MzEsIDB4MTQsIDB4MzAsIDB4MTIsIDB4MDYsIDB4MDMsIDB4NTUsIDB4MDQsIDB4MGEsIDB4MGMs
IDB4MGIsIDB4NTksCisgICAgMHg3NSwgMHg2MiwgMHg2OSwgMHg2MywgMHg2ZiwgMHgyMCwgMHg1
NCwgMHg2NSwgMHg3MywgMHg3NCwgMHgzMSwgMHgyMiwKKyAgICAweDMwLCAweDIwLCAweDA2LCAw
eDAzLCAweDU1LCAweDA0LCAweDBiLCAweDBjLCAweDE5LCAweDQxLCAweDc1LCAweDc0LAorICAg
IDB4NjgsIDB4NjUsIDB4NmUsIDB4NzQsIDB4NjksIDB4NjMsIDB4NjEsIDB4NzQsIDB4NmYsIDB4
NzIsIDB4MjAsIDB4NDEsCisgICAgMHg3NCwgMHg3NCwgMHg2NSwgMHg3MywgMHg3NCwgMHg2MSwg
MHg3NCwgMHg2OSwgMHg2ZiwgMHg2ZSwgMHgzMCwgMHg1OSwKKyAgICAweDMwLCAweDEzLCAweDA2
LCAweDA3LCAweDJhLCAweDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDAyLCAweDAxLCAweDA2LAor
ICAgIDB4MDgsIDB4MmEsIDB4ODYsIDB4NDgsIDB4Y2UsIDB4M2QsIDB4MDMsIDB4MDEsIDB4MDcs
IDB4MDMsIDB4NDIsIDB4MDAsCisgICAgMHgwNCwgMHhhZCwgMHgxMSwgMHhlYiwgMHgwZSwgMHg4
OCwgMHg1MiwgMHhlNSwgMHgzYSwgMHhkNSwgMHhkZiwgMHhlZCwKKyAgICAweDg2LCAweGI0LCAw
eDFlLCAweDYxLCAweDM0LCAweGExLCAweDhlLCAweGM0LCAweGUxLCAweGFmLCAweDhmLCAweDIy
LAorICAgIDB4MWEsIDB4M2MsIDB4N2QsIDB4NmUsIDB4NjMsIDB4NmMsIDB4ODAsIDB4ZWEsIDB4
MTMsIDB4YzMsIDB4ZDUsIDB4MDQsCisgICAgMHhmZiwgMHgyZSwgMHg3NiwgMHgyMSwgMHgxYiwg
MHhiNCwgMHg0NSwgMHgyNSwgMHhiMSwgMHg5NiwgMHhjNCwgMHg0YywKKyAgICAweGI0LCAweDg0
LCAweDk5LCAweDc5LCAweGNmLCAweDZmLCAweDg5LCAweDZlLCAweGNkLCAweDJiLCAweGI4LCAw
eDYwLAorICAgIDB4ZGUsIDB4MWIsIDB4ZjQsIDB4MzcsIDB4NmIsIDB4YTMsIDB4MGQsIDB4MzAs
IDB4MGIsIDB4MzAsIDB4MDksIDB4MDYsCisgICAgMHgwMywgMHg1NSwgMHgxZCwgMHgxMywgMHgw
NCwgMHgwMiwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwYSwgMHgwNiwgMHgwOCwKKyAgICAweDJhLCAw
eDg2LCAweDQ4LCAweGNlLCAweDNkLCAweDA0LCAweDAzLCAweDAyLCAweDAzLCAweDQ5LCAweDAw
LCAweDMwLAorICAgIDB4NDYsIDB4MDIsIDB4MjEsIDB4MDAsIDB4ZTksIDB4YTMsIDB4OWYsIDB4
MWIsIDB4MDMsIDB4MTksIDB4NzUsIDB4MjUsCisgICAgMHhmNywgMHgzNywgMHgzZSwgMHgxMCwg
MHhjZSwgMHg3NywgMHhlNywgMHg4MCwgMHgyMSwgMHg3MywgMHgxYiwgMHg5NCwKKyAgICAweGQw
LCAweGMwLCAweDNmLCAweDNmLCAweGRhLCAweDFmLCAweGQyLCAweDJkLCAweGIzLCAweGQwLCAw
eDMwLCAweGU3LAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4YzQsIDB4ZmEsIDB4ZWMsIDB4MzQs
IDB4NDUsIDB4YTgsIDB4MjAsIDB4Y2YsIDB4NDMsCisgICAgMHgxMiwgMHg5YywgMHhkYiwgMHgw
MCwgMHhhYSwgMHhiZSwgMHhmZCwgMHg5YSwgMHhlMiwgMHhkOCwgMHg3NCwgMHhmOSwKKyAgICAw
eGM1LCAweGQzLCAweDQzLCAweGNiLCAweDJmLCAweDExLCAweDNkLCAweGEyLCAweDM3LCAweDIz
LCAweGYzfTsKKworY29uc3RleHByIHVpbnQ4X3Qga0N0YXAyTWFrZUNyZWRlbnRpYWxBdXRoRGF0
YVtdID0geworICAgIDB4MTEsIDB4OTQsIDB4MjIsIDB4OEQsIDB4QTgsIDB4RkQsIDB4QkQsIDB4
RUUsIDB4RkQsIDB4MjYsIDB4MUIsIDB4RDcsCisgICAgMHhCNiwgMHg1OSwgMHg1QywgMHhGRCwg
MHg3MCwgMHhBNSwgMHgwRCwgMHg3MCwgMHhDNiwgMHg0MCwgMHg3QiwgMHhDRiwKKyAgICAweDAx
LCAweDNELCAweEU5LCAweDZELCAweDRFLCAweEZCLCAweDE3LCAweERFLCAweDQxLCAweDAwLCAw
eDAwLCAweDAwLAorICAgIDB4MGIsIDB4ZjgsIDB4YTAsIDB4MTEsIDB4ZjMsIDB4OGMsIDB4MGEs
IDB4NGQsIDB4MTUsIDB4ODAsIDB4MDYsIDB4MTcsCisgICAgMHgxMSwgMHgxZiwgMHg5ZSwgMHhk
YywgMHg3ZCwgMHgwMCwgMHgxMCwgMHg4OSwgMHg1OSwgMHhjZSwgMHhhZCwgMHg1YiwKKyAgICAw
eDVjLCAweDQ4LCAweDE2LCAweDRlLCAweDhhLCAweGJjLCAweGQ2LCAweGQ5LCAweDQzLCAweDVj
LCAweDZmLCAweGEzLAorICAgIDB4NjMsIDB4NjEsIDB4NmMsIDB4NjcsIDB4NjUsIDB4NDUsIDB4
NTMsIDB4MzIsIDB4MzUsIDB4MzYsIDB4NjEsIDB4NzgsCisgICAgMHg1OCwgMHgyMCwgMHhmNywg
MHhjNCwgMHhmNCwgMHhhNiwgMHhmMSwgMHhkNywgMHg5NSwgMHgzOCwgMHhkZiwgMHhhNCwKKyAg
ICAweGM5LCAweGFjLCAweDUwLCAweDg0LCAweDhkLCAweGY3LCAweDA4LCAweGJjLCAweDFjLCAw
eDk5LCAweGY1LCAweGU2LAorICAgIDB4MGUsIDB4NTEsIDB4YjQsIDB4MmEsIDB4NTIsIDB4MWIs
IDB4MzUsIDB4ZDMsIDB4YjYsIDB4OWEsIDB4NjEsIDB4NzksCisgICAgMHg1OCwgMHgyMCwgMHhk
ZSwgMHg3YiwgMHg3ZCwgMHg2YywgMHhhNSwgMHg2NCwgMHhlNywgMHgwZSwgMHhhMywgMHgyMSwK
KyAgICAweGE0LCAweGQ1LCAweGQ5LCAweDZlLCAweGEwLCAweDBlLCAweGYwLCAweGUyLCAweGRi
LCAweDg5LCAweGRkLCAweDYxLAorICAgIDB4ZDQsIDB4ODksIDB4NGMsIDB4MTUsIDB4YWMsIDB4
NTgsIDB4NWIsIDB4ZDIsIDB4MzYsIDB4ODR9OworCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcDJN
YWtlQ3JlZGVudGlhbFNpZ25hdHVyZVtdID0geworICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4MjAs
IDB4MTMsIDB4ZjcsIDB4M2MsIDB4NWQsIDB4OWQsIDB4NTMsIDB4MGUsIDB4OGMsCisgICAgMHhj
MSwgMHg1YywgMHhjOSwgMHhiZCwgMHg5NiwgMHhhZCwgMHg1OCwgMHg2ZCwgMHgzOSwgMHgzNiwg
MHg2NCwgMHhlNCwKKyAgICAweDYyLCAweGQ1LCAweGYwLCAweDU2LCAweDEyLCAweDM1LCAweGU2
LCAweDM1LCAweDBmLCAweDJiLCAweDcyLCAweDg5LAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4
OTAsIDB4MzUsIDB4N2YsIDB4ZjksIDB4MTAsIDB4Y2MsIDB4YjUsIDB4NmEsIDB4YzUsCisgICAg
MHhiNSwgMHg5NiwgMHg1MSwgMHgxOSwgMHg0OCwgMHg1OCwgMHgxYywgMHg4ZiwgMHhkZCwgMHhi
NCwgMHhhMiwgMHhiNywKKyAgICAweDk5LCAweDU5LCAweDk0LCAweDgwLCAweDc4LCAweGIwLCAw
eDlmLCAweDRiLCAweGRjLCAweDYyLCAweDI5fTsKKworY29uc3RleHByIHVpbnQ4X3Qga0N0YXAy
TWFrZUNyZWRlbnRpYWxDcmVkZW50aWFsSWRbXSA9IHsKKyAgICAweDg5LCAweDU5LCAweGNlLCAw
eGFkLCAweDViLCAweDVjLCAweDQ4LCAweDE2LAorICAgIDB4NGUsIDB4OGEsIDB4YmMsIDB4ZDYs
IDB4ZDksIDB4NDMsIDB4NWMsIDB4NmYsCit9OworCitjb25zdGV4cHIgdWludDhfdCBrQ3RhcDJH
ZXRBc3NlcnRpb25BdXRoRGF0YVtdID0geworICAgIDB4NjIsIDB4NWQsIDB4ZGEsIDB4ZGYsIDB4
NzQsIDB4M2YsIDB4NTcsIDB4MjcsIDB4ZTYsIDB4NmIsCisgICAgMHhiYSwgMHg4YywgMHgyZSwg
MHgzOCwgMHg3OSwgMHgyMiwgMHhkMSwgMHhhZiwgMHg0MywgMHhjNSwKKyAgICAweDAzLCAweGQ5
LCAweDExLCAweDRhLCAweDhmLCAweGJhLCAweDEwLCAweDRkLCAweDg0LCAweGQwLAorICAgIDB4
MmIsIDB4ZmEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTF9OworCitjb25zdGV4cHIgdWlu
dDhfdCBrQ3RhcDJHZXRBc3NlcnRpb25TaWduYXR1cmVbXSA9IHsKKyAgICAweDMwLCAweDQ1LCAw
eDAyLCAweDIwLCAweDRhLCAweDVhLCAweDlkLCAweGQzLCAweDkyLCAweDk4LCAweDE0LCAweDlk
LAorICAgIDB4OTAsIDB4NDcsIDB4NjksIDB4YjUsIDB4MWEsIDB4NDUsIDB4MTQsIDB4MzMsIDB4
MDAsIDB4NmYsIDB4MTgsIDB4MmEsCisgICAgMHgzNCwgMHhmYiwgMHhkZiwgMHg2NiwgMHhkZSwg
MHg1ZiwgMHhjNywgMHgxNywgMHhkNywgMHg1ZiwgMHhiMywgMHg1MCwKKyAgICAweDAyLCAweDIx
LCAweDAwLCAweGE0LCAweDZiLCAweDhlLCAweGEzLCAweGMzLCAweGI5LCAweDMzLCAweDgyLCAw
eDFjLAorICAgIDB4NmUsIDB4N2YsIDB4NWUsIDB4ZjksIDB4ZGEsIDB4YWUsIDB4OTQsIDB4YWIs
IDB4NDcsIDB4ZjEsIDB4OGQsIDB4YjQsCisgICAgMHg3NCwgMHhjNywgMHg0NywgMHg5MCwgMHhl
YSwgMHhhYiwgMHhiMSwgMHg0NCwgMHgxMSwgMHhlNywgMHhhMCwKK307CisKK2NvbnN0ZXhwciB1
aW50OF90IGtEZXZpY2VHZXRBc3NlcnRpb25SZXNwb25zZVtdID0geworICAgIC8vIFN1Y2Nlc3Mg
cmVzcG9uc2UgY29kZQorICAgIDB4MDAsCisgICAgLy8gbWFwKDUpCisgICAgMHhhNSwKKyAgICAv
LyB1bnNpZ25lZCgxKSAtIENyZWRlbnRpYWwKKyAgICAweDAxLAorICAgIC8vIG1hcCgyKQorICAg
IDB4YTIsCisgICAgLy8gdGV4dCgyKQorICAgIDB4NjIsCisgICAgLy8gImlkIgorICAgIDB4Njks
IDB4NjQsCisgICAgLy8gYnl0ZXMoNjQpCisgICAgMHg1OCwgMHg0MCwKKyAgICAvLyBjcmVkZW50
aWFsIGlkCisgICAgMHhmMiwgMHgyMCwgMHgwNiwgMHhkZSwgMHg0ZiwgMHg5MCwgMHg1YSwgMHhm
NiwgMHg4YSwgMHg0MywgMHg5NCwgMHgyZiwKKyAgICAweDAyLCAweDRmLCAweDJhLCAweDVlLCAw
eGNlLCAweDYwLCAweDNkLCAweDljLCAweDZkLCAweDRiLCAweDNkLCAweGY4LAorICAgIDB4YmUs
IDB4MDgsIDB4ZWQsIDB4MDEsIDB4ZmMsIDB4NDQsIDB4MjYsIDB4NDYsIDB4ZDAsIDB4MzQsIDB4
ODUsIDB4OGEsCisgICAgMHhjNywgMHg1YiwgMHhlZCwgMHgzZiwgMHhkNSwgMHg4MCwgMHhiZiwg
MHg5OCwgMHgwOCwgMHhkOSwgMHg0ZiwgMHhjYiwKKyAgICAweGVlLCAweDgyLCAweGI5LCAweGIy
LCAweGVmLCAweDY2LCAweDc3LCAweGFmLCAweDBhLCAweGRjLCAweGMzLCAweDU4LAorICAgIDB4
NTIsIDB4ZWEsIDB4NmIsIDB4OWUsCisgICAgLy8gdGV4dCg0KQorICAgIDB4NjQsCisgICAgLy8g
InR5cGUiCisgICAgMHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwKKyAgICAvLyB0ZXh0KDEwKQorICAg
IDB4NmEsCisgICAgLy8gInB1YmxpYy1rZXkiCisgICAgMHg3MCwgMHg3NSwgMHg2MiwgMHg2Qywg
MHg2OSwgMHg2MywgMHgyRCwgMHg2QiwgMHg2NSwgMHg3OSwKKyAgICAvLyB1bnNpZ25lZCgyKSAt
IEF1dGggZGF0YQorICAgIDB4MDIsCisgICAgLy8gYnl0ZXMoMzcpCisgICAgMHg1OCwgMHgyNSwK
KyAgICAvLyBhdXRoIGRhdGEKKyAgICAweDYyLCAweDVkLCAweGRhLCAweGRmLCAweDc0LCAweDNm
LCAweDU3LCAweDI3LCAweGU2LCAweDZiLCAweGJhLCAweDhjLAorICAgIDB4MmUsIDB4MzgsIDB4
NzksIDB4MjIsIDB4ZDEsIDB4YWYsIDB4NDMsIDB4YzUsIDB4MDMsIDB4ZDksIDB4MTEsIDB4NGEs
CisgICAgMHg4ZiwgMHhiYSwgMHgxMCwgMHg0ZCwgMHg4NCwgMHhkMCwgMHgyYiwgMHhmYSwgMHgw
MSwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDExLAorICAgIC8vIHVuc2lnbmVkKDMpIC0gc2ln
bmF0dXJlCisgICAgMHgwMywKKyAgICAvLyBieXRlcyg3MSkKKyAgICAweDU4LCAweDQ3LAorICAg
IC8vIHNpZ25hdHVyZQorICAgIDB4MzAsIDB4NDUsIDB4MDIsIDB4MjAsIDB4NGEsIDB4NWEsIDB4
OWQsIDB4ZDMsIDB4OTIsIDB4OTgsIDB4MTQsIDB4OWQsCisgICAgMHg5MCwgMHg0NywgMHg2OSwg
MHhiNSwgMHgxYSwgMHg0NSwgMHgxNCwgMHgzMywgMHgwMCwgMHg2ZiwgMHgxOCwgMHgyYSwKKyAg
ICAweDM0LCAweGZiLCAweGRmLCAweDY2LCAweGRlLCAweDVmLCAweGM3LCAweDE3LCAweGQ3LCAw
eDVmLCAweGIzLCAweDUwLAorICAgIDB4MDIsIDB4MjEsIDB4MDAsIDB4YTQsIDB4NmIsIDB4OGUs
IDB4YTMsIDB4YzMsIDB4YjksIDB4MzMsIDB4ODIsIDB4MWMsCisgICAgMHg2ZSwgMHg3ZiwgMHg1
ZSwgMHhmOSwgMHhkYSwgMHhhZSwgMHg5NCwgMHhhYiwgMHg0NywgMHhmMSwgMHg4ZCwgMHhiNCwK
KyAgICAweDc0LCAweGM3LCAweDQ3LCAweDkwLCAweGVhLCAweGFiLCAweGIxLCAweDQ0LCAweDEx
LCAweGU3LCAweGEwLAorICAgIC8vIHVuc2lnbmVkKDQpIC0gcHVibGljS2V5Q3JlZGVudGlhbFVz
ZXJFbnRpdHkKKyAgICAweDA0LAorICAgIC8vIG1hcCg0KQorICAgIDB4YTQsCisgICAgLy8gdGV4
dCgyKQorICAgIDB4NjIsCisgICAgLy8gImlkIgorICAgIDB4NjksIDB4NjQsCisgICAgLy8gYnl0
ZXMoMzIpIC0gdXNlciBpZAorICAgIDB4NTgsIDB4MjAsCisgICAgLy8gdXNlciBpZAorICAgIDB4
MzAsIDB4ODIsIDB4MDEsIDB4OTMsIDB4MzAsIDB4ODIsIDB4MDEsIDB4MzgsIDB4YTAsIDB4MDMs
IDB4MDIsIDB4MDEsCisgICAgMHgwMiwgMHgzMCwgMHg4MiwgMHgwMSwgMHg5MywgMHgzMCwgMHg4
MiwgMHgwMSwgMHgzOCwgMHhhMCwgMHgwMywgMHgwMiwKKyAgICAweDAxLCAweDAyLCAweDMwLCAw
eDgyLCAweDAxLCAweDkzLCAweDMwLCAweDgyLAorICAgIC8vIHRleHQoNCkKKyAgICAweDY0LAor
ICAgIC8vICJpY29uIgorICAgIDB4NjksIDB4NjMsIDB4NmYsIDB4NmUsCisgICAgLy8gdGV4dCg0
MCkKKyAgICAweDc4LCAweDI4LAorICAgIC8vICJodHRwczovL3BpY3MuYWNtZS5jb20vMDAvcC9h
QmpqanBxUGIucG5nIgorICAgIDB4NjgsIDB4NzQsIDB4NzQsIDB4NzAsIDB4NzMsIDB4M2EsIDB4
MmYsIDB4MmYsIDB4NzAsIDB4NjksIDB4NjMsIDB4NzMsCisgICAgMHgyZSwgMHg2MSwgMHg2Mywg
MHg2ZCwgMHg2NSwgMHgyZSwgMHg2MywgMHg2ZiwgMHg2ZCwgMHgyZiwgMHgzMCwgMHgzMCwKKyAg
ICAweDJmLCAweDcwLCAweDJmLCAweDYxLCAweDQyLCAweDZhLCAweDZhLCAweDZhLCAweDcwLCAw
eDcxLCAweDUwLCAweDYyLAorICAgIDB4MmUsIDB4NzAsIDB4NmUsIDB4NjcsCisgICAgLy8gdGV4
dCg0KQorICAgIDB4NjQsCisgICAgLy8gIm5hbWUiCisgICAgMHg2ZSwgMHg2MSwgMHg2ZCwgMHg2
NSwKKyAgICAvLyB0ZXh0KDIyKQorICAgIDB4NzYsCisgICAgLy8gImpvaG5wc21pdGhAZXhhbXBs
ZS5jb20iCisgICAgMHg2YSwgMHg2ZiwgMHg2OCwgMHg2ZSwgMHg3MCwgMHg3MywgMHg2ZCwgMHg2
OSwgMHg3NCwgMHg2OCwgMHg0MCwgMHg2NSwKKyAgICAweDc4LCAweDYxLCAweDZkLCAweDcwLCAw
eDZjLCAweDY1LCAweDJlLCAweDYzLCAweDZmLCAweDZkLAorICAgIC8vIHRleHQoMTEpCisgICAg
MHg2YiwKKyAgICAvLyAiZGlzcGxheU5hbWUiCisgICAgMHg2NCwgMHg2OSwgMHg3MywgMHg3MCwg
MHg2YywgMHg2MSwgMHg3OSwgMHg0ZSwgMHg2MSwgMHg2ZCwgMHg2NSwKKyAgICAvLyB0ZXh0KDEz
KQorICAgIDB4NmQsCisgICAgLy8gIkpvaG4gUC4gU21pdGgiCisgICAgMHg0YSwgMHg2ZiwgMHg2
OCwgMHg2ZSwgMHgyMCwgMHg1MCwgMHgyZSwgMHgyMCwgMHg1MywgMHg2ZCwgMHg2OSwgMHg3NCwK
KyAgICAweDY4LAorICAgIC8vIHVuc2lnbmVkKDUpIC0gbnVtYmVyIG9mIGNyZWRlbnRpYWxzCisg
ICAgMHgwNSwKKyAgICAvLyAxCisgICAgMHgwMSwKK307CisKK30gLy8gbmFtZXNwYWNlIFRlc3RE
YXRhCisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJfQVVUSE4pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>