<?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>161675</bug_id>
          
          <creation_ts>2016-09-06 21:25:19 -0700</creation_ts>
          <short_desc>Swipe gesture tests don&apos;t work on macOS Sierra</short_desc>
          <delta_ts>2017-04-01 07:16:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>170381</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1227040</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-06 21:25:19 -0700</bug_when>
    <thetext>Swipe gesture tests don&apos;t work on macOS Sierra</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227042</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-09-06 22:09:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/23379930&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227056</commentid>
    <comment_count>2</comment_count>
      <attachid>288102</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-06 22:58:11 -0700</bug_when>
    <thetext>Created attachment 288102
First pass for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227058</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-06 23:02:44 -0700</bug_when>
    <thetext>Not for review yet, haven&apos;t written the changelog or cleaned things up all the way yet. And there is one test that I haven&apos;t repaired yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227059</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-06 23:04:09 -0700</bug_when>
    <thetext>Attachment 288102 did not pass style-queue:


ERROR: Tools/WebKitTestRunner/mac/UIScriptControllerMac.mm:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/mac/UIScriptControllerMac.mm:62:  No space between ^ and block definition.  [whitespace/brackets] [4]
ERROR: Tools/TestRunnerShared/spi/CoreGraphicsSPI.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:28:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:35:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:43:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:50:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:59:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:67:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:77:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:86:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:96:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:106:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:116:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:126:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:136:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:146:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:156:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:167:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:177:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:188:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:198:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:215:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:225:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:236:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:246:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:257:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:267:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:278:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:288:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:299:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:309:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:320:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:330:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:342:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:350:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:357:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:154:  No space between ^ and block definition.  [whitespace/brackets] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:164:  No space between ^ and block definition.  [whitespace/brackets] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:176:  No space between ^ and block definition.  [whitespace/brackets] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:185:  No space between ^ and block definition.  [whitespace/brackets] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:262:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:262:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:284:  Missing spaces around /  [whitespace/operators] [3]
Total errors found: 45 in 21 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>1227060</commentid>
    <comment_count>5</comment_count>
      <attachid>288102</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-06 23:07:36 -0700</bug_when>
    <thetext>Comment on attachment 288102
First pass for EWS

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

&gt; Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:83
&gt; +    return eventIsOfGestureType(event, first) || eventIsOfGestureTypes(event, rest...);

smfr, this is for you.

&gt; Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:30
&gt; +#define QUOTE(...) @(#__VA_ARGS__)

this one too :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227296</commentid>
    <comment_count>6</comment_count>
      <attachid>288172</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-07 12:45:54 -0700</bug_when>
    <thetext>Created attachment 288172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227303</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-07 12:50:39 -0700</bug_when>
    <thetext>Attachment 288172 did not pass style-queue:


ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:36:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:44:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:51:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:60:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:68:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:78:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:87:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:97:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:117:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:127:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:137:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:147:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:157:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:168:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:178:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:189:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:199:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:216:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:226:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:237:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:247:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:258:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:268:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:279:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:289:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:300:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:310:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:321:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:331:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:343:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:351:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:358:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:265:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 34 in 20 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>1227308</commentid>
    <comment_count>8</comment_count>
      <attachid>288174</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-07 13:04:01 -0700</bug_when>
    <thetext>Created attachment 288174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227353</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-07 14:35:17 -0700</bug_when>
    <thetext>Attachment 288174 did not pass style-queue:


ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:36:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:44:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:51:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:60:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:68:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:78:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:87:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:97:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:117:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:127:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:137:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:147:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:157:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:168:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:178:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:189:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:199:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:216:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:226:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:237:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:247:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:258:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:268:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:279:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:289:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:300:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:310:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:321:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:331:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:343:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:351:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:358:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:265:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 34 in 21 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>1227361</commentid>
    <comment_count>10</comment_count>
      <attachid>288189</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-07 14:47:18 -0700</bug_when>
    <thetext>Created attachment 288189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227362</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-07 14:48:18 -0700</bug_when>
    <thetext>Attachment 288189 did not pass style-queue:


ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:36:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:44:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:51:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:60:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:68:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:78:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:87:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:97:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:117:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:127:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:137:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:147:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:157:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:168:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:178:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:189:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:199:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:216:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:226:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:237:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:247:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:258:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:268:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:279:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:289:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:300:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:310:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:321:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:331:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:343:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:351:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:358:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:265:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 34 in 21 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>1227504</commentid>
    <comment_count>12</comment_count>
      <attachid>288235</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-07 20:47:26 -0700</bug_when>
    <thetext>Created attachment 288235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227506</commentid>
    <comment_count>13</comment_count>
      <attachid>288236</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-07 20:51:48 -0700</bug_when>
    <thetext>Created attachment 288236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227507</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-07 20:54:02 -0700</bug_when>
    <thetext>Attachment 288236 did not pass style-queue:


ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:36:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:44:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:51:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:60:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:68:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:78:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:87:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:97:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:117:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:127:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:137:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:147:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:157:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:168:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:178:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:189:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:199:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:216:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:226:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:237:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:247:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:258:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:268:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:279:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:289:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:300:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:310:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:321:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:331:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:343:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:351:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:358:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:265:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 34 in 21 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>1227563</commentid>
    <comment_count>15</comment_count>
      <attachid>288255</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-08 00:52:05 -0700</bug_when>
    <thetext>Created attachment 288255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227564</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-08 00:57:50 -0700</bug_when>
    <thetext>Attachment 288255 did not pass style-queue:


ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:36:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:44:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:51:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:60:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:68:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:78:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:87:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:97:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:117:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:127:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:137:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:147:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:157:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:168:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:178:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:189:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:199:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:216:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:226:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:237:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:247:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:258:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:268:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:279:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:289:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:300:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:310:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:321:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:331:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:343:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:351:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:358:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.h:43:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 34 in 21 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>1227565</commentid>
    <comment_count>17</comment_count>
      <attachid>288256</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-08 01:22:33 -0700</bug_when>
    <thetext>Created attachment 288256
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227566</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-08 01:24:51 -0700</bug_when>
    <thetext>Attachment 288256 did not pass style-queue:


ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:36:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:44:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:51:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:60:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:68:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:78:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:87:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:97:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:117:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:127:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:137:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:147:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:157:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:168:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:178:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:189:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:199:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:216:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:226:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:237:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:247:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:258:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:268:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:279:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:289:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:300:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:310:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:321:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:331:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:343:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:351:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:358:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.h:43:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 34 in 21 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>1237150</commentid>
    <comment_count>19</comment_count>
      <attachid>290832</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-10-06 10:57:57 -0700</bug_when>
    <thetext>Created attachment 290832
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237151</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-06 11:00:35 -0700</bug_when>
    <thetext>Attachment 290832 did not pass style-queue:


ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:36:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:44:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:51:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:60:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:68:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:78:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:87:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:97:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:117:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:127:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:137:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:147:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:157:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:168:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:178:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:189:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:199:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:216:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:226:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:237:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:247:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:258:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:268:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:279:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:289:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:300:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:310:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:321:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:331:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:343:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:351:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:358:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.h:43:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 34 in 21 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>1237198</commentid>
    <comment_count>21</comment_count>
      <attachid>290837</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-10-06 11:32:34 -0700</bug_when>
    <thetext>Created attachment 290837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237200</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-06 11:33:52 -0700</bug_when>
    <thetext>Attachment 290837 did not pass style-queue:


ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:36:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:44:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:51:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:60:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:68:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:78:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:87:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:97:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:117:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:127:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:137:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:147:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:157:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:168:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:178:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:189:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:199:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:216:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:226:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:237:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:247:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:258:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:268:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:279:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:289:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:300:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:310:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:321:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:331:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:343:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:351:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:358:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.h:43:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 34 in 21 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>1237702</commentid>
    <comment_count>23</comment_count>
      <attachid>290837</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-07 11:52:41 -0700</bug_when>
    <thetext>Comment on attachment 290837
Patch

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

Sad we couldn’t use ARC for this test code.

DIdn’t review this as carefully since it’s test code rather than code in WebKit proper, but this looks good to me.

&gt; Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.h:36
&gt; ++ (CGEventRef)createEventForDictionary:(NSDictionary *)dict inWindow:(NSWindow *)window relativeToTime:(CGEventTimestamp)referenceTimestamp;

Could this return a RetainPtr&lt;CGEventRef&gt;?

&gt; Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.h:41
&gt; +    RetainPtr&lt;NSMutableArray *&gt; _remainingEventDicts;

dictionary is better, I think, than dict

&gt; Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:198
&gt; +    CGEventRef plainEvent = CGEventCreate(NULL);

I would have suggested adoptCF rather than the explicit CFRelease below.

&gt; Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:206
&gt; +    dict[@&quot;relativeTimeMS&quot;] = @(std::max&lt;double&gt;(static_cast&lt;double&gt;(timestamp - referenceTimestamp) / NSEC_PER_MSEC, 0));

Could leave out the double from std::max&lt;double&gt; if you used &quot;0.0&quot; or &quot;0.&quot; for the item on the right. Also nice to put that first so you don’t have to look so far to the right to get to the comma.

&gt; Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:219
&gt; +    CGEventFlags flags = static_cast&lt;CGEventFlags&gt;(CGEventGetFlags(event) &amp; ~NX_NONCOALSESCEDMASK);
&gt; +    CGEventFlags plainFlags = static_cast&lt;CGEventFlags&gt;(CGEventGetFlags(plainEvent) &amp; ~NX_NONCOALSESCEDMASK);

surprised that the static_cast is required here; could use auto since it is, though

&gt; Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:230
&gt; +    CGEventRef event = CGEventCreate(NULL);

Ditto.

&gt; Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:236
&gt; +        CGEventSetTimestamp(event, referenceTimestamp + static_cast&lt;uint64_t&gt;(([dict[@&quot;relativeTimeMS&quot;] doubleValue] * NSEC_PER_MSEC)));

I don’t understand why uint64_t is the good type to cast to. Is that the same as CGEventTimestamp perhaps?

&gt; Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:267
&gt; +    // This alloc is balanced with the release below in playbackTimerFired.

Doesn’t a timer retain its target? Guess not.

&gt; Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:283
&gt; +    RetainPtr&lt;NSMutableArray *&gt; removeList = adoptNS([[NSMutableArray alloc] init]);

Could use auto here, adoptNS will get the type right without help.

&gt; Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:306
&gt; +    [NSApp postEvent:[NSEvent otherEventWithType:applicationDefinedEventType location:NSZeroPoint modifierFlags:0 timestamp:0 windowNumber:0 context:0 subtype:0 data1:42 data2:0] atStart:NO];

Wow, 42.

&gt; Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:310
&gt; +        if (nextEvent.type == applicationDefinedEventType &amp;&amp; nextEvent.data1 == 42)

And there it is again, 42. Magic!

&gt; Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.h:28
&gt; +#import &lt;AppKit/AppKit.h&gt;

Wow, that’s a lot to include just to get NSString! I probably would have done @class NSString, or maybe Foundation.h, or maybe nothing and depended on precompiled headers.

&gt; Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:37
&gt; +            &quot;relativeTimeMS&quot; : 0,

These sure are wordy.

&gt; Tools/WebKitTestRunner/mac/UIScriptControllerMac.mm:80
&gt; +    RetainPtr&lt;NSString&gt; nsString = adoptNS((NSString *)JSStringCopyCFString(kCFAllocatorDefault, eventStream));

More correct to adoptCF and then cast to (NSString *) on use. More likely to get things right if we ever convert this code to ARC, for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292645</commentid>
    <comment_count>24</comment_count>
      <attachid>305812</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-03-29 17:24:05 -0700</bug_when>
    <thetext>Created attachment 305812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292649</commentid>
    <comment_count>25</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-03-29 17:25:52 -0700</bug_when>
    <thetext>Attachment 305812 did not pass style-queue:


ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:36:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:44:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:51:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:60:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:68:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:78:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:87:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:97:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:107:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:117:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:127:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:137:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:147:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:157:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:168:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:178:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:189:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:199:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:216:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:226:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:237:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:247:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:258:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:268:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:279:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:289:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:300:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:310:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:321:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:331:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:343:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:351:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm:358:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Tools/TestRunnerShared/EventSerialization/mac/EventSerializerMac.h:43:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 34 in 21 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>1292659</commentid>
    <comment_count>26</comment_count>
      <attachid>305812</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-29 18:06:02 -0700</bug_when>
    <thetext>Comment on attachment 305812
Patch

Clearing flags on attachment: 305812

Committed r214586: &lt;http://trac.webkit.org/changeset/214586&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292660</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-29 18:06:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288102</attachid>
            <date>2016-09-06 22:58:11 -0700</date>
            <delta_ts>2016-09-07 12:45:51 -0700</delta_ts>
            <desc>First pass for EWS</desc>
            <filename>bug-161675-20160906225549.patch</filename>
            <type>text/plain</type>
            <size>94095</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MzYzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGFkZDhkNzFiMDVlNWE4OTBlYzFmMTU4MzM2YTcyODhi
ZmI1NGJkZS4uZjdhMGZjZWZmODkyZmU1ZDI1ZjU3MzBjOTAxNWJmNGIyOWE2N2IwZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDE2LTA5LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFN3aXBlIGdlc3R1cmUgdGVzdHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRm
b3JtUGxheUJhY2tFdmVudFN0cmVhbSk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6YmVnaW5CYWNrU3dpcGUpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNv
bXBsZXRlQmFja1N3aXBlKToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFs
aXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbTog
QWRkZWQuCisgICAgICAgIChldmVudElzT2ZUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZlR5cGVz
KToKKyAgICAgICAgKGV2ZW50SXNPZkdlc3R1cmVUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZkdl
c3R1cmVUeXBlcyk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBkaWN0aW9uYXJ5Rm9yRXZl
bnQ6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBjcmVhdGVF
dmVudEZvckRpY3Rpb25hcnk6aW5XaW5kb3c6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgr
W0V2ZW50U2VyaWFsaXplciBwbGF5RXZlbnRTdHJlYW06aW5XaW5kb3c6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFj
L1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1bm5lclNo
YXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTogQWRk
ZWQuCisgICAgICAgIChiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKToKKyAgICAgICAgKGNvbXBs
ZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0pOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICog
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF5QmFja0V2ZW50U3RyZWFtKToK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZSk6CisgICAg
ICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUpOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbSk6
CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1DbGVhckFsbENhbGxi
YWNrcyk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9zcGkv
Q29yZUdyYXBoaWNzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvc3Bp
L0lPS2l0U1BJLmg6IFJlbmFtZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tp
dFNQSS5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6cGxheUJhY2tFdmVudHMpOgor
ICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKToKKyAgICAg
ICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZSk6CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKToK
KwogMjAxNi0wOS0wMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OIChyMjA1MzI5KTogVHdvIEFQSSB0ZXN0cyB0aW1lIG91dCBvbiBp
T1MgU2ltdWxhdG9yCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3Jp
cHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29u
dHJvbGxlck1hYy5tbQppbmRleCA1NmUyMDc3YTRiMmEyMGMxZGI5MWRjOWExMGJkZGU1ZjIyY2M2
NDBiLi5jOGQyZjFhZTRhOGZjZmQ2M2JjZTk4M2EwODAyYTM3OTAxOGE5M2I3IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTQz
LDYgKzQzLDE4IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FzeW5jVGFzayhKU1ZhbHVl
UmVmIGNhbGxiYWNrKQogICAgIH0pOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxh
dGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKQoreworfQor
Cit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVnaW5CYWNrU3dpcGUoSlNWYWx1ZVJlZikKK3sK
K30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNvbXBsZXRlQmFja1N3aXBlKEpTVmFsdWVS
ZWYpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9FdmVudFNlcmlhbGl6
ZXJNYWMuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9F
dmVudFNlcmlhbGl6ZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTA1ZDY3ZjU5ODllMGZiZDk3OTlhMzQ2
ODQwZTc4ZWY4N2YzM2RmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJl
ZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5oCkBAIC0wLDAgKzEs
NDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0IDxBcHBLaXQv
QXBwS2l0Lmg+CisKK0BpbnRlcmZhY2UgRXZlbnRTZXJpYWxpemVyIDogTlNPYmplY3QKKworKyAo
TlNEaWN0aW9uYXJ5ICopZGljdGlvbmFyeUZvckV2ZW50OihDR0V2ZW50UmVmKWV2ZW50IHJlbGF0
aXZlVG9UaW1lOihDR0V2ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRpbWVzdGFtcDsKKworKyAoQ0dF
dmVudFJlZiljcmVhdGVFdmVudEZvckRpY3Rpb25hcnk6KE5TRGljdGlvbmFyeSAqKWRpY3QgaW5X
aW5kb3c6KE5TV2luZG93ICopd2luZG93IHJlbGF0aXZlVG9UaW1lOihDR0V2ZW50VGltZXN0YW1w
KXJlZmVyZW5jZVRpbWVzdGFtcDsKKworKyAodm9pZClwbGF5RXZlbnRTdHJlYW06KE5TQXJyYXk8
TlNEaWN0aW9uYXJ5ICo+ICopZXZlbnREaWN0cyBpbldpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoKSljb21wbGV0aW9uSGFuZGxlcjsKKworQGVuZAor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxp
emF0aW9uL21hYy9FdmVudFNlcmlhbGl6ZXJNYWMubW0gYi9Ub29scy9UZXN0UnVubmVyU2hhcmVk
L0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM1NTZlZDAyMmI3MWFmYzBhMTIyZjg2YzY3NWJkYTc4YWZiNzM3M2QKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvRXZlbnRT
ZXJpYWxpemVyTWFjLm1tCkBAIC0wLDAgKzEsMjk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
RXZlbnRTZXJpYWxpemVyTWFjLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIkNv
cmVHcmFwaGljc1NQSS5oIgorI2ltcG9ydCAiSU9LaXRTUEkuaCIKKyNpbXBvcnQgPGFsZ29yaXRo
bT4KKyNpbXBvcnQgPG1hY2gvbWFjaF90aW1lLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CisKKyNkZWZpbmUgTU9VU0VfRVZFTlRfVFlQRVMgXAorICAgIGtDR1NFdmVudExlZnRNb3VzZURv
d24sIFwKKyAgICBrQ0dTRXZlbnRMZWZ0TW91c2VVcCwgXAorICAgIGtDR1NFdmVudFJpZ2h0TW91
c2VEb3duLCBcCisgICAga0NHU0V2ZW50UmlnaHRNb3VzZVVwLCBcCisgICAga0NHU0V2ZW50TW91
c2VNb3ZlZCwgXAorICAgIGtDR1NFdmVudExlZnRNb3VzZURyYWdnZWQsIFwKKyAgICBrQ0dTRXZl
bnRSaWdodE1vdXNlRHJhZ2dlZCwgXAorICAgIGtDR1NFdmVudE90aGVyTW91c2VEb3duLCBcCisg
ICAga0NHU0V2ZW50T3RoZXJNb3VzZVVwLCBcCisgICAga0NHU0V2ZW50T3RoZXJNb3VzZURyYWdn
ZWQKKworI2RlZmluZSBLRVlfRVZFTlRfVFlQRVMgXAorICAgIGtDR1NFdmVudEtleURvd24sIFwK
KyAgICBrQ0dTRXZlbnRLZXlVcCwgXAorICAgIGtDR1NFdmVudEZsYWdzQ2hhbmdlZAorCisjZGVm
aW5lIEdFU1RVUkVfRVZFTlRfVFlQRVMgXAorICAgIGtDR1NFdmVudEdlc3R1cmUsIFwKKyAgICBr
Q0dTRXZlbnRGbHVpZFRvdWNoR2VzdHVyZSwgXAorICAgIGtDR1NFdmVudERvY2tDb250cm9sCisK
K2Jvb2wgZXZlbnRJc09mVHlwZShDR0V2ZW50UmVmIGV2ZW50LCBDR1NFdmVudFR5cGUgdHlwZSkK
K3sKKyAgICByZXR1cm4gKENHU0V2ZW50VHlwZSlDR0V2ZW50R2V0VHlwZShldmVudCkgPT0gdHlw
ZTsKK30KKworYm9vbCBldmVudElzT2ZUeXBlcyhDR0V2ZW50UmVmKSB7IHJldHVybiBmYWxzZTsg
fQorCit0ZW1wbGF0ZTx0eXBlbmFtZSAuLi4gVHlwZXM+Citib29sIGV2ZW50SXNPZlR5cGVzKENH
RXZlbnRSZWYgZXZlbnQsIENHU0V2ZW50VHlwZSBmaXJzdCwgVHlwZXMgLi4uIHJlc3QpCit7Cisg
ICAgcmV0dXJuIGV2ZW50SXNPZlR5cGUoZXZlbnQsIGZpcnN0KSB8fCBldmVudElzT2ZUeXBlcyhl
dmVudCwgcmVzdC4uLik7Cit9CisKK2Jvb2wgZXZlbnRJc09mR2VzdHVyZVR5cGUoQ0dFdmVudFJl
ZiBldmVudCwgSU9ISURFdmVudFR5cGUgdHlwZSkKK3sKKyAgICByZXR1cm4gKElPSElERXZlbnRU
eXBlKUNHRXZlbnRHZXRJbnRlZ2VyVmFsdWVGaWVsZChldmVudCwga0NHRXZlbnRHZXN0dXJlSElE
VHlwZSkgPT0gdHlwZTsKK30KKworYm9vbCBldmVudElzT2ZHZXN0dXJlVHlwZXMoQ0dFdmVudFJl
ZikgeyByZXR1cm4gZmFsc2U7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgLi4uIFR5cGVzPgorYm9v
bCBldmVudElzT2ZHZXN0dXJlVHlwZXMoQ0dFdmVudFJlZiBldmVudCwgSU9ISURFdmVudFR5cGUg
Zmlyc3QsIFR5cGVzIC4uLiByZXN0KQoreworICAgIGlmICghZXZlbnRJc09mVHlwZXMoZXZlbnQs
IEdFU1RVUkVfRVZFTlRfVFlQRVMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBmaXJzdCkgfHwgZXZlbnRJc09mR2VzdHVyZVR5
cGVzKGV2ZW50LCByZXN0Li4uKTsKK30KKworI2RlZmluZSBGT1JfRUFDSF9DR0VWRU5UX0lOVEVH
RVJfRklFTEQobWFjcm8pIFwKKyAgICBtYWNybyh0cnVlLCBrQ0dTRXZlbnRUeXBlRmllbGQpIFwK
KyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdo
ZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczEpIFwKKyAg
ICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NF
dmVudFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMikgXAorICAgIG1hY3JvKGV2
ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSks
IGtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlw
ZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xs
V2hlZWxFdmVudElzQ29udGludW91cykgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50
LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZl
bnRNb21lbnR1bVBoYXNlKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NF
dmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50
RGVsdGFBeGlzMSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRT
Y3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRh
QXhpczIpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xs
V2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMz
KSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVs
LCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50KSBcCisgICAg
bWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZl
bnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlKSBcCisgICAgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBNT1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZl
bnRCdXR0b25OdW1iZXIpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0Vf
RVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50Q2xpY2tTdGF0ZSkgXAorICAgIG1hY3JvKGV2ZW50
SXNPZlR5cGVzKGV2ZW50LCBNT1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnREZWx0YVgp
IFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBr
Q0dNb3VzZUV2ZW50RGVsdGFZKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIE1P
VVNFX0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudFN1YnR5cGUpIFwKKyAgICBtYWNybyhldmVu
dElzT2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50TnVtYmVy
KSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBLRVlfRVZFTlRfVFlQ
RVMpLCBrQ0dLZXlib2FyZEV2ZW50QXV0b3JlcGVhdCkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5
cGVzKGV2ZW50LCBLRVlfRVZFTlRfVFlQRVMpLCBrQ0dLZXlib2FyZEV2ZW50S2V5Ym9hcmRUeXBl
KSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIEtFWV9FVkVOVF9UWVBFUyksIGtD
R0tleWJvYXJkRXZlbnRLZXljb2RlKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVz
KGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSwga0NHRXZlbnRHZXN0dXJlSElEVHlwZSkgXAor
ICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSwga0NH
RXZlbnRHZXN0dXJlQmVoYXZpb3IpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwg
R0VTVFVSRV9FVkVOVF9UWVBFUyksIGtDR0V2ZW50R2VzdHVyZUZsYXZvcikgXAorICAgIG1hY3Jv
KGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSwga0NHRXZlbnRHZXN0
dXJlTWFzaykgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5U
X1RZUEVTKSwga0NHRXZlbnRHZXN0dXJlUGhhc2UpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBl
cyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyksIGtDR0V2ZW50R2VzdHVyZVN0YWdlKSBcCisg
ICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlcyhldmVudCwga0lPSElERXZlbnRU
eXBlU2Nyb2xsKSwga0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMpIFwKKyAgICBcCisgICAg
bWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGVzKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0
aW9uU3dpcGUpLCBrQ0dFdmVudFN3aXBlR2VzdHVyZUZsYWdCaXRzKSBcCisgICAgbWFjcm8oZXZl
bnRJc09mR2VzdHVyZVR5cGVzKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUp
LCBrQ0dFdmVudEdlc3R1cmVTd2lwZU1hc2spIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJl
VHlwZXMoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2Vz
dHVyZVN3aXBlTW90aW9uKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGVzKGV2ZW50
LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZh
bHVlKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGVzKGV2ZW50LCBrSU9ISURFdmVu
dFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVGbGF2b3IpIFwKKyAgICBcCisg
ICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGVzKGV2ZW50LCBrQ0dISURFdmVudFR5cGVHZXN0
dXJlU3RhcnRlZCwga0NHSElERXZlbnRUeXBlR2VzdHVyZUVuZGVkKSwga0NHRXZlbnRHZXN0dXJl
U3RhcnRFbmRTZXJpZXNUeXBlKQorCisjZGVmaW5lIEZPUl9FQUNIX0NHRVZFTlRfRE9VQkxFX0ZJ
RUxEKG1hY3JvKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIEdFU1RVUkVfRVZF
TlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVQcm9ncmVzcykgXAorICAgIFwKKyAgICBtYWNybyhl
dmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50UHJl
c3N1cmUpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGVzKGV2ZW50LCBr
SU9ISURFdmVudFR5cGVab29tKSwga0NHRXZlbnRHZXN0dXJlWm9vbURlbHRhWCkgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlcyhldmVudCwga0lPSElERXZlbnRUeXBlWm9vbSksIGtD
R0V2ZW50R2VzdHVyZVpvb21EZWx0YVkpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlw
ZXMoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVpvb20pLCBrQ0dFdmVudEdlc3R1cmVab29tVmFsdWUp
IFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGVzKGV2ZW50LCBrSU9ISURF
dmVudFR5cGVSb3RhdGlvbiksIGtDR0V2ZW50R2VzdHVyZVJvdGF0aW9uVmFsdWUpIFwKKyAgICBc
CisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGVzKGV2ZW50LCBrSU9ISURFdmVudFR5cGVT
Y3JvbGwpLCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxYKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2Vz
dHVyZVR5cGVzKGV2ZW50LCBrSU9ISURFdmVudFR5cGVTY3JvbGwpLCBrQ0dFdmVudEdlc3R1cmVT
Y3JvbGxZKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGVzKGV2ZW50LCBrSU9ISURF
dmVudFR5cGVTY3JvbGwpLCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxaKSBcCisgICAgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlcyhldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlv
blN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVQb3NpdGlvblgpIFwKKyAgICBtYWNybyhldmVu
dElzT2ZHZXN0dXJlVHlwZXMoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSks
IGtDR0V2ZW50R2VzdHVyZVN3aXBlUG9zaXRpb25ZKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2Vz
dHVyZVR5cGVzKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVu
dEdlc3R1cmVTd2lwZVByb2dyZXNzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGVz
KGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVT
d2lwZVZlbG9jaXR5WCkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlcyhldmVudCwg
a0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVWZWxv
Y2l0eVkpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZXMoZXZlbnQsIGtJT0hJREV2
ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlaKSBc
CisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlcyhldmVudCwga0lPSElERXZl
bnRUeXBlRm9yY2UpLCBrQ0dFdmVudFRyYW5zaXRpb25Qcm9ncmVzcykgXAorICAgIG1hY3JvKGV2
ZW50SXNPZkdlc3R1cmVUeXBlcyhldmVudCwga0lPSElERXZlbnRUeXBlRm9yY2UpLCBrQ0dFdmVu
dFN0YWdlUHJlc3N1cmUpCisKKyNkZWZpbmUgTE9BRF9JTlRFR0VSX0ZJRUxEX0ZST01fRVZFTlQo
ZXZlbnRUeXBlRmlsdGVyLCBmaWVsZCkgXAorXnsgXAorICAgIGlmICghKGV2ZW50VHlwZUZpbHRl
cikpIFwKKyAgICAgICAgcmV0dXJuOyBcCisgICAgaW50NjRfdCB2YWx1ZSA9IENHRXZlbnRHZXRJ
bnRlZ2VyVmFsdWVGaWVsZChldmVudCwgZmllbGQpOyBcCisgICAgaW50NjRfdCBwbGFpblZhbHVl
ID0gQ0dFdmVudEdldEludGVnZXJWYWx1ZUZpZWxkKHBsYWluRXZlbnQsIGZpZWxkKTsgXAorICAg
IGlmICh2YWx1ZSAhPSBwbGFpblZhbHVlKSBcCisgICAgICAgIGRpY3RbQCNmaWVsZF0gPSBAKHZh
bHVlKTsgXAorfSgpOworCisjZGVmaW5lIExPQURfRE9VQkxFX0ZJRUxEX0ZST01fRVZFTlQoZXZl
bnRUeXBlRmlsdGVyLCBmaWVsZCkgXAorXnsgXAorICAgIGlmICghKGV2ZW50VHlwZUZpbHRlcikp
IFwKKyAgICAgICAgcmV0dXJuOyBcCisgICAgZG91YmxlIHZhbHVlID0gQ0dFdmVudEdldERvdWJs
ZVZhbHVlRmllbGQoZXZlbnQsIGZpZWxkKTsgXAorICAgIGlmICghaXNuYW4odmFsdWUpKSB7IFwK
KyAgICAgICAgZG91YmxlIHBsYWluVmFsdWUgPSBDR0V2ZW50R2V0RG91YmxlVmFsdWVGaWVsZChw
bGFpbkV2ZW50LCBmaWVsZCk7IFwKKyAgICAgICAgaWYgKGZhYnModmFsdWUgLSBwbGFpblZhbHVl
KSA+PSBGTFRfRVBTSUxPTikgXAorICAgICAgICAgICAgZGljdFtAI2ZpZWxkXSA9IEAodmFsdWUp
OyBcCisgICAgfSBcCit9KCk7CisKKyNkZWZpbmUgU1RPUkVfSU5URUdFUl9GSUVMRF9UT19FVkVO
VChldmVudFR5cGVGaWx0ZXIsIGZpZWxkKSBcCiteeyBcCisgICAgaWYgKCEoZXZlbnRUeXBlRmls
dGVyKSkgXAorICAgICAgICByZXR1cm47IFwKKyAgICBOU051bWJlciAqdmFsdWUgPSBkaWN0W0Aj
ZmllbGRdOyBcCisgICAgaWYgKHZhbHVlKSBcCisgICAgICAgIENHRXZlbnRTZXRJbnRlZ2VyVmFs
dWVGaWVsZChldmVudCwgZmllbGQsIHZhbHVlLnVuc2lnbmVkTG9uZ0xvbmdWYWx1ZSk7IFwKK30o
KTsKKworI2RlZmluZSBTVE9SRV9ET1VCTEVfRklFTERfVE9fRVZFTlQoZXZlbnRUeXBlRmlsdGVy
LCBmaWVsZCkgXAorXnsgXAorICAgIGlmICghKGV2ZW50VHlwZUZpbHRlcikpIFwKKyAgICAgICAg
cmV0dXJuOyBcCisgICAgTlNOdW1iZXIgKnZhbHVlID0gZGljdFtAI2ZpZWxkXTsgXAorICAgIGlm
ICh2YWx1ZSkgXAorICAgICAgICBDR0V2ZW50U2V0RG91YmxlVmFsdWVGaWVsZChldmVudCwgZmll
bGQsIHZhbHVlLmRvdWJsZVZhbHVlKTsgXAorfSgpOworCitAaW1wbGVtZW50YXRpb24gRXZlbnRT
ZXJpYWxpemVyCisKKysgKE5TRGljdGlvbmFyeSAqKWRpY3Rpb25hcnlGb3JFdmVudDooQ0dFdmVu
dFJlZilldmVudCByZWxhdGl2ZVRvVGltZTooQ0dFdmVudFRpbWVzdGFtcClyZWZlcmVuY2VUaW1l
c3RhbXAKK3sKKyAgICBDR0V2ZW50UmVmIHBsYWluRXZlbnQgPSBDR0V2ZW50Q3JlYXRlKE5VTEwp
OworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqZGljdCA9IFtbW05TTXV0YWJsZURpY3Rpb25h
cnkgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKworICAgIEZPUl9FQUNIX0NHRVZFTlRfSU5U
RUdFUl9GSUVMRChMT0FEX0lOVEVHRVJfRklFTERfRlJPTV9FVkVOVCk7CisgICAgRk9SX0VBQ0hf
Q0dFVkVOVF9ET1VCTEVfRklFTEQoTE9BRF9ET1VCTEVfRklFTERfRlJPTV9FVkVOVCk7CisKKyAg
ICBDR0V2ZW50VGltZXN0YW1wIHRpbWVzdGFtcCA9IENHRXZlbnRHZXRUaW1lc3RhbXAoZXZlbnQp
OworICAgIGRpY3RbQCJyZWxhdGl2ZVRpbWVNUyJdID0gQChzdGQ6Om1heDxkb3VibGU+KHN0YXRp
Y19jYXN0PGRvdWJsZT4odGltZXN0YW1wIC0gcmVmZXJlbmNlVGltZXN0YW1wKSAvIE5TRUNfUEVS
X01TRUMsIDApKTsKKworICAgIENHU0V2ZW50VHlwZSBldmVudFR5cGUgPSAoQ0dTRXZlbnRUeXBl
KUNHRXZlbnRHZXRJbnRlZ2VyVmFsdWVGaWVsZChldmVudCwga0NHU0V2ZW50VHlwZUZpZWxkKTsK
KyAgICBpZiAoZXZlbnRUeXBlID09IGtDR1NFdmVudEdlc3R1cmUgfHwgZXZlbnRUeXBlID09IGtD
R1NFdmVudEZsdWlkVG91Y2hHZXN0dXJlIHx8IGV2ZW50VHlwZSA9PSBrQ0dTRXZlbnREb2NrQ29u
dHJvbCkgeworICAgICAgICBpZiAoQ0dFdmVudEdldEludGVnZXJWYWx1ZUZpZWxkKGV2ZW50LCBr
Q0dFdmVudEdlc3R1cmVJc1ByZWZsaWdodCkpIHsKKyAgICAgICAgICAgIGRpY3RbQCJrQ0dFdmVu
dEdlc3R1cmVJc1ByZWZsaWdodCJdID0gQFlFUzsKKyAgICAgICAgICAgIGRpY3RbQCJrQ0dFdmVu
dEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcyJdID0gQChDR0V2ZW50R2V0RG91YmxlVmFsdWVGaWVs
ZChldmVudCwga0NHRXZlbnRHZXN0dXJlUHJlZmxpZ2h0UHJvZ3Jlc3MpKTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGRpY3RbQCJ3aW5kb3dMb2NhdGlvbiJdID0gTlNTdHJpbmdGcm9tUG9pbnQo
TlNQb2ludEZyb21DR1BvaW50KENHRXZlbnRHZXRXaW5kb3dMb2NhdGlvbihldmVudCkpKTsKKwor
ICAgIENHRXZlbnRGbGFncyBmbGFncyA9IENHRXZlbnRHZXRGbGFncyhldmVudCkgJiB+TlhfTk9O
Q09BTFNFU0NFRE1BU0s7CisgICAgaWYgKGZsYWdzICE9IChDR0V2ZW50R2V0RmxhZ3MocGxhaW5F
dmVudCkgJiB+TlhfTk9OQ09BTFNFU0NFRE1BU0spKQorICAgICAgICBkaWN0W0AiZmxhZ3MiXSA9
IEAoZmxhZ3MpOworCisgICAgQ0ZSZWxlYXNlKHBsYWluRXZlbnQpOworCisgICAgcmV0dXJuIGRp
Y3Q7Cit9CisKKysgKENHRXZlbnRSZWYpY3JlYXRlRXZlbnRGb3JEaWN0aW9uYXJ5OihOU0RpY3Rp
b25hcnkgKilkaWN0IGluV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyByZWxhdGl2ZVRvVGltZToo
Q0dFdmVudFRpbWVzdGFtcClyZWZlcmVuY2VUaW1lc3RhbXAKK3sKKyAgICBDR0V2ZW50UmVmIGV2
ZW50ID0gQ0dFdmVudENyZWF0ZShOVUxMKTsKKworICAgIEZPUl9FQUNIX0NHRVZFTlRfSU5URUdF
Ul9GSUVMRChTVE9SRV9JTlRFR0VSX0ZJRUxEX1RPX0VWRU5UKTsKKyAgICBGT1JfRUFDSF9DR0VW
RU5UX0RPVUJMRV9GSUVMRChTVE9SRV9ET1VCTEVfRklFTERfVE9fRVZFTlQpOworCisgICAgaWYg
KGRpY3RbQCJyZWxhdGl2ZVRpbWVNUyJdKQorICAgICAgICBDR0V2ZW50U2V0VGltZXN0YW1wKGV2
ZW50LCByZWZlcmVuY2VUaW1lc3RhbXAgKyBzdGF0aWNfY2FzdDx1aW50NjRfdD4oKFtkaWN0W0Ai
cmVsYXRpdmVUaW1lTVMiXSBkb3VibGVWYWx1ZV0gKiBOU0VDX1BFUl9NU0VDKSkpOworCisgICAg
aWYgKFtkaWN0W0Aia0NHRXZlbnRHZXN0dXJlSXNQcmVmbGlnaHQiXSBib29sVmFsdWVdKSB7Cisg
ICAgICAgIENHRXZlbnRTZXRJbnRlZ2VyVmFsdWVGaWVsZChldmVudCwga0NHRXZlbnRHZXN0dXJl
SXNQcmVmbGlnaHQsIDEpOworICAgICAgICBDR0V2ZW50U2V0RG91YmxlVmFsdWVGaWVsZChldmVu
dCwga0NHRXZlbnRHZXN0dXJlUHJlZmxpZ2h0UHJvZ3Jlc3MsIFtkaWN0W0Aia0NHRXZlbnRHZXN0
dXJlUHJlZmxpZ2h0UHJvZ3Jlc3MiXSBkb3VibGVWYWx1ZV0pOworICAgIH0KKworICAgIGlmIChk
aWN0W0Aid2luZG93TG9jYXRpb24iXSkgeworICAgICAgICBDR0V2ZW50U2V0V2luZG93TG9jYXRp
b24oZXZlbnQsIE5TUG9pbnRUb0NHUG9pbnQoTlNQb2ludEZyb21TdHJpbmcoZGljdFtAIndpbmRv
d0xvY2F0aW9uIl0pKSk7CisKKyAgICAgICAgTlNQb2ludCBzY3JlZW5Qb2ludCA9IFt3aW5kb3cg
Y29udmVydEJhc2VUb1NjcmVlbjpOU1BvaW50VG9DR1BvaW50KE5TUG9pbnRGcm9tU3RyaW5nKGRp
Y3RbQCJ3aW5kb3dMb2NhdGlvbiJdKSldOworICAgICAgICBDR0V2ZW50U2V0TG9jYXRpb24oZXZl
bnQsIE5TTWFrZVBvaW50KHNjcmVlblBvaW50LngsIE5TU2NyZWVuLnNjcmVlbnMuZmlyc3RPYmpl
Y3QuZnJhbWUuc2l6ZS5oZWlnaHQgLSBzY3JlZW5Qb2ludC55KSk7CisgICAgfQorCisgICAgaWYg
KGRpY3RbQCJmbGFncyJdKQorICAgICAgICBDR0V2ZW50U2V0RmxhZ3MoZXZlbnQsIFtkaWN0W0Ai
ZmxhZ3MiXSB1bnNpZ25lZExvbmdMb25nVmFsdWVdKTsKKworICAgIENHRXZlbnRTZXRJbnRlZ2Vy
VmFsdWVGaWVsZChldmVudCwga0NHU0V2ZW50V2luZG93SURGaWVsZCwgd2luZG93LndpbmRvd051
bWJlcik7CisKKyAgICByZXR1cm4gZXZlbnQ7Cit9CisKKysgKHZvaWQpcGxheUV2ZW50U3RyZWFt
OihOU0FycmF5PE5TRGljdGlvbmFyeSAqPiAqKWV2ZW50RGljdHMgaW5XaW5kb3c6KE5TV2luZG93
ICopd2luZG93IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKCkpY29tcGxldGlvbkhhbmRsZXIK
K3sKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IHJlbWFpbmluZ0V2ZW50RGljdHMgPSBh
ZG9wdE5TKFtldmVudERpY3RzIG11dGFibGVDb3B5XSk7CisKKyAgICB1aW50NjRfdCBzdGFydFRp
bWUgPSBtYWNoX2Fic29sdXRlX3RpbWUoKTsKKworICAgIFtOU1RpbWVyIHNjaGVkdWxlZFRpbWVy
V2l0aFRpbWVJbnRlcnZhbDoxLi8xMjAuIHJlcGVhdHM6WUVTIGJsb2NrOl4oTlNUaW1lciAqdGlt
ZXIpIHsKKyAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5ICo+IHJlbW92ZUxpc3QgPSBh
ZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgTlNFdmVudCAq
bnNFdmVudCA9IG5pbDsKKyAgICAgICAgZm9yIChpZCBldmVudERpY3QgaW4gcmVtYWluaW5nRXZl
bnREaWN0cy5nZXQoKSkgeworICAgICAgICAgICAgQ0dFdmVudFJlZiBldmVudCA9IFtFdmVudFNl
cmlhbGl6ZXIgY3JlYXRlRXZlbnRGb3JEaWN0aW9uYXJ5OmV2ZW50RGljdCBpbldpbmRvdzp3aW5k
b3cgcmVsYXRpdmVUb1RpbWU6c3RhcnRUaW1lXTsKKyAgICAgICAgICAgIGlmIChDR0V2ZW50R2V0
VGltZXN0YW1wKGV2ZW50KSA8IG1hY2hfYWJzb2x1dGVfdGltZSgpKSB7CisgICAgICAgICAgICAg
ICAgbnNFdmVudCA9IFtOU0V2ZW50IGV2ZW50V2l0aENHRXZlbnQ6ZXZlbnRdOworICAgICAgICAg
ICAgICAgIFtOU0FwcCBwb3N0RXZlbnQ6bnNFdmVudCBhdFN0YXJ0Ok5PXTsKKyAgICAgICAgICAg
ICAgICBbcmVtb3ZlTGlzdCBhZGRPYmplY3Q6ZXZlbnREaWN0XTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIENGUmVsZWFzZShldmVudCk7CisgICAgICAgIH0KKyAgICAgICAgW3JlbWFpbmlu
Z0V2ZW50RGljdHMgcmVtb3ZlT2JqZWN0c0luQXJyYXk6cmVtb3ZlTGlzdC5nZXQoKV07CisKKyAg
ICAgICAgaWYgKFtyZW1haW5pbmdFdmVudERpY3RzIGNvdW50XSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBbdGltZXIgaW52YWxpZGF0ZV07CisKKyAgICAgICAgLy8gQmxvY2sgdW50
aWwgd2Ugc2VuZCB0aGUgbGFzdCBldmVudCB3ZSBwb3N0ZWQuCisgICAgICAgIFtOU0FwcCBwb3N0
RXZlbnQ6W05TRXZlbnQgb3RoZXJFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlQXBwbGljYXRpb25E
ZWZpbmVkIGxvY2F0aW9uOk5TWmVyb1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3
aW5kb3dOdW1iZXI6MCBjb250ZXh0OjAgc3VidHlwZTowIGRhdGExOjQyIGRhdGEyOjBdIGF0U3Rh
cnQ6Tk9dOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgTlNFdmVudCAqbmV4
dEV2ZW50ID0gW05TQXBwIG5leHRFdmVudE1hdGNoaW5nTWFzazpOU0FueUV2ZW50TWFzayB1bnRp
bERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OjEvMTIwLl0gaW5Nb2Rl
Ok5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVTXTsKKyAgICAgICAgICAgIGlmIChuZXh0
RXZlbnQudHlwZSA9PSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCAmJiBuZXh0RXZlbnQu
ZGF0YTEgPT0gNDIpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAobmV4
dEV2ZW50KQorICAgICAgICAgICAgICAgIFtOU0FwcCBzZW5kRXZlbnQ6bmV4dEV2ZW50XTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChjb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CisgICAgfV07Cit9CisKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvU2hhcmVk
RXZlbnRTdHJlYW1zTWFjLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXph
dGlvbi9tYWMvU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWYzMDI4ODM1OTIx
MzYyYmRmNmNkMWY1YjFlNDc4YTk1MGZlYjM3MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9TaGFyZWRFdmVudFN0cmVhbXNN
YWMuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFBMQVRGT1JNKE1BQykKKwor
I2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgorCitOU1N0cmluZyAqYmVnaW5Td2lwZUJhY2tFdmVu
dFN0cmVhbSgpOworTlNTdHJpbmcgKmNvbXBsZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0oKTsKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXph
dGlvbi9tYWMvU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJl
ZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43MWExMmRlZDBmZGEzNTVmYmMwYTE4NDQ0YzhiOTMxZjE4Zjg2NmJjCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1No
YXJlZEV2ZW50U3RyZWFtc01hYy5tbQpAQCAtMCwwICsxLDM2OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
ZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIlNoYXJlZEV2ZW50U3RyZWFtc01hYy5oIgorCisj
ZGVmaW5lIFFVT1RFKC4uLikgQCgjX19WQV9BUkdTX18pCisKK05TU3RyaW5nICpiZWdpblN3aXBl
QmFja0V2ZW50U3RyZWFtKCkKK3sKKyAgICByZXR1cm4gUVVPVEUoWworICAgICAgICB7CisgICAg
ICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMCwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9s
bEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5
cGUiIDogNiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMTI4LAorICAgICAgICAgICAgIndpbmRvd0xv
Y2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAicmVsYXRpdmVUaW1lTVMiIDogOCwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURU
eXBlIiA6IDYxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTdGFydEVuZFNlcmllc1R5cGUiIDogNiwKKyAgICAgICAg
ICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIKKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAg
ICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7
NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAxLAorICAg
ICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAg
ICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVy
ZVNjcm9sbFgiIDogMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRp
dmVUaW1lTVMiIDogOCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAw
fSIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDEsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMSwKKyAgICAgICAg
ICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxh
dGl2ZVRpbWVNUyIgOiAxNywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwg
MzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAxLAorICAgICAg
ICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRT
Y3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmll
bGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAxMgorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50
RGVsdGFBeGlzMSIgOiAxLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDE3LAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJr
Q0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDQsCisgICAgICAgICAgICAid2lu
ZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVG
aWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDI1LAor
ICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0
dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0
cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAg
ICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDIzCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiAxLAorICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogMSwKKyAgICAgICAg
ICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAyNSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2
ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNj
cm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVs
dGFBeGlzMiIgOiAxMSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAw
fSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAg
ICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMzMsCisgICAgICAgICAgICAid2luZG93TG9jYXRp
b24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFki
IDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAg
ICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NH
U0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9s
bFgiIDogMjgKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnREZWx0YUF4aXMyIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dFBvaW50RGVsdGFBeGlzMSIgOiAxLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDMz
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAg
ICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAg
ICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDE2LAorICAgICAgICAg
ICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZl
bnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIg
OiA0MSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAxLAorICAgICAgICAgICAgImtDR0V2
ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJl
RmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAzNQorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMiwK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IDEsCisg
ICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNDEsCisgICAgICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQ
b2ludERlbHRhQXhpczIiIDogMjQsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0
MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2
LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDQ5LAorICAgICAgICAgICAgIndpbmRv
d0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVT
Y3JvbGxZIiA6IC0xLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisg
ICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAg
ICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0
dXJlU2Nyb2xsWCIgOiA0NQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NH
U2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudERlbHRhQXhpczIiIDogNCwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2
ZW50UG9pbnREZWx0YUF4aXMxIiA6IC0xLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6
IDQ5LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDM3LAorICAgICAg
ICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dT
RXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
ImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVN
UyIgOiA1NywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAtMywKKyAgICAgICAgICAgICJr
Q0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2Vz
dHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5
LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogNTcKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIg
OiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDUsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAtMSwKKyAg
ICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA1NywKKyAgICAgICAgICAgICJrQ0dTY3JvbGxX
aGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBv
aW50RGVsdGFBeGlzMiIgOiA1NCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQw
MCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYs
CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNjUsCisgICAgICAgICAgICAid2luZG93
TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNj
cm9sbFkiIDogLTUsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAg
ICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAg
ICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1
cmVTY3JvbGxYIiA6IDgxCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dT
Y3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxX
aGVlbEV2ZW50RGVsdGFBeGlzMiIgOiA5LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnRQb2ludERlbHRhQXhpczEiIDogLTIsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDog
NjUsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogOTIsCisgICAgICAg
ICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NF
dmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgIF0pOworfQorCitOU1N0cmluZyAq
Y29tcGxldGVTd2lwZUJhY2tFdmVudFN0cmVhbSgpCit7CisgICAgcmV0dXJuIFFVT1RFKFsKKyAg
ICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAg
ICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA3MywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlv
biIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIg
OiAtMywKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAg
ICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NH
U0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9s
bFgiIDogNzUKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnREZWx0YUF4aXMyIiA6IDExLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2lu
dERlbHRhQXhpczEiIDogLTEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNzMsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMTA2LAorICAgICAgICAgICAg
IndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRU
eXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2
ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4
MSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAtMywKKyAgICAgICAgICAgICJrQ0dFdmVu
dEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZs
YWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogODUKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDEzLAorICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogLTEsCisgICAgICAg
ICAgICAicmVsYXRpdmVUaW1lTVMiIDogODEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRT
Y3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERl
bHRhQXhpczIiIDogMTI3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAz
MDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAg
ICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4OSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xs
WSIgOiAtMSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAg
ICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAi
a0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNj
cm9sbFgiIDogOTEKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnREZWx0YUF4aXMyIiA6IDE0LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQ
b2ludERlbHRhQXhpczEiIDogLTEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogODks
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMTM5LAorICAgICAgICAg
ICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZl
bnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIg
OiA5NywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAyLAorICAgICAgICAgICAgImtDR0V2
ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJl
RmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAxMzYKKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAx
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDIwLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogMSwKKyAgICAg
ICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA5NywKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50
RGVsdGFBeGlzMiIgOiAyMDQsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAs
IDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAor
ICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEwNSwKKyAgICAgICAgICAgICJ3aW5kb3dM
b2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Ny
b2xsWSIgOiA1LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAg
ICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAg
ICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJl
U2Nyb2xsWCIgOiA5MgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudERlbHRhQXhpczIiIDogMTQsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dFBvaW50RGVsdGFBeGlzMSIgOiAyLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEw
NSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAg
ICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMzYsCisgICAgICAg
ICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NF
dmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
a0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1T
IiA6IDExMywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAxNCwKKyAgICAgICAgICAgICJr
Q0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2Vz
dHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5
LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMTMzCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2Ui
IDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6
IDE5MiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIsCisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczEiIDogMSwKKyAgICAgICAgICAgICJrQ0dT
Y3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVU
aW1lTVMiIDogMTEzLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3Vu
dCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDE5
LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAg
ICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IDcKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEyMSwKKyAgICAgICAg
ICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmll
bGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogNCwKKyAgICAg
ICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEyMSwKKyAgICAgICAgICAgICJr
Q0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYyLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVG
aWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTdGFydEVuZFNlcmllc1R5
cGUiIDogNiwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIKKyAg
ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3Jv
bGxDb3VudCIgOiAxLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEzOSwKKyAgICAg
ICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NH
U0V2ZW50VHlwZUZpZWxkIiA6IDIyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRT
Y3JvbGxQaGFzZSIgOiA0LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRp
bnVvdXMiIDogMQorICAgICAgICB9CisgICAgXSk7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRD
b250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0Jp
bmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKaW5kZXggMTNkZjZlOGY4NmI0MzQ0Y2YwYTEw
YzA0YjI0NzhiNTc0NzkzZTQ3Yy4uYmY0NjA0ZTJhMzBiYzk3NmFiOTgxMjNiYTBmMjgwOTI5YmYz
MGYwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
QmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC00
Miw2ICs0MiwxMSBAQCBpbnRlcmZhY2UgVUlTY3JpcHRDb250cm9sbGVyIHsKICAgICB2b2lkIGtl
eURvd25Vc2luZ0hhcmR3YXJlS2V5Ym9hcmQoRE9NU3RyaW5nIGNoYXJhY3Rlciwgb2JqZWN0IGNh
bGxiYWNrKTsKICAgICB2b2lkIGtleVVwVXNpbmdIYXJkd2FyZUtleWJvYXJkKERPTVN0cmluZyBj
aGFyYWN0ZXIsIG9iamVjdCBjYWxsYmFjayk7CiAKKyAgICB2b2lkIGJlZ2luQmFja1N3aXBlKG9i
amVjdCBjYWxsYmFjayk7CisgICAgdm9pZCBjb21wbGV0ZUJhY2tTd2lwZShvYmplY3QgY2FsbGJh
Y2spOworCisgICAgdm9pZCBwbGF5QmFja0V2ZW50U3RyZWFtKERPTVN0cmluZyBldmVudFN0cmVh
bSwgb2JqZWN0IGNhbGxiYWNrKTsKKwogICAgIC8vIEVxdWl2YWxlbnQgb2YgcHJlc3NpbmcgdGhl
IERvbmUgYnV0dG9uIGluIHRoZSBmb3JtIGFjY2Vzc29yeSBiYXIuCiAgICAgdm9pZCBkaXNtaXNz
Rm9ybUFjY2Vzc29yeVZpZXcoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJl
ZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1Rlc3RSdW5u
ZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggMTAw
NWNiYjFmY2E4ODI5ZDBkM2VkZjFkZGQ3ZjlmNzg4OTZmOTY0My4uMzBiZTRkZDUyYzQ3Njk4Y2Jl
YzFmM2RhMjc1NDM2OGRmNmVlNzQ5OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJl
ZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0x
MzUsNiArMTM1LDExIEBAIEpTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRIaWRlS2V5
Ym9hcmRDYWxsYmFjaygpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRo
SUQoQ2FsbGJhY2tUeXBlRGlkSGlkZUtleWJvYXJkKTsKIH0KIAordm9pZCBVSVNjcmlwdENvbnRy
b2xsZXI6OnBsYXlCYWNrRXZlbnRTdHJlYW0oSlNTdHJpbmdSZWYgc3RyZWFtLCBKU1ZhbHVlUmVm
IGNhbGxiYWNrKQoreworICAgIHBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbShzdHJlYW0sIGNh
bGxiYWNrKTsKK30KKwogI2lmICFQTEFURk9STShJT1MpCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxl
cjo6em9vbVRvU2NhbGUoZG91YmxlLCBKU1ZhbHVlUmVmKQogewpAQCAtMjQzLDYgKzI0OCwyMSBA
QCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWRIaWRlS2V5Ym9hcmRDYWxs
YmFjaygpCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1DbGVhckFsbENhbGxiYWNr
cygpCiB7CiB9CisKKyNlbHNlCisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tT
d2lwZShKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxl
cjo6Y29tcGxldGVCYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKK30KKwordm9pZCBV
SVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1Jl
ZiwgSlNWYWx1ZVJlZikKK3sKK30KKwogI2VuZGlmCiAKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVy
Ojp1aVNjcmlwdENvbXBsZXRlKEpTU3RyaW5nUmVmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oIGIv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVy
LmgKaW5kZXggODQ2M2FjMmMyYmI3Y2ZjMDVmOGQ0ZGQ1NTJkYzgyYjkzNDg0MjllYi4uMTI4Y2Ux
ZTM5YmY2ODBmODQ5NzYxOWNhNTIzOTA1MTIxYmRjOTMwZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKKysrIGIv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVy
LmgKQEAgLTY5LDYgKzY5LDkgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgc2Nyb2xsVG9PZmZz
ZXQobG9uZyB4LCBsb25nIHkpOwogCisgICAgdm9pZCBiZWdpbkJhY2tTd2lwZShKU1ZhbHVlUmVm
IGNhbGxiYWNrKTsKKyAgICB2b2lkIGNvbXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJh
Y2spOworCiAgICAgdm9pZCBzZXREaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFj
ayhKU1ZhbHVlUmVmKTsKICAgICBKU1ZhbHVlUmVmIGRpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFj
dGlvbkNhbGxiYWNrKCkgY29uc3Q7CiAKQEAgLTkwLDYgKzkzLDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0RGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2soSlNWYWx1ZVJlZik7CiAgICAgSlNWYWx1ZVJl
ZiBkaWRFbmRTY3JvbGxpbmdDYWxsYmFjaygpIGNvbnN0OwogCisgICAgdm9pZCBwbGF5QmFja0V2
ZW50U3RyZWFtKEpTU3RyaW5nUmVmIHN0cmVhbSwgSlNWYWx1ZVJlZiBjYWxsYmFjayk7CisKICAg
ICBkb3VibGUgem9vbVNjYWxlKCkgY29uc3Q7CiAgICAgZG91YmxlIG1pbmltdW1ab29tU2NhbGUo
KSBjb25zdDsKICAgICBkb3VibGUgbWF4aW11bVpvb21TY2FsZSgpIGNvbnN0OwpAQCAtMTExLDYg
KzExNiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybVNldERpZEhpZGVLZXlib2FyZENh
bGxiYWNrKCk7CiAgICAgdm9pZCBwbGF0Zm9ybVNldERpZEVuZFNjcm9sbGluZ0NhbGxiYWNrKCk7
CiAgICAgdm9pZCBwbGF0Zm9ybUNsZWFyQWxsQ2FsbGJhY2tzKCk7CisgICAgdm9pZCBwbGF0Zm9y
bVBsYXlCYWNrRXZlbnRTdHJlYW0oSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYpOwogCiAgICAgSlND
bGFzc1JlZiB3cmFwcGVyQ2xhc3MoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9zcGkvQ29yZUdyYXBoaWNzU1BJLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVk
L3NwaS9Db3JlR3JhcGhpY3NTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODg2NmJlMzIyYmIwY2I1OTVhOTJi
OGM1ZTExMzY1MDI2MjA1MTc1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9zcGkvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW1wb3J0IDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPENvcmVHcmFwaGljcy9DR1NFdmVudC5oPgorI2lt
cG9ydCA8Q29yZUdyYXBoaWNzL0NHRXZlbnRQcml2YXRlLmg+CisKKyNlbHNlCisKK1dURl9FWFRF
Uk5fQ19CRUdJTgorCitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR1NFdmVudFdpbmRvd0lE
RmllbGQgPSAoQ0dFdmVudEZpZWxkKTUxOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dT
RXZlbnRUeXBlRmllbGQgPSAoQ0dFdmVudEZpZWxkKTU1Oworc3RhdGljIGNvbnN0IENHRXZlbnRG
aWVsZCBrQ0dFdmVudEdlc3R1cmVISURUeXBlID0gKENHRXZlbnRGaWVsZCkxMTA7CitzdGF0aWMg
Y29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZUlzUHJlZmxpZ2h0ID0gKENHRXZlbnRG
aWVsZCkxMTE7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVpvb21W
YWx1ZSA9IChDR0V2ZW50RmllbGQpMTEzOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dF
dmVudEdlc3R1cmVSb3RhdGlvblZhbHVlID0gKENHRXZlbnRGaWVsZCkxMTQ7CitzdGF0aWMgY29u
c3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmFsdWUgPSAoQ0dFdmVudEZpZWxk
KTExNTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlUHJlZmxpZ2h0
UHJvZ3Jlc3MgPSAoQ0dFdmVudEZpZWxkKTExNjsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQg
a0NHRXZlbnRHZXN0dXJlU3RhcnRFbmRTZXJpZXNUeXBlID0gKENHRXZlbnRGaWVsZCkxMTc7Citz
dGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVNjcm9sbFggPSAoQ0dFdmVu
dEZpZWxkKTExODsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU2Ny
b2xsWSA9IChDR0V2ZW50RmllbGQpMTE5Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dF
dmVudEdlc3R1cmVTY3JvbGxaID0gKENHRXZlbnRGaWVsZCkxMjA7CitzdGF0aWMgY29uc3QgQ0dF
dmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlTW90aW9uID0gKENHRXZlbnRGaWVsZCkxMjM7
CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlUHJvZ3Jlc3Mg
PSAoQ0dFdmVudEZpZWxkKTEyNDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRH
ZXN0dXJlU3dpcGVQb3NpdGlvblggPSAoQ0dFdmVudEZpZWxkKTEyNTsKK3N0YXRpYyBjb25zdCBD
R0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVQb3NpdGlvblkgPSAoQ0dFdmVudEZpZWxk
KTEyNjsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVWZWxv
Y2l0eVggPSAoQ0dFdmVudEZpZWxkKTEyOTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NH
RXZlbnRHZXN0dXJlU3dpcGVWZWxvY2l0eVkgPSAoQ0dFdmVudEZpZWxkKTEzMDsKK3N0YXRpYyBj
b25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVWZWxvY2l0eVogPSAoQ0dFdmVu
dEZpZWxkKTEzMTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlUGhh
c2UgPSAoQ0dFdmVudEZpZWxkKTEzMjsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZl
bnRHZXN0dXJlTWFzayA9IChDR0V2ZW50RmllbGQpMTMzOworc3RhdGljIGNvbnN0IENHRXZlbnRG
aWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZU1hc2sgPSAoQ0dFdmVudEZpZWxkKTEzNDsKK3N0YXRp
YyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMgPSAoQ0dF
dmVudEZpZWxkKTEzNTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRTd2lwZUdl
c3R1cmVGbGFnQml0cyA9IChDR0V2ZW50RmllbGQpMTM2Oworc3RhdGljIGNvbnN0IENHRXZlbnRG
aWVsZCBrQ0dFdmVudEdlc3R1cmVGbGF2b3IgPSAoQ0dFdmVudEZpZWxkKTEzODsKK3N0YXRpYyBj
b25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlWm9vbURlbHRhWCA9IChDR0V2ZW50Rmll
bGQpMTM5Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVab29tRGVs
dGFZID0gKENHRXZlbnRGaWVsZCkxNDA7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2
ZW50R2VzdHVyZVByb2dyZXNzID0gKENHRXZlbnRGaWVsZCkxNDI7CitzdGF0aWMgY29uc3QgQ0dF
dmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN0YWdlID0gKENHRXZlbnRGaWVsZCkxNDM7CitzdGF0
aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZUJlaGF2aW9yID0gKENHRXZlbnRG
aWVsZCkxNDQ7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50VHJhbnNpdGlvblBy
b2dyZXNzID0gKENHRXZlbnRGaWVsZCkxNDc7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtD
R0V2ZW50U3RhZ2VQcmVzc3VyZSA9IChDR0V2ZW50RmllbGQpMTQ4OworCitlbnVtIHsKKyAgICBr
Q0dTRXZlbnRHZXN0dXJlID0gMjksCisgICAga0NHU0V2ZW50RG9ja0NvbnRyb2wgPSAzMCwKKyAg
ICBrQ0dTRXZlbnRGbHVpZFRvdWNoR2VzdHVyZSA9IDMxLAorfTsKK3R5cGVkZWYgdWludDMyX3Qg
Q0dTRXZlbnRUeXBlOworCitlbnVtIHsKKyAgICBrQ0dISURFdmVudFR5cGVHZXN0dXJlU3RhcnRl
ZCA9IDYxLAorICAgIGtDR0hJREV2ZW50VHlwZUdlc3R1cmVFbmRlZCA9IDYyLAorfTsKK3R5cGVk
ZWYgdWludDMyX3QgQ0dTSElERXZlbnRUeXBlOworCitDR1BvaW50IENHRXZlbnRHZXRXaW5kb3dM
b2NhdGlvbihDR0V2ZW50UmVmKTsKK3ZvaWQgQ0dFdmVudFNldFdpbmRvd0xvY2F0aW9uKENHRXZl
bnRSZWYsIENHUG9pbnQpOworCitXVEZfRVhURVJOX0NfRU5ECisKKyNlbmRpZiAvLyBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9zcGkv
SU9LaXRTUEkuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0lPS2l0U1BJLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjIwOTc2MGNlNzExOTFmNDViYzFkMmQ0OWMzMjM0YmY2YWM3YzQ5ZgotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0lPS2l0U1BJLmgKQEAgLTAsMCAr
MSwxNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9ydCA8d3RmL1BsYXRm
b3JtLmg+CisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxJT0tpdC9o
aWQvSU9ISURFdmVudC5oPgorI2ltcG9ydCA8SU9LaXQvaGlkL0lPSElERXZlbnRTeXN0ZW1DbGll
bnQuaD4KKyNpbXBvcnQgPElPS2l0L2hpZC9JT0hJRFVzYWdlVGFibGVzLmg+CisKKyNlbHNlCisK
K1dURl9FWFRFUk5fQ19CRUdJTgorCisjaWZkZWYgX19MUDY0X18KK3R5cGVkZWYgZG91YmxlIElP
SElERmxvYXQ7CisjZWxzZQordHlwZWRlZiBmbG9hdCBJT0hJREZsb2F0OworI2VuZGlmCisKK2Vu
dW0geworICAgIGtJT0hJREV2ZW50T3B0aW9uTm9uZSA9IDAsCit9OworCit0eXBlZGVmIFVJbnQz
MiBJT09wdGlvbkJpdHM7Cit0eXBlZGVmIHVpbnQzMl90IElPSElERXZlbnRPcHRpb25CaXRzOwor
dHlwZWRlZiB1aW50MzJfdCBJT0hJREV2ZW50RmllbGQ7CisKK3R5cGVkZWYgc3RydWN0IF9fSU9I
SURFdmVudFN5c3RlbUNsaWVudCAqIElPSElERXZlbnRTeXN0ZW1DbGllbnRSZWY7Cit0eXBlZGVm
IHN0cnVjdCBfX0lPSElERXZlbnQgKiBJT0hJREV2ZW50UmVmOworCisjZGVmaW5lIElPSElERXZl
bnRGaWVsZEJhc2UodHlwZSkgKHR5cGUgPDwgMTYpCisKK2VudW0geworICAgIGtISURQYWdlX0tl
eWJvYXJkT3JLZXlwYWQgICAgICAgPSAweDA3LAorICAgIGtISURQYWdlX1ZlbmRvckRlZmluZWRT
dGFydCAgICAgPSAweEZGMDAKK307CisKK2VudW0geworICAgIGtJT0hJRERpZ2l0aXplckV2ZW50
UmFuZ2UgICAgICAgPSAxPDwwLAorICAgIGtJT0hJRERpZ2l0aXplckV2ZW50VG91Y2ggICAgICAg
PSAxPDwxLAorICAgIGtJT0hJRERpZ2l0aXplckV2ZW50UG9zaXRpb24gICAgPSAxPDwyLAorICAg
IGtJT0hJRERpZ2l0aXplckV2ZW50SWRlbnRpdHkgICAgPSAxPDw1LAorICAgIGtJT0hJRERpZ2l0
aXplckV2ZW50QXR0cmlidXRlICAgPSAxPDw2LAorICAgIGtJT0hJRERpZ2l0aXplckV2ZW50Q2Fu
Y2VsICAgICAgPSAxPDw3LAorICAgIGtJT0hJRERpZ2l0aXplckV2ZW50U3RhcnQgICAgICAgPSAx
PDw4LAorfTsKK3R5cGVkZWYgdWludDMyX3QgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2s7CisKK2Vu
dW0geworICAgIGtJT0hJREV2ZW50VHlwZU5VTEwsCisgICAga0lPSElERXZlbnRUeXBlVmVuZG9y
RGVmaW5lZCwKKyAgICBrSU9ISURFdmVudFR5cGVLZXlib2FyZCA9IDMsCisgICAga0lPSElERXZl
bnRUeXBlUm90YXRpb24gPSA1LAorICAgIGtJT0hJREV2ZW50VHlwZVNjcm9sbCA9IDYsCisgICAg
a0lPSElERXZlbnRUeXBlWm9vbSA9IDgsCisgICAga0lPSElERXZlbnRUeXBlRGlnaXRpemVyID0g
MTEsCisgICAga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlID0gMTYsCisgICAga0lPSElE
RXZlbnRUeXBlRm9yY2UgPSAzMiwKKworfTsKK3R5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudFR5
cGU7CisKK2VudW0geworICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkVXNhZ2VQYWdl
ID0gSU9ISURFdmVudEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVWZW5kb3JEZWZpbmVkKSwKKyAg
ICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFJlc2VydmVkLAorICAgIGtJT0hJREV2ZW50
RmllbGRWZW5kb3JEZWZpbmVkUmVzZXJ2ZWQxLAorICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JE
ZWZpbmVkRGF0YUxlbmd0aCwKKyAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZERhdGEK
K307CisKK2VudW0geworICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJYID0gSU9ISURFdmVu
dEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVEaWdpdGl6ZXIpLAorICAgIGtJT0hJREV2ZW50Rmll
bGREaWdpdGl6ZXJZLAorICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJNYWpvclJhZGl1cyA9
IGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJYICsgMjAsCisgICAga0lPSElERXZlbnRGaWVsZERp
Z2l0aXplck1pbm9yUmFkaXVzLAorICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJJc0Rpc3Bs
YXlJbnRlZ3JhdGVkID0ga0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1ham9yUmFkaXVzICsgNSwK
K307CisKK2VudW0geworICAgIGtJT0hJRERpZ2l0aXplclRyYW5zZHVjZXJUeXBlSGFuZCA9IDMK
K307Cit0eXBlZGVmIHVpbnQzMl90IElPSElERGlnaXRpemVyVHJhbnNkdWNlclR5cGU7CisKK0lP
SElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZURpZ2l0aXplckV2ZW50KENGQWxsb2NhdG9yUmVm
LCB1aW50NjRfdCwgSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZSwgdWludDMyX3QsIHVpbnQz
Ml90LCBJT0hJRERpZ2l0aXplckV2ZW50TWFzaywgdWludDMyX3QsIElPSElERmxvYXQsIElPSElE
RmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIGJvb2xlYW5fdCwgYm9v
bGVhbl90LCBJT09wdGlvbkJpdHMpOworCitJT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVE
aWdpdGl6ZXJGaW5nZXJFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIHVpbnQzMl90LCB1
aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIElPSElERmxvYXQsIElPSElERmxvYXQs
IElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIGJvb2xlYW5fdCwgYm9vbGVhbl90
LCBJT0hJREV2ZW50T3B0aW9uQml0cyk7CisKK0lPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0
ZUZvcmNlRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgSU9ISURGbG9h
dCwgdWludDMyX3QsIElPSElERmxvYXQsIElPSElERXZlbnRPcHRpb25CaXRzKTsKKworSU9ISURF
dmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlS2V5Ym9hcmRFdmVudChDRkFsbG9jYXRvclJlZiwgdWlu
dDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgYm9vbGVhbl90LCBJT09wdGlvbkJpdHMpOworCitJ
T0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVWZW5kb3JEZWZpbmVkRXZlbnQoQ0ZBbGxvY2F0
b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50OF90Kiwg
Q0ZJbmRleCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOworCitJT0hJREV2ZW50VHlwZSBJT0hJREV2
ZW50R2V0VHlwZShJT0hJREV2ZW50UmVmKTsKKwordm9pZCBJT0hJREV2ZW50U2V0RmxvYXRWYWx1
ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50RmllbGQsIElPSElERmxvYXQpOworCitDRkluZGV4
IElPSElERXZlbnRHZXRJbnRlZ2VyVmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxk
KTsKK3ZvaWQgSU9ISURFdmVudFNldEludGVnZXJWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2
ZW50RmllbGQsIENGSW5kZXgpOworCit2b2lkIElPSElERXZlbnRBcHBlbmRFdmVudChJT0hJREV2
ZW50UmVmLCBJT0hJREV2ZW50UmVmLCBJT09wdGlvbkJpdHMpOworCitJT0hJREV2ZW50U3lzdGVt
Q2xpZW50UmVmIElPSElERXZlbnRTeXN0ZW1DbGllbnRDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYpOwor
CisjZGVmaW5lIGtHU0V2ZW50UGF0aEluZm9JblJhbmdlICgxIDw8IDApCisjZGVmaW5lIGtHU0V2
ZW50UGF0aEluZm9JblRvdWNoICgxIDw8IDEpCisKK2VudW0geworICAgIGtISURVc2FnZV9LZXli
b2FyZEEgPSAweDA0LAorICAgIGtISURVc2FnZV9LZXlib2FyZDEgPSAweDFFLAorICAgIGtISURV
c2FnZV9LZXlib2FyZDIgPSAweDFGLAorICAgIGtISURVc2FnZV9LZXlib2FyZDMgPSAweDIwLAor
ICAgIGtISURVc2FnZV9LZXlib2FyZDQgPSAweDIxLAorICAgIGtISURVc2FnZV9LZXlib2FyZDUg
PSAweDIyLAorICAgIGtISURVc2FnZV9LZXlib2FyZDYgPSAweDIzLAorICAgIGtISURVc2FnZV9L
ZXlib2FyZDcgPSAweDI0LAorICAgIGtISURVc2FnZV9LZXlib2FyZDggPSAweDI1LAorICAgIGtI
SURVc2FnZV9LZXlib2FyZDkgPSAweDI2LAorICAgIGtISURVc2FnZV9LZXlib2FyZDAgPSAweDI3
LAorICAgIGtISURVc2FnZV9LZXlib2FyZFJldHVybk9yRW50ZXIgPSAweDI4LAorICAgIGtISURV
c2FnZV9LZXlib2FyZEVzY2FwZSA9IDB4MjksCisgICAga0hJRFVzYWdlX0tleWJvYXJkRGVsZXRl
T3JCYWNrc3BhY2UgPSAweDJBLAorICAgIGtISURVc2FnZV9LZXlib2FyZFRhYiA9IDB4MkIsCisg
ICAga0hJRFVzYWdlX0tleWJvYXJkU3BhY2ViYXIgPSAweDJDLAorICAgIGtISURVc2FnZV9LZXli
b2FyZEh5cGhlbiA9IDB4MkQsCisgICAga0hJRFVzYWdlX0tleWJvYXJkRXF1YWxTaWduID0gMHgy
RSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRPcGVuQnJhY2tldCA9IDB4MkYsCisgICAga0hJRFVz
YWdlX0tleWJvYXJkQ2xvc2VCcmFja2V0ID0gMHgzMCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRC
YWNrc2xhc2ggPSAweDMxLAorICAgIGtISURVc2FnZV9LZXlib2FyZFNlbWljb2xvbiA9IDB4MzMs
CisgICAga0hJRFVzYWdlX0tleWJvYXJkUXVvdGUgPSAweDM0LAorICAgIGtISURVc2FnZV9LZXli
b2FyZEdyYXZlQWNjZW50QW5kVGlsZGUgPSAweDM1LAorICAgIGtISURVc2FnZV9LZXlib2FyZENv
bW1hID0gMHgzNiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRQZXJpb2QgPSAweDM3LAorICAgIGtI
SURVc2FnZV9LZXlib2FyZFNsYXNoID0gMHgzOCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRGMSA9
IDB4M0EsCisgICAga0hJRFVzYWdlX0tleWJvYXJkSG9tZSA9IDB4NEEsCisgICAga0hJRFVzYWdl
X0tleWJvYXJkUGFnZVVwID0gMHg0QiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRFbmQgPSAweDRE
LAorICAgIGtISURVc2FnZV9LZXlib2FyZFJpZ2h0QXJyb3cgPSAweDRGLAorICAgIGtISURVc2Fn
ZV9LZXlib2FyZExlZnRBcnJvdyA9IDB4NTAsCisgICAga0hJRFVzYWdlX0tleWJvYXJkRG93bkFy
cm93ID0gMHg1MSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRVcEFycm93ID0gMHg1MiwKKyAgICBr
SElEVXNhZ2VfS2V5Ym9hcmRMZWZ0Q29udHJvbCA9IDB4RTAsCisgICAga0hJRFVzYWdlX0tleWJv
YXJkTGVmdFNoaWZ0ID0gMHhFMSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0QWx0ID0gMHhF
MgorfTsKKworV1RGX0VYVEVSTl9DX0VORAorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5l
ci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJL
aXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWRiOThlYTllMDli
OTlhNmZjN2ExNzBlOWUwNDBmNDY2YjJhNDUwMC4uNTFmZDI1YTU3NmE1MmI2ZjljOGVmMjlkMGIz
YmVlNmQ3ZGEwNGFkNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRU
ZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYz
LDYgKzYzLDExIEBACiAJCTI5QThGQ0REMTQ1RjAzMzcwMDkwNDVBNiAvKiBKU0FjY2Vzc2liaWxp
dHlUZXh0TWFya2VyUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjlBOEZDRTEzNDVFNzAyMTAwNkFBNUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZS5jcHAgKi87IH07CiAJCTI5QThGQ0UyMTQ1RjAzN0IwMDkwNDVBNiAvKiBB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QThGQ0UxMTQ1RjAzN0IwMDkwNDVBNiAvKiBBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCAqLzsgfTsKIAkJMjlBOEZDRTUxNDVGMDQ2NDAwOTA0
NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4RkNFNDE0NUYwNDY0MDA5MDQ1QTYg
LyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbSAqLzsgfTsKKwkJMkRCNjE4N0Ux
RDdENThENDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRCNjE4N0QxRDdENThENDAwOTc4RDE5IC8qIENv
cmVHcmFwaGljc1NQSS5oICovOyB9OworCQkyREQ0QzQ5QTFENkU3RDNCMDAwNzM3OUMgLyogRXZl
bnRTZXJpYWxpemVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyREQ0QzQ5ODFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLmgg
Ki87IH07CisJCTJERDRDNDlCMUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ0QzQ5
OTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tICovOyB9OworCQkyREZB
OTg0ODFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZBOTg0NjFEN0Y3MENGMDBB
RkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggKi87IH07CisJCTJERkE5ODQ5MUQ3Rjcw
Q0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZBOTg0NzFEN0Y3MENGMDBBRkYyQzkgLyog
U2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tICovOyB9OwogCQkyRTM0QzkwMDE4QjY4ODA4MDAwMDY3
QkIgLyogV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlLmJ1bmRsZSBpbiBDb3B5IFBsdWct
SW5zICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjUxODYyMTFEMTVENTQw
MDJFQkMwMSAvKiBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuYnVuZGxlICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKENvZGVTaWduT25Db3B5LCBSZW1vdmVIZWFkZXJzT25Db3B5
LCApOyB9OyB9OwogCQkyRTYzRUQ4QTE4OTFBRDdFMDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTYzRUQ3NTE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJ
T1MubW0gKi87IH07CiAJCTJFNjNFRDhCMTg5MUFEN0UwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFNjNFRDc3MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
cklPUy5tbSAqLzsgfTsKQEAgLTIxMSw3ICsyMTYsNyBAQAogCQkwRkVCOTBBMzE5MDVCQzZBMDAw
RkRCRjMgLyogQ3Jhc2hSZXBvcnRlckluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBDcmFzaFJlcG9ydGVySW5mby5tbTsgcGF0aCA9IGNvY29hL0NyYXNoUmVw
b3J0ZXJJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVCRjg1ODFCQjYx
REYyMDAyODcyMkQgLyogSElERXZlbnRHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSElERXZlbnRHZW5lcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEZFQkY4NTkxQkI2MURGMjAwMjg3MjJEIC8qIEhJREV2ZW50R2VuZXJhdG9yLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSElERXZlbnRHZW5lcmF0b3Iu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRUJGODVCMUJCNjJBMzcwMDI4NzIy
RCAvKiBJT0tpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJT0tpdFNQSS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwRkVCRjg1QjFCQjYyQTM3MDAyODcyMkQgLyogSU9LaXRTUEkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gSU9LaXRTUEkuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvc3Bp
L0lPS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRUJGODVDMUJCNjJE
NDYwMDI4NzIyRCAvKiBVSUtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVSUtpdFNQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTMzMjYwNTFCNzUzOTY1MDBGODlGNjIgLyogVGVz
dE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVzdE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUNBMjExQzcxQkNBMTA3MzAwQjIxMDFGIC8qIEZvbnRXaXRoRmVhdHVy
ZXMub3RmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
ZmlsZTsgcGF0aCA9IEZvbnRXaXRoRmVhdHVyZXMub3RmOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjQwLDcgKzI0NSwxMiBAQAogCQkyOUE4RkNFMTM0NUU3MDIxMDA2QUE1QTYgLyog
SlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QThGQ0UxMzQ1RTcwMjEwMDZBQTVBNyAvKiBKU0Fj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTI5QThGQ0U0MTQ1RjA0NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlclJhbmdlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMkRCNjE4N0QxRDdENThENDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQSS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDb3JlR3JhcGhpY3NTUEkuaDsgcGF0
aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0NvcmVHcmFwaGljc1NQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRENFMkNEMTFCODQ1MjQ1MDBDN0Y4MzIgLyogVGVzdENvbnRy
b2xsZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRl
c3RDb250cm9sbGVyQ29jb2EubW07IHBhdGggPSBjb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREQ0QzQ5ODFENkU3RDNCMDAwNzM3OUMg
LyogRXZlbnRTZXJpYWxpemVyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEV2ZW50U2VyaWFsaXplck1hYy5oOyBwYXRoID0gbWFjL0V2ZW50U2VyaWFsaXplck1hYy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREQ0QzQ5OTFENkU3RDNCMDAwNzM3OUMgLyog
RXZlbnRTZXJpYWxpemVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gRXZlbnRTZXJpYWxpemVyTWFjLm1tOyBwYXRoID0gbWFjL0V2ZW50U2VyaWFsaXplck1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRGQTk4NDYxRDdGNzBDRjAwQUZG
MkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaDsgcGF0aCA9IG1hYy9TaGFyZWRFdmVudFN0
cmVhbXNNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRGQTk4NDcxRDdGNzBD
RjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTsgcGF0aCA9IG1h
Yy9TaGFyZWRFdmVudFN0cmVhbXNNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJFNjNFRDc1MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlD
b250cm9sbGVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTYzRUQ3NjE4
OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU2M0VENzcxODkxQUNFOTAw
MkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NzYsNyArNDg2LDkgQEAKIAkJMEY3M0I1NDcx
QkE3ODJGRTAwNEIzRUY0IC8qIFVJU2NyaXB0Q29udGV4dCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMkRCNjE4N0YxRDdENTk4ODAwOTc4RDE5IC8qIHNw
aSAqLywKIAkJCQkwRjczQjU0QjFCQTc4MzUwMDA0QjNFRjQgLyogQmluZGluZ3MgKi8sCisJCQkJ
MkRENEM0OTcxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50IFNlcmlhbGl6YXRpb24gKi8sCiAJCQkJ
MEY3M0I1NEUxQkE3ODk1NDAwNEIzRUY0IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkwRjE4
RTZERDFENkI5QUFGMDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmNwcCAqLywKIAkJCQkwRjE4
RTZERTFENkI5QUFGMDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmggKi8sCkBAIC01NTQsNiAr
NTY2LDM1IEBACiAJCQluYW1lID0gQWNjZXNzaWJpbGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07CisJCTJEQjYxODdGMUQ3RDU5ODgwMDk3OEQxOSAvKiBzcGkgKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTJEQjYxODdEMUQ3RDU4RDQw
MDk3OEQxOSAvKiBDb3JlR3JhcGhpY3NTUEkuaCAqLywKKwkJCQkwRkVCRjg1QjFCQjYyQTM3MDAy
ODcyMkQgLyogSU9LaXRTUEkuaCAqLywKKwkJCSk7CisJCQluYW1lID0gc3BpOworCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMkRENEM0OTcxRDZFN0QzQjAwMDczNzlDIC8qIEV2
ZW50IFNlcmlhbGl6YXRpb24gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVu
ID0gKAorCQkJCTJERkE5ODRBMUQ3Rjc5RTAwMEFGRjJDOSAvKiBtYWMgKi8sCisJCQkpOworCQkJ
bmFtZSA9ICJFdmVudCBTZXJpYWxpemF0aW9uIjsKKwkJCXBhdGggPSAuLi9UZXN0UnVubmVyU2hh
cmVkL0V2ZW50U2VyaWFsaXphdGlvbjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CisJCTJERkE5ODRBMUQ3Rjc5RTAwMEFGRjJDOSAvKiBtYWMgKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTJERDRDNDk4MUQ2RTdEM0IwMDA3Mzc5QyAvKiBF
dmVudFNlcmlhbGl6ZXJNYWMuaCAqLywKKwkJCQkyREQ0QzQ5OTFENkU3RDNCMDAwNzM3OUMgLyog
RXZlbnRTZXJpYWxpemVyTWFjLm1tICovLAorCQkJCTJERkE5ODQ2MUQ3RjcwQ0YwMEFGRjJDOSAv
KiBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaCAqLywKKwkJCQkyREZBOTg0NzFEN0Y3MENGMDBBRkYy
QzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tICovLAorCQkJKTsKKwkJCW5hbWUgPSBtYWM7
CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkyRTYzRUQ3NDE4OTFBQ0U5MDAy
QTdBRkMgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTU5MSw3ICs2MzIsNiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMEZFQkY4NTgxQkI2MURG
MjAwMjg3MjJEIC8qIEhJREV2ZW50R2VuZXJhdG9yLmggKi8sCiAJCQkJMEZFQkY4NTkxQkI2MURG
MjAwMjg3MjJEIC8qIEhJREV2ZW50R2VuZXJhdG9yLm1tICovLAotCQkJCTBGRUJGODVCMUJCNjJB
MzcwMDI4NzIyRCAvKiBJT0tpdFNQSS5oICovLAogCQkJCTJFRTUyRDEzMTg5MEE5RkIwMDEwRUQy
MSAvKiBQbGF0Zm9ybVdlYlZpZXdJT1MubW0gKi8sCiAJCQkJMkVFNTJEMTQxODkwQTlGQjAwMTBF
RDIxIC8qIFRlc3RDb250cm9sbGVySU9TLm1tICovLAogCQkJCTBGRUJGODVDMUJCNjJENDYwMDI4
NzIyRCAvKiBVSUtpdFNQSS5oICovLApAQCAtNzc4LDcgKzgxOCwxMCBAQAogCQkJaXNhID0gUEJY
SGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCisJCQkJMkRCNjE4N0UxRDdENThENDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQ
SS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3M0I1NTIxQkE3ODk2ODAwNEIzRUY0IC8qIEpTVUlT
Y3JpcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkyREZBOTg0ODFEN0Y3MENGMDBB
RkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQkyREQ0
QzQ5QTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLmggaW4gSGVhZGVycyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKQEAgLTk4Niw4ICsxMDI5LDEwIEBACiAJCQkJMEY3M0I1NTExQkE3ODk2ODAwNEIzRUY0IC8q
IEpTVUlTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMThFNzE4MUQ2
QkM0NTYwMDI3RTU0NyAvKiBKU1dyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEw
M0MxQjlBRTBGRTAwNzQ0QUVCIC8qIE9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkRE
NEM0OUIxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUExODUxMDQwMUI5QUUxMzEwMDc0NEFFQiAvKiBQaXhlbER1bXBTdXBwb3J0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDQxMUI5QUUxMzgwMDc0NEFFQiAvKiBUZXN0Q29u
dHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyREZBOTg0OTFEN0Y3MENGMDBBRkYyQzkg
LyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0Ix
QjlBRTBFMjAwNzQ0QUVCIC8qIFRlc3RDb250cm9sbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBMTg1MTA0MjFCOUFFMTNFMDA3NDRBRUIgLyogVGVzdEludm9jYXRpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTE4NTEwM0QxQjlBRTEwNjAwNzQ0QUVCIC8qIFRlc3RJbnZvY2F0aW9u
Q0cuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2lvcy9JT0tpdFNQSS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvSU9LaXRTUEkuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2EwZDZhMTVjZDUxZDI1MjIwZGFkMTdkMWUy
MzFmNjNmYWFlYWUzYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tpdFNQSS5oCisrKyAvZGV2L251bGwK
QEAgLTEsMTc4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIElPS2l0U1BJX2gKLSNkZWZp
bmUgSU9LaXRTUElfaAotCi0jaW1wb3J0IDx3dGYvUGxhdGZvcm0uaD4KLQotI2lmIFBMQVRGT1JN
KElPUykKLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0KLSNpbXBvcnQgPElPS2l0L2hp
ZC9JT0hJREV2ZW50Lmg+Ci0jaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURFdmVudFN5c3RlbUNsaWVu
dC5oPgotI2ltcG9ydCA8SU9LaXQvaGlkL0lPSElEVXNhZ2VUYWJsZXMuaD4KLQotI2Vsc2UKLQot
V1RGX0VYVEVSTl9DX0JFR0lOCi0KLSNpZmRlZiBfX0xQNjRfXwotdHlwZWRlZiBkb3VibGUgSU9I
SURGbG9hdDsKLSNlbHNlCi10eXBlZGVmIGZsb2F0IElPSElERmxvYXQ7Ci0jZW5kaWYKLQotZW51
bSB7Ci0gICAga0lPSElERXZlbnRPcHRpb25Ob25lID0gMCwKLX07Ci0KLXR5cGVkZWYgVUludDMy
IElPT3B0aW9uQml0czsKLXR5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudE9wdGlvbkJpdHM7Ci10
eXBlZGVmIHVpbnQzMl90IElPSElERXZlbnRGaWVsZDsKLQotdHlwZWRlZiBzdHJ1Y3QgX19JT0hJ
REV2ZW50U3lzdGVtQ2xpZW50ICogSU9ISURFdmVudFN5c3RlbUNsaWVudFJlZjsKLXR5cGVkZWYg
c3RydWN0IF9fSU9ISURFdmVudCAqIElPSElERXZlbnRSZWY7Ci0KLSNkZWZpbmUgSU9ISURFdmVu
dEZpZWxkQmFzZSh0eXBlKSAodHlwZSA8PCAxNikKLQotZW51bSB7Ci0gICAga0hJRFBhZ2VfS2V5
Ym9hcmRPcktleXBhZCAgICAgICA9IDB4MDcsCi0gICAga0hJRFBhZ2VfVmVuZG9yRGVmaW5lZFN0
YXJ0ICAgICA9IDB4RkYwMAotfTsKLQotZW51bSB7Ci0gICAga0lPSElERGlnaXRpemVyRXZlbnRS
YW5nZSAgICAgICA9IDE8PDAsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRUb3VjaCAgICAgICA9
IDE8PDEsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRQb3NpdGlvbiAgICA9IDE8PDIsCi0gICAg
a0lPSElERGlnaXRpemVyRXZlbnRJZGVudGl0eSAgICA9IDE8PDUsCi0gICAga0lPSElERGlnaXRp
emVyRXZlbnRBdHRyaWJ1dGUgICA9IDE8PDYsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRDYW5j
ZWwgICAgICA9IDE8PDcsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRTdGFydCAgICAgICA9IDE8
PDgsCi19OwotdHlwZWRlZiB1aW50MzJfdCBJT0hJRERpZ2l0aXplckV2ZW50TWFzazsKLQotZW51
bSB7Ci0gICAga0lPSElERXZlbnRUeXBlTlVMTCwKLSAgICBrSU9ISURFdmVudFR5cGVWZW5kb3JE
ZWZpbmVkLAotICAgIGtJT0hJREV2ZW50VHlwZUtleWJvYXJkID0gMywKLSAgICBrSU9ISURFdmVu
dFR5cGVEaWdpdGl6ZXIgPSAxMSwKLX07Ci10eXBlZGVmIHVpbnQzMl90IElPSElERXZlbnRUeXBl
OwotCi1lbnVtIHsKLSAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFVzYWdlUGFnZSA9
IElPSElERXZlbnRGaWVsZEJhc2Uoa0lPSElERXZlbnRUeXBlVmVuZG9yRGVmaW5lZCksCi0gICAg
a0lPSElERXZlbnRGaWVsZFZlbmRvckRlZmluZWRSZXNlcnZlZCwKLSAgICBrSU9ISURFdmVudEZp
ZWxkVmVuZG9yRGVmaW5lZFJlc2VydmVkMSwKLSAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVm
aW5lZERhdGFMZW5ndGgsCi0gICAga0lPSElERXZlbnRGaWVsZFZlbmRvckRlZmluZWREYXRhCi19
OwotCi1lbnVtIHsKLSAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyWCA9IElPSElERXZlbnRG
aWVsZEJhc2Uoa0lPSElERXZlbnRUeXBlRGlnaXRpemVyKSwKLSAgICBrSU9ISURFdmVudEZpZWxk
RGlnaXRpemVyWSwKLSAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyTWFqb3JSYWRpdXMgPSBr
SU9ISURFdmVudEZpZWxkRGlnaXRpemVyWCArIDIwLAotICAgIGtJT0hJREV2ZW50RmllbGREaWdp
dGl6ZXJNaW5vclJhZGl1cywKLSAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVySXNEaXNwbGF5
SW50ZWdyYXRlZCA9IGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJNYWpvclJhZGl1cyArIDUsCi19
OwotCi1lbnVtIHsKLSAgICBrSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZUhhbmQgPSAzCi19
OwotdHlwZWRlZiB1aW50MzJfdCBJT0hJRERpZ2l0aXplclRyYW5zZHVjZXJUeXBlOwotCi1JT0hJ
REV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVEaWdpdGl6ZXJFdmVudChDRkFsbG9jYXRvclJlZiwg
dWludDY0X3QsIElPSElERGlnaXRpemVyVHJhbnNkdWNlclR5cGUsIHVpbnQzMl90LCB1aW50MzJf
dCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREZs
b2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xl
YW5fdCwgSU9PcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlRGln
aXRpemVyRmluZ2VyRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWlu
dDMyX3QsIElPSElERGlnaXRpemVyRXZlbnRNYXNrLCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJ
T0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwg
SU9ISURFdmVudE9wdGlvbkJpdHMpOwotCi1JT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVG
b3JjZUV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIElPSElERmxvYXQs
IHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREV2ZW50T3B0aW9uQml0cyk7Ci0KLUlPSElERXZl
bnRSZWYgSU9ISURFdmVudENyZWF0ZUtleWJvYXJkRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2
NF90LCB1aW50MzJfdCwgdWludDMyX3QsIGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsKLQotSU9I
SURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlVmVuZG9yRGVmaW5lZEV2ZW50KENGQWxsb2NhdG9y
UmVmLCB1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDhfdCosIENG
SW5kZXgsIElPSElERXZlbnRPcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFR5cGUgSU9ISURFdmVu
dEdldFR5cGUoSU9ISURFdmVudFJlZik7Ci0KLXZvaWQgSU9ISURFdmVudFNldEZsb2F0VmFsdWUo
SU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxkLCBJT0hJREZsb2F0KTsKLQotQ0ZJbmRleCBJ
T0hJREV2ZW50R2V0SW50ZWdlclZhbHVlKElPSElERXZlbnRSZWYsIElPSElERXZlbnRGaWVsZCk7
Ci12b2lkIElPSElERXZlbnRTZXRJbnRlZ2VyVmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVu
dEZpZWxkLCBDRkluZGV4KTsKLQotdm9pZCBJT0hJREV2ZW50QXBwZW5kRXZlbnQoSU9ISURFdmVu
dFJlZiwgSU9ISURFdmVudFJlZiwgSU9PcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFN5c3RlbUNs
aWVudFJlZiBJT0hJREV2ZW50U3lzdGVtQ2xpZW50Q3JlYXRlKENGQWxsb2NhdG9yUmVmKTsKLQot
I2RlZmluZSBrR1NFdmVudFBhdGhJbmZvSW5SYW5nZSAoMSA8PCAwKQotI2RlZmluZSBrR1NFdmVu
dFBhdGhJbmZvSW5Ub3VjaCAoMSA8PCAxKQotCi1lbnVtIHsKLSAgICBrSElEVXNhZ2VfS2V5Ym9h
cmRBID0gMHgwNCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQxID0gMHgxRSwKLSAgICBrSElEVXNh
Z2VfS2V5Ym9hcmQyID0gMHgxRiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQzID0gMHgyMCwKLSAg
ICBrSElEVXNhZ2VfS2V5Ym9hcmQ0ID0gMHgyMSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ1ID0g
MHgyMiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ2ID0gMHgyMywKLSAgICBrSElEVXNhZ2VfS2V5
Ym9hcmQ3ID0gMHgyNCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ4ID0gMHgyNSwKLSAgICBrSElE
VXNhZ2VfS2V5Ym9hcmQ5ID0gMHgyNiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQwID0gMHgyNywK
LSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRSZXR1cm5PckVudGVyID0gMHgyOCwKLSAgICBrSElEVXNh
Z2VfS2V5Ym9hcmRFc2NhcGUgPSAweDI5LAotICAgIGtISURVc2FnZV9LZXlib2FyZERlbGV0ZU9y
QmFja3NwYWNlID0gMHgyQSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRUYWIgPSAweDJCLAotICAg
IGtISURVc2FnZV9LZXlib2FyZFNwYWNlYmFyID0gMHgyQywKLSAgICBrSElEVXNhZ2VfS2V5Ym9h
cmRIeXBoZW4gPSAweDJELAotICAgIGtISURVc2FnZV9LZXlib2FyZEVxdWFsU2lnbiA9IDB4MkUs
Ci0gICAga0hJRFVzYWdlX0tleWJvYXJkT3BlbkJyYWNrZXQgPSAweDJGLAotICAgIGtISURVc2Fn
ZV9LZXlib2FyZENsb3NlQnJhY2tldCA9IDB4MzAsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkQmFj
a3NsYXNoID0gMHgzMSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRTZW1pY29sb24gPSAweDMzLAot
ICAgIGtISURVc2FnZV9LZXlib2FyZFF1b3RlID0gMHgzNCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9h
cmRHcmF2ZUFjY2VudEFuZFRpbGRlID0gMHgzNSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRDb21t
YSA9IDB4MzYsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkUGVyaW9kID0gMHgzNywKLSAgICBrSElE
VXNhZ2VfS2V5Ym9hcmRTbGFzaCA9IDB4MzgsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRjEgPSAw
eDNBLAotICAgIGtISURVc2FnZV9LZXlib2FyZEhvbWUgPSAweDRBLAotICAgIGtISURVc2FnZV9L
ZXlib2FyZFBhZ2VVcCA9IDB4NEIsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRW5kID0gMHg0RCwK
LSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRSaWdodEFycm93ID0gMHg0RiwKLSAgICBrSElEVXNhZ2Vf
S2V5Ym9hcmRMZWZ0QXJyb3cgPSAweDUwLAotICAgIGtISURVc2FnZV9LZXlib2FyZERvd25BcnJv
dyA9IDB4NTEsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkVXBBcnJvdyA9IDB4NTIsCi0gICAga0hJ
RFVzYWdlX0tleWJvYXJkTGVmdENvbnRyb2wgPSAweEUwLAotICAgIGtISURVc2FnZV9LZXlib2Fy
ZExlZnRTaGlmdCA9IDB4RTEsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdEFsdCA9IDB4RTIK
LX07Ci0KLVdURl9FWFRFUk5fQ19FTkQKLQotI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCi0KLSNlbmRpZiAvLyBQTEFURk9STShJT1MpCi0KLSNlbmRpZiAvLyBJT0tpdFNQSV9oCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJN
YWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMu
bW0KaW5kZXggNGY2Y2NlYmE3ZDNmYjQwOTg1YTA2MjE3MjBjYjhhMWMwZWIyNDc1ZC4uNTE0Mjcx
NzYyYTMxNTM3NTNiM2M2NTgwMmM2MTA3NmYyYmUzYzQwMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQpAQCAtMjYsNyArMjYs
MTIgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiVUlTY3JpcHRDb250cm9sbGVyLmgi
CiAKKyNpbXBvcnQgIkV2ZW50U2VyaWFsaXplck1hYy5oIgorI2ltcG9ydCAiUGxhdGZvcm1XZWJW
aWV3LmgiCisjaW1wb3J0ICJUZXN0Q29udHJvbGxlci5oIgorI2ltcG9ydCAiU2hhcmVkRXZlbnRT
dHJlYW1zTWFjLmgiCiAjaW1wb3J0ICJVSVNjcmlwdENvbnRleHQuaCIKKyNpbXBvcnQgPEphdmFT
Y3JpcHRDb3JlL0pTU3RyaW5nUmVmQ0YuaD4KIAogbmFtZXNwYWNlIFdUUiB7CiAKQEAgLTQxLDQg
KzQ2LDM4IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FzeW5jVGFzayhKU1ZhbHVlUmVm
IGNhbGxiYWNrKQogICAgIH0pOwogfQogCitzdGF0aWMgdm9pZCBwbGF5QmFja0V2ZW50cyhVSVNj
cmlwdENvbnRleHQgKmNvbnRleHQsIE5TU3RyaW5nICpldmVudFN0cmVhbSwgSlNWYWx1ZVJlZiBj
YWxsYmFjaykKK3sKKyAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKKyAgICBOU0FycmF5ICpldmVu
dERpY3RzID0gW05TSlNPTlNlcmlhbGl6YXRpb24gSlNPTk9iamVjdFdpdGhEYXRhOltldmVudFN0
cmVhbSBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10gb3B0aW9uczowIGVy
cm9yOiZlcnJvcl07CisKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTlNMb2coQCJFUlJPUjog
JUAiLCBlcnJvcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBjYWxs
YmFja0lEID0gY29udGV4dC0+cHJlcGFyZUZvckFzeW5jVGFzayhjYWxsYmFjaywgQ2FsbGJhY2tU
eXBlTm9uUGVyc2lzdGVudCk7CisKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1Rlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSB3aW5kb3ddOwor
ICAgIFtFdmVudFNlcmlhbGl6ZXIgcGxheUV2ZW50U3RyZWFtOmV2ZW50RGljdHMgaW5XaW5kb3c6
d2luZG93IGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgIGNvbnRleHQtPmFzeW5jVGFza0Nv
bXBsZXRlKGNhbGxiYWNrSUQpOworICAgIH1dOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxl
cjo6YmVnaW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBwbGF5QmFja0V2
ZW50cyhtX2NvbnRleHQsIGJlZ2luU3dpcGVCYWNrRXZlbnRTdHJlYW0oKSwgY2FsbGJhY2spOwor
fQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUoSlNWYWx1ZVJl
ZiBjYWxsYmFjaykKK3sKKyAgICBwbGF5QmFja0V2ZW50cyhtX2NvbnRleHQsIGNvbXBsZXRlU3dp
cGVCYWNrRXZlbnRTdHJlYW0oKSwgY2FsbGJhY2spOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJv
bGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpTU3RyaW5nUmVmIGV2ZW50U3RyZWFt
LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIFJldGFpblB0cjxOU1N0cmluZz4gbnNTdHJp
bmcgPSBhZG9wdE5TKChOU1N0cmluZyAqKUpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIGV2ZW50U3RyZWFtKSk7CisgICAgcGxheUJhY2tFdmVudHMobV9jb250ZXh0LCBu
c1N0cmluZy5nZXQoKSwgY2FsbGJhY2spOworfQorCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzYyMWI2Y2Q0MDUyYmQx
OWMxY2FjOTYxOGU3NDk2N2NhM2RmZDYzOC4uN2Q0MzdiYzhiZjk2MzI3ZTZlMzdmM2JjY2IwODU1
MWMyMmMzYzIwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE2LTA5LTA2ICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFN3aXBlIGdlc3R1cmUgdGVz
dHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMz
Nzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogc3dpcGUvYmFz
aWMtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN3aXBlL2Jhc2lj
LWNhY2hlZC1iYWNrLXN3aXBlLmh0bWw6CisgICAgICAgICogc3dpcGUvbWFpbi1mcmFtZS1waW5u
aW5nLXJlcXVpcmVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzd2lwZS9tYWluLWZyYW1l
LXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbDoKKyAgICAgICAgKiBzd2lwZS9wdXNoU3RhdGUtY2Fj
aGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN3aXBlL3B1c2hTdGF0ZS1j
YWNoZWQtYmFjay1zd2lwZS5odG1sOgorICAgICAgICAqIHN3aXBlL3B1c2hTdGF0ZS1wcm9ncmFt
bWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBz
d2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1s
OgorICAgICAgICAqIHN3aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzOgorICAgICAgICAobWVh
c3VyZWREdXJhdGlvblNob3VsZEJlTGVzc1RoYW4pOgorICAgICAgICAoc3RhcnRTd2lwZUdlc3R1
cmUpOgorICAgICAgICAoY29tcGxldGVTd2lwZUdlc3R1cmUpOgorICAgICAgICAocGxheUV2ZW50
U3RyZWFtKToKKyAgICAgICAgKGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQpOiBEZWxldGVkLgorICAg
ICAgICAoZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKGV2
ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaCk6IERlbGV0ZWQuCisgICAgICAgIChldmVu
dFF1ZXVlLl9wcm9jZXNzRXZlbnRRdWV1ZSk6IERlbGV0ZWQuCisgICAgICAgIChldmVudFF1ZXVl
Ll9wcm9jZXNzRXZlbnRRdWV1ZVNvb24pOiBEZWxldGVkLgorICAgICAgICAqIHN3aXBlL3N3aXBl
LXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIHN3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMuaHRtbDogUmVtb3ZlZC4K
KwogMjAxNi0wOS0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04gKHIyMDQ4MzkpOiBbbWFjLXdrMV0gTGF5b3V0VGVzdCB3ZWJnbC9tYXgtYWN0
aXZlLWNvbnRleHRzLXdlYmdsY29udGV4dGxvc3QtcHJldmVudC1kZWZhdWx0Lmh0bWwgaXMgYSBm
bGFreSB0aW1lb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggYmRmYjE2NDhhZDM3ZWVlNzRkZDY4ZGJmOWQwNjNmMDNlNTZlM2U2MS4uODJh
OTVkZGM2OTkzZjI2Y2E4N2I4Yjg1OTYwZTdjZDY0OTc2MmU1YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTE0LDEyICs1MTQsNiBAQCB3
ZWJraXQub3JnL2IvMTU4NjM5IFsgUmVsZWFzZSBZb3NlbWl0ZSBdIGltcG9ydGVkL2JsaW5rL3N0
b3JhZ2UvaW5kZXhlZGRiL2Jsb2ItZAogIyA8cmRhcjovL3Byb2JsZW0vMjUwNjMxMjg+CiBbIFNp
ZXJyYSsgXSBtZWRpYS9tZWRpYS1jb250cm9scy1kcmFnLXRpbWVsaW5lLXNldC1jb250cm9scy1w
cm9wZXJ0eS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIAotIyA8cmRhcjovL3Byb2JsZW0vMjMzNzk5
MzA+IHN3aXBlIHRlc3RzIGNyYXNoaW5nCi1bIFNpZXJyYSsgXSBzd2lwZS9iYXNpYy1jYWNoZWQt
YmFjay1zd2lwZS5odG1sIFsgU2tpcCBdCi1bIFNpZXJyYSsgXSBzd2lwZS9tYWluLWZyYW1lLXBp
bm5pbmctcmVxdWlyZW1lbnQuaHRtbCBbIFNraXAgXQotWyBTaWVycmErIF0gc3dpcGUvcHVzaFN0
YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwgWyBTa2lwIF0KLVsgU2llcnJhKyBdIHN3aXBlL3N3
aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMuaHRtbCBbIFNraXAgXQotCiAjIEhpdHRpbmcg
IlRoZSBjZXJ0aWZpY2F0ZSBmb3IgdGhpcyBzZXJ2ZXIgaXMgaW52YWxpZCIgbG9hZGluZyBlcnJv
ciAobm90IGhhcHBlbmluZyBpbiBXSzEpCiB3ZWJraXQub3JnL2IvMTYwNDQ1IFsgU2llcnJhKyBd
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1
cmUtcmVxdWVzdHMvdXBncmFkZS1pbnNlY3VyZS1mZXRjaC1pbi13b3JrZXIuaHRtbCBbIEZhaWx1
cmUgXQogd2Via2l0Lm9yZy9iLzE2MDQ0NSBbIFNpZXJyYSsgXSBodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS91cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzL3VwZ3JhZGUt
aW5zZWN1cmUtZmV0Y2gtaW4tbWFpbi1mcmFtZS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQK
aW5kZXggZTNkM2UwMGFiOWQwYmZmZmU2NjlkNmFkODlhMDE3YWY1N2Y3MGI4OS4uODlkZWNmZDRj
MzcxMjVjZmI1NTk4MTE5Njg5YzNmMGM0YTFkODg0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dApAQCAtMSwxMCAr
MSw2IEBACi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xs
IGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEg
MCwgcGhhc2UgJ2NoYW5nZWQnKQorc3RhcnRTd2lwZUdlc3R1cmUKIGRpZEJlZ2luU3dpcGUKLXN3
aXBlIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0
YSAyNTYgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2Ug
J2VuZGVkJykKK2NvbXBsZXRlU3dpcGVHZXN0dXJlCiB3aWxsRW5kU3dpcGUKIGRpZEVuZFN3aXBl
CiBkaWRSZW1vdmVTd2lwZVNuYXBzaG90CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9i
YXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sIGIvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2Fj
aGVkLWJhY2stc3dpcGUuaHRtbAppbmRleCBjZjdmNzVjYjEzOWI1NGI1MTUxNzhhMDczYjk4YWQw
NjczZGRhNjgzLi44NzFhMmJjNjQ2YjhkNGFlODY5NDYzN2U4MDAzYTNiNGIzMjQ1YTZiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKQEAgLTYs
MjggKzYsMTAgQEAgaHRtbCB7CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9zd2lw
ZS10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiBzdGFydFN3aXBlR2VzdHVy
ZSgpCi17Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAxMDApOwotCi0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1
ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVu
cXVldWVTY3JvbGxFdmVudCgxLCAwLCAnY2hhbmdlZCcpOwotfQotCi1mdW5jdGlvbiBjb21wbGV0
ZVN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgxLCAw
LCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMjU2LCAwLCAn
Y2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ2VuZGVk
Jyk7Ci19Ci0KIGZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVDYWxsYmFjaygpCiB7CiAgICAgbG9nKCJk
aWRCZWdpblN3aXBlIik7CiAKLSAgICBzaG91bGRCZShmYWxzZSwgZXZlbnRRdWV1ZS5oYXNQZW5k
aW5nRXZlbnRzKCksICJFdmVudCBxdWV1ZSBzaG91bGQgYmUgZW1wdHkuIEJvdGggc2Nyb2xsIGV2
ZW50cyBzaG91bGQgYmUgcmVxdWlyZWQgdG8gc3RhcnQgdGhlIHN3aXBlIGJlY2F1c2Ugb2YgdGhl
IHN3aXBlLXN0YXJ0IGh5c3RlcmVzaXMuIik7Ci0KICAgICBjb21wbGV0ZVN3aXBlR2VzdHVyZSgp
OwogfQogCkBAIC00Miw3ICsyNCw2IEBAIGZ1bmN0aW9uIGRpZEVuZFN3aXBlQ2FsbGJhY2soKQog
ewogICAgIGxvZygiZGlkRW5kU3dpcGUiKTsKIAotICAgIHNob3VsZEJlKDAsIGV2ZW50UXVldWUu
aGFzUGVuZGluZ0V2ZW50cygpLCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5LiBUaGUgc3dp
cGUgaXNuJ3QgY29tcGxldGUgdW50aWwgd2Ugc2VlIHRoZSBlbmQgb2YgdGhlIGdlc3R1cmUuIik7
CiAgICAgc3RhcnRNZWFzdXJpbmdEdXJhdGlvbigic25hcHNob3RSZW1vdmFsIik7CiB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVu
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVx
dWlyZW1lbnQtZXhwZWN0ZWQudHh0CmluZGV4IDYzNTk3NDA1NDg0NzZjOGQwOWZiNGJiMzdjNzUy
NDRiOTBiMzkwZDYuLmNlNzY2ODE5NzIyMDk1MzVlMjRjZTA3MzcwZTMwNmEwOTgyNTBjZmUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVu
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5n
LXJlcXVpcmVtZW50LWV4cGVjdGVkLnR4dApAQCAtMSwyMyArMSw4IEBACi1zd2lwZSBldmVudCAo
ZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBw
aGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcp
Ci1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVu
dCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAw
LCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFu
Z2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xs
IGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRh
IDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2Ug
J2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1z
Y3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKLXN3aXBlIGV2ZW50IChkZWx0
YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2Ug
J2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQorc3Rh
cnRTd2lwZUdlc3R1cmUKK2NvbXBsZXRlU3dpcGVHZXN0dXJlCitzdGFydFN3aXBlR2VzdHVyZQog
ZGlkQmVnaW5Td2lwZQotc3dpcGUgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQot
c3dpcGUgZXZlbnQgKGRlbHRhIDI1NiAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAo
ZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQorY29tcGxldGVTd2lwZUdlc3R1cmUKIHdpbGxFbmRT
d2lwZQogZGlkRW5kU3dpcGUKIGRpZFJlbW92ZVN3aXBlU25hcHNob3QKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sIGIvTGF5
b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0bWwKaW5kZXgg
NjIxNTU0NDg0ZjA0ZmYzOTc1YmYyZjQxOGUxOGZlYzgzYzYyZjM1Yi4uYTM2OWI4MjFiOWQ5YzJl
MDM3OGRmNjI3MmVkMDE5ZjUyYWUyZWFiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUv
bWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3dp
cGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0bWwKQEAgLTYsNDggKzYsMjQgQEAg
aHRtbCB7CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9zd2lwZS10ZXN0LmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiBzdGFydFN3aXBlR2VzdHVyZSgpCi17Ci0gICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAxMDApOwogCitmdW5jdGlvbiBydW5UZXN0KCkK
K3sKICAgICAvLyBUaGUgZmlyc3Qgc3dpcGUgc2hvdWxkIGZhaWwgYmVjYXVzZSB3ZSdyZSBzY3Jv
bGxlZCB0byB0aGUgbWlkZGxlIG9mIHRoZSBkb2N1bWVudAogICAgIC8vIGFuZCB0aGlzIGlzIGFs
bCBhIHNpbmdsZSBnZXN0dXJlLiBXZSBjYW4gb25seSBzdGFydCBzd2lwZXMgaWYgd2UgKmJlZ2lu
KgogICAgIC8vIHBpbm5lZCB0byB0aGUgZWRnZS4KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lw
ZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2
ZW50KDEwLCAwLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgx
MCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwg
MCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwg
J2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2No
YW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5n
ZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQn
KTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsK
LSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAg
ICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBl
dmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVu
dFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnZW5kZWQnKTsKLQotICAgIGV2ZW50UXVl
dWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuY2xlYXJUZXN0UnVubmVyQ2FsbGJhY2tzKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFs
bERpZEJlZ2luU3dpcGVDYWxsYmFjayhkaWRCZWdpblN3aXBlQ2FsbGJhY2spOwotICAgICAgICB0
ZXN0UnVubmVyLmluc3RhbGxXaWxsRW5kU3dpcGVDYWxsYmFjayh3aWxsRW5kU3dpcGVDYWxsYmFj
ayk7Ci0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZEVuZFN3aXBlQ2FsbGJhY2soZGlkRW5k
U3dpcGVDYWxsYmFjayk7Ci0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZFJlbW92ZVN3aXBl
U25hcHNob3RDYWxsYmFjayhkaWRSZW1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2spOworICAgIHN0
YXJ0U3dpcGVHZXN0dXJlKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgY29tcGxldGVTd2lwZUdlc3R1
cmUoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhclRlc3RSdW5uZXJD
YWxsYmFja3MoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZEJlZ2luU3dpcGVD
YWxsYmFjayhkaWRCZWdpblN3aXBlQ2FsbGJhY2spOworICAgICAgICAgICAgdGVzdFJ1bm5lci5p
bnN0YWxsV2lsbEVuZFN3aXBlQ2FsbGJhY2sod2lsbEVuZFN3aXBlQ2FsbGJhY2spOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkRW5kU3dpcGVDYWxsYmFjayhkaWRFbmRTd2lwZUNh
bGxiYWNrKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZFJlbW92ZVN3aXBlU25h
cHNob3RDYWxsYmFjayhkaWRSZW1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2spOyAgICAKIAotICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIC8vIFRoZSBzZWNvbmQg
c3dpcGUgc2hvdWxkIHN1Y2NlZWQgYmVjYXVzZSB3ZSBhcmUgbm93IHNjcm9sbGVkIHRvIHRoZSBs
ZWZ0IGVkZ2UuCi0gICAgICAgICAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAs
ICdtYXliZWdpbicpOwotICAgICAgICAgICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQo
MSwgMCwgJ2JlZ2FuJyk7Ci0gICAgICAgICAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVu
dCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICAgICAgfSwgMCk7Ci0gICAgfSkKLX0KLQotZnVuY3Rp
b24gY29tcGxldGVTd2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBl
RXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50
KDI1NiwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAs
IDAsICdlbmRlZCcpOworICAgICAgICAgICAgc3RhcnRTd2lwZUdlc3R1cmUoZnVuY3Rpb24gKCkg
eyBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpOyB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7CiB9CiAK
IGZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVOb3RSZWFjaGVkQ2FsbGJhY2soKQpAQCAtNTgsMTAgKzM0
LDYgQEAgZnVuY3Rpb24gZGlkQmVnaW5Td2lwZU5vdFJlYWNoZWRDYWxsYmFjaygpCiBmdW5jdGlv
biBkaWRCZWdpblN3aXBlQ2FsbGJhY2soKQogewogICAgIGxvZygiZGlkQmVnaW5Td2lwZSIpOwot
Ci0gICAgc2hvdWxkQmUoZmFsc2UsIGV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpLCAiRXZl
bnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5LiBCb3RoIHNjcm9sbCBldmVudHMgc2hvdWxkIGJlIHJl
cXVpcmVkIHRvIHN0YXJ0IHRoZSBzd2lwZSBiZWNhdXNlIG9mIHRoZSBzd2lwZS1zdGFydCBoeXN0
ZXJlc2lzLiIpOwotCi0gICAgY29tcGxldGVTd2lwZUdlc3R1cmUoKTsKIH0KIAogZnVuY3Rpb24g
d2lsbEVuZFN3aXBlQ2FsbGJhY2soKQpAQCAtNzUsNyArNDcsNiBAQCBmdW5jdGlvbiBkaWRFbmRT
d2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRpZEVuZFN3aXBlIik7CiAKLSAgICBzaG91bGRC
ZSgwLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBi
ZSBlbXB0eS4gVGhlIHN3aXBlIGlzbid0IGNvbXBsZXRlIHVudGlsIHdlIHNlZSB0aGUgZW5kIG9m
IHRoZSBnZXN0dXJlLiIpOwogICAgIHN0YXJ0TWVhc3VyaW5nRHVyYXRpb24oInNuYXBzaG90UmVt
b3ZhbCIpOwogfQogCkBAIC0xMjEsOCArOTIsOSBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24g
KCkgewogICAgIH0KIAogICAgIC8vIFNlY29uZCBwYWdlIGxvYWRlZC4KLSAgICB3aW5kb3cuc2Ny
b2xsVG8oMTAwMCwgMCk7Ci0gICAgc3RhcnRTd2lwZUdlc3R1cmUoKTsKKyAgICB3aW5kb3cuc2Ny
b2xsVG8oMTAwLCAwKTsKKworICAgIHJ1blRlc3QoKTsKIH07CiA8L3NjcmlwdD4KIDwvaGVhZD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lw
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2st
c3dpcGUtZXhwZWN0ZWQudHh0CmluZGV4IGUzZDNlMDBhYjlkMGJmZmZlNjY5ZDZhZDg5YTAxN2Fm
NTdmNzBiODkuLjg5ZGVjZmQ0YzM3MTI1Y2ZiNTU5ODExOTY4OWMzZjBjNGExZDg4NGUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3
aXBlLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSw2IEBACi1zd2lwZSBldmVudCAoZGVsdGEgMCAw
LCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdiZWdh
bicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQorc3RhcnRTd2lw
ZUdlc3R1cmUKIGRpZEJlZ2luU3dpcGUKLXN3aXBlIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdj
aGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAyNTYgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dp
cGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKK2NvbXBsZXRlU3dpcGVHZXN0dXJl
CiB3aWxsRW5kU3dpcGUKIGRpZEVuZFN3aXBlCiBkaWRSZW1vdmVTd2lwZVNuYXBzaG90CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRt
bCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sCmlu
ZGV4IDU2ZGFkYTQ4OTA0MjhjNDlkZDJkNzFmNzY4NjA5MDRlMDFmODQzMWYuLjlhOGRjOWQ3ZDlh
MTA4ODc1OTI1ZWU0ZDI4OTk3ZTUzODYyZTM4NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3
aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N3
aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sCkBAIC02LDI4ICs2LDExIEBAIGh0
bWwgewogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gc3RhcnRTd2lwZUdlc3R1cmUoKQotewotICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKLQotICAgIGV2ZW50UXVldWUuZW5xdWV1
ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Ny
b2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZl
bnQoMSwgMCwgJ2NoYW5nZWQnKTsKLX0KLQotZnVuY3Rpb24gY29tcGxldGVTd2lwZUdlc3R1cmUo
KQotewotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsK
LSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDI1NiwgMCwgJ2NoYW5nZWQnKTsKLSAg
ICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdlbmRlZCcpOwotfQogCiBmdW5j
dGlvbiBkaWRCZWdpblN3aXBlQ2FsbGJhY2soKQogewogICAgIGxvZygiZGlkQmVnaW5Td2lwZSIp
OwogCi0gICAgc2hvdWxkQmUoZmFsc2UsIGV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpLCAi
RXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5LiBCb3RoIHNjcm9sbCBldmVudHMgc2hvdWxkIGJl
IHJlcXVpcmVkIHRvIHN0YXJ0IHRoZSBzd2lwZSBiZWNhdXNlIG9mIHRoZSBzd2lwZS1zdGFydCBo
eXN0ZXJlc2lzLiIpOwotCiAgICAgY29tcGxldGVTd2lwZUdlc3R1cmUoKTsKIH0KIApAQCAtNDIs
NyArMjUsNiBAQCBmdW5jdGlvbiBkaWRFbmRTd2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRp
ZEVuZFN3aXBlIik7CiAKLSAgICBzaG91bGRCZSgwLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVu
dHMoKSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBiZSBlbXB0eS4gVGhlIHN3aXBlIGlzbid0IGNvbXBs
ZXRlIHVudGlsIHdlIHNlZSB0aGUgZW5kIG9mIHRoZSBnZXN0dXJlLiIpOwogICAgIHN0YXJ0TWVh
c3VyaW5nRHVyYXRpb24oInNuYXBzaG90UmVtb3ZhbCIpOwogfQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1j
cmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1h
dGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC1leHBlY3RlZC50eHQKaW5kZXggZGMzNGU5MmQ1
ODg0ZWI4ZDFkMzE1MTViNWE4ODYyNzU2ZWIyOTM0Mi4uMDA1MDc1NWY1NzM3ZDRjZDdhM2MyNGM1
NzYyNGI3YTdkZjFjMjYzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRl
LXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2gtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lw
aW5nLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDQgQEAKLXN3aXBlIGV2ZW50IChkZWx0
YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2Ug
J2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lw
ZSBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEg
MjU2IDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdl
bmRlZCcpCitwbGF5RXZlbnRTdHJlYW0KK3BsYXlFdmVudFN0cmVhbQorY29tcGxldGVTd2lwZUdl
c3R1cmUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1t
YXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL3B1
c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLmh0bWwKaW5kZXgg
MzZlZjM5ZmI0M2U0MzBkYjkxNDYwMzg0NmZkMmJmN2UzMjkwNjMwMS4uM2Y4N2EwMzllZTdhOTNj
YjY0YTJmMGU2NWQ1MGNiYTA5NzA0NmNjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUv
cHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dp
cGluZy1jcmFzaC5odG1sCkBAIC02LDM3ICs2LDY3IEBAIGh0bWwgewogPC9zdHlsZT4KIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVu
Y3Rpb24gc3RhcnRTd2lwZUdlc3R1cmUoKQorZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAxMDApOwotCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVl
U3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3Jv
bGxFdmVudCgxLCAwLCAnYmVnYW4nKTsKLSAgICAKLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2
ZW50RGlzcGF0Y2goZ29CYWNrKTsKKyAgICBwbGF5RXZlbnRTdHJlYW0oYFt7CisgICAgICAgICJy
ZWxhdGl2ZVRpbWVNUyIgOiAwLAorICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0Jp
dHMiIDogMSwKKyAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAg
ImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNl
IiA6IDEyOCwKKyAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAgICAg
fSwKKyAgICAgIHsKKyAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDgsCisgICAgICAgICJrQ0dF
dmVudEdlc3R1cmVISURUeXBlIiA6IDYxLAorICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6
IDI5LAorICAgICAgICAia0NHRXZlbnRHZXN0dXJlU3RhcnRFbmRTZXJpZXNUeXBlIiA6IDYsCisg
ICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezAsIDB9IgorICAgICAgfSwKKyAgICAgIHsKKyAg
ICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgInJlbGF0aXZlVGlt
ZU1TIiA6IDgsCisgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAg
ICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAxLAorICAgICAgICAia0NHRXZlbnRTY3JvbGxH
ZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwK
KyAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMgorICAgICAgfSwKKyAgICAgIHsK
KyAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDgsCisgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIg
OiAiezQwMCwgMzAwfSIsCisgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2Ui
IDogMSwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMSwKKyAgICAgICAg
ImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgfV1gLCBnb0JhY2spOwogfQogCiBmdW5j
dGlvbiBnb0JhY2soKQogewogICAgIHdpbmRvdy5oaXN0b3J5LmJhY2soKTsKIAotICAgIGV2ZW50
UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChjb250aW51ZVN3aXBlR2VzdHVyZSk7CisgICAg
c2V0VGltZW91dChjb250aW51ZVRlc3QsIDApOwogfQogCi1mdW5jdGlvbiBjb250aW51ZVN3aXBl
R2VzdHVyZSgpCitmdW5jdGlvbiBjb250aW51ZVRlc3QoKQogewotICAgIGV2ZW50UXVldWUuZW5x
dWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdjaGFuZ2VkJyk7Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxB
ZnRlckV2ZW50RGlzcGF0Y2goY29tcGxldGVTd2lwZUdlc3R1cmUpOworICAgIHBsYXlFdmVudFN0
cmVhbShgWworICAgICAgeworICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMCwKKyAgICAgICAg
IndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRTY3JvbGxQaGFzZSIgOiAxLAorICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29u
dGludW91cyIgOiAxLAorICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlz
MiIgOiAyMCwKKyAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgfV1gLCBm
dW5jdGlvbiAoKSB7CisgICAgICAgIGNvbXBsZXRlVGVzdCgpOworICAgICAgfSk7CiB9CiAKLWZ1
bmN0aW9uIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCkKK2Z1bmN0aW9uIGNvbXBsZXRlVGVzdCgpCiB7
Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgxLCAwLCAnY2hhbmdlZCcpOwotICAg
IGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMjU2LCAwLCAnY2hhbmdlZCcpOwotICAgIGV2
ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1
ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2godGVzdENvbXBsZXRlKTsKKyAgICBjb21wbGV0ZVN3
aXBlR2VzdHVyZSh0ZXN0Q29tcGxldGUpOwogfQogCiBmdW5jdGlvbiBkaWRCZWdpblN3aXBlQ2Fs
bGJhY2soKQpAQCAtNzksNyArMTA5LDcgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgdXBkYXRlQ29udGVudCgpOwogCiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24g
KCkgewotICAgICAgICAgICAgc3RhcnRTd2lwZUdlc3R1cmUoKTsKKyAgICAgICAgICAgIHJ1blRl
c3QoKTsKICAgICAgICAgfSwgMCk7CiAgICAgfSwgMCk7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9zd2lwZS9y
ZXNvdXJjZXMvc3dpcGUtdGVzdC5qcwppbmRleCBkZDhlOTAwOWZmZTg0OTU5MDA5OWZkMTgzMjNi
Y2UzNzNiNzQwNjgwLi4wYzIzNjVkMTMxM2ExODA2NzdiOTFhZjJiNDQ5MzNhZTQwODM4Y2NkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9yZXNvdXJjZXMvc3dpcGUtdGVzdC5qcworKysg
Yi9MYXlvdXRUZXN0cy9zd2lwZS9yZXNvdXJjZXMvc3dpcGUtdGVzdC5qcwpAQCAtMSw1MCArMSwz
IEBACi12YXIgZXZlbnRRdWV1ZSA9IHsKLSAgICBlbnF1ZXVlU2Nyb2xsRXZlbnQ6IGZ1bmN0aW9u
ICh4LCB5LCBwaGFzZSkgewotICAgICAgICB0aGlzLl9xdWV1ZS5wdXNoKGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgICAgIGxvZygic2Nyb2xsIGV2ZW50IChkZWx0YSAiICsgeCArICIgIiArIHkgKyAi
LCBwaGFzZSAnIiArIHBoYXNlICsgIicpIik7Ci0gICAgICAgICAgICB3aW5kb3cuZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKHgsIHksIHBoYXNlLCAn
bm9uZScpOwotICAgICAgICB9KTsKLSAgICAgICAgdGhpcy5fcHJvY2Vzc0V2ZW50UXVldWVTb29u
KCk7Ci0gICAgfSwKLQotICAgIGVucXVldWVTd2lwZUV2ZW50OiBmdW5jdGlvbiAoeCwgeSwgcGhh
c2UpIHsKLSAgICAgICAgdGhpcy5fcXVldWUucHVzaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAg
ICBsb2coInN3aXBlIGV2ZW50IChkZWx0YSAiICsgeCArICIgIiArIHkgKyAiLCBwaGFzZSAnIiAr
IHBoYXNlICsgIicpIik7Ci0gICAgICAgICAgICB3aW5kb3cuZXZlbnRTZW5kZXIuc3dpcGVHZXN0
dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoeCwgeSwgcGhhc2UsICdub25lJyk7Ci0gICAg
ICAgIH0pOwotICAgICAgICB0aGlzLl9wcm9jZXNzRXZlbnRRdWV1ZVNvb24oKTsKLSAgICB9LAot
Ci0gICAgaGFzUGVuZGluZ0V2ZW50czogZnVuY3Rpb24gKCkgewotICAgICAgICByZXR1cm4gdGhp
cy5fcXVldWUubGVuZ3RoICE9IDA7Ci0gICAgfSwKLQotICAgIGNhbGxBZnRlckV2ZW50RGlzcGF0
Y2g6IGZ1bmN0aW9uIChjYWxsYmFjaykgewotICAgICAgICB2YXIgaW50ZXJ2YWwgPSBzZXRJbnRl
cnZhbChmdW5jdGlvbiAoKSB7IAotICAgICAgICAgICAgaWYgKCFldmVudFF1ZXVlLmhhc1BlbmRp
bmdFdmVudHMoKSkgewotICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpOwot
ICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sIDAp
OwotICAgIH0sCi0KLSAgICBfcXVldWU6IFtdLAotCi0gICAgX3Byb2Nlc3NFdmVudFF1ZXVlOiBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIGlmICghdGhpcy5fcXVldWUubGVuZ3RoKQotICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgIHZhciBpdGVtID0gdGhpcy5fcXVldWUuc2hpZnQoKTsKLSAg
ICAgICAgaXRlbSgpOwotICAgICAgICB0aGlzLl9wcm9jZXNzRXZlbnRRdWV1ZVNvb24oKTsKLSAg
ICB9LAotCi0gICAgX3Byb2Nlc3NFdmVudFF1ZXVlU29vbjogZnVuY3Rpb24gKCkgewotICAgICAg
ICBjbGVhclRpbWVvdXQodGhpcy5fcHJvY2Vzc2luZ1RpbWVvdXQpOwotICAgICAgICB0aGlzLl9w
cm9jZXNzaW5nVGltZW91dCA9IHNldFRpbWVvdXQodGhpcy5fcHJvY2Vzc0V2ZW50UXVldWUuYmlu
ZCh0aGlzKSwgMCk7Ci0gICAgfQotfQotCiBmdW5jdGlvbiBzaG91bGRCZShleHBlY3RlZCwgYWN0
dWFsLCBtZXNzYWdlKQogewogICAgIGlmIChleHBlY3RlZCAhPSBhY3R1YWwpCkBAIC04NCw0ICsz
NywzNyBAQCBmdW5jdGlvbiBtZWFzdXJlZER1cmF0aW9uU2hvdWxkQmVMZXNzVGhhbihrZXksIHRp
bWVJbk1TLCBtZXNzYWdlKQogICAgIHZhciBkdXJhdGlvbiA9IERhdGUubm93KCkgLSB3aW5kb3cu
bG9jYWxTdG9yYWdlW2tleSArICJzd2lwZVN0YXJ0VGltZSJdOwogICAgIGlmIChkdXJhdGlvbiA+
PSB0aW1lSW5NUykKICAgICAgICAgbG9nKCJGYWlsdXJlLiAiICsgbWVzc2FnZSArICIgKGV4cGVj
dGVkOiAiICsgdGltZUluTVMgKyAiLCBhY3R1YWw6ICIgKyBkdXJhdGlvbiArICIpIik7Ci19Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQorCitmdW5jdGlvbiBzdGFydFN3aXBlR2VzdHVy
ZShjYWxsYmFjaykKK3sKKyAgICBsb2coInN0YXJ0U3dpcGVHZXN0dXJlIik7CisgICAgdGVzdFJ1
bm5lci5ydW5VSVNjcmlwdChgCisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICB1aUNvbnRyb2xs
ZXIuYmVnaW5CYWNrU3dpcGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIu
dWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICB9KTsKKyAgICB9KSgpO2AsIGNhbGxiYWNrIHx8
IGZ1bmN0aW9uICgpIHt9KTsKK30KKworZnVuY3Rpb24gY29tcGxldGVTd2lwZUdlc3R1cmUoY2Fs
bGJhY2spCit7CisgICAgbG9nKCJjb21wbGV0ZVN3aXBlR2VzdHVyZSIpOworICAgIHRlc3RSdW5u
ZXIucnVuVUlTY3JpcHQoYAorICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgdWlDb250cm9sbGVy
LmNvbXBsZXRlQmFja1N3aXBlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdWlDb250cm9sbGVy
LnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgfSk7CisgICAgfSkoKTtgLCBjYWxsYmFjayB8
fCBmdW5jdGlvbiAoKSB7fSk7Cit9CisKK2Z1bmN0aW9uIHBsYXlFdmVudFN0cmVhbShzdHJlYW0s
IGNhbGxiYWNrKQoreworICAgIGxvZygicGxheUV2ZW50U3RyZWFtIik7CisgICAgdGVzdFJ1bm5l
ci5ydW5VSVNjcmlwdChgCisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICB1aUNvbnRyb2xsZXIu
cGxheUJhY2tFdmVudFN0cmVhbShcYCR7c3RyZWFtfVxgLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgIH0pOworICAgIH0p
KCk7YCwgY2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkge30pOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVyZXNpcy1mYWlsdXJlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWE0ODBhOTgwNGNlMjE5MTRj
OGY5ODJmNWJjMDExOWU3ZGViZTU3OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZh
aWx1cmVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLXN3aXBl
IGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRh
IDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnY2hh
bmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKLXN3aXBlIGV2
ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDIg
MiwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnY2hhbmdl
ZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKLXN3aXBlIGV2ZW50
IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMiwg
cGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnY2hhbmdlZCcp
Ci1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKLXN3aXBlIGV2ZW50IChk
ZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhh
c2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAyLCBwaGFzZSAnY2hhbmdlZCcpCi1z
Y3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKLXN3aXBlIGV2ZW50IChkZWx0
YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDMgMSwgcGhhc2Ug
J2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3Jv
bGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAw
IDAsIHBoYXNlICdlbmRlZCcpCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL3N3aXBl
LXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMuaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL3N3aXBl
LXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZTc1ZTY3Yjk3NDEyMzkyY2RiMTQ0N2VhNTdjMmIwNTU1MjNjNWYwOS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9z
d2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MTkgKzAsMCBAQAotPGhlYWQ+Ci08c3R5bGU+Ci1odG1sIHsKLSAgICBmb250LXNpemU6IDMycHQ7
Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zd2lwZS10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBkb1Nob3J0U3dpcGVHZXN0dXJlKCkKLXsKLSAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7Ci0KLSAgICAvLyBUb3RhbCBkZWx0YSBv
ZiAxMCwgMDsgc2hvdWxkIG5vdCBiZSBlbm91Z2ggdG8gc3RhcnQgYSBzd2lwZS4KLSAgICBldmVu
dFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVl
dWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5x
dWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVl
U2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2
ZW50RGlzcGF0Y2goZG9EaWFnb25hbFN3aXBlR2VzdHVyZSk7Ci19Ci0KLWZ1bmN0aW9uIGRvRGlh
Z29uYWxTd2lwZUdlc3R1cmUoKQotewotICAgIC8vIFRvdGFsIGRlbHRhIG9mIDIwLCAyMDsgdGhp
cyBpcyBvcmRpbmFyaWx5IHN1ZmZpY2llbnQgbWFnbml0dWRlIHRvIHN0YXJ0IGEgc3dpcGUsCi0g
ICAgLy8gYnV0IGlzIHRvbyBkaWFnb25hbCB0byBzdGFydCBhIHN3aXBlLgotICAgIGV2ZW50UXVl
dWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5l
bnF1ZXVlU2Nyb2xsRXZlbnQoMiwgMiwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVl
U2Nyb2xsRXZlbnQoMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3Jv
bGxFdmVudCgwLCAwLCAnZW5kZWQnKTsKLQotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnRE
aXNwYXRjaChkb1ZlcnRpY2FsU3dpcGVHZXN0dXJlKTsKLX0KLQotZnVuY3Rpb24gZG9WZXJ0aWNh
bFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgLy8gVG90YWwgZGVsdGEgb2YgMCwgMjA7IHRoaXMgaXMg
b3JkaW5hcmlseSBzdWZmaWNpZW50IG1hZ25pdHVkZSB0byBzdGFydCBhIHN3aXBlLAotICAgIC8v
IGJ1dCBpcyBjb21wbGV0ZWx5IHZlcnRpY2FsLCBzbyB3ZSB3b24ndCBzdGFydCBhIHN3aXBlLgot
ICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAg
ZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMiwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRR
dWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVl
LmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnZW5kZWQnKTsKLQotICAgIGV2ZW50UXVldWUuY2Fs
bEFmdGVyRXZlbnREaXNwYXRjaChkb0hvcml6b250YWxUaGVuVmVydGljYWxTd2lwZUdlc3R1cmUp
OwotfQotCi1mdW5jdGlvbiBkb0hvcml6b250YWxUaGVuVmVydGljYWxTd2lwZUdlc3R1cmUoKQot
ewotICAgIC8vIFRvdGFsIGRlbHRhIG9mIDEwLCAyMDsgdGhpcyBpcyBvcmRpbmFyaWx5IHN1ZmZp
Y2llbnQgbWFnbml0dWRlIHRvIHN0YXJ0IGEgc3dpcGUsCi0gICAgLy8gYnV0IGlzIHRvbyB2ZXJ0
aWNhbCwgc28gd2Ugd29uJ3Qgc3RhcnQgYSBzd2lwZS4KLSAgICBldmVudFF1ZXVlLmVucXVldWVT
d2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9s
bEV2ZW50KDEsIDAsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50
KDAsIDIsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwg
MCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goZG9S
ZWd1bGFyU3dpcGVHZXN0dXJlKTsKLX0KLQotZnVuY3Rpb24gZG9SZWd1bGFyU3dpcGVHZXN0dXJl
KCkKLXsKLSAgICAvLyBTd2FwIGluIGEgZGlmZmVyZW50IGNhbGxiYWNrIHRoYXQgbWFrZXMgc3Vy
ZSB3ZSAqZG8qIHJlYWNoIGRpZEJlZ2luU3dpcGUuCi0gICAgdGVzdFJ1bm5lci5jbGVhclRlc3RS
dW5uZXJDYWxsYmFja3MoKTsKLSAgICB2YXIgc2F3RGlkQmVnaW5Td2lwZSA9IGZhbHNlOwotICAg
IHRlc3RSdW5uZXIuaW5zdGFsbERpZEJlZ2luU3dpcGVDYWxsYmFjayhmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIHNhd0RpZEJlZ2luU3dpcGUgPSB0cnVlOwotICAgICAgICAvLyBOZWVkIGEgc3dpcGUt
ZW5kIGV2ZW50IHRvIGNsZWFuIHVwLgotICAgICAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2
ZW50KDAsIDAsICdlbmRlZCcpOwotICAgIH0pOwotCi0gICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlk
UmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgc2hvdWxk
QmUodHJ1ZSwgc2F3RGlkQmVnaW5Td2lwZSwgIlRoZSBsYXN0IGdlc3R1cmUgc2hvdWxkIHN0YXJ0
IGEgc3dpcGUsIGJlY2F1c2UgaXQgaXMgc3VmZmljaWVudCBtYWduaXR1ZGUgYW5kIGluIHRoZSBj
b3JyZWN0IGRpcmVjdGlvbi4iKQotICAgICAgICB0ZXN0Q29tcGxldGUoKTsKLSAgICB9KTsKLQot
ICAgIC8vIFRvdGFsIGRlbHRhIG9mIDMwLCAxMDsgdGhpcyBzaG91bGQgc3RhcnQgYSBzd2lwZSBh
cyB1c3VhbC4KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdp
bicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDMsIDEsICdiZWdhbicpOwot
ICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdjaGFuZ2VkJyk7Ci0gICAg
ZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci19Ci0KLWZ1bmN0
aW9uIGRpZEJlZ2luU3dpcGVOb3RSZWFjaGVkQ2FsbGJhY2soKQotewotICAgIGxvZygiRmFpbHVy
ZS4gU2hvdWxkIG5ldmVyIGJlZ2luIGEgc3dpcGUsIGJlY2F1c2UgYWxsIG9mIHRoZSBhdHRlbXB0
ZWQgc3dpcGVzIHNob3VsZCBmYWlsIGR1ZSB0byB0aGUgc3dpcGUtc3RhcnQgaHlzdGVyZXNpcy4i
KTsKLX0KLQotZnVuY3Rpb24gaXNGaXJzdFBhZ2UoKQotewotICAgIHJldHVybiB3aW5kb3cubG9j
YXRpb24uaHJlZi5pbmRleE9mKCJzZWNvbmQiKSA9PSAtMTsKLX0KLQotd2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uICgpIHsKLSAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiVGhpcyB0ZXN0
IG11c3QgYmUgcnVuIGluIFdlYktpdFRlc3RSdW5uZXIuIjsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gaXNGaXJzdFBhZ2UoKSA/ICJmaXJz
dCIgOiAic2Vjb25kIjsKLQotICAgIGlmIChpc0ZpcnN0UGFnZSgpKSB7Ci0gICAgICAgIGluaXRp
YWxpemVTd2lwZVRlc3QoKTsKLQotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRCZWdpblN3
aXBlQ2FsbGJhY2soZGlkQmVnaW5Td2lwZU5vdFJlYWNoZWRDYWxsYmFjayk7Ci0KLSAgICAgICAg
dGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJl
bmNlS2V5IiwgMSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
ICgpIHsgCi0gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHdpbmRvdy5sb2NhdGlv
bi5ocmVmICsgIj9zZWNvbmQiOwotICAgICAgICB9LCAwKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIGRvU2hvcnRTd2lwZUdlc3R1cmUoKTsKLX07Ci08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288172</attachid>
            <date>2016-09-07 12:45:54 -0700</date>
            <delta_ts>2016-09-07 13:03:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161675-20160907124330.patch</filename>
            <type>text/plain</type>
            <size>93637</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MzYzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGFkZDhkNzFiMDVlNWE4OTBlYzFmMTU4MzM2YTcyODhi
ZmI1NGJkZS4uZjdhMGZjZWZmODkyZmU1ZDI1ZjU3MzBjOTAxNWJmNGIyOWE2N2IwZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDE2LTA5LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFN3aXBlIGdlc3R1cmUgdGVzdHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRm
b3JtUGxheUJhY2tFdmVudFN0cmVhbSk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6YmVnaW5CYWNrU3dpcGUpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNv
bXBsZXRlQmFja1N3aXBlKToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFs
aXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbTog
QWRkZWQuCisgICAgICAgIChldmVudElzT2ZUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZlR5cGVz
KToKKyAgICAgICAgKGV2ZW50SXNPZkdlc3R1cmVUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZkdl
c3R1cmVUeXBlcyk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBkaWN0aW9uYXJ5Rm9yRXZl
bnQ6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBjcmVhdGVF
dmVudEZvckRpY3Rpb25hcnk6aW5XaW5kb3c6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgr
W0V2ZW50U2VyaWFsaXplciBwbGF5RXZlbnRTdHJlYW06aW5XaW5kb3c6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFj
L1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1bm5lclNo
YXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTogQWRk
ZWQuCisgICAgICAgIChiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKToKKyAgICAgICAgKGNvbXBs
ZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0pOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICog
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF5QmFja0V2ZW50U3RyZWFtKToK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZSk6CisgICAg
ICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUpOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbSk6
CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1DbGVhckFsbENhbGxi
YWNrcyk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9zcGkv
Q29yZUdyYXBoaWNzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvc3Bp
L0lPS2l0U1BJLmg6IFJlbmFtZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tp
dFNQSS5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6cGxheUJhY2tFdmVudHMpOgor
ICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKToKKyAgICAg
ICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZSk6CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKToK
KwogMjAxNi0wOS0wMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OIChyMjA1MzI5KTogVHdvIEFQSSB0ZXN0cyB0aW1lIG91dCBvbiBp
T1MgU2ltdWxhdG9yCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2Vy
aWFsaXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmggYi9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDkwNWQ2N2Y1OTg5ZTBmYmQ5Nzk5YTM0Njg0MGU3OGVmODdmMzNkZgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9FdmVu
dFNlcmlhbGl6ZXJNYWMuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFBMQVRG
T1JNKE1BQykKKworI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgorCitAaW50ZXJmYWNlIEV2ZW50
U2VyaWFsaXplciA6IE5TT2JqZWN0CisKKysgKE5TRGljdGlvbmFyeSAqKWRpY3Rpb25hcnlGb3JF
dmVudDooQ0dFdmVudFJlZilldmVudCByZWxhdGl2ZVRvVGltZTooQ0dFdmVudFRpbWVzdGFtcCly
ZWZlcmVuY2VUaW1lc3RhbXA7CisKKysgKENHRXZlbnRSZWYpY3JlYXRlRXZlbnRGb3JEaWN0aW9u
YXJ5OihOU0RpY3Rpb25hcnkgKilkaWN0IGluV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyByZWxh
dGl2ZVRvVGltZTooQ0dFdmVudFRpbWVzdGFtcClyZWZlcmVuY2VUaW1lc3RhbXA7CisKKysgKHZv
aWQpcGxheUV2ZW50U3RyZWFtOihOU0FycmF5PE5TRGljdGlvbmFyeSAqPiAqKWV2ZW50RGljdHMg
aW5XaW5kb3c6KE5TV2luZG93ICopd2luZG93IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKCkp
Y29tcGxldGlvbkhhbmRsZXI7CisKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFj
Lm1tIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50
U2VyaWFsaXplck1hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MjIyOTQ3MjE1MDFjZDg2OTkxZmNmM2VmNThk
ZWE0YmRmYTJkYmVlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9F
dmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbQpAQCAtMCwwICsxLDMw
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRXZlbnRTZXJp
YWxpemVyTWFjLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIkNvcmVHcmFwaGlj
c1NQSS5oIgorI2ltcG9ydCAiSU9LaXRTUEkuaCIKKyNpbXBvcnQgPGFsZ29yaXRobT4KKyNpbXBv
cnQgPG1hY2gvbWFjaF90aW1lLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNkZWZp
bmUgTU9VU0VfRVZFTlRfVFlQRVMgXAorICAgIGtDR0V2ZW50TGVmdE1vdXNlRG93biwgXAorICAg
IGtDR0V2ZW50TGVmdE1vdXNlVXAsIFwKKyAgICBrQ0dFdmVudFJpZ2h0TW91c2VEb3duLCBcCisg
ICAga0NHRXZlbnRSaWdodE1vdXNlVXAsIFwKKyAgICBrQ0dFdmVudE1vdXNlTW92ZWQsIFwKKyAg
ICBrQ0dFdmVudExlZnRNb3VzZURyYWdnZWQsIFwKKyAgICBrQ0dFdmVudFJpZ2h0TW91c2VEcmFn
Z2VkLCBcCisgICAga0NHRXZlbnRPdGhlck1vdXNlRG93biwgXAorICAgIGtDR0V2ZW50T3RoZXJN
b3VzZVVwLCBcCisgICAga0NHRXZlbnRPdGhlck1vdXNlRHJhZ2dlZAorCisjZGVmaW5lIEtFWV9F
VkVOVF9UWVBFUyBcCisgICAga0NHRXZlbnRLZXlEb3duLCBcCisgICAga0NHRXZlbnRLZXlVcCwg
XAorICAgIGtDR0V2ZW50RmxhZ3NDaGFuZ2VkCisKKyNkZWZpbmUgR0VTVFVSRV9FVkVOVF9UWVBF
UyBcCisgICAga0NHU0V2ZW50R2VzdHVyZSwgXAorICAgIGtDR1NFdmVudEZsdWlkVG91Y2hHZXN0
dXJlLCBcCisgICAga0NHU0V2ZW50RG9ja0NvbnRyb2wKKworYm9vbCBldmVudElzT2ZUeXBlKENH
RXZlbnRSZWYgZXZlbnQsIENHU0V2ZW50VHlwZSB0eXBlKQoreworICAgIHJldHVybiAoQ0dTRXZl
bnRUeXBlKUNHRXZlbnRHZXRUeXBlKGV2ZW50KSA9PSB0eXBlOworfQorCitib29sIGV2ZW50SXNP
ZlR5cGVzKENHRXZlbnRSZWYpIHsgcmV0dXJuIGZhbHNlOyB9CisKK3RlbXBsYXRlPHR5cGVuYW1l
IC4uLiBUeXBlcz4KK2Jvb2wgZXZlbnRJc09mVHlwZXMoQ0dFdmVudFJlZiBldmVudCwgQ0dTRXZl
bnRUeXBlIGZpcnN0LCBUeXBlcyAuLi4gcmVzdCkKK3sKKyAgICByZXR1cm4gZXZlbnRJc09mVHlw
ZShldmVudCwgZmlyc3QpIHx8IGV2ZW50SXNPZlR5cGVzKGV2ZW50LCByZXN0Li4uKTsKK30KKwor
Ym9vbCBldmVudElzT2ZHZXN0dXJlVHlwZShDR0V2ZW50UmVmIGV2ZW50LCBJT0hJREV2ZW50VHlw
ZSB0eXBlKQoreworICAgIHJldHVybiAoSU9ISURFdmVudFR5cGUpQ0dFdmVudEdldEludGVnZXJW
YWx1ZUZpZWxkKGV2ZW50LCBrQ0dFdmVudEdlc3R1cmVISURUeXBlKSA9PSB0eXBlOworfQorCiti
b29sIGV2ZW50SXNPZkdlc3R1cmVUeXBlcyhDR0V2ZW50UmVmKSB7IHJldHVybiBmYWxzZTsgfQor
Cit0ZW1wbGF0ZTx0eXBlbmFtZSAuLi4gVHlwZXM+Citib29sIGV2ZW50SXNPZkdlc3R1cmVUeXBl
cyhDR0V2ZW50UmVmIGV2ZW50LCBJT0hJREV2ZW50VHlwZSBmaXJzdCwgVHlwZXMgLi4uIHJlc3Qp
Cit7CisgICAgaWYgKCFldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUykp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZXZlbnRJc09mR2VzdHVyZVR5cGUo
ZXZlbnQsIGZpcnN0KSB8fCBldmVudElzT2ZHZXN0dXJlVHlwZXMoZXZlbnQsIHJlc3QuLi4pOwor
fQorCisjZGVmaW5lIEZPUl9FQUNIX0NHRVZFTlRfSU5URUdFUl9GSUVMRChtYWNybykgXAorICAg
IG1hY3JvKHRydWUsIGtDR1NFdmVudFR5cGVGaWVsZCkgXAorICAgIFwKKyAgICBtYWNybyhldmVu
dElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBr
Q0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVz
KGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdo
ZWVsRXZlbnREZWx0YUF4aXMyKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtD
R1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudERl
bHRhQXhpczMpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Ny
b2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3Vz
KSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVs
LCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudE1vbWVudHVtUGhhc2UpIFwKKyAg
ICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NF
dmVudFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxKSBcCisgICAgbWFj
cm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRa
b29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMikgXAorICAgIG1hY3JvKGV2
ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSks
IGtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczMpIFwKKyAgICBtYWNybyhldmVudElz
T2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dT
Y3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhl
dmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxXaGVl
bEV2ZW50U2Nyb2xsUGhhc2UpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZl
bnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudEJ1dHRvbk51bWJlcikgXAorICAg
IG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBNT1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNl
RXZlbnRDbGlja1N0YXRlKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIE1PVVNF
X0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudERlbHRhWCkgXAorICAgIG1hY3JvKGV2ZW50SXNP
ZlR5cGVzKGV2ZW50LCBNT1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnREZWx0YVkpIFwK
KyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dN
b3VzZUV2ZW50U3VidHlwZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBNT1VT
RV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnROdW1iZXIpIFwKKyAgICBcCisgICAgbWFjcm8o
ZXZlbnRJc09mVHlwZXMoZXZlbnQsIEtFWV9FVkVOVF9UWVBFUyksIGtDR0tleWJvYXJkRXZlbnRB
dXRvcmVwZWF0KSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIEtFWV9FVkVOVF9U
WVBFUyksIGtDR0tleWJvYXJkRXZlbnRLZXlib2FyZFR5cGUpIFwKKyAgICBtYWNybyhldmVudElz
T2ZUeXBlcyhldmVudCwgS0VZX0VWRU5UX1RZUEVTKSwga0NHS2V5Ym9hcmRFdmVudEtleWNvZGUp
IFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRf
VFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVISURUeXBlKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlw
ZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVCZWhhdmlvcikg
XAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSwg
a0NHRXZlbnRHZXN0dXJlRmxhdm9yKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQs
IEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVNYXNrKSBcCisgICAgbWFjcm8o
ZXZlbnRJc09mVHlwZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1
cmVQaGFzZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5U
X1RZUEVTKSwga0NHRXZlbnRHZXN0dXJlU3RhZ2UpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJ
c09mR2VzdHVyZVR5cGVzKGV2ZW50LCBrSU9ISURFdmVudFR5cGVTY3JvbGwpLCBrQ0dFdmVudFNj
cm9sbEdlc3R1cmVGbGFnQml0cykgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJl
VHlwZXMoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50U3dp
cGVHZXN0dXJlRmxhZ0JpdHMpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZXMoZXZl
bnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBl
TWFzaykgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlcyhldmVudCwga0lPSElERXZl
bnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVNb3Rpb24pIFwKKyAg
ICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZXMoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmln
YXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmFsdWUpIFwKKyAgICBtYWNybyhldmVu
dElzT2ZHZXN0dXJlVHlwZXMoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSks
IGtDR0V2ZW50R2VzdHVyZUZsYXZvcikgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0
dXJlVHlwZXMoZXZlbnQsIGtDR0hJREV2ZW50VHlwZUdlc3R1cmVTdGFydGVkLCBrQ0dISURFdmVu
dFR5cGVHZXN0dXJlRW5kZWQpLCBrQ0dFdmVudEdlc3R1cmVTdGFydEVuZFNlcmllc1R5cGUpCisK
KyNkZWZpbmUgRk9SX0VBQ0hfQ0dFVkVOVF9ET1VCTEVfRklFTEQobWFjcm8pIFwKKyAgICBtYWNy
byhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyksIGtDR0V2ZW50R2Vz
dHVyZVByb2dyZXNzKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBN
T1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnRQcmVzc3VyZSkgXAorICAgIFwKKyAgICBt
YWNybyhldmVudElzT2ZHZXN0dXJlVHlwZXMoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVpvb20pLCBr
Q0dFdmVudEdlc3R1cmVab29tRGVsdGFYKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5
cGVzKGV2ZW50LCBrSU9ISURFdmVudFR5cGVab29tKSwga0NHRXZlbnRHZXN0dXJlWm9vbURlbHRh
WSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlcyhldmVudCwga0lPSElERXZlbnRU
eXBlWm9vbSksIGtDR0V2ZW50R2VzdHVyZVpvb21WYWx1ZSkgXAorICAgIFwKKyAgICBtYWNybyhl
dmVudElzT2ZHZXN0dXJlVHlwZXMoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVJvdGF0aW9uKSwga0NH
RXZlbnRHZXN0dXJlUm90YXRpb25WYWx1ZSkgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZH
ZXN0dXJlVHlwZXMoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVNjcm9sbCksIGtDR0V2ZW50R2VzdHVy
ZVNjcm9sbFgpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZXMoZXZlbnQsIGtJT0hJ
REV2ZW50VHlwZVNjcm9sbCksIGtDR0V2ZW50R2VzdHVyZVNjcm9sbFkpIFwKKyAgICBtYWNybyhl
dmVudElzT2ZHZXN0dXJlVHlwZXMoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVNjcm9sbCksIGtDR0V2
ZW50R2VzdHVyZVNjcm9sbFopIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5
cGVzKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1
cmVTd2lwZVBvc2l0aW9uWCkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlcyhldmVu
dCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVQ
b3NpdGlvblkpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZXMoZXZlbnQsIGtJT0hJ
REV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlUHJvZ3Jlc3Mp
IFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZXMoZXZlbnQsIGtJT0hJREV2ZW50VHlw
ZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlYKSBcCisgICAg
bWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGVzKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0
aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WSkgXAorICAgIG1hY3JvKGV2
ZW50SXNPZkdlc3R1cmVUeXBlcyhldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBl
KSwga0NHRXZlbnRHZXN0dXJlU3dpcGVWZWxvY2l0eVopIFwKKyAgICBcCisgICAgbWFjcm8oZXZl
bnRJc09mR2VzdHVyZVR5cGVzKGV2ZW50LCBrSU9ISURFdmVudFR5cGVGb3JjZSksIGtDR0V2ZW50
VHJhbnNpdGlvblByb2dyZXNzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGVzKGV2
ZW50LCBrSU9ISURFdmVudFR5cGVGb3JjZSksIGtDR0V2ZW50U3RhZ2VQcmVzc3VyZSkKKworI2Rl
ZmluZSBMT0FEX0lOVEVHRVJfRklFTERfRlJPTV9FVkVOVChldmVudFR5cGVGaWx0ZXIsIGZpZWxk
KSBcCiteIHsgXAorICAgIGlmICghKGV2ZW50VHlwZUZpbHRlcikpIFwKKyAgICAgICAgcmV0dXJu
OyBcCisgICAgaW50NjRfdCB2YWx1ZSA9IENHRXZlbnRHZXRJbnRlZ2VyVmFsdWVGaWVsZChldmVu
dCwgZmllbGQpOyBcCisgICAgaW50NjRfdCBwbGFpblZhbHVlID0gQ0dFdmVudEdldEludGVnZXJW
YWx1ZUZpZWxkKHBsYWluRXZlbnQsIGZpZWxkKTsgXAorICAgIGlmICh2YWx1ZSAhPSBwbGFpblZh
bHVlKSBcCisgICAgICAgIGRpY3RbQCNmaWVsZF0gPSBAKHZhbHVlKTsgXAorfSgpOworCisjZGVm
aW5lIExPQURfRE9VQkxFX0ZJRUxEX0ZST01fRVZFTlQoZXZlbnRUeXBlRmlsdGVyLCBmaWVsZCkg
XAorXiB7IFwKKyAgICBpZiAoIShldmVudFR5cGVGaWx0ZXIpKSBcCisgICAgICAgIHJldHVybjsg
XAorICAgIGRvdWJsZSB2YWx1ZSA9IENHRXZlbnRHZXREb3VibGVWYWx1ZUZpZWxkKGV2ZW50LCBm
aWVsZCk7IFwKKyAgICBpZiAoIWlzbmFuKHZhbHVlKSkgeyBcCisgICAgICAgIGRvdWJsZSBwbGFp
blZhbHVlID0gQ0dFdmVudEdldERvdWJsZVZhbHVlRmllbGQocGxhaW5FdmVudCwgZmllbGQpOyBc
CisgICAgICAgIGlmIChmYWJzKHZhbHVlIC0gcGxhaW5WYWx1ZSkgPj0gRkxUX0VQU0lMT04pIFwK
KyAgICAgICAgICAgIGRpY3RbQCNmaWVsZF0gPSBAKHZhbHVlKTsgXAorICAgIH0gXAorfSgpOwor
CisjZGVmaW5lIFNUT1JFX0lOVEVHRVJfRklFTERfVE9fRVZFTlQoZXZlbnRUeXBlRmlsdGVyLCBm
aWVsZCkgXAorXiB7IFwKKyAgICBpZiAoIShldmVudFR5cGVGaWx0ZXIpKSBcCisgICAgICAgIHJl
dHVybjsgXAorICAgIE5TTnVtYmVyICp2YWx1ZSA9IGRpY3RbQCNmaWVsZF07IFwKKyAgICBpZiAo
dmFsdWUpIFwKKyAgICAgICAgQ0dFdmVudFNldEludGVnZXJWYWx1ZUZpZWxkKGV2ZW50LCBmaWVs
ZCwgdmFsdWUudW5zaWduZWRMb25nTG9uZ1ZhbHVlKTsgXAorfSgpOworCisjZGVmaW5lIFNUT1JF
X0RPVUJMRV9GSUVMRF9UT19FVkVOVChldmVudFR5cGVGaWx0ZXIsIGZpZWxkKSBcCiteIHsgXAor
ICAgIGlmICghKGV2ZW50VHlwZUZpbHRlcikpIFwKKyAgICAgICAgcmV0dXJuOyBcCisgICAgTlNO
dW1iZXIgKnZhbHVlID0gZGljdFtAI2ZpZWxkXTsgXAorICAgIGlmICh2YWx1ZSkgXAorICAgICAg
ICBDR0V2ZW50U2V0RG91YmxlVmFsdWVGaWVsZChldmVudCwgZmllbGQsIHZhbHVlLmRvdWJsZVZh
bHVlKTsgXAorfSgpOworCitAaW1wbGVtZW50YXRpb24gRXZlbnRTZXJpYWxpemVyCisKKysgKE5T
RGljdGlvbmFyeSAqKWRpY3Rpb25hcnlGb3JFdmVudDooQ0dFdmVudFJlZilldmVudCByZWxhdGl2
ZVRvVGltZTooQ0dFdmVudFRpbWVzdGFtcClyZWZlcmVuY2VUaW1lc3RhbXAKK3sKKyAgICBDR0V2
ZW50UmVmIHBsYWluRXZlbnQgPSBDR0V2ZW50Q3JlYXRlKE5VTEwpOworCisgICAgTlNNdXRhYmxl
RGljdGlvbmFyeSAqZGljdCA9IFtbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdIGF1
dG9yZWxlYXNlXTsKKworICAgIEZPUl9FQUNIX0NHRVZFTlRfSU5URUdFUl9GSUVMRChMT0FEX0lO
VEVHRVJfRklFTERfRlJPTV9FVkVOVCk7CisgICAgRk9SX0VBQ0hfQ0dFVkVOVF9ET1VCTEVfRklF
TEQoTE9BRF9ET1VCTEVfRklFTERfRlJPTV9FVkVOVCk7CisKKyAgICBDR0V2ZW50VGltZXN0YW1w
IHRpbWVzdGFtcCA9IENHRXZlbnRHZXRUaW1lc3RhbXAoZXZlbnQpOworICAgIGRpY3RbQCJyZWxh
dGl2ZVRpbWVNUyJdID0gQChzdGQ6Om1heDxkb3VibGU+KHN0YXRpY19jYXN0PGRvdWJsZT4odGlt
ZXN0YW1wIC0gcmVmZXJlbmNlVGltZXN0YW1wKSAvIE5TRUNfUEVSX01TRUMsIDApKTsKKworICAg
IENHU0V2ZW50VHlwZSBldmVudFR5cGUgPSAoQ0dTRXZlbnRUeXBlKUNHRXZlbnRHZXRJbnRlZ2Vy
VmFsdWVGaWVsZChldmVudCwga0NHU0V2ZW50VHlwZUZpZWxkKTsKKyAgICBpZiAoZXZlbnRUeXBl
ID09IGtDR1NFdmVudEdlc3R1cmUgfHwgZXZlbnRUeXBlID09IGtDR1NFdmVudEZsdWlkVG91Y2hH
ZXN0dXJlIHx8IGV2ZW50VHlwZSA9PSBrQ0dTRXZlbnREb2NrQ29udHJvbCkgeworICAgICAgICBp
ZiAoQ0dFdmVudEdldEludGVnZXJWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dFdmVudEdlc3R1cmVJc1By
ZWZsaWdodCkpIHsKKyAgICAgICAgICAgIGRpY3RbQCJrQ0dFdmVudEdlc3R1cmVJc1ByZWZsaWdo
dCJdID0gQFlFUzsKKyAgICAgICAgICAgIGRpY3RbQCJrQ0dFdmVudEdlc3R1cmVQcmVmbGlnaHRQ
cm9ncmVzcyJdID0gQChDR0V2ZW50R2V0RG91YmxlVmFsdWVGaWVsZChldmVudCwga0NHRXZlbnRH
ZXN0dXJlUHJlZmxpZ2h0UHJvZ3Jlc3MpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGRpY3Rb
QCJ3aW5kb3dMb2NhdGlvbiJdID0gTlNTdHJpbmdGcm9tUG9pbnQoTlNQb2ludEZyb21DR1BvaW50
KENHRXZlbnRHZXRXaW5kb3dMb2NhdGlvbihldmVudCkpKTsKKworICAgIENHRXZlbnRGbGFncyBm
bGFncyA9IENHRXZlbnRHZXRGbGFncyhldmVudCkgJiB+TlhfTk9OQ09BTFNFU0NFRE1BU0s7Cisg
ICAgaWYgKGZsYWdzICE9IChDR0V2ZW50R2V0RmxhZ3MocGxhaW5FdmVudCkgJiB+TlhfTk9OQ09B
TFNFU0NFRE1BU0spKQorICAgICAgICBkaWN0W0AiZmxhZ3MiXSA9IEAoZmxhZ3MpOworCisgICAg
Q0ZSZWxlYXNlKHBsYWluRXZlbnQpOworCisgICAgcmV0dXJuIGRpY3Q7Cit9CisKKysgKENHRXZl
bnRSZWYpY3JlYXRlRXZlbnRGb3JEaWN0aW9uYXJ5OihOU0RpY3Rpb25hcnkgKilkaWN0IGluV2lu
ZG93OihOU1dpbmRvdyAqKXdpbmRvdyByZWxhdGl2ZVRvVGltZTooQ0dFdmVudFRpbWVzdGFtcCly
ZWZlcmVuY2VUaW1lc3RhbXAKK3sKKyAgICBDR0V2ZW50UmVmIGV2ZW50ID0gQ0dFdmVudENyZWF0
ZShOVUxMKTsKKworICAgIEZPUl9FQUNIX0NHRVZFTlRfSU5URUdFUl9GSUVMRChTVE9SRV9JTlRF
R0VSX0ZJRUxEX1RPX0VWRU5UKTsKKyAgICBGT1JfRUFDSF9DR0VWRU5UX0RPVUJMRV9GSUVMRChT
VE9SRV9ET1VCTEVfRklFTERfVE9fRVZFTlQpOworCisgICAgaWYgKGRpY3RbQCJyZWxhdGl2ZVRp
bWVNUyJdKQorICAgICAgICBDR0V2ZW50U2V0VGltZXN0YW1wKGV2ZW50LCByZWZlcmVuY2VUaW1l
c3RhbXAgKyBzdGF0aWNfY2FzdDx1aW50NjRfdD4oKFtkaWN0W0AicmVsYXRpdmVUaW1lTVMiXSBk
b3VibGVWYWx1ZV0gKiBOU0VDX1BFUl9NU0VDKSkpOworCisgICAgaWYgKFtkaWN0W0Aia0NHRXZl
bnRHZXN0dXJlSXNQcmVmbGlnaHQiXSBib29sVmFsdWVdKSB7CisgICAgICAgIENHRXZlbnRTZXRJ
bnRlZ2VyVmFsdWVGaWVsZChldmVudCwga0NHRXZlbnRHZXN0dXJlSXNQcmVmbGlnaHQsIDEpOwor
ICAgICAgICBDR0V2ZW50U2V0RG91YmxlVmFsdWVGaWVsZChldmVudCwga0NHRXZlbnRHZXN0dXJl
UHJlZmxpZ2h0UHJvZ3Jlc3MsIFtkaWN0W0Aia0NHRXZlbnRHZXN0dXJlUHJlZmxpZ2h0UHJvZ3Jl
c3MiXSBkb3VibGVWYWx1ZV0pOworICAgIH0KKworICAgIGlmIChkaWN0W0Aid2luZG93TG9jYXRp
b24iXSkgeworICAgICAgICBDR0V2ZW50U2V0V2luZG93TG9jYXRpb24oZXZlbnQsIE5TUG9pbnRU
b0NHUG9pbnQoTlNQb2ludEZyb21TdHJpbmcoZGljdFtAIndpbmRvd0xvY2F0aW9uIl0pKSk7CisK
KyAgICAgICAgTlNQb2ludCBzY3JlZW5Qb2ludCA9IFt3aW5kb3cgY29udmVydEJhc2VUb1NjcmVl
bjpOU1BvaW50VG9DR1BvaW50KE5TUG9pbnRGcm9tU3RyaW5nKGRpY3RbQCJ3aW5kb3dMb2NhdGlv
biJdKSldOworICAgICAgICBDR0V2ZW50U2V0TG9jYXRpb24oZXZlbnQsIE5TTWFrZVBvaW50KHNj
cmVlblBvaW50LngsIE5TU2NyZWVuLnNjcmVlbnMuZmlyc3RPYmplY3QuZnJhbWUuc2l6ZS5oZWln
aHQgLSBzY3JlZW5Qb2ludC55KSk7CisgICAgfQorCisgICAgaWYgKGRpY3RbQCJmbGFncyJdKQor
ICAgICAgICBDR0V2ZW50U2V0RmxhZ3MoZXZlbnQsIFtkaWN0W0AiZmxhZ3MiXSB1bnNpZ25lZExv
bmdMb25nVmFsdWVdKTsKKworICAgIENHRXZlbnRTZXRJbnRlZ2VyVmFsdWVGaWVsZChldmVudCwg
a0NHU0V2ZW50V2luZG93SURGaWVsZCwgd2luZG93LndpbmRvd051bWJlcik7CisKKyAgICByZXR1
cm4gZXZlbnQ7Cit9CisKKysgKHZvaWQpcGxheUV2ZW50U3RyZWFtOihOU0FycmF5PE5TRGljdGlv
bmFyeSAqPiAqKWV2ZW50RGljdHMgaW5XaW5kb3c6KE5TV2luZG93ICopd2luZG93IGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkKF4pKCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBSZXRhaW5QdHI8
TlNNdXRhYmxlQXJyYXk+IHJlbWFpbmluZ0V2ZW50RGljdHMgPSBhZG9wdE5TKFtldmVudERpY3Rz
IG11dGFibGVDb3B5XSk7CisKKyAgICB1aW50NjRfdCBzdGFydFRpbWUgPSBtYWNoX2Fic29sdXRl
X3RpbWUoKTsKKworICAgIGNvbnN0IGZsb2F0IGV2ZW50RGlzcGF0Y2hUaW1lclJhdGUgPSAxLiAv
IDEyMC47CisKKyAgICBbTlNUaW1lciBzY2hlZHVsZWRUaW1lcldpdGhUaW1lSW50ZXJ2YWw6ZXZl
bnREaXNwYXRjaFRpbWVyUmF0ZSByZXBlYXRzOllFUyBibG9jazpeKE5TVGltZXIgKnRpbWVyKSB7
CisgICAgICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheSAqPiByZW1vdmVMaXN0ID0gYWRvcHRO
UyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgICAgIE5TRXZlbnQgKm5zRXZl
bnQgPSBuaWw7CisgICAgICAgIGZvciAoaWQgZXZlbnREaWN0IGluIHJlbWFpbmluZ0V2ZW50RGlj
dHMuZ2V0KCkpIHsKKyAgICAgICAgICAgIENHRXZlbnRSZWYgZXZlbnQgPSBbRXZlbnRTZXJpYWxp
emVyIGNyZWF0ZUV2ZW50Rm9yRGljdGlvbmFyeTpldmVudERpY3QgaW5XaW5kb3c6d2luZG93IHJl
bGF0aXZlVG9UaW1lOnN0YXJ0VGltZV07CisgICAgICAgICAgICBpZiAoQ0dFdmVudEdldFRpbWVz
dGFtcChldmVudCkgPCBtYWNoX2Fic29sdXRlX3RpbWUoKSkgeworICAgICAgICAgICAgICAgIG5z
RXZlbnQgPSBbTlNFdmVudCBldmVudFdpdGhDR0V2ZW50OmV2ZW50XTsKKyAgICAgICAgICAgICAg
ICBbTlNBcHAgcG9zdEV2ZW50Om5zRXZlbnQgYXRTdGFydDpOT107CisgICAgICAgICAgICAgICAg
W3JlbW92ZUxpc3QgYWRkT2JqZWN0OmV2ZW50RGljdF07CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBDRlJlbGVhc2UoZXZlbnQpOworICAgICAgICB9CisgICAgICAgIFtyZW1haW5pbmdFdmVu
dERpY3RzIHJlbW92ZU9iamVjdHNJbkFycmF5OnJlbW92ZUxpc3QuZ2V0KCldOworCisgICAgICAg
IGlmIChbcmVtYWluaW5nRXZlbnREaWN0cyBjb3VudF0pCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgW3RpbWVyIGludmFsaWRhdGVdOworCisgICAgICAgIC8vIEJsb2NrIHVudGlsIHdl
IHNlbmQgdGhlIGxhc3QgZXZlbnQgd2UgcG9zdGVkLgorICAgICAgICBbTlNBcHAgcG9zdEV2ZW50
OltOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5l
ZCBsb2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93
TnVtYmVyOjAgY29udGV4dDowIHN1YnR5cGU6MCBkYXRhMTo0MiBkYXRhMjowXSBhdFN0YXJ0Ok5P
XTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIE5TRXZlbnQgKm5leHRFdmVu
dCA9IFtOU0FwcCBuZXh0RXZlbnRNYXRjaGluZ01hc2s6TlNBbnlFdmVudE1hc2sgdW50aWxEYXRl
OltOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzpldmVudERpc3BhdGNoVGltZXJS
YXRlXSBpbk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUgZGVxdWV1ZTpZRVNdOworICAgICAgICAg
ICAgaWYgKG5leHRFdmVudC50eXBlID09IE5TRXZlbnRUeXBlQXBwbGljYXRpb25EZWZpbmVkICYm
IG5leHRFdmVudC5kYXRhMSA9PSA0MikKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGlmIChuZXh0RXZlbnQpCisgICAgICAgICAgICAgICAgW05TQXBwIHNlbmRFdmVudDpuZXh0
RXZlbnRdOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNvbXBsZXRpb25IYW5kbGVyKQorICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICB9XTsKK30KKworQGVuZAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9u
L21hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZl
bnRTZXJpYWxpemF0aW9uL21hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
ZjMwMjg4MzU5MjEzNjJiZGY2Y2QxZjViMWU0NzhhOTUwZmViMzcxCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2
ZW50U3RyZWFtc01hYy5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgUExBVEZP
Uk0oTUFDKQorCisjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CisKK05TU3RyaW5nICpiZWdpblN3
aXBlQmFja0V2ZW50U3RyZWFtKCk7CitOU1N0cmluZyAqY29tcGxldGVTd2lwZUJhY2tFdmVudFN0
cmVhbSgpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZl
bnRTZXJpYWxpemF0aW9uL21hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMubW0gYi9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvU2hhcmVkRXZlbnRTdHJlYW1zTWFj
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE4MjQwNTljYWFkMDEzZjA4OTFmMjM1MDg4NTBhMDkzMWQ0OWNkODgK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXph
dGlvbi9tYWMvU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tCkBAIC0wLDAgKzEsMzY5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJTaGFyZWRFdmVudFN0cmVhbXNN
YWMuaCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2RlZmluZSBRVU9URSguLi4pIEAoI19fVkFf
QVJHU19fKQorCitOU1N0cmluZyAqYmVnaW5Td2lwZUJhY2tFdmVudFN0cmVhbSgpCit7CisgICAg
cmV0dXJuIFFVT1RFKFsKKyAgICAgICAgeworICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6
IDAsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAg
ICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAia0NH
U0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNl
IiA6IDEyOCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIKKyAg
ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDgsCisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2MSwKKyAgICAgICAgICAgICJr
Q0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU3Rh
cnRFbmRTZXJpZXNUeXBlIiA6IDYsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0
MDAsIDMwMH0iCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdl
c3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogOCwKKyAg
ICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAi
a0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMSwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdl
c3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAy
OSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDIKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDgsCisgICAgICAgICAg
ICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50
UG9pbnREZWx0YUF4aXMyIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6
IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVI
SURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTcsCisgICAgICAg
ICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2
ZW50R2VzdHVyZVNjcm9sbFkiIDogMSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFz
ZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEs
CisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMTIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogMSwKKyAgICAgICAg
ICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAxNywKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2
ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXND
b250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVs
dGFBeGlzMiIgOiA0LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9
IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAg
ICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAyNSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlv
biIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIg
OiAyLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAg
ICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dT
RXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xs
WCIgOiAyMworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudERlbHRhQXhpczIiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50
UG9pbnREZWx0YUF4aXMxIiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMjUs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMTEsCisgICAgICAgICAg
ICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVu
dFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NH
RXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6
IDMzLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDIsCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVG
bGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAg
ICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDI4CisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiAyLAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogMSwKKyAg
ICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAzMywKKyAgICAgICAgICAgICJrQ0dTY3JvbGxX
aGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBv
aW50RGVsdGFBeGlzMiIgOiAxNiwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQw
MCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYs
CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNDEsCisgICAgICAgICAgICAid2luZG93
TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNj
cm9sbFkiIDogMSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAg
ICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAg
ICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVy
ZVNjcm9sbFgiIDogMzUKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAxLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1T
IiA6IDQxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDog
MSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAg
ICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDI0LAorICAg
ICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJr
Q0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRp
bWVNUyIgOiA0OSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIs
CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAtMSwKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xs
R2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6
IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogNDUKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3Vu
dCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDQs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAtMSwK
KyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA0OSwKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dFBvaW50RGVsdGFBeGlzMiIgOiAzNywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAi
ezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6
IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNTcsCisgICAgICAgICAgICAid2lu
ZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVy
ZVNjcm9sbFkiIDogLTMsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwK
KyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAg
ICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdl
c3R1cmVTY3JvbGxYIiA6IDU3CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJr
Q0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiA1LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRQb2ludERlbHRhQXhpczEiIDogLTEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMi
IDogNTcsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAx
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogNTQsCisgICAg
ICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtD
R1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGlt
ZU1TIiA6IDY1LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwK
KyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IC01LAorICAgICAgICAgICAg
ImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxH
ZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDog
MjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA4MQorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50
IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogOSwK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IC0yLAor
ICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDY1LAorICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50
UG9pbnREZWx0YUF4aXMyIiA6IDkyLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7
NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAg
ICAgfSwKKyAgICBdKTsKK30KKworTlNTdHJpbmcgKmNvbXBsZXRlU3dpcGVCYWNrRXZlbnRTdHJl
YW0oKQoreworICAgIHJldHVybiBRVU9URShbCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dF
dmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDog
NzMsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAg
ICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFkiIDogLTMsCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVG
bGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAg
ICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDc1CisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiAxMSwKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IC0xLAorICAgICAg
ICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDczLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50
U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnRE
ZWx0YUF4aXMyIiA6IDEwNiwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwg
MzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisg
ICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogODEsCisgICAgICAgICAgICAid2luZG93TG9j
YXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9s
bFkiIDogLTMsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAg
ICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAg
ImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVT
Y3JvbGxYIiA6IDg1CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50RGVsdGFBeGlzMiIgOiAxMywKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50
UG9pbnREZWx0YUF4aXMxIiA6IC0xLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDgx
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAg
ICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAg
ICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDEyNywKKyAgICAgICAg
ICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2
ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJr
Q0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMi
IDogODksCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFkiIDogLTEsCisgICAgICAgICAgICAia0NH
RXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1
cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwK
KyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDkxCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDog
MSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiAxNCwKKyAg
ICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IC0xLAorICAg
ICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDg5LAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2
ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9p
bnREZWx0YUF4aXMyIiA6IDEzOSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQw
MCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYs
CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogOTcsCisgICAgICAgICAgICAid2luZG93
TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNj
cm9sbFkiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAg
ICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAg
ICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVy
ZVNjcm9sbFgiIDogMTM2CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dT
Y3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxX
aGVlbEV2ZW50RGVsdGFBeGlzMiIgOiAyMCwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2
ZW50UG9pbnREZWx0YUF4aXMxIiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDog
OTcsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMjA0LAorICAgICAg
ICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dT
RXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
ImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVN
UyIgOiAxMDUsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAor
ICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFkiIDogNSwKKyAgICAgICAgICAgICJr
Q0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2Vz
dHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5
LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogOTIKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIg
OiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDE0LAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogMiwKKyAg
ICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAxMDUsCisgICAgICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQ
b2ludERlbHRhQXhpczIiIDogMTM2LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7
NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDog
NiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAxMTMsCisgICAgICAgICAgICAid2lu
ZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVy
ZVNjcm9sbFkiIDogMTQsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwK
KyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAg
ICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdl
c3R1cmVTY3JvbGxYIiA6IDEzMworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxOTIsCisgICAgICAgICAgICAia0NHU0V2
ZW50VHlwZUZpZWxkIiA6IDIyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0
YUF4aXMxIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91
cyIgOiAxLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDExMywKKyAgICAgICAgICAg
ICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwKKyAgICAgICAgICAgICJrQ0dT
Y3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiAxOSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBv
aW50RGVsdGFBeGlzMSIgOiA3CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJy
ZWxhdGl2ZVRpbWVNUyIgOiAxMjEsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJl
RmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYs
CisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZVBoYXNlIiA6IDQsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDog
Ins0MDAsIDMwMH0iCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJyZWxhdGl2
ZVRpbWVNUyIgOiAxMjEsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2
MiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAi
a0NHRXZlbnRHZXN0dXJlU3RhcnRFbmRTZXJpZXNUeXBlIiA6IDYsCisgICAgICAgICAgICAid2lu
ZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwKKyAgICAgICAgICAg
ICJyZWxhdGl2ZVRpbWVNUyIgOiAxMzksCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDog
Ins0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMiwKKyAg
ICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogNCwKKyAgICAgICAg
ICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEKKyAgICAgICAgfQorICAg
IF0pOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwgYi9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIu
aWRsCmluZGV4IDEzZGY2ZThmODZiNDM0NGNmMGExMGMwNGIyNDc4YjU3NDc5M2U0N2MuLmJmNDYw
NGUyYTMwYmM5NzZhYjk4MTIzYmEwZjI4MDkyOWJmMzBmMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxl
ci5pZGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGlu
Z3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbApAQCAtNDIsNiArNDIsMTEgQEAgaW50ZXJmYWNlIFVJ
U2NyaXB0Q29udHJvbGxlciB7CiAgICAgdm9pZCBrZXlEb3duVXNpbmdIYXJkd2FyZUtleWJvYXJk
KERPTVN0cmluZyBjaGFyYWN0ZXIsIG9iamVjdCBjYWxsYmFjayk7CiAgICAgdm9pZCBrZXlVcFVz
aW5nSGFyZHdhcmVLZXlib2FyZChET01TdHJpbmcgY2hhcmFjdGVyLCBvYmplY3QgY2FsbGJhY2sp
OwogCisgICAgdm9pZCBiZWdpbkJhY2tTd2lwZShvYmplY3QgY2FsbGJhY2spOworICAgIHZvaWQg
Y29tcGxldGVCYWNrU3dpcGUob2JqZWN0IGNhbGxiYWNrKTsKKworICAgIHZvaWQgcGxheUJhY2tF
dmVudFN0cmVhbShET01TdHJpbmcgZXZlbnRTdHJlYW0sIG9iamVjdCBjYWxsYmFjayk7CisKICAg
ICAvLyBFcXVpdmFsZW50IG9mIHByZXNzaW5nIHRoZSBEb25lIGJ1dHRvbiBpbiB0aGUgZm9ybSBh
Y2Nlc3NvcnkgYmFyLgogICAgIHZvaWQgZGlzbWlzc0Zvcm1BY2Nlc3NvcnlWaWV3KCk7CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0
Q29udHJvbGxlci5jcHAgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9V
SVNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDEwMDVjYmIxZmNhODgyOWQwZDNlZGYxZGRkN2Y5
Zjc4ODk2Zjk2NDMuLjI0MTNiZWMwM2MyYTk2M2VlZWRmMDM3NDMxMWJlMzcwMDk2YWM0NmUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTM1LDYgKzEzNSwxMSBAQCBKU1ZhbHVlUmVm
IFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkSGlkZUtleWJvYXJkQ2FsbGJhY2soKSBjb25zdAogICAg
IHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZEhpZGVLZXli
b2FyZCk7CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF5QmFja0V2ZW50U3RyZWFt
KEpTU3RyaW5nUmVmIHN0cmVhbSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBwbGF0Zm9y
bVBsYXlCYWNrRXZlbnRTdHJlYW0oc3RyZWFtLCBjYWxsYmFjayk7Cit9CisKICNpZiAhUExBVEZP
Uk0oSU9TKQogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6Onpvb21Ub1NjYWxlKGRvdWJsZSwgSlNW
YWx1ZVJlZikKIHsKQEAgLTI0Myw2ICsyNDgsMjMgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6
OnBsYXRmb3JtU2V0RGlkSGlkZUtleWJvYXJkQ2FsbGJhY2soKQogdm9pZCBVSVNjcmlwdENvbnRy
b2xsZXI6OnBsYXRmb3JtQ2xlYXJBbGxDYWxsYmFja3MoKQogewogfQorCisjZW5kaWYKKworI2lm
ICFQTEFURk9STShNQUMpCisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lw
ZShKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6
Y29tcGxldGVCYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKK30KKwordm9pZCBVSVNj
cmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1JlZiwg
SlNWYWx1ZVJlZikKK3sKK30KKwogI2VuZGlmCiAKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjp1
aVNjcmlwdENvbXBsZXRlKEpTU3RyaW5nUmVmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oIGIvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgK
aW5kZXggODQ2M2FjMmMyYmI3Y2ZjMDVmOGQ0ZGQ1NTJkYzgyYjkzNDg0MjllYi4uMTI4Y2UxZTM5
YmY2ODBmODQ5NzYxOWNhNTIzOTA1MTIxYmRjOTMwZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgK
QEAgLTY5LDYgKzY5LDkgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgc2Nyb2xsVG9PZmZzZXQo
bG9uZyB4LCBsb25nIHkpOwogCisgICAgdm9pZCBiZWdpbkJhY2tTd2lwZShKU1ZhbHVlUmVmIGNh
bGxiYWNrKTsKKyAgICB2b2lkIGNvbXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2sp
OworCiAgICAgdm9pZCBzZXREaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayhK
U1ZhbHVlUmVmKTsKICAgICBKU1ZhbHVlUmVmIGRpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlv
bkNhbGxiYWNrKCkgY29uc3Q7CiAKQEAgLTkwLDYgKzkzLDggQEAgcHVibGljOgogICAgIHZvaWQg
c2V0RGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2soSlNWYWx1ZVJlZik7CiAgICAgSlNWYWx1ZVJlZiBk
aWRFbmRTY3JvbGxpbmdDYWxsYmFjaygpIGNvbnN0OwogCisgICAgdm9pZCBwbGF5QmFja0V2ZW50
U3RyZWFtKEpTU3RyaW5nUmVmIHN0cmVhbSwgSlNWYWx1ZVJlZiBjYWxsYmFjayk7CisKICAgICBk
b3VibGUgem9vbVNjYWxlKCkgY29uc3Q7CiAgICAgZG91YmxlIG1pbmltdW1ab29tU2NhbGUoKSBj
b25zdDsKICAgICBkb3VibGUgbWF4aW11bVpvb21TY2FsZSgpIGNvbnN0OwpAQCAtMTExLDYgKzEx
Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybVNldERpZEhpZGVLZXlib2FyZENhbGxi
YWNrKCk7CiAgICAgdm9pZCBwbGF0Zm9ybVNldERpZEVuZFNjcm9sbGluZ0NhbGxiYWNrKCk7CiAg
ICAgdm9pZCBwbGF0Zm9ybUNsZWFyQWxsQ2FsbGJhY2tzKCk7CisgICAgdm9pZCBwbGF0Zm9ybVBs
YXlCYWNrRXZlbnRTdHJlYW0oSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYpOwogCiAgICAgSlNDbGFz
c1JlZiB3cmFwcGVyQ2xhc3MoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9zcGkvQ29yZUdyYXBoaWNzU1BJLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL3Nw
aS9Db3JlR3JhcGhpY3NTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzViZTA3NDg5OTRlZjJkODU1OGUwNTY2
Njk4NzdmNTE1OGRmYjBkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJl
ZC9zcGkvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW1wb3J0IDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCisKKyNpbXBvcnQgPENvcmVHcmFwaGljcy9DR0V2ZW50UHJpdmF0ZS5oPgor
I2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NHU0V2ZW50Lmg+CisKKyNlbHNlCisKK1dURl9FWFRFUk5f
Q19CRUdJTgorCitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR1NFdmVudFdpbmRvd0lERmll
bGQgPSAoQ0dFdmVudEZpZWxkKTUxOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dTRXZl
bnRUeXBlRmllbGQgPSAoQ0dFdmVudEZpZWxkKTU1Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVs
ZCBrQ0dFdmVudEdlc3R1cmVISURUeXBlID0gKENHRXZlbnRGaWVsZCkxMTA7CitzdGF0aWMgY29u
c3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZUlzUHJlZmxpZ2h0ID0gKENHRXZlbnRGaWVs
ZCkxMTE7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVpvb21WYWx1
ZSA9IChDR0V2ZW50RmllbGQpMTEzOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVu
dEdlc3R1cmVSb3RhdGlvblZhbHVlID0gKENHRXZlbnRGaWVsZCkxMTQ7CitzdGF0aWMgY29uc3Qg
Q0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmFsdWUgPSAoQ0dFdmVudEZpZWxkKTEx
NTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlUHJlZmxpZ2h0UHJv
Z3Jlc3MgPSAoQ0dFdmVudEZpZWxkKTExNjsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NH
RXZlbnRHZXN0dXJlU3RhcnRFbmRTZXJpZXNUeXBlID0gKENHRXZlbnRGaWVsZCkxMTc7CitzdGF0
aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVNjcm9sbFggPSAoQ0dFdmVudEZp
ZWxkKTExODsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU2Nyb2xs
WSA9IChDR0V2ZW50RmllbGQpMTE5Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVu
dEdlc3R1cmVTY3JvbGxaID0gKENHRXZlbnRGaWVsZCkxMjA7CitzdGF0aWMgY29uc3QgQ0dFdmVu
dEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlTW90aW9uID0gKENHRXZlbnRGaWVsZCkxMjM7Citz
dGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlUHJvZ3Jlc3MgPSAo
Q0dFdmVudEZpZWxkKTEyNDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0
dXJlU3dpcGVQb3NpdGlvblggPSAoQ0dFdmVudEZpZWxkKTEyNTsKK3N0YXRpYyBjb25zdCBDR0V2
ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVQb3NpdGlvblkgPSAoQ0dFdmVudEZpZWxkKTEy
NjsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVWZWxvY2l0
eVggPSAoQ0dFdmVudEZpZWxkKTEyOTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZl
bnRHZXN0dXJlU3dpcGVWZWxvY2l0eVkgPSAoQ0dFdmVudEZpZWxkKTEzMDsKK3N0YXRpYyBjb25z
dCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVWZWxvY2l0eVogPSAoQ0dFdmVudEZp
ZWxkKTEzMTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlUGhhc2Ug
PSAoQ0dFdmVudEZpZWxkKTEzMjsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRH
ZXN0dXJlTWFzayA9IChDR0V2ZW50RmllbGQpMTMzOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVs
ZCBrQ0dFdmVudEdlc3R1cmVTd2lwZU1hc2sgPSAoQ0dFdmVudEZpZWxkKTEzNDsKK3N0YXRpYyBj
b25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMgPSAoQ0dFdmVu
dEZpZWxkKTEzNTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRTd2lwZUdlc3R1
cmVGbGFnQml0cyA9IChDR0V2ZW50RmllbGQpMTM2Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVs
ZCBrQ0dFdmVudEdlc3R1cmVGbGF2b3IgPSAoQ0dFdmVudEZpZWxkKTEzODsKK3N0YXRpYyBjb25z
dCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlWm9vbURlbHRhWCA9IChDR0V2ZW50RmllbGQp
MTM5Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVab29tRGVsdGFZ
ID0gKENHRXZlbnRGaWVsZCkxNDA7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50
R2VzdHVyZVByb2dyZXNzID0gKENHRXZlbnRGaWVsZCkxNDI7CitzdGF0aWMgY29uc3QgQ0dFdmVu
dEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN0YWdlID0gKENHRXZlbnRGaWVsZCkxNDM7CitzdGF0aWMg
Y29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZUJlaGF2aW9yID0gKENHRXZlbnRGaWVs
ZCkxNDQ7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50VHJhbnNpdGlvblByb2dy
ZXNzID0gKENHRXZlbnRGaWVsZCkxNDc7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2
ZW50U3RhZ2VQcmVzc3VyZSA9IChDR0V2ZW50RmllbGQpMTQ4OworCitlbnVtIHsKKyAgICBrQ0dT
RXZlbnRTY3JvbGxXaGVlbCA9IDIyLAorICAgIGtDR1NFdmVudFpvb20gPSAyOCwKKyAgICBrQ0dT
RXZlbnRHZXN0dXJlID0gMjksCisgICAga0NHU0V2ZW50RG9ja0NvbnRyb2wgPSAzMCwKKyAgICBr
Q0dTRXZlbnRGbHVpZFRvdWNoR2VzdHVyZSA9IDMxLAorfTsKK3R5cGVkZWYgdWludDMyX3QgQ0dT
RXZlbnRUeXBlOworCitlbnVtIHsKKyAgICBrQ0dISURFdmVudFR5cGVHZXN0dXJlU3RhcnRlZCA9
IDYxLAorICAgIGtDR0hJREV2ZW50VHlwZUdlc3R1cmVFbmRlZCA9IDYyLAorfTsKK3R5cGVkZWYg
dWludDMyX3QgQ0dTSElERXZlbnRUeXBlOworCitDR1BvaW50IENHRXZlbnRHZXRXaW5kb3dMb2Nh
dGlvbihDR0V2ZW50UmVmKTsKK3ZvaWQgQ0dFdmVudFNldFdpbmRvd0xvY2F0aW9uKENHRXZlbnRS
ZWYsIENHUG9pbnQpOworCitXVEZfRVhURVJOX0NfRU5ECisKKyNlbmRpZiAvLyBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9zcGkvSU9L
aXRTUEkuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0lPS2l0U1BJLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjIwOTc2MGNlNzExOTFmNDViYzFkMmQ0OWMzMjM0YmY2YWM3YzQ5ZgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0lPS2l0U1BJLmgKQEAgLTAsMCArMSwx
NzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9ydCA8d3RmL1BsYXRmb3Jt
Lmg+CisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxJT0tpdC9oaWQv
SU9ISURFdmVudC5oPgorI2ltcG9ydCA8SU9LaXQvaGlkL0lPSElERXZlbnRTeXN0ZW1DbGllbnQu
aD4KKyNpbXBvcnQgPElPS2l0L2hpZC9JT0hJRFVzYWdlVGFibGVzLmg+CisKKyNlbHNlCisKK1dU
Rl9FWFRFUk5fQ19CRUdJTgorCisjaWZkZWYgX19MUDY0X18KK3R5cGVkZWYgZG91YmxlIElPSElE
RmxvYXQ7CisjZWxzZQordHlwZWRlZiBmbG9hdCBJT0hJREZsb2F0OworI2VuZGlmCisKK2VudW0g
eworICAgIGtJT0hJREV2ZW50T3B0aW9uTm9uZSA9IDAsCit9OworCit0eXBlZGVmIFVJbnQzMiBJ
T09wdGlvbkJpdHM7Cit0eXBlZGVmIHVpbnQzMl90IElPSElERXZlbnRPcHRpb25CaXRzOwordHlw
ZWRlZiB1aW50MzJfdCBJT0hJREV2ZW50RmllbGQ7CisKK3R5cGVkZWYgc3RydWN0IF9fSU9ISURF
dmVudFN5c3RlbUNsaWVudCAqIElPSElERXZlbnRTeXN0ZW1DbGllbnRSZWY7Cit0eXBlZGVmIHN0
cnVjdCBfX0lPSElERXZlbnQgKiBJT0hJREV2ZW50UmVmOworCisjZGVmaW5lIElPSElERXZlbnRG
aWVsZEJhc2UodHlwZSkgKHR5cGUgPDwgMTYpCisKK2VudW0geworICAgIGtISURQYWdlX0tleWJv
YXJkT3JLZXlwYWQgICAgICAgPSAweDA3LAorICAgIGtISURQYWdlX1ZlbmRvckRlZmluZWRTdGFy
dCAgICAgPSAweEZGMDAKK307CisKK2VudW0geworICAgIGtJT0hJRERpZ2l0aXplckV2ZW50UmFu
Z2UgICAgICAgPSAxPDwwLAorICAgIGtJT0hJRERpZ2l0aXplckV2ZW50VG91Y2ggICAgICAgPSAx
PDwxLAorICAgIGtJT0hJRERpZ2l0aXplckV2ZW50UG9zaXRpb24gICAgPSAxPDwyLAorICAgIGtJ
T0hJRERpZ2l0aXplckV2ZW50SWRlbnRpdHkgICAgPSAxPDw1LAorICAgIGtJT0hJRERpZ2l0aXpl
ckV2ZW50QXR0cmlidXRlICAgPSAxPDw2LAorICAgIGtJT0hJRERpZ2l0aXplckV2ZW50Q2FuY2Vs
ICAgICAgPSAxPDw3LAorICAgIGtJT0hJRERpZ2l0aXplckV2ZW50U3RhcnQgICAgICAgPSAxPDw4
LAorfTsKK3R5cGVkZWYgdWludDMyX3QgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2s7CisKK2VudW0g
eworICAgIGtJT0hJREV2ZW50VHlwZU5VTEwsCisgICAga0lPSElERXZlbnRUeXBlVmVuZG9yRGVm
aW5lZCwKKyAgICBrSU9ISURFdmVudFR5cGVLZXlib2FyZCA9IDMsCisgICAga0lPSElERXZlbnRU
eXBlUm90YXRpb24gPSA1LAorICAgIGtJT0hJREV2ZW50VHlwZVNjcm9sbCA9IDYsCisgICAga0lP
SElERXZlbnRUeXBlWm9vbSA9IDgsCisgICAga0lPSElERXZlbnRUeXBlRGlnaXRpemVyID0gMTEs
CisgICAga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlID0gMTYsCisgICAga0lPSElERXZl
bnRUeXBlRm9yY2UgPSAzMiwKKworfTsKK3R5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudFR5cGU7
CisKK2VudW0geworICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkVXNhZ2VQYWdlID0g
SU9ISURFdmVudEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVWZW5kb3JEZWZpbmVkKSwKKyAgICBr
SU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFJlc2VydmVkLAorICAgIGtJT0hJREV2ZW50Rmll
bGRWZW5kb3JEZWZpbmVkUmVzZXJ2ZWQxLAorICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZp
bmVkRGF0YUxlbmd0aCwKKyAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZERhdGEKK307
CisKK2VudW0geworICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJYID0gSU9ISURFdmVudEZp
ZWxkQmFzZShrSU9ISURFdmVudFR5cGVEaWdpdGl6ZXIpLAorICAgIGtJT0hJREV2ZW50RmllbGRE
aWdpdGl6ZXJZLAorICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJNYWpvclJhZGl1cyA9IGtJ
T0hJREV2ZW50RmllbGREaWdpdGl6ZXJYICsgMjAsCisgICAga0lPSElERXZlbnRGaWVsZERpZ2l0
aXplck1pbm9yUmFkaXVzLAorICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJJc0Rpc3BsYXlJ
bnRlZ3JhdGVkID0ga0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1ham9yUmFkaXVzICsgNSwKK307
CisKK2VudW0geworICAgIGtJT0hJRERpZ2l0aXplclRyYW5zZHVjZXJUeXBlSGFuZCA9IDMKK307
Cit0eXBlZGVmIHVpbnQzMl90IElPSElERGlnaXRpemVyVHJhbnNkdWNlclR5cGU7CisKK0lPSElE
RXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZURpZ2l0aXplckV2ZW50KENGQWxsb2NhdG9yUmVmLCB1
aW50NjRfdCwgSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZSwgdWludDMyX3QsIHVpbnQzMl90
LCBJT0hJRERpZ2l0aXplckV2ZW50TWFzaywgdWludDMyX3QsIElPSElERmxvYXQsIElPSElERmxv
YXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIGJvb2xlYW5fdCwgYm9vbGVh
bl90LCBJT09wdGlvbkJpdHMpOworCitJT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVEaWdp
dGl6ZXJGaW5nZXJFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIHVpbnQzMl90LCB1aW50
MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIElPSElERmxvYXQsIElPSElERmxvYXQsIElP
SElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIGJvb2xlYW5fdCwgYm9vbGVhbl90LCBJ
T0hJREV2ZW50T3B0aW9uQml0cyk7CisKK0lPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZUZv
cmNlRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgSU9ISURGbG9hdCwg
dWludDMyX3QsIElPSElERmxvYXQsIElPSElERXZlbnRPcHRpb25CaXRzKTsKKworSU9ISURFdmVu
dFJlZiBJT0hJREV2ZW50Q3JlYXRlS2V5Ym9hcmRFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0
X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgYm9vbGVhbl90LCBJT09wdGlvbkJpdHMpOworCitJT0hJ
REV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVWZW5kb3JEZWZpbmVkRXZlbnQoQ0ZBbGxvY2F0b3JS
ZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50OF90KiwgQ0ZJ
bmRleCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOworCitJT0hJREV2ZW50VHlwZSBJT0hJREV2ZW50
R2V0VHlwZShJT0hJREV2ZW50UmVmKTsKKwordm9pZCBJT0hJREV2ZW50U2V0RmxvYXRWYWx1ZShJ
T0hJREV2ZW50UmVmLCBJT0hJREV2ZW50RmllbGQsIElPSElERmxvYXQpOworCitDRkluZGV4IElP
SElERXZlbnRHZXRJbnRlZ2VyVmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxkKTsK
K3ZvaWQgSU9ISURFdmVudFNldEludGVnZXJWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50
RmllbGQsIENGSW5kZXgpOworCit2b2lkIElPSElERXZlbnRBcHBlbmRFdmVudChJT0hJREV2ZW50
UmVmLCBJT0hJREV2ZW50UmVmLCBJT09wdGlvbkJpdHMpOworCitJT0hJREV2ZW50U3lzdGVtQ2xp
ZW50UmVmIElPSElERXZlbnRTeXN0ZW1DbGllbnRDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYpOworCisj
ZGVmaW5lIGtHU0V2ZW50UGF0aEluZm9JblJhbmdlICgxIDw8IDApCisjZGVmaW5lIGtHU0V2ZW50
UGF0aEluZm9JblRvdWNoICgxIDw8IDEpCisKK2VudW0geworICAgIGtISURVc2FnZV9LZXlib2Fy
ZEEgPSAweDA0LAorICAgIGtISURVc2FnZV9LZXlib2FyZDEgPSAweDFFLAorICAgIGtISURVc2Fn
ZV9LZXlib2FyZDIgPSAweDFGLAorICAgIGtISURVc2FnZV9LZXlib2FyZDMgPSAweDIwLAorICAg
IGtISURVc2FnZV9LZXlib2FyZDQgPSAweDIxLAorICAgIGtISURVc2FnZV9LZXlib2FyZDUgPSAw
eDIyLAorICAgIGtISURVc2FnZV9LZXlib2FyZDYgPSAweDIzLAorICAgIGtISURVc2FnZV9LZXli
b2FyZDcgPSAweDI0LAorICAgIGtISURVc2FnZV9LZXlib2FyZDggPSAweDI1LAorICAgIGtISURV
c2FnZV9LZXlib2FyZDkgPSAweDI2LAorICAgIGtISURVc2FnZV9LZXlib2FyZDAgPSAweDI3LAor
ICAgIGtISURVc2FnZV9LZXlib2FyZFJldHVybk9yRW50ZXIgPSAweDI4LAorICAgIGtISURVc2Fn
ZV9LZXlib2FyZEVzY2FwZSA9IDB4MjksCisgICAga0hJRFVzYWdlX0tleWJvYXJkRGVsZXRlT3JC
YWNrc3BhY2UgPSAweDJBLAorICAgIGtISURVc2FnZV9LZXlib2FyZFRhYiA9IDB4MkIsCisgICAg
a0hJRFVzYWdlX0tleWJvYXJkU3BhY2ViYXIgPSAweDJDLAorICAgIGtISURVc2FnZV9LZXlib2Fy
ZEh5cGhlbiA9IDB4MkQsCisgICAga0hJRFVzYWdlX0tleWJvYXJkRXF1YWxTaWduID0gMHgyRSwK
KyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRPcGVuQnJhY2tldCA9IDB4MkYsCisgICAga0hJRFVzYWdl
X0tleWJvYXJkQ2xvc2VCcmFja2V0ID0gMHgzMCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRCYWNr
c2xhc2ggPSAweDMxLAorICAgIGtISURVc2FnZV9LZXlib2FyZFNlbWljb2xvbiA9IDB4MzMsCisg
ICAga0hJRFVzYWdlX0tleWJvYXJkUXVvdGUgPSAweDM0LAorICAgIGtISURVc2FnZV9LZXlib2Fy
ZEdyYXZlQWNjZW50QW5kVGlsZGUgPSAweDM1LAorICAgIGtISURVc2FnZV9LZXlib2FyZENvbW1h
ID0gMHgzNiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRQZXJpb2QgPSAweDM3LAorICAgIGtISURV
c2FnZV9LZXlib2FyZFNsYXNoID0gMHgzOCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRGMSA9IDB4
M0EsCisgICAga0hJRFVzYWdlX0tleWJvYXJkSG9tZSA9IDB4NEEsCisgICAga0hJRFVzYWdlX0tl
eWJvYXJkUGFnZVVwID0gMHg0QiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRFbmQgPSAweDRELAor
ICAgIGtISURVc2FnZV9LZXlib2FyZFJpZ2h0QXJyb3cgPSAweDRGLAorICAgIGtISURVc2FnZV9L
ZXlib2FyZExlZnRBcnJvdyA9IDB4NTAsCisgICAga0hJRFVzYWdlX0tleWJvYXJkRG93bkFycm93
ID0gMHg1MSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRVcEFycm93ID0gMHg1MiwKKyAgICBrSElE
VXNhZ2VfS2V5Ym9hcmRMZWZ0Q29udHJvbCA9IDB4RTAsCisgICAga0hJRFVzYWdlX0tleWJvYXJk
TGVmdFNoaWZ0ID0gMHhFMSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0QWx0ID0gMHhFMgor
fTsKKworV1RGX0VYVEVSTl9DX0VORAorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRU
ZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWRiOThlYTllMDliOTlh
NmZjN2ExNzBlOWUwNDBmNDY2YjJhNDUwMC4uNTFmZDI1YTU3NmE1MmI2ZjljOGVmMjlkMGIzYmVl
NmQ3ZGEwNGFkNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0
UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzLDYg
KzYzLDExIEBACiAJCTI5QThGQ0REMTQ1RjAzMzcwMDkwNDVBNiAvKiBKU0FjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjlBOEZDRTEzNDVFNzAyMTAwNkFBNUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXJSYW5nZS5jcHAgKi87IH07CiAJCTI5QThGQ0UyMTQ1RjAzN0IwMDkwNDVBNiAvKiBBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI5QThGQ0UxMTQ1RjAzN0IwMDkwNDVBNiAvKiBBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlclJhbmdlLmNwcCAqLzsgfTsKIAkJMjlBOEZDRTUxNDVGMDQ2NDAwOTA0NUE2
IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4RkNFNDE0NUYwNDY0MDA5MDQ1QTYgLyog
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbSAqLzsgfTsKKwkJMkRCNjE4N0UxRDdE
NThENDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRCNjE4N0QxRDdENThENDAwOTc4RDE5IC8qIENvcmVH
cmFwaGljc1NQSS5oICovOyB9OworCQkyREQ0QzQ5QTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRT
ZXJpYWxpemVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyREQ0QzQ5ODFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLmggKi87
IH07CisJCTJERDRDNDlCMUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ0QzQ5OTFE
NkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tICovOyB9OworCQkyREZBOTg0
ODFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZBOTg0NjFEN0Y3MENGMDBBRkYy
QzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggKi87IH07CisJCTJERkE5ODQ5MUQ3RjcwQ0Yw
MEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZBOTg0NzFEN0Y3MENGMDBBRkYyQzkgLyogU2hh
cmVkRXZlbnRTdHJlYW1zTWFjLm1tICovOyB9OwogCQkyRTM0QzkwMDE4QjY4ODA4MDAwMDY3QkIg
LyogV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlLmJ1bmRsZSBpbiBDb3B5IFBsdWctSW5z
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjUxODYyMTFEMTVENTQwMDJF
QkMwMSAvKiBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuYnVuZGxlICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKENvZGVTaWduT25Db3B5LCBSZW1vdmVIZWFkZXJzT25Db3B5LCAp
OyB9OyB9OwogCQkyRTYzRUQ4QTE4OTFBRDdFMDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRTYzRUQ3NTE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1Mu
bW0gKi87IH07CiAJCTJFNjNFRDhCMTg5MUFEN0UwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFNjNFRDc3MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklP
Uy5tbSAqLzsgfTsKQEAgLTIxMSw3ICsyMTYsNyBAQAogCQkwRkVCOTBBMzE5MDVCQzZBMDAwRkRC
RjMgLyogQ3Jhc2hSZXBvcnRlckluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBDcmFzaFJlcG9ydGVySW5mby5tbTsgcGF0aCA9IGNvY29hL0NyYXNoUmVwb3J0
ZXJJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVCRjg1ODFCQjYxREYy
MDAyODcyMkQgLyogSElERXZlbnRHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSElERXZlbnRHZW5lcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEZFQkY4NTkxQkI2MURGMjAwMjg3MjJEIC8qIEhJREV2ZW50R2VuZXJhdG9yLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSElERXZlbnRHZW5lcmF0b3IubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRUJGODVCMUJCNjJBMzcwMDI4NzIyRCAv
KiBJT0tpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJT0tpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwRkVCRjg1QjFCQjYyQTM3MDAyODcyMkQgLyogSU9LaXRTUEkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gSU9LaXRTUEkuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0lP
S2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRUJGODVDMUJCNjJENDYw
MDI4NzIyRCAvKiBVSUtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVSUtpdFNQSS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQTMzMjYwNTFCNzUzOTY1MDBGODlGNjIgLyogVGVzdE9w
dGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVzdE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUNBMjExQzcxQkNBMTA3MzAwQjIxMDFGIC8qIEZvbnRXaXRoRmVhdHVyZXMu
b3RmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmls
ZTsgcGF0aCA9IEZvbnRXaXRoRmVhdHVyZXMub3RmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjQwLDcgKzI0NSwxMiBAQAogCQkyOUE4RkNFMTM0NUU3MDIxMDA2QUE1QTYgLyogSlNB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QThGQ0UxMzQ1RTcwMjEwMDZBQTVBNyAvKiBKU0FjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTI5QThGQ0U0MTQ1RjA0NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlclJhbmdlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkRCNjE4N0QxRDdENThENDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQSS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDb3JlR3JhcGhpY3NTUEkuaDsgcGF0aCA9
IC4uL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0NvcmVHcmFwaGljc1NQSS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyRENFMkNEMTFCODQ1MjQ1MDBDN0Y4MzIgLyogVGVzdENvbnRyb2xs
ZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRlc3RD
b250cm9sbGVyQ29jb2EubW07IHBhdGggPSBjb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREQ0QzQ5ODFENkU3RDNCMDAwNzM3OUMgLyog
RXZlbnRTZXJpYWxpemVyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEV2
ZW50U2VyaWFsaXplck1hYy5oOyBwYXRoID0gbWFjL0V2ZW50U2VyaWFsaXplck1hYy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREQ0QzQ5OTFENkU3RDNCMDAwNzM3OUMgLyogRXZl
bnRTZXJpYWxpemVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gRXZlbnRTZXJpYWxpemVyTWFjLm1tOyBwYXRoID0gbWFjL0V2ZW50U2VyaWFsaXplck1hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRGQTk4NDYxRDdGNzBDRjAwQUZGMkM5
IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaDsgcGF0aCA9IG1hYy9TaGFyZWRFdmVudFN0cmVh
bXNNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRGQTk4NDcxRDdGNzBDRjAw
QUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTsgcGF0aCA9IG1hYy9T
aGFyZWRFdmVudFN0cmVhbXNNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJF
NjNFRDc1MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlDb250
cm9sbGVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTYzRUQ3NjE4OTFB
Q0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU2M0VENzcxODkxQUNFOTAwMkE3
QUZDIC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NzYsNyArNDg2LDkgQEAKIAkJMEY3M0I1NDcxQkE3
ODJGRTAwNEIzRUY0IC8qIFVJU2NyaXB0Q29udGV4dCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMkRCNjE4N0YxRDdENTk4ODAwOTc4RDE5IC8qIHNwaSAq
LywKIAkJCQkwRjczQjU0QjFCQTc4MzUwMDA0QjNFRjQgLyogQmluZGluZ3MgKi8sCisJCQkJMkRE
NEM0OTcxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50IFNlcmlhbGl6YXRpb24gKi8sCiAJCQkJMEY3
M0I1NEUxQkE3ODk1NDAwNEIzRUY0IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkwRjE4RTZE
RDFENkI5QUFGMDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmNwcCAqLywKIAkJCQkwRjE4RTZE
RTFENkI5QUFGMDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmggKi8sCkBAIC01NTQsNiArNTY2
LDM1IEBACiAJCQluYW1lID0gQWNjZXNzaWJpbGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCTJEQjYxODdGMUQ3RDU5ODgwMDk3OEQxOSAvKiBzcGkgKi8gPSB7CisJCQlp
c2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTJEQjYxODdEMUQ3RDU4RDQwMDk3
OEQxOSAvKiBDb3JlR3JhcGhpY3NTUEkuaCAqLywKKwkJCQkwRkVCRjg1QjFCQjYyQTM3MDAyODcy
MkQgLyogSU9LaXRTUEkuaCAqLywKKwkJCSk7CisJCQluYW1lID0gc3BpOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMkRENEM0OTcxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50
IFNlcmlhbGl6YXRpb24gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCTJERkE5ODRBMUQ3Rjc5RTAwMEFGRjJDOSAvKiBtYWMgKi8sCisJCQkpOworCQkJbmFt
ZSA9ICJFdmVudCBTZXJpYWxpemF0aW9uIjsKKwkJCXBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVk
L0V2ZW50U2VyaWFsaXphdGlvbjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJ
CTJERkE5ODRBMUQ3Rjc5RTAwMEFGRjJDOSAvKiBtYWMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTJERDRDNDk4MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVu
dFNlcmlhbGl6ZXJNYWMuaCAqLywKKwkJCQkyREQ0QzQ5OTFENkU3RDNCMDAwNzM3OUMgLyogRXZl
bnRTZXJpYWxpemVyTWFjLm1tICovLAorCQkJCTJERkE5ODQ2MUQ3RjcwQ0YwMEFGRjJDOSAvKiBT
aGFyZWRFdmVudFN0cmVhbXNNYWMuaCAqLywKKwkJCQkyREZBOTg0NzFEN0Y3MENGMDBBRkYyQzkg
LyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tICovLAorCQkJKTsKKwkJCW5hbWUgPSBtYWM7CisJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkyRTYzRUQ3NDE4OTFBQ0U5MDAyQTdB
RkMgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAg
LTU5MSw3ICs2MzIsNiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMEZFQkY4NTgxQkI2MURGMjAw
Mjg3MjJEIC8qIEhJREV2ZW50R2VuZXJhdG9yLmggKi8sCiAJCQkJMEZFQkY4NTkxQkI2MURGMjAw
Mjg3MjJEIC8qIEhJREV2ZW50R2VuZXJhdG9yLm1tICovLAotCQkJCTBGRUJGODVCMUJCNjJBMzcw
MDI4NzIyRCAvKiBJT0tpdFNQSS5oICovLAogCQkJCTJFRTUyRDEzMTg5MEE5RkIwMDEwRUQyMSAv
KiBQbGF0Zm9ybVdlYlZpZXdJT1MubW0gKi8sCiAJCQkJMkVFNTJEMTQxODkwQTlGQjAwMTBFRDIx
IC8qIFRlc3RDb250cm9sbGVySU9TLm1tICovLAogCQkJCTBGRUJGODVDMUJCNjJENDYwMDI4NzIy
RCAvKiBVSUtpdFNQSS5oICovLApAQCAtNzc4LDcgKzgxOCwxMCBAQAogCQkJaXNhID0gUEJYSGVh
ZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmls
ZXMgPSAoCisJCQkJMkRCNjE4N0UxRDdENThENDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3M0I1NTIxQkE3ODk2ODAwNEIzRUY0IC8qIEpTVUlTY3Jp
cHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkyREZBOTg0ODFEN0Y3MENGMDBBRkYy
QzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQkyREQ0QzQ5
QTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTk4Niw4ICsxMDI5LDEwIEBACiAJCQkJMEY3M0I1NTExQkE3ODk2ODAwNEIzRUY0IC8qIEpT
VUlTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMThFNzE4MUQ2QkM0
NTYwMDI3RTU0NyAvKiBKU1dyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0Mx
QjlBRTBGRTAwNzQ0QUVCIC8qIE9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkRENEM0
OUIxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUExODUxMDQwMUI5QUUxMzEwMDc0NEFFQiAvKiBQaXhlbER1bXBTdXBwb3J0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUExODUxMDQxMUI5QUUxMzgwMDc0NEFFQiAvKiBUZXN0Q29udHJv
bGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyREZBOTg0OTFEN0Y3MENGMDBBRkYyQzkgLyog
U2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0IxQjlB
RTBFMjAwNzQ0QUVCIC8qIFRlc3RDb250cm9sbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJ
CQlBMTg1MTA0MjFCOUFFMTNFMDA3NDRBRUIgLyogVGVzdEludm9jYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTE4NTEwM0QxQjlBRTEwNjAwNzQ0QUVCIC8qIFRlc3RJbnZvY2F0aW9uQ0cu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lv
cy9JT0tpdFNQSS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvSU9LaXRTUEkuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2EwZDZhMTVjZDUxZDI1MjIwZGFkMTdkMWUyMzFm
NjNmYWFlYWUzYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tpdFNQSS5oCisrKyAvZGV2L251bGwKQEAg
LTEsMTc4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIElPS2l0U1BJX2gKLSNkZWZpbmUg
SU9LaXRTUElfaAotCi0jaW1wb3J0IDx3dGYvUGxhdGZvcm0uaD4KLQotI2lmIFBMQVRGT1JNKElP
UykKLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0KLSNpbXBvcnQgPElPS2l0L2hpZC9J
T0hJREV2ZW50Lmg+Ci0jaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURFdmVudFN5c3RlbUNsaWVudC5o
PgotI2ltcG9ydCA8SU9LaXQvaGlkL0lPSElEVXNhZ2VUYWJsZXMuaD4KLQotI2Vsc2UKLQotV1RG
X0VYVEVSTl9DX0JFR0lOCi0KLSNpZmRlZiBfX0xQNjRfXwotdHlwZWRlZiBkb3VibGUgSU9ISURG
bG9hdDsKLSNlbHNlCi10eXBlZGVmIGZsb2F0IElPSElERmxvYXQ7Ci0jZW5kaWYKLQotZW51bSB7
Ci0gICAga0lPSElERXZlbnRPcHRpb25Ob25lID0gMCwKLX07Ci0KLXR5cGVkZWYgVUludDMyIElP
T3B0aW9uQml0czsKLXR5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudE9wdGlvbkJpdHM7Ci10eXBl
ZGVmIHVpbnQzMl90IElPSElERXZlbnRGaWVsZDsKLQotdHlwZWRlZiBzdHJ1Y3QgX19JT0hJREV2
ZW50U3lzdGVtQ2xpZW50ICogSU9ISURFdmVudFN5c3RlbUNsaWVudFJlZjsKLXR5cGVkZWYgc3Ry
dWN0IF9fSU9ISURFdmVudCAqIElPSElERXZlbnRSZWY7Ci0KLSNkZWZpbmUgSU9ISURFdmVudEZp
ZWxkQmFzZSh0eXBlKSAodHlwZSA8PCAxNikKLQotZW51bSB7Ci0gICAga0hJRFBhZ2VfS2V5Ym9h
cmRPcktleXBhZCAgICAgICA9IDB4MDcsCi0gICAga0hJRFBhZ2VfVmVuZG9yRGVmaW5lZFN0YXJ0
ICAgICA9IDB4RkYwMAotfTsKLQotZW51bSB7Ci0gICAga0lPSElERGlnaXRpemVyRXZlbnRSYW5n
ZSAgICAgICA9IDE8PDAsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRUb3VjaCAgICAgICA9IDE8
PDEsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRQb3NpdGlvbiAgICA9IDE8PDIsCi0gICAga0lP
SElERGlnaXRpemVyRXZlbnRJZGVudGl0eSAgICA9IDE8PDUsCi0gICAga0lPSElERGlnaXRpemVy
RXZlbnRBdHRyaWJ1dGUgICA9IDE8PDYsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRDYW5jZWwg
ICAgICA9IDE8PDcsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRTdGFydCAgICAgICA9IDE8PDgs
Ci19OwotdHlwZWRlZiB1aW50MzJfdCBJT0hJRERpZ2l0aXplckV2ZW50TWFzazsKLQotZW51bSB7
Ci0gICAga0lPSElERXZlbnRUeXBlTlVMTCwKLSAgICBrSU9ISURFdmVudFR5cGVWZW5kb3JEZWZp
bmVkLAotICAgIGtJT0hJREV2ZW50VHlwZUtleWJvYXJkID0gMywKLSAgICBrSU9ISURFdmVudFR5
cGVEaWdpdGl6ZXIgPSAxMSwKLX07Ci10eXBlZGVmIHVpbnQzMl90IElPSElERXZlbnRUeXBlOwot
Ci1lbnVtIHsKLSAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFVzYWdlUGFnZSA9IElP
SElERXZlbnRGaWVsZEJhc2Uoa0lPSElERXZlbnRUeXBlVmVuZG9yRGVmaW5lZCksCi0gICAga0lP
SElERXZlbnRGaWVsZFZlbmRvckRlZmluZWRSZXNlcnZlZCwKLSAgICBrSU9ISURFdmVudEZpZWxk
VmVuZG9yRGVmaW5lZFJlc2VydmVkMSwKLSAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5l
ZERhdGFMZW5ndGgsCi0gICAga0lPSElERXZlbnRGaWVsZFZlbmRvckRlZmluZWREYXRhCi19Owot
Ci1lbnVtIHsKLSAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyWCA9IElPSElERXZlbnRGaWVs
ZEJhc2Uoa0lPSElERXZlbnRUeXBlRGlnaXRpemVyKSwKLSAgICBrSU9ISURFdmVudEZpZWxkRGln
aXRpemVyWSwKLSAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyTWFqb3JSYWRpdXMgPSBrSU9I
SURFdmVudEZpZWxkRGlnaXRpemVyWCArIDIwLAotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6
ZXJNaW5vclJhZGl1cywKLSAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVySXNEaXNwbGF5SW50
ZWdyYXRlZCA9IGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJNYWpvclJhZGl1cyArIDUsCi19Owot
Ci1lbnVtIHsKLSAgICBrSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZUhhbmQgPSAzCi19Owot
dHlwZWRlZiB1aW50MzJfdCBJT0hJRERpZ2l0aXplclRyYW5zZHVjZXJUeXBlOwotCi1JT0hJREV2
ZW50UmVmIElPSElERXZlbnRDcmVhdGVEaWdpdGl6ZXJFdmVudChDRkFsbG9jYXRvclJlZiwgdWlu
dDY0X3QsIElPSElERGlnaXRpemVyVHJhbnNkdWNlclR5cGUsIHVpbnQzMl90LCB1aW50MzJfdCwg
SU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0
LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5f
dCwgSU9PcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlRGlnaXRp
emVyRmluZ2VyRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMy
X3QsIElPSElERGlnaXRpemVyRXZlbnRNYXNrLCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJ
REZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9I
SURFdmVudE9wdGlvbkJpdHMpOwotCi1JT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVGb3Jj
ZUV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIElPSElERmxvYXQsIHVp
bnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREV2ZW50T3B0aW9uQml0cyk7Ci0KLUlPSElERXZlbnRS
ZWYgSU9ISURFdmVudENyZWF0ZUtleWJvYXJkRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90
LCB1aW50MzJfdCwgdWludDMyX3QsIGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsKLQotSU9ISURF
dmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlVmVuZG9yRGVmaW5lZEV2ZW50KENGQWxsb2NhdG9yUmVm
LCB1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDhfdCosIENGSW5k
ZXgsIElPSElERXZlbnRPcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFR5cGUgSU9ISURFdmVudEdl
dFR5cGUoSU9ISURFdmVudFJlZik7Ci0KLXZvaWQgSU9ISURFdmVudFNldEZsb2F0VmFsdWUoSU9I
SURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxkLCBJT0hJREZsb2F0KTsKLQotQ0ZJbmRleCBJT0hJ
REV2ZW50R2V0SW50ZWdlclZhbHVlKElPSElERXZlbnRSZWYsIElPSElERXZlbnRGaWVsZCk7Ci12
b2lkIElPSElERXZlbnRTZXRJbnRlZ2VyVmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZp
ZWxkLCBDRkluZGV4KTsKLQotdm9pZCBJT0hJREV2ZW50QXBwZW5kRXZlbnQoSU9ISURFdmVudFJl
ZiwgSU9ISURFdmVudFJlZiwgSU9PcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFN5c3RlbUNsaWVu
dFJlZiBJT0hJREV2ZW50U3lzdGVtQ2xpZW50Q3JlYXRlKENGQWxsb2NhdG9yUmVmKTsKLQotI2Rl
ZmluZSBrR1NFdmVudFBhdGhJbmZvSW5SYW5nZSAoMSA8PCAwKQotI2RlZmluZSBrR1NFdmVudFBh
dGhJbmZvSW5Ub3VjaCAoMSA8PCAxKQotCi1lbnVtIHsKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRB
ID0gMHgwNCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQxID0gMHgxRSwKLSAgICBrSElEVXNhZ2Vf
S2V5Ym9hcmQyID0gMHgxRiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQzID0gMHgyMCwKLSAgICBr
SElEVXNhZ2VfS2V5Ym9hcmQ0ID0gMHgyMSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ1ID0gMHgy
MiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ2ID0gMHgyMywKLSAgICBrSElEVXNhZ2VfS2V5Ym9h
cmQ3ID0gMHgyNCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ4ID0gMHgyNSwKLSAgICBrSElEVXNh
Z2VfS2V5Ym9hcmQ5ID0gMHgyNiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQwID0gMHgyNywKLSAg
ICBrSElEVXNhZ2VfS2V5Ym9hcmRSZXR1cm5PckVudGVyID0gMHgyOCwKLSAgICBrSElEVXNhZ2Vf
S2V5Ym9hcmRFc2NhcGUgPSAweDI5LAotICAgIGtISURVc2FnZV9LZXlib2FyZERlbGV0ZU9yQmFj
a3NwYWNlID0gMHgyQSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRUYWIgPSAweDJCLAotICAgIGtI
SURVc2FnZV9LZXlib2FyZFNwYWNlYmFyID0gMHgyQywKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRI
eXBoZW4gPSAweDJELAotICAgIGtISURVc2FnZV9LZXlib2FyZEVxdWFsU2lnbiA9IDB4MkUsCi0g
ICAga0hJRFVzYWdlX0tleWJvYXJkT3BlbkJyYWNrZXQgPSAweDJGLAotICAgIGtISURVc2FnZV9L
ZXlib2FyZENsb3NlQnJhY2tldCA9IDB4MzAsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkQmFja3Ns
YXNoID0gMHgzMSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRTZW1pY29sb24gPSAweDMzLAotICAg
IGtISURVc2FnZV9LZXlib2FyZFF1b3RlID0gMHgzNCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRH
cmF2ZUFjY2VudEFuZFRpbGRlID0gMHgzNSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRDb21tYSA9
IDB4MzYsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkUGVyaW9kID0gMHgzNywKLSAgICBrSElEVXNh
Z2VfS2V5Ym9hcmRTbGFzaCA9IDB4MzgsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRjEgPSAweDNB
LAotICAgIGtISURVc2FnZV9LZXlib2FyZEhvbWUgPSAweDRBLAotICAgIGtISURVc2FnZV9LZXli
b2FyZFBhZ2VVcCA9IDB4NEIsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRW5kID0gMHg0RCwKLSAg
ICBrSElEVXNhZ2VfS2V5Ym9hcmRSaWdodEFycm93ID0gMHg0RiwKLSAgICBrSElEVXNhZ2VfS2V5
Ym9hcmRMZWZ0QXJyb3cgPSAweDUwLAotICAgIGtISURVc2FnZV9LZXlib2FyZERvd25BcnJvdyA9
IDB4NTEsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkVXBBcnJvdyA9IDB4NTIsCi0gICAga0hJRFVz
YWdlX0tleWJvYXJkTGVmdENvbnRyb2wgPSAweEUwLAotICAgIGtISURVc2FnZV9LZXlib2FyZExl
ZnRTaGlmdCA9IDB4RTEsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdEFsdCA9IDB4RTIKLX07
Ci0KLVdURl9FWFRFUk5fQ19FTkQKLQotI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
Ci0KLSNlbmRpZiAvLyBQTEFURk9STShJT1MpCi0KLSNlbmRpZiAvLyBJT0tpdFNQSV9oCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMu
bW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0K
aW5kZXggNGY2Y2NlYmE3ZDNmYjQwOTg1YTA2MjE3MjBjYjhhMWMwZWIyNDc1ZC4uNTc2Mjg5ZDQ5
Nzg0N2NmZWYyYTI2ZTJkOWY1MTU1NTYxZjk1MDc1ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQpAQCAtMjYsNyArMjYsMTIg
QEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiVUlTY3JpcHRDb250cm9sbGVyLmgiCiAK
KyNpbXBvcnQgIkV2ZW50U2VyaWFsaXplck1hYy5oIgorI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3
LmgiCisjaW1wb3J0ICJTaGFyZWRFdmVudFN0cmVhbXNNYWMuaCIKKyNpbXBvcnQgIlRlc3RDb250
cm9sbGVyLmgiCiAjaW1wb3J0ICJVSVNjcmlwdENvbnRleHQuaCIKKyNpbXBvcnQgPEphdmFTY3Jp
cHRDb3JlL0pTU3RyaW5nUmVmQ0YuaD4KIAogbmFtZXNwYWNlIFdUUiB7CiAKQEAgLTQxLDQgKzQ2
LDM4IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FzeW5jVGFzayhKU1ZhbHVlUmVmIGNh
bGxiYWNrKQogICAgIH0pOwogfQogCitzdGF0aWMgdm9pZCBwbGF5QmFja0V2ZW50cyhVSVNjcmlw
dENvbnRleHQgKmNvbnRleHQsIE5TU3RyaW5nICpldmVudFN0cmVhbSwgSlNWYWx1ZVJlZiBjYWxs
YmFjaykKK3sKKyAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKKyAgICBOU0FycmF5ICpldmVudERp
Y3RzID0gW05TSlNPTlNlcmlhbGl6YXRpb24gSlNPTk9iamVjdFdpdGhEYXRhOltldmVudFN0cmVh
bSBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10gb3B0aW9uczowIGVycm9y
OiZlcnJvcl07CisKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTlNMb2coQCJFUlJPUjogJUAi
LCBlcnJvcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBjYWxsYmFj
a0lEID0gY29udGV4dC0+cHJlcGFyZUZvckFzeW5jVGFzayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBl
Tm9uUGVyc2lzdGVudCk7CisKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW1Rlc3RDb250cm9sbGVy
OjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSB3aW5kb3ddOworICAg
IFtFdmVudFNlcmlhbGl6ZXIgcGxheUV2ZW50U3RyZWFtOmV2ZW50RGljdHMgaW5XaW5kb3c6d2lu
ZG93IGNvbXBsZXRpb25IYW5kbGVyOl4geworICAgICAgICBjb250ZXh0LT5hc3luY1Rhc2tDb21w
bGV0ZShjYWxsYmFja0lEKTsKKyAgICB9XTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6
OmJlZ2luQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgcGxheUJhY2tFdmVu
dHMobV9jb250ZXh0LCBiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKCksIGNhbGxiYWNrKTsKK30K
Kwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNvbXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYg
Y2FsbGJhY2spCit7CisgICAgcGxheUJhY2tFdmVudHMobV9jb250ZXh0LCBjb21wbGV0ZVN3aXBl
QmFja0V2ZW50U3RyZWFtKCksIGNhbGxiYWNrKTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xs
ZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1JlZiBldmVudFN0cmVhbSwg
SlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IG5zU3RyaW5n
ID0gYWRvcHROUygoTlNTdHJpbmcgKilKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBldmVudFN0cmVhbSkpOworICAgIHBsYXlCYWNrRXZlbnRzKG1fY29udGV4dCwgbnNT
dHJpbmcuZ2V0KCksIGNhbGxiYWNrKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc2MjFiNmNkNDA1MmJkMTlj
MWNhYzk2MThlNzQ5NjdjYTNkZmQ2MzguLjdkNDM3YmM4YmY5NjMyN2U2ZTM3ZjNiY2NiMDg1NTFj
MjJjM2MyMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxNi0wOS0wNiAgVGltIEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBTd2lwZSBnZXN0dXJlIHRlc3Rz
IGRvbid0IHdvcmsgb24gbWFjT1MgU2llcnJhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE2NzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIzMzc5
OTMwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHN3aXBlL2Jhc2lj
LWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzd2lwZS9iYXNpYy1j
YWNoZWQtYmFjay1zd2lwZS5odG1sOgorICAgICAgICAqIHN3aXBlL21haW4tZnJhbWUtcGlubmlu
Zy1yZXF1aXJlbWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3dpcGUvbWFpbi1mcmFtZS1w
aW5uaW5nLXJlcXVpcmVtZW50Lmh0bWw6CisgICAgICAgICogc3dpcGUvcHVzaFN0YXRlLWNhY2hl
ZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzd2lwZS9wdXNoU3RhdGUtY2Fj
aGVkLWJhY2stc3dpcGUuaHRtbDoKKyAgICAgICAgKiBzd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1h
dGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3dp
cGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbDoK
KyAgICAgICAgKiBzd2lwZS9yZXNvdXJjZXMvc3dpcGUtdGVzdC5qczoKKyAgICAgICAgKG1lYXN1
cmVkRHVyYXRpb25TaG91bGRCZUxlc3NUaGFuKToKKyAgICAgICAgKHN0YXJ0U3dpcGVHZXN0dXJl
KToKKyAgICAgICAgKGNvbXBsZXRlU3dpcGVHZXN0dXJlKToKKyAgICAgICAgKHBsYXlFdmVudFN0
cmVhbSk6CisgICAgICAgIChldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCk6IERlbGV0ZWQu
CisgICAgICAgIChldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KTogRGVsZXRlZC4KKyAgICAg
ICAgKGV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChldmVu
dFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2gpOiBEZWxldGVkLgorICAgICAgICAoZXZlbnRR
dWV1ZS5fcHJvY2Vzc0V2ZW50UXVldWUpOiBEZWxldGVkLgorICAgICAgICAoZXZlbnRRdWV1ZS5f
cHJvY2Vzc0V2ZW50UXVldWVTb29uKTogRGVsZXRlZC4KKyAgICAgICAgKiBzd2lwZS9zd2lwZS1z
dGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBzd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLmh0bWw6IFJlbW92ZWQuCisK
IDIwMTYtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMjA0ODM5KTogW21hYy13azFdIExheW91dFRlc3Qgd2ViZ2wvbWF4LWFjdGl2
ZS1jb250ZXh0cy13ZWJnbGNvbnRleHRsb3N0LXByZXZlbnQtZGVmYXVsdC5odG1sIGlzIGEgZmxh
a3kgdGltZW91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IGJkZmIxNjQ4YWQzN2VlZTc0ZGQ2OGRiZjlkMDYzZjAzZTU2ZTNlNjEuLjgyYTk1
ZGRjNjk5M2YyNmNhODdiOGI4NTk2MGU3Y2Q2NDk3NjJlNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTUxNCwxMiArNTE0LDYgQEAgd2Vi
a2l0Lm9yZy9iLzE1ODYzOSBbIFJlbGVhc2UgWW9zZW1pdGUgXSBpbXBvcnRlZC9ibGluay9zdG9y
YWdlL2luZGV4ZWRkYi9ibG9iLWQKICMgPHJkYXI6Ly9wcm9ibGVtLzI1MDYzMTI4PgogWyBTaWVy
cmErIF0gbWVkaWEvbWVkaWEtY29udHJvbHMtZHJhZy10aW1lbGluZS1zZXQtY29udHJvbHMtcHJv
cGVydHkuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKLSMgPHJkYXI6Ly9wcm9ibGVtLzIzMzc5OTMw
PiBzd2lwZSB0ZXN0cyBjcmFzaGluZwotWyBTaWVycmErIF0gc3dpcGUvYmFzaWMtY2FjaGVkLWJh
Y2stc3dpcGUuaHRtbCBbIFNraXAgXQotWyBTaWVycmErIF0gc3dpcGUvbWFpbi1mcmFtZS1waW5u
aW5nLXJlcXVpcmVtZW50Lmh0bWwgWyBTa2lwIF0KLVsgU2llcnJhKyBdIHN3aXBlL3B1c2hTdGF0
ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sIFsgU2tpcCBdCi1bIFNpZXJyYSsgXSBzd2lwZS9zd2lw
ZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLmh0bWwgWyBTa2lwIF0KLQogIyBIaXR0aW5nICJU
aGUgY2VydGlmaWNhdGUgZm9yIHRoaXMgc2VydmVyIGlzIGludmFsaWQiIGxvYWRpbmcgZXJyb3Ig
KG5vdCBoYXBwZW5pbmcgaW4gV0sxKQogd2Via2l0Lm9yZy9iLzE2MDQ0NSBbIFNpZXJyYSsgXSBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91cGdyYWRlLWluc2VjdXJl
LXJlcXVlc3RzL3VwZ3JhZGUtaW5zZWN1cmUtZmV0Y2gtaW4td29ya2VyLmh0bWwgWyBGYWlsdXJl
IF0KIHdlYmtpdC5vcmcvYi8xNjA0NDUgWyBTaWVycmErIF0gaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy91cGdyYWRlLWlu
c2VjdXJlLWZldGNoLWluLW1haW4tZnJhbWUuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGUzZDNlMDBhYjlkMGJmZmZlNjY5ZDZhZDg5YTAxN2FmNTdmNzBiODkuLjg5ZGVjZmQ0YzM3
MTI1Y2ZiNTU5ODExOTY4OWMzZjBjNGExZDg4NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3
aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEs
NiBAQAotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBl
dmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAs
IHBoYXNlICdjaGFuZ2VkJykKK3N0YXJ0U3dpcGVHZXN0dXJlCiBkaWRCZWdpblN3aXBlCi1zd2lw
ZSBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEg
MjU2IDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdl
bmRlZCcpCitjb21wbGV0ZVN3aXBlR2VzdHVyZQogd2lsbEVuZFN3aXBlCiBkaWRFbmRTd2lwZQog
ZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvYmFz
aWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hl
ZC1iYWNrLXN3aXBlLmh0bWwKaW5kZXggY2Y3Zjc1Y2IxMzliNTRiNTE1MTc4YTA3M2I5OGFkMDY3
M2RkYTY4My4uODcxYTJiYzY0NmI4ZDRhZTg2OTQ2MzdlODAwM2EzYjRiMzI0NWE2YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sCkBAIC02LDI4
ICs2LDEwIEBAIGh0bWwgewogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3dpcGUt
dGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gc3RhcnRTd2lwZUdlc3R1cmUo
KQotewotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKLQotICAgIGV2ZW50
UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1
ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1
ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLX0KLQotZnVuY3Rpb24gY29tcGxldGVT
d2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMSwgMCwg
J2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDI1NiwgMCwgJ2No
YW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdlbmRlZCcp
OwotfQotCiBmdW5jdGlvbiBkaWRCZWdpblN3aXBlQ2FsbGJhY2soKQogewogICAgIGxvZygiZGlk
QmVnaW5Td2lwZSIpOwogCi0gICAgc2hvdWxkQmUoZmFsc2UsIGV2ZW50UXVldWUuaGFzUGVuZGlu
Z0V2ZW50cygpLCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5LiBCb3RoIHNjcm9sbCBldmVu
dHMgc2hvdWxkIGJlIHJlcXVpcmVkIHRvIHN0YXJ0IHRoZSBzd2lwZSBiZWNhdXNlIG9mIHRoZSBz
d2lwZS1zdGFydCBoeXN0ZXJlc2lzLiIpOwotCiAgICAgY29tcGxldGVTd2lwZUdlc3R1cmUoKTsK
IH0KIApAQCAtNDIsNyArMjQsNiBAQCBmdW5jdGlvbiBkaWRFbmRTd2lwZUNhbGxiYWNrKCkKIHsK
ICAgICBsb2coImRpZEVuZFN3aXBlIik7CiAKLSAgICBzaG91bGRCZSgwLCBldmVudFF1ZXVlLmhh
c1BlbmRpbmdFdmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBiZSBlbXB0eS4gVGhlIHN3aXBl
IGlzbid0IGNvbXBsZXRlIHVudGlsIHdlIHNlZSB0aGUgZW5kIG9mIHRoZSBnZXN0dXJlLiIpOwog
ICAgIHN0YXJ0TWVhc3VyaW5nRHVyYXRpb24oInNuYXBzaG90UmVtb3ZhbCIpOwogfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVp
cmVtZW50LWV4cGVjdGVkLnR4dAppbmRleCA2MzU5NzQwNTQ4NDc2YzhkMDlmYjRiYjM3Yzc1MjQ0
YjkwYjM5MGQ2Li5jZTc2NjgxOTcyMjA5NTM1ZTI0Y2UwNzM3MGUzMDZhMDk4MjUwY2ZlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1y
ZXF1aXJlbWVudC1leHBlY3RlZC50eHQKQEAgLTEsMjMgKzEsOCBAQAotc3dpcGUgZXZlbnQgKGRl
bHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhh
c2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQot
c2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQg
KGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwg
cGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdl
ZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBl
dmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAx
MCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdj
aGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Ny
b2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEg
MCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdi
ZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKK3N0YXJ0
U3dpcGVHZXN0dXJlCitjb21wbGV0ZVN3aXBlR2VzdHVyZQorc3RhcnRTd2lwZUdlc3R1cmUKIGRp
ZEJlZ2luU3dpcGUKLXN3aXBlIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3
aXBlIGV2ZW50IChkZWx0YSAyNTYgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRl
bHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKK2NvbXBsZXRlU3dpcGVHZXN0dXJlCiB3aWxsRW5kU3dp
cGUKIGRpZEVuZFN3aXBlCiBkaWRSZW1vdmVTd2lwZVNuYXBzaG90CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbCBiL0xheW91
dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sCmluZGV4IDYy
MTU1NDQ4NGYwNGZmMzk3NWJmMmY0MThlMThmZWM4M2M2MmYzNWIuLmEzNjliODIxYjlkOWMyZTAz
NzhkZjYyNzJlZDAxOWY1MmFlMmVhYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL21h
aW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N3aXBl
L21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sCkBAIC02LDQ4ICs2LDI0IEBAIGh0
bWwgewogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gc3RhcnRTd2lwZUdlc3R1cmUoKQotewotICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKIAorZnVuY3Rpb24gcnVuVGVzdCgpCit7
CiAgICAgLy8gVGhlIGZpcnN0IHN3aXBlIHNob3VsZCBmYWlsIGJlY2F1c2Ugd2UncmUgc2Nyb2xs
ZWQgdG8gdGhlIG1pZGRsZSBvZiB0aGUgZG9jdW1lbnQKICAgICAvLyBhbmQgdGhpcyBpcyBhbGwg
YSBzaW5nbGUgZ2VzdHVyZS4gV2UgY2FuIG9ubHkgc3RhcnQgc3dpcGVzIGlmIHdlICpiZWdpbioK
ICAgICAvLyBwaW5uZWQgdG8gdGhlIGVkZ2UuCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVF
dmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVu
dCgxMCwgMCwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAs
IDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAs
ICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdj
aGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFu
Z2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2Vk
Jyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7
Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0g
ICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAg
ZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRR
dWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1ZXVl
LmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goZnVuY3Rpb24gKCkgewotICAgICAgICB0ZXN0UnVubmVy
LmNsZWFyVGVzdFJ1bm5lckNhbGxiYWNrcygpOwotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxE
aWRCZWdpblN3aXBlQ2FsbGJhY2soZGlkQmVnaW5Td2lwZUNhbGxiYWNrKTsKLSAgICAgICAgdGVz
dFJ1bm5lci5pbnN0YWxsV2lsbEVuZFN3aXBlQ2FsbGJhY2sod2lsbEVuZFN3aXBlQ2FsbGJhY2sp
OwotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRFbmRTd2lwZUNhbGxiYWNrKGRpZEVuZFN3
aXBlQ2FsbGJhY2spOwotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRSZW1vdmVTd2lwZVNu
YXBzaG90Q2FsbGJhY2soZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKTsKKyAgICBzdGFy
dFN3aXBlR2VzdHVyZShmdW5jdGlvbiAoKSB7CisgICAgICAgIGNvbXBsZXRlU3dpcGVHZXN0dXJl
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYXJUZXN0UnVubmVyQ2Fs
bGJhY2tzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRCZWdpblN3aXBlQ2Fs
bGJhY2soZGlkQmVnaW5Td2lwZUNhbGxiYWNrKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5z
dGFsbFdpbGxFbmRTd2lwZUNhbGxiYWNrKHdpbGxFbmRTd2lwZUNhbGxiYWNrKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZEVuZFN3aXBlQ2FsbGJhY2soZGlkRW5kU3dpcGVDYWxs
YmFjayk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRSZW1vdmVTd2lwZVNuYXBz
aG90Q2FsbGJhY2soZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKTsgICAgCiAKLSAgICAg
ICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAvLyBUaGUgc2Vjb25kIHN3
aXBlIHNob3VsZCBzdWNjZWVkIGJlY2F1c2Ugd2UgYXJlIG5vdyBzY3JvbGxlZCB0byB0aGUgbGVm
dCBlZGdlLgotICAgICAgICAgICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAn
bWF5YmVnaW4nKTsKLSAgICAgICAgICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEs
IDAsICdiZWdhbicpOwotICAgICAgICAgICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQo
MTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgICAgIH0sIDApOwotICAgIH0pCi19Ci0KLWZ1bmN0aW9u
IGNvbXBsZXRlU3dpcGVHZXN0dXJlKCkKLXsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2
ZW50KDEsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgy
NTYsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAw
LCAnZW5kZWQnKTsKKyAgICAgICAgICAgIHN0YXJ0U3dpcGVHZXN0dXJlKGZ1bmN0aW9uICgpIHsg
Y29tcGxldGVTd2lwZUdlc3R1cmUoKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOwogfQogCiBm
dW5jdGlvbiBkaWRCZWdpblN3aXBlTm90UmVhY2hlZENhbGxiYWNrKCkKQEAgLTU4LDEwICszNCw2
IEBAIGZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVOb3RSZWFjaGVkQ2FsbGJhY2soKQogZnVuY3Rpb24g
ZGlkQmVnaW5Td2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRpZEJlZ2luU3dpcGUiKTsKLQot
ICAgIHNob3VsZEJlKGZhbHNlLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKSwgIkV2ZW50
IHF1ZXVlIHNob3VsZCBiZSBlbXB0eS4gQm90aCBzY3JvbGwgZXZlbnRzIHNob3VsZCBiZSByZXF1
aXJlZCB0byBzdGFydCB0aGUgc3dpcGUgYmVjYXVzZSBvZiB0aGUgc3dpcGUtc3RhcnQgaHlzdGVy
ZXNpcy4iKTsKLQotICAgIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCk7CiB9CiAKIGZ1bmN0aW9uIHdp
bGxFbmRTd2lwZUNhbGxiYWNrKCkKQEAgLTc1LDcgKzQ3LDYgQEAgZnVuY3Rpb24gZGlkRW5kU3dp
cGVDYWxsYmFjaygpCiB7CiAgICAgbG9nKCJkaWRFbmRTd2lwZSIpOwogCi0gICAgc2hvdWxkQmUo
MCwgZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJFdmVudCBxdWV1ZSBzaG91bGQgYmUg
ZW1wdHkuIFRoZSBzd2lwZSBpc24ndCBjb21wbGV0ZSB1bnRpbCB3ZSBzZWUgdGhlIGVuZCBvZiB0
aGUgZ2VzdHVyZS4iKTsKICAgICBzdGFydE1lYXN1cmluZ0R1cmF0aW9uKCJzbmFwc2hvdFJlbW92
YWwiKTsKIH0KIApAQCAtMTIxLDggKzkyLDkgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgp
IHsKICAgICB9CiAKICAgICAvLyBTZWNvbmQgcGFnZSBsb2FkZWQuCi0gICAgd2luZG93LnNjcm9s
bFRvKDEwMDAsIDApOwotICAgIHN0YXJ0U3dpcGVHZXN0dXJlKCk7CisgICAgd2luZG93LnNjcm9s
bFRvKDEwMCwgMCk7CisKKyAgICBydW5UZXN0KCk7CiB9OwogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3
aXBlLWV4cGVjdGVkLnR4dAppbmRleCBlM2QzZTAwYWI5ZDBiZmZmZTY2OWQ2YWQ4OWEwMTdhZjU3
ZjcwYjg5Li44OWRlY2ZkNGMzNzEyNWNmYjU1OTgxMTk2ODljM2YwYzRhMWQ4ODRlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lw
ZS1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsNiBAQAotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwg
cGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnYmVnYW4n
KQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFuZ2VkJykKK3N0YXJ0U3dpcGVH
ZXN0dXJlCiBkaWRCZWdpblN3aXBlCi1zd2lwZSBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnY2hh
bmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMjU2IDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBl
IGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCitjb21wbGV0ZVN3aXBlR2VzdHVyZQog
d2lsbEVuZFN3aXBlCiBkaWRFbmRTd2lwZQogZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAppbmRl
eCA1NmRhZGE0ODkwNDI4YzQ5ZGQyZDcxZjc2ODYwOTA0ZTAxZjg0MzFmLi45YThkYzlkN2Q5YTEw
ODg3NTkyNWVlNGQyODk5N2U1Mzg2MmUzODcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lw
ZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lw
ZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbApAQCAtNiwyOCArNiwxMSBAQCBodG1s
IHsKIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRlc3QuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHN0YXJ0U3dpcGVHZXN0dXJlKCkKLXsKLSAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7Ci0KLSAgICBldmVudFF1ZXVlLmVucXVldWVT
d2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9s
bEV2ZW50KDEsIDAsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50
KDEsIDAsICdjaGFuZ2VkJyk7Ci19Ci0KLWZ1bmN0aW9uIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCkK
LXsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDEsIDAsICdjaGFuZ2VkJyk7Ci0g
ICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgyNTYsIDAsICdjaGFuZ2VkJyk7Ci0gICAg
ZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnZW5kZWQnKTsKLX0KIAogZnVuY3Rp
b24gZGlkQmVnaW5Td2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRpZEJlZ2luU3dpcGUiKTsK
IAotICAgIHNob3VsZEJlKGZhbHNlLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKSwgIkV2
ZW50IHF1ZXVlIHNob3VsZCBiZSBlbXB0eS4gQm90aCBzY3JvbGwgZXZlbnRzIHNob3VsZCBiZSBy
ZXF1aXJlZCB0byBzdGFydCB0aGUgc3dpcGUgYmVjYXVzZSBvZiB0aGUgc3dpcGUtc3RhcnQgaHlz
dGVyZXNpcy4iKTsKLQogICAgIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCk7CiB9CiAKQEAgLTQyLDcg
KzI1LDYgQEAgZnVuY3Rpb24gZGlkRW5kU3dpcGVDYWxsYmFjaygpCiB7CiAgICAgbG9nKCJkaWRF
bmRTd2lwZSIpOwogCi0gICAgc2hvdWxkQmUoMCwgZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRz
KCksICJFdmVudCBxdWV1ZSBzaG91bGQgYmUgZW1wdHkuIFRoZSBzd2lwZSBpc24ndCBjb21wbGV0
ZSB1bnRpbCB3ZSBzZWUgdGhlIGVuZCBvZiB0aGUgZ2VzdHVyZS4iKTsKICAgICBzdGFydE1lYXN1
cmluZ0R1cmF0aW9uKCJzbmFwc2hvdFJlbW92YWwiKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jh
c2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRp
Yy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2gtZXhwZWN0ZWQudHh0CmluZGV4IGRjMzRlOTJkNTg4
NGViOGQxZDMxNTE1YjVhODg2Mjc1NmViMjkzNDIuLjAwNTA3NTVmNTczN2Q0Y2Q3YTNjMjRjNTc2
MjRiN2E3ZGYxYzI2M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1w
cm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGlu
Zy1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw0IEBACi1zd2lwZSBldmVudCAoZGVsdGEg
MCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdi
ZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUg
ZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDI1
NiAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5k
ZWQnKQorcGxheUV2ZW50U3RyZWFtCitwbGF5RXZlbnRTdHJlYW0KK2NvbXBsZXRlU3dpcGVHZXN0
dXJlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0
aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNo
U3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1sCmluZGV4IDM2
ZWYzOWZiNDNlNDMwZGI5MTQ2MDM4NDZmZDJiZjdlMzI5MDYzMDEuLjNmODdhMDM5ZWU3YTkzY2I2
NGEyZjBlNjVkNTBjYmEwOTcwNDZjYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3B1
c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBp
bmctY3Jhc2guaHRtbApAQCAtNiwzNyArNiw2NyBAQCBodG1sIHsKIDwvc3R5bGU+CiA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0
aW9uIHN0YXJ0U3dpcGVHZXN0dXJlKCkKK2Z1bmN0aW9uIHJ1blRlc3QoKQogewotICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKLQotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3
aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xs
RXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAgCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVu
dERpc3BhdGNoKGdvQmFjayk7CisgICAgcGxheUV2ZW50U3RyZWFtKGBbeworICAgICAgICAicmVs
YXRpdmVUaW1lTVMiIDogMCwKKyAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRz
IiA6IDEsCisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICJr
Q0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIg
OiAxMjgsCisgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIKKyAgICAgIH0s
CisgICAgICB7CisgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAia0NHRXZl
bnRHZXN0dXJlSElEVHlwZSIgOiA2MSwKKyAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAy
OSwKKyAgICAgICAgImtDR0V2ZW50R2VzdHVyZVN0YXJ0RW5kU2VyaWVzVHlwZSIgOiA2LAorICAg
ICAgICAid2luZG93TG9jYXRpb24iIDogInswLCAwfSIKKyAgICAgIH0sCisgICAgICB7CisgICAg
ICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICJyZWxhdGl2ZVRpbWVN
UyIgOiA4LAorICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAg
ICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMSwKKyAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2Vz
dHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDIKKyAgICAgIH0sCisgICAgICB7Cisg
ICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAid2luZG93TG9jYXRpb24iIDog
Ins0MDAsIDMwMH0iLAorICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6
IDEsCisgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAg
ICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDEsCisgICAgICAgICJr
Q0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgIH1dYCwgZ29CYWNrKTsKIH0KIAogZnVuY3Rp
b24gZ29CYWNrKCkKIHsKICAgICB3aW5kb3cuaGlzdG9yeS5iYWNrKCk7CiAKLSAgICBldmVudFF1
ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goY29udGludWVTd2lwZUdlc3R1cmUpOworICAgIHNl
dFRpbWVvdXQoY29udGludWVUZXN0LCAwKTsKIH0KIAotZnVuY3Rpb24gY29udGludWVTd2lwZUdl
c3R1cmUoKQorZnVuY3Rpb24gY29udGludWVUZXN0KCkKIHsKLSAgICBldmVudFF1ZXVlLmVucXVl
dWVTY3JvbGxFdmVudCgxLCAwLCAnY2hhbmdlZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0
ZXJFdmVudERpc3BhdGNoKGNvbXBsZXRlU3dpcGVHZXN0dXJlKTsKKyAgICBwbGF5RXZlbnRTdHJl
YW0oYFsKKyAgICAgIHsKKyAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDAsCisgICAgICAgICJ3
aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2
ZW50U2Nyb2xsUGhhc2UiIDogMSwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRp
bnVvdXMiIDogMSwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIi
IDogMjAsCisgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgIH1dYCwgZnVu
Y3Rpb24gKCkgeworICAgICAgICBjb21wbGV0ZVRlc3QoKTsKKyAgICAgIH0pOwogfQogCi1mdW5j
dGlvbiBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpCitmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKQogewot
ICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLSAgICBl
dmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDI1NiwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVu
dFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdlbmRlZCcpOwotCi0gICAgZXZlbnRRdWV1
ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKHRlc3RDb21wbGV0ZSk7CisgICAgY29tcGxldGVTd2lw
ZUdlc3R1cmUodGVzdENvbXBsZXRlKTsKIH0KIAogZnVuY3Rpb24gZGlkQmVnaW5Td2lwZUNhbGxi
YWNrKCkKQEAgLTc5LDcgKzEwOSw3IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIHVwZGF0ZUNvbnRlbnQoKTsKIAogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgICAgIHN0YXJ0U3dpcGVHZXN0dXJlKCk7CisgICAgICAgICAgICBydW5UZXN0
KCk7CiAgICAgICAgIH0sIDApOwogICAgIH0sIDApOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N3aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvc3dpcGUvcmVz
b3VyY2VzL3N3aXBlLXRlc3QuanMKaW5kZXggZGQ4ZTkwMDlmZmU4NDk1OTAwOTlmZDE4MzIzYmNl
MzczYjc0MDY4MC4uMGMyMzY1ZDEzMTNhMTgwNjc3YjkxYWYyYjQ0OTMzYWU0MDgzOGNjZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMKKysrIGIv
TGF5b3V0VGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMKQEAgLTEsNTAgKzEsMyBA
QAotdmFyIGV2ZW50UXVldWUgPSB7Ci0gICAgZW5xdWV1ZVNjcm9sbEV2ZW50OiBmdW5jdGlvbiAo
eCwgeSwgcGhhc2UpIHsKLSAgICAgICAgdGhpcy5fcXVldWUucHVzaChmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICBsb2coInNjcm9sbCBldmVudCAoZGVsdGEgIiArIHggKyAiICIgKyB5ICsgIiwg
cGhhc2UgJyIgKyBwaGFzZSArICInKSIpOwotICAgICAgICAgICAgd2luZG93LmV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyh4LCB5LCBwaGFzZSwgJ25v
bmUnKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHRoaXMuX3Byb2Nlc3NFdmVudFF1ZXVlU29vbigp
OwotICAgIH0sCi0KLSAgICBlbnF1ZXVlU3dpcGVFdmVudDogZnVuY3Rpb24gKHgsIHksIHBoYXNl
KSB7Ci0gICAgICAgIHRoaXMuX3F1ZXVlLnB1c2goZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
bG9nKCJzd2lwZSBldmVudCAoZGVsdGEgIiArIHggKyAiICIgKyB5ICsgIiwgcGhhc2UgJyIgKyBw
aGFzZSArICInKSIpOwotICAgICAgICAgICAgd2luZG93LmV2ZW50U2VuZGVyLnN3aXBlR2VzdHVy
ZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKHgsIHksIHBoYXNlLCAnbm9uZScpOwotICAgICAg
ICB9KTsKLSAgICAgICAgdGhpcy5fcHJvY2Vzc0V2ZW50UXVldWVTb29uKCk7Ci0gICAgfSwKLQot
ICAgIGhhc1BlbmRpbmdFdmVudHM6IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
X3F1ZXVlLmxlbmd0aCAhPSAwOwotICAgIH0sCi0KLSAgICBjYWxsQWZ0ZXJFdmVudERpc3BhdGNo
OiBmdW5jdGlvbiAoY2FsbGJhY2spIHsKLSAgICAgICAgdmFyIGludGVydmFsID0gc2V0SW50ZXJ2
YWwoZnVuY3Rpb24gKCkgeyAKLSAgICAgICAgICAgIGlmICghZXZlbnRRdWV1ZS5oYXNQZW5kaW5n
RXZlbnRzKCkpIHsKLSAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTsKLSAg
ICAgICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICAgICAgfQotICAgICAgICB9LCAwKTsK
LSAgICB9LAotCi0gICAgX3F1ZXVlOiBbXSwKLQotICAgIF9wcm9jZXNzRXZlbnRRdWV1ZTogZnVu
Y3Rpb24gKCkgewotICAgICAgICBpZiAoIXRoaXMuX3F1ZXVlLmxlbmd0aCkKLSAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICB2YXIgaXRlbSA9IHRoaXMuX3F1ZXVlLnNoaWZ0KCk7Ci0gICAg
ICAgIGl0ZW0oKTsKLSAgICAgICAgdGhpcy5fcHJvY2Vzc0V2ZW50UXVldWVTb29uKCk7Ci0gICAg
fSwKLQotICAgIF9wcm9jZXNzRXZlbnRRdWV1ZVNvb246IGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
Y2xlYXJUaW1lb3V0KHRoaXMuX3Byb2Nlc3NpbmdUaW1lb3V0KTsKLSAgICAgICAgdGhpcy5fcHJv
Y2Vzc2luZ1RpbWVvdXQgPSBzZXRUaW1lb3V0KHRoaXMuX3Byb2Nlc3NFdmVudFF1ZXVlLmJpbmQo
dGhpcyksIDApOwotICAgIH0KLX0KLQogZnVuY3Rpb24gc2hvdWxkQmUoZXhwZWN0ZWQsIGFjdHVh
bCwgbWVzc2FnZSkKIHsKICAgICBpZiAoZXhwZWN0ZWQgIT0gYWN0dWFsKQpAQCAtODQsNCArMzcs
MzcgQEAgZnVuY3Rpb24gbWVhc3VyZWREdXJhdGlvblNob3VsZEJlTGVzc1RoYW4oa2V5LCB0aW1l
SW5NUywgbWVzc2FnZSkKICAgICB2YXIgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gd2luZG93Lmxv
Y2FsU3RvcmFnZVtrZXkgKyAic3dpcGVTdGFydFRpbWUiXTsKICAgICBpZiAoZHVyYXRpb24gPj0g
dGltZUluTVMpCiAgICAgICAgIGxvZygiRmFpbHVyZS4gIiArIG1lc3NhZ2UgKyAiIChleHBlY3Rl
ZDogIiArIHRpbWVJbk1TICsgIiwgYWN0dWFsOiAiICsgZHVyYXRpb24gKyAiKSIpOwotfQpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KKworZnVuY3Rpb24gc3RhcnRTd2lwZUdlc3R1cmUo
Y2FsbGJhY2spCit7CisgICAgbG9nKCJzdGFydFN3aXBlR2VzdHVyZSIpOworICAgIHRlc3RSdW5u
ZXIucnVuVUlTY3JpcHQoYAorICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgdWlDb250cm9sbGVy
LmJlZ2luQmFja1N3aXBlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdWlDb250cm9sbGVyLnVp
U2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgfSk7CisgICAgfSkoKTtgLCBjYWxsYmFjayB8fCBm
dW5jdGlvbiAoKSB7fSk7Cit9CisKK2Z1bmN0aW9uIGNvbXBsZXRlU3dpcGVHZXN0dXJlKGNhbGxi
YWNrKQoreworICAgIGxvZygiY29tcGxldGVTd2lwZUdlc3R1cmUiKTsKKyAgICB0ZXN0UnVubmVy
LnJ1blVJU2NyaXB0KGAKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHVpQ29udHJvbGxlci5j
b21wbGV0ZUJhY2tTd2lwZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHVpQ29udHJvbGxlci51
aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgIH0pOworICAgIH0pKCk7YCwgY2FsbGJhY2sgfHwg
ZnVuY3Rpb24gKCkge30pOworfQorCitmdW5jdGlvbiBwbGF5RXZlbnRTdHJlYW0oc3RyZWFtLCBj
YWxsYmFjaykKK3sKKyAgICBsb2coInBsYXlFdmVudFN0cmVhbSIpOworICAgIHRlc3RSdW5uZXIu
cnVuVUlTY3JpcHQoYAorICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgdWlDb250cm9sbGVyLnBs
YXlCYWNrRXZlbnRTdHJlYW0oXGAke3N0cmVhbX1cYCwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICB9KTsKKyAgICB9KSgp
O2AsIGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVyZXNpcy1mYWlsdXJlcy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhNDgwYTk4MDRjZTIxOTE0Yzhm
OTgyZjViYzAxMTllN2RlYmU1NzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVyZXNpcy1mYWls
dXJlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1zd2lwZSBl
dmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAx
IDAsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2NoYW5n
ZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1zd2lwZSBldmVu
dCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAyIDIs
IHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2NoYW5nZWQn
KQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1zd2lwZSBldmVudCAo
ZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDIsIHBo
YXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2NoYW5nZWQnKQot
c2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1zd2lwZSBldmVudCAoZGVs
dGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNl
ICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMiwgcGhhc2UgJ2NoYW5nZWQnKQotc2Ny
b2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEg
MCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAzIDEsIHBoYXNlICdi
ZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xs
IGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAw
LCBwaGFzZSAnZW5kZWQnKQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9zd2lwZS1z
dGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9zd2lwZS1z
dGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGU3NWU2N2I5NzQxMjM5MmNkYjE0NDdlYTU3YzJiMDU1NTIzYzVmMDkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvc3dp
cGUtc3RhcnQtaHlzdGVyZXNpcy1mYWlsdXJlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTE5
ICswLDAgQEAKLTxoZWFkPgotPHN0eWxlPgotaHRtbCB7Ci0gICAgZm9udC1zaXplOiAzMnB0Owot
fQotPC9zdHlsZT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gZG9TaG9ydFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAxMDApOwotCi0gICAgLy8gVG90YWwgZGVsdGEgb2Yg
MTAsIDA7IHNob3VsZCBub3QgYmUgZW5vdWdoIHRvIHN0YXJ0IGEgc3dpcGUuCi0gICAgZXZlbnRR
dWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVl
LmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVl
dWVTY3JvbGxFdmVudCgwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNj
cm9sbEV2ZW50KDAsIDAsICdlbmRlZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVu
dERpc3BhdGNoKGRvRGlhZ29uYWxTd2lwZUdlc3R1cmUpOwotfQotCi1mdW5jdGlvbiBkb0RpYWdv
bmFsU3dpcGVHZXN0dXJlKCkKLXsKLSAgICAvLyBUb3RhbCBkZWx0YSBvZiAyMCwgMjA7IHRoaXMg
aXMgb3JkaW5hcmlseSBzdWZmaWNpZW50IG1hZ25pdHVkZSB0byBzdGFydCBhIHN3aXBlLAotICAg
IC8vIGJ1dCBpcyB0b28gZGlhZ29uYWwgdG8gc3RhcnQgYSBzd2lwZS4KLSAgICBldmVudFF1ZXVl
LmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5x
dWV1ZVNjcm9sbEV2ZW50KDIsIDIsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNj
cm9sbEV2ZW50KDAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xs
RXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlz
cGF0Y2goZG9WZXJ0aWNhbFN3aXBlR2VzdHVyZSk7Ci19Ci0KLWZ1bmN0aW9uIGRvVmVydGljYWxT
d2lwZUdlc3R1cmUoKQotewotICAgIC8vIFRvdGFsIGRlbHRhIG9mIDAsIDIwOyB0aGlzIGlzIG9y
ZGluYXJpbHkgc3VmZmljaWVudCBtYWduaXR1ZGUgdG8gc3RhcnQgYSBzd2lwZSwKLSAgICAvLyBi
dXQgaXMgY29tcGxldGVseSB2ZXJ0aWNhbCwgc28gd2Ugd29uJ3Qgc3RhcnQgYSBzd2lwZS4KLSAg
ICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2
ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDIsICdiZWdhbicpOwotICAgIGV2ZW50UXVl
dWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5l
bnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxB
ZnRlckV2ZW50RGlzcGF0Y2goZG9Ib3Jpem9udGFsVGhlblZlcnRpY2FsU3dpcGVHZXN0dXJlKTsK
LX0KLQotZnVuY3Rpb24gZG9Ib3Jpem9udGFsVGhlblZlcnRpY2FsU3dpcGVHZXN0dXJlKCkKLXsK
LSAgICAvLyBUb3RhbCBkZWx0YSBvZiAxMCwgMjA7IHRoaXMgaXMgb3JkaW5hcmlseSBzdWZmaWNp
ZW50IG1hZ25pdHVkZSB0byBzdGFydCBhIHN3aXBlLAotICAgIC8vIGJ1dCBpcyB0b28gdmVydGlj
YWwsIHNvIHdlIHdvbid0IHN0YXJ0IGEgc3dpcGUuCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dp
cGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxF
dmVudCgxLCAwLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgw
LCAyLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAs
ICdlbmRlZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKGRvUmVn
dWxhclN3aXBlR2VzdHVyZSk7Ci19Ci0KLWZ1bmN0aW9uIGRvUmVndWxhclN3aXBlR2VzdHVyZSgp
Ci17Ci0gICAgLy8gU3dhcCBpbiBhIGRpZmZlcmVudCBjYWxsYmFjayB0aGF0IG1ha2VzIHN1cmUg
d2UgKmRvKiByZWFjaCBkaWRCZWdpblN3aXBlLgotICAgIHRlc3RSdW5uZXIuY2xlYXJUZXN0UnVu
bmVyQ2FsbGJhY2tzKCk7Ci0gICAgdmFyIHNhd0RpZEJlZ2luU3dpcGUgPSBmYWxzZTsKLSAgICB0
ZXN0UnVubmVyLmluc3RhbGxEaWRCZWdpblN3aXBlQ2FsbGJhY2soZnVuY3Rpb24gKCkgewotICAg
ICAgICBzYXdEaWRCZWdpblN3aXBlID0gdHJ1ZTsKLSAgICAgICAgLy8gTmVlZCBhIHN3aXBlLWVu
ZCBldmVudCB0byBjbGVhbiB1cC4KLSAgICAgICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVu
dCgwLCAwLCAnZW5kZWQnKTsKLSAgICB9KTsKLQotICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZFJl
bW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayhmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHNob3VsZEJl
KHRydWUsIHNhd0RpZEJlZ2luU3dpcGUsICJUaGUgbGFzdCBnZXN0dXJlIHNob3VsZCBzdGFydCBh
IHN3aXBlLCBiZWNhdXNlIGl0IGlzIHN1ZmZpY2llbnQgbWFnbml0dWRlIGFuZCBpbiB0aGUgY29y
cmVjdCBkaXJlY3Rpb24uIikKLSAgICAgICAgdGVzdENvbXBsZXRlKCk7Ci0gICAgfSk7Ci0KLSAg
ICAvLyBUb3RhbCBkZWx0YSBvZiAzMCwgMTA7IHRoaXMgc2hvdWxkIHN0YXJ0IGEgc3dpcGUgYXMg
dXN1YWwuCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4n
KTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgzLCAxLCAnYmVnYW4nKTsKLSAg
ICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2
ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdlbmRlZCcpOwotfQotCi1mdW5jdGlv
biBkaWRCZWdpblN3aXBlTm90UmVhY2hlZENhbGxiYWNrKCkKLXsKLSAgICBsb2coIkZhaWx1cmUu
IFNob3VsZCBuZXZlciBiZWdpbiBhIHN3aXBlLCBiZWNhdXNlIGFsbCBvZiB0aGUgYXR0ZW1wdGVk
IHN3aXBlcyBzaG91bGQgZmFpbCBkdWUgdG8gdGhlIHN3aXBlLXN0YXJ0IGh5c3RlcmVzaXMuIik7
Ci19Ci0KLWZ1bmN0aW9uIGlzRmlyc3RQYWdlKCkKLXsKLSAgICByZXR1cm4gd2luZG93LmxvY2F0
aW9uLmhyZWYuaW5kZXhPZigic2Vjb25kIikgPT0gLTE7Ci19Ci0KLXdpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbiAoKSB7Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwgIXdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gIlRoaXMgdGVzdCBt
dXN0IGJlIHJ1biBpbiBXZWJLaXRUZXN0UnVubmVyLiI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IGlzRmlyc3RQYWdlKCkgPyAiZmlyc3Qi
IDogInNlY29uZCI7Ci0KLSAgICBpZiAoaXNGaXJzdFBhZ2UoKSkgewotICAgICAgICBpbml0aWFs
aXplU3dpcGVUZXN0KCk7Ci0KLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkQmVnaW5Td2lw
ZUNhbGxiYWNrKGRpZEJlZ2luU3dpcGVOb3RSZWFjaGVkQ2FsbGJhY2spOwotCi0gICAgICAgIHRl
c3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5j
ZUtleSIsIDEpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAo
KSB7IAotICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5kb3cubG9jYXRpb24u
aHJlZiArICI/c2Vjb25kIjsKLSAgICAgICAgfSwgMCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBkb1Nob3J0U3dpcGVHZXN0dXJlKCk7Ci19OwotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288174</attachid>
            <date>2016-09-07 13:04:01 -0700</date>
            <delta_ts>2016-09-07 14:47:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161675-20160907130137.patch</filename>
            <type>text/plain</type>
            <size>105622</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MzYzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGFkZDhkNzFiMDVlNWE4OTBlYzFmMTU4MzM2YTcyODhi
ZmI1NGJkZS4uZjdhMGZjZWZmODkyZmU1ZDI1ZjU3MzBjOTAxNWJmNGIyOWE2N2IwZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDE2LTA5LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFN3aXBlIGdlc3R1cmUgdGVzdHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRm
b3JtUGxheUJhY2tFdmVudFN0cmVhbSk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6YmVnaW5CYWNrU3dpcGUpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNv
bXBsZXRlQmFja1N3aXBlKToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFs
aXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbTog
QWRkZWQuCisgICAgICAgIChldmVudElzT2ZUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZlR5cGVz
KToKKyAgICAgICAgKGV2ZW50SXNPZkdlc3R1cmVUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZkdl
c3R1cmVUeXBlcyk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBkaWN0aW9uYXJ5Rm9yRXZl
bnQ6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBjcmVhdGVF
dmVudEZvckRpY3Rpb25hcnk6aW5XaW5kb3c6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgr
W0V2ZW50U2VyaWFsaXplciBwbGF5RXZlbnRTdHJlYW06aW5XaW5kb3c6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFj
L1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1bm5lclNo
YXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTogQWRk
ZWQuCisgICAgICAgIChiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKToKKyAgICAgICAgKGNvbXBs
ZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0pOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICog
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF5QmFja0V2ZW50U3RyZWFtKToK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZSk6CisgICAg
ICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUpOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbSk6
CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1DbGVhckFsbENhbGxi
YWNrcyk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9zcGkv
Q29yZUdyYXBoaWNzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvc3Bp
L0lPS2l0U1BJLmg6IFJlbmFtZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tp
dFNQSS5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6cGxheUJhY2tFdmVudHMpOgor
ICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKToKKyAgICAg
ICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZSk6CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKToK
KwogMjAxNi0wOS0wMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OIChyMjA1MzI5KTogVHdvIEFQSSB0ZXN0cyB0aW1lIG91dCBvbiBp
T1MgU2ltdWxhdG9yCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3Jp
cHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29u
dHJvbGxlck1hYy5tbQppbmRleCA1NmUyMDc3YTRiMmEyMGMxZGI5MWRjOWExMGJkZGU1ZjIyY2M2
NDBiLi5jYTg2ZWY3ZTE3YThkNzYxODFmZGU0MGNmY2VlNjY3YjhkN2UwNTljIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTQz
LDYgKzQzLDE4IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FzeW5jVGFzayhKU1ZhbHVl
UmVmIGNhbGxiYWNrKQogICAgIH0pOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVn
aW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKK30KKwordm9pZCBVSVNjcmlwdENv
bnRyb2xsZXI6OmNvbXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7Cit9CisK
K3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVBsYXlCYWNrRXZlbnRTdHJlYW0oSlNT
dHJpbmdSZWYsIEpTVmFsdWVSZWYpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9u
L21hYy9FdmVudFNlcmlhbGl6ZXJNYWMuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRT
ZXJpYWxpemF0aW9uL21hYy9FdmVudFNlcmlhbGl6ZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTA1ZDY3
ZjU5ODllMGZiZDk3OTlhMzQ2ODQwZTc4ZWY4N2YzM2RmCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXpl
ck1hYy5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgUExBVEZPUk0oTUFDKQor
CisjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CisKK0BpbnRlcmZhY2UgRXZlbnRTZXJpYWxpemVy
IDogTlNPYmplY3QKKworKyAoTlNEaWN0aW9uYXJ5ICopZGljdGlvbmFyeUZvckV2ZW50OihDR0V2
ZW50UmVmKWV2ZW50IHJlbGF0aXZlVG9UaW1lOihDR0V2ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRp
bWVzdGFtcDsKKworKyAoQ0dFdmVudFJlZiljcmVhdGVFdmVudEZvckRpY3Rpb25hcnk6KE5TRGlj
dGlvbmFyeSAqKWRpY3QgaW5XaW5kb3c6KE5TV2luZG93ICopd2luZG93IHJlbGF0aXZlVG9UaW1l
OihDR0V2ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRpbWVzdGFtcDsKKworKyAodm9pZClwbGF5RXZl
bnRTdHJlYW06KE5TQXJyYXk8TlNEaWN0aW9uYXJ5ICo+ICopZXZlbnREaWN0cyBpbldpbmRvdzoo
TlNXaW5kb3cgKil3aW5kb3cgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoKSljb21wbGV0aW9u
SGFuZGxlcjsKKworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9FdmVudFNlcmlhbGl6ZXJNYWMubW0gYi9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVy
TWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNkOThmMzUxMGIzMTk4NDdiNGE0MDExZTA4MDI4ZTgyMGZhMTkx
NjgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFs
aXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLm1tCkBAIC0wLDAgKzEsMzAxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJFdmVudFNlcmlhbGl6ZXJNYWMu
aCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAiQ29yZUdyYXBoaWNzU1BJLmgiCisj
aW1wb3J0ICJJT0tpdFNQSS5oIgorI2ltcG9ydCA8YWxnb3JpdGhtPgorI2ltcG9ydCA8bWFjaC9t
YWNoX3RpbWUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2RlZmluZSBNT1VTRV9F
VkVOVF9UWVBFUyBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudExlZnRNb3VzZURvd24sIFwK
KyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50TGVmdE1vdXNlVXAsIFwKKyAgICAoQ0dTRXZlbnRU
eXBlKWtDR0V2ZW50UmlnaHRNb3VzZURvd24sIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50
UmlnaHRNb3VzZVVwLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudE1vdXNlTW92ZWQsIFwK
KyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50TGVmdE1vdXNlRHJhZ2dlZCwgXAorICAgIChDR1NF
dmVudFR5cGUpa0NHRXZlbnRSaWdodE1vdXNlRHJhZ2dlZCwgXAorICAgIChDR1NFdmVudFR5cGUp
a0NHRXZlbnRPdGhlck1vdXNlRG93biwgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRPdGhl
ck1vdXNlVXAsIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50T3RoZXJNb3VzZURyYWdnZWQK
KworI2RlZmluZSBLRVlfRVZFTlRfVFlQRVMgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRL
ZXlEb3duLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudEtleVVwLCBcCisgICAgKENHU0V2
ZW50VHlwZSlrQ0dFdmVudEZsYWdzQ2hhbmdlZAorCisjZGVmaW5lIEdFU1RVUkVfRVZFTlRfVFlQ
RVMgXAorICAgIGtDR1NFdmVudEdlc3R1cmUsIFwKKyAgICBrQ0dTRXZlbnRGbHVpZFRvdWNoR2Vz
dHVyZSwgXAorICAgIGtDR1NFdmVudERvY2tDb250cm9sCisKK2Jvb2wgZXZlbnRJc09mVHlwZShD
R0V2ZW50UmVmIGV2ZW50LCBDR1NFdmVudFR5cGUgdHlwZSkKK3sKKyAgICByZXR1cm4gKENHU0V2
ZW50VHlwZSlDR0V2ZW50R2V0VHlwZShldmVudCkgPT0gdHlwZTsKK30KKworYm9vbCBldmVudElz
T2ZUeXBlcyhDR0V2ZW50UmVmKSB7IHJldHVybiBmYWxzZTsgfQorCit0ZW1wbGF0ZTx0eXBlbmFt
ZSAuLi4gVHlwZXM+Citib29sIGV2ZW50SXNPZlR5cGVzKENHRXZlbnRSZWYgZXZlbnQsIENHU0V2
ZW50VHlwZSBmaXJzdCwgVHlwZXMgLi4uIHJlc3QpCit7CisgICAgcmV0dXJuIGV2ZW50SXNPZlR5
cGUoZXZlbnQsIGZpcnN0KSB8fCBldmVudElzT2ZUeXBlcyhldmVudCwgcmVzdC4uLik7Cit9CisK
K2Jvb2wgZXZlbnRJc09mR2VzdHVyZVR5cGUoQ0dFdmVudFJlZiBldmVudCwgSU9ISURFdmVudFR5
cGUgdHlwZSkKK3sKKyAgICByZXR1cm4gKElPSElERXZlbnRUeXBlKUNHRXZlbnRHZXRJbnRlZ2Vy
VmFsdWVGaWVsZChldmVudCwga0NHRXZlbnRHZXN0dXJlSElEVHlwZSkgPT0gdHlwZTsKK30KKwor
Ym9vbCBldmVudElzT2ZHZXN0dXJlVHlwZXMoQ0dFdmVudFJlZikgeyByZXR1cm4gZmFsc2U7IH0K
KwordGVtcGxhdGU8dHlwZW5hbWUgLi4uIFR5cGVzPgorYm9vbCBldmVudElzT2ZHZXN0dXJlVHlw
ZXMoQ0dFdmVudFJlZiBldmVudCwgSU9ISURFdmVudFR5cGUgZmlyc3QsIFR5cGVzIC4uLiByZXN0
KQoreworICAgIGlmICghZXZlbnRJc09mVHlwZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGV2ZW50SXNPZkdlc3R1cmVUeXBl
KGV2ZW50LCBmaXJzdCkgfHwgZXZlbnRJc09mR2VzdHVyZVR5cGVzKGV2ZW50LCByZXN0Li4uKTsK
K30KKworI2RlZmluZSBGT1JfRUFDSF9DR0VWRU5UX0lOVEVHRVJfRklFTEQobWFjcm8pIFwKKyAg
ICBtYWNybyh0cnVlLCBrQ0dTRXZlbnRUeXBlRmllbGQpIFwKKyAgICBcCisgICAgbWFjcm8oZXZl
bnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwg
a0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczEpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBl
cyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxX
aGVlbEV2ZW50RGVsdGFBeGlzMikgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBr
Q0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRE
ZWx0YUF4aXMzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNj
cm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91
cykgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVl
bCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRNb21lbnR1bVBoYXNlKSBcCisg
ICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dT
RXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSkgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50
Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIpIFwKKyAgICBtYWNybyhl
dmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20p
LCBrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMzKSBcCisgICAgbWFjcm8oZXZlbnRJ
c09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NH
U2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50KSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMo
ZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hl
ZWxFdmVudFNjcm9sbFBoYXNlKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2
ZW50LCBNT1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnRCdXR0b25OdW1iZXIpIFwKKyAg
ICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3Vz
ZUV2ZW50Q2xpY2tTdGF0ZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBNT1VT
RV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnREZWx0YVgpIFwKKyAgICBtYWNybyhldmVudElz
T2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50RGVsdGFZKSBc
CisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwga0NH
TW91c2VFdmVudFN1YnR5cGUpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9V
U0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50TnVtYmVyKSBcCisgICAgXAorICAgIG1hY3Jv
KGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBLRVlfRVZFTlRfVFlQRVMpLCBrQ0dLZXlib2FyZEV2ZW50
QXV0b3JlcGVhdCkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBLRVlfRVZFTlRf
VFlQRVMpLCBrQ0dLZXlib2FyZEV2ZW50S2V5Ym9hcmRUeXBlKSBcCisgICAgbWFjcm8oZXZlbnRJ
c09mVHlwZXMoZXZlbnQsIEtFWV9FVkVOVF9UWVBFUyksIGtDR0tleWJvYXJkRXZlbnRLZXljb2Rl
KSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5U
X1RZUEVTKSwga0NHRXZlbnRHZXN0dXJlSElEVHlwZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5
cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSwga0NHRXZlbnRHZXN0dXJlQmVoYXZpb3Ip
IFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyks
IGtDR0V2ZW50R2VzdHVyZUZsYXZvcikgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50
LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSwga0NHRXZlbnRHZXN0dXJlTWFzaykgXAorICAgIG1hY3Jv
KGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSwga0NHRXZlbnRHZXN0
dXJlUGhhc2UpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVO
VF9UWVBFUyksIGtDR0V2ZW50R2VzdHVyZVN0YWdlKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50
SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVTY3JvbGwpLCBrQ0dFdmVudFNj
cm9sbEdlc3R1cmVGbGFnQml0cykgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJl
VHlwZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRTd2lw
ZUdlc3R1cmVGbGFnQml0cykgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50
LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZU1h
c2spIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRU
eXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVNb3Rpb24pIFwKKyAgICBt
YWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlv
blN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVWYWx1ZSkgXAorICAgIG1hY3JvKGV2ZW50SXNP
Zkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dF
dmVudEdlc3R1cmVGbGF2b3IpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5
cGVzKGV2ZW50LCBrQ0dISURFdmVudFR5cGVHZXN0dXJlU3RhcnRlZCwga0NHSElERXZlbnRUeXBl
R2VzdHVyZUVuZGVkKSwga0NHRXZlbnRHZXN0dXJlU3RhcnRFbmRTZXJpZXNUeXBlKQorCisjZGVm
aW5lIEZPUl9FQUNIX0NHRVZFTlRfRE9VQkxFX0ZJRUxEKG1hY3JvKSBcCisgICAgbWFjcm8oZXZl
bnRJc09mVHlwZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVQ
cm9ncmVzcykgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0Vf
RVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50UHJlc3N1cmUpIFwKKyAgICBcCisgICAgbWFjcm8o
ZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVpvb20pLCBrQ0dFdmVu
dEdlc3R1cmVab29tRGVsdGFYKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZl
bnQsIGtJT0hJREV2ZW50VHlwZVpvb20pLCBrQ0dFdmVudEdlc3R1cmVab29tRGVsdGFZKSBcCisg
ICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVpvb20p
LCBrQ0dFdmVudEdlc3R1cmVab29tVmFsdWUpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09m
R2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVJvdGF0aW9uKSwga0NHRXZlbnRHZXN0
dXJlUm90YXRpb25WYWx1ZSkgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlw
ZShldmVudCwga0lPSElERXZlbnRUeXBlU2Nyb2xsKSwga0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCkg
XAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVT
Y3JvbGwpLCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxZKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2Vz
dHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVNjcm9sbCksIGtDR0V2ZW50R2VzdHVyZVNj
cm9sbFopIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJ
T0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlUG9zaXRp
b25YKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50
VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlUG9zaXRpb25ZKSBcCisg
ICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmln
YXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlUHJvZ3Jlc3MpIFwKKyAgICBtYWNybyhl
dmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBl
KSwga0NHRXZlbnRHZXN0dXJlU3dpcGVWZWxvY2l0eVgpIFwKKyAgICBtYWNybyhldmVudElzT2ZH
ZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZl
bnRHZXN0dXJlU3dpcGVWZWxvY2l0eVkpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlw
ZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJl
U3dpcGVWZWxvY2l0eVopIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUo
ZXZlbnQsIGtJT0hJREV2ZW50VHlwZUZvcmNlKSwga0NHRXZlbnRUcmFuc2l0aW9uUHJvZ3Jlc3Mp
IFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBl
Rm9yY2UpLCBrQ0dFdmVudFN0YWdlUHJlc3N1cmUpCisKKyNkZWZpbmUgTE9BRF9JTlRFR0VSX0ZJ
RUxEX0ZST01fRVZFTlQoZXZlbnRUeXBlRmlsdGVyLCBmaWVsZCkgXAorXiB7IFwKKyAgICBpZiAo
IShldmVudFR5cGVGaWx0ZXIpKSBcCisgICAgICAgIHJldHVybjsgXAorICAgIGludDY0X3QgdmFs
dWUgPSBDR0V2ZW50R2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGZpZWxkKTsgXAorICAgIGlu
dDY0X3QgcGxhaW5WYWx1ZSA9IENHRXZlbnRHZXRJbnRlZ2VyVmFsdWVGaWVsZChwbGFpbkV2ZW50
LCBmaWVsZCk7IFwKKyAgICBpZiAodmFsdWUgIT0gcGxhaW5WYWx1ZSkgXAorICAgICAgICBkaWN0
W0AjZmllbGRdID0gQCh2YWx1ZSk7IFwKK30oKTsKKworI2RlZmluZSBMT0FEX0RPVUJMRV9GSUVM
RF9GUk9NX0VWRU5UKGV2ZW50VHlwZUZpbHRlciwgZmllbGQpIFwKK14geyBcCisgICAgaWYgKCEo
ZXZlbnRUeXBlRmlsdGVyKSkgXAorICAgICAgICByZXR1cm47IFwKKyAgICBkb3VibGUgdmFsdWUg
PSBDR0V2ZW50R2V0RG91YmxlVmFsdWVGaWVsZChldmVudCwgZmllbGQpOyBcCisgICAgaWYgKCFp
c25hbih2YWx1ZSkpIHsgXAorICAgICAgICBkb3VibGUgcGxhaW5WYWx1ZSA9IENHRXZlbnRHZXRE
b3VibGVWYWx1ZUZpZWxkKHBsYWluRXZlbnQsIGZpZWxkKTsgXAorICAgICAgICBpZiAoZmFicyh2
YWx1ZSAtIHBsYWluVmFsdWUpID49IEZMVF9FUFNJTE9OKSBcCisgICAgICAgICAgICBkaWN0W0Aj
ZmllbGRdID0gQCh2YWx1ZSk7IFwKKyAgICB9IFwKK30oKTsKKworI2RlZmluZSBTVE9SRV9JTlRF
R0VSX0ZJRUxEX1RPX0VWRU5UKGV2ZW50VHlwZUZpbHRlciwgZmllbGQpIFwKK14geyBcCisgICAg
aWYgKCEoZXZlbnRUeXBlRmlsdGVyKSkgXAorICAgICAgICByZXR1cm47IFwKKyAgICBOU051bWJl
ciAqdmFsdWUgPSBkaWN0W0AjZmllbGRdOyBcCisgICAgaWYgKHZhbHVlKSBcCisgICAgICAgIENH
RXZlbnRTZXRJbnRlZ2VyVmFsdWVGaWVsZChldmVudCwgZmllbGQsIHZhbHVlLnVuc2lnbmVkTG9u
Z0xvbmdWYWx1ZSk7IFwKK30oKTsKKworI2RlZmluZSBTVE9SRV9ET1VCTEVfRklFTERfVE9fRVZF
TlQoZXZlbnRUeXBlRmlsdGVyLCBmaWVsZCkgXAorXiB7IFwKKyAgICBpZiAoIShldmVudFR5cGVG
aWx0ZXIpKSBcCisgICAgICAgIHJldHVybjsgXAorICAgIE5TTnVtYmVyICp2YWx1ZSA9IGRpY3Rb
QCNmaWVsZF07IFwKKyAgICBpZiAodmFsdWUpIFwKKyAgICAgICAgQ0dFdmVudFNldERvdWJsZVZh
bHVlRmllbGQoZXZlbnQsIGZpZWxkLCB2YWx1ZS5kb3VibGVWYWx1ZSk7IFwKK30oKTsKKworQGlt
cGxlbWVudGF0aW9uIEV2ZW50U2VyaWFsaXplcgorCisrIChOU0RpY3Rpb25hcnkgKilkaWN0aW9u
YXJ5Rm9yRXZlbnQ6KENHRXZlbnRSZWYpZXZlbnQgcmVsYXRpdmVUb1RpbWU6KENHRXZlbnRUaW1l
c3RhbXApcmVmZXJlbmNlVGltZXN0YW1wCit7CisgICAgQ0dFdmVudFJlZiBwbGFpbkV2ZW50ID0g
Q0dFdmVudENyZWF0ZShOVUxMKTsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmRpY3QgPSBb
W1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisKKyAgICBG
T1JfRUFDSF9DR0VWRU5UX0lOVEVHRVJfRklFTEQoTE9BRF9JTlRFR0VSX0ZJRUxEX0ZST01fRVZF
TlQpOworICAgIEZPUl9FQUNIX0NHRVZFTlRfRE9VQkxFX0ZJRUxEKExPQURfRE9VQkxFX0ZJRUxE
X0ZST01fRVZFTlQpOworCisgICAgQ0dFdmVudFRpbWVzdGFtcCB0aW1lc3RhbXAgPSBDR0V2ZW50
R2V0VGltZXN0YW1wKGV2ZW50KTsKKyAgICBkaWN0W0AicmVsYXRpdmVUaW1lTVMiXSA9IEAoc3Rk
OjptYXg8ZG91YmxlPihzdGF0aWNfY2FzdDxkb3VibGU+KHRpbWVzdGFtcCAtIHJlZmVyZW5jZVRp
bWVzdGFtcCkgLyBOU0VDX1BFUl9NU0VDLCAwKSk7CisKKyAgICBDR1NFdmVudFR5cGUgZXZlbnRU
eXBlID0gKENHU0V2ZW50VHlwZSlDR0V2ZW50R2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGtD
R1NFdmVudFR5cGVGaWVsZCk7CisgICAgaWYgKGV2ZW50VHlwZSA9PSBrQ0dTRXZlbnRHZXN0dXJl
IHx8IGV2ZW50VHlwZSA9PSBrQ0dTRXZlbnRGbHVpZFRvdWNoR2VzdHVyZSB8fCBldmVudFR5cGUg
PT0ga0NHU0V2ZW50RG9ja0NvbnRyb2wpIHsKKyAgICAgICAgaWYgKENHRXZlbnRHZXRJbnRlZ2Vy
VmFsdWVGaWVsZChldmVudCwga0NHRXZlbnRHZXN0dXJlSXNQcmVmbGlnaHQpKSB7CisgICAgICAg
ICAgICBkaWN0W0Aia0NHRXZlbnRHZXN0dXJlSXNQcmVmbGlnaHQiXSA9IEBZRVM7CisgICAgICAg
ICAgICBkaWN0W0Aia0NHRXZlbnRHZXN0dXJlUHJlZmxpZ2h0UHJvZ3Jlc3MiXSA9IEAoQ0dFdmVu
dEdldERvdWJsZVZhbHVlRmllbGQoZXZlbnQsIGtDR0V2ZW50R2VzdHVyZVByZWZsaWdodFByb2dy
ZXNzKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBkaWN0W0Aid2luZG93TG9jYXRpb24iXSA9
IE5TU3RyaW5nRnJvbVBvaW50KE5TUG9pbnRGcm9tQ0dQb2ludChDR0V2ZW50R2V0V2luZG93TG9j
YXRpb24oZXZlbnQpKSk7CisKKyAgICBDR0V2ZW50RmxhZ3MgZmxhZ3MgPSBDR0V2ZW50R2V0Rmxh
Z3MoZXZlbnQpICYgfk5YX05PTkNPQUxTRVNDRURNQVNLOworICAgIGlmIChmbGFncyAhPSAoQ0dF
dmVudEdldEZsYWdzKHBsYWluRXZlbnQpICYgfk5YX05PTkNPQUxTRVNDRURNQVNLKSkKKyAgICAg
ICAgZGljdFtAImZsYWdzIl0gPSBAKGZsYWdzKTsKKworICAgIENGUmVsZWFzZShwbGFpbkV2ZW50
KTsKKworICAgIHJldHVybiBkaWN0OworfQorCisrIChDR0V2ZW50UmVmKWNyZWF0ZUV2ZW50Rm9y
RGljdGlvbmFyeTooTlNEaWN0aW9uYXJ5ICopZGljdCBpbldpbmRvdzooTlNXaW5kb3cgKil3aW5k
b3cgcmVsYXRpdmVUb1RpbWU6KENHRXZlbnRUaW1lc3RhbXApcmVmZXJlbmNlVGltZXN0YW1wCit7
CisgICAgQ0dFdmVudFJlZiBldmVudCA9IENHRXZlbnRDcmVhdGUoTlVMTCk7CisKKyAgICBGT1Jf
RUFDSF9DR0VWRU5UX0lOVEVHRVJfRklFTEQoU1RPUkVfSU5URUdFUl9GSUVMRF9UT19FVkVOVCk7
CisgICAgRk9SX0VBQ0hfQ0dFVkVOVF9ET1VCTEVfRklFTEQoU1RPUkVfRE9VQkxFX0ZJRUxEX1RP
X0VWRU5UKTsKKworICAgIGlmIChkaWN0W0AicmVsYXRpdmVUaW1lTVMiXSkKKyAgICAgICAgQ0dF
dmVudFNldFRpbWVzdGFtcChldmVudCwgcmVmZXJlbmNlVGltZXN0YW1wICsgc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KChbZGljdFtAInJlbGF0aXZlVGltZU1TIl0gZG91YmxlVmFsdWVdICogTlNFQ19Q
RVJfTVNFQykpKTsKKworICAgIGlmIChbZGljdFtAImtDR0V2ZW50R2VzdHVyZUlzUHJlZmxpZ2h0
Il0gYm9vbFZhbHVlXSkgeworICAgICAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoZXZl
bnQsIGtDR0V2ZW50R2VzdHVyZUlzUHJlZmxpZ2h0LCAxKTsKKyAgICAgICAgQ0dFdmVudFNldERv
dWJsZVZhbHVlRmllbGQoZXZlbnQsIGtDR0V2ZW50R2VzdHVyZVByZWZsaWdodFByb2dyZXNzLCBb
ZGljdFtAImtDR0V2ZW50R2VzdHVyZVByZWZsaWdodFByb2dyZXNzIl0gZG91YmxlVmFsdWVdKTsK
KyAgICB9CisKKyAgICBpZiAoZGljdFtAIndpbmRvd0xvY2F0aW9uIl0pIHsKKyAgICAgICAgQ0dF
dmVudFNldFdpbmRvd0xvY2F0aW9uKGV2ZW50LCBOU1BvaW50VG9DR1BvaW50KE5TUG9pbnRGcm9t
U3RyaW5nKGRpY3RbQCJ3aW5kb3dMb2NhdGlvbiJdKSkpOworCisgICAgICAgIE5TUG9pbnQgc2Ny
ZWVuUG9pbnQgPSBbd2luZG93IGNvbnZlcnRCYXNlVG9TY3JlZW46TlNQb2ludFRvQ0dQb2ludChO
U1BvaW50RnJvbVN0cmluZyhkaWN0W0Aid2luZG93TG9jYXRpb24iXSkpXTsKKyAgICAgICAgQ0dF
dmVudFNldExvY2F0aW9uKGV2ZW50LCBOU01ha2VQb2ludChzY3JlZW5Qb2ludC54LCBOU1NjcmVl
bi5zY3JlZW5zLmZpcnN0T2JqZWN0LmZyYW1lLnNpemUuaGVpZ2h0IC0gc2NyZWVuUG9pbnQueSkp
OworICAgIH0KKworICAgIGlmIChkaWN0W0AiZmxhZ3MiXSkKKyAgICAgICAgQ0dFdmVudFNldEZs
YWdzKGV2ZW50LCBbZGljdFtAImZsYWdzIl0gdW5zaWduZWRMb25nTG9uZ1ZhbHVlXSk7CisKKyAg
ICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGtDR1NFdmVudFdpbmRvd0lERmll
bGQsIHdpbmRvdy53aW5kb3dOdW1iZXIpOworCisgICAgcmV0dXJuIGV2ZW50OworfQorCisrICh2
b2lkKXBsYXlFdmVudFN0cmVhbTooTlNBcnJheTxOU0RpY3Rpb25hcnkgKj4gKilldmVudERpY3Rz
IGluV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSgp
KWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiByZW1h
aW5pbmdFdmVudERpY3RzID0gYWRvcHROUyhbZXZlbnREaWN0cyBtdXRhYmxlQ29weV0pOworCisg
ICAgdWludDY0X3Qgc3RhcnRUaW1lID0gbWFjaF9hYnNvbHV0ZV90aW1lKCk7CisKKyAgICBjb25z
dCBmbG9hdCBldmVudERpc3BhdGNoVGltZXJSYXRlID0gMS4gLyAxMjAuOworCisgICAgW05TVGlt
ZXIgc2NoZWR1bGVkVGltZXJXaXRoVGltZUludGVydmFsOmV2ZW50RGlzcGF0Y2hUaW1lclJhdGUg
cmVwZWF0czpZRVMgYmxvY2s6XihOU1RpbWVyICp0aW1lcikgeworICAgICAgICBSZXRhaW5QdHI8
TlNNdXRhYmxlQXJyYXkgKj4gcmVtb3ZlTGlzdCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBh
bGxvY10gaW5pdF0pOworICAgICAgICBOU0V2ZW50ICpuc0V2ZW50ID0gbmlsOworICAgICAgICBm
b3IgKGlkIGV2ZW50RGljdCBpbiByZW1haW5pbmdFdmVudERpY3RzLmdldCgpKSB7CisgICAgICAg
ICAgICBDR0V2ZW50UmVmIGV2ZW50ID0gW0V2ZW50U2VyaWFsaXplciBjcmVhdGVFdmVudEZvckRp
Y3Rpb25hcnk6ZXZlbnREaWN0IGluV2luZG93OndpbmRvdyByZWxhdGl2ZVRvVGltZTpzdGFydFRp
bWVdOworICAgICAgICAgICAgaWYgKENHRXZlbnRHZXRUaW1lc3RhbXAoZXZlbnQpIDwgbWFjaF9h
YnNvbHV0ZV90aW1lKCkpIHsKKyAgICAgICAgICAgICAgICBuc0V2ZW50ID0gW05TRXZlbnQgZXZl
bnRXaXRoQ0dFdmVudDpldmVudF07CisgICAgICAgICAgICAgICAgW05TQXBwIHBvc3RFdmVudDpu
c0V2ZW50IGF0U3RhcnQ6Tk9dOworICAgICAgICAgICAgICAgIFtyZW1vdmVMaXN0IGFkZE9iamVj
dDpldmVudERpY3RdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ0ZSZWxlYXNlKGV2ZW50
KTsKKyAgICAgICAgfQorICAgICAgICBbcmVtYWluaW5nRXZlbnREaWN0cyByZW1vdmVPYmplY3Rz
SW5BcnJheTpyZW1vdmVMaXN0LmdldCgpXTsKKworICAgICAgICBpZiAoW3JlbWFpbmluZ0V2ZW50
RGljdHMgY291bnRdKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFt0aW1lciBpbnZh
bGlkYXRlXTsKKworICAgICAgICAvLyBCbG9jayB1bnRpbCB3ZSBzZW5kIHRoZSBsYXN0IGV2ZW50
IHdlIHBvc3RlZC4KKyAgICAgICAgW05TQXBwIHBvc3RFdmVudDpbTlNFdmVudCBvdGhlckV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVBcHBsaWNhdGlvbkRlZmluZWQgbG9jYXRpb246TlNaZXJvUG9p
bnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjowIGNvbnRleHQ6MCBz
dWJ0eXBlOjAgZGF0YTE6NDIgZGF0YTI6MF0gYXRTdGFydDpOT107CisgICAgICAgIHdoaWxlICh0
cnVlKSB7CisgICAgICAgICAgICBOU0V2ZW50ICpuZXh0RXZlbnQgPSBbTlNBcHAgbmV4dEV2ZW50
TWF0Y2hpbmdNYXNrOk5TQW55RXZlbnRNYXNrIHVudGlsRGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGlt
ZUludGVydmFsU2luY2VOb3c6ZXZlbnREaXNwYXRjaFRpbWVyUmF0ZV0gaW5Nb2RlOk5TRGVmYXVs
dFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVTXTsKKyAgICAgICAgICAgIGlmIChuZXh0RXZlbnQudHlw
ZSA9PSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCAmJiBuZXh0RXZlbnQuZGF0YTEgPT0g
NDIpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAobmV4dEV2ZW50KQor
ICAgICAgICAgICAgICAgIFtOU0FwcCBzZW5kRXZlbnQ6bmV4dEV2ZW50XTsKKyAgICAgICAgfQor
CisgICAgICAgIGlmIChjb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CisgICAgfV07Cit9CisKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvU2hhcmVkRXZlbnRTdHJl
YW1zTWFjLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMv
U2hhcmVkRXZlbnRTdHJlYW1zTWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWYzMDI4ODM1OTIxMzYyYmRmNmNk
MWY1YjFlNDc4YTk1MGZlYjM3MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMuaApAQCAt
MCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCA8
QXBwS2l0L0FwcEtpdC5oPgorCitOU1N0cmluZyAqYmVnaW5Td2lwZUJhY2tFdmVudFN0cmVhbSgp
OworTlNTdHJpbmcgKmNvbXBsZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0oKTsKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMv
U2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNl
cmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODI0
MDU5Y2FhZDAxM2YwODkxZjIzNTA4ODUwYTA5MzFkNDljZDg4Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50
U3RyZWFtc01hYy5tbQpAQCAtMCwwICsxLDM2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorI2ltcG9ydCAiU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmgiCisKKyNpZiBQTEFURk9S
TShNQUMpCisKKyNkZWZpbmUgUVVPVEUoLi4uKSBAKCNfX1ZBX0FSR1NfXykKKworTlNTdHJpbmcg
KmJlZ2luU3dpcGVCYWNrRXZlbnRTdHJlYW0oKQoreworICAgIHJldHVybiBRVU9URShbCisgICAg
ICAgIHsKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAwLAorICAgICAgICAgICAgImtD
R0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAy
OSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAxMjgsCisgICAgICAgICAg
ICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAgICAgImtDR0V2ZW50
R2VzdHVyZUhJRFR5cGUiIDogNjEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6
IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVN0YXJ0RW5kU2VyaWVzVHlwZSIgOiA2
LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAor
ICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDgsCisgICAgICAgICAgICAid2luZG93TG9j
YXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNl
IiA6IDEsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwK
KyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NH
RXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6
ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhh
c2UiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6
IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAx
LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAg
ICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDE3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9u
IiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6
IDEsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAg
ICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NF
dmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxY
IiA6IDEyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMi
IDogMTcsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogNCwKKyAgICAg
ICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NH
U0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1l
TVMiIDogMjUsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAor
ICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFkiIDogMiwKKyAgICAgICAgICAgICJr
Q0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2Vz
dHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5
LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMjMKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6
IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAx
LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDI1LAorICAgICAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxX
aGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2
ZW50UG9pbnREZWx0YUF4aXMyIiA6IDExLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6
ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAg
ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUi
IDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAzMywKKyAgICAgICAgICAgICJ3
aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0
dXJlU2Nyb2xsWSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIs
CisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAg
ICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlU2Nyb2xsWCIgOiAyOAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVU
aW1lTVMiIDogMzMsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91
cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAy
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMTYs
CisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAg
ICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0
aXZlVGltZU1TIiA6IDQxLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAz
MDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDEsCisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNj
cm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVs
ZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDM1CisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFB
eGlzMiIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhp
czEiIDogMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA0MSwKKyAgICAgICAgICAg
ICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NH
U2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAyNCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6
IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVI
SURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNDksCisgICAgICAg
ICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2
ZW50R2VzdHVyZVNjcm9sbFkiIDogLTEsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhh
c2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAx
LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJr
Q0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDQ1CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwKKyAgICAgICAgICAg
ICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiA0LAorICAgICAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogLTEsCisgICAgICAgICAgICAicmVsYXRp
dmVUaW1lTVMiIDogNDksCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGlu
dW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIg
OiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDog
MzcsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAg
ICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJl
bGF0aXZlVGltZU1TIiA6IDU3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAw
LCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IC0zLAorICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZl
bnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBl
RmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA1Nwor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNj
cm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhp
czIiIDogNSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMx
IiA6IC0xLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDU3LAorICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dT
Y3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxX
aGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDU0LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0
aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDog
MjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJ
RFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA2NSwKKyAgICAgICAg
ICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlU2Nyb2xsWSIgOiAtNSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFz
ZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEs
CisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogODEKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDksCisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAtMiwKKyAgICAgICAgICAgICJyZWxhdGl2
ZVRpbWVNUyIgOiA2NSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51
b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6
IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiA5
MiwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAg
ICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgXSk7Cit9CisK
K05TU3RyaW5nICpjb21wbGV0ZVN3aXBlQmFja0V2ZW50U3RyZWFtKCkKK3sKKyAgICByZXR1cm4g
UVVPVEUoWworICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIg
OiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDczLAorICAgICAgICAgICAgIndp
bmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1
cmVTY3JvbGxZIiA6IC0zLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIs
CisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAg
ICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlU2Nyb2xsWCIgOiA3NQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMTEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAtMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVN
UyIgOiA3MywKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6
IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMDYsCisg
ICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAg
ImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZl
VGltZU1TIiA6IDgxLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9
IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IC0zLAorICAgICAgICAg
ICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3Jv
bGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQi
IDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA4NQorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENv
dW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDog
MTMsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAt
MSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4MSwKKyAgICAgICAgICAgICJrQ0dT
Y3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMjcsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24i
IDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlw
ZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDg5LAorICAgICAgICAgICAg
IndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdl
c3R1cmVTY3JvbGxZIiA6IC0xLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6
IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAg
ICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlU2Nyb2xsWCIgOiA5MQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NH
U2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMTQsCisgICAgICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAtMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRp
bWVNUyIgOiA4OSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3Vz
IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMzks
CisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAg
ICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0
aXZlVGltZU1TIiA6IDk3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAz
MDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDIsCisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNj
cm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVs
ZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDEzNgorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9s
bENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIi
IDogMjAsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIg
OiAxLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDk3LAorICAgICAgICAgICAgImtD
R1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDIwNCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlv
biIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIy
CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURU
eXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTA1LAorICAgICAgICAg
ICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVu
dEdlc3R1cmVTY3JvbGxZIiA6IDUsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2Ui
IDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAor
ICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dF
dmVudEdlc3R1cmVTY3JvbGxYIiA6IDkyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwKKyAgICAgICAgICAgICJr
Q0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiAxNCwKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IDIsCisgICAgICAgICAgICAicmVsYXRpdmVU
aW1lTVMiIDogMTA1LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVv
dXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDog
MiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDEz
NiwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAg
ICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVs
YXRpdmVUaW1lTVMiIDogMTEzLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAw
LCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDE0LAorICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZl
bnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBl
RmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAxMzMK
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRT
Y3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERl
bHRhQXhpczIiIDogMTkyLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMiwK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMSIgOiAxLAorICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAg
ICJyZWxhdGl2ZVRpbWVNUyIgOiAxMTMsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRh
QXhpczIiIDogMTksCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0i
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogNwor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTIx
LAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgImtDR1NF
dmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIg
OiA0LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTIxLAorICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNjIsCisgICAgICAgICAgICAia0NH
U0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVN0YXJ0
RW5kU2VyaWVzVHlwZSIgOiA2LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAw
LCAzMDB9IgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDog
MTM5LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAg
ICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIsCisgICAgICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDQsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudElzQ29udGludW91cyIgOiAxCisgICAgICAgIH0KKyAgICBdKTsKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5n
cy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlw
dENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAppbmRleCAxM2RmNmU4Zjg2
YjQzNDRjZjBhMTBjMDRiMjQ3OGI1NzQ3OTNlNDdjLi5iZjQ2MDRlMmEzMGJjOTc2YWI5ODEyM2Jh
MGYyODA5MjliZjMwZjAzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxl
ci5pZGwKQEAgLTQyLDYgKzQyLDExIEBAIGludGVyZmFjZSBVSVNjcmlwdENvbnRyb2xsZXIgewog
ICAgIHZvaWQga2V5RG93blVzaW5nSGFyZHdhcmVLZXlib2FyZChET01TdHJpbmcgY2hhcmFjdGVy
LCBvYmplY3QgY2FsbGJhY2spOwogICAgIHZvaWQga2V5VXBVc2luZ0hhcmR3YXJlS2V5Ym9hcmQo
RE9NU3RyaW5nIGNoYXJhY3Rlciwgb2JqZWN0IGNhbGxiYWNrKTsKIAorICAgIHZvaWQgYmVnaW5C
YWNrU3dpcGUob2JqZWN0IGNhbGxiYWNrKTsKKyAgICB2b2lkIGNvbXBsZXRlQmFja1N3aXBlKG9i
amVjdCBjYWxsYmFjayk7CisKKyAgICB2b2lkIHBsYXlCYWNrRXZlbnRTdHJlYW0oRE9NU3RyaW5n
IGV2ZW50U3RyZWFtLCBvYmplY3QgY2FsbGJhY2spOworCiAgICAgLy8gRXF1aXZhbGVudCBvZiBw
cmVzc2luZyB0aGUgRG9uZSBidXR0b24gaW4gdGhlIGZvcm0gYWNjZXNzb3J5IGJhci4KICAgICB2
b2lkIGRpc21pc3NGb3JtQWNjZXNzb3J5VmlldygpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNw
cAppbmRleCAxMDA1Y2JiMWZjYTg4MjlkMGQzZWRmMWRkZDdmOWY3ODg5NmY5NjQzLi4yNDEzYmVj
MDNjMmE5NjNlZWVkZjAzNzQzMTFiZTM3MDA5NmFjNDZlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxl
ci5jcHAKQEAgLTEzNSw2ICsxMzUsMTEgQEAgSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6
OmRpZEhpZGVLZXlib2FyZENhbGxiYWNrKCkgY29uc3QKICAgICByZXR1cm4gbV9jb250ZXh0LT5j
YWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRIaWRlS2V5Ym9hcmQpOwogfQogCit2b2lkIFVJ
U2NyaXB0Q29udHJvbGxlcjo6cGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1JlZiBzdHJlYW0s
IEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgcGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFt
KHN0cmVhbSwgY2FsbGJhY2spOworfQorCiAjaWYgIVBMQVRGT1JNKElPUykKIHZvaWQgVUlTY3Jp
cHRDb250cm9sbGVyOjp6b29tVG9TY2FsZShkb3VibGUsIEpTVmFsdWVSZWYpCiB7CkBAIC0yNDMs
NiArMjQ4LDIzIEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZEhpZGVL
ZXlib2FyZENhbGxiYWNrKCkKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybUNsZWFy
QWxsQ2FsbGJhY2tzKCkKIHsKIH0KKworI2VuZGlmCisKKyNpZiAhUExBVEZPUk0oTUFDKQorCit2
b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVnaW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFj
aykKK3sKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNvbXBsZXRlQmFja1N3aXBlKEpT
VmFsdWVSZWYgY2FsbGJhY2spCit7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0
Zm9ybVBsYXlCYWNrRXZlbnRTdHJlYW0oSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYpCit7Cit9CisK
ICNlbmRpZgogCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6dWlTY3JpcHRDb21wbGV0ZShKU1N0
cmluZ1JlZiByZXN1bHQpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDg0NjNhYzJjMmJiN2Nm
YzA1ZjhkNGRkNTUyZGM4MmI5MzQ4NDI5ZWIuLjEyOGNlMWUzOWJmNjgwZjg0OTc2MTljYTUyMzkw
NTEyMWJkYzkzMGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCkBAIC02OSw2ICs2OSw5IEBAIHB1
YmxpYzoKICAgICAKICAgICB2b2lkIHNjcm9sbFRvT2Zmc2V0KGxvbmcgeCwgbG9uZyB5KTsKIAor
ICAgIHZvaWQgYmVnaW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjayk7CisgICAgdm9pZCBj
b21wbGV0ZUJhY2tTd2lwZShKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKKwogICAgIHZvaWQgc2V0RGlk
U3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2soSlNWYWx1ZVJlZik7CiAgICAgSlNW
YWx1ZVJlZiBkaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjaygpIGNvbnN0Owog
CkBAIC05MCw2ICs5Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERpZEVuZFNjcm9sbGluZ0Nh
bGxiYWNrKEpTVmFsdWVSZWYpOwogICAgIEpTVmFsdWVSZWYgZGlkRW5kU2Nyb2xsaW5nQ2FsbGJh
Y2soKSBjb25zdDsKIAorICAgIHZvaWQgcGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1JlZiBz
dHJlYW0sIEpTVmFsdWVSZWYgY2FsbGJhY2spOworCiAgICAgZG91YmxlIHpvb21TY2FsZSgpIGNv
bnN0OwogICAgIGRvdWJsZSBtaW5pbXVtWm9vbVNjYWxlKCkgY29uc3Q7CiAgICAgZG91YmxlIG1h
eGltdW1ab29tU2NhbGUoKSBjb25zdDsKQEAgLTExMSw2ICsxMTYsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgcGxhdGZvcm1TZXREaWRIaWRlS2V5Ym9hcmRDYWxsYmFjaygpOwogICAgIHZvaWQgcGxh
dGZvcm1TZXREaWRFbmRTY3JvbGxpbmdDYWxsYmFjaygpOwogICAgIHZvaWQgcGxhdGZvcm1DbGVh
ckFsbENhbGxiYWNrcygpOworICAgIHZvaWQgcGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpT
U3RyaW5nUmVmLCBKU1ZhbHVlUmVmKTsKIAogICAgIEpTQ2xhc3NSZWYgd3JhcHBlckNsYXNzKCkg
ZmluYWw7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0NvcmVHcmFw
aGljc1NQSS5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9zcGkvQ29yZUdyYXBoaWNzU1BJLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTc1YmUwNzQ4OTk0ZWYyZDg1NThlMDU2NjY5ODc3ZjUxNThkZmIwZAotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0NvcmVHcmFwaGljc1NQ
SS5oCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9y
dCA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1w
b3J0IDxDb3JlR3JhcGhpY3MvQ0dFdmVudFByaXZhdGUuaD4KKyNpbXBvcnQgPENvcmVHcmFwaGlj
cy9DR1NFdmVudC5oPgorCisjZWxzZQorCitXVEZfRVhURVJOX0NfQkVHSU4KKworc3RhdGljIGNv
bnN0IENHRXZlbnRGaWVsZCBrQ0dTRXZlbnRXaW5kb3dJREZpZWxkID0gKENHRXZlbnRGaWVsZCk1
MTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHU0V2ZW50VHlwZUZpZWxkID0gKENHRXZl
bnRGaWVsZCk1NTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlSElE
VHlwZSA9IChDR0V2ZW50RmllbGQpMTEwOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dF
dmVudEdlc3R1cmVJc1ByZWZsaWdodCA9IChDR0V2ZW50RmllbGQpMTExOworc3RhdGljIGNvbnN0
IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVab29tVmFsdWUgPSAoQ0dFdmVudEZpZWxkKTEx
MzsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlUm90YXRpb25WYWx1
ZSA9IChDR0V2ZW50RmllbGQpMTE0Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVu
dEdlc3R1cmVTd2lwZVZhbHVlID0gKENHRXZlbnRGaWVsZCkxMTU7CitzdGF0aWMgY29uc3QgQ0dF
dmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVByZWZsaWdodFByb2dyZXNzID0gKENHRXZlbnRGaWVs
ZCkxMTY7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN0YXJ0RW5k
U2VyaWVzVHlwZSA9IChDR0V2ZW50RmllbGQpMTE3Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVs
ZCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxYID0gKENHRXZlbnRGaWVsZCkxMTg7CitzdGF0aWMgY29u
c3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVNjcm9sbFkgPSAoQ0dFdmVudEZpZWxkKTEx
OTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU2Nyb2xsWiA9IChD
R0V2ZW50RmllbGQpMTIwOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1
cmVTd2lwZU1vdGlvbiA9IChDR0V2ZW50RmllbGQpMTIzOworc3RhdGljIGNvbnN0IENHRXZlbnRG
aWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVByb2dyZXNzID0gKENHRXZlbnRGaWVsZCkxMjQ7Citz
dGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlUG9zaXRpb25YID0g
KENHRXZlbnRGaWVsZCkxMjU7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2Vz
dHVyZVN3aXBlUG9zaXRpb25ZID0gKENHRXZlbnRGaWVsZCkxMjY7CitzdGF0aWMgY29uc3QgQ0dF
dmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlYID0gKENHRXZlbnRGaWVsZCkx
Mjk7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2Np
dHlZID0gKENHRXZlbnRGaWVsZCkxMzA7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2
ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlaID0gKENHRXZlbnRGaWVsZCkxMzE7CitzdGF0aWMgY29u
c3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVBoYXNlID0gKENHRXZlbnRGaWVsZCkxMzI7
CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZU1hc2sgPSAoQ0dFdmVu
dEZpZWxkKTEzMzsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dp
cGVNYXNrID0gKENHRXZlbnRGaWVsZCkxMzQ7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtD
R0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzID0gKENHRXZlbnRGaWVsZCkxMzU7CitzdGF0aWMg
Y29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50U3dpcGVHZXN0dXJlRmxhZ0JpdHMgPSAoQ0dFdmVu
dEZpZWxkKTEzNjsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlRmxh
dm9yID0gKENHRXZlbnRGaWVsZCkxMzg7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2
ZW50R2VzdHVyZVpvb21EZWx0YVggPSAoQ0dFdmVudEZpZWxkKTEzOTsKK3N0YXRpYyBjb25zdCBD
R0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlWm9vbURlbHRhWSA9IChDR0V2ZW50RmllbGQpMTQw
Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVQcm9ncmVzcyA9IChD
R0V2ZW50RmllbGQpMTQyOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1
cmVTdGFnZSA9IChDR0V2ZW50RmllbGQpMTQzOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBr
Q0dFdmVudEdlc3R1cmVCZWhhdmlvciA9IChDR0V2ZW50RmllbGQpMTQ0Oworc3RhdGljIGNvbnN0
IENHRXZlbnRGaWVsZCBrQ0dFdmVudFRyYW5zaXRpb25Qcm9ncmVzcyA9IChDR0V2ZW50RmllbGQp
MTQ3Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudFN0YWdlUHJlc3N1cmUgPSAo
Q0dFdmVudEZpZWxkKTE0ODsKKworZW51bSB7CisgICAga0NHU0V2ZW50U2Nyb2xsV2hlZWwgPSAy
MiwKKyAgICBrQ0dTRXZlbnRab29tID0gMjgsCisgICAga0NHU0V2ZW50R2VzdHVyZSA9IDI5LAor
ICAgIGtDR1NFdmVudERvY2tDb250cm9sID0gMzAsCisgICAga0NHU0V2ZW50Rmx1aWRUb3VjaEdl
c3R1cmUgPSAzMSwKK307Cit0eXBlZGVmIHVpbnQzMl90IENHU0V2ZW50VHlwZTsKKworZW51bSB7
CisgICAga0NHSElERXZlbnRUeXBlR2VzdHVyZVN0YXJ0ZWQgPSA2MSwKKyAgICBrQ0dISURFdmVu
dFR5cGVHZXN0dXJlRW5kZWQgPSA2MiwKK307Cit0eXBlZGVmIHVpbnQzMl90IENHU0hJREV2ZW50
VHlwZTsKKworQ0dQb2ludCBDR0V2ZW50R2V0V2luZG93TG9jYXRpb24oQ0dFdmVudFJlZik7Cit2
b2lkIENHRXZlbnRTZXRXaW5kb3dMb2NhdGlvbihDR0V2ZW50UmVmLCBDR1BvaW50KTsKKworV1RG
X0VYVEVSTl9DX0VORAorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0lPS2l0U1BJLmggYi9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL3NwaS9JT0tpdFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyMDk3NjBjZTcxMTkxZjQ1
YmMxZDJkNDljMzIzNGJmNmFjN2M0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVu
bmVyU2hhcmVkL3NwaS9JT0tpdFNQSS5oCkBAIC0wLDAgKzEsMTc3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgorCisjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8SU9LaXQvaGlkL0lPSElERXZlbnQuaD4KKyNpbXBv
cnQgPElPS2l0L2hpZC9JT0hJREV2ZW50U3lzdGVtQ2xpZW50Lmg+CisjaW1wb3J0IDxJT0tpdC9o
aWQvSU9ISURVc2FnZVRhYmxlcy5oPgorCisjZWxzZQorCitXVEZfRVhURVJOX0NfQkVHSU4KKwor
I2lmZGVmIF9fTFA2NF9fCit0eXBlZGVmIGRvdWJsZSBJT0hJREZsb2F0OworI2Vsc2UKK3R5cGVk
ZWYgZmxvYXQgSU9ISURGbG9hdDsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBrSU9ISURFdmVudE9w
dGlvbk5vbmUgPSAwLAorfTsKKwordHlwZWRlZiBVSW50MzIgSU9PcHRpb25CaXRzOwordHlwZWRl
ZiB1aW50MzJfdCBJT0hJREV2ZW50T3B0aW9uQml0czsKK3R5cGVkZWYgdWludDMyX3QgSU9ISURF
dmVudEZpZWxkOworCit0eXBlZGVmIHN0cnVjdCBfX0lPSElERXZlbnRTeXN0ZW1DbGllbnQgKiBJ
T0hJREV2ZW50U3lzdGVtQ2xpZW50UmVmOwordHlwZWRlZiBzdHJ1Y3QgX19JT0hJREV2ZW50ICog
SU9ISURFdmVudFJlZjsKKworI2RlZmluZSBJT0hJREV2ZW50RmllbGRCYXNlKHR5cGUpICh0eXBl
IDw8IDE2KQorCitlbnVtIHsKKyAgICBrSElEUGFnZV9LZXlib2FyZE9yS2V5cGFkICAgICAgID0g
MHgwNywKKyAgICBrSElEUGFnZV9WZW5kb3JEZWZpbmVkU3RhcnQgICAgID0gMHhGRjAwCit9Owor
CitlbnVtIHsKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFJhbmdlICAgICAgID0gMTw8MCwKKyAg
ICBrSU9ISUREaWdpdGl6ZXJFdmVudFRvdWNoICAgICAgID0gMTw8MSwKKyAgICBrSU9ISUREaWdp
dGl6ZXJFdmVudFBvc2l0aW9uICAgID0gMTw8MiwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudElk
ZW50aXR5ICAgID0gMTw8NSwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudEF0dHJpYnV0ZSAgID0g
MTw8NiwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudENhbmNlbCAgICAgID0gMTw8NywKKyAgICBr
SU9ISUREaWdpdGl6ZXJFdmVudFN0YXJ0ICAgICAgID0gMTw8OCwKK307Cit0eXBlZGVmIHVpbnQz
Ml90IElPSElERGlnaXRpemVyRXZlbnRNYXNrOworCitlbnVtIHsKKyAgICBrSU9ISURFdmVudFR5
cGVOVUxMLAorICAgIGtJT0hJREV2ZW50VHlwZVZlbmRvckRlZmluZWQsCisgICAga0lPSElERXZl
bnRUeXBlS2V5Ym9hcmQgPSAzLAorICAgIGtJT0hJREV2ZW50VHlwZVJvdGF0aW9uID0gNSwKKyAg
ICBrSU9ISURFdmVudFR5cGVTY3JvbGwgPSA2LAorICAgIGtJT0hJREV2ZW50VHlwZVpvb20gPSA4
LAorICAgIGtJT0hJREV2ZW50VHlwZURpZ2l0aXplciA9IDExLAorICAgIGtJT0hJREV2ZW50VHlw
ZU5hdmlnYXRpb25Td2lwZSA9IDE2LAorICAgIGtJT0hJREV2ZW50VHlwZUZvcmNlID0gMzIsCisK
K307Cit0eXBlZGVmIHVpbnQzMl90IElPSElERXZlbnRUeXBlOworCitlbnVtIHsKKyAgICBrSU9I
SURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFVzYWdlUGFnZSA9IElPSElERXZlbnRGaWVsZEJhc2Uo
a0lPSElERXZlbnRUeXBlVmVuZG9yRGVmaW5lZCksCisgICAga0lPSElERXZlbnRGaWVsZFZlbmRv
ckRlZmluZWRSZXNlcnZlZCwKKyAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFJlc2Vy
dmVkMSwKKyAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZERhdGFMZW5ndGgsCisgICAg
a0lPSElERXZlbnRGaWVsZFZlbmRvckRlZmluZWREYXRhCit9OworCitlbnVtIHsKKyAgICBrSU9I
SURFdmVudEZpZWxkRGlnaXRpemVyWCA9IElPSElERXZlbnRGaWVsZEJhc2Uoa0lPSElERXZlbnRU
eXBlRGlnaXRpemVyKSwKKyAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyWSwKKyAgICBrSU9I
SURFdmVudEZpZWxkRGlnaXRpemVyTWFqb3JSYWRpdXMgPSBrSU9ISURFdmVudEZpZWxkRGlnaXRp
emVyWCArIDIwLAorICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJNaW5vclJhZGl1cywKKyAg
ICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVySXNEaXNwbGF5SW50ZWdyYXRlZCA9IGtJT0hJREV2
ZW50RmllbGREaWdpdGl6ZXJNYWpvclJhZGl1cyArIDUsCit9OworCitlbnVtIHsKKyAgICBrSU9I
SUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZUhhbmQgPSAzCit9OwordHlwZWRlZiB1aW50MzJfdCBJ
T0hJRERpZ2l0aXplclRyYW5zZHVjZXJUeXBlOworCitJT0hJREV2ZW50UmVmIElPSElERXZlbnRD
cmVhdGVEaWdpdGl6ZXJFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIElPSElERGlnaXRp
emVyVHJhbnNkdWNlclR5cGUsIHVpbnQzMl90LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVu
dE1hc2ssIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJ
REZsb2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsK
KworSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlRGlnaXRpemVyRmluZ2VyRXZlbnQoQ0ZB
bGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIElPSElERGlnaXRpemVy
RXZlbnRNYXNrLCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0
LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9ISURFdmVudE9wdGlvbkJpdHMp
OworCitJT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVGb3JjZUV2ZW50KENGQWxsb2NhdG9y
UmVmLCB1aW50NjRfdCwgdWludDMyX3QsIElPSElERmxvYXQsIHVpbnQzMl90LCBJT0hJREZsb2F0
LCBJT0hJREV2ZW50T3B0aW9uQml0cyk7CisKK0lPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0
ZUtleWJvYXJkRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMy
X3QsIGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsKKworSU9ISURFdmVudFJlZiBJT0hJREV2ZW50
Q3JlYXRlVmVuZG9yRGVmaW5lZEV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMy
X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDhfdCosIENGSW5kZXgsIElPSElERXZlbnRPcHRp
b25CaXRzKTsKKworSU9ISURFdmVudFR5cGUgSU9ISURFdmVudEdldFR5cGUoSU9ISURFdmVudFJl
Zik7CisKK3ZvaWQgSU9ISURFdmVudFNldEZsb2F0VmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURF
dmVudEZpZWxkLCBJT0hJREZsb2F0KTsKKworQ0ZJbmRleCBJT0hJREV2ZW50R2V0SW50ZWdlclZh
bHVlKElPSElERXZlbnRSZWYsIElPSElERXZlbnRGaWVsZCk7Cit2b2lkIElPSElERXZlbnRTZXRJ
bnRlZ2VyVmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxkLCBDRkluZGV4KTsKKwor
dm9pZCBJT0hJREV2ZW50QXBwZW5kRXZlbnQoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudFJlZiwg
SU9PcHRpb25CaXRzKTsKKworSU9ISURFdmVudFN5c3RlbUNsaWVudFJlZiBJT0hJREV2ZW50U3lz
dGVtQ2xpZW50Q3JlYXRlKENGQWxsb2NhdG9yUmVmKTsKKworI2RlZmluZSBrR1NFdmVudFBhdGhJ
bmZvSW5SYW5nZSAoMSA8PCAwKQorI2RlZmluZSBrR1NFdmVudFBhdGhJbmZvSW5Ub3VjaCAoMSA8
PCAxKQorCitlbnVtIHsKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRBID0gMHgwNCwKKyAgICBrSElE
VXNhZ2VfS2V5Ym9hcmQxID0gMHgxRSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQyID0gMHgxRiwK
KyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQzID0gMHgyMCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ0
ID0gMHgyMSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ1ID0gMHgyMiwKKyAgICBrSElEVXNhZ2Vf
S2V5Ym9hcmQ2ID0gMHgyMywKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ3ID0gMHgyNCwKKyAgICBr
SElEVXNhZ2VfS2V5Ym9hcmQ4ID0gMHgyNSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ5ID0gMHgy
NiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQwID0gMHgyNywKKyAgICBrSElEVXNhZ2VfS2V5Ym9h
cmRSZXR1cm5PckVudGVyID0gMHgyOCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRFc2NhcGUgPSAw
eDI5LAorICAgIGtISURVc2FnZV9LZXlib2FyZERlbGV0ZU9yQmFja3NwYWNlID0gMHgyQSwKKyAg
ICBrSElEVXNhZ2VfS2V5Ym9hcmRUYWIgPSAweDJCLAorICAgIGtISURVc2FnZV9LZXlib2FyZFNw
YWNlYmFyID0gMHgyQywKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRIeXBoZW4gPSAweDJELAorICAg
IGtISURVc2FnZV9LZXlib2FyZEVxdWFsU2lnbiA9IDB4MkUsCisgICAga0hJRFVzYWdlX0tleWJv
YXJkT3BlbkJyYWNrZXQgPSAweDJGLAorICAgIGtISURVc2FnZV9LZXlib2FyZENsb3NlQnJhY2tl
dCA9IDB4MzAsCisgICAga0hJRFVzYWdlX0tleWJvYXJkQmFja3NsYXNoID0gMHgzMSwKKyAgICBr
SElEVXNhZ2VfS2V5Ym9hcmRTZW1pY29sb24gPSAweDMzLAorICAgIGtISURVc2FnZV9LZXlib2Fy
ZFF1b3RlID0gMHgzNCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRHcmF2ZUFjY2VudEFuZFRpbGRl
ID0gMHgzNSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRDb21tYSA9IDB4MzYsCisgICAga0hJRFVz
YWdlX0tleWJvYXJkUGVyaW9kID0gMHgzNywKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRTbGFzaCA9
IDB4MzgsCisgICAga0hJRFVzYWdlX0tleWJvYXJkRjEgPSAweDNBLAorICAgIGtISURVc2FnZV9L
ZXlib2FyZEhvbWUgPSAweDRBLAorICAgIGtISURVc2FnZV9LZXlib2FyZFBhZ2VVcCA9IDB4NEIs
CisgICAga0hJRFVzYWdlX0tleWJvYXJkRW5kID0gMHg0RCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9h
cmRSaWdodEFycm93ID0gMHg0RiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0QXJyb3cgPSAw
eDUwLAorICAgIGtISURVc2FnZV9LZXlib2FyZERvd25BcnJvdyA9IDB4NTEsCisgICAga0hJRFVz
YWdlX0tleWJvYXJkVXBBcnJvdyA9IDB4NTIsCisgICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdENv
bnRyb2wgPSAweEUwLAorICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRTaGlmdCA9IDB4RTEsCisg
ICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdEFsdCA9IDB4RTIKK307CisKK1dURl9FWFRFUk5fQ19F
TkQKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCmluZGV4IDcwZDk0MDE0YzhkNzUwY2I3ZDY1NzA4MDQ1
MjhlMjA4Y2MyZjRhNTQuLjI0ZjI3YjI4OTE3YzBlMzRjYjdkZWI3MzY5NTkwMzc3YmE3YmVkNjEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCkBAIC03MSw3ICs3
MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdXNlTW92ZVRvKGRvdWJsZSB4LCBkb3VibGUgeSk7
CiAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSk7CiAgICAgdm9pZCBtb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBpbnQgcGhhc2Us
IGludCBtb21lbnR1bSk7Ci0gICAgdm9pZCBzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcyhpbnQgeCwgaW50IHksIGludCBwaGFzZSwgaW50IG1vbWVudHVtKTsKICAgICB2b2lk
IGNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSwgYm9vbCBwYWdlZCk7CiAKICAg
ICB2b2lkIGxlYXBGb3J3YXJkKGludCBtaWxsaXNlY29uZHMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250
cm9sbGVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwKaW5kZXggZjMyODBiYjk0YjA1NDM3MDI0MzAy
M2UyNTMzNmRlMWFmYWU3OTM5Zi4uZDViODAzODQ1OWU3NmI5ODkxNDk5OGM2MDliNmYzNjE2NzQw
N2Q4MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRs
CkBAIC0zNCw3ICszNCw2IEBAIGludGVyZmFjZSBFdmVudFNlbmRpbmdDb250cm9sbGVyIHsKICAg
ICB2b2lkIG1vdXNlRm9yY2VDaGFuZ2VkKGRvdWJsZSBmb3JjZSk7CiAgICAgdm9pZCBtb3VzZVNj
cm9sbEJ5KGxvbmcgeCwgbG9uZyB5KTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcyhsb25nIHgsIGxvbmcgeSwgRE9NU3RyaW5nIHBoYXNlLCBET01TdHJp
bmcgbW9tZW50dW0pOwotICAgIHZvaWQgc3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMobG9uZyB4LCBsb25nIHksIERPTVN0cmluZyBwaGFzZSwgRE9NU3RyaW5nIG1vbWVudHVt
KTsKICAgICB2b2lkIGNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGxvbmcgeCwgbG9uZyB5LCBvcHRp
b25hbCBib29sZWFuIHBhZ2VkKTsKICAgICBvYmplY3QgY29udGV4dENsaWNrKCk7CiAgICAgdm9p
ZCBzY2hlZHVsZUFzeW5jaHJvbm91c0NsaWNrKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVy
LmNwcAppbmRleCAwZmFhMmYzOTgzY2Y3YTkxZTc5MWZkZjc0NDFmNGNkOWQ5ZTlmMzUyLi40YzNm
ZWY4OTMwODc4ZTE0YTU5NTNiZTM3YjYyYjkzMDkyNTBmNDYwIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5n
Q29udHJvbGxlci5jcHAKQEAgLTQ4MSwzOCArNDgxLDYgQEAgdm9pZCBFdmVudFNlbmRpbmdDb250
cm9sbGVyOjptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGlu
dAogICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24o
KS5wYWdlKCktPnBhZ2UoKSwgRXZlbnRTZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5k
ZXJNZXNzYWdlQm9keS5nZXQoKSk7CiB9CiAKLXZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6
c3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBKU1N0
cmluZ1JlZiBwaGFzZVN0ciwgSlNTdHJpbmdSZWYgbW9tZW50dW1TdHIpCi17Ci0gICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkV2ZW50U2VuZGVyIikpOwotICAgIFdLUmV0YWluUHRy
PFdLTXV0YWJsZURpY3Rpb25hcnlSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkoQWRvcHRXSywg
V0tNdXRhYmxlRGljdGlvbmFyeUNyZWF0ZSgpKTsKLQotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBzdWJNZXNzYWdlS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJTdWJNZXNzYWdlIikpOwotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdl
TmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3dpcGVHZXN0dXJl
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMiKSk7Ci0gICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShF
dmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCBzdWJNZXNzYWdlS2V5LmdldCgpLCBzdWJNZXNz
YWdlTmFtZS5nZXQoKSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4geEtleShBZG9w
dFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWCIpKTsKLSAgICBXS1JldGFpblB0
cjxXS0RvdWJsZVJlZj4geFJlZihBZG9wdFdLLCBXS0RvdWJsZUNyZWF0ZSh4KSk7Ci0gICAgV0tE
aWN0aW9uYXJ5U2V0SXRlbShFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCB4S2V5LmdldCgp
LCB4UmVmLmdldCgpKTsKLQotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB5S2V5KEFkb3B0
V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJZIikpOwotICAgIFdLUmV0YWluUHRy
PFdLRG91YmxlUmVmPiB5UmVmKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKHkpKTsKLSAgICBXS0Rp
Y3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHlLZXkuZ2V0KCks
IHlSZWYuZ2V0KCkpOwotCi0gICAgdWludDY0X3QgcGhhc2UgPSBjZ0V2ZW50UGhhc2VGcm9tU3Ry
aW5nKHBoYXNlU3RyKTsKLSAgICB1aW50NjRfdCBtb21lbnR1bSA9IGNnRXZlbnRNb21lbnR1bVBo
YXNlRnJvbVN0cmluZyhtb21lbnR1bVN0cik7Ci0KLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gcGhhc2VLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlBoYXNl
IikpOwotICAgIFdLUmV0YWluUHRyPFdLVUludDY0UmVmPiBwaGFzZVJlZihBZG9wdFdLLCBXS1VJ
bnQ2NENyZWF0ZShwaGFzZSkpOwotICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oRXZlbnRTZW5kZXJN
ZXNzYWdlQm9keS5nZXQoKSwgcGhhc2VLZXkuZ2V0KCksIHBoYXNlUmVmLmdldCgpKTsKLQotICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtb21lbnR1bUtleShBZG9wdFdLLCBXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiTW9tZW50dW0iKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tVSW50
NjRSZWY+IG1vbWVudHVtUmVmKEFkb3B0V0ssIFdLVUludDY0Q3JlYXRlKG1vbWVudHVtKSk7Ci0g
ICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCBtb21l
bnR1bUtleS5nZXQoKSwgbW9tZW50dW1SZWYuZ2V0KCkpOwotCi0gICAgV0tCdW5kbGVQYWdlRm9y
Y2VSZXBhaW50KEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSk7IC8v
IFRyaWdnZXJzIGEgc2Nyb2xsaW5nIHRyZWUgY29tbWl0LgotICAgIFdLQnVuZGxlUGFnZVBvc3RN
ZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgRXZlbnRT
ZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSk7Ci19
Ci0KIHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6Y29udGludW91c01vdXNlU2Nyb2xsQnko
aW50IHgsIGludCB5LCBib29sIHBhZ2VkKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBFdmVudFNlbmRlck1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJFdmVudFNlbmRlciIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgKaW5kZXgg
YzIzYzM2ZGZhYzU1ODRmODUxYzVmNjBmYjRkNTYyMmNmZjQyMDA0YS4uMjhmY2U5Y2U2Y2JlNTdj
M2ZmOGU4Zjk4M2ViYzQyYjRlMDhiMGQyZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgK
QEAgLTUzLDcgKzUzLDYgQEAgcHVibGljOgogICAgIHZvaWQgbW91c2VGb3JjZUNoYW5nZWQoZG91
YmxlIGZvcmNlKTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5KTsKICAgICB2
b2lkIG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHks
IEpTU3RyaW5nUmVmIHBoYXNlLCBKU1N0cmluZ1JlZiBtb21lbnR1bSk7Ci0gICAgdm9pZCBzd2lw
ZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIEpTU3RyaW5n
UmVmIHBoYXNlLCBKU1N0cmluZ1JlZiBtb21lbnR1bSk7CiAgICAgdm9pZCBjb250aW51b3VzTW91
c2VTY3JvbGxCeShpbnQgeCwgaW50IHksIGJvb2wgcGFnZWQpOwogICAgIEpTVmFsdWVSZWYgY29u
dGV4dENsaWNrKCk7CiAgICAgdm9pZCBsZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50
U2VuZGVyUHJveHlJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2lvcy9FdmVudFNlbmRlclByb3h5SU9TLm1tCmluZGV4IGFjNTRhMWM2ZDZkOGMyYzUwZTA4MWRi
NWJkYjgyMWQzZTYwOGVjMmQuLmNhYjNmMThiMzY1OWY0OTE2YmQ1MDA4NzkyODZkNmEyN2MwYzlm
OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9z
L0V2ZW50U2VuZGVyUHJveHlJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbQpAQCAtMTAzLDExICsxMDMsNiBA
QCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcyhpbnQgeCwgaW50IHksIGludAogICAgIC8vIFdyaXRlIG1lLgogfQogCi12b2lkIEV2
ZW50U2VuZGVyUHJveHk6OnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGlu
dCwgaW50LCBpbnQsIGludCkKLXsKLSAgICAvLyBXcml0ZSBtZS4KLX0KLQogdm9pZCBFdmVudFNl
bmRlclByb3h5Ojpjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHksIGJvb2wgcGFn
ZWQpCiB7CiAgICAgLy8gV3JpdGUgbWUuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IGQyZTQ5YmI1ZGE4OGViZDM3ZGEwZWRmNmIyMmQzNTFmN2EyYWVmZDku
LmM3MzhkMWUwMWI5Y2M3NWI5ZTFjNDVjMTc5NzU3ZWI5MDEwOTdlZGEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMjU4LDIzICsxMjU4LDYgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tT
dHJpbmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0g
ICAgICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHN1Yk1lc3NhZ2VOYW1lLCAi
U3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMiKSkgewotICAgICAgICAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHhLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJYIikpOwotICAgICAgICAgICAgZG91YmxlIHggPSBXS0RvdWJsZUdldFZh
bHVlKHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1l
c3NhZ2VCb2R5RGljdGlvbmFyeSwgeEtleS5nZXQoKSkpKTsKLQotICAgICAgICAgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IHlLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJZIikpOwotICAgICAgICAgICAgZG91YmxlIHkgPSBXS0RvdWJsZUdldFZhbHVlKHN0
YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VC
b2R5RGljdGlvbmFyeSwgeUtleS5nZXQoKSkpKTsKLQotICAgICAgICAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHBoYXNlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiUGhhc2UiKSk7Ci0gICAgICAgICAgICBpbnQgcGhhc2UgPSBzdGF0aWNfY2FzdDxpbnQ+
KFdLVUludDY0R2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+KFdLRGljdGlvbmFyeUdl
dEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBwaGFzZUtleS5nZXQoKSkpKSk7Ci0g
ICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbW9tZW50dW1LZXkgPSBhZG9wdFdL
KFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJNb21lbnR1bSIpKTsKLSAgICAgICAgICAg
IGludCBtb21lbnR1bSA9IHN0YXRpY19jYXN0PGludD4oV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNf
Y2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURp
Y3Rpb25hcnksIG1vbWVudHVtS2V5LmdldCgpKSkpKTsKLQotICAgICAgICAgICAgbV9ldmVudFNl
bmRlclByb3h5LT5zd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyh4LCB5LCBw
aGFzZSwgbW9tZW50dW0pOwotCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggOWRiOThlYTllMDliOTlhNmZjN2ExNzBlOWUwNDBmNDY2YjJhNDUw
MC4uNTFmZDI1YTU3NmE1MmI2ZjljOGVmMjlkMGIzYmVlNmQ3ZGEwNGFkNSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzLDYgKzYzLDExIEBACiAJCTI5QThGQ0REMTQ1
RjAzMzcwMDkwNDVBNiAvKiBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBOEZDRTEzNDVFNzAy
MTAwNkFBNUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHAgKi87IH07CiAJ
CTI5QThGQ0UyMTQ1RjAzN0IwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QThG
Q0UxMTQ1RjAzN0IwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCAq
LzsgfTsKIAkJMjlBOEZDRTUxNDVGMDQ2NDAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyUmFuZ2VNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyOUE4RkNFNDE0NUYwNDY0MDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJS
YW5nZU1hYy5tbSAqLzsgfTsKKwkJMkRCNjE4N0UxRDdENThENDAwOTc4RDE5IC8qIENvcmVHcmFw
aGljc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkRCNjE4N0QxRDdENThENDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQSS5oICovOyB9OworCQky
REQ0QzQ5QTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ0QzQ5ODFENkU3RDNCMDAw
NzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLmggKi87IH07CisJCTJERDRDNDlCMUQ2RTdEM0Iw
MDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ0QzQ5OTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRT
ZXJpYWxpemVyTWFjLm1tICovOyB9OworCQkyREZBOTg0ODFEN0Y3MENGMDBBRkYyQzkgLyogU2hh
cmVkRXZlbnRTdHJlYW1zTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyREZBOTg0NjFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1z
TWFjLmggKi87IH07CisJCTJERkE5ODQ5MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0
cmVhbXNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyREZBOTg0NzFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tICov
OyB9OwogCQkyRTM0QzkwMDE4QjY4ODA4MDAwMDY3QkIgLyogV2ViS2l0VGVzdFJ1bm5lckluamVj
dGVkQnVuZGxlLmJ1bmRsZSBpbiBDb3B5IFBsdWctSW5zICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMjUxODYyMTFEMTVENTQwMDJFQkMwMSAvKiBXZWJLaXRUZXN0UnVubmVy
SW5qZWN0ZWRCdW5kbGUuYnVuZGxlICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKENvZGVT
aWduT25Db3B5LCBSZW1vdmVIZWFkZXJzT25Db3B5LCApOyB9OyB9OwogCQkyRTYzRUQ4QTE4OTFB
RDdFMDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYzRUQ3NTE4OTFBQ0U5MDAyQTdB
RkMgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gKi87IH07CiAJCTJFNjNFRDhCMTg5
MUFEN0UwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNjNFRDc3MTg5MUFDRTkwMDJB
N0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbSAqLzsgfTsKQEAgLTIxMSw3ICsy
MTYsNyBAQAogCQkwRkVCOTBBMzE5MDVCQzZBMDAwRkRCRjMgLyogQ3Jhc2hSZXBvcnRlckluZm8u
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBDcmFzaFJlcG9ydGVy
SW5mby5tbTsgcGF0aCA9IGNvY29hL0NyYXNoUmVwb3J0ZXJJbmZvLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkVCRjg1ODFCQjYxREYyMDAyODcyMkQgLyogSElERXZlbnRHZW5l
cmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSElERXZlbnRHZW5lcmF0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQkY4NTkxQkI2MURGMjAwMjg3
MjJEIC8qIEhJREV2ZW50R2VuZXJhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gSElERXZlbnRHZW5lcmF0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTBGRUJGODVCMUJCNjJBMzcwMDI4NzIyRCAvKiBJT0tpdFNQSS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJT0tpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkVCRjg1QjFC
QjYyQTM3MDAyODcyMkQgLyogSU9LaXRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSU9LaXRTUEkuaDsg
cGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0lPS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGRUJGODVDMUJCNjJENDYwMDI4NzIyRCAvKiBVSUtpdFNQSS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBVSUtpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QTMzMjYwNTFCNzUzOTY1MDBGODlGNjIgLyogVGVzdE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGVzdE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMjExQzcxQkNB
MTA3MzAwQjIxMDFGIC8qIEZvbnRXaXRoRmVhdHVyZXMub3RmICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEZvbnRXaXRoRmVhdHVy
ZXMub3RmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQwLDcgKzI0NSwxMiBAQAog
CQkyOUE4RkNFMTM0NUU3MDIxMDA2QUE1QTYgLyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJh
bmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5
QThGQ0UxMzQ1RTcwMjEwMDZBQTVBNyAvKiBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlclJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QThGQ0U0MTQ1RjA0
NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJS
YW5nZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRCNjE4N0QxRDdENThE
NDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBDb3JlR3JhcGhpY3NTUEkuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvc3Bp
L0NvcmVHcmFwaGljc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRENFMkNE
MTFCODQ1MjQ1MDBDN0Y4MzIgLyogVGVzdENvbnRyb2xsZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRlc3RDb250cm9sbGVyQ29jb2EubW07IHBhdGgg
PSBjb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyREQ0QzQ5ODFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEV2ZW50U2VyaWFsaXplck1hYy5oOyBwYXRo
ID0gbWFjL0V2ZW50U2VyaWFsaXplck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyREQ0QzQ5OTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gRXZlbnRTZXJpYWxpemVyTWFjLm1t
OyBwYXRoID0gbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkRGQTk4NDYxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01h
Yy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTaGFyZWRFdmVudFN0cmVhbXNN
YWMuaDsgcGF0aCA9IG1hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkRGQTk4NDcxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3Ry
ZWFtc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFNoYXJl
ZEV2ZW50U3RyZWFtc01hYy5tbTsgcGF0aCA9IG1hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNjNFRDc1MTg5MUFDRTkwMDJBN0FGQyAv
KiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRTYzRUQ3NjE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkU2M0VENzcxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00NzYsNyArNDg2LDkgQEAKIAkJMEY3M0I1NDcxQkE3ODJGRTAwNEIzRUY0IC8qIFVJU2NyaXB0
Q29udGV4dCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
MkRCNjE4N0YxRDdENTk4ODAwOTc4RDE5IC8qIHNwaSAqLywKIAkJCQkwRjczQjU0QjFCQTc4MzUw
MDA0QjNFRjQgLyogQmluZGluZ3MgKi8sCisJCQkJMkRENEM0OTcxRDZFN0QzQjAwMDczNzlDIC8q
IEV2ZW50IFNlcmlhbGl6YXRpb24gKi8sCiAJCQkJMEY3M0I1NEUxQkE3ODk1NDAwNEIzRUY0IC8q
IERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkwRjE4RTZERDFENkI5QUFGMDAyN0U1NDcgLyogVUlT
Y3JpcHRDb250ZXh0LmNwcCAqLywKIAkJCQkwRjE4RTZERTFENkI5QUFGMDAyN0U1NDcgLyogVUlT
Y3JpcHRDb250ZXh0LmggKi8sCkBAIC01NTQsNiArNTY2LDM1IEBACiAJCQluYW1lID0gQWNjZXNz
aWJpbGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTJEQjYxODdGMUQ3
RDU5ODgwMDk3OEQxOSAvKiBzcGkgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCTJEQjYxODdEMUQ3RDU4RDQwMDk3OEQxOSAvKiBDb3JlR3JhcGhpY3NTUEku
aCAqLywKKwkJCQkwRkVCRjg1QjFCQjYyQTM3MDAyODcyMkQgLyogSU9LaXRTUEkuaCAqLywKKwkJ
CSk7CisJCQluYW1lID0gc3BpOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJ
MkRENEM0OTcxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50IFNlcmlhbGl6YXRpb24gKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTJERkE5ODRBMUQ3Rjc5RTAw
MEFGRjJDOSAvKiBtYWMgKi8sCisJCQkpOworCQkJbmFtZSA9ICJFdmVudCBTZXJpYWxpemF0aW9u
IjsKKwkJCXBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbjsKKwkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTJERkE5ODRBMUQ3Rjc5RTAwMEFGRjJD
OSAvKiBtYWMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJ
CTJERDRDNDk4MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMuaCAqLywKKwkJ
CQkyREQ0QzQ5OTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tICovLAor
CQkJCTJERkE5ODQ2MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaCAq
LywKKwkJCQkyREZBOTg0NzFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFj
Lm1tICovLAorCQkJKTsKKwkJCW5hbWUgPSBtYWM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OworCQl9OwogCQkyRTYzRUQ3NDE4OTFBQ0U5MDAyQTdBRkMgLyogaW9zICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTU5MSw3ICs2MzIsNiBAQAogCQkJY2hp
bGRyZW4gPSAoCiAJCQkJMEZFQkY4NTgxQkI2MURGMjAwMjg3MjJEIC8qIEhJREV2ZW50R2VuZXJh
dG9yLmggKi8sCiAJCQkJMEZFQkY4NTkxQkI2MURGMjAwMjg3MjJEIC8qIEhJREV2ZW50R2VuZXJh
dG9yLm1tICovLAotCQkJCTBGRUJGODVCMUJCNjJBMzcwMDI4NzIyRCAvKiBJT0tpdFNQSS5oICov
LAogCQkJCTJFRTUyRDEzMTg5MEE5RkIwMDEwRUQyMSAvKiBQbGF0Zm9ybVdlYlZpZXdJT1MubW0g
Ki8sCiAJCQkJMkVFNTJEMTQxODkwQTlGQjAwMTBFRDIxIC8qIFRlc3RDb250cm9sbGVySU9TLm1t
ICovLAogCQkJCTBGRUJGODVDMUJCNjJENDYwMDI4NzIyRCAvKiBVSUtpdFNQSS5oICovLApAQCAt
Nzc4LDcgKzgxOCwxMCBAQAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJMkRCNjE4N0UxRDdE
NThENDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3
M0I1NTIxQkE3ODk2ODAwNEIzRUY0IC8qIEpTVUlTY3JpcHRDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkyREZBOTg0ODFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1z
TWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQkyREQ0QzQ5QTFENkU3RDNCMDAwNzM3OUMgLyogRXZl
bnRTZXJpYWxpemVyTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTk4Niw4ICsxMDI5LDEwIEBACiAJ
CQkJMEY3M0I1NTExQkE3ODk2ODAwNEIzRUY0IC8qIEpTVUlTY3JpcHRDb250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGMThFNzE4MUQ2QkM0NTYwMDI3RTU0NyAvKiBKU1dyYXBwZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0MxQjlBRTBGRTAwNzQ0QUVCIC8qIE9wdGlv
bnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkRENEM0OUIxRDZFN0QzQjAwMDczNzlDIC8qIEV2
ZW50U2VyaWFsaXplck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDQwMUI5QUUxMzEw
MDc0NEFFQiAvKiBQaXhlbER1bXBTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExODUx
MDQxMUI5QUUxMzgwMDc0NEFFQiAvKiBUZXN0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkyREZBOTg0OTFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0IxQjlBRTBFMjAwNzQ0QUVCIC8qIFRlc3RDb250
cm9sbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTA0MjFCOUFFMTNFMDA3NDRB
RUIgLyogVGVzdEludm9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0QxQjlB
RTEwNjAwNzQ0QUVCIC8qIFRlc3RJbnZvY2F0aW9uQ0cuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tpdFNQSS5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvSU9LaXRTUEkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggN2EwZDZhMTVjZDUxZDI1MjIwZGFkMTdkMWUyMzFmNjNmYWFlYWUzYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2lvcy9JT0tpdFNQSS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTc4ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIElPS2l0U1BJX2gKLSNkZWZpbmUgSU9LaXRTUElfaAotCi0jaW1wb3J0IDx3
dGYvUGxhdGZvcm0uaD4KLQotI2lmIFBMQVRGT1JNKElPUykKLQotI2lmIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCi0KLSNpbXBvcnQgPElPS2l0L2hpZC9JT0hJREV2ZW50Lmg+Ci0jaW1wb3J0IDxJ
T0tpdC9oaWQvSU9ISURFdmVudFN5c3RlbUNsaWVudC5oPgotI2ltcG9ydCA8SU9LaXQvaGlkL0lP
SElEVXNhZ2VUYWJsZXMuaD4KLQotI2Vsc2UKLQotV1RGX0VYVEVSTl9DX0JFR0lOCi0KLSNpZmRl
ZiBfX0xQNjRfXwotdHlwZWRlZiBkb3VibGUgSU9ISURGbG9hdDsKLSNlbHNlCi10eXBlZGVmIGZs
b2F0IElPSElERmxvYXQ7Ci0jZW5kaWYKLQotZW51bSB7Ci0gICAga0lPSElERXZlbnRPcHRpb25O
b25lID0gMCwKLX07Ci0KLXR5cGVkZWYgVUludDMyIElPT3B0aW9uQml0czsKLXR5cGVkZWYgdWlu
dDMyX3QgSU9ISURFdmVudE9wdGlvbkJpdHM7Ci10eXBlZGVmIHVpbnQzMl90IElPSElERXZlbnRG
aWVsZDsKLQotdHlwZWRlZiBzdHJ1Y3QgX19JT0hJREV2ZW50U3lzdGVtQ2xpZW50ICogSU9ISURF
dmVudFN5c3RlbUNsaWVudFJlZjsKLXR5cGVkZWYgc3RydWN0IF9fSU9ISURFdmVudCAqIElPSElE
RXZlbnRSZWY7Ci0KLSNkZWZpbmUgSU9ISURFdmVudEZpZWxkQmFzZSh0eXBlKSAodHlwZSA8PCAx
NikKLQotZW51bSB7Ci0gICAga0hJRFBhZ2VfS2V5Ym9hcmRPcktleXBhZCAgICAgICA9IDB4MDcs
Ci0gICAga0hJRFBhZ2VfVmVuZG9yRGVmaW5lZFN0YXJ0ICAgICA9IDB4RkYwMAotfTsKLQotZW51
bSB7Ci0gICAga0lPSElERGlnaXRpemVyRXZlbnRSYW5nZSAgICAgICA9IDE8PDAsCi0gICAga0lP
SElERGlnaXRpemVyRXZlbnRUb3VjaCAgICAgICA9IDE8PDEsCi0gICAga0lPSElERGlnaXRpemVy
RXZlbnRQb3NpdGlvbiAgICA9IDE8PDIsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRJZGVudGl0
eSAgICA9IDE8PDUsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRBdHRyaWJ1dGUgICA9IDE8PDYs
Ci0gICAga0lPSElERGlnaXRpemVyRXZlbnRDYW5jZWwgICAgICA9IDE8PDcsCi0gICAga0lPSElE
RGlnaXRpemVyRXZlbnRTdGFydCAgICAgICA9IDE8PDgsCi19OwotdHlwZWRlZiB1aW50MzJfdCBJ
T0hJRERpZ2l0aXplckV2ZW50TWFzazsKLQotZW51bSB7Ci0gICAga0lPSElERXZlbnRUeXBlTlVM
TCwKLSAgICBrSU9ISURFdmVudFR5cGVWZW5kb3JEZWZpbmVkLAotICAgIGtJT0hJREV2ZW50VHlw
ZUtleWJvYXJkID0gMywKLSAgICBrSU9ISURFdmVudFR5cGVEaWdpdGl6ZXIgPSAxMSwKLX07Ci10
eXBlZGVmIHVpbnQzMl90IElPSElERXZlbnRUeXBlOwotCi1lbnVtIHsKLSAgICBrSU9ISURFdmVu
dEZpZWxkVmVuZG9yRGVmaW5lZFVzYWdlUGFnZSA9IElPSElERXZlbnRGaWVsZEJhc2Uoa0lPSElE
RXZlbnRUeXBlVmVuZG9yRGVmaW5lZCksCi0gICAga0lPSElERXZlbnRGaWVsZFZlbmRvckRlZmlu
ZWRSZXNlcnZlZCwKLSAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFJlc2VydmVkMSwK
LSAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZERhdGFMZW5ndGgsCi0gICAga0lPSElE
RXZlbnRGaWVsZFZlbmRvckRlZmluZWREYXRhCi19OwotCi1lbnVtIHsKLSAgICBrSU9ISURFdmVu
dEZpZWxkRGlnaXRpemVyWCA9IElPSElERXZlbnRGaWVsZEJhc2Uoa0lPSElERXZlbnRUeXBlRGln
aXRpemVyKSwKLSAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyWSwKLSAgICBrSU9ISURFdmVu
dEZpZWxkRGlnaXRpemVyTWFqb3JSYWRpdXMgPSBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyWCAr
IDIwLAotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJNaW5vclJhZGl1cywKLSAgICBrSU9I
SURFdmVudEZpZWxkRGlnaXRpemVySXNEaXNwbGF5SW50ZWdyYXRlZCA9IGtJT0hJREV2ZW50Rmll
bGREaWdpdGl6ZXJNYWpvclJhZGl1cyArIDUsCi19OwotCi1lbnVtIHsKLSAgICBrSU9ISUREaWdp
dGl6ZXJUcmFuc2R1Y2VyVHlwZUhhbmQgPSAzCi19OwotdHlwZWRlZiB1aW50MzJfdCBJT0hJRERp
Z2l0aXplclRyYW5zZHVjZXJUeXBlOwotCi1JT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVE
aWdpdGl6ZXJFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIElPSElERGlnaXRpemVyVHJh
bnNkdWNlclR5cGUsIHVpbnQzMl90LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ss
IHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0
LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsKLQotSU9I
SURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlRGlnaXRpemVyRmluZ2VyRXZlbnQoQ0ZBbGxvY2F0
b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIElPSElERGlnaXRpemVyRXZlbnRN
YXNrLCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJ
REZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOwotCi1J
T0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVGb3JjZUV2ZW50KENGQWxsb2NhdG9yUmVmLCB1
aW50NjRfdCwgdWludDMyX3QsIElPSElERmxvYXQsIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJ
REV2ZW50T3B0aW9uQml0cyk7Ci0KLUlPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZUtleWJv
YXJkRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIGJv
b2xlYW5fdCwgSU9PcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRl
VmVuZG9yRGVmaW5lZEV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIHVp
bnQzMl90LCB1aW50MzJfdCwgdWludDhfdCosIENGSW5kZXgsIElPSElERXZlbnRPcHRpb25CaXRz
KTsKLQotSU9ISURFdmVudFR5cGUgSU9ISURFdmVudEdldFR5cGUoSU9ISURFdmVudFJlZik7Ci0K
LXZvaWQgSU9ISURFdmVudFNldEZsb2F0VmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZp
ZWxkLCBJT0hJREZsb2F0KTsKLQotQ0ZJbmRleCBJT0hJREV2ZW50R2V0SW50ZWdlclZhbHVlKElP
SElERXZlbnRSZWYsIElPSElERXZlbnRGaWVsZCk7Ci12b2lkIElPSElERXZlbnRTZXRJbnRlZ2Vy
VmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxkLCBDRkluZGV4KTsKLQotdm9pZCBJ
T0hJREV2ZW50QXBwZW5kRXZlbnQoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudFJlZiwgSU9PcHRp
b25CaXRzKTsKLQotSU9ISURFdmVudFN5c3RlbUNsaWVudFJlZiBJT0hJREV2ZW50U3lzdGVtQ2xp
ZW50Q3JlYXRlKENGQWxsb2NhdG9yUmVmKTsKLQotI2RlZmluZSBrR1NFdmVudFBhdGhJbmZvSW5S
YW5nZSAoMSA8PCAwKQotI2RlZmluZSBrR1NFdmVudFBhdGhJbmZvSW5Ub3VjaCAoMSA8PCAxKQot
Ci1lbnVtIHsKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRBID0gMHgwNCwKLSAgICBrSElEVXNhZ2Vf
S2V5Ym9hcmQxID0gMHgxRSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQyID0gMHgxRiwKLSAgICBr
SElEVXNhZ2VfS2V5Ym9hcmQzID0gMHgyMCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ0ID0gMHgy
MSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ1ID0gMHgyMiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9h
cmQ2ID0gMHgyMywKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ3ID0gMHgyNCwKLSAgICBrSElEVXNh
Z2VfS2V5Ym9hcmQ4ID0gMHgyNSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ5ID0gMHgyNiwKLSAg
ICBrSElEVXNhZ2VfS2V5Ym9hcmQwID0gMHgyNywKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRSZXR1
cm5PckVudGVyID0gMHgyOCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRFc2NhcGUgPSAweDI5LAot
ICAgIGtISURVc2FnZV9LZXlib2FyZERlbGV0ZU9yQmFja3NwYWNlID0gMHgyQSwKLSAgICBrSElE
VXNhZ2VfS2V5Ym9hcmRUYWIgPSAweDJCLAotICAgIGtISURVc2FnZV9LZXlib2FyZFNwYWNlYmFy
ID0gMHgyQywKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRIeXBoZW4gPSAweDJELAotICAgIGtISURV
c2FnZV9LZXlib2FyZEVxdWFsU2lnbiA9IDB4MkUsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkT3Bl
bkJyYWNrZXQgPSAweDJGLAotICAgIGtISURVc2FnZV9LZXlib2FyZENsb3NlQnJhY2tldCA9IDB4
MzAsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkQmFja3NsYXNoID0gMHgzMSwKLSAgICBrSElEVXNh
Z2VfS2V5Ym9hcmRTZW1pY29sb24gPSAweDMzLAotICAgIGtISURVc2FnZV9LZXlib2FyZFF1b3Rl
ID0gMHgzNCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRHcmF2ZUFjY2VudEFuZFRpbGRlID0gMHgz
NSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRDb21tYSA9IDB4MzYsCi0gICAga0hJRFVzYWdlX0tl
eWJvYXJkUGVyaW9kID0gMHgzNywKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRTbGFzaCA9IDB4Mzgs
Ci0gICAga0hJRFVzYWdlX0tleWJvYXJkRjEgPSAweDNBLAotICAgIGtISURVc2FnZV9LZXlib2Fy
ZEhvbWUgPSAweDRBLAotICAgIGtISURVc2FnZV9LZXlib2FyZFBhZ2VVcCA9IDB4NEIsCi0gICAg
a0hJRFVzYWdlX0tleWJvYXJkRW5kID0gMHg0RCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRSaWdo
dEFycm93ID0gMHg0RiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0QXJyb3cgPSAweDUwLAot
ICAgIGtISURVc2FnZV9LZXlib2FyZERvd25BcnJvdyA9IDB4NTEsCi0gICAga0hJRFVzYWdlX0tl
eWJvYXJkVXBBcnJvdyA9IDB4NTIsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdENvbnRyb2wg
PSAweEUwLAotICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRTaGlmdCA9IDB4RTEsCi0gICAga0hJ
RFVzYWdlX0tleWJvYXJkTGVmdEFsdCA9IDB4RTIKLX07Ci0KLVdURl9FWFRFUk5fQ19FTkQKLQot
I2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0KLSNlbmRpZiAvLyBQTEFURk9STShJ
T1MpCi0KLSNlbmRpZiAvLyBJT0tpdFNQSV9oCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9t
YWMvRXZlbnRTZW5kZXJQcm94eS5tbQppbmRleCAxOWI1YTM3YjM2ZGQxMmI3NDAyMjFlMzYzN2Iw
NGIxZjY4MjUxNGRmLi44YzZiOWRjYjBmNTQwMTMwZjNjYjIyZDNlZjU0YzdmMGZiMWU5NDNjIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1t
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0KQEAg
LTQ1LDE3ICs0NSw2IEBACiAtICh2b2lkKV9wb3N0RGVsYXllZDsKIEBlbmQKIAotI2lmIGRlZmlu
ZWQoX19MUDY0X18pCi1zdHJ1Y3QgV0tUUkNHU0V2ZW50UmVjb3JkIHsKLSAgICBjaGFyIG9mZnNl
dDFbMTUwXTsKLSAgICB1aW50OF90IHBoYXNlOwotICAgIGNoYXIgb2Zmc2V0MlsxM107Ci0gICAg
ZmxvYXQgZGVsdGFYOwotICAgIGZsb2F0IGRlbHRhWTsKLSAgICBjaGFyIG9mZnNldDNbNzZdOwot
fSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKLSNlbmRpZgotCiBAaW50ZXJmYWNlIEV2ZW50U2Vu
ZGVyU3ludGhldGljRXZlbnQgOiBOU0V2ZW50IHsKIEBwdWJsaWMKICAgICBOU1BvaW50IF9ldmVu
dFNlbmRlcl9sb2NhdGlvbkluV2luZG93OwpAQCAtNzAsMTEgKzU5LDYgQEAgc3RydWN0IFdLVFJD
R1NFdmVudFJlY29yZCB7CiAgICAgc2hvcnQgX2V2ZW50U2VuZGVyX3N1YnR5cGU7CiAgICAgTlNF
dmVudFR5cGUgX2V2ZW50U2VuZGVyX3R5cGU7CiAgICAgTlNXaW5kb3cgKl9ldmVudFNlbmRlcl93
aW5kb3c7Ci0KLQotI2lmIGRlZmluZWQoX19MUDY0X18pCi0gICAgV0tUUkNHU0V2ZW50UmVjb3Jk
IF9ldmVudFNlbmRlcl9jZ3NFdmVudFJlY29yZDsKLSNlbmRpZgogfQogCiAtIChpZClpbml0UHJl
c3N1cmVFdmVudEF0TG9jYXRpb246KE5TUG9pbnQpbG9jYXRpb24gZ2xvYmFsTG9jYXRpb246KE5T
UG9pbnQpZ2xvYmFsTG9jYXRpb24gc3RhZ2U6KE5TSW50ZWdlcilzdGFnZSBwcmVzc3VyZTooZmxv
YXQpcHJlc3N1cmUgc3RhZ2VUcmFuc2l0aW9uOihmbG9hdClzdGFnZVRyYW5zaXRpb24gcGhhc2U6
KE5TRXZlbnRQaGFzZSlwaGFzZSB0aW1lOihOU1RpbWVJbnRlcnZhbCl0aW1lIGV2ZW50TnVtYmVy
OihOU0ludGVnZXIpZXZlbnROdW1iZXIgd2luZG93OihOU1dpbmRvdyAqKXdpbmRvdzsKQEAgLTE2
NywxMyArMTUxLDYgQEAgc3RydWN0IFdLVFJDR1NFdmVudFJlY29yZCB7CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi0jaWYgZGVmaW5lZChfX0xQNjRfXykKLS0gKFdLVFJDR1NFdmVudFJlY29yZClf
Y2dzRXZlbnRSZWNvcmQKLXsKLSAgICByZXR1cm4gX2V2ZW50U2VuZGVyX2Nnc0V2ZW50UmVjb3Jk
OwotfQotI2VuZGlmCi0KIC0gKE5TV2luZG93ICopd2luZG93CiB7CiAgICAgcmV0dXJuIF9ldmVu
dFNlbmRlcl93aW5kb3c7CkBAIC04OTAsNTAgKzg2Nyw0IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwg
aW50CiAgICAgfQogfQogCi1zdGF0aWMgTlNFdmVudFBoYXNlIG5zRXZlbnRQaGFzZUZyb21DR0V2
ZW50UGhhc2UoaW50IHBoYXNlKQotewotICAgIHN3aXRjaCAocGhhc2UpIHsKLSAgICBjYXNlIDA6
IC8vIGtDR1NHZXN0dXJlUGhhc2VOb25lCi0gICAgICAgIHJldHVybiBOU0V2ZW50UGhhc2VOb25l
OwotICAgIGNhc2UgMTogLy8ga0NHU0dlc3R1cmVQaGFzZUJlZ2FuCi0gICAgICAgIHJldHVybiBO
U0V2ZW50UGhhc2VCZWdhbjsKLSAgICBjYXNlIDI6IC8vIGtDR1NHZXN0dXJlUGhhc2VDaGFuZ2Vk
Ci0gICAgICAgIHJldHVybiBOU0V2ZW50UGhhc2VDaGFuZ2VkOwotICAgIGNhc2UgNDogLy8ga0NH
U0dlc3R1cmVQaGFzZUVuZGVkCi0gICAgICAgIHJldHVybiBOU0V2ZW50UGhhc2VFbmRlZDsKLSAg
ICBjYXNlIDg6IC8vIGtDR1NHZXN0dXJlUGhhc2VDYW5jZWxsZWQKLSAgICAgICAgcmV0dXJuIE5T
RXZlbnRQaGFzZUNhbmNlbGxlZDsKLSAgICBjYXNlIDEyODogLy8ga0NHU0dlc3R1cmVQaGFzZU1h
eUJlZ2luCi0gICAgICAgIHJldHVybiBOU0V2ZW50UGhhc2VNYXlCZWdpbjsKLSAgICB9Ci0KLSAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gTlNFdmVudFBoYXNlTm9uZTsKLX0K
LQotdm9pZCBFdmVudFNlbmRlclByb3h5Ojpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcyhpbnQgeCwgaW50IHksIGludCBwaGFzZSwgaW50IG1vbWVudHVtKQotewotICAgIFJl
dGFpblB0cjxFdmVudFNlbmRlclN5bnRoZXRpY0V2ZW50PiBldmVudCA9IGFkb3B0TlMoW1tFdmVu
dFNlbmRlclN5bnRoZXRpY0V2ZW50IGFsbG9jXSBpbml0XSk7Ci0KLSAgICAvLyAibWF5QmVnaW4i
IGEgc3dpcGUgaXMgYWN0dWFsbHkgYSBzY3JvbGwgd2hlZWwgZXZlbnQuCi0gICAgZXZlbnQtPl9l
dmVudFNlbmRlcl90eXBlID0gKHBoYXNlID09IDEyOCkgPyBOU1Njcm9sbFdoZWVsIDogTlNFdmVu
dFR5cGVHZXN0dXJlOwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfc3VidHlwZSA9IDY7IC8vIGtJ
T0hJREV2ZW50VHlwZVNjcm9sbAotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfbG9jYXRpb25Jbldp
bmRvdyA9IE5TTWFrZVBvaW50KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55KTsKLSAgICBldmVu
dC0+X2V2ZW50U2VuZGVyX2xvY2F0aW9uID0gKFttX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmll
dygpLT5wbGF0Zm9ybVdpbmRvdygpIGNvbnZlcnRSZWN0VG9TY3JlZW46TlNNYWtlUmVjdChtX3Bv
c2l0aW9uLngsIG1fcG9zaXRpb24ueSwgMSwgMSldLm9yaWdpbik7Ci0gICAgZXZlbnQtPl9ldmVu
dFNlbmRlcl9waGFzZSA9IG5zRXZlbnRQaGFzZUZyb21DR0V2ZW50UGhhc2UocGhhc2UpOwotICAg
IGV2ZW50LT5fZXZlbnRTZW5kZXJfbW9tZW50dW1QaGFzZSA9IG5zRXZlbnRQaGFzZUZyb21DR0V2
ZW50UGhhc2UobW9tZW50dW0pOwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfdGltZXN0YW1wID0g
YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSk7Ci0gICAgZXZlbnQt
Pl9ldmVudFNlbmRlcl9ldmVudE51bWJlciA9ICsrZXZlbnROdW1iZXI7Ci0KLSNpZiBkZWZpbmVk
KF9fTFA2NF9fKQotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfY2dzRXZlbnRSZWNvcmQucGhhc2Ug
PSBwaGFzZTsKLSAgICBldmVudC0+X2V2ZW50U2VuZGVyX2Nnc0V2ZW50UmVjb3JkLmRlbHRhWCA9
IChmbG9hdCl4OwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfY2dzRXZlbnRSZWNvcmQuZGVsdGFZ
ID0gKGZsb2F0KXk7Ci0jZWxzZQotICAgIE5TTG9nKEAiU3ludGhldGljIHN3aXBlIGdlc3R1cmVz
IGFyZSBub3QgaW1wbGVtZW50ZWQgZm9yIDMyLWJpdCBXZWJLaXRUZXN0UnVubmVyLiIpOwotI2Vu
ZGlmCi0KLSAgICBbTlNBcHAgc2VuZEV2ZW50OmV2ZW50LmdldCgpXTsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlw
dENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENv
bnRyb2xsZXJNYWMubW0KaW5kZXggNGY2Y2NlYmE3ZDNmYjQwOTg1YTA2MjE3MjBjYjhhMWMwZWIy
NDc1ZC4uNTc2Mjg5ZDQ5Nzg0N2NmZWYyYTI2ZTJkOWY1MTU1NTYxZjk1MDc1ZSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQpA
QCAtMjYsNyArMjYsMTIgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiVUlTY3JpcHRD
b250cm9sbGVyLmgiCiAKKyNpbXBvcnQgIkV2ZW50U2VyaWFsaXplck1hYy5oIgorI2ltcG9ydCAi
UGxhdGZvcm1XZWJWaWV3LmgiCisjaW1wb3J0ICJTaGFyZWRFdmVudFN0cmVhbXNNYWMuaCIKKyNp
bXBvcnQgIlRlc3RDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJVSVNjcmlwdENvbnRleHQuaCIKKyNp
bXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmQ0YuaD4KIAogbmFtZXNwYWNlIFdUUiB7
CiAKQEAgLTQxLDQgKzQ2LDM4IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FzeW5jVGFz
ayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogICAgIH0pOwogfQogCitzdGF0aWMgdm9pZCBwbGF5QmFj
a0V2ZW50cyhVSVNjcmlwdENvbnRleHQgKmNvbnRleHQsIE5TU3RyaW5nICpldmVudFN0cmVhbSwg
SlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKKyAgICBO
U0FycmF5ICpldmVudERpY3RzID0gW05TSlNPTlNlcmlhbGl6YXRpb24gSlNPTk9iamVjdFdpdGhE
YXRhOltldmVudFN0cmVhbSBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10g
b3B0aW9uczowIGVycm9yOiZlcnJvcl07CisKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTlNM
b2coQCJFUlJPUjogJUAiLCBlcnJvcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1
bnNpZ25lZCBjYWxsYmFja0lEID0gY29udGV4dC0+cHJlcGFyZUZvckFzeW5jVGFzayhjYWxsYmFj
aywgQ2FsbGJhY2tUeXBlTm9uUGVyc2lzdGVudCk7CisKKyAgICBOU1dpbmRvdyAqd2luZG93ID0g
W1Rlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXco
KSB3aW5kb3ddOworICAgIFtFdmVudFNlcmlhbGl6ZXIgcGxheUV2ZW50U3RyZWFtOmV2ZW50RGlj
dHMgaW5XaW5kb3c6d2luZG93IGNvbXBsZXRpb25IYW5kbGVyOl4geworICAgICAgICBjb250ZXh0
LT5hc3luY1Rhc2tDb21wbGV0ZShjYWxsYmFja0lEKTsKKyAgICB9XTsKK30KKwordm9pZCBVSVNj
cmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7Cisg
ICAgcGxheUJhY2tFdmVudHMobV9jb250ZXh0LCBiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKCks
IGNhbGxiYWNrKTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNvbXBsZXRlQmFja1N3
aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgcGxheUJhY2tFdmVudHMobV9jb250ZXh0
LCBjb21wbGV0ZVN3aXBlQmFja0V2ZW50U3RyZWFtKCksIGNhbGxiYWNrKTsKK30KKwordm9pZCBV
SVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1Jl
ZiBldmVudFN0cmVhbSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBSZXRhaW5QdHI8TlNT
dHJpbmc+IG5zU3RyaW5nID0gYWRvcHROUygoTlNTdHJpbmcgKilKU1N0cmluZ0NvcHlDRlN0cmlu
ZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBldmVudFN0cmVhbSkpOworICAgIHBsYXlCYWNrRXZlbnRz
KG1fY29udGV4dCwgbnNTdHJpbmcuZ2V0KCksIGNhbGxiYWNrKTsKK30KKwogfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc2
MjFiNmNkNDA1MmJkMTljMWNhYzk2MThlNzQ5NjdjYTNkZmQ2MzguLjdkNDM3YmM4YmY5NjMyN2U2
ZTM3ZjNiY2NiMDg1NTFjMjJjM2MyMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxNi0wOS0w
NiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBTd2lw
ZSBnZXN0dXJlIHRlc3RzIGRvbid0IHdvcmsgb24gbWFjT1MgU2llcnJhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE2NzUKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzIzMzc5OTMwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIHN3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBzd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sOgorICAgICAgICAqIHN3aXBlL21h
aW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3dp
cGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0bWw6CisgICAgICAgICogc3dpcGUv
cHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzd2lw
ZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbDoKKyAgICAgICAgKiBzd2lwZS9wdXNo
U3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBp
bmctY3Jhc2guaHRtbDoKKyAgICAgICAgKiBzd2lwZS9yZXNvdXJjZXMvc3dpcGUtdGVzdC5qczoK
KyAgICAgICAgKG1lYXN1cmVkRHVyYXRpb25TaG91bGRCZUxlc3NUaGFuKToKKyAgICAgICAgKHN0
YXJ0U3dpcGVHZXN0dXJlKToKKyAgICAgICAgKGNvbXBsZXRlU3dpcGVHZXN0dXJlKToKKyAgICAg
ICAgKHBsYXlFdmVudFN0cmVhbSk6CisgICAgICAgIChldmVudFF1ZXVlLmVucXVldWVTY3JvbGxF
dmVudCk6IERlbGV0ZWQuCisgICAgICAgIChldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKGV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cyk6IERlbGV0ZWQu
CisgICAgICAgIChldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2gpOiBEZWxldGVkLgor
ICAgICAgICAoZXZlbnRRdWV1ZS5fcHJvY2Vzc0V2ZW50UXVldWUpOiBEZWxldGVkLgorICAgICAg
ICAoZXZlbnRRdWV1ZS5fcHJvY2Vzc0V2ZW50UXVldWVTb29uKTogRGVsZXRlZC4KKyAgICAgICAg
KiBzd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBzd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLmh0
bWw6IFJlbW92ZWQuCisKIDIwMTYtMDktMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjA0ODM5KTogW21hYy13azFdIExheW91dFRlc3Qg
d2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy13ZWJnbGNvbnRleHRsb3N0LXByZXZlbnQtZGVmYXVs
dC5odG1sIGlzIGEgZmxha3kgdGltZW91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGJkZmIxNjQ4YWQzN2VlZTc0ZGQ2OGRiZjlkMDYzZjAz
ZTU2ZTNlNjEuLjgyYTk1ZGRjNjk5M2YyNmNhODdiOGI4NTk2MGU3Y2Q2NDk3NjJlNWMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTUxNCwx
MiArNTE0LDYgQEAgd2Via2l0Lm9yZy9iLzE1ODYzOSBbIFJlbGVhc2UgWW9zZW1pdGUgXSBpbXBv
cnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9ibG9iLWQKICMgPHJkYXI6Ly9wcm9ibGVtLzI1
MDYzMTI4PgogWyBTaWVycmErIF0gbWVkaWEvbWVkaWEtY29udHJvbHMtZHJhZy10aW1lbGluZS1z
ZXQtY29udHJvbHMtcHJvcGVydHkuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKLSMgPHJkYXI6Ly9w
cm9ibGVtLzIzMzc5OTMwPiBzd2lwZSB0ZXN0cyBjcmFzaGluZwotWyBTaWVycmErIF0gc3dpcGUv
YmFzaWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbCBbIFNraXAgXQotWyBTaWVycmErIF0gc3dpcGUv
bWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0bWwgWyBTa2lwIF0KLVsgU2llcnJhKyBd
IHN3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sIFsgU2tpcCBdCi1bIFNpZXJy
YSsgXSBzd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLmh0bWwgWyBTa2lwIF0K
LQogIyBIaXR0aW5nICJUaGUgY2VydGlmaWNhdGUgZm9yIHRoaXMgc2VydmVyIGlzIGludmFsaWQi
IGxvYWRpbmcgZXJyb3IgKG5vdCBoYXBwZW5pbmcgaW4gV0sxKQogd2Via2l0Lm9yZy9iLzE2MDQ0
NSBbIFNpZXJyYSsgXSBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91
cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzL3VwZ3JhZGUtaW5zZWN1cmUtZmV0Y2gtaW4td29ya2Vy
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNjA0NDUgWyBTaWVycmErIF0gaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1
ZXN0cy91cGdyYWRlLWluc2VjdXJlLWZldGNoLWluLW1haW4tZnJhbWUuaHRtbCBbIEZhaWx1cmUg
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUt
ZXhwZWN0ZWQudHh0CmluZGV4IGUzZDNlMDBhYjlkMGJmZmZlNjY5ZDZhZDg5YTAxN2FmNTdmNzBi
ODkuLjg5ZGVjZmQ0YzM3MTI1Y2ZiNTU5ODExOTY4OWMzZjBjNGExZDg4NGUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50
eHQKQEAgLTEsMTAgKzEsNiBAQAotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21heWJl
Z2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2
ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFuZ2VkJykKK3N0YXJ0U3dpcGVHZXN0dXJlCiBkaWRC
ZWdpblN3aXBlCi1zd2lwZSBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lw
ZSBldmVudCAoZGVsdGEgMjU2IDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0
YSAwIDAsIHBoYXNlICdlbmRlZCcpCitjb21wbGV0ZVN3aXBlR2VzdHVyZQogd2lsbEVuZFN3aXBl
CiBkaWRFbmRTd2lwZQogZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbCBiL0xheW91dFRlc3RzL3N3
aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKaW5kZXggY2Y3Zjc1Y2IxMzliNTRiNTE1
MTc4YTA3M2I5OGFkMDY3M2RkYTY4My4uODcxYTJiYzY0NmI4ZDRhZTg2OTQ2MzdlODAwM2EzYjRi
MzI0NWE2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2st
c3dpcGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lw
ZS5odG1sCkBAIC02LDI4ICs2LDEwIEBAIGh0bWwgewogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gc3Rh
cnRTd2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAw
KTsKLQotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7
Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAg
ZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLX0KLQotZnVu
Y3Rpb24gY29tcGxldGVTd2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3
aXBlRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2
ZW50KDI1NiwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50
KDAsIDAsICdlbmRlZCcpOwotfQotCiBmdW5jdGlvbiBkaWRCZWdpblN3aXBlQ2FsbGJhY2soKQog
ewogICAgIGxvZygiZGlkQmVnaW5Td2lwZSIpOwogCi0gICAgc2hvdWxkQmUoZmFsc2UsIGV2ZW50
UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpLCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5LiBC
b3RoIHNjcm9sbCBldmVudHMgc2hvdWxkIGJlIHJlcXVpcmVkIHRvIHN0YXJ0IHRoZSBzd2lwZSBi
ZWNhdXNlIG9mIHRoZSBzd2lwZS1zdGFydCBoeXN0ZXJlc2lzLiIpOwotCiAgICAgY29tcGxldGVT
d2lwZUdlc3R1cmUoKTsKIH0KIApAQCAtNDIsNyArMjQsNiBAQCBmdW5jdGlvbiBkaWRFbmRTd2lw
ZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRpZEVuZFN3aXBlIik7CiAKLSAgICBzaG91bGRCZSgw
LCBldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBiZSBl
bXB0eS4gVGhlIHN3aXBlIGlzbid0IGNvbXBsZXRlIHVudGlsIHdlIHNlZSB0aGUgZW5kIG9mIHRo
ZSBnZXN0dXJlLiIpOwogICAgIHN0YXJ0TWVhc3VyaW5nRHVyYXRpb24oInNuYXBzaG90UmVtb3Zh
bCIpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5p
bmctcmVxdWlyZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFt
ZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4cGVjdGVkLnR4dAppbmRleCA2MzU5NzQwNTQ4NDc2Yzhk
MDlmYjRiYjM3Yzc1MjQ0YjkwYjM5MGQ2Li5jZTc2NjgxOTcyMjA5NTM1ZTI0Y2UwNzM3MGUzMDZh
MDk4MjUwY2ZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5p
bmctcmVxdWlyZW1lbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N3aXBlL21haW4t
ZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC1leHBlY3RlZC50eHQKQEAgLTEsMjMgKzEsOCBAQAot
c3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAo
ZGVsdGEgMTAgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhh
c2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcp
Ci1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVu
dCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAw
LCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFu
Z2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xs
IGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRh
IDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2Ug
J2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1zd2lw
ZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0
YSAxIDAsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdj
aGFuZ2VkJykKK3N0YXJ0U3dpcGVHZXN0dXJlCitjb21wbGV0ZVN3aXBlR2VzdHVyZQorc3RhcnRT
d2lwZUdlc3R1cmUKIGRpZEJlZ2luU3dpcGUKLXN3aXBlIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNl
ICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAyNTYgMCwgcGhhc2UgJ2NoYW5nZWQnKQot
c3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKK2NvbXBsZXRlU3dpcGVHZXN0
dXJlCiB3aWxsRW5kU3dpcGUKIGRpZEVuZFN3aXBlCiBkaWRSZW1vdmVTd2lwZVNuYXBzaG90CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1l
bnQuaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVu
dC5odG1sCmluZGV4IDYyMTU1NDQ4NGYwNGZmMzk3NWJmMmY0MThlMThmZWM4M2M2MmYzNWIuLmEz
NjliODIxYjlkOWMyZTAzNzhkZjYyNzJlZDAxOWY1MmFlMmVhYjkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sCkBAIC02
LDQ4ICs2LDI0IEBAIGh0bWwgewogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3dp
cGUtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gc3RhcnRTd2lwZUdlc3R1
cmUoKQotewotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKIAorZnVuY3Rp
b24gcnVuVGVzdCgpCit7CiAgICAgLy8gVGhlIGZpcnN0IHN3aXBlIHNob3VsZCBmYWlsIGJlY2F1
c2Ugd2UncmUgc2Nyb2xsZWQgdG8gdGhlIG1pZGRsZSBvZiB0aGUgZG9jdW1lbnQKICAgICAvLyBh
bmQgdGhpcyBpcyBhbGwgYSBzaW5nbGUgZ2VzdHVyZS4gV2UgY2FuIG9ubHkgc3RhcnQgc3dpcGVz
IGlmIHdlICpiZWdpbioKICAgICAvLyBwaW5uZWQgdG8gdGhlIGVkZ2UuCi0gICAgZXZlbnRRdWV1
ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVu
cXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVl
U2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Ny
b2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xs
RXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZl
bnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQo
MTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAs
IDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAs
ICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdj
aGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFu
Z2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2Vk
Jyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0K
LSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goZnVuY3Rpb24gKCkgewotICAg
ICAgICB0ZXN0UnVubmVyLmNsZWFyVGVzdFJ1bm5lckNhbGxiYWNrcygpOwotICAgICAgICB0ZXN0
UnVubmVyLmluc3RhbGxEaWRCZWdpblN3aXBlQ2FsbGJhY2soZGlkQmVnaW5Td2lwZUNhbGxiYWNr
KTsKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsV2lsbEVuZFN3aXBlQ2FsbGJhY2sod2lsbEVu
ZFN3aXBlQ2FsbGJhY2spOwotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRFbmRTd2lwZUNh
bGxiYWNrKGRpZEVuZFN3aXBlQ2FsbGJhY2spOwotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxE
aWRSZW1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2soZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxi
YWNrKTsKKyAgICBzdGFydFN3aXBlR2VzdHVyZShmdW5jdGlvbiAoKSB7CisgICAgICAgIGNvbXBs
ZXRlU3dpcGVHZXN0dXJlKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xl
YXJUZXN0UnVubmVyQ2FsbGJhY2tzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxE
aWRCZWdpblN3aXBlQ2FsbGJhY2soZGlkQmVnaW5Td2lwZUNhbGxiYWNrKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFdpbGxFbmRTd2lwZUNhbGxiYWNrKHdpbGxFbmRTd2lwZUNhbGxi
YWNrKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZEVuZFN3aXBlQ2FsbGJhY2so
ZGlkRW5kU3dpcGVDYWxsYmFjayk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRS
ZW1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2soZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNr
KTsgICAgCiAKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAv
LyBUaGUgc2Vjb25kIHN3aXBlIHNob3VsZCBzdWNjZWVkIGJlY2F1c2Ugd2UgYXJlIG5vdyBzY3Jv
bGxlZCB0byB0aGUgbGVmdCBlZGdlLgotICAgICAgICAgICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dp
cGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICAgICAgICAgIGV2ZW50UXVldWUuZW5xdWV1
ZVNjcm9sbEV2ZW50KDEsIDAsICdiZWdhbicpOwotICAgICAgICAgICAgZXZlbnRRdWV1ZS5lbnF1
ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgICAgIH0sIDApOwotICAgIH0p
Ci19Ci0KLWZ1bmN0aW9uIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCkKLXsKLSAgICBldmVudFF1ZXVl
LmVucXVldWVTd2lwZUV2ZW50KDEsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1
ZXVlU3dpcGVFdmVudCgyNTYsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVl
U3dpcGVFdmVudCgwLCAwLCAnZW5kZWQnKTsKKyAgICAgICAgICAgIHN0YXJ0U3dpcGVHZXN0dXJl
KGZ1bmN0aW9uICgpIHsgY29tcGxldGVTd2lwZUdlc3R1cmUoKTsgfSk7CisgICAgICAgIH0pOwor
ICAgIH0pOwogfQogCiBmdW5jdGlvbiBkaWRCZWdpblN3aXBlTm90UmVhY2hlZENhbGxiYWNrKCkK
QEAgLTU4LDEwICszNCw2IEBAIGZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVOb3RSZWFjaGVkQ2FsbGJh
Y2soKQogZnVuY3Rpb24gZGlkQmVnaW5Td2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRpZEJl
Z2luU3dpcGUiKTsKLQotICAgIHNob3VsZEJlKGZhbHNlLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdF
dmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBiZSBlbXB0eS4gQm90aCBzY3JvbGwgZXZlbnRz
IHNob3VsZCBiZSByZXF1aXJlZCB0byBzdGFydCB0aGUgc3dpcGUgYmVjYXVzZSBvZiB0aGUgc3dp
cGUtc3RhcnQgaHlzdGVyZXNpcy4iKTsKLQotICAgIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCk7CiB9
CiAKIGZ1bmN0aW9uIHdpbGxFbmRTd2lwZUNhbGxiYWNrKCkKQEAgLTc1LDcgKzQ3LDYgQEAgZnVu
Y3Rpb24gZGlkRW5kU3dpcGVDYWxsYmFjaygpCiB7CiAgICAgbG9nKCJkaWRFbmRTd2lwZSIpOwog
Ci0gICAgc2hvdWxkQmUoMCwgZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJFdmVudCBx
dWV1ZSBzaG91bGQgYmUgZW1wdHkuIFRoZSBzd2lwZSBpc24ndCBjb21wbGV0ZSB1bnRpbCB3ZSBz
ZWUgdGhlIGVuZCBvZiB0aGUgZ2VzdHVyZS4iKTsKICAgICBzdGFydE1lYXN1cmluZ0R1cmF0aW9u
KCJzbmFwc2hvdFJlbW92YWwiKTsKIH0KIApAQCAtMTIxLDggKzkyLDkgQEAgd2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uICgpIHsKICAgICB9CiAKICAgICAvLyBTZWNvbmQgcGFnZSBsb2FkZWQuCi0g
ICAgd2luZG93LnNjcm9sbFRvKDEwMDAsIDApOwotICAgIHN0YXJ0U3dpcGVHZXN0dXJlKCk7Cisg
ICAgd2luZG93LnNjcm9sbFRvKDEwMCwgMCk7CisKKyAgICBydW5UZXN0KCk7CiB9OwogPC9zY3Jp
cHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2Fj
aGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRl
LWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dAppbmRleCBlM2QzZTAwYWI5ZDBiZmZmZTY2
OWQ2YWQ4OWEwMTdhZjU3ZjcwYjg5Li44OWRlY2ZkNGMzNzEyNWNmYjU1OTgxMTk2ODljM2YwYzRh
MWQ4ODRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJh
Y2stc3dpcGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1j
YWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsNiBAQAotc3dpcGUgZXZl
bnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAw
LCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFuZ2Vk
JykKK3N0YXJ0U3dpcGVHZXN0dXJlCiBkaWRCZWdpblN3aXBlCi1zd2lwZSBldmVudCAoZGVsdGEg
MSAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMjU2IDAsIHBoYXNlICdj
aGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCitjb21wbGV0
ZVN3aXBlR2VzdHVyZQogd2lsbEVuZFN3aXBlCiBkaWRFbmRTd2lwZQogZGlkUmVtb3ZlU3dpcGVT
bmFwc2hvdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1i
YWNrLXN3aXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2st
c3dpcGUuaHRtbAppbmRleCA1NmRhZGE0ODkwNDI4YzQ5ZGQyZDcxZjc2ODYwOTA0ZTAxZjg0MzFm
Li45YThkYzlkN2Q5YTEwODg3NTkyNWVlNGQyODk5N2U1Mzg2MmUzODcwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbApAQCAtNiwy
OCArNiwxMSBAQCBodG1sIHsKIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3aXBl
LXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHN0YXJ0U3dpcGVHZXN0dXJl
KCkKLXsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7Ci0KLSAgICBldmVu
dFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVl
dWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5x
dWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdjaGFuZ2VkJyk7Ci19Ci0KLWZ1bmN0aW9uIGNvbXBsZXRl
U3dpcGVHZXN0dXJlKCkKLXsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDEsIDAs
ICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgyNTYsIDAsICdj
aGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnZW5kZWQn
KTsKLX0KIAogZnVuY3Rpb24gZGlkQmVnaW5Td2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRp
ZEJlZ2luU3dpcGUiKTsKIAotICAgIHNob3VsZEJlKGZhbHNlLCBldmVudFF1ZXVlLmhhc1BlbmRp
bmdFdmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBiZSBlbXB0eS4gQm90aCBzY3JvbGwgZXZl
bnRzIHNob3VsZCBiZSByZXF1aXJlZCB0byBzdGFydCB0aGUgc3dpcGUgYmVjYXVzZSBvZiB0aGUg
c3dpcGUtc3RhcnQgaHlzdGVyZXNpcy4iKTsKLQogICAgIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCk7
CiB9CiAKQEAgLTQyLDcgKzI1LDYgQEAgZnVuY3Rpb24gZGlkRW5kU3dpcGVDYWxsYmFjaygpCiB7
CiAgICAgbG9nKCJkaWRFbmRTd2lwZSIpOwogCi0gICAgc2hvdWxkQmUoMCwgZXZlbnRRdWV1ZS5o
YXNQZW5kaW5nRXZlbnRzKCksICJFdmVudCBxdWV1ZSBzaG91bGQgYmUgZW1wdHkuIFRoZSBzd2lw
ZSBpc24ndCBjb21wbGV0ZSB1bnRpbCB3ZSBzZWUgdGhlIGVuZCBvZiB0aGUgZ2VzdHVyZS4iKTsK
ICAgICBzdGFydE1lYXN1cmluZ0R1cmF0aW9uKCJzbmFwc2hvdFJlbW92YWwiKTsKIH0KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdo
aWxlLXN3aXBpbmctY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0
YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2gtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGRjMzRlOTJkNTg4NGViOGQxZDMxNTE1YjVhODg2Mjc1NmViMjkzNDIuLjAwNTA3NTVmNTcz
N2Q0Y2Q3YTNjMjRjNTc2MjRiN2E3ZGYxYzI2M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3
aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJh
Y2std2hpbGUtc3dpcGluZy1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw0IEBACi1zd2lw
ZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0
YSAxIDAsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2No
YW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUg
ZXZlbnQgKGRlbHRhIDI1NiAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEg
MCAwLCBwaGFzZSAnZW5kZWQnKQorcGxheUV2ZW50U3RyZWFtCitwbGF5RXZlbnRTdHJlYW0KK2Nv
bXBsZXRlU3dpcGVHZXN0dXJlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hT
dGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLmh0bWwgYi9MYXlvdXRU
ZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFz
aC5odG1sCmluZGV4IDM2ZWYzOWZiNDNlNDMwZGI5MTQ2MDM4NDZmZDJiZjdlMzI5MDYzMDEuLjNm
ODdhMDM5ZWU3YTkzY2I2NGEyZjBlNjVkNTBjYmEwOTcwNDZjYzAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNy
YXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1i
YWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbApAQCAtNiwzNyArNiw2NyBAQCBodG1sIHsKIDwv
c3R5bGU+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRlc3QuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdD4KLWZ1bmN0aW9uIHN0YXJ0U3dpcGVHZXN0dXJlKCkKK2Z1bmN0aW9uIHJ1blRlc3Qo
KQogewotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKLQotICAgIGV2ZW50
UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1
ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAgCi0gICAgZXZlbnRRdWV1
ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKGdvQmFjayk7CisgICAgcGxheUV2ZW50U3RyZWFtKGBb
eworICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMCwKKyAgICAgICAgImtDR0V2ZW50U2Nyb2xs
R2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6
IDYsCisgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICJrQ0dFdmVu
dEdlc3R1cmVQaGFzZSIgOiAxMjgsCisgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwg
MzAwfSIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAor
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2MSwKKyAgICAgICAgImtDR1NFdmVu
dFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgImtDR0V2ZW50R2VzdHVyZVN0YXJ0RW5kU2VyaWVz
VHlwZSIgOiA2LAorICAgICAgICAid2luZG93TG9jYXRpb24iIDogInswLCAwfSIKKyAgICAgIH0s
CisgICAgICB7CisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAg
ICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAs
IDMwMH0iLAorICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMSwKKyAgICAgICAgImtD
R0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICJrQ0dTRXZlbnRUeXBl
RmllbGQiIDogMjksCisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDIKKyAgICAg
IH0sCisgICAgICB7CisgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAid2lu
ZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dFNjcm9sbFBoYXNlIiA6IDEsCisgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51
b3VzIiA6IDEsCisgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6
IDEsCisgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgIH1dYCwgZ29CYWNr
KTsKIH0KIAogZnVuY3Rpb24gZ29CYWNrKCkKIHsKICAgICB3aW5kb3cuaGlzdG9yeS5iYWNrKCk7
CiAKLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goY29udGludWVTd2lwZUdl
c3R1cmUpOworICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAwKTsKIH0KIAotZnVuY3Rpb24g
Y29udGludWVTd2lwZUdlc3R1cmUoKQorZnVuY3Rpb24gY29udGludWVUZXN0KCkKIHsKLSAgICBl
dmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnY2hhbmdlZCcpOwotCi0gICAgZXZl
bnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKGNvbXBsZXRlU3dpcGVHZXN0dXJlKTsKKyAg
ICBwbGF5RXZlbnRTdHJlYW0oYFsKKyAgICAgIHsKKyAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6
IDAsCisgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICJr
Q0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMSwKKyAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQ
b2ludERlbHRhQXhpczIiIDogMjAsCisgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIK
KyAgICAgIH1dYCwgZnVuY3Rpb24gKCkgeworICAgICAgICBjb21wbGV0ZVRlc3QoKTsKKyAgICAg
IH0pOwogfQogCi1mdW5jdGlvbiBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpCitmdW5jdGlvbiBjb21w
bGV0ZVRlc3QoKQogewotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMSwgMCwgJ2No
YW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDI1NiwgMCwgJ2NoYW5n
ZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdlbmRlZCcpOwot
Ci0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKHRlc3RDb21wbGV0ZSk7Cisg
ICAgY29tcGxldGVTd2lwZUdlc3R1cmUodGVzdENvbXBsZXRlKTsKIH0KIAogZnVuY3Rpb24gZGlk
QmVnaW5Td2lwZUNhbGxiYWNrKCkKQEAgLTc5LDcgKzEwOSw3IEBAIHdpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIHVwZGF0ZUNvbnRlbnQoKTsKIAogICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHN0YXJ0U3dpcGVHZXN0dXJlKCk7CisgICAg
ICAgICAgICBydW5UZXN0KCk7CiAgICAgICAgIH0sIDApOwogICAgIH0sIDApOwogfTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzIGIvTGF5b3V0
VGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMKaW5kZXggZGQ4ZTkwMDlmZmU4NDk1
OTAwOTlmZDE4MzIzYmNlMzczYjc0MDY4MC4uMGMyMzY1ZDEzMTNhMTgwNjc3YjkxYWYyYjQ0OTMz
YWU0MDgzOGNjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBl
LXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMK
QEAgLTEsNTAgKzEsMyBAQAotdmFyIGV2ZW50UXVldWUgPSB7Ci0gICAgZW5xdWV1ZVNjcm9sbEV2
ZW50OiBmdW5jdGlvbiAoeCwgeSwgcGhhc2UpIHsKLSAgICAgICAgdGhpcy5fcXVldWUucHVzaChm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBsb2coInNjcm9sbCBldmVudCAoZGVsdGEgIiArIHgg
KyAiICIgKyB5ICsgIiwgcGhhc2UgJyIgKyBwaGFzZSArICInKSIpOwotICAgICAgICAgICAgd2lu
ZG93LmV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyh4
LCB5LCBwaGFzZSwgJ25vbmUnKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHRoaXMuX3Byb2Nlc3NF
dmVudFF1ZXVlU29vbigpOwotICAgIH0sCi0KLSAgICBlbnF1ZXVlU3dpcGVFdmVudDogZnVuY3Rp
b24gKHgsIHksIHBoYXNlKSB7Ci0gICAgICAgIHRoaXMuX3F1ZXVlLnB1c2goZnVuY3Rpb24gKCkg
ewotICAgICAgICAgICAgbG9nKCJzd2lwZSBldmVudCAoZGVsdGEgIiArIHggKyAiICIgKyB5ICsg
IiwgcGhhc2UgJyIgKyBwaGFzZSArICInKSIpOwotICAgICAgICAgICAgd2luZG93LmV2ZW50U2Vu
ZGVyLnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKHgsIHksIHBoYXNlLCAn
bm9uZScpOwotICAgICAgICB9KTsKLSAgICAgICAgdGhpcy5fcHJvY2Vzc0V2ZW50UXVldWVTb29u
KCk7Ci0gICAgfSwKLQotICAgIGhhc1BlbmRpbmdFdmVudHM6IGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgcmV0dXJuIHRoaXMuX3F1ZXVlLmxlbmd0aCAhPSAwOwotICAgIH0sCi0KLSAgICBjYWxsQWZ0
ZXJFdmVudERpc3BhdGNoOiBmdW5jdGlvbiAoY2FsbGJhY2spIHsKLSAgICAgICAgdmFyIGludGVy
dmFsID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgeyAKLSAgICAgICAgICAgIGlmICghZXZlbnRR
dWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCkpIHsKLSAgICAgICAgICAgICAgICBjbGVhckludGVydmFs
KGludGVydmFsKTsKLSAgICAgICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9LCAwKTsKLSAgICB9LAotCi0gICAgX3F1ZXVlOiBbXSwKLQotICAgIF9wcm9jZXNz
RXZlbnRRdWV1ZTogZnVuY3Rpb24gKCkgewotICAgICAgICBpZiAoIXRoaXMuX3F1ZXVlLmxlbmd0
aCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB2YXIgaXRlbSA9IHRoaXMuX3F1ZXVl
LnNoaWZ0KCk7Ci0gICAgICAgIGl0ZW0oKTsKLSAgICAgICAgdGhpcy5fcHJvY2Vzc0V2ZW50UXVl
dWVTb29uKCk7Ci0gICAgfSwKLQotICAgIF9wcm9jZXNzRXZlbnRRdWV1ZVNvb246IGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Byb2Nlc3NpbmdUaW1lb3V0KTsKLSAg
ICAgICAgdGhpcy5fcHJvY2Vzc2luZ1RpbWVvdXQgPSBzZXRUaW1lb3V0KHRoaXMuX3Byb2Nlc3NF
dmVudFF1ZXVlLmJpbmQodGhpcyksIDApOwotICAgIH0KLX0KLQogZnVuY3Rpb24gc2hvdWxkQmUo
ZXhwZWN0ZWQsIGFjdHVhbCwgbWVzc2FnZSkKIHsKICAgICBpZiAoZXhwZWN0ZWQgIT0gYWN0dWFs
KQpAQCAtODQsNCArMzcsMzcgQEAgZnVuY3Rpb24gbWVhc3VyZWREdXJhdGlvblNob3VsZEJlTGVz
c1RoYW4oa2V5LCB0aW1lSW5NUywgbWVzc2FnZSkKICAgICB2YXIgZHVyYXRpb24gPSBEYXRlLm5v
dygpIC0gd2luZG93LmxvY2FsU3RvcmFnZVtrZXkgKyAic3dpcGVTdGFydFRpbWUiXTsKICAgICBp
ZiAoZHVyYXRpb24gPj0gdGltZUluTVMpCiAgICAgICAgIGxvZygiRmFpbHVyZS4gIiArIG1lc3Nh
Z2UgKyAiIChleHBlY3RlZDogIiArIHRpbWVJbk1TICsgIiwgYWN0dWFsOiAiICsgZHVyYXRpb24g
KyAiKSIpOwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KKworZnVuY3Rpb24gc3Rh
cnRTd2lwZUdlc3R1cmUoY2FsbGJhY2spCit7CisgICAgbG9nKCJzdGFydFN3aXBlR2VzdHVyZSIp
OworICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgIChmdW5jdGlvbigpIHsKKyAgICAg
ICAgdWlDb250cm9sbGVyLmJlZ2luQmFja1N3aXBlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
dWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgfSk7CisgICAgfSkoKTtg
LCBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fSk7Cit9CisKK2Z1bmN0aW9uIGNvbXBsZXRlU3dp
cGVHZXN0dXJlKGNhbGxiYWNrKQoreworICAgIGxvZygiY29tcGxldGVTd2lwZUdlc3R1cmUiKTsK
KyAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAg
IHVpQ29udHJvbGxlci5jb21wbGV0ZUJhY2tTd2lwZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgIH0pOworICAgIH0pKCk7
YCwgY2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkge30pOworfQorCitmdW5jdGlvbiBwbGF5RXZlbnRT
dHJlYW0oc3RyZWFtLCBjYWxsYmFjaykKK3sKKyAgICBsb2coInBsYXlFdmVudFN0cmVhbSIpOwor
ICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAg
dWlDb250cm9sbGVyLnBsYXlCYWNrRXZlbnRTdHJlYW0oXGAke3N0cmVhbX1cYCwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAg
ICB9KTsKKyAgICB9KSgpO2AsIGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9KTsKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVyZXNpcy1m
YWlsdXJlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhNDgw
YTk4MDRjZTIxOTE0YzhmOTgyZjViYzAxMTllN2RlYmU1NzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQt
aHlzdGVyZXNpcy1mYWlsdXJlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMiAr
MCwwIEBACi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xs
IGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAg
MCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRl
ZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2
ZW50IChkZWx0YSAyIDIsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwg
cGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcp
Ci1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50
IChkZWx0YSAwIDIsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhh
c2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1z
d2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChk
ZWx0YSAxIDAsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMiwgcGhhc2Ug
J2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1zd2lw
ZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0
YSAzIDEsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2No
YW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1zd2lwZSBl
dmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLmh0bWwgYi9MYXlvdXRUZXN0
cy9zd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGU3NWU2N2I5NzQxMjM5MmNkYjE0NDdlYTU3YzJiMDU1NTIzYzVm
MDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVyZXNpcy1mYWlsdXJlcy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLTxoZWFkPgotPHN0eWxlPgotaHRtbCB7Ci0gICAgZm9u
dC1zaXplOiAzMnB0OwotfQotPC9zdHlsZT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3dpcGUt
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gZG9TaG9ydFN3aXBlR2VzdHVy
ZSgpCi17Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAxMDApOwotCi0gICAgLy8g
VG90YWwgZGVsdGEgb2YgMTAsIDA7IHNob3VsZCBub3QgYmUgZW5vdWdoIHRvIHN0YXJ0IGEgc3dp
cGUuCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsK
LSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnYmVnYW4nKTsKLSAgICBl
dmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50
UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdlbmRlZCcpOwotCi0gICAgZXZlbnRRdWV1
ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKGRvRGlhZ29uYWxTd2lwZUdlc3R1cmUpOwotfQotCi1m
dW5jdGlvbiBkb0RpYWdvbmFsU3dpcGVHZXN0dXJlKCkKLXsKLSAgICAvLyBUb3RhbCBkZWx0YSBv
ZiAyMCwgMjA7IHRoaXMgaXMgb3JkaW5hcmlseSBzdWZmaWNpZW50IG1hZ25pdHVkZSB0byBzdGFy
dCBhIHN3aXBlLAotICAgIC8vIGJ1dCBpcyB0b28gZGlhZ29uYWwgdG8gc3RhcnQgYSBzd2lwZS4K
LSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAg
IGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDIsIDIsICdiZWdhbicpOwotICAgIGV2ZW50
UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1
ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1ZXVlLmNh
bGxBZnRlckV2ZW50RGlzcGF0Y2goZG9WZXJ0aWNhbFN3aXBlR2VzdHVyZSk7Ci19Ci0KLWZ1bmN0
aW9uIGRvVmVydGljYWxTd2lwZUdlc3R1cmUoKQotewotICAgIC8vIFRvdGFsIGRlbHRhIG9mIDAs
IDIwOyB0aGlzIGlzIG9yZGluYXJpbHkgc3VmZmljaWVudCBtYWduaXR1ZGUgdG8gc3RhcnQgYSBz
d2lwZSwKLSAgICAvLyBidXQgaXMgY29tcGxldGVseSB2ZXJ0aWNhbCwgc28gd2Ugd29uJ3Qgc3Rh
cnQgYSBzd2lwZS4KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXli
ZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDIsICdiZWdhbicp
OwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdjaGFuZ2VkJyk7Ci0g
ICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0KLSAgICBl
dmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goZG9Ib3Jpem9udGFsVGhlblZlcnRpY2Fs
U3dpcGVHZXN0dXJlKTsKLX0KLQotZnVuY3Rpb24gZG9Ib3Jpem9udGFsVGhlblZlcnRpY2FsU3dp
cGVHZXN0dXJlKCkKLXsKLSAgICAvLyBUb3RhbCBkZWx0YSBvZiAxMCwgMjA7IHRoaXMgaXMgb3Jk
aW5hcmlseSBzdWZmaWNpZW50IG1hZ25pdHVkZSB0byBzdGFydCBhIHN3aXBlLAotICAgIC8vIGJ1
dCBpcyB0b28gdmVydGljYWwsIHNvIHdlIHdvbid0IHN0YXJ0IGEgc3dpcGUuCi0gICAgZXZlbnRR
dWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVl
LmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVl
dWVTY3JvbGxFdmVudCgwLCAyLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNj
cm9sbEV2ZW50KDAsIDAsICdlbmRlZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVu
dERpc3BhdGNoKGRvUmVndWxhclN3aXBlR2VzdHVyZSk7Ci19Ci0KLWZ1bmN0aW9uIGRvUmVndWxh
clN3aXBlR2VzdHVyZSgpCi17Ci0gICAgLy8gU3dhcCBpbiBhIGRpZmZlcmVudCBjYWxsYmFjayB0
aGF0IG1ha2VzIHN1cmUgd2UgKmRvKiByZWFjaCBkaWRCZWdpblN3aXBlLgotICAgIHRlc3RSdW5u
ZXIuY2xlYXJUZXN0UnVubmVyQ2FsbGJhY2tzKCk7Ci0gICAgdmFyIHNhd0RpZEJlZ2luU3dpcGUg
PSBmYWxzZTsKLSAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRCZWdpblN3aXBlQ2FsbGJhY2soZnVu
Y3Rpb24gKCkgewotICAgICAgICBzYXdEaWRCZWdpblN3aXBlID0gdHJ1ZTsKLSAgICAgICAgLy8g
TmVlZCBhIHN3aXBlLWVuZCBldmVudCB0byBjbGVhbiB1cC4KLSAgICAgICAgZXZlbnRRdWV1ZS5l
bnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnZW5kZWQnKTsKLSAgICB9KTsKLQotICAgIHRlc3RSdW5u
ZXIuaW5zdGFsbERpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayhmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIHNob3VsZEJlKHRydWUsIHNhd0RpZEJlZ2luU3dpcGUsICJUaGUgbGFzdCBnZXN0dXJl
IHNob3VsZCBzdGFydCBhIHN3aXBlLCBiZWNhdXNlIGl0IGlzIHN1ZmZpY2llbnQgbWFnbml0dWRl
IGFuZCBpbiB0aGUgY29ycmVjdCBkaXJlY3Rpb24uIikKLSAgICAgICAgdGVzdENvbXBsZXRlKCk7
Ci0gICAgfSk7Ci0KLSAgICAvLyBUb3RhbCBkZWx0YSBvZiAzMCwgMTA7IHRoaXMgc2hvdWxkIHN0
YXJ0IGEgc3dpcGUgYXMgdXN1YWwuCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgw
LCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgzLCAx
LCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnY2hh
bmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdlbmRlZCcp
OwotfQotCi1mdW5jdGlvbiBkaWRCZWdpblN3aXBlTm90UmVhY2hlZENhbGxiYWNrKCkKLXsKLSAg
ICBsb2coIkZhaWx1cmUuIFNob3VsZCBuZXZlciBiZWdpbiBhIHN3aXBlLCBiZWNhdXNlIGFsbCBv
ZiB0aGUgYXR0ZW1wdGVkIHN3aXBlcyBzaG91bGQgZmFpbCBkdWUgdG8gdGhlIHN3aXBlLXN0YXJ0
IGh5c3RlcmVzaXMuIik7Ci19Ci0KLWZ1bmN0aW9uIGlzRmlyc3RQYWdlKCkKLXsKLSAgICByZXR1
cm4gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigic2Vjb25kIikgPT0gLTE7Ci19Ci0KLXdp
bmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIg
fHwgIXdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1M
ID0gIlRoaXMgdGVzdCBtdXN0IGJlIHJ1biBpbiBXZWJLaXRUZXN0UnVubmVyLiI7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IGlzRmlyc3RQ
YWdlKCkgPyAiZmlyc3QiIDogInNlY29uZCI7Ci0KLSAgICBpZiAoaXNGaXJzdFBhZ2UoKSkgewot
ICAgICAgICBpbml0aWFsaXplU3dpcGVUZXN0KCk7Ci0KLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0
YWxsRGlkQmVnaW5Td2lwZUNhbGxiYWNrKGRpZEJlZ2luU3dpcGVOb3RSZWFjaGVkQ2FsbGJhY2sp
OwotCi0gICAgICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2VzUGFn
ZUNhY2hlUHJlZmVyZW5jZUtleSIsIDEpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KLSAgICAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbiAoKSB7IAotICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB3
aW5kb3cubG9jYXRpb24uaHJlZiArICI/c2Vjb25kIjsKLSAgICAgICAgfSwgMCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBkb1Nob3J0U3dpcGVHZXN0dXJlKCk7Ci19OwotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288189</attachid>
            <date>2016-09-07 14:47:18 -0700</date>
            <delta_ts>2016-09-07 20:47:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161675-20160907144453.patch</filename>
            <type>text/plain</type>
            <size>106950</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MzYzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGFkZDhkNzFiMDVlNWE4OTBlYzFmMTU4MzM2YTcyODhi
ZmI1NGJkZS4uZjdhMGZjZWZmODkyZmU1ZDI1ZjU3MzBjOTAxNWJmNGIyOWE2N2IwZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDE2LTA5LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFN3aXBlIGdlc3R1cmUgdGVzdHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRm
b3JtUGxheUJhY2tFdmVudFN0cmVhbSk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6YmVnaW5CYWNrU3dpcGUpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNv
bXBsZXRlQmFja1N3aXBlKToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFs
aXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbTog
QWRkZWQuCisgICAgICAgIChldmVudElzT2ZUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZlR5cGVz
KToKKyAgICAgICAgKGV2ZW50SXNPZkdlc3R1cmVUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZkdl
c3R1cmVUeXBlcyk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBkaWN0aW9uYXJ5Rm9yRXZl
bnQ6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBjcmVhdGVF
dmVudEZvckRpY3Rpb25hcnk6aW5XaW5kb3c6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgr
W0V2ZW50U2VyaWFsaXplciBwbGF5RXZlbnRTdHJlYW06aW5XaW5kb3c6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFj
L1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1bm5lclNo
YXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTogQWRk
ZWQuCisgICAgICAgIChiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKToKKyAgICAgICAgKGNvbXBs
ZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0pOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICog
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF5QmFja0V2ZW50U3RyZWFtKToK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZSk6CisgICAg
ICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUpOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbSk6
CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1DbGVhckFsbENhbGxi
YWNrcyk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9zcGkv
Q29yZUdyYXBoaWNzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvc3Bp
L0lPS2l0U1BJLmg6IFJlbmFtZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tp
dFNQSS5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6cGxheUJhY2tFdmVudHMpOgor
ICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKToKKyAgICAg
ICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZSk6CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKToK
KwogMjAxNi0wOS0wMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OIChyMjA1MzI5KTogVHdvIEFQSSB0ZXN0cyB0aW1lIG91dCBvbiBp
T1MgU2ltdWxhdG9yCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3Jp
cHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29u
dHJvbGxlck1hYy5tbQppbmRleCA1NmUyMDc3YTRiMmEyMGMxZGI5MWRjOWExMGJkZGU1ZjIyY2M2
NDBiLi5jYTg2ZWY3ZTE3YThkNzYxODFmZGU0MGNmY2VlNjY3YjhkN2UwNTljIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTQz
LDYgKzQzLDE4IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FzeW5jVGFzayhKU1ZhbHVl
UmVmIGNhbGxiYWNrKQogICAgIH0pOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVn
aW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKK30KKwordm9pZCBVSVNjcmlwdENv
bnRyb2xsZXI6OmNvbXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7Cit9CisK
K3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVBsYXlCYWNrRXZlbnRTdHJlYW0oSlNT
dHJpbmdSZWYsIEpTVmFsdWVSZWYpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9u
L21hYy9FdmVudFNlcmlhbGl6ZXJNYWMuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRT
ZXJpYWxpemF0aW9uL21hYy9FdmVudFNlcmlhbGl6ZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTA1ZDY3
ZjU5ODllMGZiZDk3OTlhMzQ2ODQwZTc4ZWY4N2YzM2RmCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXpl
ck1hYy5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgUExBVEZPUk0oTUFDKQor
CisjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CisKK0BpbnRlcmZhY2UgRXZlbnRTZXJpYWxpemVy
IDogTlNPYmplY3QKKworKyAoTlNEaWN0aW9uYXJ5ICopZGljdGlvbmFyeUZvckV2ZW50OihDR0V2
ZW50UmVmKWV2ZW50IHJlbGF0aXZlVG9UaW1lOihDR0V2ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRp
bWVzdGFtcDsKKworKyAoQ0dFdmVudFJlZiljcmVhdGVFdmVudEZvckRpY3Rpb25hcnk6KE5TRGlj
dGlvbmFyeSAqKWRpY3QgaW5XaW5kb3c6KE5TV2luZG93ICopd2luZG93IHJlbGF0aXZlVG9UaW1l
OihDR0V2ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRpbWVzdGFtcDsKKworKyAodm9pZClwbGF5RXZl
bnRTdHJlYW06KE5TQXJyYXk8TlNEaWN0aW9uYXJ5ICo+ICopZXZlbnREaWN0cyBpbldpbmRvdzoo
TlNXaW5kb3cgKil3aW5kb3cgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoKSljb21wbGV0aW9u
SGFuZGxlcjsKKworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9FdmVudFNlcmlhbGl6ZXJNYWMubW0gYi9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVy
TWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNkOThmMzUxMGIzMTk4NDdiNGE0MDExZTA4MDI4ZTgyMGZhMTkx
NjgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFs
aXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLm1tCkBAIC0wLDAgKzEsMzAxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJFdmVudFNlcmlhbGl6ZXJNYWMu
aCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAiQ29yZUdyYXBoaWNzU1BJLmgiCisj
aW1wb3J0ICJJT0tpdFNQSS5oIgorI2ltcG9ydCA8YWxnb3JpdGhtPgorI2ltcG9ydCA8bWFjaC9t
YWNoX3RpbWUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2RlZmluZSBNT1VTRV9F
VkVOVF9UWVBFUyBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudExlZnRNb3VzZURvd24sIFwK
KyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50TGVmdE1vdXNlVXAsIFwKKyAgICAoQ0dTRXZlbnRU
eXBlKWtDR0V2ZW50UmlnaHRNb3VzZURvd24sIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50
UmlnaHRNb3VzZVVwLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudE1vdXNlTW92ZWQsIFwK
KyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50TGVmdE1vdXNlRHJhZ2dlZCwgXAorICAgIChDR1NF
dmVudFR5cGUpa0NHRXZlbnRSaWdodE1vdXNlRHJhZ2dlZCwgXAorICAgIChDR1NFdmVudFR5cGUp
a0NHRXZlbnRPdGhlck1vdXNlRG93biwgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRPdGhl
ck1vdXNlVXAsIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50T3RoZXJNb3VzZURyYWdnZWQK
KworI2RlZmluZSBLRVlfRVZFTlRfVFlQRVMgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRL
ZXlEb3duLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudEtleVVwLCBcCisgICAgKENHU0V2
ZW50VHlwZSlrQ0dFdmVudEZsYWdzQ2hhbmdlZAorCisjZGVmaW5lIEdFU1RVUkVfRVZFTlRfVFlQ
RVMgXAorICAgIGtDR1NFdmVudEdlc3R1cmUsIFwKKyAgICBrQ0dTRXZlbnRGbHVpZFRvdWNoR2Vz
dHVyZSwgXAorICAgIGtDR1NFdmVudERvY2tDb250cm9sCisKK2Jvb2wgZXZlbnRJc09mVHlwZShD
R0V2ZW50UmVmIGV2ZW50LCBDR1NFdmVudFR5cGUgdHlwZSkKK3sKKyAgICByZXR1cm4gKENHU0V2
ZW50VHlwZSlDR0V2ZW50R2V0VHlwZShldmVudCkgPT0gdHlwZTsKK30KKworYm9vbCBldmVudElz
T2ZUeXBlcyhDR0V2ZW50UmVmKSB7IHJldHVybiBmYWxzZTsgfQorCit0ZW1wbGF0ZTx0eXBlbmFt
ZSAuLi4gVHlwZXM+Citib29sIGV2ZW50SXNPZlR5cGVzKENHRXZlbnRSZWYgZXZlbnQsIENHU0V2
ZW50VHlwZSBmaXJzdCwgVHlwZXMgLi4uIHJlc3QpCit7CisgICAgcmV0dXJuIGV2ZW50SXNPZlR5
cGUoZXZlbnQsIGZpcnN0KSB8fCBldmVudElzT2ZUeXBlcyhldmVudCwgcmVzdC4uLik7Cit9CisK
K2Jvb2wgZXZlbnRJc09mR2VzdHVyZVR5cGUoQ0dFdmVudFJlZiBldmVudCwgSU9ISURFdmVudFR5
cGUgdHlwZSkKK3sKKyAgICByZXR1cm4gKElPSElERXZlbnRUeXBlKUNHRXZlbnRHZXRJbnRlZ2Vy
VmFsdWVGaWVsZChldmVudCwga0NHRXZlbnRHZXN0dXJlSElEVHlwZSkgPT0gdHlwZTsKK30KKwor
Ym9vbCBldmVudElzT2ZHZXN0dXJlVHlwZXMoQ0dFdmVudFJlZikgeyByZXR1cm4gZmFsc2U7IH0K
KwordGVtcGxhdGU8dHlwZW5hbWUgLi4uIFR5cGVzPgorYm9vbCBldmVudElzT2ZHZXN0dXJlVHlw
ZXMoQ0dFdmVudFJlZiBldmVudCwgSU9ISURFdmVudFR5cGUgZmlyc3QsIFR5cGVzIC4uLiByZXN0
KQoreworICAgIGlmICghZXZlbnRJc09mVHlwZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGV2ZW50SXNPZkdlc3R1cmVUeXBl
KGV2ZW50LCBmaXJzdCkgfHwgZXZlbnRJc09mR2VzdHVyZVR5cGVzKGV2ZW50LCByZXN0Li4uKTsK
K30KKworI2RlZmluZSBGT1JfRUFDSF9DR0VWRU5UX0lOVEVHRVJfRklFTEQobWFjcm8pIFwKKyAg
ICBtYWNybyh0cnVlLCBrQ0dTRXZlbnRUeXBlRmllbGQpIFwKKyAgICBcCisgICAgbWFjcm8oZXZl
bnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwg
a0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczEpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBl
cyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxX
aGVlbEV2ZW50RGVsdGFBeGlzMikgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBr
Q0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRE
ZWx0YUF4aXMzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNj
cm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91
cykgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVl
bCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRNb21lbnR1bVBoYXNlKSBcCisg
ICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dT
RXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSkgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50
Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIpIFwKKyAgICBtYWNybyhl
dmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20p
LCBrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMzKSBcCisgICAgbWFjcm8oZXZlbnRJ
c09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NH
U2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50KSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMo
ZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hl
ZWxFdmVudFNjcm9sbFBoYXNlKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2
ZW50LCBNT1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnRCdXR0b25OdW1iZXIpIFwKKyAg
ICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3Vz
ZUV2ZW50Q2xpY2tTdGF0ZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBNT1VT
RV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnREZWx0YVgpIFwKKyAgICBtYWNybyhldmVudElz
T2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50RGVsdGFZKSBc
CisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwga0NH
TW91c2VFdmVudFN1YnR5cGUpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9V
U0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50TnVtYmVyKSBcCisgICAgXAorICAgIG1hY3Jv
KGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBLRVlfRVZFTlRfVFlQRVMpLCBrQ0dLZXlib2FyZEV2ZW50
QXV0b3JlcGVhdCkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBLRVlfRVZFTlRf
VFlQRVMpLCBrQ0dLZXlib2FyZEV2ZW50S2V5Ym9hcmRUeXBlKSBcCisgICAgbWFjcm8oZXZlbnRJ
c09mVHlwZXMoZXZlbnQsIEtFWV9FVkVOVF9UWVBFUyksIGtDR0tleWJvYXJkRXZlbnRLZXljb2Rl
KSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5U
X1RZUEVTKSwga0NHRXZlbnRHZXN0dXJlSElEVHlwZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5
cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSwga0NHRXZlbnRHZXN0dXJlQmVoYXZpb3Ip
IFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyks
IGtDR0V2ZW50R2VzdHVyZUZsYXZvcikgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50
LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSwga0NHRXZlbnRHZXN0dXJlTWFzaykgXAorICAgIG1hY3Jv
KGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSwga0NHRXZlbnRHZXN0
dXJlUGhhc2UpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVO
VF9UWVBFUyksIGtDR0V2ZW50R2VzdHVyZVN0YWdlKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50
SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVTY3JvbGwpLCBrQ0dFdmVudFNj
cm9sbEdlc3R1cmVGbGFnQml0cykgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJl
VHlwZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRTd2lw
ZUdlc3R1cmVGbGFnQml0cykgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50
LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZU1h
c2spIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRU
eXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVNb3Rpb24pIFwKKyAgICBt
YWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlv
blN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVWYWx1ZSkgXAorICAgIG1hY3JvKGV2ZW50SXNP
Zkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dF
dmVudEdlc3R1cmVGbGF2b3IpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5
cGVzKGV2ZW50LCBrQ0dISURFdmVudFR5cGVHZXN0dXJlU3RhcnRlZCwga0NHSElERXZlbnRUeXBl
R2VzdHVyZUVuZGVkKSwga0NHRXZlbnRHZXN0dXJlU3RhcnRFbmRTZXJpZXNUeXBlKQorCisjZGVm
aW5lIEZPUl9FQUNIX0NHRVZFTlRfRE9VQkxFX0ZJRUxEKG1hY3JvKSBcCisgICAgbWFjcm8oZXZl
bnRJc09mVHlwZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVQ
cm9ncmVzcykgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0Vf
RVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50UHJlc3N1cmUpIFwKKyAgICBcCisgICAgbWFjcm8o
ZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVpvb20pLCBrQ0dFdmVu
dEdlc3R1cmVab29tRGVsdGFYKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZl
bnQsIGtJT0hJREV2ZW50VHlwZVpvb20pLCBrQ0dFdmVudEdlc3R1cmVab29tRGVsdGFZKSBcCisg
ICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVpvb20p
LCBrQ0dFdmVudEdlc3R1cmVab29tVmFsdWUpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09m
R2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVJvdGF0aW9uKSwga0NHRXZlbnRHZXN0
dXJlUm90YXRpb25WYWx1ZSkgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlw
ZShldmVudCwga0lPSElERXZlbnRUeXBlU2Nyb2xsKSwga0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCkg
XAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVT
Y3JvbGwpLCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxZKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2Vz
dHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVNjcm9sbCksIGtDR0V2ZW50R2VzdHVyZVNj
cm9sbFopIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJ
T0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlUG9zaXRp
b25YKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50
VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlUG9zaXRpb25ZKSBcCisg
ICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmln
YXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlUHJvZ3Jlc3MpIFwKKyAgICBtYWNybyhl
dmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBl
KSwga0NHRXZlbnRHZXN0dXJlU3dpcGVWZWxvY2l0eVgpIFwKKyAgICBtYWNybyhldmVudElzT2ZH
ZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZl
bnRHZXN0dXJlU3dpcGVWZWxvY2l0eVkpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlw
ZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJl
U3dpcGVWZWxvY2l0eVopIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUo
ZXZlbnQsIGtJT0hJREV2ZW50VHlwZUZvcmNlKSwga0NHRXZlbnRUcmFuc2l0aW9uUHJvZ3Jlc3Mp
IFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBl
Rm9yY2UpLCBrQ0dFdmVudFN0YWdlUHJlc3N1cmUpCisKKyNkZWZpbmUgTE9BRF9JTlRFR0VSX0ZJ
RUxEX0ZST01fRVZFTlQoZXZlbnRUeXBlRmlsdGVyLCBmaWVsZCkgXAorXiB7IFwKKyAgICBpZiAo
IShldmVudFR5cGVGaWx0ZXIpKSBcCisgICAgICAgIHJldHVybjsgXAorICAgIGludDY0X3QgdmFs
dWUgPSBDR0V2ZW50R2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGZpZWxkKTsgXAorICAgIGlu
dDY0X3QgcGxhaW5WYWx1ZSA9IENHRXZlbnRHZXRJbnRlZ2VyVmFsdWVGaWVsZChwbGFpbkV2ZW50
LCBmaWVsZCk7IFwKKyAgICBpZiAodmFsdWUgIT0gcGxhaW5WYWx1ZSkgXAorICAgICAgICBkaWN0
W0AjZmllbGRdID0gQCh2YWx1ZSk7IFwKK30oKTsKKworI2RlZmluZSBMT0FEX0RPVUJMRV9GSUVM
RF9GUk9NX0VWRU5UKGV2ZW50VHlwZUZpbHRlciwgZmllbGQpIFwKK14geyBcCisgICAgaWYgKCEo
ZXZlbnRUeXBlRmlsdGVyKSkgXAorICAgICAgICByZXR1cm47IFwKKyAgICBkb3VibGUgdmFsdWUg
PSBDR0V2ZW50R2V0RG91YmxlVmFsdWVGaWVsZChldmVudCwgZmllbGQpOyBcCisgICAgaWYgKCFp
c25hbih2YWx1ZSkpIHsgXAorICAgICAgICBkb3VibGUgcGxhaW5WYWx1ZSA9IENHRXZlbnRHZXRE
b3VibGVWYWx1ZUZpZWxkKHBsYWluRXZlbnQsIGZpZWxkKTsgXAorICAgICAgICBpZiAoZmFicyh2
YWx1ZSAtIHBsYWluVmFsdWUpID49IEZMVF9FUFNJTE9OKSBcCisgICAgICAgICAgICBkaWN0W0Aj
ZmllbGRdID0gQCh2YWx1ZSk7IFwKKyAgICB9IFwKK30oKTsKKworI2RlZmluZSBTVE9SRV9JTlRF
R0VSX0ZJRUxEX1RPX0VWRU5UKGV2ZW50VHlwZUZpbHRlciwgZmllbGQpIFwKK14geyBcCisgICAg
aWYgKCEoZXZlbnRUeXBlRmlsdGVyKSkgXAorICAgICAgICByZXR1cm47IFwKKyAgICBOU051bWJl
ciAqdmFsdWUgPSBkaWN0W0AjZmllbGRdOyBcCisgICAgaWYgKHZhbHVlKSBcCisgICAgICAgIENH
RXZlbnRTZXRJbnRlZ2VyVmFsdWVGaWVsZChldmVudCwgZmllbGQsIHZhbHVlLnVuc2lnbmVkTG9u
Z0xvbmdWYWx1ZSk7IFwKK30oKTsKKworI2RlZmluZSBTVE9SRV9ET1VCTEVfRklFTERfVE9fRVZF
TlQoZXZlbnRUeXBlRmlsdGVyLCBmaWVsZCkgXAorXiB7IFwKKyAgICBpZiAoIShldmVudFR5cGVG
aWx0ZXIpKSBcCisgICAgICAgIHJldHVybjsgXAorICAgIE5TTnVtYmVyICp2YWx1ZSA9IGRpY3Rb
QCNmaWVsZF07IFwKKyAgICBpZiAodmFsdWUpIFwKKyAgICAgICAgQ0dFdmVudFNldERvdWJsZVZh
bHVlRmllbGQoZXZlbnQsIGZpZWxkLCB2YWx1ZS5kb3VibGVWYWx1ZSk7IFwKK30oKTsKKworQGlt
cGxlbWVudGF0aW9uIEV2ZW50U2VyaWFsaXplcgorCisrIChOU0RpY3Rpb25hcnkgKilkaWN0aW9u
YXJ5Rm9yRXZlbnQ6KENHRXZlbnRSZWYpZXZlbnQgcmVsYXRpdmVUb1RpbWU6KENHRXZlbnRUaW1l
c3RhbXApcmVmZXJlbmNlVGltZXN0YW1wCit7CisgICAgQ0dFdmVudFJlZiBwbGFpbkV2ZW50ID0g
Q0dFdmVudENyZWF0ZShOVUxMKTsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmRpY3QgPSBb
W1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisKKyAgICBG
T1JfRUFDSF9DR0VWRU5UX0lOVEVHRVJfRklFTEQoTE9BRF9JTlRFR0VSX0ZJRUxEX0ZST01fRVZF
TlQpOworICAgIEZPUl9FQUNIX0NHRVZFTlRfRE9VQkxFX0ZJRUxEKExPQURfRE9VQkxFX0ZJRUxE
X0ZST01fRVZFTlQpOworCisgICAgQ0dFdmVudFRpbWVzdGFtcCB0aW1lc3RhbXAgPSBDR0V2ZW50
R2V0VGltZXN0YW1wKGV2ZW50KTsKKyAgICBkaWN0W0AicmVsYXRpdmVUaW1lTVMiXSA9IEAoc3Rk
OjptYXg8ZG91YmxlPihzdGF0aWNfY2FzdDxkb3VibGU+KHRpbWVzdGFtcCAtIHJlZmVyZW5jZVRp
bWVzdGFtcCkgLyBOU0VDX1BFUl9NU0VDLCAwKSk7CisKKyAgICBDR1NFdmVudFR5cGUgZXZlbnRU
eXBlID0gKENHU0V2ZW50VHlwZSlDR0V2ZW50R2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGtD
R1NFdmVudFR5cGVGaWVsZCk7CisgICAgaWYgKGV2ZW50VHlwZSA9PSBrQ0dTRXZlbnRHZXN0dXJl
IHx8IGV2ZW50VHlwZSA9PSBrQ0dTRXZlbnRGbHVpZFRvdWNoR2VzdHVyZSB8fCBldmVudFR5cGUg
PT0ga0NHU0V2ZW50RG9ja0NvbnRyb2wpIHsKKyAgICAgICAgaWYgKENHRXZlbnRHZXRJbnRlZ2Vy
VmFsdWVGaWVsZChldmVudCwga0NHRXZlbnRHZXN0dXJlSXNQcmVmbGlnaHQpKSB7CisgICAgICAg
ICAgICBkaWN0W0Aia0NHRXZlbnRHZXN0dXJlSXNQcmVmbGlnaHQiXSA9IEBZRVM7CisgICAgICAg
ICAgICBkaWN0W0Aia0NHRXZlbnRHZXN0dXJlUHJlZmxpZ2h0UHJvZ3Jlc3MiXSA9IEAoQ0dFdmVu
dEdldERvdWJsZVZhbHVlRmllbGQoZXZlbnQsIGtDR0V2ZW50R2VzdHVyZVByZWZsaWdodFByb2dy
ZXNzKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBkaWN0W0Aid2luZG93TG9jYXRpb24iXSA9
IE5TU3RyaW5nRnJvbVBvaW50KE5TUG9pbnRGcm9tQ0dQb2ludChDR0V2ZW50R2V0V2luZG93TG9j
YXRpb24oZXZlbnQpKSk7CisKKyAgICBDR0V2ZW50RmxhZ3MgZmxhZ3MgPSBDR0V2ZW50R2V0Rmxh
Z3MoZXZlbnQpICYgfk5YX05PTkNPQUxTRVNDRURNQVNLOworICAgIGlmIChmbGFncyAhPSAoQ0dF
dmVudEdldEZsYWdzKHBsYWluRXZlbnQpICYgfk5YX05PTkNPQUxTRVNDRURNQVNLKSkKKyAgICAg
ICAgZGljdFtAImZsYWdzIl0gPSBAKGZsYWdzKTsKKworICAgIENGUmVsZWFzZShwbGFpbkV2ZW50
KTsKKworICAgIHJldHVybiBkaWN0OworfQorCisrIChDR0V2ZW50UmVmKWNyZWF0ZUV2ZW50Rm9y
RGljdGlvbmFyeTooTlNEaWN0aW9uYXJ5ICopZGljdCBpbldpbmRvdzooTlNXaW5kb3cgKil3aW5k
b3cgcmVsYXRpdmVUb1RpbWU6KENHRXZlbnRUaW1lc3RhbXApcmVmZXJlbmNlVGltZXN0YW1wCit7
CisgICAgQ0dFdmVudFJlZiBldmVudCA9IENHRXZlbnRDcmVhdGUoTlVMTCk7CisKKyAgICBGT1Jf
RUFDSF9DR0VWRU5UX0lOVEVHRVJfRklFTEQoU1RPUkVfSU5URUdFUl9GSUVMRF9UT19FVkVOVCk7
CisgICAgRk9SX0VBQ0hfQ0dFVkVOVF9ET1VCTEVfRklFTEQoU1RPUkVfRE9VQkxFX0ZJRUxEX1RP
X0VWRU5UKTsKKworICAgIGlmIChkaWN0W0AicmVsYXRpdmVUaW1lTVMiXSkKKyAgICAgICAgQ0dF
dmVudFNldFRpbWVzdGFtcChldmVudCwgcmVmZXJlbmNlVGltZXN0YW1wICsgc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KChbZGljdFtAInJlbGF0aXZlVGltZU1TIl0gZG91YmxlVmFsdWVdICogTlNFQ19Q
RVJfTVNFQykpKTsKKworICAgIGlmIChbZGljdFtAImtDR0V2ZW50R2VzdHVyZUlzUHJlZmxpZ2h0
Il0gYm9vbFZhbHVlXSkgeworICAgICAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoZXZl
bnQsIGtDR0V2ZW50R2VzdHVyZUlzUHJlZmxpZ2h0LCAxKTsKKyAgICAgICAgQ0dFdmVudFNldERv
dWJsZVZhbHVlRmllbGQoZXZlbnQsIGtDR0V2ZW50R2VzdHVyZVByZWZsaWdodFByb2dyZXNzLCBb
ZGljdFtAImtDR0V2ZW50R2VzdHVyZVByZWZsaWdodFByb2dyZXNzIl0gZG91YmxlVmFsdWVdKTsK
KyAgICB9CisKKyAgICBpZiAoZGljdFtAIndpbmRvd0xvY2F0aW9uIl0pIHsKKyAgICAgICAgQ0dF
dmVudFNldFdpbmRvd0xvY2F0aW9uKGV2ZW50LCBOU1BvaW50VG9DR1BvaW50KE5TUG9pbnRGcm9t
U3RyaW5nKGRpY3RbQCJ3aW5kb3dMb2NhdGlvbiJdKSkpOworCisgICAgICAgIE5TUG9pbnQgc2Ny
ZWVuUG9pbnQgPSBbd2luZG93IGNvbnZlcnRCYXNlVG9TY3JlZW46TlNQb2ludFRvQ0dQb2ludChO
U1BvaW50RnJvbVN0cmluZyhkaWN0W0Aid2luZG93TG9jYXRpb24iXSkpXTsKKyAgICAgICAgQ0dF
dmVudFNldExvY2F0aW9uKGV2ZW50LCBOU01ha2VQb2ludChzY3JlZW5Qb2ludC54LCBOU1NjcmVl
bi5zY3JlZW5zLmZpcnN0T2JqZWN0LmZyYW1lLnNpemUuaGVpZ2h0IC0gc2NyZWVuUG9pbnQueSkp
OworICAgIH0KKworICAgIGlmIChkaWN0W0AiZmxhZ3MiXSkKKyAgICAgICAgQ0dFdmVudFNldEZs
YWdzKGV2ZW50LCBbZGljdFtAImZsYWdzIl0gdW5zaWduZWRMb25nTG9uZ1ZhbHVlXSk7CisKKyAg
ICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGtDR1NFdmVudFdpbmRvd0lERmll
bGQsIHdpbmRvdy53aW5kb3dOdW1iZXIpOworCisgICAgcmV0dXJuIGV2ZW50OworfQorCisrICh2
b2lkKXBsYXlFdmVudFN0cmVhbTooTlNBcnJheTxOU0RpY3Rpb25hcnkgKj4gKilldmVudERpY3Rz
IGluV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSgp
KWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiByZW1h
aW5pbmdFdmVudERpY3RzID0gYWRvcHROUyhbZXZlbnREaWN0cyBtdXRhYmxlQ29weV0pOworCisg
ICAgdWludDY0X3Qgc3RhcnRUaW1lID0gbWFjaF9hYnNvbHV0ZV90aW1lKCk7CisKKyAgICBjb25z
dCBmbG9hdCBldmVudERpc3BhdGNoVGltZXJSYXRlID0gMS4gLyAxMjAuOworCisgICAgW05TVGlt
ZXIgc2NoZWR1bGVkVGltZXJXaXRoVGltZUludGVydmFsOmV2ZW50RGlzcGF0Y2hUaW1lclJhdGUg
cmVwZWF0czpZRVMgYmxvY2s6XihOU1RpbWVyICp0aW1lcikgeworICAgICAgICBSZXRhaW5QdHI8
TlNNdXRhYmxlQXJyYXkgKj4gcmVtb3ZlTGlzdCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBh
bGxvY10gaW5pdF0pOworICAgICAgICBOU0V2ZW50ICpuc0V2ZW50ID0gbmlsOworICAgICAgICBm
b3IgKGlkIGV2ZW50RGljdCBpbiByZW1haW5pbmdFdmVudERpY3RzLmdldCgpKSB7CisgICAgICAg
ICAgICBDR0V2ZW50UmVmIGV2ZW50ID0gW0V2ZW50U2VyaWFsaXplciBjcmVhdGVFdmVudEZvckRp
Y3Rpb25hcnk6ZXZlbnREaWN0IGluV2luZG93OndpbmRvdyByZWxhdGl2ZVRvVGltZTpzdGFydFRp
bWVdOworICAgICAgICAgICAgaWYgKENHRXZlbnRHZXRUaW1lc3RhbXAoZXZlbnQpIDwgbWFjaF9h
YnNvbHV0ZV90aW1lKCkpIHsKKyAgICAgICAgICAgICAgICBuc0V2ZW50ID0gW05TRXZlbnQgZXZl
bnRXaXRoQ0dFdmVudDpldmVudF07CisgICAgICAgICAgICAgICAgW05TQXBwIHBvc3RFdmVudDpu
c0V2ZW50IGF0U3RhcnQ6Tk9dOworICAgICAgICAgICAgICAgIFtyZW1vdmVMaXN0IGFkZE9iamVj
dDpldmVudERpY3RdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ0ZSZWxlYXNlKGV2ZW50
KTsKKyAgICAgICAgfQorICAgICAgICBbcmVtYWluaW5nRXZlbnREaWN0cyByZW1vdmVPYmplY3Rz
SW5BcnJheTpyZW1vdmVMaXN0LmdldCgpXTsKKworICAgICAgICBpZiAoW3JlbWFpbmluZ0V2ZW50
RGljdHMgY291bnRdKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFt0aW1lciBpbnZh
bGlkYXRlXTsKKworICAgICAgICAvLyBCbG9jayB1bnRpbCB3ZSBzZW5kIHRoZSBsYXN0IGV2ZW50
IHdlIHBvc3RlZC4KKyAgICAgICAgW05TQXBwIHBvc3RFdmVudDpbTlNFdmVudCBvdGhlckV2ZW50
V2l0aFR5cGU6TlNFdmVudFR5cGVBcHBsaWNhdGlvbkRlZmluZWQgbG9jYXRpb246TlNaZXJvUG9p
bnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjowIGNvbnRleHQ6MCBz
dWJ0eXBlOjAgZGF0YTE6NDIgZGF0YTI6MF0gYXRTdGFydDpOT107CisgICAgICAgIHdoaWxlICh0
cnVlKSB7CisgICAgICAgICAgICBOU0V2ZW50ICpuZXh0RXZlbnQgPSBbTlNBcHAgbmV4dEV2ZW50
TWF0Y2hpbmdNYXNrOk5TQW55RXZlbnRNYXNrIHVudGlsRGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGlt
ZUludGVydmFsU2luY2VOb3c6ZXZlbnREaXNwYXRjaFRpbWVyUmF0ZV0gaW5Nb2RlOk5TRGVmYXVs
dFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVTXTsKKyAgICAgICAgICAgIGlmIChuZXh0RXZlbnQudHlw
ZSA9PSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZCAmJiBuZXh0RXZlbnQuZGF0YTEgPT0g
NDIpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAobmV4dEV2ZW50KQor
ICAgICAgICAgICAgICAgIFtOU0FwcCBzZW5kRXZlbnQ6bmV4dEV2ZW50XTsKKyAgICAgICAgfQor
CisgICAgICAgIGlmIChjb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CisgICAgfV07Cit9CisKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvU2hhcmVkRXZlbnRTdHJl
YW1zTWFjLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMv
U2hhcmVkRXZlbnRTdHJlYW1zTWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWYzMDI4ODM1OTIxMzYyYmRmNmNk
MWY1YjFlNDc4YTk1MGZlYjM3MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMuaApAQCAt
MCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCA8
QXBwS2l0L0FwcEtpdC5oPgorCitOU1N0cmluZyAqYmVnaW5Td2lwZUJhY2tFdmVudFN0cmVhbSgp
OworTlNTdHJpbmcgKmNvbXBsZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0oKTsKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMv
U2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNl
cmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODI0
MDU5Y2FhZDAxM2YwODkxZjIzNTA4ODUwYTA5MzFkNDljZDg4Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50
U3RyZWFtc01hYy5tbQpAQCAtMCwwICsxLDM2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorI2ltcG9ydCAiU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmgiCisKKyNpZiBQTEFURk9S
TShNQUMpCisKKyNkZWZpbmUgUVVPVEUoLi4uKSBAKCNfX1ZBX0FSR1NfXykKKworTlNTdHJpbmcg
KmJlZ2luU3dpcGVCYWNrRXZlbnRTdHJlYW0oKQoreworICAgIHJldHVybiBRVU9URShbCisgICAg
ICAgIHsKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAwLAorICAgICAgICAgICAgImtD
R0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAy
OSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAxMjgsCisgICAgICAgICAg
ICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAgICAgImtDR0V2ZW50
R2VzdHVyZUhJRFR5cGUiIDogNjEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6
IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVN0YXJ0RW5kU2VyaWVzVHlwZSIgOiA2
LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAor
ICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDgsCisgICAgICAgICAgICAid2luZG93TG9j
YXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNl
IiA6IDEsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwK
KyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NH
RXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6
ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhh
c2UiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6
IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAx
LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAg
ICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDE3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9u
IiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6
IDEsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAg
ICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NF
dmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxY
IiA6IDEyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMi
IDogMTcsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogNCwKKyAgICAg
ICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NH
U0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1l
TVMiIDogMjUsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAor
ICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFkiIDogMiwKKyAgICAgICAgICAgICJr
Q0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2Vz
dHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5
LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMjMKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6
IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAx
LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDI1LAorICAgICAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxX
aGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2
ZW50UG9pbnREZWx0YUF4aXMyIiA6IDExLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6
ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAg
ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUi
IDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAzMywKKyAgICAgICAgICAgICJ3
aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0
dXJlU2Nyb2xsWSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIs
CisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAg
ICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlU2Nyb2xsWCIgOiAyOAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVU
aW1lTVMiIDogMzMsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91
cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAy
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMTYs
CisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAg
ICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0
aXZlVGltZU1TIiA6IDQxLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAz
MDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDEsCisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNj
cm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVs
ZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDM1CisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFB
eGlzMiIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhp
czEiIDogMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA0MSwKKyAgICAgICAgICAg
ICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NH
U2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAyNCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6
IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVI
SURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNDksCisgICAgICAg
ICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2
ZW50R2VzdHVyZVNjcm9sbFkiIDogLTEsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhh
c2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAx
LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJr
Q0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDQ1CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwKKyAgICAgICAgICAg
ICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiA0LAorICAgICAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogLTEsCisgICAgICAgICAgICAicmVsYXRp
dmVUaW1lTVMiIDogNDksCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGlu
dW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIg
OiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDog
MzcsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAg
ICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJl
bGF0aXZlVGltZU1TIiA6IDU3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAw
LCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IC0zLAorICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZl
bnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBl
RmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA1Nwor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNj
cm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhp
czIiIDogNSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMx
IiA6IC0xLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDU3LAorICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dT
Y3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxX
aGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDU0LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0
aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDog
MjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJ
RFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA2NSwKKyAgICAgICAg
ICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlU2Nyb2xsWSIgOiAtNSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFz
ZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEs
CisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogODEKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDksCisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAtMiwKKyAgICAgICAgICAgICJyZWxhdGl2
ZVRpbWVNUyIgOiA2NSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51
b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6
IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiA5
MiwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAg
ICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgXSk7Cit9CisK
K05TU3RyaW5nICpjb21wbGV0ZVN3aXBlQmFja0V2ZW50U3RyZWFtKCkKK3sKKyAgICByZXR1cm4g
UVVPVEUoWworICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIg
OiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDczLAorICAgICAgICAgICAgIndp
bmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1
cmVTY3JvbGxZIiA6IC0zLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIs
CisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAg
ICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlU2Nyb2xsWCIgOiA3NQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMTEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAtMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVN
UyIgOiA3MywKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6
IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMDYsCisg
ICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAg
ImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZl
VGltZU1TIiA6IDgxLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9
IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IC0zLAorICAgICAgICAg
ICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3Jv
bGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQi
IDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA4NQorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENv
dW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDog
MTMsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAt
MSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4MSwKKyAgICAgICAgICAgICJrQ0dT
Y3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMjcsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24i
IDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlw
ZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDg5LAorICAgICAgICAgICAg
IndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdl
c3R1cmVTY3JvbGxZIiA6IC0xLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6
IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAg
ICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlU2Nyb2xsWCIgOiA5MQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NH
U2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMTQsCisgICAgICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAtMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRp
bWVNUyIgOiA4OSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3Vz
IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMzks
CisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAg
ICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0
aXZlVGltZU1TIiA6IDk3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAz
MDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDIsCisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNj
cm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVs
ZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDEzNgorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9s
bENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIi
IDogMjAsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIg
OiAxLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDk3LAorICAgICAgICAgICAgImtD
R1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDIwNCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlv
biIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIy
CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURU
eXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTA1LAorICAgICAgICAg
ICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVu
dEdlc3R1cmVTY3JvbGxZIiA6IDUsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2Ui
IDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAor
ICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dF
dmVudEdlc3R1cmVTY3JvbGxYIiA6IDkyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwKKyAgICAgICAgICAgICJr
Q0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiAxNCwKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IDIsCisgICAgICAgICAgICAicmVsYXRpdmVU
aW1lTVMiIDogMTA1LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVv
dXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDog
MiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDEz
NiwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAg
ICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVs
YXRpdmVUaW1lTVMiIDogMTEzLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAw
LCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDE0LAorICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZl
bnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBl
RmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAxMzMK
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRT
Y3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERl
bHRhQXhpczIiIDogMTkyLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMiwK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMSIgOiAxLAorICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAg
ICJyZWxhdGl2ZVRpbWVNUyIgOiAxMTMsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRh
QXhpczIiIDogMTksCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0i
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogNwor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTIx
LAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgImtDR1NF
dmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIg
OiA0LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTIxLAorICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNjIsCisgICAgICAgICAgICAia0NH
U0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVN0YXJ0
RW5kU2VyaWVzVHlwZSIgOiA2LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAw
LCAzMDB9IgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDog
MTM5LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAg
ICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIsCisgICAgICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDQsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudElzQ29udGludW91cyIgOiAxCisgICAgICAgIH0KKyAgICBdKTsKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5n
cy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlw
dENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAppbmRleCAxM2RmNmU4Zjg2
YjQzNDRjZjBhMTBjMDRiMjQ3OGI1NzQ3OTNlNDdjLi5iZjQ2MDRlMmEzMGJjOTc2YWI5ODEyM2Jh
MGYyODA5MjliZjMwZjAzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxl
ci5pZGwKQEAgLTQyLDYgKzQyLDExIEBAIGludGVyZmFjZSBVSVNjcmlwdENvbnRyb2xsZXIgewog
ICAgIHZvaWQga2V5RG93blVzaW5nSGFyZHdhcmVLZXlib2FyZChET01TdHJpbmcgY2hhcmFjdGVy
LCBvYmplY3QgY2FsbGJhY2spOwogICAgIHZvaWQga2V5VXBVc2luZ0hhcmR3YXJlS2V5Ym9hcmQo
RE9NU3RyaW5nIGNoYXJhY3Rlciwgb2JqZWN0IGNhbGxiYWNrKTsKIAorICAgIHZvaWQgYmVnaW5C
YWNrU3dpcGUob2JqZWN0IGNhbGxiYWNrKTsKKyAgICB2b2lkIGNvbXBsZXRlQmFja1N3aXBlKG9i
amVjdCBjYWxsYmFjayk7CisKKyAgICB2b2lkIHBsYXlCYWNrRXZlbnRTdHJlYW0oRE9NU3RyaW5n
IGV2ZW50U3RyZWFtLCBvYmplY3QgY2FsbGJhY2spOworCiAgICAgLy8gRXF1aXZhbGVudCBvZiBw
cmVzc2luZyB0aGUgRG9uZSBidXR0b24gaW4gdGhlIGZvcm0gYWNjZXNzb3J5IGJhci4KICAgICB2
b2lkIGRpc21pc3NGb3JtQWNjZXNzb3J5VmlldygpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNw
cAppbmRleCAxMDA1Y2JiMWZjYTg4MjlkMGQzZWRmMWRkZDdmOWY3ODg5NmY5NjQzLi4yNDEzYmVj
MDNjMmE5NjNlZWVkZjAzNzQzMTFiZTM3MDA5NmFjNDZlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxl
ci5jcHAKQEAgLTEzNSw2ICsxMzUsMTEgQEAgSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6
OmRpZEhpZGVLZXlib2FyZENhbGxiYWNrKCkgY29uc3QKICAgICByZXR1cm4gbV9jb250ZXh0LT5j
YWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRIaWRlS2V5Ym9hcmQpOwogfQogCit2b2lkIFVJ
U2NyaXB0Q29udHJvbGxlcjo6cGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1JlZiBzdHJlYW0s
IEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgcGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFt
KHN0cmVhbSwgY2FsbGJhY2spOworfQorCiAjaWYgIVBMQVRGT1JNKElPUykKIHZvaWQgVUlTY3Jp
cHRDb250cm9sbGVyOjp6b29tVG9TY2FsZShkb3VibGUsIEpTVmFsdWVSZWYpCiB7CkBAIC0yNDMs
NiArMjQ4LDIzIEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZEhpZGVL
ZXlib2FyZENhbGxiYWNrKCkKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybUNsZWFy
QWxsQ2FsbGJhY2tzKCkKIHsKIH0KKworI2VuZGlmCisKKyNpZiAhUExBVEZPUk0oTUFDKQorCit2
b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVnaW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFj
aykKK3sKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNvbXBsZXRlQmFja1N3aXBlKEpT
VmFsdWVSZWYgY2FsbGJhY2spCit7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0
Zm9ybVBsYXlCYWNrRXZlbnRTdHJlYW0oSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYpCit7Cit9CisK
ICNlbmRpZgogCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6dWlTY3JpcHRDb21wbGV0ZShKU1N0
cmluZ1JlZiByZXN1bHQpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDg0NjNhYzJjMmJiN2Nm
YzA1ZjhkNGRkNTUyZGM4MmI5MzQ4NDI5ZWIuLjEyOGNlMWUzOWJmNjgwZjg0OTc2MTljYTUyMzkw
NTEyMWJkYzkzMGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCkBAIC02OSw2ICs2OSw5IEBAIHB1
YmxpYzoKICAgICAKICAgICB2b2lkIHNjcm9sbFRvT2Zmc2V0KGxvbmcgeCwgbG9uZyB5KTsKIAor
ICAgIHZvaWQgYmVnaW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjayk7CisgICAgdm9pZCBj
b21wbGV0ZUJhY2tTd2lwZShKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKKwogICAgIHZvaWQgc2V0RGlk
U3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2soSlNWYWx1ZVJlZik7CiAgICAgSlNW
YWx1ZVJlZiBkaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjaygpIGNvbnN0Owog
CkBAIC05MCw2ICs5Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERpZEVuZFNjcm9sbGluZ0Nh
bGxiYWNrKEpTVmFsdWVSZWYpOwogICAgIEpTVmFsdWVSZWYgZGlkRW5kU2Nyb2xsaW5nQ2FsbGJh
Y2soKSBjb25zdDsKIAorICAgIHZvaWQgcGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1JlZiBz
dHJlYW0sIEpTVmFsdWVSZWYgY2FsbGJhY2spOworCiAgICAgZG91YmxlIHpvb21TY2FsZSgpIGNv
bnN0OwogICAgIGRvdWJsZSBtaW5pbXVtWm9vbVNjYWxlKCkgY29uc3Q7CiAgICAgZG91YmxlIG1h
eGltdW1ab29tU2NhbGUoKSBjb25zdDsKQEAgLTExMSw2ICsxMTYsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgcGxhdGZvcm1TZXREaWRIaWRlS2V5Ym9hcmRDYWxsYmFjaygpOwogICAgIHZvaWQgcGxh
dGZvcm1TZXREaWRFbmRTY3JvbGxpbmdDYWxsYmFjaygpOwogICAgIHZvaWQgcGxhdGZvcm1DbGVh
ckFsbENhbGxiYWNrcygpOworICAgIHZvaWQgcGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpT
U3RyaW5nUmVmLCBKU1ZhbHVlUmVmKTsKIAogICAgIEpTQ2xhc3NSZWYgd3JhcHBlckNsYXNzKCkg
ZmluYWw7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0NvcmVHcmFw
aGljc1NQSS5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9zcGkvQ29yZUdyYXBoaWNzU1BJLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTc1YmUwNzQ4OTk0ZWYyZDg1NThlMDU2NjY5ODc3ZjUxNThkZmIwZAotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0NvcmVHcmFwaGljc1NQ
SS5oCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9y
dCA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1w
b3J0IDxDb3JlR3JhcGhpY3MvQ0dFdmVudFByaXZhdGUuaD4KKyNpbXBvcnQgPENvcmVHcmFwaGlj
cy9DR1NFdmVudC5oPgorCisjZWxzZQorCitXVEZfRVhURVJOX0NfQkVHSU4KKworc3RhdGljIGNv
bnN0IENHRXZlbnRGaWVsZCBrQ0dTRXZlbnRXaW5kb3dJREZpZWxkID0gKENHRXZlbnRGaWVsZCk1
MTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHU0V2ZW50VHlwZUZpZWxkID0gKENHRXZl
bnRGaWVsZCk1NTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlSElE
VHlwZSA9IChDR0V2ZW50RmllbGQpMTEwOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dF
dmVudEdlc3R1cmVJc1ByZWZsaWdodCA9IChDR0V2ZW50RmllbGQpMTExOworc3RhdGljIGNvbnN0
IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVab29tVmFsdWUgPSAoQ0dFdmVudEZpZWxkKTEx
MzsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlUm90YXRpb25WYWx1
ZSA9IChDR0V2ZW50RmllbGQpMTE0Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVu
dEdlc3R1cmVTd2lwZVZhbHVlID0gKENHRXZlbnRGaWVsZCkxMTU7CitzdGF0aWMgY29uc3QgQ0dF
dmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVByZWZsaWdodFByb2dyZXNzID0gKENHRXZlbnRGaWVs
ZCkxMTY7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN0YXJ0RW5k
U2VyaWVzVHlwZSA9IChDR0V2ZW50RmllbGQpMTE3Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVs
ZCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxYID0gKENHRXZlbnRGaWVsZCkxMTg7CitzdGF0aWMgY29u
c3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVNjcm9sbFkgPSAoQ0dFdmVudEZpZWxkKTEx
OTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU2Nyb2xsWiA9IChD
R0V2ZW50RmllbGQpMTIwOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1
cmVTd2lwZU1vdGlvbiA9IChDR0V2ZW50RmllbGQpMTIzOworc3RhdGljIGNvbnN0IENHRXZlbnRG
aWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVByb2dyZXNzID0gKENHRXZlbnRGaWVsZCkxMjQ7Citz
dGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlUG9zaXRpb25YID0g
KENHRXZlbnRGaWVsZCkxMjU7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2Vz
dHVyZVN3aXBlUG9zaXRpb25ZID0gKENHRXZlbnRGaWVsZCkxMjY7CitzdGF0aWMgY29uc3QgQ0dF
dmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlYID0gKENHRXZlbnRGaWVsZCkx
Mjk7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2Np
dHlZID0gKENHRXZlbnRGaWVsZCkxMzA7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2
ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlaID0gKENHRXZlbnRGaWVsZCkxMzE7CitzdGF0aWMgY29u
c3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVBoYXNlID0gKENHRXZlbnRGaWVsZCkxMzI7
CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZU1hc2sgPSAoQ0dFdmVu
dEZpZWxkKTEzMzsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dp
cGVNYXNrID0gKENHRXZlbnRGaWVsZCkxMzQ7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtD
R0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzID0gKENHRXZlbnRGaWVsZCkxMzU7CitzdGF0aWMg
Y29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50U3dpcGVHZXN0dXJlRmxhZ0JpdHMgPSAoQ0dFdmVu
dEZpZWxkKTEzNjsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlRmxh
dm9yID0gKENHRXZlbnRGaWVsZCkxMzg7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2
ZW50R2VzdHVyZVpvb21EZWx0YVggPSAoQ0dFdmVudEZpZWxkKTEzOTsKK3N0YXRpYyBjb25zdCBD
R0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlWm9vbURlbHRhWSA9IChDR0V2ZW50RmllbGQpMTQw
Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVQcm9ncmVzcyA9IChD
R0V2ZW50RmllbGQpMTQyOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1
cmVTdGFnZSA9IChDR0V2ZW50RmllbGQpMTQzOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBr
Q0dFdmVudEdlc3R1cmVCZWhhdmlvciA9IChDR0V2ZW50RmllbGQpMTQ0Oworc3RhdGljIGNvbnN0
IENHRXZlbnRGaWVsZCBrQ0dFdmVudFRyYW5zaXRpb25Qcm9ncmVzcyA9IChDR0V2ZW50RmllbGQp
MTQ3Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudFN0YWdlUHJlc3N1cmUgPSAo
Q0dFdmVudEZpZWxkKTE0ODsKKworZW51bSB7CisgICAga0NHU0V2ZW50U2Nyb2xsV2hlZWwgPSAy
MiwKKyAgICBrQ0dTRXZlbnRab29tID0gMjgsCisgICAga0NHU0V2ZW50R2VzdHVyZSA9IDI5LAor
ICAgIGtDR1NFdmVudERvY2tDb250cm9sID0gMzAsCisgICAga0NHU0V2ZW50Rmx1aWRUb3VjaEdl
c3R1cmUgPSAzMSwKK307Cit0eXBlZGVmIHVpbnQzMl90IENHU0V2ZW50VHlwZTsKKworZW51bSB7
CisgICAga0NHSElERXZlbnRUeXBlR2VzdHVyZVN0YXJ0ZWQgPSA2MSwKKyAgICBrQ0dISURFdmVu
dFR5cGVHZXN0dXJlRW5kZWQgPSA2MiwKK307Cit0eXBlZGVmIHVpbnQzMl90IENHU0hJREV2ZW50
VHlwZTsKKworQ0dQb2ludCBDR0V2ZW50R2V0V2luZG93TG9jYXRpb24oQ0dFdmVudFJlZik7Cit2
b2lkIENHRXZlbnRTZXRXaW5kb3dMb2NhdGlvbihDR0V2ZW50UmVmLCBDR1BvaW50KTsKKworV1RG
X0VYVEVSTl9DX0VORAorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0lPS2l0U1BJLmggYi9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL3NwaS9JT0tpdFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyMDk3NjBjZTcxMTkxZjQ1
YmMxZDJkNDljMzIzNGJmNmFjN2M0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVu
bmVyU2hhcmVkL3NwaS9JT0tpdFNQSS5oCkBAIC0wLDAgKzEsMTc3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgorCisjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8SU9LaXQvaGlkL0lPSElERXZlbnQuaD4KKyNpbXBv
cnQgPElPS2l0L2hpZC9JT0hJREV2ZW50U3lzdGVtQ2xpZW50Lmg+CisjaW1wb3J0IDxJT0tpdC9o
aWQvSU9ISURVc2FnZVRhYmxlcy5oPgorCisjZWxzZQorCitXVEZfRVhURVJOX0NfQkVHSU4KKwor
I2lmZGVmIF9fTFA2NF9fCit0eXBlZGVmIGRvdWJsZSBJT0hJREZsb2F0OworI2Vsc2UKK3R5cGVk
ZWYgZmxvYXQgSU9ISURGbG9hdDsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBrSU9ISURFdmVudE9w
dGlvbk5vbmUgPSAwLAorfTsKKwordHlwZWRlZiBVSW50MzIgSU9PcHRpb25CaXRzOwordHlwZWRl
ZiB1aW50MzJfdCBJT0hJREV2ZW50T3B0aW9uQml0czsKK3R5cGVkZWYgdWludDMyX3QgSU9ISURF
dmVudEZpZWxkOworCit0eXBlZGVmIHN0cnVjdCBfX0lPSElERXZlbnRTeXN0ZW1DbGllbnQgKiBJ
T0hJREV2ZW50U3lzdGVtQ2xpZW50UmVmOwordHlwZWRlZiBzdHJ1Y3QgX19JT0hJREV2ZW50ICog
SU9ISURFdmVudFJlZjsKKworI2RlZmluZSBJT0hJREV2ZW50RmllbGRCYXNlKHR5cGUpICh0eXBl
IDw8IDE2KQorCitlbnVtIHsKKyAgICBrSElEUGFnZV9LZXlib2FyZE9yS2V5cGFkICAgICAgID0g
MHgwNywKKyAgICBrSElEUGFnZV9WZW5kb3JEZWZpbmVkU3RhcnQgICAgID0gMHhGRjAwCit9Owor
CitlbnVtIHsKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFJhbmdlICAgICAgID0gMTw8MCwKKyAg
ICBrSU9ISUREaWdpdGl6ZXJFdmVudFRvdWNoICAgICAgID0gMTw8MSwKKyAgICBrSU9ISUREaWdp
dGl6ZXJFdmVudFBvc2l0aW9uICAgID0gMTw8MiwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudElk
ZW50aXR5ICAgID0gMTw8NSwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudEF0dHJpYnV0ZSAgID0g
MTw8NiwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudENhbmNlbCAgICAgID0gMTw8NywKKyAgICBr
SU9ISUREaWdpdGl6ZXJFdmVudFN0YXJ0ICAgICAgID0gMTw8OCwKK307Cit0eXBlZGVmIHVpbnQz
Ml90IElPSElERGlnaXRpemVyRXZlbnRNYXNrOworCitlbnVtIHsKKyAgICBrSU9ISURFdmVudFR5
cGVOVUxMLAorICAgIGtJT0hJREV2ZW50VHlwZVZlbmRvckRlZmluZWQsCisgICAga0lPSElERXZl
bnRUeXBlS2V5Ym9hcmQgPSAzLAorICAgIGtJT0hJREV2ZW50VHlwZVJvdGF0aW9uID0gNSwKKyAg
ICBrSU9ISURFdmVudFR5cGVTY3JvbGwgPSA2LAorICAgIGtJT0hJREV2ZW50VHlwZVpvb20gPSA4
LAorICAgIGtJT0hJREV2ZW50VHlwZURpZ2l0aXplciA9IDExLAorICAgIGtJT0hJREV2ZW50VHlw
ZU5hdmlnYXRpb25Td2lwZSA9IDE2LAorICAgIGtJT0hJREV2ZW50VHlwZUZvcmNlID0gMzIsCisK
K307Cit0eXBlZGVmIHVpbnQzMl90IElPSElERXZlbnRUeXBlOworCitlbnVtIHsKKyAgICBrSU9I
SURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFVzYWdlUGFnZSA9IElPSElERXZlbnRGaWVsZEJhc2Uo
a0lPSElERXZlbnRUeXBlVmVuZG9yRGVmaW5lZCksCisgICAga0lPSElERXZlbnRGaWVsZFZlbmRv
ckRlZmluZWRSZXNlcnZlZCwKKyAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFJlc2Vy
dmVkMSwKKyAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZERhdGFMZW5ndGgsCisgICAg
a0lPSElERXZlbnRGaWVsZFZlbmRvckRlZmluZWREYXRhCit9OworCitlbnVtIHsKKyAgICBrSU9I
SURFdmVudEZpZWxkRGlnaXRpemVyWCA9IElPSElERXZlbnRGaWVsZEJhc2Uoa0lPSElERXZlbnRU
eXBlRGlnaXRpemVyKSwKKyAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyWSwKKyAgICBrSU9I
SURFdmVudEZpZWxkRGlnaXRpemVyTWFqb3JSYWRpdXMgPSBrSU9ISURFdmVudEZpZWxkRGlnaXRp
emVyWCArIDIwLAorICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJNaW5vclJhZGl1cywKKyAg
ICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVySXNEaXNwbGF5SW50ZWdyYXRlZCA9IGtJT0hJREV2
ZW50RmllbGREaWdpdGl6ZXJNYWpvclJhZGl1cyArIDUsCit9OworCitlbnVtIHsKKyAgICBrSU9I
SUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZUhhbmQgPSAzCit9OwordHlwZWRlZiB1aW50MzJfdCBJ
T0hJRERpZ2l0aXplclRyYW5zZHVjZXJUeXBlOworCitJT0hJREV2ZW50UmVmIElPSElERXZlbnRD
cmVhdGVEaWdpdGl6ZXJFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIElPSElERGlnaXRp
emVyVHJhbnNkdWNlclR5cGUsIHVpbnQzMl90LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVu
dE1hc2ssIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJ
REZsb2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsK
KworSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlRGlnaXRpemVyRmluZ2VyRXZlbnQoQ0ZB
bGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIElPSElERGlnaXRpemVy
RXZlbnRNYXNrLCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0
LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9ISURFdmVudE9wdGlvbkJpdHMp
OworCitJT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVGb3JjZUV2ZW50KENGQWxsb2NhdG9y
UmVmLCB1aW50NjRfdCwgdWludDMyX3QsIElPSElERmxvYXQsIHVpbnQzMl90LCBJT0hJREZsb2F0
LCBJT0hJREV2ZW50T3B0aW9uQml0cyk7CisKK0lPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0
ZUtleWJvYXJkRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMy
X3QsIGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsKKworSU9ISURFdmVudFJlZiBJT0hJREV2ZW50
Q3JlYXRlVmVuZG9yRGVmaW5lZEV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMy
X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDhfdCosIENGSW5kZXgsIElPSElERXZlbnRPcHRp
b25CaXRzKTsKKworSU9ISURFdmVudFR5cGUgSU9ISURFdmVudEdldFR5cGUoSU9ISURFdmVudFJl
Zik7CisKK3ZvaWQgSU9ISURFdmVudFNldEZsb2F0VmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURF
dmVudEZpZWxkLCBJT0hJREZsb2F0KTsKKworQ0ZJbmRleCBJT0hJREV2ZW50R2V0SW50ZWdlclZh
bHVlKElPSElERXZlbnRSZWYsIElPSElERXZlbnRGaWVsZCk7Cit2b2lkIElPSElERXZlbnRTZXRJ
bnRlZ2VyVmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxkLCBDRkluZGV4KTsKKwor
dm9pZCBJT0hJREV2ZW50QXBwZW5kRXZlbnQoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudFJlZiwg
SU9PcHRpb25CaXRzKTsKKworSU9ISURFdmVudFN5c3RlbUNsaWVudFJlZiBJT0hJREV2ZW50U3lz
dGVtQ2xpZW50Q3JlYXRlKENGQWxsb2NhdG9yUmVmKTsKKworI2RlZmluZSBrR1NFdmVudFBhdGhJ
bmZvSW5SYW5nZSAoMSA8PCAwKQorI2RlZmluZSBrR1NFdmVudFBhdGhJbmZvSW5Ub3VjaCAoMSA8
PCAxKQorCitlbnVtIHsKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRBID0gMHgwNCwKKyAgICBrSElE
VXNhZ2VfS2V5Ym9hcmQxID0gMHgxRSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQyID0gMHgxRiwK
KyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQzID0gMHgyMCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ0
ID0gMHgyMSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ1ID0gMHgyMiwKKyAgICBrSElEVXNhZ2Vf
S2V5Ym9hcmQ2ID0gMHgyMywKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ3ID0gMHgyNCwKKyAgICBr
SElEVXNhZ2VfS2V5Ym9hcmQ4ID0gMHgyNSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ5ID0gMHgy
NiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQwID0gMHgyNywKKyAgICBrSElEVXNhZ2VfS2V5Ym9h
cmRSZXR1cm5PckVudGVyID0gMHgyOCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRFc2NhcGUgPSAw
eDI5LAorICAgIGtISURVc2FnZV9LZXlib2FyZERlbGV0ZU9yQmFja3NwYWNlID0gMHgyQSwKKyAg
ICBrSElEVXNhZ2VfS2V5Ym9hcmRUYWIgPSAweDJCLAorICAgIGtISURVc2FnZV9LZXlib2FyZFNw
YWNlYmFyID0gMHgyQywKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRIeXBoZW4gPSAweDJELAorICAg
IGtISURVc2FnZV9LZXlib2FyZEVxdWFsU2lnbiA9IDB4MkUsCisgICAga0hJRFVzYWdlX0tleWJv
YXJkT3BlbkJyYWNrZXQgPSAweDJGLAorICAgIGtISURVc2FnZV9LZXlib2FyZENsb3NlQnJhY2tl
dCA9IDB4MzAsCisgICAga0hJRFVzYWdlX0tleWJvYXJkQmFja3NsYXNoID0gMHgzMSwKKyAgICBr
SElEVXNhZ2VfS2V5Ym9hcmRTZW1pY29sb24gPSAweDMzLAorICAgIGtISURVc2FnZV9LZXlib2Fy
ZFF1b3RlID0gMHgzNCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRHcmF2ZUFjY2VudEFuZFRpbGRl
ID0gMHgzNSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRDb21tYSA9IDB4MzYsCisgICAga0hJRFVz
YWdlX0tleWJvYXJkUGVyaW9kID0gMHgzNywKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRTbGFzaCA9
IDB4MzgsCisgICAga0hJRFVzYWdlX0tleWJvYXJkRjEgPSAweDNBLAorICAgIGtISURVc2FnZV9L
ZXlib2FyZEhvbWUgPSAweDRBLAorICAgIGtISURVc2FnZV9LZXlib2FyZFBhZ2VVcCA9IDB4NEIs
CisgICAga0hJRFVzYWdlX0tleWJvYXJkRW5kID0gMHg0RCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9h
cmRSaWdodEFycm93ID0gMHg0RiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0QXJyb3cgPSAw
eDUwLAorICAgIGtISURVc2FnZV9LZXlib2FyZERvd25BcnJvdyA9IDB4NTEsCisgICAga0hJRFVz
YWdlX0tleWJvYXJkVXBBcnJvdyA9IDB4NTIsCisgICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdENv
bnRyb2wgPSAweEUwLAorICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRTaGlmdCA9IDB4RTEsCisg
ICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdEFsdCA9IDB4RTIKK307CisKK1dURl9FWFRFUk5fQ19F
TkQKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCmluZGV4IDcwZDk0MDE0YzhkNzUwY2I3ZDY1NzA4MDQ1
MjhlMjA4Y2MyZjRhNTQuLjI0ZjI3YjI4OTE3YzBlMzRjYjdkZWI3MzY5NTkwMzc3YmE3YmVkNjEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCkBAIC03MSw3ICs3
MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdXNlTW92ZVRvKGRvdWJsZSB4LCBkb3VibGUgeSk7
CiAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSk7CiAgICAgdm9pZCBtb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBpbnQgcGhhc2Us
IGludCBtb21lbnR1bSk7Ci0gICAgdm9pZCBzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcyhpbnQgeCwgaW50IHksIGludCBwaGFzZSwgaW50IG1vbWVudHVtKTsKICAgICB2b2lk
IGNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSwgYm9vbCBwYWdlZCk7CiAKICAg
ICB2b2lkIGxlYXBGb3J3YXJkKGludCBtaWxsaXNlY29uZHMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250
cm9sbGVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwKaW5kZXggZjMyODBiYjk0YjA1NDM3MDI0MzAy
M2UyNTMzNmRlMWFmYWU3OTM5Zi4uZDViODAzODQ1OWU3NmI5ODkxNDk5OGM2MDliNmYzNjE2NzQw
N2Q4MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRs
CkBAIC0zNCw3ICszNCw2IEBAIGludGVyZmFjZSBFdmVudFNlbmRpbmdDb250cm9sbGVyIHsKICAg
ICB2b2lkIG1vdXNlRm9yY2VDaGFuZ2VkKGRvdWJsZSBmb3JjZSk7CiAgICAgdm9pZCBtb3VzZVNj
cm9sbEJ5KGxvbmcgeCwgbG9uZyB5KTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcyhsb25nIHgsIGxvbmcgeSwgRE9NU3RyaW5nIHBoYXNlLCBET01TdHJp
bmcgbW9tZW50dW0pOwotICAgIHZvaWQgc3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMobG9uZyB4LCBsb25nIHksIERPTVN0cmluZyBwaGFzZSwgRE9NU3RyaW5nIG1vbWVudHVt
KTsKICAgICB2b2lkIGNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGxvbmcgeCwgbG9uZyB5LCBvcHRp
b25hbCBib29sZWFuIHBhZ2VkKTsKICAgICBvYmplY3QgY29udGV4dENsaWNrKCk7CiAgICAgdm9p
ZCBzY2hlZHVsZUFzeW5jaHJvbm91c0NsaWNrKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVy
LmNwcAppbmRleCAwZmFhMmYzOTgzY2Y3YTkxZTc5MWZkZjc0NDFmNGNkOWQ5ZTlmMzUyLi40YzNm
ZWY4OTMwODc4ZTE0YTU5NTNiZTM3YjYyYjkzMDkyNTBmNDYwIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5n
Q29udHJvbGxlci5jcHAKQEAgLTQ4MSwzOCArNDgxLDYgQEAgdm9pZCBFdmVudFNlbmRpbmdDb250
cm9sbGVyOjptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGlu
dAogICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24o
KS5wYWdlKCktPnBhZ2UoKSwgRXZlbnRTZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5k
ZXJNZXNzYWdlQm9keS5nZXQoKSk7CiB9CiAKLXZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6
c3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBKU1N0
cmluZ1JlZiBwaGFzZVN0ciwgSlNTdHJpbmdSZWYgbW9tZW50dW1TdHIpCi17Ci0gICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkV2ZW50U2VuZGVyIikpOwotICAgIFdLUmV0YWluUHRy
PFdLTXV0YWJsZURpY3Rpb25hcnlSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkoQWRvcHRXSywg
V0tNdXRhYmxlRGljdGlvbmFyeUNyZWF0ZSgpKTsKLQotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBzdWJNZXNzYWdlS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJTdWJNZXNzYWdlIikpOwotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdl
TmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3dpcGVHZXN0dXJl
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMiKSk7Ci0gICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShF
dmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCBzdWJNZXNzYWdlS2V5LmdldCgpLCBzdWJNZXNz
YWdlTmFtZS5nZXQoKSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4geEtleShBZG9w
dFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWCIpKTsKLSAgICBXS1JldGFpblB0
cjxXS0RvdWJsZVJlZj4geFJlZihBZG9wdFdLLCBXS0RvdWJsZUNyZWF0ZSh4KSk7Ci0gICAgV0tE
aWN0aW9uYXJ5U2V0SXRlbShFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCB4S2V5LmdldCgp
LCB4UmVmLmdldCgpKTsKLQotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB5S2V5KEFkb3B0
V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJZIikpOwotICAgIFdLUmV0YWluUHRy
PFdLRG91YmxlUmVmPiB5UmVmKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKHkpKTsKLSAgICBXS0Rp
Y3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHlLZXkuZ2V0KCks
IHlSZWYuZ2V0KCkpOwotCi0gICAgdWludDY0X3QgcGhhc2UgPSBjZ0V2ZW50UGhhc2VGcm9tU3Ry
aW5nKHBoYXNlU3RyKTsKLSAgICB1aW50NjRfdCBtb21lbnR1bSA9IGNnRXZlbnRNb21lbnR1bVBo
YXNlRnJvbVN0cmluZyhtb21lbnR1bVN0cik7Ci0KLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gcGhhc2VLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlBoYXNl
IikpOwotICAgIFdLUmV0YWluUHRyPFdLVUludDY0UmVmPiBwaGFzZVJlZihBZG9wdFdLLCBXS1VJ
bnQ2NENyZWF0ZShwaGFzZSkpOwotICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oRXZlbnRTZW5kZXJN
ZXNzYWdlQm9keS5nZXQoKSwgcGhhc2VLZXkuZ2V0KCksIHBoYXNlUmVmLmdldCgpKTsKLQotICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtb21lbnR1bUtleShBZG9wdFdLLCBXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiTW9tZW50dW0iKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tVSW50
NjRSZWY+IG1vbWVudHVtUmVmKEFkb3B0V0ssIFdLVUludDY0Q3JlYXRlKG1vbWVudHVtKSk7Ci0g
ICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCBtb21l
bnR1bUtleS5nZXQoKSwgbW9tZW50dW1SZWYuZ2V0KCkpOwotCi0gICAgV0tCdW5kbGVQYWdlRm9y
Y2VSZXBhaW50KEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSk7IC8v
IFRyaWdnZXJzIGEgc2Nyb2xsaW5nIHRyZWUgY29tbWl0LgotICAgIFdLQnVuZGxlUGFnZVBvc3RN
ZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgRXZlbnRT
ZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSk7Ci19
Ci0KIHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6Y29udGludW91c01vdXNlU2Nyb2xsQnko
aW50IHgsIGludCB5LCBib29sIHBhZ2VkKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBFdmVudFNlbmRlck1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJFdmVudFNlbmRlciIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgKaW5kZXgg
YzIzYzM2ZGZhYzU1ODRmODUxYzVmNjBmYjRkNTYyMmNmZjQyMDA0YS4uMjhmY2U5Y2U2Y2JlNTdj
M2ZmOGU4Zjk4M2ViYzQyYjRlMDhiMGQyZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgK
QEAgLTUzLDcgKzUzLDYgQEAgcHVibGljOgogICAgIHZvaWQgbW91c2VGb3JjZUNoYW5nZWQoZG91
YmxlIGZvcmNlKTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5KTsKICAgICB2
b2lkIG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHks
IEpTU3RyaW5nUmVmIHBoYXNlLCBKU1N0cmluZ1JlZiBtb21lbnR1bSk7Ci0gICAgdm9pZCBzd2lw
ZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIEpTU3RyaW5n
UmVmIHBoYXNlLCBKU1N0cmluZ1JlZiBtb21lbnR1bSk7CiAgICAgdm9pZCBjb250aW51b3VzTW91
c2VTY3JvbGxCeShpbnQgeCwgaW50IHksIGJvb2wgcGFnZWQpOwogICAgIEpTVmFsdWVSZWYgY29u
dGV4dENsaWNrKCk7CiAgICAgdm9pZCBsZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50
U2VuZGVyUHJveHlJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2lvcy9FdmVudFNlbmRlclByb3h5SU9TLm1tCmluZGV4IGFjNTRhMWM2ZDZkOGMyYzUwZTA4MWRi
NWJkYjgyMWQzZTYwOGVjMmQuLmNhYjNmMThiMzY1OWY0OTE2YmQ1MDA4NzkyODZkNmEyN2MwYzlm
OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9z
L0V2ZW50U2VuZGVyUHJveHlJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbQpAQCAtMTAzLDExICsxMDMsNiBA
QCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcyhpbnQgeCwgaW50IHksIGludAogICAgIC8vIFdyaXRlIG1lLgogfQogCi12b2lkIEV2
ZW50U2VuZGVyUHJveHk6OnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGlu
dCwgaW50LCBpbnQsIGludCkKLXsKLSAgICAvLyBXcml0ZSBtZS4KLX0KLQogdm9pZCBFdmVudFNl
bmRlclByb3h5Ojpjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHksIGJvb2wgcGFn
ZWQpCiB7CiAgICAgLy8gV3JpdGUgbWUuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IGQyZTQ5YmI1ZGE4OGViZDM3ZGEwZWRmNmIyMmQzNTFmN2EyYWVmZDku
LmM3MzhkMWUwMWI5Y2M3NWI5ZTFjNDVjMTc5NzU3ZWI5MDEwOTdlZGEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMjU4LDIzICsxMjU4LDYgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tT
dHJpbmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0g
ICAgICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHN1Yk1lc3NhZ2VOYW1lLCAi
U3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMiKSkgewotICAgICAgICAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHhLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJYIikpOwotICAgICAgICAgICAgZG91YmxlIHggPSBXS0RvdWJsZUdldFZh
bHVlKHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1l
c3NhZ2VCb2R5RGljdGlvbmFyeSwgeEtleS5nZXQoKSkpKTsKLQotICAgICAgICAgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IHlLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJZIikpOwotICAgICAgICAgICAgZG91YmxlIHkgPSBXS0RvdWJsZUdldFZhbHVlKHN0
YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VC
b2R5RGljdGlvbmFyeSwgeUtleS5nZXQoKSkpKTsKLQotICAgICAgICAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHBoYXNlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiUGhhc2UiKSk7Ci0gICAgICAgICAgICBpbnQgcGhhc2UgPSBzdGF0aWNfY2FzdDxpbnQ+
KFdLVUludDY0R2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+KFdLRGljdGlvbmFyeUdl
dEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBwaGFzZUtleS5nZXQoKSkpKSk7Ci0g
ICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbW9tZW50dW1LZXkgPSBhZG9wdFdL
KFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJNb21lbnR1bSIpKTsKLSAgICAgICAgICAg
IGludCBtb21lbnR1bSA9IHN0YXRpY19jYXN0PGludD4oV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNf
Y2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURp
Y3Rpb25hcnksIG1vbWVudHVtS2V5LmdldCgpKSkpKTsKLQotICAgICAgICAgICAgbV9ldmVudFNl
bmRlclByb3h5LT5zd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyh4LCB5LCBw
aGFzZSwgbW9tZW50dW0pOwotCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggOWRiOThlYTllMDliOTlhNmZjN2ExNzBlOWUwNDBmNDY2YjJhNDUw
MC4uNTFmZDI1YTU3NmE1MmI2ZjljOGVmMjlkMGIzYmVlNmQ3ZGEwNGFkNSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzLDYgKzYzLDExIEBACiAJCTI5QThGQ0REMTQ1
RjAzMzcwMDkwNDVBNiAvKiBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBOEZDRTEzNDVFNzAy
MTAwNkFBNUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHAgKi87IH07CiAJ
CTI5QThGQ0UyMTQ1RjAzN0IwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QThG
Q0UxMTQ1RjAzN0IwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCAq
LzsgfTsKIAkJMjlBOEZDRTUxNDVGMDQ2NDAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyUmFuZ2VNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyOUE4RkNFNDE0NUYwNDY0MDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJS
YW5nZU1hYy5tbSAqLzsgfTsKKwkJMkRCNjE4N0UxRDdENThENDAwOTc4RDE5IC8qIENvcmVHcmFw
aGljc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkRCNjE4N0QxRDdENThENDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQSS5oICovOyB9OworCQky
REQ0QzQ5QTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ0QzQ5ODFENkU3RDNCMDAw
NzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLmggKi87IH07CisJCTJERDRDNDlCMUQ2RTdEM0Iw
MDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ0QzQ5OTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRT
ZXJpYWxpemVyTWFjLm1tICovOyB9OworCQkyREZBOTg0ODFEN0Y3MENGMDBBRkYyQzkgLyogU2hh
cmVkRXZlbnRTdHJlYW1zTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyREZBOTg0NjFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1z
TWFjLmggKi87IH07CisJCTJERkE5ODQ5MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0
cmVhbXNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyREZBOTg0NzFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tICov
OyB9OwogCQkyRTM0QzkwMDE4QjY4ODA4MDAwMDY3QkIgLyogV2ViS2l0VGVzdFJ1bm5lckluamVj
dGVkQnVuZGxlLmJ1bmRsZSBpbiBDb3B5IFBsdWctSW5zICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMjUxODYyMTFEMTVENTQwMDJFQkMwMSAvKiBXZWJLaXRUZXN0UnVubmVy
SW5qZWN0ZWRCdW5kbGUuYnVuZGxlICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKENvZGVT
aWduT25Db3B5LCBSZW1vdmVIZWFkZXJzT25Db3B5LCApOyB9OyB9OwogCQkyRTYzRUQ4QTE4OTFB
RDdFMDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYzRUQ3NTE4OTFBQ0U5MDAyQTdB
RkMgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gKi87IH07CiAJCTJFNjNFRDhCMTg5
MUFEN0UwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNjNFRDc3MTg5MUFDRTkwMDJB
N0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbSAqLzsgfTsKQEAgLTIxMSw3ICsy
MTYsNyBAQAogCQkwRkVCOTBBMzE5MDVCQzZBMDAwRkRCRjMgLyogQ3Jhc2hSZXBvcnRlckluZm8u
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBDcmFzaFJlcG9ydGVy
SW5mby5tbTsgcGF0aCA9IGNvY29hL0NyYXNoUmVwb3J0ZXJJbmZvLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkVCRjg1ODFCQjYxREYyMDAyODcyMkQgLyogSElERXZlbnRHZW5l
cmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSElERXZlbnRHZW5lcmF0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQkY4NTkxQkI2MURGMjAwMjg3
MjJEIC8qIEhJREV2ZW50R2VuZXJhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gSElERXZlbnRHZW5lcmF0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTBGRUJGODVCMUJCNjJBMzcwMDI4NzIyRCAvKiBJT0tpdFNQSS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJT0tpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkVCRjg1QjFC
QjYyQTM3MDAyODcyMkQgLyogSU9LaXRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSU9LaXRTUEkuaDsg
cGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0lPS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGRUJGODVDMUJCNjJENDYwMDI4NzIyRCAvKiBVSUtpdFNQSS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBVSUtpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QTMzMjYwNTFCNzUzOTY1MDBGODlGNjIgLyogVGVzdE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGVzdE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMjExQzcxQkNB
MTA3MzAwQjIxMDFGIC8qIEZvbnRXaXRoRmVhdHVyZXMub3RmICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEZvbnRXaXRoRmVhdHVy
ZXMub3RmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQwLDcgKzI0NSwxMiBAQAog
CQkyOUE4RkNFMTM0NUU3MDIxMDA2QUE1QTYgLyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJh
bmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5
QThGQ0UxMzQ1RTcwMjEwMDZBQTVBNyAvKiBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlclJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QThGQ0U0MTQ1RjA0
NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJS
YW5nZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRCNjE4N0QxRDdENThE
NDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBDb3JlR3JhcGhpY3NTUEkuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvc3Bp
L0NvcmVHcmFwaGljc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRENFMkNE
MTFCODQ1MjQ1MDBDN0Y4MzIgLyogVGVzdENvbnRyb2xsZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRlc3RDb250cm9sbGVyQ29jb2EubW07IHBhdGgg
PSBjb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyREQ0QzQ5ODFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEV2ZW50U2VyaWFsaXplck1hYy5oOyBwYXRo
ID0gbWFjL0V2ZW50U2VyaWFsaXplck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyREQ0QzQ5OTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gRXZlbnRTZXJpYWxpemVyTWFjLm1t
OyBwYXRoID0gbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkRGQTk4NDYxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01h
Yy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTaGFyZWRFdmVudFN0cmVhbXNN
YWMuaDsgcGF0aCA9IG1hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkRGQTk4NDcxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3Ry
ZWFtc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFNoYXJl
ZEV2ZW50U3RyZWFtc01hYy5tbTsgcGF0aCA9IG1hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNjNFRDc1MTg5MUFDRTkwMDJBN0FGQyAv
KiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRTYzRUQ3NjE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkU2M0VENzcxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00NzYsNyArNDg2LDkgQEAKIAkJMEY3M0I1NDcxQkE3ODJGRTAwNEIzRUY0IC8qIFVJU2NyaXB0
Q29udGV4dCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
MkRCNjE4N0YxRDdENTk4ODAwOTc4RDE5IC8qIHNwaSAqLywKIAkJCQkwRjczQjU0QjFCQTc4MzUw
MDA0QjNFRjQgLyogQmluZGluZ3MgKi8sCisJCQkJMkRENEM0OTcxRDZFN0QzQjAwMDczNzlDIC8q
IEV2ZW50IFNlcmlhbGl6YXRpb24gKi8sCiAJCQkJMEY3M0I1NEUxQkE3ODk1NDAwNEIzRUY0IC8q
IERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkwRjE4RTZERDFENkI5QUFGMDAyN0U1NDcgLyogVUlT
Y3JpcHRDb250ZXh0LmNwcCAqLywKIAkJCQkwRjE4RTZERTFENkI5QUFGMDAyN0U1NDcgLyogVUlT
Y3JpcHRDb250ZXh0LmggKi8sCkBAIC01NTQsNiArNTY2LDM1IEBACiAJCQluYW1lID0gQWNjZXNz
aWJpbGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTJEQjYxODdGMUQ3
RDU5ODgwMDk3OEQxOSAvKiBzcGkgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCTJEQjYxODdEMUQ3RDU4RDQwMDk3OEQxOSAvKiBDb3JlR3JhcGhpY3NTUEku
aCAqLywKKwkJCQkwRkVCRjg1QjFCQjYyQTM3MDAyODcyMkQgLyogSU9LaXRTUEkuaCAqLywKKwkJ
CSk7CisJCQluYW1lID0gc3BpOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJ
MkRENEM0OTcxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50IFNlcmlhbGl6YXRpb24gKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTJERkE5ODRBMUQ3Rjc5RTAw
MEFGRjJDOSAvKiBtYWMgKi8sCisJCQkpOworCQkJbmFtZSA9ICJFdmVudCBTZXJpYWxpemF0aW9u
IjsKKwkJCXBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbjsKKwkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTJERkE5ODRBMUQ3Rjc5RTAwMEFGRjJD
OSAvKiBtYWMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJ
CTJERDRDNDk4MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMuaCAqLywKKwkJ
CQkyREQ0QzQ5OTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tICovLAor
CQkJCTJERkE5ODQ2MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaCAq
LywKKwkJCQkyREZBOTg0NzFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFj
Lm1tICovLAorCQkJKTsKKwkJCW5hbWUgPSBtYWM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OworCQl9OwogCQkyRTYzRUQ3NDE4OTFBQ0U5MDAyQTdBRkMgLyogaW9zICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTU5MSw3ICs2MzIsNiBAQAogCQkJY2hp
bGRyZW4gPSAoCiAJCQkJMEZFQkY4NTgxQkI2MURGMjAwMjg3MjJEIC8qIEhJREV2ZW50R2VuZXJh
dG9yLmggKi8sCiAJCQkJMEZFQkY4NTkxQkI2MURGMjAwMjg3MjJEIC8qIEhJREV2ZW50R2VuZXJh
dG9yLm1tICovLAotCQkJCTBGRUJGODVCMUJCNjJBMzcwMDI4NzIyRCAvKiBJT0tpdFNQSS5oICov
LAogCQkJCTJFRTUyRDEzMTg5MEE5RkIwMDEwRUQyMSAvKiBQbGF0Zm9ybVdlYlZpZXdJT1MubW0g
Ki8sCiAJCQkJMkVFNTJEMTQxODkwQTlGQjAwMTBFRDIxIC8qIFRlc3RDb250cm9sbGVySU9TLm1t
ICovLAogCQkJCTBGRUJGODVDMUJCNjJENDYwMDI4NzIyRCAvKiBVSUtpdFNQSS5oICovLApAQCAt
Nzc4LDcgKzgxOCwxMCBAQAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJMkRCNjE4N0UxRDdE
NThENDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3
M0I1NTIxQkE3ODk2ODAwNEIzRUY0IC8qIEpTVUlTY3JpcHRDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkyREZBOTg0ODFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1z
TWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQkyREQ0QzQ5QTFENkU3RDNCMDAwNzM3OUMgLyogRXZl
bnRTZXJpYWxpemVyTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTk4Niw4ICsxMDI5LDEwIEBACiAJ
CQkJMEY3M0I1NTExQkE3ODk2ODAwNEIzRUY0IC8qIEpTVUlTY3JpcHRDb250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGMThFNzE4MUQ2QkM0NTYwMDI3RTU0NyAvKiBKU1dyYXBwZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0MxQjlBRTBGRTAwNzQ0QUVCIC8qIE9wdGlv
bnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkRENEM0OUIxRDZFN0QzQjAwMDczNzlDIC8qIEV2
ZW50U2VyaWFsaXplck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDQwMUI5QUUxMzEw
MDc0NEFFQiAvKiBQaXhlbER1bXBTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExODUx
MDQxMUI5QUUxMzgwMDc0NEFFQiAvKiBUZXN0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkyREZBOTg0OTFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0IxQjlBRTBFMjAwNzQ0QUVCIC8qIFRlc3RDb250
cm9sbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTA0MjFCOUFFMTNFMDA3NDRB
RUIgLyogVGVzdEludm9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0QxQjlB
RTEwNjAwNzQ0QUVCIC8qIFRlc3RJbnZvY2F0aW9uQ0cuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9FdmVudFNlbmRlclByb3h5RWZsLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL0V2ZW50U2VuZGVyUHJveHlFZmwuY3BwCmlu
ZGV4IDM4YWUwNGY3OWI2OWNiYmY3NTBiMTJhOWVmYWIxY2E1YTU4OWQ1Y2IuLjdhNjhjN2YyOTdk
ZTI1MWRhYWQzMzNiYTFlNDFhOThiMTllZjY4ZjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvZWZsL0V2ZW50U2VuZGVyUHJveHlFZmwuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvZWZsL0V2ZW50U2VuZGVyUHJveHlFZmwuY3BwCkBAIC0zOTksMTEgKzM5OSw2IEBA
IHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKGludCB4LCBpbnQgeSwgaW50CiAgICAgbW91c2VTY3JvbGxCeSh4LCB5KTsKIH0KIAot
dm9pZCBFdmVudFNlbmRlclByb3h5Ojpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcyhpbnQsIGludCwgaW50LCBpbnQpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQog
dm9pZCBFdmVudFNlbmRlclByb3h5OjpsZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKQogewog
ICAgIGlmIChtX2V2ZW50UXVldWUuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5kZXJQcm94eUd0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcAppbmRleCAwMjNlZGM4MTA1YzU1MTBl
YWJmZmM1ZTIwYzMzYTQ3MTY3MTYzYTNmLi4zYzNhZTBjZTgyZWZjNzg5YzMzOWQwY2VlMDMyZTIw
YTg0NDc1MTYxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNl
bmRlclByb3h5R3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNl
bmRlclByb3h5R3RrLmNwcApAQCAtNDUxLDExICs0NTEsNiBAQCB2b2lkIEV2ZW50U2VuZGVyUHJv
eHk6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHks
IGludAogICAgIG1vdXNlU2Nyb2xsQnkoeCwgeSk7CiB9CiAKLXZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6c3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50LCBpbnQsIGludCwg
aW50KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6bGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcykKIHsKICAgICBpZiAobV9ldmVudFF1ZXVl
LmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL0lPS2l0
U1BJLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tpdFNQSS5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3YTBkNmExNWNkNTFkMjUyMjBkYWQxN2QxZTIzMWY2M2ZhYWVh
ZTNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvaW9zL0lPS2l0U1BJLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNzgg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSU9LaXRTUElfaAotI2RlZmluZSBJT0tpdFNQ
SV9oCi0KLSNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgotCi0jaWYgUExBVEZPUk0oSU9TKQotCi0j
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLQotI2ltcG9ydCA8SU9LaXQvaGlkL0lPSElERXZl
bnQuaD4KLSNpbXBvcnQgPElPS2l0L2hpZC9JT0hJREV2ZW50U3lzdGVtQ2xpZW50Lmg+Ci0jaW1w
b3J0IDxJT0tpdC9oaWQvSU9ISURVc2FnZVRhYmxlcy5oPgotCi0jZWxzZQotCi1XVEZfRVhURVJO
X0NfQkVHSU4KLQotI2lmZGVmIF9fTFA2NF9fCi10eXBlZGVmIGRvdWJsZSBJT0hJREZsb2F0Owot
I2Vsc2UKLXR5cGVkZWYgZmxvYXQgSU9ISURGbG9hdDsKLSNlbmRpZgotCi1lbnVtIHsKLSAgICBr
SU9ISURFdmVudE9wdGlvbk5vbmUgPSAwLAotfTsKLQotdHlwZWRlZiBVSW50MzIgSU9PcHRpb25C
aXRzOwotdHlwZWRlZiB1aW50MzJfdCBJT0hJREV2ZW50T3B0aW9uQml0czsKLXR5cGVkZWYgdWlu
dDMyX3QgSU9ISURFdmVudEZpZWxkOwotCi10eXBlZGVmIHN0cnVjdCBfX0lPSElERXZlbnRTeXN0
ZW1DbGllbnQgKiBJT0hJREV2ZW50U3lzdGVtQ2xpZW50UmVmOwotdHlwZWRlZiBzdHJ1Y3QgX19J
T0hJREV2ZW50ICogSU9ISURFdmVudFJlZjsKLQotI2RlZmluZSBJT0hJREV2ZW50RmllbGRCYXNl
KHR5cGUpICh0eXBlIDw8IDE2KQotCi1lbnVtIHsKLSAgICBrSElEUGFnZV9LZXlib2FyZE9yS2V5
cGFkICAgICAgID0gMHgwNywKLSAgICBrSElEUGFnZV9WZW5kb3JEZWZpbmVkU3RhcnQgICAgID0g
MHhGRjAwCi19OwotCi1lbnVtIHsKLSAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFJhbmdlICAgICAg
ID0gMTw8MCwKLSAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFRvdWNoICAgICAgID0gMTw8MSwKLSAg
ICBrSU9ISUREaWdpdGl6ZXJFdmVudFBvc2l0aW9uICAgID0gMTw8MiwKLSAgICBrSU9ISUREaWdp
dGl6ZXJFdmVudElkZW50aXR5ICAgID0gMTw8NSwKLSAgICBrSU9ISUREaWdpdGl6ZXJFdmVudEF0
dHJpYnV0ZSAgID0gMTw8NiwKLSAgICBrSU9ISUREaWdpdGl6ZXJFdmVudENhbmNlbCAgICAgID0g
MTw8NywKLSAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFN0YXJ0ICAgICAgID0gMTw8OCwKLX07Ci10
eXBlZGVmIHVpbnQzMl90IElPSElERGlnaXRpemVyRXZlbnRNYXNrOwotCi1lbnVtIHsKLSAgICBr
SU9ISURFdmVudFR5cGVOVUxMLAotICAgIGtJT0hJREV2ZW50VHlwZVZlbmRvckRlZmluZWQsCi0g
ICAga0lPSElERXZlbnRUeXBlS2V5Ym9hcmQgPSAzLAotICAgIGtJT0hJREV2ZW50VHlwZURpZ2l0
aXplciA9IDExLAotfTsKLXR5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudFR5cGU7Ci0KLWVudW0g
ewotICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkVXNhZ2VQYWdlID0gSU9ISURFdmVu
dEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVWZW5kb3JEZWZpbmVkKSwKLSAgICBrSU9ISURFdmVu
dEZpZWxkVmVuZG9yRGVmaW5lZFJlc2VydmVkLAotICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JE
ZWZpbmVkUmVzZXJ2ZWQxLAotICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkRGF0YUxl
bmd0aCwKLSAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZERhdGEKLX07Ci0KLWVudW0g
ewotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJYID0gSU9ISURFdmVudEZpZWxkQmFzZShr
SU9ISURFdmVudFR5cGVEaWdpdGl6ZXIpLAotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJZ
LAotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJNYWpvclJhZGl1cyA9IGtJT0hJREV2ZW50
RmllbGREaWdpdGl6ZXJYICsgMjAsCi0gICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1pbm9y
UmFkaXVzLAotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJJc0Rpc3BsYXlJbnRlZ3JhdGVk
ID0ga0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1ham9yUmFkaXVzICsgNSwKLX07Ci0KLWVudW0g
ewotICAgIGtJT0hJRERpZ2l0aXplclRyYW5zZHVjZXJUeXBlSGFuZCA9IDMKLX07Ci10eXBlZGVm
IHVpbnQzMl90IElPSElERGlnaXRpemVyVHJhbnNkdWNlclR5cGU7Ci0KLUlPSElERXZlbnRSZWYg
SU9ISURFdmVudENyZWF0ZURpZ2l0aXplckV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwg
SU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZSwgdWludDMyX3QsIHVpbnQzMl90LCBJT0hJRERp
Z2l0aXplckV2ZW50TWFzaywgdWludDMyX3QsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElE
RmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIGJvb2xlYW5fdCwgYm9vbGVhbl90LCBJT09w
dGlvbkJpdHMpOwotCi1JT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVEaWdpdGl6ZXJGaW5n
ZXJFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgSU9I
SUREaWdpdGl6ZXJFdmVudE1hc2ssIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQs
IElPSElERmxvYXQsIElPSElERmxvYXQsIGJvb2xlYW5fdCwgYm9vbGVhbl90LCBJT0hJREV2ZW50
T3B0aW9uQml0cyk7Ci0KLUlPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZUZvcmNlRXZlbnQo
Q0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgSU9ISURGbG9hdCwgdWludDMyX3Qs
IElPSElERmxvYXQsIElPSElERXZlbnRPcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFJlZiBJT0hJ
REV2ZW50Q3JlYXRlS2V5Ym9hcmRFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIHVpbnQz
Ml90LCB1aW50MzJfdCwgYm9vbGVhbl90LCBJT09wdGlvbkJpdHMpOwotCi1JT0hJREV2ZW50UmVm
IElPSElERXZlbnRDcmVhdGVWZW5kb3JEZWZpbmVkRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2
NF90LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50OF90KiwgQ0ZJbmRleCwgSU9I
SURFdmVudE9wdGlvbkJpdHMpOwotCi1JT0hJREV2ZW50VHlwZSBJT0hJREV2ZW50R2V0VHlwZShJ
T0hJREV2ZW50UmVmKTsKLQotdm9pZCBJT0hJREV2ZW50U2V0RmxvYXRWYWx1ZShJT0hJREV2ZW50
UmVmLCBJT0hJREV2ZW50RmllbGQsIElPSElERmxvYXQpOwotCi1DRkluZGV4IElPSElERXZlbnRH
ZXRJbnRlZ2VyVmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxkKTsKLXZvaWQgSU9I
SURFdmVudFNldEludGVnZXJWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50RmllbGQsIENG
SW5kZXgpOwotCi12b2lkIElPSElERXZlbnRBcHBlbmRFdmVudChJT0hJREV2ZW50UmVmLCBJT0hJ
REV2ZW50UmVmLCBJT09wdGlvbkJpdHMpOwotCi1JT0hJREV2ZW50U3lzdGVtQ2xpZW50UmVmIElP
SElERXZlbnRTeXN0ZW1DbGllbnRDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYpOwotCi0jZGVmaW5lIGtH
U0V2ZW50UGF0aEluZm9JblJhbmdlICgxIDw8IDApCi0jZGVmaW5lIGtHU0V2ZW50UGF0aEluZm9J
blRvdWNoICgxIDw8IDEpCi0KLWVudW0gewotICAgIGtISURVc2FnZV9LZXlib2FyZEEgPSAweDA0
LAotICAgIGtISURVc2FnZV9LZXlib2FyZDEgPSAweDFFLAotICAgIGtISURVc2FnZV9LZXlib2Fy
ZDIgPSAweDFGLAotICAgIGtISURVc2FnZV9LZXlib2FyZDMgPSAweDIwLAotICAgIGtISURVc2Fn
ZV9LZXlib2FyZDQgPSAweDIxLAotICAgIGtISURVc2FnZV9LZXlib2FyZDUgPSAweDIyLAotICAg
IGtISURVc2FnZV9LZXlib2FyZDYgPSAweDIzLAotICAgIGtISURVc2FnZV9LZXlib2FyZDcgPSAw
eDI0LAotICAgIGtISURVc2FnZV9LZXlib2FyZDggPSAweDI1LAotICAgIGtISURVc2FnZV9LZXli
b2FyZDkgPSAweDI2LAotICAgIGtISURVc2FnZV9LZXlib2FyZDAgPSAweDI3LAotICAgIGtISURV
c2FnZV9LZXlib2FyZFJldHVybk9yRW50ZXIgPSAweDI4LAotICAgIGtISURVc2FnZV9LZXlib2Fy
ZEVzY2FwZSA9IDB4MjksCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRGVsZXRlT3JCYWNrc3BhY2Ug
PSAweDJBLAotICAgIGtISURVc2FnZV9LZXlib2FyZFRhYiA9IDB4MkIsCi0gICAga0hJRFVzYWdl
X0tleWJvYXJkU3BhY2ViYXIgPSAweDJDLAotICAgIGtISURVc2FnZV9LZXlib2FyZEh5cGhlbiA9
IDB4MkQsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRXF1YWxTaWduID0gMHgyRSwKLSAgICBrSElE
VXNhZ2VfS2V5Ym9hcmRPcGVuQnJhY2tldCA9IDB4MkYsCi0gICAga0hJRFVzYWdlX0tleWJvYXJk
Q2xvc2VCcmFja2V0ID0gMHgzMCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRCYWNrc2xhc2ggPSAw
eDMxLAotICAgIGtISURVc2FnZV9LZXlib2FyZFNlbWljb2xvbiA9IDB4MzMsCi0gICAga0hJRFVz
YWdlX0tleWJvYXJkUXVvdGUgPSAweDM0LAotICAgIGtISURVc2FnZV9LZXlib2FyZEdyYXZlQWNj
ZW50QW5kVGlsZGUgPSAweDM1LAotICAgIGtISURVc2FnZV9LZXlib2FyZENvbW1hID0gMHgzNiwK
LSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRQZXJpb2QgPSAweDM3LAotICAgIGtISURVc2FnZV9LZXli
b2FyZFNsYXNoID0gMHgzOCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRGMSA9IDB4M0EsCi0gICAg
a0hJRFVzYWdlX0tleWJvYXJkSG9tZSA9IDB4NEEsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkUGFn
ZVVwID0gMHg0QiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRFbmQgPSAweDRELAotICAgIGtISURV
c2FnZV9LZXlib2FyZFJpZ2h0QXJyb3cgPSAweDRGLAotICAgIGtISURVc2FnZV9LZXlib2FyZExl
ZnRBcnJvdyA9IDB4NTAsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRG93bkFycm93ID0gMHg1MSwK
LSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRVcEFycm93ID0gMHg1MiwKLSAgICBrSElEVXNhZ2VfS2V5
Ym9hcmRMZWZ0Q29udHJvbCA9IDB4RTAsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdFNoaWZ0
ID0gMHhFMSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0QWx0ID0gMHhFMgotfTsKLQotV1RG
X0VYVEVSTl9DX0VORAotCi0jZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLQotI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPUykKLQotI2VuZGlmIC8vIElPS2l0U1BJX2gKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0gYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tCmluZGV4IDE5YjVhMzdiMzZk
ZDEyYjc0MDIyMWUzNjM3YjA0YjFmNjgyNTE0ZGYuLjhjNmI5ZGNiMGY1NDAxMzBmM2NiMjJkM2Vm
NTRjN2YwZmIxZTk0M2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2
ZW50U2VuZGVyUHJveHkubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRT
ZW5kZXJQcm94eS5tbQpAQCAtNDUsMTcgKzQ1LDYgQEAKIC0gKHZvaWQpX3Bvc3REZWxheWVkOwog
QGVuZAogCi0jaWYgZGVmaW5lZChfX0xQNjRfXykKLXN0cnVjdCBXS1RSQ0dTRXZlbnRSZWNvcmQg
ewotICAgIGNoYXIgb2Zmc2V0MVsxNTBdOwotICAgIHVpbnQ4X3QgcGhhc2U7Ci0gICAgY2hhciBv
ZmZzZXQyWzEzXTsKLSAgICBmbG9hdCBkZWx0YVg7Ci0gICAgZmxvYXQgZGVsdGFZOwotICAgIGNo
YXIgb2Zmc2V0M1s3Nl07Ci19IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwotI2VuZGlmCi0KIEBp
bnRlcmZhY2UgRXZlbnRTZW5kZXJTeW50aGV0aWNFdmVudCA6IE5TRXZlbnQgewogQHB1YmxpYwog
ICAgIE5TUG9pbnQgX2V2ZW50U2VuZGVyX2xvY2F0aW9uSW5XaW5kb3c7CkBAIC03MCwxMSArNTks
NiBAQCBzdHJ1Y3QgV0tUUkNHU0V2ZW50UmVjb3JkIHsKICAgICBzaG9ydCBfZXZlbnRTZW5kZXJf
c3VidHlwZTsKICAgICBOU0V2ZW50VHlwZSBfZXZlbnRTZW5kZXJfdHlwZTsKICAgICBOU1dpbmRv
dyAqX2V2ZW50U2VuZGVyX3dpbmRvdzsKLQotCi0jaWYgZGVmaW5lZChfX0xQNjRfXykKLSAgICBX
S1RSQ0dTRXZlbnRSZWNvcmQgX2V2ZW50U2VuZGVyX2Nnc0V2ZW50UmVjb3JkOwotI2VuZGlmCiB9
CiAKIC0gKGlkKWluaXRQcmVzc3VyZUV2ZW50QXRMb2NhdGlvbjooTlNQb2ludClsb2NhdGlvbiBn
bG9iYWxMb2NhdGlvbjooTlNQb2ludClnbG9iYWxMb2NhdGlvbiBzdGFnZTooTlNJbnRlZ2VyKXN0
YWdlIHByZXNzdXJlOihmbG9hdClwcmVzc3VyZSBzdGFnZVRyYW5zaXRpb246KGZsb2F0KXN0YWdl
VHJhbnNpdGlvbiBwaGFzZTooTlNFdmVudFBoYXNlKXBoYXNlIHRpbWU6KE5TVGltZUludGVydmFs
KXRpbWUgZXZlbnROdW1iZXI6KE5TSW50ZWdlcilldmVudE51bWJlciB3aW5kb3c6KE5TV2luZG93
ICopd2luZG93OwpAQCAtMTY3LDEzICsxNTEsNiBAQCBzdHJ1Y3QgV0tUUkNHU0V2ZW50UmVjb3Jk
IHsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiBkZWZpbmVkKF9fTFA2NF9fKQotLSAoV0tU
UkNHU0V2ZW50UmVjb3JkKV9jZ3NFdmVudFJlY29yZAotewotICAgIHJldHVybiBfZXZlbnRTZW5k
ZXJfY2dzRXZlbnRSZWNvcmQ7Ci19Ci0jZW5kaWYKLQogLSAoTlNXaW5kb3cgKil3aW5kb3cKIHsK
ICAgICByZXR1cm4gX2V2ZW50U2VuZGVyX3dpbmRvdzsKQEAgLTg5MCw1MCArODY3LDQgQEAgdm9p
ZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoaW50IHgsIGludCB5LCBpbnQKICAgICB9CiB9CiAKLXN0YXRpYyBOU0V2ZW50UGhhc2UgbnNF
dmVudFBoYXNlRnJvbUNHRXZlbnRQaGFzZShpbnQgcGhhc2UpCi17Ci0gICAgc3dpdGNoIChwaGFz
ZSkgewotICAgIGNhc2UgMDogLy8ga0NHU0dlc3R1cmVQaGFzZU5vbmUKLSAgICAgICAgcmV0dXJu
IE5TRXZlbnRQaGFzZU5vbmU7Ci0gICAgY2FzZSAxOiAvLyBrQ0dTR2VzdHVyZVBoYXNlQmVnYW4K
LSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZUJlZ2FuOwotICAgIGNhc2UgMjogLy8ga0NHU0dl
c3R1cmVQaGFzZUNoYW5nZWQKLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZUNoYW5nZWQ7Ci0g
ICAgY2FzZSA0OiAvLyBrQ0dTR2VzdHVyZVBoYXNlRW5kZWQKLSAgICAgICAgcmV0dXJuIE5TRXZl
bnRQaGFzZUVuZGVkOwotICAgIGNhc2UgODogLy8ga0NHU0dlc3R1cmVQaGFzZUNhbmNlbGxlZAot
ICAgICAgICByZXR1cm4gTlNFdmVudFBoYXNlQ2FuY2VsbGVkOwotICAgIGNhc2UgMTI4OiAvLyBr
Q0dTR2VzdHVyZVBoYXNlTWF5QmVnaW4KLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZU1heUJl
Z2luOwotICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBOU0V2
ZW50UGhhc2VOb25lOwotfQotCi12b2lkIEV2ZW50U2VuZGVyUHJveHk6OnN3aXBlR2VzdHVyZVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50IHBoYXNlLCBpbnQgbW9t
ZW50dW0pCi17Ci0gICAgUmV0YWluUHRyPEV2ZW50U2VuZGVyU3ludGhldGljRXZlbnQ+IGV2ZW50
ID0gYWRvcHROUyhbW0V2ZW50U2VuZGVyU3ludGhldGljRXZlbnQgYWxsb2NdIGluaXRdKTsKLQot
ICAgIC8vICJtYXlCZWdpbiIgYSBzd2lwZSBpcyBhY3R1YWxseSBhIHNjcm9sbCB3aGVlbCBldmVu
dC4KLSAgICBldmVudC0+X2V2ZW50U2VuZGVyX3R5cGUgPSAocGhhc2UgPT0gMTI4KSA/IE5TU2Ny
b2xsV2hlZWwgOiBOU0V2ZW50VHlwZUdlc3R1cmU7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9z
dWJ0eXBlID0gNjsgLy8ga0lPSElERXZlbnRUeXBlU2Nyb2xsCi0gICAgZXZlbnQtPl9ldmVudFNl
bmRlcl9sb2NhdGlvbkluV2luZG93ID0gTlNNYWtlUG9pbnQobV9wb3NpdGlvbi54LCBtX3Bvc2l0
aW9uLnkpOwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfbG9jYXRpb24gPSAoW21fdGVzdENvbnRy
b2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtV2luZG93KCkgY29udmVydFJlY3RUb1NjcmVl
bjpOU01ha2VSZWN0KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55LCAxLCAxKV0ub3JpZ2luKTsK
LSAgICBldmVudC0+X2V2ZW50U2VuZGVyX3BoYXNlID0gbnNFdmVudFBoYXNlRnJvbUNHRXZlbnRQ
aGFzZShwaGFzZSk7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9tb21lbnR1bVBoYXNlID0gbnNF
dmVudFBoYXNlRnJvbUNHRXZlbnRQaGFzZShtb21lbnR1bSk7Ci0gICAgZXZlbnQtPl9ldmVudFNl
bmRlcl90aW1lc3RhbXAgPSBhYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGlt
ZSgpKTsKLSAgICBldmVudC0+X2V2ZW50U2VuZGVyX2V2ZW50TnVtYmVyID0gKytldmVudE51bWJl
cjsKLQotI2lmIGRlZmluZWQoX19MUDY0X18pCi0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9jZ3NF
dmVudFJlY29yZC5waGFzZSA9IHBoYXNlOwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfY2dzRXZl
bnRSZWNvcmQuZGVsdGFYID0gKGZsb2F0KXg7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9jZ3NF
dmVudFJlY29yZC5kZWx0YVkgPSAoZmxvYXQpeTsKLSNlbHNlCi0gICAgTlNMb2coQCJTeW50aGV0
aWMgc3dpcGUgZ2VzdHVyZXMgYXJlIG5vdCBpbXBsZW1lbnRlZCBmb3IgMzItYml0IFdlYktpdFRl
c3RSdW5uZXIuIik7Ci0jZW5kaWYKLQotICAgIFtOU0FwcCBzZW5kRXZlbnQ6ZXZlbnQuZ2V0KCld
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQppbmRleCA0ZjZjY2ViYTdkM2ZiNDA5ODVh
MDYyMTcyMGNiOGExYzBlYjI0NzVkLi41NzYyODlkNDk3ODQ3Y2ZlZjJhMjZlMmQ5ZjUxNTU1NjFm
OTUwNzVlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENv
bnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tCkBAIC0yNiw3ICsyNiwxMiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAj
aW1wb3J0ICJVSVNjcmlwdENvbnRyb2xsZXIuaCIKIAorI2ltcG9ydCAiRXZlbnRTZXJpYWxpemVy
TWFjLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbXBvcnQgIlNoYXJlZEV2ZW50
U3RyZWFtc01hYy5oIgorI2ltcG9ydCAiVGVzdENvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlVJU2Ny
aXB0Q29udGV4dC5oIgorI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWZDRi5oPgog
CiBuYW1lc3BhY2UgV1RSIHsKIApAQCAtNDEsNCArNDYsMzggQEAgdm9pZCBVSVNjcmlwdENvbnRy
b2xsZXI6OmRvQXN5bmNUYXNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCiAgICAgfSk7CiB9CiAKK3N0
YXRpYyB2b2lkIHBsYXlCYWNrRXZlbnRzKFVJU2NyaXB0Q29udGV4dCAqY29udGV4dCwgTlNTdHJp
bmcgKmV2ZW50U3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIE5TRXJyb3IgKmVy
cm9yID0gbmlsOworICAgIE5TQXJyYXkgKmV2ZW50RGljdHMgPSBbTlNKU09OU2VyaWFsaXphdGlv
biBKU09OT2JqZWN0V2l0aERhdGE6W2V2ZW50U3RyZWFtIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRG
OFN0cmluZ0VuY29kaW5nXSBvcHRpb25zOjAgZXJyb3I6JmVycm9yXTsKKworICAgIGlmIChlcnJv
cikgeworICAgICAgICBOU0xvZyhAIkVSUk9SOiAlQCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIHVuc2lnbmVkIGNhbGxiYWNrSUQgPSBjb250ZXh0LT5wcmVwYXJlRm9y
QXN5bmNUYXNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVOb25QZXJzaXN0ZW50KTsKKworICAgIE5T
V2luZG93ICp3aW5kb3cgPSBbVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3
KCktPnBsYXRmb3JtVmlldygpIHdpbmRvd107CisgICAgW0V2ZW50U2VyaWFsaXplciBwbGF5RXZl
bnRTdHJlYW06ZXZlbnREaWN0cyBpbldpbmRvdzp3aW5kb3cgY29tcGxldGlvbkhhbmRsZXI6XiB7
CisgICAgICAgIGNvbnRleHQtPmFzeW5jVGFza0NvbXBsZXRlKGNhbGxiYWNrSUQpOworICAgIH1d
OworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVnaW5CYWNrU3dpcGUoSlNWYWx1ZVJl
ZiBjYWxsYmFjaykKK3sKKyAgICBwbGF5QmFja0V2ZW50cyhtX2NvbnRleHQsIGJlZ2luU3dpcGVC
YWNrRXZlbnRTdHJlYW0oKSwgY2FsbGJhY2spOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxl
cjo6Y29tcGxldGVCYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBwbGF5QmFj
a0V2ZW50cyhtX2NvbnRleHQsIGNvbXBsZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0oKSwgY2FsbGJh
Y2spOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50
U3RyZWFtKEpTU3RyaW5nUmVmIGV2ZW50U3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQorewor
ICAgIFJldGFpblB0cjxOU1N0cmluZz4gbnNTdHJpbmcgPSBhZG9wdE5TKChOU1N0cmluZyAqKUpT
U3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGV2ZW50U3RyZWFtKSk7Cisg
ICAgcGxheUJhY2tFdmVudHMobV9jb250ZXh0LCBuc1N0cmluZy5nZXQoKSwgY2FsbGJhY2spOwor
fQorCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNzYyMWI2Y2Q0MDUyYmQxOWMxY2FjOTYxOGU3NDk2N2NhM2RmZDYzOC4u
N2Q0MzdiYzhiZjk2MzI3ZTZlMzdmM2JjY2IwODU1MWMyMmMzYzIwMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM0IEBACisyMDE2LTA5LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29t
PgorCisgICAgICAgIFN3aXBlIGdlc3R1cmUgdGVzdHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVy
cmEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3
NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWw6Cisg
ICAgICAgICogc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBzd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbDoK
KyAgICAgICAgKiBzd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHN3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sOgorICAg
ICAgICAqIHN3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNy
YXNoLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGlj
LWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1sOgorICAgICAgICAqIHN3aXBlL3Jlc291cmNl
cy9zd2lwZS10ZXN0LmpzOgorICAgICAgICAobWVhc3VyZWREdXJhdGlvblNob3VsZEJlTGVzc1Ro
YW4pOgorICAgICAgICAoc3RhcnRTd2lwZUdlc3R1cmUpOgorICAgICAgICAoY29tcGxldGVTd2lw
ZUdlc3R1cmUpOgorICAgICAgICAocGxheUV2ZW50U3RyZWFtKToKKyAgICAgICAgKGV2ZW50UXVl
dWUuZW5xdWV1ZVNjcm9sbEV2ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKGV2ZW50UXVldWUuZW5x
dWV1ZVN3aXBlRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAoZXZlbnRRdWV1ZS5oYXNQZW5kaW5n
RXZlbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNw
YXRjaCk6IERlbGV0ZWQuCisgICAgICAgIChldmVudFF1ZXVlLl9wcm9jZXNzRXZlbnRRdWV1ZSk6
IERlbGV0ZWQuCisgICAgICAgIChldmVudFF1ZXVlLl9wcm9jZXNzRXZlbnRRdWV1ZVNvb24pOiBE
ZWxldGVkLgorICAgICAgICAqIHN3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHN3aXBlL3N3aXBlLXN0YXJ0LWh5c3Rl
cmVzaXMtZmFpbHVyZXMuaHRtbDogUmVtb3ZlZC4KKwogMjAxNi0wOS0wMiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMDQ4MzkpOiBbbWFj
LXdrMV0gTGF5b3V0VGVzdCB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLXdlYmdsY29udGV4dGxv
c3QtcHJldmVudC1kZWZhdWx0Lmh0bWwgaXMgYSBmbGFreSB0aW1lb3V0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYmRmYjE2NDhhZDM3ZWVl
NzRkZDY4ZGJmOWQwNjNmMDNlNTZlM2U2MS4uODJhOTVkZGM2OTkzZjI2Y2E4N2I4Yjg1OTYwZTdj
ZDY0OTc2MmU1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtNTE0LDEyICs1MTQsNiBAQCB3ZWJraXQub3JnL2IvMTU4NjM5IFsgUmVsZWFz
ZSBZb3NlbWl0ZSBdIGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL2Jsb2ItZAogIyA8
cmRhcjovL3Byb2JsZW0vMjUwNjMxMjg+CiBbIFNpZXJyYSsgXSBtZWRpYS9tZWRpYS1jb250cm9s
cy1kcmFnLXRpbWVsaW5lLXNldC1jb250cm9scy1wcm9wZXJ0eS5odG1sIFsgUGFzcyBUaW1lb3V0
IF0KIAotIyA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+IHN3aXBlIHRlc3RzIGNyYXNoaW5nCi1b
IFNpZXJyYSsgXSBzd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sIFsgU2tpcCBdCi1b
IFNpZXJyYSsgXSBzd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbCBbIFNr
aXAgXQotWyBTaWVycmErIF0gc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwg
WyBTa2lwIF0KLVsgU2llcnJhKyBdIHN3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVy
ZXMuaHRtbCBbIFNraXAgXQotCiAjIEhpdHRpbmcgIlRoZSBjZXJ0aWZpY2F0ZSBmb3IgdGhpcyBz
ZXJ2ZXIgaXMgaW52YWxpZCIgbG9hZGluZyBlcnJvciAobm90IGhhcHBlbmluZyBpbiBXSzEpCiB3
ZWJraXQub3JnL2IvMTYwNDQ1IFsgU2llcnJhKyBdIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvdXBncmFkZS1pbnNlY3Vy
ZS1mZXRjaC1pbi13b3JrZXIuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2MDQ0NSBb
IFNpZXJyYSsgXSBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91cGdy
YWRlLWluc2VjdXJlLXJlcXVlc3RzL3VwZ3JhZGUtaW5zZWN1cmUtZmV0Y2gtaW4tbWFpbi1mcmFt
ZS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1j
YWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1j
YWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQKaW5kZXggZTNkM2UwMGFiOWQwYmZmZmU2Njlk
NmFkODlhMDE3YWY1N2Y3MGI4OS4uODlkZWNmZDRjMzcxMjVjZmI1NTk4MTE5Njg5YzNmMGM0YTFk
ODg0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dp
cGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNr
LXN3aXBlLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSw2IEBACi1zd2lwZSBldmVudCAoZGVsdGEg
MCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdi
ZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQorc3RhcnRT
d2lwZUdlc3R1cmUKIGRpZEJlZ2luU3dpcGUKLXN3aXBlIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNl
ICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAyNTYgMCwgcGhhc2UgJ2NoYW5nZWQnKQot
c3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKK2NvbXBsZXRlU3dpcGVHZXN0
dXJlCiB3aWxsRW5kU3dpcGUKIGRpZEVuZFN3aXBlCiBkaWRSZW1vdmVTd2lwZVNuYXBzaG90CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1s
IGIvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAppbmRleCBj
ZjdmNzVjYjEzOWI1NGI1MTUxNzhhMDczYjk4YWQwNjczZGRhNjgzLi44NzFhMmJjNjQ2YjhkNGFl
ODY5NDYzN2U4MDAzYTNiNGIzMjQ1YTZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9i
YXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N3aXBlL2Jhc2lj
LWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKQEAgLTYsMjggKzYsMTAgQEAgaHRtbCB7CiA8L3N0eWxl
PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9zd2lwZS10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+Ci1mdW5jdGlvbiBzdGFydFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oMTAwLCAxMDApOwotCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgw
LCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAw
LCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnY2hh
bmdlZCcpOwotfQotCi1mdW5jdGlvbiBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgxLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVl
dWUuZW5xdWV1ZVN3aXBlRXZlbnQoMjU2LCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUu
ZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci19Ci0KIGZ1bmN0aW9uIGRpZEJlZ2lu
U3dpcGVDYWxsYmFjaygpCiB7CiAgICAgbG9nKCJkaWRCZWdpblN3aXBlIik7CiAKLSAgICBzaG91
bGRCZShmYWxzZSwgZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJFdmVudCBxdWV1ZSBz
aG91bGQgYmUgZW1wdHkuIEJvdGggc2Nyb2xsIGV2ZW50cyBzaG91bGQgYmUgcmVxdWlyZWQgdG8g
c3RhcnQgdGhlIHN3aXBlIGJlY2F1c2Ugb2YgdGhlIHN3aXBlLXN0YXJ0IGh5c3RlcmVzaXMuIik7
Ci0KICAgICBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpOwogfQogCkBAIC00Miw3ICsyNCw2IEBAIGZ1
bmN0aW9uIGRpZEVuZFN3aXBlQ2FsbGJhY2soKQogewogICAgIGxvZygiZGlkRW5kU3dpcGUiKTsK
IAotICAgIHNob3VsZEJlKDAsIGV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpLCAiRXZlbnQg
cXVldWUgc2hvdWxkIGJlIGVtcHR5LiBUaGUgc3dpcGUgaXNuJ3QgY29tcGxldGUgdW50aWwgd2Ug
c2VlIHRoZSBlbmQgb2YgdGhlIGdlc3R1cmUuIik7CiAgICAgc3RhcnRNZWFzdXJpbmdEdXJhdGlv
bigic25hcHNob3RSZW1vdmFsIik7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBl
L21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQtZXhwZWN0ZWQudHh0CmluZGV4
IDYzNTk3NDA1NDg0NzZjOGQwOWZiNGJiMzdjNzUyNDRiOTBiMzkwZDYuLmNlNzY2ODE5NzIyMDk1
MzVlMjRjZTA3MzcwZTMwNmEwOTgyNTBjZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBl
L21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4cGVjdGVkLnR4dApA
QCAtMSwyMyArMSw4IEBACi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4n
KQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50
IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAs
IHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5n
ZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwg
ZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEg
MTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAn
Y2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNj
cm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChk
ZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhh
c2UgJ2VuZGVkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1z
Y3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVs
dGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQorc3RhcnRTd2lwZUdlc3R1cmUKK2NvbXBsZXRlU3dp
cGVHZXN0dXJlCitzdGFydFN3aXBlR2VzdHVyZQogZGlkQmVnaW5Td2lwZQotc3dpcGUgZXZlbnQg
KGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDI1NiAwLCBw
aGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQor
Y29tcGxldGVTd2lwZUdlc3R1cmUKIHdpbGxFbmRTd2lwZQogZGlkRW5kU3dpcGUKIGRpZFJlbW92
ZVN3aXBlU25hcHNob3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUt
cGlubmluZy1yZXF1aXJlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1w
aW5uaW5nLXJlcXVpcmVtZW50Lmh0bWwKaW5kZXggNjIxNTU0NDg0ZjA0ZmYzOTc1YmYyZjQxOGUx
OGZlYzgzYzYyZjM1Yi4uYTM2OWI4MjFiOWQ5YzJlMDM3OGRmNjI3MmVkMDE5ZjUyYWUyZWFiOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVt
ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVp
cmVtZW50Lmh0bWwKQEAgLTYsNDggKzYsMjQgQEAgaHRtbCB7CiA8L3N0eWxlPgogPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zd2lwZS10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlv
biBzdGFydFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAw
LCAxMDApOwogCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKICAgICAvLyBUaGUgZmlyc3Qgc3dpcGUg
c2hvdWxkIGZhaWwgYmVjYXVzZSB3ZSdyZSBzY3JvbGxlZCB0byB0aGUgbWlkZGxlIG9mIHRoZSBk
b2N1bWVudAogICAgIC8vIGFuZCB0aGlzIGlzIGFsbCBhIHNpbmdsZSBnZXN0dXJlLiBXZSBjYW4g
b25seSBzdGFydCBzd2lwZXMgaWYgd2UgKmJlZ2luKgogICAgIC8vIHBpbm5lZCB0byB0aGUgZWRn
ZS4KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwot
ICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnYmVnYW4nKTsKLSAgICBl
dmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVu
dFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1
ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVl
LmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVu
cXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVl
dWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVT
Y3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3Jv
bGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxF
dmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVu
dCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgw
LCAwLCAnZW5kZWQnKTsKLQotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuY2xlYXJUZXN0UnVubmVyQ2FsbGJhY2tz
KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZEJlZ2luU3dpcGVDYWxsYmFjayhkaWRC
ZWdpblN3aXBlQ2FsbGJhY2spOwotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxXaWxsRW5kU3dp
cGVDYWxsYmFjayh3aWxsRW5kU3dpcGVDYWxsYmFjayk7Ci0gICAgICAgIHRlc3RSdW5uZXIuaW5z
dGFsbERpZEVuZFN3aXBlQ2FsbGJhY2soZGlkRW5kU3dpcGVDYWxsYmFjayk7Ci0gICAgICAgIHRl
c3RSdW5uZXIuaW5zdGFsbERpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayhkaWRSZW1vdmVT
d2lwZVNuYXBzaG90Q2FsbGJhY2spOworICAgIHN0YXJ0U3dpcGVHZXN0dXJlKGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgY29tcGxldGVTd2lwZUdlc3R1cmUoZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5jbGVhclRlc3RSdW5uZXJDYWxsYmFja3MoKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuaW5zdGFsbERpZEJlZ2luU3dpcGVDYWxsYmFjayhkaWRCZWdpblN3aXBlQ2FsbGJh
Y2spOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsV2lsbEVuZFN3aXBlQ2FsbGJhY2so
d2lsbEVuZFN3aXBlQ2FsbGJhY2spOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlk
RW5kU3dpcGVDYWxsYmFjayhkaWRFbmRTd2lwZUNhbGxiYWNrKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbERpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayhkaWRSZW1vdmVTd2lw
ZVNuYXBzaG90Q2FsbGJhY2spOyAgICAKIAotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIC8vIFRoZSBzZWNvbmQgc3dpcGUgc2hvdWxkIHN1Y2NlZWQgYmVjYXVz
ZSB3ZSBhcmUgbm93IHNjcm9sbGVkIHRvIHRoZSBsZWZ0IGVkZ2UuCi0gICAgICAgICAgICBldmVu
dFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgICAgICAgICAg
ZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAgICAgICAg
ICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICAg
ICAgfSwgMCk7Ci0gICAgfSkKLX0KLQotZnVuY3Rpb24gY29tcGxldGVTd2lwZUdlc3R1cmUoKQot
ewotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLSAg
ICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDI1NiwgMCwgJ2NoYW5nZWQnKTsKLSAgICBl
dmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdlbmRlZCcpOworICAgICAgICAgICAg
c3RhcnRTd2lwZUdlc3R1cmUoZnVuY3Rpb24gKCkgeyBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpOyB9
KTsKKyAgICAgICAgfSk7CisgICAgfSk7CiB9CiAKIGZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVOb3RS
ZWFjaGVkQ2FsbGJhY2soKQpAQCAtNTgsMTAgKzM0LDYgQEAgZnVuY3Rpb24gZGlkQmVnaW5Td2lw
ZU5vdFJlYWNoZWRDYWxsYmFjaygpCiBmdW5jdGlvbiBkaWRCZWdpblN3aXBlQ2FsbGJhY2soKQog
ewogICAgIGxvZygiZGlkQmVnaW5Td2lwZSIpOwotCi0gICAgc2hvdWxkQmUoZmFsc2UsIGV2ZW50
UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpLCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5LiBC
b3RoIHNjcm9sbCBldmVudHMgc2hvdWxkIGJlIHJlcXVpcmVkIHRvIHN0YXJ0IHRoZSBzd2lwZSBi
ZWNhdXNlIG9mIHRoZSBzd2lwZS1zdGFydCBoeXN0ZXJlc2lzLiIpOwotCi0gICAgY29tcGxldGVT
d2lwZUdlc3R1cmUoKTsKIH0KIAogZnVuY3Rpb24gd2lsbEVuZFN3aXBlQ2FsbGJhY2soKQpAQCAt
NzUsNyArNDcsNiBAQCBmdW5jdGlvbiBkaWRFbmRTd2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2co
ImRpZEVuZFN3aXBlIik7CiAKLSAgICBzaG91bGRCZSgwLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdF
dmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBiZSBlbXB0eS4gVGhlIHN3aXBlIGlzbid0IGNv
bXBsZXRlIHVudGlsIHdlIHNlZSB0aGUgZW5kIG9mIHRoZSBnZXN0dXJlLiIpOwogICAgIHN0YXJ0
TWVhc3VyaW5nRHVyYXRpb24oInNuYXBzaG90UmVtb3ZhbCIpOwogfQogCkBAIC0xMjEsOCArOTIs
OSBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgIH0KIAogICAgIC8vIFNlY29u
ZCBwYWdlIGxvYWRlZC4KLSAgICB3aW5kb3cuc2Nyb2xsVG8oMTAwMCwgMCk7Ci0gICAgc3RhcnRT
d2lwZUdlc3R1cmUoKTsKKyAgICB3aW5kb3cuc2Nyb2xsVG8oMTAwLCAwKTsKKworICAgIHJ1blRl
c3QoKTsKIH07CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3
aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0CmluZGV4IGUz
ZDNlMDBhYjlkMGJmZmZlNjY5ZDZhZDg5YTAxN2FmNTdmNzBiODkuLjg5ZGVjZmQ0YzM3MTI1Y2Zi
NTU5ODExOTY4OWMzZjBjNGExZDg4NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3B1
c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dApAQCAtMSwxMCAr
MSw2IEBACi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xs
IGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEg
MCwgcGhhc2UgJ2NoYW5nZWQnKQorc3RhcnRTd2lwZUdlc3R1cmUKIGRpZEJlZ2luU3dpcGUKLXN3
aXBlIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0
YSAyNTYgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2Ug
J2VuZGVkJykKK2NvbXBsZXRlU3dpcGVHZXN0dXJlCiB3aWxsRW5kU3dpcGUKIGRpZEVuZFN3aXBl
CiBkaWRSZW1vdmVTd2lwZVNuYXBzaG90CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9w
dXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hT
dGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sCmluZGV4IDU2ZGFkYTQ4OTA0MjhjNDlkZDJkNzFm
NzY4NjA5MDRlMDFmODQzMWYuLjlhOGRjOWQ3ZDlhMTA4ODc1OTI1ZWU0ZDI4OTk3ZTUzODYyZTM4
NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1z
d2lwZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1z
d2lwZS5odG1sCkBAIC02LDI4ICs2LDExIEBAIGh0bWwgewogPC9zdHlsZT4KIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24g
c3RhcnRTd2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwg
MTAwKTsKLQotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2lu
Jyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0g
ICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLX0KLQot
ZnVuY3Rpb24gY29tcGxldGVTd2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50UXVldWUuZW5xdWV1
ZVN3aXBlRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lw
ZUV2ZW50KDI1NiwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2
ZW50KDAsIDAsICdlbmRlZCcpOwotfQogCiBmdW5jdGlvbiBkaWRCZWdpblN3aXBlQ2FsbGJhY2so
KQogewogICAgIGxvZygiZGlkQmVnaW5Td2lwZSIpOwogCi0gICAgc2hvdWxkQmUoZmFsc2UsIGV2
ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpLCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5
LiBCb3RoIHNjcm9sbCBldmVudHMgc2hvdWxkIGJlIHJlcXVpcmVkIHRvIHN0YXJ0IHRoZSBzd2lw
ZSBiZWNhdXNlIG9mIHRoZSBzd2lwZS1zdGFydCBoeXN0ZXJlc2lzLiIpOwotCiAgICAgY29tcGxl
dGVTd2lwZUdlc3R1cmUoKTsKIH0KIApAQCAtNDIsNyArMjUsNiBAQCBmdW5jdGlvbiBkaWRFbmRT
d2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRpZEVuZFN3aXBlIik7CiAKLSAgICBzaG91bGRC
ZSgwLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBi
ZSBlbXB0eS4gVGhlIHN3aXBlIGlzbid0IGNvbXBsZXRlIHVudGlsIHdlIHNlZSB0aGUgZW5kIG9m
IHRoZSBnZXN0dXJlLiIpOwogICAgIHN0YXJ0TWVhc3VyaW5nRHVyYXRpb24oInNuYXBzaG90UmVt
b3ZhbCIpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJv
Z3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFz
aC1leHBlY3RlZC50eHQKaW5kZXggZGMzNGU5MmQ1ODg0ZWI4ZDFkMzE1MTViNWE4ODYyNzU2ZWIy
OTM0Mi4uMDA1MDc1NWY1NzM3ZDRjZDdhM2MyNGM1NzYyNGI3YTdkZjFjMjYzZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3
aXBpbmctY3Jhc2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0
ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAt
MSw3ICsxLDQgQEAKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1z
Y3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVs
dGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAn
Y2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMjU2IDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3
aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCitwbGF5RXZlbnRTdHJlYW0KK3Bs
YXlFdmVudFN0cmVhbQorY29tcGxldGVTd2lwZUdlc3R1cmUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jh
c2guaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13
aGlsZS1zd2lwaW5nLWNyYXNoLmh0bWwKaW5kZXggMzZlZjM5ZmI0M2U0MzBkYjkxNDYwMzg0NmZk
MmJmN2UzMjkwNjMwMS4uM2Y4N2EwMzllZTdhOTNjYjY0YTJmMGU2NWQ1MGNiYTA5NzA0NmNjMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNr
LXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3Rh
dGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1sCkBAIC02LDM3ICs2
LDY3IEBAIGh0bWwgewogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3dpcGUtdGVz
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gc3RhcnRTd2lwZUdlc3R1cmUoKQor
ZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAx
MDApOwotCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4n
KTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnYmVnYW4nKTsKLSAg
ICAKLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goZ29CYWNrKTsKKyAgICBw
bGF5RXZlbnRTdHJlYW0oYFt7CisgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAwLAorICAgICAg
ICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgImtDR0V2ZW50
R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwK
KyAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDEyOCwKKyAgICAgICAgIndpbmRvd0xv
Y2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgInJlbGF0
aXZlVGltZU1TIiA6IDgsCisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYxLAor
ICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAia0NHRXZlbnRHZXN0
dXJlU3RhcnRFbmRTZXJpZXNUeXBlIiA6IDYsCisgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAi
ezAsIDB9IgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5
cGUiIDogNiwKKyAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDgsCisgICAgICAgICJ3aW5kb3dM
b2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIg
OiAxLAorICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAg
ICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNj
cm9sbFgiIDogMgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6
IDgsCisgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICJr
Q0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMSwKKyAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQ
b2ludERlbHRhQXhpczIiIDogMSwKKyAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgor
ICAgICAgfV1gLCBnb0JhY2spOwogfQogCiBmdW5jdGlvbiBnb0JhY2soKQogewogICAgIHdpbmRv
dy5oaXN0b3J5LmJhY2soKTsKIAotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRj
aChjb250aW51ZVN3aXBlR2VzdHVyZSk7CisgICAgc2V0VGltZW91dChjb250aW51ZVRlc3QsIDAp
OwogfQogCi1mdW5jdGlvbiBjb250aW51ZVN3aXBlR2VzdHVyZSgpCitmdW5jdGlvbiBjb250aW51
ZVRlc3QoKQogewotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdjaGFu
Z2VkJyk7Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goY29tcGxldGVT
d2lwZUdlc3R1cmUpOworICAgIHBsYXlFdmVudFN0cmVhbShgWworICAgICAgeworICAgICAgICAi
cmVsYXRpdmVUaW1lTVMiIDogMCwKKyAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAz
MDB9IiwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAxLAorICAg
ICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAia0NH
U2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAyMCwKKyAgICAgICAgImtDR1NFdmVu
dFR5cGVGaWVsZCIgOiAyMgorICAgICAgfV1gLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGNvbXBs
ZXRlVGVzdCgpOworICAgICAgfSk7CiB9CiAKLWZ1bmN0aW9uIGNvbXBsZXRlU3dpcGVHZXN0dXJl
KCkKK2Z1bmN0aW9uIGNvbXBsZXRlVGVzdCgpCiB7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dp
cGVFdmVudCgxLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZl
bnQoMjU2LCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQo
MCwgMCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2go
dGVzdENvbXBsZXRlKTsKKyAgICBjb21wbGV0ZVN3aXBlR2VzdHVyZSh0ZXN0Q29tcGxldGUpOwog
fQogCiBmdW5jdGlvbiBkaWRCZWdpblN3aXBlQ2FsbGJhY2soKQpAQCAtNzksNyArMTA5LDcgQEAg
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgdXBkYXRlQ29udGVudCgpOwog
CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgc3RhcnRTd2lw
ZUdlc3R1cmUoKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKICAgICAgICAgfSwgMCk7CiAgICAg
fSwgMCk7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBl
LXRlc3QuanMgYi9MYXlvdXRUZXN0cy9zd2lwZS9yZXNvdXJjZXMvc3dpcGUtdGVzdC5qcwppbmRl
eCBkZDhlOTAwOWZmZTg0OTU5MDA5OWZkMTgzMjNiY2UzNzNiNzQwNjgwLi4wYzIzNjVkMTMxM2Ex
ODA2NzdiOTFhZjJiNDQ5MzNhZTQwODM4Y2NkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lw
ZS9yZXNvdXJjZXMvc3dpcGUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9yZXNvdXJj
ZXMvc3dpcGUtdGVzdC5qcwpAQCAtMSw1MCArMSwzIEBACi12YXIgZXZlbnRRdWV1ZSA9IHsKLSAg
ICBlbnF1ZXVlU2Nyb2xsRXZlbnQ6IGZ1bmN0aW9uICh4LCB5LCBwaGFzZSkgewotICAgICAgICB0
aGlzLl9xdWV1ZS5wdXNoKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGxvZygic2Nyb2xsIGV2
ZW50IChkZWx0YSAiICsgeCArICIgIiArIHkgKyAiLCBwaGFzZSAnIiArIHBoYXNlICsgIicpIik7
Ci0gICAgICAgICAgICB3aW5kb3cuZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKHgsIHksIHBoYXNlLCAnbm9uZScpOwotICAgICAgICB9KTsKLSAgICAg
ICAgdGhpcy5fcHJvY2Vzc0V2ZW50UXVldWVTb29uKCk7Ci0gICAgfSwKLQotICAgIGVucXVldWVT
d2lwZUV2ZW50OiBmdW5jdGlvbiAoeCwgeSwgcGhhc2UpIHsKLSAgICAgICAgdGhpcy5fcXVldWUu
cHVzaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBsb2coInN3aXBlIGV2ZW50IChkZWx0YSAi
ICsgeCArICIgIiArIHkgKyAiLCBwaGFzZSAnIiArIHBoYXNlICsgIicpIik7Ci0gICAgICAgICAg
ICB3aW5kb3cuZXZlbnRTZW5kZXIuc3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoeCwgeSwgcGhhc2UsICdub25lJyk7Ci0gICAgICAgIH0pOwotICAgICAgICB0aGlzLl9wcm9j
ZXNzRXZlbnRRdWV1ZVNvb24oKTsKLSAgICB9LAotCi0gICAgaGFzUGVuZGluZ0V2ZW50czogZnVu
Y3Rpb24gKCkgewotICAgICAgICByZXR1cm4gdGhpcy5fcXVldWUubGVuZ3RoICE9IDA7Ci0gICAg
fSwKLQotICAgIGNhbGxBZnRlckV2ZW50RGlzcGF0Y2g6IGZ1bmN0aW9uIChjYWxsYmFjaykgewot
ICAgICAgICB2YXIgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7IAotICAgICAg
ICAgICAgaWYgKCFldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKSkgewotICAgICAgICAgICAg
ICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpOwotICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sIDApOwotICAgIH0sCi0KLSAgICBfcXVldWU6IFtd
LAotCi0gICAgX3Byb2Nlc3NFdmVudFF1ZXVlOiBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGlmICgh
dGhpcy5fcXVldWUubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHZhciBp
dGVtID0gdGhpcy5fcXVldWUuc2hpZnQoKTsKLSAgICAgICAgaXRlbSgpOwotICAgICAgICB0aGlz
Ll9wcm9jZXNzRXZlbnRRdWV1ZVNvb24oKTsKLSAgICB9LAotCi0gICAgX3Byb2Nlc3NFdmVudFF1
ZXVlU29vbjogZnVuY3Rpb24gKCkgewotICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fcHJvY2Vz
c2luZ1RpbWVvdXQpOwotICAgICAgICB0aGlzLl9wcm9jZXNzaW5nVGltZW91dCA9IHNldFRpbWVv
dXQodGhpcy5fcHJvY2Vzc0V2ZW50UXVldWUuYmluZCh0aGlzKSwgMCk7Ci0gICAgfQotfQotCiBm
dW5jdGlvbiBzaG91bGRCZShleHBlY3RlZCwgYWN0dWFsLCBtZXNzYWdlKQogewogICAgIGlmIChl
eHBlY3RlZCAhPSBhY3R1YWwpCkBAIC04NCw0ICszNywzNyBAQCBmdW5jdGlvbiBtZWFzdXJlZER1
cmF0aW9uU2hvdWxkQmVMZXNzVGhhbihrZXksIHRpbWVJbk1TLCBtZXNzYWdlKQogICAgIHZhciBk
dXJhdGlvbiA9IERhdGUubm93KCkgLSB3aW5kb3cubG9jYWxTdG9yYWdlW2tleSArICJzd2lwZVN0
YXJ0VGltZSJdOwogICAgIGlmIChkdXJhdGlvbiA+PSB0aW1lSW5NUykKICAgICAgICAgbG9nKCJG
YWlsdXJlLiAiICsgbWVzc2FnZSArICIgKGV4cGVjdGVkOiAiICsgdGltZUluTVMgKyAiLCBhY3R1
YWw6ICIgKyBkdXJhdGlvbiArICIpIik7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQor
fQorCitmdW5jdGlvbiBzdGFydFN3aXBlR2VzdHVyZShjYWxsYmFjaykKK3sKKyAgICBsb2coInN0
YXJ0U3dpcGVHZXN0dXJlIik7CisgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgKGZ1
bmN0aW9uKCkgeworICAgICAgICB1aUNvbnRyb2xsZXIuYmVnaW5CYWNrU3dpcGUoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAg
ICB9KTsKKyAgICB9KSgpO2AsIGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9KTsKK30KKworZnVu
Y3Rpb24gY29tcGxldGVTd2lwZUdlc3R1cmUoY2FsbGJhY2spCit7CisgICAgbG9nKCJjb21wbGV0
ZVN3aXBlR2VzdHVyZSIpOworICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgIChmdW5j
dGlvbigpIHsKKyAgICAgICAgdWlDb250cm9sbGVyLmNvbXBsZXRlQmFja1N3aXBlKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAg
ICAgfSk7CisgICAgfSkoKTtgLCBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fSk7Cit9CisKK2Z1
bmN0aW9uIHBsYXlFdmVudFN0cmVhbShzdHJlYW0sIGNhbGxiYWNrKQoreworICAgIGxvZygicGxh
eUV2ZW50U3RyZWFtIik7CisgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgKGZ1bmN0
aW9uKCkgeworICAgICAgICB1aUNvbnRyb2xsZXIucGxheUJhY2tFdmVudFN0cmVhbShcYCR7c3Ry
ZWFtfVxgLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENv
bXBsZXRlKCk7CisgICAgICAgIH0pOworICAgIH0pKCk7YCwgY2FsbGJhY2sgfHwgZnVuY3Rpb24g
KCkge30pOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQtaHlz
dGVyZXNpcy1mYWlsdXJlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zd2lwZS9zd2lwZS1z
dGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNWE0ODBhOTgwNGNlMjE5MTRjOGY5ODJmNWJjMDExOWU3ZGViZTU3OS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9z
d2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDIyICswLDAgQEAKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdt
YXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9s
bCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRh
IDAgMCwgcGhhc2UgJ2VuZGVkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXli
ZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDIgMiwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBl
dmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAg
MCwgcGhhc2UgJ2VuZGVkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdp
bicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMiwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVu
dCAoZGVsdGEgMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwg
cGhhc2UgJ2VuZGVkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicp
Ci1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAo
ZGVsdGEgMCAyLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhh
c2UgJ2VuZGVkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1z
Y3JvbGwgZXZlbnQgKGRlbHRhIDMgMSwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVs
dGEgMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2Ug
J2VuZGVkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMu
aHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc1ZTY3Yjk3NDEyMzkyY2RiMTQ0
N2VhNTdjMmIwNTU1MjNjNWYwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1
cmVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBAQAotPGhlYWQ+Ci08c3R5bGU+
Ci1odG1sIHsKLSAgICBmb250LXNpemU6IDMycHQ7Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zd2lwZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBk
b1Nob3J0U3dpcGVHZXN0dXJlKCkKLXsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAs
IDEwMCk7Ci0KLSAgICAvLyBUb3RhbCBkZWx0YSBvZiAxMCwgMDsgc2hvdWxkIG5vdCBiZSBlbm91
Z2ggdG8gc3RhcnQgYSBzd2lwZS4KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAs
IDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAs
ICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdjaGFu
Z2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7
Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goZG9EaWFnb25hbFN3aXBl
R2VzdHVyZSk7Ci19Ci0KLWZ1bmN0aW9uIGRvRGlhZ29uYWxTd2lwZUdlc3R1cmUoKQotewotICAg
IC8vIFRvdGFsIGRlbHRhIG9mIDIwLCAyMDsgdGhpcyBpcyBvcmRpbmFyaWx5IHN1ZmZpY2llbnQg
bWFnbml0dWRlIHRvIHN0YXJ0IGEgc3dpcGUsCi0gICAgLy8gYnV0IGlzIHRvbyBkaWFnb25hbCB0
byBzdGFydCBhIHN3aXBlLgotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwg
J21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMiwgMiwgJ2Jl
Z2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2NoYW5nZWQn
KTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnZW5kZWQnKTsKLQot
ICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChkb1ZlcnRpY2FsU3dpcGVHZXN0
dXJlKTsKLX0KLQotZnVuY3Rpb24gZG9WZXJ0aWNhbFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgLy8g
VG90YWwgZGVsdGEgb2YgMCwgMjA7IHRoaXMgaXMgb3JkaW5hcmlseSBzdWZmaWNpZW50IG1hZ25p
dHVkZSB0byBzdGFydCBhIHN3aXBlLAotICAgIC8vIGJ1dCBpcyBjb21wbGV0ZWx5IHZlcnRpY2Fs
LCBzbyB3ZSB3b24ndCBzdGFydCBhIHN3aXBlLgotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBl
RXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZl
bnQoMCwgMiwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwg
MCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAn
ZW5kZWQnKTsKLQotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChkb0hvcml6
b250YWxUaGVuVmVydGljYWxTd2lwZUdlc3R1cmUpOwotfQotCi1mdW5jdGlvbiBkb0hvcml6b250
YWxUaGVuVmVydGljYWxTd2lwZUdlc3R1cmUoKQotewotICAgIC8vIFRvdGFsIGRlbHRhIG9mIDEw
LCAyMDsgdGhpcyBpcyBvcmRpbmFyaWx5IHN1ZmZpY2llbnQgbWFnbml0dWRlIHRvIHN0YXJ0IGEg
c3dpcGUsCi0gICAgLy8gYnV0IGlzIHRvbyB2ZXJ0aWNhbCwgc28gd2Ugd29uJ3Qgc3RhcnQgYSBz
d2lwZS4KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicp
OwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdiZWdhbicpOwotICAg
IGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDIsICdjaGFuZ2VkJyk7Ci0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1
ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goZG9SZWd1bGFyU3dpcGVHZXN0dXJlKTsKLX0KLQot
ZnVuY3Rpb24gZG9SZWd1bGFyU3dpcGVHZXN0dXJlKCkKLXsKLSAgICAvLyBTd2FwIGluIGEgZGlm
ZmVyZW50IGNhbGxiYWNrIHRoYXQgbWFrZXMgc3VyZSB3ZSAqZG8qIHJlYWNoIGRpZEJlZ2luU3dp
cGUuCi0gICAgdGVzdFJ1bm5lci5jbGVhclRlc3RSdW5uZXJDYWxsYmFja3MoKTsKLSAgICB2YXIg
c2F3RGlkQmVnaW5Td2lwZSA9IGZhbHNlOwotICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZEJlZ2lu
U3dpcGVDYWxsYmFjayhmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHNhd0RpZEJlZ2luU3dpcGUgPSB0
cnVlOwotICAgICAgICAvLyBOZWVkIGEgc3dpcGUtZW5kIGV2ZW50IHRvIGNsZWFuIHVwLgotICAg
ICAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdlbmRlZCcpOwotICAgIH0p
OwotCi0gICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNr
KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgc2hvdWxkQmUodHJ1ZSwgc2F3RGlkQmVnaW5Td2lwZSwg
IlRoZSBsYXN0IGdlc3R1cmUgc2hvdWxkIHN0YXJ0IGEgc3dpcGUsIGJlY2F1c2UgaXQgaXMgc3Vm
ZmljaWVudCBtYWduaXR1ZGUgYW5kIGluIHRoZSBjb3JyZWN0IGRpcmVjdGlvbi4iKQotICAgICAg
ICB0ZXN0Q29tcGxldGUoKTsKLSAgICB9KTsKLQotICAgIC8vIFRvdGFsIGRlbHRhIG9mIDMwLCAx
MDsgdGhpcyBzaG91bGQgc3RhcnQgYSBzd2lwZSBhcyB1c3VhbC4KLSAgICBldmVudFF1ZXVlLmVu
cXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1
ZVNjcm9sbEV2ZW50KDMsIDEsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9s
bEV2ZW50KDAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZl
bnQoMCwgMCwgJ2VuZGVkJyk7Ci19Ci0KLWZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVOb3RSZWFjaGVk
Q2FsbGJhY2soKQotewotICAgIGxvZygiRmFpbHVyZS4gU2hvdWxkIG5ldmVyIGJlZ2luIGEgc3dp
cGUsIGJlY2F1c2UgYWxsIG9mIHRoZSBhdHRlbXB0ZWQgc3dpcGVzIHNob3VsZCBmYWlsIGR1ZSB0
byB0aGUgc3dpcGUtc3RhcnQgaHlzdGVyZXNpcy4iKTsKLX0KLQotZnVuY3Rpb24gaXNGaXJzdFBh
Z2UoKQotewotICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCJzZWNvbmQi
KSA9PSAtMTsKLX0KLQotd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKLSAgICBpZiAoIXdp
bmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgZG9jdW1l
bnQuYm9keS5pbm5lckhUTUwgPSAiVGhpcyB0ZXN0IG11c3QgYmUgcnVuIGluIFdlYktpdFRlc3RS
dW5uZXIuIjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRvY3VtZW50LmJvZHkuaW5u
ZXJIVE1MID0gaXNGaXJzdFBhZ2UoKSA/ICJmaXJzdCIgOiAic2Vjb25kIjsKLQotICAgIGlmIChp
c0ZpcnN0UGFnZSgpKSB7Ci0gICAgICAgIGluaXRpYWxpemVTd2lwZVRlc3QoKTsKLQotICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxEaWRCZWdpblN3aXBlQ2FsbGJhY2soZGlkQmVnaW5Td2lwZU5v
dFJlYWNoZWRDYWxsYmFjayk7Ci0KLSAgICAgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVu
Y2UoIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5IiwgMSk7Ci0gICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
LQotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgCi0gICAgICAgICAgICB3aW5kb3cu
bG9jYXRpb24uaHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmICsgIj9zZWNvbmQiOwotICAgICAg
ICB9LCAwKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRvU2hvcnRTd2lwZUdlc3R1
cmUoKTsKLX07Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPC9ib2R5PgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288235</attachid>
            <date>2016-09-07 20:47:26 -0700</date>
            <delta_ts>2016-09-07 20:51:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161675-20160907204500.patch</filename>
            <type>text/plain</type>
            <size>107163</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MzYzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGFkZDhkNzFiMDVlNWE4OTBlYzFmMTU4MzM2YTcyODhi
ZmI1NGJkZS4uZjdhMGZjZWZmODkyZmU1ZDI1ZjU3MzBjOTAxNWJmNGIyOWE2N2IwZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDE2LTA5LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFN3aXBlIGdlc3R1cmUgdGVzdHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRm
b3JtUGxheUJhY2tFdmVudFN0cmVhbSk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6YmVnaW5CYWNrU3dpcGUpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNv
bXBsZXRlQmFja1N3aXBlKToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFs
aXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbTog
QWRkZWQuCisgICAgICAgIChldmVudElzT2ZUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZlR5cGVz
KToKKyAgICAgICAgKGV2ZW50SXNPZkdlc3R1cmVUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZkdl
c3R1cmVUeXBlcyk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBkaWN0aW9uYXJ5Rm9yRXZl
bnQ6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBjcmVhdGVF
dmVudEZvckRpY3Rpb25hcnk6aW5XaW5kb3c6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgr
W0V2ZW50U2VyaWFsaXplciBwbGF5RXZlbnRTdHJlYW06aW5XaW5kb3c6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFj
L1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1bm5lclNo
YXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTogQWRk
ZWQuCisgICAgICAgIChiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKToKKyAgICAgICAgKGNvbXBs
ZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0pOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICog
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF5QmFja0V2ZW50U3RyZWFtKToK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZSk6CisgICAg
ICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUpOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbSk6
CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1DbGVhckFsbENhbGxi
YWNrcyk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9zcGkv
Q29yZUdyYXBoaWNzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvc3Bp
L0lPS2l0U1BJLmg6IFJlbmFtZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tp
dFNQSS5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6cGxheUJhY2tFdmVudHMpOgor
ICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKToKKyAgICAg
ICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZSk6CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKToK
KwogMjAxNi0wOS0wMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OIChyMjA1MzI5KTogVHdvIEFQSSB0ZXN0cyB0aW1lIG91dCBvbiBp
T1MgU2ltdWxhdG9yCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3Jp
cHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29u
dHJvbGxlck1hYy5tbQppbmRleCA1NmUyMDc3YTRiMmEyMGMxZGI5MWRjOWExMGJkZGU1ZjIyY2M2
NDBiLi5jYTg2ZWY3ZTE3YThkNzYxODFmZGU0MGNmY2VlNjY3YjhkN2UwNTljIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTQz
LDYgKzQzLDE4IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FzeW5jVGFzayhKU1ZhbHVl
UmVmIGNhbGxiYWNrKQogICAgIH0pOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVn
aW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKK30KKwordm9pZCBVSVNjcmlwdENv
bnRyb2xsZXI6OmNvbXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7Cit9CisK
K3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVBsYXlCYWNrRXZlbnRTdHJlYW0oSlNT
dHJpbmdSZWYsIEpTVmFsdWVSZWYpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9u
L21hYy9FdmVudFNlcmlhbGl6ZXJNYWMuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRT
ZXJpYWxpemF0aW9uL21hYy9FdmVudFNlcmlhbGl6ZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTA1ZDY3
ZjU5ODllMGZiZDk3OTlhMzQ2ODQwZTc4ZWY4N2YzM2RmCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXpl
ck1hYy5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgUExBVEZPUk0oTUFDKQor
CisjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CisKK0BpbnRlcmZhY2UgRXZlbnRTZXJpYWxpemVy
IDogTlNPYmplY3QKKworKyAoTlNEaWN0aW9uYXJ5ICopZGljdGlvbmFyeUZvckV2ZW50OihDR0V2
ZW50UmVmKWV2ZW50IHJlbGF0aXZlVG9UaW1lOihDR0V2ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRp
bWVzdGFtcDsKKworKyAoQ0dFdmVudFJlZiljcmVhdGVFdmVudEZvckRpY3Rpb25hcnk6KE5TRGlj
dGlvbmFyeSAqKWRpY3QgaW5XaW5kb3c6KE5TV2luZG93ICopd2luZG93IHJlbGF0aXZlVG9UaW1l
OihDR0V2ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRpbWVzdGFtcDsKKworKyAodm9pZClwbGF5RXZl
bnRTdHJlYW06KE5TQXJyYXk8TlNEaWN0aW9uYXJ5ICo+ICopZXZlbnREaWN0cyBpbldpbmRvdzoo
TlNXaW5kb3cgKil3aW5kb3cgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoKSljb21wbGV0aW9u
SGFuZGxlcjsKKworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9FdmVudFNlcmlhbGl6ZXJNYWMubW0gYi9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVy
TWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAwYjY5NmExNTFmN2VlMjA1ZWVhNmY0MTgxOThiYTk3NWU0Yjll
NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFs
aXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLm1tCkBAIC0wLDAgKzEsMzA2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJFdmVudFNlcmlhbGl6ZXJNYWMu
aCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAiQ29yZUdyYXBoaWNzU1BJLmgiCisj
aW1wb3J0ICJJT0tpdFNQSS5oIgorI2ltcG9ydCA8YWxnb3JpdGhtPgorI2ltcG9ydCA8bWFjaC9t
YWNoX3RpbWUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2RlZmluZSBNT1VTRV9F
VkVOVF9UWVBFUyBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudExlZnRNb3VzZURvd24sIFwK
KyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50TGVmdE1vdXNlVXAsIFwKKyAgICAoQ0dTRXZlbnRU
eXBlKWtDR0V2ZW50UmlnaHRNb3VzZURvd24sIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50
UmlnaHRNb3VzZVVwLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudE1vdXNlTW92ZWQsIFwK
KyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50TGVmdE1vdXNlRHJhZ2dlZCwgXAorICAgIChDR1NF
dmVudFR5cGUpa0NHRXZlbnRSaWdodE1vdXNlRHJhZ2dlZCwgXAorICAgIChDR1NFdmVudFR5cGUp
a0NHRXZlbnRPdGhlck1vdXNlRG93biwgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRPdGhl
ck1vdXNlVXAsIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50T3RoZXJNb3VzZURyYWdnZWQK
KworI2RlZmluZSBLRVlfRVZFTlRfVFlQRVMgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRL
ZXlEb3duLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudEtleVVwLCBcCisgICAgKENHU0V2
ZW50VHlwZSlrQ0dFdmVudEZsYWdzQ2hhbmdlZAorCisjZGVmaW5lIEdFU1RVUkVfRVZFTlRfVFlQ
RVMgXAorICAgIGtDR1NFdmVudEdlc3R1cmUsIFwKKyAgICBrQ0dTRXZlbnRGbHVpZFRvdWNoR2Vz
dHVyZSwgXAorICAgIGtDR1NFdmVudERvY2tDb250cm9sCisKK2Jvb2wgZXZlbnRJc09mVHlwZShD
R0V2ZW50UmVmIGV2ZW50LCBDR1NFdmVudFR5cGUgdHlwZSkKK3sKKyAgICByZXR1cm4gKENHU0V2
ZW50VHlwZSlDR0V2ZW50R2V0VHlwZShldmVudCkgPT0gdHlwZTsKK30KKworYm9vbCBldmVudElz
T2ZUeXBlcyhDR0V2ZW50UmVmKSB7IHJldHVybiBmYWxzZTsgfQorCit0ZW1wbGF0ZTx0eXBlbmFt
ZSAuLi4gVHlwZXM+Citib29sIGV2ZW50SXNPZlR5cGVzKENHRXZlbnRSZWYgZXZlbnQsIENHU0V2
ZW50VHlwZSBmaXJzdCwgVHlwZXMgLi4uIHJlc3QpCit7CisgICAgcmV0dXJuIGV2ZW50SXNPZlR5
cGUoZXZlbnQsIGZpcnN0KSB8fCBldmVudElzT2ZUeXBlcyhldmVudCwgcmVzdC4uLik7Cit9CisK
K2Jvb2wgZXZlbnRJc09mR2VzdHVyZVR5cGUoQ0dFdmVudFJlZiBldmVudCwgSU9ISURFdmVudFR5
cGUgdHlwZSkKK3sKKyAgICByZXR1cm4gKElPSElERXZlbnRUeXBlKUNHRXZlbnRHZXRJbnRlZ2Vy
VmFsdWVGaWVsZChldmVudCwga0NHRXZlbnRHZXN0dXJlSElEVHlwZSkgPT0gdHlwZTsKK30KKwor
Ym9vbCBldmVudElzT2ZHZXN0dXJlVHlwZXMoQ0dFdmVudFJlZikgeyByZXR1cm4gZmFsc2U7IH0K
KwordGVtcGxhdGU8dHlwZW5hbWUgLi4uIFR5cGVzPgorYm9vbCBldmVudElzT2ZHZXN0dXJlVHlw
ZXMoQ0dFdmVudFJlZiBldmVudCwgSU9ISURFdmVudFR5cGUgZmlyc3QsIFR5cGVzIC4uLiByZXN0
KQoreworICAgIGlmICghZXZlbnRJc09mVHlwZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGV2ZW50SXNPZkdlc3R1cmVUeXBl
KGV2ZW50LCBmaXJzdCkgfHwgZXZlbnRJc09mR2VzdHVyZVR5cGVzKGV2ZW50LCByZXN0Li4uKTsK
K30KKworI2RlZmluZSBGT1JfRUFDSF9DR0VWRU5UX0lOVEVHRVJfRklFTEQobWFjcm8pIFwKKyAg
ICBtYWNybyh0cnVlLCBrQ0dTRXZlbnRUeXBlRmllbGQpIFwKKyAgICBcCisgICAgbWFjcm8oZXZl
bnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwg
a0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczEpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBl
cyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxX
aGVlbEV2ZW50RGVsdGFBeGlzMikgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBr
Q0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRE
ZWx0YUF4aXMzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNj
cm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91
cykgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVl
bCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRNb21lbnR1bVBoYXNlKSBcCisg
ICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dT
RXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSkgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50
Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIpIFwKKyAgICBtYWNybyhl
dmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20p
LCBrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMzKSBcCisgICAgbWFjcm8oZXZlbnRJ
c09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NH
U2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50KSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMo
ZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hl
ZWxFdmVudFNjcm9sbFBoYXNlKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2
ZW50LCBNT1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnRCdXR0b25OdW1iZXIpIFwKKyAg
ICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3Vz
ZUV2ZW50Q2xpY2tTdGF0ZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBNT1VT
RV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnREZWx0YVgpIFwKKyAgICBtYWNybyhldmVudElz
T2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50RGVsdGFZKSBc
CisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwga0NH
TW91c2VFdmVudFN1YnR5cGUpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9V
U0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50TnVtYmVyKSBcCisgICAgXAorICAgIG1hY3Jv
KGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBLRVlfRVZFTlRfVFlQRVMpLCBrQ0dLZXlib2FyZEV2ZW50
QXV0b3JlcGVhdCkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBLRVlfRVZFTlRf
VFlQRVMpLCBrQ0dLZXlib2FyZEV2ZW50S2V5Ym9hcmRUeXBlKSBcCisgICAgbWFjcm8oZXZlbnRJ
c09mVHlwZXMoZXZlbnQsIEtFWV9FVkVOVF9UWVBFUyksIGtDR0tleWJvYXJkRXZlbnRLZXljb2Rl
KSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5U
X1RZUEVTKSwga0NHRXZlbnRHZXN0dXJlSElEVHlwZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5
cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSwga0NHRXZlbnRHZXN0dXJlQmVoYXZpb3Ip
IFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyks
IGtDR0V2ZW50R2VzdHVyZUZsYXZvcikgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50
LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSwga0NHRXZlbnRHZXN0dXJlTWFzaykgXAorICAgIG1hY3Jv
KGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSwga0NHRXZlbnRHZXN0
dXJlUGhhc2UpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVO
VF9UWVBFUyksIGtDR0V2ZW50R2VzdHVyZVN0YWdlKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50
SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVTY3JvbGwpLCBrQ0dFdmVudFNj
cm9sbEdlc3R1cmVGbGFnQml0cykgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJl
VHlwZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRTd2lw
ZUdlc3R1cmVGbGFnQml0cykgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50
LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZU1h
c2spIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRU
eXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVNb3Rpb24pIFwKKyAgICBt
YWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlv
blN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVWYWx1ZSkgXAorICAgIG1hY3JvKGV2ZW50SXNP
Zkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dF
dmVudEdlc3R1cmVGbGF2b3IpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5
cGVzKGV2ZW50LCBrQ0dISURFdmVudFR5cGVHZXN0dXJlU3RhcnRlZCwga0NHSElERXZlbnRUeXBl
R2VzdHVyZUVuZGVkKSwga0NHRXZlbnRHZXN0dXJlU3RhcnRFbmRTZXJpZXNUeXBlKQorCisjZGVm
aW5lIEZPUl9FQUNIX0NHRVZFTlRfRE9VQkxFX0ZJRUxEKG1hY3JvKSBcCisgICAgbWFjcm8oZXZl
bnRJc09mVHlwZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVQ
cm9ncmVzcykgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0Vf
RVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50UHJlc3N1cmUpIFwKKyAgICBcCisgICAgbWFjcm8o
ZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVpvb20pLCBrQ0dFdmVu
dEdlc3R1cmVab29tRGVsdGFYKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZl
bnQsIGtJT0hJREV2ZW50VHlwZVpvb20pLCBrQ0dFdmVudEdlc3R1cmVab29tRGVsdGFZKSBcCisg
ICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVpvb20p
LCBrQ0dFdmVudEdlc3R1cmVab29tVmFsdWUpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09m
R2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVJvdGF0aW9uKSwga0NHRXZlbnRHZXN0
dXJlUm90YXRpb25WYWx1ZSkgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlw
ZShldmVudCwga0lPSElERXZlbnRUeXBlU2Nyb2xsKSwga0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCkg
XAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVT
Y3JvbGwpLCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxZKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2Vz
dHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVNjcm9sbCksIGtDR0V2ZW50R2VzdHVyZVNj
cm9sbFopIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJ
T0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlUG9zaXRp
b25YKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50
VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlUG9zaXRpb25ZKSBcCisg
ICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmln
YXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlUHJvZ3Jlc3MpIFwKKyAgICBtYWNybyhl
dmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBl
KSwga0NHRXZlbnRHZXN0dXJlU3dpcGVWZWxvY2l0eVgpIFwKKyAgICBtYWNybyhldmVudElzT2ZH
ZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZl
bnRHZXN0dXJlU3dpcGVWZWxvY2l0eVkpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlw
ZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJl
U3dpcGVWZWxvY2l0eVopIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUo
ZXZlbnQsIGtJT0hJREV2ZW50VHlwZUZvcmNlKSwga0NHRXZlbnRUcmFuc2l0aW9uUHJvZ3Jlc3Mp
IFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBl
Rm9yY2UpLCBrQ0dFdmVudFN0YWdlUHJlc3N1cmUpCisKKyNkZWZpbmUgTE9BRF9JTlRFR0VSX0ZJ
RUxEX0ZST01fRVZFTlQoZXZlbnRUeXBlRmlsdGVyLCBmaWVsZCkgXAorXiB7IFwKKyAgICBpZiAo
IShldmVudFR5cGVGaWx0ZXIpKSBcCisgICAgICAgIHJldHVybjsgXAorICAgIGludDY0X3QgdmFs
dWUgPSBDR0V2ZW50R2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGZpZWxkKTsgXAorICAgIGlu
dDY0X3QgcGxhaW5WYWx1ZSA9IENHRXZlbnRHZXRJbnRlZ2VyVmFsdWVGaWVsZChwbGFpbkV2ZW50
LCBmaWVsZCk7IFwKKyAgICBpZiAodmFsdWUgIT0gcGxhaW5WYWx1ZSkgXAorICAgICAgICBkaWN0
W0AjZmllbGRdID0gQCh2YWx1ZSk7IFwKK30oKTsKKworI2RlZmluZSBMT0FEX0RPVUJMRV9GSUVM
RF9GUk9NX0VWRU5UKGV2ZW50VHlwZUZpbHRlciwgZmllbGQpIFwKK14geyBcCisgICAgaWYgKCEo
ZXZlbnRUeXBlRmlsdGVyKSkgXAorICAgICAgICByZXR1cm47IFwKKyAgICBkb3VibGUgdmFsdWUg
PSBDR0V2ZW50R2V0RG91YmxlVmFsdWVGaWVsZChldmVudCwgZmllbGQpOyBcCisgICAgaWYgKCFp
c25hbih2YWx1ZSkpIHsgXAorICAgICAgICBkb3VibGUgcGxhaW5WYWx1ZSA9IENHRXZlbnRHZXRE
b3VibGVWYWx1ZUZpZWxkKHBsYWluRXZlbnQsIGZpZWxkKTsgXAorICAgICAgICBpZiAoZmFicyh2
YWx1ZSAtIHBsYWluVmFsdWUpID49IEZMVF9FUFNJTE9OKSBcCisgICAgICAgICAgICBkaWN0W0Aj
ZmllbGRdID0gQCh2YWx1ZSk7IFwKKyAgICB9IFwKK30oKTsKKworI2RlZmluZSBTVE9SRV9JTlRF
R0VSX0ZJRUxEX1RPX0VWRU5UKGV2ZW50VHlwZUZpbHRlciwgZmllbGQpIFwKK14geyBcCisgICAg
aWYgKCEoZXZlbnRUeXBlRmlsdGVyKSkgXAorICAgICAgICByZXR1cm47IFwKKyAgICBOU051bWJl
ciAqdmFsdWUgPSBkaWN0W0AjZmllbGRdOyBcCisgICAgaWYgKHZhbHVlKSBcCisgICAgICAgIENH
RXZlbnRTZXRJbnRlZ2VyVmFsdWVGaWVsZChldmVudCwgZmllbGQsIHZhbHVlLnVuc2lnbmVkTG9u
Z0xvbmdWYWx1ZSk7IFwKK30oKTsKKworI2RlZmluZSBTVE9SRV9ET1VCTEVfRklFTERfVE9fRVZF
TlQoZXZlbnRUeXBlRmlsdGVyLCBmaWVsZCkgXAorXiB7IFwKKyAgICBpZiAoIShldmVudFR5cGVG
aWx0ZXIpKSBcCisgICAgICAgIHJldHVybjsgXAorICAgIE5TTnVtYmVyICp2YWx1ZSA9IGRpY3Rb
QCNmaWVsZF07IFwKKyAgICBpZiAodmFsdWUpIFwKKyAgICAgICAgQ0dFdmVudFNldERvdWJsZVZh
bHVlRmllbGQoZXZlbnQsIGZpZWxkLCB2YWx1ZS5kb3VibGVWYWx1ZSk7IFwKK30oKTsKKworQGlt
cGxlbWVudGF0aW9uIEV2ZW50U2VyaWFsaXplcgorCisrIChOU0RpY3Rpb25hcnkgKilkaWN0aW9u
YXJ5Rm9yRXZlbnQ6KENHRXZlbnRSZWYpZXZlbnQgcmVsYXRpdmVUb1RpbWU6KENHRXZlbnRUaW1l
c3RhbXApcmVmZXJlbmNlVGltZXN0YW1wCit7CisgICAgQ0dFdmVudFJlZiBwbGFpbkV2ZW50ID0g
Q0dFdmVudENyZWF0ZShOVUxMKTsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmRpY3QgPSBb
W1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisKKyAgICBG
T1JfRUFDSF9DR0VWRU5UX0lOVEVHRVJfRklFTEQoTE9BRF9JTlRFR0VSX0ZJRUxEX0ZST01fRVZF
TlQpOworICAgIEZPUl9FQUNIX0NHRVZFTlRfRE9VQkxFX0ZJRUxEKExPQURfRE9VQkxFX0ZJRUxE
X0ZST01fRVZFTlQpOworCisgICAgQ0dFdmVudFRpbWVzdGFtcCB0aW1lc3RhbXAgPSBDR0V2ZW50
R2V0VGltZXN0YW1wKGV2ZW50KTsKKyAgICBkaWN0W0AicmVsYXRpdmVUaW1lTVMiXSA9IEAoc3Rk
OjptYXg8ZG91YmxlPihzdGF0aWNfY2FzdDxkb3VibGU+KHRpbWVzdGFtcCAtIHJlZmVyZW5jZVRp
bWVzdGFtcCkgLyBOU0VDX1BFUl9NU0VDLCAwKSk7CisKKyAgICBDR1NFdmVudFR5cGUgZXZlbnRU
eXBlID0gKENHU0V2ZW50VHlwZSlDR0V2ZW50R2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGtD
R1NFdmVudFR5cGVGaWVsZCk7CisgICAgaWYgKGV2ZW50VHlwZSA9PSBrQ0dTRXZlbnRHZXN0dXJl
IHx8IGV2ZW50VHlwZSA9PSBrQ0dTRXZlbnRGbHVpZFRvdWNoR2VzdHVyZSB8fCBldmVudFR5cGUg
PT0ga0NHU0V2ZW50RG9ja0NvbnRyb2wpIHsKKyAgICAgICAgaWYgKENHRXZlbnRHZXRJbnRlZ2Vy
VmFsdWVGaWVsZChldmVudCwga0NHRXZlbnRHZXN0dXJlSXNQcmVmbGlnaHQpKSB7CisgICAgICAg
ICAgICBkaWN0W0Aia0NHRXZlbnRHZXN0dXJlSXNQcmVmbGlnaHQiXSA9IEBZRVM7CisgICAgICAg
ICAgICBkaWN0W0Aia0NHRXZlbnRHZXN0dXJlUHJlZmxpZ2h0UHJvZ3Jlc3MiXSA9IEAoQ0dFdmVu
dEdldERvdWJsZVZhbHVlRmllbGQoZXZlbnQsIGtDR0V2ZW50R2VzdHVyZVByZWZsaWdodFByb2dy
ZXNzKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBkaWN0W0Aid2luZG93TG9jYXRpb24iXSA9
IE5TU3RyaW5nRnJvbVBvaW50KE5TUG9pbnRGcm9tQ0dQb2ludChDR0V2ZW50R2V0V2luZG93TG9j
YXRpb24oZXZlbnQpKSk7CisKKyAgICBDR0V2ZW50RmxhZ3MgZmxhZ3MgPSBDR0V2ZW50R2V0Rmxh
Z3MoZXZlbnQpICYgfk5YX05PTkNPQUxTRVNDRURNQVNLOworICAgIGlmIChmbGFncyAhPSAoQ0dF
dmVudEdldEZsYWdzKHBsYWluRXZlbnQpICYgfk5YX05PTkNPQUxTRVNDRURNQVNLKSkKKyAgICAg
ICAgZGljdFtAImZsYWdzIl0gPSBAKGZsYWdzKTsKKworICAgIENGUmVsZWFzZShwbGFpbkV2ZW50
KTsKKworICAgIHJldHVybiBkaWN0OworfQorCisrIChDR0V2ZW50UmVmKWNyZWF0ZUV2ZW50Rm9y
RGljdGlvbmFyeTooTlNEaWN0aW9uYXJ5ICopZGljdCBpbldpbmRvdzooTlNXaW5kb3cgKil3aW5k
b3cgcmVsYXRpdmVUb1RpbWU6KENHRXZlbnRUaW1lc3RhbXApcmVmZXJlbmNlVGltZXN0YW1wCit7
CisgICAgQ0dFdmVudFJlZiBldmVudCA9IENHRXZlbnRDcmVhdGUoTlVMTCk7CisKKyAgICBGT1Jf
RUFDSF9DR0VWRU5UX0lOVEVHRVJfRklFTEQoU1RPUkVfSU5URUdFUl9GSUVMRF9UT19FVkVOVCk7
CisgICAgRk9SX0VBQ0hfQ0dFVkVOVF9ET1VCTEVfRklFTEQoU1RPUkVfRE9VQkxFX0ZJRUxEX1RP
X0VWRU5UKTsKKworICAgIGlmIChkaWN0W0AicmVsYXRpdmVUaW1lTVMiXSkKKyAgICAgICAgQ0dF
dmVudFNldFRpbWVzdGFtcChldmVudCwgcmVmZXJlbmNlVGltZXN0YW1wICsgc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KChbZGljdFtAInJlbGF0aXZlVGltZU1TIl0gZG91YmxlVmFsdWVdICogTlNFQ19Q
RVJfTVNFQykpKTsKKworICAgIGlmIChbZGljdFtAImtDR0V2ZW50R2VzdHVyZUlzUHJlZmxpZ2h0
Il0gYm9vbFZhbHVlXSkgeworICAgICAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoZXZl
bnQsIGtDR0V2ZW50R2VzdHVyZUlzUHJlZmxpZ2h0LCAxKTsKKyAgICAgICAgQ0dFdmVudFNldERv
dWJsZVZhbHVlRmllbGQoZXZlbnQsIGtDR0V2ZW50R2VzdHVyZVByZWZsaWdodFByb2dyZXNzLCBb
ZGljdFtAImtDR0V2ZW50R2VzdHVyZVByZWZsaWdodFByb2dyZXNzIl0gZG91YmxlVmFsdWVdKTsK
KyAgICB9CisKKyAgICBpZiAoZGljdFtAIndpbmRvd0xvY2F0aW9uIl0pIHsKKyAgICAgICAgQ0dF
dmVudFNldFdpbmRvd0xvY2F0aW9uKGV2ZW50LCBOU1BvaW50VG9DR1BvaW50KE5TUG9pbnRGcm9t
U3RyaW5nKGRpY3RbQCJ3aW5kb3dMb2NhdGlvbiJdKSkpOworCisgICAgICAgIE5TUG9pbnQgc2Ny
ZWVuUG9pbnQgPSBbd2luZG93IGNvbnZlcnRCYXNlVG9TY3JlZW46TlNQb2ludFRvQ0dQb2ludChO
U1BvaW50RnJvbVN0cmluZyhkaWN0W0Aid2luZG93TG9jYXRpb24iXSkpXTsKKyAgICAgICAgQ0dF
dmVudFNldExvY2F0aW9uKGV2ZW50LCBOU01ha2VQb2ludChzY3JlZW5Qb2ludC54LCBOU1NjcmVl
bi5zY3JlZW5zLmZpcnN0T2JqZWN0LmZyYW1lLnNpemUuaGVpZ2h0IC0gc2NyZWVuUG9pbnQueSkp
OworICAgIH0KKworICAgIGlmIChkaWN0W0AiZmxhZ3MiXSkKKyAgICAgICAgQ0dFdmVudFNldEZs
YWdzKGV2ZW50LCBbZGljdFtAImZsYWdzIl0gdW5zaWduZWRMb25nTG9uZ1ZhbHVlXSk7CisKKyAg
ICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGtDR1NFdmVudFdpbmRvd0lERmll
bGQsIHdpbmRvdy53aW5kb3dOdW1iZXIpOworCisgICAgcmV0dXJuIGV2ZW50OworfQorCisrICh2
b2lkKXBsYXlFdmVudFN0cmVhbTooTlNBcnJheTxOU0RpY3Rpb25hcnkgKj4gKilldmVudERpY3Rz
IGluV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSgp
KWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiByZW1h
aW5pbmdFdmVudERpY3RzID0gYWRvcHROUyhbZXZlbnREaWN0cyBtdXRhYmxlQ29weV0pOworCisg
ICAgdWludDY0X3Qgc3RhcnRUaW1lID0gbWFjaF9hYnNvbHV0ZV90aW1lKCk7CisKKyAgICBjb25z
dCBmbG9hdCBldmVudERpc3BhdGNoVGltZXJSYXRlID0gMS4gLyAxMjAuOworCisgICAgW05TVGlt
ZXIgc2NoZWR1bGVkVGltZXJXaXRoVGltZUludGVydmFsOmV2ZW50RGlzcGF0Y2hUaW1lclJhdGUg
cmVwZWF0czpZRVMgYmxvY2s6XihOU1RpbWVyICp0aW1lcikgeworICAgICAgICBSZXRhaW5QdHI8
TlNNdXRhYmxlQXJyYXkgKj4gcmVtb3ZlTGlzdCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBh
bGxvY10gaW5pdF0pOworICAgICAgICBOU0V2ZW50ICpuc0V2ZW50ID0gbmlsOworICAgICAgICBm
b3IgKGlkIGV2ZW50RGljdCBpbiByZW1haW5pbmdFdmVudERpY3RzLmdldCgpKSB7CisgICAgICAg
ICAgICBDR0V2ZW50UmVmIGV2ZW50ID0gW0V2ZW50U2VyaWFsaXplciBjcmVhdGVFdmVudEZvckRp
Y3Rpb25hcnk6ZXZlbnREaWN0IGluV2luZG93OndpbmRvdyByZWxhdGl2ZVRvVGltZTpzdGFydFRp
bWVdOworICAgICAgICAgICAgaWYgKENHRXZlbnRHZXRUaW1lc3RhbXAoZXZlbnQpIDwgbWFjaF9h
YnNvbHV0ZV90aW1lKCkpIHsKKyAgICAgICAgICAgICAgICBuc0V2ZW50ID0gW05TRXZlbnQgZXZl
bnRXaXRoQ0dFdmVudDpldmVudF07CisgICAgICAgICAgICAgICAgW05TQXBwIHBvc3RFdmVudDpu
c0V2ZW50IGF0U3RhcnQ6Tk9dOworICAgICAgICAgICAgICAgIFtyZW1vdmVMaXN0IGFkZE9iamVj
dDpldmVudERpY3RdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ0ZSZWxlYXNlKGV2ZW50
KTsKKyAgICAgICAgfQorICAgICAgICBbcmVtYWluaW5nRXZlbnREaWN0cyByZW1vdmVPYmplY3Rz
SW5BcnJheTpyZW1vdmVMaXN0LmdldCgpXTsKKworICAgICAgICBpZiAoW3JlbWFpbmluZ0V2ZW50
RGljdHMgY291bnRdKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFt0aW1lciBpbnZh
bGlkYXRlXTsKKworICAgICAgICAvLyBCbG9jayB1bnRpbCB3ZSBzZW5kIHRoZSBsYXN0IGV2ZW50
IHdlIHBvc3RlZC4KKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIw
MAorICAgICAgICBOU0V2ZW50VHlwZSBhcHBsaWNhdGlvbkRlZmluZWRFdmVudFR5cGUgPSBOU0V2
ZW50VHlwZUFwcGxpY2F0aW9uRGVmaW5lZDsKKyNlbHNlCisgICAgICAgIE5TRXZlbnRUeXBlIGFw
cGxpY2F0aW9uRGVmaW5lZEV2ZW50VHlwZSA9IE5TQXBwbGljYXRpb25EZWZpbmVkOworI2VuZGlm
CisgICAgICAgIFtOU0FwcCBwb3N0RXZlbnQ6W05TRXZlbnQgb3RoZXJFdmVudFdpdGhUeXBlOmFw
cGxpY2F0aW9uRGVmaW5lZEV2ZW50VHlwZSBsb2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZs
YWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOjAgY29udGV4dDowIHN1YnR5cGU6MCBkYXRh
MTo0MiBkYXRhMjowXSBhdFN0YXJ0Ok5PXTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAg
ICAgICAgIE5TRXZlbnQgKm5leHRFdmVudCA9IFtOU0FwcCBuZXh0RXZlbnRNYXRjaGluZ01hc2s6
TlNBbnlFdmVudE1hc2sgdW50aWxEYXRlOltOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5j
ZU5vdzpldmVudERpc3BhdGNoVGltZXJSYXRlXSBpbk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUg
ZGVxdWV1ZTpZRVNdOworICAgICAgICAgICAgaWYgKG5leHRFdmVudC50eXBlID09IGFwcGxpY2F0
aW9uRGVmaW5lZEV2ZW50VHlwZSAmJiBuZXh0RXZlbnQuZGF0YTEgPT0gNDIpCisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAobmV4dEV2ZW50KQorICAgICAgICAgICAgICAg
IFtOU0FwcCBzZW5kRXZlbnQ6bmV4dEV2ZW50XTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChj
b21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAg
fV07Cit9CisKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggYi9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvU2hhcmVkRXZlbnRTdHJl
YW1zTWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWYzMDI4ODM1OTIxMzYyYmRmNmNkMWY1YjFlNDc4YTk1MGZl
YjM3MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJp
YWxpemF0aW9uL21hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMuaApAQCAtMCwwICsxLDMzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5o
PgorCitOU1N0cmluZyAqYmVnaW5Td2lwZUJhY2tFdmVudFN0cmVhbSgpOworTlNTdHJpbmcgKmNv
bXBsZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0oKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvU2hhcmVkRXZlbnRTdHJl
YW1zTWFjLm1tIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFj
L1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODI0MDU5Y2FhZDAxM2YwODkx
ZjIzNTA4ODUwYTA5MzFkNDljZDg4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbQpA
QCAtMCwwICsxLDM2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9y
dCAiU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNkZWZp
bmUgUVVPVEUoLi4uKSBAKCNfX1ZBX0FSR1NfXykKKworTlNTdHJpbmcgKmJlZ2luU3dpcGVCYWNr
RXZlbnRTdHJlYW0oKQoreworICAgIHJldHVybiBRVU9URShbCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAwLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2Vz
dHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIg
OiA2LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAxMjgsCisgICAgICAgICAgICAid2luZG93TG9jYXRp
b24iIDogIns0MDAsIDMwMH0iCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJy
ZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUi
IDogNjEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAg
ICAgImtDR0V2ZW50R2VzdHVyZVN0YXJ0RW5kU2VyaWVzVHlwZSIgOiA2LAorICAgICAgICAgICAg
IndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJl
bGF0aXZlVGltZU1TIiA6IDgsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAs
IDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDEsCisgICAgICAg
ICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJr
Q0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Ny
b2xsWCIgOiAyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJyZWxhdGl2ZVRp
bWVNUyIgOiA4LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMSwKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxLAorICAgICAgICAgICAg
ImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZl
VGltZU1TIiA6IDE3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9
IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDEsCisgICAgICAgICAg
ICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9s
bEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIg
OiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDEyCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0
YUF4aXMxIiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTcsCisgICAgICAg
ICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogNCwKKyAgICAgICAgICAgICJ3aW5kb3dM
b2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxk
IiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1
cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMjUsCisgICAg
ICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZVNjcm9sbFkiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQ
aGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6
IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAg
ImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMjMKKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDEsCisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAxLAorICAgICAgICAgICAg
InJlbGF0aXZlVGltZU1TIiA6IDI1LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJ
c0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xs
UGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4
aXMyIiA6IDExLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwK
KyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAg
ICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAzMywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIg
OiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAy
LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAi
a0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZl
bnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIg
OiAyOAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudERlbHRhQXhpczIiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9p
bnREZWx0YUF4aXMxIiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMzMsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMTYsCisgICAgICAgICAgICAi
d2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5
cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDQx
LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAg
ICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDEsCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFn
Qml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDM1CisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiAyLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogMSwKKyAgICAg
ICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA0MSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50
RGVsdGFBeGlzMiIgOiAyNCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwg
MzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisg
ICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNDksCisgICAgICAgICAgICAid2luZG93TG9j
YXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9s
bFkiIDogLTEsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAg
ICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAg
ImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVT
Y3JvbGxYIiA6IDQ1CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50RGVsdGFBeGlzMiIgOiA0LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQ
b2ludERlbHRhQXhpczEiIDogLTEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNDks
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMzcsCisgICAgICAgICAg
ICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVu
dFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NH
RXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6
IDU3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IC0zLAorICAgICAgICAgICAgImtDR0V2
ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJl
RmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA1NworICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogNSwKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IC0xLAorICAgICAg
ICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDU3LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50
U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnRE
ZWx0YUF4aXMyIiA6IDU0LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAz
MDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAg
ICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA2NSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xs
WSIgOiAtNSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAg
ICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAi
a0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNj
cm9sbFgiIDogODEKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnREZWx0YUF4aXMyIiA6IDksCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBv
aW50RGVsdGFBeGlzMSIgOiAtMiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA2NSwK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAg
ICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiA5MiwKKyAgICAgICAgICAg
ICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50
VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgXSk7Cit9CisKK05TU3RyaW5nICpjb21w
bGV0ZVN3aXBlQmFja0V2ZW50U3RyZWFtKCkKK3sKKyAgICByZXR1cm4gUVVPVEUoWworICAgICAg
ICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAg
ICAgInJlbGF0aXZlVGltZU1TIiA6IDczLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6
ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IC0z
LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAi
a0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZl
bnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIg
OiA3NQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERl
bHRhQXhpczIiIDogMTEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVs
dGFBeGlzMSIgOiAtMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA3MywKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NH
U2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMDYsCisgICAgICAgICAgICAid2lu
ZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVG
aWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDgxLAor
ICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IC0zLAorICAgICAgICAgICAgImtDR0V2ZW50R2Vz
dHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0Jp
dHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA4NQorICAgICAgICB9LAorICAgICAgICB7
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisgICAg
ICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMTMsCisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAtMSwKKyAgICAgICAgICAg
ICJyZWxhdGl2ZVRpbWVNUyIgOiA4MSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50
SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9s
bFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFB
eGlzMiIgOiAxMjcsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0i
LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAg
ICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDg5LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9u
IiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6
IC0xLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAg
ICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dT
RXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xs
WCIgOiA5MQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dERlbHRhQXhpczIiIDogMTQsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50
RGVsdGFBeGlzMSIgOiAtMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4OSwKKyAg
ICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAg
ICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMzksCisgICAgICAgICAgICAi
d2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5
cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDk3
LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAg
ICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFn
Qml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDEzNgorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMjAsCisgICAgICAg
ICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAxLAorICAgICAgICAg
ICAgInJlbGF0aXZlVGltZU1TIiA6IDk3LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Ny
b2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0
YUF4aXMyIiA6IDIwNCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAw
fSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAg
ICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTA1LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0
aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZ
IiA6IDUsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAg
ICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtD
R1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3Jv
bGxYIiA6IDkyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxX
aGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2
ZW50RGVsdGFBeGlzMiIgOiAxNCwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9p
bnREZWx0YUF4aXMxIiA6IDIsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTA1LAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAg
ICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDEzNiwKKyAgICAgICAgICAg
ICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50
VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dF
dmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDog
MTEzLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDE0LAorICAgICAgICAgICAgImtDR0V2
ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJl
RmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAxMzMKKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAy
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMTky
LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMiwKKyAgICAgICAgICAgICJr
Q0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMSIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVN
UyIgOiAxMTMsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6
IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMTksCisg
ICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogNworICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTIxLAorICAgICAgICAgICAg
ImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIg
OiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiA0LAorICAgICAgICAg
ICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAgICAgICB9LAorICAgICAgICB7
CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTIxLAorICAgICAgICAgICAgImtDR0V2
ZW50R2VzdHVyZUhJRFR5cGUiIDogNjIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxk
IiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVN0YXJ0RW5kU2VyaWVzVHlwZSIg
OiA2LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENv
dW50IiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTM5LAorICAgICAgICAg
ICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZl
bnRUeXBlRmllbGQiIDogMjIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9s
bFBoYXNlIiA6IDQsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91
cyIgOiAxCisgICAgICAgIH0KKyAgICBdKTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRy
b2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGlu
Z3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAppbmRleCAxM2RmNmU4Zjg2YjQzNDRjZjBhMTBjMDRi
MjQ3OGI1NzQ3OTNlNDdjLi5iZjQ2MDRlMmEzMGJjOTc2YWI5ODEyM2JhMGYyODA5MjliZjMwZjAz
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5k
aW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKQEAgLTQyLDYg
KzQyLDExIEBAIGludGVyZmFjZSBVSVNjcmlwdENvbnRyb2xsZXIgewogICAgIHZvaWQga2V5RG93
blVzaW5nSGFyZHdhcmVLZXlib2FyZChET01TdHJpbmcgY2hhcmFjdGVyLCBvYmplY3QgY2FsbGJh
Y2spOwogICAgIHZvaWQga2V5VXBVc2luZ0hhcmR3YXJlS2V5Ym9hcmQoRE9NU3RyaW5nIGNoYXJh
Y3Rlciwgb2JqZWN0IGNhbGxiYWNrKTsKIAorICAgIHZvaWQgYmVnaW5CYWNrU3dpcGUob2JqZWN0
IGNhbGxiYWNrKTsKKyAgICB2b2lkIGNvbXBsZXRlQmFja1N3aXBlKG9iamVjdCBjYWxsYmFjayk7
CisKKyAgICB2b2lkIHBsYXlCYWNrRXZlbnRTdHJlYW0oRE9NU3RyaW5nIGV2ZW50U3RyZWFtLCBv
YmplY3QgY2FsbGJhY2spOworCiAgICAgLy8gRXF1aXZhbGVudCBvZiBwcmVzc2luZyB0aGUgRG9u
ZSBidXR0b24gaW4gdGhlIGZvcm0gYWNjZXNzb3J5IGJhci4KICAgICB2b2lkIGRpc21pc3NGb3Jt
QWNjZXNzb3J5VmlldygpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAxMDA1Y2Ji
MWZjYTg4MjlkMGQzZWRmMWRkZDdmOWY3ODg5NmY5NjQzLi4yNDEzYmVjMDNjMmE5NjNlZWVkZjAz
NzQzMTFiZTM3MDA5NmFjNDZlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RSdW5u
ZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTEzNSw2
ICsxMzUsMTEgQEAgSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZEhpZGVLZXlib2Fy
ZENhbGxiYWNrKCkgY29uc3QKICAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChD
YWxsYmFja1R5cGVEaWRIaWRlS2V5Ym9hcmQpOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxl
cjo6cGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1JlZiBzdHJlYW0sIEpTVmFsdWVSZWYgY2Fs
bGJhY2spCit7CisgICAgcGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKHN0cmVhbSwgY2FsbGJh
Y2spOworfQorCiAjaWYgIVBMQVRGT1JNKElPUykKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjp6
b29tVG9TY2FsZShkb3VibGUsIEpTVmFsdWVSZWYpCiB7CkBAIC0yNDMsNiArMjQ4LDIzIEBAIHZv
aWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZEhpZGVLZXlib2FyZENhbGxiYWNr
KCkKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybUNsZWFyQWxsQ2FsbGJhY2tzKCkK
IHsKIH0KKworI2VuZGlmCisKKyNpZiAhUExBVEZPUk0oTUFDKQorCit2b2lkIFVJU2NyaXB0Q29u
dHJvbGxlcjo6YmVnaW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKK30KKwordm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNvbXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJh
Y2spCit7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVBsYXlCYWNrRXZl
bnRTdHJlYW0oSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYpCit7Cit9CisKICNlbmRpZgogCiB2b2lk
IFVJU2NyaXB0Q29udHJvbGxlcjo6dWlTY3JpcHRDb21wbGV0ZShKU1N0cmluZ1JlZiByZXN1bHQp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNj
cmlwdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L1VJU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDg0NjNhYzJjMmJiN2NmYzA1ZjhkNGRkNTUyZGM4
MmI5MzQ4NDI5ZWIuLjEyOGNlMWUzOWJmNjgwZjg0OTc2MTljYTUyMzkwNTEyMWJkYzkzMGYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0
Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L1VJU2NyaXB0Q29udHJvbGxlci5oCkBAIC02OSw2ICs2OSw5IEBAIHB1YmxpYzoKICAgICAKICAg
ICB2b2lkIHNjcm9sbFRvT2Zmc2V0KGxvbmcgeCwgbG9uZyB5KTsKIAorICAgIHZvaWQgYmVnaW5C
YWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjayk7CisgICAgdm9pZCBjb21wbGV0ZUJhY2tTd2lw
ZShKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKKwogICAgIHZvaWQgc2V0RGlkU3RhcnRGb3JtQ29udHJv
bEludGVyYWN0aW9uQ2FsbGJhY2soSlNWYWx1ZVJlZik7CiAgICAgSlNWYWx1ZVJlZiBkaWRTdGFy
dEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjaygpIGNvbnN0OwogCkBAIC05MCw2ICs5Myw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERpZEVuZFNjcm9sbGluZ0NhbGxiYWNrKEpTVmFsdWVS
ZWYpOwogICAgIEpTVmFsdWVSZWYgZGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2soKSBjb25zdDsKIAor
ICAgIHZvaWQgcGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1JlZiBzdHJlYW0sIEpTVmFsdWVS
ZWYgY2FsbGJhY2spOworCiAgICAgZG91YmxlIHpvb21TY2FsZSgpIGNvbnN0OwogICAgIGRvdWJs
ZSBtaW5pbXVtWm9vbVNjYWxlKCkgY29uc3Q7CiAgICAgZG91YmxlIG1heGltdW1ab29tU2NhbGUo
KSBjb25zdDsKQEAgLTExMSw2ICsxMTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1T
ZXREaWRIaWRlS2V5Ym9hcmRDYWxsYmFjaygpOwogICAgIHZvaWQgcGxhdGZvcm1TZXREaWRFbmRT
Y3JvbGxpbmdDYWxsYmFjaygpOwogICAgIHZvaWQgcGxhdGZvcm1DbGVhckFsbENhbGxiYWNrcygp
OworICAgIHZvaWQgcGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpTU3RyaW5nUmVmLCBKU1Zh
bHVlUmVmKTsKIAogICAgIEpTQ2xhc3NSZWYgd3JhcHBlckNsYXNzKCkgZmluYWw7CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0NvcmVHcmFwaGljc1NQSS5oIGIvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9zcGkvQ29yZUdyYXBoaWNzU1BJLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc1
YmUwNzQ4OTk0ZWYyZDg1NThlMDU2NjY5ODc3ZjUxNThkZmIwZAotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0NvcmVHcmFwaGljc1NQSS5oCkBAIC0wLDAgKzEs
OTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9ydCA8d3RmL1BsYXRmb3Jt
Lmg+CisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxDb3JlR3JhcGhp
Y3MvQ0dFdmVudFByaXZhdGUuaD4KKyNpbXBvcnQgPENvcmVHcmFwaGljcy9DR1NFdmVudC5oPgor
CisjZWxzZQorCitXVEZfRVhURVJOX0NfQkVHSU4KKworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVs
ZCBrQ0dTRXZlbnRXaW5kb3dJREZpZWxkID0gKENHRXZlbnRGaWVsZCk1MTsKK3N0YXRpYyBjb25z
dCBDR0V2ZW50RmllbGQga0NHU0V2ZW50VHlwZUZpZWxkID0gKENHRXZlbnRGaWVsZCk1NTsKK3N0
YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlSElEVHlwZSA9IChDR0V2ZW50
RmllbGQpMTEwOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVJc1By
ZWZsaWdodCA9IChDR0V2ZW50RmllbGQpMTExOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBr
Q0dFdmVudEdlc3R1cmVab29tVmFsdWUgPSAoQ0dFdmVudEZpZWxkKTExMzsKK3N0YXRpYyBjb25z
dCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlUm90YXRpb25WYWx1ZSA9IChDR0V2ZW50Rmll
bGQpMTE0Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZh
bHVlID0gKENHRXZlbnRGaWVsZCkxMTU7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2
ZW50R2VzdHVyZVByZWZsaWdodFByb2dyZXNzID0gKENHRXZlbnRGaWVsZCkxMTY7CitzdGF0aWMg
Y29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN0YXJ0RW5kU2VyaWVzVHlwZSA9IChD
R0V2ZW50RmllbGQpMTE3Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1
cmVTY3JvbGxYID0gKENHRXZlbnRGaWVsZCkxMTg7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxk
IGtDR0V2ZW50R2VzdHVyZVNjcm9sbFkgPSAoQ0dFdmVudEZpZWxkKTExOTsKK3N0YXRpYyBjb25z
dCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU2Nyb2xsWiA9IChDR0V2ZW50RmllbGQpMTIw
Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZU1vdGlvbiA9
IChDR0V2ZW50RmllbGQpMTIzOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdl
c3R1cmVTd2lwZVByb2dyZXNzID0gKENHRXZlbnRGaWVsZCkxMjQ7CitzdGF0aWMgY29uc3QgQ0dF
dmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlUG9zaXRpb25YID0gKENHRXZlbnRGaWVsZCkx
MjU7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlUG9zaXRp
b25ZID0gKENHRXZlbnRGaWVsZCkxMjY7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2
ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlYID0gKENHRXZlbnRGaWVsZCkxMjk7CitzdGF0aWMgY29u
c3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlZID0gKENHRXZlbnRG
aWVsZCkxMzA7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBl
VmVsb2NpdHlaID0gKENHRXZlbnRGaWVsZCkxMzE7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxk
IGtDR0V2ZW50R2VzdHVyZVBoYXNlID0gKENHRXZlbnRGaWVsZCkxMzI7CitzdGF0aWMgY29uc3Qg
Q0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZU1hc2sgPSAoQ0dFdmVudEZpZWxkKTEzMzsKK3N0
YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVNYXNrID0gKENHRXZl
bnRGaWVsZCkxMzQ7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50U2Nyb2xsR2Vz
dHVyZUZsYWdCaXRzID0gKENHRXZlbnRGaWVsZCkxMzU7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZp
ZWxkIGtDR0V2ZW50U3dpcGVHZXN0dXJlRmxhZ0JpdHMgPSAoQ0dFdmVudEZpZWxkKTEzNjsKK3N0
YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlRmxhdm9yID0gKENHRXZlbnRG
aWVsZCkxMzg7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVpvb21E
ZWx0YVggPSAoQ0dFdmVudEZpZWxkKTEzOTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NH
RXZlbnRHZXN0dXJlWm9vbURlbHRhWSA9IChDR0V2ZW50RmllbGQpMTQwOworc3RhdGljIGNvbnN0
IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVQcm9ncmVzcyA9IChDR0V2ZW50RmllbGQpMTQy
Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTdGFnZSA9IChDR0V2
ZW50RmllbGQpMTQzOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVC
ZWhhdmlvciA9IChDR0V2ZW50RmllbGQpMTQ0Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBr
Q0dFdmVudFRyYW5zaXRpb25Qcm9ncmVzcyA9IChDR0V2ZW50RmllbGQpMTQ3Oworc3RhdGljIGNv
bnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudFN0YWdlUHJlc3N1cmUgPSAoQ0dFdmVudEZpZWxkKTE0
ODsKKworZW51bSB7CisgICAga0NHU0V2ZW50U2Nyb2xsV2hlZWwgPSAyMiwKKyAgICBrQ0dTRXZl
bnRab29tID0gMjgsCisgICAga0NHU0V2ZW50R2VzdHVyZSA9IDI5LAorICAgIGtDR1NFdmVudERv
Y2tDb250cm9sID0gMzAsCisgICAga0NHU0V2ZW50Rmx1aWRUb3VjaEdlc3R1cmUgPSAzMSwKK307
Cit0eXBlZGVmIHVpbnQzMl90IENHU0V2ZW50VHlwZTsKKworZW51bSB7CisgICAga0NHSElERXZl
bnRUeXBlR2VzdHVyZVN0YXJ0ZWQgPSA2MSwKKyAgICBrQ0dISURFdmVudFR5cGVHZXN0dXJlRW5k
ZWQgPSA2MiwKK307Cit0eXBlZGVmIHVpbnQzMl90IENHU0hJREV2ZW50VHlwZTsKKworQ0dQb2lu
dCBDR0V2ZW50R2V0V2luZG93TG9jYXRpb24oQ0dFdmVudFJlZik7Cit2b2lkIENHRXZlbnRTZXRX
aW5kb3dMb2NhdGlvbihDR0V2ZW50UmVmLCBDR1BvaW50KTsKKworV1RGX0VYVEVSTl9DX0VORAor
CisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvc3BpL0lPS2l0U1BJLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL3Nw
aS9JT0tpdFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyMDk3NjBjZTcxMTkxZjQ1YmMxZDJkNDljMzIzNGJm
NmFjN2M0OWYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL3NwaS9J
T0tpdFNQSS5oCkBAIC0wLDAgKzEsMTc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
KworI2ltcG9ydCA8SU9LaXQvaGlkL0lPSElERXZlbnQuaD4KKyNpbXBvcnQgPElPS2l0L2hpZC9J
T0hJREV2ZW50U3lzdGVtQ2xpZW50Lmg+CisjaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURVc2FnZVRh
Ymxlcy5oPgorCisjZWxzZQorCitXVEZfRVhURVJOX0NfQkVHSU4KKworI2lmZGVmIF9fTFA2NF9f
Cit0eXBlZGVmIGRvdWJsZSBJT0hJREZsb2F0OworI2Vsc2UKK3R5cGVkZWYgZmxvYXQgSU9ISURG
bG9hdDsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBrSU9ISURFdmVudE9wdGlvbk5vbmUgPSAwLAor
fTsKKwordHlwZWRlZiBVSW50MzIgSU9PcHRpb25CaXRzOwordHlwZWRlZiB1aW50MzJfdCBJT0hJ
REV2ZW50T3B0aW9uQml0czsKK3R5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudEZpZWxkOworCit0
eXBlZGVmIHN0cnVjdCBfX0lPSElERXZlbnRTeXN0ZW1DbGllbnQgKiBJT0hJREV2ZW50U3lzdGVt
Q2xpZW50UmVmOwordHlwZWRlZiBzdHJ1Y3QgX19JT0hJREV2ZW50ICogSU9ISURFdmVudFJlZjsK
KworI2RlZmluZSBJT0hJREV2ZW50RmllbGRCYXNlKHR5cGUpICh0eXBlIDw8IDE2KQorCitlbnVt
IHsKKyAgICBrSElEUGFnZV9LZXlib2FyZE9yS2V5cGFkICAgICAgID0gMHgwNywKKyAgICBrSElE
UGFnZV9WZW5kb3JEZWZpbmVkU3RhcnQgICAgID0gMHhGRjAwCit9OworCitlbnVtIHsKKyAgICBr
SU9ISUREaWdpdGl6ZXJFdmVudFJhbmdlICAgICAgID0gMTw8MCwKKyAgICBrSU9ISUREaWdpdGl6
ZXJFdmVudFRvdWNoICAgICAgID0gMTw8MSwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFBvc2l0
aW9uICAgID0gMTw8MiwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudElkZW50aXR5ICAgID0gMTw8
NSwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudEF0dHJpYnV0ZSAgID0gMTw8NiwKKyAgICBrSU9I
SUREaWdpdGl6ZXJFdmVudENhbmNlbCAgICAgID0gMTw8NywKKyAgICBrSU9ISUREaWdpdGl6ZXJF
dmVudFN0YXJ0ICAgICAgID0gMTw8OCwKK307Cit0eXBlZGVmIHVpbnQzMl90IElPSElERGlnaXRp
emVyRXZlbnRNYXNrOworCitlbnVtIHsKKyAgICBrSU9ISURFdmVudFR5cGVOVUxMLAorICAgIGtJ
T0hJREV2ZW50VHlwZVZlbmRvckRlZmluZWQsCisgICAga0lPSElERXZlbnRUeXBlS2V5Ym9hcmQg
PSAzLAorICAgIGtJT0hJREV2ZW50VHlwZVJvdGF0aW9uID0gNSwKKyAgICBrSU9ISURFdmVudFR5
cGVTY3JvbGwgPSA2LAorICAgIGtJT0hJREV2ZW50VHlwZVpvb20gPSA4LAorICAgIGtJT0hJREV2
ZW50VHlwZURpZ2l0aXplciA9IDExLAorICAgIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lw
ZSA9IDE2LAorICAgIGtJT0hJREV2ZW50VHlwZUZvcmNlID0gMzIsCisKK307Cit0eXBlZGVmIHVp
bnQzMl90IElPSElERXZlbnRUeXBlOworCitlbnVtIHsKKyAgICBrSU9ISURFdmVudEZpZWxkVmVu
ZG9yRGVmaW5lZFVzYWdlUGFnZSA9IElPSElERXZlbnRGaWVsZEJhc2Uoa0lPSElERXZlbnRUeXBl
VmVuZG9yRGVmaW5lZCksCisgICAga0lPSElERXZlbnRGaWVsZFZlbmRvckRlZmluZWRSZXNlcnZl
ZCwKKyAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFJlc2VydmVkMSwKKyAgICBrSU9I
SURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZERhdGFMZW5ndGgsCisgICAga0lPSElERXZlbnRGaWVs
ZFZlbmRvckRlZmluZWREYXRhCit9OworCitlbnVtIHsKKyAgICBrSU9ISURFdmVudEZpZWxkRGln
aXRpemVyWCA9IElPSElERXZlbnRGaWVsZEJhc2Uoa0lPSElERXZlbnRUeXBlRGlnaXRpemVyKSwK
KyAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyWSwKKyAgICBrSU9ISURFdmVudEZpZWxkRGln
aXRpemVyTWFqb3JSYWRpdXMgPSBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyWCArIDIwLAorICAg
IGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJNaW5vclJhZGl1cywKKyAgICBrSU9ISURFdmVudEZp
ZWxkRGlnaXRpemVySXNEaXNwbGF5SW50ZWdyYXRlZCA9IGtJT0hJREV2ZW50RmllbGREaWdpdGl6
ZXJNYWpvclJhZGl1cyArIDUsCit9OworCitlbnVtIHsKKyAgICBrSU9ISUREaWdpdGl6ZXJUcmFu
c2R1Y2VyVHlwZUhhbmQgPSAzCit9OwordHlwZWRlZiB1aW50MzJfdCBJT0hJRERpZ2l0aXplclRy
YW5zZHVjZXJUeXBlOworCitJT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVEaWdpdGl6ZXJF
dmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIElPSElERGlnaXRpemVyVHJhbnNkdWNlclR5
cGUsIHVpbnQzMl90LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIHVpbnQzMl90
LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZs
b2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsKKworSU9ISURFdmVudFJl
ZiBJT0hJREV2ZW50Q3JlYXRlRGlnaXRpemVyRmluZ2VyRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVp
bnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIElPSElERGlnaXRpemVyRXZlbnRNYXNrLCBJT0hJ
REZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBi
b29sZWFuX3QsIGJvb2xlYW5fdCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOworCitJT0hJREV2ZW50
UmVmIElPSElERXZlbnRDcmVhdGVGb3JjZUV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwg
dWludDMyX3QsIElPSElERmxvYXQsIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREV2ZW50T3B0
aW9uQml0cyk7CisKK0lPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZUtleWJvYXJkRXZlbnQo
Q0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIGJvb2xlYW5fdCwg
SU9PcHRpb25CaXRzKTsKKworSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlVmVuZG9yRGVm
aW5lZEV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1
aW50MzJfdCwgdWludDhfdCosIENGSW5kZXgsIElPSElERXZlbnRPcHRpb25CaXRzKTsKKworSU9I
SURFdmVudFR5cGUgSU9ISURFdmVudEdldFR5cGUoSU9ISURFdmVudFJlZik7CisKK3ZvaWQgSU9I
SURFdmVudFNldEZsb2F0VmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxkLCBJT0hJ
REZsb2F0KTsKKworQ0ZJbmRleCBJT0hJREV2ZW50R2V0SW50ZWdlclZhbHVlKElPSElERXZlbnRS
ZWYsIElPSElERXZlbnRGaWVsZCk7Cit2b2lkIElPSElERXZlbnRTZXRJbnRlZ2VyVmFsdWUoSU9I
SURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxkLCBDRkluZGV4KTsKKwordm9pZCBJT0hJREV2ZW50
QXBwZW5kRXZlbnQoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudFJlZiwgSU9PcHRpb25CaXRzKTsK
KworSU9ISURFdmVudFN5c3RlbUNsaWVudFJlZiBJT0hJREV2ZW50U3lzdGVtQ2xpZW50Q3JlYXRl
KENGQWxsb2NhdG9yUmVmKTsKKworI2RlZmluZSBrR1NFdmVudFBhdGhJbmZvSW5SYW5nZSAoMSA8
PCAwKQorI2RlZmluZSBrR1NFdmVudFBhdGhJbmZvSW5Ub3VjaCAoMSA8PCAxKQorCitlbnVtIHsK
KyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRBID0gMHgwNCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQx
ID0gMHgxRSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQyID0gMHgxRiwKKyAgICBrSElEVXNhZ2Vf
S2V5Ym9hcmQzID0gMHgyMCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ0ID0gMHgyMSwKKyAgICBr
SElEVXNhZ2VfS2V5Ym9hcmQ1ID0gMHgyMiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ2ID0gMHgy
MywKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ3ID0gMHgyNCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9h
cmQ4ID0gMHgyNSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ5ID0gMHgyNiwKKyAgICBrSElEVXNh
Z2VfS2V5Ym9hcmQwID0gMHgyNywKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRSZXR1cm5PckVudGVy
ID0gMHgyOCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRFc2NhcGUgPSAweDI5LAorICAgIGtISURV
c2FnZV9LZXlib2FyZERlbGV0ZU9yQmFja3NwYWNlID0gMHgyQSwKKyAgICBrSElEVXNhZ2VfS2V5
Ym9hcmRUYWIgPSAweDJCLAorICAgIGtISURVc2FnZV9LZXlib2FyZFNwYWNlYmFyID0gMHgyQywK
KyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRIeXBoZW4gPSAweDJELAorICAgIGtISURVc2FnZV9LZXli
b2FyZEVxdWFsU2lnbiA9IDB4MkUsCisgICAga0hJRFVzYWdlX0tleWJvYXJkT3BlbkJyYWNrZXQg
PSAweDJGLAorICAgIGtISURVc2FnZV9LZXlib2FyZENsb3NlQnJhY2tldCA9IDB4MzAsCisgICAg
a0hJRFVzYWdlX0tleWJvYXJkQmFja3NsYXNoID0gMHgzMSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9h
cmRTZW1pY29sb24gPSAweDMzLAorICAgIGtISURVc2FnZV9LZXlib2FyZFF1b3RlID0gMHgzNCwK
KyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRHcmF2ZUFjY2VudEFuZFRpbGRlID0gMHgzNSwKKyAgICBr
SElEVXNhZ2VfS2V5Ym9hcmRDb21tYSA9IDB4MzYsCisgICAga0hJRFVzYWdlX0tleWJvYXJkUGVy
aW9kID0gMHgzNywKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRTbGFzaCA9IDB4MzgsCisgICAga0hJ
RFVzYWdlX0tleWJvYXJkRjEgPSAweDNBLAorICAgIGtISURVc2FnZV9LZXlib2FyZEhvbWUgPSAw
eDRBLAorICAgIGtISURVc2FnZV9LZXlib2FyZFBhZ2VVcCA9IDB4NEIsCisgICAga0hJRFVzYWdl
X0tleWJvYXJkRW5kID0gMHg0RCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRSaWdodEFycm93ID0g
MHg0RiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0QXJyb3cgPSAweDUwLAorICAgIGtISURV
c2FnZV9LZXlib2FyZERvd25BcnJvdyA9IDB4NTEsCisgICAga0hJRFVzYWdlX0tleWJvYXJkVXBB
cnJvdyA9IDB4NTIsCisgICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdENvbnRyb2wgPSAweEUwLAor
ICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRTaGlmdCA9IDB4RTEsCisgICAga0hJRFVzYWdlX0tl
eWJvYXJkTGVmdEFsdCA9IDB4RTIKK307CisKK1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlmIC8v
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0V2ZW50U2VuZGVyUHJveHkuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5k
ZXJQcm94eS5oCmluZGV4IDcwZDk0MDE0YzhkNzUwY2I3ZDY1NzA4MDQ1MjhlMjA4Y2MyZjRhNTQu
LjI0ZjI3YjI4OTE3YzBlMzRjYjdkZWI3MzY5NTkwMzc3YmE3YmVkNjEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCkBAIC03MSw3ICs3MSw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIG1vdXNlTW92ZVRvKGRvdWJsZSB4LCBkb3VibGUgeSk7CiAgICAgdm9pZCBtb3Vz
ZVNjcm9sbEJ5KGludCB4LCBpbnQgeSk7CiAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBpbnQgcGhhc2UsIGludCBtb21lbnR1bSk7
Ci0gICAgdm9pZCBzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwg
aW50IHksIGludCBwaGFzZSwgaW50IG1vbWVudHVtKTsKICAgICB2b2lkIGNvbnRpbnVvdXNNb3Vz
ZVNjcm9sbEJ5KGludCB4LCBpbnQgeSwgYm9vbCBwYWdlZCk7CiAKICAgICB2b2lkIGxlYXBGb3J3
YXJkKGludCBtaWxsaXNlY29uZHMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5n
Q29udHJvbGxlci5pZGwKaW5kZXggZjMyODBiYjk0YjA1NDM3MDI0MzAyM2UyNTMzNmRlMWFmYWU3
OTM5Zi4uZDViODAzODQ1OWU3NmI5ODkxNDk5OGM2MDliNmYzNjE2NzQwN2Q4MSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNl
bmRpbmdDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsCkBAIC0zNCw3ICszNCw2
IEBAIGludGVyZmFjZSBFdmVudFNlbmRpbmdDb250cm9sbGVyIHsKICAgICB2b2lkIG1vdXNlRm9y
Y2VDaGFuZ2VkKGRvdWJsZSBmb3JjZSk7CiAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5KGxvbmcgeCwg
bG9uZyB5KTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cyhsb25nIHgsIGxvbmcgeSwgRE9NU3RyaW5nIHBoYXNlLCBET01TdHJpbmcgbW9tZW50dW0pOwot
ICAgIHZvaWQgc3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMobG9uZyB4LCBs
b25nIHksIERPTVN0cmluZyBwaGFzZSwgRE9NU3RyaW5nIG1vbWVudHVtKTsKICAgICB2b2lkIGNv
bnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGxvbmcgeCwgbG9uZyB5LCBvcHRpb25hbCBib29sZWFuIHBh
Z2VkKTsKICAgICBvYmplY3QgY29udGV4dENsaWNrKCk7CiAgICAgdm9pZCBzY2hlZHVsZUFzeW5j
aHJvbm91c0NsaWNrKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcAppbmRleCAwZmFh
MmYzOTgzY2Y3YTkxZTc5MWZkZjc0NDFmNGNkOWQ5ZTlmMzUyLi40YzNmZWY4OTMwODc4ZTE0YTU5
NTNiZTM3YjYyYjkzMDkyNTBmNDYwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAK
QEAgLTQ4MSwzOCArNDgxLDYgQEAgdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjptb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludAogICAgIFdLQnVuZGxl
UGFnZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2Uo
KSwgRXZlbnRTZW5kZXJNZXNzYWdlTmFtZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5n
ZXQoKSk7CiB9CiAKLXZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6c3dpcGVHZXN0dXJlV2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBKU1N0cmluZ1JlZiBwaGFzZVN0
ciwgSlNTdHJpbmdSZWYgbW9tZW50dW1TdHIpCi17Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIkV2ZW50U2VuZGVyIikpOwotICAgIFdLUmV0YWluUHRyPFdLTXV0YWJsZURpY3Rp
b25hcnlSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkoQWRvcHRXSywgV0tNdXRhYmxlRGljdGlv
bmFyeUNyZWF0ZSgpKTsKLQotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdl
S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTdWJNZXNzYWdlIikp
OwotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzdWJNZXNzYWdlTmFtZShBZG9wdFdLLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMiKSk7Ci0gICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShFdmVudFNlbmRlck1lc3Nh
Z2VCb2R5LmdldCgpLCBzdWJNZXNzYWdlS2V5LmdldCgpLCBzdWJNZXNzYWdlTmFtZS5nZXQoKSk7
Ci0KLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4geEtleShBZG9wdFdLLCBXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiWCIpKTsKLSAgICBXS1JldGFpblB0cjxXS0RvdWJsZVJlZj4g
eFJlZihBZG9wdFdLLCBXS0RvdWJsZUNyZWF0ZSh4KSk7Ci0gICAgV0tEaWN0aW9uYXJ5U2V0SXRl
bShFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCB4S2V5LmdldCgpLCB4UmVmLmdldCgpKTsK
LQotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB5S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJZIikpOwotICAgIFdLUmV0YWluUHRyPFdLRG91YmxlUmVmPiB5
UmVmKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKHkpKTsKLSAgICBXS0RpY3Rpb25hcnlTZXRJdGVt
KEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHlLZXkuZ2V0KCksIHlSZWYuZ2V0KCkpOwot
Ci0gICAgdWludDY0X3QgcGhhc2UgPSBjZ0V2ZW50UGhhc2VGcm9tU3RyaW5nKHBoYXNlU3RyKTsK
LSAgICB1aW50NjRfdCBtb21lbnR1bSA9IGNnRXZlbnRNb21lbnR1bVBoYXNlRnJvbVN0cmluZyht
b21lbnR1bVN0cik7Ci0KLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gcGhhc2VLZXkoQWRv
cHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlBoYXNlIikpOwotICAgIFdLUmV0
YWluUHRyPFdLVUludDY0UmVmPiBwaGFzZVJlZihBZG9wdFdLLCBXS1VJbnQ2NENyZWF0ZShwaGFz
ZSkpOwotICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQo
KSwgcGhhc2VLZXkuZ2V0KCksIHBoYXNlUmVmLmdldCgpKTsKLQotICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBtb21lbnR1bUtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiTW9tZW50dW0iKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IG1vbWVudHVt
UmVmKEFkb3B0V0ssIFdLVUludDY0Q3JlYXRlKG1vbWVudHVtKSk7Ci0gICAgV0tEaWN0aW9uYXJ5
U2V0SXRlbShFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCBtb21lbnR1bUtleS5nZXQoKSwg
bW9tZW50dW1SZWYuZ2V0KCkpOwotCi0gICAgV0tCdW5kbGVQYWdlRm9yY2VSZXBhaW50KEluamVj
dGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSk7IC8vIFRyaWdnZXJzIGEgc2Ny
b2xsaW5nIHRyZWUgY29tbWl0LgotICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgRXZlbnRTZW5kZXJNZXNzYWdlTmFt
ZS5nZXQoKSwgRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSk7Ci19Ci0KIHZvaWQgRXZlbnRT
ZW5kaW5nQ29udHJvbGxlcjo6Y29udGludW91c01vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5LCBi
b29sIHBhZ2VkKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBFdmVudFNlbmRlck1l
c3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJFdmVudFNl
bmRlciIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgKaW5kZXggYzIzYzM2ZGZhYzU1ODRm
ODUxYzVmNjBmYjRkNTYyMmNmZjQyMDA0YS4uMjhmY2U5Y2U2Y2JlNTdjM2ZmOGU4Zjk4M2ViYzQy
YjRlMDhiMGQyZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgKQEAgLTUzLDcgKzUzLDYg
QEAgcHVibGljOgogICAgIHZvaWQgbW91c2VGb3JjZUNoYW5nZWQoZG91YmxlIGZvcmNlKTsKICAg
ICB2b2lkIG1vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5KTsKICAgICB2b2lkIG1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIEpTU3RyaW5nUmVmIHBo
YXNlLCBKU1N0cmluZ1JlZiBtb21lbnR1bSk7Ci0gICAgdm9pZCBzd2lwZUdlc3R1cmVXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIEpTU3RyaW5nUmVmIHBoYXNlLCBKU1N0
cmluZ1JlZiBtb21lbnR1bSk7CiAgICAgdm9pZCBjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQg
eCwgaW50IHksIGJvb2wgcGFnZWQpOwogICAgIEpTVmFsdWVSZWYgY29udGV4dENsaWNrKCk7CiAg
ICAgdm9pZCBsZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1Mu
bW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9FdmVudFNlbmRl
clByb3h5SU9TLm1tCmluZGV4IGFjNTRhMWM2ZDZkOGMyYzUwZTA4MWRiNWJkYjgyMWQzZTYwOGVj
MmQuLmNhYjNmMThiMzY1OWY0OTE2YmQ1MDA4NzkyODZkNmEyN2MwYzlmOTEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJv
eHlJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3Mv
RXZlbnRTZW5kZXJQcm94eUlPUy5tbQpAQCAtMTAzLDExICsxMDMsNiBAQCB2b2lkIEV2ZW50U2Vu
ZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwg
aW50IHksIGludAogICAgIC8vIFdyaXRlIG1lLgogfQogCi12b2lkIEV2ZW50U2VuZGVyUHJveHk6
OnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCwgaW50LCBpbnQsIGlu
dCkKLXsKLSAgICAvLyBXcml0ZSBtZS4KLX0KLQogdm9pZCBFdmVudFNlbmRlclByb3h5Ojpjb250
aW51b3VzTW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHksIGJvb2wgcGFnZWQpCiB7CiAgICAgLy8g
V3JpdGUgbWUuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4
IGQyZTQ5YmI1ZGE4OGViZDM3ZGEwZWRmNmIyMmQzNTFmN2EyYWVmZDkuLmM3MzhkMWUwMWI5Y2M3
NWI5ZTFjNDVjMTc5NzU3ZWI5MDEwOTdlZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCkBAIC0xMjU4LDIzICsxMjU4LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2Fn
ZU5hbWUKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHN1Yk1lc3NhZ2VOYW1lLCAiU3dpcGVHZXN0dXJlV2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMiKSkgewotICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IHhLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJY
IikpOwotICAgICAgICAgICAgZG91YmxlIHggPSBXS0RvdWJsZUdldFZhbHVlKHN0YXRpY19jYXN0
PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlv
bmFyeSwgeEtleS5nZXQoKSkpKTsKLQotICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IHlLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJZIikpOwot
ICAgICAgICAgICAgZG91YmxlIHkgPSBXS0RvdWJsZUdldFZhbHVlKHN0YXRpY19jYXN0PFdLRG91
YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwg
eUtleS5nZXQoKSkpKTsKLQotICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHBo
YXNlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiUGhhc2UiKSk7
Ci0gICAgICAgICAgICBpbnQgcGhhc2UgPSBzdGF0aWNfY2FzdDxpbnQ+KFdLVUludDY0R2V0VmFs
dWUoc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVz
c2FnZUJvZHlEaWN0aW9uYXJ5LCBwaGFzZUtleS5nZXQoKSkpKSk7Ci0gICAgICAgICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gbW9tZW50dW1LZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJNb21lbnR1bSIpKTsKLSAgICAgICAgICAgIGludCBtb21lbnR1bSA9
IHN0YXRpY19jYXN0PGludD4oV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJbnQ2NFJl
Zj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIG1vbWVu
dHVtS2V5LmdldCgpKSkpKTsKLQotICAgICAgICAgICAgbV9ldmVudFNlbmRlclByb3h5LT5zd2lw
ZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyh4LCB5LCBwaGFzZSwgbW9tZW50dW0p
OwotCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
V2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggOWRiOThlYTllMDliOTlhNmZjN2ExNzBlOWUwNDBmNDY2YjJhNDUwMC4uNTFmZDI1YTU3NmE1
MmI2ZjljOGVmMjlkMGIzYmVlNmQ3ZGEwNGFkNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTYzLDYgKzYzLDExIEBACiAJCTI5QThGQ0REMTQ1RjAzMzcwMDkwNDVBNiAv
KiBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBOEZDRTEzNDVFNzAyMTAwNkFBNUE2IC8qIEpT
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHAgKi87IH07CiAJCTI5QThGQ0UyMTQ1RjAz
N0IwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QThGQ0UxMTQ1RjAzN0IwMDkw
NDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCAqLzsgfTsKIAkJMjlBOEZD
RTUxNDVGMDQ2NDAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4RkNFNDE0
NUYwNDY0MDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbSAqLzsg
fTsKKwkJMkRCNjE4N0UxRDdENThENDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRCNjE4N0QxRDdENThE
NDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQSS5oICovOyB9OworCQkyREQ0QzQ5QTFENkU3RDNC
MDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREQ0QzQ5ODFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRT
ZXJpYWxpemVyTWFjLmggKi87IH07CisJCTJERDRDNDlCMUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVu
dFNlcmlhbGl6ZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyREQ0QzQ5OTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1t
ICovOyB9OworCQkyREZBOTg0ODFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1z
TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZB
OTg0NjFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggKi87IH07CisJ
CTJERkE5ODQ5MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZBOTg0NzFEN0Y3
MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tICovOyB9OwogCQkyRTM0Qzkw
MDE4QjY4ODA4MDAwMDY3QkIgLyogV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlLmJ1bmRs
ZSBpbiBDb3B5IFBsdWctSW5zICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MjUxODYyMTFEMTVENTQwMDJFQkMwMSAvKiBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUu
YnVuZGxlICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKENvZGVTaWduT25Db3B5LCBSZW1v
dmVIZWFkZXJzT25Db3B5LCApOyB9OyB9OwogCQkyRTYzRUQ4QTE4OTFBRDdFMDAyQTdBRkMgLyog
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYzRUQ3NTE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJJT1MubW0gKi87IH07CiAJCTJFNjNFRDhCMTg5MUFEN0UwMDJBN0FGQyAv
KiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNjNFRDc3MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlcklPUy5tbSAqLzsgfTsKQEAgLTIxMSw3ICsyMTYsNyBAQAogCQkwRkVC
OTBBMzE5MDVCQzZBMDAwRkRCRjMgLyogQ3Jhc2hSZXBvcnRlckluZm8ubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBDcmFzaFJlcG9ydGVySW5mby5tbTsgcGF0aCA9
IGNvY29hL0NyYXNoUmVwb3J0ZXJJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRkVCRjg1ODFCQjYxREYyMDAyODcyMkQgLyogSElERXZlbnRHZW5lcmF0b3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSElERXZlbnRHZW5lcmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQkY4NTkxQkI2MURGMjAwMjg3MjJEIC8qIEhJREV2ZW50
R2VuZXJhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSElE
RXZlbnRHZW5lcmF0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRUJGODVC
MUJCNjJBMzcwMDI4NzIyRCAvKiBJT0tpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJT0tpdFNQSS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkVCRjg1QjFCQjYyQTM3MDAyODcyMkQg
LyogSU9LaXRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSU9LaXRTUEkuaDsgcGF0aCA9IC4uL1Rlc3RS
dW5uZXJTaGFyZWQvc3BpL0lPS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGRUJGODVDMUJCNjJENDYwMDI4NzIyRCAvKiBVSUtpdFNQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
SUtpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTMzMjYwNTFCNzUzOTY1
MDBGODlGNjIgLyogVGVzdE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVzdE9wdGlvbnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBMjExQzcxQkNBMTA3MzAwQjIxMDFGIC8q
IEZvbnRXaXRoRmVhdHVyZXMub3RmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEZvbnRXaXRoRmVhdHVyZXMub3RmOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQwLDcgKzI0NSwxMiBAQAogCQkyOUE4RkNFMTM0NUU3
MDIxMDA2QUE1QTYgLyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJS
YW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QThGQ0UxMzQ1RTcwMjEw
MDZBQTVBNyAvKiBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5QThGQ0U0MTQ1RjA0NjQwMDkwNDVBNiAvKiBB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRCNjE4N0QxRDdENThENDAwOTc4RDE5IC8qIENv
cmVHcmFwaGljc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDb3JlR3Jh
cGhpY3NTUEkuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0NvcmVHcmFwaGljc1NQ
SS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRENFMkNEMTFCODQ1MjQ1MDBDN0Y4
MzIgLyogVGVzdENvbnRyb2xsZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IFRlc3RDb250cm9sbGVyQ29jb2EubW07IHBhdGggPSBjb2NvYS9UZXN0Q29u
dHJvbGxlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREQ0QzQ5ODFE
NkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEV2ZW50U2VyaWFsaXplck1hYy5oOyBwYXRoID0gbWFjL0V2ZW50U2Vy
aWFsaXplck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREQ0QzQ5OTFENkU3
RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBuYW1lID0gRXZlbnRTZXJpYWxpemVyTWFjLm1tOyBwYXRoID0gbWFjL0V2
ZW50U2VyaWFsaXplck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRGQTk4
NDYxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaDsgcGF0aCA9IG1h
Yy9TaGFyZWRFdmVudFN0cmVhbXNNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkRGQTk4NDcxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFNoYXJlZEV2ZW50U3RyZWFtc01h
Yy5tbTsgcGF0aCA9IG1hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJFNjNFRDc1MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyRTYzRUQ3NjE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bkhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU2
M0VENzcxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NzYsNyArNDg2LDkg
QEAKIAkJMEY3M0I1NDcxQkE3ODJGRTAwNEIzRUY0IC8qIFVJU2NyaXB0Q29udGV4dCAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMkRCNjE4N0YxRDdENTk4
ODAwOTc4RDE5IC8qIHNwaSAqLywKIAkJCQkwRjczQjU0QjFCQTc4MzUwMDA0QjNFRjQgLyogQmlu
ZGluZ3MgKi8sCisJCQkJMkRENEM0OTcxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50IFNlcmlhbGl6
YXRpb24gKi8sCiAJCQkJMEY3M0I1NEUxQkE3ODk1NDAwNEIzRUY0IC8qIERlcml2ZWQgU291cmNl
cyAqLywKIAkJCQkwRjE4RTZERDFENkI5QUFGMDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmNw
cCAqLywKIAkJCQkwRjE4RTZERTFENkI5QUFGMDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0Lmgg
Ki8sCkBAIC01NTQsNiArNTY2LDM1IEBACiAJCQluYW1lID0gQWNjZXNzaWJpbGl0eTsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTJEQjYxODdGMUQ3RDU5ODgwMDk3OEQxOSAv
KiBzcGkgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTJE
QjYxODdEMUQ3RDU4RDQwMDk3OEQxOSAvKiBDb3JlR3JhcGhpY3NTUEkuaCAqLywKKwkJCQkwRkVC
Rjg1QjFCQjYyQTM3MDAyODcyMkQgLyogSU9LaXRTUEkuaCAqLywKKwkJCSk7CisJCQluYW1lID0g
c3BpOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMkRENEM0OTcxRDZFN0Qz
QjAwMDczNzlDIC8qIEV2ZW50IFNlcmlhbGl6YXRpb24gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTJERkE5ODRBMUQ3Rjc5RTAwMEFGRjJDOSAvKiBtYWMg
Ki8sCisJCQkpOworCQkJbmFtZSA9ICJFdmVudCBTZXJpYWxpemF0aW9uIjsKKwkJCXBhdGggPSAu
Li9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbjsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CisJCTJERkE5ODRBMUQ3Rjc5RTAwMEFGRjJDOSAvKiBtYWMgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTJERDRDNDk4MUQ2RTdE
M0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMuaCAqLywKKwkJCQkyREQ0QzQ5OTFENkU3
RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tICovLAorCQkJCTJERkE5ODQ2MUQ3
RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaCAqLywKKwkJCQkyREZBOTg0
NzFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tICovLAorCQkJKTsK
KwkJCW5hbWUgPSBtYWM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkyRTYz
RUQ3NDE4OTFBQ0U5MDAyQTdBRkMgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKQEAgLTU5MSw3ICs2MzIsNiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJ
MEZFQkY4NTgxQkI2MURGMjAwMjg3MjJEIC8qIEhJREV2ZW50R2VuZXJhdG9yLmggKi8sCiAJCQkJ
MEZFQkY4NTkxQkI2MURGMjAwMjg3MjJEIC8qIEhJREV2ZW50R2VuZXJhdG9yLm1tICovLAotCQkJ
CTBGRUJGODVCMUJCNjJBMzcwMDI4NzIyRCAvKiBJT0tpdFNQSS5oICovLAogCQkJCTJFRTUyRDEz
MTg5MEE5RkIwMDEwRUQyMSAvKiBQbGF0Zm9ybVdlYlZpZXdJT1MubW0gKi8sCiAJCQkJMkVFNTJE
MTQxODkwQTlGQjAwMTBFRDIxIC8qIFRlc3RDb250cm9sbGVySU9TLm1tICovLAogCQkJCTBGRUJG
ODVDMUJCNjJENDYwMDI4NzIyRCAvKiBVSUtpdFNQSS5oICovLApAQCAtNzc4LDcgKzgxOCwxMCBA
QAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAy
MTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJMkRCNjE4N0UxRDdENThENDAwOTc4RDE5IC8q
IENvcmVHcmFwaGljc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3M0I1NTIxQkE3ODk2ODAw
NEIzRUY0IC8qIEpTVUlTY3JpcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkyREZB
OTg0ODFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkyREQ0QzQ5QTFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFj
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTk4Niw4ICsxMDI5LDEwIEBACiAJCQkJMEY3M0I1NTExQkE3
ODk2ODAwNEIzRUY0IC8qIEpTVUlTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGMThFNzE4MUQ2QkM0NTYwMDI3RTU0NyAvKiBKU1dyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTE4NTEwM0MxQjlBRTBGRTAwNzQ0QUVCIC8qIE9wdGlvbnMuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMkRENEM0OUIxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1h
Yy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDQwMUI5QUUxMzEwMDc0NEFFQiAvKiBQaXhl
bER1bXBTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDQxMUI5QUUxMzgwMDc0
NEFFQiAvKiBUZXN0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyREZBOTg0OTFE
N0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTE4NTEwM0IxQjlBRTBFMjAwNzQ0QUVCIC8qIFRlc3RDb250cm9sbGVyQ29jb2EubW0g
aW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTA0MjFCOUFFMTNFMDA3NDRBRUIgLyogVGVzdEludm9j
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0QxQjlBRTEwNjAwNzQ0QUVCIC8q
IFRlc3RJbnZvY2F0aW9uQ0cuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2VmbC9FdmVudFNlbmRlclByb3h5RWZsLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvZWZsL0V2ZW50U2VuZGVyUHJveHlFZmwuY3BwCmluZGV4IDM4YWUwNGY3OWI2
OWNiYmY3NTBiMTJhOWVmYWIxY2E1YTU4OWQ1Y2IuLjdhNjhjN2YyOTdkZTI1MWRhYWQzMzNiYTFl
NDFhOThiMTllZjY4ZjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL0V2
ZW50U2VuZGVyUHJveHlFZmwuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL0V2
ZW50U2VuZGVyUHJveHlFZmwuY3BwCkBAIC0zOTksMTEgKzM5OSw2IEBAIHZvaWQgRXZlbnRTZW5k
ZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBp
bnQgeSwgaW50CiAgICAgbW91c2VTY3JvbGxCeSh4LCB5KTsKIH0KIAotdm9pZCBFdmVudFNlbmRl
clByb3h5Ojpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQsIGludCwg
aW50LCBpbnQpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9pZCBFdmVudFNlbmRl
clByb3h5OjpsZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKQogewogICAgIGlmIChtX2V2ZW50
UXVldWUuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsv
RXZlbnRTZW5kZXJQcm94eUd0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVu
dFNlbmRlclByb3h5R3RrLmNwcAppbmRleCAwMjNlZGM4MTA1YzU1MTBlYWJmZmM1ZTIwYzMzYTQ3
MTY3MTYzYTNmLi4zYzNhZTBjZTgyZWZjNzg5YzMzOWQwY2VlMDMyZTIwYTg0NDc1MTYxIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNw
cApAQCAtNDUxLDExICs0NTEsNiBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIGludAogICAgIG1vdXNl
U2Nyb2xsQnkoeCwgeSk7CiB9CiAKLXZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c3dpcGVHZXN0dXJl
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50LCBpbnQsIGludCwgaW50KQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bGVhcEZvcndhcmQo
aW50IG1pbGxpc2Vjb25kcykKIHsKICAgICBpZiAobV9ldmVudFF1ZXVlLmlzRW1wdHkoKSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL0lPS2l0U1BJLmggYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tpdFNQSS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3YTBkNmExNWNkNTFkMjUyMjBkYWQxN2QxZTIzMWY2M2ZhYWVhZTNjLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvaW9zL0lPS2l0U1BJLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNzggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgSU9LaXRTUElfaAotI2RlZmluZSBJT0tpdFNQSV9oCi0KLSNpbXBvcnQg
PHd0Zi9QbGF0Zm9ybS5oPgotCi0jaWYgUExBVEZPUk0oSU9TKQotCi0jaWYgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKLQotI2ltcG9ydCA8SU9LaXQvaGlkL0lPSElERXZlbnQuaD4KLSNpbXBvcnQg
PElPS2l0L2hpZC9JT0hJREV2ZW50U3lzdGVtQ2xpZW50Lmg+Ci0jaW1wb3J0IDxJT0tpdC9oaWQv
SU9ISURVc2FnZVRhYmxlcy5oPgotCi0jZWxzZQotCi1XVEZfRVhURVJOX0NfQkVHSU4KLQotI2lm
ZGVmIF9fTFA2NF9fCi10eXBlZGVmIGRvdWJsZSBJT0hJREZsb2F0OwotI2Vsc2UKLXR5cGVkZWYg
ZmxvYXQgSU9ISURGbG9hdDsKLSNlbmRpZgotCi1lbnVtIHsKLSAgICBrSU9ISURFdmVudE9wdGlv
bk5vbmUgPSAwLAotfTsKLQotdHlwZWRlZiBVSW50MzIgSU9PcHRpb25CaXRzOwotdHlwZWRlZiB1
aW50MzJfdCBJT0hJREV2ZW50T3B0aW9uQml0czsKLXR5cGVkZWYgdWludDMyX3QgSU9ISURFdmVu
dEZpZWxkOwotCi10eXBlZGVmIHN0cnVjdCBfX0lPSElERXZlbnRTeXN0ZW1DbGllbnQgKiBJT0hJ
REV2ZW50U3lzdGVtQ2xpZW50UmVmOwotdHlwZWRlZiBzdHJ1Y3QgX19JT0hJREV2ZW50ICogSU9I
SURFdmVudFJlZjsKLQotI2RlZmluZSBJT0hJREV2ZW50RmllbGRCYXNlKHR5cGUpICh0eXBlIDw8
IDE2KQotCi1lbnVtIHsKLSAgICBrSElEUGFnZV9LZXlib2FyZE9yS2V5cGFkICAgICAgID0gMHgw
NywKLSAgICBrSElEUGFnZV9WZW5kb3JEZWZpbmVkU3RhcnQgICAgID0gMHhGRjAwCi19OwotCi1l
bnVtIHsKLSAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFJhbmdlICAgICAgID0gMTw8MCwKLSAgICBr
SU9ISUREaWdpdGl6ZXJFdmVudFRvdWNoICAgICAgID0gMTw8MSwKLSAgICBrSU9ISUREaWdpdGl6
ZXJFdmVudFBvc2l0aW9uICAgID0gMTw8MiwKLSAgICBrSU9ISUREaWdpdGl6ZXJFdmVudElkZW50
aXR5ICAgID0gMTw8NSwKLSAgICBrSU9ISUREaWdpdGl6ZXJFdmVudEF0dHJpYnV0ZSAgID0gMTw8
NiwKLSAgICBrSU9ISUREaWdpdGl6ZXJFdmVudENhbmNlbCAgICAgID0gMTw8NywKLSAgICBrSU9I
SUREaWdpdGl6ZXJFdmVudFN0YXJ0ICAgICAgID0gMTw8OCwKLX07Ci10eXBlZGVmIHVpbnQzMl90
IElPSElERGlnaXRpemVyRXZlbnRNYXNrOwotCi1lbnVtIHsKLSAgICBrSU9ISURFdmVudFR5cGVO
VUxMLAotICAgIGtJT0hJREV2ZW50VHlwZVZlbmRvckRlZmluZWQsCi0gICAga0lPSElERXZlbnRU
eXBlS2V5Ym9hcmQgPSAzLAotICAgIGtJT0hJREV2ZW50VHlwZURpZ2l0aXplciA9IDExLAotfTsK
LXR5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudFR5cGU7Ci0KLWVudW0gewotICAgIGtJT0hJREV2
ZW50RmllbGRWZW5kb3JEZWZpbmVkVXNhZ2VQYWdlID0gSU9ISURFdmVudEZpZWxkQmFzZShrSU9I
SURFdmVudFR5cGVWZW5kb3JEZWZpbmVkKSwKLSAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVm
aW5lZFJlc2VydmVkLAotICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkUmVzZXJ2ZWQx
LAotICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkRGF0YUxlbmd0aCwKLSAgICBrSU9I
SURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZERhdGEKLX07Ci0KLWVudW0gewotICAgIGtJT0hJREV2
ZW50RmllbGREaWdpdGl6ZXJYID0gSU9ISURFdmVudEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVE
aWdpdGl6ZXIpLAotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJZLAotICAgIGtJT0hJREV2
ZW50RmllbGREaWdpdGl6ZXJNYWpvclJhZGl1cyA9IGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJY
ICsgMjAsCi0gICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1pbm9yUmFkaXVzLAotICAgIGtJ
T0hJREV2ZW50RmllbGREaWdpdGl6ZXJJc0Rpc3BsYXlJbnRlZ3JhdGVkID0ga0lPSElERXZlbnRG
aWVsZERpZ2l0aXplck1ham9yUmFkaXVzICsgNSwKLX07Ci0KLWVudW0gewotICAgIGtJT0hJRERp
Z2l0aXplclRyYW5zZHVjZXJUeXBlSGFuZCA9IDMKLX07Ci10eXBlZGVmIHVpbnQzMl90IElPSElE
RGlnaXRpemVyVHJhbnNkdWNlclR5cGU7Ci0KLUlPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0
ZURpZ2l0aXplckV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgSU9ISUREaWdpdGl6ZXJU
cmFuc2R1Y2VyVHlwZSwgdWludDMyX3QsIHVpbnQzMl90LCBJT0hJRERpZ2l0aXplckV2ZW50TWFz
aywgdWludDMyX3QsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxv
YXQsIElPSElERmxvYXQsIGJvb2xlYW5fdCwgYm9vbGVhbl90LCBJT09wdGlvbkJpdHMpOwotCi1J
T0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVEaWdpdGl6ZXJGaW5nZXJFdmVudChDRkFsbG9j
YXRvclJlZiwgdWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVu
dE1hc2ssIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElP
SElERmxvYXQsIGJvb2xlYW5fdCwgYm9vbGVhbl90LCBJT0hJREV2ZW50T3B0aW9uQml0cyk7Ci0K
LUlPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZUZvcmNlRXZlbnQoQ0ZBbGxvY2F0b3JSZWYs
IHVpbnQ2NF90LCB1aW50MzJfdCwgSU9ISURGbG9hdCwgdWludDMyX3QsIElPSElERmxvYXQsIElP
SElERXZlbnRPcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlS2V5
Ym9hcmRFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwg
Ym9vbGVhbl90LCBJT09wdGlvbkJpdHMpOwotCi1JT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVh
dGVWZW5kb3JEZWZpbmVkRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwg
dWludDMyX3QsIHVpbnQzMl90LCB1aW50OF90KiwgQ0ZJbmRleCwgSU9ISURFdmVudE9wdGlvbkJp
dHMpOwotCi1JT0hJREV2ZW50VHlwZSBJT0hJREV2ZW50R2V0VHlwZShJT0hJREV2ZW50UmVmKTsK
LQotdm9pZCBJT0hJREV2ZW50U2V0RmxvYXRWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50
RmllbGQsIElPSElERmxvYXQpOwotCi1DRkluZGV4IElPSElERXZlbnRHZXRJbnRlZ2VyVmFsdWUo
SU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxkKTsKLXZvaWQgSU9ISURFdmVudFNldEludGVn
ZXJWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50RmllbGQsIENGSW5kZXgpOwotCi12b2lk
IElPSElERXZlbnRBcHBlbmRFdmVudChJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50UmVmLCBJT09w
dGlvbkJpdHMpOwotCi1JT0hJREV2ZW50U3lzdGVtQ2xpZW50UmVmIElPSElERXZlbnRTeXN0ZW1D
bGllbnRDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYpOwotCi0jZGVmaW5lIGtHU0V2ZW50UGF0aEluZm9J
blJhbmdlICgxIDw8IDApCi0jZGVmaW5lIGtHU0V2ZW50UGF0aEluZm9JblRvdWNoICgxIDw8IDEp
Ci0KLWVudW0gewotICAgIGtISURVc2FnZV9LZXlib2FyZEEgPSAweDA0LAotICAgIGtISURVc2Fn
ZV9LZXlib2FyZDEgPSAweDFFLAotICAgIGtISURVc2FnZV9LZXlib2FyZDIgPSAweDFGLAotICAg
IGtISURVc2FnZV9LZXlib2FyZDMgPSAweDIwLAotICAgIGtISURVc2FnZV9LZXlib2FyZDQgPSAw
eDIxLAotICAgIGtISURVc2FnZV9LZXlib2FyZDUgPSAweDIyLAotICAgIGtISURVc2FnZV9LZXli
b2FyZDYgPSAweDIzLAotICAgIGtISURVc2FnZV9LZXlib2FyZDcgPSAweDI0LAotICAgIGtISURV
c2FnZV9LZXlib2FyZDggPSAweDI1LAotICAgIGtISURVc2FnZV9LZXlib2FyZDkgPSAweDI2LAot
ICAgIGtISURVc2FnZV9LZXlib2FyZDAgPSAweDI3LAotICAgIGtISURVc2FnZV9LZXlib2FyZFJl
dHVybk9yRW50ZXIgPSAweDI4LAotICAgIGtISURVc2FnZV9LZXlib2FyZEVzY2FwZSA9IDB4Mjks
Ci0gICAga0hJRFVzYWdlX0tleWJvYXJkRGVsZXRlT3JCYWNrc3BhY2UgPSAweDJBLAotICAgIGtI
SURVc2FnZV9LZXlib2FyZFRhYiA9IDB4MkIsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkU3BhY2Vi
YXIgPSAweDJDLAotICAgIGtISURVc2FnZV9LZXlib2FyZEh5cGhlbiA9IDB4MkQsCi0gICAga0hJ
RFVzYWdlX0tleWJvYXJkRXF1YWxTaWduID0gMHgyRSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRP
cGVuQnJhY2tldCA9IDB4MkYsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkQ2xvc2VCcmFja2V0ID0g
MHgzMCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRCYWNrc2xhc2ggPSAweDMxLAotICAgIGtISURV
c2FnZV9LZXlib2FyZFNlbWljb2xvbiA9IDB4MzMsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkUXVv
dGUgPSAweDM0LAotICAgIGtISURVc2FnZV9LZXlib2FyZEdyYXZlQWNjZW50QW5kVGlsZGUgPSAw
eDM1LAotICAgIGtISURVc2FnZV9LZXlib2FyZENvbW1hID0gMHgzNiwKLSAgICBrSElEVXNhZ2Vf
S2V5Ym9hcmRQZXJpb2QgPSAweDM3LAotICAgIGtISURVc2FnZV9LZXlib2FyZFNsYXNoID0gMHgz
OCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRGMSA9IDB4M0EsCi0gICAga0hJRFVzYWdlX0tleWJv
YXJkSG9tZSA9IDB4NEEsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkUGFnZVVwID0gMHg0QiwKLSAg
ICBrSElEVXNhZ2VfS2V5Ym9hcmRFbmQgPSAweDRELAotICAgIGtISURVc2FnZV9LZXlib2FyZFJp
Z2h0QXJyb3cgPSAweDRGLAotICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRBcnJvdyA9IDB4NTAs
Ci0gICAga0hJRFVzYWdlX0tleWJvYXJkRG93bkFycm93ID0gMHg1MSwKLSAgICBrSElEVXNhZ2Vf
S2V5Ym9hcmRVcEFycm93ID0gMHg1MiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0Q29udHJv
bCA9IDB4RTAsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdFNoaWZ0ID0gMHhFMSwKLSAgICBr
SElEVXNhZ2VfS2V5Ym9hcmRMZWZ0QWx0ID0gMHhFMgotfTsKLQotV1RGX0VYVEVSTl9DX0VORAot
Ci0jZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLQotI2VuZGlmIC8vIFBMQVRGT1JN
KElPUykKLQotI2VuZGlmIC8vIElPS2l0U1BJX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L21hYy9FdmVudFNlbmRlclByb3h5Lm1tCmluZGV4IDE5YjVhMzdiMzZkZDEyYjc0MDIyMWUzNjM3
YjA0YjFmNjgyNTE0ZGYuLjhjNmI5ZGNiMGY1NDAxMzBmM2NiMjJkM2VmNTRjN2YwZmIxZTk0M2Mg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHku
bW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQpA
QCAtNDUsMTcgKzQ1LDYgQEAKIC0gKHZvaWQpX3Bvc3REZWxheWVkOwogQGVuZAogCi0jaWYgZGVm
aW5lZChfX0xQNjRfXykKLXN0cnVjdCBXS1RSQ0dTRXZlbnRSZWNvcmQgewotICAgIGNoYXIgb2Zm
c2V0MVsxNTBdOwotICAgIHVpbnQ4X3QgcGhhc2U7Ci0gICAgY2hhciBvZmZzZXQyWzEzXTsKLSAg
ICBmbG9hdCBkZWx0YVg7Ci0gICAgZmxvYXQgZGVsdGFZOwotICAgIGNoYXIgb2Zmc2V0M1s3Nl07
Ci19IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwotI2VuZGlmCi0KIEBpbnRlcmZhY2UgRXZlbnRT
ZW5kZXJTeW50aGV0aWNFdmVudCA6IE5TRXZlbnQgewogQHB1YmxpYwogICAgIE5TUG9pbnQgX2V2
ZW50U2VuZGVyX2xvY2F0aW9uSW5XaW5kb3c7CkBAIC03MCwxMSArNTksNiBAQCBzdHJ1Y3QgV0tU
UkNHU0V2ZW50UmVjb3JkIHsKICAgICBzaG9ydCBfZXZlbnRTZW5kZXJfc3VidHlwZTsKICAgICBO
U0V2ZW50VHlwZSBfZXZlbnRTZW5kZXJfdHlwZTsKICAgICBOU1dpbmRvdyAqX2V2ZW50U2VuZGVy
X3dpbmRvdzsKLQotCi0jaWYgZGVmaW5lZChfX0xQNjRfXykKLSAgICBXS1RSQ0dTRXZlbnRSZWNv
cmQgX2V2ZW50U2VuZGVyX2Nnc0V2ZW50UmVjb3JkOwotI2VuZGlmCiB9CiAKIC0gKGlkKWluaXRQ
cmVzc3VyZUV2ZW50QXRMb2NhdGlvbjooTlNQb2ludClsb2NhdGlvbiBnbG9iYWxMb2NhdGlvbjoo
TlNQb2ludClnbG9iYWxMb2NhdGlvbiBzdGFnZTooTlNJbnRlZ2VyKXN0YWdlIHByZXNzdXJlOihm
bG9hdClwcmVzc3VyZSBzdGFnZVRyYW5zaXRpb246KGZsb2F0KXN0YWdlVHJhbnNpdGlvbiBwaGFz
ZTooTlNFdmVudFBoYXNlKXBoYXNlIHRpbWU6KE5TVGltZUludGVydmFsKXRpbWUgZXZlbnROdW1i
ZXI6KE5TSW50ZWdlcilldmVudE51bWJlciB3aW5kb3c6KE5TV2luZG93ICopd2luZG93OwpAQCAt
MTY3LDEzICsxNTEsNiBAQCBzdHJ1Y3QgV0tUUkNHU0V2ZW50UmVjb3JkIHsKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLSNpZiBkZWZpbmVkKF9fTFA2NF9fKQotLSAoV0tUUkNHU0V2ZW50UmVjb3Jk
KV9jZ3NFdmVudFJlY29yZAotewotICAgIHJldHVybiBfZXZlbnRTZW5kZXJfY2dzRXZlbnRSZWNv
cmQ7Ci19Ci0jZW5kaWYKLQogLSAoTlNXaW5kb3cgKil3aW5kb3cKIHsKICAgICByZXR1cm4gX2V2
ZW50U2VuZGVyX3dpbmRvdzsKQEAgLTg5MCw1MCArODY3LDQgQEAgdm9pZCBFdmVudFNlbmRlclBy
b3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5
LCBpbnQKICAgICB9CiB9CiAKLXN0YXRpYyBOU0V2ZW50UGhhc2UgbnNFdmVudFBoYXNlRnJvbUNH
RXZlbnRQaGFzZShpbnQgcGhhc2UpCi17Ci0gICAgc3dpdGNoIChwaGFzZSkgewotICAgIGNhc2Ug
MDogLy8ga0NHU0dlc3R1cmVQaGFzZU5vbmUKLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZU5v
bmU7Ci0gICAgY2FzZSAxOiAvLyBrQ0dTR2VzdHVyZVBoYXNlQmVnYW4KLSAgICAgICAgcmV0dXJu
IE5TRXZlbnRQaGFzZUJlZ2FuOwotICAgIGNhc2UgMjogLy8ga0NHU0dlc3R1cmVQaGFzZUNoYW5n
ZWQKLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZUNoYW5nZWQ7Ci0gICAgY2FzZSA0OiAvLyBr
Q0dTR2VzdHVyZVBoYXNlRW5kZWQKLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZUVuZGVkOwot
ICAgIGNhc2UgODogLy8ga0NHU0dlc3R1cmVQaGFzZUNhbmNlbGxlZAotICAgICAgICByZXR1cm4g
TlNFdmVudFBoYXNlQ2FuY2VsbGVkOwotICAgIGNhc2UgMTI4OiAvLyBrQ0dTR2VzdHVyZVBoYXNl
TWF5QmVnaW4KLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZU1heUJlZ2luOwotICAgIH0KLQot
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBOU0V2ZW50UGhhc2VOb25lOwot
fQotCi12b2lkIEV2ZW50U2VuZGVyUHJveHk6OnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50IHBoYXNlLCBpbnQgbW9tZW50dW0pCi17Ci0gICAg
UmV0YWluUHRyPEV2ZW50U2VuZGVyU3ludGhldGljRXZlbnQ+IGV2ZW50ID0gYWRvcHROUyhbW0V2
ZW50U2VuZGVyU3ludGhldGljRXZlbnQgYWxsb2NdIGluaXRdKTsKLQotICAgIC8vICJtYXlCZWdp
biIgYSBzd2lwZSBpcyBhY3R1YWxseSBhIHNjcm9sbCB3aGVlbCBldmVudC4KLSAgICBldmVudC0+
X2V2ZW50U2VuZGVyX3R5cGUgPSAocGhhc2UgPT0gMTI4KSA/IE5TU2Nyb2xsV2hlZWwgOiBOU0V2
ZW50VHlwZUdlc3R1cmU7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9zdWJ0eXBlID0gNjsgLy8g
a0lPSElERXZlbnRUeXBlU2Nyb2xsCi0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9sb2NhdGlvbklu
V2luZG93ID0gTlNNYWtlUG9pbnQobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnkpOwotICAgIGV2
ZW50LT5fZXZlbnRTZW5kZXJfbG9jYXRpb24gPSAoW21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJW
aWV3KCktPnBsYXRmb3JtV2luZG93KCkgY29udmVydFJlY3RUb1NjcmVlbjpOU01ha2VSZWN0KG1f
cG9zaXRpb24ueCwgbV9wb3NpdGlvbi55LCAxLCAxKV0ub3JpZ2luKTsKLSAgICBldmVudC0+X2V2
ZW50U2VuZGVyX3BoYXNlID0gbnNFdmVudFBoYXNlRnJvbUNHRXZlbnRQaGFzZShwaGFzZSk7Ci0g
ICAgZXZlbnQtPl9ldmVudFNlbmRlcl9tb21lbnR1bVBoYXNlID0gbnNFdmVudFBoYXNlRnJvbUNH
RXZlbnRQaGFzZShtb21lbnR1bSk7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl90aW1lc3RhbXAg
PSBhYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKTsKLSAgICBldmVu
dC0+X2V2ZW50U2VuZGVyX2V2ZW50TnVtYmVyID0gKytldmVudE51bWJlcjsKLQotI2lmIGRlZmlu
ZWQoX19MUDY0X18pCi0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9jZ3NFdmVudFJlY29yZC5waGFz
ZSA9IHBoYXNlOwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfY2dzRXZlbnRSZWNvcmQuZGVsdGFY
ID0gKGZsb2F0KXg7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9jZ3NFdmVudFJlY29yZC5kZWx0
YVkgPSAoZmxvYXQpeTsKLSNlbHNlCi0gICAgTlNMb2coQCJTeW50aGV0aWMgc3dpcGUgZ2VzdHVy
ZXMgYXJlIG5vdCBpbXBsZW1lbnRlZCBmb3IgMzItYml0IFdlYktpdFRlc3RSdW5uZXIuIik7Ci0j
ZW5kaWYKLQotICAgIFtOU0FwcCBzZW5kRXZlbnQ6ZXZlbnQuZ2V0KCldOwotfQotCiB9IC8vIG5h
bWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2Ny
aXB0Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0
Q29udHJvbGxlck1hYy5tbQppbmRleCA0ZjZjY2ViYTdkM2ZiNDA5ODVhMDYyMTcyMGNiOGExYzBl
YjI0NzVkLi41NzYyODlkNDk3ODQ3Y2ZlZjJhMjZlMmQ5ZjUxNTU1NjFmOTUwNzVlIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0K
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1t
CkBAIC0yNiw3ICsyNiwxMiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJVSVNjcmlw
dENvbnRyb2xsZXIuaCIKIAorI2ltcG9ydCAiRXZlbnRTZXJpYWxpemVyTWFjLmgiCisjaW1wb3J0
ICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbXBvcnQgIlNoYXJlZEV2ZW50U3RyZWFtc01hYy5oIgor
I2ltcG9ydCAiVGVzdENvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlVJU2NyaXB0Q29udGV4dC5oIgor
I2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWZDRi5oPgogCiBuYW1lc3BhY2UgV1RS
IHsKIApAQCAtNDEsNCArNDYsMzggQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmRvQXN5bmNU
YXNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCiAgICAgfSk7CiB9CiAKK3N0YXRpYyB2b2lkIHBsYXlC
YWNrRXZlbnRzKFVJU2NyaXB0Q29udGV4dCAqY29udGV4dCwgTlNTdHJpbmcgKmV2ZW50U3RyZWFt
LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOworICAg
IE5TQXJyYXkgKmV2ZW50RGljdHMgPSBbTlNKU09OU2VyaWFsaXphdGlvbiBKU09OT2JqZWN0V2l0
aERhdGE6W2V2ZW50U3RyZWFtIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5n
XSBvcHRpb25zOjAgZXJyb3I6JmVycm9yXTsKKworICAgIGlmIChlcnJvcikgeworICAgICAgICBO
U0xvZyhAIkVSUk9SOiAlQCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IHVuc2lnbmVkIGNhbGxiYWNrSUQgPSBjb250ZXh0LT5wcmVwYXJlRm9yQXN5bmNUYXNrKGNhbGxi
YWNrLCBDYWxsYmFja1R5cGVOb25QZXJzaXN0ZW50KTsKKworICAgIE5TV2luZG93ICp3aW5kb3cg
PSBbVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmll
dygpIHdpbmRvd107CisgICAgW0V2ZW50U2VyaWFsaXplciBwbGF5RXZlbnRTdHJlYW06ZXZlbnRE
aWN0cyBpbldpbmRvdzp3aW5kb3cgY29tcGxldGlvbkhhbmRsZXI6XiB7CisgICAgICAgIGNvbnRl
eHQtPmFzeW5jVGFza0NvbXBsZXRlKGNhbGxiYWNrSUQpOworICAgIH1dOworfQorCit2b2lkIFVJ
U2NyaXB0Q29udHJvbGxlcjo6YmVnaW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sK
KyAgICBwbGF5QmFja0V2ZW50cyhtX2NvbnRleHQsIGJlZ2luU3dpcGVCYWNrRXZlbnRTdHJlYW0o
KSwgY2FsbGJhY2spOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNr
U3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBwbGF5QmFja0V2ZW50cyhtX2NvbnRl
eHQsIGNvbXBsZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0oKSwgY2FsbGJhY2spOworfQorCit2b2lk
IFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpTU3RyaW5n
UmVmIGV2ZW50U3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIFJldGFpblB0cjxO
U1N0cmluZz4gbnNTdHJpbmcgPSBhZG9wdE5TKChOU1N0cmluZyAqKUpTU3RyaW5nQ29weUNGU3Ry
aW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGV2ZW50U3RyZWFtKSk7CisgICAgcGxheUJhY2tFdmVu
dHMobV9jb250ZXh0LCBuc1N0cmluZy5nZXQoKSwgY2FsbGJhY2spOworfQorCiB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NzYyMWI2Y2Q0MDUyYmQxOWMxY2FjOTYxOGU3NDk2N2NhM2RmZDYzOC4uN2Q0MzdiYzhiZjk2MzI3
ZTZlMzdmM2JjY2IwODU1MWMyMmMzYzIwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE2LTA5
LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFN3
aXBlIGdlc3R1cmUgdGVzdHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjMzNzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHN3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWw6CisgICAgICAgICogc3dpcGUv
bWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBz
d2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbDoKKyAgICAgICAgKiBzd2lw
ZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN3
aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sOgorICAgICAgICAqIHN3aXBlL3B1
c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBzd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dp
cGluZy1jcmFzaC5odG1sOgorICAgICAgICAqIHN3aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0Lmpz
OgorICAgICAgICAobWVhc3VyZWREdXJhdGlvblNob3VsZEJlTGVzc1RoYW4pOgorICAgICAgICAo
c3RhcnRTd2lwZUdlc3R1cmUpOgorICAgICAgICAoY29tcGxldGVTd2lwZUdlc3R1cmUpOgorICAg
ICAgICAocGxheUV2ZW50U3RyZWFtKToKKyAgICAgICAgKGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9s
bEV2ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQp
OiBEZWxldGVkLgorICAgICAgICAoZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaCk6IERlbGV0ZWQu
CisgICAgICAgIChldmVudFF1ZXVlLl9wcm9jZXNzRXZlbnRRdWV1ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChldmVudFF1ZXVlLl9wcm9jZXNzRXZlbnRRdWV1ZVNvb24pOiBEZWxldGVkLgorICAgICAg
ICAqIHN3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIHN3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMu
aHRtbDogUmVtb3ZlZC4KKwogMjAxNi0wOS0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMDQ4MzkpOiBbbWFjLXdrMV0gTGF5b3V0VGVz
dCB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLXdlYmdsY29udGV4dGxvc3QtcHJldmVudC1kZWZh
dWx0Lmh0bWwgaXMgYSBmbGFreSB0aW1lb3V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYmRmYjE2NDhhZDM3ZWVlNzRkZDY4ZGJmOWQwNjNm
MDNlNTZlM2U2MS4uODJhOTVkZGM2OTkzZjI2Y2E4N2I4Yjg1OTYwZTdjZDY0OTc2MmU1YyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTE0
LDEyICs1MTQsNiBAQCB3ZWJraXQub3JnL2IvMTU4NjM5IFsgUmVsZWFzZSBZb3NlbWl0ZSBdIGlt
cG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL2Jsb2ItZAogIyA8cmRhcjovL3Byb2JsZW0v
MjUwNjMxMjg+CiBbIFNpZXJyYSsgXSBtZWRpYS9tZWRpYS1jb250cm9scy1kcmFnLXRpbWVsaW5l
LXNldC1jb250cm9scy1wcm9wZXJ0eS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIAotIyA8cmRhcjov
L3Byb2JsZW0vMjMzNzk5MzA+IHN3aXBlIHRlc3RzIGNyYXNoaW5nCi1bIFNpZXJyYSsgXSBzd2lw
ZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sIFsgU2tpcCBdCi1bIFNpZXJyYSsgXSBzd2lw
ZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbCBbIFNraXAgXQotWyBTaWVycmEr
IF0gc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwgWyBTa2lwIF0KLVsgU2ll
cnJhKyBdIHN3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMuaHRtbCBbIFNraXAg
XQotCiAjIEhpdHRpbmcgIlRoZSBjZXJ0aWZpY2F0ZSBmb3IgdGhpcyBzZXJ2ZXIgaXMgaW52YWxp
ZCIgbG9hZGluZyBlcnJvciAobm90IGhhcHBlbmluZyBpbiBXSzEpCiB3ZWJraXQub3JnL2IvMTYw
NDQ1IFsgU2llcnJhKyBdIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvdXBncmFkZS1pbnNlY3VyZS1mZXRjaC1pbi13b3Jr
ZXIuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2MDQ0NSBbIFNpZXJyYSsgXSBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91cGdyYWRlLWluc2VjdXJlLXJl
cXVlc3RzL3VwZ3JhZGUtaW5zZWN1cmUtZmV0Y2gtaW4tbWFpbi1mcmFtZS5odG1sIFsgRmFpbHVy
ZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lw
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lw
ZS1leHBlY3RlZC50eHQKaW5kZXggZTNkM2UwMGFiOWQwYmZmZmU2NjlkNmFkODlhMDE3YWY1N2Y3
MGI4OS4uODlkZWNmZDRjMzcxMjVjZmI1NTk4MTE5Njg5YzNmMGM0YTFkODg0ZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVk
LnR4dApAQCAtMSwxMCArMSw2IEBACi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5
YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwg
ZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQorc3RhcnRTd2lwZUdlc3R1cmUKIGRp
ZEJlZ2luU3dpcGUKLXN3aXBlIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3
aXBlIGV2ZW50IChkZWx0YSAyNTYgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRl
bHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKK2NvbXBsZXRlU3dpcGVHZXN0dXJlCiB3aWxsRW5kU3dp
cGUKIGRpZEVuZFN3aXBlCiBkaWRSZW1vdmVTd2lwZVNuYXBzaG90CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sIGIvTGF5b3V0VGVzdHMv
c3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAppbmRleCBjZjdmNzVjYjEzOWI1NGI1
MTUxNzhhMDczYjk4YWQwNjczZGRhNjgzLi44NzFhMmJjNjQ2YjhkNGFlODY5NDYzN2U4MDAzYTNi
NGIzMjQ1YTZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFj
ay1zd2lwZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3
aXBlLmh0bWwKQEAgLTYsMjggKzYsMTAgQEAgaHRtbCB7CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zd2lwZS10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiBz
dGFydFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAx
MDApOwotCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4n
KTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnYmVnYW4nKTsKLSAg
ICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnY2hhbmdlZCcpOwotfQotCi1m
dW5jdGlvbiBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVl
U3dpcGVFdmVudCgxLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBl
RXZlbnQoMjU2LCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZl
bnQoMCwgMCwgJ2VuZGVkJyk7Ci19Ci0KIGZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVDYWxsYmFjaygp
CiB7CiAgICAgbG9nKCJkaWRCZWdpblN3aXBlIik7CiAKLSAgICBzaG91bGRCZShmYWxzZSwgZXZl
bnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJFdmVudCBxdWV1ZSBzaG91bGQgYmUgZW1wdHku
IEJvdGggc2Nyb2xsIGV2ZW50cyBzaG91bGQgYmUgcmVxdWlyZWQgdG8gc3RhcnQgdGhlIHN3aXBl
IGJlY2F1c2Ugb2YgdGhlIHN3aXBlLXN0YXJ0IGh5c3RlcmVzaXMuIik7Ci0KICAgICBjb21wbGV0
ZVN3aXBlR2VzdHVyZSgpOwogfQogCkBAIC00Miw3ICsyNCw2IEBAIGZ1bmN0aW9uIGRpZEVuZFN3
aXBlQ2FsbGJhY2soKQogewogICAgIGxvZygiZGlkRW5kU3dpcGUiKTsKIAotICAgIHNob3VsZEJl
KDAsIGV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpLCAiRXZlbnQgcXVldWUgc2hvdWxkIGJl
IGVtcHR5LiBUaGUgc3dpcGUgaXNuJ3QgY29tcGxldGUgdW50aWwgd2Ugc2VlIHRoZSBlbmQgb2Yg
dGhlIGdlc3R1cmUuIik7CiAgICAgc3RhcnRNZWFzdXJpbmdEdXJhdGlvbigic25hcHNob3RSZW1v
dmFsIik7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlu
bmluZy1yZXF1aXJlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZy
YW1lLXBpbm5pbmctcmVxdWlyZW1lbnQtZXhwZWN0ZWQudHh0CmluZGV4IDYzNTk3NDA1NDg0NzZj
OGQwOWZiNGJiMzdjNzUyNDRiOTBiMzkwZDYuLmNlNzY2ODE5NzIyMDk1MzVlMjRjZTA3MzcwZTMw
NmEwOTgyNTBjZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlu
bmluZy1yZXF1aXJlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvbWFp
bi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4cGVjdGVkLnR4dApAQCAtMSwyMyArMSw4IEBA
Ci1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50
IChkZWx0YSAxMCAwLCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBw
aGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2Vk
JykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2
ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEw
IDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2No
YW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3Jv
bGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVs
dGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFz
ZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKLXN3
aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRl
bHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2Ug
J2NoYW5nZWQnKQorc3RhcnRTd2lwZUdlc3R1cmUKK2NvbXBsZXRlU3dpcGVHZXN0dXJlCitzdGFy
dFN3aXBlR2VzdHVyZQogZGlkQmVnaW5Td2lwZQotc3dpcGUgZXZlbnQgKGRlbHRhIDEgMCwgcGhh
c2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDI1NiAwLCBwaGFzZSAnY2hhbmdlZCcp
Ci1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQorY29tcGxldGVTd2lwZUdl
c3R1cmUKIHdpbGxFbmRTd2lwZQogZGlkRW5kU3dpcGUKIGRpZFJlbW92ZVN3aXBlU25hcHNob3QK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJl
bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVt
ZW50Lmh0bWwKaW5kZXggNjIxNTU0NDg0ZjA0ZmYzOTc1YmYyZjQxOGUxOGZlYzgzYzYyZjM1Yi4u
YTM2OWI4MjFiOWQ5YzJlMDM3OGRmNjI3MmVkMDE5ZjUyYWUyZWFiOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0bWwKQEAg
LTYsNDggKzYsMjQgQEAgaHRtbCB7CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9z
d2lwZS10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiBzdGFydFN3aXBlR2Vz
dHVyZSgpCi17Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAxMDApOwogCitmdW5j
dGlvbiBydW5UZXN0KCkKK3sKICAgICAvLyBUaGUgZmlyc3Qgc3dpcGUgc2hvdWxkIGZhaWwgYmVj
YXVzZSB3ZSdyZSBzY3JvbGxlZCB0byB0aGUgbWlkZGxlIG9mIHRoZSBkb2N1bWVudAogICAgIC8v
IGFuZCB0aGlzIGlzIGFsbCBhIHNpbmdsZSBnZXN0dXJlLiBXZSBjYW4gb25seSBzdGFydCBzd2lw
ZXMgaWYgd2UgKmJlZ2luKgogICAgIC8vIHBpbm5lZCB0byB0aGUgZWRnZS4KLSAgICBldmVudFF1
ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUu
ZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVl
dWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVT
Y3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3Jv
bGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxF
dmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVu
dCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgx
MCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwg
MCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwg
J2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2No
YW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5n
ZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnZW5kZWQnKTsK
LQotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgIHRlc3RSdW5uZXIuY2xlYXJUZXN0UnVubmVyQ2FsbGJhY2tzKCk7Ci0gICAgICAgIHRl
c3RSdW5uZXIuaW5zdGFsbERpZEJlZ2luU3dpcGVDYWxsYmFjayhkaWRCZWdpblN3aXBlQ2FsbGJh
Y2spOwotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxXaWxsRW5kU3dpcGVDYWxsYmFjayh3aWxs
RW5kU3dpcGVDYWxsYmFjayk7Ci0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZEVuZFN3aXBl
Q2FsbGJhY2soZGlkRW5kU3dpcGVDYWxsYmFjayk7Ci0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFs
bERpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayhkaWRSZW1vdmVTd2lwZVNuYXBzaG90Q2Fs
bGJhY2spOworICAgIHN0YXJ0U3dpcGVHZXN0dXJlKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgY29t
cGxldGVTd2lwZUdlc3R1cmUoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5j
bGVhclRlc3RSdW5uZXJDYWxsYmFja3MoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFs
bERpZEJlZ2luU3dpcGVDYWxsYmFjayhkaWRCZWdpblN3aXBlQ2FsbGJhY2spOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5pbnN0YWxsV2lsbEVuZFN3aXBlQ2FsbGJhY2sod2lsbEVuZFN3aXBlQ2Fs
bGJhY2spOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkRW5kU3dpcGVDYWxsYmFj
ayhkaWRFbmRTd2lwZUNhbGxiYWNrKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbERp
ZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayhkaWRSZW1vdmVTd2lwZVNuYXBzaG90Q2FsbGJh
Y2spOyAgICAKIAotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IC8vIFRoZSBzZWNvbmQgc3dpcGUgc2hvdWxkIHN1Y2NlZWQgYmVjYXVzZSB3ZSBhcmUgbm93IHNj
cm9sbGVkIHRvIHRoZSBsZWZ0IGVkZ2UuCi0gICAgICAgICAgICBldmVudFF1ZXVlLmVucXVldWVT
d2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgICAgICAgICAgZXZlbnRRdWV1ZS5lbnF1
ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAgICAgICAgICBldmVudFF1ZXVlLmVu
cXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICAgICAgfSwgMCk7Ci0gICAg
fSkKLX0KLQotZnVuY3Rpb24gY29tcGxldGVTd2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50UXVl
dWUuZW5xdWV1ZVN3aXBlRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVu
cXVldWVTd2lwZUV2ZW50KDI1NiwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVl
dWVTd2lwZUV2ZW50KDAsIDAsICdlbmRlZCcpOworICAgICAgICAgICAgc3RhcnRTd2lwZUdlc3R1
cmUoZnVuY3Rpb24gKCkgeyBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpOyB9KTsKKyAgICAgICAgfSk7
CisgICAgfSk7CiB9CiAKIGZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVOb3RSZWFjaGVkQ2FsbGJhY2so
KQpAQCAtNTgsMTAgKzM0LDYgQEAgZnVuY3Rpb24gZGlkQmVnaW5Td2lwZU5vdFJlYWNoZWRDYWxs
YmFjaygpCiBmdW5jdGlvbiBkaWRCZWdpblN3aXBlQ2FsbGJhY2soKQogewogICAgIGxvZygiZGlk
QmVnaW5Td2lwZSIpOwotCi0gICAgc2hvdWxkQmUoZmFsc2UsIGV2ZW50UXVldWUuaGFzUGVuZGlu
Z0V2ZW50cygpLCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5LiBCb3RoIHNjcm9sbCBldmVu
dHMgc2hvdWxkIGJlIHJlcXVpcmVkIHRvIHN0YXJ0IHRoZSBzd2lwZSBiZWNhdXNlIG9mIHRoZSBz
d2lwZS1zdGFydCBoeXN0ZXJlc2lzLiIpOwotCi0gICAgY29tcGxldGVTd2lwZUdlc3R1cmUoKTsK
IH0KIAogZnVuY3Rpb24gd2lsbEVuZFN3aXBlQ2FsbGJhY2soKQpAQCAtNzUsNyArNDcsNiBAQCBm
dW5jdGlvbiBkaWRFbmRTd2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRpZEVuZFN3aXBlIik7
CiAKLSAgICBzaG91bGRCZSgwLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKSwgIkV2ZW50
IHF1ZXVlIHNob3VsZCBiZSBlbXB0eS4gVGhlIHN3aXBlIGlzbid0IGNvbXBsZXRlIHVudGlsIHdl
IHNlZSB0aGUgZW5kIG9mIHRoZSBnZXN0dXJlLiIpOwogICAgIHN0YXJ0TWVhc3VyaW5nRHVyYXRp
b24oInNuYXBzaG90UmVtb3ZhbCIpOwogfQogCkBAIC0xMjEsOCArOTIsOSBAQCB3aW5kb3cub25s
b2FkID0gZnVuY3Rpb24gKCkgewogICAgIH0KIAogICAgIC8vIFNlY29uZCBwYWdlIGxvYWRlZC4K
LSAgICB3aW5kb3cuc2Nyb2xsVG8oMTAwMCwgMCk7Ci0gICAgc3RhcnRTd2lwZUdlc3R1cmUoKTsK
KyAgICB3aW5kb3cuc2Nyb2xsVG8oMTAwLCAwKTsKKworICAgIHJ1blRlc3QoKTsKIH07CiA8L3Nj
cmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1j
YWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3Rh
dGUtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0CmluZGV4IGUzZDNlMDBhYjlkMGJmZmZl
NjY5ZDZhZDg5YTAxN2FmNTdmNzBiODkuLjg5ZGVjZmQ0YzM3MTI1Y2ZiNTU5ODExOTY4OWMzZjBj
NGExZDg4NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQt
YmFjay1zd2lwZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRl
LWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSw2IEBACi1zd2lwZSBl
dmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAx
IDAsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5n
ZWQnKQorc3RhcnRTd2lwZUdlc3R1cmUKIGRpZEJlZ2luU3dpcGUKLXN3aXBlIGV2ZW50IChkZWx0
YSAxIDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAyNTYgMCwgcGhhc2Ug
J2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKK2NvbXBs
ZXRlU3dpcGVHZXN0dXJlCiB3aWxsRW5kU3dpcGUKIGRpZEVuZFN3aXBlCiBkaWRSZW1vdmVTd2lw
ZVNuYXBzaG90CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVk
LWJhY2stc3dpcGUuaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFj
ay1zd2lwZS5odG1sCmluZGV4IDU2ZGFkYTQ4OTA0MjhjNDlkZDJkNzFmNzY4NjA5MDRlMDFmODQz
MWYuLjlhOGRjOWQ3ZDlhMTA4ODc1OTI1ZWU0ZDI4OTk3ZTUzODYyZTM4NzAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sCkBAIC02
LDI4ICs2LDExIEBAIGh0bWwgewogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3dp
cGUtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gc3RhcnRTd2lwZUdlc3R1
cmUoKQotewotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKLQotICAgIGV2
ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRR
dWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5l
bnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLX0KLQotZnVuY3Rpb24gY29tcGxl
dGVTd2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMSwg
MCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDI1NiwgMCwg
J2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdlbmRl
ZCcpOwotfQogCiBmdW5jdGlvbiBkaWRCZWdpblN3aXBlQ2FsbGJhY2soKQogewogICAgIGxvZygi
ZGlkQmVnaW5Td2lwZSIpOwogCi0gICAgc2hvdWxkQmUoZmFsc2UsIGV2ZW50UXVldWUuaGFzUGVu
ZGluZ0V2ZW50cygpLCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5LiBCb3RoIHNjcm9sbCBl
dmVudHMgc2hvdWxkIGJlIHJlcXVpcmVkIHRvIHN0YXJ0IHRoZSBzd2lwZSBiZWNhdXNlIG9mIHRo
ZSBzd2lwZS1zdGFydCBoeXN0ZXJlc2lzLiIpOwotCiAgICAgY29tcGxldGVTd2lwZUdlc3R1cmUo
KTsKIH0KIApAQCAtNDIsNyArMjUsNiBAQCBmdW5jdGlvbiBkaWRFbmRTd2lwZUNhbGxiYWNrKCkK
IHsKICAgICBsb2coImRpZEVuZFN3aXBlIik7CiAKLSAgICBzaG91bGRCZSgwLCBldmVudFF1ZXVl
Lmhhc1BlbmRpbmdFdmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBiZSBlbXB0eS4gVGhlIHN3
aXBlIGlzbid0IGNvbXBsZXRlIHVudGlsIHdlIHNlZSB0aGUgZW5kIG9mIHRoZSBnZXN0dXJlLiIp
OwogICAgIHN0YXJ0TWVhc3VyaW5nRHVyYXRpb24oInNuYXBzaG90UmVtb3ZhbCIpOwogfQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2st
d2hpbGUtc3dpcGluZy1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNo
U3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC1leHBlY3RlZC50eHQK
aW5kZXggZGMzNGU5MmQ1ODg0ZWI4ZDFkMzE1MTViNWE4ODYyNzU2ZWIyOTM0Mi4uMDA1MDc1NWY1
NzM3ZDRjZDdhM2MyNGM1NzYyNGI3YTdkZjFjMjYzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2gtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMt
YmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDQgQEAKLXN3
aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRl
bHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAn
Y2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lw
ZSBldmVudCAoZGVsdGEgMjU2IDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0
YSAwIDAsIHBoYXNlICdlbmRlZCcpCitwbGF5RXZlbnRTdHJlYW0KK3BsYXlFdmVudFN0cmVhbQor
Y29tcGxldGVTd2lwZUdlc3R1cmUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVz
aFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbCBiL0xheW91
dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNy
YXNoLmh0bWwKaW5kZXggMzZlZjM5ZmI0M2U0MzBkYjkxNDYwMzg0NmZkMmJmN2UzMjkwNjMwMS4u
M2Y4N2EwMzllZTdhOTNjYjY0YTJmMGU2NWQ1MGNiYTA5NzA0NmNjMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmct
Y3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGlj
LWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1sCkBAIC02LDM3ICs2LDY3IEBAIGh0bWwgewog
PC9zdHlsZT4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0PgotZnVuY3Rpb24gc3RhcnRTd2lwZUdlc3R1cmUoKQorZnVuY3Rpb24gcnVuVGVz
dCgpCiB7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAxMDApOwotCi0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1
ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnYmVnYW4nKTsKLSAgICAKLSAgICBldmVudFF1
ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goZ29CYWNrKTsKKyAgICBwbGF5RXZlbnRTdHJlYW0o
YFt7CisgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAwLAorICAgICAgICAia0NHRXZlbnRTY3Jv
bGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUi
IDogNiwKKyAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgImtDR0V2
ZW50R2VzdHVyZVBoYXNlIiA6IDEyOCwKKyAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAw
LCAzMDB9IgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDgs
CisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYxLAorICAgICAgICAia0NHU0V2
ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAia0NHRXZlbnRHZXN0dXJlU3RhcnRFbmRTZXJp
ZXNUeXBlIiA6IDYsCisgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezAsIDB9IgorICAgICAg
fSwKKyAgICAgIHsKKyAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAg
ICAgInJlbGF0aXZlVGltZU1TIiA6IDgsCisgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQw
MCwgMzAwfSIsCisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAxLAorICAgICAgICAi
a0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgImtDR1NFdmVudFR5
cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMgorICAg
ICAgfSwKKyAgICAgIHsKKyAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDgsCisgICAgICAgICJ3
aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2
ZW50U2Nyb2xsUGhhc2UiIDogMSwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRp
bnVvdXMiIDogMSwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIi
IDogMSwKKyAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgfV1gLCBnb0Jh
Y2spOwogfQogCiBmdW5jdGlvbiBnb0JhY2soKQogewogICAgIHdpbmRvdy5oaXN0b3J5LmJhY2so
KTsKIAotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChjb250aW51ZVN3aXBl
R2VzdHVyZSk7CisgICAgc2V0VGltZW91dChjb250aW51ZVRlc3QsIDApOwogfQogCi1mdW5jdGlv
biBjb250aW51ZVN3aXBlR2VzdHVyZSgpCitmdW5jdGlvbiBjb250aW51ZVRlc3QoKQogewotICAg
IGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdjaGFuZ2VkJyk7Ci0KLSAgICBl
dmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goY29tcGxldGVTd2lwZUdlc3R1cmUpOwor
ICAgIHBsYXlFdmVudFN0cmVhbShgWworICAgICAgeworICAgICAgICAicmVsYXRpdmVUaW1lTVMi
IDogMCwKKyAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAxLAorICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dFBvaW50RGVsdGFBeGlzMiIgOiAyMCwKKyAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAy
MgorICAgICAgfV1gLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGNvbXBsZXRlVGVzdCgpOworICAg
ICAgfSk7CiB9CiAKLWZ1bmN0aW9uIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCkKK2Z1bmN0aW9uIGNv
bXBsZXRlVGVzdCgpCiB7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgxLCAwLCAn
Y2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMjU2LCAwLCAnY2hh
bmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ2VuZGVkJyk7
Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2godGVzdENvbXBsZXRlKTsK
KyAgICBjb21wbGV0ZVN3aXBlR2VzdHVyZSh0ZXN0Q29tcGxldGUpOwogfQogCiBmdW5jdGlvbiBk
aWRCZWdpblN3aXBlQ2FsbGJhY2soKQpAQCAtNzksNyArMTA5LDcgQEAgd2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgdXBkYXRlQ29udGVudCgpOwogCiAgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgc3RhcnRTd2lwZUdlc3R1cmUoKTsKKyAg
ICAgICAgICAgIHJ1blRlc3QoKTsKICAgICAgICAgfSwgMCk7CiAgICAgfSwgMCk7CiB9OwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMgYi9MYXlv
dXRUZXN0cy9zd2lwZS9yZXNvdXJjZXMvc3dpcGUtdGVzdC5qcwppbmRleCBkZDhlOTAwOWZmZTg0
OTU5MDA5OWZkMTgzMjNiY2UzNzNiNzQwNjgwLi4wYzIzNjVkMTMxM2ExODA2NzdiOTFhZjJiNDQ5
MzNhZTQwODM4Y2NkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9yZXNvdXJjZXMvc3dp
cGUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9yZXNvdXJjZXMvc3dpcGUtdGVzdC5q
cwpAQCAtMSw1MCArMSwzIEBACi12YXIgZXZlbnRRdWV1ZSA9IHsKLSAgICBlbnF1ZXVlU2Nyb2xs
RXZlbnQ6IGZ1bmN0aW9uICh4LCB5LCBwaGFzZSkgewotICAgICAgICB0aGlzLl9xdWV1ZS5wdXNo
KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGxvZygic2Nyb2xsIGV2ZW50IChkZWx0YSAiICsg
eCArICIgIiArIHkgKyAiLCBwaGFzZSAnIiArIHBoYXNlICsgIicpIik7Ci0gICAgICAgICAgICB3
aW5kb3cuZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KHgsIHksIHBoYXNlLCAnbm9uZScpOwotICAgICAgICB9KTsKLSAgICAgICAgdGhpcy5fcHJvY2Vz
c0V2ZW50UXVldWVTb29uKCk7Ci0gICAgfSwKLQotICAgIGVucXVldWVTd2lwZUV2ZW50OiBmdW5j
dGlvbiAoeCwgeSwgcGhhc2UpIHsKLSAgICAgICAgdGhpcy5fcXVldWUucHVzaChmdW5jdGlvbiAo
KSB7Ci0gICAgICAgICAgICBsb2coInN3aXBlIGV2ZW50IChkZWx0YSAiICsgeCArICIgIiArIHkg
KyAiLCBwaGFzZSAnIiArIHBoYXNlICsgIicpIik7Ci0gICAgICAgICAgICB3aW5kb3cuZXZlbnRT
ZW5kZXIuc3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoeCwgeSwgcGhhc2Us
ICdub25lJyk7Ci0gICAgICAgIH0pOwotICAgICAgICB0aGlzLl9wcm9jZXNzRXZlbnRRdWV1ZVNv
b24oKTsKLSAgICB9LAotCi0gICAgaGFzUGVuZGluZ0V2ZW50czogZnVuY3Rpb24gKCkgewotICAg
ICAgICByZXR1cm4gdGhpcy5fcXVldWUubGVuZ3RoICE9IDA7Ci0gICAgfSwKLQotICAgIGNhbGxB
ZnRlckV2ZW50RGlzcGF0Y2g6IGZ1bmN0aW9uIChjYWxsYmFjaykgewotICAgICAgICB2YXIgaW50
ZXJ2YWwgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7IAotICAgICAgICAgICAgaWYgKCFldmVu
dFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKSkgewotICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2
YWwoaW50ZXJ2YWwpOwotICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0sIDApOwotICAgIH0sCi0KLSAgICBfcXVldWU6IFtdLAotCi0gICAgX3Byb2Nl
c3NFdmVudFF1ZXVlOiBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGlmICghdGhpcy5fcXVldWUubGVu
Z3RoKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHZhciBpdGVtID0gdGhpcy5fcXVl
dWUuc2hpZnQoKTsKLSAgICAgICAgaXRlbSgpOwotICAgICAgICB0aGlzLl9wcm9jZXNzRXZlbnRR
dWV1ZVNvb24oKTsKLSAgICB9LAotCi0gICAgX3Byb2Nlc3NFdmVudFF1ZXVlU29vbjogZnVuY3Rp
b24gKCkgewotICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fcHJvY2Vzc2luZ1RpbWVvdXQpOwot
ICAgICAgICB0aGlzLl9wcm9jZXNzaW5nVGltZW91dCA9IHNldFRpbWVvdXQodGhpcy5fcHJvY2Vz
c0V2ZW50UXVldWUuYmluZCh0aGlzKSwgMCk7Ci0gICAgfQotfQotCiBmdW5jdGlvbiBzaG91bGRC
ZShleHBlY3RlZCwgYWN0dWFsLCBtZXNzYWdlKQogewogICAgIGlmIChleHBlY3RlZCAhPSBhY3R1
YWwpCkBAIC04NCw0ICszNywzNyBAQCBmdW5jdGlvbiBtZWFzdXJlZER1cmF0aW9uU2hvdWxkQmVM
ZXNzVGhhbihrZXksIHRpbWVJbk1TLCBtZXNzYWdlKQogICAgIHZhciBkdXJhdGlvbiA9IERhdGUu
bm93KCkgLSB3aW5kb3cubG9jYWxTdG9yYWdlW2tleSArICJzd2lwZVN0YXJ0VGltZSJdOwogICAg
IGlmIChkdXJhdGlvbiA+PSB0aW1lSW5NUykKICAgICAgICAgbG9nKCJGYWlsdXJlLiAiICsgbWVz
c2FnZSArICIgKGV4cGVjdGVkOiAiICsgdGltZUluTVMgKyAiLCBhY3R1YWw6ICIgKyBkdXJhdGlv
biArICIpIik7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQorCitmdW5jdGlvbiBz
dGFydFN3aXBlR2VzdHVyZShjYWxsYmFjaykKK3sKKyAgICBsb2coInN0YXJ0U3dpcGVHZXN0dXJl
Iik7CisgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgKGZ1bmN0aW9uKCkgeworICAg
ICAgICB1aUNvbnRyb2xsZXIuYmVnaW5CYWNrU3dpcGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICB9KTsKKyAgICB9KSgp
O2AsIGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9KTsKK30KKworZnVuY3Rpb24gY29tcGxldGVT
d2lwZUdlc3R1cmUoY2FsbGJhY2spCit7CisgICAgbG9nKCJjb21wbGV0ZVN3aXBlR2VzdHVyZSIp
OworICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgIChmdW5jdGlvbigpIHsKKyAgICAg
ICAgdWlDb250cm9sbGVyLmNvbXBsZXRlQmFja1N3aXBlKGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgfSk7CisgICAgfSko
KTtgLCBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fSk7Cit9CisKK2Z1bmN0aW9uIHBsYXlFdmVu
dFN0cmVhbShzdHJlYW0sIGNhbGxiYWNrKQoreworICAgIGxvZygicGxheUV2ZW50U3RyZWFtIik7
CisgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgKGZ1bmN0aW9uKCkgeworICAgICAg
ICB1aUNvbnRyb2xsZXIucGxheUJhY2tFdmVudFN0cmVhbShcYCR7c3RyZWFtfVxgLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAg
ICAgIH0pOworICAgIH0pKCk7YCwgY2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkge30pOworfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVyZXNpcy1mYWlsdXJl
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lz
LWZhaWx1cmVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWE0
ODBhOTgwNGNlMjE5MTRjOGY5ODJmNWJjMDExOWU3ZGViZTU3OS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9zd2lwZS1zdGFy
dC1oeXN0ZXJlc2lzLWZhaWx1cmVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIy
ICswLDAgQEAKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3Jv
bGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEg
MCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2Vu
ZGVkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwg
ZXZlbnQgKGRlbHRhIDIgMiwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAw
LCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVk
JykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZl
bnQgKGRlbHRhIDAgMiwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAwLCBw
aGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykK
LXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQg
KGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAyLCBwaGFz
ZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKLXN3
aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRl
bHRhIDMgMSwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAn
Y2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKLXN3aXBl
IGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMuaHRtbCBiL0xheW91dFRl
c3RzL3N3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZTc1ZTY3Yjk3NDEyMzkyY2RiMTQ0N2VhNTdjMmIwNTU1MjNj
NWYwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9zd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBAQAotPGhlYWQ+Ci08c3R5bGU+Ci1odG1sIHsKLSAgICBm
b250LXNpemU6IDMycHQ7Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zd2lw
ZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBkb1Nob3J0U3dpcGVHZXN0
dXJlKCkKLXsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7Ci0KLSAgICAv
LyBUb3RhbCBkZWx0YSBvZiAxMCwgMDsgc2hvdWxkIG5vdCBiZSBlbm91Z2ggdG8gc3RhcnQgYSBz
d2lwZS4KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicp
OwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdiZWdhbicpOwotICAg
IGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1
ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goZG9EaWFnb25hbFN3aXBlR2VzdHVyZSk7Ci19Ci0K
LWZ1bmN0aW9uIGRvRGlhZ29uYWxTd2lwZUdlc3R1cmUoKQotewotICAgIC8vIFRvdGFsIGRlbHRh
IG9mIDIwLCAyMDsgdGhpcyBpcyBvcmRpbmFyaWx5IHN1ZmZpY2llbnQgbWFnbml0dWRlIHRvIHN0
YXJ0IGEgc3dpcGUsCi0gICAgLy8gYnV0IGlzIHRvbyBkaWFnb25hbCB0byBzdGFydCBhIHN3aXBl
LgotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0g
ICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMiwgMiwgJ2JlZ2FuJyk7Ci0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1
ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnZW5kZWQnKTsKLQotICAgIGV2ZW50UXVldWUu
Y2FsbEFmdGVyRXZlbnREaXNwYXRjaChkb1ZlcnRpY2FsU3dpcGVHZXN0dXJlKTsKLX0KLQotZnVu
Y3Rpb24gZG9WZXJ0aWNhbFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgLy8gVG90YWwgZGVsdGEgb2Yg
MCwgMjA7IHRoaXMgaXMgb3JkaW5hcmlseSBzdWZmaWNpZW50IG1hZ25pdHVkZSB0byBzdGFydCBh
IHN3aXBlLAotICAgIC8vIGJ1dCBpcyBjb21wbGV0ZWx5IHZlcnRpY2FsLCBzbyB3ZSB3b24ndCBz
dGFydCBhIHN3aXBlLgotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21h
eWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMiwgJ2JlZ2Fu
Jyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2NoYW5nZWQnKTsK
LSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnZW5kZWQnKTsKLQotICAg
IGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChkb0hvcml6b250YWxUaGVuVmVydGlj
YWxTd2lwZUdlc3R1cmUpOwotfQotCi1mdW5jdGlvbiBkb0hvcml6b250YWxUaGVuVmVydGljYWxT
d2lwZUdlc3R1cmUoKQotewotICAgIC8vIFRvdGFsIGRlbHRhIG9mIDEwLCAyMDsgdGhpcyBpcyBv
cmRpbmFyaWx5IHN1ZmZpY2llbnQgbWFnbml0dWRlIHRvIHN0YXJ0IGEgc3dpcGUsCi0gICAgLy8g
YnV0IGlzIHRvbyB2ZXJ0aWNhbCwgc28gd2Ugd29uJ3Qgc3RhcnQgYSBzd2lwZS4KLSAgICBldmVu
dFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVl
dWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5x
dWV1ZVNjcm9sbEV2ZW50KDAsIDIsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVl
U2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2
ZW50RGlzcGF0Y2goZG9SZWd1bGFyU3dpcGVHZXN0dXJlKTsKLX0KLQotZnVuY3Rpb24gZG9SZWd1
bGFyU3dpcGVHZXN0dXJlKCkKLXsKLSAgICAvLyBTd2FwIGluIGEgZGlmZmVyZW50IGNhbGxiYWNr
IHRoYXQgbWFrZXMgc3VyZSB3ZSAqZG8qIHJlYWNoIGRpZEJlZ2luU3dpcGUuCi0gICAgdGVzdFJ1
bm5lci5jbGVhclRlc3RSdW5uZXJDYWxsYmFja3MoKTsKLSAgICB2YXIgc2F3RGlkQmVnaW5Td2lw
ZSA9IGZhbHNlOwotICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZEJlZ2luU3dpcGVDYWxsYmFjayhm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIHNhd0RpZEJlZ2luU3dpcGUgPSB0cnVlOwotICAgICAgICAv
LyBOZWVkIGEgc3dpcGUtZW5kIGV2ZW50IHRvIGNsZWFuIHVwLgotICAgICAgICBldmVudFF1ZXVl
LmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdlbmRlZCcpOwotICAgIH0pOwotCi0gICAgdGVzdFJ1
bm5lci5pbnN0YWxsRGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgc2hvdWxkQmUodHJ1ZSwgc2F3RGlkQmVnaW5Td2lwZSwgIlRoZSBsYXN0IGdlc3R1
cmUgc2hvdWxkIHN0YXJ0IGEgc3dpcGUsIGJlY2F1c2UgaXQgaXMgc3VmZmljaWVudCBtYWduaXR1
ZGUgYW5kIGluIHRoZSBjb3JyZWN0IGRpcmVjdGlvbi4iKQotICAgICAgICB0ZXN0Q29tcGxldGUo
KTsKLSAgICB9KTsKLQotICAgIC8vIFRvdGFsIGRlbHRhIG9mIDMwLCAxMDsgdGhpcyBzaG91bGQg
c3RhcnQgYSBzd2lwZSBhcyB1c3VhbC4KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50
KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDMs
IDEsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdj
aGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVk
Jyk7Ci19Ci0KLWZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVOb3RSZWFjaGVkQ2FsbGJhY2soKQotewot
ICAgIGxvZygiRmFpbHVyZS4gU2hvdWxkIG5ldmVyIGJlZ2luIGEgc3dpcGUsIGJlY2F1c2UgYWxs
IG9mIHRoZSBhdHRlbXB0ZWQgc3dpcGVzIHNob3VsZCBmYWlsIGR1ZSB0byB0aGUgc3dpcGUtc3Rh
cnQgaHlzdGVyZXNpcy4iKTsKLX0KLQotZnVuY3Rpb24gaXNGaXJzdFBhZ2UoKQotewotICAgIHJl
dHVybiB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCJzZWNvbmQiKSA9PSAtMTsKLX0KLQot
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKLSAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRl
ciB8fCAhd2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhU
TUwgPSAiVGhpcyB0ZXN0IG11c3QgYmUgcnVuIGluIFdlYktpdFRlc3RSdW5uZXIuIjsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gaXNGaXJz
dFBhZ2UoKSA/ICJmaXJzdCIgOiAic2Vjb25kIjsKLQotICAgIGlmIChpc0ZpcnN0UGFnZSgpKSB7
Ci0gICAgICAgIGluaXRpYWxpemVTd2lwZVRlc3QoKTsKLQotICAgICAgICB0ZXN0UnVubmVyLmlu
c3RhbGxEaWRCZWdpblN3aXBlQ2FsbGJhY2soZGlkQmVnaW5Td2lwZU5vdFJlYWNoZWRDYWxsYmFj
ayk7Ci0KLSAgICAgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQ
YWdlQ2FjaGVQcmVmZXJlbmNlS2V5IiwgMSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uICgpIHsgCi0gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9
IHdpbmRvdy5sb2NhdGlvbi5ocmVmICsgIj9zZWNvbmQiOwotICAgICAgICB9LCAwKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRvU2hvcnRTd2lwZUdlc3R1cmUoKTsKLX07Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288236</attachid>
            <date>2016-09-07 20:51:48 -0700</date>
            <delta_ts>2016-09-08 00:52:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161675-20160907204923.patch</filename>
            <type>text/plain</type>
            <size>108737</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1NTgxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTcwNzhjNTg2MTZjMTU4YzBiMmNjMTk5ZjA2NDNjM2Ex
Mzk2OWIyYi4uNmQzNzFkY2I0MTk5OGZkZDNjYTQ0NjY1MWZlYTFkZTUyMTFlMDM3NSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDE2LTA5LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFN3aXBlIGdlc3R1cmUgdGVzdHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRm
b3JtUGxheUJhY2tFdmVudFN0cmVhbSk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6YmVnaW5CYWNrU3dpcGUpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNv
bXBsZXRlQmFja1N3aXBlKToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFs
aXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbTog
QWRkZWQuCisgICAgICAgIChldmVudElzT2ZUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZlR5cGVz
KToKKyAgICAgICAgKGV2ZW50SXNPZkdlc3R1cmVUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZkdl
c3R1cmVUeXBlcyk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBkaWN0aW9uYXJ5Rm9yRXZl
bnQ6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBjcmVhdGVF
dmVudEZvckRpY3Rpb25hcnk6aW5XaW5kb3c6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgr
W0V2ZW50U2VyaWFsaXplciBwbGF5RXZlbnRTdHJlYW06aW5XaW5kb3c6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFj
L1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1bm5lclNo
YXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTogQWRk
ZWQuCisgICAgICAgIChiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKToKKyAgICAgICAgKGNvbXBs
ZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0pOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICog
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF5QmFja0V2ZW50U3RyZWFtKToK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZSk6CisgICAg
ICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUpOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbSk6
CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1DbGVhckFsbENhbGxi
YWNrcyk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9zcGkv
Q29yZUdyYXBoaWNzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvc3Bp
L0lPS2l0U1BJLmg6IFJlbmFtZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tp
dFNQSS5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6cGxheUJhY2tFdmVudHMpOgor
ICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKToKKyAgICAg
ICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZSk6CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKToK
KwogMjAxNi0wOS0wNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydCByMjA1NTMzLgpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KaW5kZXggNTZlMjA3N2E0
YjJhMjBjMWRiOTFkYzlhMTBiZGRlNWYyMmNjNjQwYi4uY2E4NmVmN2UxN2E4ZDc2MTgxZmRlNDBj
ZmNlZTY2N2I4ZDdlMDU5YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlT
Y3JpcHRDb250cm9sbGVyTWFjLm1tCkBAIC00Myw2ICs0MywxOCBAQCB2b2lkIFVJU2NyaXB0Q29u
dHJvbGxlcjo6ZG9Bc3luY1Rhc2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKICAgICB9KTsKIH0KIAor
dm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJh
Y2spCit7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZShK
U1ZhbHVlUmVmIGNhbGxiYWNrKQoreworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxh
dGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKQoreworfQor
CiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVu
bmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmggYi9U
b29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvRXZlbnRTZXJpYWxp
emVyTWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDkwNWQ2N2Y1OTg5ZTBmYmQ5Nzk5YTM0Njg0MGU3OGVmODdm
MzNkZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJp
YWxpemF0aW9uL21hYy9FdmVudFNlcmlhbGl6ZXJNYWMuaApAQCAtMCwwICsxLDQwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgor
CitAaW50ZXJmYWNlIEV2ZW50U2VyaWFsaXplciA6IE5TT2JqZWN0CisKKysgKE5TRGljdGlvbmFy
eSAqKWRpY3Rpb25hcnlGb3JFdmVudDooQ0dFdmVudFJlZilldmVudCByZWxhdGl2ZVRvVGltZToo
Q0dFdmVudFRpbWVzdGFtcClyZWZlcmVuY2VUaW1lc3RhbXA7CisKKysgKENHRXZlbnRSZWYpY3Jl
YXRlRXZlbnRGb3JEaWN0aW9uYXJ5OihOU0RpY3Rpb25hcnkgKilkaWN0IGluV2luZG93OihOU1dp
bmRvdyAqKXdpbmRvdyByZWxhdGl2ZVRvVGltZTooQ0dFdmVudFRpbWVzdGFtcClyZWZlcmVuY2VU
aW1lc3RhbXA7CisKKysgKHZvaWQpcGxheUV2ZW50U3RyZWFtOihOU0FycmF5PE5TRGljdGlvbmFy
eSAqPiAqKWV2ZW50RGljdHMgaW5XaW5kb3c6KE5TV2luZG93ICopd2luZG93IGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkKF4pKCkpY29tcGxldGlvbkhhbmRsZXI7CisKK0BlbmQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMv
RXZlbnRTZXJpYWxpemVyTWFjLm1tIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlh
bGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMGI2OTZhMTUx
ZjdlZTIwNWVlYTZmNDE4MTk4YmE5NzVlNGI5ZTY0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1h
Yy5tbQpAQCAtMCwwICsxLDMwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiRXZlbnRTZXJpYWxpemVyTWFjLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNp
bXBvcnQgIkNvcmVHcmFwaGljc1NQSS5oIgorI2ltcG9ydCAiSU9LaXRTUEkuaCIKKyNpbXBvcnQg
PGFsZ29yaXRobT4KKyNpbXBvcnQgPG1hY2gvbWFjaF90aW1lLmg+CisjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CisKKyNkZWZpbmUgTU9VU0VfRVZFTlRfVFlQRVMgXAorICAgIChDR1NFdmVudFR5
cGUpa0NHRXZlbnRMZWZ0TW91c2VEb3duLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudExl
ZnRNb3VzZVVwLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudFJpZ2h0TW91c2VEb3duLCBc
CisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudFJpZ2h0TW91c2VVcCwgXAorICAgIChDR1NFdmVu
dFR5cGUpa0NHRXZlbnRNb3VzZU1vdmVkLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudExl
ZnRNb3VzZURyYWdnZWQsIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50UmlnaHRNb3VzZURy
YWdnZWQsIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50T3RoZXJNb3VzZURvd24sIFwKKyAg
ICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50T3RoZXJNb3VzZVVwLCBcCisgICAgKENHU0V2ZW50VHlw
ZSlrQ0dFdmVudE90aGVyTW91c2VEcmFnZ2VkCisKKyNkZWZpbmUgS0VZX0VWRU5UX1RZUEVTIFwK
KyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50S2V5RG93biwgXAorICAgIChDR1NFdmVudFR5cGUp
a0NHRXZlbnRLZXlVcCwgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRGbGFnc0NoYW5nZWQK
KworI2RlZmluZSBHRVNUVVJFX0VWRU5UX1RZUEVTIFwKKyAgICBrQ0dTRXZlbnRHZXN0dXJlLCBc
CisgICAga0NHU0V2ZW50Rmx1aWRUb3VjaEdlc3R1cmUsIFwKKyAgICBrQ0dTRXZlbnREb2NrQ29u
dHJvbAorCitib29sIGV2ZW50SXNPZlR5cGUoQ0dFdmVudFJlZiBldmVudCwgQ0dTRXZlbnRUeXBl
IHR5cGUpCit7CisgICAgcmV0dXJuIChDR1NFdmVudFR5cGUpQ0dFdmVudEdldFR5cGUoZXZlbnQp
ID09IHR5cGU7Cit9CisKK2Jvb2wgZXZlbnRJc09mVHlwZXMoQ0dFdmVudFJlZikgeyByZXR1cm4g
ZmFsc2U7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgLi4uIFR5cGVzPgorYm9vbCBldmVudElzT2ZU
eXBlcyhDR0V2ZW50UmVmIGV2ZW50LCBDR1NFdmVudFR5cGUgZmlyc3QsIFR5cGVzIC4uLiByZXN0
KQoreworICAgIHJldHVybiBldmVudElzT2ZUeXBlKGV2ZW50LCBmaXJzdCkgfHwgZXZlbnRJc09m
VHlwZXMoZXZlbnQsIHJlc3QuLi4pOworfQorCitib29sIGV2ZW50SXNPZkdlc3R1cmVUeXBlKENH
RXZlbnRSZWYgZXZlbnQsIElPSElERXZlbnRUeXBlIHR5cGUpCit7CisgICAgcmV0dXJuIChJT0hJ
REV2ZW50VHlwZSlDR0V2ZW50R2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGtDR0V2ZW50R2Vz
dHVyZUhJRFR5cGUpID09IHR5cGU7Cit9CisKK2Jvb2wgZXZlbnRJc09mR2VzdHVyZVR5cGVzKENH
RXZlbnRSZWYpIHsgcmV0dXJuIGZhbHNlOyB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIC4uLiBUeXBl
cz4KK2Jvb2wgZXZlbnRJc09mR2VzdHVyZVR5cGVzKENHRXZlbnRSZWYgZXZlbnQsIElPSElERXZl
bnRUeXBlIGZpcnN0LCBUeXBlcyAuLi4gcmVzdCkKK3sKKyAgICBpZiAoIWV2ZW50SXNPZlR5cGVz
KGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwgZmlyc3QpIHx8IGV2ZW50SXNPZkdl
c3R1cmVUeXBlcyhldmVudCwgcmVzdC4uLik7Cit9CisKKyNkZWZpbmUgRk9SX0VBQ0hfQ0dFVkVO
VF9JTlRFR0VSX0ZJRUxEKG1hY3JvKSBcCisgICAgbWFjcm8odHJ1ZSwga0NHU0V2ZW50VHlwZUZp
ZWxkKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRT
Y3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMx
KSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVs
LCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIpIFwKKyAgICBt
YWNybyhldmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVu
dFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMykgXAorICAgIG1hY3JvKGV2ZW50
SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtD
R1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBl
cyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxX
aGVlbEV2ZW50TW9tZW50dW1QaGFzZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50
LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZl
bnRQb2ludERlbHRhQXhpczEpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwga0NH
U0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50UG9p
bnREZWx0YUF4aXMyKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVu
dFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVs
dGFBeGlzMykgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3Jv
bGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCkg
XAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwg
a0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSkgXAorICAgIFwK
KyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dN
b3VzZUV2ZW50QnV0dG9uTnVtYmVyKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQs
IE1PVVNFX0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudENsaWNrU3RhdGUpIFwKKyAgICBtYWNy
byhldmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50
RGVsdGFYKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIE1PVVNFX0VWRU5UX1RZ
UEVTKSwga0NHTW91c2VFdmVudERlbHRhWSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2
ZW50LCBNT1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnRTdWJ0eXBlKSBcCisgICAgbWFj
cm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVu
dE51bWJlcikgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgS0VZX0VW
RU5UX1RZUEVTKSwga0NHS2V5Ym9hcmRFdmVudEF1dG9yZXBlYXQpIFwKKyAgICBtYWNybyhldmVu
dElzT2ZUeXBlcyhldmVudCwgS0VZX0VWRU5UX1RZUEVTKSwga0NHS2V5Ym9hcmRFdmVudEtleWJv
YXJkVHlwZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBLRVlfRVZFTlRfVFlQ
RVMpLCBrQ0dLZXlib2FyZEV2ZW50S2V5Y29kZSkgXAorICAgIFwKKyAgICBtYWNybyhldmVudElz
T2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyksIGtDR0V2ZW50R2VzdHVyZUhJRFR5
cGUpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBF
UyksIGtDR0V2ZW50R2VzdHVyZUJlaGF2aW9yKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMo
ZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVGbGF2b3IpIFwKKyAg
ICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyksIGtDR0V2
ZW50R2VzdHVyZU1hc2spIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVS
RV9FVkVOVF9UWVBFUyksIGtDR0V2ZW50R2VzdHVyZVBoYXNlKSBcCisgICAgbWFjcm8oZXZlbnRJ
c09mVHlwZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVTdGFn
ZSkgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElE
RXZlbnRUeXBlU2Nyb2xsKSwga0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMpIFwKKyAgICBc
CisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5h
dmlnYXRpb25Td2lwZSksIGtDR0V2ZW50U3dpcGVHZXN0dXJlRmxhZ0JpdHMpIFwKKyAgICBtYWNy
byhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3
aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVNYXNrKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2Vz
dHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50
R2VzdHVyZVN3aXBlTW90aW9uKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZl
bnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBl
VmFsdWUpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZl
bnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlRmxhdm9yKSBcCisgICAgXAor
ICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlcyhldmVudCwga0NHSElERXZlbnRUeXBlR2Vz
dHVyZVN0YXJ0ZWQsIGtDR0hJREV2ZW50VHlwZUdlc3R1cmVFbmRlZCksIGtDR0V2ZW50R2VzdHVy
ZVN0YXJ0RW5kU2VyaWVzVHlwZSkKKworI2RlZmluZSBGT1JfRUFDSF9DR0VWRU5UX0RPVUJMRV9G
SUVMRChtYWNybykgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VW
RU5UX1RZUEVTKSwga0NHRXZlbnRHZXN0dXJlUHJvZ3Jlc3MpIFwKKyAgICBcCisgICAgbWFjcm8o
ZXZlbnRJc09mVHlwZXMoZXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudFBy
ZXNzdXJlKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBr
SU9ISURFdmVudFR5cGVab29tKSwga0NHRXZlbnRHZXN0dXJlWm9vbURlbHRhWCkgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVab29tKSwga0NH
RXZlbnRHZXN0dXJlWm9vbURlbHRhWSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBl
KGV2ZW50LCBrSU9ISURFdmVudFR5cGVab29tKSwga0NHRXZlbnRHZXN0dXJlWm9vbVZhbHVlKSBc
CisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVu
dFR5cGVSb3RhdGlvbiksIGtDR0V2ZW50R2VzdHVyZVJvdGF0aW9uVmFsdWUpIFwKKyAgICBcCisg
ICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVNjcm9s
bCksIGtDR0V2ZW50R2VzdHVyZVNjcm9sbFgpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJl
VHlwZShldmVudCwga0lPSElERXZlbnRUeXBlU2Nyb2xsKSwga0NHRXZlbnRHZXN0dXJlU2Nyb2xs
WSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5
cGVTY3JvbGwpLCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxaKSBcCisgICAgXAorICAgIG1hY3JvKGV2
ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUp
LCBrQ0dFdmVudEdlc3R1cmVTd2lwZVBvc2l0aW9uWCkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdl
c3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVu
dEdlc3R1cmVTd2lwZVBvc2l0aW9uWSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBl
KGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVT
d2lwZVByb2dyZXNzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJ
T0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2Np
dHlYKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50
VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlZKSBcCisg
ICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmln
YXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlaKSBcCisgICAgXAorICAg
IG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVGb3JjZSks
IGtDR0V2ZW50VHJhbnNpdGlvblByb2dyZXNzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVy
ZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZUZvcmNlKSwga0NHRXZlbnRTdGFnZVByZXNzdXJl
KQorCisjZGVmaW5lIExPQURfSU5URUdFUl9GSUVMRF9GUk9NX0VWRU5UKGV2ZW50VHlwZUZpbHRl
ciwgZmllbGQpIFwKK14geyBcCisgICAgaWYgKCEoZXZlbnRUeXBlRmlsdGVyKSkgXAorICAgICAg
ICByZXR1cm47IFwKKyAgICBpbnQ2NF90IHZhbHVlID0gQ0dFdmVudEdldEludGVnZXJWYWx1ZUZp
ZWxkKGV2ZW50LCBmaWVsZCk7IFwKKyAgICBpbnQ2NF90IHBsYWluVmFsdWUgPSBDR0V2ZW50R2V0
SW50ZWdlclZhbHVlRmllbGQocGxhaW5FdmVudCwgZmllbGQpOyBcCisgICAgaWYgKHZhbHVlICE9
IHBsYWluVmFsdWUpIFwKKyAgICAgICAgZGljdFtAI2ZpZWxkXSA9IEAodmFsdWUpOyBcCit9KCk7
CisKKyNkZWZpbmUgTE9BRF9ET1VCTEVfRklFTERfRlJPTV9FVkVOVChldmVudFR5cGVGaWx0ZXIs
IGZpZWxkKSBcCiteIHsgXAorICAgIGlmICghKGV2ZW50VHlwZUZpbHRlcikpIFwKKyAgICAgICAg
cmV0dXJuOyBcCisgICAgZG91YmxlIHZhbHVlID0gQ0dFdmVudEdldERvdWJsZVZhbHVlRmllbGQo
ZXZlbnQsIGZpZWxkKTsgXAorICAgIGlmICghaXNuYW4odmFsdWUpKSB7IFwKKyAgICAgICAgZG91
YmxlIHBsYWluVmFsdWUgPSBDR0V2ZW50R2V0RG91YmxlVmFsdWVGaWVsZChwbGFpbkV2ZW50LCBm
aWVsZCk7IFwKKyAgICAgICAgaWYgKGZhYnModmFsdWUgLSBwbGFpblZhbHVlKSA+PSBGTFRfRVBT
SUxPTikgXAorICAgICAgICAgICAgZGljdFtAI2ZpZWxkXSA9IEAodmFsdWUpOyBcCisgICAgfSBc
Cit9KCk7CisKKyNkZWZpbmUgU1RPUkVfSU5URUdFUl9GSUVMRF9UT19FVkVOVChldmVudFR5cGVG
aWx0ZXIsIGZpZWxkKSBcCiteIHsgXAorICAgIGlmICghKGV2ZW50VHlwZUZpbHRlcikpIFwKKyAg
ICAgICAgcmV0dXJuOyBcCisgICAgTlNOdW1iZXIgKnZhbHVlID0gZGljdFtAI2ZpZWxkXTsgXAor
ICAgIGlmICh2YWx1ZSkgXAorICAgICAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoZXZl
bnQsIGZpZWxkLCB2YWx1ZS51bnNpZ25lZExvbmdMb25nVmFsdWUpOyBcCit9KCk7CisKKyNkZWZp
bmUgU1RPUkVfRE9VQkxFX0ZJRUxEX1RPX0VWRU5UKGV2ZW50VHlwZUZpbHRlciwgZmllbGQpIFwK
K14geyBcCisgICAgaWYgKCEoZXZlbnRUeXBlRmlsdGVyKSkgXAorICAgICAgICByZXR1cm47IFwK
KyAgICBOU051bWJlciAqdmFsdWUgPSBkaWN0W0AjZmllbGRdOyBcCisgICAgaWYgKHZhbHVlKSBc
CisgICAgICAgIENHRXZlbnRTZXREb3VibGVWYWx1ZUZpZWxkKGV2ZW50LCBmaWVsZCwgdmFsdWUu
ZG91YmxlVmFsdWUpOyBcCit9KCk7CisKK0BpbXBsZW1lbnRhdGlvbiBFdmVudFNlcmlhbGl6ZXIK
KworKyAoTlNEaWN0aW9uYXJ5ICopZGljdGlvbmFyeUZvckV2ZW50OihDR0V2ZW50UmVmKWV2ZW50
IHJlbGF0aXZlVG9UaW1lOihDR0V2ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRpbWVzdGFtcAorewor
ICAgIENHRXZlbnRSZWYgcGxhaW5FdmVudCA9IENHRXZlbnRDcmVhdGUoTlVMTCk7CisKKyAgICBO
U011dGFibGVEaWN0aW9uYXJ5ICpkaWN0ID0gW1tbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10g
aW5pdF0gYXV0b3JlbGVhc2VdOworCisgICAgRk9SX0VBQ0hfQ0dFVkVOVF9JTlRFR0VSX0ZJRUxE
KExPQURfSU5URUdFUl9GSUVMRF9GUk9NX0VWRU5UKTsKKyAgICBGT1JfRUFDSF9DR0VWRU5UX0RP
VUJMRV9GSUVMRChMT0FEX0RPVUJMRV9GSUVMRF9GUk9NX0VWRU5UKTsKKworICAgIENHRXZlbnRU
aW1lc3RhbXAgdGltZXN0YW1wID0gQ0dFdmVudEdldFRpbWVzdGFtcChldmVudCk7CisgICAgZGlj
dFtAInJlbGF0aXZlVGltZU1TIl0gPSBAKHN0ZDo6bWF4PGRvdWJsZT4oc3RhdGljX2Nhc3Q8ZG91
YmxlPih0aW1lc3RhbXAgLSByZWZlcmVuY2VUaW1lc3RhbXApIC8gTlNFQ19QRVJfTVNFQywgMCkp
OworCisgICAgQ0dTRXZlbnRUeXBlIGV2ZW50VHlwZSA9IChDR1NFdmVudFR5cGUpQ0dFdmVudEdl
dEludGVnZXJWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dTRXZlbnRUeXBlRmllbGQpOworICAgIGlmIChl
dmVudFR5cGUgPT0ga0NHU0V2ZW50R2VzdHVyZSB8fCBldmVudFR5cGUgPT0ga0NHU0V2ZW50Rmx1
aWRUb3VjaEdlc3R1cmUgfHwgZXZlbnRUeXBlID09IGtDR1NFdmVudERvY2tDb250cm9sKSB7Cisg
ICAgICAgIGlmIChDR0V2ZW50R2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGtDR0V2ZW50R2Vz
dHVyZUlzUHJlZmxpZ2h0KSkgeworICAgICAgICAgICAgZGljdFtAImtDR0V2ZW50R2VzdHVyZUlz
UHJlZmxpZ2h0Il0gPSBAWUVTOworICAgICAgICAgICAgZGljdFtAImtDR0V2ZW50R2VzdHVyZVBy
ZWZsaWdodFByb2dyZXNzIl0gPSBAKENHRXZlbnRHZXREb3VibGVWYWx1ZUZpZWxkKGV2ZW50LCBr
Q0dFdmVudEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcykpOworICAgICAgICB9CisgICAgfQorCisg
ICAgZGljdFtAIndpbmRvd0xvY2F0aW9uIl0gPSBOU1N0cmluZ0Zyb21Qb2ludChOU1BvaW50RnJv
bUNHUG9pbnQoQ0dFdmVudEdldFdpbmRvd0xvY2F0aW9uKGV2ZW50KSkpOworCisgICAgQ0dFdmVu
dEZsYWdzIGZsYWdzID0gQ0dFdmVudEdldEZsYWdzKGV2ZW50KSAmIH5OWF9OT05DT0FMU0VTQ0VE
TUFTSzsKKyAgICBpZiAoZmxhZ3MgIT0gKENHRXZlbnRHZXRGbGFncyhwbGFpbkV2ZW50KSAmIH5O
WF9OT05DT0FMU0VTQ0VETUFTSykpCisgICAgICAgIGRpY3RbQCJmbGFncyJdID0gQChmbGFncyk7
CisKKyAgICBDRlJlbGVhc2UocGxhaW5FdmVudCk7CisKKyAgICByZXR1cm4gZGljdDsKK30KKwor
KyAoQ0dFdmVudFJlZiljcmVhdGVFdmVudEZvckRpY3Rpb25hcnk6KE5TRGljdGlvbmFyeSAqKWRp
Y3QgaW5XaW5kb3c6KE5TV2luZG93ICopd2luZG93IHJlbGF0aXZlVG9UaW1lOihDR0V2ZW50VGlt
ZXN0YW1wKXJlZmVyZW5jZVRpbWVzdGFtcAoreworICAgIENHRXZlbnRSZWYgZXZlbnQgPSBDR0V2
ZW50Q3JlYXRlKE5VTEwpOworCisgICAgRk9SX0VBQ0hfQ0dFVkVOVF9JTlRFR0VSX0ZJRUxEKFNU
T1JFX0lOVEVHRVJfRklFTERfVE9fRVZFTlQpOworICAgIEZPUl9FQUNIX0NHRVZFTlRfRE9VQkxF
X0ZJRUxEKFNUT1JFX0RPVUJMRV9GSUVMRF9UT19FVkVOVCk7CisKKyAgICBpZiAoZGljdFtAInJl
bGF0aXZlVGltZU1TIl0pCisgICAgICAgIENHRXZlbnRTZXRUaW1lc3RhbXAoZXZlbnQsIHJlZmVy
ZW5jZVRpbWVzdGFtcCArIHN0YXRpY19jYXN0PHVpbnQ2NF90PigoW2RpY3RbQCJyZWxhdGl2ZVRp
bWVNUyJdIGRvdWJsZVZhbHVlXSAqIE5TRUNfUEVSX01TRUMpKSk7CisKKyAgICBpZiAoW2RpY3Rb
QCJrQ0dFdmVudEdlc3R1cmVJc1ByZWZsaWdodCJdIGJvb2xWYWx1ZV0pIHsKKyAgICAgICAgQ0dF
dmVudFNldEludGVnZXJWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dFdmVudEdlc3R1cmVJc1ByZWZsaWdo
dCwgMSk7CisgICAgICAgIENHRXZlbnRTZXREb3VibGVWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dFdmVu
dEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcywgW2RpY3RbQCJrQ0dFdmVudEdlc3R1cmVQcmVmbGln
aHRQcm9ncmVzcyJdIGRvdWJsZVZhbHVlXSk7CisgICAgfQorCisgICAgaWYgKGRpY3RbQCJ3aW5k
b3dMb2NhdGlvbiJdKSB7CisgICAgICAgIENHRXZlbnRTZXRXaW5kb3dMb2NhdGlvbihldmVudCwg
TlNQb2ludFRvQ0dQb2ludChOU1BvaW50RnJvbVN0cmluZyhkaWN0W0Aid2luZG93TG9jYXRpb24i
XSkpKTsKKworICAgICAgICBOU1BvaW50IHNjcmVlblBvaW50ID0gW3dpbmRvdyBjb252ZXJ0QmFz
ZVRvU2NyZWVuOk5TUG9pbnRUb0NHUG9pbnQoTlNQb2ludEZyb21TdHJpbmcoZGljdFtAIndpbmRv
d0xvY2F0aW9uIl0pKV07CisgICAgICAgIENHRXZlbnRTZXRMb2NhdGlvbihldmVudCwgTlNNYWtl
UG9pbnQoc2NyZWVuUG9pbnQueCwgTlNTY3JlZW4uc2NyZWVucy5maXJzdE9iamVjdC5mcmFtZS5z
aXplLmhlaWdodCAtIHNjcmVlblBvaW50LnkpKTsKKyAgICB9CisKKyAgICBpZiAoZGljdFtAImZs
YWdzIl0pCisgICAgICAgIENHRXZlbnRTZXRGbGFncyhldmVudCwgW2RpY3RbQCJmbGFncyJdIHVu
c2lnbmVkTG9uZ0xvbmdWYWx1ZV0pOworCisgICAgQ0dFdmVudFNldEludGVnZXJWYWx1ZUZpZWxk
KGV2ZW50LCBrQ0dTRXZlbnRXaW5kb3dJREZpZWxkLCB3aW5kb3cud2luZG93TnVtYmVyKTsKKwor
ICAgIHJldHVybiBldmVudDsKK30KKworKyAodm9pZClwbGF5RXZlbnRTdHJlYW06KE5TQXJyYXk8
TlNEaWN0aW9uYXJ5ICo+ICopZXZlbnREaWN0cyBpbldpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIFJl
dGFpblB0cjxOU011dGFibGVBcnJheT4gcmVtYWluaW5nRXZlbnREaWN0cyA9IGFkb3B0TlMoW2V2
ZW50RGljdHMgbXV0YWJsZUNvcHldKTsKKworICAgIHVpbnQ2NF90IHN0YXJ0VGltZSA9IG1hY2hf
YWJzb2x1dGVfdGltZSgpOworCisgICAgY29uc3QgZmxvYXQgZXZlbnREaXNwYXRjaFRpbWVyUmF0
ZSA9IDEuIC8gMTIwLjsKKworICAgIFtOU1RpbWVyIHNjaGVkdWxlZFRpbWVyV2l0aFRpbWVJbnRl
cnZhbDpldmVudERpc3BhdGNoVGltZXJSYXRlIHJlcGVhdHM6WUVTIGJsb2NrOl4oTlNUaW1lciAq
dGltZXIpIHsKKyAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5ICo+IHJlbW92ZUxpc3Qg
PSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgTlNFdmVu
dCAqbnNFdmVudCA9IG5pbDsKKyAgICAgICAgZm9yIChpZCBldmVudERpY3QgaW4gcmVtYWluaW5n
RXZlbnREaWN0cy5nZXQoKSkgeworICAgICAgICAgICAgQ0dFdmVudFJlZiBldmVudCA9IFtFdmVu
dFNlcmlhbGl6ZXIgY3JlYXRlRXZlbnRGb3JEaWN0aW9uYXJ5OmV2ZW50RGljdCBpbldpbmRvdzp3
aW5kb3cgcmVsYXRpdmVUb1RpbWU6c3RhcnRUaW1lXTsKKyAgICAgICAgICAgIGlmIChDR0V2ZW50
R2V0VGltZXN0YW1wKGV2ZW50KSA8IG1hY2hfYWJzb2x1dGVfdGltZSgpKSB7CisgICAgICAgICAg
ICAgICAgbnNFdmVudCA9IFtOU0V2ZW50IGV2ZW50V2l0aENHRXZlbnQ6ZXZlbnRdOworICAgICAg
ICAgICAgICAgIFtOU0FwcCBwb3N0RXZlbnQ6bnNFdmVudCBhdFN0YXJ0Ok5PXTsKKyAgICAgICAg
ICAgICAgICBbcmVtb3ZlTGlzdCBhZGRPYmplY3Q6ZXZlbnREaWN0XTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIENGUmVsZWFzZShldmVudCk7CisgICAgICAgIH0KKyAgICAgICAgW3JlbWFp
bmluZ0V2ZW50RGljdHMgcmVtb3ZlT2JqZWN0c0luQXJyYXk6cmVtb3ZlTGlzdC5nZXQoKV07CisK
KyAgICAgICAgaWYgKFtyZW1haW5pbmdFdmVudERpY3RzIGNvdW50XSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBbdGltZXIgaW52YWxpZGF0ZV07CisKKyAgICAgICAgLy8gQmxvY2sg
dW50aWwgd2Ugc2VuZCB0aGUgbGFzdCBldmVudCB3ZSBwb3N0ZWQuCisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKKyAgICAgICAgTlNFdmVudFR5cGUgYXBwbGlj
YXRpb25EZWZpbmVkRXZlbnRUeXBlID0gTlNFdmVudFR5cGVBcHBsaWNhdGlvbkRlZmluZWQ7Cisj
ZWxzZQorICAgICAgICBOU0V2ZW50VHlwZSBhcHBsaWNhdGlvbkRlZmluZWRFdmVudFR5cGUgPSBO
U0FwcGxpY2F0aW9uRGVmaW5lZDsKKyNlbmRpZgorICAgICAgICBbTlNBcHAgcG9zdEV2ZW50OltO
U0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTphcHBsaWNhdGlvbkRlZmluZWRFdmVudFR5cGUgbG9j
YXRpb246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJl
cjowIGNvbnRleHQ6MCBzdWJ0eXBlOjAgZGF0YTE6NDIgZGF0YTI6MF0gYXRTdGFydDpOT107Cisg
ICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBOU0V2ZW50ICpuZXh0RXZlbnQgPSBb
TlNBcHAgbmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5TQW55RXZlbnRNYXNrIHVudGlsRGF0ZTpbTlNE
YXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6ZXZlbnREaXNwYXRjaFRpbWVyUmF0ZV0g
aW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVTXTsKKyAgICAgICAgICAgIGlm
IChuZXh0RXZlbnQudHlwZSA9PSBhcHBsaWNhdGlvbkRlZmluZWRFdmVudFR5cGUgJiYgbmV4dEV2
ZW50LmRhdGExID09IDQyKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYg
KG5leHRFdmVudCkKKyAgICAgICAgICAgICAgICBbTlNBcHAgc2VuZEV2ZW50Om5leHRFdmVudF07
CisgICAgICAgIH0KKworICAgICAgICBpZiAoY29tcGxldGlvbkhhbmRsZXIpCisgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgIH1dOworfQorCitAZW5kCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1No
YXJlZEV2ZW50U3RyZWFtc01hYy5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlh
bGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmMzAyODgz
NTkyMTM2MmJkZjZjZDFmNWIxZTQ3OGE5NTBmZWIzNzEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvU2hhcmVkRXZlbnRTdHJl
YW1zTWFjLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBQTEFURk9STShNQUMp
CisKKyNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KKworTlNTdHJpbmcgKmJlZ2luU3dpcGVCYWNr
RXZlbnRTdHJlYW0oKTsKK05TU3RyaW5nICpjb21wbGV0ZVN3aXBlQmFja0V2ZW50U3RyZWFtKCk7
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlh
bGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSBiL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTgyNDA1OWNhYWQwMTNmMDg5MWYyMzUwODg1MGEwOTMxZDQ5Y2Q4OAotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21h
Yy9TaGFyZWRFdmVudFN0cmVhbXNNYWMubW0KQEAgLTAsMCArMSwzNjkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlNoYXJlZEV2ZW50U3RyZWFtc01hYy5oIgor
CisjaWYgUExBVEZPUk0oTUFDKQorCisjZGVmaW5lIFFVT1RFKC4uLikgQCgjX19WQV9BUkdTX18p
CisKK05TU3RyaW5nICpiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKCkKK3sKKyAgICByZXR1cm4g
UVVPVEUoWworICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMCwKKyAg
ICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAg
ICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRU
eXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMTI4
LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogOCwKKyAgICAgICAg
ICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYxLAorICAgICAgICAgICAgImtDR1NFdmVu
dFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTdGFydEVuZFNl
cmllc1R5cGUiIDogNiwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAw
fSIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJ
RFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAg
ICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVu
dEdlc3R1cmVQaGFzZSIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZs
YWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMgorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogOCwKKyAgICAgICAgICAgICJ3aW5k
b3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudFNjcm9sbFBoYXNlIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElz
Q29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERl
bHRhQXhpczIiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAg
ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUi
IDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAxNywKKyAgICAgICAgICAgICJ3
aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0
dXJlU2Nyb2xsWSIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIs
CisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAg
ICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlU2Nyb2xsWCIgOiAxMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAxLAorICAgICAgICAgICAgInJl
bGF0aXZlVGltZU1TIiA6IDE3LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3Jv
bGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVv
dXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMy
IiA6IDQsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAg
ICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7
CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAg
InJlbGF0aXZlVGltZU1TIiA6IDI1LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7
NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDIsCisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dF
dmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5
cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDIz
CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50
RGVsdGFBeGlzMiIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERl
bHRhQXhpczEiIDogMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAyNSwKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NH
U2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMSwKKyAgICAgICAgICAgICJ3aW5k
b3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZp
ZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdl
c3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMzMsCisg
ICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAg
ImtDR0V2ZW50R2VzdHVyZVNjcm9sbFkiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1
cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRz
IiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAg
ICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMjgKKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDIsCisgICAgICAg
ICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAxLAorICAgICAgICAg
ICAgInJlbGF0aXZlVGltZU1TIiA6IDMzLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Ny
b2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0
YUF4aXMyIiA6IDE2LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9
IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAg
ICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA0MSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlv
biIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIg
OiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAg
ICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dT
RXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xs
WCIgOiAzNQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudERlbHRhQXhpczIiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50
UG9pbnREZWx0YUF4aXMxIiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNDEs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMjQsCisgICAgICAgICAg
ICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVu
dFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NH
RXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6
IDQ5LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IC0xLAorICAgICAgICAgICAgImtDR0V2
ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJl
RmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA0NQorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogNCwKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IC0xLAorICAgICAg
ICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDQ5LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50
U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnRE
ZWx0YUF4aXMyIiA6IDM3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAz
MDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAg
ICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA1NywKKyAgICAgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xs
WSIgOiAtMywKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAg
ICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAi
a0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNj
cm9sbFgiIDogNTcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnREZWx0YUF4aXMyIiA6IDUsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBv
aW50RGVsdGFBeGlzMSIgOiAtMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA1NywK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAg
ICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiA1NCwKKyAgICAgICAgICAg
ICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50
VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dF
dmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDog
NjUsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAg
ICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFkiIDogLTUsCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVG
bGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAg
ICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDgxCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiA5LAorICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogLTIsCisgICAgICAg
ICAgICAicmVsYXRpdmVUaW1lTVMiIDogNjUsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRT
Y3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERl
bHRhQXhpczIiIDogOTIsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMw
MH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAor
ICAgIF0pOworfQorCitOU1N0cmluZyAqY29tcGxldGVTd2lwZUJhY2tFdmVudFN0cmVhbSgpCit7
CisgICAgcmV0dXJuIFFVT1RFKFsKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2Vz
dHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA3MywKKyAg
ICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAi
a0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAtMywKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1
cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRz
IiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAg
ICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogNzUKKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDExLAorICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogLTEsCisgICAgICAgICAgICAi
cmVsYXRpdmVUaW1lTVMiIDogNzMsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElz
Q29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQ
aGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhp
czIiIDogMTA2LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwK
KyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAg
ICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4MSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIg
OiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAt
MywKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAg
ImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2
ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgi
IDogODUKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRE
ZWx0YUF4aXMyIiA6IDEzLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERl
bHRhQXhpczEiIDogLTEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogODEsCisgICAg
ICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtD
R1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMTI3LAorICAgICAgICAgICAgIndp
bmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBl
RmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50
R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4OSwK
KyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAg
ICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAtMSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdl
c3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdC
aXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAg
ICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogOTEKKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDE0LAorICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogLTEsCisgICAgICAgICAg
ICAicmVsYXRpdmVUaW1lTVMiIDogODksCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3Jv
bGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRh
QXhpczIiIDogMTM5LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9
IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAg
ICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA5NywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlv
biIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIg
OiAyLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAg
ICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dT
RXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xs
WCIgOiAxMzYKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnREZWx0YUF4aXMyIiA6IDIwLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2lu
dERlbHRhQXhpczEiIDogMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA5NywKKyAg
ICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAg
ICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAyMDQsCisgICAgICAgICAgICAi
d2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5
cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEw
NSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiA1LAorICAgICAgICAgICAgImtDR0V2ZW50
R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxh
Z0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA5MgorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMTQsCisgICAgICAg
ICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAyLAorICAgICAgICAg
ICAgInJlbGF0aXZlVGltZU1TIiA6IDEwNSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2
ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNj
cm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVs
dGFBeGlzMiIgOiAxMzYsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMw
MH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAor
ICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAg
ICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDExMywKKyAgICAgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xs
WSIgOiAxNCwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAg
ICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAi
a0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNj
cm9sbFgiIDogMTMzCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDE5MiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBl
RmllbGQiIDogMjIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczEi
IDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEs
CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTEzLAorICAgICAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnREZWx0YUF4aXMyIiA6IDE5LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6
ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0
YUF4aXMxIiA6IDcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgInJlbGF0aXZl
VGltZU1TIiA6IDEyMSwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0
cyIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAg
ICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlUGhhc2UiIDogNCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwg
MzAwfSIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgInJlbGF0aXZlVGltZU1T
IiA6IDEyMSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYyLAorICAg
ICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVu
dEdlc3R1cmVTdGFydEVuZFNlcmllc1R5cGUiIDogNiwKKyAgICAgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgInJlbGF0
aXZlVGltZU1TIiA6IDEzOSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwg
MzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyLAorICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiA0LAorICAgICAgICAgICAgImtD
R1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMQorICAgICAgICB9CisgICAgXSk7Cit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKaW5k
ZXggMWM2NjIzZmQwNWUyZGNlZTBiOTVkNWE2ZTYyOTU0YjM3YmE0OGMwNy4uODI1M2VmMDUzOWEx
ZDQ0ZTJkNWRlZDM5ZDc2YWJiN2U0M2ZlMjgyZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAor
KysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNj
cmlwdENvbnRyb2xsZXIuaWRsCkBAIC00Nyw2ICs0NywxMSBAQCBpbnRlcmZhY2UgVUlTY3JpcHRD
b250cm9sbGVyIHsKICAgICB2b2lkIGtleURvd25Vc2luZ0hhcmR3YXJlS2V5Ym9hcmQoRE9NU3Ry
aW5nIGNoYXJhY3Rlciwgb2JqZWN0IGNhbGxiYWNrKTsKICAgICB2b2lkIGtleVVwVXNpbmdIYXJk
d2FyZUtleWJvYXJkKERPTVN0cmluZyBjaGFyYWN0ZXIsIG9iamVjdCBjYWxsYmFjayk7CiAKKyAg
ICB2b2lkIGJlZ2luQmFja1N3aXBlKG9iamVjdCBjYWxsYmFjayk7CisgICAgdm9pZCBjb21wbGV0
ZUJhY2tTd2lwZShvYmplY3QgY2FsbGJhY2spOworCisgICAgdm9pZCBwbGF5QmFja0V2ZW50U3Ry
ZWFtKERPTVN0cmluZyBldmVudFN0cmVhbSwgb2JqZWN0IGNhbGxiYWNrKTsKKwogICAgIC8vIEVx
dWl2YWxlbnQgb2YgcHJlc3NpbmcgdGhlIERvbmUgYnV0dG9uIGluIHRoZSBmb3JtIGFjY2Vzc29y
eSBiYXIuCiAgICAgdm9pZCBkaXNtaXNzRm9ybUFjY2Vzc29yeVZpZXcoKTsKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0
Q29udHJvbGxlci5jcHAKaW5kZXggNjEwZjk3ZDk1OTFmOTdiZGI2MTIxMGJhYmY5ODdmMWM0NDEx
OTU1Zi4uOGJhZTQ0NmVjODJiZDUxYmViZDkwYjNiOGY0NjJkZDExMzQzM2YxOSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9s
bGVyLmNwcAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNj
cmlwdENvbnRyb2xsZXIuY3BwCkBAIC0xMzUsNiArMTM1LDExIEBAIEpTVmFsdWVSZWYgVUlTY3Jp
cHRDb250cm9sbGVyOjpkaWRIaWRlS2V5Ym9hcmRDYWxsYmFjaygpIGNvbnN0CiAgICAgcmV0dXJu
IG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkSGlkZUtleWJvYXJkKTsK
IH0KIAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXlCYWNrRXZlbnRTdHJlYW0oSlNTdHJp
bmdSZWYgc3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIHBsYXRmb3JtUGxheUJh
Y2tFdmVudFN0cmVhbShzdHJlYW0sIGNhbGxiYWNrKTsKK30KKwogI2lmICFQTEFURk9STShJT1Mp
CiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6em9vbVRvU2NhbGUoZG91YmxlLCBKU1ZhbHVlUmVm
KQogewpAQCAtMjU5LDYgKzI2NCwyMyBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZv
cm1TZXREaWRIaWRlS2V5Ym9hcmRDYWxsYmFjaygpCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6
cGxhdGZvcm1DbGVhckFsbENhbGxiYWNrcygpCiB7CiB9CisKKyNlbmRpZgorCisjaWYgIVBMQVRG
T1JNKE1BQykKKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKEpTVmFs
dWVSZWYgY2FsbGJhY2spCit7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0
ZUJhY2tTd2lwZShKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworfQorCit2b2lkIFVJU2NyaXB0Q29u
dHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpTU3RyaW5nUmVmLCBKU1ZhbHVl
UmVmKQoreworfQorCiAjZW5kaWYKIAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnVpU2NyaXB0
Q29tcGxldGUoSlNTdHJpbmdSZWYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmggYi9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAppbmRleCA0
MjI1NWRhMzQzNWVjNGEwNjlkYjczZDZjMGViYTg3MTZiZjVjZTljLi4yZWRmODRhODA3NTZiNjEz
MTFlMWNiMmZhM2ZjMGZhMDRlODE5YTkzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaApAQCAtNzQs
NiArNzQsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzY3JvbGxUb09mZnNldChsb25nIHgs
IGxvbmcgeSk7CiAKKyAgICB2b2lkIGJlZ2luQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2sp
OworICAgIHZvaWQgY29tcGxldGVCYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjayk7CisKICAg
ICB2b2lkIHNldERpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKEpTVmFsdWVS
ZWYpOwogICAgIEpTVmFsdWVSZWYgZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJh
Y2soKSBjb25zdDsKIApAQCAtOTUsNiArOTgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREaWRF
bmRTY3JvbGxpbmdDYWxsYmFjayhKU1ZhbHVlUmVmKTsKICAgICBKU1ZhbHVlUmVmIGRpZEVuZFNj
cm9sbGluZ0NhbGxiYWNrKCkgY29uc3Q7CiAKKyAgICB2b2lkIHBsYXlCYWNrRXZlbnRTdHJlYW0o
SlNTdHJpbmdSZWYgc3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKKwogICAgIGRvdWJsZSB6
b29tU2NhbGUoKSBjb25zdDsKICAgICBkb3VibGUgbWluaW11bVpvb21TY2FsZSgpIGNvbnN0Owog
ICAgIGRvdWJsZSBtYXhpbXVtWm9vbVNjYWxlKCkgY29uc3Q7CkBAIC0xMTYsNiArMTIxLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtU2V0RGlkSGlkZUtleWJvYXJkQ2FsbGJhY2soKTsK
ICAgICB2b2lkIHBsYXRmb3JtU2V0RGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2soKTsKICAgICB2b2lk
IHBsYXRmb3JtQ2xlYXJBbGxDYWxsYmFja3MoKTsKKyAgICB2b2lkIHBsYXRmb3JtUGxheUJhY2tF
dmVudFN0cmVhbShKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZik7CiAKICAgICBKU0NsYXNzUmVmIHdy
YXBwZXJDbGFzcygpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVk
L3NwaS9Db3JlR3JhcGhpY3NTUEkuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0NvcmVH
cmFwaGljc1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NWJlMDc0ODk5NGVmMmQ4NTU4ZTA1NjY2OTg3N2Y1
MTU4ZGZiMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL3NwaS9D
b3JlR3JhcGhpY3NTUEkuaApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKKworI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NHRXZlbnRQcml2YXRlLmg+CisjaW1wb3J0
IDxDb3JlR3JhcGhpY3MvQ0dTRXZlbnQuaD4KKworI2Vsc2UKKworV1RGX0VYVEVSTl9DX0JFR0lO
CisKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHU0V2ZW50V2luZG93SURGaWVsZCA9IChD
R0V2ZW50RmllbGQpNTE7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR1NFdmVudFR5cGVG
aWVsZCA9IChDR0V2ZW50RmllbGQpNTU7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2
ZW50R2VzdHVyZUhJRFR5cGUgPSAoQ0dFdmVudEZpZWxkKTExMDsKK3N0YXRpYyBjb25zdCBDR0V2
ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlSXNQcmVmbGlnaHQgPSAoQ0dFdmVudEZpZWxkKTExMTsK
K3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlWm9vbVZhbHVlID0gKENH
RXZlbnRGaWVsZCkxMTM7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVy
ZVJvdGF0aW9uVmFsdWUgPSAoQ0dFdmVudEZpZWxkKTExNDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50
RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVWYWx1ZSA9IChDR0V2ZW50RmllbGQpMTE1Oworc3Rh
dGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcyA9
IChDR0V2ZW50RmllbGQpMTE2Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdl
c3R1cmVTdGFydEVuZFNlcmllc1R5cGUgPSAoQ0dFdmVudEZpZWxkKTExNzsKK3N0YXRpYyBjb25z
dCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCA9IChDR0V2ZW50RmllbGQpMTE4
Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxZID0gKENH
RXZlbnRGaWVsZCkxMTk7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVy
ZVNjcm9sbFogPSAoQ0dFdmVudEZpZWxkKTEyMDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQg
a0NHRXZlbnRHZXN0dXJlU3dpcGVNb3Rpb24gPSAoQ0dFdmVudEZpZWxkKTEyMzsKK3N0YXRpYyBj
b25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVQcm9ncmVzcyA9IChDR0V2ZW50
RmllbGQpMTI0Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lw
ZVBvc2l0aW9uWCA9IChDR0V2ZW50RmllbGQpMTI1Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVs
ZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVBvc2l0aW9uWSA9IChDR0V2ZW50RmllbGQpMTI2Oworc3Rh
dGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WCA9IChD
R0V2ZW50RmllbGQpMTI5Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1
cmVTd2lwZVZlbG9jaXR5WSA9IChDR0V2ZW50RmllbGQpMTMwOworc3RhdGljIGNvbnN0IENHRXZl
bnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WiA9IChDR0V2ZW50RmllbGQpMTMx
Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVQaGFzZSA9IChDR0V2
ZW50RmllbGQpMTMyOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVN
YXNrID0gKENHRXZlbnRGaWVsZCkxMzM7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2
ZW50R2VzdHVyZVN3aXBlTWFzayA9IChDR0V2ZW50RmllbGQpMTM0Oworc3RhdGljIGNvbnN0IENH
RXZlbnRGaWVsZCBrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyA9IChDR0V2ZW50RmllbGQp
MTM1Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudFN3aXBlR2VzdHVyZUZsYWdC
aXRzID0gKENHRXZlbnRGaWVsZCkxMzY7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2
ZW50R2VzdHVyZUZsYXZvciA9IChDR0V2ZW50RmllbGQpMTM4Oworc3RhdGljIGNvbnN0IENHRXZl
bnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVab29tRGVsdGFYID0gKENHRXZlbnRGaWVsZCkxMzk7Citz
dGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVpvb21EZWx0YVkgPSAoQ0dF
dmVudEZpZWxkKTE0MDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJl
UHJvZ3Jlc3MgPSAoQ0dFdmVudEZpZWxkKTE0MjsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQg
a0NHRXZlbnRHZXN0dXJlU3RhZ2UgPSAoQ0dFdmVudEZpZWxkKTE0MzsKK3N0YXRpYyBjb25zdCBD
R0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlQmVoYXZpb3IgPSAoQ0dFdmVudEZpZWxkKTE0NDsK
K3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRUcmFuc2l0aW9uUHJvZ3Jlc3MgPSAo
Q0dFdmVudEZpZWxkKTE0NzsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRTdGFn
ZVByZXNzdXJlID0gKENHRXZlbnRGaWVsZCkxNDg7CisKK2VudW0geworICAgIGtDR1NFdmVudFNj
cm9sbFdoZWVsID0gMjIsCisgICAga0NHU0V2ZW50Wm9vbSA9IDI4LAorICAgIGtDR1NFdmVudEdl
c3R1cmUgPSAyOSwKKyAgICBrQ0dTRXZlbnREb2NrQ29udHJvbCA9IDMwLAorICAgIGtDR1NFdmVu
dEZsdWlkVG91Y2hHZXN0dXJlID0gMzEsCit9OwordHlwZWRlZiB1aW50MzJfdCBDR1NFdmVudFR5
cGU7CisKK2VudW0geworICAgIGtDR0hJREV2ZW50VHlwZUdlc3R1cmVTdGFydGVkID0gNjEsCisg
ICAga0NHSElERXZlbnRUeXBlR2VzdHVyZUVuZGVkID0gNjIsCit9OwordHlwZWRlZiB1aW50MzJf
dCBDR1NISURFdmVudFR5cGU7CisKK0NHUG9pbnQgQ0dFdmVudEdldFdpbmRvd0xvY2F0aW9uKENH
RXZlbnRSZWYpOwordm9pZCBDR0V2ZW50U2V0V2luZG93TG9jYXRpb24oQ0dFdmVudFJlZiwgQ0dQ
b2ludCk7CisKK1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL3NwaS9JT0tpdFNQSS5o
IGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9zcGkvSU9LaXRTUEkuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzA2
ODU3ZDc2MzY2OGRlMTUyMDNmOTM2YzM3YzNmMDM3NjAxNDBjCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9zcGkvSU9LaXRTUEkuaApAQCAtMCwwICsxLDE5NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0IDx3dGYvUGxhdGZvcm0uaD4KKwor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPElPS2l0L2hpZC9JT0hJREV2
ZW50Lmg+CisjaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURFdmVudERhdGEuaD4KKyNpbXBvcnQgPElP
S2l0L2hpZC9JT0hJREV2ZW50U3lzdGVtQ2xpZW50Lmg+CisjaW1wb3J0IDxJT0tpdC9oaWQvSU9I
SURVc2FnZVRhYmxlcy5oPgorCisjZWxzZQorCitXVEZfRVhURVJOX0NfQkVHSU4KKworI2lmZGVm
IF9fTFA2NF9fCit0eXBlZGVmIGRvdWJsZSBJT0hJREZsb2F0OworI2Vsc2UKK3R5cGVkZWYgZmxv
YXQgSU9ISURGbG9hdDsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBrSU9ISURFdmVudE9wdGlvbk5v
bmUgPSAwLAorfTsKKwordHlwZWRlZiBVSW50MzIgSU9PcHRpb25CaXRzOwordHlwZWRlZiB1aW50
MzJfdCBJT0hJREV2ZW50T3B0aW9uQml0czsKK3R5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudEZp
ZWxkOworCit0eXBlZGVmIHN0cnVjdCBfX0lPSElERXZlbnRTeXN0ZW1DbGllbnQgKiBJT0hJREV2
ZW50U3lzdGVtQ2xpZW50UmVmOwordHlwZWRlZiBzdHJ1Y3QgX19JT0hJREV2ZW50ICogSU9ISURF
dmVudFJlZjsKKworI2RlZmluZSBJT0hJREV2ZW50RmllbGRCYXNlKHR5cGUpICh0eXBlIDw8IDE2
KQorCitlbnVtIHsKKyAgICBrSElEUGFnZV9LZXlib2FyZE9yS2V5cGFkICAgICAgID0gMHgwNywK
KyAgICBrSElEUGFnZV9WZW5kb3JEZWZpbmVkU3RhcnQgICAgID0gMHhGRjAwCit9OworCitlbnVt
IHsKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFJhbmdlICAgICAgID0gMTw8MCwKKyAgICBrSU9I
SUREaWdpdGl6ZXJFdmVudFRvdWNoICAgICAgID0gMTw8MSwKKyAgICBrSU9ISUREaWdpdGl6ZXJF
dmVudFBvc2l0aW9uICAgID0gMTw8MiwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudElkZW50aXR5
ICAgID0gMTw8NSwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudEF0dHJpYnV0ZSAgID0gMTw8NiwK
KyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudENhbmNlbCAgICAgID0gMTw8NywKKyAgICBrSU9ISURE
aWdpdGl6ZXJFdmVudFN0YXJ0ICAgICAgID0gMTw8OCwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVu
dEVzdGltYXRlZEFsdGl0dWRlID0gMTw8MjgsCisgICAga0lPSElERGlnaXRpemVyRXZlbnRFc3Rp
bWF0ZWRBemltdXRoID0gMTw8MjksCisgICAga0lPSElERGlnaXRpemVyRXZlbnRFc3RpbWF0ZWRQ
cmVzc3VyZSA9IDE8PDMwLAorfTsKK3R5cGVkZWYgdWludDMyX3QgSU9ISUREaWdpdGl6ZXJFdmVu
dE1hc2s7CisKK2VudW0geworICAgIGtJT0hJREV2ZW50VHlwZU5VTEwsCisgICAga0lPSElERXZl
bnRUeXBlVmVuZG9yRGVmaW5lZCwKKyAgICBrSU9ISURFdmVudFR5cGVLZXlib2FyZCA9IDMsCisg
ICAga0lPSElERXZlbnRUeXBlUm90YXRpb24gPSA1LAorICAgIGtJT0hJREV2ZW50VHlwZVNjcm9s
bCA9IDYsCisgICAga0lPSElERXZlbnRUeXBlWm9vbSA9IDgsCisgICAga0lPSElERXZlbnRUeXBl
RGlnaXRpemVyID0gMTEsCisgICAga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlID0gMTYs
CisgICAga0lPSElERXZlbnRUeXBlRm9yY2UgPSAzMiwKKworfTsKK3R5cGVkZWYgdWludDMyX3Qg
SU9ISURFdmVudFR5cGU7CisKK2VudW0geworICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZp
bmVkVXNhZ2VQYWdlID0gSU9ISURFdmVudEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVWZW5kb3JE
ZWZpbmVkKSwKKyAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFJlc2VydmVkLAorICAg
IGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkUmVzZXJ2ZWQxLAorICAgIGtJT0hJREV2ZW50
RmllbGRWZW5kb3JEZWZpbmVkRGF0YUxlbmd0aCwKKyAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9y
RGVmaW5lZERhdGEKK307CisKK2VudW0geworICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJY
ID0gSU9ISURFdmVudEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVEaWdpdGl6ZXIpLAorICAgIGtJ
T0hJREV2ZW50RmllbGREaWdpdGl6ZXJZLAorICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJN
YWpvclJhZGl1cyA9IGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJYICsgMjAsCisgICAga0lPSElE
RXZlbnRGaWVsZERpZ2l0aXplck1pbm9yUmFkaXVzLAorICAgIGtJT0hJREV2ZW50RmllbGREaWdp
dGl6ZXJJc0Rpc3BsYXlJbnRlZ3JhdGVkID0ga0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1ham9y
UmFkaXVzICsgNSwKK307CisKK2VudW0geworICAgIGtJT0hJRFRyYW5zZHVjZXJSYW5nZSAgICAg
ICAgICAgICAgID0gMHgwMDAxMDAwMCwKKyAgICBrSU9ISURUcmFuc2R1Y2VyVG91Y2ggICAgICAg
ICAgICAgICA9IDB4MDAwMjAwMDAsCisgICAga0lPSElEVHJhbnNkdWNlckludmVydCAgICAgICAg
ICAgICAgPSAweDAwMDQwMDAwLAorICAgIGtJT0hJRFRyYW5zZHVjZXJEaXNwbGF5SW50ZWdyYXRl
ZCAgID0gMHgwMDA4MDAwMAorfTsKKworZW51bSB7CisgICAga0lPSElERGlnaXRpemVyVHJhbnNk
dWNlclR5cGVIYW5kID0gMworfTsKK3R5cGVkZWYgdWludDMyX3QgSU9ISUREaWdpdGl6ZXJUcmFu
c2R1Y2VyVHlwZTsKKworZW51bSB7CisgICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplcldpbGxV
cGRhdGVNYXNrID0gNzIwOTI0LAorICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJEaWRVcGRh
dGVNYXNrID0gNzIwOTI1Cit9OworCitJT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVEaWdp
dGl6ZXJFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIElPSElERGlnaXRpemVyVHJhbnNk
dWNlclR5cGUsIHVpbnQzMl90LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIHVp
bnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJ
T0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsKKworSU9ISURF
dmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlRGlnaXRpemVyRmluZ2VyRXZlbnQoQ0ZBbGxvY2F0b3JS
ZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIElPSElERGlnaXRpemVyRXZlbnRNYXNr
LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZs
b2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOworCitJT0hJ
REV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVGb3JjZUV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50
NjRfdCwgdWludDMyX3QsIElPSElERmxvYXQsIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREV2
ZW50T3B0aW9uQml0cyk7CisKK0lPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZUtleWJvYXJk
RXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIGJvb2xl
YW5fdCwgSU9PcHRpb25CaXRzKTsKKworSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlVmVu
ZG9yRGVmaW5lZEV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIHVpbnQz
Ml90LCB1aW50MzJfdCwgdWludDhfdCosIENGSW5kZXgsIElPSElERXZlbnRPcHRpb25CaXRzKTsK
KworSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlRGlnaXRpemVyU3R5bHVzRXZlbnRXaXRo
UG9sYXJPcmllbnRhdGlvbihDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIHVpbnQzMl90LCB1aW50
MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJ
REZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJ
T0hJREZsb2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9ISURFdmVudE9w
dGlvbkJpdHMpOworCitJT0hJREV2ZW50VHlwZSBJT0hJREV2ZW50R2V0VHlwZShJT0hJREV2ZW50
UmVmKTsKKwordm9pZCBJT0hJREV2ZW50U2V0RmxvYXRWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJ
REV2ZW50RmllbGQsIElPSElERmxvYXQpOworCitDRkluZGV4IElPSElERXZlbnRHZXRJbnRlZ2Vy
VmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxkKTsKK3ZvaWQgSU9ISURFdmVudFNl
dEludGVnZXJWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50RmllbGQsIENGSW5kZXgpOwor
Cit2b2lkIElPSElERXZlbnRBcHBlbmRFdmVudChJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50UmVm
LCBJT09wdGlvbkJpdHMpOworCitJT0hJREV2ZW50U3lzdGVtQ2xpZW50UmVmIElPSElERXZlbnRT
eXN0ZW1DbGllbnRDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYpOworCisjZGVmaW5lIGtHU0V2ZW50UGF0
aEluZm9JblJhbmdlICgxIDw8IDApCisjZGVmaW5lIGtHU0V2ZW50UGF0aEluZm9JblRvdWNoICgx
IDw8IDEpCisKK2VudW0geworICAgIGtISURVc2FnZV9LZXlib2FyZEEgPSAweDA0LAorICAgIGtI
SURVc2FnZV9LZXlib2FyZDEgPSAweDFFLAorICAgIGtISURVc2FnZV9LZXlib2FyZDIgPSAweDFG
LAorICAgIGtISURVc2FnZV9LZXlib2FyZDMgPSAweDIwLAorICAgIGtISURVc2FnZV9LZXlib2Fy
ZDQgPSAweDIxLAorICAgIGtISURVc2FnZV9LZXlib2FyZDUgPSAweDIyLAorICAgIGtISURVc2Fn
ZV9LZXlib2FyZDYgPSAweDIzLAorICAgIGtISURVc2FnZV9LZXlib2FyZDcgPSAweDI0LAorICAg
IGtISURVc2FnZV9LZXlib2FyZDggPSAweDI1LAorICAgIGtISURVc2FnZV9LZXlib2FyZDkgPSAw
eDI2LAorICAgIGtISURVc2FnZV9LZXlib2FyZDAgPSAweDI3LAorICAgIGtISURVc2FnZV9LZXli
b2FyZFJldHVybk9yRW50ZXIgPSAweDI4LAorICAgIGtISURVc2FnZV9LZXlib2FyZEVzY2FwZSA9
IDB4MjksCisgICAga0hJRFVzYWdlX0tleWJvYXJkRGVsZXRlT3JCYWNrc3BhY2UgPSAweDJBLAor
ICAgIGtISURVc2FnZV9LZXlib2FyZFRhYiA9IDB4MkIsCisgICAga0hJRFVzYWdlX0tleWJvYXJk
U3BhY2ViYXIgPSAweDJDLAorICAgIGtISURVc2FnZV9LZXlib2FyZEh5cGhlbiA9IDB4MkQsCisg
ICAga0hJRFVzYWdlX0tleWJvYXJkRXF1YWxTaWduID0gMHgyRSwKKyAgICBrSElEVXNhZ2VfS2V5
Ym9hcmRPcGVuQnJhY2tldCA9IDB4MkYsCisgICAga0hJRFVzYWdlX0tleWJvYXJkQ2xvc2VCcmFj
a2V0ID0gMHgzMCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRCYWNrc2xhc2ggPSAweDMxLAorICAg
IGtISURVc2FnZV9LZXlib2FyZFNlbWljb2xvbiA9IDB4MzMsCisgICAga0hJRFVzYWdlX0tleWJv
YXJkUXVvdGUgPSAweDM0LAorICAgIGtISURVc2FnZV9LZXlib2FyZEdyYXZlQWNjZW50QW5kVGls
ZGUgPSAweDM1LAorICAgIGtISURVc2FnZV9LZXlib2FyZENvbW1hID0gMHgzNiwKKyAgICBrSElE
VXNhZ2VfS2V5Ym9hcmRQZXJpb2QgPSAweDM3LAorICAgIGtISURVc2FnZV9LZXlib2FyZFNsYXNo
ID0gMHgzOCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRGMSA9IDB4M0EsCisgICAga0hJRFVzYWdl
X0tleWJvYXJkSG9tZSA9IDB4NEEsCisgICAga0hJRFVzYWdlX0tleWJvYXJkUGFnZVVwID0gMHg0
QiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRFbmQgPSAweDRELAorICAgIGtISURVc2FnZV9LZXli
b2FyZFJpZ2h0QXJyb3cgPSAweDRGLAorICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRBcnJvdyA9
IDB4NTAsCisgICAga0hJRFVzYWdlX0tleWJvYXJkRG93bkFycm93ID0gMHg1MSwKKyAgICBrSElE
VXNhZ2VfS2V5Ym9hcmRVcEFycm93ID0gMHg1MiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0
Q29udHJvbCA9IDB4RTAsCisgICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdFNoaWZ0ID0gMHhFMSwK
KyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0QWx0ID0gMHhFMgorfTsKKworV1RGX0VYVEVSTl9D
X0VORAorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmgKaW5kZXggNzBkOTQwMTRjOGQ3NTBjYjdkNjU3MDgw
NDUyOGUyMDhjYzJmNGE1NC4uMjRmMjdiMjg5MTdjMGUzNGNiN2RlYjczNjk1OTAzNzdiYTdiZWQ2
MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmgKQEAgLTcxLDcg
KzcxLDYgQEAgcHVibGljOgogICAgIHZvaWQgbW91c2VNb3ZlVG8oZG91YmxlIHgsIGRvdWJsZSB5
KTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5KTsKICAgICB2b2lkIG1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIGludCBwaGFz
ZSwgaW50IG1vbWVudHVtKTsKLSAgICB2b2lkIHN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50IHBoYXNlLCBpbnQgbW9tZW50dW0pOwogICAgIHZv
aWQgY29udGludW91c01vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5LCBib29sIHBhZ2VkKTsKIAog
ICAgIHZvaWQgbGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcyk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0Nv
bnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbAppbmRleCBmMzI4MGJiOTRiMDU0MzcwMjQz
MDIzZTI1MzM2ZGUxYWZhZTc5MzlmLi5kNWI4MDM4NDU5ZTc2Yjk4OTE0OTk4YzYwOWI2ZjM2MTY3
NDA3ZDgxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5p
ZGwKQEAgLTM0LDcgKzM0LDYgQEAgaW50ZXJmYWNlIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXIgewog
ICAgIHZvaWQgbW91c2VGb3JjZUNoYW5nZWQoZG91YmxlIGZvcmNlKTsKICAgICB2b2lkIG1vdXNl
U2Nyb2xsQnkobG9uZyB4LCBsb25nIHkpOwogICAgIHZvaWQgbW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKGxvbmcgeCwgbG9uZyB5LCBET01TdHJpbmcgcGhhc2UsIERPTVN0
cmluZyBtb21lbnR1bSk7Ci0gICAgdm9pZCBzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcyhsb25nIHgsIGxvbmcgeSwgRE9NU3RyaW5nIHBoYXNlLCBET01TdHJpbmcgbW9tZW50
dW0pOwogICAgIHZvaWQgY29udGludW91c01vdXNlU2Nyb2xsQnkobG9uZyB4LCBsb25nIHksIG9w
dGlvbmFsIGJvb2xlYW4gcGFnZWQpOwogICAgIG9iamVjdCBjb250ZXh0Q2xpY2soKTsKICAgICB2
b2lkIHNjaGVkdWxlQXN5bmNocm9ub3VzQ2xpY2soKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIuY3BwCmluZGV4IDBmYWEyZjM5ODNjZjdhOTFlNzkxZmRmNzQ0MWY0Y2Q5ZDllOWYzNTIuLjRj
M2ZlZjg5MzA4NzhlMTRhNTk1M2JlMzdiNjJiOTMwOTI1MGY0NjAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRp
bmdDb250cm9sbGVyLmNwcApAQCAtNDgxLDM4ICs0ODEsNiBAQCB2b2lkIEV2ZW50U2VuZGluZ0Nv
bnRyb2xsZXI6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwg
aW50CiAgICAgV0tCdW5kbGVQYWdlUG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRv
bigpLnBhZ2UoKS0+cGFnZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNl
bmRlck1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAotdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVy
Ojpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIEpT
U3RyaW5nUmVmIHBoYXNlU3RyLCBKU1N0cmluZ1JlZiBtb21lbnR1bVN0cikKLXsKLSAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gRXZlbnRTZW5kZXJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRXZlbnRTZW5kZXIiKSk7Ci0gICAgV0tSZXRhaW5Q
dHI8V0tNdXRhYmxlRGljdGlvbmFyeVJlZj4gRXZlbnRTZW5kZXJNZXNzYWdlQm9keShBZG9wdFdL
LCBXS011dGFibGVEaWN0aW9uYXJ5Q3JlYXRlKCkpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IHN1Yk1lc3NhZ2VLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIlN1Yk1lc3NhZ2UiKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHN1Yk1lc3Nh
Z2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTd2lwZUdlc3R1
cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyIpKTsKLSAgICBXS0RpY3Rpb25hcnlTZXRJdGVt
KEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHN1Yk1lc3NhZ2VLZXkuZ2V0KCksIHN1Yk1l
c3NhZ2VOYW1lLmdldCgpKTsKLQotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB4S2V5KEFk
b3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJYIikpOwotICAgIFdLUmV0YWlu
UHRyPFdLRG91YmxlUmVmPiB4UmVmKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKHgpKTsKLSAgICBX
S0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHhLZXkuZ2V0
KCksIHhSZWYuZ2V0KCkpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHlLZXkoQWRv
cHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlkiKSk7Ci0gICAgV0tSZXRhaW5Q
dHI8V0tEb3VibGVSZWY+IHlSZWYoQWRvcHRXSywgV0tEb3VibGVDcmVhdGUoeSkpOwotICAgIFdL
RGljdGlvbmFyeVNldEl0ZW0oRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgeUtleS5nZXQo
KSwgeVJlZi5nZXQoKSk7Ci0KLSAgICB1aW50NjRfdCBwaGFzZSA9IGNnRXZlbnRQaGFzZUZyb21T
dHJpbmcocGhhc2VTdHIpOwotICAgIHVpbnQ2NF90IG1vbWVudHVtID0gY2dFdmVudE1vbWVudHVt
UGhhc2VGcm9tU3RyaW5nKG1vbWVudHVtU3RyKTsKLQotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBwaGFzZUtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiUGhh
c2UiKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IHBoYXNlUmVmKEFkb3B0V0ssIFdL
VUludDY0Q3JlYXRlKHBoYXNlKSk7Ci0gICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShFdmVudFNlbmRl
ck1lc3NhZ2VCb2R5LmdldCgpLCBwaGFzZUtleS5nZXQoKSwgcGhhc2VSZWYuZ2V0KCkpOwotCi0g
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1vbWVudHVtS2V5KEFkb3B0V0ssIFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJNb21lbnR1bSIpKTsKLSAgICBXS1JldGFpblB0cjxXS1VJ
bnQ2NFJlZj4gbW9tZW50dW1SZWYoQWRvcHRXSywgV0tVSW50NjRDcmVhdGUobW9tZW50dW0pKTsK
LSAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIG1v
bWVudHVtS2V5LmdldCgpLCBtb21lbnR1bVJlZi5nZXQoKSk7Ci0KLSAgICBXS0J1bmRsZVBhZ2VG
b3JjZVJlcGFpbnQoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpKTsg
Ly8gVHJpZ2dlcnMgYSBzY3JvbGxpbmcgdHJlZSBjb21taXQuCi0gICAgV0tCdW5kbGVQYWdlUG9z
dE1lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBFdmVu
dFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpKTsK
LX0KLQogdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpjb250aW51b3VzTW91c2VTY3JvbGxC
eShpbnQgeCwgaW50IHksIGJvb2wgcGFnZWQpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIkV2ZW50U2VuZGVyIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAppbmRl
eCBjMjNjMzZkZmFjNTU4NGY4NTFjNWY2MGZiNGQ1NjIyY2ZmNDIwMDRhLi4yOGZjZTljZTZjYmU1
N2MzZmY4ZThmOTgzZWJjNDJiNGUwOGIwZDJkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIu
aApAQCAtNTMsNyArNTMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3VzZUZvcmNlQ2hhbmdlZChk
b3VibGUgZm9yY2UpOwogICAgIHZvaWQgbW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHkpOwogICAg
IHZvaWQgbW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQg
eSwgSlNTdHJpbmdSZWYgcGhhc2UsIEpTU3RyaW5nUmVmIG1vbWVudHVtKTsKLSAgICB2b2lkIHN3
aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgSlNTdHJp
bmdSZWYgcGhhc2UsIEpTU3RyaW5nUmVmIG1vbWVudHVtKTsKICAgICB2b2lkIGNvbnRpbnVvdXNN
b3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSwgYm9vbCBwYWdlZCk7CiAgICAgSlNWYWx1ZVJlZiBj
b250ZXh0Q2xpY2soKTsKICAgICB2b2lkIGxlYXBGb3J3YXJkKGludCBtaWxsaXNlY29uZHMpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZl
bnRTZW5kZXJQcm94eUlPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW0KaW5kZXggYWM1NGExYzZkNmQ4YzJjNTBlMDgx
ZGI1YmRiODIxZDNlNjA4ZWMyZC4uY2FiM2YxOGIzNjU5ZjQ5MTZiZDUwMDg3OTI4NmQ2YTI3YzBj
OWY5MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL2lvcy9FdmVudFNlbmRlclByb3h5SU9TLm1tCkBAIC0xMDMsMTEgKzEwMyw2
IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50CiAgICAgLy8gV3JpdGUgbWUuCiB9CiAKLXZvaWQg
RXZlbnRTZW5kZXJQcm94eTo6c3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
aW50LCBpbnQsIGludCwgaW50KQotewotICAgIC8vIFdyaXRlIG1lLgotfQotCiB2b2lkIEV2ZW50
U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSwgYm9vbCBw
YWdlZCkKIHsKICAgICAvLyBXcml0ZSBtZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggZDJlNDliYjVkYTg4ZWJkMzdkYTBlZGY2YjIyZDM1MWY3YTJhZWZk
OS4uYzczOGQxZTAxYjljYzc1YjllMWM0NWMxNzk3NTdlYjkwMTA5N2VkYSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTEyNTgsMjMgKzEyNTgsNiBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShX
S1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
LSAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoc3ViTWVzc2FnZU5hbWUs
ICJTd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyIpKSB7Ci0gICAgICAgICAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4geEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIlgiKSk7Ci0gICAgICAgICAgICBkb3VibGUgeCA9IFdLRG91YmxlR2V0
VmFsdWUoc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXko
bWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB4S2V5LmdldCgpKSkpOwotCi0gICAgICAgICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4geUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIlkiKSk7Ci0gICAgICAgICAgICBkb3VibGUgeSA9IFdLRG91YmxlR2V0VmFsdWUo
c3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2Fn
ZUJvZHlEaWN0aW9uYXJ5LCB5S2V5LmdldCgpKSkpOwotCi0gICAgICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gcGhhc2VLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJQaGFzZSIpKTsKLSAgICAgICAgICAgIGludCBwaGFzZSA9IHN0YXRpY19jYXN0PGlu
dD4oV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5
R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHBoYXNlS2V5LmdldCgpKSkpKTsK
LSAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtb21lbnR1bUtleSA9IGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIk1vbWVudHVtIikpOwotICAgICAgICAg
ICAgaW50IG1vbWVudHVtID0gc3RhdGljX2Nhc3Q8aW50PihXS1VJbnQ2NEdldFZhbHVlKHN0YXRp
Y19jYXN0PFdLVUludDY0UmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5
RGljdGlvbmFyeSwgbW9tZW50dW1LZXkuZ2V0KCkpKSkpOwotCi0gICAgICAgICAgICBtX2V2ZW50
U2VuZGVyUHJveHktPnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKHgsIHks
IHBoYXNlLCBtb21lbnR1bSk7Ci0KLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA5ZGI5OGVhOWUwOWI5OWE2ZmM3YTE3MGU5ZTA0MGY0NjZiMmE0
NTAwLi41MWZkMjVhNTc2YTUyYjZmOWM4ZWYyOWQwYjNiZWU2ZDdkYTA0YWQ1IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMsNiArNjMsMTEgQEAKIAkJMjlBOEZDREQx
NDVGMDMzNzAwOTA0NUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4RkNFMTM0NUU3
MDIxMDA2QUE1QTYgLyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCAqLzsgfTsK
IAkJMjlBOEZDRTIxNDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFu
Z2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlB
OEZDRTExNDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3Bw
ICovOyB9OwogCQkyOUE4RkNFNTE0NUYwNDY0MDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXJSYW5nZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI5QThGQ0U0MTQ1RjA0NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
clJhbmdlTWFjLm1tICovOyB9OworCQkyREI2MTg3RTFEN0Q1OEQ0MDA5NzhEMTkgLyogQ29yZUdy
YXBoaWNzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyREI2MTg3RDFEN0Q1OEQ0MDA5NzhEMTkgLyogQ29yZUdyYXBoaWNzU1BJLmggKi87IH07CisJ
CTJERDRDNDlBMUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERDRDNDk4MUQ2RTdEM0Iw
MDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMuaCAqLzsgfTsKKwkJMkRENEM0OUIxRDZFN0Qz
QjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERDRDNDk5MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVu
dFNlcmlhbGl6ZXJNYWMubW0gKi87IH07CisJCTJERkE5ODQ4MUQ3RjcwQ0YwMEFGRjJDOSAvKiBT
aGFyZWRFdmVudFN0cmVhbXNNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJERkE5ODQ2MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVh
bXNNYWMuaCAqLzsgfTsKKwkJMkRGQTk4NDkxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50
U3RyZWFtc01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJERkE5ODQ3MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMubW0g
Ki87IH07CiAJCTJFMzRDOTAwMThCNjg4MDgwMDAwNjdCQiAvKiBXZWJLaXRUZXN0UnVubmVySW5q
ZWN0ZWRCdW5kbGUuYnVuZGxlIGluIENvcHkgUGx1Zy1JbnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMyNTE4NjIxMUQxNUQ1NDAwMkVCQzAxIC8qIFdlYktpdFRlc3RSdW5u
ZXJJbmplY3RlZEJ1bmRsZS5idW5kbGUgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoQ29k
ZVNpZ25PbkNvcHksIFJlbW92ZUhlYWRlcnNPbkNvcHksICk7IH07IH07CiAJCTJFNjNFRDhBMTg5
MUFEN0UwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNjNFRDc1MTg5MUFDRTkwMDJB
N0FGQyAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbSAqLzsgfTsKIAkJMkU2M0VEOEIx
ODkxQUQ3RTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU2M0VENzcxODkxQUNFOTAw
MkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tICovOyB9OwpAQCAtMjExLDcg
KzIxNiw3IEBACiAJCTBGRUI5MEEzMTkwNUJDNkEwMDBGREJGMyAvKiBDcmFzaFJlcG9ydGVySW5m
by5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENyYXNoUmVwb3J0
ZXJJbmZvLm1tOyBwYXRoID0gY29jb2EvQ3Jhc2hSZXBvcnRlckluZm8ubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGRUJGODU4MUJCNjFERjIwMDI4NzIyRCAvKiBISURFdmVudEdl
bmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBISURFdmVudEdlbmVy
YXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVCRjg1OTFCQjYxREYyMDAy
ODcyMkQgLyogSElERXZlbnRHZW5lcmF0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBISURFdmVudEdlbmVyYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMEZFQkY4NUIxQkI2MkEzNzAwMjg3MjJEIC8qIElPS2l0U1BJLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IElPS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRUJGODVC
MUJCNjJBMzcwMDI4NzIyRCAvKiBJT0tpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJT0tpdFNQSS5o
OyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9zcGkvSU9LaXRTUEkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQkY4NUMxQkI2MkQ0NjAwMjg3MjJEIC8qIFVJS2l0U1BJLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFVJS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFBMzMyNjA1MUI3NTM5NjUwMEY4OUY2MiAvKiBUZXN0T3B0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZXN0T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0EyMTFDNzFC
Q0ExMDczMDBCMjEwMUYgLyogRm9udFdpdGhGZWF0dXJlcy5vdGYgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gRm9udFdpdGhGZWF0
dXJlcy5vdGY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDAsNyArMjQ1LDEyIEBA
CiAJCTI5QThGQ0UxMzQ1RTcwMjEwMDZBQTVBNiAvKiBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
UmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MjlBOEZDRTEzNDVFNzAyMTAwNkFBNUE3IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5n
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FjY2Vzc2liaWxpdHlUZXh0
TWFya2VyUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBOEZDRTQxNDVG
MDQ2NDAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
clJhbmdlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREI2MTg3RDFEN0Q1
OEQ0MDA5NzhEMTkgLyogQ29yZUdyYXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IENvcmVHcmFwaGljc1NQSS5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9z
cGkvQ29yZUdyYXBoaWNzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQ0Uy
Q0QxMUI4NDUyNDUwMEM3RjgzMiAvKiBUZXN0Q29udHJvbGxlckNvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGVzdENvbnRyb2xsZXJDb2NvYS5tbTsgcGF0
aCA9IGNvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJERDRDNDk4MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRXZlbnRTZXJpYWxpemVyTWFjLmg7IHBh
dGggPSBtYWMvRXZlbnRTZXJpYWxpemVyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTJERDRDNDk5MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBFdmVudFNlcmlhbGl6ZXJNYWMu
bW07IHBhdGggPSBtYWMvRXZlbnRTZXJpYWxpemVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyREZBOTg0NjFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1z
TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNoYXJlZEV2ZW50U3RyZWFt
c01hYy5oOyBwYXRoID0gbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyREZBOTg0NzFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRT
dHJlYW1zTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gU2hh
cmVkRXZlbnRTdHJlYW1zTWFjLm1tOyBwYXRoID0gbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU2M0VENzUxODkxQUNFOTAwMkE3QUZD
IC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNjNFRDc2MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyRTYzRUQ3NzE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTQ3Niw3ICs0ODYsOSBAQAogCQkwRjczQjU0NzFCQTc4MkZFMDA0QjNFRjQgLyogVUlTY3Jp
cHRDb250ZXh0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJ
CQkyREI2MTg3RjFEN0Q1OTg4MDA5NzhEMTkgLyogc3BpICovLAogCQkJCTBGNzNCNTRCMUJBNzgz
NTAwMDRCM0VGNCAvKiBCaW5kaW5ncyAqLywKKwkJCQkyREQ0QzQ5NzFENkU3RDNCMDAwNzM3OUMg
LyogRXZlbnQgU2VyaWFsaXphdGlvbiAqLywKIAkJCQkwRjczQjU0RTFCQTc4OTU0MDA0QjNFRjQg
LyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTBGMThFNkREMUQ2QjlBQUYwMDI3RTU0NyAvKiBV
SVNjcmlwdENvbnRleHQuY3BwICovLAogCQkJCTBGMThFNkRFMUQ2QjlBQUYwMDI3RTU0NyAvKiBV
SVNjcmlwdENvbnRleHQuaCAqLywKQEAgLTU1NCw2ICs1NjYsMzUgQEAKIAkJCW5hbWUgPSBBY2Nl
c3NpYmlsaXR5OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMkRCNjE4N0Yx
RDdENTk4ODAwOTc4RDE5IC8qIHNwaSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hp
bGRyZW4gPSAoCisJCQkJMkRCNjE4N0QxRDdENThENDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQ
SS5oICovLAorCQkJCTBGRUJGODVCMUJCNjJBMzcwMDI4NzIyRCAvKiBJT0tpdFNQSS5oICovLAor
CQkJKTsKKwkJCW5hbWUgPSBzcGk7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owor
CQkyREQ0QzQ5NzFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnQgU2VyaWFsaXphdGlvbiAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMkRGQTk4NEExRDdGNzlF
MDAwQUZGMkM5IC8qIG1hYyAqLywKKwkJCSk7CisJCQluYW1lID0gIkV2ZW50IFNlcmlhbGl6YXRp
b24iOworCQkJcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMkRGQTk4NEExRDdGNzlFMDAwQUZG
MkM5IC8qIG1hYyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJ
CQkJMkRENEM0OTgxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5oICovLAor
CQkJCTJERDRDNDk5MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMubW0gKi8s
CisJCQkJMkRGQTk4NDYxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5o
ICovLAorCQkJCTJERkE5ODQ3MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNN
YWMubW0gKi8sCisJCQkpOworCQkJbmFtZSA9IG1hYzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CisJCX07CiAJCTJFNjNFRDc0MTg5MUFDRTkwMDJBN0FGQyAvKiBpb3MgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNTkxLDcgKzYzMiw2IEBACiAJCQlj
aGlsZHJlbiA9ICgKIAkJCQkwRkVCRjg1ODFCQjYxREYyMDAyODcyMkQgLyogSElERXZlbnRHZW5l
cmF0b3IuaCAqLywKIAkJCQkwRkVCRjg1OTFCQjYxREYyMDAyODcyMkQgLyogSElERXZlbnRHZW5l
cmF0b3IubW0gKi8sCi0JCQkJMEZFQkY4NUIxQkI2MkEzNzAwMjg3MjJEIC8qIElPS2l0U1BJLmgg
Ki8sCiAJCQkJMkVFNTJEMTMxODkwQTlGQjAwMTBFRDIxIC8qIFBsYXRmb3JtV2ViVmlld0lPUy5t
bSAqLywKIAkJCQkyRUU1MkQxNDE4OTBBOUZCMDAxMEVEMjEgLyogVGVzdENvbnRyb2xsZXJJT1Mu
bW0gKi8sCiAJCQkJMEZFQkY4NUMxQkI2MkQ0NjAwMjg3MjJEIC8qIFVJS2l0U1BJLmggKi8sCkBA
IC03NzgsNyArODE4LDEwIEBACiAJCQlpc2EgPSBQQlhIZWFkZXJzQnVpbGRQaGFzZTsKIAkJCWJ1
aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQkyREI2MTg3RTFE
N0Q1OEQ0MDA5NzhEMTkgLyogQ29yZUdyYXBoaWNzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjczQjU1MjFCQTc4OTY4MDA0QjNFRjQgLyogSlNVSVNjcmlwdENvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTJERkE5ODQ4MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVh
bXNNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCTJERDRDNDlBMUQ2RTdEM0IwMDA3Mzc5QyAvKiBF
dmVudFNlcmlhbGl6ZXJNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtOTg2LDggKzEwMjksMTAgQEAK
IAkJCQkwRjczQjU1MTFCQTc4OTY4MDA0QjNFRjQgLyogSlNVSVNjcmlwdENvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxOEU3MTgxRDZCQzQ1NjAwMjdFNTQ3IC8qIEpTV3JhcHBl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTAzQzFCOUFFMEZFMDA3NDRBRUIgLyogT3B0
aW9ucy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyREQ0QzQ5QjFENkU3RDNCMDAwNzM3OUMgLyog
RXZlbnRTZXJpYWxpemVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwNDAxQjlBRTEz
MTAwNzQ0QUVCIC8qIFBpeGVsRHVtcFN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4
NTEwNDExQjlBRTEzODAwNzQ0QUVCIC8qIFRlc3RDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTJERkE5ODQ5MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTAzQjFCOUFFMEUyMDA3NDRBRUIgLyogVGVzdENv
bnRyb2xsZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDQyMUI5QUUxM0UwMDc0
NEFFQiAvKiBUZXN0SW52b2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTAzRDFC
OUFFMTA2MDA3NDRBRUIgLyogVGVzdEludm9jYXRpb25DRy5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL0V2ZW50U2VuZGVyUHJveHlFZmwu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvRXZlbnRTZW5kZXJQcm94eUVmbC5jcHAK
aW5kZXggMzhhZTA0Zjc5YjY5Y2JiZjc1MGIxMmE5ZWZhYjFjYTVhNTg5ZDVjYi4uN2E2OGM3ZjI5
N2RlMjUxZGFhZDMzM2JhMWU0MWE5OGIxOWVmNjhmNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9lZmwvRXZlbnRTZW5kZXJQcm94eUVmbC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9lZmwvRXZlbnRTZW5kZXJQcm94eUVmbC5jcHAKQEAgLTM5OSwxMSArMzk5LDYg
QEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoaW50IHgsIGludCB5LCBpbnQKICAgICBtb3VzZVNjcm9sbEJ5KHgsIHkpOwogfQog
Ci12b2lkIEV2ZW50U2VuZGVyUHJveHk6OnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKGludCwgaW50LCBpbnQsIGludCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQot
CiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmxlYXBGb3J3YXJkKGludCBtaWxsaXNlY29uZHMpCiB7
CiAgICAgaWYgKG1fZXZlbnRRdWV1ZS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCmluZGV4IDAyM2VkYzgxMDVjNTUx
MGVhYmZmYzVlMjBjMzNhNDcxNjcxNjNhM2YuLjNjM2FlMGNlODJlZmM3ODljMzM5ZDBjZWUwMzJl
MjBhODQ0NzUxNjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50
U2VuZGVyUHJveHlHdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50
U2VuZGVyUHJveHlHdGsuY3BwCkBAIC00NTEsMTEgKzQ1MSw2IEBAIHZvaWQgRXZlbnRTZW5kZXJQ
cm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQg
eSwgaW50CiAgICAgbW91c2VTY3JvbGxCeSh4LCB5KTsKIH0KIAotdm9pZCBFdmVudFNlbmRlclBy
b3h5Ojpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQsIGludCwgaW50
LCBpbnQpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9pZCBFdmVudFNlbmRlclBy
b3h5OjpsZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKQogewogICAgIGlmIChtX2V2ZW50UXVl
dWUuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvSU9L
aXRTUEkuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL0lPS2l0U1BJLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlNjUyYTQyYTBkNmUxNWJhM2EyMmI1ZTA2ZmNlMDM4ODhk
ODU1NTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvSU9LaXRTUEkuaAorKysgL2Rldi9udWxsCkBAIC0xLDE5
NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBJT0tpdFNQSV9oCi0jZGVmaW5lIElPS2l0
U1BJX2gKLQotI2ltcG9ydCA8d3RmL1BsYXRmb3JtLmg+Ci0KLSNpZiBQTEFURk9STShJT1MpCi0K
LSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotCi0jaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURF
dmVudC5oPgotI2ltcG9ydCA8SU9LaXQvaGlkL0lPSElERXZlbnREYXRhLmg+Ci0jaW1wb3J0IDxJ
T0tpdC9oaWQvSU9ISURFdmVudFN5c3RlbUNsaWVudC5oPgotI2ltcG9ydCA8SU9LaXQvaGlkL0lP
SElEVXNhZ2VUYWJsZXMuaD4KLQotI2Vsc2UKLQotV1RGX0VYVEVSTl9DX0JFR0lOCi0KLSNpZmRl
ZiBfX0xQNjRfXwotdHlwZWRlZiBkb3VibGUgSU9ISURGbG9hdDsKLSNlbHNlCi10eXBlZGVmIGZs
b2F0IElPSElERmxvYXQ7Ci0jZW5kaWYKLQotZW51bSB7Ci0gICAga0lPSElERXZlbnRPcHRpb25O
b25lID0gMCwKLX07Ci0KLXR5cGVkZWYgVUludDMyIElPT3B0aW9uQml0czsKLXR5cGVkZWYgdWlu
dDMyX3QgSU9ISURFdmVudE9wdGlvbkJpdHM7Ci10eXBlZGVmIHVpbnQzMl90IElPSElERXZlbnRG
aWVsZDsKLQotdHlwZWRlZiBzdHJ1Y3QgX19JT0hJREV2ZW50U3lzdGVtQ2xpZW50ICogSU9ISURF
dmVudFN5c3RlbUNsaWVudFJlZjsKLXR5cGVkZWYgc3RydWN0IF9fSU9ISURFdmVudCAqIElPSElE
RXZlbnRSZWY7Ci0KLSNkZWZpbmUgSU9ISURFdmVudEZpZWxkQmFzZSh0eXBlKSAodHlwZSA8PCAx
NikKLQotZW51bSB7Ci0gICAga0hJRFBhZ2VfS2V5Ym9hcmRPcktleXBhZCAgICAgICA9IDB4MDcs
Ci0gICAga0hJRFBhZ2VfVmVuZG9yRGVmaW5lZFN0YXJ0ICAgICA9IDB4RkYwMAotfTsKLQotZW51
bSB7Ci0gICAga0lPSElERGlnaXRpemVyRXZlbnRSYW5nZSAgICAgICA9IDE8PDAsCi0gICAga0lP
SElERGlnaXRpemVyRXZlbnRUb3VjaCAgICAgICA9IDE8PDEsCi0gICAga0lPSElERGlnaXRpemVy
RXZlbnRQb3NpdGlvbiAgICA9IDE8PDIsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRJZGVudGl0
eSAgICA9IDE8PDUsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRBdHRyaWJ1dGUgICA9IDE8PDYs
Ci0gICAga0lPSElERGlnaXRpemVyRXZlbnRDYW5jZWwgICAgICA9IDE8PDcsCi0gICAga0lPSElE
RGlnaXRpemVyRXZlbnRTdGFydCAgICAgICA9IDE8PDgsCi0gICAga0lPSElERGlnaXRpemVyRXZl
bnRFc3RpbWF0ZWRBbHRpdHVkZSA9IDE8PDI4LAotICAgIGtJT0hJRERpZ2l0aXplckV2ZW50RXN0
aW1hdGVkQXppbXV0aCA9IDE8PDI5LAotICAgIGtJT0hJRERpZ2l0aXplckV2ZW50RXN0aW1hdGVk
UHJlc3N1cmUgPSAxPDwzMCwKLX07Ci10eXBlZGVmIHVpbnQzMl90IElPSElERGlnaXRpemVyRXZl
bnRNYXNrOwotCi1lbnVtIHsKLSAgICBrSU9ISURFdmVudFR5cGVOVUxMLAotICAgIGtJT0hJREV2
ZW50VHlwZVZlbmRvckRlZmluZWQsCi0gICAga0lPSElERXZlbnRUeXBlS2V5Ym9hcmQgPSAzLAot
ICAgIGtJT0hJREV2ZW50VHlwZURpZ2l0aXplciA9IDExLAotfTsKLXR5cGVkZWYgdWludDMyX3Qg
SU9ISURFdmVudFR5cGU7Ci0KLWVudW0gewotICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZp
bmVkVXNhZ2VQYWdlID0gSU9ISURFdmVudEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVWZW5kb3JE
ZWZpbmVkKSwKLSAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFJlc2VydmVkLAotICAg
IGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkUmVzZXJ2ZWQxLAotICAgIGtJT0hJREV2ZW50
RmllbGRWZW5kb3JEZWZpbmVkRGF0YUxlbmd0aCwKLSAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9y
RGVmaW5lZERhdGEKLX07Ci0KLWVudW0gewotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJY
ID0gSU9ISURFdmVudEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVEaWdpdGl6ZXIpLAotICAgIGtJ
T0hJREV2ZW50RmllbGREaWdpdGl6ZXJZLAotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJN
YWpvclJhZGl1cyA9IGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJYICsgMjAsCi0gICAga0lPSElE
RXZlbnRGaWVsZERpZ2l0aXplck1pbm9yUmFkaXVzLAotICAgIGtJT0hJREV2ZW50RmllbGREaWdp
dGl6ZXJJc0Rpc3BsYXlJbnRlZ3JhdGVkID0ga0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1ham9y
UmFkaXVzICsgNSwKLX07Ci0KLWVudW0gewotICAgIGtJT0hJRFRyYW5zZHVjZXJSYW5nZSAgICAg
ICAgICAgICAgID0gMHgwMDAxMDAwMCwKLSAgICBrSU9ISURUcmFuc2R1Y2VyVG91Y2ggICAgICAg
ICAgICAgICA9IDB4MDAwMjAwMDAsCi0gICAga0lPSElEVHJhbnNkdWNlckludmVydCAgICAgICAg
ICAgICAgPSAweDAwMDQwMDAwLAotICAgIGtJT0hJRFRyYW5zZHVjZXJEaXNwbGF5SW50ZWdyYXRl
ZCAgID0gMHgwMDA4MDAwMAotfTsKLQotZW51bSB7Ci0gICAga0lPSElERGlnaXRpemVyVHJhbnNk
dWNlclR5cGVIYW5kID0gMwotfTsKLXR5cGVkZWYgdWludDMyX3QgSU9ISUREaWdpdGl6ZXJUcmFu
c2R1Y2VyVHlwZTsKLQotZW51bSB7Ci0gICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplcldpbGxV
cGRhdGVNYXNrID0gNzIwOTI0LAotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJEaWRVcGRh
dGVNYXNrID0gNzIwOTI1Ci19OwotCi1JT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVEaWdp
dGl6ZXJFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIElPSElERGlnaXRpemVyVHJhbnNk
dWNlclR5cGUsIHVpbnQzMl90LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIHVp
bnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJ
T0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsKLQotSU9ISURF
dmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlRGlnaXRpemVyRmluZ2VyRXZlbnQoQ0ZBbGxvY2F0b3JS
ZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIElPSElERGlnaXRpemVyRXZlbnRNYXNr
LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZs
b2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOwotCi1JT0hJ
REV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVGb3JjZUV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50
NjRfdCwgdWludDMyX3QsIElPSElERmxvYXQsIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREV2
ZW50T3B0aW9uQml0cyk7Ci0KLUlPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZUtleWJvYXJk
RXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIGJvb2xl
YW5fdCwgSU9PcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlVmVu
ZG9yRGVmaW5lZEV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIHVpbnQz
Ml90LCB1aW50MzJfdCwgdWludDhfdCosIENGSW5kZXgsIElPSElERXZlbnRPcHRpb25CaXRzKTsK
LQotSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlRGlnaXRpemVyU3R5bHVzRXZlbnRXaXRo
UG9sYXJPcmllbnRhdGlvbihDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIHVpbnQzMl90LCB1aW50
MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJ
REZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJ
T0hJREZsb2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9ISURFdmVudE9w
dGlvbkJpdHMpOwotCi1JT0hJREV2ZW50VHlwZSBJT0hJREV2ZW50R2V0VHlwZShJT0hJREV2ZW50
UmVmKTsKLQotdm9pZCBJT0hJREV2ZW50U2V0RmxvYXRWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJ
REV2ZW50RmllbGQsIElPSElERmxvYXQpOwotCi1DRkluZGV4IElPSElERXZlbnRHZXRJbnRlZ2Vy
VmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxkKTsKLXZvaWQgSU9ISURFdmVudFNl
dEludGVnZXJWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50RmllbGQsIENGSW5kZXgpOwot
Ci12b2lkIElPSElERXZlbnRBcHBlbmRFdmVudChJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50UmVm
LCBJT09wdGlvbkJpdHMpOwotCi1JT0hJREV2ZW50U3lzdGVtQ2xpZW50UmVmIElPSElERXZlbnRT
eXN0ZW1DbGllbnRDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYpOwotCi0jZGVmaW5lIGtHU0V2ZW50UGF0
aEluZm9JblJhbmdlICgxIDw8IDApCi0jZGVmaW5lIGtHU0V2ZW50UGF0aEluZm9JblRvdWNoICgx
IDw8IDEpCi0KLWVudW0gewotICAgIGtISURVc2FnZV9LZXlib2FyZEEgPSAweDA0LAotICAgIGtI
SURVc2FnZV9LZXlib2FyZDEgPSAweDFFLAotICAgIGtISURVc2FnZV9LZXlib2FyZDIgPSAweDFG
LAotICAgIGtISURVc2FnZV9LZXlib2FyZDMgPSAweDIwLAotICAgIGtISURVc2FnZV9LZXlib2Fy
ZDQgPSAweDIxLAotICAgIGtISURVc2FnZV9LZXlib2FyZDUgPSAweDIyLAotICAgIGtISURVc2Fn
ZV9LZXlib2FyZDYgPSAweDIzLAotICAgIGtISURVc2FnZV9LZXlib2FyZDcgPSAweDI0LAotICAg
IGtISURVc2FnZV9LZXlib2FyZDggPSAweDI1LAotICAgIGtISURVc2FnZV9LZXlib2FyZDkgPSAw
eDI2LAotICAgIGtISURVc2FnZV9LZXlib2FyZDAgPSAweDI3LAotICAgIGtISURVc2FnZV9LZXli
b2FyZFJldHVybk9yRW50ZXIgPSAweDI4LAotICAgIGtISURVc2FnZV9LZXlib2FyZEVzY2FwZSA9
IDB4MjksCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRGVsZXRlT3JCYWNrc3BhY2UgPSAweDJBLAot
ICAgIGtISURVc2FnZV9LZXlib2FyZFRhYiA9IDB4MkIsCi0gICAga0hJRFVzYWdlX0tleWJvYXJk
U3BhY2ViYXIgPSAweDJDLAotICAgIGtISURVc2FnZV9LZXlib2FyZEh5cGhlbiA9IDB4MkQsCi0g
ICAga0hJRFVzYWdlX0tleWJvYXJkRXF1YWxTaWduID0gMHgyRSwKLSAgICBrSElEVXNhZ2VfS2V5
Ym9hcmRPcGVuQnJhY2tldCA9IDB4MkYsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkQ2xvc2VCcmFj
a2V0ID0gMHgzMCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRCYWNrc2xhc2ggPSAweDMxLAotICAg
IGtISURVc2FnZV9LZXlib2FyZFNlbWljb2xvbiA9IDB4MzMsCi0gICAga0hJRFVzYWdlX0tleWJv
YXJkUXVvdGUgPSAweDM0LAotICAgIGtISURVc2FnZV9LZXlib2FyZEdyYXZlQWNjZW50QW5kVGls
ZGUgPSAweDM1LAotICAgIGtISURVc2FnZV9LZXlib2FyZENvbW1hID0gMHgzNiwKLSAgICBrSElE
VXNhZ2VfS2V5Ym9hcmRQZXJpb2QgPSAweDM3LAotICAgIGtISURVc2FnZV9LZXlib2FyZFNsYXNo
ID0gMHgzOCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRGMSA9IDB4M0EsCi0gICAga0hJRFVzYWdl
X0tleWJvYXJkSG9tZSA9IDB4NEEsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkUGFnZVVwID0gMHg0
QiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRFbmQgPSAweDRELAotICAgIGtISURVc2FnZV9LZXli
b2FyZFJpZ2h0QXJyb3cgPSAweDRGLAotICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRBcnJvdyA9
IDB4NTAsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRG93bkFycm93ID0gMHg1MSwKLSAgICBrSElE
VXNhZ2VfS2V5Ym9hcmRVcEFycm93ID0gMHg1MiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0
Q29udHJvbCA9IDB4RTAsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdFNoaWZ0ID0gMHhFMSwK
LSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0QWx0ID0gMHhFMgotfTsKLQotV1RGX0VYVEVSTl9D
X0VORAotCi0jZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLQotI2VuZGlmIC8vIFBM
QVRGT1JNKElPUykKLQotI2VuZGlmIC8vIElPS2l0U1BJX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0gYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tCmluZGV4IDE5YjVhMzdiMzZkZDEyYjc0MDIy
MWUzNjM3YjA0YjFmNjgyNTE0ZGYuLjhjNmI5ZGNiMGY1NDAxMzBmM2NiMjJkM2VmNTRjN2YwZmIx
ZTk0M2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVy
UHJveHkubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94
eS5tbQpAQCAtNDUsMTcgKzQ1LDYgQEAKIC0gKHZvaWQpX3Bvc3REZWxheWVkOwogQGVuZAogCi0j
aWYgZGVmaW5lZChfX0xQNjRfXykKLXN0cnVjdCBXS1RSQ0dTRXZlbnRSZWNvcmQgewotICAgIGNo
YXIgb2Zmc2V0MVsxNTBdOwotICAgIHVpbnQ4X3QgcGhhc2U7Ci0gICAgY2hhciBvZmZzZXQyWzEz
XTsKLSAgICBmbG9hdCBkZWx0YVg7Ci0gICAgZmxvYXQgZGVsdGFZOwotICAgIGNoYXIgb2Zmc2V0
M1s3Nl07Ci19IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwotI2VuZGlmCi0KIEBpbnRlcmZhY2Ug
RXZlbnRTZW5kZXJTeW50aGV0aWNFdmVudCA6IE5TRXZlbnQgewogQHB1YmxpYwogICAgIE5TUG9p
bnQgX2V2ZW50U2VuZGVyX2xvY2F0aW9uSW5XaW5kb3c7CkBAIC03MCwxMSArNTksNiBAQCBzdHJ1
Y3QgV0tUUkNHU0V2ZW50UmVjb3JkIHsKICAgICBzaG9ydCBfZXZlbnRTZW5kZXJfc3VidHlwZTsK
ICAgICBOU0V2ZW50VHlwZSBfZXZlbnRTZW5kZXJfdHlwZTsKICAgICBOU1dpbmRvdyAqX2V2ZW50
U2VuZGVyX3dpbmRvdzsKLQotCi0jaWYgZGVmaW5lZChfX0xQNjRfXykKLSAgICBXS1RSQ0dTRXZl
bnRSZWNvcmQgX2V2ZW50U2VuZGVyX2Nnc0V2ZW50UmVjb3JkOwotI2VuZGlmCiB9CiAKIC0gKGlk
KWluaXRQcmVzc3VyZUV2ZW50QXRMb2NhdGlvbjooTlNQb2ludClsb2NhdGlvbiBnbG9iYWxMb2Nh
dGlvbjooTlNQb2ludClnbG9iYWxMb2NhdGlvbiBzdGFnZTooTlNJbnRlZ2VyKXN0YWdlIHByZXNz
dXJlOihmbG9hdClwcmVzc3VyZSBzdGFnZVRyYW5zaXRpb246KGZsb2F0KXN0YWdlVHJhbnNpdGlv
biBwaGFzZTooTlNFdmVudFBoYXNlKXBoYXNlIHRpbWU6KE5TVGltZUludGVydmFsKXRpbWUgZXZl
bnROdW1iZXI6KE5TSW50ZWdlcilldmVudE51bWJlciB3aW5kb3c6KE5TV2luZG93ICopd2luZG93
OwpAQCAtMTY3LDEzICsxNTEsNiBAQCBzdHJ1Y3QgV0tUUkNHU0V2ZW50UmVjb3JkIHsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiBkZWZpbmVkKF9fTFA2NF9fKQotLSAoV0tUUkNHU0V2ZW50
UmVjb3JkKV9jZ3NFdmVudFJlY29yZAotewotICAgIHJldHVybiBfZXZlbnRTZW5kZXJfY2dzRXZl
bnRSZWNvcmQ7Ci19Ci0jZW5kaWYKLQogLSAoTlNXaW5kb3cgKil3aW5kb3cKIHsKICAgICByZXR1
cm4gX2V2ZW50U2VuZGVyX3dpbmRvdzsKQEAgLTg5MCw1MCArODY3LDQgQEAgdm9pZCBFdmVudFNl
bmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgs
IGludCB5LCBpbnQKICAgICB9CiB9CiAKLXN0YXRpYyBOU0V2ZW50UGhhc2UgbnNFdmVudFBoYXNl
RnJvbUNHRXZlbnRQaGFzZShpbnQgcGhhc2UpCi17Ci0gICAgc3dpdGNoIChwaGFzZSkgewotICAg
IGNhc2UgMDogLy8ga0NHU0dlc3R1cmVQaGFzZU5vbmUKLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQ
aGFzZU5vbmU7Ci0gICAgY2FzZSAxOiAvLyBrQ0dTR2VzdHVyZVBoYXNlQmVnYW4KLSAgICAgICAg
cmV0dXJuIE5TRXZlbnRQaGFzZUJlZ2FuOwotICAgIGNhc2UgMjogLy8ga0NHU0dlc3R1cmVQaGFz
ZUNoYW5nZWQKLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZUNoYW5nZWQ7Ci0gICAgY2FzZSA0
OiAvLyBrQ0dTR2VzdHVyZVBoYXNlRW5kZWQKLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZUVu
ZGVkOwotICAgIGNhc2UgODogLy8ga0NHU0dlc3R1cmVQaGFzZUNhbmNlbGxlZAotICAgICAgICBy
ZXR1cm4gTlNFdmVudFBoYXNlQ2FuY2VsbGVkOwotICAgIGNhc2UgMTI4OiAvLyBrQ0dTR2VzdHVy
ZVBoYXNlTWF5QmVnaW4KLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZU1heUJlZ2luOwotICAg
IH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBOU0V2ZW50UGhhc2VO
b25lOwotfQotCi12b2lkIEV2ZW50U2VuZGVyUHJveHk6OnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50IHBoYXNlLCBpbnQgbW9tZW50dW0pCi17
Ci0gICAgUmV0YWluUHRyPEV2ZW50U2VuZGVyU3ludGhldGljRXZlbnQ+IGV2ZW50ID0gYWRvcHRO
UyhbW0V2ZW50U2VuZGVyU3ludGhldGljRXZlbnQgYWxsb2NdIGluaXRdKTsKLQotICAgIC8vICJt
YXlCZWdpbiIgYSBzd2lwZSBpcyBhY3R1YWxseSBhIHNjcm9sbCB3aGVlbCBldmVudC4KLSAgICBl
dmVudC0+X2V2ZW50U2VuZGVyX3R5cGUgPSAocGhhc2UgPT0gMTI4KSA/IE5TU2Nyb2xsV2hlZWwg
OiBOU0V2ZW50VHlwZUdlc3R1cmU7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9zdWJ0eXBlID0g
NjsgLy8ga0lPSElERXZlbnRUeXBlU2Nyb2xsCi0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9sb2Nh
dGlvbkluV2luZG93ID0gTlNNYWtlUG9pbnQobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnkpOwot
ICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfbG9jYXRpb24gPSAoW21fdGVzdENvbnRyb2xsZXItPm1h
aW5XZWJWaWV3KCktPnBsYXRmb3JtV2luZG93KCkgY29udmVydFJlY3RUb1NjcmVlbjpOU01ha2VS
ZWN0KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55LCAxLCAxKV0ub3JpZ2luKTsKLSAgICBldmVu
dC0+X2V2ZW50U2VuZGVyX3BoYXNlID0gbnNFdmVudFBoYXNlRnJvbUNHRXZlbnRQaGFzZShwaGFz
ZSk7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9tb21lbnR1bVBoYXNlID0gbnNFdmVudFBoYXNl
RnJvbUNHRXZlbnRQaGFzZShtb21lbnR1bSk7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl90aW1l
c3RhbXAgPSBhYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKTsKLSAg
ICBldmVudC0+X2V2ZW50U2VuZGVyX2V2ZW50TnVtYmVyID0gKytldmVudE51bWJlcjsKLQotI2lm
IGRlZmluZWQoX19MUDY0X18pCi0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9jZ3NFdmVudFJlY29y
ZC5waGFzZSA9IHBoYXNlOwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfY2dzRXZlbnRSZWNvcmQu
ZGVsdGFYID0gKGZsb2F0KXg7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9jZ3NFdmVudFJlY29y
ZC5kZWx0YVkgPSAoZmxvYXQpeTsKLSNlbHNlCi0gICAgTlNMb2coQCJTeW50aGV0aWMgc3dpcGUg
Z2VzdHVyZXMgYXJlIG5vdCBpbXBsZW1lbnRlZCBmb3IgMzItYml0IFdlYktpdFRlc3RSdW5uZXIu
Iik7Ci0jZW5kaWYKLQotICAgIFtOU0FwcCBzZW5kRXZlbnQ6ZXZlbnQuZ2V0KCldOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFj
L1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbQppbmRleCA0ZjZjY2ViYTdkM2ZiNDA5ODVhMDYyMTcyMGNi
OGExYzBlYjI0NzVkLi41NzYyODlkNDk3ODQ3Y2ZlZjJhMjZlMmQ5ZjUxNTU1NjFmOTUwNzVlIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJN
YWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVy
TWFjLm1tCkBAIC0yNiw3ICsyNiwxMiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJV
SVNjcmlwdENvbnRyb2xsZXIuaCIKIAorI2ltcG9ydCAiRXZlbnRTZXJpYWxpemVyTWFjLmgiCisj
aW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbXBvcnQgIlNoYXJlZEV2ZW50U3RyZWFtc01h
Yy5oIgorI2ltcG9ydCAiVGVzdENvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlVJU2NyaXB0Q29udGV4
dC5oIgorI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWZDRi5oPgogCiBuYW1lc3Bh
Y2UgV1RSIHsKIApAQCAtNDEsNCArNDYsMzggQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmRv
QXN5bmNUYXNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCiAgICAgfSk7CiB9CiAKK3N0YXRpYyB2b2lk
IHBsYXlCYWNrRXZlbnRzKFVJU2NyaXB0Q29udGV4dCAqY29udGV4dCwgTlNTdHJpbmcgKmV2ZW50
U3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIE5TRXJyb3IgKmVycm9yID0gbmls
OworICAgIE5TQXJyYXkgKmV2ZW50RGljdHMgPSBbTlNKU09OU2VyaWFsaXphdGlvbiBKU09OT2Jq
ZWN0V2l0aERhdGE6W2V2ZW50U3RyZWFtIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0Vu
Y29kaW5nXSBvcHRpb25zOjAgZXJyb3I6JmVycm9yXTsKKworICAgIGlmIChlcnJvcikgeworICAg
ICAgICBOU0xvZyhAIkVSUk9SOiAlQCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIHVuc2lnbmVkIGNhbGxiYWNrSUQgPSBjb250ZXh0LT5wcmVwYXJlRm9yQXN5bmNUYXNr
KGNhbGxiYWNrLCBDYWxsYmFja1R5cGVOb25QZXJzaXN0ZW50KTsKKworICAgIE5TV2luZG93ICp3
aW5kb3cgPSBbVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBsYXRm
b3JtVmlldygpIHdpbmRvd107CisgICAgW0V2ZW50U2VyaWFsaXplciBwbGF5RXZlbnRTdHJlYW06
ZXZlbnREaWN0cyBpbldpbmRvdzp3aW5kb3cgY29tcGxldGlvbkhhbmRsZXI6XiB7CisgICAgICAg
IGNvbnRleHQtPmFzeW5jVGFza0NvbXBsZXRlKGNhbGxiYWNrSUQpOworICAgIH1dOworfQorCit2
b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVnaW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFj
aykKK3sKKyAgICBwbGF5QmFja0V2ZW50cyhtX2NvbnRleHQsIGJlZ2luU3dpcGVCYWNrRXZlbnRT
dHJlYW0oKSwgY2FsbGJhY2spOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxl
dGVCYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBwbGF5QmFja0V2ZW50cyht
X2NvbnRleHQsIGNvbXBsZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0oKSwgY2FsbGJhY2spOworfQor
Cit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpT
U3RyaW5nUmVmIGV2ZW50U3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIFJldGFp
blB0cjxOU1N0cmluZz4gbnNTdHJpbmcgPSBhZG9wdE5TKChOU1N0cmluZyAqKUpTU3RyaW5nQ29w
eUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGV2ZW50U3RyZWFtKSk7CisgICAgcGxheUJh
Y2tFdmVudHMobV9jb250ZXh0LCBuc1N0cmluZy5nZXQoKSwgY2FsbGJhY2spOworfQorCiB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggYjcwYjg1ZDdhYjY3ZmVhODRlMDNmNTk3ZmM3ZTdkZjhhYzBjMmZjNy4uMmI0MGE0NTNl
MTE4OWE3MTNjNDFiYTE2NzI0N2MxZTJkMDBkZTRhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisy
MDE2LTA5LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAg
ICAgIFN3aXBlIGdlc3R1cmUgdGVzdHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICogc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHN3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWw6CisgICAgICAgICog
c3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBzd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbDoKKyAgICAgICAg
KiBzd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHN3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sOgorICAgICAgICAqIHN3
aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBzd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hp
bGUtc3dpcGluZy1jcmFzaC5odG1sOgorICAgICAgICAqIHN3aXBlL3Jlc291cmNlcy9zd2lwZS10
ZXN0LmpzOgorICAgICAgICAobWVhc3VyZWREdXJhdGlvblNob3VsZEJlTGVzc1RoYW4pOgorICAg
ICAgICAoc3RhcnRTd2lwZUdlc3R1cmUpOgorICAgICAgICAoY29tcGxldGVTd2lwZUdlc3R1cmUp
OgorICAgICAgICAocGxheUV2ZW50U3RyZWFtKToKKyAgICAgICAgKGV2ZW50UXVldWUuZW5xdWV1
ZVNjcm9sbEV2ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBl
RXZlbnQpOiBEZWxldGVkLgorICAgICAgICAoZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKTog
RGVsZXRlZC4KKyAgICAgICAgKGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaCk6IERl
bGV0ZWQuCisgICAgICAgIChldmVudFF1ZXVlLl9wcm9jZXNzRXZlbnRRdWV1ZSk6IERlbGV0ZWQu
CisgICAgICAgIChldmVudFF1ZXVlLl9wcm9jZXNzRXZlbnRRdWV1ZVNvb24pOiBEZWxldGVkLgor
ICAgICAgICAqIHN3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIHN3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFp
bHVyZXMuaHRtbDogUmVtb3ZlZC4KKwogMjAxNi0wOS0wNyAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgdGhlIDxtZXRlcj4gZWxlbWVudCBv
biBpT1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA5MmM0N2MxZTkwMTY2ZGM4OWVhZGJhNGNlM2ZhNzQ4YTIyZjNlZjE4Li5lZTZkZDE0ZGRh
Y2Y5NjBjYmZjNTZjNmFkMDljZDA2ZjJjN2Q0MDhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC01MTQsMTIgKzUxNCw2IEBAIHdlYmtpdC5v
cmcvYi8xNTg2MzkgWyBSZWxlYXNlIFlvc2VtaXRlIF0gaW1wb3J0ZWQvYmxpbmsvc3RvcmFnZS9p
bmRleGVkZGIvYmxvYi1kCiAjIDxyZGFyOi8vcHJvYmxlbS8yNTA2MzEyOD4KIFsgU2llcnJhKyBd
IG1lZGlhL21lZGlhLWNvbnRyb2xzLWRyYWctdGltZWxpbmUtc2V0LWNvbnRyb2xzLXByb3BlcnR5
Lmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCi0jIDxyZGFyOi8vcHJvYmxlbS8yMzM3OTkzMD4gc3dp
cGUgdGVzdHMgY3Jhc2hpbmcKLVsgU2llcnJhKyBdIHN3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3
aXBlLmh0bWwgWyBTa2lwIF0KLVsgU2llcnJhKyBdIHN3aXBlL21haW4tZnJhbWUtcGlubmluZy1y
ZXF1aXJlbWVudC5odG1sIFsgU2tpcCBdCi1bIFNpZXJyYSsgXSBzd2lwZS9wdXNoU3RhdGUtY2Fj
aGVkLWJhY2stc3dpcGUuaHRtbCBbIFNraXAgXQotWyBTaWVycmErIF0gc3dpcGUvc3dpcGUtc3Rh
cnQtaHlzdGVyZXNpcy1mYWlsdXJlcy5odG1sIFsgU2tpcCBdCi0KICMgSGl0dGluZyAiVGhlIGNl
cnRpZmljYXRlIGZvciB0aGlzIHNlcnZlciBpcyBpbnZhbGlkIiBsb2FkaW5nIGVycm9yIChub3Qg
aGFwcGVuaW5nIGluIFdLMSkKIHdlYmtpdC5vcmcvYi8xNjA0NDUgWyBTaWVycmErIF0gaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1
ZXN0cy91cGdyYWRlLWluc2VjdXJlLWZldGNoLWluLXdvcmtlci5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJraXQub3JnL2IvMTYwNDQ1IFsgU2llcnJhKyBdIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvdXBncmFkZS1pbnNlY3Vy
ZS1mZXRjaC1pbi1tYWluLWZyYW1lLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dAppbmRleCBl
M2QzZTAwYWI5ZDBiZmZmZTY2OWQ2YWQ4OWEwMTdhZjU3ZjcwYjg5Li44OWRlY2ZkNGMzNzEyNWNm
YjU1OTgxMTk2ODljM2YwYzRhMWQ4ODRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9i
YXNpYy1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3dp
cGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDYgQEAK
LXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQg
KGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFz
ZSAnY2hhbmdlZCcpCitzdGFydFN3aXBlR2VzdHVyZQogZGlkQmVnaW5Td2lwZQotc3dpcGUgZXZl
bnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDI1NiAw
LCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQn
KQorY29tcGxldGVTd2lwZUdlc3R1cmUKIHdpbGxFbmRTd2lwZQogZGlkRW5kU3dpcGUKIGRpZFJl
bW92ZVN3aXBlU25hcHNob3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNh
Y2hlZC1iYWNrLXN3aXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFj
ay1zd2lwZS5odG1sCmluZGV4IGNmN2Y3NWNiMTM5YjU0YjUxNTE3OGEwNzNiOThhZDA2NzNkZGE2
ODMuLjg3MWEyYmM2NDZiOGQ0YWU4Njk0NjM3ZTgwMDNhM2I0YjMyNDVhNmIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbApAQCAtNiwyOCArNiwx
MCBAQCBodG1sIHsKIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRlc3Qu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHN0YXJ0U3dpcGVHZXN0dXJlKCkKLXsK
LSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7Ci0KLSAgICBldmVudFF1ZXVl
LmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5x
dWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNj
cm9sbEV2ZW50KDEsIDAsICdjaGFuZ2VkJyk7Ci19Ci0KLWZ1bmN0aW9uIGNvbXBsZXRlU3dpcGVH
ZXN0dXJlKCkKLXsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDEsIDAsICdjaGFu
Z2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgyNTYsIDAsICdjaGFuZ2Vk
Jyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnZW5kZWQnKTsKLX0K
LQogZnVuY3Rpb24gZGlkQmVnaW5Td2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRpZEJlZ2lu
U3dpcGUiKTsKIAotICAgIHNob3VsZEJlKGZhbHNlLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVu
dHMoKSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBiZSBlbXB0eS4gQm90aCBzY3JvbGwgZXZlbnRzIHNo
b3VsZCBiZSByZXF1aXJlZCB0byBzdGFydCB0aGUgc3dpcGUgYmVjYXVzZSBvZiB0aGUgc3dpcGUt
c3RhcnQgaHlzdGVyZXNpcy4iKTsKLQogICAgIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCk7CiB9CiAK
QEAgLTQyLDcgKzI0LDYgQEAgZnVuY3Rpb24gZGlkRW5kU3dpcGVDYWxsYmFjaygpCiB7CiAgICAg
bG9nKCJkaWRFbmRTd2lwZSIpOwogCi0gICAgc2hvdWxkQmUoMCwgZXZlbnRRdWV1ZS5oYXNQZW5k
aW5nRXZlbnRzKCksICJFdmVudCBxdWV1ZSBzaG91bGQgYmUgZW1wdHkuIFRoZSBzd2lwZSBpc24n
dCBjb21wbGV0ZSB1bnRpbCB3ZSBzZWUgdGhlIGVuZCBvZiB0aGUgZ2VzdHVyZS4iKTsKICAgICBz
dGFydE1lYXN1cmluZ0R1cmF0aW9uKCJzbmFwc2hvdFJlbW92YWwiKTsKIH0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVu
dC1leHBlY3RlZC50eHQKaW5kZXggNjM1OTc0MDU0ODQ3NmM4ZDA5ZmI0YmIzN2M3NTI0NGI5MGIz
OTBkNi4uY2U3NjY4MTk3MjIwOTUzNWUyNGNlMDczNzBlMzA2YTA5ODI1MGNmZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWly
ZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDIzICsxLDggQEAKLXN3aXBlIGV2ZW50IChkZWx0YSAw
IDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdi
ZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9s
bCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0
YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNl
ICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQot
c2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQg
KGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwg
cGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdl
ZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBl
dmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwg
cGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnYmVnYW4n
KQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCitzdGFydFN3aXBl
R2VzdHVyZQorY29tcGxldGVTd2lwZUdlc3R1cmUKK3N0YXJ0U3dpcGVHZXN0dXJlCiBkaWRCZWdp
blN3aXBlCi1zd2lwZSBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBl
dmVudCAoZGVsdGEgMjU2IDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAw
IDAsIHBoYXNlICdlbmRlZCcpCitjb21wbGV0ZVN3aXBlR2VzdHVyZQogd2lsbEVuZFN3aXBlCiBk
aWRFbmRTd2lwZQogZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0
cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbAppbmRleCA2MjE1NTQ0
ODRmMDRmZjM5NzViZjJmNDE4ZTE4ZmVjODNjNjJmMzViLi5hMzY5YjgyMWI5ZDljMmUwMzc4ZGY2
MjcyZWQwMTlmNTJhZTJlYWI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZy
YW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9tYWlu
LWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbApAQCAtNiw0OCArNiwyNCBAQCBodG1sIHsK
IDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRlc3QuanMiPjwvc2NyaXB0
PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHN0YXJ0U3dpcGVHZXN0dXJlKCkKLXsKLSAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7CiAKK2Z1bmN0aW9uIHJ1blRlc3QoKQorewogICAg
IC8vIFRoZSBmaXJzdCBzd2lwZSBzaG91bGQgZmFpbCBiZWNhdXNlIHdlJ3JlIHNjcm9sbGVkIHRv
IHRoZSBtaWRkbGUgb2YgdGhlIGRvY3VtZW50CiAgICAgLy8gYW5kIHRoaXMgaXMgYWxsIGEgc2lu
Z2xlIGdlc3R1cmUuIFdlIGNhbiBvbmx5IHN0YXJ0IHN3aXBlcyBpZiB3ZSAqYmVnaW4qCiAgICAg
Ly8gcGlubmVkIHRvIHRoZSBlZGdlLgotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQo
MCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAs
IDAsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAn
Y2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hh
bmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdl
ZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcp
OwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwot
ICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAg
IGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2
ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50
UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVl
dWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUu
ZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdlbmRlZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxs
QWZ0ZXJFdmVudERpc3BhdGNoKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5jbGVh
clRlc3RSdW5uZXJDYWxsYmFja3MoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkQmVn
aW5Td2lwZUNhbGxiYWNrKGRpZEJlZ2luU3dpcGVDYWxsYmFjayk7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuaW5zdGFsbFdpbGxFbmRTd2lwZUNhbGxiYWNrKHdpbGxFbmRTd2lwZUNhbGxiYWNrKTsKLSAg
ICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkRW5kU3dpcGVDYWxsYmFjayhkaWRFbmRTd2lwZUNh
bGxiYWNrKTsKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkUmVtb3ZlU3dpcGVTbmFwc2hv
dENhbGxiYWNrKGRpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayk7CisgICAgc3RhcnRTd2lw
ZUdlc3R1cmUoZnVuY3Rpb24gKCkgeworICAgICAgICBjb21wbGV0ZVN3aXBlR2VzdHVyZShmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFyVGVzdFJ1bm5lckNhbGxiYWNr
cygpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkQmVnaW5Td2lwZUNhbGxiYWNr
KGRpZEJlZ2luU3dpcGVDYWxsYmFjayk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxX
aWxsRW5kU3dpcGVDYWxsYmFjayh3aWxsRW5kU3dpcGVDYWxsYmFjayk7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLmluc3RhbGxEaWRFbmRTd2lwZUNhbGxiYWNrKGRpZEVuZFN3aXBlQ2FsbGJhY2sp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENh
bGxiYWNrKGRpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayk7ICAgIAogCi0gICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgLy8gVGhlIHNlY29uZCBzd2lwZSBz
aG91bGQgc3VjY2VlZCBiZWNhdXNlIHdlIGFyZSBub3cgc2Nyb2xsZWQgdG8gdGhlIGxlZnQgZWRn
ZS4KLSAgICAgICAgICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJl
Z2luJyk7Ci0gICAgICAgICAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAn
YmVnYW4nKTsKLSAgICAgICAgICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAw
LCAnY2hhbmdlZCcpOwotICAgICAgICB9LCAwKTsKLSAgICB9KQotfQotCi1mdW5jdGlvbiBjb21w
bGV0ZVN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgx
LCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMjU2LCAw
LCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ2Vu
ZGVkJyk7CisgICAgICAgICAgICBzdGFydFN3aXBlR2VzdHVyZShmdW5jdGlvbiAoKSB7IGNvbXBs
ZXRlU3dpcGVHZXN0dXJlKCk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKIH0KIAogZnVuY3Rp
b24gZGlkQmVnaW5Td2lwZU5vdFJlYWNoZWRDYWxsYmFjaygpCkBAIC01OCwxMCArMzQsNiBAQCBm
dW5jdGlvbiBkaWRCZWdpblN3aXBlTm90UmVhY2hlZENhbGxiYWNrKCkKIGZ1bmN0aW9uIGRpZEJl
Z2luU3dpcGVDYWxsYmFjaygpCiB7CiAgICAgbG9nKCJkaWRCZWdpblN3aXBlIik7Ci0KLSAgICBz
aG91bGRCZShmYWxzZSwgZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJFdmVudCBxdWV1
ZSBzaG91bGQgYmUgZW1wdHkuIEJvdGggc2Nyb2xsIGV2ZW50cyBzaG91bGQgYmUgcmVxdWlyZWQg
dG8gc3RhcnQgdGhlIHN3aXBlIGJlY2F1c2Ugb2YgdGhlIHN3aXBlLXN0YXJ0IGh5c3RlcmVzaXMu
Iik7Ci0KLSAgICBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpOwogfQogCiBmdW5jdGlvbiB3aWxsRW5k
U3dpcGVDYWxsYmFjaygpCkBAIC03NSw3ICs0Nyw2IEBAIGZ1bmN0aW9uIGRpZEVuZFN3aXBlQ2Fs
bGJhY2soKQogewogICAgIGxvZygiZGlkRW5kU3dpcGUiKTsKIAotICAgIHNob3VsZEJlKDAsIGV2
ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpLCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5
LiBUaGUgc3dpcGUgaXNuJ3QgY29tcGxldGUgdW50aWwgd2Ugc2VlIHRoZSBlbmQgb2YgdGhlIGdl
c3R1cmUuIik7CiAgICAgc3RhcnRNZWFzdXJpbmdEdXJhdGlvbigic25hcHNob3RSZW1vdmFsIik7
CiB9CiAKQEAgLTEyMSw4ICs5Miw5IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CiAg
ICAgfQogCiAgICAgLy8gU2Vjb25kIHBhZ2UgbG9hZGVkLgotICAgIHdpbmRvdy5zY3JvbGxUbygx
MDAwLCAwKTsKLSAgICBzdGFydFN3aXBlR2VzdHVyZSgpOworICAgIHdpbmRvdy5zY3JvbGxUbygx
MDAsIDApOworCisgICAgcnVuVGVzdCgpOwogfTsKIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS1l
eHBlY3RlZC50eHQKaW5kZXggZTNkM2UwMGFiOWQwYmZmZmU2NjlkNmFkODlhMDE3YWY1N2Y3MGI4
OS4uODlkZWNmZDRjMzcxMjVjZmI1NTk4MTE5Njg5YzNmMGM0YTFkODg0ZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUtZXhw
ZWN0ZWQudHh0CkBAIC0xLDEwICsxLDYgQEAKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNl
ICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNj
cm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcpCitzdGFydFN3aXBlR2VzdHVy
ZQogZGlkQmVnaW5Td2lwZQotc3dpcGUgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQn
KQotc3dpcGUgZXZlbnQgKGRlbHRhIDI1NiAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVu
dCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQorY29tcGxldGVTd2lwZUdlc3R1cmUKIHdpbGxF
bmRTd2lwZQogZGlkRW5kU3dpcGUKIGRpZFJlbW92ZVN3aXBlU25hcHNob3QKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sIGIvTGF5
b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKaW5kZXggNTZk
YWRhNDg5MDQyOGM0OWRkMmQ3MWY3Njg2MDkwNGUwMWY4NDMxZi4uOWE4ZGM5ZDdkOWExMDg4NzU5
MjVlZTRkMjg5OTdlNTM4NjJlMzg3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVz
aFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVz
aFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKQEAgLTYsMjggKzYsMTEgQEAgaHRtbCB7CiA8
L3N0eWxlPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9zd2lwZS10ZXN0LmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQ+Ci1mdW5jdGlvbiBzdGFydFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oMTAwLCAxMDApOwotCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVF
dmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVu
dCgxLCAwLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAw
LCAnY2hhbmdlZCcpOwotfQotCi1mdW5jdGlvbiBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpCi17Ci0g
ICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgxLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2
ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMjU2LCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50
UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci19CiAKIGZ1bmN0aW9uIGRp
ZEJlZ2luU3dpcGVDYWxsYmFjaygpCiB7CiAgICAgbG9nKCJkaWRCZWdpblN3aXBlIik7CiAKLSAg
ICBzaG91bGRCZShmYWxzZSwgZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJFdmVudCBx
dWV1ZSBzaG91bGQgYmUgZW1wdHkuIEJvdGggc2Nyb2xsIGV2ZW50cyBzaG91bGQgYmUgcmVxdWly
ZWQgdG8gc3RhcnQgdGhlIHN3aXBlIGJlY2F1c2Ugb2YgdGhlIHN3aXBlLXN0YXJ0IGh5c3RlcmVz
aXMuIik7Ci0KICAgICBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpOwogfQogCkBAIC00Miw3ICsyNSw2
IEBAIGZ1bmN0aW9uIGRpZEVuZFN3aXBlQ2FsbGJhY2soKQogewogICAgIGxvZygiZGlkRW5kU3dp
cGUiKTsKIAotICAgIHNob3VsZEJlKDAsIGV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpLCAi
RXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5LiBUaGUgc3dpcGUgaXNuJ3QgY29tcGxldGUgdW50
aWwgd2Ugc2VlIHRoZSBlbmQgb2YgdGhlIGdlc3R1cmUuIik7CiAgICAgc3RhcnRNZWFzdXJpbmdE
dXJhdGlvbigic25hcHNob3RSZW1vdmFsIik7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFj
ay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4cGVjdGVkLnR4dAppbmRleCBkYzM0ZTkyZDU4ODRlYjhk
MWQzMTUxNWI1YTg4NjI3NTZlYjI5MzQyLi4wMDUwNzU1ZjU3MzdkNGNkN2EzYzI0YzU3NjI0Yjdh
N2RmMWMyNjNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3Jh
bW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jh
c2gtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNCBAQAotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwg
cGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnYmVnYW4n
KQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50
IChkZWx0YSAxIDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAyNTYgMCwg
cGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykK
K3BsYXlFdmVudFN0cmVhbQorcGxheUV2ZW50U3RyZWFtCitjb21wbGV0ZVN3aXBlR2VzdHVyZQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJh
Y2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRl
LXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbAppbmRleCAzNmVmMzlm
YjQzZTQzMGRiOTE0NjAzODQ2ZmQyYmY3ZTMyOTA2MzAxLi4zZjg3YTAzOWVlN2E5M2NiNjRhMmYw
ZTY1ZDUwY2JhMDk3MDQ2Y2MwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3Rh
dGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNy
YXNoLmh0bWwKQEAgLTYsMzcgKzYsNjcgQEAgaHRtbCB7CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zd2lwZS10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiBz
dGFydFN3aXBlR2VzdHVyZSgpCitmdW5jdGlvbiBydW5UZXN0KCkKIHsKLSAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7Ci0KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2
ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50
KDEsIDAsICdiZWdhbicpOwotICAgIAotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNw
YXRjaChnb0JhY2spOworICAgIHBsYXlFdmVudFN0cmVhbShgW3sKKyAgICAgICAgInJlbGF0aXZl
VGltZU1TIiA6IDAsCisgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAx
LAorICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAia0NHU0V2
ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMTI4
LAorICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iCisgICAgICB9LAorICAg
ICAgeworICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogOCwKKyAgICAgICAgImtDR0V2ZW50R2Vz
dHVyZUhJRFR5cGUiIDogNjEsCisgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTdGFydEVuZFNlcmllc1R5cGUiIDogNiwKKyAgICAgICAg
IndpbmRvd0xvY2F0aW9uIiA6ICJ7MCwgMH0iCisgICAgICB9LAorICAgICAgeworICAgICAgICAi
a0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDog
OCwKKyAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgImtD
R0V2ZW50R2VzdHVyZVBoYXNlIiA6IDEsCisgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVG
bGFnQml0cyIgOiAxLAorICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAg
ICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAyCisgICAgICB9LAorICAgICAgeworICAgICAg
ICAicmVsYXRpdmVUaW1lTVMiIDogOCwKKyAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAw
LCAzMDB9IiwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAxLAor
ICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxLAorICAgICAgICAia0NHU0V2
ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICB9XWAsIGdvQmFjayk7CiB9CiAKIGZ1bmN0aW9uIGdv
QmFjaygpCiB7CiAgICAgd2luZG93Lmhpc3RvcnkuYmFjaygpOwogCi0gICAgZXZlbnRRdWV1ZS5j
YWxsQWZ0ZXJFdmVudERpc3BhdGNoKGNvbnRpbnVlU3dpcGVHZXN0dXJlKTsKKyAgICBzZXRUaW1l
b3V0KGNvbnRpbnVlVGVzdCwgMCk7CiB9CiAKLWZ1bmN0aW9uIGNvbnRpbnVlU3dpcGVHZXN0dXJl
KCkKK2Z1bmN0aW9uIGNvbnRpbnVlVGVzdCgpCiB7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Ny
b2xsRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLQotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZl
bnREaXNwYXRjaChjb21wbGV0ZVN3aXBlR2VzdHVyZSk7CisgICAgcGxheUV2ZW50U3RyZWFtKGBb
CisgICAgICB7CisgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAwLAorICAgICAgICAid2luZG93
TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNj
cm9sbFBoYXNlIiA6IDEsCisgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3Vz
IiA6IDEsCisgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDIw
LAorICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICB9XWAsIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgY29tcGxldGVUZXN0KCk7CisgICAgICB9KTsKIH0KIAotZnVuY3Rpb24g
Y29tcGxldGVTd2lwZUdlc3R1cmUoKQorZnVuY3Rpb24gY29tcGxldGVUZXN0KCkKIHsKLSAgICBl
dmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDEsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRR
dWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgyNTYsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1
ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnZW5kZWQnKTsKLQotICAgIGV2ZW50UXVldWUuY2Fs
bEFmdGVyRXZlbnREaXNwYXRjaCh0ZXN0Q29tcGxldGUpOworICAgIGNvbXBsZXRlU3dpcGVHZXN0
dXJlKHRlc3RDb21wbGV0ZSk7CiB9CiAKIGZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVDYWxsYmFjaygp
CkBAIC03OSw3ICsxMDksNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgICAg
ICB1cGRhdGVDb250ZW50KCk7CiAKICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICBzdGFydFN3aXBlR2VzdHVyZSgpOworICAgICAgICAgICAgcnVuVGVzdCgpOwog
ICAgICAgICB9LCAwKTsKICAgICB9LCAwKTsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
d2lwZS9yZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyBiL0xheW91dFRlc3RzL3N3aXBlL3Jlc291cmNl
cy9zd2lwZS10ZXN0LmpzCmluZGV4IGRkOGU5MDA5ZmZlODQ5NTkwMDk5ZmQxODMyM2JjZTM3M2I3
NDA2ODAuLjBjMjM2NWQxMzEzYTE4MDY3N2I5MWFmMmI0NDkzM2FlNDA4MzhjY2QgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N3aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzCisrKyBiL0xheW91
dFRlc3RzL3N3aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzCkBAIC0xLDUwICsxLDMgQEAKLXZh
ciBldmVudFF1ZXVlID0gewotICAgIGVucXVldWVTY3JvbGxFdmVudDogZnVuY3Rpb24gKHgsIHks
IHBoYXNlKSB7Ci0gICAgICAgIHRoaXMuX3F1ZXVlLnB1c2goZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgbG9nKCJzY3JvbGwgZXZlbnQgKGRlbHRhICIgKyB4ICsgIiAiICsgeSArICIsIHBoYXNl
ICciICsgcGhhc2UgKyAiJykiKTsKLSAgICAgICAgICAgIHdpbmRvdy5ldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoeCwgeSwgcGhhc2UsICdub25lJyk7
Ci0gICAgICAgIH0pOwotICAgICAgICB0aGlzLl9wcm9jZXNzRXZlbnRRdWV1ZVNvb24oKTsKLSAg
ICB9LAotCi0gICAgZW5xdWV1ZVN3aXBlRXZlbnQ6IGZ1bmN0aW9uICh4LCB5LCBwaGFzZSkgewot
ICAgICAgICB0aGlzLl9xdWV1ZS5wdXNoKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGxvZygi
c3dpcGUgZXZlbnQgKGRlbHRhICIgKyB4ICsgIiAiICsgeSArICIsIHBoYXNlICciICsgcGhhc2Ug
KyAiJykiKTsKLSAgICAgICAgICAgIHdpbmRvdy5ldmVudFNlbmRlci5zd2lwZUdlc3R1cmVXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcyh4LCB5LCBwaGFzZSwgJ25vbmUnKTsKLSAgICAgICAgfSk7
Ci0gICAgICAgIHRoaXMuX3Byb2Nlc3NFdmVudFF1ZXVlU29vbigpOwotICAgIH0sCi0KLSAgICBo
YXNQZW5kaW5nRXZlbnRzOiBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9xdWV1
ZS5sZW5ndGggIT0gMDsKLSAgICB9LAotCi0gICAgY2FsbEFmdGVyRXZlbnREaXNwYXRjaDogZnVu
Y3Rpb24gKGNhbGxiYWNrKSB7Ci0gICAgICAgIHZhciBpbnRlcnZhbCA9IHNldEludGVydmFsKGZ1
bmN0aW9uICgpIHsgCi0gICAgICAgICAgICBpZiAoIWV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50
cygpKSB7Ci0gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7Ci0gICAgICAg
ICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwgMCk7Ci0gICAg
fSwKLQotICAgIF9xdWV1ZTogW10sCi0KLSAgICBfcHJvY2Vzc0V2ZW50UXVldWU6IGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgaWYgKCF0aGlzLl9xdWV1ZS5sZW5ndGgpCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLl9xdWV1ZS5zaGlmdCgpOwotICAgICAgICBp
dGVtKCk7Ci0gICAgICAgIHRoaXMuX3Byb2Nlc3NFdmVudFF1ZXVlU29vbigpOwotICAgIH0sCi0K
LSAgICBfcHJvY2Vzc0V2ZW50UXVldWVTb29uOiBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGNsZWFy
VGltZW91dCh0aGlzLl9wcm9jZXNzaW5nVGltZW91dCk7Ci0gICAgICAgIHRoaXMuX3Byb2Nlc3Np
bmdUaW1lb3V0ID0gc2V0VGltZW91dCh0aGlzLl9wcm9jZXNzRXZlbnRRdWV1ZS5iaW5kKHRoaXMp
LCAwKTsKLSAgICB9Ci19Ci0KIGZ1bmN0aW9uIHNob3VsZEJlKGV4cGVjdGVkLCBhY3R1YWwsIG1l
c3NhZ2UpCiB7CiAgICAgaWYgKGV4cGVjdGVkICE9IGFjdHVhbCkKQEAgLTg0LDQgKzM3LDM3IEBA
IGZ1bmN0aW9uIG1lYXN1cmVkRHVyYXRpb25TaG91bGRCZUxlc3NUaGFuKGtleSwgdGltZUluTVMs
IG1lc3NhZ2UpCiAgICAgdmFyIGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHdpbmRvdy5sb2NhbFN0
b3JhZ2Vba2V5ICsgInN3aXBlU3RhcnRUaW1lIl07CiAgICAgaWYgKGR1cmF0aW9uID49IHRpbWVJ
bk1TKQogICAgICAgICBsb2coIkZhaWx1cmUuICIgKyBtZXNzYWdlICsgIiAoZXhwZWN0ZWQ6ICIg
KyB0aW1lSW5NUyArICIsIGFjdHVhbDogIiArIGR1cmF0aW9uICsgIikiKTsKLX0KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCit9CisKK2Z1bmN0aW9uIHN0YXJ0U3dpcGVHZXN0dXJlKGNhbGxi
YWNrKQoreworICAgIGxvZygic3RhcnRTd2lwZUdlc3R1cmUiKTsKKyAgICB0ZXN0UnVubmVyLnJ1
blVJU2NyaXB0KGAKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHVpQ29udHJvbGxlci5iZWdp
bkJhY2tTd2lwZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlw
dENvbXBsZXRlKCk7CisgICAgICAgIH0pOworICAgIH0pKCk7YCwgY2FsbGJhY2sgfHwgZnVuY3Rp
b24gKCkge30pOworfQorCitmdW5jdGlvbiBjb21wbGV0ZVN3aXBlR2VzdHVyZShjYWxsYmFjaykK
K3sKKyAgICBsb2coImNvbXBsZXRlU3dpcGVHZXN0dXJlIik7CisgICAgdGVzdFJ1bm5lci5ydW5V
SVNjcmlwdChgCisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICB1aUNvbnRyb2xsZXIuY29tcGxl
dGVCYWNrU3dpcGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3Jp
cHRDb21wbGV0ZSgpOworICAgICAgICB9KTsKKyAgICB9KSgpO2AsIGNhbGxiYWNrIHx8IGZ1bmN0
aW9uICgpIHt9KTsKK30KKworZnVuY3Rpb24gcGxheUV2ZW50U3RyZWFtKHN0cmVhbSwgY2FsbGJh
Y2spCit7CisgICAgbG9nKCJwbGF5RXZlbnRTdHJlYW0iKTsKKyAgICB0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KGAKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHVpQ29udHJvbGxlci5wbGF5QmFj
a0V2ZW50U3RyZWFtKFxgJHtzdHJlYW19XGAsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdWlD
b250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgfSk7CisgICAgfSkoKTtgLCBj
YWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
d2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTQ4MGE5ODA0Y2UyMTkxNGM4Zjk4MmY1
YmMwMTE5ZTdkZWJlNTc5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotc3dpcGUgZXZlbnQg
KGRlbHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBw
aGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdjaGFuZ2VkJykK
LXNjcm9sbCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRl
bHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMiAyLCBwaGFz
ZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNj
cm9sbCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRh
IDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAyLCBwaGFzZSAn
YmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9s
bCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAg
MCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnYmVn
YW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDIsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBl
dmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwg
cGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMyAxLCBwaGFzZSAnYmVnYW4n
KQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVu
dCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhh
c2UgJ2VuZGVkJykKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQt
aHlzdGVyZXNpcy1mYWlsdXJlcy5odG1sIGIvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQt
aHlzdGVyZXNpcy1mYWlsdXJlcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
NzVlNjdiOTc0MTIzOTJjZGIxNDQ3ZWE1N2MyYjA1NTUyM2M1ZjA5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3N3aXBlLXN0
YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExOSArMCww
IEBACi08aGVhZD4KLTxzdHlsZT4KLWh0bWwgewotICAgIGZvbnQtc2l6ZTogMzJwdDsKLX0KLTwv
c3R5bGU+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLWZ1bmN0aW9uIGRvU2hvcnRTd2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKLQotICAgIC8vIFRvdGFsIGRlbHRhIG9mIDEwLCAw
OyBzaG91bGQgbm90IGJlIGVub3VnaCB0byBzdGFydCBhIHN3aXBlLgotICAgIGV2ZW50UXVldWUu
ZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1
ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Ny
b2xsRXZlbnQoMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxF
dmVudCgwLCAwLCAnZW5kZWQnKTsKLQotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNw
YXRjaChkb0RpYWdvbmFsU3dpcGVHZXN0dXJlKTsKLX0KLQotZnVuY3Rpb24gZG9EaWFnb25hbFN3
aXBlR2VzdHVyZSgpCi17Ci0gICAgLy8gVG90YWwgZGVsdGEgb2YgMjAsIDIwOyB0aGlzIGlzIG9y
ZGluYXJpbHkgc3VmZmljaWVudCBtYWduaXR1ZGUgdG8gc3RhcnQgYSBzd2lwZSwKLSAgICAvLyBi
dXQgaXMgdG9vIGRpYWdvbmFsIHRvIHN0YXJ0IGEgc3dpcGUuCi0gICAgZXZlbnRRdWV1ZS5lbnF1
ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVT
Y3JvbGxFdmVudCgyLCAyLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxF
dmVudCgwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50
KDAsIDAsICdlbmRlZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNo
KGRvVmVydGljYWxTd2lwZUdlc3R1cmUpOwotfQotCi1mdW5jdGlvbiBkb1ZlcnRpY2FsU3dpcGVH
ZXN0dXJlKCkKLXsKLSAgICAvLyBUb3RhbCBkZWx0YSBvZiAwLCAyMDsgdGhpcyBpcyBvcmRpbmFy
aWx5IHN1ZmZpY2llbnQgbWFnbml0dWRlIHRvIHN0YXJ0IGEgc3dpcGUsCi0gICAgLy8gYnV0IGlz
IGNvbXBsZXRlbHkgdmVydGljYWwsIHNvIHdlIHdvbid0IHN0YXJ0IGEgc3dpcGUuCi0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1
ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAyLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVu
cXVldWVTY3JvbGxFdmVudCgwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1
ZVNjcm9sbEV2ZW50KDAsIDAsICdlbmRlZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJF
dmVudERpc3BhdGNoKGRvSG9yaXpvbnRhbFRoZW5WZXJ0aWNhbFN3aXBlR2VzdHVyZSk7Ci19Ci0K
LWZ1bmN0aW9uIGRvSG9yaXpvbnRhbFRoZW5WZXJ0aWNhbFN3aXBlR2VzdHVyZSgpCi17Ci0gICAg
Ly8gVG90YWwgZGVsdGEgb2YgMTAsIDIwOyB0aGlzIGlzIG9yZGluYXJpbHkgc3VmZmljaWVudCBt
YWduaXR1ZGUgdG8gc3RhcnQgYSBzd2lwZSwKLSAgICAvLyBidXQgaXMgdG9vIHZlcnRpY2FsLCBz
byB3ZSB3b24ndCBzdGFydCBhIHN3aXBlLgotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZl
bnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQo
MSwgMCwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMiwg
J2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnZW5k
ZWQnKTsKLQotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChkb1JlZ3VsYXJT
d2lwZUdlc3R1cmUpOwotfQotCi1mdW5jdGlvbiBkb1JlZ3VsYXJTd2lwZUdlc3R1cmUoKQotewot
ICAgIC8vIFN3YXAgaW4gYSBkaWZmZXJlbnQgY2FsbGJhY2sgdGhhdCBtYWtlcyBzdXJlIHdlICpk
byogcmVhY2ggZGlkQmVnaW5Td2lwZS4KLSAgICB0ZXN0UnVubmVyLmNsZWFyVGVzdFJ1bm5lckNh
bGxiYWNrcygpOwotICAgIHZhciBzYXdEaWRCZWdpblN3aXBlID0gZmFsc2U7Ci0gICAgdGVzdFJ1
bm5lci5pbnN0YWxsRGlkQmVnaW5Td2lwZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHsKLSAgICAgICAg
c2F3RGlkQmVnaW5Td2lwZSA9IHRydWU7Ci0gICAgICAgIC8vIE5lZWQgYSBzd2lwZS1lbmQgZXZl
bnQgdG8gY2xlYW4gdXAuCi0gICAgICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwg
MCwgJ2VuZGVkJyk7Ci0gICAgfSk7Ci0KLSAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRSZW1vdmVT
d2lwZVNuYXBzaG90Q2FsbGJhY2soZnVuY3Rpb24gKCkgewotICAgICAgICBzaG91bGRCZSh0cnVl
LCBzYXdEaWRCZWdpblN3aXBlLCAiVGhlIGxhc3QgZ2VzdHVyZSBzaG91bGQgc3RhcnQgYSBzd2lw
ZSwgYmVjYXVzZSBpdCBpcyBzdWZmaWNpZW50IG1hZ25pdHVkZSBhbmQgaW4gdGhlIGNvcnJlY3Qg
ZGlyZWN0aW9uLiIpCi0gICAgICAgIHRlc3RDb21wbGV0ZSgpOwotICAgIH0pOwotCi0gICAgLy8g
VG90YWwgZGVsdGEgb2YgMzAsIDEwOyB0aGlzIHNob3VsZCBzdGFydCBhIHN3aXBlIGFzIHVzdWFs
LgotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0g
ICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMywgMSwgJ2JlZ2FuJyk7Ci0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1
ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnZW5kZWQnKTsKLX0KLQotZnVuY3Rpb24gZGlk
QmVnaW5Td2lwZU5vdFJlYWNoZWRDYWxsYmFjaygpCi17Ci0gICAgbG9nKCJGYWlsdXJlLiBTaG91
bGQgbmV2ZXIgYmVnaW4gYSBzd2lwZSwgYmVjYXVzZSBhbGwgb2YgdGhlIGF0dGVtcHRlZCBzd2lw
ZXMgc2hvdWxkIGZhaWwgZHVlIHRvIHRoZSBzd2lwZS1zdGFydCBoeXN0ZXJlc2lzLiIpOwotfQot
Ci1mdW5jdGlvbiBpc0ZpcnN0UGFnZSgpCi17Ci0gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5o
cmVmLmluZGV4T2YoInNlY29uZCIpID09IC0xOwotfQotCi13aW5kb3cub25sb2FkID0gZnVuY3Rp
b24gKCkgewotICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cudGVzdFJ1bm5l
cikgewotICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICJUaGlzIHRlc3QgbXVzdCBi
ZSBydW4gaW4gV2ViS2l0VGVzdFJ1bm5lci4iOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSBpc0ZpcnN0UGFnZSgpID8gImZpcnN0IiA6ICJz
ZWNvbmQiOwotCi0gICAgaWYgKGlzRmlyc3RQYWdlKCkpIHsKLSAgICAgICAgaW5pdGlhbGl6ZVN3
aXBlVGVzdCgpOwotCi0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZEJlZ2luU3dpcGVDYWxs
YmFjayhkaWRCZWdpblN3aXBlTm90UmVhY2hlZENhbGxiYWNrKTsKLQotICAgICAgICB0ZXN0UnVu
bmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VXNlc1BhZ2VDYWNoZVByZWZlcmVuY2VLZXki
LCAxKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwotCi0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyAK
LSAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gd2luZG93LmxvY2F0aW9uLmhyZWYg
KyAiP3NlY29uZCI7Ci0gICAgICAgIH0sIDApOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgZG9TaG9ydFN3aXBlR2VzdHVyZSgpOwotfTsKLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08L2JvZHk+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288255</attachid>
            <date>2016-09-08 00:52:05 -0700</date>
            <delta_ts>2016-09-08 01:22:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161675-20160908004940.patch</filename>
            <type>text/plain</type>
            <size>109397</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1NTgxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTcwNzhjNTg2MTZjMTU4YzBiMmNjMTk5ZjA2NDNjM2Ex
Mzk2OWIyYi4uNmQzNzFkY2I0MTk5OGZkZDNjYTQ0NjY1MWZlYTFkZTUyMTFlMDM3NSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDE2LTA5LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFN3aXBlIGdlc3R1cmUgdGVzdHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRm
b3JtUGxheUJhY2tFdmVudFN0cmVhbSk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6YmVnaW5CYWNrU3dpcGUpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNv
bXBsZXRlQmFja1N3aXBlKToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFs
aXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbTog
QWRkZWQuCisgICAgICAgIChldmVudElzT2ZUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZlR5cGVz
KToKKyAgICAgICAgKGV2ZW50SXNPZkdlc3R1cmVUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZkdl
c3R1cmVUeXBlcyk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBkaWN0aW9uYXJ5Rm9yRXZl
bnQ6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBjcmVhdGVF
dmVudEZvckRpY3Rpb25hcnk6aW5XaW5kb3c6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgr
W0V2ZW50U2VyaWFsaXplciBwbGF5RXZlbnRTdHJlYW06aW5XaW5kb3c6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFj
L1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1bm5lclNo
YXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTogQWRk
ZWQuCisgICAgICAgIChiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKToKKyAgICAgICAgKGNvbXBs
ZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0pOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICog
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF5QmFja0V2ZW50U3RyZWFtKToK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZSk6CisgICAg
ICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUpOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbSk6
CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1DbGVhckFsbENhbGxi
YWNrcyk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9zcGkv
Q29yZUdyYXBoaWNzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvc3Bp
L0lPS2l0U1BJLmg6IFJlbmFtZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tp
dFNQSS5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6cGxheUJhY2tFdmVudHMpOgor
ICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKToKKyAgICAg
ICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZSk6CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKToK
KwogMjAxNi0wOS0wNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydCByMjA1NTMzLgpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KaW5kZXggNTZlMjA3N2E0
YjJhMjBjMWRiOTFkYzlhMTBiZGRlNWYyMmNjNjQwYi4uY2E4NmVmN2UxN2E4ZDc2MTgxZmRlNDBj
ZmNlZTY2N2I4ZDdlMDU5YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlT
Y3JpcHRDb250cm9sbGVyTWFjLm1tCkBAIC00Myw2ICs0MywxOCBAQCB2b2lkIFVJU2NyaXB0Q29u
dHJvbGxlcjo6ZG9Bc3luY1Rhc2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKICAgICB9KTsKIH0KIAor
dm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJh
Y2spCit7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZShK
U1ZhbHVlUmVmIGNhbGxiYWNrKQoreworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxh
dGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKQoreworfQor
CiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVu
bmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmggYi9U
b29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvRXZlbnRTZXJpYWxp
emVyTWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M2ZGI4NjY5MTkxNThmNDE3MTRkODA2OTk3ZWQ3YTVkOTcx
MTM0NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJp
YWxpemF0aW9uL21hYy9FdmVudFNlcmlhbGl6ZXJNYWMuaApAQCAtMCwwICsxLDUxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgor
I2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK0Bp
bnRlcmZhY2UgRXZlbnRTZXJpYWxpemVyIDogTlNPYmplY3QKKworKyAoTlNEaWN0aW9uYXJ5ICop
ZGljdGlvbmFyeUZvckV2ZW50OihDR0V2ZW50UmVmKWV2ZW50IHJlbGF0aXZlVG9UaW1lOihDR0V2
ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRpbWVzdGFtcDsKKworKyAoQ0dFdmVudFJlZiljcmVhdGVF
dmVudEZvckRpY3Rpb25hcnk6KE5TRGljdGlvbmFyeSAqKWRpY3QgaW5XaW5kb3c6KE5TV2luZG93
ICopd2luZG93IHJlbGF0aXZlVG9UaW1lOihDR0V2ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRpbWVz
dGFtcDsKKworQGVuZAorCitAaW50ZXJmYWNlIEV2ZW50U3RyZWFtUGxheWVyIDogTlNPYmplY3Qg
eworICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheSAqPiBfcmVtYWluaW5nRXZlbnREaWN0czsK
KyAgICBSZXRhaW5QdHI8TlNXaW5kb3cgKj4gX3dpbmRvdzsKKyAgICBCbG9ja1B0cjx2b2lkICgp
PiBfY29tcGxldGlvbkhhbmRsZXI7CisgICAgdWludDY0X3QgX3N0YXJ0VGltZTsKK30KKworKyAo
dm9pZClwbGF5U3RyZWFtOihOU0FycmF5PE5TRGljdGlvbmFyeSAqPiAqKWV2ZW50RGljdHMgd2lu
ZG93OihOU1dpbmRvdyAqKXdpbmRvdyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSgpKWNvbXBs
ZXRpb25IYW5kbGVyOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbSBi
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9FdmVudFNlcmlh
bGl6ZXJNYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGYyMjY2MGFlMWM3OTM5YmFhZGVmMTdkZDI1MzRjMzcx
NzRmMDFjMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRT
ZXJpYWxpemF0aW9uL21hYy9FdmVudFNlcmlhbGl6ZXJNYWMubW0KQEAgLTAsMCArMSwzMjMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkV2ZW50U2VyaWFsaXpl
ck1hYy5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJDb3JlR3JhcGhpY3NTUEku
aCIKKyNpbXBvcnQgIklPS2l0U1BJLmgiCisjaW1wb3J0IDxhbGdvcml0aG0+CisjaW1wb3J0IDxt
YWNoL21hY2hfdGltZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCisjZGVmaW5lIE1P
VVNFX0VWRU5UX1RZUEVTIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50TGVmdE1vdXNlRG93
biwgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRMZWZ0TW91c2VVcCwgXAorICAgIChDR1NF
dmVudFR5cGUpa0NHRXZlbnRSaWdodE1vdXNlRG93biwgXAorICAgIChDR1NFdmVudFR5cGUpa0NH
RXZlbnRSaWdodE1vdXNlVXAsIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50TW91c2VNb3Zl
ZCwgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRMZWZ0TW91c2VEcmFnZ2VkLCBcCisgICAg
KENHU0V2ZW50VHlwZSlrQ0dFdmVudFJpZ2h0TW91c2VEcmFnZ2VkLCBcCisgICAgKENHU0V2ZW50
VHlwZSlrQ0dFdmVudE90aGVyTW91c2VEb3duLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVu
dE90aGVyTW91c2VVcCwgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRPdGhlck1vdXNlRHJh
Z2dlZAorCisjZGVmaW5lIEtFWV9FVkVOVF9UWVBFUyBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dF
dmVudEtleURvd24sIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50S2V5VXAsIFwKKyAgICAo
Q0dTRXZlbnRUeXBlKWtDR0V2ZW50RmxhZ3NDaGFuZ2VkCisKKyNkZWZpbmUgR0VTVFVSRV9FVkVO
VF9UWVBFUyBcCisgICAga0NHU0V2ZW50R2VzdHVyZSwgXAorICAgIGtDR1NFdmVudEZsdWlkVG91
Y2hHZXN0dXJlLCBcCisgICAga0NHU0V2ZW50RG9ja0NvbnRyb2wKKworYm9vbCBldmVudElzT2ZU
eXBlKENHRXZlbnRSZWYgZXZlbnQsIENHU0V2ZW50VHlwZSB0eXBlKQoreworICAgIHJldHVybiAo
Q0dTRXZlbnRUeXBlKUNHRXZlbnRHZXRUeXBlKGV2ZW50KSA9PSB0eXBlOworfQorCitib29sIGV2
ZW50SXNPZlR5cGVzKENHRXZlbnRSZWYpIHsgcmV0dXJuIGZhbHNlOyB9CisKK3RlbXBsYXRlPHR5
cGVuYW1lIC4uLiBUeXBlcz4KK2Jvb2wgZXZlbnRJc09mVHlwZXMoQ0dFdmVudFJlZiBldmVudCwg
Q0dTRXZlbnRUeXBlIGZpcnN0LCBUeXBlcyAuLi4gcmVzdCkKK3sKKyAgICByZXR1cm4gZXZlbnRJ
c09mVHlwZShldmVudCwgZmlyc3QpIHx8IGV2ZW50SXNPZlR5cGVzKGV2ZW50LCByZXN0Li4uKTsK
K30KKworYm9vbCBldmVudElzT2ZHZXN0dXJlVHlwZShDR0V2ZW50UmVmIGV2ZW50LCBJT0hJREV2
ZW50VHlwZSB0eXBlKQoreworICAgIHJldHVybiAoSU9ISURFdmVudFR5cGUpQ0dFdmVudEdldElu
dGVnZXJWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dFdmVudEdlc3R1cmVISURUeXBlKSA9PSB0eXBlOwor
fQorCitib29sIGV2ZW50SXNPZkdlc3R1cmVUeXBlcyhDR0V2ZW50UmVmKSB7IHJldHVybiBmYWxz
ZTsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSAuLi4gVHlwZXM+Citib29sIGV2ZW50SXNPZkdlc3R1
cmVUeXBlcyhDR0V2ZW50UmVmIGV2ZW50LCBJT0hJREV2ZW50VHlwZSBmaXJzdCwgVHlwZXMgLi4u
IHJlc3QpCit7CisgICAgaWYgKCFldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9U
WVBFUykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZXZlbnRJc09mR2VzdHVy
ZVR5cGUoZXZlbnQsIGZpcnN0KSB8fCBldmVudElzT2ZHZXN0dXJlVHlwZXMoZXZlbnQsIHJlc3Qu
Li4pOworfQorCisjZGVmaW5lIEZPUl9FQUNIX0NHRVZFTlRfSU5URUdFUl9GSUVMRChtYWNybykg
XAorICAgIG1hY3JvKHRydWUsIGtDR1NFdmVudFR5cGVGaWVsZCkgXAorICAgIFwKKyAgICBtYWNy
byhldmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpv
b20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMSkgXAorICAgIG1hY3JvKGV2ZW50SXNP
ZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Nj
cm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZl
bnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxF
dmVudERlbHRhQXhpczMpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2
ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250
aW51b3VzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9s
bFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudE1vbWVudHVtUGhhc2Up
IFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWws
IGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxKSBcCisg
ICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dT
RXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMikgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50
Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczMpIFwKKyAgICBtYWNybyhl
dmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20p
LCBrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQpIFwKKyAgICBtYWNybyhldmVudElzT2ZU
eXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3Jv
bGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlw
ZXMoZXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudEJ1dHRvbk51bWJlcikg
XAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBNT1VTRV9FVkVOVF9UWVBFUyksIGtD
R01vdXNlRXZlbnRDbGlja1N0YXRlKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQs
IE1PVVNFX0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudERlbHRhWCkgXAorICAgIG1hY3JvKGV2
ZW50SXNPZlR5cGVzKGV2ZW50LCBNT1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnREZWx0
YVkpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMp
LCBrQ0dNb3VzZUV2ZW50U3VidHlwZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50
LCBNT1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnROdW1iZXIpIFwKKyAgICBcCisgICAg
bWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIEtFWV9FVkVOVF9UWVBFUyksIGtDR0tleWJvYXJk
RXZlbnRBdXRvcmVwZWF0KSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIEtFWV9F
VkVOVF9UWVBFUyksIGtDR0tleWJvYXJkRXZlbnRLZXlib2FyZFR5cGUpIFwKKyAgICBtYWNybyhl
dmVudElzT2ZUeXBlcyhldmVudCwgS0VZX0VWRU5UX1RZUEVTKSwga0NHS2V5Ym9hcmRFdmVudEtl
eWNvZGUpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIEdFU1RVUkVf
RVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVISURUeXBlKSBcCisgICAgbWFjcm8oZXZlbnRJ
c09mVHlwZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVCZWhh
dmlvcikgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZ
UEVTKSwga0NHRXZlbnRHZXN0dXJlRmxhdm9yKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMo
ZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVNYXNrKSBcCisgICAg
bWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVu
dEdlc3R1cmVQaGFzZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJF
X0VWRU5UX1RZUEVTKSwga0NHRXZlbnRHZXN0dXJlU3RhZ2UpIFwKKyAgICBcCisgICAgbWFjcm8o
ZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVNjcm9sbCksIGtDR0V2
ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdl
c3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVu
dFN3aXBlR2VzdHVyZUZsYWdCaXRzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUo
ZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3
aXBlTWFzaykgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURF
dmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZU1vdGlvbikgXAor
ICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZp
Z2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZhbHVlKSBcCisgICAgbWFjcm8oZXZl
bnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSks
IGtDR0V2ZW50R2VzdHVyZUZsYXZvcikgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0
dXJlVHlwZXMoZXZlbnQsIGtDR0hJREV2ZW50VHlwZUdlc3R1cmVTdGFydGVkLCBrQ0dISURFdmVu
dFR5cGVHZXN0dXJlRW5kZWQpLCBrQ0dFdmVudEdlc3R1cmVTdGFydEVuZFNlcmllc1R5cGUpCisK
KyNkZWZpbmUgRk9SX0VBQ0hfQ0dFVkVOVF9ET1VCTEVfRklFTEQobWFjcm8pIFwKKyAgICBtYWNy
byhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyksIGtDR0V2ZW50R2Vz
dHVyZVByb2dyZXNzKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBN
T1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnRQcmVzc3VyZSkgXAorICAgIFwKKyAgICBt
YWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlWm9vbSksIGtD
R0V2ZW50R2VzdHVyZVpvb21EZWx0YVgpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlw
ZShldmVudCwga0lPSElERXZlbnRUeXBlWm9vbSksIGtDR0V2ZW50R2VzdHVyZVpvb21EZWx0YVkp
IFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBl
Wm9vbSksIGtDR0V2ZW50R2VzdHVyZVpvb21WYWx1ZSkgXAorICAgIFwKKyAgICBtYWNybyhldmVu
dElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlUm90YXRpb24pLCBrQ0dFdmVu
dEdlc3R1cmVSb3RhdGlvblZhbHVlKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1
cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVTY3JvbGwpLCBrQ0dFdmVudEdlc3R1cmVTY3Jv
bGxYKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50
VHlwZVNjcm9sbCksIGtDR0V2ZW50R2VzdHVyZVNjcm9sbFkpIFwKKyAgICBtYWNybyhldmVudElz
T2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlU2Nyb2xsKSwga0NHRXZlbnRHZXN0
dXJlU2Nyb2xsWikgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVu
dCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVQ
b3NpdGlvblgpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElE
RXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVQb3NpdGlvblkp
IFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBl
TmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVQcm9ncmVzcykgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9u
U3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WCkgXAorICAgIG1hY3JvKGV2ZW50
SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBr
Q0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1
cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdl
c3R1cmVTd2lwZVZlbG9jaXR5WikgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJl
VHlwZShldmVudCwga0lPSElERXZlbnRUeXBlRm9yY2UpLCBrQ0dFdmVudFRyYW5zaXRpb25Qcm9n
cmVzcykgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVu
dFR5cGVGb3JjZSksIGtDR0V2ZW50U3RhZ2VQcmVzc3VyZSkKKworI2RlZmluZSBMT0FEX0lOVEVH
RVJfRklFTERfRlJPTV9FVkVOVChldmVudFR5cGVGaWx0ZXIsIGZpZWxkKSBcCiteIHsgXAorICAg
IGlmICghKGV2ZW50VHlwZUZpbHRlcikpIFwKKyAgICAgICAgcmV0dXJuOyBcCisgICAgaW50NjRf
dCB2YWx1ZSA9IENHRXZlbnRHZXRJbnRlZ2VyVmFsdWVGaWVsZChldmVudCwgZmllbGQpOyBcCisg
ICAgaW50NjRfdCBwbGFpblZhbHVlID0gQ0dFdmVudEdldEludGVnZXJWYWx1ZUZpZWxkKHBsYWlu
RXZlbnQsIGZpZWxkKTsgXAorICAgIGlmICh2YWx1ZSAhPSBwbGFpblZhbHVlKSBcCisgICAgICAg
IGRpY3RbQCNmaWVsZF0gPSBAKHZhbHVlKTsgXAorfSgpOworCisjZGVmaW5lIExPQURfRE9VQkxF
X0ZJRUxEX0ZST01fRVZFTlQoZXZlbnRUeXBlRmlsdGVyLCBmaWVsZCkgXAorXiB7IFwKKyAgICBp
ZiAoIShldmVudFR5cGVGaWx0ZXIpKSBcCisgICAgICAgIHJldHVybjsgXAorICAgIGRvdWJsZSB2
YWx1ZSA9IENHRXZlbnRHZXREb3VibGVWYWx1ZUZpZWxkKGV2ZW50LCBmaWVsZCk7IFwKKyAgICBp
ZiAoIWlzbmFuKHZhbHVlKSkgeyBcCisgICAgICAgIGRvdWJsZSBwbGFpblZhbHVlID0gQ0dFdmVu
dEdldERvdWJsZVZhbHVlRmllbGQocGxhaW5FdmVudCwgZmllbGQpOyBcCisgICAgICAgIGlmIChm
YWJzKHZhbHVlIC0gcGxhaW5WYWx1ZSkgPj0gRkxUX0VQU0lMT04pIFwKKyAgICAgICAgICAgIGRp
Y3RbQCNmaWVsZF0gPSBAKHZhbHVlKTsgXAorICAgIH0gXAorfSgpOworCisjZGVmaW5lIFNUT1JF
X0lOVEVHRVJfRklFTERfVE9fRVZFTlQoZXZlbnRUeXBlRmlsdGVyLCBmaWVsZCkgXAorXiB7IFwK
KyAgICBpZiAoIShldmVudFR5cGVGaWx0ZXIpKSBcCisgICAgICAgIHJldHVybjsgXAorICAgIE5T
TnVtYmVyICp2YWx1ZSA9IGRpY3RbQCNmaWVsZF07IFwKKyAgICBpZiAodmFsdWUpIFwKKyAgICAg
ICAgQ0dFdmVudFNldEludGVnZXJWYWx1ZUZpZWxkKGV2ZW50LCBmaWVsZCwgdmFsdWUudW5zaWdu
ZWRMb25nTG9uZ1ZhbHVlKTsgXAorfSgpOworCisjZGVmaW5lIFNUT1JFX0RPVUJMRV9GSUVMRF9U
T19FVkVOVChldmVudFR5cGVGaWx0ZXIsIGZpZWxkKSBcCiteIHsgXAorICAgIGlmICghKGV2ZW50
VHlwZUZpbHRlcikpIFwKKyAgICAgICAgcmV0dXJuOyBcCisgICAgTlNOdW1iZXIgKnZhbHVlID0g
ZGljdFtAI2ZpZWxkXTsgXAorICAgIGlmICh2YWx1ZSkgXAorICAgICAgICBDR0V2ZW50U2V0RG91
YmxlVmFsdWVGaWVsZChldmVudCwgZmllbGQsIHZhbHVlLmRvdWJsZVZhbHVlKTsgXAorfSgpOwor
CitAaW1wbGVtZW50YXRpb24gRXZlbnRTZXJpYWxpemVyCisKKysgKE5TRGljdGlvbmFyeSAqKWRp
Y3Rpb25hcnlGb3JFdmVudDooQ0dFdmVudFJlZilldmVudCByZWxhdGl2ZVRvVGltZTooQ0dFdmVu
dFRpbWVzdGFtcClyZWZlcmVuY2VUaW1lc3RhbXAKK3sKKyAgICBDR0V2ZW50UmVmIHBsYWluRXZl
bnQgPSBDR0V2ZW50Q3JlYXRlKE5VTEwpOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqZGlj
dCA9IFtbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKwor
ICAgIEZPUl9FQUNIX0NHRVZFTlRfSU5URUdFUl9GSUVMRChMT0FEX0lOVEVHRVJfRklFTERfRlJP
TV9FVkVOVCk7CisgICAgRk9SX0VBQ0hfQ0dFVkVOVF9ET1VCTEVfRklFTEQoTE9BRF9ET1VCTEVf
RklFTERfRlJPTV9FVkVOVCk7CisKKyAgICBDR0V2ZW50VGltZXN0YW1wIHRpbWVzdGFtcCA9IENH
RXZlbnRHZXRUaW1lc3RhbXAoZXZlbnQpOworICAgIGRpY3RbQCJyZWxhdGl2ZVRpbWVNUyJdID0g
QChzdGQ6Om1heDxkb3VibGU+KHN0YXRpY19jYXN0PGRvdWJsZT4odGltZXN0YW1wIC0gcmVmZXJl
bmNlVGltZXN0YW1wKSAvIE5TRUNfUEVSX01TRUMsIDApKTsKKworICAgIENHU0V2ZW50VHlwZSBl
dmVudFR5cGUgPSAoQ0dTRXZlbnRUeXBlKUNHRXZlbnRHZXRJbnRlZ2VyVmFsdWVGaWVsZChldmVu
dCwga0NHU0V2ZW50VHlwZUZpZWxkKTsKKyAgICBpZiAoZXZlbnRUeXBlID09IGtDR1NFdmVudEdl
c3R1cmUgfHwgZXZlbnRUeXBlID09IGtDR1NFdmVudEZsdWlkVG91Y2hHZXN0dXJlIHx8IGV2ZW50
VHlwZSA9PSBrQ0dTRXZlbnREb2NrQ29udHJvbCkgeworICAgICAgICBpZiAoQ0dFdmVudEdldElu
dGVnZXJWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dFdmVudEdlc3R1cmVJc1ByZWZsaWdodCkpIHsKKyAg
ICAgICAgICAgIGRpY3RbQCJrQ0dFdmVudEdlc3R1cmVJc1ByZWZsaWdodCJdID0gQFlFUzsKKyAg
ICAgICAgICAgIGRpY3RbQCJrQ0dFdmVudEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcyJdID0gQChD
R0V2ZW50R2V0RG91YmxlVmFsdWVGaWVsZChldmVudCwga0NHRXZlbnRHZXN0dXJlUHJlZmxpZ2h0
UHJvZ3Jlc3MpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGRpY3RbQCJ3aW5kb3dMb2NhdGlv
biJdID0gTlNTdHJpbmdGcm9tUG9pbnQoTlNQb2ludEZyb21DR1BvaW50KENHRXZlbnRHZXRXaW5k
b3dMb2NhdGlvbihldmVudCkpKTsKKworICAgIENHRXZlbnRGbGFncyBmbGFncyA9IHN0YXRpY19j
YXN0PENHRXZlbnRGbGFncz4oQ0dFdmVudEdldEZsYWdzKGV2ZW50KSAmIH5OWF9OT05DT0FMU0VT
Q0VETUFTSyk7CisgICAgQ0dFdmVudEZsYWdzIHBsYWluRmxhZ3MgPSBzdGF0aWNfY2FzdDxDR0V2
ZW50RmxhZ3M+KENHRXZlbnRHZXRGbGFncyhwbGFpbkV2ZW50KSAmIH5OWF9OT05DT0FMU0VTQ0VE
TUFTSyk7CisgICAgaWYgKGZsYWdzICE9IHBsYWluRmxhZ3MpCisgICAgICAgIGRpY3RbQCJmbGFn
cyJdID0gQChmbGFncyk7CisKKyAgICBDRlJlbGVhc2UocGxhaW5FdmVudCk7CisKKyAgICByZXR1
cm4gZGljdDsKK30KKworKyAoQ0dFdmVudFJlZiljcmVhdGVFdmVudEZvckRpY3Rpb25hcnk6KE5T
RGljdGlvbmFyeSAqKWRpY3QgaW5XaW5kb3c6KE5TV2luZG93ICopd2luZG93IHJlbGF0aXZlVG9U
aW1lOihDR0V2ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRpbWVzdGFtcAoreworICAgIENHRXZlbnRS
ZWYgZXZlbnQgPSBDR0V2ZW50Q3JlYXRlKE5VTEwpOworCisgICAgRk9SX0VBQ0hfQ0dFVkVOVF9J
TlRFR0VSX0ZJRUxEKFNUT1JFX0lOVEVHRVJfRklFTERfVE9fRVZFTlQpOworICAgIEZPUl9FQUNI
X0NHRVZFTlRfRE9VQkxFX0ZJRUxEKFNUT1JFX0RPVUJMRV9GSUVMRF9UT19FVkVOVCk7CisKKyAg
ICBpZiAoZGljdFtAInJlbGF0aXZlVGltZU1TIl0pCisgICAgICAgIENHRXZlbnRTZXRUaW1lc3Rh
bXAoZXZlbnQsIHJlZmVyZW5jZVRpbWVzdGFtcCArIHN0YXRpY19jYXN0PHVpbnQ2NF90PigoW2Rp
Y3RbQCJyZWxhdGl2ZVRpbWVNUyJdIGRvdWJsZVZhbHVlXSAqIE5TRUNfUEVSX01TRUMpKSk7CisK
KyAgICBpZiAoW2RpY3RbQCJrQ0dFdmVudEdlc3R1cmVJc1ByZWZsaWdodCJdIGJvb2xWYWx1ZV0p
IHsKKyAgICAgICAgQ0dFdmVudFNldEludGVnZXJWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dFdmVudEdl
c3R1cmVJc1ByZWZsaWdodCwgMSk7CisgICAgICAgIENHRXZlbnRTZXREb3VibGVWYWx1ZUZpZWxk
KGV2ZW50LCBrQ0dFdmVudEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcywgW2RpY3RbQCJrQ0dFdmVu
dEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcyJdIGRvdWJsZVZhbHVlXSk7CisgICAgfQorCisgICAg
aWYgKGRpY3RbQCJ3aW5kb3dMb2NhdGlvbiJdKSB7CisgICAgICAgIENHRXZlbnRTZXRXaW5kb3dM
b2NhdGlvbihldmVudCwgTlNQb2ludFRvQ0dQb2ludChOU1BvaW50RnJvbVN0cmluZyhkaWN0W0Ai
d2luZG93TG9jYXRpb24iXSkpKTsKKworICAgICAgICBOU1BvaW50IHNjcmVlblBvaW50ID0gW3dp
bmRvdyBjb252ZXJ0QmFzZVRvU2NyZWVuOk5TUG9pbnRUb0NHUG9pbnQoTlNQb2ludEZyb21TdHJp
bmcoZGljdFtAIndpbmRvd0xvY2F0aW9uIl0pKV07CisgICAgICAgIENHRXZlbnRTZXRMb2NhdGlv
bihldmVudCwgTlNNYWtlUG9pbnQoc2NyZWVuUG9pbnQueCwgTlNTY3JlZW4uc2NyZWVucy5maXJz
dE9iamVjdC5mcmFtZS5zaXplLmhlaWdodCAtIHNjcmVlblBvaW50LnkpKTsKKyAgICB9CisKKyAg
ICBpZiAoZGljdFtAImZsYWdzIl0pCisgICAgICAgIENHRXZlbnRTZXRGbGFncyhldmVudCwgW2Rp
Y3RbQCJmbGFncyJdIHVuc2lnbmVkTG9uZ0xvbmdWYWx1ZV0pOworCisgICAgQ0dFdmVudFNldElu
dGVnZXJWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dTRXZlbnRXaW5kb3dJREZpZWxkLCB3aW5kb3cud2lu
ZG93TnVtYmVyKTsKKworICAgIHJldHVybiBldmVudDsKK30KKworQGVuZAorCitAaW1wbGVtZW50
YXRpb24gRXZlbnRTdHJlYW1QbGF5ZXIKKworY29uc3QgZmxvYXQgZXZlbnREaXNwYXRjaFRpbWVy
UmF0ZSA9IDEuIC8gMTIwLjsKKworKyAodm9pZClwbGF5U3RyZWFtOihOU0FycmF5PE5TRGljdGlv
bmFyeSAqPiAqKWV2ZW50RGljdHMgd2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCheKSgpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgLy8gVGhpcyBhbGxv
YyBpcyBiYWxhbmNlZCB3aXRoIHRoZSByZWxlYXNlIGJlbG93IGluIHBsYXliYWNrVGltZXJGaXJl
ZC4KKyAgICBFdmVudFN0cmVhbVBsYXllciAqcGxheWVyID0gW1tFdmVudFN0cmVhbVBsYXllciBh
bGxvY10gaW5pdF07CisKKyAgICBwbGF5ZXItPl9yZW1haW5pbmdFdmVudERpY3RzID0gYWRvcHRO
UyhbZXZlbnREaWN0cyBtdXRhYmxlQ29weV0pOworICAgIHBsYXllci0+X3dpbmRvdyA9IHdpbmRv
dzsKKworICAgIGlmIChjb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgcGxheWVyLT5fY29tcGxl
dGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpOworCisgICAgcGxh
eWVyLT5fc3RhcnRUaW1lID0gbWFjaF9hYnNvbHV0ZV90aW1lKCk7CisKKyAgICBbTlNUaW1lciBz
Y2hlZHVsZWRUaW1lcldpdGhUaW1lSW50ZXJ2YWw6ZXZlbnREaXNwYXRjaFRpbWVyUmF0ZSB0YXJn
ZXQ6cGxheWVyIHNlbGVjdG9yOkBzZWxlY3RvcihwbGF5YmFja1RpbWVyRmlyZWQ6KSB1c2VySW5m
bzpuaWwgcmVwZWF0czpZRVNdOworfQorCistICh2b2lkKXBsYXliYWNrVGltZXJGaXJlZDooTlNU
aW1lciAqKXRpbWVyCit7CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5ICo+IHJlbW92ZUxp
c3QgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICBOU0V2ZW50
ICpuc0V2ZW50ID0gbmlsOworICAgIGZvciAoaWQgZXZlbnREaWN0IGluIF9yZW1haW5pbmdFdmVu
dERpY3RzLmdldCgpKSB7CisgICAgICAgIENHRXZlbnRSZWYgZXZlbnQgPSBbRXZlbnRTZXJpYWxp
emVyIGNyZWF0ZUV2ZW50Rm9yRGljdGlvbmFyeTpldmVudERpY3QgaW5XaW5kb3c6X3dpbmRvdy5n
ZXQoKSByZWxhdGl2ZVRvVGltZTpfc3RhcnRUaW1lXTsKKyAgICAgICAgaWYgKENHRXZlbnRHZXRU
aW1lc3RhbXAoZXZlbnQpIDwgbWFjaF9hYnNvbHV0ZV90aW1lKCkpIHsKKyAgICAgICAgICAgIG5z
RXZlbnQgPSBbTlNFdmVudCBldmVudFdpdGhDR0V2ZW50OmV2ZW50XTsKKyAgICAgICAgICAgIFtO
U0FwcCBwb3N0RXZlbnQ6bnNFdmVudCBhdFN0YXJ0Ok5PXTsKKyAgICAgICAgICAgIFtyZW1vdmVM
aXN0IGFkZE9iamVjdDpldmVudERpY3RdOworICAgICAgICB9CisgICAgICAgIENGUmVsZWFzZShl
dmVudCk7CisgICAgfQorICAgIFtfcmVtYWluaW5nRXZlbnREaWN0cyByZW1vdmVPYmplY3RzSW5B
cnJheTpyZW1vdmVMaXN0LmdldCgpXTsKKworICAgIGlmIChbX3JlbWFpbmluZ0V2ZW50RGljdHMg
Y291bnRdKQorICAgICAgICByZXR1cm47CisKKyAgICBbdGltZXIgaW52YWxpZGF0ZV07CisKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAorICAgIE5TRXZlbnRU
eXBlIGFwcGxpY2F0aW9uRGVmaW5lZEV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlQXBwbGljYXRpb25E
ZWZpbmVkOworI2Vsc2UKKyAgICBOU0V2ZW50VHlwZSBhcHBsaWNhdGlvbkRlZmluZWRFdmVudFR5
cGUgPSBOU0FwcGxpY2F0aW9uRGVmaW5lZDsKKyNlbmRpZgorICAgIFtOU0FwcCBwb3N0RXZlbnQ6
W05TRXZlbnQgb3RoZXJFdmVudFdpdGhUeXBlOmFwcGxpY2F0aW9uRGVmaW5lZEV2ZW50VHlwZSBs
b2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVt
YmVyOjAgY29udGV4dDowIHN1YnR5cGU6MCBkYXRhMTo0MiBkYXRhMjowXSBhdFN0YXJ0Ok5PXTsK
KyAgICAvLyBCbG9jayB1bnRpbCB3ZSBzZW5kIHRoZSBsYXN0IGV2ZW50IHdlIHBvc3RlZC4KKyAg
ICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBOU0V2ZW50ICpuZXh0RXZlbnQgPSBbTlNBcHAgbmV4
dEV2ZW50TWF0Y2hpbmdNYXNrOk5TQW55RXZlbnRNYXNrIHVudGlsRGF0ZTpbTlNEYXRlIGRhdGVX
aXRoVGltZUludGVydmFsU2luY2VOb3c6ZXZlbnREaXNwYXRjaFRpbWVyUmF0ZV0gaW5Nb2RlOk5T
RGVmYXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVTXTsKKyAgICAgICAgaWYgKG5leHRFdmVudC50
eXBlID09IGFwcGxpY2F0aW9uRGVmaW5lZEV2ZW50VHlwZSAmJiBuZXh0RXZlbnQuZGF0YTEgPT0g
NDIpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgaWYgKG5leHRFdmVudCkKKyAgICAgICAg
ICAgIFtOU0FwcCBzZW5kRXZlbnQ6bmV4dEV2ZW50XTsKKyAgICB9CisKKyAgICBpZiAoX2NvbXBs
ZXRpb25IYW5kbGVyKQorICAgICAgICBfY29tcGxldGlvbkhhbmRsZXIoKTsKKworICAgIFtzZWxm
IHJlbGVhc2VdOworfQorCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5o
IGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2
ZW50U3RyZWFtc01hYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmMzAyODgzNTkyMTM2MmJkZjZjZDFmNWIxZTQ3
OGE5NTBmZWIzNzEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2
ZW50U2VyaWFsaXphdGlvbi9tYWMvU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmgKQEAgLTAsMCArMSwz
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgPEFwcEtpdC9B
cHBLaXQuaD4KKworTlNTdHJpbmcgKmJlZ2luU3dpcGVCYWNrRXZlbnRTdHJlYW0oKTsKK05TU3Ry
aW5nICpjb21wbGV0ZVN3aXBlQmFja0V2ZW50U3RyZWFtKCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2
ZW50U3RyZWFtc01hYy5tbSBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0
aW9uL21hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTgyNDA1OWNhYWQw
MTNmMDg5MWYyMzUwODg1MGEwOTMxZDQ5Y2Q4OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9TaGFyZWRFdmVudFN0cmVhbXNN
YWMubW0KQEAgLTAsMCArMSwzNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KyNpbXBvcnQgIlNoYXJlZEV2ZW50U3RyZWFtc01hYy5oIgorCisjaWYgUExBVEZPUk0oTUFDKQor
CisjZGVmaW5lIFFVT1RFKC4uLikgQCgjX19WQV9BUkdTX18pCisKK05TU3RyaW5nICpiZWdpblN3
aXBlQmFja0V2ZW50U3RyZWFtKCkKK3sKKyAgICByZXR1cm4gUVVPVEUoWworICAgICAgICB7Cisg
ICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMCwKKyAgICAgICAgICAgICJrQ0dFdmVudFNj
cm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJ
RFR5cGUiIDogNiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMTI4LAorICAgICAgICAgICAgIndpbmRv
d0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICAicmVsYXRpdmVUaW1lTVMiIDogOCwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVI
SURUeXBlIiA6IDYxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAg
ICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTdGFydEVuZFNlcmllc1R5cGUiIDogNiwKKyAgICAg
ICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAg
ICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6
ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAxLAor
ICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAg
ICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2Vz
dHVyZVNjcm9sbFgiIDogMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAicmVs
YXRpdmVUaW1lTVMiIDogOCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwg
MzAwfSIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDEs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMSwKKyAgICAg
ICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJy
ZWxhdGl2ZVRpbWVNUyIgOiAxNywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQw
MCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAxLAorICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZl
bnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBl
RmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAxMgor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBv
aW50RGVsdGFBeGlzMSIgOiAxLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDE3LAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAg
ICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDQsCisgICAgICAgICAgICAi
d2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5
cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDI1
LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAg
ICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFn
Qml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDIzCisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiAxLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogMSwKKyAgICAg
ICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAyNSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50
RGVsdGFBeGlzMiIgOiAxMSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwg
MzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisg
ICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMzMsCisgICAgICAgICAgICAid2luZG93TG9j
YXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9s
bFkiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAg
ICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAi
a0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNj
cm9sbFgiIDogMjgKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudFBvaW50RGVsdGFBeGlzMSIgOiAxLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6
IDMzLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDE2LAorICAgICAg
ICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dT
RXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
ImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVN
UyIgOiA0MSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAxLAorICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0
dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjks
CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAzNQorICAgICAgICB9LAor
ICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDog
MiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IDEs
CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNDEsCisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnRQb2ludERlbHRhQXhpczIiIDogMjQsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDog
Ins0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIg
OiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDQ5LAorICAgICAgICAgICAgIndp
bmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1
cmVTY3JvbGxZIiA6IC0xLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIs
CisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAg
ICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlU2Nyb2xsWCIgOiA0NQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogNCwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IC0xLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1T
IiA6IDQ5LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDog
MSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAg
ICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDM3LAorICAg
ICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJr
Q0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRp
bWVNUyIgOiA1NywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIs
CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAtMywKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xs
R2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6
IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogNTcKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3Vu
dCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDUs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAtMSwK
KyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA1NywKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dFBvaW50RGVsdGFBeGlzMiIgOiA1NCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAi
ezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6
IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNjUsCisgICAgICAgICAgICAid2lu
ZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVy
ZVNjcm9sbFkiIDogLTUsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwK
KyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAg
ICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdl
c3R1cmVTY3JvbGxYIiA6IDgxCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJr
Q0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiA5LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRQb2ludERlbHRhQXhpczEiIDogLTIsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMi
IDogNjUsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAx
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogOTIsCisgICAg
ICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtD
R1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgIF0pOworfQorCitOU1N0cmlu
ZyAqY29tcGxldGVTd2lwZUJhY2tFdmVudFN0cmVhbSgpCit7CisgICAgcmV0dXJuIFFVT1RFKFsK
KyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAg
ICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA3MywKKyAgICAgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xs
WSIgOiAtMywKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAg
ICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAi
a0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNj
cm9sbFgiIDogNzUKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnREZWx0YUF4aXMyIiA6IDExLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQ
b2ludERlbHRhQXhpczEiIDogLTEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNzMs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMTA2LAorICAgICAgICAg
ICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZl
bnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIg
OiA4MSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAtMywKKyAgICAgICAgICAgICJrQ0dF
dmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVy
ZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAor
ICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogODUKKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAx
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDEzLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogLTEsCisgICAg
ICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogODEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2lu
dERlbHRhQXhpczIiIDogMTI3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAw
LCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwK
KyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4OSwKKyAgICAgICAgICAgICJ3aW5kb3dM
b2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Ny
b2xsWSIgOiAtMSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAg
ICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAg
ICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVy
ZVNjcm9sbFgiIDogOTEKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnREZWx0YUF4aXMyIiA6IDE0LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnRQb2ludERlbHRhQXhpczEiIDogLTEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDog
ODksCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMTM5LAorICAgICAg
ICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dT
RXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
ImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVN
UyIgOiA5NywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAyLAorICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0
dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjks
CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAxMzYKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIg
OiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDIwLAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogMSwKKyAg
ICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA5NywKKyAgICAgICAgICAgICJrQ0dTY3JvbGxX
aGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBv
aW50RGVsdGFBeGlzMiIgOiAyMDQsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0
MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2
LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEwNSwKKyAgICAgICAgICAgICJ3aW5k
b3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJl
U2Nyb2xsWSIgOiA1LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisg
ICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAg
ICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0
dXJlU2Nyb2xsWCIgOiA5MgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NH
U2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudERlbHRhQXhpczIiIDogMTQsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudFBvaW50RGVsdGFBeGlzMSIgOiAyLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6
IDEwNSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAg
ICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMzYsCisgICAg
ICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtD
R1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGlt
ZU1TIiA6IDExMywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIs
CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAxNCwKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xs
R2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6
IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMTMzCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhh
c2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMy
IiA6IDE5MiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIsCisgICAgICAg
ICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczEiIDogMSwKKyAgICAgICAgICAgICJr
Q0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAicmVsYXRp
dmVUaW1lTVMiIDogMTEzLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxD
b3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6
IDE5LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IDcKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEyMSwKKyAgICAg
ICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAg
ImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBl
RmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogNCwKKyAg
ICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIKKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEyMSwKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYyLAorICAgICAgICAgICAgImtDR1NFdmVudFR5
cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTdGFydEVuZFNlcmll
c1R5cGUiIDogNiwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIK
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRT
Y3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEzOSwKKyAg
ICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAi
a0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnRTY3JvbGxQaGFzZSIgOiA0LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0Nv
bnRpbnVvdXMiIDogMQorICAgICAgICB9CisgICAgXSk7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3Jp
cHRDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKaW5kZXggMWM2NjIzZmQwNWUyZGNlZTBi
OTVkNWE2ZTYyOTU0YjM3YmE0OGMwNy4uODI1M2VmMDUzOWExZDQ0ZTJkNWRlZDM5ZDc2YWJiN2U0
M2ZlMjgyZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVy
U2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBA
IC00Nyw2ICs0NywxMSBAQCBpbnRlcmZhY2UgVUlTY3JpcHRDb250cm9sbGVyIHsKICAgICB2b2lk
IGtleURvd25Vc2luZ0hhcmR3YXJlS2V5Ym9hcmQoRE9NU3RyaW5nIGNoYXJhY3Rlciwgb2JqZWN0
IGNhbGxiYWNrKTsKICAgICB2b2lkIGtleVVwVXNpbmdIYXJkd2FyZUtleWJvYXJkKERPTVN0cmlu
ZyBjaGFyYWN0ZXIsIG9iamVjdCBjYWxsYmFjayk7CiAKKyAgICB2b2lkIGJlZ2luQmFja1N3aXBl
KG9iamVjdCBjYWxsYmFjayk7CisgICAgdm9pZCBjb21wbGV0ZUJhY2tTd2lwZShvYmplY3QgY2Fs
bGJhY2spOworCisgICAgdm9pZCBwbGF5QmFja0V2ZW50U3RyZWFtKERPTVN0cmluZyBldmVudFN0
cmVhbSwgb2JqZWN0IGNhbGxiYWNrKTsKKwogICAgIC8vIEVxdWl2YWxlbnQgb2YgcHJlc3Npbmcg
dGhlIERvbmUgYnV0dG9uIGluIHRoZSBmb3JtIGFjY2Vzc29yeSBiYXIuCiAgICAgdm9pZCBkaXNt
aXNzRm9ybUFjY2Vzc29yeVZpZXcoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1Rlc3RS
dW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXgg
NjEwZjk3ZDk1OTFmOTdiZGI2MTIxMGJhYmY5ODdmMWM0NDExOTU1Zi4uOGJhZTQ0NmVjODJiZDUx
YmViZDkwYjNiOGY0NjJkZDExMzQzM2YxOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCkBA
IC0xMzUsNiArMTM1LDExIEBAIEpTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRIaWRl
S2V5Ym9hcmRDYWxsYmFjaygpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tX
aXRoSUQoQ2FsbGJhY2tUeXBlRGlkSGlkZUtleWJvYXJkKTsKIH0KIAordm9pZCBVSVNjcmlwdENv
bnRyb2xsZXI6OnBsYXlCYWNrRXZlbnRTdHJlYW0oSlNTdHJpbmdSZWYgc3RyZWFtLCBKU1ZhbHVl
UmVmIGNhbGxiYWNrKQoreworICAgIHBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbShzdHJlYW0s
IGNhbGxiYWNrKTsKK30KKwogI2lmICFQTEFURk9STShJT1MpCiB2b2lkIFVJU2NyaXB0Q29udHJv
bGxlcjo6em9vbVRvU2NhbGUoZG91YmxlLCBKU1ZhbHVlUmVmKQogewpAQCAtMjU5LDYgKzI2NCwy
MyBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWRIaWRlS2V5Ym9hcmRD
YWxsYmFjaygpCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1DbGVhckFsbENhbGxi
YWNrcygpCiB7CiB9CisKKyNlbmRpZgorCisjaWYgIVBMQVRGT1JNKE1BQykKKwordm9pZCBVSVNj
cmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7Cit9
CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZShKU1ZhbHVlUmVm
IGNhbGxiYWNrKQoreworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5
QmFja0V2ZW50U3RyZWFtKEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKQoreworfQorCiAjZW5kaWYK
IAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnVpU2NyaXB0Q29tcGxldGUoSlNTdHJpbmdSZWYg
cmVzdWx0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0
Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAppbmRleCA0MjI1NWRhMzQzNWVjNGEwNjlkYjcz
ZDZjMGViYTg3MTZiZjVjZTljLi4yZWRmODRhODA3NTZiNjEzMTFlMWNiMmZhM2ZjMGZhMDRlODE5
YTkzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9V
SVNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0
Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaApAQCAtNzQsNiArNzQsOSBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBzY3JvbGxUb09mZnNldChsb25nIHgsIGxvbmcgeSk7CiAKKyAgICB2b2lk
IGJlZ2luQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spOworICAgIHZvaWQgY29tcGxldGVC
YWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjayk7CisKICAgICB2b2lkIHNldERpZFN0YXJ0Rm9y
bUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKEpTVmFsdWVSZWYpOwogICAgIEpTVmFsdWVSZWYg
ZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2soKSBjb25zdDsKIApAQCAtOTUs
NiArOTgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREaWRFbmRTY3JvbGxpbmdDYWxsYmFjayhK
U1ZhbHVlUmVmKTsKICAgICBKU1ZhbHVlUmVmIGRpZEVuZFNjcm9sbGluZ0NhbGxiYWNrKCkgY29u
c3Q7CiAKKyAgICB2b2lkIHBsYXlCYWNrRXZlbnRTdHJlYW0oSlNTdHJpbmdSZWYgc3RyZWFtLCBK
U1ZhbHVlUmVmIGNhbGxiYWNrKTsKKwogICAgIGRvdWJsZSB6b29tU2NhbGUoKSBjb25zdDsKICAg
ICBkb3VibGUgbWluaW11bVpvb21TY2FsZSgpIGNvbnN0OwogICAgIGRvdWJsZSBtYXhpbXVtWm9v
bVNjYWxlKCkgY29uc3Q7CkBAIC0xMTYsNiArMTIxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBs
YXRmb3JtU2V0RGlkSGlkZUtleWJvYXJkQ2FsbGJhY2soKTsKICAgICB2b2lkIHBsYXRmb3JtU2V0
RGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2soKTsKICAgICB2b2lkIHBsYXRmb3JtQ2xlYXJBbGxDYWxs
YmFja3MoKTsKKyAgICB2b2lkIHBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1Jl
ZiwgSlNWYWx1ZVJlZik7CiAKICAgICBKU0NsYXNzUmVmIHdyYXBwZXJDbGFzcygpIGZpbmFsOwog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL3NwaS9Db3JlR3JhcGhpY3NTUEku
aCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0NvcmVHcmFwaGljc1NQSS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU3NWJlMDc0ODk5NGVmMmQ4NTU4ZTA1NjY2OTg3N2Y1MTU4ZGZiMGQKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL3NwaS9Db3JlR3JhcGhpY3NTUEkuaApAQCAt
MCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQgPHd0Zi9Q
bGF0Zm9ybS5oPgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8Q29y
ZUdyYXBoaWNzL0NHRXZlbnRQcml2YXRlLmg+CisjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dTRXZl
bnQuaD4KKworI2Vsc2UKKworV1RGX0VYVEVSTl9DX0JFR0lOCisKK3N0YXRpYyBjb25zdCBDR0V2
ZW50RmllbGQga0NHU0V2ZW50V2luZG93SURGaWVsZCA9IChDR0V2ZW50RmllbGQpNTE7CitzdGF0
aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR1NFdmVudFR5cGVGaWVsZCA9IChDR0V2ZW50RmllbGQp
NTU7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZUhJRFR5cGUgPSAo
Q0dFdmVudEZpZWxkKTExMDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0
dXJlSXNQcmVmbGlnaHQgPSAoQ0dFdmVudEZpZWxkKTExMTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50
RmllbGQga0NHRXZlbnRHZXN0dXJlWm9vbVZhbHVlID0gKENHRXZlbnRGaWVsZCkxMTM7CitzdGF0
aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVJvdGF0aW9uVmFsdWUgPSAoQ0dF
dmVudEZpZWxkKTExNDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJl
U3dpcGVWYWx1ZSA9IChDR0V2ZW50RmllbGQpMTE1Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVs
ZCBrQ0dFdmVudEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcyA9IChDR0V2ZW50RmllbGQpMTE2Owor
c3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTdGFydEVuZFNlcmllc1R5
cGUgPSAoQ0dFdmVudEZpZWxkKTExNzsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZl
bnRHZXN0dXJlU2Nyb2xsWCA9IChDR0V2ZW50RmllbGQpMTE4Oworc3RhdGljIGNvbnN0IENHRXZl
bnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxZID0gKENHRXZlbnRGaWVsZCkxMTk7CitzdGF0
aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVNjcm9sbFogPSAoQ0dFdmVudEZp
ZWxkKTEyMDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVN
b3Rpb24gPSAoQ0dFdmVudEZpZWxkKTEyMzsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NH
RXZlbnRHZXN0dXJlU3dpcGVQcm9ncmVzcyA9IChDR0V2ZW50RmllbGQpMTI0Oworc3RhdGljIGNv
bnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVBvc2l0aW9uWCA9IChDR0V2ZW50
RmllbGQpMTI1Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lw
ZVBvc2l0aW9uWSA9IChDR0V2ZW50RmllbGQpMTI2Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVs
ZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WCA9IChDR0V2ZW50RmllbGQpMTI5Oworc3Rh
dGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WSA9IChD
R0V2ZW50RmllbGQpMTMwOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1
cmVTd2lwZVZlbG9jaXR5WiA9IChDR0V2ZW50RmllbGQpMTMxOworc3RhdGljIGNvbnN0IENHRXZl
bnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVQaGFzZSA9IChDR0V2ZW50RmllbGQpMTMyOworc3RhdGlj
IGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVNYXNrID0gKENHRXZlbnRGaWVsZCkx
MzM7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlTWFzayA9
IChDR0V2ZW50RmllbGQpMTM0Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudFNj
cm9sbEdlc3R1cmVGbGFnQml0cyA9IChDR0V2ZW50RmllbGQpMTM1Oworc3RhdGljIGNvbnN0IENH
RXZlbnRGaWVsZCBrQ0dFdmVudFN3aXBlR2VzdHVyZUZsYWdCaXRzID0gKENHRXZlbnRGaWVsZCkx
MzY7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZUZsYXZvciA9IChD
R0V2ZW50RmllbGQpMTM4Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1
cmVab29tRGVsdGFYID0gKENHRXZlbnRGaWVsZCkxMzk7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZp
ZWxkIGtDR0V2ZW50R2VzdHVyZVpvb21EZWx0YVkgPSAoQ0dFdmVudEZpZWxkKTE0MDsKK3N0YXRp
YyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlUHJvZ3Jlc3MgPSAoQ0dFdmVudEZp
ZWxkKTE0MjsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3RhZ2Ug
PSAoQ0dFdmVudEZpZWxkKTE0MzsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRH
ZXN0dXJlQmVoYXZpb3IgPSAoQ0dFdmVudEZpZWxkKTE0NDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50
RmllbGQga0NHRXZlbnRUcmFuc2l0aW9uUHJvZ3Jlc3MgPSAoQ0dFdmVudEZpZWxkKTE0NzsKK3N0
YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRTdGFnZVByZXNzdXJlID0gKENHRXZlbnRG
aWVsZCkxNDg7CisKK2VudW0geworICAgIGtDR1NFdmVudFNjcm9sbFdoZWVsID0gMjIsCisgICAg
a0NHU0V2ZW50Wm9vbSA9IDI4LAorICAgIGtDR1NFdmVudEdlc3R1cmUgPSAyOSwKKyAgICBrQ0dT
RXZlbnREb2NrQ29udHJvbCA9IDMwLAorICAgIGtDR1NFdmVudEZsdWlkVG91Y2hHZXN0dXJlID0g
MzEsCit9OwordHlwZWRlZiB1aW50MzJfdCBDR1NFdmVudFR5cGU7CisKK2VudW0geworICAgIGtD
R0hJREV2ZW50VHlwZUdlc3R1cmVTdGFydGVkID0gNjEsCisgICAga0NHSElERXZlbnRUeXBlR2Vz
dHVyZUVuZGVkID0gNjIsCit9OwordHlwZWRlZiB1aW50MzJfdCBDR1NISURFdmVudFR5cGU7CisK
K0NHUG9pbnQgQ0dFdmVudEdldFdpbmRvd0xvY2F0aW9uKENHRXZlbnRSZWYpOwordm9pZCBDR0V2
ZW50U2V0V2luZG93TG9jYXRpb24oQ0dFdmVudFJlZiwgQ0dQb2ludCk7CisKK1dURl9FWFRFUk5f
Q19FTkQKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0UnVubmVyU2hhcmVkL3NwaS9JT0tpdFNQSS5oIGIvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9zcGkvSU9LaXRTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzA2ODU3ZDc2MzY2OGRlMTUyMDNmOTM2
YzM3YzNmMDM3NjAxNDBjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJl
ZC9zcGkvSU9LaXRTUEkuaApAQCAtMCwwICsxLDE5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW1wb3J0IDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCisKKyNpbXBvcnQgPElPS2l0L2hpZC9JT0hJREV2ZW50Lmg+CisjaW1wb3J0IDxJT0tp
dC9oaWQvSU9ISURFdmVudERhdGEuaD4KKyNpbXBvcnQgPElPS2l0L2hpZC9JT0hJREV2ZW50U3lz
dGVtQ2xpZW50Lmg+CisjaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURVc2FnZVRhYmxlcy5oPgorCisj
ZWxzZQorCitXVEZfRVhURVJOX0NfQkVHSU4KKworI2lmZGVmIF9fTFA2NF9fCit0eXBlZGVmIGRv
dWJsZSBJT0hJREZsb2F0OworI2Vsc2UKK3R5cGVkZWYgZmxvYXQgSU9ISURGbG9hdDsKKyNlbmRp
ZgorCitlbnVtIHsKKyAgICBrSU9ISURFdmVudE9wdGlvbk5vbmUgPSAwLAorfTsKKwordHlwZWRl
ZiBVSW50MzIgSU9PcHRpb25CaXRzOwordHlwZWRlZiB1aW50MzJfdCBJT0hJREV2ZW50T3B0aW9u
Qml0czsKK3R5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudEZpZWxkOworCit0eXBlZGVmIHN0cnVj
dCBfX0lPSElERXZlbnRTeXN0ZW1DbGllbnQgKiBJT0hJREV2ZW50U3lzdGVtQ2xpZW50UmVmOwor
dHlwZWRlZiBzdHJ1Y3QgX19JT0hJREV2ZW50ICogSU9ISURFdmVudFJlZjsKKworI2RlZmluZSBJ
T0hJREV2ZW50RmllbGRCYXNlKHR5cGUpICh0eXBlIDw8IDE2KQorCitlbnVtIHsKKyAgICBrSElE
UGFnZV9LZXlib2FyZE9yS2V5cGFkICAgICAgID0gMHgwNywKKyAgICBrSElEUGFnZV9WZW5kb3JE
ZWZpbmVkU3RhcnQgICAgID0gMHhGRjAwCit9OworCitlbnVtIHsKKyAgICBrSU9ISUREaWdpdGl6
ZXJFdmVudFJhbmdlICAgICAgID0gMTw8MCwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFRvdWNo
ICAgICAgID0gMTw8MSwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFBvc2l0aW9uICAgID0gMTw8
MiwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudElkZW50aXR5ICAgID0gMTw8NSwKKyAgICBrSU9I
SUREaWdpdGl6ZXJFdmVudEF0dHJpYnV0ZSAgID0gMTw8NiwKKyAgICBrSU9ISUREaWdpdGl6ZXJF
dmVudENhbmNlbCAgICAgID0gMTw8NywKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFN0YXJ0ICAg
ICAgID0gMTw8OCwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudEVzdGltYXRlZEFsdGl0dWRlID0g
MTw8MjgsCisgICAga0lPSElERGlnaXRpemVyRXZlbnRFc3RpbWF0ZWRBemltdXRoID0gMTw8Mjks
CisgICAga0lPSElERGlnaXRpemVyRXZlbnRFc3RpbWF0ZWRQcmVzc3VyZSA9IDE8PDMwLAorfTsK
K3R5cGVkZWYgdWludDMyX3QgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2s7CisKK2VudW0geworICAg
IGtJT0hJREV2ZW50VHlwZU5VTEwsCisgICAga0lPSElERXZlbnRUeXBlVmVuZG9yRGVmaW5lZCwK
KyAgICBrSU9ISURFdmVudFR5cGVLZXlib2FyZCA9IDMsCisgICAga0lPSElERXZlbnRUeXBlUm90
YXRpb24gPSA1LAorICAgIGtJT0hJREV2ZW50VHlwZVNjcm9sbCA9IDYsCisgICAga0lPSElERXZl
bnRUeXBlWm9vbSA9IDgsCisgICAga0lPSElERXZlbnRUeXBlRGlnaXRpemVyID0gMTEsCisgICAg
a0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlID0gMTYsCisgICAga0lPSElERXZlbnRUeXBl
Rm9yY2UgPSAzMiwKKworfTsKK3R5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudFR5cGU7CisKK2Vu
dW0geworICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkVXNhZ2VQYWdlID0gSU9ISURF
dmVudEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVWZW5kb3JEZWZpbmVkKSwKKyAgICBrSU9ISURF
dmVudEZpZWxkVmVuZG9yRGVmaW5lZFJlc2VydmVkLAorICAgIGtJT0hJREV2ZW50RmllbGRWZW5k
b3JEZWZpbmVkUmVzZXJ2ZWQxLAorICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkRGF0
YUxlbmd0aCwKKyAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZERhdGEKK307CisKK2Vu
dW0geworICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJYID0gSU9ISURFdmVudEZpZWxkQmFz
ZShrSU9ISURFdmVudFR5cGVEaWdpdGl6ZXIpLAorICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6
ZXJZLAorICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJNYWpvclJhZGl1cyA9IGtJT0hJREV2
ZW50RmllbGREaWdpdGl6ZXJYICsgMjAsCisgICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1p
bm9yUmFkaXVzLAorICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJJc0Rpc3BsYXlJbnRlZ3Jh
dGVkID0ga0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1ham9yUmFkaXVzICsgNSwKK307CisKK2Vu
dW0geworICAgIGtJT0hJRFRyYW5zZHVjZXJSYW5nZSAgICAgICAgICAgICAgID0gMHgwMDAxMDAw
MCwKKyAgICBrSU9ISURUcmFuc2R1Y2VyVG91Y2ggICAgICAgICAgICAgICA9IDB4MDAwMjAwMDAs
CisgICAga0lPSElEVHJhbnNkdWNlckludmVydCAgICAgICAgICAgICAgPSAweDAwMDQwMDAwLAor
ICAgIGtJT0hJRFRyYW5zZHVjZXJEaXNwbGF5SW50ZWdyYXRlZCAgID0gMHgwMDA4MDAwMAorfTsK
KworZW51bSB7CisgICAga0lPSElERGlnaXRpemVyVHJhbnNkdWNlclR5cGVIYW5kID0gMworfTsK
K3R5cGVkZWYgdWludDMyX3QgSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZTsKKworZW51bSB7
CisgICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplcldpbGxVcGRhdGVNYXNrID0gNzIwOTI0LAor
ICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJEaWRVcGRhdGVNYXNrID0gNzIwOTI1Cit9Owor
CitJT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVEaWdpdGl6ZXJFdmVudChDRkFsbG9jYXRv
clJlZiwgdWludDY0X3QsIElPSElERGlnaXRpemVyVHJhbnNkdWNlclR5cGUsIHVpbnQzMl90LCB1
aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJ
T0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3Qs
IGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsKKworSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3Jl
YXRlRGlnaXRpemVyRmluZ2VyRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJf
dCwgdWludDMyX3QsIElPSElERGlnaXRpemVyRXZlbnRNYXNrLCBJT0hJREZsb2F0LCBJT0hJREZs
b2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xl
YW5fdCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOworCitJT0hJREV2ZW50UmVmIElPSElERXZlbnRD
cmVhdGVGb3JjZUV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIElPSElE
RmxvYXQsIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREV2ZW50T3B0aW9uQml0cyk7CisKK0lP
SElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZUtleWJvYXJkRXZlbnQoQ0ZBbGxvY2F0b3JSZWYs
IHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsK
KworSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlVmVuZG9yRGVmaW5lZEV2ZW50KENGQWxs
b2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDhf
dCosIENGSW5kZXgsIElPSElERXZlbnRPcHRpb25CaXRzKTsKKworSU9ISURFdmVudFJlZiBJT0hJ
REV2ZW50Q3JlYXRlRGlnaXRpemVyU3R5bHVzRXZlbnRXaXRoUG9sYXJPcmllbnRhdGlvbihDRkFs
bG9jYXRvclJlZiwgdWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJF
dmVudE1hc2ssIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJ
T0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0
LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOworCitJT0hJREV2
ZW50VHlwZSBJT0hJREV2ZW50R2V0VHlwZShJT0hJREV2ZW50UmVmKTsKKwordm9pZCBJT0hJREV2
ZW50U2V0RmxvYXRWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50RmllbGQsIElPSElERmxv
YXQpOworCitDRkluZGV4IElPSElERXZlbnRHZXRJbnRlZ2VyVmFsdWUoSU9ISURFdmVudFJlZiwg
SU9ISURFdmVudEZpZWxkKTsKK3ZvaWQgSU9ISURFdmVudFNldEludGVnZXJWYWx1ZShJT0hJREV2
ZW50UmVmLCBJT0hJREV2ZW50RmllbGQsIENGSW5kZXgpOworCit2b2lkIElPSElERXZlbnRBcHBl
bmRFdmVudChJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50UmVmLCBJT09wdGlvbkJpdHMpOworCitJ
T0hJREV2ZW50U3lzdGVtQ2xpZW50UmVmIElPSElERXZlbnRTeXN0ZW1DbGllbnRDcmVhdGUoQ0ZB
bGxvY2F0b3JSZWYpOworCisjZGVmaW5lIGtHU0V2ZW50UGF0aEluZm9JblJhbmdlICgxIDw8IDAp
CisjZGVmaW5lIGtHU0V2ZW50UGF0aEluZm9JblRvdWNoICgxIDw8IDEpCisKK2VudW0geworICAg
IGtISURVc2FnZV9LZXlib2FyZEEgPSAweDA0LAorICAgIGtISURVc2FnZV9LZXlib2FyZDEgPSAw
eDFFLAorICAgIGtISURVc2FnZV9LZXlib2FyZDIgPSAweDFGLAorICAgIGtISURVc2FnZV9LZXli
b2FyZDMgPSAweDIwLAorICAgIGtISURVc2FnZV9LZXlib2FyZDQgPSAweDIxLAorICAgIGtISURV
c2FnZV9LZXlib2FyZDUgPSAweDIyLAorICAgIGtISURVc2FnZV9LZXlib2FyZDYgPSAweDIzLAor
ICAgIGtISURVc2FnZV9LZXlib2FyZDcgPSAweDI0LAorICAgIGtISURVc2FnZV9LZXlib2FyZDgg
PSAweDI1LAorICAgIGtISURVc2FnZV9LZXlib2FyZDkgPSAweDI2LAorICAgIGtISURVc2FnZV9L
ZXlib2FyZDAgPSAweDI3LAorICAgIGtISURVc2FnZV9LZXlib2FyZFJldHVybk9yRW50ZXIgPSAw
eDI4LAorICAgIGtISURVc2FnZV9LZXlib2FyZEVzY2FwZSA9IDB4MjksCisgICAga0hJRFVzYWdl
X0tleWJvYXJkRGVsZXRlT3JCYWNrc3BhY2UgPSAweDJBLAorICAgIGtISURVc2FnZV9LZXlib2Fy
ZFRhYiA9IDB4MkIsCisgICAga0hJRFVzYWdlX0tleWJvYXJkU3BhY2ViYXIgPSAweDJDLAorICAg
IGtISURVc2FnZV9LZXlib2FyZEh5cGhlbiA9IDB4MkQsCisgICAga0hJRFVzYWdlX0tleWJvYXJk
RXF1YWxTaWduID0gMHgyRSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRPcGVuQnJhY2tldCA9IDB4
MkYsCisgICAga0hJRFVzYWdlX0tleWJvYXJkQ2xvc2VCcmFja2V0ID0gMHgzMCwKKyAgICBrSElE
VXNhZ2VfS2V5Ym9hcmRCYWNrc2xhc2ggPSAweDMxLAorICAgIGtISURVc2FnZV9LZXlib2FyZFNl
bWljb2xvbiA9IDB4MzMsCisgICAga0hJRFVzYWdlX0tleWJvYXJkUXVvdGUgPSAweDM0LAorICAg
IGtISURVc2FnZV9LZXlib2FyZEdyYXZlQWNjZW50QW5kVGlsZGUgPSAweDM1LAorICAgIGtISURV
c2FnZV9LZXlib2FyZENvbW1hID0gMHgzNiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRQZXJpb2Qg
PSAweDM3LAorICAgIGtISURVc2FnZV9LZXlib2FyZFNsYXNoID0gMHgzOCwKKyAgICBrSElEVXNh
Z2VfS2V5Ym9hcmRGMSA9IDB4M0EsCisgICAga0hJRFVzYWdlX0tleWJvYXJkSG9tZSA9IDB4NEEs
CisgICAga0hJRFVzYWdlX0tleWJvYXJkUGFnZVVwID0gMHg0QiwKKyAgICBrSElEVXNhZ2VfS2V5
Ym9hcmRFbmQgPSAweDRELAorICAgIGtISURVc2FnZV9LZXlib2FyZFJpZ2h0QXJyb3cgPSAweDRG
LAorICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRBcnJvdyA9IDB4NTAsCisgICAga0hJRFVzYWdl
X0tleWJvYXJkRG93bkFycm93ID0gMHg1MSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRVcEFycm93
ID0gMHg1MiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0Q29udHJvbCA9IDB4RTAsCisgICAg
a0hJRFVzYWdlX0tleWJvYXJkTGVmdFNoaWZ0ID0gMHhFMSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9h
cmRMZWZ0QWx0ID0gMHhFMgorfTsKKworV1RGX0VYVEVSTl9DX0VORAorCisjZW5kaWYgLy8gVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
RXZlbnRTZW5kZXJQcm94eS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclBy
b3h5LmgKaW5kZXggNzBkOTQwMTRjOGQ3NTBjYjdkNjU3MDgwNDUyOGUyMDhjYzJmNGE1NC4uMjRm
MjdiMjg5MTdjMGUzNGNiN2RlYjczNjk1OTAzNzdiYTdiZWQ2MSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmgKQEAgLTcxLDcgKzcxLDYgQEAgcHVibGljOgogICAg
IHZvaWQgbW91c2VNb3ZlVG8oZG91YmxlIHgsIGRvdWJsZSB5KTsKICAgICB2b2lkIG1vdXNlU2Ny
b2xsQnkoaW50IHgsIGludCB5KTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIGludCBwaGFzZSwgaW50IG1vbWVudHVtKTsKLSAg
ICB2b2lkIHN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQg
eSwgaW50IHBoYXNlLCBpbnQgbW9tZW50dW0pOwogICAgIHZvaWQgY29udGludW91c01vdXNlU2Ny
b2xsQnkoaW50IHgsIGludCB5LCBib29sIHBhZ2VkKTsKIAogICAgIHZvaWQgbGVhcEZvcndhcmQo
aW50IG1pbGxpc2Vjb25kcyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250
cm9sbGVyLmlkbAppbmRleCBmMzI4MGJiOTRiMDU0MzcwMjQzMDIzZTI1MzM2ZGUxYWZhZTc5Mzlm
Li5kNWI4MDM4NDU5ZTc2Yjk4OTE0OTk4YzYwOWI2ZjM2MTY3NDA3ZDgxIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwKQEAgLTM0LDcgKzM0LDYgQEAg
aW50ZXJmYWNlIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXIgewogICAgIHZvaWQgbW91c2VGb3JjZUNo
YW5nZWQoZG91YmxlIGZvcmNlKTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnkobG9uZyB4LCBsb25n
IHkpOwogICAgIHZvaWQgbW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGxv
bmcgeCwgbG9uZyB5LCBET01TdHJpbmcgcGhhc2UsIERPTVN0cmluZyBtb21lbnR1bSk7Ci0gICAg
dm9pZCBzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhsb25nIHgsIGxvbmcg
eSwgRE9NU3RyaW5nIHBoYXNlLCBET01TdHJpbmcgbW9tZW50dW0pOwogICAgIHZvaWQgY29udGlu
dW91c01vdXNlU2Nyb2xsQnkobG9uZyB4LCBsb25nIHksIG9wdGlvbmFsIGJvb2xlYW4gcGFnZWQp
OwogICAgIG9iamVjdCBjb250ZXh0Q2xpY2soKTsKICAgICB2b2lkIHNjaGVkdWxlQXN5bmNocm9u
b3VzQ2xpY2soKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDBmYWEyZjM5
ODNjZjdhOTFlNzkxZmRmNzQ0MWY0Y2Q5ZDllOWYzNTIuLjRjM2ZlZjg5MzA4NzhlMTRhNTk1M2Jl
MzdiNjJiOTMwOTI1MGY0NjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcApAQCAt
NDgxLDM4ICs0ODEsNiBAQCB2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6Om1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50CiAgICAgV0tCdW5kbGVQYWdl
UG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBF
dmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgp
KTsKIH0KIAotdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzd2lwZUdlc3R1cmVXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIEpTU3RyaW5nUmVmIHBoYXNlU3RyLCBK
U1N0cmluZ1JlZiBtb21lbnR1bVN0cikKLXsKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
RXZlbnRTZW5kZXJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiRXZlbnRTZW5kZXIiKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tNdXRhYmxlRGljdGlvbmFy
eVJlZj4gRXZlbnRTZW5kZXJNZXNzYWdlQm9keShBZG9wdFdLLCBXS011dGFibGVEaWN0aW9uYXJ5
Q3JlYXRlKCkpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHN1Yk1lc3NhZ2VLZXko
QWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlN1Yk1lc3NhZ2UiKSk7Ci0g
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHN1Yk1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcyIpKTsKLSAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJv
ZHkuZ2V0KCksIHN1Yk1lc3NhZ2VLZXkuZ2V0KCksIHN1Yk1lc3NhZ2VOYW1lLmdldCgpKTsKLQot
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB4S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJYIikpOwotICAgIFdLUmV0YWluUHRyPFdLRG91YmxlUmVmPiB4UmVm
KEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKHgpKTsKLSAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2
ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHhLZXkuZ2V0KCksIHhSZWYuZ2V0KCkpOwotCi0g
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHlLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIlkiKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tEb3VibGVSZWY+IHlSZWYo
QWRvcHRXSywgV0tEb3VibGVDcmVhdGUoeSkpOwotICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oRXZl
bnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgeUtleS5nZXQoKSwgeVJlZi5nZXQoKSk7Ci0KLSAg
ICB1aW50NjRfdCBwaGFzZSA9IGNnRXZlbnRQaGFzZUZyb21TdHJpbmcocGhhc2VTdHIpOwotICAg
IHVpbnQ2NF90IG1vbWVudHVtID0gY2dFdmVudE1vbWVudHVtUGhhc2VGcm9tU3RyaW5nKG1vbWVu
dHVtU3RyKTsKLQotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBwaGFzZUtleShBZG9wdFdL
LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiUGhhc2UiKSk7Ci0gICAgV0tSZXRhaW5Q
dHI8V0tVSW50NjRSZWY+IHBoYXNlUmVmKEFkb3B0V0ssIFdLVUludDY0Q3JlYXRlKHBoYXNlKSk7
Ci0gICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCBw
aGFzZUtleS5nZXQoKSwgcGhhc2VSZWYuZ2V0KCkpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IG1vbWVudHVtS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJNb21lbnR1bSIpKTsKLSAgICBXS1JldGFpblB0cjxXS1VJbnQ2NFJlZj4gbW9tZW50dW1SZWYo
QWRvcHRXSywgV0tVSW50NjRDcmVhdGUobW9tZW50dW0pKTsKLSAgICBXS0RpY3Rpb25hcnlTZXRJ
dGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIG1vbWVudHVtS2V5LmdldCgpLCBtb21l
bnR1bVJlZi5nZXQoKSk7Ci0KLSAgICBXS0J1bmRsZVBhZ2VGb3JjZVJlcGFpbnQoSW5qZWN0ZWRC
dW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpKTsgLy8gVHJpZ2dlcnMgYSBzY3JvbGxp
bmcgdHJlZSBjb21taXQuCi0gICAgV0tCdW5kbGVQYWdlUG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5k
bGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdl
dCgpLCBFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpKTsKLX0KLQogdm9pZCBFdmVudFNlbmRp
bmdDb250cm9sbGVyOjpjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHksIGJvb2wg
cGFnZWQpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IEV2ZW50U2VuZGVyTWVzc2Fn
ZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkV2ZW50U2VuZGVy
IikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9F
dmVudFNlbmRpbmdDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAppbmRleCBjMjNjMzZkZmFjNTU4NGY4NTFj
NWY2MGZiNGQ1NjIyY2ZmNDIwMDRhLi4yOGZjZTljZTZjYmU1N2MzZmY4ZThmOTgzZWJjNDJiNGUw
OGIwZDJkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaApAQCAtNTMsNyArNTMsNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBtb3VzZUZvcmNlQ2hhbmdlZChkb3VibGUgZm9yY2UpOwogICAgIHZv
aWQgbW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHkpOwogICAgIHZvaWQgbW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgSlNTdHJpbmdSZWYgcGhhc2Us
IEpTU3RyaW5nUmVmIG1vbWVudHVtKTsKLSAgICB2b2lkIHN3aXBlR2VzdHVyZVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgSlNTdHJpbmdSZWYgcGhhc2UsIEpTU3RyaW5n
UmVmIG1vbWVudHVtKTsKICAgICB2b2lkIGNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCB4LCBp
bnQgeSwgYm9vbCBwYWdlZCk7CiAgICAgSlNWYWx1ZVJlZiBjb250ZXh0Q2xpY2soKTsKICAgICB2
b2lkIGxlYXBGb3J3YXJkKGludCBtaWxsaXNlY29uZHMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbSBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJv
eHlJT1MubW0KaW5kZXggYWM1NGExYzZkNmQ4YzJjNTBlMDgxZGI1YmRiODIxZDNlNjA4ZWMyZC4u
Y2FiM2YxOGIzNjU5ZjQ5MTZiZDUwMDg3OTI4NmQ2YTI3YzBjOWY5MSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlP
Uy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9FdmVu
dFNlbmRlclByb3h5SU9TLm1tCkBAIC0xMDMsMTEgKzEwMyw2IEBAIHZvaWQgRXZlbnRTZW5kZXJQ
cm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQg
eSwgaW50CiAgICAgLy8gV3JpdGUgbWUuCiB9CiAKLXZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c3dp
cGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50LCBpbnQsIGludCwgaW50KQot
ewotICAgIC8vIFdyaXRlIG1lLgotfQotCiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVv
dXNNb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSwgYm9vbCBwYWdlZCkKIHsKICAgICAvLyBXcml0
ZSBtZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDJl
NDliYjVkYTg4ZWJkMzdkYTBlZGY2YjIyZDM1MWY3YTJhZWZkOS4uYzczOGQxZTAxYjljYzc1Yjll
MWM0NWMxNzk3NTdlYjkwMTA5N2VkYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKQEAgLTEyNTgsMjMgKzEyNTgsNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpk
aWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFt
ZQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKFdLU3RyaW5n
SXNFcXVhbFRvVVRGOENTdHJpbmcoc3ViTWVzc2FnZU5hbWUsICJTd2lwZUdlc3R1cmVXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcyIpKSB7Ci0gICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4geEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlgiKSk7
Ci0gICAgICAgICAgICBkb3VibGUgeCA9IFdLRG91YmxlR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tE
b3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5
LCB4S2V5LmdldCgpKSkpOwotCi0gICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
eUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlkiKSk7Ci0gICAg
ICAgICAgICBkb3VibGUgeSA9IFdLRG91YmxlR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tEb3VibGVS
ZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB5S2V5
LmdldCgpKSkpOwotCi0gICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gcGhhc2VL
ZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJQaGFzZSIpKTsKLSAg
ICAgICAgICAgIGludCBwaGFzZSA9IHN0YXRpY19jYXN0PGludD4oV0tVSW50NjRHZXRWYWx1ZShz
dGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdl
Qm9keURpY3Rpb25hcnksIHBoYXNlS2V5LmdldCgpKSkpKTsKLSAgICAgICAgICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBtb21lbnR1bUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIk1vbWVudHVtIikpOwotICAgICAgICAgICAgaW50IG1vbWVudHVtID0gc3Rh
dGljX2Nhc3Q8aW50PihXS1VJbnQ2NEdldFZhbHVlKHN0YXRpY19jYXN0PFdLVUludDY0UmVmPihX
S0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgbW9tZW50dW1L
ZXkuZ2V0KCkpKSkpOwotCi0gICAgICAgICAgICBtX2V2ZW50U2VuZGVyUHJveHktPnN3aXBlR2Vz
dHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKHgsIHksIHBoYXNlLCBtb21lbnR1bSk7Ci0K
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJL
aXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5
ZGI5OGVhOWUwOWI5OWE2ZmM3YTE3MGU5ZTA0MGY0NjZiMmE0NTAwLi41MWZkMjVhNTc2YTUyYjZm
OWM4ZWYyOWQwYjNiZWU2ZDdkYTA0YWQ1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNjMsNiArNjMsMTEgQEAKIAkJMjlBOEZDREQxNDVGMDMzNzAwOTA0NUE2IC8qIEpT
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4RkNFMTM0NUU3MDIxMDA2QUE1QTYgLyogSlNBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCAqLzsgfTsKIAkJMjlBOEZDRTIxNDVGMDM3QjAw
OTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBOEZDRTExNDVGMDM3QjAwOTA0NUE2
IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwICovOyB9OwogCQkyOUE4RkNFNTE0
NUYwNDY0MDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QThGQ0U0MTQ1RjA0
NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tICovOyB9Owor
CQkyREI2MTg3RTFEN0Q1OEQ0MDA5NzhEMTkgLyogQ29yZUdyYXBoaWNzU1BJLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREI2MTg3RDFEN0Q1OEQ0MDA5
NzhEMTkgLyogQ29yZUdyYXBoaWNzU1BJLmggKi87IH07CisJCTJERDRDNDlBMUQ2RTdEM0IwMDA3
Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJERDRDNDk4MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlh
bGl6ZXJNYWMuaCAqLzsgfTsKKwkJMkRENEM0OUIxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2Vy
aWFsaXplck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJERDRDNDk5MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMubW0gKi87
IH07CisJCTJERkE5ODQ4MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERkE5ODQ2
MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaCAqLzsgfTsKKwkJMkRG
QTk4NDkxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERkE5ODQ3MUQ3RjcwQ0Yw
MEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMubW0gKi87IH07CiAJCTJFMzRDOTAwMThC
Njg4MDgwMDAwNjdCQiAvKiBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuYnVuZGxlIGlu
IENvcHkgUGx1Zy1JbnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNTE4
NjIxMUQxNUQ1NDAwMkVCQzAxIC8qIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5idW5k
bGUgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoQ29kZVNpZ25PbkNvcHksIFJlbW92ZUhl
YWRlcnNPbkNvcHksICk7IH07IH07CiAJCTJFNjNFRDhBMTg5MUFEN0UwMDJBN0FGQyAvKiBBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFNjNFRDc1MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcklPUy5tbSAqLzsgfTsKIAkJMkU2M0VEOEIxODkxQUQ3RTAwMkE3QUZDIC8qIEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkU2M0VENzcxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VySU9TLm1tICovOyB9OwpAQCAtMjExLDcgKzIxNiw3IEBACiAJCTBGRUI5MEEz
MTkwNUJDNkEwMDBGREJGMyAvKiBDcmFzaFJlcG9ydGVySW5mby5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENyYXNoUmVwb3J0ZXJJbmZvLm1tOyBwYXRoID0gY29j
b2EvQ3Jhc2hSZXBvcnRlckluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
RUJGODU4MUJCNjFERjIwMDI4NzIyRCAvKiBISURFdmVudEdlbmVyYXRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBISURFdmVudEdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkVCRjg1OTFCQjYxREYyMDAyODcyMkQgLyogSElERXZlbnRHZW5l
cmF0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBISURFdmVu
dEdlbmVyYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEZFQkY4NUIxQkI2
MkEzNzAwMjg3MjJEIC8qIElPS2l0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElPS2l0U1BJLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRUJGODVCMUJCNjJBMzcwMDI4NzIyRCAvKiBJ
T0tpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJT0tpdFNQSS5oOyBwYXRoID0gLi4vVGVzdFJ1bm5l
clNoYXJlZC9zcGkvSU9LaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZF
QkY4NUMxQkI2MkQ0NjAwMjg3MjJEIC8qIFVJS2l0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVJS2l0
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMzMyNjA1MUI3NTM5NjUwMEY4
OUY2MiAvKiBUZXN0T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXN0T3B0aW9ucy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0EyMTFDNzFCQ0ExMDczMDBCMjEwMUYgLyogRm9u
dFdpdGhGZWF0dXJlcy5vdGYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gRm9udFdpdGhGZWF0dXJlcy5vdGY7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yNDAsNyArMjQ1LDEyIEBACiAJCTI5QThGQ0UxMzQ1RTcwMjEw
MDZBQTVBNiAvKiBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBOEZDRTEzNDVFNzAyMTAwNkFB
NUE3IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBOEZDRTQxNDVGMDQ2NDAwOTA0NUE2IC8qIEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyREI2MTg3RDFEN0Q1OEQ0MDA5NzhEMTkgLyogQ29yZUdy
YXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvcmVHcmFwaGlj
c1NQSS5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9zcGkvQ29yZUdyYXBoaWNzU1BJLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQ0UyQ0QxMUI4NDUyNDUwMEM3RjgzMiAv
KiBUZXN0Q29udHJvbGxlckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gVGVzdENvbnRyb2xsZXJDb2NvYS5tbTsgcGF0aCA9IGNvY29hL1Rlc3RDb250cm9s
bGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJERDRDNDk4MUQ2RTdE
M0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gRXZlbnRTZXJpYWxpemVyTWFjLmg7IHBhdGggPSBtYWMvRXZlbnRTZXJpYWxp
emVyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJERDRDNDk5MUQ2RTdEM0Iw
MDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBFdmVudFNlcmlhbGl6ZXJNYWMubW07IHBhdGggPSBtYWMvRXZlbnRT
ZXJpYWxpemVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREZBOTg0NjFE
N0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFNoYXJlZEV2ZW50U3RyZWFtc01hYy5oOyBwYXRoID0gbWFjL1No
YXJlZEV2ZW50U3RyZWFtc01hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREZB
OTg0NzFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1t
OyBwYXRoID0gbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkU2M0VENzUxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJFNjNFRDc2MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFu
ZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTYzRUQ3
NzE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
cklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ3Niw3ICs0ODYsOSBAQAog
CQkwRjczQjU0NzFCQTc4MkZFMDA0QjNFRjQgLyogVUlTY3JpcHRDb250ZXh0ICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyREI2MTg3RjFEN0Q1OTg4MDA5
NzhEMTkgLyogc3BpICovLAogCQkJCTBGNzNCNTRCMUJBNzgzNTAwMDRCM0VGNCAvKiBCaW5kaW5n
cyAqLywKKwkJCQkyREQ0QzQ5NzFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnQgU2VyaWFsaXphdGlv
biAqLywKIAkJCQkwRjczQjU0RTFCQTc4OTU0MDA0QjNFRjQgLyogRGVyaXZlZCBTb3VyY2VzICov
LAogCQkJCTBGMThFNkREMUQ2QjlBQUYwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRleHQuY3BwICov
LAogCQkJCTBGMThFNkRFMUQ2QjlBQUYwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRleHQuaCAqLywK
QEAgLTU1NCw2ICs1NjYsMzUgQEAKIAkJCW5hbWUgPSBBY2Nlc3NpYmlsaXR5OwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMkRCNjE4N0YxRDdENTk4ODAwOTc4RDE5IC8qIHNw
aSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMkRCNjE4
N0QxRDdENThENDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQSS5oICovLAorCQkJCTBGRUJGODVC
MUJCNjJBMzcwMDI4NzIyRCAvKiBJT0tpdFNQSS5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBzcGk7
CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkyREQ0QzQ5NzFENkU3RDNCMDAw
NzM3OUMgLyogRXZlbnQgU2VyaWFsaXphdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJMkRGQTk4NEExRDdGNzlFMDAwQUZGMkM5IC8qIG1hYyAqLywK
KwkJCSk7CisJCQluYW1lID0gIkV2ZW50IFNlcmlhbGl6YXRpb24iOworCQkJcGF0aCA9IC4uL1Rl
c3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKKwkJMkRGQTk4NEExRDdGNzlFMDAwQUZGMkM5IC8qIG1hYyAqLyA9IHsKKwkJ
CWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMkRENEM0OTgxRDZFN0QzQjAw
MDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5oICovLAorCQkJCTJERDRDNDk5MUQ2RTdEM0Iw
MDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMubW0gKi8sCisJCQkJMkRGQTk4NDYxRDdGNzBD
RjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5oICovLAorCQkJCTJERkE5ODQ3MUQ3
RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMubW0gKi8sCisJCQkpOworCQkJ
bmFtZSA9IG1hYzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTJFNjNFRDc0
MTg5MUFDRTkwMDJBN0FGQyAvKiBpb3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKApAQCAtNTkxLDcgKzYzMiw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRkVC
Rjg1ODFCQjYxREYyMDAyODcyMkQgLyogSElERXZlbnRHZW5lcmF0b3IuaCAqLywKIAkJCQkwRkVC
Rjg1OTFCQjYxREYyMDAyODcyMkQgLyogSElERXZlbnRHZW5lcmF0b3IubW0gKi8sCi0JCQkJMEZF
QkY4NUIxQkI2MkEzNzAwMjg3MjJEIC8qIElPS2l0U1BJLmggKi8sCiAJCQkJMkVFNTJEMTMxODkw
QTlGQjAwMTBFRDIxIC8qIFBsYXRmb3JtV2ViVmlld0lPUy5tbSAqLywKIAkJCQkyRUU1MkQxNDE4
OTBBOUZCMDAxMEVEMjEgLyogVGVzdENvbnRyb2xsZXJJT1MubW0gKi8sCiAJCQkJMEZFQkY4NUMx
QkI2MkQ0NjAwMjg3MjJEIC8qIFVJS2l0U1BJLmggKi8sCkBAIC03NzgsNyArODE4LDEwIEBACiAJ
CQlpc2EgPSBQQlhIZWFkZXJzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0
ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQkyREI2MTg3RTFEN0Q1OEQ0MDA5NzhEMTkgLyogQ29y
ZUdyYXBoaWNzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjczQjU1MjFCQTc4OTY4MDA0QjNF
RjQgLyogSlNVSVNjcmlwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTJERkE5ODQ4
MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTJERDRDNDlBMUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtOTg2LDggKzEwMjksMTAgQEAKIAkJCQkwRjczQjU1MTFCQTc4OTY4
MDA0QjNFRjQgLyogSlNVSVNjcmlwdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEYxOEU3MTgxRDZCQzQ1NjAwMjdFNTQ3IC8qIEpTV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBMTg1MTAzQzFCOUFFMEZFMDA3NDRBRUIgLyogT3B0aW9ucy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkyREQ0QzQ5QjFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwNDAxQjlBRTEzMTAwNzQ0QUVCIC8qIFBpeGVsRHVt
cFN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwNDExQjlBRTEzODAwNzQ0QUVC
IC8qIFRlc3RDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJERkE5ODQ5MUQ3Rjcw
Q0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQlBMTg1MTAzQjFCOUFFMEUyMDA3NDRBRUIgLyogVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUExODUxMDQyMUI5QUUxM0UwMDc0NEFFQiAvKiBUZXN0SW52b2NhdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTAzRDFCOUFFMTA2MDA3NDRBRUIgLyogVGVz
dEludm9jYXRpb25DRy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvZWZsL0V2ZW50U2VuZGVyUHJveHlFZmwuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9lZmwvRXZlbnRTZW5kZXJQcm94eUVmbC5jcHAKaW5kZXggMzhhZTA0Zjc5YjY5Y2Ji
Zjc1MGIxMmE5ZWZhYjFjYTVhNTg5ZDVjYi4uN2E2OGM3ZjI5N2RlMjUxZGFhZDMzM2JhMWU0MWE5
OGIxOWVmNjhmNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvRXZlbnRT
ZW5kZXJQcm94eUVmbC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvRXZlbnRT
ZW5kZXJQcm94eUVmbC5jcHAKQEAgLTM5OSwxMSArMzk5LDYgQEAgdm9pZCBFdmVudFNlbmRlclBy
b3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5
LCBpbnQKICAgICBtb3VzZVNjcm9sbEJ5KHgsIHkpOwogfQogCi12b2lkIEV2ZW50U2VuZGVyUHJv
eHk6OnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCwgaW50LCBpbnQs
IGludCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIEV2ZW50U2VuZGVyUHJv
eHk6OmxlYXBGb3J3YXJkKGludCBtaWxsaXNlY29uZHMpCiB7CiAgICAgaWYgKG1fZXZlbnRRdWV1
ZS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVu
dFNlbmRlclByb3h5R3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2Vu
ZGVyUHJveHlHdGsuY3BwCmluZGV4IDAyM2VkYzgxMDVjNTUxMGVhYmZmYzVlMjBjMzNhNDcxNjcx
NjNhM2YuLjNjM2FlMGNlODJlZmM3ODljMzM5ZDBjZWUwMzJlMjBhODQ0NzUxNjEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCkBA
IC00NTEsMTEgKzQ1MSw2IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50CiAgICAgbW91c2VTY3Jv
bGxCeSh4LCB5KTsKIH0KIAotdm9pZCBFdmVudFNlbmRlclByb3h5Ojpzd2lwZUdlc3R1cmVXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQsIGludCwgaW50LCBpbnQpCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLX0KLQogdm9pZCBFdmVudFNlbmRlclByb3h5OjpsZWFwRm9yd2FyZChpbnQg
bWlsbGlzZWNvbmRzKQogewogICAgIGlmIChtX2V2ZW50UXVldWUuaXNFbXB0eSgpKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvSU9LaXRTUEkuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvaW9zL0lPS2l0U1BJLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDdlNjUyYTQyYTBkNmUxNWJhM2EyMmI1ZTA2ZmNlMDM4ODhkODU1NTcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9p
b3MvSU9LaXRTUEkuaAorKysgL2Rldi9udWxsCkBAIC0xLDE5NiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBJT0tpdFNQSV9oCi0jZGVmaW5lIElPS2l0U1BJX2gKLQotI2ltcG9ydCA8d3Rm
L1BsYXRmb3JtLmg+Ci0KLSNpZiBQTEFURk9STShJT1MpCi0KLSNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQotCi0jaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURFdmVudC5oPgotI2ltcG9ydCA8SU9L
aXQvaGlkL0lPSElERXZlbnREYXRhLmg+Ci0jaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURFdmVudFN5
c3RlbUNsaWVudC5oPgotI2ltcG9ydCA8SU9LaXQvaGlkL0lPSElEVXNhZ2VUYWJsZXMuaD4KLQot
I2Vsc2UKLQotV1RGX0VYVEVSTl9DX0JFR0lOCi0KLSNpZmRlZiBfX0xQNjRfXwotdHlwZWRlZiBk
b3VibGUgSU9ISURGbG9hdDsKLSNlbHNlCi10eXBlZGVmIGZsb2F0IElPSElERmxvYXQ7Ci0jZW5k
aWYKLQotZW51bSB7Ci0gICAga0lPSElERXZlbnRPcHRpb25Ob25lID0gMCwKLX07Ci0KLXR5cGVk
ZWYgVUludDMyIElPT3B0aW9uQml0czsKLXR5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudE9wdGlv
bkJpdHM7Ci10eXBlZGVmIHVpbnQzMl90IElPSElERXZlbnRGaWVsZDsKLQotdHlwZWRlZiBzdHJ1
Y3QgX19JT0hJREV2ZW50U3lzdGVtQ2xpZW50ICogSU9ISURFdmVudFN5c3RlbUNsaWVudFJlZjsK
LXR5cGVkZWYgc3RydWN0IF9fSU9ISURFdmVudCAqIElPSElERXZlbnRSZWY7Ci0KLSNkZWZpbmUg
SU9ISURFdmVudEZpZWxkQmFzZSh0eXBlKSAodHlwZSA8PCAxNikKLQotZW51bSB7Ci0gICAga0hJ
RFBhZ2VfS2V5Ym9hcmRPcktleXBhZCAgICAgICA9IDB4MDcsCi0gICAga0hJRFBhZ2VfVmVuZG9y
RGVmaW5lZFN0YXJ0ICAgICA9IDB4RkYwMAotfTsKLQotZW51bSB7Ci0gICAga0lPSElERGlnaXRp
emVyRXZlbnRSYW5nZSAgICAgICA9IDE8PDAsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRUb3Vj
aCAgICAgICA9IDE8PDEsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRQb3NpdGlvbiAgICA9IDE8
PDIsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRJZGVudGl0eSAgICA9IDE8PDUsCi0gICAga0lP
SElERGlnaXRpemVyRXZlbnRBdHRyaWJ1dGUgICA9IDE8PDYsCi0gICAga0lPSElERGlnaXRpemVy
RXZlbnRDYW5jZWwgICAgICA9IDE8PDcsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRTdGFydCAg
ICAgICA9IDE8PDgsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRFc3RpbWF0ZWRBbHRpdHVkZSA9
IDE8PDI4LAotICAgIGtJT0hJRERpZ2l0aXplckV2ZW50RXN0aW1hdGVkQXppbXV0aCA9IDE8PDI5
LAotICAgIGtJT0hJRERpZ2l0aXplckV2ZW50RXN0aW1hdGVkUHJlc3N1cmUgPSAxPDwzMCwKLX07
Ci10eXBlZGVmIHVpbnQzMl90IElPSElERGlnaXRpemVyRXZlbnRNYXNrOwotCi1lbnVtIHsKLSAg
ICBrSU9ISURFdmVudFR5cGVOVUxMLAotICAgIGtJT0hJREV2ZW50VHlwZVZlbmRvckRlZmluZWQs
Ci0gICAga0lPSElERXZlbnRUeXBlS2V5Ym9hcmQgPSAzLAotICAgIGtJT0hJREV2ZW50VHlwZURp
Z2l0aXplciA9IDExLAotfTsKLXR5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudFR5cGU7Ci0KLWVu
dW0gewotICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkVXNhZ2VQYWdlID0gSU9ISURF
dmVudEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVWZW5kb3JEZWZpbmVkKSwKLSAgICBrSU9ISURF
dmVudEZpZWxkVmVuZG9yRGVmaW5lZFJlc2VydmVkLAotICAgIGtJT0hJREV2ZW50RmllbGRWZW5k
b3JEZWZpbmVkUmVzZXJ2ZWQxLAotICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkRGF0
YUxlbmd0aCwKLSAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZERhdGEKLX07Ci0KLWVu
dW0gewotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJYID0gSU9ISURFdmVudEZpZWxkQmFz
ZShrSU9ISURFdmVudFR5cGVEaWdpdGl6ZXIpLAotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6
ZXJZLAotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJNYWpvclJhZGl1cyA9IGtJT0hJREV2
ZW50RmllbGREaWdpdGl6ZXJYICsgMjAsCi0gICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1p
bm9yUmFkaXVzLAotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJJc0Rpc3BsYXlJbnRlZ3Jh
dGVkID0ga0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1ham9yUmFkaXVzICsgNSwKLX07Ci0KLWVu
dW0gewotICAgIGtJT0hJRFRyYW5zZHVjZXJSYW5nZSAgICAgICAgICAgICAgID0gMHgwMDAxMDAw
MCwKLSAgICBrSU9ISURUcmFuc2R1Y2VyVG91Y2ggICAgICAgICAgICAgICA9IDB4MDAwMjAwMDAs
Ci0gICAga0lPSElEVHJhbnNkdWNlckludmVydCAgICAgICAgICAgICAgPSAweDAwMDQwMDAwLAot
ICAgIGtJT0hJRFRyYW5zZHVjZXJEaXNwbGF5SW50ZWdyYXRlZCAgID0gMHgwMDA4MDAwMAotfTsK
LQotZW51bSB7Ci0gICAga0lPSElERGlnaXRpemVyVHJhbnNkdWNlclR5cGVIYW5kID0gMwotfTsK
LXR5cGVkZWYgdWludDMyX3QgSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZTsKLQotZW51bSB7
Ci0gICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplcldpbGxVcGRhdGVNYXNrID0gNzIwOTI0LAot
ICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJEaWRVcGRhdGVNYXNrID0gNzIwOTI1Ci19Owot
Ci1JT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVEaWdpdGl6ZXJFdmVudChDRkFsbG9jYXRv
clJlZiwgdWludDY0X3QsIElPSElERGlnaXRpemVyVHJhbnNkdWNlclR5cGUsIHVpbnQzMl90LCB1
aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJ
T0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3Qs
IGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3Jl
YXRlRGlnaXRpemVyRmluZ2VyRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJf
dCwgdWludDMyX3QsIElPSElERGlnaXRpemVyRXZlbnRNYXNrLCBJT0hJREZsb2F0LCBJT0hJREZs
b2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xl
YW5fdCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOwotCi1JT0hJREV2ZW50UmVmIElPSElERXZlbnRD
cmVhdGVGb3JjZUV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIElPSElE
RmxvYXQsIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREV2ZW50T3B0aW9uQml0cyk7Ci0KLUlP
SElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZUtleWJvYXJkRXZlbnQoQ0ZBbGxvY2F0b3JSZWYs
IHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsK
LQotSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlVmVuZG9yRGVmaW5lZEV2ZW50KENGQWxs
b2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDhf
dCosIENGSW5kZXgsIElPSElERXZlbnRPcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFJlZiBJT0hJ
REV2ZW50Q3JlYXRlRGlnaXRpemVyU3R5bHVzRXZlbnRXaXRoUG9sYXJPcmllbnRhdGlvbihDRkFs
bG9jYXRvclJlZiwgdWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJF
dmVudE1hc2ssIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJ
T0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0
LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOwotCi1JT0hJREV2
ZW50VHlwZSBJT0hJREV2ZW50R2V0VHlwZShJT0hJREV2ZW50UmVmKTsKLQotdm9pZCBJT0hJREV2
ZW50U2V0RmxvYXRWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50RmllbGQsIElPSElERmxv
YXQpOwotCi1DRkluZGV4IElPSElERXZlbnRHZXRJbnRlZ2VyVmFsdWUoSU9ISURFdmVudFJlZiwg
SU9ISURFdmVudEZpZWxkKTsKLXZvaWQgSU9ISURFdmVudFNldEludGVnZXJWYWx1ZShJT0hJREV2
ZW50UmVmLCBJT0hJREV2ZW50RmllbGQsIENGSW5kZXgpOwotCi12b2lkIElPSElERXZlbnRBcHBl
bmRFdmVudChJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50UmVmLCBJT09wdGlvbkJpdHMpOwotCi1J
T0hJREV2ZW50U3lzdGVtQ2xpZW50UmVmIElPSElERXZlbnRTeXN0ZW1DbGllbnRDcmVhdGUoQ0ZB
bGxvY2F0b3JSZWYpOwotCi0jZGVmaW5lIGtHU0V2ZW50UGF0aEluZm9JblJhbmdlICgxIDw8IDAp
Ci0jZGVmaW5lIGtHU0V2ZW50UGF0aEluZm9JblRvdWNoICgxIDw8IDEpCi0KLWVudW0gewotICAg
IGtISURVc2FnZV9LZXlib2FyZEEgPSAweDA0LAotICAgIGtISURVc2FnZV9LZXlib2FyZDEgPSAw
eDFFLAotICAgIGtISURVc2FnZV9LZXlib2FyZDIgPSAweDFGLAotICAgIGtISURVc2FnZV9LZXli
b2FyZDMgPSAweDIwLAotICAgIGtISURVc2FnZV9LZXlib2FyZDQgPSAweDIxLAotICAgIGtISURV
c2FnZV9LZXlib2FyZDUgPSAweDIyLAotICAgIGtISURVc2FnZV9LZXlib2FyZDYgPSAweDIzLAot
ICAgIGtISURVc2FnZV9LZXlib2FyZDcgPSAweDI0LAotICAgIGtISURVc2FnZV9LZXlib2FyZDgg
PSAweDI1LAotICAgIGtISURVc2FnZV9LZXlib2FyZDkgPSAweDI2LAotICAgIGtISURVc2FnZV9L
ZXlib2FyZDAgPSAweDI3LAotICAgIGtISURVc2FnZV9LZXlib2FyZFJldHVybk9yRW50ZXIgPSAw
eDI4LAotICAgIGtISURVc2FnZV9LZXlib2FyZEVzY2FwZSA9IDB4MjksCi0gICAga0hJRFVzYWdl
X0tleWJvYXJkRGVsZXRlT3JCYWNrc3BhY2UgPSAweDJBLAotICAgIGtISURVc2FnZV9LZXlib2Fy
ZFRhYiA9IDB4MkIsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkU3BhY2ViYXIgPSAweDJDLAotICAg
IGtISURVc2FnZV9LZXlib2FyZEh5cGhlbiA9IDB4MkQsCi0gICAga0hJRFVzYWdlX0tleWJvYXJk
RXF1YWxTaWduID0gMHgyRSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRPcGVuQnJhY2tldCA9IDB4
MkYsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkQ2xvc2VCcmFja2V0ID0gMHgzMCwKLSAgICBrSElE
VXNhZ2VfS2V5Ym9hcmRCYWNrc2xhc2ggPSAweDMxLAotICAgIGtISURVc2FnZV9LZXlib2FyZFNl
bWljb2xvbiA9IDB4MzMsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkUXVvdGUgPSAweDM0LAotICAg
IGtISURVc2FnZV9LZXlib2FyZEdyYXZlQWNjZW50QW5kVGlsZGUgPSAweDM1LAotICAgIGtISURV
c2FnZV9LZXlib2FyZENvbW1hID0gMHgzNiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRQZXJpb2Qg
PSAweDM3LAotICAgIGtISURVc2FnZV9LZXlib2FyZFNsYXNoID0gMHgzOCwKLSAgICBrSElEVXNh
Z2VfS2V5Ym9hcmRGMSA9IDB4M0EsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkSG9tZSA9IDB4NEEs
Ci0gICAga0hJRFVzYWdlX0tleWJvYXJkUGFnZVVwID0gMHg0QiwKLSAgICBrSElEVXNhZ2VfS2V5
Ym9hcmRFbmQgPSAweDRELAotICAgIGtISURVc2FnZV9LZXlib2FyZFJpZ2h0QXJyb3cgPSAweDRG
LAotICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRBcnJvdyA9IDB4NTAsCi0gICAga0hJRFVzYWdl
X0tleWJvYXJkRG93bkFycm93ID0gMHg1MSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRVcEFycm93
ID0gMHg1MiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0Q29udHJvbCA9IDB4RTAsCi0gICAg
a0hJRFVzYWdlX0tleWJvYXJkTGVmdFNoaWZ0ID0gMHhFMSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9h
cmRMZWZ0QWx0ID0gMHhFMgotfTsKLQotV1RGX0VYVEVSTl9DX0VORAotCi0jZW5kaWYgLy8gVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKLQotI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKLQotI2VuZGlm
IC8vIElPS2l0U1BJX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2
ZW50U2VuZGVyUHJveHkubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRl
clByb3h5Lm1tCmluZGV4IDE5YjVhMzdiMzZkZDEyYjc0MDIyMWUzNjM3YjA0YjFmNjgyNTE0ZGYu
LjhjNmI5ZGNiMGY1NDAxMzBmM2NiMjJkM2VmNTRjN2YwZmIxZTk0M2MgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0KKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQpAQCAtNDUsMTcgKzQ1LDYg
QEAKIC0gKHZvaWQpX3Bvc3REZWxheWVkOwogQGVuZAogCi0jaWYgZGVmaW5lZChfX0xQNjRfXykK
LXN0cnVjdCBXS1RSQ0dTRXZlbnRSZWNvcmQgewotICAgIGNoYXIgb2Zmc2V0MVsxNTBdOwotICAg
IHVpbnQ4X3QgcGhhc2U7Ci0gICAgY2hhciBvZmZzZXQyWzEzXTsKLSAgICBmbG9hdCBkZWx0YVg7
Ci0gICAgZmxvYXQgZGVsdGFZOwotICAgIGNoYXIgb2Zmc2V0M1s3Nl07Ci19IF9fYXR0cmlidXRl
X18oKHBhY2tlZCkpOwotI2VuZGlmCi0KIEBpbnRlcmZhY2UgRXZlbnRTZW5kZXJTeW50aGV0aWNF
dmVudCA6IE5TRXZlbnQgewogQHB1YmxpYwogICAgIE5TUG9pbnQgX2V2ZW50U2VuZGVyX2xvY2F0
aW9uSW5XaW5kb3c7CkBAIC03MCwxMSArNTksNiBAQCBzdHJ1Y3QgV0tUUkNHU0V2ZW50UmVjb3Jk
IHsKICAgICBzaG9ydCBfZXZlbnRTZW5kZXJfc3VidHlwZTsKICAgICBOU0V2ZW50VHlwZSBfZXZl
bnRTZW5kZXJfdHlwZTsKICAgICBOU1dpbmRvdyAqX2V2ZW50U2VuZGVyX3dpbmRvdzsKLQotCi0j
aWYgZGVmaW5lZChfX0xQNjRfXykKLSAgICBXS1RSQ0dTRXZlbnRSZWNvcmQgX2V2ZW50U2VuZGVy
X2Nnc0V2ZW50UmVjb3JkOwotI2VuZGlmCiB9CiAKIC0gKGlkKWluaXRQcmVzc3VyZUV2ZW50QXRM
b2NhdGlvbjooTlNQb2ludClsb2NhdGlvbiBnbG9iYWxMb2NhdGlvbjooTlNQb2ludClnbG9iYWxM
b2NhdGlvbiBzdGFnZTooTlNJbnRlZ2VyKXN0YWdlIHByZXNzdXJlOihmbG9hdClwcmVzc3VyZSBz
dGFnZVRyYW5zaXRpb246KGZsb2F0KXN0YWdlVHJhbnNpdGlvbiBwaGFzZTooTlNFdmVudFBoYXNl
KXBoYXNlIHRpbWU6KE5TVGltZUludGVydmFsKXRpbWUgZXZlbnROdW1iZXI6KE5TSW50ZWdlcill
dmVudE51bWJlciB3aW5kb3c6KE5TV2luZG93ICopd2luZG93OwpAQCAtMTY3LDEzICsxNTEsNiBA
QCBzdHJ1Y3QgV0tUUkNHU0V2ZW50UmVjb3JkIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNp
ZiBkZWZpbmVkKF9fTFA2NF9fKQotLSAoV0tUUkNHU0V2ZW50UmVjb3JkKV9jZ3NFdmVudFJlY29y
ZAotewotICAgIHJldHVybiBfZXZlbnRTZW5kZXJfY2dzRXZlbnRSZWNvcmQ7Ci19Ci0jZW5kaWYK
LQogLSAoTlNXaW5kb3cgKil3aW5kb3cKIHsKICAgICByZXR1cm4gX2V2ZW50U2VuZGVyX3dpbmRv
dzsKQEAgLTg5MCw1MCArODY3LDQgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBpbnQKICAgICB9CiB9
CiAKLXN0YXRpYyBOU0V2ZW50UGhhc2UgbnNFdmVudFBoYXNlRnJvbUNHRXZlbnRQaGFzZShpbnQg
cGhhc2UpCi17Ci0gICAgc3dpdGNoIChwaGFzZSkgewotICAgIGNhc2UgMDogLy8ga0NHU0dlc3R1
cmVQaGFzZU5vbmUKLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZU5vbmU7Ci0gICAgY2FzZSAx
OiAvLyBrQ0dTR2VzdHVyZVBoYXNlQmVnYW4KLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZUJl
Z2FuOwotICAgIGNhc2UgMjogLy8ga0NHU0dlc3R1cmVQaGFzZUNoYW5nZWQKLSAgICAgICAgcmV0
dXJuIE5TRXZlbnRQaGFzZUNoYW5nZWQ7Ci0gICAgY2FzZSA0OiAvLyBrQ0dTR2VzdHVyZVBoYXNl
RW5kZWQKLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZUVuZGVkOwotICAgIGNhc2UgODogLy8g
a0NHU0dlc3R1cmVQaGFzZUNhbmNlbGxlZAotICAgICAgICByZXR1cm4gTlNFdmVudFBoYXNlQ2Fu
Y2VsbGVkOwotICAgIGNhc2UgMTI4OiAvLyBrQ0dTR2VzdHVyZVBoYXNlTWF5QmVnaW4KLSAgICAg
ICAgcmV0dXJuIE5TRXZlbnRQaGFzZU1heUJlZ2luOwotICAgIH0KLQotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIHJldHVybiBOU0V2ZW50UGhhc2VOb25lOwotfQotCi12b2lkIEV2ZW50
U2VuZGVyUHJveHk6OnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4
LCBpbnQgeSwgaW50IHBoYXNlLCBpbnQgbW9tZW50dW0pCi17Ci0gICAgUmV0YWluUHRyPEV2ZW50
U2VuZGVyU3ludGhldGljRXZlbnQ+IGV2ZW50ID0gYWRvcHROUyhbW0V2ZW50U2VuZGVyU3ludGhl
dGljRXZlbnQgYWxsb2NdIGluaXRdKTsKLQotICAgIC8vICJtYXlCZWdpbiIgYSBzd2lwZSBpcyBh
Y3R1YWxseSBhIHNjcm9sbCB3aGVlbCBldmVudC4KLSAgICBldmVudC0+X2V2ZW50U2VuZGVyX3R5
cGUgPSAocGhhc2UgPT0gMTI4KSA/IE5TU2Nyb2xsV2hlZWwgOiBOU0V2ZW50VHlwZUdlc3R1cmU7
Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9zdWJ0eXBlID0gNjsgLy8ga0lPSElERXZlbnRUeXBl
U2Nyb2xsCi0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9sb2NhdGlvbkluV2luZG93ID0gTlNNYWtl
UG9pbnQobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnkpOwotICAgIGV2ZW50LT5fZXZlbnRTZW5k
ZXJfbG9jYXRpb24gPSAoW21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3Jt
V2luZG93KCkgY29udmVydFJlY3RUb1NjcmVlbjpOU01ha2VSZWN0KG1fcG9zaXRpb24ueCwgbV9w
b3NpdGlvbi55LCAxLCAxKV0ub3JpZ2luKTsKLSAgICBldmVudC0+X2V2ZW50U2VuZGVyX3BoYXNl
ID0gbnNFdmVudFBoYXNlRnJvbUNHRXZlbnRQaGFzZShwaGFzZSk7Ci0gICAgZXZlbnQtPl9ldmVu
dFNlbmRlcl9tb21lbnR1bVBoYXNlID0gbnNFdmVudFBoYXNlRnJvbUNHRXZlbnRQaGFzZShtb21l
bnR1bSk7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl90aW1lc3RhbXAgPSBhYnNvbHV0ZVRpbWVG
b3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKTsKLSAgICBldmVudC0+X2V2ZW50U2VuZGVy
X2V2ZW50TnVtYmVyID0gKytldmVudE51bWJlcjsKLQotI2lmIGRlZmluZWQoX19MUDY0X18pCi0g
ICAgZXZlbnQtPl9ldmVudFNlbmRlcl9jZ3NFdmVudFJlY29yZC5waGFzZSA9IHBoYXNlOwotICAg
IGV2ZW50LT5fZXZlbnRTZW5kZXJfY2dzRXZlbnRSZWNvcmQuZGVsdGFYID0gKGZsb2F0KXg7Ci0g
ICAgZXZlbnQtPl9ldmVudFNlbmRlcl9jZ3NFdmVudFJlY29yZC5kZWx0YVkgPSAoZmxvYXQpeTsK
LSNlbHNlCi0gICAgTlNMb2coQCJTeW50aGV0aWMgc3dpcGUgZ2VzdHVyZXMgYXJlIG5vdCBpbXBs
ZW1lbnRlZCBmb3IgMzItYml0IFdlYktpdFRlc3RSdW5uZXIuIik7Ci0jZW5kaWYKLQotICAgIFtO
U0FwcCBzZW5kRXZlbnQ6ZXZlbnQuZ2V0KCldOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1h
Yy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5t
bQppbmRleCA0ZjZjY2ViYTdkM2ZiNDA5ODVhMDYyMTcyMGNiOGExYzBlYjI0NzVkLi5iMDUwZDBk
ZWFjMGVmOWY2YmE1N2ExMjZiZmE2MDU4MmZmNmQzYmUyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCkBAIC0yNiw3ICsyNiwx
MiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJVSVNjcmlwdENvbnRyb2xsZXIuaCIK
IAorI2ltcG9ydCAiRXZlbnRTZXJpYWxpemVyTWFjLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdlYlZp
ZXcuaCIKKyNpbXBvcnQgIlNoYXJlZEV2ZW50U3RyZWFtc01hYy5oIgorI2ltcG9ydCAiVGVzdENv
bnRyb2xsZXIuaCIKICNpbXBvcnQgIlVJU2NyaXB0Q29udGV4dC5oIgorI2ltcG9ydCA8SmF2YVNj
cmlwdENvcmUvSlNTdHJpbmdSZWZDRi5oPgogCiBuYW1lc3BhY2UgV1RSIHsKIApAQCAtNDEsNCAr
NDYsMzkgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmRvQXN5bmNUYXNrKEpTVmFsdWVSZWYg
Y2FsbGJhY2spCiAgICAgfSk7CiB9CiAKK3N0YXRpYyB2b2lkIHBsYXlCYWNrRXZlbnRzKFVJU2Ny
aXB0Q29udGV4dCAqY29udGV4dCwgTlNTdHJpbmcgKmV2ZW50U3RyZWFtLCBKU1ZhbHVlUmVmIGNh
bGxiYWNrKQoreworICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOworICAgIE5TQXJyYXkgKmV2ZW50
RGljdHMgPSBbTlNKU09OU2VyaWFsaXphdGlvbiBKU09OT2JqZWN0V2l0aERhdGE6W2V2ZW50U3Ry
ZWFtIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSBvcHRpb25zOjAgZXJy
b3I6JmVycm9yXTsKKworICAgIGlmIChlcnJvcikgeworICAgICAgICBOU0xvZyhAIkVSUk9SOiAl
QCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHVuc2lnbmVkIGNhbGxi
YWNrSUQgPSBjb250ZXh0LT5wcmVwYXJlRm9yQXN5bmNUYXNrKGNhbGxiYWNrLCBDYWxsYmFja1R5
cGVOb25QZXJzaXN0ZW50KTsKKworICAgIE5TV2luZG93ICp3aW5kb3cgPSBbVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpIHdpbmRvd107CisK
KyAgICBbRXZlbnRTdHJlYW1QbGF5ZXIgcGxheVN0cmVhbTpldmVudERpY3RzIHdpbmRvdzp3aW5k
b3cgY29tcGxldGlvbkhhbmRsZXI6XiB7CisgICAgICAgIGNvbnRleHQtPmFzeW5jVGFza0NvbXBs
ZXRlKGNhbGxiYWNrSUQpOworICAgIH1dOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6
YmVnaW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBwbGF5QmFja0V2ZW50
cyhtX2NvbnRleHQsIGJlZ2luU3dpcGVCYWNrRXZlbnRTdHJlYW0oKSwgY2FsbGJhY2spOworfQor
Cit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUoSlNWYWx1ZVJlZiBj
YWxsYmFjaykKK3sKKyAgICBwbGF5QmFja0V2ZW50cyhtX2NvbnRleHQsIGNvbXBsZXRlU3dpcGVC
YWNrRXZlbnRTdHJlYW0oKSwgY2FsbGJhY2spOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxl
cjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpTU3RyaW5nUmVmIGV2ZW50U3RyZWFtLCBK
U1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIFJldGFpblB0cjxOU1N0cmluZz4gbnNTdHJpbmcg
PSBhZG9wdE5TKChOU1N0cmluZyAqKUpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGV2ZW50U3RyZWFtKSk7CisgICAgcGxheUJhY2tFdmVudHMobV9jb250ZXh0LCBuc1N0
cmluZy5nZXQoKSwgY2FsbGJhY2spOworfQorCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjcwYjg1ZDdhYjY3ZmVhODRl
MDNmNTk3ZmM3ZTdkZjhhYzBjMmZjNy4uMmI0MGE0NTNlMTE4OWE3MTNjNDFiYTE2NzI0N2MxZTJk
MDBkZTRhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE2LTA5LTA2ICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFN3aXBlIGdlc3R1cmUgdGVzdHMg
ZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMzNzk5
MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogc3dpcGUvYmFzaWMt
Y2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN3aXBlL2Jhc2ljLWNh
Y2hlZC1iYWNrLXN3aXBlLmh0bWw6CisgICAgICAgICogc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5n
LXJlcXVpcmVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzd2lwZS9tYWluLWZyYW1lLXBp
bm5pbmctcmVxdWlyZW1lbnQuaHRtbDoKKyAgICAgICAgKiBzd2lwZS9wdXNoU3RhdGUtY2FjaGVk
LWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN3aXBlL3B1c2hTdGF0ZS1jYWNo
ZWQtYmFjay1zd2lwZS5odG1sOgorICAgICAgICAqIHN3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0
aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzd2lw
ZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1sOgor
ICAgICAgICAqIHN3aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzOgorICAgICAgICAobWVhc3Vy
ZWREdXJhdGlvblNob3VsZEJlTGVzc1RoYW4pOgorICAgICAgICAoc3RhcnRTd2lwZUdlc3R1cmUp
OgorICAgICAgICAoY29tcGxldGVTd2lwZUdlc3R1cmUpOgorICAgICAgICAocGxheUV2ZW50U3Ry
ZWFtKToKKyAgICAgICAgKGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KTogRGVsZXRlZC4K
KyAgICAgICAgKGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQpOiBEZWxldGVkLgorICAgICAg
ICAoZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKGV2ZW50
UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaCk6IERlbGV0ZWQuCisgICAgICAgIChldmVudFF1
ZXVlLl9wcm9jZXNzRXZlbnRRdWV1ZSk6IERlbGV0ZWQuCisgICAgICAgIChldmVudFF1ZXVlLl9w
cm9jZXNzRXZlbnRRdWV1ZVNvb24pOiBEZWxldGVkLgorICAgICAgICAqIHN3aXBlL3N3aXBlLXN0
YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IHN3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMuaHRtbDogUmVtb3ZlZC4KKwog
MjAxNi0wOS0wNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBFbmFibGUgdGhlIDxtZXRlcj4gZWxlbWVudCBvbiBpT1MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5MmM0N2MxZTkwMTY2ZGM4OWVh
ZGJhNGNlM2ZhNzQ4YTIyZjNlZjE4Li5lZTZkZDE0ZGRhY2Y5NjBjYmZjNTZjNmFkMDljZDA2ZjJj
N2Q0MDhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRp
b25zCkBAIC01MTQsMTIgKzUxNCw2IEBAIHdlYmtpdC5vcmcvYi8xNTg2MzkgWyBSZWxlYXNlIFlv
c2VtaXRlIF0gaW1wb3J0ZWQvYmxpbmsvc3RvcmFnZS9pbmRleGVkZGIvYmxvYi1kCiAjIDxyZGFy
Oi8vcHJvYmxlbS8yNTA2MzEyOD4KIFsgU2llcnJhKyBdIG1lZGlhL21lZGlhLWNvbnRyb2xzLWRy
YWctdGltZWxpbmUtc2V0LWNvbnRyb2xzLXByb3BlcnR5Lmh0bWwgWyBQYXNzIFRpbWVvdXQgXQog
Ci0jIDxyZGFyOi8vcHJvYmxlbS8yMzM3OTkzMD4gc3dpcGUgdGVzdHMgY3Jhc2hpbmcKLVsgU2ll
cnJhKyBdIHN3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwgWyBTa2lwIF0KLVsgU2ll
cnJhKyBdIHN3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sIFsgU2tpcCBd
Ci1bIFNpZXJyYSsgXSBzd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbCBbIFNr
aXAgXQotWyBTaWVycmErIF0gc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVyZXNpcy1mYWlsdXJlcy5o
dG1sIFsgU2tpcCBdCi0KICMgSGl0dGluZyAiVGhlIGNlcnRpZmljYXRlIGZvciB0aGlzIHNlcnZl
ciBpcyBpbnZhbGlkIiBsb2FkaW5nIGVycm9yIChub3QgaGFwcGVuaW5nIGluIFdLMSkKIHdlYmtp
dC5vcmcvYi8xNjA0NDUgWyBTaWVycmErIF0gaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy91cGdyYWRlLWluc2VjdXJlLWZl
dGNoLWluLXdvcmtlci5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTYwNDQ1IFsgU2ll
cnJhKyBdIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUt
aW5zZWN1cmUtcmVxdWVzdHMvdXBncmFkZS1pbnNlY3VyZS1mZXRjaC1pbi1tYWluLWZyYW1lLmh0
bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hl
ZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hl
ZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dAppbmRleCBlM2QzZTAwYWI5ZDBiZmZmZTY2OWQ2YWQ4
OWEwMTdhZjU3ZjcwYjg5Li44OWRlY2ZkNGMzNzEyNWNmYjU1OTgxMTk2ODljM2YwYzRhMWQ4ODRl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dp
cGUtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDYgQEAKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAs
IHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2Fu
JykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcpCitzdGFydFN3aXBl
R2VzdHVyZQogZGlkQmVnaW5Td2lwZQotc3dpcGUgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2No
YW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDI1NiAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lw
ZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQorY29tcGxldGVTd2lwZUdlc3R1cmUK
IHdpbGxFbmRTd2lwZQogZGlkRW5kU3dpcGUKIGRpZFJlbW92ZVN3aXBlU25hcHNob3QKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwgYi9M
YXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sCmluZGV4IGNmN2Y3
NWNiMTM5YjU0YjUxNTE3OGEwNzNiOThhZDA2NzNkZGE2ODMuLjg3MWEyYmM2NDZiOGQ0YWU4Njk0
NjM3ZTgwMDNhM2I0YjMyNDVhNmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL2Jhc2lj
LWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2Fj
aGVkLWJhY2stc3dpcGUuaHRtbApAQCAtNiwyOCArNiwxMCBAQCBodG1sIHsKIDwvc3R5bGU+CiA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
LWZ1bmN0aW9uIHN0YXJ0U3dpcGVHZXN0dXJlKCkKLXsKLSAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbygxMDAsIDEwMCk7Ci0KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAs
ICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdi
ZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdjaGFuZ2Vk
Jyk7Ci19Ci0KLWZ1bmN0aW9uIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCkKLXsKLSAgICBldmVudFF1
ZXVlLmVucXVldWVTd2lwZUV2ZW50KDEsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5l
bnF1ZXVlU3dpcGVFdmVudCgyNTYsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1
ZXVlU3dpcGVFdmVudCgwLCAwLCAnZW5kZWQnKTsKLX0KLQogZnVuY3Rpb24gZGlkQmVnaW5Td2lw
ZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRpZEJlZ2luU3dpcGUiKTsKIAotICAgIHNob3VsZEJl
KGZhbHNlLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNob3Vs
ZCBiZSBlbXB0eS4gQm90aCBzY3JvbGwgZXZlbnRzIHNob3VsZCBiZSByZXF1aXJlZCB0byBzdGFy
dCB0aGUgc3dpcGUgYmVjYXVzZSBvZiB0aGUgc3dpcGUtc3RhcnQgaHlzdGVyZXNpcy4iKTsKLQog
ICAgIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCk7CiB9CiAKQEAgLTQyLDcgKzI0LDYgQEAgZnVuY3Rp
b24gZGlkRW5kU3dpcGVDYWxsYmFjaygpCiB7CiAgICAgbG9nKCJkaWRFbmRTd2lwZSIpOwogCi0g
ICAgc2hvdWxkQmUoMCwgZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJFdmVudCBxdWV1
ZSBzaG91bGQgYmUgZW1wdHkuIFRoZSBzd2lwZSBpc24ndCBjb21wbGV0ZSB1bnRpbCB3ZSBzZWUg
dGhlIGVuZCBvZiB0aGUgZ2VzdHVyZS4iKTsKICAgICBzdGFydE1lYXN1cmluZ0R1cmF0aW9uKCJz
bmFwc2hvdFJlbW92YWwiKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvbWFp
bi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N3
aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC1leHBlY3RlZC50eHQKaW5kZXggNjM1
OTc0MDU0ODQ3NmM4ZDA5ZmI0YmIzN2M3NTI0NGI5MGIzOTBkNi4uY2U3NjY4MTk3MjIwOTUzNWUy
NGNlMDczNzBlMzA2YTA5ODI1MGNmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvbWFp
bi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0x
LDIzICsxLDggQEAKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1z
Y3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRl
bHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhh
c2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcp
Ci1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVu
dCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAw
LCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFu
Z2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xs
IGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRh
IDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAn
ZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9s
bCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAx
MCAwLCBwaGFzZSAnY2hhbmdlZCcpCitzdGFydFN3aXBlR2VzdHVyZQorY29tcGxldGVTd2lwZUdl
c3R1cmUKK3N0YXJ0U3dpcGVHZXN0dXJlCiBkaWRCZWdpblN3aXBlCi1zd2lwZSBldmVudCAoZGVs
dGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMjU2IDAsIHBoYXNl
ICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCitjb21w
bGV0ZVN3aXBlR2VzdHVyZQogd2lsbEVuZFN3aXBlCiBkaWRFbmRTd2lwZQogZGlkUmVtb3ZlU3dp
cGVTbmFwc2hvdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5u
aW5nLXJlcXVpcmVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5p
bmctcmVxdWlyZW1lbnQuaHRtbAppbmRleCA2MjE1NTQ0ODRmMDRmZjM5NzViZjJmNDE4ZTE4ZmVj
ODNjNjJmMzViLi5hMzY5YjgyMWI5ZDljMmUwMzc4ZGY2MjcyZWQwMTlmNTJhZTJlYWI5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1l
bnQuaHRtbApAQCAtNiw0OCArNiwyNCBAQCBodG1sIHsKIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3N3aXBlLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHN0
YXJ0U3dpcGVHZXN0dXJlKCkKLXsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDEw
MCk7CiAKK2Z1bmN0aW9uIHJ1blRlc3QoKQorewogICAgIC8vIFRoZSBmaXJzdCBzd2lwZSBzaG91
bGQgZmFpbCBiZWNhdXNlIHdlJ3JlIHNjcm9sbGVkIHRvIHRoZSBtaWRkbGUgb2YgdGhlIGRvY3Vt
ZW50CiAgICAgLy8gYW5kIHRoaXMgaXMgYWxsIGEgc2luZ2xlIGdlc3R1cmUuIFdlIGNhbiBvbmx5
IHN0YXJ0IHN3aXBlcyBpZiB3ZSAqYmVnaW4qCiAgICAgLy8gcGlubmVkIHRvIHRoZSBlZGdlLgot
ICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAg
ZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdiZWdhbicpOwotICAgIGV2ZW50
UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVl
dWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUu
ZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5x
dWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1
ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNj
cm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9s
bEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2
ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50
KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEw
LCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAs
ICdlbmRlZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5jbGVhclRlc3RSdW5uZXJDYWxsYmFja3MoKTsK
LSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkQmVnaW5Td2lwZUNhbGxiYWNrKGRpZEJlZ2lu
U3dpcGVDYWxsYmFjayk7Ci0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFdpbGxFbmRTd2lwZUNh
bGxiYWNrKHdpbGxFbmRTd2lwZUNhbGxiYWNrKTsKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxs
RGlkRW5kU3dpcGVDYWxsYmFjayhkaWRFbmRTd2lwZUNhbGxiYWNrKTsKLSAgICAgICAgdGVzdFJ1
bm5lci5pbnN0YWxsRGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKGRpZFJlbW92ZVN3aXBl
U25hcHNob3RDYWxsYmFjayk7CisgICAgc3RhcnRTd2lwZUdlc3R1cmUoZnVuY3Rpb24gKCkgewor
ICAgICAgICBjb21wbGV0ZVN3aXBlR2VzdHVyZShmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLmNsZWFyVGVzdFJ1bm5lckNhbGxiYWNrcygpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5pbnN0YWxsRGlkQmVnaW5Td2lwZUNhbGxiYWNrKGRpZEJlZ2luU3dpcGVDYWxsYmFjayk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxXaWxsRW5kU3dpcGVDYWxsYmFjayh3aWxs
RW5kU3dpcGVDYWxsYmFjayk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRFbmRT
d2lwZUNhbGxiYWNrKGRpZEVuZFN3aXBlQ2FsbGJhY2spOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsRGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKGRpZFJlbW92ZVN3aXBlU25h
cHNob3RDYWxsYmFjayk7ICAgIAogCi0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgLy8gVGhlIHNlY29uZCBzd2lwZSBzaG91bGQgc3VjY2VlZCBiZWNhdXNlIHdl
IGFyZSBub3cgc2Nyb2xsZWQgdG8gdGhlIGxlZnQgZWRnZS4KLSAgICAgICAgICAgIGV2ZW50UXVl
dWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgICAgICAgICBldmVu
dFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnYmVnYW4nKTsKLSAgICAgICAgICAgIGV2
ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgICAgICB9
LCAwKTsKLSAgICB9KQotfQotCi1mdW5jdGlvbiBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpCi17Ci0g
ICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgxLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2
ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMjU2LCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50
UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ2VuZGVkJyk7CisgICAgICAgICAgICBzdGFy
dFN3aXBlR2VzdHVyZShmdW5jdGlvbiAoKSB7IGNvbXBsZXRlU3dpcGVHZXN0dXJlKCk7IH0pOwor
ICAgICAgICB9KTsKKyAgICB9KTsKIH0KIAogZnVuY3Rpb24gZGlkQmVnaW5Td2lwZU5vdFJlYWNo
ZWRDYWxsYmFjaygpCkBAIC01OCwxMCArMzQsNiBAQCBmdW5jdGlvbiBkaWRCZWdpblN3aXBlTm90
UmVhY2hlZENhbGxiYWNrKCkKIGZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVDYWxsYmFjaygpCiB7CiAg
ICAgbG9nKCJkaWRCZWdpblN3aXBlIik7Ci0KLSAgICBzaG91bGRCZShmYWxzZSwgZXZlbnRRdWV1
ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJFdmVudCBxdWV1ZSBzaG91bGQgYmUgZW1wdHkuIEJvdGgg
c2Nyb2xsIGV2ZW50cyBzaG91bGQgYmUgcmVxdWlyZWQgdG8gc3RhcnQgdGhlIHN3aXBlIGJlY2F1
c2Ugb2YgdGhlIHN3aXBlLXN0YXJ0IGh5c3RlcmVzaXMuIik7Ci0KLSAgICBjb21wbGV0ZVN3aXBl
R2VzdHVyZSgpOwogfQogCiBmdW5jdGlvbiB3aWxsRW5kU3dpcGVDYWxsYmFjaygpCkBAIC03NSw3
ICs0Nyw2IEBAIGZ1bmN0aW9uIGRpZEVuZFN3aXBlQ2FsbGJhY2soKQogewogICAgIGxvZygiZGlk
RW5kU3dpcGUiKTsKIAotICAgIHNob3VsZEJlKDAsIGV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50
cygpLCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5LiBUaGUgc3dpcGUgaXNuJ3QgY29tcGxl
dGUgdW50aWwgd2Ugc2VlIHRoZSBlbmQgb2YgdGhlIGdlc3R1cmUuIik7CiAgICAgc3RhcnRNZWFz
dXJpbmdEdXJhdGlvbigic25hcHNob3RSZW1vdmFsIik7CiB9CiAKQEAgLTEyMSw4ICs5Miw5IEBA
IHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CiAgICAgfQogCiAgICAgLy8gU2Vjb25kIHBh
Z2UgbG9hZGVkLgotICAgIHdpbmRvdy5zY3JvbGxUbygxMDAwLCAwKTsKLSAgICBzdGFydFN3aXBl
R2VzdHVyZSgpOworICAgIHdpbmRvdy5zY3JvbGxUbygxMDAsIDApOworCisgICAgcnVuVGVzdCgp
OwogfTsKIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUv
cHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N3
aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQKaW5kZXggZTNkM2Uw
MGFiOWQwYmZmZmU2NjlkNmFkODlhMDE3YWY1N2Y3MGI4OS4uODlkZWNmZDRjMzcxMjVjZmI1NTk4
MTE5Njg5YzNmMGM0YTFkODg0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0
YXRlLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zd2lw
ZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDYg
QEAKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZl
bnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBw
aGFzZSAnY2hhbmdlZCcpCitzdGFydFN3aXBlR2VzdHVyZQogZGlkQmVnaW5Td2lwZQotc3dpcGUg
ZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDI1
NiAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5k
ZWQnKQorY29tcGxldGVTd2lwZUdlc3R1cmUKIHdpbGxFbmRTd2lwZQogZGlkRW5kU3dpcGUKIGRp
ZFJlbW92ZVN3aXBlU25hcHNob3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hT
dGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sIGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRl
LWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKaW5kZXggNTZkYWRhNDg5MDQyOGM0OWRkMmQ3MWY3Njg2
MDkwNGUwMWY4NDMxZi4uOWE4ZGM5ZDdkOWExMDg4NzU5MjVlZTRkMjg5OTdlNTM4NjJlMzg3MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBl
Lmh0bWwKQEAgLTYsMjggKzYsMTEgQEAgaHRtbCB7CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zd2lwZS10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiBzdGFy
dFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAxMDAp
OwotCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsK
LSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnYmVnYW4nKTsKLSAgICBl
dmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnY2hhbmdlZCcpOwotfQotCi1mdW5j
dGlvbiBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dp
cGVFdmVudCgxLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZl
bnQoMjU2LCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQo
MCwgMCwgJ2VuZGVkJyk7Ci19CiAKIGZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVDYWxsYmFjaygpCiB7
CiAgICAgbG9nKCJkaWRCZWdpblN3aXBlIik7CiAKLSAgICBzaG91bGRCZShmYWxzZSwgZXZlbnRR
dWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJFdmVudCBxdWV1ZSBzaG91bGQgYmUgZW1wdHkuIEJv
dGggc2Nyb2xsIGV2ZW50cyBzaG91bGQgYmUgcmVxdWlyZWQgdG8gc3RhcnQgdGhlIHN3aXBlIGJl
Y2F1c2Ugb2YgdGhlIHN3aXBlLXN0YXJ0IGh5c3RlcmVzaXMuIik7Ci0KICAgICBjb21wbGV0ZVN3
aXBlR2VzdHVyZSgpOwogfQogCkBAIC00Miw3ICsyNSw2IEBAIGZ1bmN0aW9uIGRpZEVuZFN3aXBl
Q2FsbGJhY2soKQogewogICAgIGxvZygiZGlkRW5kU3dpcGUiKTsKIAotICAgIHNob3VsZEJlKDAs
IGV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpLCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVt
cHR5LiBUaGUgc3dpcGUgaXNuJ3QgY29tcGxldGUgdW50aWwgd2Ugc2VlIHRoZSBlbmQgb2YgdGhl
IGdlc3R1cmUuIik7CiAgICAgc3RhcnRNZWFzdXJpbmdEdXJhdGlvbigic25hcHNob3RSZW1vdmFs
Iik7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFt
bWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4
cGVjdGVkLnR4dAppbmRleCBkYzM0ZTkyZDU4ODRlYjhkMWQzMTUxNWI1YTg4NjI3NTZlYjI5MzQy
Li4wMDUwNzU1ZjU3MzdkNGNkN2EzYzI0YzU3NjI0YjdhN2RmMWMyNjNmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGlu
Zy1jcmFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXBy
b2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0xLDcg
KzEsNCBAQAotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9s
bCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAx
IDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFu
Z2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAyNTYgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUg
ZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKK3BsYXlFdmVudFN0cmVhbQorcGxheUV2
ZW50U3RyZWFtCitjb21wbGV0ZVN3aXBlR2VzdHVyZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5o
dG1sIGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxl
LXN3aXBpbmctY3Jhc2guaHRtbAppbmRleCAzNmVmMzlmYjQzZTQzMGRiOTE0NjAzODQ2ZmQyYmY3
ZTMyOTA2MzAxLi4zZjg3YTAzOWVlN2E5M2NiNjRhMmYwZTY1ZDUwY2JhMDk3MDQ2Y2MwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hp
bGUtc3dpcGluZy1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1w
cm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLmh0bWwKQEAgLTYsMzcgKzYsNjcg
QEAgaHRtbCB7CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9zd2lwZS10ZXN0Lmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiBzdGFydFN3aXBlR2VzdHVyZSgpCitmdW5j
dGlvbiBydW5UZXN0KCkKIHsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7
Ci0KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwot
ICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdiZWdhbicpOwotICAgIAot
ICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChnb0JhY2spOworICAgIHBsYXlF
dmVudFN0cmVhbShgW3sKKyAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDAsCisgICAgICAgICJr
Q0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAia0NHRXZlbnRHZXN0
dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMTI4LAorICAgICAgICAid2luZG93TG9jYXRp
b24iIDogIns0MDAsIDMwMH0iCisgICAgICB9LAorICAgICAgeworICAgICAgICAicmVsYXRpdmVU
aW1lTVMiIDogOCwKKyAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNjEsCisgICAg
ICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVT
dGFydEVuZFNlcmllc1R5cGUiIDogNiwKKyAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7MCwg
MH0iCisgICAgICB9LAorICAgICAgeworICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIg
OiA2LAorICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogOCwKKyAgICAgICAgIndpbmRvd0xvY2F0
aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDEs
CisgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAi
a0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xs
WCIgOiAyCisgICAgICB9LAorICAgICAgeworICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogOCwK
KyAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAxLAorICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50
RGVsdGFBeGlzMiIgOiAxLAorICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAg
ICB9XWAsIGdvQmFjayk7CiB9CiAKIGZ1bmN0aW9uIGdvQmFjaygpCiB7CiAgICAgd2luZG93Lmhp
c3RvcnkuYmFjaygpOwogCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKGNv
bnRpbnVlU3dpcGVHZXN0dXJlKTsKKyAgICBzZXRUaW1lb3V0KGNvbnRpbnVlVGVzdCwgMCk7CiB9
CiAKLWZ1bmN0aW9uIGNvbnRpbnVlU3dpcGVHZXN0dXJlKCkKK2Z1bmN0aW9uIGNvbnRpbnVlVGVz
dCgpCiB7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2NoYW5nZWQn
KTsKLQotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChjb21wbGV0ZVN3aXBl
R2VzdHVyZSk7CisgICAgcGxheUV2ZW50U3RyZWFtKGBbCisgICAgICB7CisgICAgICAgICJyZWxh
dGl2ZVRpbWVNUyIgOiAwLAorICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0i
LAorICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDEsCisgICAgICAg
ICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDIwLAorICAgICAgICAia0NHU0V2ZW50VHlw
ZUZpZWxkIiA6IDIyCisgICAgICB9XWAsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgY29tcGxldGVU
ZXN0KCk7CisgICAgICB9KTsKIH0KIAotZnVuY3Rpb24gY29tcGxldGVTd2lwZUdlc3R1cmUoKQor
ZnVuY3Rpb24gY29tcGxldGVUZXN0KCkKIHsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2
ZW50KDEsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgy
NTYsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAw
LCAnZW5kZWQnKTsKLQotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaCh0ZXN0
Q29tcGxldGUpOworICAgIGNvbXBsZXRlU3dpcGVHZXN0dXJlKHRlc3RDb21wbGV0ZSk7CiB9CiAK
IGZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVDYWxsYmFjaygpCkBAIC03OSw3ICsxMDksNyBAQCB3aW5k
b3cub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgICAgICB1cGRhdGVDb250ZW50KCk7CiAKICAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBzdGFydFN3aXBlR2Vz
dHVyZSgpOworICAgICAgICAgICAgcnVuVGVzdCgpOwogICAgICAgICB9LCAwKTsKICAgICB9LCAw
KTsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9yZXNvdXJjZXMvc3dpcGUtdGVz
dC5qcyBiL0xheW91dFRlc3RzL3N3aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzCmluZGV4IGRk
OGU5MDA5ZmZlODQ5NTkwMDk5ZmQxODMyM2JjZTM3M2I3NDA2ODAuLjBjMjM2NWQxMzEzYTE4MDY3
N2I5MWFmMmI0NDkzM2FlNDA4MzhjY2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3Jl
c291cmNlcy9zd2lwZS10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL3N3aXBlL3Jlc291cmNlcy9z
d2lwZS10ZXN0LmpzCkBAIC0xLDUwICsxLDMgQEAKLXZhciBldmVudFF1ZXVlID0gewotICAgIGVu
cXVldWVTY3JvbGxFdmVudDogZnVuY3Rpb24gKHgsIHksIHBoYXNlKSB7Ci0gICAgICAgIHRoaXMu
X3F1ZXVlLnB1c2goZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgbG9nKCJzY3JvbGwgZXZlbnQg
KGRlbHRhICIgKyB4ICsgIiAiICsgeSArICIsIHBoYXNlICciICsgcGhhc2UgKyAiJykiKTsKLSAg
ICAgICAgICAgIHdpbmRvdy5ldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoeCwgeSwgcGhhc2UsICdub25lJyk7Ci0gICAgICAgIH0pOwotICAgICAgICB0
aGlzLl9wcm9jZXNzRXZlbnRRdWV1ZVNvb24oKTsKLSAgICB9LAotCi0gICAgZW5xdWV1ZVN3aXBl
RXZlbnQ6IGZ1bmN0aW9uICh4LCB5LCBwaGFzZSkgewotICAgICAgICB0aGlzLl9xdWV1ZS5wdXNo
KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGxvZygic3dpcGUgZXZlbnQgKGRlbHRhICIgKyB4
ICsgIiAiICsgeSArICIsIHBoYXNlICciICsgcGhhc2UgKyAiJykiKTsKLSAgICAgICAgICAgIHdp
bmRvdy5ldmVudFNlbmRlci5zd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyh4
LCB5LCBwaGFzZSwgJ25vbmUnKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHRoaXMuX3Byb2Nlc3NF
dmVudFF1ZXVlU29vbigpOwotICAgIH0sCi0KLSAgICBoYXNQZW5kaW5nRXZlbnRzOiBmdW5jdGlv
biAoKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9xdWV1ZS5sZW5ndGggIT0gMDsKLSAgICB9LAot
Ci0gICAgY2FsbEFmdGVyRXZlbnREaXNwYXRjaDogZnVuY3Rpb24gKGNhbGxiYWNrKSB7Ci0gICAg
ICAgIHZhciBpbnRlcnZhbCA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsgCi0gICAgICAgICAg
ICBpZiAoIWV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpKSB7Ci0gICAgICAgICAgICAgICAg
Y2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfSwgMCk7Ci0gICAgfSwKLQotICAgIF9xdWV1ZTogW10sCi0K
LSAgICBfcHJvY2Vzc0V2ZW50UXVldWU6IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgaWYgKCF0aGlz
Ll9xdWV1ZS5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIGl0ZW0g
PSB0aGlzLl9xdWV1ZS5zaGlmdCgpOwotICAgICAgICBpdGVtKCk7Ci0gICAgICAgIHRoaXMuX3By
b2Nlc3NFdmVudFF1ZXVlU29vbigpOwotICAgIH0sCi0KLSAgICBfcHJvY2Vzc0V2ZW50UXVldWVT
b29uOiBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9wcm9jZXNzaW5n
VGltZW91dCk7Ci0gICAgICAgIHRoaXMuX3Byb2Nlc3NpbmdUaW1lb3V0ID0gc2V0VGltZW91dCh0
aGlzLl9wcm9jZXNzRXZlbnRRdWV1ZS5iaW5kKHRoaXMpLCAwKTsKLSAgICB9Ci19Ci0KIGZ1bmN0
aW9uIHNob3VsZEJlKGV4cGVjdGVkLCBhY3R1YWwsIG1lc3NhZ2UpCiB7CiAgICAgaWYgKGV4cGVj
dGVkICE9IGFjdHVhbCkKQEAgLTg0LDQgKzM3LDM3IEBAIGZ1bmN0aW9uIG1lYXN1cmVkRHVyYXRp
b25TaG91bGRCZUxlc3NUaGFuKGtleSwgdGltZUluTVMsIG1lc3NhZ2UpCiAgICAgdmFyIGR1cmF0
aW9uID0gRGF0ZS5ub3coKSAtIHdpbmRvdy5sb2NhbFN0b3JhZ2Vba2V5ICsgInN3aXBlU3RhcnRU
aW1lIl07CiAgICAgaWYgKGR1cmF0aW9uID49IHRpbWVJbk1TKQogICAgICAgICBsb2coIkZhaWx1
cmUuICIgKyBtZXNzYWdlICsgIiAoZXhwZWN0ZWQ6ICIgKyB0aW1lSW5NUyArICIsIGFjdHVhbDog
IiArIGR1cmF0aW9uICsgIikiKTsKLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9CisK
K2Z1bmN0aW9uIHN0YXJ0U3dpcGVHZXN0dXJlKGNhbGxiYWNrKQoreworICAgIGxvZygic3RhcnRT
d2lwZUdlc3R1cmUiKTsKKyAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAoZnVuY3Rp
b24oKSB7CisgICAgICAgIHVpQ29udHJvbGxlci5iZWdpbkJhY2tTd2lwZShmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgIH0p
OworICAgIH0pKCk7YCwgY2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkge30pOworfQorCitmdW5jdGlv
biBjb21wbGV0ZVN3aXBlR2VzdHVyZShjYWxsYmFjaykKK3sKKyAgICBsb2coImNvbXBsZXRlU3dp
cGVHZXN0dXJlIik7CisgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgKGZ1bmN0aW9u
KCkgeworICAgICAgICB1aUNvbnRyb2xsZXIuY29tcGxldGVCYWNrU3dpcGUoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICB9
KTsKKyAgICB9KSgpO2AsIGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9KTsKK30KKworZnVuY3Rp
b24gcGxheUV2ZW50U3RyZWFtKHN0cmVhbSwgY2FsbGJhY2spCit7CisgICAgbG9nKCJwbGF5RXZl
bnRTdHJlYW0iKTsKKyAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAoZnVuY3Rpb24o
KSB7CisgICAgICAgIHVpQ29udHJvbGxlci5wbGF5QmFja0V2ZW50U3RyZWFtKFxgJHtzdHJlYW19
XGAsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxl
dGUoKTsKKyAgICAgICAgfSk7CisgICAgfSkoKTtgLCBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7
fSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJl
c2lzLWZhaWx1cmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N3aXBlL3N3aXBlLXN0YXJ0
LWh5c3RlcmVzaXMtZmFpbHVyZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1YTQ4MGE5ODA0Y2UyMTkxNGM4Zjk4MmY1YmMwMTE5ZTdkZWJlNTc5Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3N3aXBl
L3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMjIgKzAsMCBAQAotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21heWJl
Z2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2
ZW50IChkZWx0YSAwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAw
LCBwaGFzZSAnZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21heWJlZ2lu
JykKLXNjcm9sbCBldmVudCAoZGVsdGEgMiAyLCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50
IChkZWx0YSAwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAwLCBw
aGFzZSAnZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykK
LXNjcm9sbCBldmVudCAoZGVsdGEgMCAyLCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChk
ZWx0YSAwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAwLCBwaGFz
ZSAnZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNj
cm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0
YSAwIDIsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAn
ZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9s
bCBldmVudCAoZGVsdGEgMyAxLCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAw
IDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5k
ZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVyZXNpcy1mYWlsdXJlcy5odG1s
IGIvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVyZXNpcy1mYWlsdXJlcy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNzVlNjdiOTc0MTIzOTJjZGIxNDQ3ZWE1
N2MyYjA1NTUyM2M1ZjA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExOSArMCwwIEBACi08aGVhZD4KLTxzdHlsZT4KLWh0
bWwgewotICAgIGZvbnQtc2l6ZTogMzJwdDsKLX0KLTwvc3R5bGU+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3N3aXBlLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGRvU2hv
cnRTd2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAw
KTsKLQotICAgIC8vIFRvdGFsIGRlbHRhIG9mIDEwLCAwOyBzaG91bGQgbm90IGJlIGVub3VnaCB0
byBzdGFydCBhIHN3aXBlLgotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwg
J21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2Jl
Z2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2NoYW5nZWQn
KTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnZW5kZWQnKTsKLQot
ICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChkb0RpYWdvbmFsU3dpcGVHZXN0
dXJlKTsKLX0KLQotZnVuY3Rpb24gZG9EaWFnb25hbFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgLy8g
VG90YWwgZGVsdGEgb2YgMjAsIDIwOyB0aGlzIGlzIG9yZGluYXJpbHkgc3VmZmljaWVudCBtYWdu
aXR1ZGUgdG8gc3RhcnQgYSBzd2lwZSwKLSAgICAvLyBidXQgaXMgdG9vIGRpYWdvbmFsIHRvIHN0
YXJ0IGEgc3dpcGUuCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5
YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgyLCAyLCAnYmVnYW4n
KTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnY2hhbmdlZCcpOwot
ICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdlbmRlZCcpOwotCi0gICAg
ZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKGRvVmVydGljYWxTd2lwZUdlc3R1cmUp
OwotfQotCi1mdW5jdGlvbiBkb1ZlcnRpY2FsU3dpcGVHZXN0dXJlKCkKLXsKLSAgICAvLyBUb3Rh
bCBkZWx0YSBvZiAwLCAyMDsgdGhpcyBpcyBvcmRpbmFyaWx5IHN1ZmZpY2llbnQgbWFnbml0dWRl
IHRvIHN0YXJ0IGEgc3dpcGUsCi0gICAgLy8gYnV0IGlzIGNvbXBsZXRlbHkgdmVydGljYWwsIHNv
IHdlIHdvbid0IHN0YXJ0IGEgc3dpcGUuCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVu
dCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgw
LCAyLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAn
Y2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdlbmRl
ZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKGRvSG9yaXpvbnRh
bFRoZW5WZXJ0aWNhbFN3aXBlR2VzdHVyZSk7Ci19Ci0KLWZ1bmN0aW9uIGRvSG9yaXpvbnRhbFRo
ZW5WZXJ0aWNhbFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgLy8gVG90YWwgZGVsdGEgb2YgMTAsIDIw
OyB0aGlzIGlzIG9yZGluYXJpbHkgc3VmZmljaWVudCBtYWduaXR1ZGUgdG8gc3RhcnQgYSBzd2lw
ZSwKLSAgICAvLyBidXQgaXMgdG9vIHZlcnRpY2FsLCBzbyB3ZSB3b24ndCBzdGFydCBhIHN3aXBl
LgotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0g
ICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMiwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1
ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnZW5kZWQnKTsKLQotICAgIGV2ZW50UXVldWUu
Y2FsbEFmdGVyRXZlbnREaXNwYXRjaChkb1JlZ3VsYXJTd2lwZUdlc3R1cmUpOwotfQotCi1mdW5j
dGlvbiBkb1JlZ3VsYXJTd2lwZUdlc3R1cmUoKQotewotICAgIC8vIFN3YXAgaW4gYSBkaWZmZXJl
bnQgY2FsbGJhY2sgdGhhdCBtYWtlcyBzdXJlIHdlICpkbyogcmVhY2ggZGlkQmVnaW5Td2lwZS4K
LSAgICB0ZXN0UnVubmVyLmNsZWFyVGVzdFJ1bm5lckNhbGxiYWNrcygpOwotICAgIHZhciBzYXdE
aWRCZWdpblN3aXBlID0gZmFsc2U7Ci0gICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkQmVnaW5Td2lw
ZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgc2F3RGlkQmVnaW5Td2lwZSA9IHRydWU7
Ci0gICAgICAgIC8vIE5lZWQgYSBzd2lwZS1lbmQgZXZlbnQgdG8gY2xlYW4gdXAuCi0gICAgICAg
IGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0gICAgfSk7Ci0K
LSAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRSZW1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2soZnVu
Y3Rpb24gKCkgewotICAgICAgICBzaG91bGRCZSh0cnVlLCBzYXdEaWRCZWdpblN3aXBlLCAiVGhl
IGxhc3QgZ2VzdHVyZSBzaG91bGQgc3RhcnQgYSBzd2lwZSwgYmVjYXVzZSBpdCBpcyBzdWZmaWNp
ZW50IG1hZ25pdHVkZSBhbmQgaW4gdGhlIGNvcnJlY3QgZGlyZWN0aW9uLiIpCi0gICAgICAgIHRl
c3RDb21wbGV0ZSgpOwotICAgIH0pOwotCi0gICAgLy8gVG90YWwgZGVsdGEgb2YgMzAsIDEwOyB0
aGlzIHNob3VsZCBzdGFydCBhIHN3aXBlIGFzIHVzdWFsLgotICAgIGV2ZW50UXVldWUuZW5xdWV1
ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Ny
b2xsRXZlbnQoMywgMSwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZl
bnQoMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgw
LCAwLCAnZW5kZWQnKTsKLX0KLQotZnVuY3Rpb24gZGlkQmVnaW5Td2lwZU5vdFJlYWNoZWRDYWxs
YmFjaygpCi17Ci0gICAgbG9nKCJGYWlsdXJlLiBTaG91bGQgbmV2ZXIgYmVnaW4gYSBzd2lwZSwg
YmVjYXVzZSBhbGwgb2YgdGhlIGF0dGVtcHRlZCBzd2lwZXMgc2hvdWxkIGZhaWwgZHVlIHRvIHRo
ZSBzd2lwZS1zdGFydCBoeXN0ZXJlc2lzLiIpOwotfQotCi1mdW5jdGlvbiBpc0ZpcnN0UGFnZSgp
Ci17Ci0gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoInNlY29uZCIpID09
IC0xOwotfQotCi13aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgewotICAgIGlmICghd2luZG93
LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICBkb2N1bWVudC5i
b2R5LmlubmVySFRNTCA9ICJUaGlzIHRlc3QgbXVzdCBiZSBydW4gaW4gV2ViS2l0VGVzdFJ1bm5l
ci4iOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZG9jdW1lbnQuYm9keS5pbm5lckhU
TUwgPSBpc0ZpcnN0UGFnZSgpID8gImZpcnN0IiA6ICJzZWNvbmQiOwotCi0gICAgaWYgKGlzRmly
c3RQYWdlKCkpIHsKLSAgICAgICAgaW5pdGlhbGl6ZVN3aXBlVGVzdCgpOwotCi0gICAgICAgIHRl
c3RSdW5uZXIuaW5zdGFsbERpZEJlZ2luU3dpcGVDYWxsYmFjayhkaWRCZWdpblN3aXBlTm90UmVh
Y2hlZENhbGxiYWNrKTsKLQotICAgICAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgi
V2ViS2l0VXNlc1BhZ2VDYWNoZVByZWZlcmVuY2VLZXkiLCAxKTsKLSAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi0g
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyAKLSAgICAgICAgICAgIHdpbmRvdy5sb2Nh
dGlvbi5ocmVmID0gd2luZG93LmxvY2F0aW9uLmhyZWYgKyAiP3NlY29uZCI7Ci0gICAgICAgIH0s
IDApOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZG9TaG9ydFN3aXBlR2VzdHVyZSgp
OwotfTsKLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08L2JvZHk+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288256</attachid>
            <date>2016-09-08 01:22:33 -0700</date>
            <delta_ts>2016-10-06 10:57:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161675-20160908012006.patch</filename>
            <type>text/plain</type>
            <size>109424</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1NTgxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTcwNzhjNTg2MTZjMTU4YzBiMmNjMTk5ZjA2NDNjM2Ex
Mzk2OWIyYi4uNmQzNzFkY2I0MTk5OGZkZDNjYTQ0NjY1MWZlYTFkZTUyMTFlMDM3NSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDE2LTA5LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFN3aXBlIGdlc3R1cmUgdGVzdHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRm
b3JtUGxheUJhY2tFdmVudFN0cmVhbSk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6YmVnaW5CYWNrU3dpcGUpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNv
bXBsZXRlQmFja1N3aXBlKToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFs
aXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbTog
QWRkZWQuCisgICAgICAgIChldmVudElzT2ZUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZlR5cGVz
KToKKyAgICAgICAgKGV2ZW50SXNPZkdlc3R1cmVUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZkdl
c3R1cmVUeXBlcyk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBkaWN0aW9uYXJ5Rm9yRXZl
bnQ6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBjcmVhdGVF
dmVudEZvckRpY3Rpb25hcnk6aW5XaW5kb3c6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgr
W0V2ZW50U2VyaWFsaXplciBwbGF5RXZlbnRTdHJlYW06aW5XaW5kb3c6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFj
L1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1bm5lclNo
YXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTogQWRk
ZWQuCisgICAgICAgIChiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKToKKyAgICAgICAgKGNvbXBs
ZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0pOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICog
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF5QmFja0V2ZW50U3RyZWFtKToK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZSk6CisgICAg
ICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUpOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbSk6
CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1DbGVhckFsbENhbGxi
YWNrcyk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9zcGkv
Q29yZUdyYXBoaWNzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvc3Bp
L0lPS2l0U1BJLmg6IFJlbmFtZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tp
dFNQSS5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6cGxheUJhY2tFdmVudHMpOgor
ICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKToKKyAgICAg
ICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZSk6CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKToK
KwogMjAxNi0wOS0wNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydCByMjA1NTMzLgpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KaW5kZXggNTZlMjA3N2E0
YjJhMjBjMWRiOTFkYzlhMTBiZGRlNWYyMmNjNjQwYi4uY2E4NmVmN2UxN2E4ZDc2MTgxZmRlNDBj
ZmNlZTY2N2I4ZDdlMDU5YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlT
Y3JpcHRDb250cm9sbGVyTWFjLm1tCkBAIC00Myw2ICs0MywxOCBAQCB2b2lkIFVJU2NyaXB0Q29u
dHJvbGxlcjo6ZG9Bc3luY1Rhc2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKICAgICB9KTsKIH0KIAor
dm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJh
Y2spCit7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZShK
U1ZhbHVlUmVmIGNhbGxiYWNrKQoreworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxh
dGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKQoreworfQor
CiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVu
bmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmggYi9U
b29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvRXZlbnRTZXJpYWxp
emVyTWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M2ZGI4NjY5MTkxNThmNDE3MTRkODA2OTk3ZWQ3YTVkOTcx
MTM0NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJp
YWxpemF0aW9uL21hYy9FdmVudFNlcmlhbGl6ZXJNYWMuaApAQCAtMCwwICsxLDUxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgor
I2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK0Bp
bnRlcmZhY2UgRXZlbnRTZXJpYWxpemVyIDogTlNPYmplY3QKKworKyAoTlNEaWN0aW9uYXJ5ICop
ZGljdGlvbmFyeUZvckV2ZW50OihDR0V2ZW50UmVmKWV2ZW50IHJlbGF0aXZlVG9UaW1lOihDR0V2
ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRpbWVzdGFtcDsKKworKyAoQ0dFdmVudFJlZiljcmVhdGVF
dmVudEZvckRpY3Rpb25hcnk6KE5TRGljdGlvbmFyeSAqKWRpY3QgaW5XaW5kb3c6KE5TV2luZG93
ICopd2luZG93IHJlbGF0aXZlVG9UaW1lOihDR0V2ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRpbWVz
dGFtcDsKKworQGVuZAorCitAaW50ZXJmYWNlIEV2ZW50U3RyZWFtUGxheWVyIDogTlNPYmplY3Qg
eworICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheSAqPiBfcmVtYWluaW5nRXZlbnREaWN0czsK
KyAgICBSZXRhaW5QdHI8TlNXaW5kb3cgKj4gX3dpbmRvdzsKKyAgICBCbG9ja1B0cjx2b2lkICgp
PiBfY29tcGxldGlvbkhhbmRsZXI7CisgICAgdWludDY0X3QgX3N0YXJ0VGltZTsKK30KKworKyAo
dm9pZClwbGF5U3RyZWFtOihOU0FycmF5PE5TRGljdGlvbmFyeSAqPiAqKWV2ZW50RGljdHMgd2lu
ZG93OihOU1dpbmRvdyAqKXdpbmRvdyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSgpKWNvbXBs
ZXRpb25IYW5kbGVyOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbSBi
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9FdmVudFNlcmlh
bGl6ZXJNYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjUxODAyNDY4ZTVlYWViZDJmNjJkNzU2YjJjNTg1ODNi
YWQwYzA5MAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRT
ZXJpYWxpemF0aW9uL21hYy9FdmVudFNlcmlhbGl6ZXJNYWMubW0KQEAgLTAsMCArMSwzMjMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkV2ZW50U2VyaWFsaXpl
ck1hYy5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJDb3JlR3JhcGhpY3NTUEku
aCIKKyNpbXBvcnQgIklPS2l0U1BJLmgiCisjaW1wb3J0IDxhbGdvcml0aG0+CisjaW1wb3J0IDxt
YWNoL21hY2hfdGltZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCisjZGVmaW5lIE1P
VVNFX0VWRU5UX1RZUEVTIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50TGVmdE1vdXNlRG93
biwgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRMZWZ0TW91c2VVcCwgXAorICAgIChDR1NF
dmVudFR5cGUpa0NHRXZlbnRSaWdodE1vdXNlRG93biwgXAorICAgIChDR1NFdmVudFR5cGUpa0NH
RXZlbnRSaWdodE1vdXNlVXAsIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50TW91c2VNb3Zl
ZCwgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRMZWZ0TW91c2VEcmFnZ2VkLCBcCisgICAg
KENHU0V2ZW50VHlwZSlrQ0dFdmVudFJpZ2h0TW91c2VEcmFnZ2VkLCBcCisgICAgKENHU0V2ZW50
VHlwZSlrQ0dFdmVudE90aGVyTW91c2VEb3duLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVu
dE90aGVyTW91c2VVcCwgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRPdGhlck1vdXNlRHJh
Z2dlZAorCisjZGVmaW5lIEtFWV9FVkVOVF9UWVBFUyBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dF
dmVudEtleURvd24sIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50S2V5VXAsIFwKKyAgICAo
Q0dTRXZlbnRUeXBlKWtDR0V2ZW50RmxhZ3NDaGFuZ2VkCisKKyNkZWZpbmUgR0VTVFVSRV9FVkVO
VF9UWVBFUyBcCisgICAga0NHU0V2ZW50R2VzdHVyZSwgXAorICAgIGtDR1NFdmVudEZsdWlkVG91
Y2hHZXN0dXJlLCBcCisgICAga0NHU0V2ZW50RG9ja0NvbnRyb2wKKworYm9vbCBldmVudElzT2ZU
eXBlKENHRXZlbnRSZWYgZXZlbnQsIENHU0V2ZW50VHlwZSB0eXBlKQoreworICAgIHJldHVybiAo
Q0dTRXZlbnRUeXBlKUNHRXZlbnRHZXRUeXBlKGV2ZW50KSA9PSB0eXBlOworfQorCitib29sIGV2
ZW50SXNPZlR5cGVzKENHRXZlbnRSZWYpIHsgcmV0dXJuIGZhbHNlOyB9CisKK3RlbXBsYXRlPHR5
cGVuYW1lIC4uLiBUeXBlcz4KK2Jvb2wgZXZlbnRJc09mVHlwZXMoQ0dFdmVudFJlZiBldmVudCwg
Q0dTRXZlbnRUeXBlIGZpcnN0LCBUeXBlcyAuLi4gcmVzdCkKK3sKKyAgICByZXR1cm4gZXZlbnRJ
c09mVHlwZShldmVudCwgZmlyc3QpIHx8IGV2ZW50SXNPZlR5cGVzKGV2ZW50LCByZXN0Li4uKTsK
K30KKworYm9vbCBldmVudElzT2ZHZXN0dXJlVHlwZShDR0V2ZW50UmVmIGV2ZW50LCBJT0hJREV2
ZW50VHlwZSB0eXBlKQoreworICAgIHJldHVybiAoSU9ISURFdmVudFR5cGUpQ0dFdmVudEdldElu
dGVnZXJWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dFdmVudEdlc3R1cmVISURUeXBlKSA9PSB0eXBlOwor
fQorCitib29sIGV2ZW50SXNPZkdlc3R1cmVUeXBlcyhDR0V2ZW50UmVmKSB7IHJldHVybiBmYWxz
ZTsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSAuLi4gVHlwZXM+Citib29sIGV2ZW50SXNPZkdlc3R1
cmVUeXBlcyhDR0V2ZW50UmVmIGV2ZW50LCBJT0hJREV2ZW50VHlwZSBmaXJzdCwgVHlwZXMgLi4u
IHJlc3QpCit7CisgICAgaWYgKCFldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9U
WVBFUykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZXZlbnRJc09mR2VzdHVy
ZVR5cGUoZXZlbnQsIGZpcnN0KSB8fCBldmVudElzT2ZHZXN0dXJlVHlwZXMoZXZlbnQsIHJlc3Qu
Li4pOworfQorCisjZGVmaW5lIEZPUl9FQUNIX0NHRVZFTlRfSU5URUdFUl9GSUVMRChtYWNybykg
XAorICAgIG1hY3JvKHRydWUsIGtDR1NFdmVudFR5cGVGaWVsZCkgXAorICAgIFwKKyAgICBtYWNy
byhldmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpv
b20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMSkgXAorICAgIG1hY3JvKGV2ZW50SXNP
ZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Nj
cm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZl
bnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxF
dmVudERlbHRhQXhpczMpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2
ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250
aW51b3VzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9s
bFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudE1vbWVudHVtUGhhc2Up
IFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWws
IGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxKSBcCisg
ICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dT
RXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMikgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50
Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczMpIFwKKyAgICBtYWNybyhl
dmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20p
LCBrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQpIFwKKyAgICBtYWNybyhldmVudElzT2ZU
eXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3Jv
bGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlw
ZXMoZXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudEJ1dHRvbk51bWJlcikg
XAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBNT1VTRV9FVkVOVF9UWVBFUyksIGtD
R01vdXNlRXZlbnRDbGlja1N0YXRlKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQs
IE1PVVNFX0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudERlbHRhWCkgXAorICAgIG1hY3JvKGV2
ZW50SXNPZlR5cGVzKGV2ZW50LCBNT1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnREZWx0
YVkpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMp
LCBrQ0dNb3VzZUV2ZW50U3VidHlwZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50
LCBNT1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnROdW1iZXIpIFwKKyAgICBcCisgICAg
bWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIEtFWV9FVkVOVF9UWVBFUyksIGtDR0tleWJvYXJk
RXZlbnRBdXRvcmVwZWF0KSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIEtFWV9F
VkVOVF9UWVBFUyksIGtDR0tleWJvYXJkRXZlbnRLZXlib2FyZFR5cGUpIFwKKyAgICBtYWNybyhl
dmVudElzT2ZUeXBlcyhldmVudCwgS0VZX0VWRU5UX1RZUEVTKSwga0NHS2V5Ym9hcmRFdmVudEtl
eWNvZGUpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIEdFU1RVUkVf
RVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVISURUeXBlKSBcCisgICAgbWFjcm8oZXZlbnRJ
c09mVHlwZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVCZWhh
dmlvcikgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZ
UEVTKSwga0NHRXZlbnRHZXN0dXJlRmxhdm9yKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMo
ZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVNYXNrKSBcCisgICAg
bWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVu
dEdlc3R1cmVQaGFzZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJF
X0VWRU5UX1RZUEVTKSwga0NHRXZlbnRHZXN0dXJlU3RhZ2UpIFwKKyAgICBcCisgICAgbWFjcm8o
ZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVNjcm9sbCksIGtDR0V2
ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdl
c3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVu
dFN3aXBlR2VzdHVyZUZsYWdCaXRzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUo
ZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3
aXBlTWFzaykgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURF
dmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZU1vdGlvbikgXAor
ICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZp
Z2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZhbHVlKSBcCisgICAgbWFjcm8oZXZl
bnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSks
IGtDR0V2ZW50R2VzdHVyZUZsYXZvcikgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0
dXJlVHlwZXMoZXZlbnQsIGtDR0hJREV2ZW50VHlwZUdlc3R1cmVTdGFydGVkLCBrQ0dISURFdmVu
dFR5cGVHZXN0dXJlRW5kZWQpLCBrQ0dFdmVudEdlc3R1cmVTdGFydEVuZFNlcmllc1R5cGUpCisK
KyNkZWZpbmUgRk9SX0VBQ0hfQ0dFVkVOVF9ET1VCTEVfRklFTEQobWFjcm8pIFwKKyAgICBtYWNy
byhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyksIGtDR0V2ZW50R2Vz
dHVyZVByb2dyZXNzKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBN
T1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnRQcmVzc3VyZSkgXAorICAgIFwKKyAgICBt
YWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlWm9vbSksIGtD
R0V2ZW50R2VzdHVyZVpvb21EZWx0YVgpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlw
ZShldmVudCwga0lPSElERXZlbnRUeXBlWm9vbSksIGtDR0V2ZW50R2VzdHVyZVpvb21EZWx0YVkp
IFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBl
Wm9vbSksIGtDR0V2ZW50R2VzdHVyZVpvb21WYWx1ZSkgXAorICAgIFwKKyAgICBtYWNybyhldmVu
dElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlUm90YXRpb24pLCBrQ0dFdmVu
dEdlc3R1cmVSb3RhdGlvblZhbHVlKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1
cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVTY3JvbGwpLCBrQ0dFdmVudEdlc3R1cmVTY3Jv
bGxYKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50
VHlwZVNjcm9sbCksIGtDR0V2ZW50R2VzdHVyZVNjcm9sbFkpIFwKKyAgICBtYWNybyhldmVudElz
T2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlU2Nyb2xsKSwga0NHRXZlbnRHZXN0
dXJlU2Nyb2xsWikgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVu
dCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVQ
b3NpdGlvblgpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElE
RXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVQb3NpdGlvblkp
IFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBl
TmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlU3dpcGVQcm9ncmVzcykgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9u
U3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WCkgXAorICAgIG1hY3JvKGV2ZW50
SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBr
Q0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1
cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdl
c3R1cmVTd2lwZVZlbG9jaXR5WikgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJl
VHlwZShldmVudCwga0lPSElERXZlbnRUeXBlRm9yY2UpLCBrQ0dFdmVudFRyYW5zaXRpb25Qcm9n
cmVzcykgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVu
dFR5cGVGb3JjZSksIGtDR0V2ZW50U3RhZ2VQcmVzc3VyZSkKKworI2RlZmluZSBMT0FEX0lOVEVH
RVJfRklFTERfRlJPTV9FVkVOVChldmVudFR5cGVGaWx0ZXIsIGZpZWxkKSBcCiteIHsgXAorICAg
IGlmICghKGV2ZW50VHlwZUZpbHRlcikpIFwKKyAgICAgICAgcmV0dXJuOyBcCisgICAgaW50NjRf
dCB2YWx1ZSA9IENHRXZlbnRHZXRJbnRlZ2VyVmFsdWVGaWVsZChldmVudCwgZmllbGQpOyBcCisg
ICAgaW50NjRfdCBwbGFpblZhbHVlID0gQ0dFdmVudEdldEludGVnZXJWYWx1ZUZpZWxkKHBsYWlu
RXZlbnQsIGZpZWxkKTsgXAorICAgIGlmICh2YWx1ZSAhPSBwbGFpblZhbHVlKSBcCisgICAgICAg
IGRpY3RbQCNmaWVsZF0gPSBAKHZhbHVlKTsgXAorfSgpOworCisjZGVmaW5lIExPQURfRE9VQkxF
X0ZJRUxEX0ZST01fRVZFTlQoZXZlbnRUeXBlRmlsdGVyLCBmaWVsZCkgXAorXiB7IFwKKyAgICBp
ZiAoIShldmVudFR5cGVGaWx0ZXIpKSBcCisgICAgICAgIHJldHVybjsgXAorICAgIGRvdWJsZSB2
YWx1ZSA9IENHRXZlbnRHZXREb3VibGVWYWx1ZUZpZWxkKGV2ZW50LCBmaWVsZCk7IFwKKyAgICBp
ZiAoIWlzbmFuKHZhbHVlKSkgeyBcCisgICAgICAgIGRvdWJsZSBwbGFpblZhbHVlID0gQ0dFdmVu
dEdldERvdWJsZVZhbHVlRmllbGQocGxhaW5FdmVudCwgZmllbGQpOyBcCisgICAgICAgIGlmIChm
YWJzKHZhbHVlIC0gcGxhaW5WYWx1ZSkgPj0gRkxUX0VQU0lMT04pIFwKKyAgICAgICAgICAgIGRp
Y3RbQCNmaWVsZF0gPSBAKHZhbHVlKTsgXAorICAgIH0gXAorfSgpOworCisjZGVmaW5lIFNUT1JF
X0lOVEVHRVJfRklFTERfVE9fRVZFTlQoZXZlbnRUeXBlRmlsdGVyLCBmaWVsZCkgXAorXiB7IFwK
KyAgICBpZiAoIShldmVudFR5cGVGaWx0ZXIpKSBcCisgICAgICAgIHJldHVybjsgXAorICAgIE5T
TnVtYmVyICp2YWx1ZSA9IGRpY3RbQCNmaWVsZF07IFwKKyAgICBpZiAodmFsdWUpIFwKKyAgICAg
ICAgQ0dFdmVudFNldEludGVnZXJWYWx1ZUZpZWxkKGV2ZW50LCBmaWVsZCwgdmFsdWUudW5zaWdu
ZWRMb25nTG9uZ1ZhbHVlKTsgXAorfSgpOworCisjZGVmaW5lIFNUT1JFX0RPVUJMRV9GSUVMRF9U
T19FVkVOVChldmVudFR5cGVGaWx0ZXIsIGZpZWxkKSBcCiteIHsgXAorICAgIGlmICghKGV2ZW50
VHlwZUZpbHRlcikpIFwKKyAgICAgICAgcmV0dXJuOyBcCisgICAgTlNOdW1iZXIgKnZhbHVlID0g
ZGljdFtAI2ZpZWxkXTsgXAorICAgIGlmICh2YWx1ZSkgXAorICAgICAgICBDR0V2ZW50U2V0RG91
YmxlVmFsdWVGaWVsZChldmVudCwgZmllbGQsIHZhbHVlLmRvdWJsZVZhbHVlKTsgXAorfSgpOwor
CitAaW1wbGVtZW50YXRpb24gRXZlbnRTZXJpYWxpemVyCisKKysgKE5TRGljdGlvbmFyeSAqKWRp
Y3Rpb25hcnlGb3JFdmVudDooQ0dFdmVudFJlZilldmVudCByZWxhdGl2ZVRvVGltZTooQ0dFdmVu
dFRpbWVzdGFtcClyZWZlcmVuY2VUaW1lc3RhbXAKK3sKKyAgICBDR0V2ZW50UmVmIHBsYWluRXZl
bnQgPSBDR0V2ZW50Q3JlYXRlKE5VTEwpOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqZGlj
dCA9IFtbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKwor
ICAgIEZPUl9FQUNIX0NHRVZFTlRfSU5URUdFUl9GSUVMRChMT0FEX0lOVEVHRVJfRklFTERfRlJP
TV9FVkVOVCk7CisgICAgRk9SX0VBQ0hfQ0dFVkVOVF9ET1VCTEVfRklFTEQoTE9BRF9ET1VCTEVf
RklFTERfRlJPTV9FVkVOVCk7CisKKyAgICBDR0V2ZW50VGltZXN0YW1wIHRpbWVzdGFtcCA9IENH
RXZlbnRHZXRUaW1lc3RhbXAoZXZlbnQpOworICAgIGRpY3RbQCJyZWxhdGl2ZVRpbWVNUyJdID0g
QChzdGQ6Om1heDxkb3VibGU+KHN0YXRpY19jYXN0PGRvdWJsZT4odGltZXN0YW1wIC0gcmVmZXJl
bmNlVGltZXN0YW1wKSAvIE5TRUNfUEVSX01TRUMsIDApKTsKKworICAgIENHU0V2ZW50VHlwZSBl
dmVudFR5cGUgPSAoQ0dTRXZlbnRUeXBlKUNHRXZlbnRHZXRJbnRlZ2VyVmFsdWVGaWVsZChldmVu
dCwga0NHU0V2ZW50VHlwZUZpZWxkKTsKKyAgICBpZiAoZXZlbnRUeXBlID09IGtDR1NFdmVudEdl
c3R1cmUgfHwgZXZlbnRUeXBlID09IGtDR1NFdmVudEZsdWlkVG91Y2hHZXN0dXJlIHx8IGV2ZW50
VHlwZSA9PSBrQ0dTRXZlbnREb2NrQ29udHJvbCkgeworICAgICAgICBpZiAoQ0dFdmVudEdldElu
dGVnZXJWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dFdmVudEdlc3R1cmVJc1ByZWZsaWdodCkpIHsKKyAg
ICAgICAgICAgIGRpY3RbQCJrQ0dFdmVudEdlc3R1cmVJc1ByZWZsaWdodCJdID0gQFlFUzsKKyAg
ICAgICAgICAgIGRpY3RbQCJrQ0dFdmVudEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcyJdID0gQChD
R0V2ZW50R2V0RG91YmxlVmFsdWVGaWVsZChldmVudCwga0NHRXZlbnRHZXN0dXJlUHJlZmxpZ2h0
UHJvZ3Jlc3MpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGRpY3RbQCJ3aW5kb3dMb2NhdGlv
biJdID0gTlNTdHJpbmdGcm9tUG9pbnQoTlNQb2ludEZyb21DR1BvaW50KENHRXZlbnRHZXRXaW5k
b3dMb2NhdGlvbihldmVudCkpKTsKKworICAgIENHRXZlbnRGbGFncyBmbGFncyA9IHN0YXRpY19j
YXN0PENHRXZlbnRGbGFncz4oQ0dFdmVudEdldEZsYWdzKGV2ZW50KSAmIH5OWF9OT05DT0FMU0VT
Q0VETUFTSyk7CisgICAgQ0dFdmVudEZsYWdzIHBsYWluRmxhZ3MgPSBzdGF0aWNfY2FzdDxDR0V2
ZW50RmxhZ3M+KENHRXZlbnRHZXRGbGFncyhwbGFpbkV2ZW50KSAmIH5OWF9OT05DT0FMU0VTQ0VE
TUFTSyk7CisgICAgaWYgKGZsYWdzICE9IHBsYWluRmxhZ3MpCisgICAgICAgIGRpY3RbQCJmbGFn
cyJdID0gQChmbGFncyk7CisKKyAgICBDRlJlbGVhc2UocGxhaW5FdmVudCk7CisKKyAgICByZXR1
cm4gZGljdDsKK30KKworKyAoQ0dFdmVudFJlZiljcmVhdGVFdmVudEZvckRpY3Rpb25hcnk6KE5T
RGljdGlvbmFyeSAqKWRpY3QgaW5XaW5kb3c6KE5TV2luZG93ICopd2luZG93IHJlbGF0aXZlVG9U
aW1lOihDR0V2ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRpbWVzdGFtcAoreworICAgIENHRXZlbnRS
ZWYgZXZlbnQgPSBDR0V2ZW50Q3JlYXRlKE5VTEwpOworCisgICAgRk9SX0VBQ0hfQ0dFVkVOVF9J
TlRFR0VSX0ZJRUxEKFNUT1JFX0lOVEVHRVJfRklFTERfVE9fRVZFTlQpOworICAgIEZPUl9FQUNI
X0NHRVZFTlRfRE9VQkxFX0ZJRUxEKFNUT1JFX0RPVUJMRV9GSUVMRF9UT19FVkVOVCk7CisKKyAg
ICBpZiAoZGljdFtAInJlbGF0aXZlVGltZU1TIl0pCisgICAgICAgIENHRXZlbnRTZXRUaW1lc3Rh
bXAoZXZlbnQsIHJlZmVyZW5jZVRpbWVzdGFtcCArIHN0YXRpY19jYXN0PHVpbnQ2NF90PigoW2Rp
Y3RbQCJyZWxhdGl2ZVRpbWVNUyJdIGRvdWJsZVZhbHVlXSAqIE5TRUNfUEVSX01TRUMpKSk7CisK
KyAgICBpZiAoW2RpY3RbQCJrQ0dFdmVudEdlc3R1cmVJc1ByZWZsaWdodCJdIGJvb2xWYWx1ZV0p
IHsKKyAgICAgICAgQ0dFdmVudFNldEludGVnZXJWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dFdmVudEdl
c3R1cmVJc1ByZWZsaWdodCwgMSk7CisgICAgICAgIENHRXZlbnRTZXREb3VibGVWYWx1ZUZpZWxk
KGV2ZW50LCBrQ0dFdmVudEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcywgW2RpY3RbQCJrQ0dFdmVu
dEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcyJdIGRvdWJsZVZhbHVlXSk7CisgICAgfQorCisgICAg
aWYgKGRpY3RbQCJ3aW5kb3dMb2NhdGlvbiJdKSB7CisgICAgICAgIENHRXZlbnRTZXRXaW5kb3dM
b2NhdGlvbihldmVudCwgTlNQb2ludFRvQ0dQb2ludChOU1BvaW50RnJvbVN0cmluZyhkaWN0W0Ai
d2luZG93TG9jYXRpb24iXSkpKTsKKworICAgICAgICBOU1BvaW50IHNjcmVlblBvaW50ID0gW3dp
bmRvdyBjb252ZXJ0QmFzZVRvU2NyZWVuOk5TUG9pbnRUb0NHUG9pbnQoTlNQb2ludEZyb21TdHJp
bmcoZGljdFtAIndpbmRvd0xvY2F0aW9uIl0pKV07CisgICAgICAgIENHRXZlbnRTZXRMb2NhdGlv
bihldmVudCwgTlNNYWtlUG9pbnQoc2NyZWVuUG9pbnQueCwgTlNTY3JlZW4uc2NyZWVucy5maXJz
dE9iamVjdC5mcmFtZS5zaXplLmhlaWdodCAtIHNjcmVlblBvaW50LnkpKTsKKyAgICB9CisKKyAg
ICBpZiAoZGljdFtAImZsYWdzIl0pCisgICAgICAgIENHRXZlbnRTZXRGbGFncyhldmVudCwgc3Rh
dGljX2Nhc3Q8Q0dFdmVudEZsYWdzPihbZGljdFtAImZsYWdzIl0gdW5zaWduZWRMb25nTG9uZ1Zh
bHVlXSkpOworCisgICAgQ0dFdmVudFNldEludGVnZXJWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dTRXZl
bnRXaW5kb3dJREZpZWxkLCB3aW5kb3cud2luZG93TnVtYmVyKTsKKworICAgIHJldHVybiBldmVu
dDsKK30KKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gRXZlbnRTdHJlYW1QbGF5ZXIKKworY29u
c3QgZmxvYXQgZXZlbnREaXNwYXRjaFRpbWVyUmF0ZSA9IDEuIC8gMTIwLjsKKworKyAodm9pZClw
bGF5U3RyZWFtOihOU0FycmF5PE5TRGljdGlvbmFyeSAqPiAqKWV2ZW50RGljdHMgd2luZG93OihO
U1dpbmRvdyAqKXdpbmRvdyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSgpKWNvbXBsZXRpb25I
YW5kbGVyCit7CisgICAgLy8gVGhpcyBhbGxvYyBpcyBiYWxhbmNlZCB3aXRoIHRoZSByZWxlYXNl
IGJlbG93IGluIHBsYXliYWNrVGltZXJGaXJlZC4KKyAgICBFdmVudFN0cmVhbVBsYXllciAqcGxh
eWVyID0gW1tFdmVudFN0cmVhbVBsYXllciBhbGxvY10gaW5pdF07CisKKyAgICBwbGF5ZXItPl9y
ZW1haW5pbmdFdmVudERpY3RzID0gYWRvcHROUyhbZXZlbnREaWN0cyBtdXRhYmxlQ29weV0pOwor
ICAgIHBsYXllci0+X3dpbmRvdyA9IHdpbmRvdzsKKworICAgIGlmIChjb21wbGV0aW9uSGFuZGxl
cikKKyAgICAgICAgcGxheWVyLT5fY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29t
cGxldGlvbkhhbmRsZXIpOworCisgICAgcGxheWVyLT5fc3RhcnRUaW1lID0gbWFjaF9hYnNvbHV0
ZV90aW1lKCk7CisKKyAgICBbTlNUaW1lciBzY2hlZHVsZWRUaW1lcldpdGhUaW1lSW50ZXJ2YWw6
ZXZlbnREaXNwYXRjaFRpbWVyUmF0ZSB0YXJnZXQ6cGxheWVyIHNlbGVjdG9yOkBzZWxlY3Rvcihw
bGF5YmFja1RpbWVyRmlyZWQ6KSB1c2VySW5mbzpuaWwgcmVwZWF0czpZRVNdOworfQorCistICh2
b2lkKXBsYXliYWNrVGltZXJGaXJlZDooTlNUaW1lciAqKXRpbWVyCit7CisgICAgUmV0YWluUHRy
PE5TTXV0YWJsZUFycmF5ICo+IHJlbW92ZUxpc3QgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkg
YWxsb2NdIGluaXRdKTsKKyAgICBOU0V2ZW50ICpuc0V2ZW50ID0gbmlsOworICAgIGZvciAoaWQg
ZXZlbnREaWN0IGluIF9yZW1haW5pbmdFdmVudERpY3RzLmdldCgpKSB7CisgICAgICAgIENHRXZl
bnRSZWYgZXZlbnQgPSBbRXZlbnRTZXJpYWxpemVyIGNyZWF0ZUV2ZW50Rm9yRGljdGlvbmFyeTpl
dmVudERpY3QgaW5XaW5kb3c6X3dpbmRvdy5nZXQoKSByZWxhdGl2ZVRvVGltZTpfc3RhcnRUaW1l
XTsKKyAgICAgICAgaWYgKENHRXZlbnRHZXRUaW1lc3RhbXAoZXZlbnQpIDwgbWFjaF9hYnNvbHV0
ZV90aW1lKCkpIHsKKyAgICAgICAgICAgIG5zRXZlbnQgPSBbTlNFdmVudCBldmVudFdpdGhDR0V2
ZW50OmV2ZW50XTsKKyAgICAgICAgICAgIFtOU0FwcCBwb3N0RXZlbnQ6bnNFdmVudCBhdFN0YXJ0
Ok5PXTsKKyAgICAgICAgICAgIFtyZW1vdmVMaXN0IGFkZE9iamVjdDpldmVudERpY3RdOworICAg
ICAgICB9CisgICAgICAgIENGUmVsZWFzZShldmVudCk7CisgICAgfQorICAgIFtfcmVtYWluaW5n
RXZlbnREaWN0cyByZW1vdmVPYmplY3RzSW5BcnJheTpyZW1vdmVMaXN0LmdldCgpXTsKKworICAg
IGlmIChbX3JlbWFpbmluZ0V2ZW50RGljdHMgY291bnRdKQorICAgICAgICByZXR1cm47CisKKyAg
ICBbdGltZXIgaW52YWxpZGF0ZV07CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTIwMAorICAgIE5TRXZlbnRUeXBlIGFwcGxpY2F0aW9uRGVmaW5lZEV2ZW50VHlw
ZSA9IE5TRXZlbnRUeXBlQXBwbGljYXRpb25EZWZpbmVkOworI2Vsc2UKKyAgICBOU0V2ZW50VHlw
ZSBhcHBsaWNhdGlvbkRlZmluZWRFdmVudFR5cGUgPSBOU0FwcGxpY2F0aW9uRGVmaW5lZDsKKyNl
bmRpZgorICAgIFtOU0FwcCBwb3N0RXZlbnQ6W05TRXZlbnQgb3RoZXJFdmVudFdpdGhUeXBlOmFw
cGxpY2F0aW9uRGVmaW5lZEV2ZW50VHlwZSBsb2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZs
YWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOjAgY29udGV4dDowIHN1YnR5cGU6MCBkYXRh
MTo0MiBkYXRhMjowXSBhdFN0YXJ0Ok5PXTsKKyAgICAvLyBCbG9jayB1bnRpbCB3ZSBzZW5kIHRo
ZSBsYXN0IGV2ZW50IHdlIHBvc3RlZC4KKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBOU0V2
ZW50ICpuZXh0RXZlbnQgPSBbTlNBcHAgbmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5TQW55RXZlbnRN
YXNrIHVudGlsRGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6ZXZlbnRE
aXNwYXRjaFRpbWVyUmF0ZV0gaW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRlcXVldWU6WUVT
XTsKKyAgICAgICAgaWYgKG5leHRFdmVudC50eXBlID09IGFwcGxpY2F0aW9uRGVmaW5lZEV2ZW50
VHlwZSAmJiBuZXh0RXZlbnQuZGF0YTEgPT0gNDIpCisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgaWYgKG5leHRFdmVudCkKKyAgICAgICAgICAgIFtOU0FwcCBzZW5kRXZlbnQ6bmV4dEV2ZW50
XTsKKyAgICB9CisKKyAgICBpZiAoX2NvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICBfY29tcGxl
dGlvbkhhbmRsZXIoKTsKKworICAgIFtzZWxmIHJlbGVhc2VdOworfQorCitAZW5kCisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24v
bWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVu
dFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFm
MzAyODgzNTkyMTM2MmJkZjZjZDFmNWIxZTQ3OGE5NTBmZWIzNzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvU2hhcmVkRXZl
bnRTdHJlYW1zTWFjLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBQTEFURk9S
TShNQUMpCisKKyNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KKworTlNTdHJpbmcgKmJlZ2luU3dp
cGVCYWNrRXZlbnRTdHJlYW0oKTsKK05TU3RyaW5nICpjb21wbGV0ZVN3aXBlQmFja0V2ZW50U3Ry
ZWFtKCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVu
dFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSBiL1Rvb2xzL1Rlc3RS
dW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTgyNDA1OWNhYWQwMTNmMDg5MWYyMzUwODg1MGEwOTMxZDQ5Y2Q4OAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0
aW9uL21hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMubW0KQEAgLTAsMCArMSwzNjkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlNoYXJlZEV2ZW50U3RyZWFtc01h
Yy5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjZGVmaW5lIFFVT1RFKC4uLikgQCgjX19WQV9B
UkdTX18pCisKK05TU3RyaW5nICpiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKCkKK3sKKyAgICBy
ZXR1cm4gUVVPVEUoWworICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDog
MCwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJrQ0dT
RXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2Ui
IDogMTI4LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogOCwKKyAg
ICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYxLAorICAgICAgICAgICAgImtD
R1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTdGFy
dEVuZFNlcmllc1R5cGUiIDogNiwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQw
MCwgMzAwfSIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2Vz
dHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAg
ICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJr
Q0dFdmVudEdlc3R1cmVQaGFzZSIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2Vz
dHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5
LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMgorICAgICAgICB9LAor
ICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogOCwKKyAgICAgICAgICAg
ICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQ
b2ludERlbHRhQXhpczIiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDog
MjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJ
RFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAxNywKKyAgICAgICAg
ICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlU2Nyb2xsWSIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNl
IiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwK
KyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NH
RXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAxMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAxLAorICAgICAgICAg
ICAgInJlbGF0aXZlVGltZU1TIiA6IDE3LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0Nv
bnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0
YUF4aXMyIiA6IDQsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0i
LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAg
ICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDI1LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9u
IiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6
IDIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAg
ICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NF
dmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxY
IiA6IDIzCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50RGVsdGFBeGlzMiIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQ
b2ludERlbHRhQXhpczEiIDogMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAyNSwK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAg
ICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMSwKKyAgICAgICAgICAg
ICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50
VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dF
dmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDog
MzMsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAg
ICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFkiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVu
dEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZs
YWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMjgKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDIsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAxLAorICAg
ICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDMzLAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2
ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9p
bnREZWx0YUF4aXMyIiA6IDE2LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAw
LCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwK
KyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA0MSwKKyAgICAgICAgICAgICJ3aW5kb3dM
b2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Ny
b2xsWSIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAg
ICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAg
ICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJl
U2Nyb2xsWCIgOiAzNQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMi
IDogNDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAx
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMjQsCisgICAg
ICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtD
R1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGlt
ZU1TIiA6IDQ5LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwK
KyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IC0xLAorICAgICAgICAgICAg
ImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxH
ZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDog
MjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA0NQorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50
IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogNCwK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IC0xLAor
ICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDQ5LAorICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50
UG9pbnREZWx0YUF4aXMyIiA6IDM3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7
NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDog
NiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA1NywKKyAgICAgICAgICAgICJ3aW5k
b3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJl
U2Nyb2xsWSIgOiAtMywKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAor
ICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAg
ICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2Vz
dHVyZVNjcm9sbFgiIDogNTcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtD
R1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDUsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudFBvaW50RGVsdGFBeGlzMSIgOiAtMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIg
OiA1NywKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAg
ICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiA1NCwKKyAgICAg
ICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NH
U0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1l
TVMiIDogNjUsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAor
ICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFkiIDogLTUsCisgICAgICAgICAgICAi
a0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdl
c3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAy
OSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDgxCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQi
IDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiA5LAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogLTIsCisg
ICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNjUsCisgICAgICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQ
b2ludERlbHRhQXhpczIiIDogOTIsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0
MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAg
ICB9LAorICAgIF0pOworfQorCitOU1N0cmluZyAqY29tcGxldGVTd2lwZUJhY2tFdmVudFN0cmVh
bSgpCit7CisgICAgcmV0dXJuIFFVT1RFKFsKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2
ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA3
MywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAtMywKKyAgICAgICAgICAgICJrQ0dFdmVu
dEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZs
YWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogNzUKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDExLAorICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogLTEsCisgICAgICAg
ICAgICAicmVsYXRpdmVUaW1lTVMiIDogNzMsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRT
Y3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERl
bHRhQXhpczIiIDogMTA2LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAz
MDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAg
ICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4MSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xs
WSIgOiAtMywKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAg
ICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAi
a0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNj
cm9sbFgiIDogODUKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnREZWx0YUF4aXMyIiA6IDEzLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQ
b2ludERlbHRhQXhpczEiIDogLTEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogODEs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMTI3LAorICAgICAgICAg
ICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZl
bnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIg
OiA4OSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAtMSwKKyAgICAgICAgICAgICJrQ0dF
dmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVy
ZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAor
ICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogOTEKKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAx
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDE0LAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogLTEsCisgICAg
ICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogODksCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2lu
dERlbHRhQXhpczIiIDogMTM5LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAw
LCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwK
KyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA5NywKKyAgICAgICAgICAgICJ3aW5kb3dM
b2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Ny
b2xsWSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAg
ICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAg
ICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJl
U2Nyb2xsWCIgOiAxMzYKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnREZWx0YUF4aXMyIiA6IDIwLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnRQb2ludERlbHRhQXhpczEiIDogMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA5
NywKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAg
ICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAyMDQsCisgICAgICAg
ICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NF
dmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
a0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1T
IiA6IDEwNSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiA1LAorICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0
dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjks
CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA5MgorICAgICAgICB9LAor
ICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6
IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMTQsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAyLAorICAg
ICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEwNSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxX
aGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBv
aW50RGVsdGFBeGlzMiIgOiAxMzYsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0
MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2
LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDExMywKKyAgICAgICAgICAgICJ3aW5k
b3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJl
U2Nyb2xsWSIgOiAxNCwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAor
ICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAg
ICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2Vz
dHVyZVNjcm9sbFgiIDogMTMzCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJr
Q0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDE5MiwKKyAgICAgICAgICAgICJrQ0dTRXZl
bnRUeXBlRmllbGQiIDogMjIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRh
QXhpczEiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3Vz
IiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTEzLAorICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDE5LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0
aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9p
bnREZWx0YUF4aXMxIiA6IDcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgInJl
bGF0aXZlVGltZU1TIiA6IDEyMSwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVG
bGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwK
KyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NH
RXZlbnRHZXN0dXJlUGhhc2UiIDogNCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAi
ezQwMCwgMzAwfSIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgInJlbGF0aXZl
VGltZU1TIiA6IDEyMSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYy
LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJr
Q0dFdmVudEdlc3R1cmVTdGFydEVuZFNlcmllc1R5cGUiIDogNiwKKyAgICAgICAgICAgICJ3aW5k
b3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAg
InJlbGF0aXZlVGltZU1TIiA6IDEzOSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAi
ezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiA0LAorICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMQorICAgICAgICB9CisgICAg
XSk7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNj
cmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rlc3RS
dW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5p
ZGwKaW5kZXggMWM2NjIzZmQwNWUyZGNlZTBiOTVkNWE2ZTYyOTU0YjM3YmE0OGMwNy4uODI1M2Vm
MDUzOWExZDQ0ZTJkNWRlZDM5ZDc2YWJiN2U0M2ZlMjgyZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVy
LmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5n
cy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC00Nyw2ICs0NywxMSBAQCBpbnRlcmZhY2UgVUlT
Y3JpcHRDb250cm9sbGVyIHsKICAgICB2b2lkIGtleURvd25Vc2luZ0hhcmR3YXJlS2V5Ym9hcmQo
RE9NU3RyaW5nIGNoYXJhY3Rlciwgb2JqZWN0IGNhbGxiYWNrKTsKICAgICB2b2lkIGtleVVwVXNp
bmdIYXJkd2FyZUtleWJvYXJkKERPTVN0cmluZyBjaGFyYWN0ZXIsIG9iamVjdCBjYWxsYmFjayk7
CiAKKyAgICB2b2lkIGJlZ2luQmFja1N3aXBlKG9iamVjdCBjYWxsYmFjayk7CisgICAgdm9pZCBj
b21wbGV0ZUJhY2tTd2lwZShvYmplY3QgY2FsbGJhY2spOworCisgICAgdm9pZCBwbGF5QmFja0V2
ZW50U3RyZWFtKERPTVN0cmluZyBldmVudFN0cmVhbSwgb2JqZWN0IGNhbGxiYWNrKTsKKwogICAg
IC8vIEVxdWl2YWxlbnQgb2YgcHJlc3NpbmcgdGhlIERvbmUgYnV0dG9uIGluIHRoZSBmb3JtIGFj
Y2Vzc29yeSBiYXIuCiAgICAgdm9pZCBkaXNtaXNzRm9ybUFjY2Vzc29yeVZpZXcoKTsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRD
b250cm9sbGVyLmNwcCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJ
U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggNjEwZjk3ZDk1OTFmOTdiZGI2MTIxMGJhYmY5ODdm
MWM0NDExOTU1Zi4uOGJhZTQ0NmVjODJiZDUxYmViZDkwYjNiOGY0NjJkZDExMzQzM2YxOSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0xMzUsNiArMTM1LDExIEBAIEpTVmFsdWVSZWYg
VUlTY3JpcHRDb250cm9sbGVyOjpkaWRIaWRlS2V5Ym9hcmRDYWxsYmFjaygpIGNvbnN0CiAgICAg
cmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkSGlkZUtleWJv
YXJkKTsKIH0KIAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXlCYWNrRXZlbnRTdHJlYW0o
SlNTdHJpbmdSZWYgc3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIHBsYXRmb3Jt
UGxheUJhY2tFdmVudFN0cmVhbShzdHJlYW0sIGNhbGxiYWNrKTsKK30KKwogI2lmICFQTEFURk9S
TShJT1MpCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6em9vbVRvU2NhbGUoZG91YmxlLCBKU1Zh
bHVlUmVmKQogewpAQCAtMjU5LDYgKzI2NCwyMyBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6
cGxhdGZvcm1TZXREaWRIaWRlS2V5Ym9hcmRDYWxsYmFjaygpCiB2b2lkIFVJU2NyaXB0Q29udHJv
bGxlcjo6cGxhdGZvcm1DbGVhckFsbENhbGxiYWNrcygpCiB7CiB9CisKKyNlbmRpZgorCisjaWYg
IVBMQVRGT1JNKE1BQykKKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBl
KEpTVmFsdWVSZWYgY2FsbGJhY2spCit7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpj
b21wbGV0ZUJhY2tTd2lwZShKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworfQorCit2b2lkIFVJU2Ny
aXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpTU3RyaW5nUmVmLCBK
U1ZhbHVlUmVmKQoreworfQorCiAjZW5kaWYKIAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnVp
U2NyaXB0Q29tcGxldGUoSlNTdHJpbmdSZWYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmggYi9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaApp
bmRleCA0MjI1NWRhMzQzNWVjNGEwNjlkYjczZDZjMGViYTg3MTZiZjVjZTljLi4yZWRmODRhODA3
NTZiNjEzMTFlMWNiMmZhM2ZjMGZhMDRlODE5YTkzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVu
bmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaApA
QCAtNzQsNiArNzQsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzY3JvbGxUb09mZnNldChs
b25nIHgsIGxvbmcgeSk7CiAKKyAgICB2b2lkIGJlZ2luQmFja1N3aXBlKEpTVmFsdWVSZWYgY2Fs
bGJhY2spOworICAgIHZvaWQgY29tcGxldGVCYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjayk7
CisKICAgICB2b2lkIHNldERpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKEpT
VmFsdWVSZWYpOwogICAgIEpTVmFsdWVSZWYgZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9u
Q2FsbGJhY2soKSBjb25zdDsKIApAQCAtOTUsNiArOTgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXREaWRFbmRTY3JvbGxpbmdDYWxsYmFjayhKU1ZhbHVlUmVmKTsKICAgICBKU1ZhbHVlUmVmIGRp
ZEVuZFNjcm9sbGluZ0NhbGxiYWNrKCkgY29uc3Q7CiAKKyAgICB2b2lkIHBsYXlCYWNrRXZlbnRT
dHJlYW0oSlNTdHJpbmdSZWYgc3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKKwogICAgIGRv
dWJsZSB6b29tU2NhbGUoKSBjb25zdDsKICAgICBkb3VibGUgbWluaW11bVpvb21TY2FsZSgpIGNv
bnN0OwogICAgIGRvdWJsZSBtYXhpbXVtWm9vbVNjYWxlKCkgY29uc3Q7CkBAIC0xMTYsNiArMTIx
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtU2V0RGlkSGlkZUtleWJvYXJkQ2FsbGJh
Y2soKTsKICAgICB2b2lkIHBsYXRmb3JtU2V0RGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2soKTsKICAg
ICB2b2lkIHBsYXRmb3JtQ2xlYXJBbGxDYWxsYmFja3MoKTsKKyAgICB2b2lkIHBsYXRmb3JtUGxh
eUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZik7CiAKICAgICBKU0NsYXNz
UmVmIHdyYXBwZXJDbGFzcygpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVy
U2hhcmVkL3NwaS9Db3JlR3JhcGhpY3NTUEkuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3Bp
L0NvcmVHcmFwaGljc1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NWJlMDc0ODk5NGVmMmQ4NTU4ZTA1NjY2
OTg3N2Y1MTU4ZGZiMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVk
L3NwaS9Db3JlR3JhcGhpY3NTUEkuaApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgorCisjaWYgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKKworI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NHRXZlbnRQcml2YXRlLmg+Cisj
aW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dTRXZlbnQuaD4KKworI2Vsc2UKKworV1RGX0VYVEVSTl9D
X0JFR0lOCisKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHU0V2ZW50V2luZG93SURGaWVs
ZCA9IChDR0V2ZW50RmllbGQpNTE7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR1NFdmVu
dFR5cGVGaWVsZCA9IChDR0V2ZW50RmllbGQpNTU7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxk
IGtDR0V2ZW50R2VzdHVyZUhJRFR5cGUgPSAoQ0dFdmVudEZpZWxkKTExMDsKK3N0YXRpYyBjb25z
dCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlSXNQcmVmbGlnaHQgPSAoQ0dFdmVudEZpZWxk
KTExMTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlWm9vbVZhbHVl
ID0gKENHRXZlbnRGaWVsZCkxMTM7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50
R2VzdHVyZVJvdGF0aW9uVmFsdWUgPSAoQ0dFdmVudEZpZWxkKTExNDsKK3N0YXRpYyBjb25zdCBD
R0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVWYWx1ZSA9IChDR0V2ZW50RmllbGQpMTE1
Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVQcmVmbGlnaHRQcm9n
cmVzcyA9IChDR0V2ZW50RmllbGQpMTE2Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dF
dmVudEdlc3R1cmVTdGFydEVuZFNlcmllc1R5cGUgPSAoQ0dFdmVudEZpZWxkKTExNzsKK3N0YXRp
YyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCA9IChDR0V2ZW50Rmll
bGQpMTE4Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxZ
ID0gKENHRXZlbnRGaWVsZCkxMTk7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50
R2VzdHVyZVNjcm9sbFogPSAoQ0dFdmVudEZpZWxkKTEyMDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50
RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVNb3Rpb24gPSAoQ0dFdmVudEZpZWxkKTEyMzsKK3N0
YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVQcm9ncmVzcyA9IChD
R0V2ZW50RmllbGQpMTI0Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1
cmVTd2lwZVBvc2l0aW9uWCA9IChDR0V2ZW50RmllbGQpMTI1Oworc3RhdGljIGNvbnN0IENHRXZl
bnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVBvc2l0aW9uWSA9IChDR0V2ZW50RmllbGQpMTI2
Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5
WCA9IChDR0V2ZW50RmllbGQpMTI5Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVu
dEdlc3R1cmVTd2lwZVZlbG9jaXR5WSA9IChDR0V2ZW50RmllbGQpMTMwOworc3RhdGljIGNvbnN0
IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WiA9IChDR0V2ZW50Rmll
bGQpMTMxOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVQaGFzZSA9
IChDR0V2ZW50RmllbGQpMTMyOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdl
c3R1cmVNYXNrID0gKENHRXZlbnRGaWVsZCkxMzM7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxk
IGtDR0V2ZW50R2VzdHVyZVN3aXBlTWFzayA9IChDR0V2ZW50RmllbGQpMTM0Oworc3RhdGljIGNv
bnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyA9IChDR0V2ZW50
RmllbGQpMTM1Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudFN3aXBlR2VzdHVy
ZUZsYWdCaXRzID0gKENHRXZlbnRGaWVsZCkxMzY7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxk
IGtDR0V2ZW50R2VzdHVyZUZsYXZvciA9IChDR0V2ZW50RmllbGQpMTM4Oworc3RhdGljIGNvbnN0
IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVab29tRGVsdGFYID0gKENHRXZlbnRGaWVsZCkx
Mzk7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVpvb21EZWx0YVkg
PSAoQ0dFdmVudEZpZWxkKTE0MDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRH
ZXN0dXJlUHJvZ3Jlc3MgPSAoQ0dFdmVudEZpZWxkKTE0MjsKK3N0YXRpYyBjb25zdCBDR0V2ZW50
RmllbGQga0NHRXZlbnRHZXN0dXJlU3RhZ2UgPSAoQ0dFdmVudEZpZWxkKTE0MzsKK3N0YXRpYyBj
b25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlQmVoYXZpb3IgPSAoQ0dFdmVudEZpZWxk
KTE0NDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRUcmFuc2l0aW9uUHJvZ3Jl
c3MgPSAoQ0dFdmVudEZpZWxkKTE0NzsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZl
bnRTdGFnZVByZXNzdXJlID0gKENHRXZlbnRGaWVsZCkxNDg7CisKK2VudW0geworICAgIGtDR1NF
dmVudFNjcm9sbFdoZWVsID0gMjIsCisgICAga0NHU0V2ZW50Wm9vbSA9IDI4LAorICAgIGtDR1NF
dmVudEdlc3R1cmUgPSAyOSwKKyAgICBrQ0dTRXZlbnREb2NrQ29udHJvbCA9IDMwLAorICAgIGtD
R1NFdmVudEZsdWlkVG91Y2hHZXN0dXJlID0gMzEsCit9OwordHlwZWRlZiB1aW50MzJfdCBDR1NF
dmVudFR5cGU7CisKK2VudW0geworICAgIGtDR0hJREV2ZW50VHlwZUdlc3R1cmVTdGFydGVkID0g
NjEsCisgICAga0NHSElERXZlbnRUeXBlR2VzdHVyZUVuZGVkID0gNjIsCit9OwordHlwZWRlZiB1
aW50MzJfdCBDR1NISURFdmVudFR5cGU7CisKK0NHUG9pbnQgQ0dFdmVudEdldFdpbmRvd0xvY2F0
aW9uKENHRXZlbnRSZWYpOwordm9pZCBDR0V2ZW50U2V0V2luZG93TG9jYXRpb24oQ0dFdmVudFJl
ZiwgQ0dQb2ludCk7CisKK1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlmIC8vIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL3NwaS9JT0tp
dFNQSS5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9zcGkvSU9LaXRTUEkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xYzA2ODU3ZDc2MzY2OGRlMTUyMDNmOTM2YzM3YzNmMDM3NjAxNDBjCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9zcGkvSU9LaXRTUEkuaApAQCAtMCwwICsxLDE5
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0IDx3dGYvUGxhdGZvcm0u
aD4KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPElPS2l0L2hpZC9J
T0hJREV2ZW50Lmg+CisjaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURFdmVudERhdGEuaD4KKyNpbXBv
cnQgPElPS2l0L2hpZC9JT0hJREV2ZW50U3lzdGVtQ2xpZW50Lmg+CisjaW1wb3J0IDxJT0tpdC9o
aWQvSU9ISURVc2FnZVRhYmxlcy5oPgorCisjZWxzZQorCitXVEZfRVhURVJOX0NfQkVHSU4KKwor
I2lmZGVmIF9fTFA2NF9fCit0eXBlZGVmIGRvdWJsZSBJT0hJREZsb2F0OworI2Vsc2UKK3R5cGVk
ZWYgZmxvYXQgSU9ISURGbG9hdDsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBrSU9ISURFdmVudE9w
dGlvbk5vbmUgPSAwLAorfTsKKwordHlwZWRlZiBVSW50MzIgSU9PcHRpb25CaXRzOwordHlwZWRl
ZiB1aW50MzJfdCBJT0hJREV2ZW50T3B0aW9uQml0czsKK3R5cGVkZWYgdWludDMyX3QgSU9ISURF
dmVudEZpZWxkOworCit0eXBlZGVmIHN0cnVjdCBfX0lPSElERXZlbnRTeXN0ZW1DbGllbnQgKiBJ
T0hJREV2ZW50U3lzdGVtQ2xpZW50UmVmOwordHlwZWRlZiBzdHJ1Y3QgX19JT0hJREV2ZW50ICog
SU9ISURFdmVudFJlZjsKKworI2RlZmluZSBJT0hJREV2ZW50RmllbGRCYXNlKHR5cGUpICh0eXBl
IDw8IDE2KQorCitlbnVtIHsKKyAgICBrSElEUGFnZV9LZXlib2FyZE9yS2V5cGFkICAgICAgID0g
MHgwNywKKyAgICBrSElEUGFnZV9WZW5kb3JEZWZpbmVkU3RhcnQgICAgID0gMHhGRjAwCit9Owor
CitlbnVtIHsKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFJhbmdlICAgICAgID0gMTw8MCwKKyAg
ICBrSU9ISUREaWdpdGl6ZXJFdmVudFRvdWNoICAgICAgID0gMTw8MSwKKyAgICBrSU9ISUREaWdp
dGl6ZXJFdmVudFBvc2l0aW9uICAgID0gMTw8MiwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudElk
ZW50aXR5ICAgID0gMTw8NSwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudEF0dHJpYnV0ZSAgID0g
MTw8NiwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudENhbmNlbCAgICAgID0gMTw8NywKKyAgICBr
SU9ISUREaWdpdGl6ZXJFdmVudFN0YXJ0ICAgICAgID0gMTw8OCwKKyAgICBrSU9ISUREaWdpdGl6
ZXJFdmVudEVzdGltYXRlZEFsdGl0dWRlID0gMTw8MjgsCisgICAga0lPSElERGlnaXRpemVyRXZl
bnRFc3RpbWF0ZWRBemltdXRoID0gMTw8MjksCisgICAga0lPSElERGlnaXRpemVyRXZlbnRFc3Rp
bWF0ZWRQcmVzc3VyZSA9IDE8PDMwLAorfTsKK3R5cGVkZWYgdWludDMyX3QgSU9ISUREaWdpdGl6
ZXJFdmVudE1hc2s7CisKK2VudW0geworICAgIGtJT0hJREV2ZW50VHlwZU5VTEwsCisgICAga0lP
SElERXZlbnRUeXBlVmVuZG9yRGVmaW5lZCwKKyAgICBrSU9ISURFdmVudFR5cGVLZXlib2FyZCA9
IDMsCisgICAga0lPSElERXZlbnRUeXBlUm90YXRpb24gPSA1LAorICAgIGtJT0hJREV2ZW50VHlw
ZVNjcm9sbCA9IDYsCisgICAga0lPSElERXZlbnRUeXBlWm9vbSA9IDgsCisgICAga0lPSElERXZl
bnRUeXBlRGlnaXRpemVyID0gMTEsCisgICAga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBl
ID0gMTYsCisgICAga0lPSElERXZlbnRUeXBlRm9yY2UgPSAzMiwKKworfTsKK3R5cGVkZWYgdWlu
dDMyX3QgSU9ISURFdmVudFR5cGU7CisKK2VudW0geworICAgIGtJT0hJREV2ZW50RmllbGRWZW5k
b3JEZWZpbmVkVXNhZ2VQYWdlID0gSU9ISURFdmVudEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVW
ZW5kb3JEZWZpbmVkKSwKKyAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFJlc2VydmVk
LAorICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkUmVzZXJ2ZWQxLAorICAgIGtJT0hJ
REV2ZW50RmllbGRWZW5kb3JEZWZpbmVkRGF0YUxlbmd0aCwKKyAgICBrSU9ISURFdmVudEZpZWxk
VmVuZG9yRGVmaW5lZERhdGEKK307CisKK2VudW0geworICAgIGtJT0hJREV2ZW50RmllbGREaWdp
dGl6ZXJYID0gSU9ISURFdmVudEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVEaWdpdGl6ZXIpLAor
ICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJZLAorICAgIGtJT0hJREV2ZW50RmllbGREaWdp
dGl6ZXJNYWpvclJhZGl1cyA9IGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJYICsgMjAsCisgICAg
a0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1pbm9yUmFkaXVzLAorICAgIGtJT0hJREV2ZW50Rmll
bGREaWdpdGl6ZXJJc0Rpc3BsYXlJbnRlZ3JhdGVkID0ga0lPSElERXZlbnRGaWVsZERpZ2l0aXpl
ck1ham9yUmFkaXVzICsgNSwKK307CisKK2VudW0geworICAgIGtJT0hJRFRyYW5zZHVjZXJSYW5n
ZSAgICAgICAgICAgICAgID0gMHgwMDAxMDAwMCwKKyAgICBrSU9ISURUcmFuc2R1Y2VyVG91Y2gg
ICAgICAgICAgICAgICA9IDB4MDAwMjAwMDAsCisgICAga0lPSElEVHJhbnNkdWNlckludmVydCAg
ICAgICAgICAgICAgPSAweDAwMDQwMDAwLAorICAgIGtJT0hJRFRyYW5zZHVjZXJEaXNwbGF5SW50
ZWdyYXRlZCAgID0gMHgwMDA4MDAwMAorfTsKKworZW51bSB7CisgICAga0lPSElERGlnaXRpemVy
VHJhbnNkdWNlclR5cGVIYW5kID0gMworfTsKK3R5cGVkZWYgdWludDMyX3QgSU9ISUREaWdpdGl6
ZXJUcmFuc2R1Y2VyVHlwZTsKKworZW51bSB7CisgICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXpl
cldpbGxVcGRhdGVNYXNrID0gNzIwOTI0LAorICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJE
aWRVcGRhdGVNYXNrID0gNzIwOTI1Cit9OworCitJT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVh
dGVEaWdpdGl6ZXJFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIElPSElERGlnaXRpemVy
VHJhbnNkdWNlclR5cGUsIHVpbnQzMl90LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1h
c2ssIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZs
b2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsKKwor
SU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlRGlnaXRpemVyRmluZ2VyRXZlbnQoQ0ZBbGxv
Y2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIElPSElERGlnaXRpemVyRXZl
bnRNYXNrLCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJ
T0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOwor
CitJT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVGb3JjZUV2ZW50KENGQWxsb2NhdG9yUmVm
LCB1aW50NjRfdCwgdWludDMyX3QsIElPSElERmxvYXQsIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJ
T0hJREV2ZW50T3B0aW9uQml0cyk7CisKK0lPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZUtl
eWJvYXJkRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3Qs
IGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsKKworSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3Jl
YXRlVmVuZG9yRGVmaW5lZEV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3Qs
IHVpbnQzMl90LCB1aW50MzJfdCwgdWludDhfdCosIENGSW5kZXgsIElPSElERXZlbnRPcHRpb25C
aXRzKTsKKworSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlRGlnaXRpemVyU3R5bHVzRXZl
bnRXaXRoUG9sYXJPcmllbnRhdGlvbihDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIHVpbnQzMl90
LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIHVpbnQzMl90LCBJT0hJREZsb2F0
LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZs
b2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9ISURF
dmVudE9wdGlvbkJpdHMpOworCitJT0hJREV2ZW50VHlwZSBJT0hJREV2ZW50R2V0VHlwZShJT0hJ
REV2ZW50UmVmKTsKKwordm9pZCBJT0hJREV2ZW50U2V0RmxvYXRWYWx1ZShJT0hJREV2ZW50UmVm
LCBJT0hJREV2ZW50RmllbGQsIElPSElERmxvYXQpOworCitDRkluZGV4IElPSElERXZlbnRHZXRJ
bnRlZ2VyVmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxkKTsKK3ZvaWQgSU9ISURF
dmVudFNldEludGVnZXJWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50RmllbGQsIENGSW5k
ZXgpOworCit2b2lkIElPSElERXZlbnRBcHBlbmRFdmVudChJT0hJREV2ZW50UmVmLCBJT0hJREV2
ZW50UmVmLCBJT09wdGlvbkJpdHMpOworCitJT0hJREV2ZW50U3lzdGVtQ2xpZW50UmVmIElPSElE
RXZlbnRTeXN0ZW1DbGllbnRDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYpOworCisjZGVmaW5lIGtHU0V2
ZW50UGF0aEluZm9JblJhbmdlICgxIDw8IDApCisjZGVmaW5lIGtHU0V2ZW50UGF0aEluZm9JblRv
dWNoICgxIDw8IDEpCisKK2VudW0geworICAgIGtISURVc2FnZV9LZXlib2FyZEEgPSAweDA0LAor
ICAgIGtISURVc2FnZV9LZXlib2FyZDEgPSAweDFFLAorICAgIGtISURVc2FnZV9LZXlib2FyZDIg
PSAweDFGLAorICAgIGtISURVc2FnZV9LZXlib2FyZDMgPSAweDIwLAorICAgIGtISURVc2FnZV9L
ZXlib2FyZDQgPSAweDIxLAorICAgIGtISURVc2FnZV9LZXlib2FyZDUgPSAweDIyLAorICAgIGtI
SURVc2FnZV9LZXlib2FyZDYgPSAweDIzLAorICAgIGtISURVc2FnZV9LZXlib2FyZDcgPSAweDI0
LAorICAgIGtISURVc2FnZV9LZXlib2FyZDggPSAweDI1LAorICAgIGtISURVc2FnZV9LZXlib2Fy
ZDkgPSAweDI2LAorICAgIGtISURVc2FnZV9LZXlib2FyZDAgPSAweDI3LAorICAgIGtISURVc2Fn
ZV9LZXlib2FyZFJldHVybk9yRW50ZXIgPSAweDI4LAorICAgIGtISURVc2FnZV9LZXlib2FyZEVz
Y2FwZSA9IDB4MjksCisgICAga0hJRFVzYWdlX0tleWJvYXJkRGVsZXRlT3JCYWNrc3BhY2UgPSAw
eDJBLAorICAgIGtISURVc2FnZV9LZXlib2FyZFRhYiA9IDB4MkIsCisgICAga0hJRFVzYWdlX0tl
eWJvYXJkU3BhY2ViYXIgPSAweDJDLAorICAgIGtISURVc2FnZV9LZXlib2FyZEh5cGhlbiA9IDB4
MkQsCisgICAga0hJRFVzYWdlX0tleWJvYXJkRXF1YWxTaWduID0gMHgyRSwKKyAgICBrSElEVXNh
Z2VfS2V5Ym9hcmRPcGVuQnJhY2tldCA9IDB4MkYsCisgICAga0hJRFVzYWdlX0tleWJvYXJkQ2xv
c2VCcmFja2V0ID0gMHgzMCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRCYWNrc2xhc2ggPSAweDMx
LAorICAgIGtISURVc2FnZV9LZXlib2FyZFNlbWljb2xvbiA9IDB4MzMsCisgICAga0hJRFVzYWdl
X0tleWJvYXJkUXVvdGUgPSAweDM0LAorICAgIGtISURVc2FnZV9LZXlib2FyZEdyYXZlQWNjZW50
QW5kVGlsZGUgPSAweDM1LAorICAgIGtISURVc2FnZV9LZXlib2FyZENvbW1hID0gMHgzNiwKKyAg
ICBrSElEVXNhZ2VfS2V5Ym9hcmRQZXJpb2QgPSAweDM3LAorICAgIGtISURVc2FnZV9LZXlib2Fy
ZFNsYXNoID0gMHgzOCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRGMSA9IDB4M0EsCisgICAga0hJ
RFVzYWdlX0tleWJvYXJkSG9tZSA9IDB4NEEsCisgICAga0hJRFVzYWdlX0tleWJvYXJkUGFnZVVw
ID0gMHg0QiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRFbmQgPSAweDRELAorICAgIGtISURVc2Fn
ZV9LZXlib2FyZFJpZ2h0QXJyb3cgPSAweDRGLAorICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRB
cnJvdyA9IDB4NTAsCisgICAga0hJRFVzYWdlX0tleWJvYXJkRG93bkFycm93ID0gMHg1MSwKKyAg
ICBrSElEVXNhZ2VfS2V5Ym9hcmRVcEFycm93ID0gMHg1MiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9h
cmRMZWZ0Q29udHJvbCA9IDB4RTAsCisgICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdFNoaWZ0ID0g
MHhFMSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0QWx0ID0gMHhFMgorfTsKKworV1RGX0VY
VEVSTl9DX0VORAorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmgKaW5kZXggNzBkOTQwMTRjOGQ3NTBjYjdk
NjU3MDgwNDUyOGUyMDhjYzJmNGE1NC4uMjRmMjdiMjg5MTdjMGUzNGNiN2RlYjczNjk1OTAzNzdi
YTdiZWQ2MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclBy
b3h5LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmgKQEAg
LTcxLDcgKzcxLDYgQEAgcHVibGljOgogICAgIHZvaWQgbW91c2VNb3ZlVG8oZG91YmxlIHgsIGRv
dWJsZSB5KTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5KTsKICAgICB2b2lk
IG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIGlu
dCBwaGFzZSwgaW50IG1vbWVudHVtKTsKLSAgICB2b2lkIHN3aXBlR2VzdHVyZVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50IHBoYXNlLCBpbnQgbW9tZW50dW0pOwog
ICAgIHZvaWQgY29udGludW91c01vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5LCBib29sIHBhZ2Vk
KTsKIAogICAgIHZvaWQgbGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcyk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2Vu
ZGluZ0NvbnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbAppbmRleCBmMzI4MGJiOTRiMDU0
MzcwMjQzMDIzZTI1MzM2ZGUxYWZhZTc5MzlmLi5kNWI4MDM4NDU5ZTc2Yjk4OTE0OTk4YzYwOWI2
ZjM2MTY3NDA3ZDgxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJv
bGxlci5pZGwKQEAgLTM0LDcgKzM0LDYgQEAgaW50ZXJmYWNlIEV2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIgewogICAgIHZvaWQgbW91c2VGb3JjZUNoYW5nZWQoZG91YmxlIGZvcmNlKTsKICAgICB2b2lk
IG1vdXNlU2Nyb2xsQnkobG9uZyB4LCBsb25nIHkpOwogICAgIHZvaWQgbW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGxvbmcgeCwgbG9uZyB5LCBET01TdHJpbmcgcGhhc2Us
IERPTVN0cmluZyBtb21lbnR1bSk7Ci0gICAgdm9pZCBzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcyhsb25nIHgsIGxvbmcgeSwgRE9NU3RyaW5nIHBoYXNlLCBET01TdHJpbmcg
bW9tZW50dW0pOwogICAgIHZvaWQgY29udGludW91c01vdXNlU2Nyb2xsQnkobG9uZyB4LCBsb25n
IHksIG9wdGlvbmFsIGJvb2xlYW4gcGFnZWQpOwogICAgIG9iamVjdCBjb250ZXh0Q2xpY2soKTsK
ICAgICB2b2lkIHNjaGVkdWxlQXN5bmNocm9ub3VzQ2xpY2soKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0Nv
bnRyb2xsZXIuY3BwCmluZGV4IDBmYWEyZjM5ODNjZjdhOTFlNzkxZmRmNzQ0MWY0Y2Q5ZDllOWYz
NTIuLjRjM2ZlZjg5MzA4NzhlMTRhNTk1M2JlMzdiNjJiOTMwOTI1MGY0NjAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJv
bGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVu
dFNlbmRpbmdDb250cm9sbGVyLmNwcApAQCAtNDgxLDM4ICs0ODEsNiBAQCB2b2lkIEV2ZW50U2Vu
ZGluZ0NvbnRyb2xsZXI6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhp
bnQgeCwgaW50CiAgICAgV0tCdW5kbGVQYWdlUG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNp
bmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBF
dmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAotdm9pZCBFdmVudFNlbmRpbmdDb250
cm9sbGVyOjpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50
IHksIEpTU3RyaW5nUmVmIHBoYXNlU3RyLCBKU1N0cmluZ1JlZiBtb21lbnR1bVN0cikKLXsKLSAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gRXZlbnRTZW5kZXJNZXNzYWdlTmFtZShBZG9wdFdL
LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRXZlbnRTZW5kZXIiKSk7Ci0gICAgV0tS
ZXRhaW5QdHI8V0tNdXRhYmxlRGljdGlvbmFyeVJlZj4gRXZlbnRTZW5kZXJNZXNzYWdlQm9keShB
ZG9wdFdLLCBXS011dGFibGVEaWN0aW9uYXJ5Q3JlYXRlKCkpOwotCi0gICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHN1Yk1lc3NhZ2VLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIlN1Yk1lc3NhZ2UiKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHN1
Yk1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTd2lw
ZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyIpKTsKLSAgICBXS0RpY3Rpb25hcnlT
ZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHN1Yk1lc3NhZ2VLZXkuZ2V0KCks
IHN1Yk1lc3NhZ2VOYW1lLmdldCgpKTsKLQotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB4
S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJYIikpOwotICAgIFdL
UmV0YWluUHRyPFdLRG91YmxlUmVmPiB4UmVmKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKHgpKTsK
LSAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHhL
ZXkuZ2V0KCksIHhSZWYuZ2V0KCkpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHlL
ZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlkiKSk7Ci0gICAgV0tS
ZXRhaW5QdHI8V0tEb3VibGVSZWY+IHlSZWYoQWRvcHRXSywgV0tEb3VibGVDcmVhdGUoeSkpOwot
ICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgeUtl
eS5nZXQoKSwgeVJlZi5nZXQoKSk7Ci0KLSAgICB1aW50NjRfdCBwaGFzZSA9IGNnRXZlbnRQaGFz
ZUZyb21TdHJpbmcocGhhc2VTdHIpOwotICAgIHVpbnQ2NF90IG1vbWVudHVtID0gY2dFdmVudE1v
bWVudHVtUGhhc2VGcm9tU3RyaW5nKG1vbWVudHVtU3RyKTsKLQotICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBwaGFzZUtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiUGhhc2UiKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IHBoYXNlUmVmKEFkb3B0
V0ssIFdLVUludDY0Q3JlYXRlKHBoYXNlKSk7Ci0gICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShFdmVu
dFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCBwaGFzZUtleS5nZXQoKSwgcGhhc2VSZWYuZ2V0KCkp
OwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1vbWVudHVtS2V5KEFkb3B0V0ssIFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJNb21lbnR1bSIpKTsKLSAgICBXS1JldGFpblB0
cjxXS1VJbnQ2NFJlZj4gbW9tZW50dW1SZWYoQWRvcHRXSywgV0tVSW50NjRDcmVhdGUobW9tZW50
dW0pKTsKLSAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0
KCksIG1vbWVudHVtS2V5LmdldCgpLCBtb21lbnR1bVJlZi5nZXQoKSk7Ci0KLSAgICBXS0J1bmRs
ZVBhZ2VGb3JjZVJlcGFpbnQoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFn
ZSgpKTsgLy8gVHJpZ2dlcnMgYSBzY3JvbGxpbmcgdHJlZSBjb21taXQuCi0gICAgV0tCdW5kbGVQ
YWdlUG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgp
LCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNlbmRlck1lc3NhZ2VCb2R5Lmdl
dCgpKTsKLX0KLQogdm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpjb250aW51b3VzTW91c2VT
Y3JvbGxCeShpbnQgeCwgaW50IHksIGJvb2wgcGFnZWQpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIkV2ZW50U2VuZGVyIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIu
aAppbmRleCBjMjNjMzZkZmFjNTU4NGY4NTFjNWY2MGZiNGQ1NjIyY2ZmNDIwMDRhLi4yOGZjZTlj
ZTZjYmU1N2MzZmY4ZThmOTgzZWJjNDJiNGUwOGIwZDJkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRy
b2xsZXIuaApAQCAtNTMsNyArNTMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3VzZUZvcmNlQ2hh
bmdlZChkb3VibGUgZm9yY2UpOwogICAgIHZvaWQgbW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHkp
OwogICAgIHZvaWQgbW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4
LCBpbnQgeSwgSlNTdHJpbmdSZWYgcGhhc2UsIEpTU3RyaW5nUmVmIG1vbWVudHVtKTsKLSAgICB2
b2lkIHN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwg
SlNTdHJpbmdSZWYgcGhhc2UsIEpTU3RyaW5nUmVmIG1vbWVudHVtKTsKICAgICB2b2lkIGNvbnRp
bnVvdXNNb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSwgYm9vbCBwYWdlZCk7CiAgICAgSlNWYWx1
ZVJlZiBjb250ZXh0Q2xpY2soKTsKICAgICB2b2lkIGxlYXBGb3J3YXJkKGludCBtaWxsaXNlY29u
ZHMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW0KaW5kZXggYWM1NGExYzZkNmQ4YzJj
NTBlMDgxZGI1YmRiODIxZDNlNjA4ZWMyZC4uY2FiM2YxOGIzNjU5ZjQ5MTZiZDUwMDg3OTI4NmQ2
YTI3YzBjOWY5MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL2lvcy9FdmVudFNlbmRlclByb3h5SU9TLm1tCkBAIC0xMDMsMTEg
KzEwMyw2IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50CiAgICAgLy8gV3JpdGUgbWUuCiB9CiAK
LXZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoaW50LCBpbnQsIGludCwgaW50KQotewotICAgIC8vIFdyaXRlIG1lLgotfQotCiB2b2lk
IEV2ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSwg
Ym9vbCBwYWdlZCkKIHsKICAgICAvLyBXcml0ZSBtZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDJlNDliYjVkYTg4ZWJkMzdkYTBlZGY2YjIyZDM1MWY3
YTJhZWZkOS4uYzczOGQxZTAxYjljYzc1YjllMWM0NWMxNzk3NTdlYjkwMTA5N2VkYSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTEyNTgsMjMgKzEyNTgs
NiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1
bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKLSAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoc3ViTWVzc2Fn
ZU5hbWUsICJTd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyIpKSB7Ci0gICAg
ICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4geEtleSA9IGFkb3B0V0soV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIlgiKSk7Ci0gICAgICAgICAgICBkb3VibGUgeCA9IFdLRG91
YmxlR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1G
b3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB4S2V5LmdldCgpKSkpOwotCi0gICAgICAgICAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4geUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIlkiKSk7Ci0gICAgICAgICAgICBkb3VibGUgeSA9IFdLRG91YmxlR2V0
VmFsdWUoc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXko
bWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB5S2V5LmdldCgpKSkpOwotCi0gICAgICAgICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gcGhhc2VLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJQaGFzZSIpKTsKLSAgICAgICAgICAgIGludCBwaGFzZSA9IHN0YXRpY19j
YXN0PGludD4oV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0
aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHBoYXNlS2V5LmdldCgp
KSkpKTsKLSAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtb21lbnR1bUtleSA9
IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIk1vbWVudHVtIikpOwotICAg
ICAgICAgICAgaW50IG1vbWVudHVtID0gc3RhdGljX2Nhc3Q8aW50PihXS1VJbnQ2NEdldFZhbHVl
KHN0YXRpY19jYXN0PFdLVUludDY0UmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3Nh
Z2VCb2R5RGljdGlvbmFyeSwgbW9tZW50dW1LZXkuZ2V0KCkpKSkpOwotCi0gICAgICAgICAgICBt
X2V2ZW50U2VuZGVyUHJveHktPnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KHgsIHksIHBoYXNlLCBtb21lbnR1bSk7Ci0KLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5ZGI5OGVhOWUwOWI5OWE2ZmM3YTE3MGU5ZTA0MGY0
NjZiMmE0NTAwLi41MWZkMjVhNTc2YTUyYjZmOWM4ZWYyOWQwYjNiZWU2ZDdkYTA0YWQ1IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RS
dW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMsNiArNjMsMTEgQEAKIAkJMjlB
OEZDREQxNDVGMDMzNzAwOTA0NUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4RkNF
MTM0NUU3MDIxMDA2QUE1QTYgLyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCAq
LzsgfTsKIAkJMjlBOEZDRTIxNDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjlBOEZDRTExNDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFu
Z2UuY3BwICovOyB9OwogCQkyOUE4RkNFNTE0NUYwNDY0MDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXJSYW5nZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI5QThGQ0U0MTQ1RjA0NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlclJhbmdlTWFjLm1tICovOyB9OworCQkyREI2MTg3RTFEN0Q1OEQ0MDA5NzhEMTkgLyog
Q29yZUdyYXBoaWNzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyREI2MTg3RDFEN0Q1OEQ0MDA5NzhEMTkgLyogQ29yZUdyYXBoaWNzU1BJLmggKi87
IH07CisJCTJERDRDNDlBMUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERDRDNDk4MUQ2
RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMuaCAqLzsgfTsKKwkJMkRENEM0OUIx
RDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERDRDNDk5MUQ2RTdEM0IwMDA3Mzc5QyAv
KiBFdmVudFNlcmlhbGl6ZXJNYWMubW0gKi87IH07CisJCTJERkE5ODQ4MUQ3RjcwQ0YwMEFGRjJD
OSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJERkE5ODQ2MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVu
dFN0cmVhbXNNYWMuaCAqLzsgfTsKKwkJMkRGQTk4NDkxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJl
ZEV2ZW50U3RyZWFtc01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJERkE5ODQ3MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNN
YWMubW0gKi87IH07CiAJCTJFMzRDOTAwMThCNjg4MDgwMDAwNjdCQiAvKiBXZWJLaXRUZXN0UnVu
bmVySW5qZWN0ZWRCdW5kbGUuYnVuZGxlIGluIENvcHkgUGx1Zy1JbnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNTE4NjIxMUQxNUQ1NDAwMkVCQzAxIC8qIFdlYktpdFRl
c3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5idW5kbGUgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoQ29kZVNpZ25PbkNvcHksIFJlbW92ZUhlYWRlcnNPbkNvcHksICk7IH07IH07CiAJCTJFNjNF
RDhBMTg5MUFEN0UwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNjNFRDc1MTg5MUFD
RTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbSAqLzsgfTsKIAkJMkU2
M0VEOEIxODkxQUQ3RTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU2M0VENzcxODkx
QUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tICovOyB9OwpAQCAt
MjExLDcgKzIxNiw3IEBACiAJCTBGRUI5MEEzMTkwNUJDNkEwMDBGREJGMyAvKiBDcmFzaFJlcG9y
dGVySW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENyYXNo
UmVwb3J0ZXJJbmZvLm1tOyBwYXRoID0gY29jb2EvQ3Jhc2hSZXBvcnRlckluZm8ubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRUJGODU4MUJCNjFERjIwMDI4NzIyRCAvKiBISURF
dmVudEdlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBISURFdmVu
dEdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVCRjg1OTFCQjYx
REYyMDAyODcyMkQgLyogSElERXZlbnRHZW5lcmF0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBISURFdmVudEdlbmVyYXRvci5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMEZFQkY4NUIxQkI2MkEzNzAwMjg3MjJEIC8qIElPS2l0U1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IElPS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBG
RUJGODVCMUJCNjJBMzcwMDI4NzIyRCAvKiBJT0tpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJT0tp
dFNQSS5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9zcGkvSU9LaXRTUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQkY4NUMxQkI2MkQ0NjAwMjg3MjJEIC8qIFVJS2l0
U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVJS2l0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFBMzMyNjA1MUI3NTM5NjUwMEY4OUY2MiAvKiBUZXN0T3B0aW9ucy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBUZXN0T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0Ey
MTFDNzFCQ0ExMDczMDBCMjEwMUYgLyogRm9udFdpdGhGZWF0dXJlcy5vdGYgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gRm9udFdp
dGhGZWF0dXJlcy5vdGY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDAsNyArMjQ1
LDEyIEBACiAJCTI5QThGQ0UxMzQ1RTcwMjEwMDZBQTVBNiAvKiBKU0FjY2Vzc2liaWxpdHlUZXh0
TWFya2VyUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjlBOEZDRTEzNDVFNzAyMTAwNkFBNUE3IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXJSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FjY2Vzc2liaWxp
dHlUZXh0TWFya2VyUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBOEZD
RTQxNDVGMDQ2NDAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlclJhbmdlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREI2MTg3
RDFEN0Q1OEQ0MDA5NzhEMTkgLyogQ29yZUdyYXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IENvcmVHcmFwaGljc1NQSS5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNo
YXJlZC9zcGkvQ29yZUdyYXBoaWNzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJEQ0UyQ0QxMUI4NDUyNDUwMEM3RjgzMiAvKiBUZXN0Q29udHJvbGxlckNvY29hLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGVzdENvbnRyb2xsZXJDb2NvYS5t
bTsgcGF0aCA9IGNvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJERDRDNDk4MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJN
YWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRXZlbnRTZXJpYWxpemVyTWFj
Lmg7IHBhdGggPSBtYWMvRXZlbnRTZXJpYWxpemVyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTJERDRDNDk5MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBFdmVudFNlcmlhbGl6
ZXJNYWMubW07IHBhdGggPSBtYWMvRXZlbnRTZXJpYWxpemVyTWFjLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyREZBOTg0NjFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRT
dHJlYW1zTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNoYXJlZEV2ZW50
U3RyZWFtc01hYy5oOyBwYXRoID0gbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyREZBOTg0NzFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVk
RXZlbnRTdHJlYW1zTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tOyBwYXRoID0gbWFjL1NoYXJlZEV2ZW50U3RyZWFt
c01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU2M0VENzUxODkxQUNFOTAw
MkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNjNFRDc2MTg5MUFDRTkwMDJBN0FGQyAvKiBB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRTYzRUQ3NzE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTQ3Niw3ICs0ODYsOSBAQAogCQkwRjczQjU0NzFCQTc4MkZFMDA0QjNFRjQgLyog
VUlTY3JpcHRDb250ZXh0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQkyREI2MTg3RjFEN0Q1OTg4MDA5NzhEMTkgLyogc3BpICovLAogCQkJCTBGNzNCNTRC
MUJBNzgzNTAwMDRCM0VGNCAvKiBCaW5kaW5ncyAqLywKKwkJCQkyREQ0QzQ5NzFENkU3RDNCMDAw
NzM3OUMgLyogRXZlbnQgU2VyaWFsaXphdGlvbiAqLywKIAkJCQkwRjczQjU0RTFCQTc4OTU0MDA0
QjNFRjQgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTBGMThFNkREMUQ2QjlBQUYwMDI3RTU0
NyAvKiBVSVNjcmlwdENvbnRleHQuY3BwICovLAogCQkJCTBGMThFNkRFMUQ2QjlBQUYwMDI3RTU0
NyAvKiBVSVNjcmlwdENvbnRleHQuaCAqLywKQEAgLTU1NCw2ICs1NjYsMzUgQEAKIAkJCW5hbWUg
PSBBY2Nlc3NpYmlsaXR5OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMkRC
NjE4N0YxRDdENTk4ODAwOTc4RDE5IC8qIHNwaSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJMkRCNjE4N0QxRDdENThENDAwOTc4RDE5IC8qIENvcmVHcmFw
aGljc1NQSS5oICovLAorCQkJCTBGRUJGODVCMUJCNjJBMzcwMDI4NzIyRCAvKiBJT0tpdFNQSS5o
ICovLAorCQkJKTsKKwkJCW5hbWUgPSBzcGk7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwor
CQl9OworCQkyREQ0QzQ5NzFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnQgU2VyaWFsaXphdGlvbiAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMkRGQTk4NEEx
RDdGNzlFMDAwQUZGMkM5IC8qIG1hYyAqLywKKwkJCSk7CisJCQluYW1lID0gIkV2ZW50IFNlcmlh
bGl6YXRpb24iOworCQkJcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0
aW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMkRGQTk4NEExRDdGNzlF
MDAwQUZGMkM5IC8qIG1hYyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkJMkRENEM0OTgxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5o
ICovLAorCQkJCTJERDRDNDk5MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMu
bW0gKi8sCisJCQkJMkRGQTk4NDYxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFt
c01hYy5oICovLAorCQkJCTJERkE5ODQ3MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0
cmVhbXNNYWMubW0gKi8sCisJCQkpOworCQkJbmFtZSA9IG1hYzsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CiAJCTJFNjNFRDc0MTg5MUFDRTkwMDJBN0FGQyAvKiBpb3MgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNTkxLDcgKzYzMiw2IEBA
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRkVCRjg1ODFCQjYxREYyMDAyODcyMkQgLyogSElERXZl
bnRHZW5lcmF0b3IuaCAqLywKIAkJCQkwRkVCRjg1OTFCQjYxREYyMDAyODcyMkQgLyogSElERXZl
bnRHZW5lcmF0b3IubW0gKi8sCi0JCQkJMEZFQkY4NUIxQkI2MkEzNzAwMjg3MjJEIC8qIElPS2l0
U1BJLmggKi8sCiAJCQkJMkVFNTJEMTMxODkwQTlGQjAwMTBFRDIxIC8qIFBsYXRmb3JtV2ViVmll
d0lPUy5tbSAqLywKIAkJCQkyRUU1MkQxNDE4OTBBOUZCMDAxMEVEMjEgLyogVGVzdENvbnRyb2xs
ZXJJT1MubW0gKi8sCiAJCQkJMEZFQkY4NUMxQkI2MkQ0NjAwMjg3MjJEIC8qIFVJS2l0U1BJLmgg
Ki8sCkBAIC03NzgsNyArODE4LDEwIEBACiAJCQlpc2EgPSBQQlhIZWFkZXJzQnVpbGRQaGFzZTsK
IAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQkyREI2
MTg3RTFEN0Q1OEQ0MDA5NzhEMTkgLyogQ29yZUdyYXBoaWNzU1BJLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjczQjU1MjFCQTc4OTY4MDA0QjNFRjQgLyogSlNVSVNjcmlwdENvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTJERkE5ODQ4MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVu
dFN0cmVhbXNNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCTJERDRDNDlBMUQ2RTdEM0IwMDA3Mzc5
QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtOTg2LDggKzEwMjks
MTAgQEAKIAkJCQkwRjczQjU1MTFCQTc4OTY4MDA0QjNFRjQgLyogSlNVSVNjcmlwdENvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxOEU3MTgxRDZCQzQ1NjAwMjdFNTQ3IC8qIEpT
V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTAzQzFCOUFFMEZFMDA3NDRBRUIg
LyogT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyREQ0QzQ5QjFENkU3RDNCMDAwNzM3
OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwNDAx
QjlBRTEzMTAwNzQ0QUVCIC8qIFBpeGVsRHVtcFN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTE4NTEwNDExQjlBRTEzODAwNzQ0QUVCIC8qIFRlc3RDb250cm9sbGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTJERkE5ODQ5MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVh
bXNNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTAzQjFCOUFFMEUyMDA3NDRBRUIgLyog
VGVzdENvbnRyb2xsZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDQyMUI5QUUx
M0UwMDc0NEFFQiAvKiBUZXN0SW52b2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTg1
MTAzRDFCOUFFMTA2MDA3NDRBRUIgLyogVGVzdEludm9jYXRpb25DRy5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL0V2ZW50U2VuZGVyUHJv
eHlFZmwuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvRXZlbnRTZW5kZXJQcm94eUVm
bC5jcHAKaW5kZXggMzhhZTA0Zjc5YjY5Y2JiZjc1MGIxMmE5ZWZhYjFjYTVhNTg5ZDVjYi4uN2E2
OGM3ZjI5N2RlMjUxZGFhZDMzM2JhMWU0MWE5OGIxOWVmNjhmNiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9lZmwvRXZlbnRTZW5kZXJQcm94eUVmbC5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9lZmwvRXZlbnRTZW5kZXJQcm94eUVmbC5jcHAKQEAgLTM5OSwxMSAr
Mzk5LDYgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBpbnQKICAgICBtb3VzZVNjcm9sbEJ5KHgsIHkp
OwogfQogCi12b2lkIEV2ZW50U2VuZGVyUHJveHk6OnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKGludCwgaW50LCBpbnQsIGludCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotfQotCiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmxlYXBGb3J3YXJkKGludCBtaWxsaXNlY29u
ZHMpCiB7CiAgICAgaWYgKG1fZXZlbnRRdWV1ZS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCmluZGV4IDAyM2VkYzgx
MDVjNTUxMGVhYmZmYzVlMjBjMzNhNDcxNjcxNjNhM2YuLjNjM2FlMGNlODJlZmM3ODljMzM5ZDBj
ZWUwMzJlMjBhODQ0NzUxNjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3Rr
L0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3Rr
L0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCkBAIC00NTEsMTEgKzQ1MSw2IEBAIHZvaWQgRXZlbnRT
ZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4
LCBpbnQgeSwgaW50CiAgICAgbW91c2VTY3JvbGxCeSh4LCB5KTsKIH0KIAotdm9pZCBFdmVudFNl
bmRlclByb3h5Ojpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQsIGlu
dCwgaW50LCBpbnQpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9pZCBFdmVudFNl
bmRlclByb3h5OjpsZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKQogewogICAgIGlmIChtX2V2
ZW50UXVldWUuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9p
b3MvSU9LaXRTUEkuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL0lPS2l0U1BJLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlNjUyYTQyYTBkNmUxNWJhM2EyMmI1ZTA2ZmNl
MDM4ODhkODU1NTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvSU9LaXRTUEkuaAorKysgL2Rldi9udWxsCkBA
IC0xLDE5NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBJT0tpdFNQSV9oCi0jZGVmaW5l
IElPS2l0U1BJX2gKLQotI2ltcG9ydCA8d3RmL1BsYXRmb3JtLmg+Ci0KLSNpZiBQTEFURk9STShJ
T1MpCi0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotCi0jaW1wb3J0IDxJT0tpdC9oaWQv
SU9ISURFdmVudC5oPgotI2ltcG9ydCA8SU9LaXQvaGlkL0lPSElERXZlbnREYXRhLmg+Ci0jaW1w
b3J0IDxJT0tpdC9oaWQvSU9ISURFdmVudFN5c3RlbUNsaWVudC5oPgotI2ltcG9ydCA8SU9LaXQv
aGlkL0lPSElEVXNhZ2VUYWJsZXMuaD4KLQotI2Vsc2UKLQotV1RGX0VYVEVSTl9DX0JFR0lOCi0K
LSNpZmRlZiBfX0xQNjRfXwotdHlwZWRlZiBkb3VibGUgSU9ISURGbG9hdDsKLSNlbHNlCi10eXBl
ZGVmIGZsb2F0IElPSElERmxvYXQ7Ci0jZW5kaWYKLQotZW51bSB7Ci0gICAga0lPSElERXZlbnRP
cHRpb25Ob25lID0gMCwKLX07Ci0KLXR5cGVkZWYgVUludDMyIElPT3B0aW9uQml0czsKLXR5cGVk
ZWYgdWludDMyX3QgSU9ISURFdmVudE9wdGlvbkJpdHM7Ci10eXBlZGVmIHVpbnQzMl90IElPSElE
RXZlbnRGaWVsZDsKLQotdHlwZWRlZiBzdHJ1Y3QgX19JT0hJREV2ZW50U3lzdGVtQ2xpZW50ICog
SU9ISURFdmVudFN5c3RlbUNsaWVudFJlZjsKLXR5cGVkZWYgc3RydWN0IF9fSU9ISURFdmVudCAq
IElPSElERXZlbnRSZWY7Ci0KLSNkZWZpbmUgSU9ISURFdmVudEZpZWxkQmFzZSh0eXBlKSAodHlw
ZSA8PCAxNikKLQotZW51bSB7Ci0gICAga0hJRFBhZ2VfS2V5Ym9hcmRPcktleXBhZCAgICAgICA9
IDB4MDcsCi0gICAga0hJRFBhZ2VfVmVuZG9yRGVmaW5lZFN0YXJ0ICAgICA9IDB4RkYwMAotfTsK
LQotZW51bSB7Ci0gICAga0lPSElERGlnaXRpemVyRXZlbnRSYW5nZSAgICAgICA9IDE8PDAsCi0g
ICAga0lPSElERGlnaXRpemVyRXZlbnRUb3VjaCAgICAgICA9IDE8PDEsCi0gICAga0lPSElERGln
aXRpemVyRXZlbnRQb3NpdGlvbiAgICA9IDE8PDIsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRJ
ZGVudGl0eSAgICA9IDE8PDUsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRBdHRyaWJ1dGUgICA9
IDE8PDYsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRDYW5jZWwgICAgICA9IDE8PDcsCi0gICAg
a0lPSElERGlnaXRpemVyRXZlbnRTdGFydCAgICAgICA9IDE8PDgsCi0gICAga0lPSElERGlnaXRp
emVyRXZlbnRFc3RpbWF0ZWRBbHRpdHVkZSA9IDE8PDI4LAotICAgIGtJT0hJRERpZ2l0aXplckV2
ZW50RXN0aW1hdGVkQXppbXV0aCA9IDE8PDI5LAotICAgIGtJT0hJRERpZ2l0aXplckV2ZW50RXN0
aW1hdGVkUHJlc3N1cmUgPSAxPDwzMCwKLX07Ci10eXBlZGVmIHVpbnQzMl90IElPSElERGlnaXRp
emVyRXZlbnRNYXNrOwotCi1lbnVtIHsKLSAgICBrSU9ISURFdmVudFR5cGVOVUxMLAotICAgIGtJ
T0hJREV2ZW50VHlwZVZlbmRvckRlZmluZWQsCi0gICAga0lPSElERXZlbnRUeXBlS2V5Ym9hcmQg
PSAzLAotICAgIGtJT0hJREV2ZW50VHlwZURpZ2l0aXplciA9IDExLAotfTsKLXR5cGVkZWYgdWlu
dDMyX3QgSU9ISURFdmVudFR5cGU7Ci0KLWVudW0gewotICAgIGtJT0hJREV2ZW50RmllbGRWZW5k
b3JEZWZpbmVkVXNhZ2VQYWdlID0gSU9ISURFdmVudEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVW
ZW5kb3JEZWZpbmVkKSwKLSAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFJlc2VydmVk
LAotICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkUmVzZXJ2ZWQxLAotICAgIGtJT0hJ
REV2ZW50RmllbGRWZW5kb3JEZWZpbmVkRGF0YUxlbmd0aCwKLSAgICBrSU9ISURFdmVudEZpZWxk
VmVuZG9yRGVmaW5lZERhdGEKLX07Ci0KLWVudW0gewotICAgIGtJT0hJREV2ZW50RmllbGREaWdp
dGl6ZXJYID0gSU9ISURFdmVudEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVEaWdpdGl6ZXIpLAot
ICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJZLAotICAgIGtJT0hJREV2ZW50RmllbGREaWdp
dGl6ZXJNYWpvclJhZGl1cyA9IGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJYICsgMjAsCi0gICAg
a0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1pbm9yUmFkaXVzLAotICAgIGtJT0hJREV2ZW50Rmll
bGREaWdpdGl6ZXJJc0Rpc3BsYXlJbnRlZ3JhdGVkID0ga0lPSElERXZlbnRGaWVsZERpZ2l0aXpl
ck1ham9yUmFkaXVzICsgNSwKLX07Ci0KLWVudW0gewotICAgIGtJT0hJRFRyYW5zZHVjZXJSYW5n
ZSAgICAgICAgICAgICAgID0gMHgwMDAxMDAwMCwKLSAgICBrSU9ISURUcmFuc2R1Y2VyVG91Y2gg
ICAgICAgICAgICAgICA9IDB4MDAwMjAwMDAsCi0gICAga0lPSElEVHJhbnNkdWNlckludmVydCAg
ICAgICAgICAgICAgPSAweDAwMDQwMDAwLAotICAgIGtJT0hJRFRyYW5zZHVjZXJEaXNwbGF5SW50
ZWdyYXRlZCAgID0gMHgwMDA4MDAwMAotfTsKLQotZW51bSB7Ci0gICAga0lPSElERGlnaXRpemVy
VHJhbnNkdWNlclR5cGVIYW5kID0gMwotfTsKLXR5cGVkZWYgdWludDMyX3QgSU9ISUREaWdpdGl6
ZXJUcmFuc2R1Y2VyVHlwZTsKLQotZW51bSB7Ci0gICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXpl
cldpbGxVcGRhdGVNYXNrID0gNzIwOTI0LAotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJE
aWRVcGRhdGVNYXNrID0gNzIwOTI1Ci19OwotCi1JT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVh
dGVEaWdpdGl6ZXJFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIElPSElERGlnaXRpemVy
VHJhbnNkdWNlclR5cGUsIHVpbnQzMl90LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1h
c2ssIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZs
b2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsKLQot
SU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlRGlnaXRpemVyRmluZ2VyRXZlbnQoQ0ZBbGxv
Y2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIElPSElERGlnaXRpemVyRXZl
bnRNYXNrLCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJ
T0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOwot
Ci1JT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVGb3JjZUV2ZW50KENGQWxsb2NhdG9yUmVm
LCB1aW50NjRfdCwgdWludDMyX3QsIElPSElERmxvYXQsIHVpbnQzMl90LCBJT0hJREZsb2F0LCBJ
T0hJREV2ZW50T3B0aW9uQml0cyk7Ci0KLUlPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZUtl
eWJvYXJkRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3Qs
IGJvb2xlYW5fdCwgSU9PcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3Jl
YXRlVmVuZG9yRGVmaW5lZEV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3Qs
IHVpbnQzMl90LCB1aW50MzJfdCwgdWludDhfdCosIENGSW5kZXgsIElPSElERXZlbnRPcHRpb25C
aXRzKTsKLQotSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlRGlnaXRpemVyU3R5bHVzRXZl
bnRXaXRoUG9sYXJPcmllbnRhdGlvbihDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIHVpbnQzMl90
LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIHVpbnQzMl90LCBJT0hJREZsb2F0
LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZs
b2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBib29sZWFuX3QsIGJvb2xlYW5fdCwgSU9ISURF
dmVudE9wdGlvbkJpdHMpOwotCi1JT0hJREV2ZW50VHlwZSBJT0hJREV2ZW50R2V0VHlwZShJT0hJ
REV2ZW50UmVmKTsKLQotdm9pZCBJT0hJREV2ZW50U2V0RmxvYXRWYWx1ZShJT0hJREV2ZW50UmVm
LCBJT0hJREV2ZW50RmllbGQsIElPSElERmxvYXQpOwotCi1DRkluZGV4IElPSElERXZlbnRHZXRJ
bnRlZ2VyVmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxkKTsKLXZvaWQgSU9ISURF
dmVudFNldEludGVnZXJWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50RmllbGQsIENGSW5k
ZXgpOwotCi12b2lkIElPSElERXZlbnRBcHBlbmRFdmVudChJT0hJREV2ZW50UmVmLCBJT0hJREV2
ZW50UmVmLCBJT09wdGlvbkJpdHMpOwotCi1JT0hJREV2ZW50U3lzdGVtQ2xpZW50UmVmIElPSElE
RXZlbnRTeXN0ZW1DbGllbnRDcmVhdGUoQ0ZBbGxvY2F0b3JSZWYpOwotCi0jZGVmaW5lIGtHU0V2
ZW50UGF0aEluZm9JblJhbmdlICgxIDw8IDApCi0jZGVmaW5lIGtHU0V2ZW50UGF0aEluZm9JblRv
dWNoICgxIDw8IDEpCi0KLWVudW0gewotICAgIGtISURVc2FnZV9LZXlib2FyZEEgPSAweDA0LAot
ICAgIGtISURVc2FnZV9LZXlib2FyZDEgPSAweDFFLAotICAgIGtISURVc2FnZV9LZXlib2FyZDIg
PSAweDFGLAotICAgIGtISURVc2FnZV9LZXlib2FyZDMgPSAweDIwLAotICAgIGtISURVc2FnZV9L
ZXlib2FyZDQgPSAweDIxLAotICAgIGtISURVc2FnZV9LZXlib2FyZDUgPSAweDIyLAotICAgIGtI
SURVc2FnZV9LZXlib2FyZDYgPSAweDIzLAotICAgIGtISURVc2FnZV9LZXlib2FyZDcgPSAweDI0
LAotICAgIGtISURVc2FnZV9LZXlib2FyZDggPSAweDI1LAotICAgIGtISURVc2FnZV9LZXlib2Fy
ZDkgPSAweDI2LAotICAgIGtISURVc2FnZV9LZXlib2FyZDAgPSAweDI3LAotICAgIGtISURVc2Fn
ZV9LZXlib2FyZFJldHVybk9yRW50ZXIgPSAweDI4LAotICAgIGtISURVc2FnZV9LZXlib2FyZEVz
Y2FwZSA9IDB4MjksCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRGVsZXRlT3JCYWNrc3BhY2UgPSAw
eDJBLAotICAgIGtISURVc2FnZV9LZXlib2FyZFRhYiA9IDB4MkIsCi0gICAga0hJRFVzYWdlX0tl
eWJvYXJkU3BhY2ViYXIgPSAweDJDLAotICAgIGtISURVc2FnZV9LZXlib2FyZEh5cGhlbiA9IDB4
MkQsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRXF1YWxTaWduID0gMHgyRSwKLSAgICBrSElEVXNh
Z2VfS2V5Ym9hcmRPcGVuQnJhY2tldCA9IDB4MkYsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkQ2xv
c2VCcmFja2V0ID0gMHgzMCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRCYWNrc2xhc2ggPSAweDMx
LAotICAgIGtISURVc2FnZV9LZXlib2FyZFNlbWljb2xvbiA9IDB4MzMsCi0gICAga0hJRFVzYWdl
X0tleWJvYXJkUXVvdGUgPSAweDM0LAotICAgIGtISURVc2FnZV9LZXlib2FyZEdyYXZlQWNjZW50
QW5kVGlsZGUgPSAweDM1LAotICAgIGtISURVc2FnZV9LZXlib2FyZENvbW1hID0gMHgzNiwKLSAg
ICBrSElEVXNhZ2VfS2V5Ym9hcmRQZXJpb2QgPSAweDM3LAotICAgIGtISURVc2FnZV9LZXlib2Fy
ZFNsYXNoID0gMHgzOCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRGMSA9IDB4M0EsCi0gICAga0hJ
RFVzYWdlX0tleWJvYXJkSG9tZSA9IDB4NEEsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkUGFnZVVw
ID0gMHg0QiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRFbmQgPSAweDRELAotICAgIGtISURVc2Fn
ZV9LZXlib2FyZFJpZ2h0QXJyb3cgPSAweDRGLAotICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRB
cnJvdyA9IDB4NTAsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRG93bkFycm93ID0gMHg1MSwKLSAg
ICBrSElEVXNhZ2VfS2V5Ym9hcmRVcEFycm93ID0gMHg1MiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9h
cmRMZWZ0Q29udHJvbCA9IDB4RTAsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdFNoaWZ0ID0g
MHhFMSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0QWx0ID0gMHhFMgotfTsKLQotV1RGX0VY
VEVSTl9DX0VORAotCi0jZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLQotI2VuZGlm
IC8vIFBMQVRGT1JNKElPUykKLQotI2VuZGlmIC8vIElPS2l0U1BJX2gKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0gYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tCmluZGV4IDE5YjVhMzdiMzZkZDEy
Yjc0MDIyMWUzNjM3YjA0YjFmNjgyNTE0ZGYuLjhjNmI5ZGNiMGY1NDAxMzBmM2NiMjJkM2VmNTRj
N2YwZmIxZTk0M2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50
U2VuZGVyUHJveHkubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5k
ZXJQcm94eS5tbQpAQCAtNDUsMTcgKzQ1LDYgQEAKIC0gKHZvaWQpX3Bvc3REZWxheWVkOwogQGVu
ZAogCi0jaWYgZGVmaW5lZChfX0xQNjRfXykKLXN0cnVjdCBXS1RSQ0dTRXZlbnRSZWNvcmQgewot
ICAgIGNoYXIgb2Zmc2V0MVsxNTBdOwotICAgIHVpbnQ4X3QgcGhhc2U7Ci0gICAgY2hhciBvZmZz
ZXQyWzEzXTsKLSAgICBmbG9hdCBkZWx0YVg7Ci0gICAgZmxvYXQgZGVsdGFZOwotICAgIGNoYXIg
b2Zmc2V0M1s3Nl07Ci19IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwotI2VuZGlmCi0KIEBpbnRl
cmZhY2UgRXZlbnRTZW5kZXJTeW50aGV0aWNFdmVudCA6IE5TRXZlbnQgewogQHB1YmxpYwogICAg
IE5TUG9pbnQgX2V2ZW50U2VuZGVyX2xvY2F0aW9uSW5XaW5kb3c7CkBAIC03MCwxMSArNTksNiBA
QCBzdHJ1Y3QgV0tUUkNHU0V2ZW50UmVjb3JkIHsKICAgICBzaG9ydCBfZXZlbnRTZW5kZXJfc3Vi
dHlwZTsKICAgICBOU0V2ZW50VHlwZSBfZXZlbnRTZW5kZXJfdHlwZTsKICAgICBOU1dpbmRvdyAq
X2V2ZW50U2VuZGVyX3dpbmRvdzsKLQotCi0jaWYgZGVmaW5lZChfX0xQNjRfXykKLSAgICBXS1RS
Q0dTRXZlbnRSZWNvcmQgX2V2ZW50U2VuZGVyX2Nnc0V2ZW50UmVjb3JkOwotI2VuZGlmCiB9CiAK
IC0gKGlkKWluaXRQcmVzc3VyZUV2ZW50QXRMb2NhdGlvbjooTlNQb2ludClsb2NhdGlvbiBnbG9i
YWxMb2NhdGlvbjooTlNQb2ludClnbG9iYWxMb2NhdGlvbiBzdGFnZTooTlNJbnRlZ2VyKXN0YWdl
IHByZXNzdXJlOihmbG9hdClwcmVzc3VyZSBzdGFnZVRyYW5zaXRpb246KGZsb2F0KXN0YWdlVHJh
bnNpdGlvbiBwaGFzZTooTlNFdmVudFBoYXNlKXBoYXNlIHRpbWU6KE5TVGltZUludGVydmFsKXRp
bWUgZXZlbnROdW1iZXI6KE5TSW50ZWdlcilldmVudE51bWJlciB3aW5kb3c6KE5TV2luZG93ICop
d2luZG93OwpAQCAtMTY3LDEzICsxNTEsNiBAQCBzdHJ1Y3QgV0tUUkNHU0V2ZW50UmVjb3JkIHsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiBkZWZpbmVkKF9fTFA2NF9fKQotLSAoV0tUUkNH
U0V2ZW50UmVjb3JkKV9jZ3NFdmVudFJlY29yZAotewotICAgIHJldHVybiBfZXZlbnRTZW5kZXJf
Y2dzRXZlbnRSZWNvcmQ7Ci19Ci0jZW5kaWYKLQogLSAoTlNXaW5kb3cgKil3aW5kb3cKIHsKICAg
ICByZXR1cm4gX2V2ZW50U2VuZGVyX3dpbmRvdzsKQEAgLTg5MCw1MCArODY3LDQgQEAgdm9pZCBF
dmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
aW50IHgsIGludCB5LCBpbnQKICAgICB9CiB9CiAKLXN0YXRpYyBOU0V2ZW50UGhhc2UgbnNFdmVu
dFBoYXNlRnJvbUNHRXZlbnRQaGFzZShpbnQgcGhhc2UpCi17Ci0gICAgc3dpdGNoIChwaGFzZSkg
ewotICAgIGNhc2UgMDogLy8ga0NHU0dlc3R1cmVQaGFzZU5vbmUKLSAgICAgICAgcmV0dXJuIE5T
RXZlbnRQaGFzZU5vbmU7Ci0gICAgY2FzZSAxOiAvLyBrQ0dTR2VzdHVyZVBoYXNlQmVnYW4KLSAg
ICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZUJlZ2FuOwotICAgIGNhc2UgMjogLy8ga0NHU0dlc3R1
cmVQaGFzZUNoYW5nZWQKLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZUNoYW5nZWQ7Ci0gICAg
Y2FzZSA0OiAvLyBrQ0dTR2VzdHVyZVBoYXNlRW5kZWQKLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQ
aGFzZUVuZGVkOwotICAgIGNhc2UgODogLy8ga0NHU0dlc3R1cmVQaGFzZUNhbmNlbGxlZAotICAg
ICAgICByZXR1cm4gTlNFdmVudFBoYXNlQ2FuY2VsbGVkOwotICAgIGNhc2UgMTI4OiAvLyBrQ0dT
R2VzdHVyZVBoYXNlTWF5QmVnaW4KLSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZU1heUJlZ2lu
OwotICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBOU0V2ZW50
UGhhc2VOb25lOwotfQotCi12b2lkIEV2ZW50U2VuZGVyUHJveHk6OnN3aXBlR2VzdHVyZVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50IHBoYXNlLCBpbnQgbW9tZW50
dW0pCi17Ci0gICAgUmV0YWluUHRyPEV2ZW50U2VuZGVyU3ludGhldGljRXZlbnQ+IGV2ZW50ID0g
YWRvcHROUyhbW0V2ZW50U2VuZGVyU3ludGhldGljRXZlbnQgYWxsb2NdIGluaXRdKTsKLQotICAg
IC8vICJtYXlCZWdpbiIgYSBzd2lwZSBpcyBhY3R1YWxseSBhIHNjcm9sbCB3aGVlbCBldmVudC4K
LSAgICBldmVudC0+X2V2ZW50U2VuZGVyX3R5cGUgPSAocGhhc2UgPT0gMTI4KSA/IE5TU2Nyb2xs
V2hlZWwgOiBOU0V2ZW50VHlwZUdlc3R1cmU7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9zdWJ0
eXBlID0gNjsgLy8ga0lPSElERXZlbnRUeXBlU2Nyb2xsCi0gICAgZXZlbnQtPl9ldmVudFNlbmRl
cl9sb2NhdGlvbkluV2luZG93ID0gTlNNYWtlUG9pbnQobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9u
LnkpOwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfbG9jYXRpb24gPSAoW21fdGVzdENvbnRyb2xs
ZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtV2luZG93KCkgY29udmVydFJlY3RUb1NjcmVlbjpO
U01ha2VSZWN0KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55LCAxLCAxKV0ub3JpZ2luKTsKLSAg
ICBldmVudC0+X2V2ZW50U2VuZGVyX3BoYXNlID0gbnNFdmVudFBoYXNlRnJvbUNHRXZlbnRQaGFz
ZShwaGFzZSk7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9tb21lbnR1bVBoYXNlID0gbnNFdmVu
dFBoYXNlRnJvbUNHRXZlbnRQaGFzZShtb21lbnR1bSk7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRl
cl90aW1lc3RhbXAgPSBhYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgp
KTsKLSAgICBldmVudC0+X2V2ZW50U2VuZGVyX2V2ZW50TnVtYmVyID0gKytldmVudE51bWJlcjsK
LQotI2lmIGRlZmluZWQoX19MUDY0X18pCi0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9jZ3NFdmVu
dFJlY29yZC5waGFzZSA9IHBoYXNlOwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfY2dzRXZlbnRS
ZWNvcmQuZGVsdGFYID0gKGZsb2F0KXg7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9jZ3NFdmVu
dFJlY29yZC5kZWx0YVkgPSAoZmxvYXQpeTsKLSNlbHNlCi0gICAgTlNMb2coQCJTeW50aGV0aWMg
c3dpcGUgZ2VzdHVyZXMgYXJlIG5vdCBpbXBsZW1lbnRlZCBmb3IgMzItYml0IFdlYktpdFRlc3RS
dW5uZXIuIik7Ci0jZW5kaWYKLQotICAgIFtOU0FwcCBzZW5kRXZlbnQ6ZXZlbnQuZ2V0KCldOwot
fQotCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
bWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQppbmRleCA0ZjZjY2ViYTdkM2ZiNDA5ODVhMDYy
MTcyMGNiOGExYzBlYjI0NzVkLi5iMDUwZDBkZWFjMGVmOWY2YmE1N2ExMjZiZmE2MDU4MmZmNmQz
YmUyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRy
b2xsZXJNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250
cm9sbGVyTWFjLm1tCkBAIC0yNiw3ICsyNiwxMiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1w
b3J0ICJVSVNjcmlwdENvbnRyb2xsZXIuaCIKIAorI2ltcG9ydCAiRXZlbnRTZXJpYWxpemVyTWFj
LmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbXBvcnQgIlNoYXJlZEV2ZW50U3Ry
ZWFtc01hYy5oIgorI2ltcG9ydCAiVGVzdENvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlVJU2NyaXB0
Q29udGV4dC5oIgorI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWZDRi5oPgogCiBu
YW1lc3BhY2UgV1RSIHsKIApAQCAtNDEsNCArNDYsMzkgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xs
ZXI6OmRvQXN5bmNUYXNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCiAgICAgfSk7CiB9CiAKK3N0YXRp
YyB2b2lkIHBsYXlCYWNrRXZlbnRzKFVJU2NyaXB0Q29udGV4dCAqY29udGV4dCwgTlNTdHJpbmcg
KmV2ZW50U3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIE5TRXJyb3IgKmVycm9y
ID0gbmlsOworICAgIE5TQXJyYXkgKmV2ZW50RGljdHMgPSBbTlNKU09OU2VyaWFsaXphdGlvbiBK
U09OT2JqZWN0V2l0aERhdGE6W2V2ZW50U3RyZWFtIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0
cmluZ0VuY29kaW5nXSBvcHRpb25zOjAgZXJyb3I6JmVycm9yXTsKKworICAgIGlmIChlcnJvcikg
eworICAgICAgICBOU0xvZyhAIkVSUk9SOiAlQCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIHVuc2lnbmVkIGNhbGxiYWNrSUQgPSBjb250ZXh0LT5wcmVwYXJlRm9yQXN5
bmNUYXNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVOb25QZXJzaXN0ZW50KTsKKworICAgIE5TV2lu
ZG93ICp3aW5kb3cgPSBbVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCkt
PnBsYXRmb3JtVmlldygpIHdpbmRvd107CisKKyAgICBbRXZlbnRTdHJlYW1QbGF5ZXIgcGxheVN0
cmVhbTpldmVudERpY3RzIHdpbmRvdzp3aW5kb3cgY29tcGxldGlvbkhhbmRsZXI6XiB7CisgICAg
ICAgIGNvbnRleHQtPmFzeW5jVGFza0NvbXBsZXRlKGNhbGxiYWNrSUQpOworICAgIH1dOworfQor
Cit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVnaW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxs
YmFjaykKK3sKKyAgICBwbGF5QmFja0V2ZW50cyhtX2NvbnRleHQsIGJlZ2luU3dpcGVCYWNrRXZl
bnRTdHJlYW0oKSwgY2FsbGJhY2spOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6Y29t
cGxldGVCYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBwbGF5QmFja0V2ZW50
cyhtX2NvbnRleHQsIGNvbXBsZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0oKSwgY2FsbGJhY2spOwor
fQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFt
KEpTU3RyaW5nUmVmIGV2ZW50U3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIFJl
dGFpblB0cjxOU1N0cmluZz4gbnNTdHJpbmcgPSBhZG9wdE5TKChOU1N0cmluZyAqKUpTU3RyaW5n
Q29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGV2ZW50U3RyZWFtKSk7CisgICAgcGxh
eUJhY2tFdmVudHMobV9jb250ZXh0LCBuc1N0cmluZy5nZXQoKSwgY2FsbGJhY2spOworfQorCiB9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggYjcwYjg1ZDdhYjY3ZmVhODRlMDNmNTk3ZmM3ZTdkZjhhYzBjMmZjNy4uMmI0MGE0
NTNlMTE4OWE3MTNjNDFiYTE2NzI0N2MxZTJkMDBkZTRhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBA
CisyMDE2LTA5LTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisg
ICAgICAgIFN3aXBlIGdlc3R1cmUgdGVzdHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHN3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWw6CisgICAgICAg
ICogc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBzd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbDoKKyAgICAg
ICAgKiBzd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHN3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sOgorICAgICAgICAq
IHN3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2st
d2hpbGUtc3dpcGluZy1jcmFzaC5odG1sOgorICAgICAgICAqIHN3aXBlL3Jlc291cmNlcy9zd2lw
ZS10ZXN0LmpzOgorICAgICAgICAobWVhc3VyZWREdXJhdGlvblNob3VsZEJlTGVzc1RoYW4pOgor
ICAgICAgICAoc3RhcnRTd2lwZUdlc3R1cmUpOgorICAgICAgICAoY29tcGxldGVTd2lwZUdlc3R1
cmUpOgorICAgICAgICAocGxheUV2ZW50U3RyZWFtKToKKyAgICAgICAgKGV2ZW50UXVldWUuZW5x
dWV1ZVNjcm9sbEV2ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKGV2ZW50UXVldWUuZW5xdWV1ZVN3
aXBlRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAoZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRz
KTogRGVsZXRlZC4KKyAgICAgICAgKGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaCk6
IERlbGV0ZWQuCisgICAgICAgIChldmVudFF1ZXVlLl9wcm9jZXNzRXZlbnRRdWV1ZSk6IERlbGV0
ZWQuCisgICAgICAgIChldmVudFF1ZXVlLl9wcm9jZXNzRXZlbnRRdWV1ZVNvb24pOiBEZWxldGVk
LgorICAgICAgICAqIHN3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHN3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMt
ZmFpbHVyZXMuaHRtbDogUmVtb3ZlZC4KKwogMjAxNi0wOS0wNyAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgdGhlIDxtZXRlcj4gZWxlbWVu
dCBvbiBpT1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCA5MmM0N2MxZTkwMTY2ZGM4OWVhZGJhNGNlM2ZhNzQ4YTIyZjNlZjE4Li5lZTZkZDE0
ZGRhY2Y5NjBjYmZjNTZjNmFkMDljZDA2ZjJjN2Q0MDhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC01MTQsMTIgKzUxNCw2IEBAIHdlYmtp
dC5vcmcvYi8xNTg2MzkgWyBSZWxlYXNlIFlvc2VtaXRlIF0gaW1wb3J0ZWQvYmxpbmsvc3RvcmFn
ZS9pbmRleGVkZGIvYmxvYi1kCiAjIDxyZGFyOi8vcHJvYmxlbS8yNTA2MzEyOD4KIFsgU2llcnJh
KyBdIG1lZGlhL21lZGlhLWNvbnRyb2xzLWRyYWctdGltZWxpbmUtc2V0LWNvbnRyb2xzLXByb3Bl
cnR5Lmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCi0jIDxyZGFyOi8vcHJvYmxlbS8yMzM3OTkzMD4g
c3dpcGUgdGVzdHMgY3Jhc2hpbmcKLVsgU2llcnJhKyBdIHN3aXBlL2Jhc2ljLWNhY2hlZC1iYWNr
LXN3aXBlLmh0bWwgWyBTa2lwIF0KLVsgU2llcnJhKyBdIHN3aXBlL21haW4tZnJhbWUtcGlubmlu
Zy1yZXF1aXJlbWVudC5odG1sIFsgU2tpcCBdCi1bIFNpZXJyYSsgXSBzd2lwZS9wdXNoU3RhdGUt
Y2FjaGVkLWJhY2stc3dpcGUuaHRtbCBbIFNraXAgXQotWyBTaWVycmErIF0gc3dpcGUvc3dpcGUt
c3RhcnQtaHlzdGVyZXNpcy1mYWlsdXJlcy5odG1sIFsgU2tpcCBdCi0KICMgSGl0dGluZyAiVGhl
IGNlcnRpZmljYXRlIGZvciB0aGlzIHNlcnZlciBpcyBpbnZhbGlkIiBsb2FkaW5nIGVycm9yIChu
b3QgaGFwcGVuaW5nIGluIFdLMSkKIHdlYmtpdC5vcmcvYi8xNjA0NDUgWyBTaWVycmErIF0gaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXBncmFkZS1pbnNlY3VyZS1y
ZXF1ZXN0cy91cGdyYWRlLWluc2VjdXJlLWZldGNoLWluLXdvcmtlci5odG1sIFsgRmFpbHVyZSBd
CiB3ZWJraXQub3JnL2IvMTYwNDQ1IFsgU2llcnJhKyBdIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvdXBncmFkZS1pbnNl
Y3VyZS1mZXRjaC1pbi1tYWluLWZyYW1lLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dAppbmRl
eCBlM2QzZTAwYWI5ZDBiZmZmZTY2OWQ2YWQ4OWEwMTdhZjU3ZjcwYjg5Li44OWRlY2ZkNGMzNzEy
NWNmYjU1OTgxMTk2ODljM2YwYzRhMWQ4ODRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lw
ZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDYg
QEAKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZl
bnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBw
aGFzZSAnY2hhbmdlZCcpCitzdGFydFN3aXBlR2VzdHVyZQogZGlkQmVnaW5Td2lwZQotc3dpcGUg
ZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDI1
NiAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5k
ZWQnKQorY29tcGxldGVTd2lwZUdlc3R1cmUKIHdpbGxFbmRTd2lwZQogZGlkRW5kU3dpcGUKIGRp
ZFJlbW92ZVN3aXBlU25hcHNob3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL2Jhc2lj
LWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQt
YmFjay1zd2lwZS5odG1sCmluZGV4IGNmN2Y3NWNiMTM5YjU0YjUxNTE3OGEwNzNiOThhZDA2NzNk
ZGE2ODMuLjg3MWEyYmM2NDZiOGQ0YWU4Njk0NjM3ZTgwMDNhM2I0YjMyNDVhNmIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbApAQCAtNiwyOCAr
NiwxMCBAQCBodG1sIHsKIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRl
c3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHN0YXJ0U3dpcGVHZXN0dXJlKCkK
LXsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7Ci0KLSAgICBldmVudFF1
ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUu
ZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1
ZVNjcm9sbEV2ZW50KDEsIDAsICdjaGFuZ2VkJyk7Ci19Ci0KLWZ1bmN0aW9uIGNvbXBsZXRlU3dp
cGVHZXN0dXJlKCkKLXsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDEsIDAsICdj
aGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgyNTYsIDAsICdjaGFu
Z2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnZW5kZWQnKTsK
LX0KLQogZnVuY3Rpb24gZGlkQmVnaW5Td2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRpZEJl
Z2luU3dpcGUiKTsKIAotICAgIHNob3VsZEJlKGZhbHNlLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdF
dmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBiZSBlbXB0eS4gQm90aCBzY3JvbGwgZXZlbnRz
IHNob3VsZCBiZSByZXF1aXJlZCB0byBzdGFydCB0aGUgc3dpcGUgYmVjYXVzZSBvZiB0aGUgc3dp
cGUtc3RhcnQgaHlzdGVyZXNpcy4iKTsKLQogICAgIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCk7CiB9
CiAKQEAgLTQyLDcgKzI0LDYgQEAgZnVuY3Rpb24gZGlkRW5kU3dpcGVDYWxsYmFjaygpCiB7CiAg
ICAgbG9nKCJkaWRFbmRTd2lwZSIpOwogCi0gICAgc2hvdWxkQmUoMCwgZXZlbnRRdWV1ZS5oYXNQ
ZW5kaW5nRXZlbnRzKCksICJFdmVudCBxdWV1ZSBzaG91bGQgYmUgZW1wdHkuIFRoZSBzd2lwZSBp
c24ndCBjb21wbGV0ZSB1bnRpbCB3ZSBzZWUgdGhlIGVuZCBvZiB0aGUgZ2VzdHVyZS4iKTsKICAg
ICBzdGFydE1lYXN1cmluZ0R1cmF0aW9uKCJzbmFwc2hvdFJlbW92YWwiKTsKIH0KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJl
bWVudC1leHBlY3RlZC50eHQKaW5kZXggNjM1OTc0MDU0ODQ3NmM4ZDA5ZmI0YmIzN2M3NTI0NGI5
MGIzOTBkNi4uY2U3NjY4MTk3MjIwOTUzNWUyNGNlMDczNzBlMzA2YTA5ODI1MGNmZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVx
dWlyZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDIzICsxLDggQEAKLXN3aXBlIGV2ZW50IChkZWx0
YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNl
ICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNj
cm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChk
ZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBo
YXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQn
KQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZl
bnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAg
MCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hh
bmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9s
bCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAg
MCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnYmVn
YW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCitzdGFydFN3
aXBlR2VzdHVyZQorY29tcGxldGVTd2lwZUdlc3R1cmUKK3N0YXJ0U3dpcGVHZXN0dXJlCiBkaWRC
ZWdpblN3aXBlCi1zd2lwZSBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lw
ZSBldmVudCAoZGVsdGEgMjU2IDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0
YSAwIDAsIHBoYXNlICdlbmRlZCcpCitjb21wbGV0ZVN3aXBlR2VzdHVyZQogd2lsbEVuZFN3aXBl
CiBkaWRFbmRTd2lwZQogZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbAppbmRleCA2MjE1
NTQ0ODRmMDRmZjM5NzViZjJmNDE4ZTE4ZmVjODNjNjJmMzViLi5hMzY5YjgyMWI5ZDljMmUwMzc4
ZGY2MjcyZWQwMTlmNTJhZTJlYWI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9tYWlu
LWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9t
YWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbApAQCAtNiw0OCArNiwyNCBAQCBodG1s
IHsKIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRlc3QuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHN0YXJ0U3dpcGVHZXN0dXJlKCkKLXsKLSAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7CiAKK2Z1bmN0aW9uIHJ1blRlc3QoKQorewog
ICAgIC8vIFRoZSBmaXJzdCBzd2lwZSBzaG91bGQgZmFpbCBiZWNhdXNlIHdlJ3JlIHNjcm9sbGVk
IHRvIHRoZSBtaWRkbGUgb2YgdGhlIGRvY3VtZW50CiAgICAgLy8gYW5kIHRoaXMgaXMgYWxsIGEg
c2luZ2xlIGdlc3R1cmUuIFdlIGNhbiBvbmx5IHN0YXJ0IHN3aXBlcyBpZiB3ZSAqYmVnaW4qCiAg
ICAgLy8gcGlubmVkIHRvIHRoZSBlZGdlLgotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZl
bnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQo
MTAsIDAsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAw
LCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAn
Y2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hh
bmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdl
ZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcp
OwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwot
ICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAg
IGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2
ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50
UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVl
dWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdlbmRlZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5j
YWxsQWZ0ZXJFdmVudERpc3BhdGNoKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5j
bGVhclRlc3RSdW5uZXJDYWxsYmFja3MoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlk
QmVnaW5Td2lwZUNhbGxiYWNrKGRpZEJlZ2luU3dpcGVDYWxsYmFjayk7Ci0gICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbFdpbGxFbmRTd2lwZUNhbGxiYWNrKHdpbGxFbmRTd2lwZUNhbGxiYWNrKTsK
LSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkRW5kU3dpcGVDYWxsYmFjayhkaWRFbmRTd2lw
ZUNhbGxiYWNrKTsKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkUmVtb3ZlU3dpcGVTbmFw
c2hvdENhbGxiYWNrKGRpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayk7CisgICAgc3RhcnRT
d2lwZUdlc3R1cmUoZnVuY3Rpb24gKCkgeworICAgICAgICBjb21wbGV0ZVN3aXBlR2VzdHVyZShm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmNsZWFyVGVzdFJ1bm5lckNhbGxi
YWNrcygpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkQmVnaW5Td2lwZUNhbGxi
YWNrKGRpZEJlZ2luU3dpcGVDYWxsYmFjayk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxXaWxsRW5kU3dpcGVDYWxsYmFjayh3aWxsRW5kU3dpcGVDYWxsYmFjayk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxEaWRFbmRTd2lwZUNhbGxiYWNrKGRpZEVuZFN3aXBlQ2FsbGJh
Y2spOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkUmVtb3ZlU3dpcGVTbmFwc2hv
dENhbGxiYWNrKGRpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayk7ICAgIAogCi0gICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgLy8gVGhlIHNlY29uZCBzd2lw
ZSBzaG91bGQgc3VjY2VlZCBiZWNhdXNlIHdlIGFyZSBub3cgc2Nyb2xsZWQgdG8gdGhlIGxlZnQg
ZWRnZS4KLSAgICAgICAgICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21h
eWJlZ2luJyk7Ci0gICAgICAgICAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAw
LCAnYmVnYW4nKTsKLSAgICAgICAgICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEw
LCAwLCAnY2hhbmdlZCcpOwotICAgICAgICB9LCAwKTsKLSAgICB9KQotfQotCi1mdW5jdGlvbiBj
b21wbGV0ZVN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVu
dCgxLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMjU2
LCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwg
J2VuZGVkJyk7CisgICAgICAgICAgICBzdGFydFN3aXBlR2VzdHVyZShmdW5jdGlvbiAoKSB7IGNv
bXBsZXRlU3dpcGVHZXN0dXJlKCk7IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKIH0KIAogZnVu
Y3Rpb24gZGlkQmVnaW5Td2lwZU5vdFJlYWNoZWRDYWxsYmFjaygpCkBAIC01OCwxMCArMzQsNiBA
QCBmdW5jdGlvbiBkaWRCZWdpblN3aXBlTm90UmVhY2hlZENhbGxiYWNrKCkKIGZ1bmN0aW9uIGRp
ZEJlZ2luU3dpcGVDYWxsYmFjaygpCiB7CiAgICAgbG9nKCJkaWRCZWdpblN3aXBlIik7Ci0KLSAg
ICBzaG91bGRCZShmYWxzZSwgZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJFdmVudCBx
dWV1ZSBzaG91bGQgYmUgZW1wdHkuIEJvdGggc2Nyb2xsIGV2ZW50cyBzaG91bGQgYmUgcmVxdWly
ZWQgdG8gc3RhcnQgdGhlIHN3aXBlIGJlY2F1c2Ugb2YgdGhlIHN3aXBlLXN0YXJ0IGh5c3RlcmVz
aXMuIik7Ci0KLSAgICBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpOwogfQogCiBmdW5jdGlvbiB3aWxs
RW5kU3dpcGVDYWxsYmFjaygpCkBAIC03NSw3ICs0Nyw2IEBAIGZ1bmN0aW9uIGRpZEVuZFN3aXBl
Q2FsbGJhY2soKQogewogICAgIGxvZygiZGlkRW5kU3dpcGUiKTsKIAotICAgIHNob3VsZEJlKDAs
IGV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpLCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVt
cHR5LiBUaGUgc3dpcGUgaXNuJ3QgY29tcGxldGUgdW50aWwgd2Ugc2VlIHRoZSBlbmQgb2YgdGhl
IGdlc3R1cmUuIik7CiAgICAgc3RhcnRNZWFzdXJpbmdEdXJhdGlvbigic25hcHNob3RSZW1vdmFs
Iik7CiB9CiAKQEAgLTEyMSw4ICs5Miw5IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7
CiAgICAgfQogCiAgICAgLy8gU2Vjb25kIHBhZ2UgbG9hZGVkLgotICAgIHdpbmRvdy5zY3JvbGxU
bygxMDAwLCAwKTsKLSAgICBzdGFydFN3aXBlR2VzdHVyZSgpOworICAgIHdpbmRvdy5zY3JvbGxU
bygxMDAsIDApOworCisgICAgcnVuVGVzdCgpOwogfTsKIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lw
ZS1leHBlY3RlZC50eHQKaW5kZXggZTNkM2UwMGFiOWQwYmZmZmU2NjlkNmFkODlhMDE3YWY1N2Y3
MGI4OS4uODlkZWNmZDRjMzcxMjVjZmI1NTk4MTE5Njg5YzNmMGM0YTFkODg0ZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUt
ZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDYgQEAKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBo
YXNlICdtYXliZWdpbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykK
LXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcpCitzdGFydFN3aXBlR2Vz
dHVyZQogZGlkQmVnaW5Td2lwZQotc3dpcGUgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5n
ZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDI1NiAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBl
dmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQorY29tcGxldGVTd2lwZUdlc3R1cmUKIHdp
bGxFbmRTd2lwZQogZGlkRW5kU3dpcGUKIGRpZFJlbW92ZVN3aXBlU25hcHNob3QKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sIGIv
TGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKaW5kZXgg
NTZkYWRhNDg5MDQyOGM0OWRkMmQ3MWY3Njg2MDkwNGUwMWY4NDMxZi4uOWE4ZGM5ZDdkOWExMDg4
NzU5MjVlZTRkMjg5OTdlNTM4NjJlMzg3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUv
cHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUv
cHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKQEAgLTYsMjggKzYsMTEgQEAgaHRtbCB7
CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9zd2lwZS10ZXN0LmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiBzdGFydFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAxMDApOwotCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dp
cGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxF
dmVudCgxLCAwLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgx
LCAwLCAnY2hhbmdlZCcpOwotfQotCi1mdW5jdGlvbiBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpCi17
Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgxLCAwLCAnY2hhbmdlZCcpOwotICAg
IGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMjU2LCAwLCAnY2hhbmdlZCcpOwotICAgIGV2
ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci19CiAKIGZ1bmN0aW9u
IGRpZEJlZ2luU3dpcGVDYWxsYmFjaygpCiB7CiAgICAgbG9nKCJkaWRCZWdpblN3aXBlIik7CiAK
LSAgICBzaG91bGRCZShmYWxzZSwgZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJFdmVu
dCBxdWV1ZSBzaG91bGQgYmUgZW1wdHkuIEJvdGggc2Nyb2xsIGV2ZW50cyBzaG91bGQgYmUgcmVx
dWlyZWQgdG8gc3RhcnQgdGhlIHN3aXBlIGJlY2F1c2Ugb2YgdGhlIHN3aXBlLXN0YXJ0IGh5c3Rl
cmVzaXMuIik7Ci0KICAgICBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpOwogfQogCkBAIC00Miw3ICsy
NSw2IEBAIGZ1bmN0aW9uIGRpZEVuZFN3aXBlQ2FsbGJhY2soKQogewogICAgIGxvZygiZGlkRW5k
U3dpcGUiKTsKIAotICAgIHNob3VsZEJlKDAsIGV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygp
LCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5LiBUaGUgc3dpcGUgaXNuJ3QgY29tcGxldGUg
dW50aWwgd2Ugc2VlIHRoZSBlbmQgb2YgdGhlIGdlc3R1cmUuIik7CiAgICAgc3RhcnRNZWFzdXJp
bmdEdXJhdGlvbigic25hcHNob3RSZW1vdmFsIik7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNo
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMt
YmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4cGVjdGVkLnR4dAppbmRleCBkYzM0ZTkyZDU4ODRl
YjhkMWQzMTUxNWI1YTg4NjI3NTZlYjI5MzQyLi4wMDUwNzU1ZjU3MzdkNGNkN2EzYzI0YzU3NjI0
YjdhN2RmMWMyNjNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJv
Z3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmct
Y3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNCBAQAotc3dpcGUgZXZlbnQgKGRlbHRhIDAg
MCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnYmVn
YW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2
ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAyNTYg
MCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVk
JykKK3BsYXlFdmVudFN0cmVhbQorcGxheUV2ZW50U3RyZWFtCitjb21wbGV0ZVN3aXBlR2VzdHVy
ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGlj
LWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0
YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbAppbmRleCAzNmVm
MzlmYjQzZTQzMGRiOTE0NjAzODQ2ZmQyYmY3ZTMyOTA2MzAxLi4zZjg3YTAzOWVlN2E5M2NiNjRh
MmYwZTY1ZDUwY2JhMDk3MDQ2Y2MwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNo
U3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5n
LWNyYXNoLmh0bWwKQEAgLTYsMzcgKzYsNjcgQEAgaHRtbCB7CiA8L3N0eWxlPgogPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zd2lwZS10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlv
biBzdGFydFN3aXBlR2VzdHVyZSgpCitmdW5jdGlvbiBydW5UZXN0KCkKIHsKLSAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7Ci0KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lw
ZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2
ZW50KDEsIDAsICdiZWdhbicpOwotICAgIAotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnRE
aXNwYXRjaChnb0JhY2spOworICAgIHBsYXlFdmVudFN0cmVhbShgW3sKKyAgICAgICAgInJlbGF0
aXZlVGltZU1TIiA6IDAsCisgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIg
OiAxLAorICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAia0NH
U0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDog
MTI4LAorICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iCisgICAgICB9LAor
ICAgICAgeworICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogOCwKKyAgICAgICAgImtDR0V2ZW50
R2VzdHVyZUhJRFR5cGUiIDogNjEsCisgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjks
CisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTdGFydEVuZFNlcmllc1R5cGUiIDogNiwKKyAgICAg
ICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7MCwgMH0iCisgICAgICB9LAorICAgICAgeworICAgICAg
ICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAicmVsYXRpdmVUaW1lTVMi
IDogOCwKKyAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAg
ImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDEsCisgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1
cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAyCisgICAgICB9LAorICAgICAgeworICAg
ICAgICAicmVsYXRpdmVUaW1lTVMiIDogOCwKKyAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7
NDAwLCAzMDB9IiwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAx
LAorICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxLAorICAgICAgICAia0NH
U0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICB9XWAsIGdvQmFjayk7CiB9CiAKIGZ1bmN0aW9u
IGdvQmFjaygpCiB7CiAgICAgd2luZG93Lmhpc3RvcnkuYmFjaygpOwogCi0gICAgZXZlbnRRdWV1
ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKGNvbnRpbnVlU3dpcGVHZXN0dXJlKTsKKyAgICBzZXRU
aW1lb3V0KGNvbnRpbnVlVGVzdCwgMCk7CiB9CiAKLWZ1bmN0aW9uIGNvbnRpbnVlU3dpcGVHZXN0
dXJlKCkKK2Z1bmN0aW9uIGNvbnRpbnVlVGVzdCgpCiB7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVl
U2Nyb2xsRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLQotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVy
RXZlbnREaXNwYXRjaChjb21wbGV0ZVN3aXBlR2VzdHVyZSk7CisgICAgcGxheUV2ZW50U3RyZWFt
KGBbCisgICAgICB7CisgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAwLAorICAgICAgICAid2lu
ZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dFNjcm9sbFBoYXNlIiA6IDEsCisgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51
b3VzIiA6IDEsCisgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6
IDIwLAorICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICB9XWAsIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgY29tcGxldGVUZXN0KCk7CisgICAgICB9KTsKIH0KIAotZnVuY3Rp
b24gY29tcGxldGVTd2lwZUdlc3R1cmUoKQorZnVuY3Rpb24gY29tcGxldGVUZXN0KCkKIHsKLSAg
ICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDEsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgyNTYsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRR
dWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnZW5kZWQnKTsKLQotICAgIGV2ZW50UXVldWUu
Y2FsbEFmdGVyRXZlbnREaXNwYXRjaCh0ZXN0Q29tcGxldGUpOworICAgIGNvbXBsZXRlU3dpcGVH
ZXN0dXJlKHRlc3RDb21wbGV0ZSk7CiB9CiAKIGZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVDYWxsYmFj
aygpCkBAIC03OSw3ICsxMDksNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAg
ICAgICB1cGRhdGVDb250ZW50KCk7CiAKICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7
Ci0gICAgICAgICAgICBzdGFydFN3aXBlR2VzdHVyZSgpOworICAgICAgICAgICAgcnVuVGVzdCgp
OwogICAgICAgICB9LCAwKTsKICAgICB9LCAwKTsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zd2lwZS9yZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyBiL0xheW91dFRlc3RzL3N3aXBlL3Jlc291
cmNlcy9zd2lwZS10ZXN0LmpzCmluZGV4IGRkOGU5MDA5ZmZlODQ5NTkwMDk5ZmQxODMyM2JjZTM3
M2I3NDA2ODAuLjBjMjM2NWQxMzEzYTE4MDY3N2I5MWFmMmI0NDkzM2FlNDA4MzhjY2QgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzCisrKyBiL0xh
eW91dFRlc3RzL3N3aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzCkBAIC0xLDUwICsxLDMgQEAK
LXZhciBldmVudFF1ZXVlID0gewotICAgIGVucXVldWVTY3JvbGxFdmVudDogZnVuY3Rpb24gKHgs
IHksIHBoYXNlKSB7Ci0gICAgICAgIHRoaXMuX3F1ZXVlLnB1c2goZnVuY3Rpb24gKCkgewotICAg
ICAgICAgICAgbG9nKCJzY3JvbGwgZXZlbnQgKGRlbHRhICIgKyB4ICsgIiAiICsgeSArICIsIHBo
YXNlICciICsgcGhhc2UgKyAiJykiKTsKLSAgICAgICAgICAgIHdpbmRvdy5ldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoeCwgeSwgcGhhc2UsICdub25l
Jyk7Ci0gICAgICAgIH0pOwotICAgICAgICB0aGlzLl9wcm9jZXNzRXZlbnRRdWV1ZVNvb24oKTsK
LSAgICB9LAotCi0gICAgZW5xdWV1ZVN3aXBlRXZlbnQ6IGZ1bmN0aW9uICh4LCB5LCBwaGFzZSkg
ewotICAgICAgICB0aGlzLl9xdWV1ZS5wdXNoKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGxv
Zygic3dpcGUgZXZlbnQgKGRlbHRhICIgKyB4ICsgIiAiICsgeSArICIsIHBoYXNlICciICsgcGhh
c2UgKyAiJykiKTsKLSAgICAgICAgICAgIHdpbmRvdy5ldmVudFNlbmRlci5zd2lwZUdlc3R1cmVX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyh4LCB5LCBwaGFzZSwgJ25vbmUnKTsKLSAgICAgICAg
fSk7Ci0gICAgICAgIHRoaXMuX3Byb2Nlc3NFdmVudFF1ZXVlU29vbigpOwotICAgIH0sCi0KLSAg
ICBoYXNQZW5kaW5nRXZlbnRzOiBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9x
dWV1ZS5sZW5ndGggIT0gMDsKLSAgICB9LAotCi0gICAgY2FsbEFmdGVyRXZlbnREaXNwYXRjaDog
ZnVuY3Rpb24gKGNhbGxiYWNrKSB7Ci0gICAgICAgIHZhciBpbnRlcnZhbCA9IHNldEludGVydmFs
KGZ1bmN0aW9uICgpIHsgCi0gICAgICAgICAgICBpZiAoIWV2ZW50UXVldWUuaGFzUGVuZGluZ0V2
ZW50cygpKSB7Ci0gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7Ci0gICAg
ICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwgMCk7Ci0g
ICAgfSwKLQotICAgIF9xdWV1ZTogW10sCi0KLSAgICBfcHJvY2Vzc0V2ZW50UXVldWU6IGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgaWYgKCF0aGlzLl9xdWV1ZS5sZW5ndGgpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLl9xdWV1ZS5zaGlmdCgpOwotICAgICAg
ICBpdGVtKCk7Ci0gICAgICAgIHRoaXMuX3Byb2Nlc3NFdmVudFF1ZXVlU29vbigpOwotICAgIH0s
Ci0KLSAgICBfcHJvY2Vzc0V2ZW50UXVldWVTb29uOiBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGNs
ZWFyVGltZW91dCh0aGlzLl9wcm9jZXNzaW5nVGltZW91dCk7Ci0gICAgICAgIHRoaXMuX3Byb2Nl
c3NpbmdUaW1lb3V0ID0gc2V0VGltZW91dCh0aGlzLl9wcm9jZXNzRXZlbnRRdWV1ZS5iaW5kKHRo
aXMpLCAwKTsKLSAgICB9Ci19Ci0KIGZ1bmN0aW9uIHNob3VsZEJlKGV4cGVjdGVkLCBhY3R1YWws
IG1lc3NhZ2UpCiB7CiAgICAgaWYgKGV4cGVjdGVkICE9IGFjdHVhbCkKQEAgLTg0LDQgKzM3LDM3
IEBAIGZ1bmN0aW9uIG1lYXN1cmVkRHVyYXRpb25TaG91bGRCZUxlc3NUaGFuKGtleSwgdGltZUlu
TVMsIG1lc3NhZ2UpCiAgICAgdmFyIGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHdpbmRvdy5sb2Nh
bFN0b3JhZ2Vba2V5ICsgInN3aXBlU3RhcnRUaW1lIl07CiAgICAgaWYgKGR1cmF0aW9uID49IHRp
bWVJbk1TKQogICAgICAgICBsb2coIkZhaWx1cmUuICIgKyBtZXNzYWdlICsgIiAoZXhwZWN0ZWQ6
ICIgKyB0aW1lSW5NUyArICIsIGFjdHVhbDogIiArIGR1cmF0aW9uICsgIikiKTsKLX0KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9CisKK2Z1bmN0aW9uIHN0YXJ0U3dpcGVHZXN0dXJlKGNh
bGxiYWNrKQoreworICAgIGxvZygic3RhcnRTd2lwZUdlc3R1cmUiKTsKKyAgICB0ZXN0UnVubmVy
LnJ1blVJU2NyaXB0KGAKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHVpQ29udHJvbGxlci5i
ZWdpbkJhY2tTd2lwZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNj
cmlwdENvbXBsZXRlKCk7CisgICAgICAgIH0pOworICAgIH0pKCk7YCwgY2FsbGJhY2sgfHwgZnVu
Y3Rpb24gKCkge30pOworfQorCitmdW5jdGlvbiBjb21wbGV0ZVN3aXBlR2VzdHVyZShjYWxsYmFj
aykKK3sKKyAgICBsb2coImNvbXBsZXRlU3dpcGVHZXN0dXJlIik7CisgICAgdGVzdFJ1bm5lci5y
dW5VSVNjcmlwdChgCisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICB1aUNvbnRyb2xsZXIuY29t
cGxldGVCYWNrU3dpcGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlT
Y3JpcHRDb21wbGV0ZSgpOworICAgICAgICB9KTsKKyAgICB9KSgpO2AsIGNhbGxiYWNrIHx8IGZ1
bmN0aW9uICgpIHt9KTsKK30KKworZnVuY3Rpb24gcGxheUV2ZW50U3RyZWFtKHN0cmVhbSwgY2Fs
bGJhY2spCit7CisgICAgbG9nKCJwbGF5RXZlbnRTdHJlYW0iKTsKKyAgICB0ZXN0UnVubmVyLnJ1
blVJU2NyaXB0KGAKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHVpQ29udHJvbGxlci5wbGF5
QmFja0V2ZW50U3RyZWFtKFxgJHtzdHJlYW19XGAsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
dWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgfSk7CisgICAgfSkoKTtg
LCBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTQ4MGE5ODA0Y2UyMTkxNGM4Zjk4
MmY1YmMwMTE5ZTdkZWJlNTc5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVy
ZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotc3dpcGUgZXZl
bnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAw
LCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdjaGFuZ2Vk
JykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQotc3dpcGUgZXZlbnQg
KGRlbHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMiAyLCBw
aGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdjaGFuZ2VkJykK
LXNjcm9sbCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRl
bHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAyLCBwaGFz
ZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNj
cm9sbCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRh
IDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAn
YmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDIsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9s
bCBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAg
MCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMyAxLCBwaGFzZSAnYmVn
YW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBl
dmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwg
cGhhc2UgJ2VuZGVkJykKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3Rh
cnQtaHlzdGVyZXNpcy1mYWlsdXJlcy5odG1sIGIvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3Rh
cnQtaHlzdGVyZXNpcy1mYWlsdXJlcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlNzVlNjdiOTc0MTIzOTJjZGIxNDQ3ZWE1N2MyYjA1NTUyM2M1ZjA5Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3N3aXBl
LXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExOSAr
MCwwIEBACi08aGVhZD4KLTxzdHlsZT4KLWh0bWwgewotICAgIGZvbnQtc2l6ZTogMzJwdDsKLX0K
LTwvc3R5bGU+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRlc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLWZ1bmN0aW9uIGRvU2hvcnRTd2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKLQotICAgIC8vIFRvdGFsIGRlbHRhIG9mIDEw
LCAwOyBzaG91bGQgbm90IGJlIGVub3VnaCB0byBzdGFydCBhIHN3aXBlLgotICAgIGV2ZW50UXVl
dWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5l
bnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVl
U2Nyb2xsRXZlbnQoMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3Jv
bGxFdmVudCgwLCAwLCAnZW5kZWQnKTsKLQotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnRE
aXNwYXRjaChkb0RpYWdvbmFsU3dpcGVHZXN0dXJlKTsKLX0KLQotZnVuY3Rpb24gZG9EaWFnb25h
bFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgLy8gVG90YWwgZGVsdGEgb2YgMjAsIDIwOyB0aGlzIGlz
IG9yZGluYXJpbHkgc3VmZmljaWVudCBtYWduaXR1ZGUgdG8gc3RhcnQgYSBzd2lwZSwKLSAgICAv
LyBidXQgaXMgdG9vIGRpYWdvbmFsIHRvIHN0YXJ0IGEgc3dpcGUuCi0gICAgZXZlbnRRdWV1ZS5l
bnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVl
dWVTY3JvbGxFdmVudCgyLCAyLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3Jv
bGxFdmVudCgwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2
ZW50KDAsIDAsICdlbmRlZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3Bh
dGNoKGRvVmVydGljYWxTd2lwZUdlc3R1cmUpOwotfQotCi1mdW5jdGlvbiBkb1ZlcnRpY2FsU3dp
cGVHZXN0dXJlKCkKLXsKLSAgICAvLyBUb3RhbCBkZWx0YSBvZiAwLCAyMDsgdGhpcyBpcyBvcmRp
bmFyaWx5IHN1ZmZpY2llbnQgbWFnbml0dWRlIHRvIHN0YXJ0IGEgc3dpcGUsCi0gICAgLy8gYnV0
IGlzIGNvbXBsZXRlbHkgdmVydGljYWwsIHNvIHdlIHdvbid0IHN0YXJ0IGEgc3dpcGUuCi0gICAg
ZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVu
dFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAyLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVl
LmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5x
dWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdlbmRlZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0
ZXJFdmVudERpc3BhdGNoKGRvSG9yaXpvbnRhbFRoZW5WZXJ0aWNhbFN3aXBlR2VzdHVyZSk7Ci19
Ci0KLWZ1bmN0aW9uIGRvSG9yaXpvbnRhbFRoZW5WZXJ0aWNhbFN3aXBlR2VzdHVyZSgpCi17Ci0g
ICAgLy8gVG90YWwgZGVsdGEgb2YgMTAsIDIwOyB0aGlzIGlzIG9yZGluYXJpbHkgc3VmZmljaWVu
dCBtYWduaXR1ZGUgdG8gc3RhcnQgYSBzd2lwZSwKLSAgICAvLyBidXQgaXMgdG9vIHZlcnRpY2Fs
LCBzbyB3ZSB3b24ndCBzdGFydCBhIHN3aXBlLgotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBl
RXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZl
bnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwg
MiwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAn
ZW5kZWQnKTsKLQotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChkb1JlZ3Vs
YXJTd2lwZUdlc3R1cmUpOwotfQotCi1mdW5jdGlvbiBkb1JlZ3VsYXJTd2lwZUdlc3R1cmUoKQot
ewotICAgIC8vIFN3YXAgaW4gYSBkaWZmZXJlbnQgY2FsbGJhY2sgdGhhdCBtYWtlcyBzdXJlIHdl
ICpkbyogcmVhY2ggZGlkQmVnaW5Td2lwZS4KLSAgICB0ZXN0UnVubmVyLmNsZWFyVGVzdFJ1bm5l
ckNhbGxiYWNrcygpOwotICAgIHZhciBzYXdEaWRCZWdpblN3aXBlID0gZmFsc2U7Ci0gICAgdGVz
dFJ1bm5lci5pbnN0YWxsRGlkQmVnaW5Td2lwZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgc2F3RGlkQmVnaW5Td2lwZSA9IHRydWU7Ci0gICAgICAgIC8vIE5lZWQgYSBzd2lwZS1lbmQg
ZXZlbnQgdG8gY2xlYW4gdXAuCi0gICAgICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQo
MCwgMCwgJ2VuZGVkJyk7Ci0gICAgfSk7Ci0KLSAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRSZW1v
dmVTd2lwZVNuYXBzaG90Q2FsbGJhY2soZnVuY3Rpb24gKCkgewotICAgICAgICBzaG91bGRCZSh0
cnVlLCBzYXdEaWRCZWdpblN3aXBlLCAiVGhlIGxhc3QgZ2VzdHVyZSBzaG91bGQgc3RhcnQgYSBz
d2lwZSwgYmVjYXVzZSBpdCBpcyBzdWZmaWNpZW50IG1hZ25pdHVkZSBhbmQgaW4gdGhlIGNvcnJl
Y3QgZGlyZWN0aW9uLiIpCi0gICAgICAgIHRlc3RDb21wbGV0ZSgpOwotICAgIH0pOwotCi0gICAg
Ly8gVG90YWwgZGVsdGEgb2YgMzAsIDEwOyB0aGlzIHNob3VsZCBzdGFydCBhIHN3aXBlIGFzIHVz
dWFsLgotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7
Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMywgMSwgJ2JlZ2FuJyk7Ci0gICAg
ZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVu
dFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnZW5kZWQnKTsKLX0KLQotZnVuY3Rpb24g
ZGlkQmVnaW5Td2lwZU5vdFJlYWNoZWRDYWxsYmFjaygpCi17Ci0gICAgbG9nKCJGYWlsdXJlLiBT
aG91bGQgbmV2ZXIgYmVnaW4gYSBzd2lwZSwgYmVjYXVzZSBhbGwgb2YgdGhlIGF0dGVtcHRlZCBz
d2lwZXMgc2hvdWxkIGZhaWwgZHVlIHRvIHRoZSBzd2lwZS1zdGFydCBoeXN0ZXJlc2lzLiIpOwot
fQotCi1mdW5jdGlvbiBpc0ZpcnN0UGFnZSgpCi17Ci0gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlv
bi5ocmVmLmluZGV4T2YoInNlY29uZCIpID09IC0xOwotfQotCi13aW5kb3cub25sb2FkID0gZnVu
Y3Rpb24gKCkgewotICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cudGVzdFJ1
bm5lcikgewotICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICJUaGlzIHRlc3QgbXVz
dCBiZSBydW4gaW4gV2ViS2l0VGVzdFJ1bm5lci4iOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSBpc0ZpcnN0UGFnZSgpID8gImZpcnN0IiA6
ICJzZWNvbmQiOwotCi0gICAgaWYgKGlzRmlyc3RQYWdlKCkpIHsKLSAgICAgICAgaW5pdGlhbGl6
ZVN3aXBlVGVzdCgpOwotCi0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZEJlZ2luU3dpcGVD
YWxsYmFjayhkaWRCZWdpblN3aXBlTm90UmVhY2hlZENhbGxiYWNrKTsKLQotICAgICAgICB0ZXN0
UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VXNlc1BhZ2VDYWNoZVByZWZlcmVuY2VL
ZXkiLCAxKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi0gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkg
eyAKLSAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gd2luZG93LmxvY2F0aW9uLmhy
ZWYgKyAiP3NlY29uZCI7Ci0gICAgICAgIH0sIDApOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgZG9TaG9ydFN3aXBlR2VzdHVyZSgpOwotfTsKLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08L2JvZHk+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290832</attachid>
            <date>2016-10-06 10:57:57 -0700</date>
            <delta_ts>2016-10-06 11:32:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161675-20161006105443.patch</filename>
            <type>text/plain</type>
            <size>109789</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2ODY0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmI4ODJhZDMxNTgwMjAwNTQ0MTcyNzE0ZjZiZjcyY2Q1
YzgyMGZlYS4uYWQ3ZWJmYjY5NmNiMDhmMGVkM2MwZGJjNGNhNWVhMGM5NjJmYjM2ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDE2LTEwLTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFN3aXBlIGdlc3R1cmUgdGVzdHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRm
b3JtUGxheUJhY2tFdmVudFN0cmVhbSk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6YmVnaW5CYWNrU3dpcGUpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNv
bXBsZXRlQmFja1N3aXBlKToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFs
aXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbTog
QWRkZWQuCisgICAgICAgIChldmVudElzT2ZUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZlR5cGVz
KToKKyAgICAgICAgKGV2ZW50SXNPZkdlc3R1cmVUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZkdl
c3R1cmVUeXBlcyk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBkaWN0aW9uYXJ5Rm9yRXZl
bnQ6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBjcmVhdGVF
dmVudEZvckRpY3Rpb25hcnk6aW5XaW5kb3c6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgr
W0V2ZW50U2VyaWFsaXplciBwbGF5RXZlbnRTdHJlYW06aW5XaW5kb3c6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFj
L1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1bm5lclNo
YXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTogQWRk
ZWQuCisgICAgICAgIChiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKToKKyAgICAgICAgKGNvbXBs
ZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0pOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICog
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF5QmFja0V2ZW50U3RyZWFtKToK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZSk6CisgICAg
ICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUpOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbSk6
CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1DbGVhckFsbENhbGxi
YWNrcyk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9zcGkv
Q29yZUdyYXBoaWNzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvc3Bp
L0lPS2l0U1BJLmg6IFJlbmFtZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tp
dFNQSS5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6cGxheUJhY2tFdmVudHMpOgor
ICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKToKKyAgICAg
ICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZSk6CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKToK
KwogMjAxNi0xMC0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV1c2UgQ29kZUdlbmVyYXRvcjo6VXBkYXRlRmlsZSBpbiBUb29scyBDb2RlR2VuZXJhdG9y
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVy
TWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5t
bQppbmRleCA1NmUyMDc3YTRiMmEyMGMxZGI5MWRjOWExMGJkZGU1ZjIyY2M2NDBiLi5jYTg2ZWY3
ZTE3YThkNzYxODFmZGU0MGNmY2VlNjY3YjhkN2UwNTljIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTQzLDYgKzQzLDE4IEBA
IHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FzeW5jVGFzayhKU1ZhbHVlUmVmIGNhbGxiYWNr
KQogICAgIH0pOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVnaW5CYWNrU3dpcGUo
SlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNv
bXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7Cit9CisKK3ZvaWQgVUlTY3Jp
cHRDb250cm9sbGVyOjpwbGF0Zm9ybVBsYXlCYWNrRXZlbnRTdHJlYW0oSlNTdHJpbmdSZWYsIEpT
VmFsdWVSZWYpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9FdmVudFNl
cmlhbGl6ZXJNYWMuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9u
L21hYy9FdmVudFNlcmlhbGl6ZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzZkYjg2NjkxOTE1OGY0MTcx
NGQ4MDY5OTdlZDdhNWQ5NzExMzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5oCkBAIC0w
LDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0IDxB
cHBLaXQvQXBwS2l0Lmg+CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKyNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKworQGludGVyZmFjZSBFdmVudFNlcmlhbGl6ZXIgOiBOU09iamVjdAorCisr
IChOU0RpY3Rpb25hcnkgKilkaWN0aW9uYXJ5Rm9yRXZlbnQ6KENHRXZlbnRSZWYpZXZlbnQgcmVs
YXRpdmVUb1RpbWU6KENHRXZlbnRUaW1lc3RhbXApcmVmZXJlbmNlVGltZXN0YW1wOworCisrIChD
R0V2ZW50UmVmKWNyZWF0ZUV2ZW50Rm9yRGljdGlvbmFyeTooTlNEaWN0aW9uYXJ5ICopZGljdCBp
bldpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cgcmVsYXRpdmVUb1RpbWU6KENHRXZlbnRUaW1lc3Rh
bXApcmVmZXJlbmNlVGltZXN0YW1wOworCitAZW5kCisKK0BpbnRlcmZhY2UgRXZlbnRTdHJlYW1Q
bGF5ZXIgOiBOU09iamVjdCB7CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5ICo+IF9yZW1h
aW5pbmdFdmVudERpY3RzOworICAgIFJldGFpblB0cjxOU1dpbmRvdyAqPiBfd2luZG93OworICAg
IEJsb2NrUHRyPHZvaWQgKCk+IF9jb21wbGV0aW9uSGFuZGxlcjsKKyAgICB1aW50NjRfdCBfc3Rh
cnRUaW1lOworfQorCisrICh2b2lkKXBsYXlTdHJlYW06KE5TQXJyYXk8TlNEaWN0aW9uYXJ5ICo+
ICopZXZlbnREaWN0cyB3aW5kb3c6KE5TV2luZG93ICopd2luZG93IGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkKF4pKCkpY29tcGxldGlvbkhhbmRsZXI7CisKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvRXZlbnRT
ZXJpYWxpemVyTWFjLm1tIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRp
b24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGFmMmFhMTNmYWUxNzg1
NzQ3ODJiMmIxYjdiM2UwODkwZDQ5OGE4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbQpA
QCAtMCwwICsxLDMyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9y
dCAiRXZlbnRTZXJpYWxpemVyTWFjLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQg
IkNvcmVHcmFwaGljc1NQSS5oIgorI2ltcG9ydCAiSU9LaXRTUEkuaCIKKyNpbXBvcnQgPGFsZ29y
aXRobT4KKyNpbXBvcnQgPG1hY2gvbWFjaF90aW1lLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CisKKyNkZWZpbmUgTU9VU0VfRVZFTlRfVFlQRVMgXAorICAgIChDR1NFdmVudFR5cGUpa0NH
RXZlbnRMZWZ0TW91c2VEb3duLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudExlZnRNb3Vz
ZVVwLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudFJpZ2h0TW91c2VEb3duLCBcCisgICAg
KENHU0V2ZW50VHlwZSlrQ0dFdmVudFJpZ2h0TW91c2VVcCwgXAorICAgIChDR1NFdmVudFR5cGUp
a0NHRXZlbnRNb3VzZU1vdmVkLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudExlZnRNb3Vz
ZURyYWdnZWQsIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50UmlnaHRNb3VzZURyYWdnZWQs
IFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50T3RoZXJNb3VzZURvd24sIFwKKyAgICAoQ0dT
RXZlbnRUeXBlKWtDR0V2ZW50T3RoZXJNb3VzZVVwLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dF
dmVudE90aGVyTW91c2VEcmFnZ2VkCisKKyNkZWZpbmUgS0VZX0VWRU5UX1RZUEVTIFwKKyAgICAo
Q0dTRXZlbnRUeXBlKWtDR0V2ZW50S2V5RG93biwgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZl
bnRLZXlVcCwgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRGbGFnc0NoYW5nZWQKKworI2Rl
ZmluZSBHRVNUVVJFX0VWRU5UX1RZUEVTIFwKKyAgICBrQ0dTRXZlbnRHZXN0dXJlLCBcCisgICAg
a0NHU0V2ZW50Rmx1aWRUb3VjaEdlc3R1cmUsIFwKKyAgICBrQ0dTRXZlbnREb2NrQ29udHJvbAor
Citib29sIGV2ZW50SXNPZlR5cGUoQ0dFdmVudFJlZiBldmVudCwgQ0dTRXZlbnRUeXBlIHR5cGUp
Cit7CisgICAgcmV0dXJuIChDR1NFdmVudFR5cGUpQ0dFdmVudEdldFR5cGUoZXZlbnQpID09IHR5
cGU7Cit9CisKK2Jvb2wgZXZlbnRJc09mVHlwZXMoQ0dFdmVudFJlZikgeyByZXR1cm4gZmFsc2U7
IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgLi4uIFR5cGVzPgorYm9vbCBldmVudElzT2ZUeXBlcyhD
R0V2ZW50UmVmIGV2ZW50LCBDR1NFdmVudFR5cGUgZmlyc3QsIFR5cGVzIC4uLiByZXN0KQorewor
ICAgIHJldHVybiBldmVudElzT2ZUeXBlKGV2ZW50LCBmaXJzdCkgfHwgZXZlbnRJc09mVHlwZXMo
ZXZlbnQsIHJlc3QuLi4pOworfQorCitib29sIGV2ZW50SXNPZkdlc3R1cmVUeXBlKENHRXZlbnRS
ZWYgZXZlbnQsIElPSElERXZlbnRUeXBlIHR5cGUpCit7CisgICAgcmV0dXJuIChJT0hJREV2ZW50
VHlwZSlDR0V2ZW50R2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGtDR0V2ZW50R2VzdHVyZUhJ
RFR5cGUpID09IHR5cGU7Cit9CisKK2Jvb2wgZXZlbnRJc09mR2VzdHVyZVR5cGVzKENHRXZlbnRS
ZWYpIHsgcmV0dXJuIGZhbHNlOyB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIC4uLiBUeXBlcz4KK2Jv
b2wgZXZlbnRJc09mR2VzdHVyZVR5cGVzKENHRXZlbnRSZWYgZXZlbnQsIElPSElERXZlbnRUeXBl
IGZpcnN0LCBUeXBlcyAuLi4gcmVzdCkKK3sKKyAgICBpZiAoIWV2ZW50SXNPZlR5cGVzKGV2ZW50
LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwgZmlyc3QpIHx8IGV2ZW50SXNPZkdlc3R1cmVU
eXBlcyhldmVudCwgcmVzdC4uLik7Cit9CisKKyNkZWZpbmUgRk9SX0VBQ0hfQ0dFVkVOVF9JTlRF
R0VSX0ZJRUxEKG1hY3JvKSBcCisgICAgbWFjcm8odHJ1ZSwga0NHU0V2ZW50VHlwZUZpZWxkKSBc
CisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxX
aGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMxKSBcCisg
ICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dT
RXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIpIFwKKyAgICBtYWNybyhl
dmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20p
LCBrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMykgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5
cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9s
bFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVu
dCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2
ZW50TW9tZW50dW1QaGFzZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dT
RXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRQb2lu
dERlbHRhQXhpczEpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50
U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0
YUF4aXMyKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9s
bFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlz
MykgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVl
bCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCkgXAorICAg
IG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2
ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSkgXAorICAgIFwKKyAgICBt
YWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2
ZW50QnV0dG9uTnVtYmVyKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIE1PVVNF
X0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudENsaWNrU3RhdGUpIFwKKyAgICBtYWNybyhldmVu
dElzT2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50RGVsdGFY
KSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwg
a0NHTW91c2VFdmVudERlbHRhWSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBN
T1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnRTdWJ0eXBlKSBcCisgICAgbWFjcm8oZXZl
bnRJc09mVHlwZXMoZXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudE51bWJl
cikgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgS0VZX0VWRU5UX1RZ
UEVTKSwga0NHS2V5Ym9hcmRFdmVudEF1dG9yZXBlYXQpIFwKKyAgICBtYWNybyhldmVudElzT2ZU
eXBlcyhldmVudCwgS0VZX0VWRU5UX1RZUEVTKSwga0NHS2V5Ym9hcmRFdmVudEtleWJvYXJkVHlw
ZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBLRVlfRVZFTlRfVFlQRVMpLCBr
Q0dLZXlib2FyZEV2ZW50S2V5Y29kZSkgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBl
cyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyksIGtDR0V2ZW50R2VzdHVyZUhJRFR5cGUpIFwK
KyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyksIGtD
R0V2ZW50R2VzdHVyZUJlaGF2aW9yKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQs
IEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVGbGF2b3IpIFwKKyAgICBtYWNy
byhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyksIGtDR0V2ZW50R2Vz
dHVyZU1hc2spIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVO
VF9UWVBFUyksIGtDR0V2ZW50R2VzdHVyZVBoYXNlKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlw
ZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVTdGFnZSkgXAor
ICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRU
eXBlU2Nyb2xsKSwga0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMpIFwKKyAgICBcCisgICAg
bWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRp
b25Td2lwZSksIGtDR0V2ZW50U3dpcGVHZXN0dXJlRmxhZ0JpdHMpIFwKKyAgICBtYWNybyhldmVu
dElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwg
a0NHRXZlbnRHZXN0dXJlU3dpcGVNYXNrKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5
cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVy
ZVN3aXBlTW90aW9uKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJ
T0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmFsdWUp
IFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBl
TmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlRmxhdm9yKSBcCisgICAgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlcyhldmVudCwga0NHSElERXZlbnRUeXBlR2VzdHVyZVN0
YXJ0ZWQsIGtDR0hJREV2ZW50VHlwZUdlc3R1cmVFbmRlZCksIGtDR0V2ZW50R2VzdHVyZVN0YXJ0
RW5kU2VyaWVzVHlwZSkKKworI2RlZmluZSBGT1JfRUFDSF9DR0VWRU5UX0RPVUJMRV9GSUVMRCht
YWNybykgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZ
UEVTKSwga0NHRXZlbnRHZXN0dXJlUHJvZ3Jlc3MpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJ
c09mVHlwZXMoZXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudFByZXNzdXJl
KSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURF
dmVudFR5cGVab29tKSwga0NHRXZlbnRHZXN0dXJlWm9vbURlbHRhWCkgXAorICAgIG1hY3JvKGV2
ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVab29tKSwga0NHRXZlbnRH
ZXN0dXJlWm9vbURlbHRhWSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50
LCBrSU9ISURFdmVudFR5cGVab29tKSwga0NHRXZlbnRHZXN0dXJlWm9vbVZhbHVlKSBcCisgICAg
XAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVS
b3RhdGlvbiksIGtDR0V2ZW50R2VzdHVyZVJvdGF0aW9uVmFsdWUpIFwKKyAgICBcCisgICAgbWFj
cm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVNjcm9sbCksIGtD
R0V2ZW50R2VzdHVyZVNjcm9sbFgpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShl
dmVudCwga0lPSElERXZlbnRUeXBlU2Nyb2xsKSwga0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSkgXAor
ICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVTY3Jv
bGwpLCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxaKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNP
Zkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dF
dmVudEdlc3R1cmVTd2lwZVBvc2l0aW9uWCkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVU
eXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1
cmVTd2lwZVBvc2l0aW9uWSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50
LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZVBy
b2dyZXNzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2
ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlYKSBc
CisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5h
dmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlZKSBcCisgICAgbWFj
cm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25T
d2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlaKSBcCisgICAgXAorICAgIG1hY3Jv
KGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVGb3JjZSksIGtDR0V2
ZW50VHJhbnNpdGlvblByb2dyZXNzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUo
ZXZlbnQsIGtJT0hJREV2ZW50VHlwZUZvcmNlKSwga0NHRXZlbnRTdGFnZVByZXNzdXJlKQorCisj
ZGVmaW5lIExPQURfSU5URUdFUl9GSUVMRF9GUk9NX0VWRU5UKGV2ZW50VHlwZUZpbHRlciwgZmll
bGQpIFwKK14geyBcCisgICAgaWYgKCEoZXZlbnRUeXBlRmlsdGVyKSkgXAorICAgICAgICByZXR1
cm47IFwKKyAgICBpbnQ2NF90IHZhbHVlID0gQ0dFdmVudEdldEludGVnZXJWYWx1ZUZpZWxkKGV2
ZW50LCBmaWVsZCk7IFwKKyAgICBpbnQ2NF90IHBsYWluVmFsdWUgPSBDR0V2ZW50R2V0SW50ZWdl
clZhbHVlRmllbGQocGxhaW5FdmVudCwgZmllbGQpOyBcCisgICAgaWYgKHZhbHVlICE9IHBsYWlu
VmFsdWUpIFwKKyAgICAgICAgZGljdFtAI2ZpZWxkXSA9IEAodmFsdWUpOyBcCit9KCk7CisKKyNk
ZWZpbmUgTE9BRF9ET1VCTEVfRklFTERfRlJPTV9FVkVOVChldmVudFR5cGVGaWx0ZXIsIGZpZWxk
KSBcCiteIHsgXAorICAgIGlmICghKGV2ZW50VHlwZUZpbHRlcikpIFwKKyAgICAgICAgcmV0dXJu
OyBcCisgICAgZG91YmxlIHZhbHVlID0gQ0dFdmVudEdldERvdWJsZVZhbHVlRmllbGQoZXZlbnQs
IGZpZWxkKTsgXAorICAgIGlmICghaXNuYW4odmFsdWUpKSB7IFwKKyAgICAgICAgZG91YmxlIHBs
YWluVmFsdWUgPSBDR0V2ZW50R2V0RG91YmxlVmFsdWVGaWVsZChwbGFpbkV2ZW50LCBmaWVsZCk7
IFwKKyAgICAgICAgaWYgKGZhYnModmFsdWUgLSBwbGFpblZhbHVlKSA+PSBGTFRfRVBTSUxPTikg
XAorICAgICAgICAgICAgZGljdFtAI2ZpZWxkXSA9IEAodmFsdWUpOyBcCisgICAgfSBcCit9KCk7
CisKKyNkZWZpbmUgU1RPUkVfSU5URUdFUl9GSUVMRF9UT19FVkVOVChldmVudFR5cGVGaWx0ZXIs
IGZpZWxkKSBcCiteIHsgXAorICAgIGlmICghKGV2ZW50VHlwZUZpbHRlcikpIFwKKyAgICAgICAg
cmV0dXJuOyBcCisgICAgTlNOdW1iZXIgKnZhbHVlID0gZGljdFtAI2ZpZWxkXTsgXAorICAgIGlm
ICh2YWx1ZSkgXAorICAgICAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGZp
ZWxkLCB2YWx1ZS51bnNpZ25lZExvbmdMb25nVmFsdWUpOyBcCit9KCk7CisKKyNkZWZpbmUgU1RP
UkVfRE9VQkxFX0ZJRUxEX1RPX0VWRU5UKGV2ZW50VHlwZUZpbHRlciwgZmllbGQpIFwKK14geyBc
CisgICAgaWYgKCEoZXZlbnRUeXBlRmlsdGVyKSkgXAorICAgICAgICByZXR1cm47IFwKKyAgICBO
U051bWJlciAqdmFsdWUgPSBkaWN0W0AjZmllbGRdOyBcCisgICAgaWYgKHZhbHVlKSBcCisgICAg
ICAgIENHRXZlbnRTZXREb3VibGVWYWx1ZUZpZWxkKGV2ZW50LCBmaWVsZCwgdmFsdWUuZG91Ymxl
VmFsdWUpOyBcCit9KCk7CisKK0BpbXBsZW1lbnRhdGlvbiBFdmVudFNlcmlhbGl6ZXIKKworKyAo
TlNEaWN0aW9uYXJ5ICopZGljdGlvbmFyeUZvckV2ZW50OihDR0V2ZW50UmVmKWV2ZW50IHJlbGF0
aXZlVG9UaW1lOihDR0V2ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRpbWVzdGFtcAoreworICAgIENH
RXZlbnRSZWYgcGxhaW5FdmVudCA9IENHRXZlbnRDcmVhdGUoTlVMTCk7CisKKyAgICBOU011dGFi
bGVEaWN0aW9uYXJ5ICpkaWN0ID0gW1tbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0g
YXV0b3JlbGVhc2VdOworCisgICAgRk9SX0VBQ0hfQ0dFVkVOVF9JTlRFR0VSX0ZJRUxEKExPQURf
SU5URUdFUl9GSUVMRF9GUk9NX0VWRU5UKTsKKyAgICBGT1JfRUFDSF9DR0VWRU5UX0RPVUJMRV9G
SUVMRChMT0FEX0RPVUJMRV9GSUVMRF9GUk9NX0VWRU5UKTsKKworICAgIENHRXZlbnRUaW1lc3Rh
bXAgdGltZXN0YW1wID0gQ0dFdmVudEdldFRpbWVzdGFtcChldmVudCk7CisgICAgZGljdFtAInJl
bGF0aXZlVGltZU1TIl0gPSBAKHN0ZDo6bWF4PGRvdWJsZT4oc3RhdGljX2Nhc3Q8ZG91YmxlPih0
aW1lc3RhbXAgLSByZWZlcmVuY2VUaW1lc3RhbXApIC8gTlNFQ19QRVJfTVNFQywgMCkpOworCisg
ICAgQ0dTRXZlbnRUeXBlIGV2ZW50VHlwZSA9IChDR1NFdmVudFR5cGUpQ0dFdmVudEdldEludGVn
ZXJWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dTRXZlbnRUeXBlRmllbGQpOworICAgIGlmIChldmVudFR5
cGUgPT0ga0NHU0V2ZW50R2VzdHVyZSB8fCBldmVudFR5cGUgPT0ga0NHU0V2ZW50Rmx1aWRUb3Vj
aEdlc3R1cmUgfHwgZXZlbnRUeXBlID09IGtDR1NFdmVudERvY2tDb250cm9sKSB7CisgICAgICAg
IGlmIChDR0V2ZW50R2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGtDR0V2ZW50R2VzdHVyZUlz
UHJlZmxpZ2h0KSkgeworICAgICAgICAgICAgZGljdFtAImtDR0V2ZW50R2VzdHVyZUlzUHJlZmxp
Z2h0Il0gPSBAWUVTOworICAgICAgICAgICAgZGljdFtAImtDR0V2ZW50R2VzdHVyZVByZWZsaWdo
dFByb2dyZXNzIl0gPSBAKENHRXZlbnRHZXREb3VibGVWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dFdmVu
dEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcykpOworICAgICAgICB9CisgICAgfQorCisgICAgZGlj
dFtAIndpbmRvd0xvY2F0aW9uIl0gPSBOU1N0cmluZ0Zyb21Qb2ludChOU1BvaW50RnJvbUNHUG9p
bnQoQ0dFdmVudEdldFdpbmRvd0xvY2F0aW9uKGV2ZW50KSkpOworCisgICAgQ0dFdmVudEZsYWdz
IGZsYWdzID0gc3RhdGljX2Nhc3Q8Q0dFdmVudEZsYWdzPihDR0V2ZW50R2V0RmxhZ3MoZXZlbnQp
ICYgfk5YX05PTkNPQUxTRVNDRURNQVNLKTsKKyAgICBDR0V2ZW50RmxhZ3MgcGxhaW5GbGFncyA9
IHN0YXRpY19jYXN0PENHRXZlbnRGbGFncz4oQ0dFdmVudEdldEZsYWdzKHBsYWluRXZlbnQpICYg
fk5YX05PTkNPQUxTRVNDRURNQVNLKTsKKyAgICBpZiAoZmxhZ3MgIT0gcGxhaW5GbGFncykKKyAg
ICAgICAgZGljdFtAImZsYWdzIl0gPSBAKGZsYWdzKTsKKworICAgIENGUmVsZWFzZShwbGFpbkV2
ZW50KTsKKworICAgIHJldHVybiBkaWN0OworfQorCisrIChDR0V2ZW50UmVmKWNyZWF0ZUV2ZW50
Rm9yRGljdGlvbmFyeTooTlNEaWN0aW9uYXJ5ICopZGljdCBpbldpbmRvdzooTlNXaW5kb3cgKil3
aW5kb3cgcmVsYXRpdmVUb1RpbWU6KENHRXZlbnRUaW1lc3RhbXApcmVmZXJlbmNlVGltZXN0YW1w
Cit7CisgICAgQ0dFdmVudFJlZiBldmVudCA9IENHRXZlbnRDcmVhdGUoTlVMTCk7CisKKyAgICBG
T1JfRUFDSF9DR0VWRU5UX0lOVEVHRVJfRklFTEQoU1RPUkVfSU5URUdFUl9GSUVMRF9UT19FVkVO
VCk7CisgICAgRk9SX0VBQ0hfQ0dFVkVOVF9ET1VCTEVfRklFTEQoU1RPUkVfRE9VQkxFX0ZJRUxE
X1RPX0VWRU5UKTsKKworICAgIGlmIChkaWN0W0AicmVsYXRpdmVUaW1lTVMiXSkKKyAgICAgICAg
Q0dFdmVudFNldFRpbWVzdGFtcChldmVudCwgcmVmZXJlbmNlVGltZXN0YW1wICsgc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KChbZGljdFtAInJlbGF0aXZlVGltZU1TIl0gZG91YmxlVmFsdWVdICogTlNF
Q19QRVJfTVNFQykpKTsKKworICAgIGlmIChbZGljdFtAImtDR0V2ZW50R2VzdHVyZUlzUHJlZmxp
Z2h0Il0gYm9vbFZhbHVlXSkgeworICAgICAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQo
ZXZlbnQsIGtDR0V2ZW50R2VzdHVyZUlzUHJlZmxpZ2h0LCAxKTsKKyAgICAgICAgQ0dFdmVudFNl
dERvdWJsZVZhbHVlRmllbGQoZXZlbnQsIGtDR0V2ZW50R2VzdHVyZVByZWZsaWdodFByb2dyZXNz
LCBbZGljdFtAImtDR0V2ZW50R2VzdHVyZVByZWZsaWdodFByb2dyZXNzIl0gZG91YmxlVmFsdWVd
KTsKKyAgICB9CisKKyAgICBpZiAoZGljdFtAIndpbmRvd0xvY2F0aW9uIl0pIHsKKyAgICAgICAg
TlNQb2ludCB3aW5kb3dMb2NhdGlvbiA9IE5TUG9pbnRUb0NHUG9pbnQoTlNQb2ludEZyb21TdHJp
bmcoZGljdFtAIndpbmRvd0xvY2F0aW9uIl0pKTsKKyAgICAgICAgQ0dFdmVudFNldFdpbmRvd0xv
Y2F0aW9uKGV2ZW50LCB3aW5kb3dMb2NhdGlvbik7CisKKyAgICAgICAgTlNQb2ludCBzY3JlZW5Q
b2ludCA9IFt3aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpOU01ha2VSZWN0KHdpbmRvd0xvY2F0
aW9uLngsIHdpbmRvd0xvY2F0aW9uLnksIDEsIDEpXS5vcmlnaW47CisgICAgICAgIENHRXZlbnRT
ZXRMb2NhdGlvbihldmVudCwgTlNNYWtlUG9pbnQoc2NyZWVuUG9pbnQueCwgTlNTY3JlZW4uc2Ny
ZWVucy5maXJzdE9iamVjdC5mcmFtZS5zaXplLmhlaWdodCAtIHNjcmVlblBvaW50LnkpKTsKKyAg
ICB9CisKKyAgICBpZiAoZGljdFtAImZsYWdzIl0pCisgICAgICAgIENHRXZlbnRTZXRGbGFncyhl
dmVudCwgc3RhdGljX2Nhc3Q8Q0dFdmVudEZsYWdzPihbZGljdFtAImZsYWdzIl0gdW5zaWduZWRM
b25nTG9uZ1ZhbHVlXSkpOworCisgICAgQ0dFdmVudFNldEludGVnZXJWYWx1ZUZpZWxkKGV2ZW50
LCBrQ0dTRXZlbnRXaW5kb3dJREZpZWxkLCB3aW5kb3cud2luZG93TnVtYmVyKTsKKworICAgIHJl
dHVybiBldmVudDsKK30KKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gRXZlbnRTdHJlYW1QbGF5
ZXIKKworY29uc3QgZmxvYXQgZXZlbnREaXNwYXRjaFRpbWVyUmF0ZSA9IDEuIC8gMTIwLjsKKwor
KyAodm9pZClwbGF5U3RyZWFtOihOU0FycmF5PE5TRGljdGlvbmFyeSAqPiAqKWV2ZW50RGljdHMg
d2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSgpKWNv
bXBsZXRpb25IYW5kbGVyCit7CisgICAgLy8gVGhpcyBhbGxvYyBpcyBiYWxhbmNlZCB3aXRoIHRo
ZSByZWxlYXNlIGJlbG93IGluIHBsYXliYWNrVGltZXJGaXJlZC4KKyAgICBFdmVudFN0cmVhbVBs
YXllciAqcGxheWVyID0gW1tFdmVudFN0cmVhbVBsYXllciBhbGxvY10gaW5pdF07CisKKyAgICBw
bGF5ZXItPl9yZW1haW5pbmdFdmVudERpY3RzID0gYWRvcHROUyhbZXZlbnREaWN0cyBtdXRhYmxl
Q29weV0pOworICAgIHBsYXllci0+X3dpbmRvdyA9IHdpbmRvdzsKKworICAgIGlmIChjb21wbGV0
aW9uSGFuZGxlcikKKyAgICAgICAgcGxheWVyLT5fY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxv
Y2tQdHIoY29tcGxldGlvbkhhbmRsZXIpOworCisgICAgcGxheWVyLT5fc3RhcnRUaW1lID0gbWFj
aF9hYnNvbHV0ZV90aW1lKCk7CisKKyAgICBbTlNUaW1lciBzY2hlZHVsZWRUaW1lcldpdGhUaW1l
SW50ZXJ2YWw6ZXZlbnREaXNwYXRjaFRpbWVyUmF0ZSB0YXJnZXQ6cGxheWVyIHNlbGVjdG9yOkBz
ZWxlY3RvcihwbGF5YmFja1RpbWVyRmlyZWQ6KSB1c2VySW5mbzpuaWwgcmVwZWF0czpZRVNdOwor
fQorCistICh2b2lkKXBsYXliYWNrVGltZXJGaXJlZDooTlNUaW1lciAqKXRpbWVyCit7CisgICAg
UmV0YWluUHRyPE5TTXV0YWJsZUFycmF5ICo+IHJlbW92ZUxpc3QgPSBhZG9wdE5TKFtbTlNNdXRh
YmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICBOU0V2ZW50ICpuc0V2ZW50ID0gbmlsOworICAg
IGZvciAoaWQgZXZlbnREaWN0IGluIF9yZW1haW5pbmdFdmVudERpY3RzLmdldCgpKSB7CisgICAg
ICAgIENHRXZlbnRSZWYgZXZlbnQgPSBbRXZlbnRTZXJpYWxpemVyIGNyZWF0ZUV2ZW50Rm9yRGlj
dGlvbmFyeTpldmVudERpY3QgaW5XaW5kb3c6X3dpbmRvdy5nZXQoKSByZWxhdGl2ZVRvVGltZTpf
c3RhcnRUaW1lXTsKKyAgICAgICAgaWYgKENHRXZlbnRHZXRUaW1lc3RhbXAoZXZlbnQpIDwgbWFj
aF9hYnNvbHV0ZV90aW1lKCkpIHsKKyAgICAgICAgICAgIG5zRXZlbnQgPSBbTlNFdmVudCBldmVu
dFdpdGhDR0V2ZW50OmV2ZW50XTsKKyAgICAgICAgICAgIFtOU0FwcCBwb3N0RXZlbnQ6bnNFdmVu
dCBhdFN0YXJ0Ok5PXTsKKyAgICAgICAgICAgIFtyZW1vdmVMaXN0IGFkZE9iamVjdDpldmVudERp
Y3RdOworICAgICAgICB9CisgICAgICAgIENGUmVsZWFzZShldmVudCk7CisgICAgfQorICAgIFtf
cmVtYWluaW5nRXZlbnREaWN0cyByZW1vdmVPYmplY3RzSW5BcnJheTpyZW1vdmVMaXN0LmdldCgp
XTsKKworICAgIGlmIChbX3JlbWFpbmluZ0V2ZW50RGljdHMgY291bnRdKQorICAgICAgICByZXR1
cm47CisKKyAgICBbdGltZXIgaW52YWxpZGF0ZV07CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTIwMAorICAgIE5TRXZlbnRUeXBlIGFwcGxpY2F0aW9uRGVmaW5l
ZEV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlQXBwbGljYXRpb25EZWZpbmVkOworI2Vsc2UKKyAgICBO
U0V2ZW50VHlwZSBhcHBsaWNhdGlvbkRlZmluZWRFdmVudFR5cGUgPSBOU0FwcGxpY2F0aW9uRGVm
aW5lZDsKKyNlbmRpZgorICAgIFtOU0FwcCBwb3N0RXZlbnQ6W05TRXZlbnQgb3RoZXJFdmVudFdp
dGhUeXBlOmFwcGxpY2F0aW9uRGVmaW5lZEV2ZW50VHlwZSBsb2NhdGlvbjpOU1plcm9Qb2ludCBt
b2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOjAgY29udGV4dDowIHN1YnR5
cGU6MCBkYXRhMTo0MiBkYXRhMjowXSBhdFN0YXJ0Ok5PXTsKKyAgICAvLyBCbG9jayB1bnRpbCB3
ZSBzZW5kIHRoZSBsYXN0IGV2ZW50IHdlIHBvc3RlZC4KKyAgICB3aGlsZSAodHJ1ZSkgeworICAg
ICAgICBOU0V2ZW50ICpuZXh0RXZlbnQgPSBbTlNBcHAgbmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5T
QW55RXZlbnRNYXNrIHVudGlsRGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VO
b3c6ZXZlbnREaXNwYXRjaFRpbWVyUmF0ZV0gaW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRl
cXVldWU6WUVTXTsKKyAgICAgICAgaWYgKG5leHRFdmVudC50eXBlID09IGFwcGxpY2F0aW9uRGVm
aW5lZEV2ZW50VHlwZSAmJiBuZXh0RXZlbnQuZGF0YTEgPT0gNDIpCisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgaWYgKG5leHRFdmVudCkKKyAgICAgICAgICAgIFtOU0FwcCBzZW5kRXZlbnQ6
bmV4dEV2ZW50XTsKKyAgICB9CisKKyAgICBpZiAoX2NvbXBsZXRpb25IYW5kbGVyKQorICAgICAg
ICBfY29tcGxldGlvbkhhbmRsZXIoKTsKKworICAgIFtzZWxmIHJlbGVhc2VdOworfQorCitAZW5k
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlh
bGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oIGIvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFmMzAyODgzNTkyMTM2MmJkZjZjZDFmNWIxZTQ3OGE5NTBmZWIzNzEKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMv
U2hhcmVkRXZlbnRTdHJlYW1zTWFjLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
ZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KKworTlNTdHJpbmcg
KmJlZ2luU3dpcGVCYWNrRXZlbnRTdHJlYW0oKTsKK05TU3RyaW5nICpjb21wbGV0ZVN3aXBlQmFj
a0V2ZW50U3RyZWFtKCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSBiL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9TaGFyZWRFdmVudFN0
cmVhbXNNYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTgyNDA1OWNhYWQwMTNmMDg5MWYyMzUwODg1MGEwOTMx
ZDQ5Y2Q4OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRT
ZXJpYWxpemF0aW9uL21hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMubW0KQEAgLTAsMCArMSwzNjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlNoYXJlZEV2ZW50
U3RyZWFtc01hYy5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjZGVmaW5lIFFVT1RFKC4uLikg
QCgjX19WQV9BUkdTX18pCisKK05TU3RyaW5nICpiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKCkK
K3sKKyAgICByZXR1cm4gUVVPVEUoWworICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVU
aW1lTVMiIDogMCwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIg
OiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAg
ICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0
dXJlUGhhc2UiIDogMTI4LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAz
MDB9IgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMi
IDogOCwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYxLAorICAgICAg
ICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdl
c3R1cmVTdGFydEVuZFNlcmllc1R5cGUiIDogNiwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlv
biIgOiAiezQwMCwgMzAwfSIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIg
OiA4LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50
U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZp
ZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMgorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogOCwKKyAg
ICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDEsCisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBl
RmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50
R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAxNywK
KyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAg
ICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2Vz
dHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0Jp
dHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAxMgorICAgICAgICB9LAorICAgICAgICB7
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAxLAor
ICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDE3LAorICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50
UG9pbnREZWx0YUF4aXMyIiA6IDQsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0
MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2
LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDI1LAorICAgICAgICAgICAgIndpbmRv
d0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVT
Y3JvbGxZIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAg
ICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAg
ICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1
cmVTY3JvbGxYIiA6IDIzCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dT
Y3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVN
UyIgOiAyNSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6
IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMSwKKyAg
ICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAi
a0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVU
aW1lTVMiIDogMzMsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0i
LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFkiIDogMiwKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xs
R2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6
IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMjgKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMy
IiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIg
OiAxLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDMzLAorICAgICAgICAgICAgImtD
R1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDE2LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9u
IiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIK
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5
cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA0MSwKKyAgICAgICAgICAg
ICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlU2Nyb2xsWSIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6
IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAg
ICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlU2Nyb2xsWCIgOiAzNQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMiwKKyAgICAgICAgICAgICJrQ0dT
Y3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IDEsCisgICAgICAgICAgICAicmVsYXRp
dmVUaW1lTVMiIDogNDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGlu
dW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIg
OiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDog
MjQsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAg
ICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJl
bGF0aXZlVGltZU1TIiA6IDQ5LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAw
LCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IC0xLAorICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZl
bnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBl
RmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA0NQor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNj
cm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhp
czIiIDogNCwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMx
IiA6IC0xLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDQ5LAorICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dT
Y3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxX
aGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDM3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0
aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDog
MjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJ
RFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA1NywKKyAgICAgICAg
ICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlU2Nyb2xsWSIgOiAtMywKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFz
ZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEs
CisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogNTcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDUsCisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAtMSwKKyAgICAgICAgICAgICJyZWxhdGl2
ZVRpbWVNUyIgOiA1NywKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51
b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6
IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiA1
NCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAg
ICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVs
YXRpdmVUaW1lTVMiIDogNjUsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAs
IDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFkiIDogLTUsCisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVu
dFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVG
aWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDgxCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Ny
b2xsQ291bnQiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlz
MiIgOiA5LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEi
IDogLTIsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNjUsCisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogOTIsCisgICAgICAgICAgICAid2luZG93TG9jYXRp
b24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAy
MgorICAgICAgICB9LAorICAgIF0pOworfQorCitOU1N0cmluZyAqY29tcGxldGVTd2lwZUJhY2tF
dmVudFN0cmVhbSgpCit7CisgICAgcmV0dXJuIFFVT1RFKFsKKyAgICAgICAgeworICAgICAgICAg
ICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRp
bWVNUyIgOiA3MywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIs
CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAtMywKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xs
R2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6
IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogNzUKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3Vu
dCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDEx
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogLTEs
CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNzMsCisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnRQb2ludERlbHRhQXhpczIiIDogMTA2LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6
ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAg
ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUi
IDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4MSwKKyAgICAgICAgICAgICJ3
aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0
dXJlU2Nyb2xsWSIgOiAtMywKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAy
LAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAg
ICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50
R2VzdHVyZVNjcm9sbFgiIDogODUKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDEzLAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogLTEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1l
TVMiIDogODEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIg
OiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMTI3LAor
ICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAg
ICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2
ZVRpbWVNUyIgOiA4OSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAw
fSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAtMSwKKyAgICAgICAg
ICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Ny
b2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxk
IiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogOTEKKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxD
b3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6
IDE0LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDog
LTEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogODksCisgICAgICAgICAgICAia0NH
U2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRQb2ludERlbHRhQXhpczIiIDogMTM5LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9u
IiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIK
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5
cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA5NywKKyAgICAgICAgICAg
ICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlU2Nyb2xsWSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6
IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAg
ICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlU2Nyb2xsWCIgOiAxMzYKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtD
R1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDIwLAorICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRp
bWVNUyIgOiA5NywKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3Vz
IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAyMDQs
CisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAg
ICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0
aXZlVGltZU1TIiA6IDEwNSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwg
MzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiA1LAorICAgICAg
ICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRT
Y3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmll
bGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA5MgorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9s
bENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIi
IDogMTQsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIg
OiAyLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEwNSwKKyAgICAgICAgICAgICJr
Q0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMzYsCisgICAgICAgICAgICAid2luZG93TG9jYXRp
b24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAy
MgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElE
VHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDExMywKKyAgICAgICAg
ICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlU2Nyb2xsWSIgOiAxNCwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFz
ZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEs
CisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMTMzCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAg
ICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDE5MiwKKyAgICAgICAgICAg
ICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudERlbHRhQXhpczEiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXND
b250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTEzLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDE5LAorICAgICAgICAgICAgIndp
bmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IDcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEyMSwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9s
bEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5
cGUiIDogNiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogNCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
InJlbGF0aXZlVGltZU1TIiA6IDEyMSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURU
eXBlIiA6IDYyLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTdGFydEVuZFNlcmllc1R5cGUiIDogNiwKKyAgICAgICAg
ICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIKKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAg
ICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEzOSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6
IDIyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiA0LAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMQorICAgICAg
ICB9CisgICAgXSk7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29u
dHJvbGxlci5pZGwKaW5kZXggNWU2YzI2ZTYwZGIxNDgxYmY1OWJjYTczMTgyNDUwNzQ4Y2NmY2Mx
MS4uZGFlYzMwZTliMWJjNGQ0M2Q2YjFlMzM1ZTBmMTczNDE0NDViNzI1ZSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRD
b250cm9sbGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC04Myw2ICs4MywxMSBAQCBpbnRl
cmZhY2UgVUlTY3JpcHRDb250cm9sbGVyIHsKICAgICAvLyAgfQogICAgIHZvaWQgc2VuZEV2ZW50
U3RyZWFtKERPTVN0cmluZyBldmVudHNKU09OLCBvYmplY3QgY2FsbGJhY2spOwogCisgICAgdm9p
ZCBiZWdpbkJhY2tTd2lwZShvYmplY3QgY2FsbGJhY2spOworICAgIHZvaWQgY29tcGxldGVCYWNr
U3dpcGUob2JqZWN0IGNhbGxiYWNrKTsKKworICAgIHZvaWQgcGxheUJhY2tFdmVudFN0cmVhbShE
T01TdHJpbmcgZXZlbnRTdHJlYW0sIG9iamVjdCBjYWxsYmFjayk7CisKICAgICAvLyBFcXVpdmFs
ZW50IG9mIHByZXNzaW5nIHRoZSBEb25lIGJ1dHRvbiBpbiB0aGUgZm9ybSBhY2Nlc3NvcnkgYmFy
LgogICAgIHZvaWQgZGlzbWlzc0Zvcm1BY2Nlc3NvcnlWaWV3KCk7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5j
cHAgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRy
b2xsZXIuY3BwCmluZGV4IDVjNGNiYTU4MDllZjI0ZDIwY2FjNGIxN2JhODQ4YjYyMjNhOWE1NDMu
LmE2ODU0NDljZDU5MTkyM2EwNWI3MGI2Y2U5MjJiZjljMzA4YTgwMjkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5j
cHAKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRD
b250cm9sbGVyLmNwcApAQCAtMTM1LDYgKzEzNSwxMSBAQCBKU1ZhbHVlUmVmIFVJU2NyaXB0Q29u
dHJvbGxlcjo6ZGlkSGlkZUtleWJvYXJkQ2FsbGJhY2soKSBjb25zdAogICAgIHJldHVybiBtX2Nv
bnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZEhpZGVLZXlib2FyZCk7CiB9CiAK
K3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF5QmFja0V2ZW50U3RyZWFtKEpTU3RyaW5nUmVm
IHN0cmVhbSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBwbGF0Zm9ybVBsYXlCYWNrRXZl
bnRTdHJlYW0oc3RyZWFtLCBjYWxsYmFjayk7Cit9CisKICNpZiAhUExBVEZPUk0oSU9TKQogdm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXI6Onpvb21Ub1NjYWxlKGRvdWJsZSwgSlNWYWx1ZVJlZikKIHsK
QEAgLTI3Nyw2ICsyODIsMjMgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0
RGlkSGlkZUtleWJvYXJkQ2FsbGJhY2soKQogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRm
b3JtQ2xlYXJBbGxDYWxsYmFja3MoKQogewogfQorCisjZW5kaWYKKworI2lmICFQTEFURk9STShN
QUMpCisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZShKU1ZhbHVlUmVm
IGNhbGxiYWNrKQoreworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNr
U3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xs
ZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZikK
K3sKK30KKwogI2VuZGlmCiAKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjp1aVNjcmlwdENvbXBs
ZXRlKEpTU3RyaW5nUmVmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFy
ZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oIGIvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggMDg1YTdj
YTU4NTQ4MGMxMDM5Yzg0MzQ4MjNkYzFhMzk2NDFiODUwYi4uZjQ2YTI1ZDk3YzY5NWFhOGEzM2Y0
N2MwNTE0NzIyNTlmYWNlYTE2MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKQEAgLTgwLDYgKzgw
LDkgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgc2Nyb2xsVG9PZmZzZXQobG9uZyB4LCBsb25n
IHkpOwogCisgICAgdm9pZCBiZWdpbkJhY2tTd2lwZShKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKKyAg
ICB2b2lkIGNvbXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spOworCiAgICAgdm9p
ZCBzZXREaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayhKU1ZhbHVlUmVmKTsK
ICAgICBKU1ZhbHVlUmVmIGRpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKCkg
Y29uc3Q7CiAKQEAgLTEwMSw2ICsxMDQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREaWRFbmRT
Y3JvbGxpbmdDYWxsYmFjayhKU1ZhbHVlUmVmKTsKICAgICBKU1ZhbHVlUmVmIGRpZEVuZFNjcm9s
bGluZ0NhbGxiYWNrKCkgY29uc3Q7CiAKKyAgICB2b2lkIHBsYXlCYWNrRXZlbnRTdHJlYW0oSlNT
dHJpbmdSZWYgc3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKKwogICAgIGRvdWJsZSB6b29t
U2NhbGUoKSBjb25zdDsKICAgICBkb3VibGUgbWluaW11bVpvb21TY2FsZSgpIGNvbnN0OwogICAg
IGRvdWJsZSBtYXhpbXVtWm9vbVNjYWxlKCkgY29uc3Q7CkBAIC0xMjQsNiArMTI5LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHBsYXRmb3JtU2V0RGlkSGlkZUtleWJvYXJkQ2FsbGJhY2soKTsKICAg
ICB2b2lkIHBsYXRmb3JtU2V0RGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2soKTsKICAgICB2b2lkIHBs
YXRmb3JtQ2xlYXJBbGxDYWxsYmFja3MoKTsKKyAgICB2b2lkIHBsYXRmb3JtUGxheUJhY2tFdmVu
dFN0cmVhbShKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZik7CiAKICAgICBKU0NsYXNzUmVmIHdyYXBw
ZXJDbGFzcygpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL3Nw
aS9Db3JlR3JhcGhpY3NTUEkuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0NvcmVHcmFw
aGljc1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NWJlMDc0ODk5NGVmMmQ4NTU4ZTA1NjY2OTg3N2Y1MTU4
ZGZiMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL3NwaS9Db3Jl
R3JhcGhpY3NTUEkuaApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKKworI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NHRXZlbnRQcml2YXRlLmg+CisjaW1wb3J0IDxD
b3JlR3JhcGhpY3MvQ0dTRXZlbnQuaD4KKworI2Vsc2UKKworV1RGX0VYVEVSTl9DX0JFR0lOCisK
K3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHU0V2ZW50V2luZG93SURGaWVsZCA9IChDR0V2
ZW50RmllbGQpNTE7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR1NFdmVudFR5cGVGaWVs
ZCA9IChDR0V2ZW50RmllbGQpNTU7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50
R2VzdHVyZUhJRFR5cGUgPSAoQ0dFdmVudEZpZWxkKTExMDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50
RmllbGQga0NHRXZlbnRHZXN0dXJlSXNQcmVmbGlnaHQgPSAoQ0dFdmVudEZpZWxkKTExMTsKK3N0
YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlWm9vbVZhbHVlID0gKENHRXZl
bnRGaWVsZCkxMTM7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVJv
dGF0aW9uVmFsdWUgPSAoQ0dFdmVudEZpZWxkKTExNDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50Rmll
bGQga0NHRXZlbnRHZXN0dXJlU3dpcGVWYWx1ZSA9IChDR0V2ZW50RmllbGQpMTE1Oworc3RhdGlj
IGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcyA9IChD
R0V2ZW50RmllbGQpMTE2Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1
cmVTdGFydEVuZFNlcmllc1R5cGUgPSAoQ0dFdmVudEZpZWxkKTExNzsKK3N0YXRpYyBjb25zdCBD
R0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCA9IChDR0V2ZW50RmllbGQpMTE4Owor
c3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxZID0gKENHRXZl
bnRGaWVsZCkxMTk7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVNj
cm9sbFogPSAoQ0dFdmVudEZpZWxkKTEyMDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NH
RXZlbnRHZXN0dXJlU3dpcGVNb3Rpb24gPSAoQ0dFdmVudEZpZWxkKTEyMzsKK3N0YXRpYyBjb25z
dCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVQcm9ncmVzcyA9IChDR0V2ZW50Rmll
bGQpMTI0Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVBv
c2l0aW9uWCA9IChDR0V2ZW50RmllbGQpMTI1Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBr
Q0dFdmVudEdlc3R1cmVTd2lwZVBvc2l0aW9uWSA9IChDR0V2ZW50RmllbGQpMTI2Oworc3RhdGlj
IGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WCA9IChDR0V2
ZW50RmllbGQpMTI5Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVT
d2lwZVZlbG9jaXR5WSA9IChDR0V2ZW50RmllbGQpMTMwOworc3RhdGljIGNvbnN0IENHRXZlbnRG
aWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WiA9IChDR0V2ZW50RmllbGQpMTMxOwor
c3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVQaGFzZSA9IChDR0V2ZW50
RmllbGQpMTMyOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVNYXNr
ID0gKENHRXZlbnRGaWVsZCkxMzM7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50
R2VzdHVyZVN3aXBlTWFzayA9IChDR0V2ZW50RmllbGQpMTM0Oworc3RhdGljIGNvbnN0IENHRXZl
bnRGaWVsZCBrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyA9IChDR0V2ZW50RmllbGQpMTM1
Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudFN3aXBlR2VzdHVyZUZsYWdCaXRz
ID0gKENHRXZlbnRGaWVsZCkxMzY7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50
R2VzdHVyZUZsYXZvciA9IChDR0V2ZW50RmllbGQpMTM4Oworc3RhdGljIGNvbnN0IENHRXZlbnRG
aWVsZCBrQ0dFdmVudEdlc3R1cmVab29tRGVsdGFYID0gKENHRXZlbnRGaWVsZCkxMzk7CitzdGF0
aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVpvb21EZWx0YVkgPSAoQ0dFdmVu
dEZpZWxkKTE0MDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlUHJv
Z3Jlc3MgPSAoQ0dFdmVudEZpZWxkKTE0MjsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NH
RXZlbnRHZXN0dXJlU3RhZ2UgPSAoQ0dFdmVudEZpZWxkKTE0MzsKK3N0YXRpYyBjb25zdCBDR0V2
ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlQmVoYXZpb3IgPSAoQ0dFdmVudEZpZWxkKTE0NDsKK3N0
YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRUcmFuc2l0aW9uUHJvZ3Jlc3MgPSAoQ0dF
dmVudEZpZWxkKTE0NzsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRTdGFnZVBy
ZXNzdXJlID0gKENHRXZlbnRGaWVsZCkxNDg7CisKK2VudW0geworICAgIGtDR1NFdmVudFNjcm9s
bFdoZWVsID0gMjIsCisgICAga0NHU0V2ZW50Wm9vbSA9IDI4LAorICAgIGtDR1NFdmVudEdlc3R1
cmUgPSAyOSwKKyAgICBrQ0dTRXZlbnREb2NrQ29udHJvbCA9IDMwLAorICAgIGtDR1NFdmVudEZs
dWlkVG91Y2hHZXN0dXJlID0gMzEsCit9OwordHlwZWRlZiB1aW50MzJfdCBDR1NFdmVudFR5cGU7
CisKK2VudW0geworICAgIGtDR0hJREV2ZW50VHlwZUdlc3R1cmVTdGFydGVkID0gNjEsCisgICAg
a0NHSElERXZlbnRUeXBlR2VzdHVyZUVuZGVkID0gNjIsCit9OwordHlwZWRlZiB1aW50MzJfdCBD
R1NISURFdmVudFR5cGU7CisKK0NHUG9pbnQgQ0dFdmVudEdldFdpbmRvd0xvY2F0aW9uKENHRXZl
bnRSZWYpOwordm9pZCBDR0V2ZW50U2V0V2luZG93TG9jYXRpb24oQ0dFdmVudFJlZiwgQ0dQb2lu
dCk7CisKK1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL3NwaS9JT0tpdFNQSS5oIGIv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9zcGkvSU9LaXRTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjQzNjYx
ODg2OWQxM2RhNmI5NjQxZjM0MmYzMjI2NTkyMGYzMTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9zcGkvSU9LaXRTUEkuaApAQCAtMCwwICsxLDE5NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0IDx3dGYvUGxhdGZvcm0uaD4KKworI2lm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPElPS2l0L2hpZC9JT0hJREV2ZW50
Lmg+CisjaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURFdmVudERhdGEuaD4KKyNpbXBvcnQgPElPS2l0
L2hpZC9JT0hJREV2ZW50U3lzdGVtQ2xpZW50Lmg+CisjaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURV
c2FnZVRhYmxlcy5oPgorCisjZWxzZQorCitXVEZfRVhURVJOX0NfQkVHSU4KKworI2lmZGVmIF9f
TFA2NF9fCit0eXBlZGVmIGRvdWJsZSBJT0hJREZsb2F0OworI2Vsc2UKK3R5cGVkZWYgZmxvYXQg
SU9ISURGbG9hdDsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBrSU9ISURFdmVudE9wdGlvbk5vbmUg
PSAwLAorfTsKKwordHlwZWRlZiBVSW50MzIgSU9PcHRpb25CaXRzOwordHlwZWRlZiB1aW50MzJf
dCBJT0hJREV2ZW50T3B0aW9uQml0czsKK3R5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudEZpZWxk
OworCit0eXBlZGVmIHN0cnVjdCBfX0lPSElERXZlbnRTeXN0ZW1DbGllbnQgKiBJT0hJREV2ZW50
U3lzdGVtQ2xpZW50UmVmOwordHlwZWRlZiBzdHJ1Y3QgX19JT0hJREV2ZW50ICogSU9ISURFdmVu
dFJlZjsKKworI2RlZmluZSBJT0hJREV2ZW50RmllbGRCYXNlKHR5cGUpICh0eXBlIDw8IDE2KQor
CitlbnVtIHsKKyAgICBrSElEUGFnZV9LZXlib2FyZE9yS2V5cGFkICAgICAgID0gMHgwNywKKyAg
ICBrSElEUGFnZV9WZW5kb3JEZWZpbmVkU3RhcnQgICAgID0gMHhGRjAwCit9OworCitlbnVtIHsK
KyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFJhbmdlICAgICAgID0gMTw8MCwKKyAgICBrSU9ISURE
aWdpdGl6ZXJFdmVudFRvdWNoICAgICAgID0gMTw8MSwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVu
dFBvc2l0aW9uICAgID0gMTw8MiwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudElkZW50aXR5ICAg
ID0gMTw8NSwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudEF0dHJpYnV0ZSAgID0gMTw8NiwKKyAg
ICBrSU9ISUREaWdpdGl6ZXJFdmVudENhbmNlbCAgICAgID0gMTw8NywKKyAgICBrSU9ISUREaWdp
dGl6ZXJFdmVudFN0YXJ0ICAgICAgID0gMTw8OCwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudEVz
dGltYXRlZEFsdGl0dWRlID0gMTw8MjgsCisgICAga0lPSElERGlnaXRpemVyRXZlbnRFc3RpbWF0
ZWRBemltdXRoID0gMTw8MjksCisgICAga0lPSElERGlnaXRpemVyRXZlbnRFc3RpbWF0ZWRQcmVz
c3VyZSA9IDE8PDMwLAorfTsKK3R5cGVkZWYgdWludDMyX3QgSU9ISUREaWdpdGl6ZXJFdmVudE1h
c2s7CisKK2VudW0geworICAgIGtJT0hJREV2ZW50VHlwZU5VTEwsCisgICAga0lPSElERXZlbnRU
eXBlVmVuZG9yRGVmaW5lZCwKKyAgICBrSU9ISURFdmVudFR5cGVLZXlib2FyZCA9IDMsCisgICAg
a0lPSElERXZlbnRUeXBlUm90YXRpb24gPSA1LAorICAgIGtJT0hJREV2ZW50VHlwZVNjcm9sbCA9
IDYsCisgICAga0lPSElERXZlbnRUeXBlWm9vbSA9IDgsCisgICAga0lPSElERXZlbnRUeXBlRGln
aXRpemVyID0gMTEsCisgICAga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlID0gMTYsCisg
ICAga0lPSElERXZlbnRUeXBlRm9yY2UgPSAzMiwKKworfTsKK3R5cGVkZWYgdWludDMyX3QgSU9I
SURFdmVudFR5cGU7CisKK2VudW0geworICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVk
VXNhZ2VQYWdlID0gSU9ISURFdmVudEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVWZW5kb3JEZWZp
bmVkKSwKKyAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFJlc2VydmVkLAorICAgIGtJ
T0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkUmVzZXJ2ZWQxLAorICAgIGtJT0hJREV2ZW50Rmll
bGRWZW5kb3JEZWZpbmVkRGF0YUxlbmd0aCwKKyAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVm
aW5lZERhdGEKK307CisKK2VudW0geworICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJYID0g
SU9ISURFdmVudEZpZWxkQmFzZShrSU9ISURFdmVudFR5cGVEaWdpdGl6ZXIpLAorICAgIGtJT0hJ
REV2ZW50RmllbGREaWdpdGl6ZXJZLAorICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJNYWpv
clJhZGl1cyA9IGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJYICsgMjAsCisgICAga0lPSElERXZl
bnRGaWVsZERpZ2l0aXplck1pbm9yUmFkaXVzLAorICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6
ZXJJc0Rpc3BsYXlJbnRlZ3JhdGVkID0ga0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1ham9yUmFk
aXVzICsgNSwKK307CisKK2VudW0geworICAgIGtJT0hJRFRyYW5zZHVjZXJSYW5nZSAgICAgICAg
ICAgICAgID0gMHgwMDAxMDAwMCwKKyAgICBrSU9ISURUcmFuc2R1Y2VyVG91Y2ggICAgICAgICAg
ICAgICA9IDB4MDAwMjAwMDAsCisgICAga0lPSElEVHJhbnNkdWNlckludmVydCAgICAgICAgICAg
ICAgPSAweDAwMDQwMDAwLAorICAgIGtJT0hJRFRyYW5zZHVjZXJEaXNwbGF5SW50ZWdyYXRlZCAg
ID0gMHgwMDA4MDAwMAorfTsKKworZW51bSB7CisgICAga0lPSElERGlnaXRpemVyVHJhbnNkdWNl
clR5cGVTdHlsdXMgID0gMCwKKyAgICBrSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZUZpbmdl
ciA9IDIsCisgICAga0lPSElERGlnaXRpemVyVHJhbnNkdWNlclR5cGVIYW5kID0gMworfTsKK3R5
cGVkZWYgdWludDMyX3QgSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZTsKKworZW51bSB7Cisg
ICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplcldpbGxVcGRhdGVNYXNrID0gNzIwOTI0LAorICAg
IGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJEaWRVcGRhdGVNYXNrID0gNzIwOTI1Cit9OworCitJ
T0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVEaWdpdGl6ZXJFdmVudChDRkFsbG9jYXRvclJl
ZiwgdWludDY0X3QsIElPSElERGlnaXRpemVyVHJhbnNkdWNlclR5cGUsIHVpbnQzMl90LCB1aW50
MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIG50MzJfdCwgSU9ISURGbG9hdCwgSU9ISURG
bG9hdCwgSU9ISURGbG9hdCwgSU9ISURGbG9hdCwgSU9ISURGbG9hdCwgYm9vbGVhbl90LCBib29s
ZWFuX3QsIElPT3B0aW9uQml0cyk7CisKK0lPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZURp
Z2l0aXplckZpbmdlckV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIHVp
bnQzMl90LCBJT0hJRERpZ2l0aXplckV2ZW50TWFzaywgSU9ISURGbG9hdCwgSU9ISURGbG9hdCwg
SElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIGJvb2xlYW5fdCwgYm9vbGVhbl90LCBJ
T0hJREV2ZW50T3B0aW9uQml0cyk7CisKK0lPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZUZv
cmNlRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgSU9ISURGbG9hdCwg
dWludDMyX3QsIElPSElERmxvYXQsIElPSElERXZlbnRPcHRpb25CaXRzKTsKKworSU9ISURFdmVu
dFJlZiBJT0hJREV2ZW50Q3JlYXRlS2V5Ym9hcmRFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0
X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgYm9vbGVhbl90LCBJT09wdGlvbkJpdHMpOworCitJT0hJ
REV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVWZW5kb3JEZWZpbmVkRXZlbnQoQ0ZBbGxvY2F0b3JS
ZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50OF90KiwgQ0ZJ
bmRleCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOworCitJT0hJREV2ZW50UmVmIElPSElERXZlbnRD
cmVhdGVEaWdpdGl6ZXJTdHlsdXNFdmVudFdpdGhQb2xhck9yaWVudGF0aW9uKENGQWxsb2NhdG9y
UmVmLCB1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90LCBJT0hJRERpZ2l0aXplckV2ZW50TWFz
aywgdWludDMyX3QsIEhJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0
LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBJT0hJREZsb2F0LCBib29sZWFu
X3QsIGJvb2xlYW5fdCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOworCitJT0hJREV2ZW50VHlwZSBJ
T0hJREV2ZW50R2V0VHlwZShJT0hJREV2ZW50UmVmKTsKKwordm9pZCBJT0hJREV2ZW50U2V0Rmxv
YXRWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50RmllbGQsIElPSElERmxvYXQpOworCitD
RkluZGV4IElPSElERXZlbnRHZXRJbnRlZ2VyVmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVu
dEZpZWxkKTsKK3ZvaWQgSU9ISURFdmVudFNldEludGVnZXJWYWx1ZShJT0hJREV2ZW50UmVmLCBJ
T0hJREV2ZW50RmllbGQsIENGSW5kZXgpOworCit2b2lkIElPSElERXZlbnRBcHBlbmRFdmVudChJ
T0hJREV2ZW50UmVmLCBJT0hJREV2ZW50UmVmLCBJT09wdGlvbkJpdHMpOworCitJT0hJREV2ZW50
U3lzdGVtQ2xpZW50UmVmIElPSElERXZlbnRTeXN0ZW1DbGllbnRDcmVhdGUoQ0ZBbGxvY2F0b3JS
ZWYpOworCisjZGVmaW5lIGtHU0V2ZW50UGF0aEluZm9JblJhbmdlICgxIDw8IDApCisjZGVmaW5l
IGtHU0V2ZW50UGF0aEluZm9JblRvdWNoICgxIDw8IDEpCisKK2VudW0geworICAgIGtISURVc2Fn
ZV9LZXlib2FyZEEgPSAweDA0LAorICAgIGtISURVc2FnZV9LZXlib2FyZDEgPSAweDFFLAorICAg
IGtISURVc2FnZV9LZXlib2FyZDIgPSAweDFGLAorICAgIGtISURVc2FnZV9LZXlib2FyZDMgPSAw
eDIwLAorICAgIGtISURVc2FnZV9LZXlib2FyZDQgPSAweDIxLAorICAgIGtISURVc2FnZV9LZXli
b2FyZDUgPSAweDIyLAorICAgIGtISURVc2FnZV9LZXlib2FyZDYgPSAweDIzLAorICAgIGtISURV
c2FnZV9LZXlib2FyZDcgPSAweDI0LAorICAgIGtISURVc2FnZV9LZXlib2FyZDggPSAweDI1LAor
ICAgIGtISURVc2FnZV9LZXlib2FyZDkgPSAweDI2LAorICAgIGtISURVc2FnZV9LZXlib2FyZDAg
PSAweDI3LAorICAgIGtISURVc2FnZV9LZXlib2FyZFJldHVybk9yRW50ZXIgPSAweDI4LAorICAg
IGtISURVc2FnZV9LZXlib2FyZEVzY2FwZSA9IDB4MjksCisgICAga0hJRFVzYWdlX0tleWJvYXJk
RGVsZXRlT3JCYWNrc3BhY2UgPSAweDJBLAorICAgIGtISURVc2FnZV9LZXlib2FyZFRhYiA9IDB4
MkIsCisgICAga0hJRFVzYWdlX0tleWJvYXJkU3BhY2ViYXIgPSAweDJDLAorICAgIGtISURVc2Fn
ZV9LZXlib2FyZEh5cGhlbiA9IDB4MkQsCisgICAga0hJRFVzYWdlX0tleWJvYXJkRXF1YWxTaWdu
ID0gMHgyRSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRPcGVuQnJhY2tldCA9IDB4MkYsCisgICAg
a0hJRFVzYWdlX0tleWJvYXJkQ2xvc2VCcmFja2V0ID0gMHgzMCwKKyAgICBrSElEVXNhZ2VfS2V5
Ym9hcmRCYWNrc2xhc2ggPSAweDMxLAorICAgIGtISURVc2FnZV9LZXlib2FyZFNlbWljb2xvbiA9
IDB4MzMsCisgICAga0hJRFVzYWdlX0tleWJvYXJkUXVvdGUgPSAweDM0LAorICAgIGtISURVc2Fn
ZV9LZXlib2FyZEdyYXZlQWNjZW50QW5kVGlsZGUgPSAweDM1LAorICAgIGtISURVc2FnZV9LZXli
b2FyZENvbW1hID0gMHgzNiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRQZXJpb2QgPSAweDM3LAor
ICAgIGtISURVc2FnZV9LZXlib2FyZFNsYXNoID0gMHgzOCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9h
cmRGMSA9IDB4M0EsCisgICAga0hJRFVzYWdlX0tleWJvYXJkSG9tZSA9IDB4NEEsCisgICAga0hJ
RFVzYWdlX0tleWJvYXJkUGFnZVVwID0gMHg0QiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRFbmQg
PSAweDRELAorICAgIGtISURVc2FnZV9LZXlib2FyZFJpZ2h0QXJyb3cgPSAweDRGLAorICAgIGtI
SURVc2FnZV9LZXlib2FyZExlZnRBcnJvdyA9IDB4NTAsCisgICAga0hJRFVzYWdlX0tleWJvYXJk
RG93bkFycm93ID0gMHg1MSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRVcEFycm93ID0gMHg1MiwK
KyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0Q29udHJvbCA9IDB4RTAsCisgICAga0hJRFVzYWdl
X0tleWJvYXJkTGVmdFNoaWZ0ID0gMHhFMSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0QWx0
ID0gMHhFMgorfTsKKworV1RGX0VYVEVSTl9DX0VORAorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5k
ZXJQcm94eS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmgKaW5k
ZXggNzBkOTQwMTRjOGQ3NTBjYjdkNjU3MDgwNDUyOGUyMDhjYzJmNGE1NC4uMjRmMjdiMjg5MTdj
MGUzNGNiN2RlYjczNjk1OTAzNzdiYTdiZWQ2MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9F
dmVudFNlbmRlclByb3h5LmgKQEAgLTcxLDcgKzcxLDYgQEAgcHVibGljOgogICAgIHZvaWQgbW91
c2VNb3ZlVG8oZG91YmxlIHgsIGRvdWJsZSB5KTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnkoaW50
IHgsIGludCB5KTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcyhpbnQgeCwgaW50IHksIGludCBwaGFzZSwgaW50IG1vbWVudHVtKTsKLSAgICB2b2lkIHN3
aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50IHBo
YXNlLCBpbnQgbW9tZW50dW0pOwogICAgIHZvaWQgY29udGludW91c01vdXNlU2Nyb2xsQnkoaW50
IHgsIGludCB5LCBib29sIHBhZ2VkKTsKIAogICAgIHZvaWQgbGVhcEZvcndhcmQoaW50IG1pbGxp
c2Vjb25kcyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlk
bAppbmRleCBmMzI4MGJiOTRiMDU0MzcwMjQzMDIzZTI1MzM2ZGUxYWZhZTc5MzlmLi5kNWI4MDM4
NDU5ZTc2Yjk4OTE0OTk4YzYwOWI2ZjM2MTY3NDA3ZDgxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwKQEAgLTM0LDcgKzM0LDYgQEAgaW50ZXJmYWNl
IEV2ZW50U2VuZGluZ0NvbnRyb2xsZXIgewogICAgIHZvaWQgbW91c2VGb3JjZUNoYW5nZWQoZG91
YmxlIGZvcmNlKTsKICAgICB2b2lkIG1vdXNlU2Nyb2xsQnkobG9uZyB4LCBsb25nIHkpOwogICAg
IHZvaWQgbW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGxvbmcgeCwgbG9u
ZyB5LCBET01TdHJpbmcgcGhhc2UsIERPTVN0cmluZyBtb21lbnR1bSk7Ci0gICAgdm9pZCBzd2lw
ZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhsb25nIHgsIGxvbmcgeSwgRE9NU3Ry
aW5nIHBoYXNlLCBET01TdHJpbmcgbW9tZW50dW0pOwogICAgIHZvaWQgY29udGludW91c01vdXNl
U2Nyb2xsQnkobG9uZyB4LCBsb25nIHksIG9wdGlvbmFsIGJvb2xlYW4gcGFnZWQpOwogICAgIG9i
amVjdCBjb250ZXh0Q2xpY2soKTsKICAgICB2b2lkIHNjaGVkdWxlQXN5bmNocm9ub3VzQ2xpY2so
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZl
bnRTZW5kaW5nQ29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDNlODFkYjlkMzI5NDczMzIw
ZjQyZGMwOTc5ODYyZWI3ZDBlMTZjZDcuLjc3ZWQ2Y2Q3YzJlMjEzM2I5NjQ5ZDk4ZmYxODA3Mjhh
YjNmMzZjMDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcApAQCAtNDgzLDM4ICs0
ODMsNiBAQCB2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6Om1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50CiAgICAgV0tCdW5kbGVQYWdlUG9zdE1lc3Nh
Z2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBFdmVudFNlbmRl
ck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAot
dm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIEpTU3RyaW5nUmVmIHBoYXNlU3RyLCBKU1N0cmluZ1Jl
ZiBtb21lbnR1bVN0cikKLXsKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gRXZlbnRTZW5k
ZXJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRXZl
bnRTZW5kZXIiKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tNdXRhYmxlRGljdGlvbmFyeVJlZj4gRXZl
bnRTZW5kZXJNZXNzYWdlQm9keShBZG9wdFdLLCBXS011dGFibGVEaWN0aW9uYXJ5Q3JlYXRlKCkp
OwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHN1Yk1lc3NhZ2VLZXkoQWRvcHRXSywg
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlN1Yk1lc3NhZ2UiKSk7Ci0gICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IHN1Yk1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJTd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyIp
KTsKLSAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCks
IHN1Yk1lc3NhZ2VLZXkuZ2V0KCksIHN1Yk1lc3NhZ2VOYW1lLmdldCgpKTsKLQotICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiB4S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJYIikpOwotICAgIFdLUmV0YWluUHRyPFdLRG91YmxlUmVmPiB4UmVmKEFkb3B0V0ss
IFdLRG91YmxlQ3JlYXRlKHgpKTsKLSAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVy
TWVzc2FnZUJvZHkuZ2V0KCksIHhLZXkuZ2V0KCksIHhSZWYuZ2V0KCkpOwotCi0gICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IHlLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIlkiKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tEb3VibGVSZWY+IHlSZWYoQWRvcHRXSywg
V0tEb3VibGVDcmVhdGUoeSkpOwotICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oRXZlbnRTZW5kZXJN
ZXNzYWdlQm9keS5nZXQoKSwgeUtleS5nZXQoKSwgeVJlZi5nZXQoKSk7Ci0KLSAgICB1aW50NjRf
dCBwaGFzZSA9IGNnRXZlbnRQaGFzZUZyb21TdHJpbmcocGhhc2VTdHIpOwotICAgIHVpbnQ2NF90
IG1vbWVudHVtID0gY2dFdmVudE1vbWVudHVtUGhhc2VGcm9tU3RyaW5nKG1vbWVudHVtU3RyKTsK
LQotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBwaGFzZUtleShBZG9wdFdLLCBXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiUGhhc2UiKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tVSW50
NjRSZWY+IHBoYXNlUmVmKEFkb3B0V0ssIFdLVUludDY0Q3JlYXRlKHBoYXNlKSk7Ci0gICAgV0tE
aWN0aW9uYXJ5U2V0SXRlbShFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCBwaGFzZUtleS5n
ZXQoKSwgcGhhc2VSZWYuZ2V0KCkpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1v
bWVudHVtS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJNb21lbnR1
bSIpKTsKLSAgICBXS1JldGFpblB0cjxXS1VJbnQ2NFJlZj4gbW9tZW50dW1SZWYoQWRvcHRXSywg
V0tVSW50NjRDcmVhdGUobW9tZW50dW0pKTsKLSAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50
U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIG1vbWVudHVtS2V5LmdldCgpLCBtb21lbnR1bVJlZi5n
ZXQoKSk7Ci0KLSAgICBXS0J1bmRsZVBhZ2VGb3JjZVJlcGFpbnQoSW5qZWN0ZWRCdW5kbGU6OnNp
bmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpKTsgLy8gVHJpZ2dlcnMgYSBzY3JvbGxpbmcgdHJlZSBj
b21taXQuCi0gICAgV0tCdW5kbGVQYWdlUG9zdE1lc3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmds
ZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBFdmVudFNlbmRlck1lc3NhZ2VOYW1lLmdldCgpLCBFdmVu
dFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpKTsKLX0KLQogdm9pZCBFdmVudFNlbmRpbmdDb250cm9s
bGVyOjpjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHksIGJvb2wgcGFnZWQpCiB7
CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUoQWRv
cHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkV2ZW50U2VuZGVyIikpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRp
bmdDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2
ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAppbmRleCBjMjNjMzZkZmFjNTU4NGY4NTFjNWY2MGZiNGQ1
NjIyY2ZmNDIwMDRhLi4yOGZjZTljZTZjYmU1N2MzZmY4ZThmOTgzZWJjNDJiNGUwOGIwZDJkIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2Vu
ZGluZ0NvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaApAQCAtNTMsNyArNTMsNiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBtb3VzZUZvcmNlQ2hhbmdlZChkb3VibGUgZm9yY2UpOwogICAgIHZvaWQgbW91c2VT
Y3JvbGxCeShpbnQgeCwgaW50IHkpOwogICAgIHZvaWQgbW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgSlNTdHJpbmdSZWYgcGhhc2UsIEpTU3RyaW5n
UmVmIG1vbWVudHVtKTsKLSAgICB2b2lkIHN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKGludCB4LCBpbnQgeSwgSlNTdHJpbmdSZWYgcGhhc2UsIEpTU3RyaW5nUmVmIG1vbWVu
dHVtKTsKICAgICB2b2lkIGNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSwgYm9v
bCBwYWdlZCk7CiAgICAgSlNWYWx1ZVJlZiBjb250ZXh0Q2xpY2soKTsKICAgICB2b2lkIGxlYXBG
b3J3YXJkKGludCBtaWxsaXNlY29uZHMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbSBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW0K
aW5kZXggYWM1NGExYzZkNmQ4YzJjNTBlMDgxZGI1YmRiODIxZDNlNjA4ZWMyZC4uY2FiM2YxOGIz
NjU5ZjQ5MTZiZDUwMDg3OTI4NmQ2YTI3YzBjOWY5MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbQorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9FdmVudFNlbmRlclBy
b3h5SU9TLm1tCkBAIC0xMDMsMTEgKzEwMyw2IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50CiAg
ICAgLy8gV3JpdGUgbWUuCiB9CiAKLXZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c3dpcGVHZXN0dXJl
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50LCBpbnQsIGludCwgaW50KQotewotICAgIC8v
IFdyaXRlIG1lLgotfQotCiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNj
cm9sbEJ5KGludCB4LCBpbnQgeSwgYm9vbCBwYWdlZCkKIHsKICAgICAvLyBXcml0ZSBtZS4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMjBjNTNlNDFhMmVi
YmY4ODdhZTM2NTJjNTExNjA5NTgzMmNlN2YxMC4uZDcwMTNlNmU3MjZlNTY4MjVhZmE2NDIyZjBi
NDQxODhlMWQ4NjkzYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKQEAgLTEyNTQsMjMgKzEyNTQsNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZl
TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcoc3ViTWVzc2FnZU5hbWUsICJTd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcyIpKSB7Ci0gICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4geEtl
eSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlgiKSk7Ci0gICAgICAg
ICAgICBkb3VibGUgeCA9IFdLRG91YmxlR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+
KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB4S2V5Lmdl
dCgpKSkpOwotCi0gICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4geUtleSA9IGFk
b3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlkiKSk7Ci0gICAgICAgICAgICBk
b3VibGUgeSA9IFdLRG91YmxlR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGlj
dGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB5S2V5LmdldCgpKSkp
OwotCi0gICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gcGhhc2VLZXkgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJQaGFzZSIpKTsKLSAgICAgICAgICAg
IGludCBwaGFzZSA9IHN0YXRpY19jYXN0PGludD4oV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2Fz
dDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rp
b25hcnksIHBoYXNlS2V5LmdldCgpKSkpKTsKLSAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBtb21lbnR1bUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIk1vbWVudHVtIikpOwotICAgICAgICAgICAgaW50IG1vbWVudHVtID0gc3RhdGljX2Nhc3Q8
aW50PihXS1VJbnQ2NEdldFZhbHVlKHN0YXRpY19jYXN0PFdLVUludDY0UmVmPihXS0RpY3Rpb25h
cnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgbW9tZW50dW1LZXkuZ2V0KCkp
KSkpOwotCi0gICAgICAgICAgICBtX2V2ZW50U2VuZGVyUHJveHktPnN3aXBlR2VzdHVyZVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKHgsIHksIHBoYXNlLCBtb21lbnR1bSk7Ci0KLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVu
bmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dl
YktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5ZGI5OGVhOWUw
OWI5OWE2ZmM3YTE3MGU5ZTA0MGY0NjZiMmE0NTAwLi41MWZkMjVhNTc2YTUyYjZmOWM4ZWYyOWQw
YjNiZWU2ZDdkYTA0YWQ1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktp
dFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NjMsNiArNjMsMTEgQEAKIAkJMjlBOEZDREQxNDVGMDMzNzAwOTA0NUE2IC8qIEpTQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOUE4RkNFMTM0NUU3MDIxMDA2QUE1QTYgLyogSlNBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlclJhbmdlLmNwcCAqLzsgfTsKIAkJMjlBOEZDRTIxNDVGMDM3QjAwOTA0NUE2IC8q
IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBOEZDRTExNDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwICovOyB9OwogCQkyOUE4RkNFNTE0NUYwNDY0MDA5
MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QThGQ0U0MTQ1RjA0NjQwMDkwNDVB
NiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tICovOyB9OworCQkyREI2MTg3
RTFEN0Q1OEQ0MDA5NzhEMTkgLyogQ29yZUdyYXBoaWNzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREI2MTg3RDFEN0Q1OEQ0MDA5NzhEMTkgLyog
Q29yZUdyYXBoaWNzU1BJLmggKi87IH07CisJCTJERDRDNDlBMUQ2RTdEM0IwMDA3Mzc5QyAvKiBF
dmVudFNlcmlhbGl6ZXJNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJERDRDNDk4MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMu
aCAqLzsgfTsKKwkJMkRENEM0OUIxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1h
Yy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERDRD
NDk5MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMubW0gKi87IH07CisJCTJE
RkE5ODQ4MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERkE5ODQ2MUQ3RjcwQ0Yw
MEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaCAqLzsgfTsKKwkJMkRGQTk4NDkxRDdG
NzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJERkE5ODQ3MUQ3RjcwQ0YwMEFGRjJDOSAv
KiBTaGFyZWRFdmVudFN0cmVhbXNNYWMubW0gKi87IH07CiAJCTJFMzRDOTAwMThCNjg4MDgwMDAw
NjdCQiAvKiBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuYnVuZGxlIGluIENvcHkgUGx1
Zy1JbnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNTE4NjIxMUQxNUQ1
NDAwMkVCQzAxIC8qIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5idW5kbGUgKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoQ29kZVNpZ25PbkNvcHksIFJlbW92ZUhlYWRlcnNPbkNv
cHksICk7IH07IH07CiAJCTJFNjNFRDhBMTg5MUFEN0UwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFNjNFRDc1MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cklPUy5tbSAqLzsgfTsKIAkJMkU2M0VEOEIxODkxQUQ3RTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkU2M0VENzcxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VySU9TLm1tICovOyB9OwpAQCAtMjExLDcgKzIxNiw3IEBACiAJCTBGRUI5MEEzMTkwNUJDNkEw
MDBGREJGMyAvKiBDcmFzaFJlcG9ydGVySW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IENyYXNoUmVwb3J0ZXJJbmZvLm1tOyBwYXRoID0gY29jb2EvQ3Jhc2hS
ZXBvcnRlckluZm8ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRUJGODU4MUJC
NjFERjIwMDI4NzIyRCAvKiBISURFdmVudEdlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBISURFdmVudEdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRkVCRjg1OTFCQjYxREYyMDAyODcyMkQgLyogSElERXZlbnRHZW5lcmF0b3IubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBISURFdmVudEdlbmVyYXRv
ci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEZFQkY4NUIxQkI2MkEzNzAwMjg3
MjJEIC8qIElPS2l0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElPS2l0U1BJLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTBGRUJGODVCMUJCNjJBMzcwMDI4NzIyRCAvKiBJT0tpdFNQSS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBJT0tpdFNQSS5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9z
cGkvSU9LaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQkY4NUMxQkI2
MkQ0NjAwMjg3MjJEIC8qIFVJS2l0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVJS2l0U1BJLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMzMyNjA1MUI3NTM5NjUwMEY4OUY2MiAvKiBU
ZXN0T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXN0T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQ0EyMTFDNzFCQ0ExMDczMDBCMjEwMUYgLyogRm9udFdpdGhGZWF0
dXJlcy5vdGYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBmaWxlOyBwYXRoID0gRm9udFdpdGhGZWF0dXJlcy5vdGY7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yNDAsNyArMjQ1LDEyIEBACiAJCTI5QThGQ0UxMzQ1RTcwMjEwMDZBQTVBNiAv
KiBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlBOEZDRTEzNDVFNzAyMTAwNkFBNUE3IC8qIEpT
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjlBOEZDRTQxNDVGMDQ2NDAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyUmFuZ2VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyREI2MTg3RDFEN0Q1OEQ0MDA5NzhEMTkgLyogQ29yZUdyYXBoaWNzU1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvcmVHcmFwaGljc1NQSS5oOyBw
YXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9zcGkvQ29yZUdyYXBoaWNzU1BJLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQ0UyQ0QxMUI4NDUyNDUwMEM3RjgzMiAvKiBUZXN0Q29u
dHJvbGxlckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0g
VGVzdENvbnRyb2xsZXJDb2NvYS5tbTsgcGF0aCA9IGNvY29hL1Rlc3RDb250cm9sbGVyQ29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJERDRDNDk4MUQ2RTdEM0IwMDA3Mzc5
QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gRXZlbnRTZXJpYWxpemVyTWFjLmg7IHBhdGggPSBtYWMvRXZlbnRTZXJpYWxpemVyTWFjLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJERDRDNDk5MUQ2RTdEM0IwMDA3Mzc5QyAv
KiBFdmVudFNlcmlhbGl6ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBFdmVudFNlcmlhbGl6ZXJNYWMubW07IHBhdGggPSBtYWMvRXZlbnRTZXJpYWxpemVy
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREZBOTg0NjFEN0Y3MENGMDBB
RkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFNoYXJlZEV2ZW50U3RyZWFtc01hYy5oOyBwYXRoID0gbWFjL1NoYXJlZEV2ZW50
U3RyZWFtc01hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREZBOTg0NzFEN0Y3
MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tOyBwYXRoID0g
bWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkU2M0VENzUxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9T
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNjNFRDc2
MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
SGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTYzRUQ3NzE4OTFBQ0U5
MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ3Niw3ICs0ODYsOSBAQAogCQkwRjczQjU0
NzFCQTc4MkZFMDA0QjNFRjQgLyogVUlTY3JpcHRDb250ZXh0ICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyREI2MTg3RjFEN0Q1OTg4MDA5NzhEMTkgLyog
c3BpICovLAogCQkJCTBGNzNCNTRCMUJBNzgzNTAwMDRCM0VGNCAvKiBCaW5kaW5ncyAqLywKKwkJ
CQkyREQ0QzQ5NzFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnQgU2VyaWFsaXphdGlvbiAqLywKIAkJ
CQkwRjczQjU0RTFCQTc4OTU0MDA0QjNFRjQgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTBG
MThFNkREMUQ2QjlBQUYwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRleHQuY3BwICovLAogCQkJCTBG
MThFNkRFMUQ2QjlBQUYwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRleHQuaCAqLywKQEAgLTU1NCw2
ICs1NjYsMzUgQEAKIAkJCW5hbWUgPSBBY2Nlc3NpYmlsaXR5OwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKIAkJfTsKKwkJMkRCNjE4N0YxRDdENTk4ODAwOTc4RDE5IC8qIHNwaSAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMkRCNjE4N0QxRDdENThE
NDAwOTc4RDE5IC8qIENvcmVHcmFwaGljc1NQSS5oICovLAorCQkJCTBGRUJGODVCMUJCNjJBMzcw
MDI4NzIyRCAvKiBJT0tpdFNQSS5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBzcGk7CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkyREQ0QzQ5NzFENkU3RDNCMDAwNzM3OUMgLyog
RXZlbnQgU2VyaWFsaXphdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMkRGQTk4NEExRDdGNzlFMDAwQUZGMkM5IC8qIG1hYyAqLywKKwkJCSk7CisJ
CQluYW1lID0gIkV2ZW50IFNlcmlhbGl6YXRpb24iOworCQkJcGF0aCA9IC4uL1Rlc3RSdW5uZXJT
aGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKKwkJMkRGQTk4NEExRDdGNzlFMDAwQUZGMkM5IC8qIG1hYyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMkRENEM0OTgxRDZFN0QzQjAwMDczNzlDIC8q
IEV2ZW50U2VyaWFsaXplck1hYy5oICovLAorCQkJCTJERDRDNDk5MUQ2RTdEM0IwMDA3Mzc5QyAv
KiBFdmVudFNlcmlhbGl6ZXJNYWMubW0gKi8sCisJCQkJMkRGQTk4NDYxRDdGNzBDRjAwQUZGMkM5
IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5oICovLAorCQkJCTJERkE5ODQ3MUQ3RjcwQ0YwMEFG
RjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMubW0gKi8sCisJCQkpOworCQkJbmFtZSA9IG1h
YzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTJFNjNFRDc0MTg5MUFDRTkw
MDJBN0FGQyAvKiBpb3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KApAQCAtNTkxLDcgKzYzMiw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRkVCRjg1ODFCQjYx
REYyMDAyODcyMkQgLyogSElERXZlbnRHZW5lcmF0b3IuaCAqLywKIAkJCQkwRkVCRjg1OTFCQjYx
REYyMDAyODcyMkQgLyogSElERXZlbnRHZW5lcmF0b3IubW0gKi8sCi0JCQkJMEZFQkY4NUIxQkI2
MkEzNzAwMjg3MjJEIC8qIElPS2l0U1BJLmggKi8sCiAJCQkJMkVFNTJEMTMxODkwQTlGQjAwMTBF
RDIxIC8qIFBsYXRmb3JtV2ViVmlld0lPUy5tbSAqLywKIAkJCQkyRUU1MkQxNDE4OTBBOUZCMDAx
MEVEMjEgLyogVGVzdENvbnRyb2xsZXJJT1MubW0gKi8sCiAJCQkJMEZFQkY4NUMxQkI2MkQ0NjAw
Mjg3MjJEIC8qIFVJS2l0U1BJLmggKi8sCkBAIC03NzgsNyArODE4LDEwIEBACiAJCQlpc2EgPSBQ
QlhIZWFkZXJzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJ
CQlmaWxlcyA9ICgKKwkJCQkyREI2MTg3RTFEN0Q1OEQ0MDA5NzhEMTkgLyogQ29yZUdyYXBoaWNz
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjczQjU1MjFCQTc4OTY4MDA0QjNFRjQgLyogSlNV
SVNjcmlwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTJERkE5ODQ4MUQ3RjcwQ0Yw
MEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCTJE
RDRDNDlBMUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtOTg2LDggKzEwMjksMTAgQEAKIAkJCQkwRjczQjU1MTFCQTc4OTY4MDA0QjNFRjQg
LyogSlNVSVNjcmlwdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxOEU3MTgx
RDZCQzQ1NjAwMjdFNTQ3IC8qIEpTV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTg1
MTAzQzFCOUFFMEZFMDA3NDRBRUIgLyogT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQky
REQ0QzQ5QjFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTE4NTEwNDAxQjlBRTEzMTAwNzQ0QUVCIC8qIFBpeGVsRHVtcFN1cHBvcnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwNDExQjlBRTEzODAwNzQ0QUVCIC8qIFRlc3RD
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJERkE5ODQ5MUQ3RjcwQ0YwMEFGRjJD
OSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTAz
QjFCOUFFMEUyMDA3NDRBRUIgLyogVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUExODUxMDQyMUI5QUUxM0UwMDc0NEFFQiAvKiBUZXN0SW52b2NhdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBMTg1MTAzRDFCOUFFMTA2MDA3NDRBRUIgLyogVGVzdEludm9jYXRp
b25DRy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvZWZsL0V2ZW50U2VuZGVyUHJveHlFZmwuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9l
ZmwvRXZlbnRTZW5kZXJQcm94eUVmbC5jcHAKaW5kZXggMzhhZTA0Zjc5YjY5Y2JiZjc1MGIxMmE5
ZWZhYjFjYTVhNTg5ZDVjYi4uN2E2OGM3ZjI5N2RlMjUxZGFhZDMzM2JhMWU0MWE5OGIxOWVmNjhm
NiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvRXZlbnRTZW5kZXJQcm94
eUVmbC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvRXZlbnRTZW5kZXJQcm94
eUVmbC5jcHAKQEAgLTM5OSwxMSArMzk5LDYgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBpbnQKICAg
ICBtb3VzZVNjcm9sbEJ5KHgsIHkpOwogfQogCi12b2lkIEV2ZW50U2VuZGVyUHJveHk6OnN3aXBl
R2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCwgaW50LCBpbnQsIGludCkKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmxlYXBG
b3J3YXJkKGludCBtaWxsaXNlY29uZHMpCiB7CiAgICAgaWYgKG1fZXZlbnRRdWV1ZS5pc0VtcHR5
KCkpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclBy
b3h5R3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlH
dGsuY3BwCmluZGV4IDAyM2VkYzgxMDVjNTUxMGVhYmZmYzVlMjBjMzNhNDcxNjcxNjNhM2YuLjNj
M2FlMGNlODJlZmM3ODljMzM5ZDBjZWUwMzJlMjBhODQ0NzUxNjEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCkBAIC00NTEsMTEg
KzQ1MSw2IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50CiAgICAgbW91c2VTY3JvbGxCeSh4LCB5
KTsKIH0KIAotdm9pZCBFdmVudFNlbmRlclByb3h5Ojpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcyhpbnQsIGludCwgaW50LCBpbnQpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLX0KLQogdm9pZCBFdmVudFNlbmRlclByb3h5OjpsZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNv
bmRzKQogewogICAgIGlmIChtX2V2ZW50UXVldWUuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvSU9LaXRTUEkuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvaW9zL0lPS2l0U1BJLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4N2NjOWY2
N2Q3ZDNmNmY2YTViYTliYmFjM2FlMDJjYjI1ZGU0NWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvSU9LaXRT
UEkuaAorKysgL2Rldi9udWxsCkBAIC0xLDIwNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBJT0tpdFNQSV9oCi0jZGVmaW5lIElPS2l0U1BJX2gKLQotI2ltcG9ydCA8d3RmL1BsYXRmb3Jt
Lmg+Ci0KLSNpZiBQTEFURk9STShJT1MpCi0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQot
Ci0jaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURFdmVudC5oPgotI2ltcG9ydCA8SU9LaXQvaGlkL0lP
SElERXZlbnREYXRhLmg+Ci0jaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURFdmVudFN5c3RlbUNsaWVu
dC5oPgotI2ltcG9ydCA8SU9LaXQvaGlkL0lPSElEVXNhZ2VUYWJsZXMuaD4KLQotI2Vsc2UKLQot
V1RGX0VYVEVSTl9DX0JFR0lOCi0KLSNpZmRlZiBfX0xQNjRfXwotdHlwZWRlZiBkb3VibGUgSU9I
SURGbG9hdDsKLSNlbHNlCi10eXBlZGVmIGZsb2F0IElPSElERmxvYXQ7Ci0jZW5kaWYKLQotZW51
bSB7Ci0gICAga0lPSElERXZlbnRPcHRpb25Ob25lID0gMCwKLX07Ci0KLXR5cGVkZWYgVUludDMy
IElPT3B0aW9uQml0czsKLXR5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudE9wdGlvbkJpdHM7Ci10
eXBlZGVmIHVpbnQzMl90IElPSElERXZlbnRGaWVsZDsKLQotdHlwZWRlZiBzdHJ1Y3QgX19JT0hJ
REV2ZW50U3lzdGVtQ2xpZW50ICogSU9ISURFdmVudFN5c3RlbUNsaWVudFJlZjsKLXR5cGVkZWYg
c3RydWN0IF9fSU9ISURFdmVudCAqIElPSElERXZlbnRSZWY7Ci0KLSNkZWZpbmUgSU9ISURFdmVu
dEZpZWxkQmFzZSh0eXBlKSAodHlwZSA8PCAxNikKLQotZW51bSB7Ci0gICAga0hJRFBhZ2VfS2V5
Ym9hcmRPcktleXBhZCAgICAgICA9IDB4MDcsCi0gICAga0hJRFBhZ2VfVmVuZG9yRGVmaW5lZFN0
YXJ0ICAgICA9IDB4RkYwMAotfTsKLQotZW51bSB7Ci0gICAga0lPSElERGlnaXRpemVyRXZlbnRS
YW5nZSAgICAgICA9IDE8PDAsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRUb3VjaCAgICAgICA9
IDE8PDEsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRQb3NpdGlvbiAgICA9IDE8PDIsCi0gICAg
a0lPSElERGlnaXRpemVyRXZlbnRJZGVudGl0eSAgICA9IDE8PDUsCi0gICAga0lPSElERGlnaXRp
emVyRXZlbnRBdHRyaWJ1dGUgICA9IDE8PDYsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRDYW5j
ZWwgICAgICA9IDE8PDcsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRTdGFydCAgICAgICA9IDE8
PDgsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRFc3RpbWF0ZWRBbHRpdHVkZSA9IDE8PDI4LAot
ICAgIGtJT0hJRERpZ2l0aXplckV2ZW50RXN0aW1hdGVkQXppbXV0aCA9IDE8PDI5LAotICAgIGtJ
T0hJRERpZ2l0aXplckV2ZW50RXN0aW1hdGVkUHJlc3N1cmUgPSAxPDwzMAotfTsKLXR5cGVkZWYg
dWludDMyX3QgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2s7Ci0KLWVudW0gewotICAgIGtJT0hJRERp
Z2l0aXplckV2ZW50VXBkYXRlQWx0aXR1ZGVNYXNrID0gMTw8MjgsCi0gICAga0lPSElERGlnaXRp
emVyRXZlbnRVcGRhdGVBemltdXRoTWFzayA9IDE8PDI5LAotICAgIGtJT0hJRERpZ2l0aXplckV2
ZW50VXBkYXRlUHJlc3N1cmVNYXNrID0gMTw8MzAKLX07Ci0KLWVudW0gewotICAgIGtJT0hJREV2
ZW50VHlwZU5VTEwsCi0gICAga0lPSElERXZlbnRUeXBlVmVuZG9yRGVmaW5lZCwKLSAgICBrSU9I
SURFdmVudFR5cGVLZXlib2FyZCA9IDMsCi0gICAga0lPSElERXZlbnRUeXBlRGlnaXRpemVyID0g
MTEsCi19OwotdHlwZWRlZiB1aW50MzJfdCBJT0hJREV2ZW50VHlwZTsKLQotZW51bSB7Ci0gICAg
a0lPSElERXZlbnRGaWVsZFZlbmRvckRlZmluZWRVc2FnZVBhZ2UgPSBJT0hJREV2ZW50RmllbGRC
YXNlKGtJT0hJREV2ZW50VHlwZVZlbmRvckRlZmluZWQpLAotICAgIGtJT0hJREV2ZW50RmllbGRW
ZW5kb3JEZWZpbmVkUmVzZXJ2ZWQsCi0gICAga0lPSElERXZlbnRGaWVsZFZlbmRvckRlZmluZWRS
ZXNlcnZlZDEsCi0gICAga0lPSElERXZlbnRGaWVsZFZlbmRvckRlZmluZWREYXRhTGVuZ3RoLAot
ICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkRGF0YQotfTsKLQotZW51bSB7Ci0gICAg
a0lPSElERXZlbnRGaWVsZERpZ2l0aXplclggPSBJT0hJREV2ZW50RmllbGRCYXNlKGtJT0hJREV2
ZW50VHlwZURpZ2l0aXplciksCi0gICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplclksCi0gICAg
a0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1ham9yUmFkaXVzID0ga0lPSElERXZlbnRGaWVsZERp
Z2l0aXplclggKyAyMCwKLSAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyTWlub3JSYWRpdXMs
Ci0gICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplcklzRGlzcGxheUludGVncmF0ZWQgPSBrSU9I
SURFdmVudEZpZWxkRGlnaXRpemVyTWFqb3JSYWRpdXMgKyA1LAotfTsKLQotZW51bSB7Ci0gICAg
a0lPSElEVHJhbnNkdWNlclJhbmdlICAgICAgICAgICAgICAgPSAweDAwMDEwMDAwLAotICAgIGtJ
T0hJRFRyYW5zZHVjZXJUb3VjaCAgICAgICAgICAgICAgID0gMHgwMDAyMDAwMCwKLSAgICBrSU9I
SURUcmFuc2R1Y2VySW52ZXJ0ICAgICAgICAgICAgICA9IDB4MDAwNDAwMDAsCi0gICAga0lPSElE
VHJhbnNkdWNlckRpc3BsYXlJbnRlZ3JhdGVkICAgPSAweDAwMDgwMDAwCi19OwotCi1lbnVtIHsK
LSAgICBrSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZVN0eWx1cyAgPSAwLAotICAgIGtJT0hJ
RERpZ2l0aXplclRyYW5zZHVjZXJUeXBlRmluZ2VyID0gMiwKLSAgICBrSU9ISUREaWdpdGl6ZXJU
cmFuc2R1Y2VyVHlwZUhhbmQgPSAzCi19OwotdHlwZWRlZiB1aW50MzJfdCBJT0hJRERpZ2l0aXpl
clRyYW5zZHVjZXJUeXBlOwotCi1lbnVtIHsKLSAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVy
V2lsbFVwZGF0ZU1hc2sgPSA3MjA5MjQsCi0gICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplckRp
ZFVwZGF0ZU1hc2sgPSA3MjA5MjUKLX07Ci0KLUlPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0
ZURpZ2l0aXplckV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgSU9ISUREaWdpdGl6ZXJU
cmFuc2R1Y2VyVHlwZSwgdWludDMyX3QsIHVpbnQzMl90LCBJT0hJRERpZ2l0aXplckV2ZW50TWFz
aywgdWludDMyX3QsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxv
YXQsIElPSElERmxvYXQsIGJvb2xlYW5fdCwgYm9vbGVhbl90LCBJT09wdGlvbkJpdHMpOwotCi1J
T0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVEaWdpdGl6ZXJGaW5nZXJFdmVudChDRkFsbG9j
YXRvclJlZiwgdWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVu
dE1hc2ssIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElP
SElERmxvYXQsIGJvb2xlYW5fdCwgYm9vbGVhbl90LCBJT0hJREV2ZW50T3B0aW9uQml0cyk7Ci0K
LUlPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZUZvcmNlRXZlbnQoQ0ZBbGxvY2F0b3JSZWYs
IHVpbnQ2NF90LCB1aW50MzJfdCwgSU9ISURGbG9hdCwgdWludDMyX3QsIElPSElERmxvYXQsIElP
SElERXZlbnRPcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlS2V5
Ym9hcmRFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwg
Ym9vbGVhbl90LCBJT09wdGlvbkJpdHMpOwotCi1JT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVh
dGVWZW5kb3JEZWZpbmVkRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwg
dWludDMyX3QsIHVpbnQzMl90LCB1aW50OF90KiwgQ0ZJbmRleCwgSU9ISURFdmVudE9wdGlvbkJp
dHMpOwotCi1JT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVEaWdpdGl6ZXJTdHlsdXNFdmVu
dFdpdGhQb2xhck9yaWVudGF0aW9uKENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3Qs
IHVpbnQzMl90LCBJT0hJRERpZ2l0aXplckV2ZW50TWFzaywgdWludDMyX3QsIElPSElERmxvYXQs
IElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxv
YXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIGJvb2xlYW5fdCwgYm9vbGVhbl90LCBJT0hJREV2
ZW50T3B0aW9uQml0cyk7Ci0KLUlPSElERXZlbnRUeXBlIElPSElERXZlbnRHZXRUeXBlKElPSElE
RXZlbnRSZWYpOwotCi12b2lkIElPSElERXZlbnRTZXRGbG9hdFZhbHVlKElPSElERXZlbnRSZWYs
IElPSElERXZlbnRGaWVsZCwgSU9ISURGbG9hdCk7Ci0KLUNGSW5kZXggSU9ISURFdmVudEdldElu
dGVnZXJWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50RmllbGQpOwotdm9pZCBJT0hJREV2
ZW50U2V0SW50ZWdlclZhbHVlKElPSElERXZlbnRSZWYsIElPSElERXZlbnRGaWVsZCwgQ0ZJbmRl
eCk7Ci0KLXZvaWQgSU9ISURFdmVudEFwcGVuZEV2ZW50KElPSElERXZlbnRSZWYsIElPSElERXZl
bnRSZWYsIElPT3B0aW9uQml0cyk7Ci0KLUlPSElERXZlbnRTeXN0ZW1DbGllbnRSZWYgSU9ISURF
dmVudFN5c3RlbUNsaWVudENyZWF0ZShDRkFsbG9jYXRvclJlZik7Ci0KLSNkZWZpbmUga0dTRXZl
bnRQYXRoSW5mb0luUmFuZ2UgKDEgPDwgMCkKLSNkZWZpbmUga0dTRXZlbnRQYXRoSW5mb0luVG91
Y2ggKDEgPDwgMSkKLQotZW51bSB7Ci0gICAga0hJRFVzYWdlX0tleWJvYXJkQSA9IDB4MDQsCi0g
ICAga0hJRFVzYWdlX0tleWJvYXJkMSA9IDB4MUUsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkMiA9
IDB4MUYsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkMyA9IDB4MjAsCi0gICAga0hJRFVzYWdlX0tl
eWJvYXJkNCA9IDB4MjEsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkNSA9IDB4MjIsCi0gICAga0hJ
RFVzYWdlX0tleWJvYXJkNiA9IDB4MjMsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkNyA9IDB4MjQs
Ci0gICAga0hJRFVzYWdlX0tleWJvYXJkOCA9IDB4MjUsCi0gICAga0hJRFVzYWdlX0tleWJvYXJk
OSA9IDB4MjYsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkMCA9IDB4MjcsCi0gICAga0hJRFVzYWdl
X0tleWJvYXJkUmV0dXJuT3JFbnRlciA9IDB4MjgsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRXNj
YXBlID0gMHgyOSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmREZWxldGVPckJhY2tzcGFjZSA9IDB4
MkEsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkVGFiID0gMHgyQiwKLSAgICBrSElEVXNhZ2VfS2V5
Ym9hcmRTcGFjZWJhciA9IDB4MkMsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkSHlwaGVuID0gMHgy
RCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRFcXVhbFNpZ24gPSAweDJFLAotICAgIGtISURVc2Fn
ZV9LZXlib2FyZE9wZW5CcmFja2V0ID0gMHgyRiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRDbG9z
ZUJyYWNrZXQgPSAweDMwLAotICAgIGtISURVc2FnZV9LZXlib2FyZEJhY2tzbGFzaCA9IDB4MzEs
Ci0gICAga0hJRFVzYWdlX0tleWJvYXJkU2VtaWNvbG9uID0gMHgzMywKLSAgICBrSElEVXNhZ2Vf
S2V5Ym9hcmRRdW90ZSA9IDB4MzQsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkR3JhdmVBY2NlbnRB
bmRUaWxkZSA9IDB4MzUsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkQ29tbWEgPSAweDM2LAotICAg
IGtISURVc2FnZV9LZXlib2FyZFBlcmlvZCA9IDB4MzcsCi0gICAga0hJRFVzYWdlX0tleWJvYXJk
U2xhc2ggPSAweDM4LAotICAgIGtISURVc2FnZV9LZXlib2FyZEYxID0gMHgzQSwKLSAgICBrSElE
VXNhZ2VfS2V5Ym9hcmRIb21lID0gMHg0QSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRQYWdlVXAg
PSAweDRCLAotICAgIGtISURVc2FnZV9LZXlib2FyZEVuZCA9IDB4NEQsCi0gICAga0hJRFVzYWdl
X0tleWJvYXJkUmlnaHRBcnJvdyA9IDB4NEYsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdEFy
cm93ID0gMHg1MCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmREb3duQXJyb3cgPSAweDUxLAotICAg
IGtISURVc2FnZV9LZXlib2FyZFVwQXJyb3cgPSAweDUyLAotICAgIGtISURVc2FnZV9LZXlib2Fy
ZExlZnRDb250cm9sID0gMHhFMCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0U2hpZnQgPSAw
eEUxLAotICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRBbHQgPSAweEUyCi19OwotCi1XVEZfRVhU
RVJOX0NfRU5ECi0KLSNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotCi0jZW5kaWYg
Ly8gUExBVEZPUk0oSU9TKQotCi0jZW5kaWYgLy8gSU9LaXRTUElfaApkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbSBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0KaW5kZXggY2FmYzNlZGRhOWJmODVl
ZTEwNjVhZmRlMDg5ZjE2NDkzNTY0MWU2Yi4uZDUwNTIxMTVmNjlkZTNkYjJlNTExMDRkNTBhNmFh
MzE0YzU3M2M1MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRT
ZW5kZXJQcm94eS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRl
clByb3h5Lm1tCkBAIC00NSwxNyArNDUsNiBAQAogLSAodm9pZClfcG9zdERlbGF5ZWQ7CiBAZW5k
CiAKLSNpZiBkZWZpbmVkKF9fTFA2NF9fKQotc3RydWN0IFdLVFJDR1NFdmVudFJlY29yZCB7Ci0g
ICAgY2hhciBvZmZzZXQxWzE1MF07Ci0gICAgdWludDhfdCBwaGFzZTsKLSAgICBjaGFyIG9mZnNl
dDJbMTNdOwotICAgIGZsb2F0IGRlbHRhWDsKLSAgICBmbG9hdCBkZWx0YVk7Ci0gICAgY2hhciBv
ZmZzZXQzWzc2XTsKLX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Ci0jZW5kaWYKLQogQGludGVy
ZmFjZSBFdmVudFNlbmRlclN5bnRoZXRpY0V2ZW50IDogTlNFdmVudCB7CiBAcHVibGljCiAgICAg
TlNQb2ludCBfZXZlbnRTZW5kZXJfbG9jYXRpb25JbldpbmRvdzsKQEAgLTcwLDExICs1OSw2IEBA
IHN0cnVjdCBXS1RSQ0dTRXZlbnRSZWNvcmQgewogICAgIHNob3J0IF9ldmVudFNlbmRlcl9zdWJ0
eXBlOwogICAgIE5TRXZlbnRUeXBlIF9ldmVudFNlbmRlcl90eXBlOwogICAgIE5TV2luZG93ICpf
ZXZlbnRTZW5kZXJfd2luZG93OwotCi0KLSNpZiBkZWZpbmVkKF9fTFA2NF9fKQotICAgIFdLVFJD
R1NFdmVudFJlY29yZCBfZXZlbnRTZW5kZXJfY2dzRXZlbnRSZWNvcmQ7Ci0jZW5kaWYKIH0KIAog
LSAoaWQpaW5pdFByZXNzdXJlRXZlbnRBdExvY2F0aW9uOihOU1BvaW50KWxvY2F0aW9uIGdsb2Jh
bExvY2F0aW9uOihOU1BvaW50KWdsb2JhbExvY2F0aW9uIHN0YWdlOihOU0ludGVnZXIpc3RhZ2Ug
cHJlc3N1cmU6KGZsb2F0KXByZXNzdXJlIHN0YWdlVHJhbnNpdGlvbjooZmxvYXQpc3RhZ2VUcmFu
c2l0aW9uIHBoYXNlOihOU0V2ZW50UGhhc2UpcGhhc2UgdGltZTooTlNUaW1lSW50ZXJ2YWwpdGlt
ZSBldmVudE51bWJlcjooTlNJbnRlZ2VyKWV2ZW50TnVtYmVyIHdpbmRvdzooTlNXaW5kb3cgKil3
aW5kb3c7CkBAIC0xNjcsMTMgKzE1MSw2IEBAIHN0cnVjdCBXS1RSQ0dTRXZlbnRSZWNvcmQgewog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotI2lmIGRlZmluZWQoX19MUDY0X18pCi0tIChXS1RSQ0dT
RXZlbnRSZWNvcmQpX2Nnc0V2ZW50UmVjb3JkCi17Ci0gICAgcmV0dXJuIF9ldmVudFNlbmRlcl9j
Z3NFdmVudFJlY29yZDsKLX0KLSNlbmRpZgotCiAtIChOU1dpbmRvdyAqKXdpbmRvdwogewogICAg
IHJldHVybiBfZXZlbnRTZW5kZXJfd2luZG93OwpAQCAtODkyLDUwICs4NjksNCBAQCB2b2lkIEV2
ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhp
bnQgeCwgaW50IHksIGludAogICAgIH0KIH0KIAotc3RhdGljIE5TRXZlbnRQaGFzZSBuc0V2ZW50
UGhhc2VGcm9tQ0dFdmVudFBoYXNlKGludCBwaGFzZSkKLXsKLSAgICBzd2l0Y2ggKHBoYXNlKSB7
Ci0gICAgY2FzZSAwOiAvLyBrQ0dTR2VzdHVyZVBoYXNlTm9uZQotICAgICAgICByZXR1cm4gTlNF
dmVudFBoYXNlTm9uZTsKLSAgICBjYXNlIDE6IC8vIGtDR1NHZXN0dXJlUGhhc2VCZWdhbgotICAg
ICAgICByZXR1cm4gTlNFdmVudFBoYXNlQmVnYW47Ci0gICAgY2FzZSAyOiAvLyBrQ0dTR2VzdHVy
ZVBoYXNlQ2hhbmdlZAotICAgICAgICByZXR1cm4gTlNFdmVudFBoYXNlQ2hhbmdlZDsKLSAgICBj
YXNlIDQ6IC8vIGtDR1NHZXN0dXJlUGhhc2VFbmRlZAotICAgICAgICByZXR1cm4gTlNFdmVudFBo
YXNlRW5kZWQ7Ci0gICAgY2FzZSA4OiAvLyBrQ0dTR2VzdHVyZVBoYXNlQ2FuY2VsbGVkCi0gICAg
ICAgIHJldHVybiBOU0V2ZW50UGhhc2VDYW5jZWxsZWQ7Ci0gICAgY2FzZSAxMjg6IC8vIGtDR1NH
ZXN0dXJlUGhhc2VNYXlCZWdpbgotICAgICAgICByZXR1cm4gTlNFdmVudFBoYXNlTWF5QmVnaW47
Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIE5TRXZlbnRQ
aGFzZU5vbmU7Ci19Ci0KLXZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c3dpcGVHZXN0dXJlV2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBpbnQgcGhhc2UsIGludCBtb21lbnR1
bSkKLXsKLSAgICBSZXRhaW5QdHI8RXZlbnRTZW5kZXJTeW50aGV0aWNFdmVudD4gZXZlbnQgPSBh
ZG9wdE5TKFtbRXZlbnRTZW5kZXJTeW50aGV0aWNFdmVudCBhbGxvY10gaW5pdF0pOwotCi0gICAg
Ly8gIm1heUJlZ2luIiBhIHN3aXBlIGlzIGFjdHVhbGx5IGEgc2Nyb2xsIHdoZWVsIGV2ZW50Lgot
ICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfdHlwZSA9IChwaGFzZSA9PSAxMjgpID8gTlNTY3JvbGxX
aGVlbCA6IE5TRXZlbnRUeXBlR2VzdHVyZTsKLSAgICBldmVudC0+X2V2ZW50U2VuZGVyX3N1YnR5
cGUgPSA2OyAvLyBrSU9ISURFdmVudFR5cGVTY3JvbGwKLSAgICBldmVudC0+X2V2ZW50U2VuZGVy
X2xvY2F0aW9uSW5XaW5kb3cgPSBOU01ha2VQb2ludChtX3Bvc2l0aW9uLngsIG1fcG9zaXRpb24u
eSk7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9sb2NhdGlvbiA9IChbbV90ZXN0Q29udHJvbGxl
ci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSBjb252ZXJ0UmVjdFRvU2NyZWVuOk5T
TWFrZVJlY3QobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnksIDEsIDEpXS5vcmlnaW4pOwotICAg
IGV2ZW50LT5fZXZlbnRTZW5kZXJfcGhhc2UgPSBuc0V2ZW50UGhhc2VGcm9tQ0dFdmVudFBoYXNl
KHBoYXNlKTsKLSAgICBldmVudC0+X2V2ZW50U2VuZGVyX21vbWVudHVtUGhhc2UgPSBuc0V2ZW50
UGhhc2VGcm9tQ0dFdmVudFBoYXNlKG1vbWVudHVtKTsKLSAgICBldmVudC0+X2V2ZW50U2VuZGVy
X3RpbWVzdGFtcCA9IGFic29sdXRlVGltZUZvckV2ZW50VGltZShjdXJyZW50RXZlbnRUaW1lKCkp
OwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfZXZlbnROdW1iZXIgPSArK2V2ZW50TnVtYmVyOwot
Ci0jaWYgZGVmaW5lZChfX0xQNjRfXykKLSAgICBldmVudC0+X2V2ZW50U2VuZGVyX2Nnc0V2ZW50
UmVjb3JkLnBoYXNlID0gcGhhc2U7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9jZ3NFdmVudFJl
Y29yZC5kZWx0YVggPSAoZmxvYXQpeDsKLSAgICBldmVudC0+X2V2ZW50U2VuZGVyX2Nnc0V2ZW50
UmVjb3JkLmRlbHRhWSA9IChmbG9hdCl5OwotI2Vsc2UKLSAgICBOU0xvZyhAIlN5bnRoZXRpYyBz
d2lwZSBnZXN0dXJlcyBhcmUgbm90IGltcGxlbWVudGVkIGZvciAzMi1iaXQgV2ViS2l0VGVzdFJ1
bm5lci4iKTsKLSNlbmRpZgotCi0gICAgW05TQXBwIHNlbmRFdmVudDpldmVudC5nZXQoKV07Ci19
Ci0KIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9t
YWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCmluZGV4IDRmNmNjZWJhN2QzZmI0MDk4NWEwNjIx
NzIwY2I4YTFjMGViMjQ3NWQuLmIwNTBkMGRlYWMwZWY5ZjZiYTU3YTEyNmJmYTYwNTgyZmY2ZDNi
ZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJv
bGxlck1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRy
b2xsZXJNYWMubW0KQEAgLTI2LDcgKzI2LDEyIEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBv
cnQgIlVJU2NyaXB0Q29udHJvbGxlci5oIgogCisjaW1wb3J0ICJFdmVudFNlcmlhbGl6ZXJNYWMu
aCIKKyNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgorI2ltcG9ydCAiU2hhcmVkRXZlbnRTdHJl
YW1zTWFjLmgiCisjaW1wb3J0ICJUZXN0Q29udHJvbGxlci5oIgogI2ltcG9ydCAiVUlTY3JpcHRD
b250ZXh0LmgiCisjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZkNGLmg+CiAKIG5h
bWVzcGFjZSBXVFIgewogCkBAIC00MSw0ICs0NiwzOSBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxl
cjo6ZG9Bc3luY1Rhc2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKICAgICB9KTsKIH0KIAorc3RhdGlj
IHZvaWQgcGxheUJhY2tFdmVudHMoVUlTY3JpcHRDb250ZXh0ICpjb250ZXh0LCBOU1N0cmluZyAq
ZXZlbnRTdHJlYW0sIEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgTlNFcnJvciAqZXJyb3Ig
PSBuaWw7CisgICAgTlNBcnJheSAqZXZlbnREaWN0cyA9IFtOU0pTT05TZXJpYWxpemF0aW9uIEpT
T05PYmplY3RXaXRoRGF0YTpbZXZlbnRTdHJlYW0gZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3Ry
aW5nRW5jb2RpbmddIG9wdGlvbnM6MCBlcnJvcjomZXJyb3JdOworCisgICAgaWYgKGVycm9yKSB7
CisgICAgICAgIE5TTG9nKEAiRVJST1I6ICVAIiwgZXJyb3IpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgdW5zaWduZWQgY2FsbGJhY2tJRCA9IGNvbnRleHQtPnByZXBhcmVGb3JBc3lu
Y1Rhc2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZU5vblBlcnNpc3RlbnQpOworCisgICAgTlNXaW5k
b3cgKndpbmRvdyA9IFtUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+
cGxhdGZvcm1WaWV3KCkgd2luZG93XTsKKworICAgIFtFdmVudFN0cmVhbVBsYXllciBwbGF5U3Ry
ZWFtOmV2ZW50RGljdHMgd2luZG93OndpbmRvdyBjb21wbGV0aW9uSGFuZGxlcjpeIHsKKyAgICAg
ICAgY29udGV4dC0+YXN5bmNUYXNrQ29tcGxldGUoY2FsbGJhY2tJRCk7CisgICAgfV07Cit9CisK
K3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZShKU1ZhbHVlUmVmIGNhbGxi
YWNrKQoreworICAgIHBsYXlCYWNrRXZlbnRzKG1fY29udGV4dCwgYmVnaW5Td2lwZUJhY2tFdmVu
dFN0cmVhbSgpLCBjYWxsYmFjayk7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpjb21w
bGV0ZUJhY2tTd2lwZShKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIHBsYXlCYWNrRXZlbnRz
KG1fY29udGV4dCwgY29tcGxldGVTd2lwZUJhY2tFdmVudFN0cmVhbSgpLCBjYWxsYmFjayk7Cit9
CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVBsYXlCYWNrRXZlbnRTdHJlYW0o
SlNTdHJpbmdSZWYgZXZlbnRTdHJlYW0sIEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgUmV0
YWluUHRyPE5TU3RyaW5nPiBuc1N0cmluZyA9IGFkb3B0TlMoKE5TU3RyaW5nICopSlNTdHJpbmdD
b3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZXZlbnRTdHJlYW0pKTsKKyAgICBwbGF5
QmFja0V2ZW50cyhtX2NvbnRleHQsIG5zU3RyaW5nLmdldCgpLCBjYWxsYmFjayk7Cit9CisKIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmODVkN2JlY2UwZmUzNjNmMzIwZGY0NTJhNmQzNjUzOWExMzA5MWJmLi45Y2MwYTA0
NjQ1OGVhNjY1NTg3MGM4OTdmY2VmNDdlNjEyZjU5ODI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAK
KzIwMTYtMTAtMDYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgU3dpcGUgZ2VzdHVyZSB0ZXN0cyBkb24ndCB3b3JrIG9uIG1hY09TIFNpZXJyYQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNjc1CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8yMzM3OTkzMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBzd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbDoKKyAgICAgICAg
KiBzd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHN3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sOgorICAgICAg
ICAqIHN3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWw6CisgICAgICAgICog
c3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2gtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHN3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13
aGlsZS1zd2lwaW5nLWNyYXNoLmh0bWw6CisgICAgICAgICogc3dpcGUvcmVzb3VyY2VzL3N3aXBl
LXRlc3QuanM6CisgICAgICAgIChtZWFzdXJlZER1cmF0aW9uU2hvdWxkQmVMZXNzVGhhbik6Cisg
ICAgICAgIChzdGFydFN3aXBlR2VzdHVyZSk6CisgICAgICAgIChjb21wbGV0ZVN3aXBlR2VzdHVy
ZSk6CisgICAgICAgIChwbGF5RXZlbnRTdHJlYW0pOgorICAgICAgICAoZXZlbnRRdWV1ZS5lbnF1
ZXVlU2Nyb2xsRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAoZXZlbnRRdWV1ZS5lbnF1ZXVlU3dp
cGVFdmVudCk6IERlbGV0ZWQuCisgICAgICAgIChldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMp
OiBEZWxldGVkLgorICAgICAgICAoZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKTog
RGVsZXRlZC4KKyAgICAgICAgKGV2ZW50UXVldWUuX3Byb2Nlc3NFdmVudFF1ZXVlKTogRGVsZXRl
ZC4KKyAgICAgICAgKGV2ZW50UXVldWUuX3Byb2Nlc3NFdmVudFF1ZXVlU29vbik6IERlbGV0ZWQu
CisgICAgICAgICogc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVyZXNpcy1mYWlsdXJlcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVyZXNpcy1m
YWlsdXJlcy5odG1sOiBSZW1vdmVkLgorCiAyMDE2LTEwLTA2ICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gSWNvbiBz
ZXJ2aWNlIGFuZCB0aGUgSWNvbkJ1dHRvbiBjbGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDY1ZWY5MWRkM2ViMzJjYjQyYmIxZTUxZDkw
MDRjYTFmNjI3ZGQyNTYuLjZjYjBhMTg2MDJmMmZmOTE1NzJkNWU3YzE5ZTZiNDYzYzdmNjI1Mzcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTUxMSwxMiArNTExLDYgQEAgd2Via2l0Lm9yZy9iLzE2MjYzOCBbIFNpZXJyYSsgXSBmYXN0L3Nj
cm9sbGluZy9ydGwtc2Nyb2xsYmFycy1hbHRlcm5hdGUtaWZyYW1lLWIKICMgPHJkYXI6Ly9wcm9i
bGVtLzI1MDYzMTI4PgogWyBTaWVycmErIF0gbWVkaWEvbWVkaWEtY29udHJvbHMtZHJhZy10aW1l
bGluZS1zZXQtY29udHJvbHMtcHJvcGVydHkuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKLSMgPHJk
YXI6Ly9wcm9ibGVtLzIzMzc5OTMwPiBzd2lwZSB0ZXN0cyBjcmFzaGluZwotWyBTaWVycmErIF0g
c3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbCBbIFNraXAgXQotWyBTaWVycmErIF0g
c3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0bWwgWyBTa2lwIF0KLVsgU2ll
cnJhKyBdIHN3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sIFsgU2tpcCBdCi1b
IFNpZXJyYSsgXSBzd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLmh0bWwgWyBT
a2lwIF0KLQogIyBIaXR0aW5nICJUaGUgY2VydGlmaWNhdGUgZm9yIHRoaXMgc2VydmVyIGlzIGlu
dmFsaWQiIGxvYWRpbmcgZXJyb3IgKG5vdCBoYXBwZW5pbmcgaW4gV0sxKQogd2Via2l0Lm9yZy9i
LzE2MDQ0NSBbIFNpZXJyYSsgXSBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS91cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzL3VwZ3JhZGUtaW5zZWN1cmUtZmV0Y2gtaW4t
d29ya2VyLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNjA0NDUgWyBTaWVycmErIF0g
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXBncmFkZS1pbnNlY3Vy
ZS1yZXF1ZXN0cy91cGdyYWRlLWluc2VjdXJlLWZldGNoLWluLW1haW4tZnJhbWUuaHRtbCBbIEZh
aWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2st
c3dpcGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2st
c3dpcGUtZXhwZWN0ZWQudHh0CmluZGV4IGUzZDNlMDBhYjlkMGJmZmZlNjY5ZDZhZDg5YTAxN2Fm
NTdmNzBiODkuLjg5ZGVjZmQ0YzM3MTI1Y2ZiNTU5ODExOTY4OWMzZjBjNGExZDg4NGUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS1leHBl
Y3RlZC50eHQKQEAgLTEsMTAgKzEsNiBAQAotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2Ug
J21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnYmVnYW4nKQotc2Ny
b2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFuZ2VkJykKK3N0YXJ0U3dpcGVHZXN0dXJl
CiBkaWRCZWdpblN3aXBlCi1zd2lwZSBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcp
Ci1zd2lwZSBldmVudCAoZGVsdGEgMjU2IDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50
IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCitjb21wbGV0ZVN3aXBlR2VzdHVyZQogd2lsbEVu
ZFN3aXBlCiBkaWRFbmRTd2lwZQogZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbCBiL0xheW91dFRl
c3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKaW5kZXggY2Y3Zjc1Y2IxMzli
NTRiNTE1MTc4YTA3M2I5OGFkMDY3M2RkYTY4My4uODcxYTJiYzY0NmI4ZDRhZTg2OTQ2MzdlODAw
M2EzYjRiMzI0NWE2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVk
LWJhY2stc3dpcGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFj
ay1zd2lwZS5odG1sCkBAIC02LDI4ICs2LDEwIEBAIGh0bWwgewogPC9zdHlsZT4KIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rp
b24gc3RhcnRTd2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEw
MCwgMTAwKTsKLQotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJl
Z2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7
Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLX0K
LQotZnVuY3Rpb24gY29tcGxldGVTd2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50UXVldWUuZW5x
dWV1ZVN3aXBlRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVT
d2lwZUV2ZW50KDI1NiwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lw
ZUV2ZW50KDAsIDAsICdlbmRlZCcpOwotfQotCiBmdW5jdGlvbiBkaWRCZWdpblN3aXBlQ2FsbGJh
Y2soKQogewogICAgIGxvZygiZGlkQmVnaW5Td2lwZSIpOwogCi0gICAgc2hvdWxkQmUoZmFsc2Us
IGV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpLCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVt
cHR5LiBCb3RoIHNjcm9sbCBldmVudHMgc2hvdWxkIGJlIHJlcXVpcmVkIHRvIHN0YXJ0IHRoZSBz
d2lwZSBiZWNhdXNlIG9mIHRoZSBzd2lwZS1zdGFydCBoeXN0ZXJlc2lzLiIpOwotCiAgICAgY29t
cGxldGVTd2lwZUdlc3R1cmUoKTsKIH0KIApAQCAtNDIsNyArMjQsNiBAQCBmdW5jdGlvbiBkaWRF
bmRTd2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRpZEVuZFN3aXBlIik7CiAKLSAgICBzaG91
bGRCZSgwLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNob3Vs
ZCBiZSBlbXB0eS4gVGhlIHN3aXBlIGlzbid0IGNvbXBsZXRlIHVudGlsIHdlIHNlZSB0aGUgZW5k
IG9mIHRoZSBnZXN0dXJlLiIpOwogICAgIHN0YXJ0TWVhc3VyaW5nRHVyYXRpb24oInNuYXBzaG90
UmVtb3ZhbCIpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1l
LXBpbm5pbmctcmVxdWlyZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUvbWFp
bi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4cGVjdGVkLnR4dAppbmRleCA2MzU5NzQwNTQ4
NDc2YzhkMDlmYjRiYjM3Yzc1MjQ0YjkwYjM5MGQ2Li5jZTc2NjgxOTcyMjA5NTM1ZTI0Y2UwNzM3
MGUzMDZhMDk4MjUwY2ZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1l
LXBpbm5pbmctcmVxdWlyZW1lbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N3aXBl
L21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC1leHBlY3RlZC50eHQKQEAgLTEsMjMgKzEs
OCBAQAotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBl
dmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAg
MCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hh
bmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9s
bCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0
YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNl
ICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQot
c2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQg
KGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwg
cGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcp
Ci1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50
IChkZWx0YSAxIDAsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBo
YXNlICdjaGFuZ2VkJykKK3N0YXJ0U3dpcGVHZXN0dXJlCitjb21wbGV0ZVN3aXBlR2VzdHVyZQor
c3RhcnRTd2lwZUdlc3R1cmUKIGRpZEJlZ2luU3dpcGUKLXN3aXBlIGV2ZW50IChkZWx0YSAxIDAs
IHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAyNTYgMCwgcGhhc2UgJ2NoYW5n
ZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKK2NvbXBsZXRlU3dp
cGVHZXN0dXJlCiB3aWxsRW5kU3dpcGUKIGRpZEVuZFN3aXBlCiBkaWRSZW1vdmVTd2lwZVNuYXBz
aG90CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVx
dWlyZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1
aXJlbWVudC5odG1sCmluZGV4IDYyMTU1NDQ4NGYwNGZmMzk3NWJmMmY0MThlMThmZWM4M2M2MmYz
NWIuLmEzNjliODIxYjlkOWMyZTAzNzhkZjYyNzJlZDAxOWY1MmFlMmVhYjkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1s
CkBAIC02LDQ4ICs2LDI0IEBAIGh0bWwgewogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc3dpcGUtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gc3RhcnRTd2lw
ZUdlc3R1cmUoKQotewotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKIAor
ZnVuY3Rpb24gcnVuVGVzdCgpCit7CiAgICAgLy8gVGhlIGZpcnN0IHN3aXBlIHNob3VsZCBmYWls
IGJlY2F1c2Ugd2UncmUgc2Nyb2xsZWQgdG8gdGhlIG1pZGRsZSBvZiB0aGUgZG9jdW1lbnQKICAg
ICAvLyBhbmQgdGhpcyBpcyBhbGwgYSBzaW5nbGUgZ2VzdHVyZS4gV2UgY2FuIG9ubHkgc3RhcnQg
c3dpcGVzIGlmIHdlICpiZWdpbioKICAgICAvLyBwaW5uZWQgdG8gdGhlIGVkZ2UuCi0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1
ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5l
bnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1
ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVl
U2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Ny
b2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xs
RXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZl
bnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQo
MTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAs
IDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAs
ICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdj
aGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVk
Jyk7Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goZnVuY3Rpb24gKCkg
ewotICAgICAgICB0ZXN0UnVubmVyLmNsZWFyVGVzdFJ1bm5lckNhbGxiYWNrcygpOwotICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxEaWRCZWdpblN3aXBlQ2FsbGJhY2soZGlkQmVnaW5Td2lwZUNh
bGxiYWNrKTsKLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsV2lsbEVuZFN3aXBlQ2FsbGJhY2so
d2lsbEVuZFN3aXBlQ2FsbGJhY2spOwotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRFbmRT
d2lwZUNhbGxiYWNrKGRpZEVuZFN3aXBlQ2FsbGJhY2spOwotICAgICAgICB0ZXN0UnVubmVyLmlu
c3RhbGxEaWRSZW1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2soZGlkUmVtb3ZlU3dpcGVTbmFwc2hv
dENhbGxiYWNrKTsKKyAgICBzdGFydFN3aXBlR2VzdHVyZShmdW5jdGlvbiAoKSB7CisgICAgICAg
IGNvbXBsZXRlU3dpcGVHZXN0dXJlKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuY2xlYXJUZXN0UnVubmVyQ2FsbGJhY2tzKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmlu
c3RhbGxEaWRCZWdpblN3aXBlQ2FsbGJhY2soZGlkQmVnaW5Td2lwZUNhbGxiYWNrKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFdpbGxFbmRTd2lwZUNhbGxiYWNrKHdpbGxFbmRTd2lw
ZUNhbGxiYWNrKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZEVuZFN3aXBlQ2Fs
bGJhY2soZGlkRW5kU3dpcGVDYWxsYmFjayk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxEaWRSZW1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2soZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENh
bGxiYWNrKTsgICAgCiAKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICAvLyBUaGUgc2Vjb25kIHN3aXBlIHNob3VsZCBzdWNjZWVkIGJlY2F1c2Ugd2UgYXJlIG5v
dyBzY3JvbGxlZCB0byB0aGUgbGVmdCBlZGdlLgotICAgICAgICAgICAgZXZlbnRRdWV1ZS5lbnF1
ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICAgICAgICAgIGV2ZW50UXVldWUu
ZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdiZWdhbicpOwotICAgICAgICAgICAgZXZlbnRRdWV1
ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgICAgIH0sIDApOwot
ICAgIH0pCi19Ci0KLWZ1bmN0aW9uIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCkKLXsKLSAgICBldmVu
dFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDEsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1
ZS5lbnF1ZXVlU3dpcGVFdmVudCgyNTYsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5l
bnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnZW5kZWQnKTsKKyAgICAgICAgICAgIHN0YXJ0U3dpcGVH
ZXN0dXJlKGZ1bmN0aW9uICgpIHsgY29tcGxldGVTd2lwZUdlc3R1cmUoKTsgfSk7CisgICAgICAg
IH0pOworICAgIH0pOwogfQogCiBmdW5jdGlvbiBkaWRCZWdpblN3aXBlTm90UmVhY2hlZENhbGxi
YWNrKCkKQEAgLTU4LDEwICszNCw2IEBAIGZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVOb3RSZWFjaGVk
Q2FsbGJhY2soKQogZnVuY3Rpb24gZGlkQmVnaW5Td2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2co
ImRpZEJlZ2luU3dpcGUiKTsKLQotICAgIHNob3VsZEJlKGZhbHNlLCBldmVudFF1ZXVlLmhhc1Bl
bmRpbmdFdmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBiZSBlbXB0eS4gQm90aCBzY3JvbGwg
ZXZlbnRzIHNob3VsZCBiZSByZXF1aXJlZCB0byBzdGFydCB0aGUgc3dpcGUgYmVjYXVzZSBvZiB0
aGUgc3dpcGUtc3RhcnQgaHlzdGVyZXNpcy4iKTsKLQotICAgIGNvbXBsZXRlU3dpcGVHZXN0dXJl
KCk7CiB9CiAKIGZ1bmN0aW9uIHdpbGxFbmRTd2lwZUNhbGxiYWNrKCkKQEAgLTc1LDcgKzQ3LDYg
QEAgZnVuY3Rpb24gZGlkRW5kU3dpcGVDYWxsYmFjaygpCiB7CiAgICAgbG9nKCJkaWRFbmRTd2lw
ZSIpOwogCi0gICAgc2hvdWxkQmUoMCwgZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJF
dmVudCBxdWV1ZSBzaG91bGQgYmUgZW1wdHkuIFRoZSBzd2lwZSBpc24ndCBjb21wbGV0ZSB1bnRp
bCB3ZSBzZWUgdGhlIGVuZCBvZiB0aGUgZ2VzdHVyZS4iKTsKICAgICBzdGFydE1lYXN1cmluZ0R1
cmF0aW9uKCJzbmFwc2hvdFJlbW92YWwiKTsKIH0KIApAQCAtMTIxLDggKzkyLDkgQEAgd2luZG93
Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKICAgICB9CiAKICAgICAvLyBTZWNvbmQgcGFnZSBsb2Fk
ZWQuCi0gICAgd2luZG93LnNjcm9sbFRvKDEwMDAsIDApOwotICAgIHN0YXJ0U3dpcGVHZXN0dXJl
KCk7CisgICAgd2luZG93LnNjcm9sbFRvKDEwMCwgMCk7CisKKyAgICBydW5UZXN0KCk7CiB9Owog
PC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3Rh
dGUtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVz
aFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dAppbmRleCBlM2QzZTAwYWI5ZDBi
ZmZmZTY2OWQ2YWQ4OWEwMTdhZjU3ZjcwYjg5Li44OWRlY2ZkNGMzNzEyNWNmYjU1OTgxMTk2ODlj
M2YwYzRhMWQ4ODRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2Fj
aGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hT
dGF0ZS1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsNiBAQAotc3dp
cGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVs
dGEgMSAwLCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdj
aGFuZ2VkJykKK3N0YXJ0U3dpcGVHZXN0dXJlCiBkaWRCZWdpblN3aXBlCi1zd2lwZSBldmVudCAo
ZGVsdGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMjU2IDAsIHBo
YXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCitj
b21wbGV0ZVN3aXBlR2VzdHVyZQogd2lsbEVuZFN3aXBlCiBkaWRFbmRTd2lwZQogZGlkUmVtb3Zl
U3dpcGVTbmFwc2hvdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNh
Y2hlZC1iYWNrLXN3aXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVk
LWJhY2stc3dpcGUuaHRtbAppbmRleCA1NmRhZGE0ODkwNDI4YzQ5ZGQyZDcxZjc2ODYwOTA0ZTAx
Zjg0MzFmLi45YThkYzlkN2Q5YTEwODg3NTkyNWVlNGQyODk5N2U1Mzg2MmUzODcwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbApA
QCAtNiwyOCArNiwxMSBAQCBodG1sIHsKIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3N3aXBlLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHN0YXJ0U3dpcGVH
ZXN0dXJlKCkKLXsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7Ci0KLSAg
ICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2
ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdiZWdhbicpOwotICAgIGV2ZW50UXVl
dWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdjaGFuZ2VkJyk7Ci19Ci0KLWZ1bmN0aW9uIGNv
bXBsZXRlU3dpcGVHZXN0dXJlKCkKLXsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50
KDEsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgyNTYs
IDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAn
ZW5kZWQnKTsKLX0KIAogZnVuY3Rpb24gZGlkQmVnaW5Td2lwZUNhbGxiYWNrKCkKIHsKICAgICBs
b2coImRpZEJlZ2luU3dpcGUiKTsKIAotICAgIHNob3VsZEJlKGZhbHNlLCBldmVudFF1ZXVlLmhh
c1BlbmRpbmdFdmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBiZSBlbXB0eS4gQm90aCBzY3Jv
bGwgZXZlbnRzIHNob3VsZCBiZSByZXF1aXJlZCB0byBzdGFydCB0aGUgc3dpcGUgYmVjYXVzZSBv
ZiB0aGUgc3dpcGUtc3RhcnQgaHlzdGVyZXNpcy4iKTsKLQogICAgIGNvbXBsZXRlU3dpcGVHZXN0
dXJlKCk7CiB9CiAKQEAgLTQyLDcgKzI1LDYgQEAgZnVuY3Rpb24gZGlkRW5kU3dpcGVDYWxsYmFj
aygpCiB7CiAgICAgbG9nKCJkaWRFbmRTd2lwZSIpOwogCi0gICAgc2hvdWxkQmUoMCwgZXZlbnRR
dWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJFdmVudCBxdWV1ZSBzaG91bGQgYmUgZW1wdHkuIFRo
ZSBzd2lwZSBpc24ndCBjb21wbGV0ZSB1bnRpbCB3ZSBzZWUgdGhlIGVuZCBvZiB0aGUgZ2VzdHVy
ZS4iKTsKICAgICBzdGFydE1lYXN1cmluZ0R1cmF0aW9uKCJzbmFwc2hvdFJlbW92YWwiKTsKIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1i
YWNrLXdoaWxlLXN3aXBpbmctY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUv
cHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2gtZXhwZWN0ZWQu
dHh0CmluZGV4IGRjMzRlOTJkNTg4NGViOGQxZDMxNTE1YjVhODg2Mjc1NmViMjkzNDIuLjAwNTA3
NTVmNTczN2Q0Y2Q3YTNjMjRjNTc2MjRiN2E3ZGYxYzI2M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNo
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1h
dGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw0IEBA
Ci1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50
IChkZWx0YSAxIDAsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhh
c2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQot
c3dpcGUgZXZlbnQgKGRlbHRhIDI1NiAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAo
ZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQorcGxheUV2ZW50U3RyZWFtCitwbGF5RXZlbnRTdHJl
YW0KK2NvbXBsZXRlU3dpcGVHZXN0dXJlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBl
L3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLmh0bWwgYi9M
YXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGlu
Zy1jcmFzaC5odG1sCmluZGV4IDM2ZWYzOWZiNDNlNDMwZGI5MTQ2MDM4NDZmZDJiZjdlMzI5MDYz
MDEuLjNmODdhMDM5ZWU3YTkzY2I2NGEyZjBlNjVkNTBjYmEwOTcwNDZjYzAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lw
aW5nLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1t
YXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbApAQCAtNiwzNyArNiw2NyBAQCBodG1s
IHsKIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRlc3QuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHN0YXJ0U3dpcGVHZXN0dXJlKCkKK2Z1bmN0aW9uIHJ1
blRlc3QoKQogewotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKLQotICAg
IGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAgCi0gICAgZXZl
bnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKGdvQmFjayk7CisgICAgcGxheUV2ZW50U3Ry
ZWFtKGBbeworICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMCwKKyAgICAgICAgImtDR0V2ZW50
U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURU
eXBlIiA6IDYsCisgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICJr
Q0dFdmVudEdlc3R1cmVQaGFzZSIgOiAxMjgsCisgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAi
ezQwMCwgMzAwfSIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIg
OiA4LAorICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2MSwKKyAgICAgICAgImtD
R1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgImtDR0V2ZW50R2VzdHVyZVN0YXJ0RW5k
U2VyaWVzVHlwZSIgOiA2LAorICAgICAgICAid2luZG93TG9jYXRpb24iIDogInswLCAwfSIKKyAg
ICAgIH0sCisgICAgICB7CisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisg
ICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAid2luZG93TG9jYXRpb24iIDog
Ins0MDAsIDMwMH0iLAorICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMSwKKyAgICAg
ICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICJrQ0dTRXZl
bnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDIK
KyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAg
ICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudFNjcm9sbFBoYXNlIiA6IDEsCisgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXND
b250aW51b3VzIiA6IDEsCisgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4
aXMyIiA6IDEsCisgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgIH1dYCwg
Z29CYWNrKTsKIH0KIAogZnVuY3Rpb24gZ29CYWNrKCkKIHsKICAgICB3aW5kb3cuaGlzdG9yeS5i
YWNrKCk7CiAKLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goY29udGludWVT
d2lwZUdlc3R1cmUpOworICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAwKTsKIH0KIAotZnVu
Y3Rpb24gY29udGludWVTd2lwZUdlc3R1cmUoKQorZnVuY3Rpb24gY29udGludWVUZXN0KCkKIHsK
LSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnY2hhbmdlZCcpOwotCi0g
ICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKGNvbXBsZXRlU3dpcGVHZXN0dXJl
KTsKKyAgICBwbGF5RXZlbnRTdHJlYW0oYFsKKyAgICAgIHsKKyAgICAgICAgInJlbGF0aXZlVGlt
ZU1TIiA6IDAsCisgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAg
ICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMSwKKyAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRQb2ludERlbHRhQXhpczIiIDogMjAsCisgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQi
IDogMjIKKyAgICAgIH1dYCwgZnVuY3Rpb24gKCkgeworICAgICAgICBjb21wbGV0ZVRlc3QoKTsK
KyAgICAgIH0pOwogfQogCi1mdW5jdGlvbiBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpCitmdW5jdGlv
biBjb21wbGV0ZVRlc3QoKQogewotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMSwg
MCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDI1NiwgMCwg
J2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdlbmRl
ZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKHRlc3RDb21wbGV0
ZSk7CisgICAgY29tcGxldGVTd2lwZUdlc3R1cmUodGVzdENvbXBsZXRlKTsKIH0KIAogZnVuY3Rp
b24gZGlkQmVnaW5Td2lwZUNhbGxiYWNrKCkKQEAgLTc5LDcgKzEwOSw3IEBAIHdpbmRvdy5vbmxv
YWQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHVwZGF0ZUNvbnRlbnQoKTsKIAogICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHN0YXJ0U3dpcGVHZXN0dXJlKCk7
CisgICAgICAgICAgICBydW5UZXN0KCk7CiAgICAgICAgIH0sIDApOwogICAgIH0sIDApOwogfTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzIGIv
TGF5b3V0VGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMKaW5kZXggZGQ4ZTkwMDlm
ZmU4NDk1OTAwOTlmZDE4MzIzYmNlMzczYjc0MDY4MC4uMGMyMzY1ZDEzMTNhMTgwNjc3YjkxYWYy
YjQ0OTMzYWU0MDgzOGNjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvcmVzb3VyY2Vz
L3N3aXBlLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRl
c3QuanMKQEAgLTEsNTAgKzEsMyBAQAotdmFyIGV2ZW50UXVldWUgPSB7Ci0gICAgZW5xdWV1ZVNj
cm9sbEV2ZW50OiBmdW5jdGlvbiAoeCwgeSwgcGhhc2UpIHsKLSAgICAgICAgdGhpcy5fcXVldWUu
cHVzaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBsb2coInNjcm9sbCBldmVudCAoZGVsdGEg
IiArIHggKyAiICIgKyB5ICsgIiwgcGhhc2UgJyIgKyBwaGFzZSArICInKSIpOwotICAgICAgICAg
ICAgd2luZG93LmV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcyh4LCB5LCBwaGFzZSwgJ25vbmUnKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHRoaXMuX3By
b2Nlc3NFdmVudFF1ZXVlU29vbigpOwotICAgIH0sCi0KLSAgICBlbnF1ZXVlU3dpcGVFdmVudDog
ZnVuY3Rpb24gKHgsIHksIHBoYXNlKSB7Ci0gICAgICAgIHRoaXMuX3F1ZXVlLnB1c2goZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgbG9nKCJzd2lwZSBldmVudCAoZGVsdGEgIiArIHggKyAiICIg
KyB5ICsgIiwgcGhhc2UgJyIgKyBwaGFzZSArICInKSIpOwotICAgICAgICAgICAgd2luZG93LmV2
ZW50U2VuZGVyLnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKHgsIHksIHBo
YXNlLCAnbm9uZScpOwotICAgICAgICB9KTsKLSAgICAgICAgdGhpcy5fcHJvY2Vzc0V2ZW50UXVl
dWVTb29uKCk7Ci0gICAgfSwKLQotICAgIGhhc1BlbmRpbmdFdmVudHM6IGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMuX3F1ZXVlLmxlbmd0aCAhPSAwOwotICAgIH0sCi0KLSAgICBj
YWxsQWZ0ZXJFdmVudERpc3BhdGNoOiBmdW5jdGlvbiAoY2FsbGJhY2spIHsKLSAgICAgICAgdmFy
IGludGVydmFsID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgeyAKLSAgICAgICAgICAgIGlmICgh
ZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCkpIHsKLSAgICAgICAgICAgICAgICBjbGVhcklu
dGVydmFsKGludGVydmFsKTsKLSAgICAgICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9LCAwKTsKLSAgICB9LAotCi0gICAgX3F1ZXVlOiBbXSwKLQotICAgIF9w
cm9jZXNzRXZlbnRRdWV1ZTogZnVuY3Rpb24gKCkgewotICAgICAgICBpZiAoIXRoaXMuX3F1ZXVl
Lmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB2YXIgaXRlbSA9IHRoaXMu
X3F1ZXVlLnNoaWZ0KCk7Ci0gICAgICAgIGl0ZW0oKTsKLSAgICAgICAgdGhpcy5fcHJvY2Vzc0V2
ZW50UXVldWVTb29uKCk7Ci0gICAgfSwKLQotICAgIF9wcm9jZXNzRXZlbnRRdWV1ZVNvb246IGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Byb2Nlc3NpbmdUaW1lb3V0
KTsKLSAgICAgICAgdGhpcy5fcHJvY2Vzc2luZ1RpbWVvdXQgPSBzZXRUaW1lb3V0KHRoaXMuX3By
b2Nlc3NFdmVudFF1ZXVlLmJpbmQodGhpcyksIDApOwotICAgIH0KLX0KLQogZnVuY3Rpb24gc2hv
dWxkQmUoZXhwZWN0ZWQsIGFjdHVhbCwgbWVzc2FnZSkKIHsKICAgICBpZiAoZXhwZWN0ZWQgIT0g
YWN0dWFsKQpAQCAtODQsNCArMzcsMzcgQEAgZnVuY3Rpb24gbWVhc3VyZWREdXJhdGlvblNob3Vs
ZEJlTGVzc1RoYW4oa2V5LCB0aW1lSW5NUywgbWVzc2FnZSkKICAgICB2YXIgZHVyYXRpb24gPSBE
YXRlLm5vdygpIC0gd2luZG93LmxvY2FsU3RvcmFnZVtrZXkgKyAic3dpcGVTdGFydFRpbWUiXTsK
ICAgICBpZiAoZHVyYXRpb24gPj0gdGltZUluTVMpCiAgICAgICAgIGxvZygiRmFpbHVyZS4gIiAr
IG1lc3NhZ2UgKyAiIChleHBlY3RlZDogIiArIHRpbWVJbk1TICsgIiwgYWN0dWFsOiAiICsgZHVy
YXRpb24gKyAiKSIpOwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KKworZnVuY3Rp
b24gc3RhcnRTd2lwZUdlc3R1cmUoY2FsbGJhY2spCit7CisgICAgbG9nKCJzdGFydFN3aXBlR2Vz
dHVyZSIpOworICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgIChmdW5jdGlvbigpIHsK
KyAgICAgICAgdWlDb250cm9sbGVyLmJlZ2luQmFja1N3aXBlKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgfSk7CisgICAg
fSkoKTtgLCBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fSk7Cit9CisKK2Z1bmN0aW9uIGNvbXBs
ZXRlU3dpcGVHZXN0dXJlKGNhbGxiYWNrKQoreworICAgIGxvZygiY29tcGxldGVTd2lwZUdlc3R1
cmUiKTsKKyAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHVpQ29udHJvbGxlci5jb21wbGV0ZUJhY2tTd2lwZShmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgIH0pOworICAg
IH0pKCk7YCwgY2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkge30pOworfQorCitmdW5jdGlvbiBwbGF5
RXZlbnRTdHJlYW0oc3RyZWFtLCBjYWxsYmFjaykKK3sKKyAgICBsb2coInBsYXlFdmVudFN0cmVh
bSIpOworICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgIChmdW5jdGlvbigpIHsKKyAg
ICAgICAgdWlDb250cm9sbGVyLnBsYXlCYWNrRXZlbnRTdHJlYW0oXGAke3N0cmVhbX1cYCwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOwor
ICAgICAgICB9KTsKKyAgICB9KSgpO2AsIGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9KTsKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFp
bHVyZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVy
ZXNpcy1mYWlsdXJlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDVhNDgwYTk4MDRjZTIxOTE0YzhmOTgyZjViYzAxMTllN2RlYmU1NzkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUt
c3RhcnQtaHlzdGVyZXNpcy1mYWlsdXJlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyMiArMCwwIEBACi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQot
c2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRl
bHRhIDAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNl
ICdlbmRlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Ny
b2xsIGV2ZW50IChkZWx0YSAyIDIsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRh
IDAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdl
bmRlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xs
IGV2ZW50IChkZWx0YSAwIDIsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAg
MCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRl
ZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2
ZW50IChkZWx0YSAxIDAsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMiwg
cGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcp
Ci1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50
IChkZWx0YSAzIDEsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhh
c2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1z
d2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9zd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3NWU2N2I5NzQxMjM5MmNkYjE0NDdlYTU3YzJiMDU1
NTIzYzVmMDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVyZXNpcy1mYWlsdXJlcy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLTxoZWFkPgotPHN0eWxlPgotaHRtbCB7Ci0g
ICAgZm9udC1zaXplOiAzMnB0OwotfQotPC9zdHlsZT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
c3dpcGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gZG9TaG9ydFN3aXBl
R2VzdHVyZSgpCi17Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAxMDApOwotCi0g
ICAgLy8gVG90YWwgZGVsdGEgb2YgMTAsIDA7IHNob3VsZCBub3QgYmUgZW5vdWdoIHRvIHN0YXJ0
IGEgc3dpcGUuCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVn
aW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnYmVnYW4nKTsK
LSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnY2hhbmdlZCcpOwotICAg
IGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdlbmRlZCcpOwotCi0gICAgZXZl
bnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKGRvRGlhZ29uYWxTd2lwZUdlc3R1cmUpOwot
fQotCi1mdW5jdGlvbiBkb0RpYWdvbmFsU3dpcGVHZXN0dXJlKCkKLXsKLSAgICAvLyBUb3RhbCBk
ZWx0YSBvZiAyMCwgMjA7IHRoaXMgaXMgb3JkaW5hcmlseSBzdWZmaWNpZW50IG1hZ25pdHVkZSB0
byBzdGFydCBhIHN3aXBlLAotICAgIC8vIGJ1dCBpcyB0b28gZGlhZ29uYWwgdG8gc3RhcnQgYSBz
d2lwZS4KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicp
OwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDIsIDIsICdiZWdhbicpOwotICAg
IGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1
ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goZG9WZXJ0aWNhbFN3aXBlR2VzdHVyZSk7Ci19Ci0K
LWZ1bmN0aW9uIGRvVmVydGljYWxTd2lwZUdlc3R1cmUoKQotewotICAgIC8vIFRvdGFsIGRlbHRh
IG9mIDAsIDIwOyB0aGlzIGlzIG9yZGluYXJpbHkgc3VmZmljaWVudCBtYWduaXR1ZGUgdG8gc3Rh
cnQgYSBzd2lwZSwKLSAgICAvLyBidXQgaXMgY29tcGxldGVseSB2ZXJ0aWNhbCwgc28gd2Ugd29u
J3Qgc3RhcnQgYSBzd2lwZS4KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAs
ICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDIsICdi
ZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdjaGFuZ2Vk
Jyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0K
LSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goZG9Ib3Jpem9udGFsVGhlblZl
cnRpY2FsU3dpcGVHZXN0dXJlKTsKLX0KLQotZnVuY3Rpb24gZG9Ib3Jpem9udGFsVGhlblZlcnRp
Y2FsU3dpcGVHZXN0dXJlKCkKLXsKLSAgICAvLyBUb3RhbCBkZWx0YSBvZiAxMCwgMjA7IHRoaXMg
aXMgb3JkaW5hcmlseSBzdWZmaWNpZW50IG1hZ25pdHVkZSB0byBzdGFydCBhIHN3aXBlLAotICAg
IC8vIGJ1dCBpcyB0b28gdmVydGljYWwsIHNvIHdlIHdvbid0IHN0YXJ0IGEgc3dpcGUuCi0gICAg
ZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVu
dFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVl
LmVucXVldWVTY3JvbGxFdmVudCgwLCAyLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5x
dWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdlbmRlZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0
ZXJFdmVudERpc3BhdGNoKGRvUmVndWxhclN3aXBlR2VzdHVyZSk7Ci19Ci0KLWZ1bmN0aW9uIGRv
UmVndWxhclN3aXBlR2VzdHVyZSgpCi17Ci0gICAgLy8gU3dhcCBpbiBhIGRpZmZlcmVudCBjYWxs
YmFjayB0aGF0IG1ha2VzIHN1cmUgd2UgKmRvKiByZWFjaCBkaWRCZWdpblN3aXBlLgotICAgIHRl
c3RSdW5uZXIuY2xlYXJUZXN0UnVubmVyQ2FsbGJhY2tzKCk7Ci0gICAgdmFyIHNhd0RpZEJlZ2lu
U3dpcGUgPSBmYWxzZTsKLSAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRCZWdpblN3aXBlQ2FsbGJh
Y2soZnVuY3Rpb24gKCkgewotICAgICAgICBzYXdEaWRCZWdpblN3aXBlID0gdHJ1ZTsKLSAgICAg
ICAgLy8gTmVlZCBhIHN3aXBlLWVuZCBldmVudCB0byBjbGVhbiB1cC4KLSAgICAgICAgZXZlbnRR
dWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnZW5kZWQnKTsKLSAgICB9KTsKLQotICAgIHRl
c3RSdW5uZXIuaW5zdGFsbERpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayhmdW5jdGlvbiAo
KSB7Ci0gICAgICAgIHNob3VsZEJlKHRydWUsIHNhd0RpZEJlZ2luU3dpcGUsICJUaGUgbGFzdCBn
ZXN0dXJlIHNob3VsZCBzdGFydCBhIHN3aXBlLCBiZWNhdXNlIGl0IGlzIHN1ZmZpY2llbnQgbWFn
bml0dWRlIGFuZCBpbiB0aGUgY29ycmVjdCBkaXJlY3Rpb24uIikKLSAgICAgICAgdGVzdENvbXBs
ZXRlKCk7Ci0gICAgfSk7Ci0KLSAgICAvLyBUb3RhbCBkZWx0YSBvZiAzMCwgMTA7IHRoaXMgc2hv
dWxkIHN0YXJ0IGEgc3dpcGUgYXMgdXN1YWwuCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVF
dmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVu
dCgzLCAxLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAw
LCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdl
bmRlZCcpOwotfQotCi1mdW5jdGlvbiBkaWRCZWdpblN3aXBlTm90UmVhY2hlZENhbGxiYWNrKCkK
LXsKLSAgICBsb2coIkZhaWx1cmUuIFNob3VsZCBuZXZlciBiZWdpbiBhIHN3aXBlLCBiZWNhdXNl
IGFsbCBvZiB0aGUgYXR0ZW1wdGVkIHN3aXBlcyBzaG91bGQgZmFpbCBkdWUgdG8gdGhlIHN3aXBl
LXN0YXJ0IGh5c3RlcmVzaXMuIik7Ci19Ci0KLWZ1bmN0aW9uIGlzRmlyc3RQYWdlKCkKLXsKLSAg
ICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigic2Vjb25kIikgPT0gLTE7Ci19
Ci0KLXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnRT
ZW5kZXIgfHwgIXdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuaW5u
ZXJIVE1MID0gIlRoaXMgdGVzdCBtdXN0IGJlIHJ1biBpbiBXZWJLaXRUZXN0UnVubmVyLiI7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IGlz
Rmlyc3RQYWdlKCkgPyAiZmlyc3QiIDogInNlY29uZCI7Ci0KLSAgICBpZiAoaXNGaXJzdFBhZ2Uo
KSkgewotICAgICAgICBpbml0aWFsaXplU3dpcGVUZXN0KCk7Ci0KLSAgICAgICAgdGVzdFJ1bm5l
ci5pbnN0YWxsRGlkQmVnaW5Td2lwZUNhbGxiYWNrKGRpZEJlZ2luU3dpcGVOb3RSZWFjaGVkQ2Fs
bGJhY2spOwotCi0gICAgICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRV
c2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIsIDEpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0KLSAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbiAoKSB7IAotICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhy
ZWYgPSB3aW5kb3cubG9jYXRpb24uaHJlZiArICI/c2Vjb25kIjsKLSAgICAgICAgfSwgMCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkb1Nob3J0U3dpcGVHZXN0dXJlKCk7Ci19Owot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTwvYm9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290837</attachid>
            <date>2016-10-06 11:32:34 -0700</date>
            <delta_ts>2017-03-29 17:24:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161675-20161006112920.patch</filename>
            <type>text/plain</type>
            <size>109965</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2ODY0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmI4ODJhZDMxNTgwMjAwNTQ0MTcyNzE0ZjZiZjcyY2Q1
YzgyMGZlYS4uYWQ3ZWJmYjY5NmNiMDhmMGVkM2MwZGJjNGNhNWVhMGM5NjJmYjM2ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDE2LTEwLTA2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFN3aXBlIGdlc3R1cmUgdGVzdHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRm
b3JtUGxheUJhY2tFdmVudFN0cmVhbSk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6YmVnaW5CYWNrU3dpcGUpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNv
bXBsZXRlQmFja1N3aXBlKToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFs
aXphdGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbTog
QWRkZWQuCisgICAgICAgIChldmVudElzT2ZUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZlR5cGVz
KToKKyAgICAgICAgKGV2ZW50SXNPZkdlc3R1cmVUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZkdl
c3R1cmVUeXBlcyk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBkaWN0aW9uYXJ5Rm9yRXZl
bnQ6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBjcmVhdGVF
dmVudEZvckRpY3Rpb25hcnk6aW5XaW5kb3c6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgr
W0V2ZW50U2VyaWFsaXplciBwbGF5RXZlbnRTdHJlYW06aW5XaW5kb3c6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFj
L1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1bm5lclNo
YXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTogQWRk
ZWQuCisgICAgICAgIChiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKToKKyAgICAgICAgKGNvbXBs
ZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0pOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICog
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF5QmFja0V2ZW50U3RyZWFtKToK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZSk6CisgICAg
ICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUpOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbSk6
CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1DbGVhckFsbENhbGxi
YWNrcyk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9zcGkv
Q29yZUdyYXBoaWNzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvc3Bp
L0lPS2l0U1BJLmg6IFJlbmFtZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tp
dFNQSS5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1VJ
U2NyaXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6cGxheUJhY2tFdmVudHMpOgor
ICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKToKKyAgICAg
ICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZSk6CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKToK
KwogMjAxNi0xMC0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV1c2UgQ29kZUdlbmVyYXRvcjo6VXBkYXRlRmlsZSBpbiBUb29scyBDb2RlR2VuZXJhdG9y
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVy
TWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5t
bQppbmRleCA1NmUyMDc3YTRiMmEyMGMxZGI5MWRjOWExMGJkZGU1ZjIyY2M2NDBiLi5jYTg2ZWY3
ZTE3YThkNzYxODFmZGU0MGNmY2VlNjY3YjhkN2UwNTljIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTQzLDYgKzQzLDE4IEBA
IHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkb0FzeW5jVGFzayhKU1ZhbHVlUmVmIGNhbGxiYWNr
KQogICAgIH0pOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVnaW5CYWNrU3dpcGUo
SlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNv
bXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7Cit9CisKK3ZvaWQgVUlTY3Jp
cHRDb250cm9sbGVyOjpwbGF0Zm9ybVBsYXlCYWNrRXZlbnRTdHJlYW0oSlNTdHJpbmdSZWYsIEpT
VmFsdWVSZWYpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9FdmVudFNl
cmlhbGl6ZXJNYWMuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9u
L21hYy9FdmVudFNlcmlhbGl6ZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzZkYjg2NjkxOTE1OGY0MTcx
NGQ4MDY5OTdlZDdhNWQ5NzExMzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5oCkBAIC0w
LDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0IDxB
cHBLaXQvQXBwS2l0Lmg+CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKyNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKworQGludGVyZmFjZSBFdmVudFNlcmlhbGl6ZXIgOiBOU09iamVjdAorCisr
IChOU0RpY3Rpb25hcnkgKilkaWN0aW9uYXJ5Rm9yRXZlbnQ6KENHRXZlbnRSZWYpZXZlbnQgcmVs
YXRpdmVUb1RpbWU6KENHRXZlbnRUaW1lc3RhbXApcmVmZXJlbmNlVGltZXN0YW1wOworCisrIChD
R0V2ZW50UmVmKWNyZWF0ZUV2ZW50Rm9yRGljdGlvbmFyeTooTlNEaWN0aW9uYXJ5ICopZGljdCBp
bldpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cgcmVsYXRpdmVUb1RpbWU6KENHRXZlbnRUaW1lc3Rh
bXApcmVmZXJlbmNlVGltZXN0YW1wOworCitAZW5kCisKK0BpbnRlcmZhY2UgRXZlbnRTdHJlYW1Q
bGF5ZXIgOiBOU09iamVjdCB7CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5ICo+IF9yZW1h
aW5pbmdFdmVudERpY3RzOworICAgIFJldGFpblB0cjxOU1dpbmRvdyAqPiBfd2luZG93OworICAg
IEJsb2NrUHRyPHZvaWQgKCk+IF9jb21wbGV0aW9uSGFuZGxlcjsKKyAgICB1aW50NjRfdCBfc3Rh
cnRUaW1lOworfQorCisrICh2b2lkKXBsYXlTdHJlYW06KE5TQXJyYXk8TlNEaWN0aW9uYXJ5ICo+
ICopZXZlbnREaWN0cyB3aW5kb3c6KE5TV2luZG93ICopd2luZG93IGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkKF4pKCkpY29tcGxldGlvbkhhbmRsZXI7CisKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvRXZlbnRT
ZXJpYWxpemVyTWFjLm1tIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRp
b24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzkwNGI4NWI0YjczYzdi
N2JhZmI0ZmM2ODk3NmRmN2M0NjBlOGU0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbQpA
QCAtMCwwICsxLDMyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9y
dCAiRXZlbnRTZXJpYWxpemVyTWFjLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQg
IkNvcmVHcmFwaGljc1NQSS5oIgorI2ltcG9ydCAiSU9LaXRTUEkuaCIKKyNpbXBvcnQgPGFsZ29y
aXRobT4KKyNpbXBvcnQgPG1hY2gvbWFjaF90aW1lLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CisKKyNkZWZpbmUgTU9VU0VfRVZFTlRfVFlQRVMgXAorICAgIChDR1NFdmVudFR5cGUpa0NH
RXZlbnRMZWZ0TW91c2VEb3duLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudExlZnRNb3Vz
ZVVwLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudFJpZ2h0TW91c2VEb3duLCBcCisgICAg
KENHU0V2ZW50VHlwZSlrQ0dFdmVudFJpZ2h0TW91c2VVcCwgXAorICAgIChDR1NFdmVudFR5cGUp
a0NHRXZlbnRNb3VzZU1vdmVkLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudExlZnRNb3Vz
ZURyYWdnZWQsIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50UmlnaHRNb3VzZURyYWdnZWQs
IFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50T3RoZXJNb3VzZURvd24sIFwKKyAgICAoQ0dT
RXZlbnRUeXBlKWtDR0V2ZW50T3RoZXJNb3VzZVVwLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dF
dmVudE90aGVyTW91c2VEcmFnZ2VkCisKKyNkZWZpbmUgS0VZX0VWRU5UX1RZUEVTIFwKKyAgICAo
Q0dTRXZlbnRUeXBlKWtDR0V2ZW50S2V5RG93biwgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZl
bnRLZXlVcCwgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRGbGFnc0NoYW5nZWQKKworI2Rl
ZmluZSBHRVNUVVJFX0VWRU5UX1RZUEVTIFwKKyAgICBrQ0dTRXZlbnRHZXN0dXJlLCBcCisgICAg
a0NHU0V2ZW50Rmx1aWRUb3VjaEdlc3R1cmUsIFwKKyAgICBrQ0dTRXZlbnREb2NrQ29udHJvbAor
Citib29sIGV2ZW50SXNPZlR5cGUoQ0dFdmVudFJlZiBldmVudCwgQ0dTRXZlbnRUeXBlIHR5cGUp
Cit7CisgICAgcmV0dXJuIChDR1NFdmVudFR5cGUpQ0dFdmVudEdldFR5cGUoZXZlbnQpID09IHR5
cGU7Cit9CisKK2Jvb2wgZXZlbnRJc09mVHlwZXMoQ0dFdmVudFJlZikgeyByZXR1cm4gZmFsc2U7
IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgLi4uIFR5cGVzPgorYm9vbCBldmVudElzT2ZUeXBlcyhD
R0V2ZW50UmVmIGV2ZW50LCBDR1NFdmVudFR5cGUgZmlyc3QsIFR5cGVzIC4uLiByZXN0KQorewor
ICAgIHJldHVybiBldmVudElzT2ZUeXBlKGV2ZW50LCBmaXJzdCkgfHwgZXZlbnRJc09mVHlwZXMo
ZXZlbnQsIHJlc3QuLi4pOworfQorCitib29sIGV2ZW50SXNPZkdlc3R1cmVUeXBlKENHRXZlbnRS
ZWYgZXZlbnQsIElPSElERXZlbnRUeXBlIHR5cGUpCit7CisgICAgcmV0dXJuIChJT0hJREV2ZW50
VHlwZSlDR0V2ZW50R2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGtDR0V2ZW50R2VzdHVyZUhJ
RFR5cGUpID09IHR5cGU7Cit9CisKK2Jvb2wgZXZlbnRJc09mR2VzdHVyZVR5cGVzKENHRXZlbnRS
ZWYpIHsgcmV0dXJuIGZhbHNlOyB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIC4uLiBUeXBlcz4KK2Jv
b2wgZXZlbnRJc09mR2VzdHVyZVR5cGVzKENHRXZlbnRSZWYgZXZlbnQsIElPSElERXZlbnRUeXBl
IGZpcnN0LCBUeXBlcyAuLi4gcmVzdCkKK3sKKyAgICBpZiAoIWV2ZW50SXNPZlR5cGVzKGV2ZW50
LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwgZmlyc3QpIHx8IGV2ZW50SXNPZkdlc3R1cmVU
eXBlcyhldmVudCwgcmVzdC4uLik7Cit9CisKKyNkZWZpbmUgRk9SX0VBQ0hfQ0dFVkVOVF9JTlRF
R0VSX0ZJRUxEKG1hY3JvKSBcCisgICAgbWFjcm8odHJ1ZSwga0NHU0V2ZW50VHlwZUZpZWxkKSBc
CisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxX
aGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMxKSBcCisg
ICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dT
RXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIpIFwKKyAgICBtYWNybyhl
dmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20p
LCBrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMykgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5
cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9s
bFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVu
dCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2
ZW50TW9tZW50dW1QaGFzZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dT
RXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRQb2lu
dERlbHRhQXhpczEpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwga0NHU0V2ZW50
U2Nyb2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0
YUF4aXMyKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIGtDR1NFdmVudFNjcm9s
bFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlz
MykgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVl
bCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCkgXAorICAg
IG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2
ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSkgXAorICAgIFwKKyAgICBt
YWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2
ZW50QnV0dG9uTnVtYmVyKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIE1PVVNF
X0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudENsaWNrU3RhdGUpIFwKKyAgICBtYWNybyhldmVu
dElzT2ZUeXBlcyhldmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50RGVsdGFY
KSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwg
a0NHTW91c2VFdmVudERlbHRhWSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBN
T1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnRTdWJ0eXBlKSBcCisgICAgbWFjcm8oZXZl
bnRJc09mVHlwZXMoZXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudE51bWJl
cikgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgS0VZX0VWRU5UX1RZ
UEVTKSwga0NHS2V5Ym9hcmRFdmVudEF1dG9yZXBlYXQpIFwKKyAgICBtYWNybyhldmVudElzT2ZU
eXBlcyhldmVudCwgS0VZX0VWRU5UX1RZUEVTKSwga0NHS2V5Ym9hcmRFdmVudEtleWJvYXJkVHlw
ZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBLRVlfRVZFTlRfVFlQRVMpLCBr
Q0dLZXlib2FyZEV2ZW50S2V5Y29kZSkgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBl
cyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyksIGtDR0V2ZW50R2VzdHVyZUhJRFR5cGUpIFwK
KyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyksIGtD
R0V2ZW50R2VzdHVyZUJlaGF2aW9yKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMoZXZlbnQs
IEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVGbGF2b3IpIFwKKyAgICBtYWNy
byhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyksIGtDR0V2ZW50R2Vz
dHVyZU1hc2spIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhldmVudCwgR0VTVFVSRV9FVkVO
VF9UWVBFUyksIGtDR0V2ZW50R2VzdHVyZVBoYXNlKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlw
ZXMoZXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVTdGFnZSkgXAor
ICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRU
eXBlU2Nyb2xsKSwga0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMpIFwKKyAgICBcCisgICAg
bWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRp
b25Td2lwZSksIGtDR0V2ZW50U3dpcGVHZXN0dXJlRmxhZ0JpdHMpIFwKKyAgICBtYWNybyhldmVu
dElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwg
a0NHRXZlbnRHZXN0dXJlU3dpcGVNYXNrKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5
cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVy
ZVN3aXBlTW90aW9uKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJ
T0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmFsdWUp
IFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwga0lPSElERXZlbnRUeXBl
TmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlRmxhdm9yKSBcCisgICAgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlcyhldmVudCwga0NHSElERXZlbnRUeXBlR2VzdHVyZVN0
YXJ0ZWQsIGtDR0hJREV2ZW50VHlwZUdlc3R1cmVFbmRlZCksIGtDR0V2ZW50R2VzdHVyZVN0YXJ0
RW5kU2VyaWVzVHlwZSkKKworI2RlZmluZSBGT1JfRUFDSF9DR0VWRU5UX0RPVUJMRV9GSUVMRCht
YWNybykgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZ
UEVTKSwga0NHRXZlbnRHZXN0dXJlUHJvZ3Jlc3MpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJ
c09mVHlwZXMoZXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudFByZXNzdXJl
KSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURF
dmVudFR5cGVab29tKSwga0NHRXZlbnRHZXN0dXJlWm9vbURlbHRhWCkgXAorICAgIG1hY3JvKGV2
ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVab29tKSwga0NHRXZlbnRH
ZXN0dXJlWm9vbURlbHRhWSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50
LCBrSU9ISURFdmVudFR5cGVab29tKSwga0NHRXZlbnRHZXN0dXJlWm9vbVZhbHVlKSBcCisgICAg
XAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVS
b3RhdGlvbiksIGtDR0V2ZW50R2VzdHVyZVJvdGF0aW9uVmFsdWUpIFwKKyAgICBcCisgICAgbWFj
cm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZVNjcm9sbCksIGtD
R0V2ZW50R2VzdHVyZVNjcm9sbFgpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShl
dmVudCwga0lPSElERXZlbnRUeXBlU2Nyb2xsKSwga0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSkgXAor
ICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVTY3Jv
bGwpLCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxaKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNP
Zkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dF
dmVudEdlc3R1cmVTd2lwZVBvc2l0aW9uWCkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVU
eXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1
cmVTd2lwZVBvc2l0aW9uWSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50
LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZVBy
b2dyZXNzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2
ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlYKSBc
CisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5h
dmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlZKSBcCisgICAgbWFj
cm8oZXZlbnRJc09mR2VzdHVyZVR5cGUoZXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25T
d2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlaKSBcCisgICAgXAorICAgIG1hY3Jv
KGV2ZW50SXNPZkdlc3R1cmVUeXBlKGV2ZW50LCBrSU9ISURFdmVudFR5cGVGb3JjZSksIGtDR0V2
ZW50VHJhbnNpdGlvblByb2dyZXNzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUo
ZXZlbnQsIGtJT0hJREV2ZW50VHlwZUZvcmNlKSwga0NHRXZlbnRTdGFnZVByZXNzdXJlKQorCisj
ZGVmaW5lIExPQURfSU5URUdFUl9GSUVMRF9GUk9NX0VWRU5UKGV2ZW50VHlwZUZpbHRlciwgZmll
bGQpIFwKK14geyBcCisgICAgaWYgKCEoZXZlbnRUeXBlRmlsdGVyKSkgXAorICAgICAgICByZXR1
cm47IFwKKyAgICBpbnQ2NF90IHZhbHVlID0gQ0dFdmVudEdldEludGVnZXJWYWx1ZUZpZWxkKGV2
ZW50LCBmaWVsZCk7IFwKKyAgICBpbnQ2NF90IHBsYWluVmFsdWUgPSBDR0V2ZW50R2V0SW50ZWdl
clZhbHVlRmllbGQocGxhaW5FdmVudCwgZmllbGQpOyBcCisgICAgaWYgKHZhbHVlICE9IHBsYWlu
VmFsdWUpIFwKKyAgICAgICAgZGljdFtAI2ZpZWxkXSA9IEAodmFsdWUpOyBcCit9KCk7CisKKyNk
ZWZpbmUgTE9BRF9ET1VCTEVfRklFTERfRlJPTV9FVkVOVChldmVudFR5cGVGaWx0ZXIsIGZpZWxk
KSBcCiteIHsgXAorICAgIGlmICghKGV2ZW50VHlwZUZpbHRlcikpIFwKKyAgICAgICAgcmV0dXJu
OyBcCisgICAgZG91YmxlIHZhbHVlID0gQ0dFdmVudEdldERvdWJsZVZhbHVlRmllbGQoZXZlbnQs
IGZpZWxkKTsgXAorICAgIGlmICghaXNuYW4odmFsdWUpKSB7IFwKKyAgICAgICAgZG91YmxlIHBs
YWluVmFsdWUgPSBDR0V2ZW50R2V0RG91YmxlVmFsdWVGaWVsZChwbGFpbkV2ZW50LCBmaWVsZCk7
IFwKKyAgICAgICAgaWYgKGZhYnModmFsdWUgLSBwbGFpblZhbHVlKSA+PSBGTFRfRVBTSUxPTikg
XAorICAgICAgICAgICAgZGljdFtAI2ZpZWxkXSA9IEAodmFsdWUpOyBcCisgICAgfSBcCit9KCk7
CisKKyNkZWZpbmUgU1RPUkVfSU5URUdFUl9GSUVMRF9UT19FVkVOVChldmVudFR5cGVGaWx0ZXIs
IGZpZWxkKSBcCiteIHsgXAorICAgIGlmICghKGV2ZW50VHlwZUZpbHRlcikpIFwKKyAgICAgICAg
cmV0dXJuOyBcCisgICAgTlNOdW1iZXIgKnZhbHVlID0gZGljdFtAI2ZpZWxkXTsgXAorICAgIGlm
ICh2YWx1ZSkgXAorICAgICAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGZp
ZWxkLCB2YWx1ZS51bnNpZ25lZExvbmdMb25nVmFsdWUpOyBcCit9KCk7CisKKyNkZWZpbmUgU1RP
UkVfRE9VQkxFX0ZJRUxEX1RPX0VWRU5UKGV2ZW50VHlwZUZpbHRlciwgZmllbGQpIFwKK14geyBc
CisgICAgaWYgKCEoZXZlbnRUeXBlRmlsdGVyKSkgXAorICAgICAgICByZXR1cm47IFwKKyAgICBO
U051bWJlciAqdmFsdWUgPSBkaWN0W0AjZmllbGRdOyBcCisgICAgaWYgKHZhbHVlKSBcCisgICAg
ICAgIENHRXZlbnRTZXREb3VibGVWYWx1ZUZpZWxkKGV2ZW50LCBmaWVsZCwgdmFsdWUuZG91Ymxl
VmFsdWUpOyBcCit9KCk7CisKK0BpbXBsZW1lbnRhdGlvbiBFdmVudFNlcmlhbGl6ZXIKKworKyAo
TlNEaWN0aW9uYXJ5ICopZGljdGlvbmFyeUZvckV2ZW50OihDR0V2ZW50UmVmKWV2ZW50IHJlbGF0
aXZlVG9UaW1lOihDR0V2ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRpbWVzdGFtcAoreworICAgIENH
RXZlbnRSZWYgcGxhaW5FdmVudCA9IENHRXZlbnRDcmVhdGUoTlVMTCk7CisKKyAgICBOU011dGFi
bGVEaWN0aW9uYXJ5ICpkaWN0ID0gW1tbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0g
YXV0b3JlbGVhc2VdOworCisgICAgRk9SX0VBQ0hfQ0dFVkVOVF9JTlRFR0VSX0ZJRUxEKExPQURf
SU5URUdFUl9GSUVMRF9GUk9NX0VWRU5UKTsKKyAgICBGT1JfRUFDSF9DR0VWRU5UX0RPVUJMRV9G
SUVMRChMT0FEX0RPVUJMRV9GSUVMRF9GUk9NX0VWRU5UKTsKKworICAgIENHRXZlbnRUaW1lc3Rh
bXAgdGltZXN0YW1wID0gQ0dFdmVudEdldFRpbWVzdGFtcChldmVudCk7CisgICAgZGljdFtAInJl
bGF0aXZlVGltZU1TIl0gPSBAKHN0ZDo6bWF4PGRvdWJsZT4oc3RhdGljX2Nhc3Q8ZG91YmxlPih0
aW1lc3RhbXAgLSByZWZlcmVuY2VUaW1lc3RhbXApIC8gTlNFQ19QRVJfTVNFQywgMCkpOworCisg
ICAgQ0dTRXZlbnRUeXBlIGV2ZW50VHlwZSA9IChDR1NFdmVudFR5cGUpQ0dFdmVudEdldEludGVn
ZXJWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dTRXZlbnRUeXBlRmllbGQpOworICAgIGlmIChldmVudFR5
cGUgPT0ga0NHU0V2ZW50R2VzdHVyZSB8fCBldmVudFR5cGUgPT0ga0NHU0V2ZW50Rmx1aWRUb3Vj
aEdlc3R1cmUgfHwgZXZlbnRUeXBlID09IGtDR1NFdmVudERvY2tDb250cm9sKSB7CisgICAgICAg
IGlmIChDR0V2ZW50R2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGtDR0V2ZW50R2VzdHVyZUlz
UHJlZmxpZ2h0KSkgeworICAgICAgICAgICAgZGljdFtAImtDR0V2ZW50R2VzdHVyZUlzUHJlZmxp
Z2h0Il0gPSBAWUVTOworICAgICAgICAgICAgZGljdFtAImtDR0V2ZW50R2VzdHVyZVByZWZsaWdo
dFByb2dyZXNzIl0gPSBAKENHRXZlbnRHZXREb3VibGVWYWx1ZUZpZWxkKGV2ZW50LCBrQ0dFdmVu
dEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcykpOworICAgICAgICB9CisgICAgfQorCisgICAgZGlj
dFtAIndpbmRvd0xvY2F0aW9uIl0gPSBOU1N0cmluZ0Zyb21Qb2ludChOU1BvaW50RnJvbUNHUG9p
bnQoQ0dFdmVudEdldFdpbmRvd0xvY2F0aW9uKGV2ZW50KSkpOworCisgICAgQ0dFdmVudEZsYWdz
IGZsYWdzID0gc3RhdGljX2Nhc3Q8Q0dFdmVudEZsYWdzPihDR0V2ZW50R2V0RmxhZ3MoZXZlbnQp
ICYgfk5YX05PTkNPQUxTRVNDRURNQVNLKTsKKyAgICBDR0V2ZW50RmxhZ3MgcGxhaW5GbGFncyA9
IHN0YXRpY19jYXN0PENHRXZlbnRGbGFncz4oQ0dFdmVudEdldEZsYWdzKHBsYWluRXZlbnQpICYg
fk5YX05PTkNPQUxTRVNDRURNQVNLKTsKKyAgICBpZiAoZmxhZ3MgIT0gcGxhaW5GbGFncykKKyAg
ICAgICAgZGljdFtAImZsYWdzIl0gPSBAKGZsYWdzKTsKKworICAgIENGUmVsZWFzZShwbGFpbkV2
ZW50KTsKKworICAgIHJldHVybiBkaWN0OworfQorCisrIChDR0V2ZW50UmVmKWNyZWF0ZUV2ZW50
Rm9yRGljdGlvbmFyeTooTlNEaWN0aW9uYXJ5ICopZGljdCBpbldpbmRvdzooTlNXaW5kb3cgKil3
aW5kb3cgcmVsYXRpdmVUb1RpbWU6KENHRXZlbnRUaW1lc3RhbXApcmVmZXJlbmNlVGltZXN0YW1w
Cit7CisgICAgQ0dFdmVudFJlZiBldmVudCA9IENHRXZlbnRDcmVhdGUoTlVMTCk7CisKKyAgICBG
T1JfRUFDSF9DR0VWRU5UX0lOVEVHRVJfRklFTEQoU1RPUkVfSU5URUdFUl9GSUVMRF9UT19FVkVO
VCk7CisgICAgRk9SX0VBQ0hfQ0dFVkVOVF9ET1VCTEVfRklFTEQoU1RPUkVfRE9VQkxFX0ZJRUxE
X1RPX0VWRU5UKTsKKworICAgIGlmIChkaWN0W0AicmVsYXRpdmVUaW1lTVMiXSkKKyAgICAgICAg
Q0dFdmVudFNldFRpbWVzdGFtcChldmVudCwgcmVmZXJlbmNlVGltZXN0YW1wICsgc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KChbZGljdFtAInJlbGF0aXZlVGltZU1TIl0gZG91YmxlVmFsdWVdICogTlNF
Q19QRVJfTVNFQykpKTsKKworICAgIGlmIChbZGljdFtAImtDR0V2ZW50R2VzdHVyZUlzUHJlZmxp
Z2h0Il0gYm9vbFZhbHVlXSkgeworICAgICAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQo
ZXZlbnQsIGtDR0V2ZW50R2VzdHVyZUlzUHJlZmxpZ2h0LCAxKTsKKyAgICAgICAgQ0dFdmVudFNl
dERvdWJsZVZhbHVlRmllbGQoZXZlbnQsIGtDR0V2ZW50R2VzdHVyZVByZWZsaWdodFByb2dyZXNz
LCBbZGljdFtAImtDR0V2ZW50R2VzdHVyZVByZWZsaWdodFByb2dyZXNzIl0gZG91YmxlVmFsdWVd
KTsKKyAgICB9CisKKyAgICBpZiAoZGljdFtAIndpbmRvd0xvY2F0aW9uIl0pIHsKKyAgICAgICAg
Q0dQb2ludCB3aW5kb3dMb2NhdGlvbiA9IE5TUG9pbnRUb0NHUG9pbnQoTlNQb2ludEZyb21TdHJp
bmcoZGljdFtAIndpbmRvd0xvY2F0aW9uIl0pKTsKKyAgICAgICAgQ0dFdmVudFNldFdpbmRvd0xv
Y2F0aW9uKGV2ZW50LCB3aW5kb3dMb2NhdGlvbik7CisKKyAgICAgICAgTlNQb2ludCBzY3JlZW5Q
b2ludCA9IFt3aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpOU01ha2VSZWN0KHdpbmRvd0xvY2F0
aW9uLngsIHdpbmRvd0xvY2F0aW9uLnksIDEsIDEpXS5vcmlnaW47CisgICAgICAgIENHRXZlbnRT
ZXRMb2NhdGlvbihldmVudCwgQ0dQb2ludE1ha2Uoc2NyZWVuUG9pbnQueCwgTlNTY3JlZW4uc2Ny
ZWVucy5maXJzdE9iamVjdC5mcmFtZS5zaXplLmhlaWdodCAtIHNjcmVlblBvaW50LnkpKTsKKyAg
ICB9CisKKyAgICBpZiAoZGljdFtAImZsYWdzIl0pCisgICAgICAgIENHRXZlbnRTZXRGbGFncyhl
dmVudCwgc3RhdGljX2Nhc3Q8Q0dFdmVudEZsYWdzPihbZGljdFtAImZsYWdzIl0gdW5zaWduZWRM
b25nTG9uZ1ZhbHVlXSkpOworCisgICAgQ0dFdmVudFNldEludGVnZXJWYWx1ZUZpZWxkKGV2ZW50
LCBrQ0dTRXZlbnRXaW5kb3dJREZpZWxkLCB3aW5kb3cud2luZG93TnVtYmVyKTsKKworICAgIHJl
dHVybiBldmVudDsKK30KKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gRXZlbnRTdHJlYW1QbGF5
ZXIKKworY29uc3QgZmxvYXQgZXZlbnREaXNwYXRjaFRpbWVyUmF0ZSA9IDEuIC8gMTIwLjsKKwor
KyAodm9pZClwbGF5U3RyZWFtOihOU0FycmF5PE5TRGljdGlvbmFyeSAqPiAqKWV2ZW50RGljdHMg
d2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSgpKWNv
bXBsZXRpb25IYW5kbGVyCit7CisgICAgLy8gVGhpcyBhbGxvYyBpcyBiYWxhbmNlZCB3aXRoIHRo
ZSByZWxlYXNlIGJlbG93IGluIHBsYXliYWNrVGltZXJGaXJlZC4KKyAgICBFdmVudFN0cmVhbVBs
YXllciAqcGxheWVyID0gW1tFdmVudFN0cmVhbVBsYXllciBhbGxvY10gaW5pdF07CisKKyAgICBw
bGF5ZXItPl9yZW1haW5pbmdFdmVudERpY3RzID0gYWRvcHROUyhbZXZlbnREaWN0cyBtdXRhYmxl
Q29weV0pOworICAgIHBsYXllci0+X3dpbmRvdyA9IHdpbmRvdzsKKworICAgIGlmIChjb21wbGV0
aW9uSGFuZGxlcikKKyAgICAgICAgcGxheWVyLT5fY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxv
Y2tQdHIoY29tcGxldGlvbkhhbmRsZXIpOworCisgICAgcGxheWVyLT5fc3RhcnRUaW1lID0gbWFj
aF9hYnNvbHV0ZV90aW1lKCk7CisKKyAgICBbTlNUaW1lciBzY2hlZHVsZWRUaW1lcldpdGhUaW1l
SW50ZXJ2YWw6ZXZlbnREaXNwYXRjaFRpbWVyUmF0ZSB0YXJnZXQ6cGxheWVyIHNlbGVjdG9yOkBz
ZWxlY3RvcihwbGF5YmFja1RpbWVyRmlyZWQ6KSB1c2VySW5mbzpuaWwgcmVwZWF0czpZRVNdOwor
fQorCistICh2b2lkKXBsYXliYWNrVGltZXJGaXJlZDooTlNUaW1lciAqKXRpbWVyCit7CisgICAg
UmV0YWluUHRyPE5TTXV0YWJsZUFycmF5ICo+IHJlbW92ZUxpc3QgPSBhZG9wdE5TKFtbTlNNdXRh
YmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICBOU0V2ZW50ICpuc0V2ZW50ID0gbmlsOworICAg
IGZvciAoaWQgZXZlbnREaWN0IGluIF9yZW1haW5pbmdFdmVudERpY3RzLmdldCgpKSB7CisgICAg
ICAgIENHRXZlbnRSZWYgZXZlbnQgPSBbRXZlbnRTZXJpYWxpemVyIGNyZWF0ZUV2ZW50Rm9yRGlj
dGlvbmFyeTpldmVudERpY3QgaW5XaW5kb3c6X3dpbmRvdy5nZXQoKSByZWxhdGl2ZVRvVGltZTpf
c3RhcnRUaW1lXTsKKyAgICAgICAgaWYgKENHRXZlbnRHZXRUaW1lc3RhbXAoZXZlbnQpIDwgbWFj
aF9hYnNvbHV0ZV90aW1lKCkpIHsKKyAgICAgICAgICAgIG5zRXZlbnQgPSBbTlNFdmVudCBldmVu
dFdpdGhDR0V2ZW50OmV2ZW50XTsKKyAgICAgICAgICAgIFtOU0FwcCBwb3N0RXZlbnQ6bnNFdmVu
dCBhdFN0YXJ0Ok5PXTsKKyAgICAgICAgICAgIFtyZW1vdmVMaXN0IGFkZE9iamVjdDpldmVudERp
Y3RdOworICAgICAgICB9CisgICAgICAgIENGUmVsZWFzZShldmVudCk7CisgICAgfQorICAgIFtf
cmVtYWluaW5nRXZlbnREaWN0cyByZW1vdmVPYmplY3RzSW5BcnJheTpyZW1vdmVMaXN0LmdldCgp
XTsKKworICAgIGlmIChbX3JlbWFpbmluZ0V2ZW50RGljdHMgY291bnRdKQorICAgICAgICByZXR1
cm47CisKKyAgICBbdGltZXIgaW52YWxpZGF0ZV07CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTIwMAorICAgIE5TRXZlbnRUeXBlIGFwcGxpY2F0aW9uRGVmaW5l
ZEV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlQXBwbGljYXRpb25EZWZpbmVkOworI2Vsc2UKKyAgICBO
U0V2ZW50VHlwZSBhcHBsaWNhdGlvbkRlZmluZWRFdmVudFR5cGUgPSBOU0FwcGxpY2F0aW9uRGVm
aW5lZDsKKyNlbmRpZgorICAgIFtOU0FwcCBwb3N0RXZlbnQ6W05TRXZlbnQgb3RoZXJFdmVudFdp
dGhUeXBlOmFwcGxpY2F0aW9uRGVmaW5lZEV2ZW50VHlwZSBsb2NhdGlvbjpOU1plcm9Qb2ludCBt
b2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOjAgY29udGV4dDowIHN1YnR5
cGU6MCBkYXRhMTo0MiBkYXRhMjowXSBhdFN0YXJ0Ok5PXTsKKyAgICAvLyBCbG9jayB1bnRpbCB3
ZSBzZW5kIHRoZSBsYXN0IGV2ZW50IHdlIHBvc3RlZC4KKyAgICB3aGlsZSAodHJ1ZSkgeworICAg
ICAgICBOU0V2ZW50ICpuZXh0RXZlbnQgPSBbTlNBcHAgbmV4dEV2ZW50TWF0Y2hpbmdNYXNrOk5T
QW55RXZlbnRNYXNrIHVudGlsRGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2VO
b3c6ZXZlbnREaXNwYXRjaFRpbWVyUmF0ZV0gaW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGRl
cXVldWU6WUVTXTsKKyAgICAgICAgaWYgKG5leHRFdmVudC50eXBlID09IGFwcGxpY2F0aW9uRGVm
aW5lZEV2ZW50VHlwZSAmJiBuZXh0RXZlbnQuZGF0YTEgPT0gNDIpCisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgaWYgKG5leHRFdmVudCkKKyAgICAgICAgICAgIFtOU0FwcCBzZW5kRXZlbnQ6
bmV4dEV2ZW50XTsKKyAgICB9CisKKyAgICBpZiAoX2NvbXBsZXRpb25IYW5kbGVyKQorICAgICAg
ICBfY29tcGxldGlvbkhhbmRsZXIoKTsKKworICAgIFtzZWxmIHJlbGVhc2VdOworfQorCitAZW5k
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlh
bGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oIGIvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFmMzAyODgzNTkyMTM2MmJkZjZjZDFmNWIxZTQ3OGE5NTBmZWIzNzEKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMv
U2hhcmVkRXZlbnRTdHJlYW1zTWFjLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
ZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KKworTlNTdHJpbmcg
KmJlZ2luU3dpcGVCYWNrRXZlbnRTdHJlYW0oKTsKK05TU3RyaW5nICpjb21wbGV0ZVN3aXBlQmFj
a0V2ZW50U3RyZWFtKCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSBiL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9TaGFyZWRFdmVudFN0
cmVhbXNNYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTgyNDA1OWNhYWQwMTNmMDg5MWYyMzUwODg1MGEwOTMx
ZDQ5Y2Q4OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRT
ZXJpYWxpemF0aW9uL21hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMubW0KQEAgLTAsMCArMSwzNjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlNoYXJlZEV2ZW50
U3RyZWFtc01hYy5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjZGVmaW5lIFFVT1RFKC4uLikg
QCgjX19WQV9BUkdTX18pCisKK05TU3RyaW5nICpiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKCkK
K3sKKyAgICByZXR1cm4gUVVPVEUoWworICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVU
aW1lTVMiIDogMCwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIg
OiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAg
ICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0
dXJlUGhhc2UiIDogMTI4LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAz
MDB9IgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMi
IDogOCwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYxLAorICAgICAg
ICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdl
c3R1cmVTdGFydEVuZFNlcmllc1R5cGUiIDogNiwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlv
biIgOiAiezQwMCwgMzAwfSIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIg
OiA4LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50
U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZp
ZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMgorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogOCwKKyAg
ICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDEsCisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBl
RmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50
R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAxNywK
KyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAg
ICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2Vz
dHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0Jp
dHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAxMgorICAgICAgICB9LAorICAgICAgICB7
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAxLAor
ICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDE3LAorICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50
UG9pbnREZWx0YUF4aXMyIiA6IDQsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0
MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2
LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDI1LAorICAgICAgICAgICAgIndpbmRv
d0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVT
Y3JvbGxZIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAg
ICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAg
ICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1
cmVTY3JvbGxYIiA6IDIzCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dT
Y3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVN
UyIgOiAyNSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6
IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMSwKKyAg
ICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAi
a0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVU
aW1lTVMiIDogMzMsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0i
LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFkiIDogMiwKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xs
R2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6
IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMjgKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMy
IiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIg
OiAxLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDMzLAorICAgICAgICAgICAgImtD
R1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDE2LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9u
IiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIK
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5
cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA0MSwKKyAgICAgICAgICAg
ICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlU2Nyb2xsWSIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6
IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAg
ICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlU2Nyb2xsWCIgOiAzNQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMiwKKyAgICAgICAgICAgICJrQ0dT
Y3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IDEsCisgICAgICAgICAgICAicmVsYXRp
dmVUaW1lTVMiIDogNDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGlu
dW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIg
OiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDog
MjQsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAg
ICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJl
bGF0aXZlVGltZU1TIiA6IDQ5LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAw
LCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IC0xLAorICAg
ICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZl
bnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBl
RmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA0NQor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNj
cm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhp
czIiIDogNCwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMx
IiA6IC0xLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDQ5LAorICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dT
Y3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxX
aGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDM3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0
aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDog
MjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJ
RFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA1NywKKyAgICAgICAg
ICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlU2Nyb2xsWSIgOiAtMywKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFz
ZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEs
CisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogNTcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDUsCisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAtMSwKKyAgICAgICAgICAgICJyZWxhdGl2
ZVRpbWVNUyIgOiA1NywKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51
b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6
IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiA1
NCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAg
ICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVs
YXRpdmVUaW1lTVMiIDogNjUsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAs
IDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFkiIDogLTUsCisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVu
dFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVG
aWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDgxCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Ny
b2xsQ291bnQiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlz
MiIgOiA5LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEi
IDogLTIsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNjUsCisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogOTIsCisgICAgICAgICAgICAid2luZG93TG9jYXRp
b24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAy
MgorICAgICAgICB9LAorICAgIF0pOworfQorCitOU1N0cmluZyAqY29tcGxldGVTd2lwZUJhY2tF
dmVudFN0cmVhbSgpCit7CisgICAgcmV0dXJuIFFVT1RFKFsKKyAgICAgICAgeworICAgICAgICAg
ICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRp
bWVNUyIgOiA3MywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIs
CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAtMywKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xs
R2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6
IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogNzUKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3Vu
dCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDEx
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogLTEs
CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNzMsCisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnRQb2ludERlbHRhQXhpczIiIDogMTA2LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6
ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAg
ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUi
IDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4MSwKKyAgICAgICAgICAgICJ3
aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0
dXJlU2Nyb2xsWSIgOiAtMywKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAy
LAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAg
ICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50
R2VzdHVyZVNjcm9sbFgiIDogODUKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDEzLAorICAgICAgICAgICAgImtDR1Njcm9sbFdo
ZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogLTEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1l
TVMiIDogODEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIg
OiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMTI3LAor
ICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAg
ICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2
ZVRpbWVNUyIgOiA4OSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAw
fSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAtMSwKKyAgICAgICAg
ICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Ny
b2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxk
IiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogOTEKKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxD
b3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6
IDE0LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDog
LTEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogODksCisgICAgICAgICAgICAia0NH
U2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRQb2ludERlbHRhQXhpczIiIDogMTM5LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9u
IiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIK
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5
cGUiIDogNiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA5NywKKyAgICAgICAgICAg
ICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlU2Nyb2xsWSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6
IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAg
ICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlU2Nyb2xsWCIgOiAxMzYKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtD
R1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDIwLAorICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRp
bWVNUyIgOiA5NywKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3Vz
IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAyMDQs
CisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAg
ICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0
aXZlVGltZU1TIiA6IDEwNSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwg
MzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiA1LAorICAgICAg
ICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRT
Y3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmll
bGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA5MgorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9s
bENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIi
IDogMTQsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIg
OiAyLAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEwNSwKKyAgICAgICAgICAgICJr
Q0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Ny
b2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMzYsCisgICAgICAgICAgICAid2luZG93TG9jYXRp
b24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAy
MgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElE
VHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDExMywKKyAgICAgICAg
ICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlU2Nyb2xsWSIgOiAxNCwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFz
ZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEs
CisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMTMzCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAg
ICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDE5MiwKKyAgICAgICAgICAg
ICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudERlbHRhQXhpczEiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXND
b250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTEzLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDE5LAorICAgICAgICAgICAgIndp
bmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IDcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEyMSwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9s
bEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5
cGUiIDogNiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogNCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
InJlbGF0aXZlVGltZU1TIiA6IDEyMSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURU
eXBlIiA6IDYyLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTdGFydEVuZFNlcmllc1R5cGUiIDogNiwKKyAgICAgICAg
ICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIKKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAg
ICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDEzOSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6
IDIyLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiA0LAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMQorICAgICAg
ICB9CisgICAgXSk7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29u
dHJvbGxlci5pZGwKaW5kZXggNWU2YzI2ZTYwZGIxNDgxYmY1OWJjYTczMTgyNDUwNzQ4Y2NmY2Mx
MS4uZGFlYzMwZTliMWJjNGQ0M2Q2YjFlMzM1ZTBmMTczNDE0NDViNzI1ZSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRD
b250cm9sbGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC04Myw2ICs4MywxMSBAQCBpbnRl
cmZhY2UgVUlTY3JpcHRDb250cm9sbGVyIHsKICAgICAvLyAgfQogICAgIHZvaWQgc2VuZEV2ZW50
U3RyZWFtKERPTVN0cmluZyBldmVudHNKU09OLCBvYmplY3QgY2FsbGJhY2spOwogCisgICAgdm9p
ZCBiZWdpbkJhY2tTd2lwZShvYmplY3QgY2FsbGJhY2spOworICAgIHZvaWQgY29tcGxldGVCYWNr
U3dpcGUob2JqZWN0IGNhbGxiYWNrKTsKKworICAgIHZvaWQgcGxheUJhY2tFdmVudFN0cmVhbShE
T01TdHJpbmcgZXZlbnRTdHJlYW0sIG9iamVjdCBjYWxsYmFjayk7CisKICAgICAvLyBFcXVpdmFs
ZW50IG9mIHByZXNzaW5nIHRoZSBEb25lIGJ1dHRvbiBpbiB0aGUgZm9ybSBhY2Nlc3NvcnkgYmFy
LgogICAgIHZvaWQgZGlzbWlzc0Zvcm1BY2Nlc3NvcnlWaWV3KCk7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5j
cHAgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRy
b2xsZXIuY3BwCmluZGV4IDVjNGNiYTU4MDllZjI0ZDIwY2FjNGIxN2JhODQ4YjYyMjNhOWE1NDMu
LmE2ODU0NDljZDU5MTkyM2EwNWI3MGI2Y2U5MjJiZjljMzA4YTgwMjkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5j
cHAKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRD
b250cm9sbGVyLmNwcApAQCAtMTM1LDYgKzEzNSwxMSBAQCBKU1ZhbHVlUmVmIFVJU2NyaXB0Q29u
dHJvbGxlcjo6ZGlkSGlkZUtleWJvYXJkQ2FsbGJhY2soKSBjb25zdAogICAgIHJldHVybiBtX2Nv
bnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZEhpZGVLZXlib2FyZCk7CiB9CiAK
K3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF5QmFja0V2ZW50U3RyZWFtKEpTU3RyaW5nUmVm
IHN0cmVhbSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBwbGF0Zm9ybVBsYXlCYWNrRXZl
bnRTdHJlYW0oc3RyZWFtLCBjYWxsYmFjayk7Cit9CisKICNpZiAhUExBVEZPUk0oSU9TKQogdm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXI6Onpvb21Ub1NjYWxlKGRvdWJsZSwgSlNWYWx1ZVJlZikKIHsK
QEAgLTI3Nyw2ICsyODIsMjMgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0
RGlkSGlkZUtleWJvYXJkQ2FsbGJhY2soKQogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRm
b3JtQ2xlYXJBbGxDYWxsYmFja3MoKQogewogfQorCisjZW5kaWYKKworI2lmICFQTEFURk9STShN
QUMpCisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZShKU1ZhbHVlUmVm
IGNhbGxiYWNrKQoreworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNr
U3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xs
ZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZikK
K3sKK30KKwogI2VuZGlmCiAKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjp1aVNjcmlwdENvbXBs
ZXRlKEpTU3RyaW5nUmVmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFy
ZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oIGIvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggMDg1YTdj
YTU4NTQ4MGMxMDM5Yzg0MzQ4MjNkYzFhMzk2NDFiODUwYi4uZjQ2YTI1ZDk3YzY5NWFhOGEzM2Y0
N2MwNTE0NzIyNTlmYWNlYTE2MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKQEAgLTgwLDYgKzgw
LDkgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgc2Nyb2xsVG9PZmZzZXQobG9uZyB4LCBsb25n
IHkpOwogCisgICAgdm9pZCBiZWdpbkJhY2tTd2lwZShKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKKyAg
ICB2b2lkIGNvbXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spOworCiAgICAgdm9p
ZCBzZXREaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayhKU1ZhbHVlUmVmKTsK
ICAgICBKU1ZhbHVlUmVmIGRpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKCkg
Y29uc3Q7CiAKQEAgLTEwMSw2ICsxMDQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREaWRFbmRT
Y3JvbGxpbmdDYWxsYmFjayhKU1ZhbHVlUmVmKTsKICAgICBKU1ZhbHVlUmVmIGRpZEVuZFNjcm9s
bGluZ0NhbGxiYWNrKCkgY29uc3Q7CiAKKyAgICB2b2lkIHBsYXlCYWNrRXZlbnRTdHJlYW0oSlNT
dHJpbmdSZWYgc3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKKwogICAgIGRvdWJsZSB6b29t
U2NhbGUoKSBjb25zdDsKICAgICBkb3VibGUgbWluaW11bVpvb21TY2FsZSgpIGNvbnN0OwogICAg
IGRvdWJsZSBtYXhpbXVtWm9vbVNjYWxlKCkgY29uc3Q7CkBAIC0xMjQsNiArMTI5LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHBsYXRmb3JtU2V0RGlkSGlkZUtleWJvYXJkQ2FsbGJhY2soKTsKICAg
ICB2b2lkIHBsYXRmb3JtU2V0RGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2soKTsKICAgICB2b2lkIHBs
YXRmb3JtQ2xlYXJBbGxDYWxsYmFja3MoKTsKKyAgICB2b2lkIHBsYXRmb3JtUGxheUJhY2tFdmVu
dFN0cmVhbShKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZik7CiAKICAgICBKU0NsYXNzUmVmIHdyYXBw
ZXJDbGFzcygpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL3Nw
aS9Db3JlR3JhcGhpY3NTUEkuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvc3BpL0NvcmVHcmFw
aGljc1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NWJlMDc0ODk5NGVmMmQ4NTU4ZTA1NjY2OTg3N2Y1MTU4
ZGZiMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL3NwaS9Db3Jl
R3JhcGhpY3NTUEkuaApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKKworI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NHRXZlbnRQcml2YXRlLmg+CisjaW1wb3J0IDxD
b3JlR3JhcGhpY3MvQ0dTRXZlbnQuaD4KKworI2Vsc2UKKworV1RGX0VYVEVSTl9DX0JFR0lOCisK
K3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHU0V2ZW50V2luZG93SURGaWVsZCA9IChDR0V2
ZW50RmllbGQpNTE7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR1NFdmVudFR5cGVGaWVs
ZCA9IChDR0V2ZW50RmllbGQpNTU7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50
R2VzdHVyZUhJRFR5cGUgPSAoQ0dFdmVudEZpZWxkKTExMDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50
RmllbGQga0NHRXZlbnRHZXN0dXJlSXNQcmVmbGlnaHQgPSAoQ0dFdmVudEZpZWxkKTExMTsKK3N0
YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlWm9vbVZhbHVlID0gKENHRXZl
bnRGaWVsZCkxMTM7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVJv
dGF0aW9uVmFsdWUgPSAoQ0dFdmVudEZpZWxkKTExNDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50Rmll
bGQga0NHRXZlbnRHZXN0dXJlU3dpcGVWYWx1ZSA9IChDR0V2ZW50RmllbGQpMTE1Oworc3RhdGlj
IGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcyA9IChD
R0V2ZW50RmllbGQpMTE2Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1
cmVTdGFydEVuZFNlcmllc1R5cGUgPSAoQ0dFdmVudEZpZWxkKTExNzsKK3N0YXRpYyBjb25zdCBD
R0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCA9IChDR0V2ZW50RmllbGQpMTE4Owor
c3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxZID0gKENHRXZl
bnRGaWVsZCkxMTk7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVNj
cm9sbFogPSAoQ0dFdmVudEZpZWxkKTEyMDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NH
RXZlbnRHZXN0dXJlU3dpcGVNb3Rpb24gPSAoQ0dFdmVudEZpZWxkKTEyMzsKK3N0YXRpYyBjb25z
dCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVQcm9ncmVzcyA9IChDR0V2ZW50Rmll
bGQpMTI0Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVBv
c2l0aW9uWCA9IChDR0V2ZW50RmllbGQpMTI1Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBr
Q0dFdmVudEdlc3R1cmVTd2lwZVBvc2l0aW9uWSA9IChDR0V2ZW50RmllbGQpMTI2Oworc3RhdGlj
IGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WCA9IChDR0V2
ZW50RmllbGQpMTI5Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVT
d2lwZVZlbG9jaXR5WSA9IChDR0V2ZW50RmllbGQpMTMwOworc3RhdGljIGNvbnN0IENHRXZlbnRG
aWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WiA9IChDR0V2ZW50RmllbGQpMTMxOwor
c3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVQaGFzZSA9IChDR0V2ZW50
RmllbGQpMTMyOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVNYXNr
ID0gKENHRXZlbnRGaWVsZCkxMzM7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50
R2VzdHVyZVN3aXBlTWFzayA9IChDR0V2ZW50RmllbGQpMTM0Oworc3RhdGljIGNvbnN0IENHRXZl
bnRGaWVsZCBrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyA9IChDR0V2ZW50RmllbGQpMTM1
Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudFN3aXBlR2VzdHVyZUZsYWdCaXRz
ID0gKENHRXZlbnRGaWVsZCkxMzY7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50
R2VzdHVyZUZsYXZvciA9IChDR0V2ZW50RmllbGQpMTM4Oworc3RhdGljIGNvbnN0IENHRXZlbnRG
aWVsZCBrQ0dFdmVudEdlc3R1cmVab29tRGVsdGFYID0gKENHRXZlbnRGaWVsZCkxMzk7CitzdGF0
aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVpvb21EZWx0YVkgPSAoQ0dFdmVu
dEZpZWxkKTE0MDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlUHJv
Z3Jlc3MgPSAoQ0dFdmVudEZpZWxkKTE0MjsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NH
RXZlbnRHZXN0dXJlU3RhZ2UgPSAoQ0dFdmVudEZpZWxkKTE0MzsKK3N0YXRpYyBjb25zdCBDR0V2
ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlQmVoYXZpb3IgPSAoQ0dFdmVudEZpZWxkKTE0NDsKK3N0
YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRUcmFuc2l0aW9uUHJvZ3Jlc3MgPSAoQ0dF
dmVudEZpZWxkKTE0NzsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRTdGFnZVBy
ZXNzdXJlID0gKENHRXZlbnRGaWVsZCkxNDg7CisKK2VudW0geworICAgIGtDR1NFdmVudFNjcm9s
bFdoZWVsID0gMjIsCisgICAga0NHU0V2ZW50Wm9vbSA9IDI4LAorICAgIGtDR1NFdmVudEdlc3R1
cmUgPSAyOSwKKyAgICBrQ0dTRXZlbnREb2NrQ29udHJvbCA9IDMwLAorICAgIGtDR1NFdmVudEZs
dWlkVG91Y2hHZXN0dXJlID0gMzEsCit9OwordHlwZWRlZiB1aW50MzJfdCBDR1NFdmVudFR5cGU7
CisKK2VudW0geworICAgIGtDR0hJREV2ZW50VHlwZUdlc3R1cmVTdGFydGVkID0gNjEsCisgICAg
a0NHSElERXZlbnRUeXBlR2VzdHVyZUVuZGVkID0gNjIsCit9OwordHlwZWRlZiB1aW50MzJfdCBD
R1NISURFdmVudFR5cGU7CisKK0NHUG9pbnQgQ0dFdmVudEdldFdpbmRvd0xvY2F0aW9uKENHRXZl
bnRSZWYpOwordm9pZCBDR0V2ZW50U2V0V2luZG93TG9jYXRpb24oQ0dFdmVudFJlZiwgQ0dQb2lu
dCk7CisKK1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL3NwaS9JT0tpdFNQSS5oIGIv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9zcGkvSU9LaXRTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43M2U0YjZl
MDRjMDdhN2UzN2IyMjk4MWRjNzEwNzYyYTQwZTg2NjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9zcGkvSU9LaXRTUEkuaApAQCAtMCwwICsxLDIwMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0IDx3dGYvUGxhdGZvcm0uaD4KKworI2lm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPElPS2l0L2hpZC9JT0hJREV2ZW50
Lmg+CisjaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURFdmVudERhdGEuaD4KKyNpbXBvcnQgPElPS2l0
L2hpZC9JT0hJREV2ZW50U3lzdGVtQ2xpZW50Lmg+CisjaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURV
c2FnZVRhYmxlcy5oPgorCisjZWxzZQorCitXVEZfRVhURVJOX0NfQkVHSU4KKworI2lmZGVmIF9f
TFA2NF9fCit0eXBlZGVmIGRvdWJsZSBJT0hJREZsb2F0OworI2Vsc2UKK3R5cGVkZWYgZmxvYXQg
SU9ISURGbG9hdDsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBrSU9ISURFdmVudE9wdGlvbk5vbmUg
PSAwLAorfTsKKwordHlwZWRlZiBVSW50MzIgSU9PcHRpb25CaXRzOwordHlwZWRlZiB1aW50MzJf
dCBJT0hJREV2ZW50T3B0aW9uQml0czsKK3R5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudEZpZWxk
OworCit0eXBlZGVmIHN0cnVjdCBfX0lPSElERXZlbnRTeXN0ZW1DbGllbnQgKiBJT0hJREV2ZW50
U3lzdGVtQ2xpZW50UmVmOwordHlwZWRlZiBzdHJ1Y3QgX19JT0hJREV2ZW50ICogSU9ISURFdmVu
dFJlZjsKKworI2RlZmluZSBJT0hJREV2ZW50RmllbGRCYXNlKHR5cGUpICh0eXBlIDw8IDE2KQor
CitlbnVtIHsKKyAgICBrSElEUGFnZV9LZXlib2FyZE9yS2V5cGFkICAgICAgID0gMHgwNywKKyAg
ICBrSElEUGFnZV9WZW5kb3JEZWZpbmVkU3RhcnQgICAgID0gMHhGRjAwCit9OworCitlbnVtIHsK
KyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFJhbmdlICAgICAgID0gMTw8MCwKKyAgICBrSU9ISURE
aWdpdGl6ZXJFdmVudFRvdWNoICAgICAgID0gMTw8MSwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVu
dFBvc2l0aW9uICAgID0gMTw8MiwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudElkZW50aXR5ICAg
ID0gMTw8NSwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudEF0dHJpYnV0ZSAgID0gMTw8NiwKKyAg
ICBrSU9ISUREaWdpdGl6ZXJFdmVudENhbmNlbCAgICAgID0gMTw8NywKKyAgICBrSU9ISUREaWdp
dGl6ZXJFdmVudFN0YXJ0ICAgICAgID0gMTw8OCwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudEVz
dGltYXRlZEFsdGl0dWRlID0gMTw8MjgsCisgICAga0lPSElERGlnaXRpemVyRXZlbnRFc3RpbWF0
ZWRBemltdXRoID0gMTw8MjksCisgICAga0lPSElERGlnaXRpemVyRXZlbnRFc3RpbWF0ZWRQcmVz
c3VyZSA9IDE8PDMwCit9OwordHlwZWRlZiB1aW50MzJfdCBJT0hJRERpZ2l0aXplckV2ZW50TWFz
azsKKworZW51bSB7CisgICAga0lPSElERGlnaXRpemVyRXZlbnRVcGRhdGVBbHRpdHVkZU1hc2sg
PSAxPDwyOCwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFVwZGF0ZUF6aW11dGhNYXNrID0gMTw8
MjksCisgICAga0lPSElERGlnaXRpemVyRXZlbnRVcGRhdGVQcmVzc3VyZU1hc2sgPSAxPDwzMAor
fTsKKworZW51bSB7CisgICAga0lPSElERXZlbnRUeXBlTlVMTCwKKyAgICBrSU9ISURFdmVudFR5
cGVWZW5kb3JEZWZpbmVkLAorICAgIGtJT0hJREV2ZW50VHlwZUtleWJvYXJkID0gMywKKyAgICBr
SU9ISURFdmVudFR5cGVSb3RhdGlvbiA9IDUsCisgICAga0lPSElERXZlbnRUeXBlU2Nyb2xsID0g
NiwKKyAgICBrSU9ISURFdmVudFR5cGVab29tID0gOCwKKyAgICBrSU9ISURFdmVudFR5cGVEaWdp
dGl6ZXIgPSAxMSwKKyAgICBrSU9ISURFdmVudFR5cGVOYXZpZ2F0aW9uU3dpcGUgPSAxNiwKKyAg
ICBrSU9ISURFdmVudFR5cGVGb3JjZSA9IDMyLAorCit9OwordHlwZWRlZiB1aW50MzJfdCBJT0hJ
REV2ZW50VHlwZTsKKworZW51bSB7CisgICAga0lPSElERXZlbnRGaWVsZFZlbmRvckRlZmluZWRV
c2FnZVBhZ2UgPSBJT0hJREV2ZW50RmllbGRCYXNlKGtJT0hJREV2ZW50VHlwZVZlbmRvckRlZmlu
ZWQpLAorICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkUmVzZXJ2ZWQsCisgICAga0lP
SElERXZlbnRGaWVsZFZlbmRvckRlZmluZWRSZXNlcnZlZDEsCisgICAga0lPSElERXZlbnRGaWVs
ZFZlbmRvckRlZmluZWREYXRhTGVuZ3RoLAorICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZp
bmVkRGF0YQorfTsKKworZW51bSB7CisgICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplclggPSBJ
T0hJREV2ZW50RmllbGRCYXNlKGtJT0hJREV2ZW50VHlwZURpZ2l0aXplciksCisgICAga0lPSElE
RXZlbnRGaWVsZERpZ2l0aXplclksCisgICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplck1ham9y
UmFkaXVzID0ga0lPSElERXZlbnRGaWVsZERpZ2l0aXplclggKyAyMCwKKyAgICBrSU9ISURFdmVu
dEZpZWxkRGlnaXRpemVyTWlub3JSYWRpdXMsCisgICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXpl
cklzRGlzcGxheUludGVncmF0ZWQgPSBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyTWFqb3JSYWRp
dXMgKyA1LAorfTsKKworZW51bSB7CisgICAga0lPSElEVHJhbnNkdWNlclJhbmdlICAgICAgICAg
ICAgICAgPSAweDAwMDEwMDAwLAorICAgIGtJT0hJRFRyYW5zZHVjZXJUb3VjaCAgICAgICAgICAg
ICAgID0gMHgwMDAyMDAwMCwKKyAgICBrSU9ISURUcmFuc2R1Y2VySW52ZXJ0ICAgICAgICAgICAg
ICA9IDB4MDAwNDAwMDAsCisgICAga0lPSElEVHJhbnNkdWNlckRpc3BsYXlJbnRlZ3JhdGVkICAg
PSAweDAwMDgwMDAwCit9OworCitlbnVtIHsKKyAgICBrSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2Vy
VHlwZVN0eWx1cyAgPSAwLAorICAgIGtJT0hJRERpZ2l0aXplclRyYW5zZHVjZXJUeXBlRmluZ2Vy
ID0gMiwKKyAgICBrSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZUhhbmQgPSAzCit9OwordHlw
ZWRlZiB1aW50MzJfdCBJT0hJRERpZ2l0aXplclRyYW5zZHVjZXJUeXBlOworCitlbnVtIHsKKyAg
ICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyV2lsbFVwZGF0ZU1hc2sgPSA3MjA5MjQsCisgICAg
a0lPSElERXZlbnRGaWVsZERpZ2l0aXplckRpZFVwZGF0ZU1hc2sgPSA3MjA5MjUKK307CisKK0lP
SElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZURpZ2l0aXplckV2ZW50KENGQWxsb2NhdG9yUmVm
LCB1aW50NjRfdCwgSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZSwgdWludDMyX3QsIHVpbnQz
Ml90LCBJT0hJRERpZ2l0aXplckV2ZW50TWFzaywgdWludDMyX3QsIElPSElERmxvYXQsIElPSElE
RmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIGJvb2xlYW5fdCwgYm9v
bGVhbl90LCBJT09wdGlvbkJpdHMpOworCitJT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVE
aWdpdGl6ZXJGaW5nZXJFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIHVpbnQzMl90LCB1
aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIElPSElERmxvYXQsIElPSElERmxvYXQs
IElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIGJvb2xlYW5fdCwgYm9vbGVhbl90
LCBJT0hJREV2ZW50T3B0aW9uQml0cyk7CisKK0lPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0
ZUZvcmNlRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgSU9ISURGbG9h
dCwgdWludDMyX3QsIElPSElERmxvYXQsIElPSElERXZlbnRPcHRpb25CaXRzKTsKKworSU9ISURF
dmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlS2V5Ym9hcmRFdmVudChDRkFsbG9jYXRvclJlZiwgdWlu
dDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgYm9vbGVhbl90LCBJT09wdGlvbkJpdHMpOworCitJ
T0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVWZW5kb3JEZWZpbmVkRXZlbnQoQ0ZBbGxvY2F0
b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50OF90Kiwg
Q0ZJbmRleCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOworCitJT0hJREV2ZW50UmVmIElPSElERXZl
bnRDcmVhdGVEaWdpdGl6ZXJTdHlsdXNFdmVudFdpdGhQb2xhck9yaWVudGF0aW9uKENGQWxsb2Nh
dG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90LCBJT0hJRERpZ2l0aXplckV2ZW50
TWFzaywgdWludDMyX3QsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElE
RmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIGJv
b2xlYW5fdCwgYm9vbGVhbl90LCBJT0hJREV2ZW50T3B0aW9uQml0cyk7CisKK0lPSElERXZlbnRU
eXBlIElPSElERXZlbnRHZXRUeXBlKElPSElERXZlbnRSZWYpOworCit2b2lkIElPSElERXZlbnRT
ZXRGbG9hdFZhbHVlKElPSElERXZlbnRSZWYsIElPSElERXZlbnRGaWVsZCwgSU9ISURGbG9hdCk7
CisKK0NGSW5kZXggSU9ISURFdmVudEdldEludGVnZXJWYWx1ZShJT0hJREV2ZW50UmVmLCBJT0hJ
REV2ZW50RmllbGQpOwordm9pZCBJT0hJREV2ZW50U2V0SW50ZWdlclZhbHVlKElPSElERXZlbnRS
ZWYsIElPSElERXZlbnRGaWVsZCwgQ0ZJbmRleCk7CisKK3ZvaWQgSU9ISURFdmVudEFwcGVuZEV2
ZW50KElPSElERXZlbnRSZWYsIElPSElERXZlbnRSZWYsIElPT3B0aW9uQml0cyk7CisKK0lPSElE
RXZlbnRTeXN0ZW1DbGllbnRSZWYgSU9ISURFdmVudFN5c3RlbUNsaWVudENyZWF0ZShDRkFsbG9j
YXRvclJlZik7CisKKyNkZWZpbmUga0dTRXZlbnRQYXRoSW5mb0luUmFuZ2UgKDEgPDwgMCkKKyNk
ZWZpbmUga0dTRXZlbnRQYXRoSW5mb0luVG91Y2ggKDEgPDwgMSkKKworZW51bSB7CisgICAga0hJ
RFVzYWdlX0tleWJvYXJkQSA9IDB4MDQsCisgICAga0hJRFVzYWdlX0tleWJvYXJkMSA9IDB4MUUs
CisgICAga0hJRFVzYWdlX0tleWJvYXJkMiA9IDB4MUYsCisgICAga0hJRFVzYWdlX0tleWJvYXJk
MyA9IDB4MjAsCisgICAga0hJRFVzYWdlX0tleWJvYXJkNCA9IDB4MjEsCisgICAga0hJRFVzYWdl
X0tleWJvYXJkNSA9IDB4MjIsCisgICAga0hJRFVzYWdlX0tleWJvYXJkNiA9IDB4MjMsCisgICAg
a0hJRFVzYWdlX0tleWJvYXJkNyA9IDB4MjQsCisgICAga0hJRFVzYWdlX0tleWJvYXJkOCA9IDB4
MjUsCisgICAga0hJRFVzYWdlX0tleWJvYXJkOSA9IDB4MjYsCisgICAga0hJRFVzYWdlX0tleWJv
YXJkMCA9IDB4MjcsCisgICAga0hJRFVzYWdlX0tleWJvYXJkUmV0dXJuT3JFbnRlciA9IDB4Mjgs
CisgICAga0hJRFVzYWdlX0tleWJvYXJkRXNjYXBlID0gMHgyOSwKKyAgICBrSElEVXNhZ2VfS2V5
Ym9hcmREZWxldGVPckJhY2tzcGFjZSA9IDB4MkEsCisgICAga0hJRFVzYWdlX0tleWJvYXJkVGFi
ID0gMHgyQiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRTcGFjZWJhciA9IDB4MkMsCisgICAga0hJ
RFVzYWdlX0tleWJvYXJkSHlwaGVuID0gMHgyRCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRFcXVh
bFNpZ24gPSAweDJFLAorICAgIGtISURVc2FnZV9LZXlib2FyZE9wZW5CcmFja2V0ID0gMHgyRiwK
KyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRDbG9zZUJyYWNrZXQgPSAweDMwLAorICAgIGtISURVc2Fn
ZV9LZXlib2FyZEJhY2tzbGFzaCA9IDB4MzEsCisgICAga0hJRFVzYWdlX0tleWJvYXJkU2VtaWNv
bG9uID0gMHgzMywKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRRdW90ZSA9IDB4MzQsCisgICAga0hJ
RFVzYWdlX0tleWJvYXJkR3JhdmVBY2NlbnRBbmRUaWxkZSA9IDB4MzUsCisgICAga0hJRFVzYWdl
X0tleWJvYXJkQ29tbWEgPSAweDM2LAorICAgIGtISURVc2FnZV9LZXlib2FyZFBlcmlvZCA9IDB4
MzcsCisgICAga0hJRFVzYWdlX0tleWJvYXJkU2xhc2ggPSAweDM4LAorICAgIGtISURVc2FnZV9L
ZXlib2FyZEYxID0gMHgzQSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRIb21lID0gMHg0QSwKKyAg
ICBrSElEVXNhZ2VfS2V5Ym9hcmRQYWdlVXAgPSAweDRCLAorICAgIGtISURVc2FnZV9LZXlib2Fy
ZEVuZCA9IDB4NEQsCisgICAga0hJRFVzYWdlX0tleWJvYXJkUmlnaHRBcnJvdyA9IDB4NEYsCisg
ICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdEFycm93ID0gMHg1MCwKKyAgICBrSElEVXNhZ2VfS2V5
Ym9hcmREb3duQXJyb3cgPSAweDUxLAorICAgIGtISURVc2FnZV9LZXlib2FyZFVwQXJyb3cgPSAw
eDUyLAorICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRDb250cm9sID0gMHhFMCwKKyAgICBrSElE
VXNhZ2VfS2V5Ym9hcmRMZWZ0U2hpZnQgPSAweEUxLAorICAgIGtISURVc2FnZV9LZXlib2FyZExl
ZnRBbHQgPSAweEUyCit9OworCitXVEZfRVhURVJOX0NfRU5ECisKKyNlbmRpZiAvLyBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVu
dFNlbmRlclByb3h5LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHku
aAppbmRleCA3MGQ5NDAxNGM4ZDc1MGNiN2Q2NTcwODA0NTI4ZTIwOGNjMmY0YTU0Li4yNGYyN2Iy
ODkxN2MwZTM0Y2I3ZGViNzM2OTU5MDM3N2JhN2JlZDYxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0V2ZW50U2VuZGVyUHJveHkuaApAQCAtNzEsNyArNzEsNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBtb3VzZU1vdmVUbyhkb3VibGUgeCwgZG91YmxlIHkpOwogICAgIHZvaWQgbW91c2VTY3JvbGxC
eShpbnQgeCwgaW50IHkpOwogICAgIHZvaWQgbW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50IHBoYXNlLCBpbnQgbW9tZW50dW0pOwotICAgIHZv
aWQgc3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBp
bnQgcGhhc2UsIGludCBtb21lbnR1bSk7CiAgICAgdm9pZCBjb250aW51b3VzTW91c2VTY3JvbGxC
eShpbnQgeCwgaW50IHksIGJvb2wgcGFnZWQpOwogCiAgICAgdm9pZCBsZWFwRm9yd2FyZChpbnQg
bWlsbGlzZWNvbmRzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIuaWRsCmluZGV4IGYzMjgwYmI5NGIwNTQzNzAyNDMwMjNlMjUzMzZkZTFhZmFlNzkzOWYuLmQ1
YjgwMzg0NTllNzZiOTg5MTQ5OThjNjA5YjZmMzYxNjc0MDdkODEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29u
dHJvbGxlci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbApAQCAtMzQsNyArMzQsNiBAQCBpbnRl
cmZhY2UgRXZlbnRTZW5kaW5nQ29udHJvbGxlciB7CiAgICAgdm9pZCBtb3VzZUZvcmNlQ2hhbmdl
ZChkb3VibGUgZm9yY2UpOwogICAgIHZvaWQgbW91c2VTY3JvbGxCeShsb25nIHgsIGxvbmcgeSk7
CiAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMobG9uZyB4
LCBsb25nIHksIERPTVN0cmluZyBwaGFzZSwgRE9NU3RyaW5nIG1vbWVudHVtKTsKLSAgICB2b2lk
IHN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGxvbmcgeCwgbG9uZyB5LCBE
T01TdHJpbmcgcGhhc2UsIERPTVN0cmluZyBtb21lbnR1bSk7CiAgICAgdm9pZCBjb250aW51b3Vz
TW91c2VTY3JvbGxCeShsb25nIHgsIGxvbmcgeSwgb3B0aW9uYWwgYm9vbGVhbiBwYWdlZCk7CiAg
ICAgb2JqZWN0IGNvbnRleHRDbGljaygpOwogICAgIHZvaWQgc2NoZWR1bGVBc3luY2hyb25vdXND
bGljaygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAKaW5kZXggM2U4MWRiOWQzMjk0
NzMzMjBmNDJkYzA5Nzk4NjJlYjdkMGUxNmNkNy4uNzdlZDZjZDdjMmUyMTMzYjk2NDlkOThmZjE4
MDcyOGFiM2YzNmMwNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwCkBAIC00ODMs
MzggKzQ4Myw2IEBAIHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQKICAgICBXS0J1bmRsZVBhZ2VQb3N0
TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIEV2ZW50
U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCkpOwog
fQogCi12b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6OnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgSlNTdHJpbmdSZWYgcGhhc2VTdHIsIEpTU3Ry
aW5nUmVmIG1vbWVudHVtU3RyKQotewotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBFdmVu
dFNlbmRlck1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJFdmVudFNlbmRlciIpKTsKLSAgICBXS1JldGFpblB0cjxXS011dGFibGVEaWN0aW9uYXJ5UmVm
PiBFdmVudFNlbmRlck1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLTXV0YWJsZURpY3Rpb25hcnlDcmVh
dGUoKSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc3ViTWVzc2FnZUtleShBZG9w
dFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3ViTWVzc2FnZSIpKTsKLSAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc3ViTWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIlN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzIikpOwotICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5n
ZXQoKSwgc3ViTWVzc2FnZUtleS5nZXQoKSwgc3ViTWVzc2FnZU5hbWUuZ2V0KCkpOwotCi0gICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHhLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIlgiKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tEb3VibGVSZWY+IHhSZWYoQWRv
cHRXSywgV0tEb3VibGVDcmVhdGUoeCkpOwotICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oRXZlbnRT
ZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgeEtleS5nZXQoKSwgeFJlZi5nZXQoKSk7Ci0KLSAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4geUtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiWSIpKTsKLSAgICBXS1JldGFpblB0cjxXS0RvdWJsZVJlZj4geVJlZihBZG9w
dFdLLCBXS0RvdWJsZUNyZWF0ZSh5KSk7Ci0gICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShFdmVudFNl
bmRlck1lc3NhZ2VCb2R5LmdldCgpLCB5S2V5LmdldCgpLCB5UmVmLmdldCgpKTsKLQotICAgIHVp
bnQ2NF90IHBoYXNlID0gY2dFdmVudFBoYXNlRnJvbVN0cmluZyhwaGFzZVN0cik7Ci0gICAgdWlu
dDY0X3QgbW9tZW50dW0gPSBjZ0V2ZW50TW9tZW50dW1QaGFzZUZyb21TdHJpbmcobW9tZW50dW1T
dHIpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHBoYXNlS2V5KEFkb3B0V0ssIFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJQaGFzZSIpKTsKLSAgICBXS1JldGFpblB0cjxX
S1VJbnQ2NFJlZj4gcGhhc2VSZWYoQWRvcHRXSywgV0tVSW50NjRDcmVhdGUocGhhc2UpKTsKLSAg
ICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCksIHBoYXNl
S2V5LmdldCgpLCBwaGFzZVJlZi5nZXQoKSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gbW9tZW50dW1LZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIk1v
bWVudHVtIikpOwotICAgIFdLUmV0YWluUHRyPFdLVUludDY0UmVmPiBtb21lbnR1bVJlZihBZG9w
dFdLLCBXS1VJbnQ2NENyZWF0ZShtb21lbnR1bSkpOwotICAgIFdLRGljdGlvbmFyeVNldEl0ZW0o
RXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgbW9tZW50dW1LZXkuZ2V0KCksIG1vbWVudHVt
UmVmLmdldCgpKTsKLQotICAgIFdLQnVuZGxlUGFnZUZvcmNlUmVwYWludChJbmplY3RlZEJ1bmRs
ZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCkpOyAvLyBUcmlnZ2VycyBhIHNjcm9sbGluZyB0
cmVlIGNvbW1pdC4KLSAgICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6
c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCks
IEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCkpOwotfQotCiB2b2lkIEV2ZW50U2VuZGluZ0Nv
bnRyb2xsZXI6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSwgYm9vbCBwYWdl
ZCkKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gRXZlbnRTZW5kZXJNZXNzYWdlTmFt
ZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRXZlbnRTZW5kZXIiKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50
U2VuZGluZ0NvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oCmluZGV4IGMyM2MzNmRmYWM1NTg0Zjg1MWM1ZjYw
ZmI0ZDU2MjJjZmY0MjAwNGEuLjI4ZmNlOWNlNmNiZTU3YzNmZjhlOGY5ODNlYmM0MmI0ZTA4YjBk
MmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZl
bnRTZW5kaW5nQ29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oCkBAIC01Myw3ICs1Myw2IEBAIHB1Ymxp
YzoKICAgICB2b2lkIG1vdXNlRm9yY2VDaGFuZ2VkKGRvdWJsZSBmb3JjZSk7CiAgICAgdm9pZCBt
b3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSk7CiAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBKU1N0cmluZ1JlZiBwaGFzZSwgSlNT
dHJpbmdSZWYgbW9tZW50dW0pOwotICAgIHZvaWQgc3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBKU1N0cmluZ1JlZiBwaGFzZSwgSlNTdHJpbmdSZWYg
bW9tZW50dW0pOwogICAgIHZvaWQgY29udGludW91c01vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5
LCBib29sIHBhZ2VkKTsKICAgICBKU1ZhbHVlUmVmIGNvbnRleHRDbGljaygpOwogICAgIHZvaWQg
bGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9FdmVudFNlbmRlclByb3h5SU9TLm1tIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlP
Uy5tbQppbmRleCBhYzU0YTFjNmQ2ZDhjMmM1MGUwODFkYjViZGI4MjFkM2U2MDhlYzJkLi5jYWIz
ZjE4YjM2NTlmNDkxNmJkNTAwODc5Mjg2ZDZhMjdjMGM5ZjkxIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9FdmVudFNlbmRlclByb3h5SU9TLm1t
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2Vu
ZGVyUHJveHlJT1MubW0KQEAgLTEwMywxMSArMTAzLDYgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5
Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBp
bnQKICAgICAvLyBXcml0ZSBtZS4KIH0KIAotdm9pZCBFdmVudFNlbmRlclByb3h5Ojpzd2lwZUdl
c3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQsIGludCwgaW50LCBpbnQpCi17Ci0g
ICAgLy8gV3JpdGUgbWUuCi19Ci0KIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6Y29udGludW91c01v
dXNlU2Nyb2xsQnkoaW50IHgsIGludCB5LCBib29sIHBhZ2VkKQogewogICAgIC8vIFdyaXRlIG1l
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCAyMGM1M2U0
MWEyZWJiZjg4N2FlMzY1MmM1MTE2MDk1ODMyY2U3ZjEwLi5kNzAxM2U2ZTcyNmU1NjgyNWFmYTY0
MjJmMGI0NDE4OGUxZDg2OTNiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcApAQCAtMTI1NCwyMyArMTI1NCw2IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZFJl
Y2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhzdWJNZXNzYWdlTmFtZSwgIlN3aXBlR2VzdHVyZVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzIikpIHsKLSAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiB4S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWCIpKTsKLSAg
ICAgICAgICAgIGRvdWJsZSB4ID0gV0tEb3VibGVHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0RvdWJs
ZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHhL
ZXkuZ2V0KCkpKSk7Ci0KLSAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB5S2V5
ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWSIpKTsKLSAgICAgICAg
ICAgIGRvdWJsZSB5ID0gV0tEb3VibGVHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4o
V0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHlLZXkuZ2V0
KCkpKSk7Ci0KLSAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBwaGFzZUtleSA9
IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlBoYXNlIikpOwotICAgICAg
ICAgICAgaW50IHBoYXNlID0gc3RhdGljX2Nhc3Q8aW50PihXS1VJbnQ2NEdldFZhbHVlKHN0YXRp
Y19jYXN0PFdLVUludDY0UmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5
RGljdGlvbmFyeSwgcGhhc2VLZXkuZ2V0KCkpKSkpOwotICAgICAgICAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IG1vbWVudHVtS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiTW9tZW50dW0iKSk7Ci0gICAgICAgICAgICBpbnQgbW9tZW50dW0gPSBzdGF0aWNf
Y2FzdDxpbnQ+KFdLVUludDY0R2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+KFdLRGlj
dGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBtb21lbnR1bUtleS5n
ZXQoKSkpKSk7Ci0KLSAgICAgICAgICAgIG1fZXZlbnRTZW5kZXJQcm94eS0+c3dpcGVHZXN0dXJl
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoeCwgeSwgcGhhc2UsIG1vbWVudHVtKTsKLQotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRl
c3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDlkYjk4
ZWE5ZTA5Yjk5YTZmYzdhMTcwZTllMDQwZjQ2NmIyYTQ1MDAuLjUxZmQyNWE1NzZhNTJiNmY5Yzhl
ZjI5ZDBiM2JlZTZkN2RhMDRhZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
V2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC02Myw2ICs2MywxMSBAQAogCQkyOUE4RkNERDE0NUYwMzM3MDA5MDQ1QTYgLyogSlNBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI5QThGQ0UxMzQ1RTcwMjEwMDZBQTVBNiAvKiBKU0FjY2Vzc2li
aWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwICovOyB9OwogCQkyOUE4RkNFMjE0NUYwMzdCMDA5MDQ1
QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4RkNFMTE0NUYwMzdCMDA5MDQ1QTYgLyog
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHAgKi87IH07CiAJCTI5QThGQ0U1MTQ1RjA0
NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBOEZDRTQxNDVGMDQ2NDAw
OTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0gKi87IH07CisJCTJE
QjYxODdFMUQ3RDU4RDQwMDk3OEQxOSAvKiBDb3JlR3JhcGhpY3NTUEkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQjYxODdEMUQ3RDU4RDQwMDk3OEQx
OSAvKiBDb3JlR3JhcGhpY3NTUEkuaCAqLzsgfTsKKwkJMkRENEM0OUExRDZFN0QzQjAwMDczNzlD
IC8qIEV2ZW50U2VyaWFsaXplck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkRENEM0OTgxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXpl
ck1hYy5oICovOyB9OworCQkyREQ0QzQ5QjFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxp
emVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkRENEM0OTkxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5tbSAqLzsgfTsK
KwkJMkRGQTk4NDgxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRGQTk4NDYxRDdG
NzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5oICovOyB9OworCQkyREZBOTg0
OTFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRGQTk4NDcxRDdGNzBDRjAwQUZG
MkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSAqLzsgfTsKIAkJMkUzNEM5MDAxOEI2ODgw
ODAwMDA2N0JCIC8qIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5idW5kbGUgaW4gQ29w
eSBQbHVnLUlucyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzI1MTg2MjEx
RDE1RDU0MDAyRUJDMDEgLyogV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlLmJ1bmRsZSAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChDb2RlU2lnbk9uQ29weSwgUmVtb3ZlSGVhZGVy
c09uQ29weSwgKTsgfTsgfTsKIAkJMkU2M0VEOEExODkxQUQ3RTAwMkE3QUZDIC8qIEFjY2Vzc2li
aWxpdHlDb250cm9sbGVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkU2M0VENzUxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVySU9TLm1tICovOyB9OwogCQkyRTYzRUQ4QjE4OTFBRDdFMDAyQTdBRkMgLyogQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRTYzRUQ3NzE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJJT1MubW0gKi87IH07CkBAIC0yMTEsNyArMjE2LDcgQEAKIAkJMEZFQjkwQTMxOTA1
QkM2QTAwMEZEQkYzIC8qIENyYXNoUmVwb3J0ZXJJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBuYW1lID0gQ3Jhc2hSZXBvcnRlckluZm8ubW07IHBhdGggPSBjb2NvYS9D
cmFzaFJlcG9ydGVySW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQkY4
NTgxQkI2MURGMjAwMjg3MjJEIC8qIEhJREV2ZW50R2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEhJREV2ZW50R2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGRUJGODU5MUJCNjFERjIwMDI4NzIyRCAvKiBISURFdmVudEdlbmVyYXRv
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEhJREV2ZW50R2Vu
ZXJhdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRkVCRjg1QjFCQjYyQTM3
MDAyODcyMkQgLyogSU9LaXRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSU9LaXRTUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZFQkY4NUIxQkI2MkEzNzAwMjg3MjJEIC8qIElPS2l0
U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElPS2l0U1BJLmg7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hh
cmVkL3NwaS9JT0tpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVCRjg1
QzFCQjYyRDQ2MDAyODcyMkQgLyogVUlLaXRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVUlLaXRTUEku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzMzI2MDUxQjc1Mzk2NTAwRjg5RjYy
IC8qIFRlc3RPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlc3RPcHRpb25zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQTIxMUM3MUJDQTEwNzMwMEIyMTAxRiAvKiBGb250V2l0
aEZlYXR1cmVzLm90ZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IGZpbGU7IHBhdGggPSBGb250V2l0aEZlYXR1cmVzLm90Zjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTI0MCw3ICsyNDUsMTIgQEAKIAkJMjlBOEZDRTEzNDVFNzAyMTAwNkFB
NUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4RkNFMTM0NUU3MDIxMDA2QUE1QTcg
LyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyOUE4RkNFNDE0NUYwNDY0MDA5MDQ1QTYgLyogQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTJEQjYxODdEMUQ3RDU4RDQwMDk3OEQxOSAvKiBDb3JlR3JhcGhp
Y3NTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29yZUdyYXBoaWNzU1BJ
Lmg7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL3NwaS9Db3JlR3JhcGhpY3NTUEkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRDRTJDRDExQjg0NTI0NTAwQzdGODMyIC8qIFRl
c3RDb250cm9sbGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5h
bWUgPSBUZXN0Q29udHJvbGxlckNvY29hLm1tOyBwYXRoID0gY29jb2EvVGVzdENvbnRyb2xsZXJD
b2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRENEM0OTgxRDZFN0QzQjAw
MDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBFdmVudFNlcmlhbGl6ZXJNYWMuaDsgcGF0aCA9IG1hYy9FdmVudFNlcmlhbGl6ZXJN
YWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRENEM0OTkxRDZFN0QzQjAwMDcz
NzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IEV2ZW50U2VyaWFsaXplck1hYy5tbTsgcGF0aCA9IG1hYy9FdmVudFNlcmlh
bGl6ZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJERkE5ODQ2MUQ3Rjcw
Q0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmg7IHBhdGggPSBtYWMvU2hhcmVk
RXZlbnRTdHJlYW1zTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJERkE5ODQ3
MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBTaGFyZWRFdmVudFN0cmVhbXNNYWMubW07IHBh
dGggPSBtYWMvU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyRTYzRUQ3NTE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU2
M0VENzYxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25IYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNjNFRDc3MTg5
MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9T
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDc2LDcgKzQ4Niw5IEBACiAJCTBG
NzNCNTQ3MUJBNzgyRkUwMDRCM0VGNCAvKiBVSVNjcmlwdENvbnRleHQgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJEQjYxODdGMUQ3RDU5ODgwMDk3OEQx
OSAvKiBzcGkgKi8sCiAJCQkJMEY3M0I1NEIxQkE3ODM1MDAwNEIzRUY0IC8qIEJpbmRpbmdzICov
LAorCQkJCTJERDRDNDk3MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudCBTZXJpYWxpemF0aW9uICov
LAogCQkJCTBGNzNCNTRFMUJBNzg5NTQwMDRCM0VGNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJ
CQkJMEYxOEU2REQxRDZCOUFBRjAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udGV4dC5jcHAgKi8sCiAJ
CQkJMEYxOEU2REUxRDZCOUFBRjAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udGV4dC5oICovLApAQCAt
NTU0LDYgKzU2NiwzNSBAQAogCQkJbmFtZSA9IEFjY2Vzc2liaWxpdHk7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwogCQl9OworCQkyREI2MTg3RjFEN0Q1OTg4MDA5NzhEMTkgLyogc3BpICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkyREI2MTg3RDFE
N0Q1OEQ0MDA5NzhEMTkgLyogQ29yZUdyYXBoaWNzU1BJLmggKi8sCisJCQkJMEZFQkY4NUIxQkI2
MkEzNzAwMjg3MjJEIC8qIElPS2l0U1BJLmggKi8sCisJCQkpOworCQkJbmFtZSA9IHNwaTsKKwkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTJERDRDNDk3MUQ2RTdEM0IwMDA3Mzc5
QyAvKiBFdmVudCBTZXJpYWxpemF0aW9uICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQkyREZBOTg0QTFEN0Y3OUUwMDBBRkYyQzkgLyogbWFjICovLAorCQkJ
KTsKKwkJCW5hbWUgPSAiRXZlbnQgU2VyaWFsaXphdGlvbiI7CisJCQlwYXRoID0gLi4vVGVzdFJ1
bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb247CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OworCQl9OworCQkyREZBOTg0QTFEN0Y3OUUwMDBBRkYyQzkgLyogbWFjICovID0geworCQkJaXNh
ID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkyREQ0QzQ5ODFENkU3RDNCMDAwNzM3
OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLmggKi8sCisJCQkJMkRENEM0OTkxRDZFN0QzQjAwMDcz
NzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5tbSAqLywKKwkJCQkyREZBOTg0NjFEN0Y3MENGMDBB
RkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggKi8sCisJCQkJMkRGQTk4NDcxRDdGNzBD
RjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSAqLywKKwkJCSk7CisJCQluYW1l
ID0gbWFjOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMkU2M0VENzQxODkx
QUNFOTAwMkE3QUZDIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCkBAIC01OTEsNyArNjMyLDYgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTBGRUJGODU4
MUJCNjFERjIwMDI4NzIyRCAvKiBISURFdmVudEdlbmVyYXRvci5oICovLAogCQkJCTBGRUJGODU5
MUJCNjFERjIwMDI4NzIyRCAvKiBISURFdmVudEdlbmVyYXRvci5tbSAqLywKLQkJCQkwRkVCRjg1
QjFCQjYyQTM3MDAyODcyMkQgLyogSU9LaXRTUEkuaCAqLywKIAkJCQkyRUU1MkQxMzE4OTBBOUZC
MDAxMEVEMjEgLyogUGxhdGZvcm1XZWJWaWV3SU9TLm1tICovLAogCQkJCTJFRTUyRDE0MTg5MEE5
RkIwMDEwRUQyMSAvKiBUZXN0Q29udHJvbGxlcklPUy5tbSAqLywKIAkJCQkwRkVCRjg1QzFCQjYy
RDQ2MDAyODcyMkQgLyogVUlLaXRTUEkuaCAqLywKQEAgLTc3OCw3ICs4MTgsMTAgQEAKIAkJCWlz
YSA9IFBCWEhlYWRlcnNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKIAkJCWZpbGVzID0gKAorCQkJCTJEQjYxODdFMUQ3RDU4RDQwMDk3OEQxOSAvKiBDb3JlR3Jh
cGhpY3NTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzNCNTUyMUJBNzg5NjgwMDRCM0VGNCAv
KiBKU1VJU2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkRGQTk4NDgxRDdG
NzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMkRENEM0OUExRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC05ODYsOCArMTAyOSwxMCBAQAogCQkJCTBGNzNCNTUxMUJBNzg5NjgwMDRC
M0VGNCAvKiBKU1VJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjE4
RTcxODFENkJDNDU2MDAyN0U1NDcgLyogSlNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUExODUxMDNDMUI5QUUwRkUwMDc0NEFFQiAvKiBPcHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTJERDRDNDlCMUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudFNlcmlhbGl6ZXJNYWMubW0gaW4g
U291cmNlcyAqLywKIAkJCQlBMTg1MTA0MDFCOUFFMTMxMDA3NDRBRUIgLyogUGl4ZWxEdW1wU3Vw
cG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTA0MTFCOUFFMTM4MDA3NDRBRUIgLyog
VGVzdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkRGQTk4NDkxRDdGNzBDRjAw
QUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUEx
ODUxMDNCMUI5QUUwRTIwMDc0NEFFQiAvKiBUZXN0Q29udHJvbGxlckNvY29hLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTE4NTEwNDIxQjlBRTEzRTAwNzQ0QUVCIC8qIFRlc3RJbnZvY2F0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDNEMUI5QUUxMDYwMDc0NEFFQiAvKiBUZXN0SW52
b2NhdGlvbkNHLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9lZmwvRXZlbnRTZW5kZXJQcm94eUVmbC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2VmbC9FdmVudFNlbmRlclByb3h5RWZsLmNwcAppbmRleCAzOGFlMDRmNzliNjljYmJmNzUw
YjEyYTllZmFiMWNhNWE1ODlkNWNiLi43YTY4YzdmMjk3ZGUyNTFkYWFkMzMzYmExZTQxYTk4YjE5
ZWY2OGY2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9FdmVudFNlbmRl
clByb3h5RWZsLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9FdmVudFNlbmRl
clByb3h5RWZsLmNwcApAQCAtMzk5LDExICszOTksNiBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6
Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIGlu
dAogICAgIG1vdXNlU2Nyb2xsQnkoeCwgeSk7CiB9CiAKLXZvaWQgRXZlbnRTZW5kZXJQcm94eTo6
c3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50LCBpbnQsIGludCwgaW50
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6
bGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcykKIHsKICAgICBpZiAobV9ldmVudFF1ZXVlLmlz
RW1wdHkoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2Vu
ZGVyUHJveHlHdGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5kZXJQ
cm94eUd0ay5jcHAKaW5kZXggMDIzZWRjODEwNWM1NTEwZWFiZmZjNWUyMGMzM2E0NzE2NzE2M2Ez
Zi4uM2MzYWUwY2U4MmVmYzc4OWMzMzlkMGNlZTAzMmUyMGE4NDQ3NTE2MSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5kZXJQcm94eUd0ay5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5kZXJQcm94eUd0ay5jcHAKQEAgLTQ1
MSwxMSArNDUxLDYgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBpbnQKICAgICBtb3VzZVNjcm9sbEJ5
KHgsIHkpOwogfQogCi12b2lkIEV2ZW50U2VuZGVyUHJveHk6OnN3aXBlR2VzdHVyZVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKGludCwgaW50LCBpbnQsIGludCkKLXsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotfQotCiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmxlYXBGb3J3YXJkKGludCBtaWxs
aXNlY29uZHMpCiB7CiAgICAgaWYgKG1fZXZlbnRRdWV1ZS5pc0VtcHR5KCkpCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tpdFNQSS5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9pb3MvSU9LaXRTUEkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzg3
Y2M5ZjY3ZDdkM2Y2ZjZhNWJhOWJiYWMzYWUwMmNiMjVkZTQ1Yi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9J
T0tpdFNQSS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjA0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIElPS2l0U1BJX2gKLSNkZWZpbmUgSU9LaXRTUElfaAotCi0jaW1wb3J0IDx3dGYvUGxh
dGZvcm0uaD4KLQotI2lmIFBMQVRGT1JNKElPUykKLQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCi0KLSNpbXBvcnQgPElPS2l0L2hpZC9JT0hJREV2ZW50Lmg+Ci0jaW1wb3J0IDxJT0tpdC9o
aWQvSU9ISURFdmVudERhdGEuaD4KLSNpbXBvcnQgPElPS2l0L2hpZC9JT0hJREV2ZW50U3lzdGVt
Q2xpZW50Lmg+Ci0jaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURVc2FnZVRhYmxlcy5oPgotCi0jZWxz
ZQotCi1XVEZfRVhURVJOX0NfQkVHSU4KLQotI2lmZGVmIF9fTFA2NF9fCi10eXBlZGVmIGRvdWJs
ZSBJT0hJREZsb2F0OwotI2Vsc2UKLXR5cGVkZWYgZmxvYXQgSU9ISURGbG9hdDsKLSNlbmRpZgot
Ci1lbnVtIHsKLSAgICBrSU9ISURFdmVudE9wdGlvbk5vbmUgPSAwLAotfTsKLQotdHlwZWRlZiBV
SW50MzIgSU9PcHRpb25CaXRzOwotdHlwZWRlZiB1aW50MzJfdCBJT0hJREV2ZW50T3B0aW9uQml0
czsKLXR5cGVkZWYgdWludDMyX3QgSU9ISURFdmVudEZpZWxkOwotCi10eXBlZGVmIHN0cnVjdCBf
X0lPSElERXZlbnRTeXN0ZW1DbGllbnQgKiBJT0hJREV2ZW50U3lzdGVtQ2xpZW50UmVmOwotdHlw
ZWRlZiBzdHJ1Y3QgX19JT0hJREV2ZW50ICogSU9ISURFdmVudFJlZjsKLQotI2RlZmluZSBJT0hJ
REV2ZW50RmllbGRCYXNlKHR5cGUpICh0eXBlIDw8IDE2KQotCi1lbnVtIHsKLSAgICBrSElEUGFn
ZV9LZXlib2FyZE9yS2V5cGFkICAgICAgID0gMHgwNywKLSAgICBrSElEUGFnZV9WZW5kb3JEZWZp
bmVkU3RhcnQgICAgID0gMHhGRjAwCi19OwotCi1lbnVtIHsKLSAgICBrSU9ISUREaWdpdGl6ZXJF
dmVudFJhbmdlICAgICAgID0gMTw8MCwKLSAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFRvdWNoICAg
ICAgID0gMTw8MSwKLSAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFBvc2l0aW9uICAgID0gMTw8MiwK
LSAgICBrSU9ISUREaWdpdGl6ZXJFdmVudElkZW50aXR5ICAgID0gMTw8NSwKLSAgICBrSU9ISURE
aWdpdGl6ZXJFdmVudEF0dHJpYnV0ZSAgID0gMTw8NiwKLSAgICBrSU9ISUREaWdpdGl6ZXJFdmVu
dENhbmNlbCAgICAgID0gMTw8NywKLSAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFN0YXJ0ICAgICAg
ID0gMTw8OCwKLSAgICBrSU9ISUREaWdpdGl6ZXJFdmVudEVzdGltYXRlZEFsdGl0dWRlID0gMTw8
MjgsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRFc3RpbWF0ZWRBemltdXRoID0gMTw8MjksCi0g
ICAga0lPSElERGlnaXRpemVyRXZlbnRFc3RpbWF0ZWRQcmVzc3VyZSA9IDE8PDMwCi19OwotdHlw
ZWRlZiB1aW50MzJfdCBJT0hJRERpZ2l0aXplckV2ZW50TWFzazsKLQotZW51bSB7Ci0gICAga0lP
SElERGlnaXRpemVyRXZlbnRVcGRhdGVBbHRpdHVkZU1hc2sgPSAxPDwyOCwKLSAgICBrSU9ISURE
aWdpdGl6ZXJFdmVudFVwZGF0ZUF6aW11dGhNYXNrID0gMTw8MjksCi0gICAga0lPSElERGlnaXRp
emVyRXZlbnRVcGRhdGVQcmVzc3VyZU1hc2sgPSAxPDwzMAotfTsKLQotZW51bSB7Ci0gICAga0lP
SElERXZlbnRUeXBlTlVMTCwKLSAgICBrSU9ISURFdmVudFR5cGVWZW5kb3JEZWZpbmVkLAotICAg
IGtJT0hJREV2ZW50VHlwZUtleWJvYXJkID0gMywKLSAgICBrSU9ISURFdmVudFR5cGVEaWdpdGl6
ZXIgPSAxMSwKLX07Ci10eXBlZGVmIHVpbnQzMl90IElPSElERXZlbnRUeXBlOwotCi1lbnVtIHsK
LSAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZFVzYWdlUGFnZSA9IElPSElERXZlbnRG
aWVsZEJhc2Uoa0lPSElERXZlbnRUeXBlVmVuZG9yRGVmaW5lZCksCi0gICAga0lPSElERXZlbnRG
aWVsZFZlbmRvckRlZmluZWRSZXNlcnZlZCwKLSAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVm
aW5lZFJlc2VydmVkMSwKLSAgICBrSU9ISURFdmVudEZpZWxkVmVuZG9yRGVmaW5lZERhdGFMZW5n
dGgsCi0gICAga0lPSElERXZlbnRGaWVsZFZlbmRvckRlZmluZWREYXRhCi19OwotCi1lbnVtIHsK
LSAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyWCA9IElPSElERXZlbnRGaWVsZEJhc2Uoa0lP
SElERXZlbnRUeXBlRGlnaXRpemVyKSwKLSAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyWSwK
LSAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyTWFqb3JSYWRpdXMgPSBrSU9ISURFdmVudEZp
ZWxkRGlnaXRpemVyWCArIDIwLAotICAgIGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJNaW5vclJh
ZGl1cywKLSAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVySXNEaXNwbGF5SW50ZWdyYXRlZCA9
IGtJT0hJREV2ZW50RmllbGREaWdpdGl6ZXJNYWpvclJhZGl1cyArIDUsCi19OwotCi1lbnVtIHsK
LSAgICBrSU9ISURUcmFuc2R1Y2VyUmFuZ2UgICAgICAgICAgICAgICA9IDB4MDAwMTAwMDAsCi0g
ICAga0lPSElEVHJhbnNkdWNlclRvdWNoICAgICAgICAgICAgICAgPSAweDAwMDIwMDAwLAotICAg
IGtJT0hJRFRyYW5zZHVjZXJJbnZlcnQgICAgICAgICAgICAgID0gMHgwMDA0MDAwMCwKLSAgICBr
SU9ISURUcmFuc2R1Y2VyRGlzcGxheUludGVncmF0ZWQgICA9IDB4MDAwODAwMDAKLX07Ci0KLWVu
dW0gewotICAgIGtJT0hJRERpZ2l0aXplclRyYW5zZHVjZXJUeXBlU3R5bHVzICA9IDAsCi0gICAg
a0lPSElERGlnaXRpemVyVHJhbnNkdWNlclR5cGVGaW5nZXIgPSAyLAotICAgIGtJT0hJRERpZ2l0
aXplclRyYW5zZHVjZXJUeXBlSGFuZCA9IDMKLX07Ci10eXBlZGVmIHVpbnQzMl90IElPSElERGln
aXRpemVyVHJhbnNkdWNlclR5cGU7Ci0KLWVudW0gewotICAgIGtJT0hJREV2ZW50RmllbGREaWdp
dGl6ZXJXaWxsVXBkYXRlTWFzayA9IDcyMDkyNCwKLSAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRp
emVyRGlkVXBkYXRlTWFzayA9IDcyMDkyNQotfTsKLQotSU9ISURFdmVudFJlZiBJT0hJREV2ZW50
Q3JlYXRlRGlnaXRpemVyRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCBJT0hJRERpZ2l0
aXplclRyYW5zZHVjZXJUeXBlLCB1aW50MzJfdCwgdWludDMyX3QsIElPSElERGlnaXRpemVyRXZl
bnRNYXNrLCB1aW50MzJfdCwgSU9ISURGbG9hdCwgSU9ISURGbG9hdCwgSU9ISURGbG9hdCwgSU9I
SURGbG9hdCwgSU9ISURGbG9hdCwgYm9vbGVhbl90LCBib29sZWFuX3QsIElPT3B0aW9uQml0cyk7
Ci0KLUlPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZURpZ2l0aXplckZpbmdlckV2ZW50KENG
QWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90LCBJT0hJRERpZ2l0aXpl
ckV2ZW50TWFzaywgSU9ISURGbG9hdCwgSU9ISURGbG9hdCwgSU9ISURGbG9hdCwgSU9ISURGbG9h
dCwgSU9ISURGbG9hdCwgYm9vbGVhbl90LCBib29sZWFuX3QsIElPSElERXZlbnRPcHRpb25CaXRz
KTsKLQotSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlRm9yY2VFdmVudChDRkFsbG9jYXRv
clJlZiwgdWludDY0X3QsIHVpbnQzMl90LCBJT0hJREZsb2F0LCB1aW50MzJfdCwgSU9ISURGbG9h
dCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOwotCi1JT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVh
dGVLZXlib2FyZEV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIHVpbnQz
Ml90LCBib29sZWFuX3QsIElPT3B0aW9uQml0cyk7Ci0KLUlPSElERXZlbnRSZWYgSU9ISURFdmVu
dENyZWF0ZVZlbmRvckRlZmluZWRFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIHVpbnQz
Ml90LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQ4X3QqLCBDRkluZGV4LCBJT0hJREV2ZW50T3B0
aW9uQml0cyk7Ci0KLUlPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZURpZ2l0aXplclN0eWx1
c0V2ZW50V2l0aFBvbGFyT3JpZW50YXRpb24oQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50
MzJfdCwgdWludDMyX3QsIElPSElERGlnaXRpemVyRXZlbnRNYXNrLCB1aW50MzJfdCwgSU9ISURG
bG9hdCwgSU9ISURGbG9hdCwgSU9ISURGbG9hdCwgSU9ISURGbG9hdCwgSU9ISURGbG9hdCwgSU9I
SURGbG9hdCwgSU9ISURGbG9hdCwgSU9ISURGbG9hdCwgYm9vbGVhbl90LCBib29sZWFuX3QsIElP
SElERXZlbnRPcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFR5cGUgSU9ISURFdmVudEdldFR5cGUo
SU9ISURFdmVudFJlZik7Ci0KLXZvaWQgSU9ISURFdmVudFNldEZsb2F0VmFsdWUoSU9ISURFdmVu
dFJlZiwgSU9ISURFdmVudEZpZWxkLCBJT0hJREZsb2F0KTsKLQotQ0ZJbmRleCBJT0hJREV2ZW50
R2V0SW50ZWdlclZhbHVlKElPSElERXZlbnRSZWYsIElPSElERXZlbnRGaWVsZCk7Ci12b2lkIElP
SElERXZlbnRTZXRJbnRlZ2VyVmFsdWUoSU9ISURFdmVudFJlZiwgSU9ISURFdmVudEZpZWxkLCBD
RkluZGV4KTsKLQotdm9pZCBJT0hJREV2ZW50QXBwZW5kRXZlbnQoSU9ISURFdmVudFJlZiwgSU9I
SURFdmVudFJlZiwgSU9PcHRpb25CaXRzKTsKLQotSU9ISURFdmVudFN5c3RlbUNsaWVudFJlZiBJ
T0hJREV2ZW50U3lzdGVtQ2xpZW50Q3JlYXRlKENGQWxsb2NhdG9yUmVmKTsKLQotI2RlZmluZSBr
R1NFdmVudFBhdGhJbmZvSW5SYW5nZSAoMSA8PCAwKQotI2RlZmluZSBrR1NFdmVudFBhdGhJbmZv
SW5Ub3VjaCAoMSA8PCAxKQotCi1lbnVtIHsKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRBID0gMHgw
NCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQxID0gMHgxRSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9h
cmQyID0gMHgxRiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQzID0gMHgyMCwKLSAgICBrSElEVXNh
Z2VfS2V5Ym9hcmQ0ID0gMHgyMSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ1ID0gMHgyMiwKLSAg
ICBrSElEVXNhZ2VfS2V5Ym9hcmQ2ID0gMHgyMywKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ3ID0g
MHgyNCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQ4ID0gMHgyNSwKLSAgICBrSElEVXNhZ2VfS2V5
Ym9hcmQ5ID0gMHgyNiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmQwID0gMHgyNywKLSAgICBrSElE
VXNhZ2VfS2V5Ym9hcmRSZXR1cm5PckVudGVyID0gMHgyOCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9h
cmRFc2NhcGUgPSAweDI5LAotICAgIGtISURVc2FnZV9LZXlib2FyZERlbGV0ZU9yQmFja3NwYWNl
ID0gMHgyQSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRUYWIgPSAweDJCLAotICAgIGtISURVc2Fn
ZV9LZXlib2FyZFNwYWNlYmFyID0gMHgyQywKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRIeXBoZW4g
PSAweDJELAotICAgIGtISURVc2FnZV9LZXlib2FyZEVxdWFsU2lnbiA9IDB4MkUsCi0gICAga0hJ
RFVzYWdlX0tleWJvYXJkT3BlbkJyYWNrZXQgPSAweDJGLAotICAgIGtISURVc2FnZV9LZXlib2Fy
ZENsb3NlQnJhY2tldCA9IDB4MzAsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkQmFja3NsYXNoID0g
MHgzMSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRTZW1pY29sb24gPSAweDMzLAotICAgIGtISURV
c2FnZV9LZXlib2FyZFF1b3RlID0gMHgzNCwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRHcmF2ZUFj
Y2VudEFuZFRpbGRlID0gMHgzNSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRDb21tYSA9IDB4MzYs
Ci0gICAga0hJRFVzYWdlX0tleWJvYXJkUGVyaW9kID0gMHgzNywKLSAgICBrSElEVXNhZ2VfS2V5
Ym9hcmRTbGFzaCA9IDB4MzgsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRjEgPSAweDNBLAotICAg
IGtISURVc2FnZV9LZXlib2FyZEhvbWUgPSAweDRBLAotICAgIGtISURVc2FnZV9LZXlib2FyZFBh
Z2VVcCA9IDB4NEIsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRW5kID0gMHg0RCwKLSAgICBrSElE
VXNhZ2VfS2V5Ym9hcmRSaWdodEFycm93ID0gMHg0RiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRM
ZWZ0QXJyb3cgPSAweDUwLAotICAgIGtISURVc2FnZV9LZXlib2FyZERvd25BcnJvdyA9IDB4NTEs
Ci0gICAga0hJRFVzYWdlX0tleWJvYXJkVXBBcnJvdyA9IDB4NTIsCi0gICAga0hJRFVzYWdlX0tl
eWJvYXJkTGVmdENvbnRyb2wgPSAweEUwLAotICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRTaGlm
dCA9IDB4RTEsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdEFsdCA9IDB4RTIKLX07Ci0KLVdU
Rl9FWFRFUk5fQ19FTkQKLQotI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0KLSNl
bmRpZiAvLyBQTEFURk9STShJT1MpCi0KLSNlbmRpZiAvLyBJT0tpdFNQSV9oCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQppbmRleCBjYWZjM2VkZGE5
YmY4NWVlMTA2NWFmZGUwODlmMTY0OTM1NjQxZTZiLi5kNTA1MjExNWY2OWRlM2RiMmU1MTEwNGQ1
MGE2YWEzMTRjNTczYzUyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9F
dmVudFNlbmRlclByb3h5Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50
U2VuZGVyUHJveHkubW0KQEAgLTQ1LDE3ICs0NSw2IEBACiAtICh2b2lkKV9wb3N0RGVsYXllZDsK
IEBlbmQKIAotI2lmIGRlZmluZWQoX19MUDY0X18pCi1zdHJ1Y3QgV0tUUkNHU0V2ZW50UmVjb3Jk
IHsKLSAgICBjaGFyIG9mZnNldDFbMTUwXTsKLSAgICB1aW50OF90IHBoYXNlOwotICAgIGNoYXIg
b2Zmc2V0MlsxM107Ci0gICAgZmxvYXQgZGVsdGFYOwotICAgIGZsb2F0IGRlbHRhWTsKLSAgICBj
aGFyIG9mZnNldDNbNzZdOwotfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKLSNlbmRpZgotCiBA
aW50ZXJmYWNlIEV2ZW50U2VuZGVyU3ludGhldGljRXZlbnQgOiBOU0V2ZW50IHsKIEBwdWJsaWMK
ICAgICBOU1BvaW50IF9ldmVudFNlbmRlcl9sb2NhdGlvbkluV2luZG93OwpAQCAtNzAsMTEgKzU5
LDYgQEAgc3RydWN0IFdLVFJDR1NFdmVudFJlY29yZCB7CiAgICAgc2hvcnQgX2V2ZW50U2VuZGVy
X3N1YnR5cGU7CiAgICAgTlNFdmVudFR5cGUgX2V2ZW50U2VuZGVyX3R5cGU7CiAgICAgTlNXaW5k
b3cgKl9ldmVudFNlbmRlcl93aW5kb3c7Ci0KLQotI2lmIGRlZmluZWQoX19MUDY0X18pCi0gICAg
V0tUUkNHU0V2ZW50UmVjb3JkIF9ldmVudFNlbmRlcl9jZ3NFdmVudFJlY29yZDsKLSNlbmRpZgog
fQogCiAtIChpZClpbml0UHJlc3N1cmVFdmVudEF0TG9jYXRpb246KE5TUG9pbnQpbG9jYXRpb24g
Z2xvYmFsTG9jYXRpb246KE5TUG9pbnQpZ2xvYmFsTG9jYXRpb24gc3RhZ2U6KE5TSW50ZWdlcilz
dGFnZSBwcmVzc3VyZTooZmxvYXQpcHJlc3N1cmUgc3RhZ2VUcmFuc2l0aW9uOihmbG9hdClzdGFn
ZVRyYW5zaXRpb24gcGhhc2U6KE5TRXZlbnRQaGFzZSlwaGFzZSB0aW1lOihOU1RpbWVJbnRlcnZh
bCl0aW1lIGV2ZW50TnVtYmVyOihOU0ludGVnZXIpZXZlbnROdW1iZXIgd2luZG93OihOU1dpbmRv
dyAqKXdpbmRvdzsKQEAgLTE2NywxMyArMTUxLDYgQEAgc3RydWN0IFdLVFJDR1NFdmVudFJlY29y
ZCB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgZGVmaW5lZChfX0xQNjRfXykKLS0gKFdL
VFJDR1NFdmVudFJlY29yZClfY2dzRXZlbnRSZWNvcmQKLXsKLSAgICByZXR1cm4gX2V2ZW50U2Vu
ZGVyX2Nnc0V2ZW50UmVjb3JkOwotfQotI2VuZGlmCi0KIC0gKE5TV2luZG93ICopd2luZG93CiB7
CiAgICAgcmV0dXJuIF9ldmVudFNlbmRlcl93aW5kb3c7CkBAIC04OTIsNTAgKzg2OSw0IEBAIHZv
aWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKGludCB4LCBpbnQgeSwgaW50CiAgICAgfQogfQogCi1zdGF0aWMgTlNFdmVudFBoYXNlIG5z
RXZlbnRQaGFzZUZyb21DR0V2ZW50UGhhc2UoaW50IHBoYXNlKQotewotICAgIHN3aXRjaCAocGhh
c2UpIHsKLSAgICBjYXNlIDA6IC8vIGtDR1NHZXN0dXJlUGhhc2VOb25lCi0gICAgICAgIHJldHVy
biBOU0V2ZW50UGhhc2VOb25lOwotICAgIGNhc2UgMTogLy8ga0NHU0dlc3R1cmVQaGFzZUJlZ2Fu
Ci0gICAgICAgIHJldHVybiBOU0V2ZW50UGhhc2VCZWdhbjsKLSAgICBjYXNlIDI6IC8vIGtDR1NH
ZXN0dXJlUGhhc2VDaGFuZ2VkCi0gICAgICAgIHJldHVybiBOU0V2ZW50UGhhc2VDaGFuZ2VkOwot
ICAgIGNhc2UgNDogLy8ga0NHU0dlc3R1cmVQaGFzZUVuZGVkCi0gICAgICAgIHJldHVybiBOU0V2
ZW50UGhhc2VFbmRlZDsKLSAgICBjYXNlIDg6IC8vIGtDR1NHZXN0dXJlUGhhc2VDYW5jZWxsZWQK
LSAgICAgICAgcmV0dXJuIE5TRXZlbnRQaGFzZUNhbmNlbGxlZDsKLSAgICBjYXNlIDEyODogLy8g
a0NHU0dlc3R1cmVQaGFzZU1heUJlZ2luCi0gICAgICAgIHJldHVybiBOU0V2ZW50UGhhc2VNYXlC
ZWdpbjsKLSAgICB9Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gTlNF
dmVudFBoYXNlTm9uZTsKLX0KLQotdm9pZCBFdmVudFNlbmRlclByb3h5Ojpzd2lwZUdlc3R1cmVX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIGludCBwaGFzZSwgaW50IG1v
bWVudHVtKQotewotICAgIFJldGFpblB0cjxFdmVudFNlbmRlclN5bnRoZXRpY0V2ZW50PiBldmVu
dCA9IGFkb3B0TlMoW1tFdmVudFNlbmRlclN5bnRoZXRpY0V2ZW50IGFsbG9jXSBpbml0XSk7Ci0K
LSAgICAvLyAibWF5QmVnaW4iIGEgc3dpcGUgaXMgYWN0dWFsbHkgYSBzY3JvbGwgd2hlZWwgZXZl
bnQuCi0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl90eXBlID0gKHBoYXNlID09IDEyOCkgPyBOU1Nj
cm9sbFdoZWVsIDogTlNFdmVudFR5cGVHZXN0dXJlOwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJf
c3VidHlwZSA9IDY7IC8vIGtJT0hJREV2ZW50VHlwZVNjcm9sbAotICAgIGV2ZW50LT5fZXZlbnRT
ZW5kZXJfbG9jYXRpb25JbldpbmRvdyA9IE5TTWFrZVBvaW50KG1fcG9zaXRpb24ueCwgbV9wb3Np
dGlvbi55KTsKLSAgICBldmVudC0+X2V2ZW50U2VuZGVyX2xvY2F0aW9uID0gKFttX3Rlc3RDb250
cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVdpbmRvdygpIGNvbnZlcnRSZWN0VG9TY3Jl
ZW46TlNNYWtlUmVjdChtX3Bvc2l0aW9uLngsIG1fcG9zaXRpb24ueSwgMSwgMSldLm9yaWdpbik7
Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9waGFzZSA9IG5zRXZlbnRQaGFzZUZyb21DR0V2ZW50
UGhhc2UocGhhc2UpOwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfbW9tZW50dW1QaGFzZSA9IG5z
RXZlbnRQaGFzZUZyb21DR0V2ZW50UGhhc2UobW9tZW50dW0pOwotICAgIGV2ZW50LT5fZXZlbnRT
ZW5kZXJfdGltZXN0YW1wID0gYWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRp
bWUoKSk7Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9ldmVudE51bWJlciA9ICsrZXZlbnROdW1i
ZXI7Ci0KLSNpZiBkZWZpbmVkKF9fTFA2NF9fKQotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfY2dz
RXZlbnRSZWNvcmQucGhhc2UgPSBwaGFzZTsKLSAgICBldmVudC0+X2V2ZW50U2VuZGVyX2Nnc0V2
ZW50UmVjb3JkLmRlbHRhWCA9IChmbG9hdCl4OwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfY2dz
RXZlbnRSZWNvcmQuZGVsdGFZID0gKGZsb2F0KXk7Ci0jZWxzZQotICAgIE5TTG9nKEAiU3ludGhl
dGljIHN3aXBlIGdlc3R1cmVzIGFyZSBub3QgaW1wbGVtZW50ZWQgZm9yIDMyLWJpdCBXZWJLaXRU
ZXN0UnVubmVyLiIpOwotI2VuZGlmCi0KLSAgICBbTlNBcHAgc2VuZEV2ZW50OmV2ZW50LmdldCgp
XTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KaW5kZXggNGY2Y2NlYmE3ZDNmYjQwOTg1
YTA2MjE3MjBjYjhhMWMwZWIyNDc1ZC4uYjA1MGQwZGVhYzBlZjlmNmJhNTdhMTI2YmZhNjA1ODJm
ZjZkM2JlMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0
Q29udHJvbGxlck1hYy5tbQpAQCAtMjYsNyArMjYsMTIgQEAKICNpbXBvcnQgImNvbmZpZy5oIgog
I2ltcG9ydCAiVUlTY3JpcHRDb250cm9sbGVyLmgiCiAKKyNpbXBvcnQgIkV2ZW50U2VyaWFsaXpl
ck1hYy5oIgorI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW1wb3J0ICJTaGFyZWRFdmVu
dFN0cmVhbXNNYWMuaCIKKyNpbXBvcnQgIlRlc3RDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJVSVNj
cmlwdENvbnRleHQuaCIKKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmQ0YuaD4K
IAogbmFtZXNwYWNlIFdUUiB7CiAKQEAgLTQxLDQgKzQ2LDM5IEBAIHZvaWQgVUlTY3JpcHRDb250
cm9sbGVyOjpkb0FzeW5jVGFzayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogICAgIH0pOwogfQogCitz
dGF0aWMgdm9pZCBwbGF5QmFja0V2ZW50cyhVSVNjcmlwdENvbnRleHQgKmNvbnRleHQsIE5TU3Ry
aW5nICpldmVudFN0cmVhbSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBOU0Vycm9yICpl
cnJvciA9IG5pbDsKKyAgICBOU0FycmF5ICpldmVudERpY3RzID0gW05TSlNPTlNlcmlhbGl6YXRp
b24gSlNPTk9iamVjdFdpdGhEYXRhOltldmVudFN0cmVhbSBkYXRhVXNpbmdFbmNvZGluZzpOU1VU
RjhTdHJpbmdFbmNvZGluZ10gb3B0aW9uczowIGVycm9yOiZlcnJvcl07CisKKyAgICBpZiAoZXJy
b3IpIHsKKyAgICAgICAgTlNMb2coQCJFUlJPUjogJUAiLCBlcnJvcik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBjYWxsYmFja0lEID0gY29udGV4dC0+cHJlcGFyZUZv
ckFzeW5jVGFzayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlTm9uUGVyc2lzdGVudCk7CisKKyAgICBO
U1dpbmRvdyAqd2luZG93ID0gW1Rlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmll
dygpLT5wbGF0Zm9ybVZpZXcoKSB3aW5kb3ddOworCisgICAgW0V2ZW50U3RyZWFtUGxheWVyIHBs
YXlTdHJlYW06ZXZlbnREaWN0cyB3aW5kb3c6d2luZG93IGNvbXBsZXRpb25IYW5kbGVyOl4gewor
ICAgICAgICBjb250ZXh0LT5hc3luY1Rhc2tDb21wbGV0ZShjYWxsYmFja0lEKTsKKyAgICB9XTsK
K30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKEpTVmFsdWVSZWYg
Y2FsbGJhY2spCit7CisgICAgcGxheUJhY2tFdmVudHMobV9jb250ZXh0LCBiZWdpblN3aXBlQmFj
a0V2ZW50U3RyZWFtKCksIGNhbGxiYWNrKTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6
OmNvbXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgcGxheUJhY2tF
dmVudHMobV9jb250ZXh0LCBjb21wbGV0ZVN3aXBlQmFja0V2ZW50U3RyZWFtKCksIGNhbGxiYWNr
KTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0
cmVhbShKU1N0cmluZ1JlZiBldmVudFN0cmVhbSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAg
ICBSZXRhaW5QdHI8TlNTdHJpbmc+IG5zU3RyaW5nID0gYWRvcHROUygoTlNTdHJpbmcgKilKU1N0
cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBldmVudFN0cmVhbSkpOworICAg
IHBsYXlCYWNrRXZlbnRzKG1fY29udGV4dCwgbnNTdHJpbmcuZ2V0KCksIGNhbGxiYWNrKTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGY4NWQ3YmVjZTBmZTM2M2YzMjBkZjQ1MmE2ZDM2NTM5YTEzMDkxYmYuLjlj
YzBhMDQ2NDU4ZWE2NjU1ODcwYzg5N2ZjZWY0N2U2MTJmNTk4MjkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NCBAQAorMjAxNi0xMC0wNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
KworICAgICAgICBTd2lwZSBnZXN0dXJlIHRlc3RzIGRvbid0IHdvcmsgb24gbWFjT1MgU2llcnJh
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE2NzUK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIzMzc5OTMwPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHN3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBzd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sOgorICAg
ICAgICAqIHN3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0bWw6Cisg
ICAgICAgICogc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbDoKKyAgICAg
ICAgKiBzd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFz
aC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1i
YWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbDoKKyAgICAgICAgKiBzd2lwZS9yZXNvdXJjZXMv
c3dpcGUtdGVzdC5qczoKKyAgICAgICAgKG1lYXN1cmVkRHVyYXRpb25TaG91bGRCZUxlc3NUaGFu
KToKKyAgICAgICAgKHN0YXJ0U3dpcGVHZXN0dXJlKToKKyAgICAgICAgKGNvbXBsZXRlU3dpcGVH
ZXN0dXJlKToKKyAgICAgICAgKHBsYXlFdmVudFN0cmVhbSk6CisgICAgICAgIChldmVudFF1ZXVl
LmVucXVldWVTY3JvbGxFdmVudCk6IERlbGV0ZWQuCisgICAgICAgIChldmVudFF1ZXVlLmVucXVl
dWVTd2lwZUV2ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKGV2ZW50UXVldWUuaGFzUGVuZGluZ0V2
ZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0
Y2gpOiBEZWxldGVkLgorICAgICAgICAoZXZlbnRRdWV1ZS5fcHJvY2Vzc0V2ZW50UXVldWUpOiBE
ZWxldGVkLgorICAgICAgICAoZXZlbnRRdWV1ZS5fcHJvY2Vzc0V2ZW50UXVldWVTb29uKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBzd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBzd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJl
c2lzLWZhaWx1cmVzLmh0bWw6IFJlbW92ZWQuCisKIDIwMTYtMTAtMDYgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBJ
Y29uIHNlcnZpY2UgYW5kIHRoZSBJY29uQnV0dG9uIGNsYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjVlZjkxZGQzZWIzMmNiNDJiYjFl
NTFkOTAwNGNhMWY2MjdkZDI1Ni4uNmNiMGExODYwMmYyZmY5MTU3MmQ1ZTdjMTllNmI0NjNjN2Y2
MjUzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtNTExLDEyICs1MTEsNiBAQCB3ZWJraXQub3JnL2IvMTYyNjM4IFsgU2llcnJhKyBdIGZh
c3Qvc2Nyb2xsaW5nL3J0bC1zY3JvbGxiYXJzLWFsdGVybmF0ZS1pZnJhbWUtYgogIyA8cmRhcjov
L3Byb2JsZW0vMjUwNjMxMjg+CiBbIFNpZXJyYSsgXSBtZWRpYS9tZWRpYS1jb250cm9scy1kcmFn
LXRpbWVsaW5lLXNldC1jb250cm9scy1wcm9wZXJ0eS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIAot
IyA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+IHN3aXBlIHRlc3RzIGNyYXNoaW5nCi1bIFNpZXJy
YSsgXSBzd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sIFsgU2tpcCBdCi1bIFNpZXJy
YSsgXSBzd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbCBbIFNraXAgXQot
WyBTaWVycmErIF0gc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwgWyBTa2lw
IF0KLVsgU2llcnJhKyBdIHN3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMuaHRt
bCBbIFNraXAgXQotCiAjIEhpdHRpbmcgIlRoZSBjZXJ0aWZpY2F0ZSBmb3IgdGhpcyBzZXJ2ZXIg
aXMgaW52YWxpZCIgbG9hZGluZyBlcnJvciAobm90IGhhcHBlbmluZyBpbiBXSzEpCiB3ZWJraXQu
b3JnL2IvMTYwNDQ1IFsgU2llcnJhKyBdIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvdXBncmFkZS1pbnNlY3VyZS1mZXRj
aC1pbi13b3JrZXIuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2MDQ0NSBbIFNpZXJy
YSsgXSBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91cGdyYWRlLWlu
c2VjdXJlLXJlcXVlc3RzL3VwZ3JhZGUtaW5zZWN1cmUtZmV0Y2gtaW4tbWFpbi1mcmFtZS5odG1s
IFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQt
YmFjay1zd2lwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQt
YmFjay1zd2lwZS1leHBlY3RlZC50eHQKaW5kZXggZTNkM2UwMGFiOWQwYmZmZmU2NjlkNmFkODlh
MDE3YWY1N2Y3MGI4OS4uODlkZWNmZDRjMzcxMjVjZmI1NTk4MTE5Njg5YzNmMGM0YTFkODg0ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBl
LWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSw2IEBACi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBw
aGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdiZWdhbicp
Ci1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQorc3RhcnRTd2lwZUdl
c3R1cmUKIGRpZEJlZ2luU3dpcGUKLXN3aXBlIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFu
Z2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAyNTYgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUg
ZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVkJykKK2NvbXBsZXRlU3dpcGVHZXN0dXJlCiB3
aWxsRW5kU3dpcGUKIGRpZEVuZFN3aXBlCiBkaWRSZW1vdmVTd2lwZVNuYXBzaG90CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sIGIvTGF5
b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAppbmRleCBjZjdmNzVj
YjEzOWI1NGI1MTUxNzhhMDczYjk4YWQwNjczZGRhNjgzLi44NzFhMmJjNjQ2YjhkNGFlODY5NDYz
N2U4MDAzYTNiNGIzMjQ1YTZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1j
YWNoZWQtYmFjay1zd2lwZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hl
ZC1iYWNrLXN3aXBlLmh0bWwKQEAgLTYsMjggKzYsMTAgQEAgaHRtbCB7CiA8L3N0eWxlPgogPHNj
cmlwdCBzcmM9InJlc291cmNlcy9zd2lwZS10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1m
dW5jdGlvbiBzdGFydFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oMTAwLCAxMDApOwotCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAn
bWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnYmVn
YW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnY2hhbmdlZCcp
OwotfQotCi1mdW5jdGlvbiBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZlbnRRdWV1
ZS5lbnF1ZXVlU3dpcGVFdmVudCgxLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5x
dWV1ZVN3aXBlRXZlbnQoMjU2LCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1
ZVN3aXBlRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci19Ci0KIGZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVD
YWxsYmFjaygpCiB7CiAgICAgbG9nKCJkaWRCZWdpblN3aXBlIik7CiAKLSAgICBzaG91bGRCZShm
YWxzZSwgZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJFdmVudCBxdWV1ZSBzaG91bGQg
YmUgZW1wdHkuIEJvdGggc2Nyb2xsIGV2ZW50cyBzaG91bGQgYmUgcmVxdWlyZWQgdG8gc3RhcnQg
dGhlIHN3aXBlIGJlY2F1c2Ugb2YgdGhlIHN3aXBlLXN0YXJ0IGh5c3RlcmVzaXMuIik7Ci0KICAg
ICBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpOwogfQogCkBAIC00Miw3ICsyNCw2IEBAIGZ1bmN0aW9u
IGRpZEVuZFN3aXBlQ2FsbGJhY2soKQogewogICAgIGxvZygiZGlkRW5kU3dpcGUiKTsKIAotICAg
IHNob3VsZEJlKDAsIGV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygpLCAiRXZlbnQgcXVldWUg
c2hvdWxkIGJlIGVtcHR5LiBUaGUgc3dpcGUgaXNuJ3QgY29tcGxldGUgdW50aWwgd2Ugc2VlIHRo
ZSBlbmQgb2YgdGhlIGdlc3R1cmUuIik7CiAgICAgc3RhcnRNZWFzdXJpbmdEdXJhdGlvbigic25h
cHNob3RSZW1vdmFsIik7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL21haW4t
ZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zd2lw
ZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQtZXhwZWN0ZWQudHh0CmluZGV4IDYzNTk3
NDA1NDg0NzZjOGQwOWZiNGJiMzdjNzUyNDRiOTBiMzkwZDYuLmNlNzY2ODE5NzIyMDk1MzVlMjRj
ZTA3MzcwZTMwNmEwOTgyNTBjZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL21haW4t
ZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4cGVjdGVkLnR4dApAQCAtMSwy
MyArMSw4IEBACi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Ny
b2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0
YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNl
ICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQot
c2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQg
KGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwg
cGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdl
ZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBl
dmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAx
MCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2Vu
ZGVkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwg
ZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAg
MCwgcGhhc2UgJ2NoYW5nZWQnKQorc3RhcnRTd2lwZUdlc3R1cmUKK2NvbXBsZXRlU3dpcGVHZXN0
dXJlCitzdGFydFN3aXBlR2VzdHVyZQogZGlkQmVnaW5Td2lwZQotc3dpcGUgZXZlbnQgKGRlbHRh
IDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDI1NiAwLCBwaGFzZSAn
Y2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQorY29tcGxl
dGVTd2lwZUdlc3R1cmUKIHdpbGxFbmRTd2lwZQogZGlkRW5kU3dpcGUKIGRpZFJlbW92ZVN3aXBl
U25hcHNob3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmlu
Zy1yZXF1aXJlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5n
LXJlcXVpcmVtZW50Lmh0bWwKaW5kZXggNjIxNTU0NDg0ZjA0ZmYzOTc1YmYyZjQxOGUxOGZlYzgz
YzYyZjM1Yi4uYTM2OWI4MjFiOWQ5YzJlMDM3OGRmNjI3MmVkMDE5ZjUyYWUyZWFiOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50
Lmh0bWwKQEAgLTYsNDggKzYsMjQgQEAgaHRtbCB7CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zd2lwZS10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiBzdGFy
dFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAxMDAp
OwogCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKICAgICAvLyBUaGUgZmlyc3Qgc3dpcGUgc2hvdWxk
IGZhaWwgYmVjYXVzZSB3ZSdyZSBzY3JvbGxlZCB0byB0aGUgbWlkZGxlIG9mIHRoZSBkb2N1bWVu
dAogICAgIC8vIGFuZCB0aGlzIGlzIGFsbCBhIHNpbmdsZSBnZXN0dXJlLiBXZSBjYW4gb25seSBz
dGFydCBzd2lwZXMgaWYgd2UgKmJlZ2luKgogICAgIC8vIHBpbm5lZCB0byB0aGUgZWRnZS4KLSAg
ICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2
ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEwLCAwLCAnYmVnYW4nKTsKLSAgICBldmVudFF1
ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVl
LmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVu
cXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVl
dWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVT
Y3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3Jv
bGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxF
dmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVu
dCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgx
MCwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwg
MCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAn
ZW5kZWQnKTsKLQotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChmdW5jdGlv
biAoKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuY2xlYXJUZXN0UnVubmVyQ2FsbGJhY2tzKCk7Ci0g
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZEJlZ2luU3dpcGVDYWxsYmFjayhkaWRCZWdpblN3
aXBlQ2FsbGJhY2spOwotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxXaWxsRW5kU3dpcGVDYWxs
YmFjayh3aWxsRW5kU3dpcGVDYWxsYmFjayk7Ci0gICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbERp
ZEVuZFN3aXBlQ2FsbGJhY2soZGlkRW5kU3dpcGVDYWxsYmFjayk7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuaW5zdGFsbERpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayhkaWRSZW1vdmVTd2lwZVNu
YXBzaG90Q2FsbGJhY2spOworICAgIHN0YXJ0U3dpcGVHZXN0dXJlKGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgY29tcGxldGVTd2lwZUdlc3R1cmUoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5jbGVhclRlc3RSdW5uZXJDYWxsYmFja3MoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuaW5zdGFsbERpZEJlZ2luU3dpcGVDYWxsYmFjayhkaWRCZWdpblN3aXBlQ2FsbGJhY2spOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsV2lsbEVuZFN3aXBlQ2FsbGJhY2sod2lsbEVu
ZFN3aXBlQ2FsbGJhY2spOworICAgICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkRW5kU3dp
cGVDYWxsYmFjayhkaWRFbmRTd2lwZUNhbGxiYWNrKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
aW5zdGFsbERpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayhkaWRSZW1vdmVTd2lwZVNuYXBz
aG90Q2FsbGJhY2spOyAgICAKIAotICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIC8vIFRoZSBzZWNvbmQgc3dpcGUgc2hvdWxkIHN1Y2NlZWQgYmVjYXVzZSB3ZSBh
cmUgbm93IHNjcm9sbGVkIHRvIHRoZSBsZWZ0IGVkZ2UuCi0gICAgICAgICAgICBldmVudFF1ZXVl
LmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgICAgICAgICAgZXZlbnRR
dWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAgICAgICAgICBldmVu
dFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwgJ2NoYW5nZWQnKTsKLSAgICAgICAgfSwg
MCk7Ci0gICAgfSkKLX0KLQotZnVuY3Rpb24gY29tcGxldGVTd2lwZUdlc3R1cmUoKQotewotICAg
IGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVu
dFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDI1NiwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1
ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdlbmRlZCcpOworICAgICAgICAgICAgc3RhcnRT
d2lwZUdlc3R1cmUoZnVuY3Rpb24gKCkgeyBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpOyB9KTsKKyAg
ICAgICAgfSk7CisgICAgfSk7CiB9CiAKIGZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVOb3RSZWFjaGVk
Q2FsbGJhY2soKQpAQCAtNTgsMTAgKzM0LDYgQEAgZnVuY3Rpb24gZGlkQmVnaW5Td2lwZU5vdFJl
YWNoZWRDYWxsYmFjaygpCiBmdW5jdGlvbiBkaWRCZWdpblN3aXBlQ2FsbGJhY2soKQogewogICAg
IGxvZygiZGlkQmVnaW5Td2lwZSIpOwotCi0gICAgc2hvdWxkQmUoZmFsc2UsIGV2ZW50UXVldWUu
aGFzUGVuZGluZ0V2ZW50cygpLCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5LiBCb3RoIHNj
cm9sbCBldmVudHMgc2hvdWxkIGJlIHJlcXVpcmVkIHRvIHN0YXJ0IHRoZSBzd2lwZSBiZWNhdXNl
IG9mIHRoZSBzd2lwZS1zdGFydCBoeXN0ZXJlc2lzLiIpOwotCi0gICAgY29tcGxldGVTd2lwZUdl
c3R1cmUoKTsKIH0KIAogZnVuY3Rpb24gd2lsbEVuZFN3aXBlQ2FsbGJhY2soKQpAQCAtNzUsNyAr
NDcsNiBAQCBmdW5jdGlvbiBkaWRFbmRTd2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRpZEVu
ZFN3aXBlIik7CiAKLSAgICBzaG91bGRCZSgwLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMo
KSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBiZSBlbXB0eS4gVGhlIHN3aXBlIGlzbid0IGNvbXBsZXRl
IHVudGlsIHdlIHNlZSB0aGUgZW5kIG9mIHRoZSBnZXN0dXJlLiIpOwogICAgIHN0YXJ0TWVhc3Vy
aW5nRHVyYXRpb24oInNuYXBzaG90UmVtb3ZhbCIpOwogfQogCkBAIC0xMjEsOCArOTIsOSBAQCB3
aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgIH0KIAogICAgIC8vIFNlY29uZCBwYWdl
IGxvYWRlZC4KLSAgICB3aW5kb3cuc2Nyb2xsVG8oMTAwMCwgMCk7Ci0gICAgc3RhcnRTd2lwZUdl
c3R1cmUoKTsKKyAgICB3aW5kb3cuc2Nyb2xsVG8oMTAwLCAwKTsKKworICAgIHJ1blRlc3QoKTsK
IH07CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL3B1
c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zd2lw
ZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0CmluZGV4IGUzZDNlMDBh
YjlkMGJmZmZlNjY5ZDZhZDg5YTAxN2FmNTdmNzBiODkuLjg5ZGVjZmQ0YzM3MTI1Y2ZiNTU5ODEx
OTY4OWMzZjBjNGExZDg4NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0
ZS1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUv
cHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSw2IEBA
Ci1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50
IChkZWx0YSAxIDAsIHBoYXNlICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhh
c2UgJ2NoYW5nZWQnKQorc3RhcnRTd2lwZUdlc3R1cmUKIGRpZEJlZ2luU3dpcGUKLXN3aXBlIGV2
ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAyNTYg
MCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVk
JykKK2NvbXBsZXRlU3dpcGVHZXN0dXJlCiB3aWxsRW5kU3dpcGUKIGRpZEVuZFN3aXBlCiBkaWRS
ZW1vdmVTd2lwZVNuYXBzaG90CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3Rh
dGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1j
YWNoZWQtYmFjay1zd2lwZS5odG1sCmluZGV4IDU2ZGFkYTQ4OTA0MjhjNDlkZDJkNzFmNzY4NjA5
MDRlMDFmODQzMWYuLjlhOGRjOWQ3ZDlhMTA4ODc1OTI1ZWU0ZDI4OTk3ZTUzODYyZTM4NzAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5o
dG1sCkBAIC02LDI4ICs2LDExIEBAIGh0bWwgewogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc3dpcGUtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gc3RhcnRT
d2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsK
LQotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0g
ICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLX0KLQotZnVuY3Rp
b24gY29tcGxldGVTd2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBl
RXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50
KDI1NiwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAs
IDAsICdlbmRlZCcpOwotfQogCiBmdW5jdGlvbiBkaWRCZWdpblN3aXBlQ2FsbGJhY2soKQogewog
ICAgIGxvZygiZGlkQmVnaW5Td2lwZSIpOwogCi0gICAgc2hvdWxkQmUoZmFsc2UsIGV2ZW50UXVl
dWUuaGFzUGVuZGluZ0V2ZW50cygpLCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5LiBCb3Ro
IHNjcm9sbCBldmVudHMgc2hvdWxkIGJlIHJlcXVpcmVkIHRvIHN0YXJ0IHRoZSBzd2lwZSBiZWNh
dXNlIG9mIHRoZSBzd2lwZS1zdGFydCBoeXN0ZXJlc2lzLiIpOwotCiAgICAgY29tcGxldGVTd2lw
ZUdlc3R1cmUoKTsKIH0KIApAQCAtNDIsNyArMjUsNiBAQCBmdW5jdGlvbiBkaWRFbmRTd2lwZUNh
bGxiYWNrKCkKIHsKICAgICBsb2coImRpZEVuZFN3aXBlIik7CiAKLSAgICBzaG91bGRCZSgwLCBl
dmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBiZSBlbXB0
eS4gVGhlIHN3aXBlIGlzbid0IGNvbXBsZXRlIHVudGlsIHdlIHNlZSB0aGUgZW5kIG9mIHRoZSBn
ZXN0dXJlLiIpOwogICAgIHN0YXJ0TWVhc3VyaW5nRHVyYXRpb24oInNuYXBzaG90UmVtb3ZhbCIp
OwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1h
dGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
d2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC1leHBl
Y3RlZC50eHQKaW5kZXggZGMzNGU5MmQ1ODg0ZWI4ZDFkMzE1MTViNWE4ODYyNzU2ZWIyOTM0Mi4u
MDA1MDc1NWY1NzM3ZDRjZDdhM2MyNGM1NzYyNGI3YTdkZjFjMjYzZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmct
Y3Jhc2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9n
cmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsx
LDQgQEAKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwg
ZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAw
LCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnY2hhbmdl
ZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMjU2IDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2
ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCitwbGF5RXZlbnRTdHJlYW0KK3BsYXlFdmVu
dFN0cmVhbQorY29tcGxldGVTd2lwZUdlc3R1cmUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRt
bCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1z
d2lwaW5nLWNyYXNoLmh0bWwKaW5kZXggMzZlZjM5ZmI0M2U0MzBkYjkxNDYwMzg0NmZkMmJmN2Uz
MjkwNjMwMS4uM2Y4N2EwMzllZTdhOTNjYjY0YTJmMGU2NWQ1MGNiYTA5NzA0NmNjMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxl
LXN3aXBpbmctY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJv
Z3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1sCkBAIC02LDM3ICs2LDY3IEBA
IGh0bWwgewogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gc3RhcnRTd2lwZUdlc3R1cmUoKQorZnVuY3Rp
b24gcnVuVGVzdCgpCiB7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAxMDApOwot
Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAg
ICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAwLCAnYmVnYW4nKTsKLSAgICAKLSAg
ICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goZ29CYWNrKTsKKyAgICBwbGF5RXZl
bnRTdHJlYW0oYFt7CisgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAwLAorICAgICAgICAia0NH
RXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgImtDR0V2ZW50R2VzdHVy
ZUhJRFR5cGUiIDogNiwKKyAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAg
ICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDEyOCwKKyAgICAgICAgIndpbmRvd0xvY2F0aW9u
IiA6ICJ7NDAwLCAzMDB9IgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgInJlbGF0aXZlVGlt
ZU1TIiA6IDgsCisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYxLAorICAgICAg
ICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAia0NHRXZlbnRHZXN0dXJlU3Rh
cnRFbmRTZXJpZXNUeXBlIiA6IDYsCisgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezAsIDB9
IgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDog
NiwKKyAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDgsCisgICAgICAgICJ3aW5kb3dMb2NhdGlv
biIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAxLAor
ICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgImtD
R1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgi
IDogMgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDgsCisg
ICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMSwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERl
bHRhQXhpczIiIDogMSwKKyAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAg
fV1gLCBnb0JhY2spOwogfQogCiBmdW5jdGlvbiBnb0JhY2soKQogewogICAgIHdpbmRvdy5oaXN0
b3J5LmJhY2soKTsKIAotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChjb250
aW51ZVN3aXBlR2VzdHVyZSk7CisgICAgc2V0VGltZW91dChjb250aW51ZVRlc3QsIDApOwogfQog
Ci1mdW5jdGlvbiBjb250aW51ZVN3aXBlR2VzdHVyZSgpCitmdW5jdGlvbiBjb250aW51ZVRlc3Qo
KQogewotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdjaGFuZ2VkJyk7
Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goY29tcGxldGVTd2lwZUdl
c3R1cmUpOworICAgIHBsYXlFdmVudFN0cmVhbShgWworICAgICAgeworICAgICAgICAicmVsYXRp
dmVUaW1lTVMiIDogMCwKKyAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwK
KyAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAxLAorICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAia0NHU2Nyb2xs
V2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAyMCwKKyAgICAgICAgImtDR1NFdmVudFR5cGVG
aWVsZCIgOiAyMgorICAgICAgfV1gLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGNvbXBsZXRlVGVz
dCgpOworICAgICAgfSk7CiB9CiAKLWZ1bmN0aW9uIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCkKK2Z1
bmN0aW9uIGNvbXBsZXRlVGVzdCgpCiB7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVu
dCgxLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMjU2
LCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwg
J2VuZGVkJyk7Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2godGVzdENv
bXBsZXRlKTsKKyAgICBjb21wbGV0ZVN3aXBlR2VzdHVyZSh0ZXN0Q29tcGxldGUpOwogfQogCiBm
dW5jdGlvbiBkaWRCZWdpblN3aXBlQ2FsbGJhY2soKQpAQCAtNzksNyArMTA5LDcgQEAgd2luZG93
Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgdXBkYXRlQ29udGVudCgpOwogCiAgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgc3RhcnRTd2lwZUdlc3R1
cmUoKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKICAgICAgICAgfSwgMCk7CiAgICAgfSwgMCk7
CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3Qu
anMgYi9MYXlvdXRUZXN0cy9zd2lwZS9yZXNvdXJjZXMvc3dpcGUtdGVzdC5qcwppbmRleCBkZDhl
OTAwOWZmZTg0OTU5MDA5OWZkMTgzMjNiY2UzNzNiNzQwNjgwLi4wYzIzNjVkMTMxM2ExODA2Nzdi
OTFhZjJiNDQ5MzNhZTQwODM4Y2NkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9yZXNv
dXJjZXMvc3dpcGUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9yZXNvdXJjZXMvc3dp
cGUtdGVzdC5qcwpAQCAtMSw1MCArMSwzIEBACi12YXIgZXZlbnRRdWV1ZSA9IHsKLSAgICBlbnF1
ZXVlU2Nyb2xsRXZlbnQ6IGZ1bmN0aW9uICh4LCB5LCBwaGFzZSkgewotICAgICAgICB0aGlzLl9x
dWV1ZS5wdXNoKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGxvZygic2Nyb2xsIGV2ZW50IChk
ZWx0YSAiICsgeCArICIgIiArIHkgKyAiLCBwaGFzZSAnIiArIHBoYXNlICsgIicpIik7Ci0gICAg
ICAgICAgICB3aW5kb3cuZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKHgsIHksIHBoYXNlLCAnbm9uZScpOwotICAgICAgICB9KTsKLSAgICAgICAgdGhp
cy5fcHJvY2Vzc0V2ZW50UXVldWVTb29uKCk7Ci0gICAgfSwKLQotICAgIGVucXVldWVTd2lwZUV2
ZW50OiBmdW5jdGlvbiAoeCwgeSwgcGhhc2UpIHsKLSAgICAgICAgdGhpcy5fcXVldWUucHVzaChm
dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBsb2coInN3aXBlIGV2ZW50IChkZWx0YSAiICsgeCAr
ICIgIiArIHkgKyAiLCBwaGFzZSAnIiArIHBoYXNlICsgIicpIik7Ci0gICAgICAgICAgICB3aW5k
b3cuZXZlbnRTZW5kZXIuc3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoeCwg
eSwgcGhhc2UsICdub25lJyk7Ci0gICAgICAgIH0pOwotICAgICAgICB0aGlzLl9wcm9jZXNzRXZl
bnRRdWV1ZVNvb24oKTsKLSAgICB9LAotCi0gICAgaGFzUGVuZGluZ0V2ZW50czogZnVuY3Rpb24g
KCkgewotICAgICAgICByZXR1cm4gdGhpcy5fcXVldWUubGVuZ3RoICE9IDA7Ci0gICAgfSwKLQot
ICAgIGNhbGxBZnRlckV2ZW50RGlzcGF0Y2g6IGZ1bmN0aW9uIChjYWxsYmFjaykgewotICAgICAg
ICB2YXIgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7IAotICAgICAgICAgICAg
aWYgKCFldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKSkgewotICAgICAgICAgICAgICAgIGNs
ZWFySW50ZXJ2YWwoaW50ZXJ2YWwpOwotICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0sIDApOwotICAgIH0sCi0KLSAgICBfcXVldWU6IFtdLAotCi0g
ICAgX3Byb2Nlc3NFdmVudFF1ZXVlOiBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGlmICghdGhpcy5f
cXVldWUubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHZhciBpdGVtID0g
dGhpcy5fcXVldWUuc2hpZnQoKTsKLSAgICAgICAgaXRlbSgpOwotICAgICAgICB0aGlzLl9wcm9j
ZXNzRXZlbnRRdWV1ZVNvb24oKTsKLSAgICB9LAotCi0gICAgX3Byb2Nlc3NFdmVudFF1ZXVlU29v
bjogZnVuY3Rpb24gKCkgewotICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fcHJvY2Vzc2luZ1Rp
bWVvdXQpOwotICAgICAgICB0aGlzLl9wcm9jZXNzaW5nVGltZW91dCA9IHNldFRpbWVvdXQodGhp
cy5fcHJvY2Vzc0V2ZW50UXVldWUuYmluZCh0aGlzKSwgMCk7Ci0gICAgfQotfQotCiBmdW5jdGlv
biBzaG91bGRCZShleHBlY3RlZCwgYWN0dWFsLCBtZXNzYWdlKQogewogICAgIGlmIChleHBlY3Rl
ZCAhPSBhY3R1YWwpCkBAIC04NCw0ICszNywzNyBAQCBmdW5jdGlvbiBtZWFzdXJlZER1cmF0aW9u
U2hvdWxkQmVMZXNzVGhhbihrZXksIHRpbWVJbk1TLCBtZXNzYWdlKQogICAgIHZhciBkdXJhdGlv
biA9IERhdGUubm93KCkgLSB3aW5kb3cubG9jYWxTdG9yYWdlW2tleSArICJzd2lwZVN0YXJ0VGlt
ZSJdOwogICAgIGlmIChkdXJhdGlvbiA+PSB0aW1lSW5NUykKICAgICAgICAgbG9nKCJGYWlsdXJl
LiAiICsgbWVzc2FnZSArICIgKGV4cGVjdGVkOiAiICsgdGltZUluTVMgKyAiLCBhY3R1YWw6ICIg
KyBkdXJhdGlvbiArICIpIik7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQorCitm
dW5jdGlvbiBzdGFydFN3aXBlR2VzdHVyZShjYWxsYmFjaykKK3sKKyAgICBsb2coInN0YXJ0U3dp
cGVHZXN0dXJlIik7CisgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgKGZ1bmN0aW9u
KCkgeworICAgICAgICB1aUNvbnRyb2xsZXIuYmVnaW5CYWNrU3dpcGUoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICB9KTsK
KyAgICB9KSgpO2AsIGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9KTsKK30KKworZnVuY3Rpb24g
Y29tcGxldGVTd2lwZUdlc3R1cmUoY2FsbGJhY2spCit7CisgICAgbG9nKCJjb21wbGV0ZVN3aXBl
R2VzdHVyZSIpOworICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgIChmdW5jdGlvbigp
IHsKKyAgICAgICAgdWlDb250cm9sbGVyLmNvbXBsZXRlQmFja1N3aXBlKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgfSk7
CisgICAgfSkoKTtgLCBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fSk7Cit9CisKK2Z1bmN0aW9u
IHBsYXlFdmVudFN0cmVhbShzdHJlYW0sIGNhbGxiYWNrKQoreworICAgIGxvZygicGxheUV2ZW50
U3RyZWFtIik7CisgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgKGZ1bmN0aW9uKCkg
eworICAgICAgICB1aUNvbnRyb2xsZXIucGxheUJhY2tFdmVudFN0cmVhbShcYCR7c3RyZWFtfVxg
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRl
KCk7CisgICAgICAgIH0pOworICAgIH0pKCk7YCwgY2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkge30p
OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVyZXNp
cy1mYWlsdXJlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zd2lwZS9zd2lwZS1zdGFydC1o
eXN0ZXJlc2lzLWZhaWx1cmVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNWE0ODBhOTgwNGNlMjE5MTRjOGY5ODJmNWJjMDExOWU3ZGViZTU3OS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9z
d2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDIyICswLDAgQEAKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdp
bicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVu
dCAoZGVsdGEgMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwg
cGhhc2UgJ2VuZGVkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicp
Ci1zY3JvbGwgZXZlbnQgKGRlbHRhIDIgMiwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAo
ZGVsdGEgMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhh
c2UgJ2VuZGVkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1z
Y3JvbGwgZXZlbnQgKGRlbHRhIDAgMiwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVs
dGEgMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2Ug
J2VuZGVkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3Jv
bGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEg
MCAyLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2Vu
ZGVkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdtYXliZWdpbicpCi1zY3JvbGwg
ZXZlbnQgKGRlbHRhIDMgMSwgcGhhc2UgJ2JlZ2FuJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMCAw
LCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2VuZGVk
JykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMuaHRtbCBi
L0xheW91dFRlc3RzL3N3aXBlL3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc1ZTY3Yjk3NDEyMzkyY2RiMTQ0N2VhNTdj
MmIwNTU1MjNjNWYwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1cmVzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBAQAotPGhlYWQ+Ci08c3R5bGU+Ci1odG1s
IHsKLSAgICBmb250LXNpemU6IDMycHQ7Ci19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zd2lwZS10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBkb1Nob3J0
U3dpcGVHZXN0dXJlKCkKLXsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7
Ci0KLSAgICAvLyBUb3RhbCBkZWx0YSBvZiAxMCwgMDsgc2hvdWxkIG5vdCBiZSBlbm91Z2ggdG8g
c3RhcnQgYSBzd2lwZS4KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdt
YXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdiZWdh
bicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdjaGFuZ2VkJyk7
Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0KLSAg
ICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goZG9EaWFnb25hbFN3aXBlR2VzdHVy
ZSk7Ci19Ci0KLWZ1bmN0aW9uIGRvRGlhZ29uYWxTd2lwZUdlc3R1cmUoKQotewotICAgIC8vIFRv
dGFsIGRlbHRhIG9mIDIwLCAyMDsgdGhpcyBpcyBvcmRpbmFyaWx5IHN1ZmZpY2llbnQgbWFnbml0
dWRlIHRvIHN0YXJ0IGEgc3dpcGUsCi0gICAgLy8gYnV0IGlzIHRvbyBkaWFnb25hbCB0byBzdGFy
dCBhIHN3aXBlLgotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJl
Z2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMiwgMiwgJ2JlZ2FuJyk7
Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2NoYW5nZWQnKTsKLSAg
ICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnZW5kZWQnKTsKLQotICAgIGV2
ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChkb1ZlcnRpY2FsU3dpcGVHZXN0dXJlKTsK
LX0KLQotZnVuY3Rpb24gZG9WZXJ0aWNhbFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgLy8gVG90YWwg
ZGVsdGEgb2YgMCwgMjA7IHRoaXMgaXMgb3JkaW5hcmlseSBzdWZmaWNpZW50IG1hZ25pdHVkZSB0
byBzdGFydCBhIHN3aXBlLAotICAgIC8vIGJ1dCBpcyBjb21wbGV0ZWx5IHZlcnRpY2FsLCBzbyB3
ZSB3b24ndCBzdGFydCBhIHN3aXBlLgotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQo
MCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwg
MiwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2No
YW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnZW5kZWQn
KTsKLQotICAgIGV2ZW50UXVldWUuY2FsbEFmdGVyRXZlbnREaXNwYXRjaChkb0hvcml6b250YWxU
aGVuVmVydGljYWxTd2lwZUdlc3R1cmUpOwotfQotCi1mdW5jdGlvbiBkb0hvcml6b250YWxUaGVu
VmVydGljYWxTd2lwZUdlc3R1cmUoKQotewotICAgIC8vIFRvdGFsIGRlbHRhIG9mIDEwLCAyMDsg
dGhpcyBpcyBvcmRpbmFyaWx5IHN1ZmZpY2llbnQgbWFnbml0dWRlIHRvIHN0YXJ0IGEgc3dpcGUs
Ci0gICAgLy8gYnV0IGlzIHRvbyB2ZXJ0aWNhbCwgc28gd2Ugd29uJ3Qgc3RhcnQgYSBzd2lwZS4K
LSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAg
IGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdiZWdhbicpOwotICAgIGV2ZW50
UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDIsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1
ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1ZXVlLmNh
bGxBZnRlckV2ZW50RGlzcGF0Y2goZG9SZWd1bGFyU3dpcGVHZXN0dXJlKTsKLX0KLQotZnVuY3Rp
b24gZG9SZWd1bGFyU3dpcGVHZXN0dXJlKCkKLXsKLSAgICAvLyBTd2FwIGluIGEgZGlmZmVyZW50
IGNhbGxiYWNrIHRoYXQgbWFrZXMgc3VyZSB3ZSAqZG8qIHJlYWNoIGRpZEJlZ2luU3dpcGUuCi0g
ICAgdGVzdFJ1bm5lci5jbGVhclRlc3RSdW5uZXJDYWxsYmFja3MoKTsKLSAgICB2YXIgc2F3RGlk
QmVnaW5Td2lwZSA9IGZhbHNlOwotICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZEJlZ2luU3dpcGVD
YWxsYmFjayhmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHNhd0RpZEJlZ2luU3dpcGUgPSB0cnVlOwot
ICAgICAgICAvLyBOZWVkIGEgc3dpcGUtZW5kIGV2ZW50IHRvIGNsZWFuIHVwLgotICAgICAgICBl
dmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdlbmRlZCcpOwotICAgIH0pOwotCi0g
ICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgc2hvdWxkQmUodHJ1ZSwgc2F3RGlkQmVnaW5Td2lwZSwgIlRoZSBs
YXN0IGdlc3R1cmUgc2hvdWxkIHN0YXJ0IGEgc3dpcGUsIGJlY2F1c2UgaXQgaXMgc3VmZmljaWVu
dCBtYWduaXR1ZGUgYW5kIGluIHRoZSBjb3JyZWN0IGRpcmVjdGlvbi4iKQotICAgICAgICB0ZXN0
Q29tcGxldGUoKTsKLSAgICB9KTsKLQotICAgIC8vIFRvdGFsIGRlbHRhIG9mIDMwLCAxMDsgdGhp
cyBzaG91bGQgc3RhcnQgYSBzd2lwZSBhcyB1c3VhbC4KLSAgICBldmVudFF1ZXVlLmVucXVldWVT
d2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9s
bEV2ZW50KDMsIDEsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50
KDAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwg
MCwgJ2VuZGVkJyk7Ci19Ci0KLWZ1bmN0aW9uIGRpZEJlZ2luU3dpcGVOb3RSZWFjaGVkQ2FsbGJh
Y2soKQotewotICAgIGxvZygiRmFpbHVyZS4gU2hvdWxkIG5ldmVyIGJlZ2luIGEgc3dpcGUsIGJl
Y2F1c2UgYWxsIG9mIHRoZSBhdHRlbXB0ZWQgc3dpcGVzIHNob3VsZCBmYWlsIGR1ZSB0byB0aGUg
c3dpcGUtc3RhcnQgaHlzdGVyZXNpcy4iKTsKLX0KLQotZnVuY3Rpb24gaXNGaXJzdFBhZ2UoKQot
ewotICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCJzZWNvbmQiKSA9PSAt
MTsKLX0KLQotd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKLSAgICBpZiAoIXdpbmRvdy5l
dmVudFNlbmRlciB8fCAhd2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgZG9jdW1lbnQuYm9k
eS5pbm5lckhUTUwgPSAiVGhpcyB0ZXN0IG11c3QgYmUgcnVuIGluIFdlYktpdFRlc3RSdW5uZXIu
IjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1M
ID0gaXNGaXJzdFBhZ2UoKSA/ICJmaXJzdCIgOiAic2Vjb25kIjsKLQotICAgIGlmIChpc0ZpcnN0
UGFnZSgpKSB7Ci0gICAgICAgIGluaXRpYWxpemVTd2lwZVRlc3QoKTsKLQotICAgICAgICB0ZXN0
UnVubmVyLmluc3RhbGxEaWRCZWdpblN3aXBlQ2FsbGJhY2soZGlkQmVnaW5Td2lwZU5vdFJlYWNo
ZWRDYWxsYmFjayk7Ci0KLSAgICAgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldl
YktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5IiwgMSk7Ci0gICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgCi0gICAgICAgICAgICB3aW5kb3cubG9jYXRp
b24uaHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmICsgIj9zZWNvbmQiOwotICAgICAgICB9LCAw
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRvU2hvcnRTd2lwZUdlc3R1cmUoKTsK
LX07Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305812</attachid>
            <date>2017-03-29 17:24:05 -0700</date>
            <delta_ts>2017-03-29 18:06:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161675-20170329172405.patch</filename>
            <type>text/plain</type>
            <size>110215</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0NTY2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWEzZDNlMjMxMWNjYzg0OWFjODhjMGRhMGNmMmYyOTNi
NTdkZGU4NC4uNjVlOTFkZjg1OWU3ZGMxZTc1NTY4ZGIzOGRkMDEzODVmNGM1OGNlOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDE3LTAzLTI5ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFN3aXBlIGdlc3R1cmUgdGVzdHMgZG9uJ3Qgd29yayBvbiBtYWNPUyBTaWVycmEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTY3NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMzNzk5MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250
cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3Jt
UGxheUJhY2tFdmVudFN0cmVhbSk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6
YmVnaW5CYWNrU3dpcGUpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNvbXBs
ZXRlQmFja1N3aXBlKToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXph
dGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1bm5l
clNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbTogQWRk
ZWQuCisgICAgICAgIChldmVudElzT2ZUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZlR5cGVzKToK
KyAgICAgICAgKGV2ZW50SXNPZkdlc3R1cmVUeXBlKToKKyAgICAgICAgKGV2ZW50SXNPZkdlc3R1
cmVUeXBlcyk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBkaWN0aW9uYXJ5Rm9yRXZlbnQ6
cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgrW0V2ZW50U2VyaWFsaXplciBjcmVhdGVFdmVu
dEZvckRpY3Rpb25hcnk6aW5XaW5kb3c6cmVsYXRpdmVUb1RpbWU6XSk6CisgICAgICAgICgrW0V2
ZW50U2VyaWFsaXplciBwbGF5RXZlbnRTdHJlYW06aW5XaW5kb3c6Y29tcGxldGlvbkhhbmRsZXI6
XSk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1No
YXJlZEV2ZW50U3RyZWFtc01hYy5oOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVy
L21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0uCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJl
ZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbTogQWRkZWQu
CisgICAgICAgIChiZWdpblN3aXBlQmFja0V2ZW50U3RyZWFtKToKKyAgICAgICAgKGNvbXBsZXRl
U3dpcGVCYWNrRXZlbnRTdHJlYW0pOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICogVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF5QmFja0V2ZW50U3RyZWFtKToKKyAg
ICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZSk6CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUpOgorICAgICAgICAo
V1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbSk6Cisg
ICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1DbGVhckFsbENhbGxiYWNr
cyk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
VUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9zcGkvQ29y
ZUdyYXBoaWNzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvc3BpL0lP
S2l0U1BJLmg6IFJlbmFtZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JT0tpdFNQ
SS5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2Ny
aXB0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6cGxheUJhY2tFdmVudHMpOgorICAg
ICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKToKKyAgICAgICAg
KFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZSk6CisgICAgICAgIChX
VFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKToKKwog
MjAxNy0wMy0yOSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgU2ltdWxhdG9yIHRlc3Rpbmcgc3RvcHMgYWZ0ZXIgdGhlIGZpcnN0IGNyYXNoCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQppbmRleCBl
MmYwZjVlNWVkNzdkZGE2OTI1YjUzM2M1OWY2ZjVmNGFjMWU3ZWE2Li43ZWNjYmE3OWE4Y2Y4NjRh
ZTAxMjk1Y2VhNTBiOTI1OGRmZDdjNjEyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTEzNiw2ICsxMzYsMTggQEAgdm9pZCBV
SVNjcmlwdENvbnRyb2xsZXI6OmFkZFZpZXdUb1dpbmRvdyhKU1ZhbHVlUmVmIGNhbGxiYWNrKQog
ICAgIH0pOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVnaW5CYWNrU3dpcGUoSlNW
YWx1ZVJlZiBjYWxsYmFjaykKK3sKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNvbXBs
ZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7Cit9CisKK3ZvaWQgVUlTY3JpcHRD
b250cm9sbGVyOjpwbGF0Zm9ybVBsYXlCYWNrRXZlbnRTdHJlYW0oSlNTdHJpbmdSZWYsIEpTVmFs
dWVSZWYpCit7Cit9CisKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21hYy9FdmVudFNlcmlh
bGl6ZXJNYWMuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvRXZlbnRTZXJpYWxpemF0aW9uL21h
Yy9FdmVudFNlcmlhbGl6ZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2QyZDU1ZGZiNWQ5ZGRmYWVjYzAx
ZGViY2Q1NTY5YWVkMWNkN2VhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5oCkBAIC0wLDAg
KzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0IDxBcHBL
aXQvQXBwS2l0Lmg+CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KKworQGludGVyZmFjZSBFdmVudFNlcmlhbGl6ZXIgOiBOU09iamVjdAorCisrIChO
U0RpY3Rpb25hcnkgKilkaWN0aW9uYXJ5Rm9yRXZlbnQ6KENHRXZlbnRSZWYpZXZlbnQgcmVsYXRp
dmVUb1RpbWU6KENHRXZlbnRUaW1lc3RhbXApcmVmZXJlbmNlVGltZXN0YW1wOworCisrIChSZXRh
aW5QdHI8Q0dFdmVudFJlZj4pY3JlYXRlRXZlbnRGb3JEaWN0aW9uYXJ5OihOU0RpY3Rpb25hcnkg
KilkaWN0IGluV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyByZWxhdGl2ZVRvVGltZTooQ0dFdmVu
dFRpbWVzdGFtcClyZWZlcmVuY2VUaW1lc3RhbXA7CisKK0BlbmQKKworQGludGVyZmFjZSBFdmVu
dFN0cmVhbVBsYXllciA6IE5TT2JqZWN0IHsKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXkg
Kj4gX3JlbWFpbmluZ0V2ZW50RGljdGlvbmFyaWVzOworICAgIFJldGFpblB0cjxOU1dpbmRvdyAq
PiBfd2luZG93OworICAgIEJsb2NrUHRyPHZvaWQgKCk+IF9jb21wbGV0aW9uSGFuZGxlcjsKKyAg
ICB1aW50NjRfdCBfc3RhcnRUaW1lOworfQorCisrICh2b2lkKXBsYXlTdHJlYW06KE5TQXJyYXk8
TlNEaWN0aW9uYXJ5ICo+ICopZXZlbnREaWN0cyB3aW5kb3c6KE5TV2luZG93ICopd2luZG93IGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKCkpY29tcGxldGlvbkhhbmRsZXI7CisKK0BlbmQKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXph
dGlvbi9tYWMvRXZlbnRTZXJpYWxpemVyTWFjLm1tIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9F
dmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2VyaWFsaXplck1hYy5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
Njc1Mzk2ZTE4ZjRkZWIzNWVjODJkYjk4NjE5MjU0NTYwYjY1ZTJhCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL0V2ZW50U2Vy
aWFsaXplck1hYy5tbQpAQCAtMCwwICsxLDMyMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorI2ltcG9ydCAiRXZlbnRTZXJpYWxpemVyTWFjLmgiCisKKyNpZiBQTEFURk9STShN
QUMpCisKKyNpbXBvcnQgIkNvcmVHcmFwaGljc1NQSS5oIgorI2ltcG9ydCAiSU9LaXRTUEkuaCIK
KyNpbXBvcnQgPGFsZ29yaXRobT4KKyNpbXBvcnQgPG1hY2gvbWFjaF90aW1lLmg+CisjaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+CisKKyNkZWZpbmUgTU9VU0VfRVZFTlRfVFlQRVMgXAorICAgIChD
R1NFdmVudFR5cGUpa0NHRXZlbnRMZWZ0TW91c2VEb3duLCBcCisgICAgKENHU0V2ZW50VHlwZSlr
Q0dFdmVudExlZnRNb3VzZVVwLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudFJpZ2h0TW91
c2VEb3duLCBcCisgICAgKENHU0V2ZW50VHlwZSlrQ0dFdmVudFJpZ2h0TW91c2VVcCwgXAorICAg
IChDR1NFdmVudFR5cGUpa0NHRXZlbnRNb3VzZU1vdmVkLCBcCisgICAgKENHU0V2ZW50VHlwZSlr
Q0dFdmVudExlZnRNb3VzZURyYWdnZWQsIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50Umln
aHRNb3VzZURyYWdnZWQsIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50T3RoZXJNb3VzZURv
d24sIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50T3RoZXJNb3VzZVVwLCBcCisgICAgKENH
U0V2ZW50VHlwZSlrQ0dFdmVudE90aGVyTW91c2VEcmFnZ2VkCisKKyNkZWZpbmUgS0VZX0VWRU5U
X1RZUEVTIFwKKyAgICAoQ0dTRXZlbnRUeXBlKWtDR0V2ZW50S2V5RG93biwgXAorICAgIChDR1NF
dmVudFR5cGUpa0NHRXZlbnRLZXlVcCwgXAorICAgIChDR1NFdmVudFR5cGUpa0NHRXZlbnRGbGFn
c0NoYW5nZWQKKworI2RlZmluZSBHRVNUVVJFX0VWRU5UX1RZUEVTIFwKKyAgICBrQ0dTRXZlbnRH
ZXN0dXJlLCBcCisgICAga0NHU0V2ZW50Rmx1aWRUb3VjaEdlc3R1cmUsIFwKKyAgICBrQ0dTRXZl
bnREb2NrQ29udHJvbAorCitib29sIGV2ZW50SXNPZlR5cGUoQ0dFdmVudFJlZiBldmVudCwgQ0dT
RXZlbnRUeXBlIHR5cGUpCit7CisgICAgcmV0dXJuIChDR1NFdmVudFR5cGUpQ0dFdmVudEdldFR5
cGUoZXZlbnQpID09IHR5cGU7Cit9CisKK2Jvb2wgZXZlbnRJc09mVHlwZXMoQ0dFdmVudFJlZikg
eyByZXR1cm4gZmFsc2U7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgLi4uIFR5cGVzPgorYm9vbCBl
dmVudElzT2ZUeXBlcyhDR0V2ZW50UmVmIGV2ZW50LCBDR1NFdmVudFR5cGUgZmlyc3QsIFR5cGVz
IC4uLiByZXN0KQoreworICAgIHJldHVybiBldmVudElzT2ZUeXBlKGV2ZW50LCBmaXJzdCkgfHwg
ZXZlbnRJc09mVHlwZXMoZXZlbnQsIHJlc3QuLi4pOworfQorCitib29sIGV2ZW50SXNPZkdlc3R1
cmVUeXBlKENHRXZlbnRSZWYgZXZlbnQsIElPSElERXZlbnRUeXBlIHR5cGUpCit7CisgICAgcmV0
dXJuIChJT0hJREV2ZW50VHlwZSlDR0V2ZW50R2V0SW50ZWdlclZhbHVlRmllbGQoZXZlbnQsIGtD
R0V2ZW50R2VzdHVyZUhJRFR5cGUpID09IHR5cGU7Cit9CisKK2Jvb2wgZXZlbnRJc09mR2VzdHVy
ZVR5cGVzKENHRXZlbnRSZWYpIHsgcmV0dXJuIGZhbHNlOyB9CisKK3RlbXBsYXRlPHR5cGVuYW1l
IC4uLiBUeXBlcz4KK2Jvb2wgZXZlbnRJc09mR2VzdHVyZVR5cGVzKENHRXZlbnRSZWYgZXZlbnQs
IElPSElERXZlbnRUeXBlIGZpcnN0LCBUeXBlcyAuLi4gcmVzdCkKK3sKKyAgICBpZiAoIWV2ZW50
SXNPZlR5cGVzKGV2ZW50LCBHRVNUVVJFX0VWRU5UX1RZUEVTKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIHJldHVybiBldmVudElzT2ZHZXN0dXJlVHlwZShldmVudCwgZmlyc3QpIHx8IGV2
ZW50SXNPZkdlc3R1cmVUeXBlcyhldmVudCwgcmVzdC4uLik7Cit9CisKKyNkZWZpbmUgRk9SX0VB
Q0hfQ0dFVkVOVF9JTlRFR0VSX0ZJRUxEKG1hY3JvKSBcCisgICAgbWFjcm8odHJ1ZSwga0NHU0V2
ZW50VHlwZUZpZWxkKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKHJhd0V2ZW50
LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZl
bnREZWx0YUF4aXMxKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMocmF3RXZlbnQsIGtDR1NF
dmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRab29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudERlbHRh
QXhpczIpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhyYXdFdmVudCwga0NHU0V2ZW50U2Ny
b2xsV2hlZWwsIGtDR1NFdmVudFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMykg
XAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKHJhd0V2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVl
bCwga0NHU0V2ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMpIFwKKyAg
ICBtYWNybyhldmVudElzT2ZUeXBlcyhyYXdFdmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtD
R1NFdmVudFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50TW9tZW50dW1QaGFzZSkgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZlR5cGVzKHJhd0V2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2
ZW50Wm9vbSksIGtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEpIFwKKyAgICBtYWNy
byhldmVudElzT2ZUeXBlcyhyYXdFdmVudCwga0NHU0V2ZW50U2Nyb2xsV2hlZWwsIGtDR1NFdmVu
dFpvb20pLCBrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyKSBcCisgICAgbWFjcm8o
ZXZlbnRJc09mVHlwZXMocmF3RXZlbnQsIGtDR1NFdmVudFNjcm9sbFdoZWVsLCBrQ0dTRXZlbnRa
b29tKSwga0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMykgXAorICAgIG1hY3JvKGV2
ZW50SXNPZlR5cGVzKHJhd0V2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9v
bSksIGtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxDb3VudCkgXAorICAgIG1hY3JvKGV2ZW50SXNP
ZlR5cGVzKHJhd0V2ZW50LCBrQ0dTRXZlbnRTY3JvbGxXaGVlbCwga0NHU0V2ZW50Wm9vbSksIGtD
R1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSkgXAorICAgIFwKKyAgICBtYWNybyhldmVudElz
T2ZUeXBlcyhyYXdFdmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50QnV0dG9u
TnVtYmVyKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMocmF3RXZlbnQsIE1PVVNFX0VWRU5U
X1RZUEVTKSwga0NHTW91c2VFdmVudENsaWNrU3RhdGUpIFwKKyAgICBtYWNybyhldmVudElzT2ZU
eXBlcyhyYXdFdmVudCwgTU9VU0VfRVZFTlRfVFlQRVMpLCBrQ0dNb3VzZUV2ZW50RGVsdGFYKSBc
CisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMocmF3RXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwg
a0NHTW91c2VFdmVudERlbHRhWSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKHJhd0V2ZW50
LCBNT1VTRV9FVkVOVF9UWVBFUyksIGtDR01vdXNlRXZlbnRTdWJ0eXBlKSBcCisgICAgbWFjcm8o
ZXZlbnRJc09mVHlwZXMocmF3RXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVu
dE51bWJlcikgXAorICAgIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhyYXdFdmVudCwgS0VZ
X0VWRU5UX1RZUEVTKSwga0NHS2V5Ym9hcmRFdmVudEF1dG9yZXBlYXQpIFwKKyAgICBtYWNybyhl
dmVudElzT2ZUeXBlcyhyYXdFdmVudCwgS0VZX0VWRU5UX1RZUEVTKSwga0NHS2V5Ym9hcmRFdmVu
dEtleWJvYXJkVHlwZSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKHJhd0V2ZW50LCBLRVlf
RVZFTlRfVFlQRVMpLCBrQ0dLZXlib2FyZEV2ZW50S2V5Y29kZSkgXAorICAgIFwKKyAgICBtYWNy
byhldmVudElzT2ZUeXBlcyhyYXdFdmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyksIGtDR0V2ZW50
R2VzdHVyZUhJRFR5cGUpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhyYXdFdmVudCwgR0VT
VFVSRV9FVkVOVF9UWVBFUyksIGtDR0V2ZW50R2VzdHVyZUJlaGF2aW9yKSBcCisgICAgbWFjcm8o
ZXZlbnRJc09mVHlwZXMocmF3RXZlbnQsIEdFU1RVUkVfRVZFTlRfVFlQRVMpLCBrQ0dFdmVudEdl
c3R1cmVGbGF2b3IpIFwKKyAgICBtYWNybyhldmVudElzT2ZUeXBlcyhyYXdFdmVudCwgR0VTVFVS
RV9FVkVOVF9UWVBFUyksIGtDR0V2ZW50R2VzdHVyZU1hc2spIFwKKyAgICBtYWNybyhldmVudElz
T2ZUeXBlcyhyYXdFdmVudCwgR0VTVFVSRV9FVkVOVF9UWVBFUyksIGtDR0V2ZW50R2VzdHVyZVBo
YXNlKSBcCisgICAgbWFjcm8oZXZlbnRJc09mVHlwZXMocmF3RXZlbnQsIEdFU1RVUkVfRVZFTlRf
VFlQRVMpLCBrQ0dFdmVudEdlc3R1cmVTdGFnZSkgXAorICAgIFwKKyAgICBtYWNybyhldmVudElz
T2ZHZXN0dXJlVHlwZShyYXdFdmVudCwga0lPSElERXZlbnRUeXBlU2Nyb2xsKSwga0NHRXZlbnRT
Y3JvbGxHZXN0dXJlRmxhZ0JpdHMpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVy
ZVR5cGUocmF3RXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50
U3dpcGVHZXN0dXJlRmxhZ0JpdHMpIFwKKyAgICBtYWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShy
YXdFdmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdhdGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJl
U3dpcGVNYXNrKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUocmF3RXZlbnQsIGtJ
T0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlTW90aW9u
KSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUocmF3RXZlbnQsIGtJT0hJREV2ZW50
VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmFsdWUpIFwKKyAgICBt
YWNybyhldmVudElzT2ZHZXN0dXJlVHlwZShyYXdFdmVudCwga0lPSElERXZlbnRUeXBlTmF2aWdh
dGlvblN3aXBlKSwga0NHRXZlbnRHZXN0dXJlRmxhdm9yKSBcCisgICAgXAorICAgIG1hY3JvKGV2
ZW50SXNPZkdlc3R1cmVUeXBlcyhyYXdFdmVudCwga0NHSElERXZlbnRUeXBlR2VzdHVyZVN0YXJ0
ZWQsIGtDR0hJREV2ZW50VHlwZUdlc3R1cmVFbmRlZCksIGtDR0V2ZW50R2VzdHVyZVN0YXJ0RW5k
U2VyaWVzVHlwZSkKKworI2RlZmluZSBGT1JfRUFDSF9DR0VWRU5UX0RPVUJMRV9GSUVMRChtYWNy
bykgXAorICAgIG1hY3JvKGV2ZW50SXNPZlR5cGVzKHJhd0V2ZW50LCBHRVNUVVJFX0VWRU5UX1RZ
UEVTKSwga0NHRXZlbnRHZXN0dXJlUHJvZ3Jlc3MpIFwKKyAgICBcCisgICAgbWFjcm8oZXZlbnRJ
c09mVHlwZXMocmF3RXZlbnQsIE1PVVNFX0VWRU5UX1RZUEVTKSwga0NHTW91c2VFdmVudFByZXNz
dXJlKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKHJhd0V2ZW50LCBr
SU9ISURFdmVudFR5cGVab29tKSwga0NHRXZlbnRHZXN0dXJlWm9vbURlbHRhWCkgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKHJhd0V2ZW50LCBrSU9ISURFdmVudFR5cGVab29tKSwg
a0NHRXZlbnRHZXN0dXJlWm9vbURlbHRhWSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVU
eXBlKHJhd0V2ZW50LCBrSU9ISURFdmVudFR5cGVab29tKSwga0NHRXZlbnRHZXN0dXJlWm9vbVZh
bHVlKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKHJhd0V2ZW50LCBr
SU9ISURFdmVudFR5cGVSb3RhdGlvbiksIGtDR0V2ZW50R2VzdHVyZVJvdGF0aW9uVmFsdWUpIFwK
KyAgICBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUocmF3RXZlbnQsIGtJT0hJREV2
ZW50VHlwZVNjcm9sbCksIGtDR0V2ZW50R2VzdHVyZVNjcm9sbFgpIFwKKyAgICBtYWNybyhldmVu
dElzT2ZHZXN0dXJlVHlwZShyYXdFdmVudCwga0lPSElERXZlbnRUeXBlU2Nyb2xsKSwga0NHRXZl
bnRHZXN0dXJlU2Nyb2xsWSkgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKHJhd0V2
ZW50LCBrSU9ISURFdmVudFR5cGVTY3JvbGwpLCBrQ0dFdmVudEdlc3R1cmVTY3JvbGxaKSBcCisg
ICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKHJhd0V2ZW50LCBrSU9ISURFdmVu
dFR5cGVOYXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZVBvc2l0aW9uWCkgXAor
ICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKHJhd0V2ZW50LCBrSU9ISURFdmVudFR5cGVO
YXZpZ2F0aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZVBvc2l0aW9uWSkgXAorICAgIG1h
Y3JvKGV2ZW50SXNPZkdlc3R1cmVUeXBlKHJhd0V2ZW50LCBrSU9ISURFdmVudFR5cGVOYXZpZ2F0
aW9uU3dpcGUpLCBrQ0dFdmVudEdlc3R1cmVTd2lwZVByb2dyZXNzKSBcCisgICAgbWFjcm8oZXZl
bnRJc09mR2VzdHVyZVR5cGUocmF3RXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lw
ZSksIGtDR0V2ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlYKSBcCisgICAgbWFjcm8oZXZlbnRJc09m
R2VzdHVyZVR5cGUocmF3RXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtD
R0V2ZW50R2VzdHVyZVN3aXBlVmVsb2NpdHlZKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVy
ZVR5cGUocmF3RXZlbnQsIGtJT0hJREV2ZW50VHlwZU5hdmlnYXRpb25Td2lwZSksIGtDR0V2ZW50
R2VzdHVyZVN3aXBlVmVsb2NpdHlaKSBcCisgICAgXAorICAgIG1hY3JvKGV2ZW50SXNPZkdlc3R1
cmVUeXBlKHJhd0V2ZW50LCBrSU9ISURFdmVudFR5cGVGb3JjZSksIGtDR0V2ZW50VHJhbnNpdGlv
blByb2dyZXNzKSBcCisgICAgbWFjcm8oZXZlbnRJc09mR2VzdHVyZVR5cGUocmF3RXZlbnQsIGtJ
T0hJREV2ZW50VHlwZUZvcmNlKSwga0NHRXZlbnRTdGFnZVByZXNzdXJlKQorCisjZGVmaW5lIExP
QURfSU5URUdFUl9GSUVMRF9GUk9NX0VWRU5UKGV2ZW50VHlwZUZpbHRlciwgZmllbGQpIFwKK14g
eyBcCisgICAgaWYgKCEoZXZlbnRUeXBlRmlsdGVyKSkgXAorICAgICAgICByZXR1cm47IFwKKyAg
ICBpbnQ2NF90IHZhbHVlID0gQ0dFdmVudEdldEludGVnZXJWYWx1ZUZpZWxkKHJhd0V2ZW50LCBm
aWVsZCk7IFwKKyAgICBpbnQ2NF90IHBsYWluVmFsdWUgPSBDR0V2ZW50R2V0SW50ZWdlclZhbHVl
RmllbGQocmF3UGxhaW5FdmVudCwgZmllbGQpOyBcCisgICAgaWYgKHZhbHVlICE9IHBsYWluVmFs
dWUpIFwKKyAgICAgICAgZGljdFtAI2ZpZWxkXSA9IEAodmFsdWUpOyBcCit9KCk7CisKKyNkZWZp
bmUgTE9BRF9ET1VCTEVfRklFTERfRlJPTV9FVkVOVChldmVudFR5cGVGaWx0ZXIsIGZpZWxkKSBc
CiteIHsgXAorICAgIGlmICghKGV2ZW50VHlwZUZpbHRlcikpIFwKKyAgICAgICAgcmV0dXJuOyBc
CisgICAgZG91YmxlIHZhbHVlID0gQ0dFdmVudEdldERvdWJsZVZhbHVlRmllbGQocmF3RXZlbnQs
IGZpZWxkKTsgXAorICAgIGlmICghaXNuYW4odmFsdWUpKSB7IFwKKyAgICAgICAgZG91YmxlIHBs
YWluVmFsdWUgPSBDR0V2ZW50R2V0RG91YmxlVmFsdWVGaWVsZChyYXdQbGFpbkV2ZW50LCBmaWVs
ZCk7IFwKKyAgICAgICAgaWYgKGZhYnModmFsdWUgLSBwbGFpblZhbHVlKSA+PSBGTFRfRVBTSUxP
TikgXAorICAgICAgICAgICAgZGljdFtAI2ZpZWxkXSA9IEAodmFsdWUpOyBcCisgICAgfSBcCit9
KCk7CisKKyNkZWZpbmUgU1RPUkVfSU5URUdFUl9GSUVMRF9UT19FVkVOVChldmVudFR5cGVGaWx0
ZXIsIGZpZWxkKSBcCiteIHsgXAorICAgIGlmICghKGV2ZW50VHlwZUZpbHRlcikpIFwKKyAgICAg
ICAgcmV0dXJuOyBcCisgICAgTlNOdW1iZXIgKnZhbHVlID0gZGljdFtAI2ZpZWxkXTsgXAorICAg
IGlmICh2YWx1ZSkgXAorICAgICAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQocmF3RXZl
bnQsIGZpZWxkLCB2YWx1ZS51bnNpZ25lZExvbmdMb25nVmFsdWUpOyBcCit9KCk7CisKKyNkZWZp
bmUgU1RPUkVfRE9VQkxFX0ZJRUxEX1RPX0VWRU5UKGV2ZW50VHlwZUZpbHRlciwgZmllbGQpIFwK
K14geyBcCisgICAgaWYgKCEoZXZlbnRUeXBlRmlsdGVyKSkgXAorICAgICAgICByZXR1cm47IFwK
KyAgICBOU051bWJlciAqdmFsdWUgPSBkaWN0W0AjZmllbGRdOyBcCisgICAgaWYgKHZhbHVlKSBc
CisgICAgICAgIENHRXZlbnRTZXREb3VibGVWYWx1ZUZpZWxkKHJhd0V2ZW50LCBmaWVsZCwgdmFs
dWUuZG91YmxlVmFsdWUpOyBcCit9KCk7CisKK0BpbXBsZW1lbnRhdGlvbiBFdmVudFNlcmlhbGl6
ZXIKKworKyAoTlNEaWN0aW9uYXJ5ICopZGljdGlvbmFyeUZvckV2ZW50OihDR0V2ZW50UmVmKXJh
d0V2ZW50IHJlbGF0aXZlVG9UaW1lOihDR0V2ZW50VGltZXN0YW1wKXJlZmVyZW5jZVRpbWVzdGFt
cAoreworICAgIFJldGFpblB0cjxDR0V2ZW50UmVmPiBwbGFpbkV2ZW50ID0gYWRvcHRDRihDR0V2
ZW50Q3JlYXRlKE5VTEwpKTsKKyAgICBDR0V2ZW50UmVmIHJhd1BsYWluRXZlbnQgPSBwbGFpbkV2
ZW50LmdldCgpOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqZGljdCA9IFtbW05TTXV0YWJs
ZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKworICAgIEZPUl9FQUNIX0NH
RVZFTlRfSU5URUdFUl9GSUVMRChMT0FEX0lOVEVHRVJfRklFTERfRlJPTV9FVkVOVCk7CisgICAg
Rk9SX0VBQ0hfQ0dFVkVOVF9ET1VCTEVfRklFTEQoTE9BRF9ET1VCTEVfRklFTERfRlJPTV9FVkVO
VCk7CisKKyAgICBDR0V2ZW50VGltZXN0YW1wIHRpbWVzdGFtcCA9IENHRXZlbnRHZXRUaW1lc3Rh
bXAocmF3RXZlbnQpOworICAgIGRpY3RbQCJyZWxhdGl2ZVRpbWVNUyJdID0gQChzdGQ6Om1heChz
dGF0aWNfY2FzdDxkb3VibGU+KHRpbWVzdGFtcCAtIHJlZmVyZW5jZVRpbWVzdGFtcCkgLyBOU0VD
X1BFUl9NU0VDLCAwLjApKTsKKworICAgIENHU0V2ZW50VHlwZSBldmVudFR5cGUgPSAoQ0dTRXZl
bnRUeXBlKUNHRXZlbnRHZXRJbnRlZ2VyVmFsdWVGaWVsZChyYXdFdmVudCwga0NHU0V2ZW50VHlw
ZUZpZWxkKTsKKyAgICBpZiAoZXZlbnRUeXBlID09IGtDR1NFdmVudEdlc3R1cmUgfHwgZXZlbnRU
eXBlID09IGtDR1NFdmVudEZsdWlkVG91Y2hHZXN0dXJlIHx8IGV2ZW50VHlwZSA9PSBrQ0dTRXZl
bnREb2NrQ29udHJvbCkgeworICAgICAgICBpZiAoQ0dFdmVudEdldEludGVnZXJWYWx1ZUZpZWxk
KHJhd0V2ZW50LCBrQ0dFdmVudEdlc3R1cmVJc1ByZWZsaWdodCkpIHsKKyAgICAgICAgICAgIGRp
Y3RbQCJrQ0dFdmVudEdlc3R1cmVJc1ByZWZsaWdodCJdID0gQFlFUzsKKyAgICAgICAgICAgIGRp
Y3RbQCJrQ0dFdmVudEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcyJdID0gQChDR0V2ZW50R2V0RG91
YmxlVmFsdWVGaWVsZChyYXdFdmVudCwga0NHRXZlbnRHZXN0dXJlUHJlZmxpZ2h0UHJvZ3Jlc3Mp
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGRpY3RbQCJ3aW5kb3dMb2NhdGlvbiJdID0gTlNT
dHJpbmdGcm9tUG9pbnQoTlNQb2ludEZyb21DR1BvaW50KENHRXZlbnRHZXRXaW5kb3dMb2NhdGlv
bihyYXdFdmVudCkpKTsKKworICAgIGF1dG8gZmxhZ3MgPSBzdGF0aWNfY2FzdDxDR0V2ZW50Rmxh
Z3M+KENHRXZlbnRHZXRGbGFncyhyYXdFdmVudCkgJiB+TlhfTk9OQ09BTFNFU0NFRE1BU0spOwor
ICAgIGF1dG8gcGxhaW5GbGFncyA9IHN0YXRpY19jYXN0PENHRXZlbnRGbGFncz4oQ0dFdmVudEdl
dEZsYWdzKHJhd1BsYWluRXZlbnQpICYgfk5YX05PTkNPQUxTRVNDRURNQVNLKTsKKyAgICBpZiAo
ZmxhZ3MgIT0gcGxhaW5GbGFncykKKyAgICAgICAgZGljdFtAImZsYWdzIl0gPSBAKGZsYWdzKTsK
KworICAgIHJldHVybiBkaWN0OworfQorCisrIChSZXRhaW5QdHI8Q0dFdmVudFJlZj4pY3JlYXRl
RXZlbnRGb3JEaWN0aW9uYXJ5OihOU0RpY3Rpb25hcnkgKilkaWN0IGluV2luZG93OihOU1dpbmRv
dyAqKXdpbmRvdyByZWxhdGl2ZVRvVGltZTooQ0dFdmVudFRpbWVzdGFtcClyZWZlcmVuY2VUaW1l
c3RhbXAKK3sKKyAgICBSZXRhaW5QdHI8Q0dFdmVudFJlZj4gZXZlbnQgPSBhZG9wdENGKENHRXZl
bnRDcmVhdGUoTlVMTCkpOworICAgIENHRXZlbnRSZWYgcmF3RXZlbnQgPSBldmVudC5nZXQoKTsK
KworICAgIEZPUl9FQUNIX0NHRVZFTlRfSU5URUdFUl9GSUVMRChTVE9SRV9JTlRFR0VSX0ZJRUxE
X1RPX0VWRU5UKTsKKyAgICBGT1JfRUFDSF9DR0VWRU5UX0RPVUJMRV9GSUVMRChTVE9SRV9ET1VC
TEVfRklFTERfVE9fRVZFTlQpOworCisgICAgaWYgKGRpY3RbQCJyZWxhdGl2ZVRpbWVNUyJdKQor
ICAgICAgICBDR0V2ZW50U2V0VGltZXN0YW1wKGV2ZW50LmdldCgpLCByZWZlcmVuY2VUaW1lc3Rh
bXAgKyBzdGF0aWNfY2FzdDxDR0V2ZW50VGltZXN0YW1wPigoW2RpY3RbQCJyZWxhdGl2ZVRpbWVN
UyJdIGRvdWJsZVZhbHVlXSAqIE5TRUNfUEVSX01TRUMpKSk7CisKKyAgICBpZiAoW2RpY3RbQCJr
Q0dFdmVudEdlc3R1cmVJc1ByZWZsaWdodCJdIGJvb2xWYWx1ZV0pIHsKKyAgICAgICAgQ0dFdmVu
dFNldEludGVnZXJWYWx1ZUZpZWxkKHJhd0V2ZW50LCBrQ0dFdmVudEdlc3R1cmVJc1ByZWZsaWdo
dCwgMSk7CisgICAgICAgIENHRXZlbnRTZXREb3VibGVWYWx1ZUZpZWxkKHJhd0V2ZW50LCBrQ0dF
dmVudEdlc3R1cmVQcmVmbGlnaHRQcm9ncmVzcywgW2RpY3RbQCJrQ0dFdmVudEdlc3R1cmVQcmVm
bGlnaHRQcm9ncmVzcyJdIGRvdWJsZVZhbHVlXSk7CisgICAgfQorCisgICAgaWYgKGRpY3RbQCJ3
aW5kb3dMb2NhdGlvbiJdKSB7CisgICAgICAgIENHUG9pbnQgd2luZG93TG9jYXRpb24gPSBOU1Bv
aW50VG9DR1BvaW50KE5TUG9pbnRGcm9tU3RyaW5nKGRpY3RbQCJ3aW5kb3dMb2NhdGlvbiJdKSk7
CisgICAgICAgIENHRXZlbnRTZXRXaW5kb3dMb2NhdGlvbihyYXdFdmVudCwgd2luZG93TG9jYXRp
b24pOworCisgICAgICAgIE5TUG9pbnQgc2NyZWVuUG9pbnQgPSBbd2luZG93IGNvbnZlcnRSZWN0
VG9TY3JlZW46TlNNYWtlUmVjdCh3aW5kb3dMb2NhdGlvbi54LCB3aW5kb3dMb2NhdGlvbi55LCAx
LCAxKV0ub3JpZ2luOworICAgICAgICBDR0V2ZW50U2V0TG9jYXRpb24ocmF3RXZlbnQsIENHUG9p
bnRNYWtlKHNjcmVlblBvaW50LngsIE5TU2NyZWVuLnNjcmVlbnMuZmlyc3RPYmplY3QuZnJhbWUu
c2l6ZS5oZWlnaHQgLSBzY3JlZW5Qb2ludC55KSk7CisgICAgfQorCisgICAgaWYgKGRpY3RbQCJm
bGFncyJdKQorICAgICAgICBDR0V2ZW50U2V0RmxhZ3MocmF3RXZlbnQsIHN0YXRpY19jYXN0PENH
RXZlbnRGbGFncz4oW2RpY3RbQCJmbGFncyJdIHVuc2lnbmVkTG9uZ0xvbmdWYWx1ZV0pKTsKKwor
ICAgIENHRXZlbnRTZXRJbnRlZ2VyVmFsdWVGaWVsZChyYXdFdmVudCwga0NHU0V2ZW50V2luZG93
SURGaWVsZCwgd2luZG93LndpbmRvd051bWJlcik7CisKKyAgICByZXR1cm4gZXZlbnQ7Cit9CisK
K0BlbmQKKworQGltcGxlbWVudGF0aW9uIEV2ZW50U3RyZWFtUGxheWVyCisKK2NvbnN0IGZsb2F0
IGV2ZW50RGlzcGF0Y2hUaW1lclJhdGUgPSAxLiAvIDEyMC47CisKKysgKHZvaWQpcGxheVN0cmVh
bTooTlNBcnJheTxOU0RpY3Rpb25hcnkgKj4gKilldmVudERpY3RzIHdpbmRvdzooTlNXaW5kb3cg
Kil3aW5kb3cgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoKSljb21wbGV0aW9uSGFuZGxlcgor
eworICAgIFJldGFpblB0cjxFdmVudFN0cmVhbVBsYXllcj4gcGxheWVyID0gYWRvcHROUyhbW0V2
ZW50U3RyZWFtUGxheWVyIGFsbG9jXSBpbml0XSk7CisKKyAgICBwbGF5ZXItPl9yZW1haW5pbmdF
dmVudERpY3Rpb25hcmllcyA9IGFkb3B0TlMoW2V2ZW50RGljdHMgbXV0YWJsZUNvcHldKTsKKyAg
ICBwbGF5ZXItPl93aW5kb3cgPSB3aW5kb3c7CisKKyAgICBpZiAoY29tcGxldGlvbkhhbmRsZXIp
CisgICAgICAgIHBsYXllci0+X2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBs
ZXRpb25IYW5kbGVyKTsKKworICAgIHBsYXllci0+X3N0YXJ0VGltZSA9IG1hY2hfYWJzb2x1dGVf
dGltZSgpOworCisgICAgW05TVGltZXIgc2NoZWR1bGVkVGltZXJXaXRoVGltZUludGVydmFsOmV2
ZW50RGlzcGF0Y2hUaW1lclJhdGUgdGFyZ2V0OnBsYXllci5nZXQoKSBzZWxlY3RvcjpAc2VsZWN0
b3IocGxheWJhY2tUaW1lckZpcmVkOikgdXNlckluZm86bmlsIHJlcGVhdHM6WUVTXTsKK30KKwor
LSAodm9pZClwbGF5YmFja1RpbWVyRmlyZWQ6KE5TVGltZXIgKil0aW1lcgoreworICAgIGF1dG8g
cmVtb3ZlTGlzdCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworICAg
IE5TRXZlbnQgKm5zRXZlbnQgPSBuaWw7CisgICAgZm9yIChpZCBldmVudERpY3QgaW4gX3JlbWFp
bmluZ0V2ZW50RGljdGlvbmFyaWVzLmdldCgpKSB7CisgICAgICAgIFJldGFpblB0cjxDR0V2ZW50
UmVmPiBldmVudCA9IFtFdmVudFNlcmlhbGl6ZXIgY3JlYXRlRXZlbnRGb3JEaWN0aW9uYXJ5OmV2
ZW50RGljdCBpbldpbmRvdzpfd2luZG93LmdldCgpIHJlbGF0aXZlVG9UaW1lOl9zdGFydFRpbWVd
OworICAgICAgICBpZiAoQ0dFdmVudEdldFRpbWVzdGFtcChldmVudC5nZXQoKSkgPCBtYWNoX2Fi
c29sdXRlX3RpbWUoKSkgeworICAgICAgICAgICAgbnNFdmVudCA9IFtOU0V2ZW50IGV2ZW50V2l0
aENHRXZlbnQ6ZXZlbnQuZ2V0KCldOworICAgICAgICAgICAgW05TQXBwIHBvc3RFdmVudDpuc0V2
ZW50IGF0U3RhcnQ6Tk9dOworICAgICAgICAgICAgW3JlbW92ZUxpc3QgYWRkT2JqZWN0OmV2ZW50
RGljdF07CisgICAgICAgIH0KKyAgICB9CisgICAgW19yZW1haW5pbmdFdmVudERpY3Rpb25hcmll
cyByZW1vdmVPYmplY3RzSW5BcnJheTpyZW1vdmVMaXN0LmdldCgpXTsKKworICAgIGlmIChbX3Jl
bWFpbmluZ0V2ZW50RGljdGlvbmFyaWVzIGNvdW50XSkKKyAgICAgICAgcmV0dXJuOworCisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKKyAgICBOU0V2ZW50VHlw
ZSBhcHBsaWNhdGlvbkRlZmluZWRFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUFwcGxpY2F0aW9uRGVm
aW5lZDsKKyNlbHNlCisgICAgTlNFdmVudFR5cGUgYXBwbGljYXRpb25EZWZpbmVkRXZlbnRUeXBl
ID0gTlNBcHBsaWNhdGlvbkRlZmluZWQ7CisjZW5kaWYKKyAgICBbTlNBcHAgcG9zdEV2ZW50OltO
U0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTphcHBsaWNhdGlvbkRlZmluZWRFdmVudFR5cGUgbG9j
YXRpb246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJl
cjowIGNvbnRleHQ6MCBzdWJ0eXBlOjAgZGF0YTE6NDIgZGF0YTI6MF0gYXRTdGFydDpOT107Cisg
ICAgLy8gQmxvY2sgdW50aWwgd2Ugc2VuZCB0aGUgbGFzdCBldmVudCB3ZSBwb3N0ZWQuCisgICAg
d2hpbGUgKHRydWUpIHsKKyAgICAgICAgTlNFdmVudCAqbmV4dEV2ZW50ID0gW05TQXBwIG5leHRF
dmVudE1hdGNoaW5nTWFzazpOU0FueUV2ZW50TWFzayB1bnRpbERhdGU6W05TRGF0ZSBkYXRlV2l0
aFRpbWVJbnRlcnZhbFNpbmNlTm93OmV2ZW50RGlzcGF0Y2hUaW1lclJhdGVdIGluTW9kZTpOU0Rl
ZmF1bHRSdW5Mb29wTW9kZSBkZXF1ZXVlOllFU107CisgICAgICAgIGlmIChuZXh0RXZlbnQudHlw
ZSA9PSBhcHBsaWNhdGlvbkRlZmluZWRFdmVudFR5cGUgJiYgbmV4dEV2ZW50LmRhdGExID09IDQy
KQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlmIChuZXh0RXZlbnQpCisgICAgICAgICAg
ICBbTlNBcHAgc2VuZEV2ZW50Om5leHRFdmVudF07CisgICAgfQorCisgICAgaWYgKF9jb21wbGV0
aW9uSGFuZGxlcikKKyAgICAgICAgX2NvbXBsZXRpb25IYW5kbGVyKCk7CisKKyAgICBbdGltZXIg
aW52YWxpZGF0ZV07Cit9CisKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvU2hhcmVkRXZlbnRTdHJlYW1zTWFj
LmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvU2hhcmVk
RXZlbnRTdHJlYW1zTWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNkODI2YTZmMDBjMWZhMWRmYzBmN2ZhZjQy
MGE4ZjNiYWRmMTEzOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
RXZlbnRTZXJpYWxpemF0aW9uL21hYy9TaGFyZWRFdmVudFN0cmVhbXNNYWMuaApAQCAtMCwwICsx
LDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFBMQVRGT1JNKE1BQykKKworQGNsYXNzIE5TU3RyaW5n
OworCitOU1N0cmluZyAqYmVnaW5Td2lwZUJhY2tFdmVudFN0cmVhbSgpOworTlNTdHJpbmcgKmNv
bXBsZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0oKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL0V2ZW50U2VyaWFsaXphdGlvbi9tYWMvU2hhcmVkRXZlbnRTdHJl
YW1zTWFjLm1tIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFj
L1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODI0MDU5Y2FhZDAxM2YwODkx
ZjIzNTA4ODUwYTA5MzFkNDljZDg4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb24vbWFjL1NoYXJlZEV2ZW50U3RyZWFtc01hYy5tbQpA
QCAtMCwwICsxLDM2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9y
dCAiU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNkZWZp
bmUgUVVPVEUoLi4uKSBAKCNfX1ZBX0FSR1NfXykKKworTlNTdHJpbmcgKmJlZ2luU3dpcGVCYWNr
RXZlbnRTdHJlYW0oKQoreworICAgIHJldHVybiBRVU9URShbCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAwLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2Vz
dHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIg
OiA2LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAxMjgsCisgICAgICAgICAgICAid2luZG93TG9jYXRp
b24iIDogIns0MDAsIDMwMH0iCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJy
ZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUi
IDogNjEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAg
ICAgImtDR0V2ZW50R2VzdHVyZVN0YXJ0RW5kU2VyaWVzVHlwZSIgOiA2LAorICAgICAgICAgICAg
IndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJl
bGF0aXZlVGltZU1TIiA6IDgsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAs
IDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDEsCisgICAgICAg
ICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJr
Q0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Ny
b2xsWCIgOiAyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJyZWxhdGl2ZVRp
bWVNUyIgOiA4LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMSwKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxLAorICAgICAgICAgICAg
ImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZl
VGltZU1TIiA6IDE3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9
IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDEsCisgICAgICAgICAg
ICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9s
bEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIg
OiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDEyCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0
YUF4aXMxIiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTcsCisgICAgICAg
ICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAgICAgICAgImtDR1Nj
cm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogNCwKKyAgICAgICAgICAgICJ3aW5kb3dM
b2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxk
IiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1
cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMjUsCisgICAg
ICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtD
R0V2ZW50R2VzdHVyZVNjcm9sbFkiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQ
aGFzZSIgOiAyLAorICAgICAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6
IDEsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAg
ImtDR0V2ZW50R2VzdHVyZVNjcm9sbFgiIDogMjMKKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyIiA6IDEsCisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAxLAorICAgICAgICAgICAg
InJlbGF0aXZlVGltZU1TIiA6IDI1LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJ
c0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xs
UGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4
aXMyIiA6IDExLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwK
KyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAgICAgICAg
ICAgICJyZWxhdGl2ZVRpbWVNUyIgOiAzMywKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIg
OiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWSIgOiAy
LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAi
a0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZl
bnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIg
OiAyOAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudERlbHRhQXhpczIiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9p
bnREZWx0YUF4aXMxIiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMzMsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAgICAg
ICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMTYsCisgICAgICAgICAgICAi
d2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5
cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDQx
LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAg
ICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDEsCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFn
Qml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDM1CisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMiIgOiAyLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogMSwKKyAgICAg
ICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA0MSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50
RGVsdGFBeGlzMiIgOiAyNCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwg
MzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisg
ICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNDksCisgICAgICAgICAgICAid2luZG93TG9j
YXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNjcm9s
bFkiIDogLTEsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAg
ICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAg
ImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVT
Y3JvbGxYIiA6IDQ1CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3Jv
bGxXaGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVl
bEV2ZW50RGVsdGFBeGlzMiIgOiA0LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQ
b2ludERlbHRhQXhpczEiIDogLTEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogNDks
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cyIgOiAxLAorICAg
ICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAyLAorICAgICAgICAg
ICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMzcsCisgICAgICAgICAg
ICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVu
dFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NH
RXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6
IDU3LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IC0zLAorICAgICAgICAgICAgImtDR0V2
ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJl
RmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA1NworICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEs
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogNSwKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMxIiA6IC0xLAorICAgICAg
ICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDU3LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50
U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnRE
ZWx0YUF4aXMyIiA6IDU0LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAz
MDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZUhJRFR5cGUiIDogNiwKKyAg
ICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA2NSwKKyAgICAgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xs
WSIgOiAtNSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAyLAorICAgICAg
ICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAi
a0NHU0V2ZW50VHlwZUZpZWxkIiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVNj
cm9sbFgiIDogODEKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRTY3JvbGxDb3VudCIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVs
RXZlbnREZWx0YUF4aXMyIiA6IDksCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBv
aW50RGVsdGFBeGlzMSIgOiAtMiwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA2NSwK
KyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAg
ICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiA5MiwKKyAgICAgICAgICAg
ICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50
VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgXSk7Cit9CisKK05TU3RyaW5nICpjb21w
bGV0ZVN3aXBlQmFja0V2ZW50U3RyZWFtKCkKK3sKKyAgICByZXR1cm4gUVVPVEUoWworICAgICAg
ICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAg
ICAgInJlbGF0aXZlVGltZU1TIiA6IDczLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6
ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IC0z
LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAi
a0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZl
bnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIg
OiA3NQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxF
dmVudFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERl
bHRhQXhpczIiIDogMTEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVs
dGFBeGlzMSIgOiAtMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA3MywKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NH
U2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMDYsCisgICAgICAgICAgICAid2lu
ZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVG
aWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDgxLAor
ICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAg
ICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IC0zLAorICAgICAgICAgICAgImtDR0V2ZW50R2Vz
dHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0Jp
dHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAg
ICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiA4NQorICAgICAgICB9LAorICAgICAgICB7
CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisgICAg
ICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMTMsCisgICAgICAgICAg
ICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAtMSwKKyAgICAgICAgICAg
ICJyZWxhdGl2ZVRpbWVNUyIgOiA4MSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50
SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9s
bFBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFB
eGlzMiIgOiAxMjcsCisgICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0i
LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAg
ICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDg5LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9u
IiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6
IC0xLAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAg
ICAia0NHRXZlbnRTY3JvbGxHZXN0dXJlRmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dT
RXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xs
WCIgOiA5MQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hl
ZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVu
dERlbHRhQXhpczIiIDogMTQsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50
RGVsdGFBeGlzMSIgOiAtMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4OSwKKyAg
ICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAg
ICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDIsCisgICAgICAgICAgICAi
a0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMiIgOiAxMzksCisgICAgICAgICAgICAi
d2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAgImtDR1NFdmVudFR5
cGVGaWVsZCIgOiAyMgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDk3
LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAg
ICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRH
ZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFn
Qml0cyIgOiAxLAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDEzNgorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6IDEsCisg
ICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMjAsCisgICAgICAg
ICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFBeGlzMSIgOiAxLAorICAgICAgICAg
ICAgInJlbGF0aXZlVGltZU1TIiA6IDk3LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZl
bnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Ny
b2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0
YUF4aXMyIiA6IDIwNCwKKyAgICAgICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAw
fSIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAg
ICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTA1LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0
aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZ
IiA6IDUsCisgICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlUGhhc2UiIDogMiwKKyAgICAgICAg
ICAgICJrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0cyIgOiAxLAorICAgICAgICAgICAgImtD
R1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3Jv
bGxYIiA6IDkyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dTY3JvbGxX
aGVlbEV2ZW50U2Nyb2xsQ291bnQiIDogMSwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2
ZW50RGVsdGFBeGlzMiIgOiAxNCwKKyAgICAgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9p
bnREZWx0YUF4aXMxIiA6IDIsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTA1LAor
ICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAg
ICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xsUGhhc2UiIDogMiwKKyAgICAgICAgICAg
ICJrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDEzNiwKKyAgICAgICAgICAg
ICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICAgICAia0NHU0V2ZW50
VHlwZUZpZWxkIiA6IDIyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJrQ0dF
dmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDog
MTEzLAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVTY3JvbGxZIiA6IDE0LAorICAgICAgICAgICAgImtDR0V2
ZW50R2VzdHVyZVBoYXNlIiA6IDIsCisgICAgICAgICAgICAia0NHRXZlbnRTY3JvbGxHZXN0dXJl
RmxhZ0JpdHMiIDogMSwKKyAgICAgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisg
ICAgICAgICAgICAia0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCIgOiAxMzMKKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRTY3JvbGxQaGFzZSIgOiAy
LAorICAgICAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMTky
LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyMiwKKyAgICAgICAgICAgICJr
Q0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlzMSIgOiAxLAorICAgICAgICAgICAgImtDR1Njcm9s
bFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDogMSwKKyAgICAgICAgICAgICJyZWxhdGl2ZVRpbWVN
UyIgOiAxMTMsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENvdW50IiA6
IDEsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczIiIDogMTksCisg
ICAgICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAgICAg
ImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczEiIDogNworICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTIxLAorICAgICAgICAgICAg
ImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisgICAgICAgICAgICAia0NHRXZl
bnRHZXN0dXJlSElEVHlwZSIgOiA2LAorICAgICAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIg
OiAyOSwKKyAgICAgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiA0LAorICAgICAgICAg
ICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAgICAgICB9LAorICAgICAgICB7
CisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTIxLAorICAgICAgICAgICAgImtDR0V2
ZW50R2VzdHVyZUhJRFR5cGUiIDogNjIsCisgICAgICAgICAgICAia0NHU0V2ZW50VHlwZUZpZWxk
IiA6IDI5LAorICAgICAgICAgICAgImtDR0V2ZW50R2VzdHVyZVN0YXJ0RW5kU2VyaWVzVHlwZSIg
OiA2LAorICAgICAgICAgICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IgorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbENv
dW50IiA6IDEsCisgICAgICAgICAgICAicmVsYXRpdmVUaW1lTVMiIDogMTM5LAorICAgICAgICAg
ICAgIndpbmRvd0xvY2F0aW9uIiA6ICJ7NDAwLCAzMDB9IiwKKyAgICAgICAgICAgICJrQ0dTRXZl
bnRUeXBlRmllbGQiIDogMjIsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9s
bFBoYXNlIiA6IDQsCisgICAgICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91
cyIgOiAxCisgICAgICAgIH0KKyAgICBdKTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRy
b2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGlu
Z3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAppbmRleCBjNGMzZjI3Njg2MjU1M2NjZGY5ZjI5NmE1
ZGZiNjczMDFhNGViODBkLi5mNjZhZTE1MjJmNTE2MTcwN2NjN2YxZjg0ZDRjODgxYTkyZGMyYmYx
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5k
aW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKQEAgLTE2Miw2
ICsxNjIsMTEgQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgLy8gIH0KICAg
ICB2b2lkIHNlbmRFdmVudFN0cmVhbShET01TdHJpbmcgZXZlbnRzSlNPTiwgb2JqZWN0IGNhbGxi
YWNrKTsKIAorICAgIHZvaWQgYmVnaW5CYWNrU3dpcGUob2JqZWN0IGNhbGxiYWNrKTsKKyAgICB2
b2lkIGNvbXBsZXRlQmFja1N3aXBlKG9iamVjdCBjYWxsYmFjayk7CisKKyAgICB2b2lkIHBsYXlC
YWNrRXZlbnRTdHJlYW0oRE9NU3RyaW5nIGV2ZW50U3RyZWFtLCBvYmplY3QgY2FsbGJhY2spOwor
CiAgICAgLy8gRXF1aXZhbGVudCBvZiBwcmVzc2luZyB0aGUgRG9uZSBidXR0b24gaW4gdGhlIGZv
cm0gYWNjZXNzb3J5IGJhci4KICAgICB2b2lkIGRpc21pc3NGb3JtQWNjZXNzb3J5VmlldygpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNj
cmlwdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBjN2FlY2IzYjc0NGU0MWZlYTUwNDllZTA4
NzdiZWMyYzlmMzhhYTdhLi42MTJjOWUyOWYxZGEyNGUyMTg4NDY0MDVjODE0MjBlNmFiZGI4MjNm
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNj
cmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTE5NCw2ICsxOTQsMTEgQEAgSlNPYmpl
Y3RSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpjb250ZW50c09mVXNlckludGVyZmFjZUl0ZW0oSlNT
dHJpbmdSZWYgaW50ZXJmYWMKIH0KICNlbmRpZgogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6
cGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1JlZiBzdHJlYW0sIEpTVmFsdWVSZWYgY2FsbGJh
Y2spCit7CisgICAgcGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKHN0cmVhbSwgY2FsbGJhY2sp
OworfQorCiAjaWYgIVBMQVRGT1JNKElPUykKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjp0b3Vj
aERvd25BdFBvaW50KGxvbmcgeCwgbG9uZyB5LCBsb25nIHRvdWNoQ291bnQsIEpTVmFsdWVSZWYp
CiB7CkBAIC00MTgsNiArNDIzLDE4IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjppbnNlcnRU
ZXh0KEpTU3RyaW5nUmVmLCBpbnQsIGludCkKIHsKIH0KIAordm9pZCBVSVNjcmlwdENvbnRyb2xs
ZXI6OmJlZ2luQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7Cit9CisKK3ZvaWQgVUlT
Y3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZShKU1ZhbHVlUmVmIGNhbGxiYWNrKQor
eworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3Ry
ZWFtKEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKQoreworfQorCiAjZW5kaWYKIAogdm9pZCBVSVNj
cmlwdENvbnRyb2xsZXI6OnVpU2NyaXB0Q29tcGxldGUoSlNTdHJpbmdSZWYgcmVzdWx0KQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRD
b250cm9sbGVyLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNj
cmlwdENvbnRyb2xsZXIuaAppbmRleCBkYjI0ZWY1YTVkNGQ5NDJiYTUyNjNmZTQzMTNiMzIyNTdh
YjZjMjU3Li40NmMyOGIxNDAxZGQ0NjQxNzY0NGFhNzY2NzRjYWFjM2IxYmQ0Y2E5IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRy
b2xsZXIuaAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNj
cmlwdENvbnRyb2xsZXIuaApAQCAtOTUsNiArOTUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbW1l
ZGlhdGVTY3JvbGxUb09mZnNldChsb25nIHgsIGxvbmcgeSk7CiAgICAgdm9pZCBpbW1lZGlhdGVa
b29tVG9TY2FsZShkb3VibGUgc2NhbGUpOwogCisgICAgdm9pZCBiZWdpbkJhY2tTd2lwZShKU1Zh
bHVlUmVmIGNhbGxiYWNrKTsKKyAgICB2b2lkIGNvbXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYg
Y2FsbGJhY2spOworCiAgICAgdm9pZCBzZXREaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25D
YWxsYmFjayhKU1ZhbHVlUmVmKTsKICAgICBKU1ZhbHVlUmVmIGRpZFN0YXJ0Rm9ybUNvbnRyb2xJ
bnRlcmFjdGlvbkNhbGxiYWNrKCkgY29uc3Q7CiAKQEAgLTEyMiw2ICsxMjUsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXREaWRFbmRTY3JvbGxpbmdDYWxsYmFjayhKU1ZhbHVlUmVmKTsKICAgICBK
U1ZhbHVlUmVmIGRpZEVuZFNjcm9sbGluZ0NhbGxiYWNrKCkgY29uc3Q7CiAKKyAgICB2b2lkIHBs
YXlCYWNrRXZlbnRTdHJlYW0oSlNTdHJpbmdSZWYgc3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNr
KTsKKwogICAgIGRvdWJsZSB6b29tU2NhbGUoKSBjb25zdDsKICAgICBkb3VibGUgbWluaW11bVpv
b21TY2FsZSgpIGNvbnN0OwogICAgIGRvdWJsZSBtYXhpbXVtWm9vbVNjYWxlKCkgY29uc3Q7CkBA
IC0xNjYsNiArMTcxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtU2V0RGlkSGlkZUtl
eWJvYXJkQ2FsbGJhY2soKTsKICAgICB2b2lkIHBsYXRmb3JtU2V0RGlkRW5kU2Nyb2xsaW5nQ2Fs
bGJhY2soKTsKICAgICB2b2lkIHBsYXRmb3JtQ2xlYXJBbGxDYWxsYmFja3MoKTsKKyAgICB2b2lk
IHBsYXRmb3JtUGxheUJhY2tFdmVudFN0cmVhbShKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZik7CiAK
ICAgICBKU0NsYXNzUmVmIHdyYXBwZXJDbGFzcygpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL3NwaS9Db3JlR3JhcGhpY3NTUEkuaCBiL1Rvb2xzL1Rlc3RSdW5u
ZXJTaGFyZWQvc3BpL0NvcmVHcmFwaGljc1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NWJlMDc0ODk5NGVm
MmQ4NTU4ZTA1NjY2OTg3N2Y1MTU4ZGZiMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL3NwaS9Db3JlR3JhcGhpY3NTUEkuaApAQCAtMCwwICsxLDkyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgorCisjaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0NHRXZlbnRQ
cml2YXRlLmg+CisjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dTRXZlbnQuaD4KKworI2Vsc2UKKwor
V1RGX0VYVEVSTl9DX0JFR0lOCisKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHU0V2ZW50
V2luZG93SURGaWVsZCA9IChDR0V2ZW50RmllbGQpNTE7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZp
ZWxkIGtDR1NFdmVudFR5cGVGaWVsZCA9IChDR0V2ZW50RmllbGQpNTU7CitzdGF0aWMgY29uc3Qg
Q0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZUhJRFR5cGUgPSAoQ0dFdmVudEZpZWxkKTExMDsK
K3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlSXNQcmVmbGlnaHQgPSAo
Q0dFdmVudEZpZWxkKTExMTsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0
dXJlWm9vbVZhbHVlID0gKENHRXZlbnRGaWVsZCkxMTM7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZp
ZWxkIGtDR0V2ZW50R2VzdHVyZVJvdGF0aW9uVmFsdWUgPSAoQ0dFdmVudEZpZWxkKTExNDsKK3N0
YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVWYWx1ZSA9IChDR0V2
ZW50RmllbGQpMTE1Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVQ
cmVmbGlnaHRQcm9ncmVzcyA9IChDR0V2ZW50RmllbGQpMTE2Oworc3RhdGljIGNvbnN0IENHRXZl
bnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTdGFydEVuZFNlcmllc1R5cGUgPSAoQ0dFdmVudEZpZWxk
KTExNzsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU2Nyb2xsWCA9
IChDR0V2ZW50RmllbGQpMTE4Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdl
c3R1cmVTY3JvbGxZID0gKENHRXZlbnRGaWVsZCkxMTk7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZp
ZWxkIGtDR0V2ZW50R2VzdHVyZVNjcm9sbFogPSAoQ0dFdmVudEZpZWxkKTEyMDsKK3N0YXRpYyBj
b25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVNb3Rpb24gPSAoQ0dFdmVudEZp
ZWxkKTEyMzsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3dpcGVQ
cm9ncmVzcyA9IChDR0V2ZW50RmllbGQpMTI0Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBr
Q0dFdmVudEdlc3R1cmVTd2lwZVBvc2l0aW9uWCA9IChDR0V2ZW50RmllbGQpMTI1Oworc3RhdGlj
IGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVBvc2l0aW9uWSA9IChDR0V2
ZW50RmllbGQpMTI2Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVT
d2lwZVZlbG9jaXR5WCA9IChDR0V2ZW50RmllbGQpMTI5Oworc3RhdGljIGNvbnN0IENHRXZlbnRG
aWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WSA9IChDR0V2ZW50RmllbGQpMTMwOwor
c3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVTd2lwZVZlbG9jaXR5WiA9
IChDR0V2ZW50RmllbGQpMTMxOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdl
c3R1cmVQaGFzZSA9IChDR0V2ZW50RmllbGQpMTMyOworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVs
ZCBrQ0dFdmVudEdlc3R1cmVNYXNrID0gKENHRXZlbnRGaWVsZCkxMzM7CitzdGF0aWMgY29uc3Qg
Q0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZVN3aXBlTWFzayA9IChDR0V2ZW50RmllbGQpMTM0
Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudFNjcm9sbEdlc3R1cmVGbGFnQml0
cyA9IChDR0V2ZW50RmllbGQpMTM1Oworc3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVu
dFN3aXBlR2VzdHVyZUZsYWdCaXRzID0gKENHRXZlbnRGaWVsZCkxMzY7CitzdGF0aWMgY29uc3Qg
Q0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVyZUZsYXZvciA9IChDR0V2ZW50RmllbGQpMTM4Owor
c3RhdGljIGNvbnN0IENHRXZlbnRGaWVsZCBrQ0dFdmVudEdlc3R1cmVab29tRGVsdGFYID0gKENH
RXZlbnRGaWVsZCkxMzk7CitzdGF0aWMgY29uc3QgQ0dFdmVudEZpZWxkIGtDR0V2ZW50R2VzdHVy
ZVpvb21EZWx0YVkgPSAoQ0dFdmVudEZpZWxkKTE0MDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50Rmll
bGQga0NHRXZlbnRHZXN0dXJlUHJvZ3Jlc3MgPSAoQ0dFdmVudEZpZWxkKTE0MjsKK3N0YXRpYyBj
b25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlU3RhZ2UgPSAoQ0dFdmVudEZpZWxkKTE0
MzsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRHZXN0dXJlQmVoYXZpb3IgPSAo
Q0dFdmVudEZpZWxkKTE0NDsKK3N0YXRpYyBjb25zdCBDR0V2ZW50RmllbGQga0NHRXZlbnRUcmFu
c2l0aW9uUHJvZ3Jlc3MgPSAoQ0dFdmVudEZpZWxkKTE0NzsKK3N0YXRpYyBjb25zdCBDR0V2ZW50
RmllbGQga0NHRXZlbnRTdGFnZVByZXNzdXJlID0gKENHRXZlbnRGaWVsZCkxNDg7CisKK2VudW0g
eworICAgIGtDR1NFdmVudFNjcm9sbFdoZWVsID0gMjIsCisgICAga0NHU0V2ZW50Wm9vbSA9IDI4
LAorICAgIGtDR1NFdmVudEdlc3R1cmUgPSAyOSwKKyAgICBrQ0dTRXZlbnREb2NrQ29udHJvbCA9
IDMwLAorICAgIGtDR1NFdmVudEZsdWlkVG91Y2hHZXN0dXJlID0gMzEsCit9OwordHlwZWRlZiB1
aW50MzJfdCBDR1NFdmVudFR5cGU7CisKK2VudW0geworICAgIGtDR0hJREV2ZW50VHlwZUdlc3R1
cmVTdGFydGVkID0gNjEsCisgICAga0NHSElERXZlbnRUeXBlR2VzdHVyZUVuZGVkID0gNjIsCit9
OwordHlwZWRlZiB1aW50MzJfdCBDR1NISURFdmVudFR5cGU7CisKK0NHUG9pbnQgQ0dFdmVudEdl
dFdpbmRvd0xvY2F0aW9uKENHRXZlbnRSZWYpOwordm9pZCBDR0V2ZW50U2V0V2luZG93TG9jYXRp
b24oQ0dFdmVudFJlZiwgQ0dQb2ludCk7CisKK1dURl9FWFRFUk5fQ19FTkQKKworI2VuZGlmIC8v
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL3NwaS9JT0tpdFNQSS5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9zcGkvSU9LaXRTUEku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43M2U0YjZlMDRjMDdhN2UzN2IyMjk4MWRjNzEwNzYyYTQwZTg2NjQ2Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9zcGkvSU9LaXRTUEkuaApA
QCAtMCwwICsxLDIwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0IDx3
dGYvUGxhdGZvcm0uaD4KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQg
PElPS2l0L2hpZC9JT0hJREV2ZW50Lmg+CisjaW1wb3J0IDxJT0tpdC9oaWQvSU9ISURFdmVudERh
dGEuaD4KKyNpbXBvcnQgPElPS2l0L2hpZC9JT0hJREV2ZW50U3lzdGVtQ2xpZW50Lmg+CisjaW1w
b3J0IDxJT0tpdC9oaWQvSU9ISURVc2FnZVRhYmxlcy5oPgorCisjZWxzZQorCitXVEZfRVhURVJO
X0NfQkVHSU4KKworI2lmZGVmIF9fTFA2NF9fCit0eXBlZGVmIGRvdWJsZSBJT0hJREZsb2F0Owor
I2Vsc2UKK3R5cGVkZWYgZmxvYXQgSU9ISURGbG9hdDsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBr
SU9ISURFdmVudE9wdGlvbk5vbmUgPSAwLAorfTsKKwordHlwZWRlZiBVSW50MzIgSU9PcHRpb25C
aXRzOwordHlwZWRlZiB1aW50MzJfdCBJT0hJREV2ZW50T3B0aW9uQml0czsKK3R5cGVkZWYgdWlu
dDMyX3QgSU9ISURFdmVudEZpZWxkOworCit0eXBlZGVmIHN0cnVjdCBfX0lPSElERXZlbnRTeXN0
ZW1DbGllbnQgKiBJT0hJREV2ZW50U3lzdGVtQ2xpZW50UmVmOwordHlwZWRlZiBzdHJ1Y3QgX19J
T0hJREV2ZW50ICogSU9ISURFdmVudFJlZjsKKworI2RlZmluZSBJT0hJREV2ZW50RmllbGRCYXNl
KHR5cGUpICh0eXBlIDw8IDE2KQorCitlbnVtIHsKKyAgICBrSElEUGFnZV9LZXlib2FyZE9yS2V5
cGFkICAgICAgID0gMHgwNywKKyAgICBrSElEUGFnZV9WZW5kb3JEZWZpbmVkU3RhcnQgICAgID0g
MHhGRjAwCit9OworCitlbnVtIHsKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFJhbmdlICAgICAg
ID0gMTw8MCwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFRvdWNoICAgICAgID0gMTw8MSwKKyAg
ICBrSU9ISUREaWdpdGl6ZXJFdmVudFBvc2l0aW9uICAgID0gMTw8MiwKKyAgICBrSU9ISUREaWdp
dGl6ZXJFdmVudElkZW50aXR5ICAgID0gMTw8NSwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudEF0
dHJpYnV0ZSAgID0gMTw8NiwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudENhbmNlbCAgICAgID0g
MTw8NywKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFN0YXJ0ICAgICAgID0gMTw8OCwKKyAgICBr
SU9ISUREaWdpdGl6ZXJFdmVudEVzdGltYXRlZEFsdGl0dWRlID0gMTw8MjgsCisgICAga0lPSElE
RGlnaXRpemVyRXZlbnRFc3RpbWF0ZWRBemltdXRoID0gMTw8MjksCisgICAga0lPSElERGlnaXRp
emVyRXZlbnRFc3RpbWF0ZWRQcmVzc3VyZSA9IDE8PDMwCit9OwordHlwZWRlZiB1aW50MzJfdCBJ
T0hJRERpZ2l0aXplckV2ZW50TWFzazsKKworZW51bSB7CisgICAga0lPSElERGlnaXRpemVyRXZl
bnRVcGRhdGVBbHRpdHVkZU1hc2sgPSAxPDwyOCwKKyAgICBrSU9ISUREaWdpdGl6ZXJFdmVudFVw
ZGF0ZUF6aW11dGhNYXNrID0gMTw8MjksCisgICAga0lPSElERGlnaXRpemVyRXZlbnRVcGRhdGVQ
cmVzc3VyZU1hc2sgPSAxPDwzMAorfTsKKworZW51bSB7CisgICAga0lPSElERXZlbnRUeXBlTlVM
TCwKKyAgICBrSU9ISURFdmVudFR5cGVWZW5kb3JEZWZpbmVkLAorICAgIGtJT0hJREV2ZW50VHlw
ZUtleWJvYXJkID0gMywKKyAgICBrSU9ISURFdmVudFR5cGVSb3RhdGlvbiA9IDUsCisgICAga0lP
SElERXZlbnRUeXBlU2Nyb2xsID0gNiwKKyAgICBrSU9ISURFdmVudFR5cGVab29tID0gOCwKKyAg
ICBrSU9ISURFdmVudFR5cGVEaWdpdGl6ZXIgPSAxMSwKKyAgICBrSU9ISURFdmVudFR5cGVOYXZp
Z2F0aW9uU3dpcGUgPSAxNiwKKyAgICBrSU9ISURFdmVudFR5cGVGb3JjZSA9IDMyLAorCit9Owor
dHlwZWRlZiB1aW50MzJfdCBJT0hJREV2ZW50VHlwZTsKKworZW51bSB7CisgICAga0lPSElERXZl
bnRGaWVsZFZlbmRvckRlZmluZWRVc2FnZVBhZ2UgPSBJT0hJREV2ZW50RmllbGRCYXNlKGtJT0hJ
REV2ZW50VHlwZVZlbmRvckRlZmluZWQpLAorICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZp
bmVkUmVzZXJ2ZWQsCisgICAga0lPSElERXZlbnRGaWVsZFZlbmRvckRlZmluZWRSZXNlcnZlZDEs
CisgICAga0lPSElERXZlbnRGaWVsZFZlbmRvckRlZmluZWREYXRhTGVuZ3RoLAorICAgIGtJT0hJ
REV2ZW50RmllbGRWZW5kb3JEZWZpbmVkRGF0YQorfTsKKworZW51bSB7CisgICAga0lPSElERXZl
bnRGaWVsZERpZ2l0aXplclggPSBJT0hJREV2ZW50RmllbGRCYXNlKGtJT0hJREV2ZW50VHlwZURp
Z2l0aXplciksCisgICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplclksCisgICAga0lPSElERXZl
bnRGaWVsZERpZ2l0aXplck1ham9yUmFkaXVzID0ga0lPSElERXZlbnRGaWVsZERpZ2l0aXplclgg
KyAyMCwKKyAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyTWlub3JSYWRpdXMsCisgICAga0lP
SElERXZlbnRGaWVsZERpZ2l0aXplcklzRGlzcGxheUludGVncmF0ZWQgPSBrSU9ISURFdmVudEZp
ZWxkRGlnaXRpemVyTWFqb3JSYWRpdXMgKyA1LAorfTsKKworZW51bSB7CisgICAga0lPSElEVHJh
bnNkdWNlclJhbmdlICAgICAgICAgICAgICAgPSAweDAwMDEwMDAwLAorICAgIGtJT0hJRFRyYW5z
ZHVjZXJUb3VjaCAgICAgICAgICAgICAgID0gMHgwMDAyMDAwMCwKKyAgICBrSU9ISURUcmFuc2R1
Y2VySW52ZXJ0ICAgICAgICAgICAgICA9IDB4MDAwNDAwMDAsCisgICAga0lPSElEVHJhbnNkdWNl
ckRpc3BsYXlJbnRlZ3JhdGVkICAgPSAweDAwMDgwMDAwCit9OworCitlbnVtIHsKKyAgICBrSU9I
SUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZVN0eWx1cyAgPSAwLAorICAgIGtJT0hJRERpZ2l0aXpl
clRyYW5zZHVjZXJUeXBlRmluZ2VyID0gMiwKKyAgICBrSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2Vy
VHlwZUhhbmQgPSAzCit9OwordHlwZWRlZiB1aW50MzJfdCBJT0hJRERpZ2l0aXplclRyYW5zZHVj
ZXJUeXBlOworCitlbnVtIHsKKyAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyV2lsbFVwZGF0
ZU1hc2sgPSA3MjA5MjQsCisgICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplckRpZFVwZGF0ZU1h
c2sgPSA3MjA5MjUKK307CisKK0lPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZURpZ2l0aXpl
ckV2ZW50KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2Vy
VHlwZSwgdWludDMyX3QsIHVpbnQzMl90LCBJT0hJRERpZ2l0aXplckV2ZW50TWFzaywgdWludDMy
X3QsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElE
RmxvYXQsIGJvb2xlYW5fdCwgYm9vbGVhbl90LCBJT09wdGlvbkJpdHMpOworCitJT0hJREV2ZW50
UmVmIElPSElERXZlbnRDcmVhdGVEaWdpdGl6ZXJGaW5nZXJFdmVudChDRkFsbG9jYXRvclJlZiwg
dWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIElP
SElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQs
IGJvb2xlYW5fdCwgYm9vbGVhbl90LCBJT0hJREV2ZW50T3B0aW9uQml0cyk7CisKK0lPSElERXZl
bnRSZWYgSU9ISURFdmVudENyZWF0ZUZvcmNlRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90
LCB1aW50MzJfdCwgSU9ISURGbG9hdCwgdWludDMyX3QsIElPSElERmxvYXQsIElPSElERXZlbnRP
cHRpb25CaXRzKTsKKworSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlS2V5Ym9hcmRFdmVu
dChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgYm9vbGVhbl90
LCBJT09wdGlvbkJpdHMpOworCitJT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVWZW5kb3JE
ZWZpbmVkRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3Qs
IHVpbnQzMl90LCB1aW50OF90KiwgQ0ZJbmRleCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOworCitJ
T0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVEaWdpdGl6ZXJTdHlsdXNFdmVudFdpdGhQb2xh
ck9yaWVudGF0aW9uKENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90
LCBJT0hJRERpZ2l0aXplckV2ZW50TWFzaywgdWludDMyX3QsIElPSElERmxvYXQsIElPSElERmxv
YXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElE
RmxvYXQsIElPSElERmxvYXQsIGJvb2xlYW5fdCwgYm9vbGVhbl90LCBJT0hJREV2ZW50T3B0aW9u
Qml0cyk7CisKK0lPSElERXZlbnRUeXBlIElPSElERXZlbnRHZXRUeXBlKElPSElERXZlbnRSZWYp
OworCit2b2lkIElPSElERXZlbnRTZXRGbG9hdFZhbHVlKElPSElERXZlbnRSZWYsIElPSElERXZl
bnRGaWVsZCwgSU9ISURGbG9hdCk7CisKK0NGSW5kZXggSU9ISURFdmVudEdldEludGVnZXJWYWx1
ZShJT0hJREV2ZW50UmVmLCBJT0hJREV2ZW50RmllbGQpOwordm9pZCBJT0hJREV2ZW50U2V0SW50
ZWdlclZhbHVlKElPSElERXZlbnRSZWYsIElPSElERXZlbnRGaWVsZCwgQ0ZJbmRleCk7CisKK3Zv
aWQgSU9ISURFdmVudEFwcGVuZEV2ZW50KElPSElERXZlbnRSZWYsIElPSElERXZlbnRSZWYsIElP
T3B0aW9uQml0cyk7CisKK0lPSElERXZlbnRTeXN0ZW1DbGllbnRSZWYgSU9ISURFdmVudFN5c3Rl
bUNsaWVudENyZWF0ZShDRkFsbG9jYXRvclJlZik7CisKKyNkZWZpbmUga0dTRXZlbnRQYXRoSW5m
b0luUmFuZ2UgKDEgPDwgMCkKKyNkZWZpbmUga0dTRXZlbnRQYXRoSW5mb0luVG91Y2ggKDEgPDwg
MSkKKworZW51bSB7CisgICAga0hJRFVzYWdlX0tleWJvYXJkQSA9IDB4MDQsCisgICAga0hJRFVz
YWdlX0tleWJvYXJkMSA9IDB4MUUsCisgICAga0hJRFVzYWdlX0tleWJvYXJkMiA9IDB4MUYsCisg
ICAga0hJRFVzYWdlX0tleWJvYXJkMyA9IDB4MjAsCisgICAga0hJRFVzYWdlX0tleWJvYXJkNCA9
IDB4MjEsCisgICAga0hJRFVzYWdlX0tleWJvYXJkNSA9IDB4MjIsCisgICAga0hJRFVzYWdlX0tl
eWJvYXJkNiA9IDB4MjMsCisgICAga0hJRFVzYWdlX0tleWJvYXJkNyA9IDB4MjQsCisgICAga0hJ
RFVzYWdlX0tleWJvYXJkOCA9IDB4MjUsCisgICAga0hJRFVzYWdlX0tleWJvYXJkOSA9IDB4MjYs
CisgICAga0hJRFVzYWdlX0tleWJvYXJkMCA9IDB4MjcsCisgICAga0hJRFVzYWdlX0tleWJvYXJk
UmV0dXJuT3JFbnRlciA9IDB4MjgsCisgICAga0hJRFVzYWdlX0tleWJvYXJkRXNjYXBlID0gMHgy
OSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmREZWxldGVPckJhY2tzcGFjZSA9IDB4MkEsCisgICAg
a0hJRFVzYWdlX0tleWJvYXJkVGFiID0gMHgyQiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRTcGFj
ZWJhciA9IDB4MkMsCisgICAga0hJRFVzYWdlX0tleWJvYXJkSHlwaGVuID0gMHgyRCwKKyAgICBr
SElEVXNhZ2VfS2V5Ym9hcmRFcXVhbFNpZ24gPSAweDJFLAorICAgIGtISURVc2FnZV9LZXlib2Fy
ZE9wZW5CcmFja2V0ID0gMHgyRiwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRDbG9zZUJyYWNrZXQg
PSAweDMwLAorICAgIGtISURVc2FnZV9LZXlib2FyZEJhY2tzbGFzaCA9IDB4MzEsCisgICAga0hJ
RFVzYWdlX0tleWJvYXJkU2VtaWNvbG9uID0gMHgzMywKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRR
dW90ZSA9IDB4MzQsCisgICAga0hJRFVzYWdlX0tleWJvYXJkR3JhdmVBY2NlbnRBbmRUaWxkZSA9
IDB4MzUsCisgICAga0hJRFVzYWdlX0tleWJvYXJkQ29tbWEgPSAweDM2LAorICAgIGtISURVc2Fn
ZV9LZXlib2FyZFBlcmlvZCA9IDB4MzcsCisgICAga0hJRFVzYWdlX0tleWJvYXJkU2xhc2ggPSAw
eDM4LAorICAgIGtISURVc2FnZV9LZXlib2FyZEYxID0gMHgzQSwKKyAgICBrSElEVXNhZ2VfS2V5
Ym9hcmRIb21lID0gMHg0QSwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRQYWdlVXAgPSAweDRCLAor
ICAgIGtISURVc2FnZV9LZXlib2FyZEVuZCA9IDB4NEQsCisgICAga0hJRFVzYWdlX0tleWJvYXJk
UmlnaHRBcnJvdyA9IDB4NEYsCisgICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdEFycm93ID0gMHg1
MCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmREb3duQXJyb3cgPSAweDUxLAorICAgIGtISURVc2Fn
ZV9LZXlib2FyZFVwQXJyb3cgPSAweDUyLAorICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRDb250
cm9sID0gMHhFMCwKKyAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0U2hpZnQgPSAweEUxLAorICAg
IGtISURVc2FnZV9LZXlib2FyZExlZnRBbHQgPSAweEUyCit9OworCitXVEZfRVhURVJOX0NfRU5E
CisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0V2ZW50U2VuZGVyUHJveHkuaAppbmRleCA3MGQ5NDAxNGM4ZDc1MGNiN2Q2NTcwODA0NTI4
ZTIwOGNjMmY0YTU0Li4yNGYyN2IyODkxN2MwZTM0Y2I3ZGViNzM2OTU5MDM3N2JhN2JlZDYxIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaApAQCAtNzEsNyArNzEs
NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3VzZU1vdmVUbyhkb3VibGUgeCwgZG91YmxlIHkpOwog
ICAgIHZvaWQgbW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHkpOwogICAgIHZvaWQgbW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgaW50IHBoYXNlLCBp
bnQgbW9tZW50dW0pOwotICAgIHZvaWQgc3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoaW50IHgsIGludCB5LCBpbnQgcGhhc2UsIGludCBtb21lbnR1bSk7CiAgICAgdm9pZCBj
b250aW51b3VzTW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHksIGJvb2wgcGFnZWQpOwogCiAgICAg
dm9pZCBsZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJv
bGxlci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsCmluZGV4IGYzMjgwYmI5NGIwNTQzNzAyNDMwMjNl
MjUzMzZkZTFhZmFlNzkzOWYuLmQ1YjgwMzg0NTllNzZiOTg5MTQ5OThjNjA5YjZmMzYxNjc0MDdk
ODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbApA
QCAtMzQsNyArMzQsNiBAQCBpbnRlcmZhY2UgRXZlbnRTZW5kaW5nQ29udHJvbGxlciB7CiAgICAg
dm9pZCBtb3VzZUZvcmNlQ2hhbmdlZChkb3VibGUgZm9yY2UpOwogICAgIHZvaWQgbW91c2VTY3Jv
bGxCeShsb25nIHgsIGxvbmcgeSk7CiAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMobG9uZyB4LCBsb25nIHksIERPTVN0cmluZyBwaGFzZSwgRE9NU3RyaW5n
IG1vbWVudHVtKTsKLSAgICB2b2lkIHN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKGxvbmcgeCwgbG9uZyB5LCBET01TdHJpbmcgcGhhc2UsIERPTVN0cmluZyBtb21lbnR1bSk7
CiAgICAgdm9pZCBjb250aW51b3VzTW91c2VTY3JvbGxCeShsb25nIHgsIGxvbmcgeSwgb3B0aW9u
YWwgYm9vbGVhbiBwYWdlZCk7CiAgICAgb2JqZWN0IGNvbnRleHRDbGljaygpOwogICAgIHZvaWQg
c2NoZWR1bGVBc3luY2hyb25vdXNDbGljaygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5j
cHAKaW5kZXggZjgxOTgyYzZiZjhkMjlhOWIxMjYxZjNiMmZjZmFiMGIyYmYwZmM4OS4uOWEwZmY2
NTdmMDUyM2Q2ZDMxYWIwNTQ5OWNjMWYyMTk0NTZjODM1ZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0Nv
bnRyb2xsZXIuY3BwCkBAIC00ODMsMzggKzQ4Myw2IEBAIHZvaWQgRXZlbnRTZW5kaW5nQ29udHJv
bGxlcjo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQK
ICAgICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCku
cGFnZSgpLT5wYWdlKCksIEV2ZW50U2VuZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVy
TWVzc2FnZUJvZHkuZ2V0KCkpOwogfQogCi12b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6OnN3
aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgSlNTdHJp
bmdSZWYgcGhhc2VTdHIsIEpTU3RyaW5nUmVmIG1vbWVudHVtU3RyKQotewotICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBFdmVudFNlbmRlck1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJFdmVudFNlbmRlciIpKTsKLSAgICBXS1JldGFpblB0cjxX
S011dGFibGVEaWN0aW9uYXJ5UmVmPiBFdmVudFNlbmRlck1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdL
TXV0YWJsZURpY3Rpb25hcnlDcmVhdGUoKSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gc3ViTWVzc2FnZUtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygi
U3ViTWVzc2FnZSIpKTsKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc3ViTWVzc2FnZU5h
bWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlN3aXBlR2VzdHVyZVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzIikpOwotICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oRXZl
bnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgc3ViTWVzc2FnZUtleS5nZXQoKSwgc3ViTWVzc2Fn
ZU5hbWUuZ2V0KCkpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHhLZXkoQWRvcHRX
SywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlgiKSk7Ci0gICAgV0tSZXRhaW5QdHI8
V0tEb3VibGVSZWY+IHhSZWYoQWRvcHRXSywgV0tEb3VibGVDcmVhdGUoeCkpOwotICAgIFdLRGlj
dGlvbmFyeVNldEl0ZW0oRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgeEtleS5nZXQoKSwg
eFJlZi5nZXQoKSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4geUtleShBZG9wdFdL
LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWSIpKTsKLSAgICBXS1JldGFpblB0cjxX
S0RvdWJsZVJlZj4geVJlZihBZG9wdFdLLCBXS0RvdWJsZUNyZWF0ZSh5KSk7Ci0gICAgV0tEaWN0
aW9uYXJ5U2V0SXRlbShFdmVudFNlbmRlck1lc3NhZ2VCb2R5LmdldCgpLCB5S2V5LmdldCgpLCB5
UmVmLmdldCgpKTsKLQotICAgIHVpbnQ2NF90IHBoYXNlID0gY2dFdmVudFBoYXNlRnJvbVN0cmlu
ZyhwaGFzZVN0cik7Ci0gICAgdWludDY0X3QgbW9tZW50dW0gPSBjZ0V2ZW50TW9tZW50dW1QaGFz
ZUZyb21TdHJpbmcobW9tZW50dW1TdHIpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IHBoYXNlS2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJQaGFzZSIp
KTsKLSAgICBXS1JldGFpblB0cjxXS1VJbnQ2NFJlZj4gcGhhc2VSZWYoQWRvcHRXSywgV0tVSW50
NjRDcmVhdGUocGhhc2UpKTsKLSAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKEV2ZW50U2VuZGVyTWVz
c2FnZUJvZHkuZ2V0KCksIHBoYXNlS2V5LmdldCgpLCBwaGFzZVJlZi5nZXQoKSk7Ci0KLSAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbW9tZW50dW1LZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoIk1vbWVudHVtIikpOwotICAgIFdLUmV0YWluUHRyPFdLVUludDY0
UmVmPiBtb21lbnR1bVJlZihBZG9wdFdLLCBXS1VJbnQ2NENyZWF0ZShtb21lbnR1bSkpOwotICAg
IFdLRGljdGlvbmFyeVNldEl0ZW0oRXZlbnRTZW5kZXJNZXNzYWdlQm9keS5nZXQoKSwgbW9tZW50
dW1LZXkuZ2V0KCksIG1vbWVudHVtUmVmLmdldCgpKTsKLQotICAgIFdLQnVuZGxlUGFnZUZvcmNl
UmVwYWludChJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCkpOyAvLyBU
cmlnZ2VycyBhIHNjcm9sbGluZyB0cmVlIGNvbW1pdC4KLSAgICBXS0J1bmRsZVBhZ2VQb3N0TWVz
c2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIEV2ZW50U2Vu
ZGVyTWVzc2FnZU5hbWUuZ2V0KCksIEV2ZW50U2VuZGVyTWVzc2FnZUJvZHkuZ2V0KCkpOwotfQot
CiB2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGlu
dCB4LCBpbnQgeSwgYm9vbCBwYWdlZCkKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
RXZlbnRTZW5kZXJNZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiRXZlbnRTZW5kZXIiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oCmluZGV4IDNl
YjgxMjljN2EzOGUzNjA5ZDY2ODVlNTExM2VhNTdhN2JmYWZlYWEuLjIyNTRiMzQxODM3ODE5ODAy
NDQwMGZmYjc5ZGM2ZWJmYTM5NTVjM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oCkBA
IC01Miw3ICs1Miw2IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdXNlRm9yY2VDaGFuZ2VkKGRvdWJs
ZSBmb3JjZSk7CiAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSk7CiAgICAgdm9p
ZCBtb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBK
U1N0cmluZ1JlZiBwaGFzZSwgSlNTdHJpbmdSZWYgbW9tZW50dW0pOwotICAgIHZvaWQgc3dpcGVH
ZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBKU1N0cmluZ1Jl
ZiBwaGFzZSwgSlNTdHJpbmdSZWYgbW9tZW50dW0pOwogICAgIHZvaWQgY29udGludW91c01vdXNl
U2Nyb2xsQnkoaW50IHgsIGludCB5LCBib29sIHBhZ2VkKTsKICAgICBKU1ZhbHVlUmVmIGNvbnRl
eHRDbGljaygpOwogICAgIHZvaWQgbGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcyk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9FdmVudFNl
bmRlclByb3h5SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbQppbmRleCBhYzU0YTFjNmQ2ZDhjMmM1MGUwODFkYjVi
ZGI4MjFkM2U2MDhlYzJkLi5jYWIzZjE4YjM2NTlmNDkxNmJkNTAwODc5Mjg2ZDZhMjdjMGM5Zjkx
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9F
dmVudFNlbmRlclByb3h5SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW0KQEAgLTEwMywxMSArMTAzLDYgQEAg
dm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoaW50IHgsIGludCB5LCBpbnQKICAgICAvLyBXcml0ZSBtZS4KIH0KIAotdm9pZCBFdmVu
dFNlbmRlclByb3h5Ojpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQs
IGludCwgaW50LCBpbnQpCi17Ci0gICAgLy8gV3JpdGUgbWUuCi19Ci0KIHZvaWQgRXZlbnRTZW5k
ZXJQcm94eTo6Y29udGludW91c01vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5LCBib29sIHBhZ2Vk
KQogewogICAgIC8vIFdyaXRlIG1lLgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcAppbmRleCAzNzY1NGJhNDk4ZTZlZjgxODFjOTZhZmMwMmY3MDJhYjJjZDEwZjI2Li45
YjcwOWUzNmY3NWM2NjVlZDAyYTA3ZTMzYjcxOTY2M2UxYjFjODRkIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTMxNSwyMyArMTMxNSw2IEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3Ry
aW5nUmVmIG1lc3NhZ2VOYW1lCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAg
ICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhzdWJNZXNzYWdlTmFtZSwgIlN3
aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzIikpIHsKLSAgICAgICAgICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiB4S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiWCIpKTsKLSAgICAgICAgICAgIGRvdWJsZSB4ID0gV0tEb3VibGVHZXRWYWx1
ZShzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNz
YWdlQm9keURpY3Rpb25hcnksIHhLZXkuZ2V0KCkpKSk7Ci0KLSAgICAgICAgICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiB5S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiWSIpKTsKLSAgICAgICAgICAgIGRvdWJsZSB5ID0gV0tEb3VibGVHZXRWYWx1ZShzdGF0
aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9k
eURpY3Rpb25hcnksIHlLZXkuZ2V0KCkpKSk7Ci0KLSAgICAgICAgICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBwaGFzZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIlBoYXNlIikpOwotICAgICAgICAgICAgaW50IHBoYXNlID0gc3RhdGljX2Nhc3Q8aW50PihX
S1VJbnQ2NEdldFZhbHVlKHN0YXRpY19jYXN0PFdLVUludDY0UmVmPihXS0RpY3Rpb25hcnlHZXRJ
dGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgcGhhc2VLZXkuZ2V0KCkpKSkpOwotICAg
ICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1vbWVudHVtS2V5ID0gYWRvcHRXSyhX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTW9tZW50dW0iKSk7Ci0gICAgICAgICAgICBp
bnQgbW9tZW50dW0gPSBzdGF0aWNfY2FzdDxpbnQ+KFdLVUludDY0R2V0VmFsdWUoc3RhdGljX2Nh
c3Q8V0tVSW50NjRSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0
aW9uYXJ5LCBtb21lbnR1bUtleS5nZXQoKSkpKSk7Ci0KLSAgICAgICAgICAgIG1fZXZlbnRTZW5k
ZXJQcm94eS0+c3dpcGVHZXN0dXJlV2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoeCwgeSwgcGhh
c2UsIG1vbWVudHVtKTsKLQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDIxZTRlNmU2NDhkNGI1M2ZmYmJiMzY1ZTY5MjRhNjQwZTI1YTk5YjUu
LjBiMjE0YWI5NzNhNzkxYmM0MzAwMjc4YjM3Zjc1ZjkyM2Q1Mzg3ZjIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Miw2ICs2MiwxMSBAQAogCQkyOUE4RkNERDE0NUYw
MzM3MDA5MDQ1QTYgLyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QThGQ0UxMzQ1RTcwMjEw
MDZBQTVBNiAvKiBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwICovOyB9OwogCQky
OUE4RkNFMjE0NUYwMzdCMDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4RkNF
MTE0NUYwMzdCMDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHAgKi87
IH07CiAJCTI5QThGQ0U1MTQ1RjA0NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
clJhbmdlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjlBOEZDRTQxNDVGMDQ2NDAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFu
Z2VNYWMubW0gKi87IH07CisJCTJEQjYxODdFMUQ3RDU4RDQwMDk3OEQxOSAvKiBDb3JlR3JhcGhp
Y3NTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJE
QjYxODdEMUQ3RDU4RDQwMDk3OEQxOSAvKiBDb3JlR3JhcGhpY3NTUEkuaCAqLzsgfTsKKwkJMkRE
NEM0OUExRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRENEM0OTgxRDZFN0QzQjAwMDcz
NzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5oICovOyB9OworCQkyREQ0QzQ5QjFENkU3RDNCMDAw
NzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkRENEM0OTkxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2Vy
aWFsaXplck1hYy5tbSAqLzsgfTsKKwkJMkRGQTk4NDgxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJl
ZEV2ZW50U3RyZWFtc01hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkRGQTk4NDYxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01h
Yy5oICovOyB9OworCQkyREZBOTg0OTFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJl
YW1zTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkRGQTk4NDcxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSAqLzsg
fTsKIAkJMkUzNEM5MDAxOEI2ODgwODAwMDA2N0JCIC8qIFdlYktpdFRlc3RSdW5uZXJJbmplY3Rl
ZEJ1bmRsZS5idW5kbGUgaW4gQ29weSBQbHVnLUlucyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzI1MTg2MjExRDE1RDU0MDAyRUJDMDEgLyogV2ViS2l0VGVzdFJ1bm5lcklu
amVjdGVkQnVuZGxlLmJ1bmRsZSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChDb2RlU2ln
bk9uQ29weSwgUmVtb3ZlSGVhZGVyc09uQ29weSwgKTsgfTsgfTsKIAkJMkU2M0VEOEExODkxQUQ3
RTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU2M0VENzUxODkxQUNFOTAwMkE3QUZD
IC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tICovOyB9OwogCQkyRTYzRUQ4QjE4OTFB
RDdFMDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYzRUQ3NzE4OTFBQ0U5MDAyQTdB
RkMgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW0gKi87IH07CkBAIC0yMDgsNyArMjEz
LDcgQEAKIAkJMEZFQjkwQTMxOTA1QkM2QTAwMEZEQkYzIC8qIENyYXNoUmVwb3J0ZXJJbmZvLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQ3Jhc2hSZXBvcnRlcklu
Zm8ubW07IHBhdGggPSBjb2NvYS9DcmFzaFJlcG9ydGVySW5mby5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEZFQkY4NTgxQkI2MURGMjAwMjg3MjJEIC8qIEhJREV2ZW50R2VuZXJh
dG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhJREV2ZW50R2VuZXJhdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRUJGODU5MUJCNjFERjIwMDI4NzIy
RCAvKiBISURFdmVudEdlbmVyYXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEhJREV2ZW50R2VuZXJhdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwRkVCRjg1QjFCQjYyQTM3MDAyODcyMkQgLyogSU9LaXRTUEkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSU9LaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZFQkY4NUIxQkI2
MkEzNzAwMjg3MjJEIC8qIElPS2l0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElPS2l0U1BJLmg7IHBh
dGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL3NwaS9JT0tpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRkVCRjg1QzFCQjYyRDQ2MDAyODcyMkQgLyogVUlLaXRTUEkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVUlLaXRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEz
MzI2MDUxQjc1Mzk2NTAwRjg5RjYyIC8qIFRlc3RPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRl
c3RPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQTIxMUM3MUJDQTEw
NzMwMEIyMTAxRiAvKiBGb250V2l0aEZlYXR1cmVzLm90ZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBGb250V2l0aEZlYXR1cmVz
Lm90Zjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzOCw3ICsyNDMsMTIgQEAKIAkJ
MjlBOEZDRTEzNDVFNzAyMTAwNkFBNUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5n
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FjY2Vzc2liaWxp
dHlUZXh0TWFya2VyUmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4
RkNFMTM0NUU3MDIxMDA2QUE1QTcgLyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXJSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4RkNFNDE0NUYwNDY0
MDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFu
Z2VNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEQjYxODdEMUQ3RDU4RDQw
MDk3OEQxOSAvKiBDb3JlR3JhcGhpY3NTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gQ29yZUdyYXBoaWNzU1BJLmg7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL3NwaS9D
b3JlR3JhcGhpY3NTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRDRTJDRDEx
Qjg0NTI0NTAwQzdGODMyIC8qIFRlc3RDb250cm9sbGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXN0Q29udHJvbGxlckNvY29hLm1tOyBwYXRoID0g
Y29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMkRENEM0OTgxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBFdmVudFNlcmlhbGl6ZXJNYWMuaDsgcGF0aCA9
IG1hYy9FdmVudFNlcmlhbGl6ZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkRENEM0OTkxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEV2ZW50U2VyaWFsaXplck1hYy5tbTsg
cGF0aCA9IG1hYy9FdmVudFNlcmlhbGl6ZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJERkE5ODQ2MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU2hhcmVkRXZlbnRTdHJlYW1zTWFj
Lmg7IHBhdGggPSBtYWMvU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJERkE5ODQ3MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVh
bXNNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBTaGFyZWRF
dmVudFN0cmVhbXNNYWMubW07IHBhdGggPSBtYWMvU2hhcmVkRXZlbnRTdHJlYW1zTWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTYzRUQ3NTE4OTFBQ0U5MDAyQTdBRkMgLyog
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkU2M0VENzYxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJFNjNFRDc3MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NDc0LDcgKzQ4NCw5IEBACiAJCTBGNzNCNTQ3MUJBNzgyRkUwMDRCM0VGNCAvKiBVSVNjcmlwdENv
bnRleHQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJE
QjYxODdGMUQ3RDU5ODgwMDk3OEQxOSAvKiBzcGkgKi8sCiAJCQkJMEY3M0I1NEIxQkE3ODM1MDAw
NEIzRUY0IC8qIEJpbmRpbmdzICovLAorCQkJCTJERDRDNDk3MUQ2RTdEM0IwMDA3Mzc5QyAvKiBF
dmVudCBTZXJpYWxpemF0aW9uICovLAogCQkJCTBGNzNCNTRFMUJBNzg5NTQwMDRCM0VGNCAvKiBE
ZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMEYxOEU2REQxRDZCOUFBRjAwMjdFNTQ3IC8qIFVJU2Ny
aXB0Q29udGV4dC5jcHAgKi8sCiAJCQkJMEYxOEU2REUxRDZCOUFBRjAwMjdFNTQ3IC8qIFVJU2Ny
aXB0Q29udGV4dC5oICovLApAQCAtNTUyLDYgKzU2NCwzNSBAQAogCQkJbmFtZSA9IEFjY2Vzc2li
aWxpdHk7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkyREI2MTg3RjFEN0Q1
OTg4MDA5NzhEMTkgLyogc3BpICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJl
biA9ICgKKwkJCQkyREI2MTg3RDFEN0Q1OEQ0MDA5NzhEMTkgLyogQ29yZUdyYXBoaWNzU1BJLmgg
Ki8sCisJCQkJMEZFQkY4NUIxQkI2MkEzNzAwMjg3MjJEIC8qIElPS2l0U1BJLmggKi8sCisJCQkp
OworCQkJbmFtZSA9IHNwaTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTJE
RDRDNDk3MUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVudCBTZXJpYWxpemF0aW9uICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkyREZBOTg0QTFEN0Y3OUUwMDBB
RkYyQzkgLyogbWFjICovLAorCQkJKTsKKwkJCW5hbWUgPSAiRXZlbnQgU2VyaWFsaXphdGlvbiI7
CisJCQlwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9FdmVudFNlcmlhbGl6YXRpb247CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkyREZBOTg0QTFEN0Y3OUUwMDBBRkYyQzkg
LyogbWFjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQky
REQ0QzQ5ODFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLmggKi8sCisJCQkJ
MkRENEM0OTkxRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50U2VyaWFsaXplck1hYy5tbSAqLywKKwkJ
CQkyREZBOTg0NjFEN0Y3MENGMDBBRkYyQzkgLyogU2hhcmVkRXZlbnRTdHJlYW1zTWFjLmggKi8s
CisJCQkJMkRGQTk4NDcxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5t
bSAqLywKKwkJCSk7CisJCQluYW1lID0gbWFjOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
KwkJfTsKIAkJMkU2M0VENzQxODkxQUNFOTAwMkE3QUZDIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC01ODksNyArNjMwLDYgQEAKIAkJCWNoaWxk
cmVuID0gKAogCQkJCTBGRUJGODU4MUJCNjFERjIwMDI4NzIyRCAvKiBISURFdmVudEdlbmVyYXRv
ci5oICovLAogCQkJCTBGRUJGODU5MUJCNjFERjIwMDI4NzIyRCAvKiBISURFdmVudEdlbmVyYXRv
ci5tbSAqLywKLQkJCQkwRkVCRjg1QjFCQjYyQTM3MDAyODcyMkQgLyogSU9LaXRTUEkuaCAqLywK
IAkJCQkyRUU1MkQxMzE4OTBBOUZCMDAxMEVEMjEgLyogUGxhdGZvcm1XZWJWaWV3SU9TLm1tICov
LAogCQkJCTJFRTUyRDE0MTg5MEE5RkIwMDEwRUQyMSAvKiBUZXN0Q29udHJvbGxlcklPUy5tbSAq
LywKIAkJCQkwRkVCRjg1QzFCQjYyRDQ2MDAyODcyMkQgLyogVUlLaXRTUEkuaCAqLywKQEAgLTc2
NSw3ICs4MDUsMTAgQEAKIAkJCWlzYSA9IFBCWEhlYWRlcnNCdWlsZFBoYXNlOwogCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCTJEQjYxODdFMUQ3RDU4
RDQwMDk3OEQxOSAvKiBDb3JlR3JhcGhpY3NTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzNC
NTUyMUJBNzg5NjgwMDRCM0VGNCAvKiBKU1VJU2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMkRGQTk4NDgxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01h
Yy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkRENEM0OUExRDZFN0QzQjAwMDczNzlDIC8qIEV2ZW50
U2VyaWFsaXplck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC05NzIsOCArMTAxNSwxMCBAQAogCQkJ
CTBGNzNCNTUxMUJBNzg5NjgwMDRCM0VGNCAvKiBKU1VJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjE4RTcxODFENkJDNDU2MDAyN0U1NDcgLyogSlNXcmFwcGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDNDMUI5QUUwRkUwMDc0NEFFQiAvKiBPcHRpb25z
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJERDRDNDlCMUQ2RTdEM0IwMDA3Mzc5QyAvKiBFdmVu
dFNlcmlhbGl6ZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTA0MDFCOUFFMTMxMDA3
NDRBRUIgLyogUGl4ZWxEdW1wU3VwcG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTA0
MTFCOUFFMTM4MDA3NDRBRUIgLyogVGVzdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMkRGQTk4NDkxRDdGNzBDRjAwQUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5tbSBp
biBTb3VyY2VzICovLAogCQkJCUExODUxMDNCMUI5QUUwRTIwMDc0NEFFQiAvKiBUZXN0Q29udHJv
bGxlckNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFEQThBM0QxRTcyMDVDQzAwRTFERjJG
IC8qIElPU0xheW91dFRlc3RDb21tdW5pY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEx
ODUxMDQyMUI5QUUxM0UwMDc0NEFFQiAvKiBUZXN0SW52b2NhdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL0V2ZW50U2VuZGVyUHJv
eHlFZmwuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvRXZlbnRTZW5kZXJQcm94eUVm
bC5jcHAKaW5kZXggNWZlZjAyOWI5MTEwZWNiMjA5YTM0NDE3MjY5YzZiZDYxY2VjYTdjMC4uYzFl
ODJmODhhNzA3MjhhNTZkZWU0Zjk2ZTAwN2UzYjBkMWYwNjM1ZCAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9lZmwvRXZlbnRTZW5kZXJQcm94eUVmbC5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9lZmwvRXZlbnRTZW5kZXJQcm94eUVmbC5jcHAKQEAgLTM5OSwxMSAr
Mzk5LDYgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBpbnQKICAgICBtb3VzZVNjcm9sbEJ5KHgsIHkp
OwogfQogCi12b2lkIEV2ZW50U2VuZGVyUHJveHk6OnN3aXBlR2VzdHVyZVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKGludCwgaW50LCBpbnQsIGludCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotfQotCiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmxlYXBGb3J3YXJkKGludCBtaWxsaXNlY29u
ZHMpCiB7CiAgICAgaWYgKG1fZXZlbnRRdWV1ZS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCmluZGV4IDNiMWI0MWIw
Y2UwNDM2OTYyNmRiODg3MDZkZWE1MDU3ZDQ1YzI2M2IuLjlhMzIwZmZkZWY1MTg2NzVjYWU0OTll
MDMyMjg5ODhkZTEwNjM0OGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3Rr
L0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3Rr
L0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCkBAIC00NjgsMTEgKzQ2OCw2IEBAIHZvaWQgRXZlbnRT
ZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4
LCBpbnQgeSwgaW50CiAgICAgbW91c2VTY3JvbGxCeSh4LCB5KTsKIH0KIAotdm9pZCBFdmVudFNl
bmRlclByb3h5Ojpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQsIGlu
dCwgaW50LCBpbnQpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9pZCBFdmVudFNl
bmRlclByb3h5OjpsZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKQogewogICAgIGlmIChtX2V2
ZW50UXVldWUuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9p
b3MvSU9LaXRTUEkuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL0lPS2l0U1BJLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4N2NjOWY2N2Q3ZDNmNmY2YTViYTliYmFjM2Fl
MDJjYjI1ZGU0NWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvSU9LaXRTUEkuaAorKysgL2Rldi9udWxsCkBA
IC0xLDIwNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBJT0tpdFNQSV9oCi0jZGVmaW5l
IElPS2l0U1BJX2gKLQotI2ltcG9ydCA8d3RmL1BsYXRmb3JtLmg+Ci0KLSNpZiBQTEFURk9STShJ
T1MpCi0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotCi0jaW1wb3J0IDxJT0tpdC9oaWQv
SU9ISURFdmVudC5oPgotI2ltcG9ydCA8SU9LaXQvaGlkL0lPSElERXZlbnREYXRhLmg+Ci0jaW1w
b3J0IDxJT0tpdC9oaWQvSU9ISURFdmVudFN5c3RlbUNsaWVudC5oPgotI2ltcG9ydCA8SU9LaXQv
aGlkL0lPSElEVXNhZ2VUYWJsZXMuaD4KLQotI2Vsc2UKLQotV1RGX0VYVEVSTl9DX0JFR0lOCi0K
LSNpZmRlZiBfX0xQNjRfXwotdHlwZWRlZiBkb3VibGUgSU9ISURGbG9hdDsKLSNlbHNlCi10eXBl
ZGVmIGZsb2F0IElPSElERmxvYXQ7Ci0jZW5kaWYKLQotZW51bSB7Ci0gICAga0lPSElERXZlbnRP
cHRpb25Ob25lID0gMCwKLX07Ci0KLXR5cGVkZWYgVUludDMyIElPT3B0aW9uQml0czsKLXR5cGVk
ZWYgdWludDMyX3QgSU9ISURFdmVudE9wdGlvbkJpdHM7Ci10eXBlZGVmIHVpbnQzMl90IElPSElE
RXZlbnRGaWVsZDsKLQotdHlwZWRlZiBzdHJ1Y3QgX19JT0hJREV2ZW50U3lzdGVtQ2xpZW50ICog
SU9ISURFdmVudFN5c3RlbUNsaWVudFJlZjsKLXR5cGVkZWYgc3RydWN0IF9fSU9ISURFdmVudCAq
IElPSElERXZlbnRSZWY7Ci0KLSNkZWZpbmUgSU9ISURFdmVudEZpZWxkQmFzZSh0eXBlKSAodHlw
ZSA8PCAxNikKLQotZW51bSB7Ci0gICAga0hJRFBhZ2VfS2V5Ym9hcmRPcktleXBhZCAgICAgICA9
IDB4MDcsCi0gICAga0hJRFBhZ2VfVmVuZG9yRGVmaW5lZFN0YXJ0ICAgICA9IDB4RkYwMAotfTsK
LQotZW51bSB7Ci0gICAga0lPSElERGlnaXRpemVyRXZlbnRSYW5nZSAgICAgICA9IDE8PDAsCi0g
ICAga0lPSElERGlnaXRpemVyRXZlbnRUb3VjaCAgICAgICA9IDE8PDEsCi0gICAga0lPSElERGln
aXRpemVyRXZlbnRQb3NpdGlvbiAgICA9IDE8PDIsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRJ
ZGVudGl0eSAgICA9IDE8PDUsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRBdHRyaWJ1dGUgICA9
IDE8PDYsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRDYW5jZWwgICAgICA9IDE8PDcsCi0gICAg
a0lPSElERGlnaXRpemVyRXZlbnRTdGFydCAgICAgICA9IDE8PDgsCi0gICAga0lPSElERGlnaXRp
emVyRXZlbnRFc3RpbWF0ZWRBbHRpdHVkZSA9IDE8PDI4LAotICAgIGtJT0hJRERpZ2l0aXplckV2
ZW50RXN0aW1hdGVkQXppbXV0aCA9IDE8PDI5LAotICAgIGtJT0hJRERpZ2l0aXplckV2ZW50RXN0
aW1hdGVkUHJlc3N1cmUgPSAxPDwzMAotfTsKLXR5cGVkZWYgdWludDMyX3QgSU9ISUREaWdpdGl6
ZXJFdmVudE1hc2s7Ci0KLWVudW0gewotICAgIGtJT0hJRERpZ2l0aXplckV2ZW50VXBkYXRlQWx0
aXR1ZGVNYXNrID0gMTw8MjgsCi0gICAga0lPSElERGlnaXRpemVyRXZlbnRVcGRhdGVBemltdXRo
TWFzayA9IDE8PDI5LAotICAgIGtJT0hJRERpZ2l0aXplckV2ZW50VXBkYXRlUHJlc3N1cmVNYXNr
ID0gMTw8MzAKLX07Ci0KLWVudW0gewotICAgIGtJT0hJREV2ZW50VHlwZU5VTEwsCi0gICAga0lP
SElERXZlbnRUeXBlVmVuZG9yRGVmaW5lZCwKLSAgICBrSU9ISURFdmVudFR5cGVLZXlib2FyZCA9
IDMsCi0gICAga0lPSElERXZlbnRUeXBlRGlnaXRpemVyID0gMTEsCi19OwotdHlwZWRlZiB1aW50
MzJfdCBJT0hJREV2ZW50VHlwZTsKLQotZW51bSB7Ci0gICAga0lPSElERXZlbnRGaWVsZFZlbmRv
ckRlZmluZWRVc2FnZVBhZ2UgPSBJT0hJREV2ZW50RmllbGRCYXNlKGtJT0hJREV2ZW50VHlwZVZl
bmRvckRlZmluZWQpLAotICAgIGtJT0hJREV2ZW50RmllbGRWZW5kb3JEZWZpbmVkUmVzZXJ2ZWQs
Ci0gICAga0lPSElERXZlbnRGaWVsZFZlbmRvckRlZmluZWRSZXNlcnZlZDEsCi0gICAga0lPSElE
RXZlbnRGaWVsZFZlbmRvckRlZmluZWREYXRhTGVuZ3RoLAotICAgIGtJT0hJREV2ZW50RmllbGRW
ZW5kb3JEZWZpbmVkRGF0YQotfTsKLQotZW51bSB7Ci0gICAga0lPSElERXZlbnRGaWVsZERpZ2l0
aXplclggPSBJT0hJREV2ZW50RmllbGRCYXNlKGtJT0hJREV2ZW50VHlwZURpZ2l0aXplciksCi0g
ICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplclksCi0gICAga0lPSElERXZlbnRGaWVsZERpZ2l0
aXplck1ham9yUmFkaXVzID0ga0lPSElERXZlbnRGaWVsZERpZ2l0aXplclggKyAyMCwKLSAgICBr
SU9ISURFdmVudEZpZWxkRGlnaXRpemVyTWlub3JSYWRpdXMsCi0gICAga0lPSElERXZlbnRGaWVs
ZERpZ2l0aXplcklzRGlzcGxheUludGVncmF0ZWQgPSBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVy
TWFqb3JSYWRpdXMgKyA1LAotfTsKLQotZW51bSB7Ci0gICAga0lPSElEVHJhbnNkdWNlclJhbmdl
ICAgICAgICAgICAgICAgPSAweDAwMDEwMDAwLAotICAgIGtJT0hJRFRyYW5zZHVjZXJUb3VjaCAg
ICAgICAgICAgICAgID0gMHgwMDAyMDAwMCwKLSAgICBrSU9ISURUcmFuc2R1Y2VySW52ZXJ0ICAg
ICAgICAgICAgICA9IDB4MDAwNDAwMDAsCi0gICAga0lPSElEVHJhbnNkdWNlckRpc3BsYXlJbnRl
Z3JhdGVkICAgPSAweDAwMDgwMDAwCi19OwotCi1lbnVtIHsKLSAgICBrSU9ISUREaWdpdGl6ZXJU
cmFuc2R1Y2VyVHlwZVN0eWx1cyAgPSAwLAotICAgIGtJT0hJRERpZ2l0aXplclRyYW5zZHVjZXJU
eXBlRmluZ2VyID0gMiwKLSAgICBrSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZUhhbmQgPSAz
Ci19OwotdHlwZWRlZiB1aW50MzJfdCBJT0hJRERpZ2l0aXplclRyYW5zZHVjZXJUeXBlOwotCi1l
bnVtIHsKLSAgICBrSU9ISURFdmVudEZpZWxkRGlnaXRpemVyV2lsbFVwZGF0ZU1hc2sgPSA3MjA5
MjQsCi0gICAga0lPSElERXZlbnRGaWVsZERpZ2l0aXplckRpZFVwZGF0ZU1hc2sgPSA3MjA5MjUK
LX07Ci0KLUlPSElERXZlbnRSZWYgSU9ISURFdmVudENyZWF0ZURpZ2l0aXplckV2ZW50KENGQWxs
b2NhdG9yUmVmLCB1aW50NjRfdCwgSU9ISUREaWdpdGl6ZXJUcmFuc2R1Y2VyVHlwZSwgdWludDMy
X3QsIHVpbnQzMl90LCBJT0hJRERpZ2l0aXplckV2ZW50TWFzaywgdWludDMyX3QsIElPSElERmxv
YXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIGJvb2xl
YW5fdCwgYm9vbGVhbl90LCBJT09wdGlvbkJpdHMpOwotCi1JT0hJREV2ZW50UmVmIElPSElERXZl
bnRDcmVhdGVEaWdpdGl6ZXJGaW5nZXJFdmVudChDRkFsbG9jYXRvclJlZiwgdWludDY0X3QsIHVp
bnQzMl90LCB1aW50MzJfdCwgSU9ISUREaWdpdGl6ZXJFdmVudE1hc2ssIElPSElERmxvYXQsIElP
SElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIGJvb2xlYW5fdCwg
Ym9vbGVhbl90LCBJT0hJREV2ZW50T3B0aW9uQml0cyk7Ci0KLUlPSElERXZlbnRSZWYgSU9ISURF
dmVudENyZWF0ZUZvcmNlRXZlbnQoQ0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwg
SU9ISURGbG9hdCwgdWludDMyX3QsIElPSElERmxvYXQsIElPSElERXZlbnRPcHRpb25CaXRzKTsK
LQotSU9ISURFdmVudFJlZiBJT0hJREV2ZW50Q3JlYXRlS2V5Ym9hcmRFdmVudChDRkFsbG9jYXRv
clJlZiwgdWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgYm9vbGVhbl90LCBJT09wdGlvbkJp
dHMpOwotCi1JT0hJREV2ZW50UmVmIElPSElERXZlbnRDcmVhdGVWZW5kb3JEZWZpbmVkRXZlbnQo
Q0ZBbGxvY2F0b3JSZWYsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1
aW50OF90KiwgQ0ZJbmRleCwgSU9ISURFdmVudE9wdGlvbkJpdHMpOwotCi1JT0hJREV2ZW50UmVm
IElPSElERXZlbnRDcmVhdGVEaWdpdGl6ZXJTdHlsdXNFdmVudFdpdGhQb2xhck9yaWVudGF0aW9u
KENGQWxsb2NhdG9yUmVmLCB1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90LCBJT0hJRERpZ2l0
aXplckV2ZW50TWFzaywgdWludDMyX3QsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxv
YXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElERmxvYXQsIElPSElE
RmxvYXQsIGJvb2xlYW5fdCwgYm9vbGVhbl90LCBJT0hJREV2ZW50T3B0aW9uQml0cyk7Ci0KLUlP
SElERXZlbnRUeXBlIElPSElERXZlbnRHZXRUeXBlKElPSElERXZlbnRSZWYpOwotCi12b2lkIElP
SElERXZlbnRTZXRGbG9hdFZhbHVlKElPSElERXZlbnRSZWYsIElPSElERXZlbnRGaWVsZCwgSU9I
SURGbG9hdCk7Ci0KLUNGSW5kZXggSU9ISURFdmVudEdldEludGVnZXJWYWx1ZShJT0hJREV2ZW50
UmVmLCBJT0hJREV2ZW50RmllbGQpOwotdm9pZCBJT0hJREV2ZW50U2V0SW50ZWdlclZhbHVlKElP
SElERXZlbnRSZWYsIElPSElERXZlbnRGaWVsZCwgQ0ZJbmRleCk7Ci0KLXZvaWQgSU9ISURFdmVu
dEFwcGVuZEV2ZW50KElPSElERXZlbnRSZWYsIElPSElERXZlbnRSZWYsIElPT3B0aW9uQml0cyk7
Ci0KLUlPSElERXZlbnRTeXN0ZW1DbGllbnRSZWYgSU9ISURFdmVudFN5c3RlbUNsaWVudENyZWF0
ZShDRkFsbG9jYXRvclJlZik7Ci0KLSNkZWZpbmUga0dTRXZlbnRQYXRoSW5mb0luUmFuZ2UgKDEg
PDwgMCkKLSNkZWZpbmUga0dTRXZlbnRQYXRoSW5mb0luVG91Y2ggKDEgPDwgMSkKLQotZW51bSB7
Ci0gICAga0hJRFVzYWdlX0tleWJvYXJkQSA9IDB4MDQsCi0gICAga0hJRFVzYWdlX0tleWJvYXJk
MSA9IDB4MUUsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkMiA9IDB4MUYsCi0gICAga0hJRFVzYWdl
X0tleWJvYXJkMyA9IDB4MjAsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkNCA9IDB4MjEsCi0gICAg
a0hJRFVzYWdlX0tleWJvYXJkNSA9IDB4MjIsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkNiA9IDB4
MjMsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkNyA9IDB4MjQsCi0gICAga0hJRFVzYWdlX0tleWJv
YXJkOCA9IDB4MjUsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkOSA9IDB4MjYsCi0gICAga0hJRFVz
YWdlX0tleWJvYXJkMCA9IDB4MjcsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkUmV0dXJuT3JFbnRl
ciA9IDB4MjgsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkRXNjYXBlID0gMHgyOSwKLSAgICBrSElE
VXNhZ2VfS2V5Ym9hcmREZWxldGVPckJhY2tzcGFjZSA9IDB4MkEsCi0gICAga0hJRFVzYWdlX0tl
eWJvYXJkVGFiID0gMHgyQiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRTcGFjZWJhciA9IDB4MkMs
Ci0gICAga0hJRFVzYWdlX0tleWJvYXJkSHlwaGVuID0gMHgyRCwKLSAgICBrSElEVXNhZ2VfS2V5
Ym9hcmRFcXVhbFNpZ24gPSAweDJFLAotICAgIGtISURVc2FnZV9LZXlib2FyZE9wZW5CcmFja2V0
ID0gMHgyRiwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRDbG9zZUJyYWNrZXQgPSAweDMwLAotICAg
IGtISURVc2FnZV9LZXlib2FyZEJhY2tzbGFzaCA9IDB4MzEsCi0gICAga0hJRFVzYWdlX0tleWJv
YXJkU2VtaWNvbG9uID0gMHgzMywKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRRdW90ZSA9IDB4MzQs
Ci0gICAga0hJRFVzYWdlX0tleWJvYXJkR3JhdmVBY2NlbnRBbmRUaWxkZSA9IDB4MzUsCi0gICAg
a0hJRFVzYWdlX0tleWJvYXJkQ29tbWEgPSAweDM2LAotICAgIGtISURVc2FnZV9LZXlib2FyZFBl
cmlvZCA9IDB4MzcsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkU2xhc2ggPSAweDM4LAotICAgIGtI
SURVc2FnZV9LZXlib2FyZEYxID0gMHgzQSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRIb21lID0g
MHg0QSwKLSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRQYWdlVXAgPSAweDRCLAotICAgIGtISURVc2Fn
ZV9LZXlib2FyZEVuZCA9IDB4NEQsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkUmlnaHRBcnJvdyA9
IDB4NEYsCi0gICAga0hJRFVzYWdlX0tleWJvYXJkTGVmdEFycm93ID0gMHg1MCwKLSAgICBrSElE
VXNhZ2VfS2V5Ym9hcmREb3duQXJyb3cgPSAweDUxLAotICAgIGtISURVc2FnZV9LZXlib2FyZFVw
QXJyb3cgPSAweDUyLAotICAgIGtISURVc2FnZV9LZXlib2FyZExlZnRDb250cm9sID0gMHhFMCwK
LSAgICBrSElEVXNhZ2VfS2V5Ym9hcmRMZWZ0U2hpZnQgPSAweEUxLAotICAgIGtISURVc2FnZV9L
ZXlib2FyZExlZnRBbHQgPSAweEUyCi19OwotCi1XVEZfRVhURVJOX0NfRU5ECi0KLSNlbmRpZiAv
LyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQotCi0j
ZW5kaWYgLy8gSU9LaXRTUElfaApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9t
YWMvRXZlbnRTZW5kZXJQcm94eS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50
U2VuZGVyUHJveHkubW0KaW5kZXggZWU0ZWIwYzE1NTFkYzUyYWNiMDc3ODJjZWY4OTIyMzQ2OThl
ZjQ4YS4uNzkwZjYzNTFiZDZiMDFlMzk4NDU4MTAyNWVkOWQwZjQ3NzM1NDFjYiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tCkBAIC00NiwxNyAr
NDYsNiBAQCBAaW50ZXJmYWNlIE5TRXZlbnQgKEZvclRlc3RSdW5uZXIpCiAtICh2b2lkKV9wb3N0
RGVsYXllZDsKIEBlbmQKIAotI2lmIGRlZmluZWQoX19MUDY0X18pCi1zdHJ1Y3QgV0tUUkNHU0V2
ZW50UmVjb3JkIHsKLSAgICBjaGFyIG9mZnNldDFbMTUwXTsKLSAgICB1aW50OF90IHBoYXNlOwot
ICAgIGNoYXIgb2Zmc2V0MlsxM107Ci0gICAgZmxvYXQgZGVsdGFYOwotICAgIGZsb2F0IGRlbHRh
WTsKLSAgICBjaGFyIG9mZnNldDNbNzZdOwotfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKLSNl
bmRpZgotCiBAaW50ZXJmYWNlIEV2ZW50U2VuZGVyU3ludGhldGljRXZlbnQgOiBOU0V2ZW50IHsK
IEBwdWJsaWMKICAgICBOU1BvaW50IF9ldmVudFNlbmRlcl9sb2NhdGlvbkluV2luZG93OwpAQCAt
NzEsMTEgKzYwLDYgQEAgQHB1YmxpYwogICAgIHNob3J0IF9ldmVudFNlbmRlcl9zdWJ0eXBlOwog
ICAgIE5TRXZlbnRUeXBlIF9ldmVudFNlbmRlcl90eXBlOwogICAgIE5TV2luZG93ICpfZXZlbnRT
ZW5kZXJfd2luZG93OwotCi0KLSNpZiBkZWZpbmVkKF9fTFA2NF9fKQotICAgIFdLVFJDR1NFdmVu
dFJlY29yZCBfZXZlbnRTZW5kZXJfY2dzRXZlbnRSZWNvcmQ7Ci0jZW5kaWYKIH0KIAogLSAoaWQp
aW5pdFByZXNzdXJlRXZlbnRBdExvY2F0aW9uOihOU1BvaW50KWxvY2F0aW9uIGdsb2JhbExvY2F0
aW9uOihOU1BvaW50KWdsb2JhbExvY2F0aW9uIHN0YWdlOihOU0ludGVnZXIpc3RhZ2UgcHJlc3N1
cmU6KGZsb2F0KXByZXNzdXJlIHN0YWdlVHJhbnNpdGlvbjooZmxvYXQpc3RhZ2VUcmFuc2l0aW9u
IHBoYXNlOihOU0V2ZW50UGhhc2UpcGhhc2UgdGltZTooTlNUaW1lSW50ZXJ2YWwpdGltZSBldmVu
dE51bWJlcjooTlNJbnRlZ2VyKWV2ZW50TnVtYmVyIHdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3c7
CkBAIC0xNjgsMTMgKzE1Miw2IEBAIC0gKEJPT0wpX2lzVG91Y2hlc0VuZGVkCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi0jaWYgZGVmaW5lZChfX0xQNjRfXykKLS0gKFdLVFJDR1NFdmVudFJlY29y
ZClfY2dzRXZlbnRSZWNvcmQKLXsKLSAgICByZXR1cm4gX2V2ZW50U2VuZGVyX2Nnc0V2ZW50UmVj
b3JkOwotfQotI2VuZGlmCi0KIC0gKE5TV2luZG93ICopd2luZG93CiB7CiAgICAgcmV0dXJuIF9l
dmVudFNlbmRlcl93aW5kb3c7CkBAIC05MDcsNTAgKzg4NCw0IEBAIHZvaWQgRXZlbnRTZW5kZXJQ
cm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQg
eSwgaW50CiAgICAgfQogfQogCi1zdGF0aWMgTlNFdmVudFBoYXNlIG5zRXZlbnRQaGFzZUZyb21D
R0V2ZW50UGhhc2UoaW50IHBoYXNlKQotewotICAgIHN3aXRjaCAocGhhc2UpIHsKLSAgICBjYXNl
IDA6IC8vIGtDR1NHZXN0dXJlUGhhc2VOb25lCi0gICAgICAgIHJldHVybiBOU0V2ZW50UGhhc2VO
b25lOwotICAgIGNhc2UgMTogLy8ga0NHU0dlc3R1cmVQaGFzZUJlZ2FuCi0gICAgICAgIHJldHVy
biBOU0V2ZW50UGhhc2VCZWdhbjsKLSAgICBjYXNlIDI6IC8vIGtDR1NHZXN0dXJlUGhhc2VDaGFu
Z2VkCi0gICAgICAgIHJldHVybiBOU0V2ZW50UGhhc2VDaGFuZ2VkOwotICAgIGNhc2UgNDogLy8g
a0NHU0dlc3R1cmVQaGFzZUVuZGVkCi0gICAgICAgIHJldHVybiBOU0V2ZW50UGhhc2VFbmRlZDsK
LSAgICBjYXNlIDg6IC8vIGtDR1NHZXN0dXJlUGhhc2VDYW5jZWxsZWQKLSAgICAgICAgcmV0dXJu
IE5TRXZlbnRQaGFzZUNhbmNlbGxlZDsKLSAgICBjYXNlIDEyODogLy8ga0NHU0dlc3R1cmVQaGFz
ZU1heUJlZ2luCi0gICAgICAgIHJldHVybiBOU0V2ZW50UGhhc2VNYXlCZWdpbjsKLSAgICB9Ci0K
LSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gTlNFdmVudFBoYXNlTm9uZTsK
LX0KLQotdm9pZCBFdmVudFNlbmRlclByb3h5Ojpzd2lwZUdlc3R1cmVXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIGludCBwaGFzZSwgaW50IG1vbWVudHVtKQotewotICAg
IFJldGFpblB0cjxFdmVudFNlbmRlclN5bnRoZXRpY0V2ZW50PiBldmVudCA9IGFkb3B0TlMoW1tF
dmVudFNlbmRlclN5bnRoZXRpY0V2ZW50IGFsbG9jXSBpbml0XSk7Ci0KLSAgICAvLyAibWF5QmVn
aW4iIGEgc3dpcGUgaXMgYWN0dWFsbHkgYSBzY3JvbGwgd2hlZWwgZXZlbnQuCi0gICAgZXZlbnQt
Pl9ldmVudFNlbmRlcl90eXBlID0gKHBoYXNlID09IDEyOCkgPyBOU0V2ZW50VHlwZVNjcm9sbFdo
ZWVsIDogTlNFdmVudFR5cGVHZXN0dXJlOwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfc3VidHlw
ZSA9IDY7IC8vIGtJT0hJREV2ZW50VHlwZVNjcm9sbAotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJf
bG9jYXRpb25JbldpbmRvdyA9IE5TTWFrZVBvaW50KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55
KTsKLSAgICBldmVudC0+X2V2ZW50U2VuZGVyX2xvY2F0aW9uID0gKFttX3Rlc3RDb250cm9sbGVy
LT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVdpbmRvdygpIGNvbnZlcnRSZWN0VG9TY3JlZW46TlNN
YWtlUmVjdChtX3Bvc2l0aW9uLngsIG1fcG9zaXRpb24ueSwgMSwgMSldLm9yaWdpbik7Ci0gICAg
ZXZlbnQtPl9ldmVudFNlbmRlcl9waGFzZSA9IG5zRXZlbnRQaGFzZUZyb21DR0V2ZW50UGhhc2Uo
cGhhc2UpOwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfbW9tZW50dW1QaGFzZSA9IG5zRXZlbnRQ
aGFzZUZyb21DR0V2ZW50UGhhc2UobW9tZW50dW0pOwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJf
dGltZXN0YW1wID0gYWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSk7
Ci0gICAgZXZlbnQtPl9ldmVudFNlbmRlcl9ldmVudE51bWJlciA9ICsrZXZlbnROdW1iZXI7Ci0K
LSNpZiBkZWZpbmVkKF9fTFA2NF9fKQotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfY2dzRXZlbnRS
ZWNvcmQucGhhc2UgPSBwaGFzZTsKLSAgICBldmVudC0+X2V2ZW50U2VuZGVyX2Nnc0V2ZW50UmVj
b3JkLmRlbHRhWCA9IChmbG9hdCl4OwotICAgIGV2ZW50LT5fZXZlbnRTZW5kZXJfY2dzRXZlbnRS
ZWNvcmQuZGVsdGFZID0gKGZsb2F0KXk7Ci0jZWxzZQotICAgIE5TTG9nKEAiU3ludGhldGljIHN3
aXBlIGdlc3R1cmVzIGFyZSBub3QgaW1wbGVtZW50ZWQgZm9yIDMyLWJpdCBXZWJLaXRUZXN0UnVu
bmVyLiIpOwotI2VuZGlmCi0KLSAgICBbTlNBcHAgc2VuZEV2ZW50OmV2ZW50LmdldCgpXTsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KaW5kZXggOWU2NTkwOTFlNzY1NTMyMmE3ODJjNTRh
MGM3YTVjZWQwZjgzNDk4Zi4uODAxNjc0ZTU0NzI5NTRhMTZhYmEzZmFlMzlhYjk1OTUwMTlhNGY5
MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9s
bGVyTWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJv
bGxlck1hYy5tbQpAQCAtMjYsNiArMjYsMTAgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9y
dCAiVUlTY3JpcHRDb250cm9sbGVyLmgiCiAKKyNpbXBvcnQgIkV2ZW50U2VyaWFsaXplck1hYy5o
IgorI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW1wb3J0ICJTaGFyZWRFdmVudFN0cmVh
bXNNYWMuaCIKKyNpbXBvcnQgIlRlc3RDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVdl
YlZpZXcuaCIKICNpbXBvcnQgIlN0cmluZ0Z1bmN0aW9ucy5oIgogI2ltcG9ydCAiVGVzdENvbnRy
b2xsZXIuaCIKQEAgLTE4OCw0ICsxOTIsMzkgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmFk
ZFZpZXdUb1dpbmRvdyhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogI2VuZGlmCiB9CiAKK3N0YXRpYyB2
b2lkIHBsYXlCYWNrRXZlbnRzKFVJU2NyaXB0Q29udGV4dCAqY29udGV4dCwgTlNTdHJpbmcgKmV2
ZW50U3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIE5TRXJyb3IgKmVycm9yID0g
bmlsOworICAgIE5TQXJyYXkgKmV2ZW50RGljdHMgPSBbTlNKU09OU2VyaWFsaXphdGlvbiBKU09O
T2JqZWN0V2l0aERhdGE6W2V2ZW50U3RyZWFtIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmlu
Z0VuY29kaW5nXSBvcHRpb25zOjAgZXJyb3I6JmVycm9yXTsKKworICAgIGlmIChlcnJvcikgewor
ICAgICAgICBOU0xvZyhAIkVSUk9SOiAlQCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHVuc2lnbmVkIGNhbGxiYWNrSUQgPSBjb250ZXh0LT5wcmVwYXJlRm9yQXN5bmNU
YXNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVOb25QZXJzaXN0ZW50KTsKKworICAgIE5TV2luZG93
ICp3aW5kb3cgPSBbVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBs
YXRmb3JtVmlldygpIHdpbmRvd107CisKKyAgICBbRXZlbnRTdHJlYW1QbGF5ZXIgcGxheVN0cmVh
bTpldmVudERpY3RzIHdpbmRvdzp3aW5kb3cgY29tcGxldGlvbkhhbmRsZXI6XiB7CisgICAgICAg
IGNvbnRleHQtPmFzeW5jVGFza0NvbXBsZXRlKGNhbGxiYWNrSUQpOworICAgIH1dOworfQorCit2
b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVnaW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFj
aykKK3sKKyAgICBwbGF5QmFja0V2ZW50cyhtX2NvbnRleHQsIGJlZ2luU3dpcGVCYWNrRXZlbnRT
dHJlYW0oKSwgY2FsbGJhY2spOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxl
dGVCYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBwbGF5QmFja0V2ZW50cyht
X2NvbnRleHQsIGNvbXBsZXRlU3dpcGVCYWNrRXZlbnRTdHJlYW0oKSwgY2FsbGJhY2spOworfQor
Cit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1QbGF5QmFja0V2ZW50U3RyZWFtKEpT
U3RyaW5nUmVmIGV2ZW50U3RyZWFtLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gc3RyZWFtID0gYWRvcHRDRihKU1N0cmluZ0NvcHlDRlN0cmluZyhr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBldmVudFN0cmVhbSkpOworICAgIHBsYXlCYWNrRXZlbnRzKG1f
Y29udGV4dCwgKE5TU3RyaW5nICopc3RyZWFtLmdldCgpLCBjYWxsYmFjayk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY2ZGRmNDdkODg4ZmQ1NWE1ZjI5ZmJjN2Q3Mzc0ZGQ1ZDdi
YmU4ZDkuLjk1OWIyZTM5NDZiNjg0ZmNhMzI0ZWU1NzY5MDEzYjgzY2I2MDVmNDMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNCBAQAorMjAxNy0wMy0yOSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KKworICAgICAgICBTd2lwZSBnZXN0dXJlIHRlc3RzIGRvbid0IHdvcmsgb24gbWFj
T1MgU2llcnJhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjE2NzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIzMzc5OTMwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0
RXhwZWN0YXRpb25zOgorICAgICAgICAqIHN3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1s
OgorICAgICAgICAqIHN3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0
bWw6CisgICAgICAgICogc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBzd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbDoK
KyAgICAgICAgKiBzd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGlu
Zy1jcmFzaC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1t
YXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbDoKKyAgICAgICAgKiBzd2lwZS9yZXNv
dXJjZXMvc3dpcGUtdGVzdC5qczoKKyAgICAgICAgKG1lYXN1cmVkRHVyYXRpb25TaG91bGRCZUxl
c3NUaGFuKToKKyAgICAgICAgKHN0YXJ0U3dpcGVHZXN0dXJlKToKKyAgICAgICAgKGNvbXBsZXRl
U3dpcGVHZXN0dXJlKToKKyAgICAgICAgKHBsYXlFdmVudFN0cmVhbSk6CisgICAgICAgIChldmVu
dFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCk6IERlbGV0ZWQuCisgICAgICAgIChldmVudFF1ZXVl
LmVucXVldWVTd2lwZUV2ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKGV2ZW50UXVldWUuaGFzUGVu
ZGluZ0V2ZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50
RGlzcGF0Y2gpOiBEZWxldGVkLgorICAgICAgICAoZXZlbnRRdWV1ZS5fcHJvY2Vzc0V2ZW50UXVl
dWUpOiBEZWxldGVkLgorICAgICAgICAoZXZlbnRRdWV1ZS5fcHJvY2Vzc0V2ZW50UXVldWVTb29u
KTogRGVsZXRlZC4KKyAgICAgICAgKiBzd2lwZS9zd2lwZS1zdGFydC1oeXN0ZXJlc2lzLWZhaWx1
cmVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBzd2lwZS9zd2lwZS1zdGFydC1o
eXN0ZXJlc2lzLWZhaWx1cmVzLmh0bWw6IFJlbW92ZWQuCisKIDIwMTctMDMtMjkgIEphdmllciBG
ZXJuYW5kZXogIDxqZmVybmFuZGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1hbGlnbl0g
QWRhcHQgc2VsZi1hbGlnbm1lbnQgcHJvcGVydGllcyB0byB0aGUgbmV3IGJhc2VsaW5lIHN5bnRh
eApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IGMwZjUwOTA3OGJjZTUzZTM2MTFiZjJhNGY5OWI5NzIyMGI3OGNiMDIuLjdhODhlMjkxN2VmZmI5
OGQ2MjA3NzVjNjA4Y2IxOGI4ZDAxNmE0NGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTU0MiwxMiArNTQyLDYgQEAgd2Via2l0Lm9yZy9i
LzE2MjYzOCBbIFNpZXJyYSsgXSBmYXN0L3Njcm9sbGluZy9ydGwtc2Nyb2xsYmFycy1hbHRlcm5h
dGUtaWZyYW1lLWIKICMgPHJkYXI6Ly9wcm9ibGVtLzI1MDYzMTI4PgogWyBTaWVycmErIF0gbWVk
aWEvbWVkaWEtY29udHJvbHMtZHJhZy10aW1lbGluZS1zZXQtY29udHJvbHMtcHJvcGVydHkuaHRt
bCBbIFBhc3MgVGltZW91dCBdCiAKLSMgPHJkYXI6Ly9wcm9ibGVtLzIzMzc5OTMwPiBzd2lwZSB0
ZXN0cyBjcmFzaGluZwotWyBTaWVycmErIF0gc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUu
aHRtbCBbIFNraXAgXQotWyBTaWVycmErIF0gc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVp
cmVtZW50Lmh0bWwgWyBTa2lwIF0KLVsgU2llcnJhKyBdIHN3aXBlL3B1c2hTdGF0ZS1jYWNoZWQt
YmFjay1zd2lwZS5odG1sIFsgU2tpcCBdCi1bIFNpZXJyYSsgXSBzd2lwZS9zd2lwZS1zdGFydC1o
eXN0ZXJlc2lzLWZhaWx1cmVzLmh0bWwgWyBTa2lwIF0KLQogIyBIaXR0aW5nICJUaGUgY2VydGlm
aWNhdGUgZm9yIHRoaXMgc2VydmVyIGlzIGludmFsaWQiIGxvYWRpbmcgZXJyb3IgKG5vdCBoYXBw
ZW5pbmcgaW4gV0sxKQogd2Via2l0Lm9yZy9iLzE2MDQ0NSBbIFNpZXJyYSsgXSBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91cGdyYWRlLWluc2VjdXJlLXJlcXVlc3Rz
L3VwZ3JhZGUtaW5zZWN1cmUtZmV0Y2gtaW4td29ya2VyLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtp
dC5vcmcvYi8xNjA0NDUgWyBTaWVycmErIF0gaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy91cGdyYWRlLWluc2VjdXJlLWZl
dGNoLWluLW1haW4tZnJhbWUuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0CmluZGV4IGUzZDNl
MDBhYjlkMGJmZmZlNjY5ZDZhZDg5YTAxN2FmNTdmNzBiODkuLjg5ZGVjZmQ0YzM3MTI1Y2ZiNTU5
ODExOTY4OWMzZjBjNGExZDg4NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL2Jhc2lj
LWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9i
YXNpYy1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsNiBAQAotc3dp
cGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVs
dGEgMSAwLCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdj
aGFuZ2VkJykKK3N0YXJ0U3dpcGVHZXN0dXJlCiBkaWRCZWdpblN3aXBlCi1zd2lwZSBldmVudCAo
ZGVsdGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMjU2IDAsIHBo
YXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCitj
b21wbGV0ZVN3aXBlR2VzdHVyZQogd2lsbEVuZFN3aXBlCiBkaWRFbmRTd2lwZQogZGlkUmVtb3Zl
U3dpcGVTbmFwc2hvdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVk
LWJhY2stc3dpcGUuaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3
aXBlLmh0bWwKaW5kZXggY2Y3Zjc1Y2IxMzliNTRiNTE1MTc4YTA3M2I5OGFkMDY3M2RkYTY4My4u
ODcxYTJiYzY0NmI4ZDRhZTg2OTQ2MzdlODAwM2EzYjRiMzI0NWE2YiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sCkBAIC02LDI4ICs2LDEwIEBA
IGh0bWwgewogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gc3RhcnRTd2lwZUdlc3R1cmUoKQotewotICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKLQotICAgIGV2ZW50UXVldWUuZW5x
dWV1ZVN3aXBlRXZlbnQoMCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVl
U2Nyb2xsRXZlbnQoMSwgMCwgJ2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xs
RXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLX0KLQotZnVuY3Rpb24gY29tcGxldGVTd2lwZUdlc3R1
cmUoKQotewotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMSwgMCwgJ2NoYW5nZWQn
KTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDI1NiwgMCwgJ2NoYW5nZWQnKTsK
LSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdlbmRlZCcpOwotfQotCiBm
dW5jdGlvbiBkaWRCZWdpblN3aXBlQ2FsbGJhY2soKQogewogICAgIGxvZygiZGlkQmVnaW5Td2lw
ZSIpOwogCi0gICAgc2hvdWxkQmUoZmFsc2UsIGV2ZW50UXVldWUuaGFzUGVuZGluZ0V2ZW50cygp
LCAiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5LiBCb3RoIHNjcm9sbCBldmVudHMgc2hvdWxk
IGJlIHJlcXVpcmVkIHRvIHN0YXJ0IHRoZSBzd2lwZSBiZWNhdXNlIG9mIHRoZSBzd2lwZS1zdGFy
dCBoeXN0ZXJlc2lzLiIpOwotCiAgICAgY29tcGxldGVTd2lwZUdlc3R1cmUoKTsKIH0KIApAQCAt
NDIsNyArMjQsNiBAQCBmdW5jdGlvbiBkaWRFbmRTd2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2co
ImRpZEVuZFN3aXBlIik7CiAKLSAgICBzaG91bGRCZSgwLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdF
dmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNob3VsZCBiZSBlbXB0eS4gVGhlIHN3aXBlIGlzbid0IGNv
bXBsZXRlIHVudGlsIHdlIHNlZSB0aGUgZW5kIG9mIHRoZSBnZXN0dXJlLiIpOwogICAgIHN0YXJ0
TWVhc3VyaW5nRHVyYXRpb24oInNuYXBzaG90UmVtb3ZhbCIpOwogfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50LWV4
cGVjdGVkLnR4dAppbmRleCA2MzU5NzQwNTQ4NDc2YzhkMDlmYjRiYjM3Yzc1MjQ0YjkwYjM5MGQ2
Li5jZTc2NjgxOTcyMjA5NTM1ZTI0Y2UwNzM3MGUzMDZhMDk4MjUwY2ZlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVu
dC1leHBlY3RlZC50eHQKQEAgLTEsMjMgKzEsOCBAQAotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwg
cGhhc2UgJ21heWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2JlZ2Fu
JykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2
ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEw
IDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2No
YW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFzZSAnY2hhbmdlZCcpCi1zY3Jv
bGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKLXNjcm9sbCBldmVudCAoZGVs
dGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxMCAwLCBwaGFz
ZSAnY2hhbmdlZCcpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykK
LXNjcm9sbCBldmVudCAoZGVsdGEgMTAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50
IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFz
ZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdiZWdhbicpCi1z
Y3JvbGwgZXZlbnQgKGRlbHRhIDEwIDAsIHBoYXNlICdjaGFuZ2VkJykKK3N0YXJ0U3dpcGVHZXN0
dXJlCitjb21wbGV0ZVN3aXBlR2VzdHVyZQorc3RhcnRTd2lwZUdlc3R1cmUKIGRpZEJlZ2luU3dp
cGUKLXN3aXBlIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50
IChkZWx0YSAyNTYgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwg
cGhhc2UgJ2VuZGVkJykKK2NvbXBsZXRlU3dpcGVHZXN0dXJlCiB3aWxsRW5kU3dpcGUKIGRpZEVu
ZFN3aXBlCiBkaWRSZW1vdmVTd2lwZVNuYXBzaG90CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
d2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL3N3
aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sCmluZGV4IDYyMTU1NDQ4NGYw
NGZmMzk3NWJmMmY0MThlMThmZWM4M2M2MmYzNWIuLmEzNjliODIxYjlkOWMyZTAzNzhkZjYyNzJl
ZDAxOWY1MmFlMmVhYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUt
cGlubmluZy1yZXF1aXJlbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJh
bWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sCkBAIC02LDQ4ICs2LDI0IEBAIGh0bWwgewogPC9z
dHlsZT4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0PgotZnVuY3Rpb24gc3RhcnRTd2lwZUdlc3R1cmUoKQotewotICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKIAorZnVuY3Rpb24gcnVuVGVzdCgpCit7CiAgICAgLy8g
VGhlIGZpcnN0IHN3aXBlIHNob3VsZCBmYWlsIGJlY2F1c2Ugd2UncmUgc2Nyb2xsZWQgdG8gdGhl
IG1pZGRsZSBvZiB0aGUgZG9jdW1lbnQKICAgICAvLyBhbmQgdGhpcyBpcyBhbGwgYSBzaW5nbGUg
Z2VzdHVyZS4gV2UgY2FuIG9ubHkgc3RhcnQgc3dpcGVzIGlmIHdlICpiZWdpbioKICAgICAvLyBw
aW5uZWQgdG8gdGhlIGVkZ2UuCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAw
LCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxMCwgMCwg
J2JlZ2FuJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFu
Z2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2Vk
Jyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7
Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0g
ICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAg
ZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZl
bnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRR
dWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1
ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5l
bnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1
ZXVlU2Nyb2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxBZnRl
ckV2ZW50RGlzcGF0Y2goZnVuY3Rpb24gKCkgewotICAgICAgICB0ZXN0UnVubmVyLmNsZWFyVGVz
dFJ1bm5lckNhbGxiYWNrcygpOwotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRCZWdpblN3
aXBlQ2FsbGJhY2soZGlkQmVnaW5Td2lwZUNhbGxiYWNrKTsKLSAgICAgICAgdGVzdFJ1bm5lci5p
bnN0YWxsV2lsbEVuZFN3aXBlQ2FsbGJhY2sod2lsbEVuZFN3aXBlQ2FsbGJhY2spOwotICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxEaWRFbmRTd2lwZUNhbGxiYWNrKGRpZEVuZFN3aXBlQ2FsbGJh
Y2spOwotICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRSZW1vdmVTd2lwZVNuYXBzaG90Q2Fs
bGJhY2soZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKTsKKyAgICBzdGFydFN3aXBlR2Vz
dHVyZShmdW5jdGlvbiAoKSB7CisgICAgICAgIGNvbXBsZXRlU3dpcGVHZXN0dXJlKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuY2xlYXJUZXN0UnVubmVyQ2FsbGJhY2tzKCk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRCZWdpblN3aXBlQ2FsbGJhY2soZGlk
QmVnaW5Td2lwZUNhbGxiYWNrKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFdpbGxF
bmRTd2lwZUNhbGxiYWNrKHdpbGxFbmRTd2lwZUNhbGxiYWNrKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbERpZEVuZFN3aXBlQ2FsbGJhY2soZGlkRW5kU3dpcGVDYWxsYmFjayk7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRSZW1vdmVTd2lwZVNuYXBzaG90Q2FsbGJh
Y2soZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKTsgICAgCiAKLSAgICAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAvLyBUaGUgc2Vjb25kIHN3aXBlIHNob3Vs
ZCBzdWNjZWVkIGJlY2F1c2Ugd2UgYXJlIG5vdyBzY3JvbGxlZCB0byB0aGUgbGVmdCBlZGdlLgot
ICAgICAgICAgICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4n
KTsKLSAgICAgICAgICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdiZWdh
bicpOwotICAgICAgICAgICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMTAsIDAsICdj
aGFuZ2VkJyk7Ci0gICAgICAgIH0sIDApOwotICAgIH0pCi19Ci0KLWZ1bmN0aW9uIGNvbXBsZXRl
U3dpcGVHZXN0dXJlKCkKLXsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDEsIDAs
ICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgyNTYsIDAsICdj
aGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnZW5kZWQn
KTsKKyAgICAgICAgICAgIHN0YXJ0U3dpcGVHZXN0dXJlKGZ1bmN0aW9uICgpIHsgY29tcGxldGVT
d2lwZUdlc3R1cmUoKTsgfSk7CisgICAgICAgIH0pOworICAgIH0pOwogfQogCiBmdW5jdGlvbiBk
aWRCZWdpblN3aXBlTm90UmVhY2hlZENhbGxiYWNrKCkKQEAgLTU4LDEwICszNCw2IEBAIGZ1bmN0
aW9uIGRpZEJlZ2luU3dpcGVOb3RSZWFjaGVkQ2FsbGJhY2soKQogZnVuY3Rpb24gZGlkQmVnaW5T
d2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRpZEJlZ2luU3dpcGUiKTsKLQotICAgIHNob3Vs
ZEJlKGZhbHNlLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKSwgIkV2ZW50IHF1ZXVlIHNo
b3VsZCBiZSBlbXB0eS4gQm90aCBzY3JvbGwgZXZlbnRzIHNob3VsZCBiZSByZXF1aXJlZCB0byBz
dGFydCB0aGUgc3dpcGUgYmVjYXVzZSBvZiB0aGUgc3dpcGUtc3RhcnQgaHlzdGVyZXNpcy4iKTsK
LQotICAgIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCk7CiB9CiAKIGZ1bmN0aW9uIHdpbGxFbmRTd2lw
ZUNhbGxiYWNrKCkKQEAgLTc1LDcgKzQ3LDYgQEAgZnVuY3Rpb24gZGlkRW5kU3dpcGVDYWxsYmFj
aygpCiB7CiAgICAgbG9nKCJkaWRFbmRTd2lwZSIpOwogCi0gICAgc2hvdWxkQmUoMCwgZXZlbnRR
dWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJFdmVudCBxdWV1ZSBzaG91bGQgYmUgZW1wdHkuIFRo
ZSBzd2lwZSBpc24ndCBjb21wbGV0ZSB1bnRpbCB3ZSBzZWUgdGhlIGVuZCBvZiB0aGUgZ2VzdHVy
ZS4iKTsKICAgICBzdGFydE1lYXN1cmluZ0R1cmF0aW9uKCJzbmFwc2hvdFJlbW92YWwiKTsKIH0K
IApAQCAtMTIxLDggKzkyLDkgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKICAgICB9
CiAKICAgICAvLyBTZWNvbmQgcGFnZSBsb2FkZWQuCi0gICAgd2luZG93LnNjcm9sbFRvKDEwMDAs
IDApOwotICAgIHN0YXJ0U3dpcGVHZXN0dXJlKCk7CisgICAgd2luZG93LnNjcm9sbFRvKDEwMCwg
MCk7CisKKyAgICBydW5UZXN0KCk7CiB9OwogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLWV4cGVj
dGVkLnR4dAppbmRleCBlM2QzZTAwYWI5ZDBiZmZmZTY2OWQ2YWQ4OWEwMTdhZjU3ZjcwYjg5Li44
OWRlY2ZkNGMzNzEyNWNmYjU1OTgxMTk2ODljM2YwYzRhMWQ4ODRlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS1leHBlY3Rl
ZC50eHQKQEAgLTEsMTAgKzEsNiBAQAotc3dpcGUgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ21h
eWJlZ2luJykKLXNjcm9sbCBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnYmVnYW4nKQotc2Nyb2xs
IGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdjaGFuZ2VkJykKK3N0YXJ0U3dpcGVHZXN0dXJlCiBk
aWRCZWdpblN3aXBlCi1zd2lwZSBldmVudCAoZGVsdGEgMSAwLCBwaGFzZSAnY2hhbmdlZCcpCi1z
d2lwZSBldmVudCAoZGVsdGEgMjU2IDAsIHBoYXNlICdjaGFuZ2VkJykKLXN3aXBlIGV2ZW50IChk
ZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCitjb21wbGV0ZVN3aXBlR2VzdHVyZQogd2lsbEVuZFN3
aXBlCiBkaWRFbmRTd2lwZQogZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAppbmRleCA1NmRhZGE0
ODkwNDI4YzQ5ZGQyZDcxZjc2ODYwOTA0ZTAxZjg0MzFmLi45YThkYzlkN2Q5YTEwODg3NTkyNWVl
NGQyODk5N2U1Mzg2MmUzODcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3Rh
dGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3Rh
dGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbApAQCAtNiwyOCArNiwxMSBAQCBodG1sIHsKIDwvc3R5
bGU+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRlc3QuanMiPjwvc2NyaXB0PgogPHNj
cmlwdD4KLWZ1bmN0aW9uIHN0YXJ0U3dpcGVHZXN0dXJlKCkKLXsKLSAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbygxMDAsIDEwMCk7Ci0KLSAgICBldmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50
KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEs
IDAsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDEsIDAsICdj
aGFuZ2VkJyk7Ci19Ci0KLWZ1bmN0aW9uIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCkKLXsKLSAgICBl
dmVudFF1ZXVlLmVucXVldWVTd2lwZUV2ZW50KDEsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRR
dWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgyNTYsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1
ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnZW5kZWQnKTsKLX0KIAogZnVuY3Rpb24gZGlkQmVn
aW5Td2lwZUNhbGxiYWNrKCkKIHsKICAgICBsb2coImRpZEJlZ2luU3dpcGUiKTsKIAotICAgIHNo
b3VsZEJlKGZhbHNlLCBldmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKSwgIkV2ZW50IHF1ZXVl
IHNob3VsZCBiZSBlbXB0eS4gQm90aCBzY3JvbGwgZXZlbnRzIHNob3VsZCBiZSByZXF1aXJlZCB0
byBzdGFydCB0aGUgc3dpcGUgYmVjYXVzZSBvZiB0aGUgc3dpcGUtc3RhcnQgaHlzdGVyZXNpcy4i
KTsKLQogICAgIGNvbXBsZXRlU3dpcGVHZXN0dXJlKCk7CiB9CiAKQEAgLTQyLDcgKzI1LDYgQEAg
ZnVuY3Rpb24gZGlkRW5kU3dpcGVDYWxsYmFjaygpCiB7CiAgICAgbG9nKCJkaWRFbmRTd2lwZSIp
OwogCi0gICAgc2hvdWxkQmUoMCwgZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCksICJFdmVu
dCBxdWV1ZSBzaG91bGQgYmUgZW1wdHkuIFRoZSBzd2lwZSBpc24ndCBjb21wbGV0ZSB1bnRpbCB3
ZSBzZWUgdGhlIGVuZCBvZiB0aGUgZ2VzdHVyZS4iKTsKICAgICBzdGFydE1lYXN1cmluZ0R1cmF0
aW9uKCJzbmFwc2hvdFJlbW92YWwiKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dp
cGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2gtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdo
aWxlLXN3aXBpbmctY3Jhc2gtZXhwZWN0ZWQudHh0CmluZGV4IGRjMzRlOTJkNTg4NGViOGQxZDMx
NTE1YjVhODg2Mjc1NmViMjkzNDIuLjAwNTA3NTVmNTczN2Q0Y2Q3YTNjMjRjNTc2MjRiN2E3ZGYx
YzI2M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0
aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC1l
eHBlY3RlZC50eHQKQEAgLTEsNyArMSw0IEBACi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFz
ZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdiZWdhbicpCi1z
Y3JvbGwgZXZlbnQgKGRlbHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRl
bHRhIDEgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc3dpcGUgZXZlbnQgKGRlbHRhIDI1NiAwLCBwaGFz
ZSAnY2hhbmdlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAnZW5kZWQnKQorcGxh
eUV2ZW50U3RyZWFtCitwbGF5RXZlbnRTdHJlYW0KK2NvbXBsZXRlU3dpcGVHZXN0dXJlCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13
aGlsZS1zd2lwaW5nLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJv
Z3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1sCmluZGV4IDM2ZWYzOWZiNDNl
NDMwZGI5MTQ2MDM4NDZmZDJiZjdlMzI5MDYzMDEuLjNmODdhMDM5ZWU3YTkzY2I2NGEyZjBlNjVk
NTBjYmEwOTcwNDZjYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1w
cm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2gu
aHRtbApAQCAtNiwzNyArNiw2NyBAQCBodG1sIHsKIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3N3aXBlLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHN0YXJ0
U3dpcGVHZXN0dXJlKCkKK2Z1bmN0aW9uIHJ1blRlc3QoKQogewotICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKDEwMCwgMTAwKTsKLQotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQo
MCwgMCwgJ21heWJlZ2luJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMSwg
MCwgJ2JlZ2FuJyk7Ci0gICAgCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNo
KGdvQmFjayk7CisgICAgcGxheUV2ZW50U3RyZWFtKGBbeworICAgICAgICAicmVsYXRpdmVUaW1l
TVMiIDogMCwKKyAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdCaXRzIiA6IDEsCisg
ICAgICAgICJrQ0dFdmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICJrQ0dTRXZlbnRU
eXBlRmllbGQiIDogMjksCisgICAgICAgICJrQ0dFdmVudEdlc3R1cmVQaGFzZSIgOiAxMjgsCisg
ICAgICAgICJ3aW5kb3dMb2NhdGlvbiIgOiAiezQwMCwgMzAwfSIKKyAgICAgIH0sCisgICAgICB7
CisgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAia0NHRXZlbnRHZXN0dXJl
SElEVHlwZSIgOiA2MSwKKyAgICAgICAgImtDR1NFdmVudFR5cGVGaWVsZCIgOiAyOSwKKyAgICAg
ICAgImtDR0V2ZW50R2VzdHVyZVN0YXJ0RW5kU2VyaWVzVHlwZSIgOiA2LAorICAgICAgICAid2lu
ZG93TG9jYXRpb24iIDogInswLCAwfSIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJrQ0dF
dmVudEdlc3R1cmVISURUeXBlIiA6IDYsCisgICAgICAgICJyZWxhdGl2ZVRpbWVNUyIgOiA4LAor
ICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMwMH0iLAorICAgICAgICAia0NHRXZl
bnRHZXN0dXJlUGhhc2UiIDogMSwKKyAgICAgICAgImtDR0V2ZW50U2Nyb2xsR2VzdHVyZUZsYWdC
aXRzIiA6IDEsCisgICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjksCisgICAgICAgICJr
Q0dFdmVudEdlc3R1cmVTY3JvbGxYIiA6IDIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJy
ZWxhdGl2ZVRpbWVNUyIgOiA4LAorICAgICAgICAid2luZG93TG9jYXRpb24iIDogIns0MDAsIDMw
MH0iLAorICAgICAgICAia0NHU2Nyb2xsV2hlZWxFdmVudFNjcm9sbFBoYXNlIiA6IDEsCisgICAg
ICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50SXNDb250aW51b3VzIiA6IDEsCisgICAgICAgICJrQ0dT
Y3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0YUF4aXMyIiA6IDEsCisgICAgICAgICJrQ0dTRXZlbnRU
eXBlRmllbGQiIDogMjIKKyAgICAgIH1dYCwgZ29CYWNrKTsKIH0KIAogZnVuY3Rpb24gZ29CYWNr
KCkKIHsKICAgICB3aW5kb3cuaGlzdG9yeS5iYWNrKCk7CiAKLSAgICBldmVudFF1ZXVlLmNhbGxB
ZnRlckV2ZW50RGlzcGF0Y2goY29udGludWVTd2lwZUdlc3R1cmUpOworICAgIHNldFRpbWVvdXQo
Y29udGludWVUZXN0LCAwKTsKIH0KIAotZnVuY3Rpb24gY29udGludWVTd2lwZUdlc3R1cmUoKQor
ZnVuY3Rpb24gY29udGludWVUZXN0KCkKIHsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxF
dmVudCgxLCAwLCAnY2hhbmdlZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERp
c3BhdGNoKGNvbXBsZXRlU3dpcGVHZXN0dXJlKTsKKyAgICBwbGF5RXZlbnRTdHJlYW0oYFsKKyAg
ICAgIHsKKyAgICAgICAgInJlbGF0aXZlVGltZU1TIiA6IDAsCisgICAgICAgICJ3aW5kb3dMb2Nh
dGlvbiIgOiAiezQwMCwgMzAwfSIsCisgICAgICAgICJrQ0dTY3JvbGxXaGVlbEV2ZW50U2Nyb2xs
UGhhc2UiIDogMSwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRJc0NvbnRpbnVvdXMiIDog
MSwKKyAgICAgICAgImtDR1Njcm9sbFdoZWVsRXZlbnRQb2ludERlbHRhQXhpczIiIDogMjAsCisg
ICAgICAgICJrQ0dTRXZlbnRUeXBlRmllbGQiIDogMjIKKyAgICAgIH1dYCwgZnVuY3Rpb24gKCkg
eworICAgICAgICBjb21wbGV0ZVRlc3QoKTsKKyAgICAgIH0pOwogfQogCi1mdW5jdGlvbiBjb21w
bGV0ZVN3aXBlR2VzdHVyZSgpCitmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKQogewotICAgIGV2ZW50
UXVldWUuZW5xdWV1ZVN3aXBlRXZlbnQoMSwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVl
LmVucXVldWVTd2lwZUV2ZW50KDI1NiwgMCwgJ2NoYW5nZWQnKTsKLSAgICBldmVudFF1ZXVlLmVu
cXVldWVTd2lwZUV2ZW50KDAsIDAsICdlbmRlZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0
ZXJFdmVudERpc3BhdGNoKHRlc3RDb21wbGV0ZSk7CisgICAgY29tcGxldGVTd2lwZUdlc3R1cmUo
dGVzdENvbXBsZXRlKTsKIH0KIAogZnVuY3Rpb24gZGlkQmVnaW5Td2lwZUNhbGxiYWNrKCkKQEAg
LTc5LDcgKzEwOSw3IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHVw
ZGF0ZUNvbnRlbnQoKTsKIAogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgIHN0YXJ0U3dpcGVHZXN0dXJlKCk7CisgICAgICAgICAgICBydW5UZXN0KCk7CiAgICAg
ICAgIH0sIDApOwogICAgIH0sIDApOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBl
L3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3
aXBlLXRlc3QuanMKaW5kZXggZGQ4ZTkwMDlmZmU4NDk1OTAwOTlmZDE4MzIzYmNlMzczYjc0MDY4
MC4uMGMyMzY1ZDEzMTNhMTgwNjc3YjkxYWYyYjQ0OTMzYWU0MDgzOGNjZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMKKysrIGIvTGF5b3V0VGVz
dHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMKQEAgLTEsNTAgKzEsMyBAQAotdmFyIGV2
ZW50UXVldWUgPSB7Ci0gICAgZW5xdWV1ZVNjcm9sbEV2ZW50OiBmdW5jdGlvbiAoeCwgeSwgcGhh
c2UpIHsKLSAgICAgICAgdGhpcy5fcXVldWUucHVzaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAg
ICBsb2coInNjcm9sbCBldmVudCAoZGVsdGEgIiArIHggKyAiICIgKyB5ICsgIiwgcGhhc2UgJyIg
KyBwaGFzZSArICInKSIpOwotICAgICAgICAgICAgd2luZG93LmV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyh4LCB5LCBwaGFzZSwgJ25vbmUnKTsKLSAg
ICAgICAgfSk7Ci0gICAgICAgIHRoaXMuX3Byb2Nlc3NFdmVudFF1ZXVlU29vbigpOwotICAgIH0s
Ci0KLSAgICBlbnF1ZXVlU3dpcGVFdmVudDogZnVuY3Rpb24gKHgsIHksIHBoYXNlKSB7Ci0gICAg
ICAgIHRoaXMuX3F1ZXVlLnB1c2goZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgbG9nKCJzd2lw
ZSBldmVudCAoZGVsdGEgIiArIHggKyAiICIgKyB5ICsgIiwgcGhhc2UgJyIgKyBwaGFzZSArICIn
KSIpOwotICAgICAgICAgICAgd2luZG93LmV2ZW50U2VuZGVyLnN3aXBlR2VzdHVyZVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKHgsIHksIHBoYXNlLCAnbm9uZScpOwotICAgICAgICB9KTsKLSAg
ICAgICAgdGhpcy5fcHJvY2Vzc0V2ZW50UXVldWVTb29uKCk7Ci0gICAgfSwKLQotICAgIGhhc1Bl
bmRpbmdFdmVudHM6IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3F1ZXVlLmxl
bmd0aCAhPSAwOwotICAgIH0sCi0KLSAgICBjYWxsQWZ0ZXJFdmVudERpc3BhdGNoOiBmdW5jdGlv
biAoY2FsbGJhY2spIHsKLSAgICAgICAgdmFyIGludGVydmFsID0gc2V0SW50ZXJ2YWwoZnVuY3Rp
b24gKCkgeyAKLSAgICAgICAgICAgIGlmICghZXZlbnRRdWV1ZS5oYXNQZW5kaW5nRXZlbnRzKCkp
IHsKLSAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTsKLSAgICAgICAgICAg
ICAgICBjYWxsYmFjaygpOwotICAgICAgICAgICAgfQotICAgICAgICB9LCAwKTsKLSAgICB9LAot
Ci0gICAgX3F1ZXVlOiBbXSwKLQotICAgIF9wcm9jZXNzRXZlbnRRdWV1ZTogZnVuY3Rpb24gKCkg
ewotICAgICAgICBpZiAoIXRoaXMuX3F1ZXVlLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICB2YXIgaXRlbSA9IHRoaXMuX3F1ZXVlLnNoaWZ0KCk7Ci0gICAgICAgIGl0ZW0o
KTsKLSAgICAgICAgdGhpcy5fcHJvY2Vzc0V2ZW50UXVldWVTb29uKCk7Ci0gICAgfSwKLQotICAg
IF9wcm9jZXNzRXZlbnRRdWV1ZVNvb246IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgY2xlYXJUaW1l
b3V0KHRoaXMuX3Byb2Nlc3NpbmdUaW1lb3V0KTsKLSAgICAgICAgdGhpcy5fcHJvY2Vzc2luZ1Rp
bWVvdXQgPSBzZXRUaW1lb3V0KHRoaXMuX3Byb2Nlc3NFdmVudFF1ZXVlLmJpbmQodGhpcyksIDAp
OwotICAgIH0KLX0KLQogZnVuY3Rpb24gc2hvdWxkQmUoZXhwZWN0ZWQsIGFjdHVhbCwgbWVzc2Fn
ZSkKIHsKICAgICBpZiAoZXhwZWN0ZWQgIT0gYWN0dWFsKQpAQCAtODQsNCArMzcsMzcgQEAgZnVu
Y3Rpb24gbWVhc3VyZWREdXJhdGlvblNob3VsZEJlTGVzc1RoYW4oa2V5LCB0aW1lSW5NUywgbWVz
c2FnZSkKICAgICB2YXIgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gd2luZG93LmxvY2FsU3RvcmFn
ZVtrZXkgKyAic3dpcGVTdGFydFRpbWUiXTsKICAgICBpZiAoZHVyYXRpb24gPj0gdGltZUluTVMp
CiAgICAgICAgIGxvZygiRmFpbHVyZS4gIiArIG1lc3NhZ2UgKyAiIChleHBlY3RlZDogIiArIHRp
bWVJbk1TICsgIiwgYWN0dWFsOiAiICsgZHVyYXRpb24gKyAiKSIpOwotfQpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKK30KKworZnVuY3Rpb24gc3RhcnRTd2lwZUdlc3R1cmUoY2FsbGJhY2sp
Cit7CisgICAgbG9nKCJzdGFydFN3aXBlR2VzdHVyZSIpOworICAgIHRlc3RSdW5uZXIucnVuVUlT
Y3JpcHQoYAorICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgdWlDb250cm9sbGVyLmJlZ2luQmFj
a1N3aXBlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29t
cGxldGUoKTsKKyAgICAgICAgfSk7CisgICAgfSkoKTtgLCBjYWxsYmFjayB8fCBmdW5jdGlvbiAo
KSB7fSk7Cit9CisKK2Z1bmN0aW9uIGNvbXBsZXRlU3dpcGVHZXN0dXJlKGNhbGxiYWNrKQorewor
ICAgIGxvZygiY29tcGxldGVTd2lwZUdlc3R1cmUiKTsKKyAgICB0ZXN0UnVubmVyLnJ1blVJU2Ny
aXB0KGAKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHVpQ29udHJvbGxlci5jb21wbGV0ZUJh
Y2tTd2lwZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENv
bXBsZXRlKCk7CisgICAgICAgIH0pOworICAgIH0pKCk7YCwgY2FsbGJhY2sgfHwgZnVuY3Rpb24g
KCkge30pOworfQorCitmdW5jdGlvbiBwbGF5RXZlbnRTdHJlYW0oc3RyZWFtLCBjYWxsYmFjaykK
K3sKKyAgICBsb2coInBsYXlFdmVudFN0cmVhbSIpOworICAgIHRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQoYAorICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgdWlDb250cm9sbGVyLnBsYXlCYWNrRXZl
bnRTdHJlYW0oXGAke3N0cmVhbX1cYCwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB1aUNvbnRy
b2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICB9KTsKKyAgICB9KSgpO2AsIGNhbGxi
YWNrIHx8IGZ1bmN0aW9uICgpIHt9KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBl
L3N3aXBlLXN0YXJ0LWh5c3RlcmVzaXMtZmFpbHVyZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVyZXNpcy1mYWlsdXJlcy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhNDgwYTk4MDRjZTIxOTE0YzhmOTgyZjViYzAx
MTllN2RlYmU1NzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQtaHlzdGVyZXNpcy1mYWlsdXJlcy1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1zd2lwZSBldmVudCAoZGVs
dGEgMCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNl
ICdiZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Ny
b2xsIGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEg
MCAwLCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAyIDIsIHBoYXNlICdi
ZWdhbicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xs
IGV2ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAw
LCBwaGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAwIDIsIHBoYXNlICdiZWdh
bicpCi1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2
ZW50IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBw
aGFzZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAxIDAsIHBoYXNlICdiZWdhbicp
Ci1zY3JvbGwgZXZlbnQgKGRlbHRhIDAgMiwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50
IChkZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFz
ZSAnbWF5YmVnaW4nKQotc2Nyb2xsIGV2ZW50IChkZWx0YSAzIDEsIHBoYXNlICdiZWdhbicpCi1z
Y3JvbGwgZXZlbnQgKGRlbHRhIDAgMCwgcGhhc2UgJ2NoYW5nZWQnKQotc2Nyb2xsIGV2ZW50IChk
ZWx0YSAwIDAsIHBoYXNlICdlbmRlZCcpCi1zd2lwZSBldmVudCAoZGVsdGEgMCAwLCBwaGFzZSAn
ZW5kZWQnKQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9zd2lwZS1zdGFydC1oeXN0
ZXJlc2lzLWZhaWx1cmVzLmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9zd2lwZS1zdGFydC1oeXN0
ZXJlc2lzLWZhaWx1cmVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3NWU2
N2I5NzQxMjM5MmNkYjE0NDdlYTU3YzJiMDU1NTIzYzVmMDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvc3dpcGUtc3RhcnQt
aHlzdGVyZXNpcy1mYWlsdXJlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTE5ICswLDAgQEAK
LTxoZWFkPgotPHN0eWxlPgotaHRtbCB7Ci0gICAgZm9udC1zaXplOiAzMnB0OwotfQotPC9zdHls
ZT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotZnVuY3Rpb24gZG9TaG9ydFN3aXBlR2VzdHVyZSgpCi17Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oMTAwLCAxMDApOwotCi0gICAgLy8gVG90YWwgZGVsdGEgb2YgMTAsIDA7IHNo
b3VsZCBub3QgYmUgZW5vdWdoIHRvIHN0YXJ0IGEgc3dpcGUuCi0gICAgZXZlbnRRdWV1ZS5lbnF1
ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVT
Y3JvbGxFdmVudCgxLCAwLCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxF
dmVudCgwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50
KDAsIDAsICdlbmRlZCcpOwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNo
KGRvRGlhZ29uYWxTd2lwZUdlc3R1cmUpOwotfQotCi1mdW5jdGlvbiBkb0RpYWdvbmFsU3dpcGVH
ZXN0dXJlKCkKLXsKLSAgICAvLyBUb3RhbCBkZWx0YSBvZiAyMCwgMjA7IHRoaXMgaXMgb3JkaW5h
cmlseSBzdWZmaWNpZW50IG1hZ25pdHVkZSB0byBzdGFydCBhIHN3aXBlLAotICAgIC8vIGJ1dCBp
cyB0b28gZGlhZ29uYWwgdG8gc3RhcnQgYSBzd2lwZS4KLSAgICBldmVudFF1ZXVlLmVucXVldWVT
d2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9s
bEV2ZW50KDIsIDIsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50
KDAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Nyb2xsRXZlbnQoMCwg
MCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50RGlzcGF0Y2goZG9W
ZXJ0aWNhbFN3aXBlR2VzdHVyZSk7Ci19Ci0KLWZ1bmN0aW9uIGRvVmVydGljYWxTd2lwZUdlc3R1
cmUoKQotewotICAgIC8vIFRvdGFsIGRlbHRhIG9mIDAsIDIwOyB0aGlzIGlzIG9yZGluYXJpbHkg
c3VmZmljaWVudCBtYWduaXR1ZGUgdG8gc3RhcnQgYSBzd2lwZSwKLSAgICAvLyBidXQgaXMgY29t
cGxldGVseSB2ZXJ0aWNhbCwgc28gd2Ugd29uJ3Qgc3RhcnQgYSBzd2lwZS4KLSAgICBldmVudFF1
ZXVlLmVucXVldWVTd2lwZUV2ZW50KDAsIDAsICdtYXliZWdpbicpOwotICAgIGV2ZW50UXVldWUu
ZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDIsICdiZWdhbicpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1
ZVNjcm9sbEV2ZW50KDAsIDAsICdjaGFuZ2VkJyk7Ci0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU2Ny
b2xsRXZlbnQoMCwgMCwgJ2VuZGVkJyk7Ci0KLSAgICBldmVudFF1ZXVlLmNhbGxBZnRlckV2ZW50
RGlzcGF0Y2goZG9Ib3Jpem9udGFsVGhlblZlcnRpY2FsU3dpcGVHZXN0dXJlKTsKLX0KLQotZnVu
Y3Rpb24gZG9Ib3Jpem9udGFsVGhlblZlcnRpY2FsU3dpcGVHZXN0dXJlKCkKLXsKLSAgICAvLyBU
b3RhbCBkZWx0YSBvZiAxMCwgMjA7IHRoaXMgaXMgb3JkaW5hcmlseSBzdWZmaWNpZW50IG1hZ25p
dHVkZSB0byBzdGFydCBhIHN3aXBlLAotICAgIC8vIGJ1dCBpcyB0b28gdmVydGljYWwsIHNvIHdl
IHdvbid0IHN0YXJ0IGEgc3dpcGUuCi0gICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgw
LCAwLCAnbWF5YmVnaW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgxLCAw
LCAnYmVnYW4nKTsKLSAgICBldmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAyLCAnY2hh
bmdlZCcpOwotICAgIGV2ZW50UXVldWUuZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdlbmRlZCcp
OwotCi0gICAgZXZlbnRRdWV1ZS5jYWxsQWZ0ZXJFdmVudERpc3BhdGNoKGRvUmVndWxhclN3aXBl
R2VzdHVyZSk7Ci19Ci0KLWZ1bmN0aW9uIGRvUmVndWxhclN3aXBlR2VzdHVyZSgpCi17Ci0gICAg
Ly8gU3dhcCBpbiBhIGRpZmZlcmVudCBjYWxsYmFjayB0aGF0IG1ha2VzIHN1cmUgd2UgKmRvKiBy
ZWFjaCBkaWRCZWdpblN3aXBlLgotICAgIHRlc3RSdW5uZXIuY2xlYXJUZXN0UnVubmVyQ2FsbGJh
Y2tzKCk7Ci0gICAgdmFyIHNhd0RpZEJlZ2luU3dpcGUgPSBmYWxzZTsKLSAgICB0ZXN0UnVubmVy
Lmluc3RhbGxEaWRCZWdpblN3aXBlQ2FsbGJhY2soZnVuY3Rpb24gKCkgewotICAgICAgICBzYXdE
aWRCZWdpblN3aXBlID0gdHJ1ZTsKLSAgICAgICAgLy8gTmVlZCBhIHN3aXBlLWVuZCBldmVudCB0
byBjbGVhbiB1cC4KLSAgICAgICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAn
ZW5kZWQnKTsKLSAgICB9KTsKLQotICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZFJlbW92ZVN3aXBl
U25hcHNob3RDYWxsYmFjayhmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHNob3VsZEJlKHRydWUsIHNh
d0RpZEJlZ2luU3dpcGUsICJUaGUgbGFzdCBnZXN0dXJlIHNob3VsZCBzdGFydCBhIHN3aXBlLCBi
ZWNhdXNlIGl0IGlzIHN1ZmZpY2llbnQgbWFnbml0dWRlIGFuZCBpbiB0aGUgY29ycmVjdCBkaXJl
Y3Rpb24uIikKLSAgICAgICAgdGVzdENvbXBsZXRlKCk7Ci0gICAgfSk7Ci0KLSAgICAvLyBUb3Rh
bCBkZWx0YSBvZiAzMCwgMTA7IHRoaXMgc2hvdWxkIHN0YXJ0IGEgc3dpcGUgYXMgdXN1YWwuCi0g
ICAgZXZlbnRRdWV1ZS5lbnF1ZXVlU3dpcGVFdmVudCgwLCAwLCAnbWF5YmVnaW4nKTsKLSAgICBl
dmVudFF1ZXVlLmVucXVldWVTY3JvbGxFdmVudCgzLCAxLCAnYmVnYW4nKTsKLSAgICBldmVudFF1
ZXVlLmVucXVldWVTY3JvbGxFdmVudCgwLCAwLCAnY2hhbmdlZCcpOwotICAgIGV2ZW50UXVldWUu
ZW5xdWV1ZVNjcm9sbEV2ZW50KDAsIDAsICdlbmRlZCcpOwotfQotCi1mdW5jdGlvbiBkaWRCZWdp
blN3aXBlTm90UmVhY2hlZENhbGxiYWNrKCkKLXsKLSAgICBsb2coIkZhaWx1cmUuIFNob3VsZCBu
ZXZlciBiZWdpbiBhIHN3aXBlLCBiZWNhdXNlIGFsbCBvZiB0aGUgYXR0ZW1wdGVkIHN3aXBlcyBz
aG91bGQgZmFpbCBkdWUgdG8gdGhlIHN3aXBlLXN0YXJ0IGh5c3RlcmVzaXMuIik7Ci19Ci0KLWZ1
bmN0aW9uIGlzRmlyc3RQYWdlKCkKLXsKLSAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWYu
aW5kZXhPZigic2Vjb25kIikgPT0gLTE7Ci19Ci0KLXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAo
KSB7Ci0gICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwgIXdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gIlRoaXMgdGVzdCBtdXN0IGJlIHJ1
biBpbiBXZWJLaXRUZXN0UnVubmVyLiI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBk
b2N1bWVudC5ib2R5LmlubmVySFRNTCA9IGlzRmlyc3RQYWdlKCkgPyAiZmlyc3QiIDogInNlY29u
ZCI7Ci0KLSAgICBpZiAoaXNGaXJzdFBhZ2UoKSkgewotICAgICAgICBpbml0aWFsaXplU3dpcGVU
ZXN0KCk7Ci0KLSAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkQmVnaW5Td2lwZUNhbGxiYWNr
KGRpZEJlZ2luU3dpcGVOb3RSZWFjaGVkQ2FsbGJhY2spOwotCi0gICAgICAgIHRlc3RSdW5uZXIu
b3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIsIDEp
OwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7Ci0KLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IAotICAg
ICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5kb3cubG9jYXRpb24uaHJlZiArICI/
c2Vjb25kIjsKLSAgICAgICAgfSwgMCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBk
b1Nob3J0U3dpcGVHZXN0dXJlKCk7Ci19OwotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTwv
Ym9keT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>