<?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>203432</bug_id>
          
          <creation_ts>2019-10-25 13:02:03 -0700</creation_ts>
          <short_desc>Expose basic ITP data from the database for future API/SPI use</short_desc>
          <delta_ts>2019-12-04 19:55:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>japhet</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1583977</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-25 13:02:03 -0700</bug_when>
    <thetext>Expose basic ITP data from the database for future API/SPI use. The details can be changed and developed as new needs arise for the Safari ITP UI or any other potential clients.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583978</commentid>
    <comment_count>1</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-25 13:03:05 -0700</bug_when>
    <thetext>Associated with &lt;rdar://problem/56085040&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584004</commentid>
    <comment_count>2</comment_count>
      <attachid>381964</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-25 14:18:09 -0700</bug_when>
    <thetext>Created attachment 381964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594705</commentid>
    <comment_count>3</comment_count>
      <attachid>384641</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-12-02 11:04:22 -0800</bug_when>
    <thetext>Created attachment 384641
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594721</commentid>
    <comment_count>4</comment_count>
      <attachid>384643</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-12-02 11:41:19 -0800</bug_when>
    <thetext>Created attachment 384643
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594745</commentid>
    <comment_count>5</comment_count>
      <attachid>384649</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-12-02 12:34:28 -0800</bug_when>
    <thetext>Created attachment 384649
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594746</commentid>
    <comment_count>6</comment_count>
      <attachid>384649</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-12-02 12:41:59 -0800</bug_when>
    <thetext>Comment on attachment 384649
Patch

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

&gt; Source/WebCore/loader/ResourceLoadStatistics.cpp:420
&gt; +    return interactionTimeSeconds &gt; 0 &amp;&amp; WallTime::now().secondsSinceEpoch().value() - interactionTimeSeconds &lt; SECONDS_IN_DAY;

This could probably be written as:

return interactionTimeSeconds &gt; 0 &amp;&amp; WallTime::now().secondsSinceEpoch().value() - interactionTimeSeconds &lt; 24_h;

Then you wouldn&apos;t need the repeated #define for SECONDS_IN_DAY

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:2425
&gt; +    return interactionTimeSeconds &gt; 0 &amp;&amp; WallTime::now().secondsSinceEpoch().value() - interactionTimeSeconds &lt; SECONDS_IN_DAY;

Ditto:

return interactionTimeSeconds &gt; 0 &amp;&amp; WallTime::now().secondsSinceEpoch().value() - interactionTimeSeconds &lt; 24_h;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594794</commentid>
    <comment_count>7</comment_count>
      <attachid>384649</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-12-02 14:29:51 -0800</bug_when>
    <thetext>Comment on attachment 384649
Patch

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

&gt; Source/WebCore/ChangeLog:17
&gt; +

Nit: I would reverse this to &quot;Updated the toString() to report only if it was in the last 24 hours as opposed to reporting an actual time since mostRecentUserInteractionTime changes with each test run.&quot;

&gt; Source/WebKit/ChangeLog:14
&gt; +        Adds ability to collect sorted ITP data for displaying in a

Nit: &quot;Adds *the ability …&quot;

&gt; Source/WebKit/ChangeLog:15
&gt; +        user interface. Additional registrable domain data can be added based

Nit: Not sure that we have to call out potential use cases since that&apos;s up to whichever application calls the API/SPI.

&gt; Source/WebKit/ChangeLog:30
&gt; +        (WebKit::CompletionHandler&lt;void):

This looks weird. I know the change log script gets confused by the ResourceLoadStatisticsDatabaseStore class. Please check the change entries manually. (I had to do so the last time.)

&gt; Source/WebKit/ChangeLog:33
&gt; +        joinSubStatisticsForSorting() to be used to collect sorted ITP data

Please add the class to the function name so that it&apos;s clear where it belongs.

&gt; Source/WebCore/loader/ResourceLoadStatistics.cpp:36
&gt; +#define SECONDS_IN_DAY 86400

Skip the define and use 24_h instead. Search for 24_h and you&apos;ll see it used. Ah, I now saw Brent pointing out the same thing!

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:66
&gt; +#define SECONDS_IN_DAY 86400

Ditto.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:809
&gt; +static bool isThirdParty(unsigned timesUnderFirstParty)

By the look of its implementation, this function should probably be called hasBeenThirdParty().

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:126
&gt; +static bool isThirdParty(const ResourceLoadStatistics&amp; statistic)

Similar, hasBeenThirdParty().

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:556
&gt; +        result.append(&quot;\nITP User Interface Data:\n&quot;);

I&apos;d rather have this string say what we know in WebKit, such as just &quot;ITP Data:&quot;.

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:82
&gt; +    bool storageAccessGranted;

This doesn&apos;t really make sense to me since only third-parties can request and be granted storage access.

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:97
&gt; +    Vector&lt;FirstPartyData&gt; associatedFirstParties;

This is vague. Associated how? We&apos;ve used the term for domain names owned by the same organization which I don&apos;t think you mean here. Maybe underFirstParties?

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:236
&gt; +    Vector&lt;ThirdPartyData&gt; gatherDataForUserInterface();

This sounds like WebKit decides where this data is to be used. But it&apos;s just an API, right? Also, it&apos;s a getter but it sounds like an action. We don&apos;t know what the data will be used for. Let&apos;s name it what it is, such as aggregatedThirdPartyData().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594804</commentid>
    <comment_count>8</comment_count>
      <attachid>384649</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-12-02 14:45:43 -0800</bug_when>
    <thetext>Comment on attachment 384649
Patch

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

Thanks for the feedback!

&gt;&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:82
&gt;&gt; +    bool storageAccessGranted;
&gt; 
&gt; This doesn&apos;t really make sense to me since only third-parties can request and be granted storage access.

good point, maybe &quot;hasGrantedStorageAccess&quot; instead?

&gt;&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:97
&gt;&gt; +    Vector&lt;FirstPartyData&gt; associatedFirstParties;
&gt; 
&gt; This is vague. Associated how? We&apos;ve used the term for domain names owned by the same organization which I don&apos;t think you mean here. Maybe underFirstParties?

good idea!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594814</commentid>
    <comment_count>9</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-12-02 15:00:53 -0800</bug_when>
    <thetext>(In reply to katherine_cheney from comment #8)
&gt; Comment on attachment 384649 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=384649&amp;action=review
&gt; 
&gt; Thanks for the feedback!
&gt; 
&gt; &gt;&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:82
&gt; &gt;&gt; +    bool storageAccessGranted;
&gt; &gt; 
&gt; &gt; This doesn&apos;t really make sense to me since only third-parties can request and be granted storage access.
&gt; 
&gt; good point, maybe &quot;hasGrantedStorageAccess&quot; instead?

Since the first party is not involved in granting storage access (except if it uses an iframe sandbox), I&apos;d prefer if it&apos;s clear that it&apos;s about third-parties that have requested and been granted access under some first-party.

Maybe we can come up with something if you explain what this boolean means. It&apos;s part of FirstPartyData and can only be true/false. Is it &quot;This first party has at least once been granted storage access when third-party&quot;?


&gt; &gt;&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:97
&gt; &gt;&gt; +    Vector&lt;FirstPartyData&gt; associatedFirstParties;
&gt; &gt; 
&gt; &gt; This is vague. Associated how? We&apos;ve used the term for domain names owned by the same organization which I don&apos;t think you mean here. Maybe underFirstParties?
&gt; 
&gt; good idea!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594817</commentid>
    <comment_count>10</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-12-02 15:04:58 -0800</bug_when>
    <thetext>(In reply to John Wilander from comment #9)
&gt; (In reply to katherine_cheney from comment #8)
&gt; &gt; Comment on attachment 384649 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=384649&amp;action=review
&gt; &gt; 
&gt; &gt; Thanks for the feedback!
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:82
&gt; &gt; &gt;&gt; +    bool storageAccessGranted;
&gt; &gt; &gt; 
&gt; &gt; &gt; This doesn&apos;t really make sense to me since only third-parties can request and be granted storage access.
&gt; &gt; 
&gt; &gt; good point, maybe &quot;hasGrantedStorageAccess&quot; instead?
&gt; 
&gt; Since the first party is not involved in granting storage access (except if
&gt; it uses an iframe sandbox), I&apos;d prefer if it&apos;s clear that it&apos;s about
&gt; third-parties that have requested and been granted access under some
&gt; first-party.
&gt; 
&gt; Maybe we can come up with something if you explain what this boolean means.
&gt; It&apos;s part of FirstPartyData and can only be true/false. Is it &quot;This first
&gt; party has at least once been granted storage access when third-party&quot;?
&gt; 

It&apos;s based on the data structure we talked about a few weeks ago with Matt, where each third party has a list of first parties based on what it has been a subframe/subresource under or redirected to. So this bool is whether the third party that this first party is listed under has been granted storage access for that specific first party</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594820</commentid>
    <comment_count>11</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-12-02 15:17:35 -0800</bug_when>
    <thetext>(In reply to katherine_cheney from comment #10)
&gt; (In reply to John Wilander from comment #9)
&gt; &gt; (In reply to katherine_cheney from comment #8)
&gt; &gt; &gt; Comment on attachment 384649 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=384649&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; Thanks for the feedback!
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt;&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:82
&gt; &gt; &gt; &gt;&gt; +    bool storageAccessGranted;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; This doesn&apos;t really make sense to me since only third-parties can request and be granted storage access.
&gt; &gt; &gt; 
&gt; &gt; &gt; good point, maybe &quot;hasGrantedStorageAccess&quot; instead?
&gt; &gt; 
&gt; &gt; Since the first party is not involved in granting storage access (except if
&gt; &gt; it uses an iframe sandbox), I&apos;d prefer if it&apos;s clear that it&apos;s about
&gt; &gt; third-parties that have requested and been granted access under some
&gt; &gt; first-party.
&gt; &gt; 
&gt; &gt; Maybe we can come up with something if you explain what this boolean means.
&gt; &gt; It&apos;s part of FirstPartyData and can only be true/false. Is it &quot;This first
&gt; &gt; party has at least once been granted storage access when third-party&quot;?
&gt; &gt; 
&gt; 
&gt; It&apos;s based on the data structure we talked about a few weeks ago with Matt,
&gt; where each third party has a list of first parties based on what it has been
&gt; a subframe/subresource under or redirected to. So this bool is whether the
&gt; third party that this first party is listed under has been granted storage
&gt; access for that specific first party

I see. The confusion comes from the boolean about storage access being about a third-party but stored in a struct about a first-party. The boolean needs to be owned about the third-party struct or the FirstPartyData needs to have a name that indicates that it&apos;s about the third-party.

An easy way to think of this is to look at each of your two structs alone. It should make sense on its own. As it stands, the FirstPartyData struct only makes sense in conjunction with the ThirdPartyData struct.

I suggest you skip the FirstPartyData struct and instead …

1. Add a boolean enum HasBeenGrantedStorageAccess { Yes, No }.

2. Replace ThirdPartyData&apos;s Vector&lt;FirstPartyData&gt; with a HashMap of &lt;RegistrableDomain, HasBeenGrantedStorageAccess&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594822</commentid>
    <comment_count>12</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-12-02 15:22:28 -0800</bug_when>
    <thetext>(In reply to John Wilander from comment #11)
&gt; (In reply to katherine_cheney from comment #10)
&gt; &gt; (In reply to John Wilander from comment #9)
&gt; &gt; &gt; (In reply to katherine_cheney from comment #8)
&gt; &gt; &gt; &gt; Comment on attachment 384649 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=384649&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Thanks for the feedback!
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt;&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:82
&gt; &gt; &gt; &gt; &gt;&gt; +    bool storageAccessGranted;
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; This doesn&apos;t really make sense to me since only third-parties can request and be granted storage access.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; good point, maybe &quot;hasGrantedStorageAccess&quot; instead?
&gt; &gt; &gt; 
&gt; &gt; &gt; Since the first party is not involved in granting storage access (except if
&gt; &gt; &gt; it uses an iframe sandbox), I&apos;d prefer if it&apos;s clear that it&apos;s about
&gt; &gt; &gt; third-parties that have requested and been granted access under some
&gt; &gt; &gt; first-party.
&gt; &gt; &gt; 
&gt; &gt; &gt; Maybe we can come up with something if you explain what this boolean means.
&gt; &gt; &gt; It&apos;s part of FirstPartyData and can only be true/false. Is it &quot;This first
&gt; &gt; &gt; party has at least once been granted storage access when third-party&quot;?
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; It&apos;s based on the data structure we talked about a few weeks ago with Matt,
&gt; &gt; where each third party has a list of first parties based on what it has been
&gt; &gt; a subframe/subresource under or redirected to. So this bool is whether the
&gt; &gt; third party that this first party is listed under has been granted storage
&gt; &gt; access for that specific first party
&gt; 
&gt; I see. The confusion comes from the boolean about storage access being about
&gt; a third-party but stored in a struct about a first-party. The boolean needs
&gt; to be owned about the third-party struct or the FirstPartyData needs to have
&gt; a name that indicates that it&apos;s about the third-party.
&gt; 
&gt; An easy way to think of this is to look at each of your two structs alone.
&gt; It should make sense on its own. As it stands, the FirstPartyData struct
&gt; only makes sense in conjunction with the ThirdPartyData struct.
&gt; 
&gt; I suggest you skip the FirstPartyData struct and instead …
&gt; 
&gt; 1. Add a boolean enum HasBeenGrantedStorageAccess { Yes, No }.
&gt; 
&gt; 2. Replace ThirdPartyData&apos;s Vector&lt;FirstPartyData&gt; with a HashMap of
&gt; &lt;RegistrableDomain, HasBeenGrantedStorageAccess&gt;.

I see your point about how it should make sense alone, but my only thought is if we want to add more data about each third-party/first-party pair in the future, like a last seen time. Then we would have to rethink the hash map.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594828</commentid>
    <comment_count>13</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-12-02 15:33:47 -0800</bug_when>
    <thetext>(In reply to katherine_cheney from comment #12)
&gt; (In reply to John Wilander from comment #11)
&gt; &gt; (In reply to katherine_cheney from comment #10)
&gt; &gt; &gt; (In reply to John Wilander from comment #9)
&gt; &gt; &gt; &gt; (In reply to katherine_cheney from comment #8)
&gt; &gt; &gt; &gt; &gt; Comment on attachment 384649 [details]
&gt; &gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=384649&amp;action=review
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Thanks for the feedback!
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt;&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:82
&gt; &gt; &gt; &gt; &gt; &gt;&gt; +    bool storageAccessGranted;
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; This doesn&apos;t really make sense to me since only third-parties can request and be granted storage access.
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; good point, maybe &quot;hasGrantedStorageAccess&quot; instead?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Since the first party is not involved in granting storage access (except if
&gt; &gt; &gt; &gt; it uses an iframe sandbox), I&apos;d prefer if it&apos;s clear that it&apos;s about
&gt; &gt; &gt; &gt; third-parties that have requested and been granted access under some
&gt; &gt; &gt; &gt; first-party.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Maybe we can come up with something if you explain what this boolean means.
&gt; &gt; &gt; &gt; It&apos;s part of FirstPartyData and can only be true/false. Is it &quot;This first
&gt; &gt; &gt; &gt; party has at least once been granted storage access when third-party&quot;?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; It&apos;s based on the data structure we talked about a few weeks ago with Matt,
&gt; &gt; &gt; where each third party has a list of first parties based on what it has been
&gt; &gt; &gt; a subframe/subresource under or redirected to. So this bool is whether the
&gt; &gt; &gt; third party that this first party is listed under has been granted storage
&gt; &gt; &gt; access for that specific first party
&gt; &gt; 
&gt; &gt; I see. The confusion comes from the boolean about storage access being about
&gt; &gt; a third-party but stored in a struct about a first-party. The boolean needs
&gt; &gt; to be owned about the third-party struct or the FirstPartyData needs to have
&gt; &gt; a name that indicates that it&apos;s about the third-party.
&gt; &gt; 
&gt; &gt; An easy way to think of this is to look at each of your two structs alone.
&gt; &gt; It should make sense on its own. As it stands, the FirstPartyData struct
&gt; &gt; only makes sense in conjunction with the ThirdPartyData struct.
&gt; &gt; 
&gt; &gt; I suggest you skip the FirstPartyData struct and instead …
&gt; &gt; 
&gt; &gt; 1. Add a boolean enum HasBeenGrantedStorageAccess { Yes, No }.
&gt; &gt; 
&gt; &gt; 2. Replace ThirdPartyData&apos;s Vector&lt;FirstPartyData&gt; with a HashMap of
&gt; &gt; &lt;RegistrableDomain, HasBeenGrantedStorageAccess&gt;.
&gt; 
&gt; I see your point about how it should make sense alone, but my only thought
&gt; is if we want to add more data about each third-party/first-party pair in
&gt; the future, like a last seen time. Then we would have to rethink the hash
&gt; map.

That is true. I&apos;m often in favor of keeping the change as simple as possible for the task at hand.

If you prefer a struct for the the kind of data we&apos;d want to catch/expose, we have to come up with a better name than FirstPartyData. The stand-alone test needs to pass. :)

Maybe ThirdPartyDataForSpecificFirstParty? That makes it clear that it&apos;s data associated with the third-party but tied to what that third-party has been up to under a specific first-party.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594833</commentid>
    <comment_count>14</comment_count>
      <attachid>384665</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-12-02 15:46:52 -0800</bug_when>
    <thetext>Created attachment 384665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595294</commentid>
    <comment_count>15</comment_count>
      <attachid>384665</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-12-03 17:50:45 -0800</bug_when>
    <thetext>Comment on attachment 384665
Patch

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

Please address comments before landing.

&gt; Source/WebCore/loader/ResourceLoadStatistics.cpp:418
&gt; +    return interactionTimeSeconds &gt; 0 &amp;&amp; WallTime::now().secondsSinceEpoch().value() - interactionTimeSeconds &lt; Seconds(24_h).value();

24_h is a Seconds object. Do we need to wrap it this way and call value()? If not, please change before landing.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:789
&gt; +Vector&lt;ThirdPartyDataForSpecificFirstParty&gt; ResourceLoadStatisticsDatabaseStore::getFirstPartyDataForDomain(unsigned domainID, const RegistrableDomain&amp; domainString) const

I would prefer this function name to be aligned with the return type. Is the domainString the third-party? Maybe we could make that clearer too? Anyway, I trust you&apos;ll come up with a new function name parameter name that make sense given what the function does and what it returns.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:2423
&gt; +    return interactionTimeSeconds &gt; 0 &amp;&amp; WallTime::now().secondsSinceEpoch().value() - interactionTimeSeconds &lt; Seconds(24_h).value();

Same thing here with the Seconds(24_h) wrapping. Needed?

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:112
&gt; +static Vector&lt;ThirdPartyDataForSpecificFirstParty&gt; getFirstPartyDataForDomain(const ResourceLoadStatistics&amp; statistic)

Same thing here for the function name and parameter name.

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:80
&gt; +struct ThirdPartyDataForSpecificFirstParty {

Much better.

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:86
&gt; +        return makeString(firstPartyDomain.string(), &quot;, Has Granted Storage Access: &quot;, storageAccessGranted);

Hmm. Now I&apos;m confused. The user grants storage access, neither the first or third party. And the third-party requests storage access, not the first party. So the first party is never involved in anything around requesting or granting storage access. The data point should say whether or not a third party has been granted storage access under a first party. So maybe a generated string saying &quot;Has been granted storage access under { first-party domain string } : { boolean }.&quot; Unfortunately, this means regenerating expect files for your tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595506</commentid>
    <comment_count>16</comment_count>
      <attachid>384822</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-12-04 10:00:31 -0800</bug_when>
    <thetext>Created attachment 384822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595509</commentid>
    <comment_count>17</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-12-04 10:01:22 -0800</bug_when>
    <thetext>Thanks for all the help John! I made the naming changes you suggested plus a few others that clarified the distinction between third/first party information. I also had to update interactionTimeSeconds to be WTF::Seconds type instead of a double so it can be compared directly to 24_h (and I think it makes sense to have it as a seconds value instead of a double because the function compares time values).

Going to let it run through EWS before I cq+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595548</commentid>
    <comment_count>18</comment_count>
      <attachid>384822</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-04 12:06:34 -0800</bug_when>
    <thetext>Comment on attachment 384822
Patch

Clearing flags on attachment: 384822

Committed r253118: &lt;https://trac.webkit.org/changeset/253118&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595549</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-04 12:06:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595678</commentid>
    <comment_count>20</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-12-04 19:55:13 -0800</bug_when>
    <thetext>Filed: Bug 204870 – [MSVC] WebResourceLoadStatisticsStore.h is reporting warning C4804: &apos;/&apos;: unsafe use of type &apos;bool&apos; in operation</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381964</attachid>
            <date>2019-10-25 14:18:09 -0700</date>
            <delta_ts>2019-12-02 11:04:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203432-20191025141809.patch</filename>
            <type>text/plain</type>
            <size>27582</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjMGJiZDU0NDVjMGI0YTlj
MTU4MzNhMjRiZTdiMTY4MmI1ZTU4YmYuLjkyOTg2ODQyZTkzNDY2NWYxMTljZDQ3Zjc1NjA0OWQ5
MzUzMGY3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTktMTAtMjUgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIGJhc2lj
IElUUCBkYXRhIGZyb20gdGhlIGRhdGFiYXNlIGZvciBmdXR1cmUgQVBJL1NQSSB1c2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQzMgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTYwODUwNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYmFzaWMgc3VwcG9ydCBmb3IgSVRQIFVzZXIgSW50
ZXJmYWNlLiBUaGlzIHBhdGNoIHV0aWxpemVzCisgICAgICAgIHF1ZXJpZXMgZm9yIHRlbGVtZXRy
eSBjYWxjdWxhdGlvbiB0byBjcmVhdGUgYSBzb3J0ZWQgdmVjdG9yIG9mCisgICAgICAgIHRoaXJk
IHBhcnR5IHRyYWNrZXJzLiBUaGUgZnVuY3Rpb24gZ2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2Uo
KSAKKyAgICAgICAgY2FuIGJlIGNhbGxlZCBmcm9tIHRoZSBOZXR3b3JrIFByb2Nlc3Mgb25jZSB0
aGUgcmVzdCBvZiB0aGUgCisgICAgICAgIElUUCB1c2VyIGludGVyZmFjZSBjb2RlIGlzIHdyaXR0
ZW4gaW4gdGhlIFVJIHByb2Nlc3MuIEkgcGxhY2VkIAorICAgICAgICB0aGUgZnVuY3Rpb24gaW4g
dGhlIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZQorICAgICAgICBzbyBpdCBjYW4gYmUg
YWx0ZXJlZCB0byB1c2UgdGhlIG1lbW9yeSBzdG9yZSBpZi93aGVuIHRoYXQgZnVuY3Rpb25hbGl0
eSBpcworICAgICAgICBpbXBsZW1lbnRlZCB3aXRob3V0IGNoYW5naW5nIGJlaGF2aW9yIGluIHRo
ZSBVSSBwcm9jZXNzLiAKKyAgICAgICAgCisgICAgICAgIFRoZSBqb2luU3Vic3RhdGlzdGljc0Zv
clNvcnRpbmcoKSBxdWVyeSBoYWQgdG8gYmUgY2hhbmdlZAorICAgICAgICBzbGlnaHRseSBpbiBv
cmRlciB0byByZXBvcnQgYm90aCBwcmV2YWxlbnQgYW5kIG5vbi1wcmV2YWxlbnQKKyAgICAgICAg
cmVzb3VyY2VzIHRvIHRoZSBVSS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMpOgorICAgICAgICAoV2ViS2l0
Ojpqb2luU3ViU3RhdGlzdGljc0ZvclNvcnRpbmcpOgorICAgICAgICAoV2ViS2l0OjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdhdGhlckRhdGFG
b3JVc2VySW50ZXJmYWNlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpGaXJzdFBh
cnR5RGF0YTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpGaXJzdFBhcnR5RGF0
YTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlRoaXJkUGFydHlEYXRhOjp0
b1N0cmluZyBjb25zdCk6CisKIDIwMTktMTAtMjUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXVtXSzJdIFVzZSBzZW5kV2l0aEFzeW5jUmVwbHkoKSB0byBz
aW1wbGlmeSB0aGUgcHJlcGFyZVRvU3VzcGVuZCBsb2dpYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXggMzlmZmY4NzM5MGQ4
YTNlMTI0YjQ0MDczOTczNTZmOWNiYjdlNjQzNy4uNTk0YjkyMzQ5ZmM3YmFhYWRiZjIxYzBkYmJh
Mzc2MzIzNGFiOGU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC05NSw2ICs5NSw3IEBAIGNvbnN0ZXhwciBhdXRvIHN1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9FeGlzdHNRdWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChT
RUxFQ1QKICAgICAiQU5EIHRvRG9tYWluSUQgPSAoU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2
ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPykpIl9zOwogY29uc3RleHByIGF1
dG8gdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tRXhpc3RzUXVlcnkgPSAiU0VMRUNUIEVYSVNU
UyAoU0VMRUNUIDEgRlJPTSBUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb20gV0hFUkUgdG9Eb21h
aW5JRCA9ID8gIgogIkFORCBmcm9tRG9tYWluSUQgPSAoU0VMRUNUIGRvbWFpbklEIEZST00gT2Jz
ZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPykpIl9zOworY29uc3RleHBy
IGF1dG8gc3RvcmFnZUFjY2Vzc0V4aXN0cyA9ICJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9N
IFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlucyBXSEVSRSBkb21haW5JRCA9ID8gQU5E
IHRvcExldmVsRG9tYWluSUQgPSA/KSI7CiAKIC8vIFVQREFURSBRdWVyaWVzCiBjb25zdGV4cHIg
YXV0byBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uUXVlcnkgPSAiVVBEQVRFIE9ic2VydmVkRG9t
YWlucyBTRVQgaGFkVXNlckludGVyYWN0aW9uID0gPywgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
blRpbWUgPSA/ICIKQEAgLTExNyw2ICsxMTgsOSBAQCBjb25zdGV4cHIgYXV0byBpc0dyYW5kZmF0
aGVyZWRRdWVyeSA9ICJTRUxFQ1QgZ3JhbmRmYXRoZXJlZCBGUk9NIE9ic2VydmVkRG9tYWlucwog
Y29uc3RleHByIGF1dG8gZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25RdWVyeSA9ICJTRUxFQ1Qg
ZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgaGFkVXNlckludGVyYWN0aW9uID0g
MSBBTkQgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgPCA/Il9zOwogY29uc3RleHByIGF1
dG8gZ2V0UmVzb3VyY2VEYXRhQnlEb21haW5OYW1lUXVlcnkgPSAiU0VMRUNUICogRlJPTSBPYnNl
cnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/IjsKIGNvbnN0ZXhwciBhdXRv
IGdldEFsbERvbWFpbnNRdWVyeSA9ICJTRUxFQ1QgcmVnaXN0cmFibGVEb21haW4gRlJPTSBPYnNl
cnZlZERvbWFpbnMiX3M7Citjb25zdGV4cHIgYXV0byBnZXRBbGxTdWJTdGF0aXN0aWNzUXVlcnkg
PSAiU0VMRUNUIHRvcEZyYW1lRG9tYWluSUQgRlJPTSBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21h
aW5zIFdIRVJFIHN1YkZyYW1lRG9tYWluSUQgPSA/IgorICAgICJVTklPTiBBTEwgU0VMRUNUIHRv
cEZyYW1lRG9tYWluSUQgRlJPTSBTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJF
IHN1YnJlc291cmNlRG9tYWluSUQgPSA/IgorICAgICJVTklPTiBBTEwgU0VMRUNUIHRvRG9tYWlu
SUQgRlJPTSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvIFdIRVJFIHN1YnJlc291cmNlRG9t
YWluSUQgPSA/Il9zOwogCiAvLyBDUkVBVEUgVEFCTEUgUXVlcmllcwogY29uc3RleHByIGF1dG8g
Y3JlYXRlT2JzZXJ2ZWREb21haW4gPSAiQ1JFQVRFIFRBQkxFIE9ic2VydmVkRG9tYWlucyAoIgpA
QCAtMjM3LDYgKzI0MSw4IEBAIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJSZXNvCiAgICAgLCBtX2dldFJl
c291cmNlRGF0YUJ5RG9tYWluTmFtZVN0YXRlbWVudChtX2RhdGFiYXNlLCBnZXRSZXNvdXJjZURh
dGFCeURvbWFpbk5hbWVRdWVyeSkKICAgICAsIG1fZ2V0QWxsRG9tYWluc1N0YXRlbWVudChtX2Rh
dGFiYXNlLCBnZXRBbGxEb21haW5zUXVlcnkpCiAgICAgLCBtX2RvbWFpblN0cmluZ0Zyb21Eb21h
aW5JRFN0YXRlbWVudChtX2RhdGFiYXNlLCBkb21haW5TdHJpbmdGcm9tRG9tYWluSURRdWVyeSkK
KyAgICAsIG1fZ2V0QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVudChtX2RhdGFiYXNlLCBnZXRBbGxT
dWJTdGF0aXN0aWNzUXVlcnkpCisgICAgLCBtX3N0b3JhZ2VBY2Nlc3NFeGlzdHNTdGF0ZW1lbnQo
bV9kYXRhYmFzZSwgc3RvcmFnZUFjY2Vzc0V4aXN0cykKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Np
b25JRCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTQ0MCw2ICs0NDYs
OCBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3Rh
dGVtZW50cygpCiAgICAgICAgIHx8IG1fZ2V0UmVzb3VyY2VEYXRhQnlEb21haW5OYW1lU3RhdGVt
ZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9nZXRBbGxEb21haW5zU3Rh
dGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9kb21haW5TdHJpbmdG
cm9tRG9tYWluSURTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCBt
X2dldEFsbFN1YlN0YXRpc3RpY3NTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSworICAg
ICAgICB8fCBtX3N0b3JhZ2VBY2Nlc3NFeGlzdHNTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElU
RV9PSwogICAgICAgICApIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRz
IGZhaWxlZCB0byBwcmVwYXJlLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtNzAzLDcgKzcxMSw3IEBAIHN0YXRpYyBjb25zdCBTdHJpbmdWaWV3IGpvaW5TdWJTdGF0aXN0
aWNzRm9yU29ydGluZygpCiAgICAgICAgIExFRlQgSk9JTiBTdWJmcmFtZVVuZGVyVG9wRnJhbWVE
b21haW5zIGYgT04gby5kb21haW5JRCA9IGYuc3ViRnJhbWVEb21haW5JRAogICAgICAgICBMRUZU
IEpPSU4gU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucyByIE9OIG8uZG9tYWluSUQgPSBy
LnN1YnJlc291cmNlRG9tYWluSUQKICAgICAgICAgTEVGVCBKT0lOIFN1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RzVG8gdSBPTiBvLmRvbWFpbklEID0gdS5zdWJyZXNvdXJjZURvbWFpbklECi0gICAg
ICAgIFdIRVJFIGlzUHJldmFsZW50ID0gMQorICAgICAgICBXSEVSRSBpc1ByZXZhbGVudCBMSUtF
ID8KICAgICAgICAgYW5kIGhhZFVzZXJJbnRlcmFjdGlvbiBMSUtFID8KICAgICAgICAgR1JPVVAg
QlkgZG9tYWluSUQpIE9SREVSIEJZIHN1bSBERVNDCiAgICAgICAgIClxdWVyeSI7CkBAIC03MTQs
NiArNzIyLDYxIEBAIHN0YXRpYyBTUUxpdGVTdGF0ZW1lbnQgbWFrZU1lZGlhbldpdGhVSVF1ZXJ5
KFNRTGl0ZURhdGFiYXNlJiBkYXRhYmFzZSkKICAgICByZXR1cm4gU1FMaXRlU3RhdGVtZW50KGRh
dGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUg
RlJPTSBPYnNlcnZlZERvbWFpbnMgSU5ORVIgSk9JTiAoU0VMRUNUICIsIGpvaW5TdWJTdGF0aXN0
aWNzRm9yU29ydGluZygpLCAiKSBhcyBxIE9OIE9ic2VydmVkRG9tYWlucy5kb21haW5JRCA9IHEu
ZG9tYWluSUQgTElNSVQgMSBPRkZTRVQgPyIpKTsKIH0KIAordm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5zdXJlRmlyc3RQYXJ0eVN0YXRpc3RpYyhWZWN0b3I8Rmly
c3RQYXJ0eURhdGE+JiBmaXJzdFBhcnR5RGF0YUxpc3QsIHVuc2lnbmVkIGRvbWFpbklEZm9yRmly
c3RQYXJ0eSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRoaXJkUGFydHlEb21haW4pIGNvbnN0
Cit7CisgICAgUmVnaXN0cmFibGVEb21haW4gZmlyc3RQYXJ0eURvbWFpbiA9IFJlZ2lzdHJhYmxl
RG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tUmVnaXN0cmFibGVEb21haW5TdHJpbmcoZ2V0RG9t
YWluU3RyaW5nRnJvbURvbWFpbklEKGRvbWFpbklEZm9yRmlyc3RQYXJ0eSkpOworICAgIEZpcnN0
UGFydHlEYXRhIGZpcnN0UGFydHkgeyBmaXJzdFBhcnR5RG9tYWluLCBoYXNTdG9yYWdlQWNjZXNz
KGZpcnN0UGFydHlEb21haW4sIHRoaXJkUGFydHlEb21haW4pIH07CisgICAgZmlyc3RQYXJ0eURh
dGFMaXN0LmFwcGVuZElmTm90Q29udGFpbnMoZmlyc3RQYXJ0eSk7Cit9CisKK3ZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldEZpcnN0UGFydHlEYXRhRm9yRG9tYWlu
KFZlY3RvcjxGaXJzdFBhcnR5RGF0YT4mIGZpcnN0UGFydHlEYXRhTGlzdCwgdW5zaWduZWQgZG9t
YWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5TdHJpbmcpIGNvbnN0Cit7Cisg
ICAgaWYgKG1fZ2V0QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVudC5iaW5kSW50KDEsIGRvbWFpbklE
KSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgbV9nZXRBbGxTdWJTdGF0aXN0aWNzU3RhdGVtZW50
LmJpbmRJbnQoMiwgZG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBtX2dldEFsbFN1
YlN0YXRpc3RpY3NTdGF0ZW1lbnQuYmluZEludCgzLCBkb21haW5JRCkgIT0gU1FMSVRFX09LKSB7
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6Z2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UsIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIAorICAgIHdoaWxlIChtX2dldEFsbFN1YlN0
YXRpc3RpY3NTdGF0ZW1lbnQuc3RlcCgpID09IFNRTElURV9ST1cpCisgICAgICAgIGVuc3VyZUZp
cnN0UGFydHlTdGF0aXN0aWMoZmlyc3RQYXJ0eURhdGFMaXN0LCBtX2dldEFsbFN1YlN0YXRpc3Rp
Y3NTdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KDApLCBkb21haW5TdHJpbmcpOworICAgIAorICAgIHJl
c2V0U3RhdGVtZW50KG1fZ2V0QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVudCk7Cit9CisKK3N0YXRp
YyBib29sIGlzVGhpcmRQYXJ0eSh1bnNpZ25lZCB0aW1lc1VuZGVyRmlyc3RQYXJ0eSkKK3sKKyAg
ICByZXR1cm4gdGltZXNVbmRlckZpcnN0UGFydHkgPiAwOworfQorCitWZWN0b3I8VGhpcmRQYXJ0
eURhdGE+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnYXRoZXJEYXRhRm9y
VXNlckludGVyZmFjZSgpIGNvbnN0Cit7CisgICAgVmVjdG9yPFRoaXJkUGFydHlEYXRhPiB0aGly
ZFBhcnR5RGF0YUxpc3Q7CisKKyAgICBTUUxpdGVTdGF0ZW1lbnQgc29ydGVkU3RhdGlzdGljcyht
X2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgIiwgam9pblN1YlN0YXRpc3RpY3NGb3JTb3J0
aW5nKCkpKTsKKyAgICBpZiAoc29ydGVkU3RhdGlzdGljcy5wcmVwYXJlKCkgIT0gU1FMSVRFX09L
CisgICAgICAgIHx8IHNvcnRlZFN0YXRpc3RpY3MuYmluZFRleHQoMSwgIiUiKQorICAgICAgICB8
fCBzb3J0ZWRTdGF0aXN0aWNzLmJpbmRUZXh0KDIsICIlIikgIT0gU1FMSVRFX09LKSB7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6Z2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UsIGVycm9yIG1lc3NhZ2U6ICV7
cHVibGljfXMiLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiB0aGlyZFBhcnR5RGF0YUxpc3Q7CisgICAgfQor
ICAgIAorICAgIHdoaWxlIChzb3J0ZWRTdGF0aXN0aWNzLnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7
CisgICAgICAgIGlmIChpc1RoaXJkUGFydHkoc29ydGVkU3RhdGlzdGljcy5nZXRDb2x1bW5JbnQo
MSkpKSB7CisgICAgICAgICAgICBhdXRvIHRoaXJkUGFydHlEb21haW5JRCA9IHNvcnRlZFN0YXRp
c3RpY3MuZ2V0Q29sdW1uSW50KDApOworICAgICAgICAgICAgYXV0byB0aGlyZFBhcnR5RG9tYWlu
ID0gUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJsZURvbWFp
blN0cmluZyhnZXREb21haW5TdHJpbmdGcm9tRG9tYWluSUQodGhpcmRQYXJ0eURvbWFpbklEKSk7
CisgICAgICAgICAgICBWZWN0b3I8Rmlyc3RQYXJ0eURhdGE+IGZpcnN0UGFydHlEYXRhTGlzdDsK
KyAgICAgICAgICAgIGdldEZpcnN0UGFydHlEYXRhRm9yRG9tYWluKGZpcnN0UGFydHlEYXRhTGlz
dCwgdGhpcmRQYXJ0eURvbWFpbklELCB0aGlyZFBhcnR5RG9tYWluKTsKKworICAgICAgICAgICAg
VGhpcmRQYXJ0eURhdGEgdGhpcmRQYXJ0eURhdGEgeyB0aGlyZFBhcnR5RG9tYWluLCBmaXJzdFBh
cnR5RGF0YUxpc3QgfTsKKyAgICAgICAgICAgIHRoaXJkUGFydHlEYXRhTGlzdC5hcHBlbmQodGhp
cmRQYXJ0eURhdGEpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHRoaXJkUGFydHlE
YXRhTGlzdDsKK30KKwogc3RhdGljIHN0ZDo6cGFpcjxTdHJpbmdWaWV3LCBTdHJpbmdWaWV3PiBi
dWlsZFF1ZXJ5U3RhcnRBbmRFbmQoUHJldmFsZW50UmVzb3VyY2VEYXRhYmFzZVRlbGVtZXRyeTo6
U3RhdGlzdGljIHN0YXRpc3RpYykKIHsKICAgICBzd2l0Y2ggKHN0YXRpc3RpYykgewpAQCAtNzU0
LDcgKzgxNyw3IEBAIHN0YXRpYyB1bnNpZ25lZCBnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNl
c1dpdGhVc2VySW50ZXJhY3Rpb24oU1FMaXRlRGF0YWJhc2UmCiAgICAgfQogCiAgICAgLy8gQmlu
ZAotICAgIGlmIChtZWRpYW5EYXlzU2luY2VVSVN0YXRlbWVudC5iaW5kSW50KDEsIDEpICE9IFNR
TElURV9PSyB8fCBtZWRpYW5EYXlzU2luY2VVSVN0YXRlbWVudC5iaW5kSW50KDIsIChwcmV2YWxl
bnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uQ291bnQgLyAyKSAhPSBTUUxJVEVfT0spKSB7
CisgICAgaWYgKG1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMSwgMSkgIT0gU1FM
SVRFX09LIHx8IG1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMiwgMSkgIT0gU1FM
SVRFX09LIHx8IG1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMywgKHByZXZhbGVu
dFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb25Db3VudCAvIDIpICE9IFNRTElURV9PSykpIHsK
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50
ZXJhY3Rpb24sIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCBkYXRhYmFzZS5sYXN0RXJyb3JN
c2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gMDsK
QEAgLTc4Myw3ICs4NDYsNyBAQCBzdGF0aWMgdW5zaWduZWQgZ2V0TWVkaWFuT2ZQcmV2YWxlbnRS
ZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uKFNRTGl0ZURhdGFiYXNlJgogICAgIH0KIAogICAg
IC8vIEJpbmQKLSAgICBpZiAobG93ZXJNZWRpYW5EYXlzU2luY2VVSVN0YXRlbWVudC5iaW5kSW50
KDEsIDEpICE9IFNRTElURV9PSyB8fCBsb3dlck1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJp
bmRJbnQoMiwgKChwcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uQ291bnQgLSAx
KSAvIDIpKSAhPSBTUUxJVEVfT0spIHsKKyAgICBpZiAobG93ZXJNZWRpYW5EYXlzU2luY2VVSVN0
YXRlbWVudC5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSyB8fCBsb3dlck1lZGlhbkRheXNTaW5j
ZVVJU3RhdGVtZW50LmJpbmRJbnQoMiwgMSkgIT0gU1FMSVRFX09LIHx8IGxvd2VyTWVkaWFuRGF5
c1NpbmNlVUlTdGF0ZW1lbnQuYmluZEludCgzLCAoKHByZXZhbGVudFJlc291cmNlc1dpdGhVc2Vy
SW50ZXJhY3Rpb25Db3VudCAtIDEpIC8gMikpICE9IFNRTElURV9PSykgewogICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmdldE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgZXJy
b3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwpAQCAtODM2LDcgKzg5
OSw4IEBAIHVuc2lnbmVkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRU
b3BQcmV2ZWxlbnRSZXNvdXJjZURheXNTaW5jZVVJCiAgICAgfQogICAgIAogICAgIC8vIEJpbmQK
LSAgICBpZiAodG9wUHJldmFsZW50UmVzb3VyY2VXaXRoVXNlckludGVyYWN0aW9uRGF5c1NpbmNl
VXNlckludGVyYWN0aW9uU3RhdGVtZW50LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LKSB7Cisg
ICAgaWYgKHRvcFByZXZhbGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNTaW5jZVVz
ZXJJbnRlcmFjdGlvblN0YXRlbWVudC5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSworICAgICAg
ICB8fCB0b3BQcmV2YWxlbnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VVc2Vy
SW50ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZEludCgyLCAxKSAhPSBTUUxJVEVfT0spIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjp0b3BQcmV2YWxlbnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2lu
Y2VVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQgcXVlcnkgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1l
c3NhZ2U6ICV7cHVibGljfXMiLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwpAQCAtODYzLDggKzkyNyw5
IEBAIHN0YXRpYyB1bnNpZ25lZCBnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlV2l0aG91dFVz
ZXJJbnRlcmFjdGlvbihTUUxpdGVEYXRhYmFzCiAgICAgU1FMaXRlU3RhdGVtZW50IGdldE1lZGlh
blN0YXRpc3RpYyA9IG1ha2VNZWRpYW5XaXRob3V0VUlRdWVyeShkYXRhYmFzZSwgc3RhdGlzdGlj
KTsKIAogICAgIGlmIChnZXRNZWRpYW5TdGF0aXN0aWMucHJlcGFyZSgpID09IFNRTElURV9PSykg
ewotICAgICAgICBpZiAoZ2V0TWVkaWFuU3RhdGlzdGljLmJpbmRJbnQoMSwgMCkgIT0gU1FMSVRF
X09LCi0gICAgICAgICAgICB8fCBnZXRNZWRpYW5TdGF0aXN0aWMuYmluZEludCgyLCAoYnVja2V0
U2l6ZSAvIDIpKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgaWYgKGdldE1lZGlhblN0YXRpc3Rp
Yy5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgZ2V0TWVkaWFuU3Rh
dGlzdGljLmJpbmRJbnQoMiwgMCkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBnZXRNZWRp
YW5TdGF0aXN0aWMuYmluZEludCgzLCAoYnVja2V0U2l6ZSAvIDIpKSAhPSBTUUxJVEVfT0spIHsK
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFrZU1lZGlhbldpdGhvdXRVSVF1ZXJ5LCBlcnJvciBtZXNz
YWdlOiAle3B1YmxpY31zIiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTg3OSw3ICs5
NDQsOCBAQCBzdGF0aWMgdW5zaWduZWQgZ2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZVdpdGhv
dXRVc2VySW50ZXJhY3Rpb24oU1FMaXRlRGF0YWJhcwogICAgIFNRTGl0ZVN0YXRlbWVudCBnZXRM
b3dlck1lZGlhblN0YXRpc3RpYyA9IG1ha2VNZWRpYW5XaXRob3V0VUlRdWVyeShkYXRhYmFzZSwg
c3RhdGlzdGljKTsKIAogICAgIGlmIChnZXRMb3dlck1lZGlhblN0YXRpc3RpYy5wcmVwYXJlKCkg
PT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIGlmIChnZXRMb3dlck1lZGlhblN0YXRpc3RpYy5iaW5k
SW50KDEsIDApICE9IFNRTElURV9PSworICAgICAgICBpZiAoZ2V0TG93ZXJNZWRpYW5TdGF0aXN0
aWMuYmluZEludCgxLCAxKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IGdldExvd2VyTWVk
aWFuU3RhdGlzdGljLmJpbmRJbnQoMiwgMCkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBn
ZXRMb3dlck1lZGlhblN0YXRpc3RpYy5iaW5kSW50KDIsICgoYnVja2V0U2l6ZS0xKSAvIDIpKSAh
PSBTUUxJVEVfT0spIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFrZU1lZGlhbldpdGhvdXRVSVF1
ZXJ5LCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04OTcsOCArOTYzLDkgQEAg
c3RhdGljIHVuc2lnbmVkIGdldE51bWJlck9mUHJldmFsZW50UmVzb3VyY2VzSW5Ub3BSZXNvdXJj
ZXMoU1FMaXRlRGF0YWJhc2UmIGRhdGEKICAgICBTUUxpdGVTdGF0ZW1lbnQgcHJldmFsZW50UmVz
b3VyY2VDb3VudEluVG9wKGRhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgQ09VTlQoKikgRlJP
TSAoU0VMRUNUICogRlJPTSBPYnNlcnZlZERvbWFpbnMgbyBJTk5FUiBKT0lOKFNFTEVDVCAiLCBq
b2luU3ViU3RhdGlzdGljc0ZvclNvcnRpbmcoKSwgIikgYXMgcSBvbiBxLmRvbWFpbklEID0gby5k
b21haW5JRCBMSU1JVCA/KSBhcyBwIFdIRVJFIHAuaGFkVXNlckludGVyYWN0aW9uID0gMTsiKSk7
CiAKICAgICBpZiAocHJldmFsZW50UmVzb3VyY2VDb3VudEluVG9wLnByZXBhcmUoKSA9PSBTUUxJ
VEVfT0spIHsKLSAgICAgICAgaWYgKHByZXZhbGVudFJlc291cmNlQ291bnRJblRvcC5iaW5kVGV4
dCgxLCAiJSIpICE9IFNRTElURV9PSwotICAgICAgICAgICAgfHwgcHJldmFsZW50UmVzb3VyY2VD
b3VudEluVG9wLmJpbmRJbnQoMiwgYnVja2V0U2l6ZSkgIT0gU1FMSVRFX09LKSB7CisgICAgICAg
IGlmIChwcmV2YWxlbnRSZXNvdXJjZUNvdW50SW5Ub3AuYmluZEludCgxLCAxKSAhPSBTUUxJVEVf
T0sKKyAgICAgICAgICAgIHx8IHByZXZhbGVudFJlc291cmNlQ291bnRJblRvcC5iaW5kVGV4dCgy
LCAiJSIpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgcHJldmFsZW50UmVzb3VyY2VDb3Vu
dEluVG9wLmJpbmRJbnQoMywgYnVja2V0U2l6ZSkgIT0gU1FMSVRFX09LKSB7CiAgICAgICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmdldE51bWJlck9mUHJldmFsZW50UmVzb3VyY2VzSW5Ub3BSZXNvdXJjZXMsIGVy
cm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCBkYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiAwOwpAQCAt
MTE4Nyw2ICsxMjU0LDI0IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnN5bmNTdG9yYWdlSW1tZWRpYXRlbHkoKQogICAgIG1fZGF0YWJhc2UucnVuVmFjdXVtQ29t
bWFuZCgpOwogfQogCitib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpo
YXNTdG9yYWdlQWNjZXNzKGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgY29u
c3QgU3ViRnJhbWVEb21haW4mIHN1YkZyYW1lRG9tYWluKSBjb25zdAoreworICAgIGlmIChtX3N0
b3JhZ2VBY2Nlc3NFeGlzdHNTdGF0ZW1lbnQuYmluZEludCgxLCBkb21haW5JRChzdWJGcmFtZURv
bWFpbikudmFsdWUoKSkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IG1fc3RvcmFnZUFjY2Vzc0V4
aXN0c1N0YXRlbWVudC5iaW5kSW50KDIsIGRvbWFpbklEKHRvcEZyYW1lRG9tYWluKS52YWx1ZSgp
KSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCht
X3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhh
c1N0b3JhZ2VBY2Nlc3MgZmFpbGVkIHRvIGV4ZWN1dGUsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0
ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIGlm
IChtX3N0b3JhZ2VBY2Nlc3NFeGlzdHNTdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsK
KyAgICAgICAgcmVzZXRTdGF0ZW1lbnQobV9zdG9yYWdlQWNjZXNzRXhpc3RzU3RhdGVtZW50KTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJlc2V0U3RhdGVtZW50KG1fc3Rv
cmFnZUFjY2Vzc0V4aXN0c1N0YXRlbWVudCk7CisgICAgcmV0dXJuICEhbV9zdG9yYWdlQWNjZXNz
RXhpc3RzU3RhdGVtZW50LmdldENvbHVtbkludCgwKTsKK30KKwogdm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURv
bWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFp
biwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdl
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xNTQ5LDYgKzE2MzQsMTMgQEAg
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZHVtcFJlc291cmNlTG9h
ZFN0YXRpc3RpY3MoQ29tcGxldGlvbkgKICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiUmVzb3Vy
Y2UgbG9hZCBzdGF0aXN0aWNzOlxuXG4iKTsKICAgICB3aGlsZSAobV9nZXRBbGxEb21haW5zU3Rh
dGVtZW50LnN0ZXAoKSA9PSBTUUxJVEVfUk9XKQogICAgICAgICByZXNvdXJjZVRvU3RyaW5nKHJl
c3VsdCwgbV9nZXRBbGxEb21haW5zU3RhdGVtZW50LmdldENvbHVtblRleHQoMCkpOworCisgICAg
YXV0byB0aGlyZFBhcnR5RGF0YSA9IGdhdGhlckRhdGFGb3JVc2VySW50ZXJmYWNlKCk7CisgICAg
cmVzdWx0LmFwcGVuZCgiXG5JVFAgVXNlciBJbnRlcmZhY2UgRGF0YTpcbiIpOworICAgIGZvciAo
YXV0byB0aGlyZFBhcnR5IDogdGhpcmRQYXJ0eURhdGEpIHsKKyAgICAgICAgcmVzdWx0LmFwcGVu
ZCh0aGlyZFBhcnR5LnRvU3RyaW5nKCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicpOwor
ICAgIH0KICAgICAKICAgICByZXNldFN0YXRlbWVudChtX2dldEFsbERvbWFpbnNTdGF0ZW1lbnQp
OwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC50b1N0cmluZygpKTsKQEAgLTIyNTAsNyAr
MjM0Miw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmFwcGVu
ZFN1YlN0YXRpc3RpY0xpc3QoU3RyaW5nQnVpbGRlciYKICAgICBpZiAoZGF0YS5zdGVwKCkgIT0g
U1FMSVRFX1JPVykKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiICAgICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXG4gICAgIik7CiAgICAg
YnVpbGRlci5hcHBlbmQodGFibGVOYW1lKTsKICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjpc
biIpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmUuaAppbmRleCBhMmFiN2Y3ZTBlOWEwNTM3YjBmNzhjNGJmN2M2NDk3NzJjYjk3ZTdi
Li42OTFhOTA0N2Q0MDcwM2RjMWI5OTk5MDE3NzdmOTU3NzkwOWFkMzk5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtMTMzLDkg
KzEzMywxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYsIFNlY29uZHMpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNDb3JyZWN0U3ViU3RhdGlz
dGljc0NvdW50KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4m
KTsKICAgICB2b2lkIHJlc291cmNlVG9TdHJpbmcoU3RyaW5nQnVpbGRlciYsIGNvbnN0IFN0cmlu
ZyYpIGNvbnN0OworICAgIFZlY3RvcjxUaGlyZFBhcnR5RGF0YT4gZ2F0aGVyRGF0YUZvclVzZXJJ
bnRlcmZhY2UoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB2b2lkIG9wZW5JVFBEYXRhYmFzZSgp
OworICAgIGJvb2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0
IFN1YkZyYW1lRG9tYWluJikgY29uc3Q7CisgICAgdm9pZCBnZXRGaXJzdFBhcnR5RGF0YUZvckRv
bWFpbihWZWN0b3I8Rmlyc3RQYXJ0eURhdGE+JiwgdW5zaWduZWQsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJikgY29uc3Q7CisgICAgdm9pZCBlbnN1cmVGaXJzdFBhcnR5U3RhdGlzdGljKFZlY3Rv
cjxGaXJzdFBhcnR5RGF0YT4mLCB1bnNpZ25lZCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBj
b25zdDsKICAgICB2b2lkIG9wZW5BbmREcm9wT2xkRGF0YWJhc2VJZk5lY2Vzc2FyeSgpOwogICAg
IFN0cmluZyBnZXREb21haW5TdHJpbmdGcm9tRG9tYWluSUQodW5zaWduZWQpIGNvbnN0OwogICAg
IFN0cmluZyBnZXRTdWJTdGF0aXN0aWNTdGF0ZW1lbnQoY29uc3QgU3RyaW5nJikgY29uc3Q7CkBA
IC0yNDYsNiArMjUwLDggQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0
YXRlbWVudCBtX2dldFJlc291cmNlRGF0YUJ5RG9tYWluTmFtZVN0YXRlbWVudDsKICAgICBtdXRh
YmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX2dldEFsbERvbWFpbnNTdGF0ZW1lbnQ7CiAg
ICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9kb21haW5TdHJpbmdGcm9tRG9t
YWluSURTdGF0ZW1lbnQ7CisgICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9n
ZXRBbGxTdWJTdGF0aXN0aWNzU3RhdGVtZW50OworICAgIG11dGFibGUgV2ViQ29yZTo6U1FMaXRl
U3RhdGVtZW50IG1fc3RvcmFnZUFjY2Vzc0V4aXN0c1N0YXRlbWVudDsKICAgICBQQUw6OlNlc3Np
b25JRCBtX3Nlc3Npb25JRDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggZTlkMDhlZTk1ZTc0MTRiYzlmMzRjNDI1ZDM4ZDU5OGRl
YzczZmNiYi4uMGJiYTJmZGZjNGY3YWY3NGY2ZjRlYWMxMzM5MDFhMjI5ZDRiYzZiMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTEwOTYs
NiArMTA5NiwxNSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bm90aWZ5
UGFnZVN0YXRpc3RpY3NUZWxlbWV0cnlGaW5pc2hlZCh1bnNpZwogICAgICAgICBjb25zdF9jYXN0
PFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSo+KHRoaXMpLT5uZXR3b3JrU2Vzc2lvbigp
LT5ub3RpZnlQYWdlU3RhdGlzdGljc1RlbGVtZXRyeUZpbmlzaGVkKG51bWJlck9mUHJldmFsZW50
UmVzb3VyY2VzLCBudW1iZXJPZlByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24s
IG51bWJlck9mUHJldmFsZW50UmVzb3VyY2VzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiwgdG9wUHJl
dmFsZW50UmVzb3VyY2VXaXRoVXNlckludGVyYWN0aW9uRGF5c1NpbmNlVXNlckludGVyYWN0aW9u
LCBtZWRpYW5EYXlzU2luY2VVc2VySW50ZXJhY3Rpb25QcmV2YWxlbnRSZXNvdXJjZVdpdGhVc2Vy
SW50ZXJhY3Rpb24sIHRvcDNOdW1iZXJPZlByZXZhbGVudFJlc291cmNlc1dpdGhVSSwgdG9wM01l
ZGlhblN1YkZyYW1lV2l0aG91dFVJLCB0b3AzTWVkaWFuU3ViUmVzb3VyY2VXaXRob3V0VUksIHRv
cDNNZWRpYW5VbmlxdWVSZWRpcmVjdHNXaXRob3V0VUksIHRvcDNNZWRpYW5EYXRhUmVjb3Jkc1Jl
bW92ZWRXaXRob3V0VUkpOwogfQogCitWZWN0b3I8VGhpcmRQYXJ0eURhdGE+IFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6Z2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UoKQoreworICAg
IFZlY3RvcjxUaGlyZFBhcnR5RGF0YT4gdGhpcmRQYXJ0eURhdGE7CisgICAgaWYgKCFpczxSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU+KCptX3N0YXRpc3RpY3NTdG9yZSkpCisgICAg
ICAgIHRoaXJkUGFydHlEYXRhID0gZG93bmNhc3Q8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU+KCptX3N0YXRpc3RpY3NTdG9yZSkuZ2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2Uo
KTsKKyAgICAKKyAgICByZXR1cm4gdGhpcmRQYXJ0eURhdGE7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaAppbmRleCA0MGFmZGI4ZTQ1ZGVkOTZjY2M2OTRiMzY3N2NmODI4MjNjYWM1ZDM1Li4w
YmRmNDM2ODE4Mzg3ZmI5NDczNmE4ZjI1MmVhMmU3MDc3M2U3YTI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC03Niw2ICs3Niw0MSBAQCBzdHJ1
Y3QgUmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IgewogICAgIFJlZ2lzdHJhYmxl
RG9tYWluc1RvQmxvY2tDb29raWVzRm9yIGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsg
ZG9tYWluc1RvQmxvY2tBbmREZWxldGVDb29raWVzRm9yLmlzb2xhdGVkQ29weSgpLCBkb21haW5z
VG9CbG9ja0J1dEtlZXBDb29raWVzRm9yLmlzb2xhdGVkQ29weSgpLCBkb21haW5zV2l0aFVzZXJJ
bnRlcmFjdGlvbkFzRmlyc3RQYXJ0eS5pc29sYXRlZENvcHkoKSB9OyB9CiB9OwogCitzdHJ1Y3Qg
Rmlyc3RQYXJ0eURhdGEgeworICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbjsK
KyAgICBib29sIHN0b3JhZ2VBY2Nlc3NHcmFudGVkOworICAgIAorICAgIFN0cmluZyB0b1N0cmlu
ZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhkb21haW4uc3RyaW5n
KCksICIsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6ICIsIHN0b3JhZ2VBY2Nlc3NHcmFudGVkKTsK
KyAgICB9CisgICAgCisgICAgYm9vbCBvcGVyYXRvcj09KEZpcnN0UGFydHlEYXRhIGNvbnN0IG90
aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGRvbWFpbiA9PSBvdGhlci5kb21haW4g
JiYgc3RvcmFnZUFjY2Vzc0dyYW50ZWQgPT0gb3RoZXIuc3RvcmFnZUFjY2Vzc0dyYW50ZWQ7Cisg
ICAgfQorfTsKKworc3RydWN0IFRoaXJkUGFydHlEYXRhIHsKKyAgICBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiBkb21haW47CisgICAgVmVjdG9yPEZpcnN0UGFydHlEYXRhPiBhc3NvY2lhdGVk
Rmlyc3RQYXJ0aWVzOworICAgIAorICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0CisgICAgewor
ICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7CisgICAgICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKCJSZWdpc3RyYWJsZSBEb21haW46ICIsIGRvbWFpbi5zdHJpbmcoKSwgIlxuIik7
CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHsiKTsKKworICAgICAg
ICBmb3IgKGF1dG8gZmlyc3RQYXJ0eSA6IGFzc29jaWF0ZWRGaXJzdFBhcnRpZXMpIHsKKyAgICAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgieyAiKTsKKyAgICAgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kKGZpcnN0UGFydHkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiB9LCIpOworICAgICAgICB9CisgICAgICAgIHN0
cmluZ0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgifSIpOworICAgICAgICByZXR1cm4gc3RyaW5nQnVp
bGRlci50b1N0cmluZygpOworICAgIH0KK307CisKIGNsYXNzIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+IHsKIHB1
YmxpYzoKICAgICB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljczsKQEAgLTE5MSw2ICsyMjYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzPiYmKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVu
ZXIoRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzJiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IG9wZW5lcklELCBPcGVuZXJEb21haW4mJik7CisgICAgVmVjdG9yPFRoaXJkUGFydHlEYXRhPiBn
YXRoZXJEYXRhRm9yVXNlckludGVyZmFjZSgpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmlu
ZyYsIFNob3VsZEluY2x1ZGVMb2NhbGhvc3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ5NzZlZjI2OTI3ZjdjNzNkMDQy
NGM1MWRhZDFiYzgxZGEzMzE1MmYuLmQ0NGI1YmM5ODkwN2Q4ZTkzZmU4NGY5MDUxODQxZGY0YTgw
MjIwMzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxOS0xMC0yNSAgS2F0ZSBDaGVuZXkgIDxr
YXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgYmFzaWMgSVRQIGRh
dGEgZnJvbSB0aGUgZGF0YWJhc2UgZm9yIGZ1dHVyZSBBUEkvU1BJIHVzZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNDMyCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81NjA4NTA0MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbiBvcmRlciB0byB0ZXN0IHRoYXQgdGhlIGNvcnJlY3QgZGF0YSB3YXMg
YmVpbmcgcmVwb3J0ZWQgZnJvbSB0aGUgVUksCisgICAgICAgIHRoaXMgcGF0Y2ggY2hhbmdlcyB0
aGUgZHVtcGluZyByb3V0aW5lcyB0byBhbHNvIHJldHVybiB0aGUgSVRQIFVJCisgICAgICAgIGlu
Zm9ybWF0aW9uLiBTbywgdGhlIHRlc3RzIHdoaWNoIHJlbGllZCBvbiBkdW1waW5nIG91dHB1dCBo
YWQgdG8gYmUKKyAgICAgICAgYWRqdXN0ZWQgdG8gdGVzdCB0aGUgVUkgZGF0YSBnYXRoZXJpbmcg
ZnVuY3Rpb24uCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
bG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNp
dGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlv
bi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5hdmlnYXRlZC10by13
aXRoLWxpbmstZGVjb3JhdGlvbi1kYXRhYmFzZS5odG1sOgorCiAyMDE5LTEwLTI1ICB5b3Vlbm4g
ZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJQcm9jZXNzIHNob3VsZCB1
bnJlZ2lzdGVyIGl0cyBpbnRlcmVzdCBmb3IgYSBTV1NlcnZlclJlZ2lzdHJhdGlvbiB3aGVuIGFs
bCBpdHMgY29ycmVzcG9uZGluZyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucyBhcmUgZGVzdHJv
eWVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvbG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi1kYXRhYmFzZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvbG9nLWNyb3NzLXNpdGUtbG9hZC13aXRoLWxpbmstZGVjb3JhdGlvbi1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKaW5kZXggOThkMWRhYTcxOGQxZGRiMmFmNjY1OGI3NGUxNTdmNGVmM2JiOTY1NC4u
MDJmNTVjNmFjYTEwOWY3OWM3ZDNhMDIxNjE2YzZlNzFjYTlmNmYwMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xvZy1jcm9zcy1zaXRl
LWxvYWQtd2l0aC1saW5rLWRlY29yYXRpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sb2ctY3Jvc3Mtc2l0
ZS1sb2FkLXdpdGgtbGluay1kZWNvcmF0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMjMs
OSArMjMsMTIgQEAgUmVnaXN0cmFibGUgZG9tYWluOiBsb2NhbGhvc3QKICAgICBoYWRVc2VySW50
ZXJhY3Rpb246IE5vCiAgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEKICAgICBncmFu
ZGZhdGhlcmVkOiBObworCiAgICAgVG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tOgogICAgICAg
ICAxMjcuMC4wLjEKICAgICAgICAgMTI3LjAuMC4yCiAgICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRD
b29raWVEYXRhUmVtb3ZhbDogWWVzICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgaXNW
ZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCisKK0lU
UCBVc2VyIEludGVyZmFjZSBEYXRhOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5h
dmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRh
LXJlbW92YWwtZm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dAppbmRleCBkOWIwNTViNjdjOGViMDQ2MWVmYTcyYmVlZWFjMmEwNjQz
NzU5ZWI2Li5jMmJlYzQxZmY1NGNiNmZmMzc4MjM2ODMzODkxMzBkNzEwNzBmNmFmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0
ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9u
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2aWdhdGVk
LXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMjAsOSAr
MjAsMTMgQEAgUmVnaXN0cmFibGUgZG9tYWluOiAxMjcuMC4wLjEKICAgICBoYWRVc2VySW50ZXJh
Y3Rpb246IE5vCiAgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEKICAgICBncmFuZGZh
dGhlcmVkOiBObworCiAgICAgVG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tOgogICAgICAgICBs
b2NhbGhvc3QKLSAgICBJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsOiBObyAg
ICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2ll
RGF0YVJlbW92YWw6IE5vCisgICAgU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluczoKKyAg
ICAgICAgdG9wZnJhbWUKKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObwogICAgIGlzVmVyeVBy
ZXZhbGVudFJlc291cmNlOiBObwogICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMQogUmVnaXN0cmFi
bGUgZG9tYWluOiBsb2NhbGhvc3QKQEAgLTMwLDYgKzM0LDIzIEBAIFJlZ2lzdHJhYmxlIGRvbWFp
bjogbG9jYWxob3N0CiAgICAgaGFkVXNlckludGVyYWN0aW9uOiBObwogICAgIG1vc3RSZWNlbnRV
c2VySW50ZXJhY3Rpb246IC0xCiAgICAgZ3JhbmRmYXRoZXJlZDogTm8KLSAgICBJc1NjaGVkdWxl
ZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsOiBObyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBZ
ZXMKKyAgICBJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsOiBObworICAgIFN1
YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnM6CisgICAgICAgIHRvcGZyYW1lCisgICAgaXNQcmV2
YWxlbnRSZXNvdXJjZTogWWVzCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAg
ZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IHRvcGZyYW1lCisgICAg
bGFzdFNlZW46IDAKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvbjogLTEKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIElzU2NoZWR1bGVk
Rm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWw6IE5vICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5v
CiAgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgZGF0YVJlY29yZHNSZW1vdmVk
OiAwCisKK0lUUCBVc2VyIEludGVyZmFjZSBEYXRhOgorUmVnaXN0cmFibGUgRG9tYWluOiBsb2Nh
bGhvc3QKKyAgICB7eyB0b3BmcmFtZSwgU3RvcmFnZSBBY2Nlc3MgZ3JhbnRlZDogMCB9LH0KK1Jl
Z2lzdHJhYmxlIERvbWFpbjogMTI3LjAuMC4xCisgICAge3sgdG9wZnJhbWUsIFN0b3JhZ2UgQWNj
ZXNzIGdyYW50ZWQ6IDAgfSx9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2aWdh
dGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9y
LXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLWRhdGFiYXNlLmh0bWwKaW5k
ZXggMWY4NDgxMzgyNGZkZmVmNDhhZTRhNDczZTExNzU4NDAzY2UxODJkNS4uMGQ2YjA4N2QyYjA1
NjIwNDAzNzJhNTZhMWExMDIyYTBjNWQzYTY5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1z
aXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi1kYXRhYmFzZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRh
dGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24tZGF0
YWJhc2UuaHRtbApAQCAtMjM0LDEwICsyMzQsMTMgQEAKIAogICAgIGNvbnN0IHByZXZhbGVudFJl
c291cmNlT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CiAgICAgY29uc3QgZGVzdGlu
YXRpb25PcmlnaW4gID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgdG9wRnJh
bWVPcmlnaW4gPSAiaHR0cDovL3RvcGZyYW1lOjgwMDAiOwogICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CiAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50
UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc0Nyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24ocHJldmFs
ZW50UmVzb3VyY2VPcmlnaW4sIGRlc3RpbmF0aW9uT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4ocHJldmFs
ZW50UmVzb3VyY2VPcmlnaW4sIHRvcEZyYW1lT3JpZ2luKTsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oZGVzdGlu
YXRpb25PcmlnaW4sIHRvcEZyYW1lT3JpZ2luKTsKICAgICAgICAgICAgICAgICB3cml0ZVdlYnNp
dGVEYXRhQW5kQ29udGludWUoKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384641</attachid>
            <date>2019-12-02 11:04:22 -0800</date>
            <delta_ts>2019-12-02 11:41:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203432-20191202110421.patch</filename>
            <type>text/plain</type>
            <size>61944</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE0OTJjZWMyMjhhMzllZDNk
ZmFhZTFjMjUxZDQ3N2E5YjA1ZDRiMDYuLjIwZTQ3YzFjODM2ZTU3NjcyYjc0ZDM2MGMzNzI3ZmUw
ZjFmNDI5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMTktMTItMDIgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIGJhc2lj
IElUUCBkYXRhIGZyb20gdGhlIGRhdGFiYXNlIGZvciBmdXR1cmUgQVBJL1NQSSB1c2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQzMgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTYwODUwNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nl
c3MtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sCisKKyAgICAgICAg
QWRkcyBhYmlsaXR5IHRvIGNvbGxlY3Qgc29ydGVkIElUUCBkYXRhIGZvciBkaXNwbGF5aW5nIGlu
IGEKKyAgICAgICAgdXNlciBpbnRlcmZhY2UuIEFkZGl0aW9uYWwgcmVnaXN0cmFibGUgZG9tYWlu
IGRhdGEgY2FuIGJlIGFkZGVkIGJhc2VkCisgICAgICAgIG9uIGZ1dHVyZSBkZXNpZ24gY2hhbmdl
cy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6cHJlcGFyZVN0YXRlbWVudHMpOgorICAgICAgICBBZGRlZCBuZXcgcXVlcmllcyB0byB0aGUg
ZGF0YWJhc2Ugc3RvcmUgdG8gY2hlY2sgZm9yIHN0b3JhZ2UgYWNjZXNzIGluCisgICAgICAgIHRo
ZSBkYXRhYmFzZSBhbmQgYWdncmVnYXRlIHRvcEZyYW1lcyB3aXRoIHRoZSBzYW1lCisgICAgICAg
IHN1YmZyYW1lL3N1YnJlc291cmNlIHNvIGVhc2lseSBjcmVhdGUgdGhlIHN0cnVjdCBmb3IgY29s
bGVjdGluZyBkYXRhCisgICAgICAgIGZvciB0aGUgVUkuCisKKyAgICAgICAgKFdlYktpdDo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbGF0aW9uc2hpcEV4aXN0cyBjb25z
dCk6CisgICAgICAgIEZpeGVkIGFuIGluY29ycmVjdCBmdW5jdGlvbiBuYW1lIGluIHRoZSBlcnJv
ciBtZXNzYWdlLgorCisgICAgICAgIChXZWJLaXQ6OmpvaW5TdWJTdGF0aXN0aWNzRm9yU29ydGlu
Zyk6CisgICAgICAgIChXZWJLaXQ6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQpOgorICAgICAgICBS
ZW5hbWVkIHVuY2xlYXIgU1FMIHZhcmlhYmxlIG5hbWVzIGFuZCBhZGRlZCBhIGJpbmQgcGFyYW1l
dGVyIHRvCisgICAgICAgIHNwZWNpZnkgd2hldGhlciByZXNvdXJjZSBpcyBwcmV2YWxlbnQgb3Ig
bm90LCB3aGljaCBhbGxvd3MKKyAgICAgICAgam9pblN1YlN0YXRpc3RpY3NGb3JTb3J0aW5nKCkg
dG8gYmUgdXNlZCB0byBjb2xsZWN0IHNvcnRlZCBJVFAgZGF0YQorICAgICAgICBmb3IgdGhlIFVJ
LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpnZXRGaXJzdFBhcnR5RGF0YUZvckRvbWFpbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnYXRoZXJEYXRhRm9yVXNlckludGVy
ZmFjZSBjb25zdCk6CisKKyAgICAgICAgKFdlYktpdDo6YnVpbGRRdWVyeVN0YXJ0QW5kRW5kKToK
KyAgICAgICAgKFdlYktpdDo6Z2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlcklu
dGVyYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmdldFRvcFByZXZlbGVudFJlc291cmNlRGF5c1NpbmNlVUkgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlV2l0aG91dFVzZXJJbnRl
cmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OmdldE51bWJlck9mUHJldmFsZW50UmVzb3VyY2Vz
SW5Ub3BSZXNvdXJjZXMpOgorICAgICAgICBDaGFuZ2VkIHNxbCBxdWVyeSB2YXJpYWJsZSBuYW1l
cyB0byBtYWtlIHRoZW0gbW9yZSBjbGVhciBhbmQgYWRkZWQgYQorICAgICAgICBuZXcgYmluZCBw
YXJhbWV0ZXIgdG8gYWxsb3cgZm9yIG1vcmUgZ2VuZXJhbCB1c2Ugb2Ygc3Vic3RhdGlzdGljCisg
ICAgICAgIHNvcnRpbmcgcXVlcnkuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZHVtcFJlc291cmNl
TG9hZFN0YXRpc3RpY3MgY29uc3QpOgorICAgICAgICBDb21iaW5lZCBVSSBkYXRhIHdpdGggZHVt
cFJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSBkYXRhIHRvIGtlZXAgdGhlIHRlc3RpbmcgYXNwZWN0
CisgICAgICAgIG9mIHRoaXMgcGF0Y2ggc2ltcGxlci4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmVuc3VyZUZpcnN0UGFydHlTdGF0aXN0
aWMpOgorICAgICAgICAoV2ViS2l0OjpnZXRGaXJzdFBhcnR5RGF0YUZvckRvbWFpbik6CisgICAg
ICAgIChXZWJLaXQ6OmlzVGhpcmRQYXJ0eSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmR1
bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmdhdGhlckRhdGFGb3JVc2VySW50ZXJmYWNlKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAg
ICAoV2ViS2l0OjpGaXJzdFBhcnR5RGF0YTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpGaXJzdFBhcnR5RGF0YTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OlRoaXJkUGFydHlEYXRhOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlRoaXJk
UGFydHlEYXRhOjpvcGVyYXRvcjwgY29uc3QpOgorICAgICAgICBUaGUgdG9TdHJpbmcgbWV0aG9k
cyBhbGxvdyB0aGUgc3RydWN0cyB0byBiZSBwcmludGVkIGZvciB0ZXN0aW5nCisgICAgICAgIHB1
cnBvc2VzLiBUaGUgZXF1YWxzIG1ldGhvZHMgYWxsb3cgdGhlIHJldHVybiB2ZWN0b3JzIHRvIHVz
ZQorICAgICAgICBhcHBlbmRJZk5vdENvbnRhaW5zLgorCiAyMDE5LTExLTIyICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFJl
bW90ZUluc3BlY3RvcjogdXNlIHNvY2tldHMgaW5zdGVhZCBvZiBEQnVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCAyNGRi
MjBiYzUzNjA0M2RiMzc3NDgxZTQwODczOTEzOWZmOGNmMjBkLi5kYjMyN2VmNDMwMWQ5ZDEwZjk1
Y2MwNzU5N2VlZDY2NzMwYjU0ZGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTk5LDYgKzk5LDcgQEAgY29uc3RleHBy
IGF1dG8gdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tRXhpc3RzUXVlcnkgPSAiU0VMRUNUIEVY
SVNUUyAoU0VMRUNUIDEKICAgICAiQU5EIGZyb21Eb21haW5JRCA9IChTRUxFQ1QgZG9tYWluSUQg
RlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7CiBj
b25zdGV4cHIgYXV0byB0b3BGcmFtZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzRXhpc3RzUXVlcnkg
PSAiU0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBUb3BGcmFtZUxvYWRlZFRoaXJkUGFydHlT
Y3JpcHRzIFdIRVJFIHRvcEZyYW1lRG9tYWluSUQgPSA/ICIKICAgICAiQU5EIHN1YnJlc291cmNl
RG9tYWluSUQgPSAoU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJl
Z2lzdHJhYmxlRG9tYWluID0gPykpIl9zOworY29uc3RleHByIGF1dG8gc3RvcmFnZUFjY2Vzc0V4
aXN0c1F1ZXJ5ID0gIlNFTEVDVCBFWElTVFMgKFNFTEVDVCAxIEZST00gU3RvcmFnZUFjY2Vzc1Vu
ZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gPyBBTkQgdG9wTGV2ZWxEb21haW5J
RCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFi
bGVEb21haW4gPSA/KSkiX3M7CiAKIC8vIFVQREFURSBRdWVyaWVzCiBjb25zdGV4cHIgYXV0byBt
b3N0UmVjZW50VXNlckludGVyYWN0aW9uUXVlcnkgPSAiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBT
RVQgaGFkVXNlckludGVyYWN0aW9uID0gPywgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUg
PSA/ICIKQEAgLTEyMSw2ICsxMjIsOSBAQCBjb25zdGV4cHIgYXV0byBpc0dyYW5kZmF0aGVyZWRR
dWVyeSA9ICJTRUxFQ1QgZ3JhbmRmYXRoZXJlZCBGUk9NIE9ic2VydmVkRG9tYWlucwogY29uc3Rl
eHByIGF1dG8gZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25RdWVyeSA9ICJTRUxFQ1QgZG9tYWlu
SUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgaGFkVXNlckludGVyYWN0aW9uID0gMSBBTkQg
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgPCA/Il9zOwogY29uc3RleHByIGF1dG8gZ2V0
UmVzb3VyY2VEYXRhQnlEb21haW5OYW1lUXVlcnkgPSAiU0VMRUNUICogRlJPTSBPYnNlcnZlZERv
bWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/IjsKIGNvbnN0ZXhwciBhdXRvIGdldEFs
bERvbWFpbnNRdWVyeSA9ICJTRUxFQ1QgcmVnaXN0cmFibGVEb21haW4gRlJPTSBPYnNlcnZlZERv
bWFpbnMiX3M7Citjb25zdGV4cHIgYXV0byBnZXRBbGxTdWJTdGF0aXN0aWNzVW5kZXJEb21haW5R
dWVyeSA9ICJTRUxFQ1QgdG9wRnJhbWVEb21haW5JRCBGUk9NIFN1YmZyYW1lVW5kZXJUb3BGcmFt
ZURvbWFpbnMgV0hFUkUgc3ViRnJhbWVEb21haW5JRCA9ID8iCisgICAgIlVOSU9OIEFMTCBTRUxF
Q1QgdG9wRnJhbWVEb21haW5JRCBGUk9NIFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMg
V0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8iCisgICAgIlVOSU9OIEFMTCBTRUxFQ1QgdG9E
b21haW5JRCBGUk9NIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8gV0hFUkUgc3VicmVzb3Vy
Y2VEb21haW5JRCA9ID8iX3M7CiAKIC8vIENSRUFURSBUQUJMRSBRdWVyaWVzCiBjb25zdGV4cHIg
YXV0byBjcmVhdGVPYnNlcnZlZERvbWFpbiA9ICJDUkVBVEUgVEFCTEUgT2JzZXJ2ZWREb21haW5z
ICgiCkBAIC0yNDgsNiArMjUyLDggQEAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKFdlYlJlc28KICAgICAsIG1f
Z2V0UmVzb3VyY2VEYXRhQnlEb21haW5OYW1lU3RhdGVtZW50KG1fZGF0YWJhc2UsIGdldFJlc291
cmNlRGF0YUJ5RG9tYWluTmFtZVF1ZXJ5KQogICAgICwgbV9nZXRBbGxEb21haW5zU3RhdGVtZW50
KG1fZGF0YWJhc2UsIGdldEFsbERvbWFpbnNRdWVyeSkKICAgICAsIG1fZG9tYWluU3RyaW5nRnJv
bURvbWFpbklEU3RhdGVtZW50KG1fZGF0YWJhc2UsIGRvbWFpblN0cmluZ0Zyb21Eb21haW5JRFF1
ZXJ5KQorICAgICwgbV9nZXRBbGxTdWJTdGF0aXN0aWNzU3RhdGVtZW50KG1fZGF0YWJhc2UsIGdl
dEFsbFN1YlN0YXRpc3RpY3NVbmRlckRvbWFpblF1ZXJ5KQorICAgICwgbV9zdG9yYWdlQWNjZXNz
RXhpc3RzU3RhdGVtZW50KG1fZGF0YWJhc2UsIHN0b3JhZ2VBY2Nlc3NFeGlzdHNRdWVyeSkKICAg
ICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKQEAgLTQ1OCw2ICs0NjQsOCBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cygpCiAgICAgICAgIHx8IG1fZ2V0UmVzb3VyY2VE
YXRhQnlEb21haW5OYW1lU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAg
fHwgbV9nZXRBbGxEb21haW5zU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAg
ICAgfHwgbV9kb21haW5TdHJpbmdGcm9tRG9tYWluSURTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNR
TElURV9PSworICAgICAgICB8fCBtX2dldEFsbFN1YlN0YXRpc3RpY3NTdGF0ZW1lbnQucHJlcGFy
ZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCBtX3N0b3JhZ2VBY2Nlc3NFeGlzdHNTdGF0ZW1l
bnQucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAgICApIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnByZXBhcmVTdGF0ZW1lbnRzIGZhaWxlZCB0byBwcmVwYXJlLCBlcnJvciBtZXNzYWdlOiAl
e3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTE1LDcgKzUyMyw3IEBAIGJvb2wgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbGF0aW9uc2hpcEV4aXN0cyhXZWJDb3JlOjpTUUxp
dGVTdGF0CiAgICAgaWYgKHN0YXRlbWVudC5iaW5kSW50KDEsICpmaXJzdERvbWFpbklEKSAhPSBT
UUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVtZW50LmJpbmRUZXh0KDIsIHNlY29uZERvbWFpbi5z
dHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHN0YXRlbWVudC5zdGVwKCkgIT0gU1FM
SVRFX1JPVykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lv
bklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV9pbnNlcnRE
b21haW5SZWxhdGlvbnNoaXBTdGF0ZW1lbnQgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6
ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlvbnNoaXBFeGlzdHMgZmFpbGVkIHRv
IGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0
RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQpAQCAtNzEwLDE5ICs3MTgsMTkgQEAgc3RhdGljIGNvbnN0IFN0cmlu
Z1ZpZXcgam9pblN1YlN0YXRpc3RpY3NGb3JTb3J0aW5nKCkKIHsKICAgICByZXR1cm4gUiJxdWVy
eSgKICAgICAgICAgZG9tYWluSUQsCi0gICAgICAgIChjbnQxICsgY250MiArIGNudDMpIGFzIHN1
bQorICAgICAgICAoY291bnRTdWJGcmFtZVVuZGVyVG9wRnJhbWUgKyBjb3VudFN1YlJlc291cmNl
VW5kZXJUb3BGcmFtZSArIGNvdW50VW5pcXVlUmVkaXJlY3RUbykgYXMgc3VtCiAgICAgICAgIEZS
T00gKAogICAgICAgICBTRUxFQ1QKICAgICAgICAgICAgIGRvbWFpbklELAotICAgICAgICAgICAg
Q09VTlQoRElTVElOQ1QgZi50b3BGcmFtZURvbWFpbklEKSBhcyBjbnQxLAotICAgICAgICAgICAg
Q09VTlQoRElTVElOQ1Qgci50b3BGcmFtZURvbWFpbklEKSBhcyBjbnQyLAotICAgICAgICAgICAg
Q09VTlQoRElTVElOQ1QgdG9Eb21haW5JRCkgYXMgY250MworICAgICAgICAgICAgQ09VTlQoRElT
VElOQ1QgZi50b3BGcmFtZURvbWFpbklEKSBhcyBjb3VudFN1YkZyYW1lVW5kZXJUb3BGcmFtZSwK
KyAgICAgICAgICAgIENPVU5UKERJU1RJTkNUIHIudG9wRnJhbWVEb21haW5JRCkgYXMgY291bnRT
dWJSZXNvdXJjZVVuZGVyVG9wRnJhbWUsCisgICAgICAgICAgICBDT1VOVChESVNUSU5DVCB0b0Rv
bWFpbklEKSBhcyBjb3VudFVuaXF1ZVJlZGlyZWN0VG8KICAgICAgICAgRlJPTQogICAgICAgICBP
YnNlcnZlZERvbWFpbnMgbwogICAgICAgICBMRUZUIEpPSU4gU3ViZnJhbWVVbmRlclRvcEZyYW1l
RG9tYWlucyBmIE9OIG8uZG9tYWluSUQgPSBmLnN1YkZyYW1lRG9tYWluSUQKICAgICAgICAgTEVG
VCBKT0lOIFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMgciBPTiBvLmRvbWFpbklEID0g
ci5zdWJyZXNvdXJjZURvbWFpbklECiAgICAgICAgIExFRlQgSk9JTiBTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0c1RvIHUgT04gby5kb21haW5JRCA9IHUuc3VicmVzb3VyY2VEb21haW5JRAotICAg
ICAgICBXSEVSRSBpc1ByZXZhbGVudCA9IDEKKyAgICAgICAgV0hFUkUgaXNQcmV2YWxlbnQgTElL
RSA/CiAgICAgICAgIGFuZCBoYWRVc2VySW50ZXJhY3Rpb24gTElLRSA/CiAgICAgICAgIEdST1VQ
IEJZIGRvbWFpbklEKSBPUkRFUiBCWSBzdW0gREVTQwogICAgICAgICApcXVlcnkiOwpAQCAtNzMz
LDE1ICs3NDEsNjEgQEAgc3RhdGljIFNRTGl0ZVN0YXRlbWVudCBtYWtlTWVkaWFuV2l0aFVJUXVl
cnkoU1FMaXRlRGF0YWJhc2UmIGRhdGFiYXNlKQogICAgIHJldHVybiBTUUxpdGVTdGF0ZW1lbnQo
ZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGlt
ZSBGUk9NIE9ic2VydmVkRG9tYWlucyBJTk5FUiBKT0lOIChTRUxFQ1QgIiwgam9pblN1YlN0YXRp
c3RpY3NGb3JTb3J0aW5nKCksICIpIGFzIHEgT04gT2JzZXJ2ZWREb21haW5zLmRvbWFpbklEID0g
cS5kb21haW5JRCBMSU1JVCAxIE9GRlNFVCA/IikpOwogfQogCitWZWN0b3I8Rmlyc3RQYXJ0eURh
dGE+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRGaXJzdFBhcnR5RGF0
YUZvckRvbWFpbih1bnNpZ25lZCBkb21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRv
bWFpblN0cmluZykgY29uc3QKK3sKKyAgICBpZiAobV9nZXRBbGxTdWJTdGF0aXN0aWNzU3RhdGVt
ZW50LmJpbmRJbnQoMSwgZG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBtX2dldEFs
bFN1YlN0YXRpc3RpY3NTdGF0ZW1lbnQuYmluZEludCgyLCBkb21haW5JRCkgIT0gU1FMSVRFX09L
CisgICAgICAgIHx8IG1fZ2V0QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVudC5iaW5kSW50KDMsIGRv
bWFpbklEKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29y
aywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRGaXJzdFBhcnR5RGF0
YUZvckRvbWFpbiwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgVmVj
dG9yPEZpcnN0UGFydHlEYXRhPiBmaXJzdFBhcnR5RGF0YUxpc3Q7CisgICAgd2hpbGUgKG1fZ2V0
QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVudC5zdGVwKCkgPT0gU1FMSVRFX1JPVykgeworICAgICAg
ICBSZWdpc3RyYWJsZURvbWFpbiBmaXJzdFBhcnR5RG9tYWluID0gUmVnaXN0cmFibGVEb21haW46
OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJsZURvbWFpblN0cmluZyhnZXREb21haW5TdHJp
bmdGcm9tRG9tYWluSUQobV9nZXRBbGxTdWJTdGF0aXN0aWNzU3RhdGVtZW50LmdldENvbHVtbklu
dCgwKSkpOworICAgICAgICBmaXJzdFBhcnR5RGF0YUxpc3QuYXBwZW5kSWZOb3RDb250YWlucyhG
aXJzdFBhcnR5RGF0YSB7IGZpcnN0UGFydHlEb21haW4sIGhhc1N0b3JhZ2VBY2Nlc3MoZmlyc3RQ
YXJ0eURvbWFpbiwgZG9tYWluU3RyaW5nKSB9KTsKKyAgICB9CisKKyAgICByZXNldFN0YXRlbWVu
dChtX2dldEFsbFN1YlN0YXRpc3RpY3NTdGF0ZW1lbnQpOworICAgIHJldHVybiBmaXJzdFBhcnR5
RGF0YUxpc3Q7Cit9CisKK3N0YXRpYyBib29sIGlzVGhpcmRQYXJ0eSh1bnNpZ25lZCB0aW1lc1Vu
ZGVyRmlyc3RQYXJ0eSkKK3sKKyAgICByZXR1cm4gdGltZXNVbmRlckZpcnN0UGFydHkgPiAwOwor
fQorCitWZWN0b3I8VGhpcmRQYXJ0eURhdGE+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpnYXRoZXJEYXRhRm9yVXNlckludGVyZmFjZSgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBWZWN0b3I8VGhpcmRQYXJ0eURhdGE+IHRoaXJk
UGFydHlEYXRhTGlzdDsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgc29ydGVkU3RhdGlzdGljcyhtX2Rh
dGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgIiwgam9pblN1YlN0YXRpc3RpY3NGb3JTb3J0aW5n
KCkpKTsKKyAgICBpZiAoc29ydGVkU3RhdGlzdGljcy5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisg
ICAgICAgIHx8IHNvcnRlZFN0YXRpc3RpY3MuYmluZFRleHQoMSwgIiUiKQorICAgICAgICB8fCBz
b3J0ZWRTdGF0aXN0aWNzLmJpbmRUZXh0KDIsICIlIikgIT0gU1FMSVRFX09LKSB7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Z2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UsIGVycm9yIG1lc3NhZ2U6ICV7cHVi
bGljfXMiLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIHJldHVybiB0aGlyZFBhcnR5RGF0YUxpc3Q7CisgICAgfQorICAg
IHdoaWxlIChzb3J0ZWRTdGF0aXN0aWNzLnN0ZXAoKSA9PSBTUUxJVEVfUk9XKSB7CisgICAgICAg
IGlmIChpc1RoaXJkUGFydHkoc29ydGVkU3RhdGlzdGljcy5nZXRDb2x1bW5JbnQoMSkpKSB7Cisg
ICAgICAgICAgICBhdXRvIHRoaXJkUGFydHlEb21haW5JRCA9IHNvcnRlZFN0YXRpc3RpY3MuZ2V0
Q29sdW1uSW50KDApOworICAgICAgICAgICAgYXV0byB0aGlyZFBhcnR5RG9tYWluID0gUmVnaXN0
cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJsZURvbWFpblN0cmluZyhn
ZXREb21haW5TdHJpbmdGcm9tRG9tYWluSUQodGhpcmRQYXJ0eURvbWFpbklEKSk7CisgICAgICAg
ICAgICB0aGlyZFBhcnR5RGF0YUxpc3QuYXBwZW5kKFRoaXJkUGFydHlEYXRhIHsgdGhpcmRQYXJ0
eURvbWFpbiwgZ2V0Rmlyc3RQYXJ0eURhdGFGb3JEb21haW4odGhpcmRQYXJ0eURvbWFpbklELCB0
aGlyZFBhcnR5RG9tYWluKSB9KTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gdGhpcmRQ
YXJ0eURhdGFMaXN0OworfQorCiBzdGF0aWMgc3RkOjpwYWlyPFN0cmluZ1ZpZXcsIFN0cmluZ1Zp
ZXc+IGJ1aWxkUXVlcnlTdGFydEFuZEVuZChQcmV2YWxlbnRSZXNvdXJjZURhdGFiYXNlVGVsZW1l
dHJ5OjpTdGF0aXN0aWMgc3RhdGlzdGljKQogewogICAgIHN3aXRjaCAoc3RhdGlzdGljKSB7CiAg
ICAgY2FzZSBQcmV2YWxlbnRSZXNvdXJjZURhdGFiYXNlVGVsZW1ldHJ5OjpTdGF0aXN0aWM6Ok1l
ZGlhblN1YkZyYW1lV2l0aG91dFVJOgotICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoIlNF
TEVDVCBjbnQxIEZST00gT2JzZXJ2ZWREb21haW5zIG8gSU5ORVIgSk9JTihTRUxFQ1QgY250MSwg
IiwgIikgYXMgcSBPTiBvLmRvbWFpbklEID0gcS5kb21haW5JRCBMSU1JVCAxIE9GRlNFVCA/Iik7
CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcigiU0VMRUNUIGNvdW50U3ViRnJhbWVVbmRl
clRvcEZyYW1lIEZST00gT2JzZXJ2ZWREb21haW5zIG8gSU5ORVIgSk9JTihTRUxFQ1QgY291bnRT
dWJGcmFtZVVuZGVyVG9wRnJhbWUsICIsICIpIGFzIHEgT04gby5kb21haW5JRCA9IHEuZG9tYWlu
SUQgTElNSVQgMSBPRkZTRVQgPyIpOwogICAgIGNhc2UgUHJldmFsZW50UmVzb3VyY2VEYXRhYmFz
ZVRlbGVtZXRyeTo6U3RhdGlzdGljOjpNZWRpYW5TdWJSZXNvdXJjZVdpdGhvdXRVSToKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKCJTRUxFQ1QgY250MiBGUk9NIE9ic2VydmVkRG9tYWlu
cyBvIElOTkVSIEpPSU4oU0VMRUNUIGNudDIsICIsICIpIGFzIHEgT04gby5kb21haW5JRCA9IHEu
ZG9tYWluSUQgTElNSVQgMSBPRkZTRVQgPyIpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3Bh
aXIoIlNFTEVDVCBjb3VudFN1YlJlc291cmNlVW5kZXJUb3BGcmFtZSBGUk9NIE9ic2VydmVkRG9t
YWlucyBvIElOTkVSIEpPSU4oU0VMRUNUIGNvdW50U3ViUmVzb3VyY2VVbmRlclRvcEZyYW1lLCAi
LCAiKSBhcyBxIE9OIG8uZG9tYWluSUQgPSBxLmRvbWFpbklEIExJTUlUIDEgT0ZGU0VUID8iKTsK
ICAgICBjYXNlIFByZXZhbGVudFJlc291cmNlRGF0YWJhc2VUZWxlbWV0cnk6OlN0YXRpc3RpYzo6
TWVkaWFuVW5pcXVlUmVkaXJlY3RzV2l0aG91dFVJOgotICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3BhaXIoIlNFTEVDVCBjbnQzIEZST00gT2JzZXJ2ZWREb21haW5zIG8gSU5ORVIgSk9JTihTRUxF
Q1QgY250MywgIiwgIikgYXMgcSBPTiBvLmRvbWFpbklEID0gcS5kb21haW5JRCBMSU1JVCAxIE9G
RlNFVCA/Iik7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcigiU0VMRUNUIGNvdW50VW5p
cXVlUmVkaXJlY3RUbyBGUk9NIE9ic2VydmVkRG9tYWlucyBvIElOTkVSIEpPSU4oU0VMRUNUIGNv
dW50VW5pcXVlUmVkaXJlY3RUbywgIiwgIikgYXMgcSBPTiBvLmRvbWFpbklEID0gcS5kb21haW5J
RCBMSU1JVCAxIE9GRlNFVCA/Iik7CiAgICAgY2FzZSBQcmV2YWxlbnRSZXNvdXJjZURhdGFiYXNl
VGVsZW1ldHJ5OjpTdGF0aXN0aWM6Ok1lZGlhbkRhdGFSZWNvcmRzUmVtb3ZlZFdpdGhvdXRVSToK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKCJTRUxFQ1QgZGF0YVJlY29yZHNSZW1vdmVk
IEZST00gKFNFTEVDVCAqIEZST00gT2JzZXJ2ZWREb21haW5zIG8gSU5ORVIgSk9JTihTRUxFQ1Qg
IiwgIikgYXMgcSBPTiBvLmRvbWFpbklEID0gcS5kb21haW5JRCkgTElNSVQgMSBPRkZTRVQgPyIp
OwogICAgIGNhc2UgUHJldmFsZW50UmVzb3VyY2VEYXRhYmFzZVRlbGVtZXRyeTo6U3RhdGlzdGlj
OjpNZWRpYW5UaW1lc0FjY2Vzc2VkRHVlVG9Vc2VySW50ZXJhY3Rpb25XaXRob3V0VUk6CkBAIC03
NzMsNyArODI3LDcgQEAgc3RhdGljIHVuc2lnbmVkIGdldE1lZGlhbk9mUHJldmFsZW50UmVzb3Vy
Y2VzV2l0aFVzZXJJbnRlcmFjdGlvbihTUUxpdGVEYXRhYmFzZSYKICAgICB9CiAKICAgICAvLyBC
aW5kCi0gICAgaWYgKG1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMSwgMSkgIT0g
U1FMSVRFX09LIHx8IG1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMiwgKHByZXZh
bGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb25Db3VudCAvIDIpICE9IFNRTElURV9PSykp
IHsKKyAgICBpZiAobWVkaWFuRGF5c1NpbmNlVUlTdGF0ZW1lbnQuYmluZEludCgxLCAxKSAhPSBT
UUxJVEVfT0sgfHwgbWVkaWFuRGF5c1NpbmNlVUlTdGF0ZW1lbnQuYmluZEludCgyLCAxKSAhPSBT
UUxJVEVfT0sgfHwgbWVkaWFuRGF5c1NpbmNlVUlTdGF0ZW1lbnQuYmluZEludCgzLCAocHJldmFs
ZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbkNvdW50IC8gMikgIT0gU1FMSVRFX09LKSkg
ewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmdldE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJ
bnRlcmFjdGlvbiwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIGRhdGFiYXNlLmxhc3RFcnJv
ck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAw
OwpAQCAtODAyLDcgKzg1Niw3IEBAIHN0YXRpYyB1bnNpZ25lZCBnZXRNZWRpYW5PZlByZXZhbGVu
dFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24oU1FMaXRlRGF0YWJhc2UmCiAgICAgfQogCiAg
ICAgLy8gQmluZAotICAgIGlmIChsb3dlck1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJ
bnQoMSwgMSkgIT0gU1FMSVRFX09LIHx8IGxvd2VyTWVkaWFuRGF5c1NpbmNlVUlTdGF0ZW1lbnQu
YmluZEludCgyLCAoKHByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb25Db3VudCAt
IDEpIC8gMikpICE9IFNRTElURV9PSykgeworICAgIGlmIChsb3dlck1lZGlhbkRheXNTaW5jZVVJ
U3RhdGVtZW50LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LIHx8IGxvd2VyTWVkaWFuRGF5c1Np
bmNlVUlTdGF0ZW1lbnQuYmluZEludCgyLCAxKSAhPSBTUUxJVEVfT0sgfHwgbG93ZXJNZWRpYW5E
YXlzU2luY2VVSVN0YXRlbWVudC5iaW5kSW50KDMsICgocHJldmFsZW50UmVzb3VyY2VzV2l0aFVz
ZXJJbnRlcmFjdGlvbkNvdW50IC0gMSkgLyAyKSkgIT0gU1FMSVRFX09LKSB7CiAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCBl
cnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIDA7CkBAIC04NTUsNyAr
OTA5LDggQEAgdW5zaWduZWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omdl
dFRvcFByZXZlbGVudFJlc291cmNlRGF5c1NpbmNlVUkKICAgICB9CiAgICAgCiAgICAgLy8gQmlu
ZAotICAgIGlmICh0b3BQcmV2YWxlbnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2lu
Y2VVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZEludCgxLCAxKSAhPSBTUUxJVEVfT0spIHsK
KyAgICBpZiAodG9wUHJldmFsZW50UmVzb3VyY2VXaXRoVXNlckludGVyYWN0aW9uRGF5c1NpbmNl
VXNlckludGVyYWN0aW9uU3RhdGVtZW50LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LCisgICAg
ICAgIHx8IHRvcFByZXZhbGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNTaW5jZVVz
ZXJJbnRlcmFjdGlvblN0YXRlbWVudC5iaW5kSW50KDIsIDEpICE9IFNRTElURV9PSykgewogICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OnRvcFByZXZhbGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNT
aW5jZVVzZXJJbnRlcmFjdGlvblN0YXRlbWVudCBxdWVyeSBmYWlsZWQgdG8gYmluZCwgZXJyb3Ig
bWVzc2FnZTogJXtwdWJsaWN9cyIsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIDA7CkBAIC04ODIsOCArOTM3
LDkgQEAgc3RhdGljIHVuc2lnbmVkIGdldE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2VXaXRob3V0
VXNlckludGVyYWN0aW9uKFNRTGl0ZURhdGFiYXMKICAgICBTUUxpdGVTdGF0ZW1lbnQgZ2V0TWVk
aWFuU3RhdGlzdGljID0gbWFrZU1lZGlhbldpdGhvdXRVSVF1ZXJ5KGRhdGFiYXNlLCBzdGF0aXN0
aWMpOwogCiAgICAgaWYgKGdldE1lZGlhblN0YXRpc3RpYy5wcmVwYXJlKCkgPT0gU1FMSVRFX09L
KSB7Ci0gICAgICAgIGlmIChnZXRNZWRpYW5TdGF0aXN0aWMuYmluZEludCgxLCAwKSAhPSBTUUxJ
VEVfT0sKLSAgICAgICAgICAgIHx8IGdldE1lZGlhblN0YXRpc3RpYy5iaW5kSW50KDIsIChidWNr
ZXRTaXplIC8gMikpICE9IFNRTElURV9PSykgeworICAgICAgICBpZiAoZ2V0TWVkaWFuU3RhdGlz
dGljLmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBnZXRNZWRpYW5T
dGF0aXN0aWMuYmluZEludCgyLCAwKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IGdldE1l
ZGlhblN0YXRpc3RpYy5iaW5kSW50KDMsIChidWNrZXRTaXplIC8gMikpICE9IFNRTElURV9PSykg
ewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptYWtlTWVkaWFuV2l0aG91dFVJUXVlcnksIGVycm9yIG1l
c3NhZ2U6ICV7cHVibGljfXMiLCBkYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiAwOwpAQCAtODk4LDcg
Kzk1NCw4IEBAIHN0YXRpYyB1bnNpZ25lZCBnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlV2l0
aG91dFVzZXJJbnRlcmFjdGlvbihTUUxpdGVEYXRhYmFzCiAgICAgU1FMaXRlU3RhdGVtZW50IGdl
dExvd2VyTWVkaWFuU3RhdGlzdGljID0gbWFrZU1lZGlhbldpdGhvdXRVSVF1ZXJ5KGRhdGFiYXNl
LCBzdGF0aXN0aWMpOwogCiAgICAgaWYgKGdldExvd2VyTWVkaWFuU3RhdGlzdGljLnByZXBhcmUo
KSA9PSBTUUxJVEVfT0spIHsKLSAgICAgICAgaWYgKGdldExvd2VyTWVkaWFuU3RhdGlzdGljLmJp
bmRJbnQoMSwgMCkgIT0gU1FMSVRFX09LCisgICAgICAgIGlmIChnZXRMb3dlck1lZGlhblN0YXRp
c3RpYy5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgZ2V0TG93ZXJN
ZWRpYW5TdGF0aXN0aWMuYmluZEludCgyLCAwKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8
IGdldExvd2VyTWVkaWFuU3RhdGlzdGljLmJpbmRJbnQoMiwgKChidWNrZXRTaXplLTEpIC8gMikp
ICE9IFNRTElURV9PSykgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywg
IlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptYWtlTWVkaWFuV2l0aG91dFVJ
UXVlcnksIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCBkYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSk7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTkxNiw4ICs5NzMsOSBA
QCBzdGF0aWMgdW5zaWduZWQgZ2V0TnVtYmVyT2ZQcmV2YWxlbnRSZXNvdXJjZXNJblRvcFJlc291
cmNlcyhTUUxpdGVEYXRhYmFzZSYgZGF0YQogICAgIFNRTGl0ZVN0YXRlbWVudCBwcmV2YWxlbnRS
ZXNvdXJjZUNvdW50SW5Ub3AoZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBDT1VOVCgqKSBG
Uk9NIChTRUxFQ1QgKiBGUk9NIE9ic2VydmVkRG9tYWlucyBvIElOTkVSIEpPSU4oU0VMRUNUICIs
IGpvaW5TdWJTdGF0aXN0aWNzRm9yU29ydGluZygpLCAiKSBhcyBxIG9uIHEuZG9tYWluSUQgPSBv
LmRvbWFpbklEIExJTUlUID8pIGFzIHAgV0hFUkUgcC5oYWRVc2VySW50ZXJhY3Rpb24gPSAxOyIp
KTsKIAogICAgIGlmIChwcmV2YWxlbnRSZXNvdXJjZUNvdW50SW5Ub3AucHJlcGFyZSgpID09IFNR
TElURV9PSykgewotICAgICAgICBpZiAocHJldmFsZW50UmVzb3VyY2VDb3VudEluVG9wLmJpbmRU
ZXh0KDEsICIlIikgIT0gU1FMSVRFX09LCi0gICAgICAgICAgICB8fCBwcmV2YWxlbnRSZXNvdXJj
ZUNvdW50SW5Ub3AuYmluZEludCgyLCBidWNrZXRTaXplKSAhPSBTUUxJVEVfT0spIHsKKyAgICAg
ICAgaWYgKHByZXZhbGVudFJlc291cmNlQ291bnRJblRvcC5iaW5kSW50KDEsIDEpICE9IFNRTElU
RV9PSworICAgICAgICAgICAgfHwgcHJldmFsZW50UmVzb3VyY2VDb3VudEluVG9wLmJpbmRUZXh0
KDIsICIlIikgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBwcmV2YWxlbnRSZXNvdXJjZUNv
dW50SW5Ub3AuYmluZEludCgzLCBidWNrZXRTaXplKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6Z2V0TnVtYmVyT2ZQcmV2YWxlbnRSZXNvdXJjZXNJblRvcFJlc291cmNlcywg
ZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIDA7CkBA
IC0xMjA2LDYgKzEyNjQsMTEgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6c3luY1N0b3JhZ2VJbW1lZGlhdGVseSgpCiAgICAgbV9kYXRhYmFzZS5ydW5WYWN1dW1D
b21tYW5kKCk7CiB9CiAKK2Jvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBj
b25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4pIGNvbnN0Cit7CisgICAgcmV0dXJu
IHJlbGF0aW9uc2hpcEV4aXN0cyhtX3N0b3JhZ2VBY2Nlc3NFeGlzdHNTdGF0ZW1lbnQsIGRvbWFp
bklEKHN1YkZyYW1lRG9tYWluKSwgdG9wRnJhbWVEb21haW4pOworfQorCiB2b2lkIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZy
YW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTE1NjgsNyArMTYzMSwx
NSBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkdW1wUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyhDb21wbGV0aW9uSAogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJS
ZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3M6XG5cbiIpOwogICAgIHdoaWxlIChtX2dldEFsbERvbWFp
bnNTdGF0ZW1lbnQuc3RlcCgpID09IFNRTElURV9ST1cpCiAgICAgICAgIHJlc291cmNlVG9TdHJp
bmcocmVzdWx0LCBtX2dldEFsbERvbWFpbnNTdGF0ZW1lbnQuZ2V0Q29sdW1uVGV4dCgwKSk7Ci0g
ICAgCisKKyAgICBhdXRvIHRoaXJkUGFydHlEYXRhID0gZ2F0aGVyRGF0YUZvclVzZXJJbnRlcmZh
Y2UoKTsKKyAgICBpZiAoIXRoaXJkUGFydHlEYXRhLmlzRW1wdHkoKSkgeworICAgICAgICByZXN1
bHQuYXBwZW5kKCJcbklUUCBVc2VyIEludGVyZmFjZSBEYXRhOlxuIik7CisgICAgICAgIGZvciAo
YXV0byB0aGlyZFBhcnR5IDogdGhpcmRQYXJ0eURhdGEpIHsKKyAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQodGhpcmRQYXJ0eS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQo
J1xuJyk7CisgICAgICAgIH0KKyAgICB9CiAgICAgcmVzZXRTdGF0ZW1lbnQobV9nZXRBbGxEb21h
aW5zU3RhdGVtZW50KTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQudG9TdHJpbmcoKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZS5oCmluZGV4IDdjYmZhOGNmYTZmZjIxNzgxOGMwNzQ1MTA0NmY2MTgzNDgwNzc1MTUuLmZkOGRh
ZTUzMDRkZjI1NjliM2U0ODJlOTIzMjlkMmQxZTAyZjE3YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCkBAIC04NSw2ICs4NSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNsZWFyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3Zl
cnJpZGU7CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICBWZWN0b3I8
VGhpcmRQYXJ0eURhdGE+IGdhdGhlckRhdGFGb3JVc2VySW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdm9pZCB1cGRhdGVDb29raWVCbG9ja2luZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBjbGFzc2lmeVByZXZhbGVudFJlc291cmNlcygp
IG92ZXJyaWRlOwpAQCAtMTM2LDYgKzEzNyw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2
b2lkIG9wZW5JVFBEYXRhYmFzZSgpOworICAgIGJvb2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBU
b3BGcmFtZURvbWFpbiYsIGNvbnN0IFN1YkZyYW1lRG9tYWluJikgY29uc3Q7CisgICAgVmVjdG9y
PEZpcnN0UGFydHlEYXRhPiBnZXRGaXJzdFBhcnR5RGF0YUZvckRvbWFpbih1bnNpZ25lZCBkb21h
aW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25zdDsKICAgICB2b2lkIG9wZW5BbmRE
cm9wT2xkRGF0YWJhc2VJZk5lY2Vzc2FyeSgpOwogICAgIFN0cmluZyBnZXREb21haW5TdHJpbmdG
cm9tRG9tYWluSUQodW5zaWduZWQpIGNvbnN0OwogICAgIFN0cmluZyBnZXRTdWJTdGF0aXN0aWNT
dGF0ZW1lbnQoY29uc3QgU3RyaW5nJikgY29uc3Q7CkBAIC0yNDYsNiArMjQ5LDggQEAgcHJpdmF0
ZToKICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX2dldFJlc291cmNlRGF0
YUJ5RG9tYWluTmFtZVN0YXRlbWVudDsKICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRl
bWVudCBtX2dldEFsbERvbWFpbnNTdGF0ZW1lbnQ7CiAgICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxp
dGVTdGF0ZW1lbnQgbV9kb21haW5TdHJpbmdGcm9tRG9tYWluSURTdGF0ZW1lbnQ7CisgICAgbXV0
YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9nZXRBbGxTdWJTdGF0aXN0aWNzU3RhdGVt
ZW50OworICAgIG11dGFibGUgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1fc3RvcmFnZUFjY2Vz
c0V4aXN0c1N0YXRlbWVudDsKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAK
aW5kZXggMDMwYjFmMTcwYWUxY2JlN2JjOWMxMjdjMTE1OWFkYTQ2MDEyZDAzNy4uNjRmYjFkZGM0
OThiMzcyMTljNzg2OTc3OTkyNmY3YzMwYTYzZmQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKQEAgLTEwMyw2ICsxMDMsNDYgQEAg
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmNhbGN1bGF0ZUFuZFN1Ym1p
dFRlbGVtZXRyeSgpIGNvbnN0CiAgICAgICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxl
bWV0cnk6OmNhbGN1bGF0ZUFuZFN1Ym1pdCgqdGhpcyk7CiB9CiAKK3N0YXRpYyB2b2lkIGVuc3Vy
ZUZpcnN0UGFydHlTdGF0aXN0aWMoVmVjdG9yPEZpcnN0UGFydHlEYXRhPiYgZmlyc3RQYXJ0eURh
dGFMaXN0LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgYm9vbCB0
aGlyZFBhcnR5SGFzU3RvcmFnZUFjY2VzcykKK3sKKyAgICBGaXJzdFBhcnR5RGF0YSBmaXJzdFBh
cnR5IHsgZmlyc3RQYXJ0eURvbWFpbiwgdGhpcmRQYXJ0eUhhc1N0b3JhZ2VBY2Nlc3MgfTsKKyAg
ICBmaXJzdFBhcnR5RGF0YUxpc3QuYXBwZW5kSWZOb3RDb250YWlucyhmaXJzdFBhcnR5KTsKK30K
Kworc3RhdGljIFZlY3RvcjxGaXJzdFBhcnR5RGF0YT4gZ2V0Rmlyc3RQYXJ0eURhdGFGb3JEb21h
aW4oY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYgc3RhdGlzdGljKQoreworICAgIFZlY3Rv
cjxGaXJzdFBhcnR5RGF0YT4gZmlyc3RQYXJ0eURhdGFMaXN0OworCisgICAgZm9yIChhdXRvIGZp
cnN0UGFydHkgOiBzdGF0aXN0aWMuc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucykKKyAgICAg
ICAgZW5zdXJlRmlyc3RQYXJ0eVN0YXRpc3RpYyhmaXJzdFBhcnR5RGF0YUxpc3QsIGZpcnN0UGFy
dHksIHN0YXRpc3RpYy5zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMuY29udGFpbnMo
Zmlyc3RQYXJ0eSkpOworICAgIGZvciAoYXV0byBmaXJzdFBhcnR5IDogc3RhdGlzdGljLnN1YnJl
c291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMpCisgICAgICAgIGVuc3VyZUZpcnN0UGFydHlTdGF0
aXN0aWMoZmlyc3RQYXJ0eURhdGFMaXN0LCBmaXJzdFBhcnR5LCBzdGF0aXN0aWMuc3RvcmFnZUFj
Y2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zLmNvbnRhaW5zKGZpcnN0UGFydHkpKTsKKyAgICBmb3Ig
KGF1dG8gZmlyc3RQYXJ0eSA6IHN0YXRpc3RpYy5zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1Rv
KQorICAgICAgICBlbnN1cmVGaXJzdFBhcnR5U3RhdGlzdGljKGZpcnN0UGFydHlEYXRhTGlzdCwg
Zmlyc3RQYXJ0eSwgc3RhdGlzdGljLnN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlucy5j
b250YWlucyhmaXJzdFBhcnR5KSk7CisKKyAgICByZXR1cm4gZmlyc3RQYXJ0eURhdGFMaXN0Owor
fQorCitzdGF0aWMgYm9vbCBpc1RoaXJkUGFydHkoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyYgc3RhdGlzdGljKQoreworICAgIHJldHVybiAhc3RhdGlzdGljLnN1YmZyYW1lVW5kZXJUb3BG
cmFtZURvbWFpbnMuaXNFbXB0eSgpCisgICAgICAgIHx8ICFzdGF0aXN0aWMuc3VicmVzb3VyY2VV
bmRlclRvcEZyYW1lRG9tYWlucy5pc0VtcHR5KCkKKyAgICAgICAgfHwgIXN0YXRpc3RpYy5zdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLmlzRW1wdHkoKTsKK30KKworVmVjdG9yPFRoaXJkUGFy
dHlEYXRhPiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdhdGhlckRhdGFGb3JV
c2VySW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
KworICAgIFZlY3RvcjxUaGlyZFBhcnR5RGF0YT4gdGhpcmRQYXJ0eURhdGFMaXN0OworICAgIGZv
ciAoYXV0byYgc3RhdGlzdGljIDogbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAudmFsdWVzKCkpIHsK
KyAgICAgICAgaWYgKGlzVGhpcmRQYXJ0eShzdGF0aXN0aWMpKQorICAgICAgICAgICAgdGhpcmRQ
YXJ0eURhdGFMaXN0LmFwcGVuZChUaGlyZFBhcnR5RGF0YSB7IHN0YXRpc3RpYy5yZWdpc3RyYWJs
ZURvbWFpbiwgZ2V0Rmlyc3RQYXJ0eURhdGFGb3JEb21haW4oc3RhdGlzdGljKSB9KTsKKyAgICB9
CisgICAgc3RkOjpzb3J0KHRoaXJkUGFydHlEYXRhTGlzdC5yYmVnaW4oKSwgdGhpcmRQYXJ0eURh
dGFMaXN0LnJlbmQoKSk7CisgICAgcmV0dXJuIHRoaXJkUGFydHlEYXRhTGlzdDsKK30KKwogdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmluY3JlbWVudFJlY29yZHNEZWxl
dGVkQ291bnRGb3JEb21haW5zKEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+JiYgZG9tYWluc1dp
dGhEZWxldGVkV2Vic2l0ZURhdGEpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7
CkBAIC00OTAsNiArNTMwLDE1IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0
b3JlOjpkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhDb21wbGV0aW9uSGFuCiAgICAgcmVzdWx0
LmFwcGVuZExpdGVyYWwoIlJlc291cmNlIGxvYWQgc3RhdGlzdGljczpcblxuIik7CiAgICAgZm9y
IChhdXRvJiBtYXBFbnRyeSA6IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLnZhbHVlcygpKQogICAg
ICAgICByZXN1bHQuYXBwZW5kKG1hcEVudHJ5LnRvU3RyaW5nKCkpOworCisgICAgYXV0byB0aGly
ZFBhcnR5RGF0YSA9IGdhdGhlckRhdGFGb3JVc2VySW50ZXJmYWNlKCk7CisgICAgaWYgKCF0aGly
ZFBhcnR5RGF0YS5pc0VtcHR5KCkpIHsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiXG5JVFAgVXNl
ciBJbnRlcmZhY2UgRGF0YTpcbiIpOworICAgICAgICBmb3IgKGF1dG8gdGhpcmRQYXJ0eSA6IHRo
aXJkUGFydHlEYXRhKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHRoaXJkUGFydHkudG9T
dHJpbmcoKSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicpOworICAgICAgICB9Cisg
ICAgfQogICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC50b1N0cmluZygpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCmluZGV4IGMx
OGM1MWQxZjNlODMxYjZmYWI5NDQ0ZWI4N2ViMDgyY2IwMWJjZDguLjFhYTNiYjcxYjFmNTVkOWMy
MWEwNmY4ZWQ4OWI2N2RlYjc1NTIzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZv
aWQgY2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICBib29s
IGlzRW1wdHkoKSBjb25zdCBvdmVycmlkZTsKIAorICAgIFZlY3RvcjxUaGlyZFBhcnR5RGF0YT4g
Z2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKICAgICBjb25zdCBI
YXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
PiYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwOyB9CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6S2V5ZWRFbmNvZGVyPiBjcmVhdGVFbmNvZGVyRnJv
bURhdGEoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApp
bmRleCA2NGJlZTViODRlZTVlMWNkMzcwMmNkNmY2NmVhOTMwYzg5Mzk4N2I2Li5hMmM0NGM3MTQ5
ZTdkZGJiYjc5YWQxNGU5NDA4NDhjOTE4NDUzMGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC05OCw2ICs5OCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgdm9pZCBjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKICAgICB2aXJ0
dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFZlY3RvcjxUaGlyZFBh
cnR5RGF0YT4gZ2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UoKSBjb25zdCA9IDA7CiAKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQ29va2llQmxvY2tpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKSA9IDA7CiAgICAgdm9pZCB1cGRhdGVDb29raWVCbG9ja2luZ0ZvckRvbWFpbnMoY29uc3Qg
UmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0Nvb2tpZXNGb3ImLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcAppbmRleCA4OGE0N2Y2YWNmMzQzYjZmZWNjNWViYWFiZGZlOWYwODk4YzI2OTViLi4xMDI4
ZTE4MjA0MzIyMmRkZGI5ZWViZDRmMzg1NGNiNWQwZTE1ZDA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMTEzMSw2ICsxMTMxLDExIEBA
IHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpub3RpZnlQYWdlU3RhdGlzdGlj
c1RlbGVtZXRyeUZpbmlzaGVkKHVuc2lnCiAgICAgICAgIGNvbnN0X2Nhc3Q8V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlKj4odGhpcyktPm5ldHdvcmtTZXNzaW9uKCktPm5vdGlmeVBhZ2VT
dGF0aXN0aWNzVGVsZW1ldHJ5RmluaXNoZWQobnVtYmVyT2ZQcmV2YWxlbnRSZXNvdXJjZXMsIG51
bWJlck9mUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgbnVtYmVyT2ZQcmV2
YWxlbnRSZXNvdXJjZXNXaXRob3V0VXNlckludGVyYWN0aW9uLCB0b3BQcmV2YWxlbnRSZXNvdXJj
ZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VVc2VySW50ZXJhY3Rpb24sIG1lZGlhbkRheXNT
aW5jZVVzZXJJbnRlcmFjdGlvblByZXZhbGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbiwg
dG9wM051bWJlck9mUHJldmFsZW50UmVzb3VyY2VzV2l0aFVJLCB0b3AzTWVkaWFuU3ViRnJhbWVX
aXRob3V0VUksIHRvcDNNZWRpYW5TdWJSZXNvdXJjZVdpdGhvdXRVSSwgdG9wM01lZGlhblVuaXF1
ZVJlZGlyZWN0c1dpdGhvdXRVSSwgdG9wM01lZGlhbkRhdGFSZWNvcmRzUmVtb3ZlZFdpdGhvdXRV
SSk7CiB9CiAKK1ZlY3RvcjxUaGlyZFBhcnR5RGF0YT4gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpnYXRoZXJEYXRhRm9yVXNlckludGVyZmFjZSgpCit7CisgICAgcmV0dXJuIG1fc3Rh
dGlzdGljc1N0b3JlLT5nYXRoZXJEYXRhRm9yVXNlckludGVyZmFjZSgpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmgKaW5kZXggY2IzMzFlMThmYzU0NjUzMGJmMGIzOWJlNjBjNTA1MTU4MTEy
Zjk2YS4uYThjZTdmMmE1YTdhYWIwOGQ4ZjZmOWMyZTZhMjVlYWRiNzdiZWJmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtNzYsNiArNzYsNDYg
QEAgc3RydWN0IFJlZ2lzdHJhYmxlRG9tYWluc1RvQmxvY2tDb29raWVzRm9yIHsKICAgICBSZWdp
c3RyYWJsZURvbWFpbnNUb0Jsb2NrQ29va2llc0ZvciBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJl
dHVybiB7IGRvbWFpbnNUb0Jsb2NrQW5kRGVsZXRlQ29va2llc0Zvci5pc29sYXRlZENvcHkoKSwg
ZG9tYWluc1RvQmxvY2tCdXRLZWVwQ29va2llc0Zvci5pc29sYXRlZENvcHkoKSwgZG9tYWluc1dp
dGhVc2VySW50ZXJhY3Rpb25Bc0ZpcnN0UGFydHkuaXNvbGF0ZWRDb3B5KCkgfTsgfQogfTsKIAor
c3RydWN0IEZpcnN0UGFydHlEYXRhIHsKKyAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBk
b21haW47CisgICAgYm9vbCBzdG9yYWdlQWNjZXNzR3JhbnRlZDsKKworICAgIFN0cmluZyB0b1N0
cmluZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhkb21haW4uc3Ry
aW5nKCksICIsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6ICIsIHN0b3JhZ2VBY2Nlc3NHcmFudGVk
KTsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oRmlyc3RQYXJ0eURhdGEgY29uc3Qgb3Ro
ZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZG9tYWluID09IG90aGVyLmRvbWFpbiAm
JiBzdG9yYWdlQWNjZXNzR3JhbnRlZCA9PSBvdGhlci5zdG9yYWdlQWNjZXNzR3JhbnRlZDsKKyAg
ICB9Cit9OworCitzdHJ1Y3QgVGhpcmRQYXJ0eURhdGEgeworICAgIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIGRvbWFpbjsKKyAgICBWZWN0b3I8Rmlyc3RQYXJ0eURhdGE+IGFzc29jaWF0ZWRG
aXJzdFBhcnRpZXM7CisKKyAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOworICAgICAgICBzdHJpbmdCdWlsZGVyLmFw
cGVuZCgiUmVnaXN0cmFibGUgRG9tYWluOiAiLCBkb21haW4uc3RyaW5nKCksICJcbiIpOworICAg
ICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICB7Iik7CisKKyAgICAgICAgZm9y
IChhdXRvIGZpcnN0UGFydHkgOiBhc3NvY2lhdGVkRmlyc3RQYXJ0aWVzKSB7CisgICAgICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoInsgIik7CisgICAgICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZChmaXJzdFBhcnR5LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgfSwiKTsKKyAgICAgICAgfQorICAgICAgICBzdHJpbmdC
dWlsZGVyLmFwcGVuZExpdGVyYWwoIn0iKTsKKyAgICAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPChjb25zdCBUaGlyZFBhcnR5
RGF0YSAmb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gYXNzb2NpYXRlZEZpcnN0
UGFydGllcy5zaXplKCkgPCBvdGhlci5hc3NvY2lhdGVkRmlyc3RQYXJ0aWVzLnNpemUoKTsKKyAg
ICB9Cit9OworCiBjbGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgZmluYWwgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPiB7CiBwdWJsaWM6CiAgICAgdXNpbmcgUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M7CkBA
IC0xOTIsNiArMjMyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJik7CiAg
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKERvbWFpbkluTmVlZE9mU3Rv
cmFnZUFjY2VzcyYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBvcGVuZXJJRCwgT3BlbmVyRG9t
YWluJiYpOworICAgIFZlY3RvcjxUaGlyZFBhcnR5RGF0YT4gZ2F0aGVyRGF0YUZvclVzZXJJbnRl
cmZhY2UoKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUoTmV0d29ya1Nlc3Npb24mLCBjb25zdCBTdHJpbmcmLCBTaG91bGRJbmNsdWRlTG9j
YWxob3N0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAwM2Q3MWE0ZTlhMDIwOGFjZTAzYzBmN2FkNDU5NTAxYWI1MzFjZDUy
Li5iZDVlNTZlYzY3ODcyOGE3YjFkNmFiY2JhZjRhMTcyMjgxNTJmMjZmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzEgQEAKKzIwMTktMTItMDIgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBs
ZS5jb20+CisKKyAgICAgICAgRXhwb3NlIGJhc2ljIElUUCBkYXRhIGZyb20gdGhlIGRhdGFiYXNl
IGZvciBmdXR1cmUgQVBJL1NQSSB1c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMzQzMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTYwODUwNDA+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
bmV3IHRlc3RzIHRvIGNoZWNrIGlmIHRoZSB1c2VyIGludGVyZmFjZSBkYXRhIGlzIHByb3Blcmx5
CisgICAgICAgIGNvbGxlY3RlZCBhbmQgc29ydGVkIGZvciBib3RoIHRoZSBkYXRhYmFzZSBzdG9y
ZSBhbmQgdGhlIG1lbW9yeSBzdG9yZS4KKyAgICAgICAgQWxzbyBlZGl0ZWQgYW55IHRlc3RzIHdo
aWNoIHVzZSBkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpIHRvIGFsc28KKyAgICAgICAgZXhw
ZWN0IHRoZSBVSSBkYXRhIHRvIGJlIGRpc3BsYXllZC4KKworICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQtaW1wb3J0LWlu
LXdvcmtlci1kYXRhYmFzZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5LXNjcmlwdC1pbXBvcnQtaW4td29y
a2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWxvYWRzLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhp
cmQtcGFydHktc2NyaXB0LWxvYWRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG9udC1jb3VudC10aGlyZC1wYXJ0eS1pbWFnZS1hcy10
aGlyZC1wYXJ0eS1zY3JpcHQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb250LWNvdW50LXRoaXJkLXBhcnR5LWltYWdl
LWFzLXRoaXJkLXBhcnR5LXNjcmlwdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1h
Y2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmZhY2UtZGF0YS1uby1zdG9yYWdlLWFj
Y2Vzcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmZhY2UtZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdp
dGgtc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3Jh
Z2UtYWNjZXNzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1p
bnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWw6IEFkZGVkLgorCiAyMDE5LTEx
LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgWyBpT1MgUmVs
ZWFzZSBdOiBMYXlvdXQgVGVzdCBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21j
YWNoZS1wZW5kaW5nLXByb21pc2UuaHRtbCBpcyBhIEZsYWt5IFRpbWVvdXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGly
ZC1wYXJ0eS1zY3JpcHQtaW1wb3J0LWluLXdvcmtlci1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQt
cGFydHktc2NyaXB0LWltcG9ydC1pbi13b3JrZXItZGF0YWJhc2UtZXhwZWN0ZWQudHh0CmluZGV4
IDM2OWMxZTRmMDc3ZWM4MjI0ODE2OGRjYjgwYzRiNzQ3ZTZmYzQwMzcuLjM2ZTk3NjNkZGU3ZDI1
NjgxYzAwY2YzYmVjM2NjNjVhNWQ5NTY0NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQtaW1w
b3J0LWluLXdvcmtlci1kYXRhYmFzZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5LXNjcmlwdC1p
bXBvcnQtaW4td29ya2VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMjQsMyArMjQsNyBAQCBS
ZWdpc3RyYWJsZSBkb21haW46IGxvY2FsaG9zdAogICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5v
CiAgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgZGF0YVJlY29yZHNSZW1vdmVk
OiAwCisKK0lUUCBVc2VyIEludGVyZmFjZSBEYXRhOgorUmVnaXN0cmFibGUgRG9tYWluOiBsb2Nh
bGhvc3QKKyAgICB7eyAxMjcuMC4wLjEsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y291bnQtdGhpcmQtcGFydHktc2NyaXB0LWltcG9ydC1pbi13b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJk
LXBhcnR5LXNjcmlwdC1pbXBvcnQtaW4td29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAxMjExYWYw
ZDI4MjAwZjBhMTNkM2NhZTc3MDRlZGY2NTUzZmY1MTZkLi5mODIzNTJhNmNmNDhlOGJhZDAxMjdi
NTc4ODNiOGRmNGNlNWYyOTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWltcG9ydC1pbi13
b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQtaW1wb3J0LWluLXdvcmtlci1l
eHBlY3RlZC50eHQKQEAgLTI0LDMgKzI0LDcgQEAgUmVnaXN0cmFibGUgZG9tYWluOiAxMjcuMC4w
LjEKICAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObwogICAgIGlzVmVyeVByZXZhbGVudFJlc291
cmNlOiBObwogICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorCitJVFAgVXNlciBJbnRlcmZhY2Ug
RGF0YToKK1JlZ2lzdHJhYmxlIERvbWFpbjogbG9jYWxob3N0CisgICAge3sgMTI3LjAuMC4xLCBT
dG9yYWdlIEFjY2VzcyBncmFudGVkOiAwIH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5LXNjcmlwdC1s
b2Fkcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWxvYWRzLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dAppbmRleCAzNjljMWU0ZjA3N2VjODIyNDgxNjhkY2I4MGM0Yjc0N2U2ZmM0
MDM3Li4zNmU5NzYzZGRlN2QyNTY4MWMwMGNmM2JlYzNjYzY1YTVkOTU2NDYwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhp
cmQtcGFydHktc2NyaXB0LWxvYWRzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHkt
c2NyaXB0LWxvYWRzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMjQsMyArMjQsNyBAQCBSZWdp
c3RyYWJsZSBkb21haW46IGxvY2FsaG9zdAogICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCiAg
ICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAw
CisKK0lUUCBVc2VyIEludGVyZmFjZSBEYXRhOgorUmVnaXN0cmFibGUgRG9tYWluOiBsb2NhbGhv
c3QKKyAgICB7eyAxMjcuMC4wLjEsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291
bnQtdGhpcmQtcGFydHktc2NyaXB0LWxvYWRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQt
bG9hZHMtZXhwZWN0ZWQudHh0CmluZGV4IDEyMTFhZjBkMjgyMDBmMGExM2QzY2FlNzcwNGVkZjY1
NTNmZjUxNmQuLmY4MjM1MmE2Y2Y0OGU4YmFkMDEyN2I1Nzg4M2I4ZGY0Y2U1ZjI5MzkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3Vu
dC10aGlyZC1wYXJ0eS1zY3JpcHQtbG9hZHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3Jp
cHQtbG9hZHMtZXhwZWN0ZWQudHh0CkBAIC0yNCwzICsyNCw3IEBAIFJlZ2lzdHJhYmxlIGRvbWFp
bjogMTI3LjAuMC4xCiAgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KICAgICBpc1ZlcnlQcmV2
YWxlbnRSZXNvdXJjZTogTm8KICAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKKworSVRQIFVzZXIg
SW50ZXJmYWNlIERhdGE6CitSZWdpc3RyYWJsZSBEb21haW46IGxvY2FsaG9zdAorICAgIHt7IDEy
Ny4wLjAuMSwgU3RvcmFnZSBBY2Nlc3MgZ3JhbnRlZDogMCB9LH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb250LWNvdW50LXRoaXJk
LXBhcnR5LWltYWdlLWFzLXRoaXJkLXBhcnR5LXNjcmlwdC1kYXRhYmFzZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG9udC1jb3Vu
dC10aGlyZC1wYXJ0eS1pbWFnZS1hcy10aGlyZC1wYXJ0eS1zY3JpcHQtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CmluZGV4IDAyNWMyM2Y5MjJmNGQ0ZTdlMGYyNWJhZTc0NWJkZGI0NWNjZmRiMWMuLjQ4
MWU3MzZiNzcyNmZkMWY1MDBjM2Y2YjBlZmQzYjRmZWFmM2RmMTMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb250LWNvdW50LXRoaXJk
LXBhcnR5LWltYWdlLWFzLXRoaXJkLXBhcnR5LXNjcmlwdC1kYXRhYmFzZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvbnQt
Y291bnQtdGhpcmQtcGFydHktaW1hZ2UtYXMtdGhpcmQtcGFydHktc2NyaXB0LWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApAQCAtMjIsMyArMjIsNyBAQCBSZWdpc3RyYWJsZSBkb21haW46IGxvY2FsaG9z
dAogICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgaXNWZXJ5UHJldmFsZW50UmVzb3Vy
Y2U6IE5vCiAgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCisKK0lUUCBVc2VyIEludGVyZmFjZSBE
YXRhOgorUmVnaXN0cmFibGUgRG9tYWluOiBsb2NhbGhvc3QKKyAgICB7eyAxMjcuMC4wLjEsIFN0
b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG9udC1jb3VudC10aGlyZC1wYXJ0eS1pbWFn
ZS1hcy10aGlyZC1wYXJ0eS1zY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvbnQtY291bnQtdGhpcmQtcGFydHktaW1hZ2Ut
YXMtdGhpcmQtcGFydHktc2NyaXB0LWV4cGVjdGVkLnR4dAppbmRleCA0ZWNiOTczNmUxMDYwOTIz
NWIwMTEzOTNhYWUxMTYyZDIyNDgyOTVlLi4xNGQzZTE1YjE5M2I1NjUyN2YzOGRjNjZmYzlmYWZh
YmI3MjRkZGQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZG9udC1jb3VudC10aGlyZC1wYXJ0eS1pbWFnZS1hcy10aGlyZC1wYXJ0eS1z
Y3JpcHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kb250LWNvdW50LXRoaXJkLXBhcnR5LWltYWdlLWFzLXRoaXJkLXBhcnR5
LXNjcmlwdC1leHBlY3RlZC50eHQKQEAgLTE0LDMgKzE0LDcgQEAgUmVnaXN0cmFibGUgZG9tYWlu
OiBsb2NhbGhvc3QKICAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObwogICAgIGlzVmVyeVByZXZh
bGVudFJlc291cmNlOiBObwogICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorCitJVFAgVXNlciBJ
bnRlcmZhY2UgRGF0YToKK1JlZ2lzdHJhYmxlIERvbWFpbjogbG9jYWxob3N0CisgICAge3sgMTI3
LjAuMC4xLCBTdG9yYWdlIEFjY2VzcyBncmFudGVkOiAwIH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJmYWNlLWRh
dGEtbm8tc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEtbm8t
c3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiZmVlYTEy
MmFkZjNlYWM3ZjNhZWUxNzg3NGRiNWVmOWQxNzBlYjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmZhY2Ut
ZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4
MyBAQAorQ2hlY2sgY29ycmVjdCBVSSBkYXRhIGdldHMgcmVwb3J0ZWQgd2l0aCBubyBzdG9yYWdl
IGFjY2Vzcy4KKworCisKK1Jlc291cmNlIGxvYWQgc3RhdGlzdGljczoKKworUmVnaXN0cmFibGUg
ZG9tYWluOiBzdWJmcmFtZTEKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJl
Y2VudFVzZXJJbnRlcmFjdGlvbjogLTEKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIElzU2No
ZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWw6IE5vCisgICAgU3ViZnJhbWVVbmRlclRv
cEZyYW1lRG9tYWluczoKKyAgICAgICAgdG9wZnJhbWUxCisgICAgU3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdHNUbzoKKyAgICAgICAgdG9wZnJhbWUyCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTog
Tm8KKyAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92
ZWQ6IDAKK1JlZ2lzdHJhYmxlIGRvbWFpbjogc3ViZnJhbWUyCisgICAgaGFkVXNlckludGVyYWN0
aW9uOiBObworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRmYXRo
ZXJlZDogTm8KKyAgICBJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsOiBObwor
ICAgIFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnM6CisgICAgICAgIHRvcGZyYW1lMQorICAg
IGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5v
CisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IHN1YmZyYW1l
MworICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0
aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRD
b29raWVEYXRhUmVtb3ZhbDogTm8KKyAgICBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zOgor
ICAgICAgICB0b3BmcmFtZTEKKyAgICAgICAgdG9wZnJhbWU0CisgICAgU3VicmVzb3VyY2VVbmRl
clRvcEZyYW1lRG9tYWluczoKKyAgICAgICAgdG9wZnJhbWUzCisgICAgU3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdHNUbzoKKyAgICAgICAgdG9wZnJhbWUyCisgICAgaXNQcmV2YWxlbnRSZXNvdXJj
ZTogTm8KKyAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1Jl
bW92ZWQ6IDAKK1JlZ2lzdHJhYmxlIGRvbWFpbjogdG9wZnJhbWUxCisgICAgaGFkVXNlckludGVy
YWN0aW9uOiBObworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRm
YXRoZXJlZDogTm8KKyAgICBJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsOiBO
bworICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3Vy
Y2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IHRv
cGZyYW1lMgorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgSXNTY2hlZHVsZWRGb3JB
bGxCdXRDb29raWVEYXRhUmVtb3ZhbDogTm8KKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObwor
ICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDog
MAorUmVnaXN0cmFibGUgZG9tYWluOiB0b3BmcmFtZTMKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246
IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEKKyAgICBncmFuZGZhdGhlcmVk
OiBObworICAgIElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWw6IE5vCisgICAg
aXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8K
KyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKK1JlZ2lzdHJhYmxlIGRvbWFpbjogdG9wZnJhbWU0
CisgICAgaGFkVXNlckludGVyYWN0aW9uOiBObworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rp
b246IC0xCisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBJc1NjaGVkdWxlZEZvckFsbEJ1dENv
b2tpZURhdGFSZW1vdmFsOiBObworICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNW
ZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCisKK0lU
UCBVc2VyIEludGVyZmFjZSBEYXRhOgorUmVnaXN0cmFibGUgRG9tYWluOiBzdWJmcmFtZTMKKyAg
ICB7eyB0b3BmcmFtZTEsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx7IHRvcGZyYW1lNCwg
U3RvcmFnZSBBY2Nlc3MgZ3JhbnRlZDogMCB9LHsgdG9wZnJhbWUzLCBTdG9yYWdlIEFjY2VzcyBn
cmFudGVkOiAwIH0seyB0b3BmcmFtZTIsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx9CitS
ZWdpc3RyYWJsZSBEb21haW46IHN1YmZyYW1lMQorICAgIHt7IHRvcGZyYW1lMSwgU3RvcmFnZSBB
Y2Nlc3MgZ3JhbnRlZDogMCB9LHsgdG9wZnJhbWUyLCBTdG9yYWdlIEFjY2VzcyBncmFudGVkOiAw
IH0sfQorUmVnaXN0cmFibGUgRG9tYWluOiBzdWJmcmFtZTIKKyAgICB7eyB0b3BmcmFtZTEsIFN0
b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmZhY2UtZGF0YS1uby1zdG9y
YWdlLWFjY2Vzcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nlc3MtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTFjOWVmMjEyZGM0ZTMxOTI5YjExMmEzN2FlMmU4Mjg0
NTc2MGQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nlc3MtZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVz
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+
Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+Q2hlY2sgY29ycmVjdCBVSSBkYXRhIGdldHMgcmVwb3J0
ZWQgd2l0aCBubyBzdG9yYWdlIGFjY2Vzcy48L2Rpdj4KKzxicj4KKzxkaXYgaWQ9Im91dHB1dCI+
PC9kaXY+Cis8YnI+Cis8c2NyaXB0PgorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOworICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBjb25zdCBz
dWJPcmlnaW4xID0gImh0dHA6Ly9zdWJmcmFtZTE6ODAwMCI7CisgICAgY29uc3Qgc3ViT3JpZ2lu
MiAgPSAiaHR0cDovL3N1YmZyYW1lMjo4MDAwIjsKKyAgICBjb25zdCBzdWJPcmlnaW4zICA9ICJo
dHRwOi8vc3ViZnJhbWUzOjgwMDAiOworCisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0
dHA6Ly90b3BmcmFtZTE6ODAwMCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6
Ly90b3BmcmFtZTI6ODAwMCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly90
b3BmcmFtZTM6ODAwMCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0gImh0dHA6Ly90b3Bm
cmFtZTQ6ODAwMCI7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRy
dWUsIGZ1bmN0aW9uICgpIHsKKworICAgICAgICAgICAgLy8gc3ViT3JpZ2luMSB3aWxsIGJlIGxv
Z2dlZCB1bmRlciAyIHRvcCBmcmFtZXMuIFNob3VsZCBhcHBlYXIgc2Vjb25kCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3Vi
T3JpZ2luMSwgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdWJPcmlnaW4xLCB0b3BGcmFtZU9y
aWdpbjIpOworCisgICAgICAgICAgICAvLyBzdWJPcmlnaW4yIHdpbGwgYmUgbG9nZ2VkIHVuZGVy
IDEgdG9wIGZyYW1lcy4gU2hvdWxkIGFwcGVhciB0aGlyZAorICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN1Yk9yaWdpbjIsIHRv
cEZyYW1lT3JpZ2luMSk7CisKKyAgICAgICAgICAgIC8vIHN1Yk9yaWdpbjMgd2lsbCBiZSBsb2dn
ZWQgdW5kZXIgNCB0b3AgZnJhbWVzLiBTaG91bGQgYXBwZWFyIGZpcnN0CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3ViT3Jp
Z2luMywgdG9wRnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdWJPcmlnaW4zLCB0b3BGcmFtZU9yaWdp
bjIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRl
clRvcEZyYW1lT3JpZ2luKHN1Yk9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3Vi
T3JpZ2luMywgdG9wRnJhbWVPcmlnaW40KTsKKworICAgICAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbiAoKSB7IGZpbmlzaFRlc3QoKSB9LCA1MDApOworICAgICAgICB9KTsKKyAgICB9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2Ut
YWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hYzkyY2U0MTUzY2RmYzgzMGQ2YTdjNjQxZDY4OThhM2JlYzAzMTUz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nlc3MtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsODMgQEAKK0NoZWNrIGNvcnJlY3QgVUkgZGF0YSBnZXRzIHJlcG9ydGVk
IHdpdGggbm8gc3RvcmFnZSBhY2Nlc3MgZ3JhbnRlZC4KKworCisKK1Jlc291cmNlIGxvYWQgc3Rh
dGlzdGljczoKKworUmVnaXN0cmFibGUgZG9tYWluOiB0b3BmcmFtZTIKKyAgICBoYWRVc2VySW50
ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEKKyAgICBncmFu
ZGZhdGhlcmVkOiBObworICAgIGdvdExpbmtEZWNvcmF0aW9uRnJvbVByZXZhbGVudFJlc291cmNl
OiBObworICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVz
b3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46
IHRvcGZyYW1lMworICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNl
ckludGVyYWN0aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgZ290TGlua0RlY29y
YXRpb25Gcm9tUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTog
Tm8KKyAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92
ZWQ6IDAKK1JlZ2lzdHJhYmxlIGRvbWFpbjogdG9wZnJhbWUxCisgICAgaGFkVXNlckludGVyYWN0
aW9uOiBObworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRmYXRo
ZXJlZDogTm8KKyAgICBnb3RMaW5rRGVjb3JhdGlvbkZyb21QcmV2YWxlbnRSZXNvdXJjZTogTm8K
KyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNl
OiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiB0b3Bm
cmFtZTQKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvbjogLTEKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIGdvdExpbmtEZWNvcmF0aW9u
RnJvbVByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisg
ICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAw
CitSZWdpc3RyYWJsZSBkb21haW46IHN1YmZyYW1lMQorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjog
Tm8KKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6
IE5vCisgICAgZ290TGlua0RlY29yYXRpb25Gcm9tUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAg
c3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluczoKKyAgICAgICAgdG9wZnJhbWUxCisgICAgc3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbzoKKyAgICAgICAgdG9wZnJhbWUyCisgICAgaXNQcmV2
YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBk
YXRhUmVjb3Jkc1JlbW92ZWQ6IDAKK1JlZ2lzdHJhYmxlIGRvbWFpbjogc3ViZnJhbWUyCisgICAg
aGFkVXNlckludGVyYWN0aW9uOiBObworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0x
CisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBnb3RMaW5rRGVjb3JhdGlvbkZyb21QcmV2YWxl
bnRSZXNvdXJjZTogTm8KKyAgICBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAg
ICB0b3BmcmFtZTEKKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZh
bGVudFJlc291cmNlOiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUg
ZG9tYWluOiBzdWJmcmFtZTMKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJl
Y2VudFVzZXJJbnRlcmFjdGlvbjogLTEKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIGdvdExp
bmtEZWNvcmF0aW9uRnJvbVByZXZhbGVudFJlc291cmNlOiBObworICAgIHN1YmZyYW1lVW5kZXJU
b3BGcmFtZURvbWFpbnM6CisgICAgICAgIHRvcGZyYW1lMQorICAgICAgICB0b3BmcmFtZTQKKyAg
ICBzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAgICB0b3BmcmFtZTMKKyAg
ICBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvOgorICAgICAgICB0b3BmcmFtZTIKKyAgICBp
c1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObwor
ICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorCitJVFAgVXNlciBJbnRlcmZhY2UgRGF0YToKK1Jl
Z2lzdHJhYmxlIERvbWFpbjogc3ViZnJhbWUzCisgICAge3sgdG9wZnJhbWUxLCBTdG9yYWdlIEFj
Y2VzcyBncmFudGVkOiAwIH0seyB0b3BmcmFtZTQsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAg
fSx7IHRvcGZyYW1lMywgU3RvcmFnZSBBY2Nlc3MgZ3JhbnRlZDogMCB9LHsgdG9wZnJhbWUyLCBT
dG9yYWdlIEFjY2VzcyBncmFudGVkOiAwIH0sfQorUmVnaXN0cmFibGUgRG9tYWluOiBzdWJmcmFt
ZTEKKyAgICB7eyB0b3BmcmFtZTEsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx7IHRvcGZy
YW1lMiwgU3RvcmFnZSBBY2Nlc3MgZ3JhbnRlZDogMCB9LH0KK1JlZ2lzdHJhYmxlIERvbWFpbjog
c3ViZnJhbWUyCisgICAge3sgdG9wZnJhbWUxLCBTdG9yYWdlIEFjY2VzcyBncmFudGVkOiAwIH0s
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nlc3MuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1kYXRh
LW5vLXN0b3JhZ2UtYWNjZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ5NjFlYjNlNmNkYTI4YmJhYWZi
YTFiNGY1ODA2ZjgwOTc3MzVkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3Jh
Z2UtYWNjZXNzLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxp
dGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywg
MCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPkNoZWNrIGNvcnJlY3QgVUkgZGF0YSBnZXRzIHJl
cG9ydGVkIHdpdGggbm8gc3RvcmFnZSBhY2Nlc3MgZ3JhbnRlZC48L2Rpdj4KKzxicj4KKzxkaXYg
aWQ9Im91dHB1dCI+PC9kaXY+Cis8YnI+Cis8c2NyaXB0PgorICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24g
ZmluaXNoVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBjb25zdCBzdWJPcmlnaW4xID0gImh0dHA6Ly9zdWJmcmFtZTE6ODAwMCI7CisgICAgY29u
c3Qgc3ViT3JpZ2luMiAgPSAiaHR0cDovL3N1YmZyYW1lMjo4MDAwIjsKKyAgICBjb25zdCBzdWJP
cmlnaW4zICA9ICJodHRwOi8vc3ViZnJhbWUzOjgwMDAiOworICAgIAorICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luMSA9ICJodHRwOi8vdG9wZnJhbWUxOjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luMiA9ICJodHRwOi8vdG9wZnJhbWUyOjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3Jp
Z2luMyA9ICJodHRwOi8vdG9wZnJhbWUzOjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2lu
NCA9ICJodHRwOi8vdG9wZnJhbWU0OjgwMDAiOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisKKyAgICAgICAg
ICAgIC8vIHN1Yk9yaWdpbjEgd2lsbCBiZSBsb2dnZWQgdW5kZXIgMiB0b3AgZnJhbWVzLiBTaG91
bGQgYXBwZWFyIHNlY29uZAorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
ZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN1Yk9yaWdpbjEsIHRvcEZyYW1lT3JpZ2luMSk7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0VG8oc3ViT3JpZ2luMSwgdG9wRnJhbWVPcmlnaW4yKTsKKworICAgICAgICAgICAgLy8gc3Vi
T3JpZ2luMiB3aWxsIGJlIGxvZ2dlZCB1bmRlciAxIHRvcCBmcmFtZXMuIFNob3VsZCBhcHBlYXIg
dGhpcmQKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJU
b3BGcmFtZU9yaWdpbihzdWJPcmlnaW4yLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAg
ICAvLyBzdWJPcmlnaW4zIHdpbGwgYmUgbG9nZ2VkIHVuZGVyIDQgdG9wIGZyYW1lcy4gU2hvdWxk
IGFwcGVhciBmaXJzdAorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJh
bWVVbmRlclRvcEZyYW1lT3JpZ2luKHN1Yk9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
VG8oc3ViT3JpZ2luMywgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdWJPcmlnaW4zLCB0
b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3Vi
ZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN1Yk9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luNCk7CisK
KyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBmaW5pc2hUZXN0KCkgfSwgNTAw
KTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZh
Y2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgt
c3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4MGZkYjg4
NTcxYzkwNjI2MTY2ZmZkYzA1N2ZiNDczNzc2MGVlNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRo
LXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACitD
aGVjayBjb3JyZWN0IFVJIGRhdGEgZ2V0cyByZXBvcnRlZCB3aXRoIHN0b3JhZ2UgYWNjZXNzIGdy
YW50ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFN0b3JhZ2UgYWNj
ZXNzIHdhcyBncmFudGVkLiBkb2N1bWVudC5jb29raWUgPT0gZmlyc3RQYXJ0eUNvb2tpZT12YWx1
ZSwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09IHsiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVl
In0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCitS
ZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3M6CisKK1JlZ2lzdHJhYmxlIGRvbWFpbjogMTI3LjAuMC4x
CisgICAgaGFkVXNlckludGVyYWN0aW9uOiBZZXMKKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0
aW9uOiAxLjU3NTMxZSs5CisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBJc1NjaGVkdWxlZEZv
ckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsOiBObworICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5v
CisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVk
OiAwCitSZWdpc3RyYWJsZSBkb21haW46IGxvY2FsaG9zdAorICAgIGhhZFVzZXJJbnRlcmFjdGlv
bjogWWVzCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogMS41NzUzMWUrOQorICAgIGdy
YW5kZmF0aGVyZWQ6IE5vCisgICAgU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zOgor
ICAgICAgICAxMjcuMC4wLjEKKyAgICBJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1v
dmFsOiBObworICAgIFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnM6CisgICAgICAgIDEyNy4w
LjAuMQorICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVz
b3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCisKK0lUUCBVc2VyIEludGVyZmFj
ZSBEYXRhOgorUmVnaXN0cmFibGUgRG9tYWluOiBsb2NhbGhvc3QKKyAgICB7eyAxMjcuMC4wLjEs
IFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDEgfSx9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2Ut
YWNjZXNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDczNWJkN2Q2ZDQxNmExMDJmNjM2MWEyMDdjNGJjNTA3NmZhMDA4MgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy91c2Vy
LWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDg2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiQ2hlY2sgY29ycmVjdCBV
SSBkYXRhIGdldHMgcmVwb3J0ZWQgd2l0aCBzdG9yYWdlIGFjY2VzcyBncmFudGVkLiIpOworICAg
ICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKworICAgICAgICBjb25zdCBmaXJzdFBhcnR5VXJsID0gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCI7CisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlVcmwgPSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIjsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkg
eworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTICIpICE9
PSAtMSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzKCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5y
ZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBh
IG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlD
b29raWVzKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKwor
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdl
LCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJZCkg
eworICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVt
ZW50SWQpOworICAgICAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBl
bGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVu
dC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgICAgICBVSUhl
bHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICAgICAg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVy
KQorICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZXNjYXBlIik7
CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiTm8gZXZlbnRTZW5kZXIuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKGZhbHNlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWpl
Y3RlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hv
dWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOwor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5oYXNoICE9PSAiI2Nvb2tpZVNldCIpIHsKKyAgICAgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eVVybCArICIvc3RvcmFnZUFj
Y2Vzcy9yZXNvdXJjZXMvc2V0LWNvb2tpZS5waHA/bmFtZT1maXJzdFBhcnR5Q29va2llJnZhbHVl
PXZhbHVlIyIgKyBmaXJzdFBhcnR5VXJsICsgIi9zdG9yYWdlQWNjZXNzL3VzZXItaW50ZXJmYWNl
LWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS5odG1sI2Nvb2tpZVNldCI7CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXModHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlVcmwpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiVGhpcmQtcGFydHkgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKGZpcnN0UGFydHlVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihmaXJzdFBhcnR5VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJGaXJzdC1wYXJ0eSBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rp
b24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eVVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5VXJsKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQtcGFydHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZv
ciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBp
ZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJUaGVJZnJh
bWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRo
ZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdl
QWNjZXNzL3Jlc291cmNlcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sI3VzZXJT
aG91bGRHcmFudEFjY2Vzcyx1c2VyU2hvdWxkQmVDb25zdWx0ZWQscG9saWN5U2hvdWxkR3JhbnRB
Y2Nlc3MsaXNOb3RTYW1lT3JpZ2luSWZyYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13
aXRoLXN0b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMTNiYjA2Yjg3ODkyYThjM2RjMzM5ZWE4NThjNjQzY2I5
NjJmMTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDM2IEBACitDaGVjayBjb3JyZWN0IFVJIGRhdGEgZ2V0cyByZXBvcnRlZCB3
aXRoIHN0b3JhZ2UgYWNjZXNzIGdyYW50ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVkLiBkb2N1bWVudC5jb29raWUgPT0g
Zmlyc3RQYXJ0eUNvb2tpZT12YWx1ZSwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09IHsiZmly
c3RQYXJ0eUNvb2tpZSI6InZhbHVlIn0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCitSZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3M6CisKK1JlZ2lzdHJh
YmxlIGRvbWFpbjogbG9jYWxob3N0CisgICAgaGFkVXNlckludGVyYWN0aW9uOiBZZXMKKyAgICBt
b3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAxLjU3NTMxZSs5CisgICAgZ3JhbmRmYXRoZXJlZDog
Tm8KKyAgICBzdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnM6CisgICAgICAgIDEyNy4w
LjAuMQorICAgIGdvdExpbmtEZWNvcmF0aW9uRnJvbVByZXZhbGVudFJlc291cmNlOiBObworICAg
IHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnM6CisgICAgICAgIDEyNy4wLjAuMQorICAgIGlz
UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisg
ICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IDEyNy4wLjAuMQor
ICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogWWVzCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
bjogMS41NzUzMWUrOQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgZ290TGlua0RlY29yYXRp
b25Gcm9tUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8K
KyAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6
IDAKKworSVRQIFVzZXIgSW50ZXJmYWNlIERhdGE6CitSZWdpc3RyYWJsZSBEb21haW46IGxvY2Fs
aG9zdAorICAgIHt7IDEyNy4wLjAuMSwgU3RvcmFnZSBBY2Nlc3MgZ3JhbnRlZDogMSB9LH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy91c2VyLWludGVy
ZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc3RvcmFnZUFjY2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3Mu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44OGYyMDViZDc1MDM3OTg2OTcyODFiNTZlODAxYWFkZWZmOWVkMjU4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sCkBAIC0wLDAgKzEs
ODUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJDaGVjayBjb3JyZWN0IFVJIGRh
dGEgZ2V0cyByZXBvcnRlZCB3aXRoIHN0b3JhZ2UgYWNjZXNzIGdyYW50ZWQuIik7CisgICAgICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGNvbnN0IGZpcnN0UGFydHlVcmwgPSAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICAgICAgY29uc3QgdGhpcmRQYXJ0eVVybCA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdl
KGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBB
U1MgIikgIT09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFJlc291
cmNlTG9hZFN0YXRpc3RpY3MoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVu
dC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwg
IiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJl
Y2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3Jp
Z2luKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhp
cmRQYXJ0eUNvb2tpZXMoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2
ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxl
bWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0
TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRlclkg
PSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAg
ICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAg
ICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJl
c2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMo
ZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQcm9t
aXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAg
ICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggIT09ICIjY29va2llU2V0IikgeworICAg
ICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5VXJsICsgIi9z
dG9yYWdlQWNjZXNzL3Jlc291cmNlcy9zZXQtY29va2llLnBocD9uYW1lPWZpcnN0UGFydHlDb29r
aWUmdmFsdWU9dmFsdWUjIiArIGZpcnN0UGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvdXNlci1p
bnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwjY29va2llU2V0IjsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyh0cnVlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eVVybCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJUaGlyZC1wYXJ0eSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24oZmlyc3RQYXJ0eVVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKGZpcnN0UGFydHlVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkZpcnN0LXBhcnR5IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlv
bi4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlVcmwpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJUaGlyZC1wYXJ0eSBkaWQgbm90IGdldCBsb2dnZWQgZm9y
IHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlm
cmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoIlRoZUlmcmFt
ZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhl
SWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VB
Y2Nlc3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNo
b3VsZEdyYW50QWNjZXNzLHVzZXJTaG91bGRCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGRHcmFudEFj
Y2Vzcyxpc05vdFNhbWVPcmlnaW5JZnJhbWUiOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384643</attachid>
            <date>2019-12-02 11:41:19 -0800</date>
            <delta_ts>2019-12-02 12:34:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203432-20191202114118.patch</filename>
            <type>text/plain</type>
            <size>61894</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ0NTQ0ZGM3NjY5ZDdhNWFk
NGU4MTU0MGI4ZGFiYWU1NzRkMjI4ODguLjlhMDQ0YjU1OWRhYTAwZDBjZmNiZDQ3ZjdhZDM2ZDdl
MTQxYTY3NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMTktMTItMDIgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIGJhc2lj
IElUUCBkYXRhIGZyb20gdGhlIGRhdGFiYXNlIGZvciBmdXR1cmUgQVBJL1NQSSB1c2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQzMgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTYwODUwNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nl
c3MtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sCisKKyAgICAgICAg
QWRkcyBhYmlsaXR5IHRvIGNvbGxlY3Qgc29ydGVkIElUUCBkYXRhIGZvciBkaXNwbGF5aW5nIGlu
IGEKKyAgICAgICAgdXNlciBpbnRlcmZhY2UuIEFkZGl0aW9uYWwgcmVnaXN0cmFibGUgZG9tYWlu
IGRhdGEgY2FuIGJlIGFkZGVkIGJhc2VkCisgICAgICAgIG9uIGZ1dHVyZSBkZXNpZ24gY2hhbmdl
cy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6cHJlcGFyZVN0YXRlbWVudHMpOgorICAgICAgICBBZGRlZCBuZXcgcXVlcmllcyB0byB0aGUg
ZGF0YWJhc2Ugc3RvcmUgdG8gY2hlY2sgZm9yIHN0b3JhZ2UgYWNjZXNzIGluCisgICAgICAgIHRo
ZSBkYXRhYmFzZSBhbmQgYWdncmVnYXRlIHRvcEZyYW1lcyB3aXRoIHRoZSBzYW1lCisgICAgICAg
IHN1YmZyYW1lL3N1YnJlc291cmNlIHNvIGVhc2lseSBjcmVhdGUgdGhlIHN0cnVjdCBmb3IgY29s
bGVjdGluZyBkYXRhCisgICAgICAgIGZvciB0aGUgVUkuCisKKyAgICAgICAgKFdlYktpdDo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbGF0aW9uc2hpcEV4aXN0cyBjb25z
dCk6CisgICAgICAgIEZpeGVkIGFuIGluY29ycmVjdCBmdW5jdGlvbiBuYW1lIGluIHRoZSBlcnJv
ciBtZXNzYWdlLgorCisgICAgICAgIChXZWJLaXQ6OmpvaW5TdWJTdGF0aXN0aWNzRm9yU29ydGlu
Zyk6CisgICAgICAgIChXZWJLaXQ6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQpOgorICAgICAgICBS
ZW5hbWVkIHVuY2xlYXIgU1FMIHZhcmlhYmxlIG5hbWVzIGFuZCBhZGRlZCBhIGJpbmQgcGFyYW1l
dGVyIHRvCisgICAgICAgIHNwZWNpZnkgd2hldGhlciByZXNvdXJjZSBpcyBwcmV2YWxlbnQgb3Ig
bm90LCB3aGljaCBhbGxvd3MKKyAgICAgICAgam9pblN1YlN0YXRpc3RpY3NGb3JTb3J0aW5nKCkg
dG8gYmUgdXNlZCB0byBjb2xsZWN0IHNvcnRlZCBJVFAgZGF0YQorICAgICAgICBmb3IgdGhlIFVJ
LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpnZXRGaXJzdFBhcnR5RGF0YUZvckRvbWFpbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnYXRoZXJEYXRhRm9yVXNlckludGVy
ZmFjZSBjb25zdCk6CisKKyAgICAgICAgKFdlYktpdDo6YnVpbGRRdWVyeVN0YXJ0QW5kRW5kKToK
KyAgICAgICAgKFdlYktpdDo6Z2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlcklu
dGVyYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmdldFRvcFByZXZlbGVudFJlc291cmNlRGF5c1NpbmNlVUkgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlV2l0aG91dFVzZXJJbnRl
cmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OmdldE51bWJlck9mUHJldmFsZW50UmVzb3VyY2Vz
SW5Ub3BSZXNvdXJjZXMpOgorICAgICAgICBDaGFuZ2VkIHNxbCBxdWVyeSB2YXJpYWJsZSBuYW1l
cyB0byBtYWtlIHRoZW0gbW9yZSBjbGVhciBhbmQgYWRkZWQgYQorICAgICAgICBuZXcgYmluZCBw
YXJhbWV0ZXIgdG8gYWxsb3cgZm9yIG1vcmUgZ2VuZXJhbCB1c2Ugb2Ygc3Vic3RhdGlzdGljCisg
ICAgICAgIHNvcnRpbmcgcXVlcnkuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZHVtcFJlc291cmNl
TG9hZFN0YXRpc3RpY3MgY29uc3QpOgorICAgICAgICBDb21iaW5lZCBVSSBkYXRhIHdpdGggZHVt
cFJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSBkYXRhIHRvIGtlZXAgdGhlIHRlc3RpbmcgYXNwZWN0
CisgICAgICAgIG9mIHRoaXMgcGF0Y2ggc2ltcGxlci4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmVuc3VyZUZpcnN0UGFydHlTdGF0aXN0
aWMpOgorICAgICAgICAoV2ViS2l0OjpnZXRGaXJzdFBhcnR5RGF0YUZvckRvbWFpbik6CisgICAg
ICAgIChXZWJLaXQ6OmlzVGhpcmRQYXJ0eSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmR1
bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmdhdGhlckRhdGFGb3JVc2VySW50ZXJmYWNlKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAg
ICAoV2ViS2l0OjpGaXJzdFBhcnR5RGF0YTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpGaXJzdFBhcnR5RGF0YTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OlRoaXJkUGFydHlEYXRhOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlRoaXJk
UGFydHlEYXRhOjpvcGVyYXRvcjwgY29uc3QpOgorICAgICAgICBUaGUgdG9TdHJpbmcgbWV0aG9k
cyBhbGxvdyB0aGUgc3RydWN0cyB0byBiZSBwcmludGVkIGZvciB0ZXN0aW5nCisgICAgICAgIHB1
cnBvc2VzLiBUaGUgZXF1YWxzIG1ldGhvZHMgYWxsb3cgdGhlIHJldHVybiB2ZWN0b3JzIHRvIHVz
ZQorICAgICAgICBhcHBlbmRJZk5vdENvbnRhaW5zLgorCiAyMDE5LTEyLTAyICBZb3NoaWFraSBK
aXRzdWthd2EgIDx5b3NoaWFraS5qaXRzdWthd2FAc29ueS5jb20+CiAKICAgICAgICAgUmVzcG9u
c2l2ZW5lc3NUaW1lciBtaXN0YWtlbmx5IHJlc3RhcnRzIGltbWVkaWF0ZWx5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCBj
YzIwZGE3ODA3YzQ4OTc2YTgxMTNlMjVhNTBmZGVhOGNmYTY5OWQ5Li4yNzJiNjUzMGZhYWQ3OWVj
OGU3NmYwODQzOWJkZDYxMTk3YTdjMjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTk5LDYgKzk5LDcgQEAgY29uc3Rl
eHByIGF1dG8gdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tRXhpc3RzUXVlcnkgPSAiU0VMRUNU
IEVYSVNUUyAoU0VMRUNUIDEKICAgICAiQU5EIGZyb21Eb21haW5JRCA9IChTRUxFQ1QgZG9tYWlu
SUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7
CiBjb25zdGV4cHIgYXV0byB0b3BGcmFtZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzRXhpc3RzUXVl
cnkgPSAiU0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBUb3BGcmFtZUxvYWRlZFRoaXJkUGFy
dHlTY3JpcHRzIFdIRVJFIHRvcEZyYW1lRG9tYWluSUQgPSA/ICIKICAgICAiQU5EIHN1YnJlc291
cmNlRG9tYWluSUQgPSAoU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJF
IHJlZ2lzdHJhYmxlRG9tYWluID0gPykpIl9zOworY29uc3RleHByIGF1dG8gc3RvcmFnZUFjY2Vz
c0V4aXN0c1F1ZXJ5ID0gIlNFTEVDVCBFWElTVFMgKFNFTEVDVCAxIEZST00gU3RvcmFnZUFjY2Vz
c1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gPyBBTkQgdG9wTGV2ZWxEb21h
aW5JRCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0
cmFibGVEb21haW4gPSA/KSkiX3M7CiAKIC8vIFVQREFURSBRdWVyaWVzCiBjb25zdGV4cHIgYXV0
byBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uUXVlcnkgPSAiVVBEQVRFIE9ic2VydmVkRG9tYWlu
cyBTRVQgaGFkVXNlckludGVyYWN0aW9uID0gPywgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRp
bWUgPSA/ICIKQEAgLTEyMSw2ICsxMjIsOSBAQCBjb25zdGV4cHIgYXV0byBpc0dyYW5kZmF0aGVy
ZWRRdWVyeSA9ICJTRUxFQ1QgZ3JhbmRmYXRoZXJlZCBGUk9NIE9ic2VydmVkRG9tYWlucwogY29u
c3RleHByIGF1dG8gZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25RdWVyeSA9ICJTRUxFQ1QgZG9t
YWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgaGFkVXNlckludGVyYWN0aW9uID0gMSBB
TkQgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgPCA/Il9zOwogY29uc3RleHByIGF1dG8g
Z2V0UmVzb3VyY2VEYXRhQnlEb21haW5OYW1lUXVlcnkgPSAiU0VMRUNUICogRlJPTSBPYnNlcnZl
ZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/IjsKIGNvbnN0ZXhwciBhdXRvIGdl
dEFsbERvbWFpbnNRdWVyeSA9ICJTRUxFQ1QgcmVnaXN0cmFibGVEb21haW4gRlJPTSBPYnNlcnZl
ZERvbWFpbnMiX3M7Citjb25zdGV4cHIgYXV0byBnZXRBbGxTdWJTdGF0aXN0aWNzVW5kZXJEb21h
aW5RdWVyeSA9ICJTRUxFQ1QgdG9wRnJhbWVEb21haW5JRCBGUk9NIFN1YmZyYW1lVW5kZXJUb3BG
cmFtZURvbWFpbnMgV0hFUkUgc3ViRnJhbWVEb21haW5JRCA9ID8iCisgICAgIlVOSU9OIEFMTCBT
RUxFQ1QgdG9wRnJhbWVEb21haW5JRCBGUk9NIFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFp
bnMgV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8iCisgICAgIlVOSU9OIEFMTCBTRUxFQ1Qg
dG9Eb21haW5JRCBGUk9NIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8gV0hFUkUgc3VicmVz
b3VyY2VEb21haW5JRCA9ID8iX3M7CiAKIGNvbnN0IGNoYXIqIHRhYmxlc1tdID0gewogICAgICJP
YnNlcnZlZERvbWFpbnMiLApAQCAtMjYyLDYgKzI2Niw4IEBAIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJS
ZXNvCiAgICAgLCBtX2dldFJlc291cmNlRGF0YUJ5RG9tYWluTmFtZVN0YXRlbWVudChtX2RhdGFi
YXNlLCBnZXRSZXNvdXJjZURhdGFCeURvbWFpbk5hbWVRdWVyeSkKICAgICAsIG1fZ2V0QWxsRG9t
YWluc1N0YXRlbWVudChtX2RhdGFiYXNlLCBnZXRBbGxEb21haW5zUXVlcnkpCiAgICAgLCBtX2Rv
bWFpblN0cmluZ0Zyb21Eb21haW5JRFN0YXRlbWVudChtX2RhdGFiYXNlLCBkb21haW5TdHJpbmdG
cm9tRG9tYWluSURRdWVyeSkKKyAgICAsIG1fZ2V0QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVudCht
X2RhdGFiYXNlLCBnZXRBbGxTdWJTdGF0aXN0aWNzVW5kZXJEb21haW5RdWVyeSkKKyAgICAsIG1f
c3RvcmFnZUFjY2Vzc0V4aXN0c1N0YXRlbWVudChtX2RhdGFiYXNlLCBzdG9yYWdlQWNjZXNzRXhp
c3RzUXVlcnkpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CkBAIC01MDMsNiArNTA5LDggQEAgYm9vbCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMoKQogICAgICAgICB8fCBt
X2dldFJlc291cmNlRGF0YUJ5RG9tYWluTmFtZVN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRF
X09LCiAgICAgICAgIHx8IG1fZ2V0QWxsRG9tYWluc1N0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FM
SVRFX09LCiAgICAgICAgIHx8IG1fZG9tYWluU3RyaW5nRnJvbURvbWFpbklEU3RhdGVtZW50LnBy
ZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgbV9nZXRBbGxTdWJTdGF0aXN0aWNzU3Rh
dGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgbV9zdG9yYWdlQWNjZXNz
RXhpc3RzU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgKSB7CiAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cyBmYWlsZWQgdG8gcHJlcGFyZSwgZXJy
b3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTU2MCw3ICs1NjgsNyBAQCBib29s
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlvbnNoaXBFeGlzdHMo
V2ViQ29yZTo6U1FMaXRlU3RhdAogICAgIGlmIChzdGF0ZW1lbnQuYmluZEludCgxLCAqZmlyc3RE
b21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kVGV4dCgyLCBz
ZWNvbmREb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzdGF0ZW1lbnQu
c3RlcCgpICE9IFNRTElURV9ST1cpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxM
T1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6Om1faW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwU3RhdGVtZW50IGZhaWxlZCB0byBiaW5kLCBl
cnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNn
KCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVsYXRpb25zaGlwRXhp
c3RzIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTc1NSwxOSArNzYzLDE5IEBAIHN0YXRp
YyBjb25zdCBTdHJpbmdWaWV3IGpvaW5TdWJTdGF0aXN0aWNzRm9yU29ydGluZygpCiB7CiAgICAg
cmV0dXJuIFIicXVlcnkoCiAgICAgICAgIGRvbWFpbklELAotICAgICAgICAoY250MSArIGNudDIg
KyBjbnQzKSBhcyBzdW0KKyAgICAgICAgKGNvdW50U3ViRnJhbWVVbmRlclRvcEZyYW1lICsgY291
bnRTdWJSZXNvdXJjZVVuZGVyVG9wRnJhbWUgKyBjb3VudFVuaXF1ZVJlZGlyZWN0VG8pIGFzIHN1
bQogICAgICAgICBGUk9NICgKICAgICAgICAgU0VMRUNUCiAgICAgICAgICAgICBkb21haW5JRCwK
LSAgICAgICAgICAgIENPVU5UKERJU1RJTkNUIGYudG9wRnJhbWVEb21haW5JRCkgYXMgY250MSwK
LSAgICAgICAgICAgIENPVU5UKERJU1RJTkNUIHIudG9wRnJhbWVEb21haW5JRCkgYXMgY250MiwK
LSAgICAgICAgICAgIENPVU5UKERJU1RJTkNUIHRvRG9tYWluSUQpIGFzIGNudDMKKyAgICAgICAg
ICAgIENPVU5UKERJU1RJTkNUIGYudG9wRnJhbWVEb21haW5JRCkgYXMgY291bnRTdWJGcmFtZVVu
ZGVyVG9wRnJhbWUsCisgICAgICAgICAgICBDT1VOVChESVNUSU5DVCByLnRvcEZyYW1lRG9tYWlu
SUQpIGFzIGNvdW50U3ViUmVzb3VyY2VVbmRlclRvcEZyYW1lLAorICAgICAgICAgICAgQ09VTlQo
RElTVElOQ1QgdG9Eb21haW5JRCkgYXMgY291bnRVbmlxdWVSZWRpcmVjdFRvCiAgICAgICAgIEZS
T00KICAgICAgICAgT2JzZXJ2ZWREb21haW5zIG8KICAgICAgICAgTEVGVCBKT0lOIFN1YmZyYW1l
VW5kZXJUb3BGcmFtZURvbWFpbnMgZiBPTiBvLmRvbWFpbklEID0gZi5zdWJGcmFtZURvbWFpbklE
CiAgICAgICAgIExFRlQgSk9JTiBTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zIHIgT04g
by5kb21haW5JRCA9IHIuc3VicmVzb3VyY2VEb21haW5JRAogICAgICAgICBMRUZUIEpPSU4gU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyB1IE9OIG8uZG9tYWluSUQgPSB1LnN1YnJlc291cmNl
RG9tYWluSUQKLSAgICAgICAgV0hFUkUgaXNQcmV2YWxlbnQgPSAxCisgICAgICAgIFdIRVJFIGlz
UHJldmFsZW50IExJS0UgPwogICAgICAgICBhbmQgaGFkVXNlckludGVyYWN0aW9uIExJS0UgPwog
ICAgICAgICBHUk9VUCBCWSBkb21haW5JRCkgT1JERVIgQlkgc3VtIERFU0MKICAgICAgICAgKXF1
ZXJ5IjsKQEAgLTc3OCwxNSArNzg2LDYxIEBAIHN0YXRpYyBTUUxpdGVTdGF0ZW1lbnQgbWFrZU1l
ZGlhbldpdGhVSVF1ZXJ5KFNRTGl0ZURhdGFiYXNlJiBkYXRhYmFzZSkKICAgICByZXR1cm4gU1FM
aXRlU3RhdGVtZW50KGRhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgbW9zdFJlY2VudFVzZXJJ
bnRlcmFjdGlvblRpbWUgRlJPTSBPYnNlcnZlZERvbWFpbnMgSU5ORVIgSk9JTiAoU0VMRUNUICIs
IGpvaW5TdWJTdGF0aXN0aWNzRm9yU29ydGluZygpLCAiKSBhcyBxIE9OIE9ic2VydmVkRG9tYWlu
cy5kb21haW5JRCA9IHEuZG9tYWluSUQgTElNSVQgMSBPRkZTRVQgPyIpKTsKIH0KIAorVmVjdG9y
PEZpcnN0UGFydHlEYXRhPiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0
Rmlyc3RQYXJ0eURhdGFGb3JEb21haW4odW5zaWduZWQgZG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBkb21haW5TdHJpbmcpIGNvbnN0Cit7CisgICAgaWYgKG1fZ2V0QWxsU3ViU3Rh
dGlzdGljc1N0YXRlbWVudC5iaW5kSW50KDEsIGRvbWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAg
ICAgfHwgbV9nZXRBbGxTdWJTdGF0aXN0aWNzU3RhdGVtZW50LmJpbmRJbnQoMiwgZG9tYWluSUQp
ICE9IFNRTElURV9PSworICAgICAgICB8fCBtX2dldEFsbFN1YlN0YXRpc3RpY3NTdGF0ZW1lbnQu
YmluZEludCgzLCBkb21haW5JRCkgIT0gU1FMSVRFX09LKSB7CisgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0
Rmlyc3RQYXJ0eURhdGFGb3JEb21haW4sIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgfQorICAgIFZlY3RvcjxGaXJzdFBhcnR5RGF0YT4gZmlyc3RQYXJ0eURhdGFMaXN0OworICAg
IHdoaWxlIChtX2dldEFsbFN1YlN0YXRpc3RpY3NTdGF0ZW1lbnQuc3RlcCgpID09IFNRTElURV9S
T1cpIHsKKyAgICAgICAgUmVnaXN0cmFibGVEb21haW4gZmlyc3RQYXJ0eURvbWFpbiA9IFJlZ2lz
dHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tUmVnaXN0cmFibGVEb21haW5TdHJpbmco
Z2V0RG9tYWluU3RyaW5nRnJvbURvbWFpbklEKG1fZ2V0QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVu
dC5nZXRDb2x1bW5JbnQoMCkpKTsKKyAgICAgICAgZmlyc3RQYXJ0eURhdGFMaXN0LmFwcGVuZElm
Tm90Q29udGFpbnMoRmlyc3RQYXJ0eURhdGEgeyBmaXJzdFBhcnR5RG9tYWluLCBoYXNTdG9yYWdl
QWNjZXNzKGZpcnN0UGFydHlEb21haW4sIGRvbWFpblN0cmluZykgfSk7CisgICAgfQorCisgICAg
cmVzZXRTdGF0ZW1lbnQobV9nZXRBbGxTdWJTdGF0aXN0aWNzU3RhdGVtZW50KTsKKyAgICByZXR1
cm4gZmlyc3RQYXJ0eURhdGFMaXN0OworfQorCitzdGF0aWMgYm9vbCBpc1RoaXJkUGFydHkodW5z
aWduZWQgdGltZXNVbmRlckZpcnN0UGFydHkpCit7CisgICAgcmV0dXJuIHRpbWVzVW5kZXJGaXJz
dFBhcnR5ID4gMDsKK30KKworVmVjdG9yPFRoaXJkUGFydHlEYXRhPiBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UoKSBjb25zdAor
eworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgVmVjdG9yPFRoaXJkUGFy
dHlEYXRhPiB0aGlyZFBhcnR5RGF0YUxpc3Q7CisgICAgU1FMaXRlU3RhdGVtZW50IHNvcnRlZFN0
YXRpc3RpY3MobV9kYXRhYmFzZSwgbWFrZVN0cmluZygiU0VMRUNUICIsIGpvaW5TdWJTdGF0aXN0
aWNzRm9yU29ydGluZygpKSk7CisgICAgaWYgKHNvcnRlZFN0YXRpc3RpY3MucHJlcGFyZSgpICE9
IFNRTElURV9PSworICAgICAgICB8fCBzb3J0ZWRTdGF0aXN0aWNzLmJpbmRUZXh0KDEsICIlIikK
KyAgICAgICAgfHwgc29ydGVkU3RhdGlzdGljcy5iaW5kVGV4dCgyLCAiJSIpICE9IFNRTElURV9P
SykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmdhdGhlckRhdGFGb3JVc2VySW50ZXJmYWNlLCBlcnJvciBt
ZXNzYWdlOiAle3B1YmxpY31zIiwgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gdGhpcmRQYXJ0eURhdGFMaXN0
OworICAgIH0KKyAgICB3aGlsZSAoc29ydGVkU3RhdGlzdGljcy5zdGVwKCkgPT0gU1FMSVRFX1JP
VykgeworICAgICAgICBpZiAoaXNUaGlyZFBhcnR5KHNvcnRlZFN0YXRpc3RpY3MuZ2V0Q29sdW1u
SW50KDEpKSkgeworICAgICAgICAgICAgYXV0byB0aGlyZFBhcnR5RG9tYWluSUQgPSBzb3J0ZWRT
dGF0aXN0aWNzLmdldENvbHVtbkludCgwKTsKKyAgICAgICAgICAgIGF1dG8gdGhpcmRQYXJ0eURv
bWFpbiA9IFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tUmVnaXN0cmFibGVE
b21haW5TdHJpbmcoZ2V0RG9tYWluU3RyaW5nRnJvbURvbWFpbklEKHRoaXJkUGFydHlEb21haW5J
RCkpOworICAgICAgICAgICAgdGhpcmRQYXJ0eURhdGFMaXN0LmFwcGVuZChUaGlyZFBhcnR5RGF0
YSB7IHRoaXJkUGFydHlEb21haW4sIGdldEZpcnN0UGFydHlEYXRhRm9yRG9tYWluKHRoaXJkUGFy
dHlEb21haW5JRCwgdGhpcmRQYXJ0eURvbWFpbikgfSk7CisgICAgICAgIH0KKyAgICB9CisgICAg
cmV0dXJuIHRoaXJkUGFydHlEYXRhTGlzdDsKK30KKwogc3RhdGljIHN0ZDo6cGFpcjxTdHJpbmdW
aWV3LCBTdHJpbmdWaWV3PiBidWlsZFF1ZXJ5U3RhcnRBbmRFbmQoUHJldmFsZW50UmVzb3VyY2VE
YXRhYmFzZVRlbGVtZXRyeTo6U3RhdGlzdGljIHN0YXRpc3RpYykKIHsKICAgICBzd2l0Y2ggKHN0
YXRpc3RpYykgewogICAgIGNhc2UgUHJldmFsZW50UmVzb3VyY2VEYXRhYmFzZVRlbGVtZXRyeTo6
U3RhdGlzdGljOjpNZWRpYW5TdWJGcmFtZVdpdGhvdXRVSToKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV9wYWlyKCJTRUxFQ1QgY250MSBGUk9NIE9ic2VydmVkRG9tYWlucyBvIElOTkVSIEpPSU4o
U0VMRUNUIGNudDEsICIsICIpIGFzIHEgT04gby5kb21haW5JRCA9IHEuZG9tYWluSUQgTElNSVQg
MSBPRkZTRVQgPyIpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoIlNFTEVDVCBjb3Vu
dFN1YkZyYW1lVW5kZXJUb3BGcmFtZSBGUk9NIE9ic2VydmVkRG9tYWlucyBvIElOTkVSIEpPSU4o
U0VMRUNUIGNvdW50U3ViRnJhbWVVbmRlclRvcEZyYW1lLCAiLCAiKSBhcyBxIE9OIG8uZG9tYWlu
SUQgPSBxLmRvbWFpbklEIExJTUlUIDEgT0ZGU0VUID8iKTsKICAgICBjYXNlIFByZXZhbGVudFJl
c291cmNlRGF0YWJhc2VUZWxlbWV0cnk6OlN0YXRpc3RpYzo6TWVkaWFuU3ViUmVzb3VyY2VXaXRo
b3V0VUk6Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcigiU0VMRUNUIGNudDIgRlJPTSBP
YnNlcnZlZERvbWFpbnMgbyBJTk5FUiBKT0lOKFNFTEVDVCBjbnQyLCAiLCAiKSBhcyBxIE9OIG8u
ZG9tYWluSUQgPSBxLmRvbWFpbklEIExJTUlUIDEgT0ZGU0VUID8iKTsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV9wYWlyKCJTRUxFQ1QgY291bnRTdWJSZXNvdXJjZVVuZGVyVG9wRnJhbWUgRlJP
TSBPYnNlcnZlZERvbWFpbnMgbyBJTk5FUiBKT0lOKFNFTEVDVCBjb3VudFN1YlJlc291cmNlVW5k
ZXJUb3BGcmFtZSwgIiwgIikgYXMgcSBPTiBvLmRvbWFpbklEID0gcS5kb21haW5JRCBMSU1JVCAx
IE9GRlNFVCA/Iik7CiAgICAgY2FzZSBQcmV2YWxlbnRSZXNvdXJjZURhdGFiYXNlVGVsZW1ldHJ5
OjpTdGF0aXN0aWM6Ok1lZGlhblVuaXF1ZVJlZGlyZWN0c1dpdGhvdXRVSToKLSAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV9wYWlyKCJTRUxFQ1QgY250MyBGUk9NIE9ic2VydmVkRG9tYWlucyBvIElO
TkVSIEpPSU4oU0VMRUNUIGNudDMsICIsICIpIGFzIHEgT04gby5kb21haW5JRCA9IHEuZG9tYWlu
SUQgTElNSVQgMSBPRkZTRVQgPyIpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoIlNF
TEVDVCBjb3VudFVuaXF1ZVJlZGlyZWN0VG8gRlJPTSBPYnNlcnZlZERvbWFpbnMgbyBJTk5FUiBK
T0lOKFNFTEVDVCBjb3VudFVuaXF1ZVJlZGlyZWN0VG8sICIsICIpIGFzIHEgT04gby5kb21haW5J
RCA9IHEuZG9tYWluSUQgTElNSVQgMSBPRkZTRVQgPyIpOwogICAgIGNhc2UgUHJldmFsZW50UmVz
b3VyY2VEYXRhYmFzZVRlbGVtZXRyeTo6U3RhdGlzdGljOjpNZWRpYW5EYXRhUmVjb3Jkc1JlbW92
ZWRXaXRob3V0VUk6CiAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcigiU0VMRUNUIGRhdGFS
ZWNvcmRzUmVtb3ZlZCBGUk9NIChTRUxFQ1QgKiBGUk9NIE9ic2VydmVkRG9tYWlucyBvIElOTkVS
IEpPSU4oU0VMRUNUICIsICIpIGFzIHEgT04gby5kb21haW5JRCA9IHEuZG9tYWluSUQpIExJTUlU
IDEgT0ZGU0VUID8iKTsKICAgICBjYXNlIFByZXZhbGVudFJlc291cmNlRGF0YWJhc2VUZWxlbWV0
cnk6OlN0YXRpc3RpYzo6TWVkaWFuVGltZXNBY2Nlc3NlZER1ZVRvVXNlckludGVyYWN0aW9uV2l0
aG91dFVJOgpAQCAtODE4LDcgKzg3Miw3IEBAIHN0YXRpYyB1bnNpZ25lZCBnZXRNZWRpYW5PZlBy
ZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24oU1FMaXRlRGF0YWJhc2UmCiAgICAg
fQogCiAgICAgLy8gQmluZAotICAgIGlmIChtZWRpYW5EYXlzU2luY2VVSVN0YXRlbWVudC5iaW5k
SW50KDEsIDEpICE9IFNRTElURV9PSyB8fCBtZWRpYW5EYXlzU2luY2VVSVN0YXRlbWVudC5iaW5k
SW50KDIsIChwcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uQ291bnQgLyAyKSAh
PSBTUUxJVEVfT0spKSB7CisgICAgaWYgKG1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJ
bnQoMSwgMSkgIT0gU1FMSVRFX09LIHx8IG1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJ
bnQoMiwgMSkgIT0gU1FMSVRFX09LIHx8IG1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJ
bnQoMywgKHByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb25Db3VudCAvIDIpICE9
IFNRTElURV9PSykpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRNZWRpYW5PZlByZXZhbGVudFJlc291
cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCBkYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICByZXR1cm4gMDsKQEAgLTg0Nyw3ICs5MDEsNyBAQCBzdGF0aWMgdW5zaWduZWQgZ2V0TWVk
aWFuT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uKFNRTGl0ZURhdGFiYXNl
JgogICAgIH0KIAogICAgIC8vIEJpbmQKLSAgICBpZiAobG93ZXJNZWRpYW5EYXlzU2luY2VVSVN0
YXRlbWVudC5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSyB8fCBsb3dlck1lZGlhbkRheXNTaW5j
ZVVJU3RhdGVtZW50LmJpbmRJbnQoMiwgKChwcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVy
YWN0aW9uQ291bnQgLSAxKSAvIDIpKSAhPSBTUUxJVEVfT0spIHsKKyAgICBpZiAobG93ZXJNZWRp
YW5EYXlzU2luY2VVSVN0YXRlbWVudC5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSyB8fCBsb3dl
ck1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMiwgMSkgIT0gU1FMSVRFX09LIHx8
IGxvd2VyTWVkaWFuRGF5c1NpbmNlVUlTdGF0ZW1lbnQuYmluZEludCgzLCAoKHByZXZhbGVudFJl
c291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb25Db3VudCAtIDEpIC8gMikpICE9IFNRTElURV9PSykg
ewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmdldE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJ
bnRlcmFjdGlvbiwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIGRhdGFiYXNlLmxhc3RFcnJv
ck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAw
OwpAQCAtOTAwLDcgKzk1NCw4IEBAIHVuc2lnbmVkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpnZXRUb3BQcmV2ZWxlbnRSZXNvdXJjZURheXNTaW5jZVVJCiAgICAgfQogICAg
IAogICAgIC8vIEJpbmQKLSAgICBpZiAodG9wUHJldmFsZW50UmVzb3VyY2VXaXRoVXNlckludGVy
YWN0aW9uRGF5c1NpbmNlVXNlckludGVyYWN0aW9uU3RhdGVtZW50LmJpbmRJbnQoMSwgMSkgIT0g
U1FMSVRFX09LKSB7CisgICAgaWYgKHRvcFByZXZhbGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFj
dGlvbkRheXNTaW5jZVVzZXJJbnRlcmFjdGlvblN0YXRlbWVudC5iaW5kSW50KDEsIDEpICE9IFNR
TElURV9PSworICAgICAgICB8fCB0b3BQcmV2YWxlbnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rp
b25EYXlzU2luY2VVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQuYmluZEludCgyLCAxKSAhPSBTUUxJ
VEVfT0spIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0b3BQcmV2YWxlbnRSZXNvdXJjZVdpdGhVc2VySW50
ZXJhY3Rpb25EYXlzU2luY2VVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQgcXVlcnkgZmFpbGVkIHRv
IGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwpA
QCAtOTI3LDggKzk4Miw5IEBAIHN0YXRpYyB1bnNpZ25lZCBnZXRNZWRpYW5PZlByZXZhbGVudFJl
c291cmNlV2l0aG91dFVzZXJJbnRlcmFjdGlvbihTUUxpdGVEYXRhYmFzCiAgICAgU1FMaXRlU3Rh
dGVtZW50IGdldE1lZGlhblN0YXRpc3RpYyA9IG1ha2VNZWRpYW5XaXRob3V0VUlRdWVyeShkYXRh
YmFzZSwgc3RhdGlzdGljKTsKIAogICAgIGlmIChnZXRNZWRpYW5TdGF0aXN0aWMucHJlcGFyZSgp
ID09IFNRTElURV9PSykgewotICAgICAgICBpZiAoZ2V0TWVkaWFuU3RhdGlzdGljLmJpbmRJbnQo
MSwgMCkgIT0gU1FMSVRFX09LCi0gICAgICAgICAgICB8fCBnZXRNZWRpYW5TdGF0aXN0aWMuYmlu
ZEludCgyLCAoYnVja2V0U2l6ZSAvIDIpKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgaWYgKGdl
dE1lZGlhblN0YXRpc3RpYy5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSworICAgICAgICAgICAg
fHwgZ2V0TWVkaWFuU3RhdGlzdGljLmJpbmRJbnQoMiwgMCkgIT0gU1FMSVRFX09LCisgICAgICAg
ICAgICB8fCBnZXRNZWRpYW5TdGF0aXN0aWMuYmluZEludCgzLCAoYnVja2V0U2l6ZSAvIDIpKSAh
PSBTUUxJVEVfT0spIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFrZU1lZGlhbldpdGhvdXRVSVF1
ZXJ5LCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4g
MDsKQEAgLTk0Myw3ICs5OTksOCBAQCBzdGF0aWMgdW5zaWduZWQgZ2V0TWVkaWFuT2ZQcmV2YWxl
bnRSZXNvdXJjZVdpdGhvdXRVc2VySW50ZXJhY3Rpb24oU1FMaXRlRGF0YWJhcwogICAgIFNRTGl0
ZVN0YXRlbWVudCBnZXRMb3dlck1lZGlhblN0YXRpc3RpYyA9IG1ha2VNZWRpYW5XaXRob3V0VUlR
dWVyeShkYXRhYmFzZSwgc3RhdGlzdGljKTsKIAogICAgIGlmIChnZXRMb3dlck1lZGlhblN0YXRp
c3RpYy5wcmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIGlmIChnZXRMb3dlck1lZGlh
blN0YXRpc3RpYy5iaW5kSW50KDEsIDApICE9IFNRTElURV9PSworICAgICAgICBpZiAoZ2V0TG93
ZXJNZWRpYW5TdGF0aXN0aWMuYmluZEludCgxLCAxKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAg
IHx8IGdldExvd2VyTWVkaWFuU3RhdGlzdGljLmJpbmRJbnQoMiwgMCkgIT0gU1FMSVRFX09LCiAg
ICAgICAgICAgICB8fCBnZXRMb3dlck1lZGlhblN0YXRpc3RpYy5iaW5kSW50KDIsICgoYnVja2V0
U2l6ZS0xKSAvIDIpKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFrZU1l
ZGlhbldpdGhvdXRVSVF1ZXJ5LCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC05
NjEsOCArMTAxOCw5IEBAIHN0YXRpYyB1bnNpZ25lZCBnZXROdW1iZXJPZlByZXZhbGVudFJlc291
cmNlc0luVG9wUmVzb3VyY2VzKFNRTGl0ZURhdGFiYXNlJiBkYXRhCiAgICAgU1FMaXRlU3RhdGVt
ZW50IHByZXZhbGVudFJlc291cmNlQ291bnRJblRvcChkYXRhYmFzZSwgbWFrZVN0cmluZygiU0VM
RUNUIENPVU5UKCopIEZST00gKFNFTEVDVCAqIEZST00gT2JzZXJ2ZWREb21haW5zIG8gSU5ORVIg
Sk9JTihTRUxFQ1QgIiwgam9pblN1YlN0YXRpc3RpY3NGb3JTb3J0aW5nKCksICIpIGFzIHEgb24g
cS5kb21haW5JRCA9IG8uZG9tYWluSUQgTElNSVQgPykgYXMgcCBXSEVSRSBwLmhhZFVzZXJJbnRl
cmFjdGlvbiA9IDE7IikpOwogCiAgICAgaWYgKHByZXZhbGVudFJlc291cmNlQ291bnRJblRvcC5w
cmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIGlmIChwcmV2YWxlbnRSZXNvdXJjZUNv
dW50SW5Ub3AuYmluZFRleHQoMSwgIiUiKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgICAgIHx8IHBy
ZXZhbGVudFJlc291cmNlQ291bnRJblRvcC5iaW5kSW50KDIsIGJ1Y2tldFNpemUpICE9IFNRTElU
RV9PSykgeworICAgICAgICBpZiAocHJldmFsZW50UmVzb3VyY2VDb3VudEluVG9wLmJpbmRJbnQo
MSwgMSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBwcmV2YWxlbnRSZXNvdXJjZUNvdW50
SW5Ub3AuYmluZFRleHQoMiwgIiUiKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHByZXZh
bGVudFJlc291cmNlQ291bnRJblRvcC5iaW5kSW50KDMsIGJ1Y2tldFNpemUpICE9IFNRTElURV9P
SykgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXROdW1iZXJPZlByZXZhbGVudFJlc291cmNlc0lu
VG9wUmVzb3VyY2VzLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAg
ICByZXR1cm4gMDsKQEAgLTEyNTEsNiArMTMwOSwxMSBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpzeW5jU3RvcmFnZUltbWVkaWF0ZWx5KCkKICAgICBtX2RhdGFi
YXNlLnJ1blZhY3V1bUNvbW1hbmQoKTsKIH0KIAorYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9w
RnJhbWVEb21haW4sIGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbikgY29uc3QK
K3sKKyAgICByZXR1cm4gcmVsYXRpb25zaGlwRXhpc3RzKG1fc3RvcmFnZUFjY2Vzc0V4aXN0c1N0
YXRlbWVudCwgZG9tYWluSUQoc3ViRnJhbWVEb21haW4pLCB0b3BGcmFtZURvbWFpbik7Cit9CisK
IHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nl
c3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BGcmFtZURv
bWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAt
MTYxOCw3ICsxNjgxLDE1IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKENvbXBsZXRpb25ICiAgICAgcmVzdWx0LmFw
cGVuZExpdGVyYWwoIlJlc291cmNlIGxvYWQgc3RhdGlzdGljczpcblxuIik7CiAgICAgd2hpbGUg
KG1fZ2V0QWxsRG9tYWluc1N0YXRlbWVudC5zdGVwKCkgPT0gU1FMSVRFX1JPVykKICAgICAgICAg
cmVzb3VyY2VUb1N0cmluZyhyZXN1bHQsIG1fZ2V0QWxsRG9tYWluc1N0YXRlbWVudC5nZXRDb2x1
bW5UZXh0KDApKTsKLSAgICAKKworICAgIGF1dG8gdGhpcmRQYXJ0eURhdGEgPSBnYXRoZXJEYXRh
Rm9yVXNlckludGVyZmFjZSgpOworICAgIGlmICghdGhpcmRQYXJ0eURhdGEuaXNFbXB0eSgpKSB7
CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIlxuSVRQIFVzZXIgSW50ZXJmYWNlIERhdGE6XG4iKTsK
KyAgICAgICAgZm9yIChhdXRvIHRoaXJkUGFydHkgOiB0aGlyZFBhcnR5RGF0YSkgeworICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCh0aGlyZFBhcnR5LnRvU3RyaW5nKCkpOworICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZCgnXG4nKTsKKyAgICAgICAgfQorICAgIH0KICAgICByZXNldFN0YXRlbWVu
dChtX2dldEFsbERvbWFpbnNTdGF0ZW1lbnQpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3Vs
dC50b1N0cmluZygpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmgKaW5kZXggOTM5NjlhOTk0ZjRjNGMxMGZmM2I2NzBkZjRkZjc2OGJm
OGQ0ZjZkOC4uZmM5ZjUzYWYyMmNkMGI3NjU2Y2ZhZWQ4ZGFhOTdhODNhZTE2NjlkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKQEAg
LTg1LDYgKzg1LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCBvdmVycmlkZTsK
IAorICAgIFZlY3RvcjxUaGlyZFBhcnR5RGF0YT4gZ2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2Uo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUNvb2tpZUJsb2NraW5nKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNsYXNzaWZ5UHJldmFs
ZW50UmVzb3VyY2VzKCkgb3ZlcnJpZGU7CkBAIC0xMzcsNiArMTM4LDggQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICB2b2lkIG9wZW5JVFBEYXRhYmFzZSgpOwogICAgIGJvb2wgaXNDb3JyZWN0VGFi
bGVTY2hlbWEoKTsKKyAgICBib29sIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgVG9wRnJhbWVEb21h
aW4mLCBjb25zdCBTdWJGcmFtZURvbWFpbiYpIGNvbnN0OworICAgIFZlY3RvcjxGaXJzdFBhcnR5
RGF0YT4gZ2V0Rmlyc3RQYXJ0eURhdGFGb3JEb21haW4odW5zaWduZWQgZG9tYWluSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAgICAgdm9pZCBvcGVuQW5kRHJvcE9sZERhdGFi
YXNlSWZOZWNlc3NhcnkoKTsKICAgICBTdHJpbmcgZ2V0RG9tYWluU3RyaW5nRnJvbURvbWFpbklE
KHVuc2lnbmVkKSBjb25zdDsKICAgICBTdHJpbmcgZ2V0U3ViU3RhdGlzdGljU3RhdGVtZW50KGNv
bnN0IFN0cmluZyYpIGNvbnN0OwpAQCAtMjQ4LDYgKzI1MSw4IEBAIHByaXZhdGU6CiAgICAgbXV0
YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9nZXRSZXNvdXJjZURhdGFCeURvbWFpbk5h
bWVTdGF0ZW1lbnQ7CiAgICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9nZXRB
bGxEb21haW5zU3RhdGVtZW50OwogICAgIG11dGFibGUgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50
IG1fZG9tYWluU3RyaW5nRnJvbURvbWFpbklEU3RhdGVtZW50OworICAgIG11dGFibGUgV2ViQ29y
ZTo6U1FMaXRlU3RhdGVtZW50IG1fZ2V0QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVudDsKKyAgICBt
dXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX3N0b3JhZ2VBY2Nlc3NFeGlzdHNTdGF0
ZW1lbnQ7CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IGM0ZTdk
NGFmMjdiMTFjMGMxMGM5Yjg3YWFhMGY2MWE0NDlmNjBlMzcuLjQ4YTgwNDEwZjk2MmQ0ZTRmZDQ1
ZWY3ZWM5MWEzN2NkMTgyYTMwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCkBAIC0xMDMsNiArMTAzLDQ2IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpjYWxjdWxhdGVBbmRTdWJtaXRUZWxlbWV0cnko
KSBjb25zdAogICAgICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5OjpjYWxj
dWxhdGVBbmRTdWJtaXQoKnRoaXMpOwogfQogCitzdGF0aWMgdm9pZCBlbnN1cmVGaXJzdFBhcnR5
U3RhdGlzdGljKFZlY3RvcjxGaXJzdFBhcnR5RGF0YT4mIGZpcnN0UGFydHlEYXRhTGlzdCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIGJvb2wgdGhpcmRQYXJ0eUhh
c1N0b3JhZ2VBY2Nlc3MpCit7CisgICAgRmlyc3RQYXJ0eURhdGEgZmlyc3RQYXJ0eSB7IGZpcnN0
UGFydHlEb21haW4sIHRoaXJkUGFydHlIYXNTdG9yYWdlQWNjZXNzIH07CisgICAgZmlyc3RQYXJ0
eURhdGFMaXN0LmFwcGVuZElmTm90Q29udGFpbnMoZmlyc3RQYXJ0eSk7Cit9CisKK3N0YXRpYyBW
ZWN0b3I8Rmlyc3RQYXJ0eURhdGE+IGdldEZpcnN0UGFydHlEYXRhRm9yRG9tYWluKGNvbnN0IFJl
c291cmNlTG9hZFN0YXRpc3RpY3MmIHN0YXRpc3RpYykKK3sKKyAgICBWZWN0b3I8Rmlyc3RQYXJ0
eURhdGE+IGZpcnN0UGFydHlEYXRhTGlzdDsKKworICAgIGZvciAoYXV0byBmaXJzdFBhcnR5IDog
c3RhdGlzdGljLnN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMpCisgICAgICAgIGVuc3VyZUZp
cnN0UGFydHlTdGF0aXN0aWMoZmlyc3RQYXJ0eURhdGFMaXN0LCBmaXJzdFBhcnR5LCBzdGF0aXN0
aWMuc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zLmNvbnRhaW5zKGZpcnN0UGFydHkp
KTsKKyAgICBmb3IgKGF1dG8gZmlyc3RQYXJ0eSA6IHN0YXRpc3RpYy5zdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVEb21haW5zKQorICAgICAgICBlbnN1cmVGaXJzdFBhcnR5U3RhdGlzdGljKGZpcnN0
UGFydHlEYXRhTGlzdCwgZmlyc3RQYXJ0eSwgc3RhdGlzdGljLnN0b3JhZ2VBY2Nlc3NVbmRlclRv
cEZyYW1lRG9tYWlucy5jb250YWlucyhmaXJzdFBhcnR5KSk7CisgICAgZm9yIChhdXRvIGZpcnN0
UGFydHkgOiBzdGF0aXN0aWMuc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbykKKyAgICAgICAg
ZW5zdXJlRmlyc3RQYXJ0eVN0YXRpc3RpYyhmaXJzdFBhcnR5RGF0YUxpc3QsIGZpcnN0UGFydHks
IHN0YXRpc3RpYy5zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMuY29udGFpbnMoZmly
c3RQYXJ0eSkpOworCisgICAgcmV0dXJuIGZpcnN0UGFydHlEYXRhTGlzdDsKK30KKworc3RhdGlj
IGJvb2wgaXNUaGlyZFBhcnR5KGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIHN0YXRpc3Rp
YykKK3sKKyAgICByZXR1cm4gIXN0YXRpc3RpYy5zdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5z
LmlzRW1wdHkoKQorICAgICAgICB8fCAhc3RhdGlzdGljLnN1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZURvbWFpbnMuaXNFbXB0eSgpCisgICAgICAgIHx8ICFzdGF0aXN0aWMuc3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdHNUby5pc0VtcHR5KCk7Cit9CisKK1ZlY3RvcjxUaGlyZFBhcnR5RGF0YT4gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpnYXRoZXJEYXRhRm9yVXNlckludGVyZmFj
ZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBWZWN0
b3I8VGhpcmRQYXJ0eURhdGE+IHRoaXJkUGFydHlEYXRhTGlzdDsKKyAgICBmb3IgKGF1dG8mIHN0
YXRpc3RpYyA6IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLnZhbHVlcygpKSB7CisgICAgICAgIGlm
IChpc1RoaXJkUGFydHkoc3RhdGlzdGljKSkKKyAgICAgICAgICAgIHRoaXJkUGFydHlEYXRhTGlz
dC5hcHBlbmQoVGhpcmRQYXJ0eURhdGEgeyBzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4sIGdl
dEZpcnN0UGFydHlEYXRhRm9yRG9tYWluKHN0YXRpc3RpYykgfSk7CisgICAgfQorICAgIHN0ZDo6
c29ydCh0aGlyZFBhcnR5RGF0YUxpc3QucmJlZ2luKCksIHRoaXJkUGFydHlEYXRhTGlzdC5yZW5k
KCkpOworICAgIHJldHVybiB0aGlyZFBhcnR5RGF0YUxpc3Q7Cit9CisKIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjppbmNyZW1lbnRSZWNvcmRzRGVsZXRlZENvdW50Rm9y
RG9tYWlucyhIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYmIGRvbWFpbnNXaXRoRGVsZXRlZFdl
YnNpdGVEYXRhKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtNTEwLDYg
KzU1MCwxNSBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6ZHVtcFJl
c291cmNlTG9hZFN0YXRpc3RpY3MoQ29tcGxldGlvbkhhbgogICAgIHJlc3VsdC5hcHBlbmRMaXRl
cmFsKCJSZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3M6XG5cbiIpOwogICAgIGZvciAoYXV0byYgbWFw
RW50cnkgOiBtX3Jlc291cmNlU3RhdGlzdGljc01hcC52YWx1ZXMoKSkKICAgICAgICAgcmVzdWx0
LmFwcGVuZChtYXBFbnRyeS50b1N0cmluZygpKTsKKworICAgIGF1dG8gdGhpcmRQYXJ0eURhdGEg
PSBnYXRoZXJEYXRhRm9yVXNlckludGVyZmFjZSgpOworICAgIGlmICghdGhpcmRQYXJ0eURhdGEu
aXNFbXB0eSgpKSB7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIlxuSVRQIFVzZXIgSW50ZXJmYWNl
IERhdGE6XG4iKTsKKyAgICAgICAgZm9yIChhdXRvIHRoaXJkUGFydHkgOiB0aGlyZFBhcnR5RGF0
YSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh0aGlyZFBhcnR5LnRvU3RyaW5nKCkpOwor
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKTsKKyAgICAgICAgfQorICAgIH0KICAgICBj
b21wbGV0aW9uSGFuZGxlcihyZXN1bHQudG9TdHJpbmcoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAppbmRleCBjOGZjNjg1ODAzMzZj
OGRkMmM3OGRkZWYyNjQ0NDMzZjdhYzdmM2UyLi40N2I0ZjYyNzhkMTUwYzE0ZDlmZGQ1YWExMjZk
YTk2ZDlkYTE0NzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0VtcHR5KCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKKyAgICBWZWN0b3I8VGhpcmRQYXJ0eURhdGE+IGdhdGhlckRhdGFG
b3JVc2VySW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29uc3QgSGFzaE1hcDxSZWdp
c3RyYWJsZURvbWFpbiwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mIGRhdGEoKSBj
b25zdCB7IHJldHVybiBtX3Jlc291cmNlU3RhdGlzdGljc01hcDsgfQogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OktleWVkRW5jb2Rlcj4gY3JlYXRlRW5jb2RlckZyb21EYXRhKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggYmZhNGQ3
MGIyNjlhY2FiZDllNTU4OThmZTdkYzdmMzgxYmFhMzlmOS4uNWUyMDY1NDJjOTMwNTQ0YjUzODFj
YzY0ZDg3NDE0ZjQwYTI3OTc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaApAQCAtOTksNiArOTksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2xl
YXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGlz
RW1wdHkoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBWZWN0b3I8VGhpcmRQYXJ0eURhdGE+IGdh
dGhlckRhdGFGb3JVc2VySW50ZXJmYWNlKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZUNvb2tpZUJsb2NraW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwog
ICAgIHZvaWQgdXBkYXRlQ29va2llQmxvY2tpbmdGb3JEb21haW5zKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluc1RvQmxvY2tDb29raWVzRm9yJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXgg
NGQ2Njk5N2Y0OWU5ZmI4MDk4MjJmMzg1MmQ2OGNkZDliODQ5OTQ0Yy4uM2FmNDQ3Y2NmMTYxMDQ5
MjZhZmI5YmNiZWZiMmJjYmExN2EyNzM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTExMzYsNiArMTEzNiwxMSBAQCB2b2lkIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bm90aWZ5UGFnZVN0YXRpc3RpY3NUZWxlbWV0cnlG
aW5pc2hlZCh1bnNpZwogICAgICAgICBjb25zdF9jYXN0PFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZSo+KHRoaXMpLT5uZXR3b3JrU2Vzc2lvbigpLT5ub3RpZnlQYWdlU3RhdGlzdGljc1Rl
bGVtZXRyeUZpbmlzaGVkKG51bWJlck9mUHJldmFsZW50UmVzb3VyY2VzLCBudW1iZXJPZlByZXZh
bGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIG51bWJlck9mUHJldmFsZW50UmVzb3Vy
Y2VzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiwgdG9wUHJldmFsZW50UmVzb3VyY2VXaXRoVXNlcklu
dGVyYWN0aW9uRGF5c1NpbmNlVXNlckludGVyYWN0aW9uLCBtZWRpYW5EYXlzU2luY2VVc2VySW50
ZXJhY3Rpb25QcmV2YWxlbnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb24sIHRvcDNOdW1iZXJP
ZlByZXZhbGVudFJlc291cmNlc1dpdGhVSSwgdG9wM01lZGlhblN1YkZyYW1lV2l0aG91dFVJLCB0
b3AzTWVkaWFuU3ViUmVzb3VyY2VXaXRob3V0VUksIHRvcDNNZWRpYW5VbmlxdWVSZWRpcmVjdHNX
aXRob3V0VUksIHRvcDNNZWRpYW5EYXRhUmVjb3Jkc1JlbW92ZWRXaXRob3V0VUkpOwogfQogCitW
ZWN0b3I8VGhpcmRQYXJ0eURhdGE+IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z2F0
aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UoKQoreworICAgIHJldHVybiBtX3N0YXRpc3RpY3NTdG9y
ZS0+Z2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oCmluZGV4IDBjYTQyNmEwNjI4OWYyODgyMTJmMDM4YTk2ZDhhNzIyYmMxOTNkNjguLjI4MWJi
MmJkNDBiOWM0OWZhZTE5N2ViOTExMjMyNDE3YTNmZWUxOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTc3LDYgKzc3LDQ2IEBAIHN0cnVjdCBS
ZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQ29va2llc0ZvciB7CiAgICAgUmVnaXN0cmFibGVEb21h
aW5zVG9CbG9ja0Nvb2tpZXNGb3IgaXNvbGF0ZWRDb3B5KCkgY29uc3QgeyByZXR1cm4geyBkb21h
aW5zVG9CbG9ja0FuZERlbGV0ZUNvb2tpZXNGb3IuaXNvbGF0ZWRDb3B5KCksIGRvbWFpbnNUb0Js
b2NrQnV0S2VlcENvb2tpZXNGb3IuaXNvbGF0ZWRDb3B5KCksIGRvbWFpbnNXaXRoVXNlckludGVy
YWN0aW9uQXNGaXJzdFBhcnR5Lmlzb2xhdGVkQ29weSgpIH07IH0KIH07CiAKK3N0cnVjdCBGaXJz
dFBhcnR5RGF0YSB7CisgICAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluOworICAg
IGJvb2wgc3RvcmFnZUFjY2Vzc0dyYW50ZWQ7CisKKyAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoZG9tYWluLnN0cmluZygpLCAiLCBT
dG9yYWdlIEFjY2VzcyBncmFudGVkOiAiLCBzdG9yYWdlQWNjZXNzR3JhbnRlZCk7CisgICAgfQor
CisgICAgYm9vbCBvcGVyYXRvcj09KEZpcnN0UGFydHlEYXRhIGNvbnN0IG90aGVyKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGRvbWFpbiA9PSBvdGhlci5kb21haW4gJiYgc3RvcmFnZUFj
Y2Vzc0dyYW50ZWQgPT0gb3RoZXIuc3RvcmFnZUFjY2Vzc0dyYW50ZWQ7CisgICAgfQorfTsKKwor
c3RydWN0IFRoaXJkUGFydHlEYXRhIHsKKyAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBk
b21haW47CisgICAgVmVjdG9yPEZpcnN0UGFydHlEYXRhPiBhc3NvY2lhdGVkRmlyc3RQYXJ0aWVz
OworCisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIFN0cmluZ0J1
aWxkZXIgc3RyaW5nQnVpbGRlcjsKKyAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoIlJlZ2lz
dHJhYmxlIERvbWFpbjogIiwgZG9tYWluLnN0cmluZygpLCAiXG4iKTsKKyAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgeyIpOworCisgICAgICAgIGZvciAoYXV0byBmaXJz
dFBhcnR5IDogYXNzb2NpYXRlZEZpcnN0UGFydGllcykgeworICAgICAgICAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJ7ICIpOworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQoZmlyc3RQYXJ0eS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiIH0sIik7CisgICAgICAgIH0KKyAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJ9Iik7CisgICAgICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7
CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgVGhpcmRQYXJ0eURhdGEgJm90aGVy
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGFzc29jaWF0ZWRGaXJzdFBhcnRpZXMuc2l6
ZSgpIDwgb3RoZXIuYXNzb2NpYXRlZEZpcnN0UGFydGllcy5zaXplKCk7CisgICAgfQorfTsKKwog
Y2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGZpbmFsIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSwgV1RGOjpEZXN0
cnVjdGlvblRocmVhZDo6TWFpbj4gewogcHVibGljOgogICAgIHVzaW5nIFJlc291cmNlTG9hZFN0
YXRpc3RpY3MgPSBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwpAQCAtMTkzLDYgKzIz
Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQo
VmVjdG9yPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYpOwogICAgIHZvaWQgcmVx
dWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihEb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3Mm
JiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgb3BlbmVySUQsIE9wZW5lckRvbWFpbiYmKTsKKyAg
ICBWZWN0b3I8VGhpcmRQYXJ0eURhdGE+IGdhdGhlckRhdGFGb3JVc2VySW50ZXJmYWNlKCk7CiAK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKE5l
dHdvcmtTZXNzaW9uJiwgY29uc3QgU3RyaW5nJiwgU2hvdWxkSW5jbHVkZUxvY2FsaG9zdCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggOWM4ZDEyNWE2MGIyYTdiNDE4OThjYTg0YTE2ZjdhYTZmNTc5ZTc2My4uZWM1MDExYjNk
ZGY3MDhmNzM4MjBhZTJmYTllMzU0Y2I2YmJiMTAyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisy
MDE5LTEyLTAyICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisg
ICAgICAgIEV4cG9zZSBiYXNpYyBJVFAgZGF0YSBmcm9tIHRoZSBkYXRhYmFzZSBmb3IgZnV0dXJl
IEFQSS9TUEkgdXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDM0MzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2MDg1MDQwPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cyB0
byBjaGVjayBpZiB0aGUgdXNlciBpbnRlcmZhY2UgZGF0YSBpcyBwcm9wZXJseQorICAgICAgICBj
b2xsZWN0ZWQgYW5kIHNvcnRlZCBmb3IgYm90aCB0aGUgZGF0YWJhc2Ugc3RvcmUgYW5kIHRoZSBt
ZW1vcnkgc3RvcmUuCisgICAgICAgIEFsc28gZWRpdGVkIGFueSB0ZXN0cyB3aGljaCB1c2UgZHVt
cFJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSB0byBhbHNvCisgICAgICAgIGV4cGVjdCB0aGUgVUkg
ZGF0YSB0byBiZSBkaXNwbGF5ZWQuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWltcG9ydC1pbi13b3JrZXItZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQtaW1wb3J0LWluLXdvcmtlci1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50
LXRoaXJkLXBhcnR5LXNjcmlwdC1sb2Fkcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5LXNj
cmlwdC1sb2Fkcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2RvbnQtY291bnQtdGhpcmQtcGFydHktaW1hZ2UtYXMtdGhpcmQtcGFydHkt
c2NyaXB0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG9udC1jb3VudC10aGlyZC1wYXJ0eS1pbWFnZS1hcy10aGlyZC1w
YXJ0eS1zY3JpcHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nlc3MtZGF0YWJh
c2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nlc3MtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1p
bnRlcmZhY2UtZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2Ut
YWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9zdG9yYWdlQWNjZXNzL3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1k
YXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
dXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3VzZXItaW50ZXJmYWNlLWRh
dGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sOiBBZGRlZC4KKwogMjAxOS0xMi0wMiAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEluY29ycmVj
dCBhc3NvY2lhdGlvbiBvZiB0aGUgVVJMIG9iamVjdCB3aXRoIHRoZSB2YWx1ZSBwb3J0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291
bnQtdGhpcmQtcGFydHktc2NyaXB0LWltcG9ydC1pbi13b3JrZXItZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50
LXRoaXJkLXBhcnR5LXNjcmlwdC1pbXBvcnQtaW4td29ya2VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dAppbmRleCAzNjljMWU0ZjA3N2VjODIyNDgxNjhkY2I4MGM0Yjc0N2U2ZmM0MDM3Li4zNmU5NzYz
ZGRlN2QyNTY4MWMwMGNmM2JlYzNjYzY1YTVkOTU2NDYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2Ny
aXB0LWltcG9ydC1pbi13b3JrZXItZGF0YWJhc2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1z
Y3JpcHQtaW1wb3J0LWluLXdvcmtlci1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTI0LDMgKzI0
LDcgQEAgUmVnaXN0cmFibGUgZG9tYWluOiBsb2NhbGhvc3QKICAgICBpc1ByZXZhbGVudFJlc291
cmNlOiBObwogICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObwogICAgIGRhdGFSZWNvcmRz
UmVtb3ZlZDogMAorCitJVFAgVXNlciBJbnRlcmZhY2UgRGF0YToKK1JlZ2lzdHJhYmxlIERvbWFp
bjogbG9jYWxob3N0CisgICAge3sgMTI3LjAuMC4xLCBTdG9yYWdlIEFjY2VzcyBncmFudGVkOiAw
IH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5LXNjcmlwdC1pbXBvcnQtaW4td29ya2VyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3Vu
dC10aGlyZC1wYXJ0eS1zY3JpcHQtaW1wb3J0LWluLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXgg
MTIxMWFmMGQyODIwMGYwYTEzZDNjYWU3NzA0ZWRmNjU1M2ZmNTE2ZC4uZjgyMzUyYTZjZjQ4ZThi
YWQwMTI3YjU3ODgzYjhkZjRjZTVmMjkzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5LXNjcmlwdC1pbXBv
cnQtaW4td29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWltcG9ydC1pbi13
b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0yNCwzICsyNCw3IEBAIFJlZ2lzdHJhYmxlIGRvbWFpbjog
MTI3LjAuMC4xCiAgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KICAgICBpc1ZlcnlQcmV2YWxl
bnRSZXNvdXJjZTogTm8KICAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKKworSVRQIFVzZXIgSW50
ZXJmYWNlIERhdGE6CitSZWdpc3RyYWJsZSBEb21haW46IGxvY2FsaG9zdAorICAgIHt7IDEyNy4w
LjAuMSwgU3RvcmFnZSBBY2Nlc3MgZ3JhbnRlZDogMCB9LH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1z
Y3JpcHQtbG9hZHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5LXNjcmlwdC1sb2Fkcy1k
YXRhYmFzZS1leHBlY3RlZC50eHQKaW5kZXggMzY5YzFlNGYwNzdlYzgyMjQ4MTY4ZGNiODBjNGI3
NDdlNmZjNDAzNy4uMzZlOTc2M2RkZTdkMjU2ODFjMDBjZjNiZWMzY2M2NWE1ZDk1NjQ2MCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nv
dW50LXRoaXJkLXBhcnR5LXNjcmlwdC1sb2Fkcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJk
LXBhcnR5LXNjcmlwdC1sb2Fkcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTI0LDMgKzI0LDcg
QEAgUmVnaXN0cmFibGUgZG9tYWluOiBsb2NhbGhvc3QKICAgICBpc1ByZXZhbGVudFJlc291cmNl
OiBObwogICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObwogICAgIGRhdGFSZWNvcmRzUmVt
b3ZlZDogMAorCitJVFAgVXNlciBJbnRlcmZhY2UgRGF0YToKK1JlZ2lzdHJhYmxlIERvbWFpbjog
bG9jYWxob3N0CisgICAge3sgMTI3LjAuMC4xLCBTdG9yYWdlIEFjY2VzcyBncmFudGVkOiAwIH0s
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NvdW50LXRoaXJkLXBhcnR5LXNjcmlwdC1sb2Fkcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHkt
c2NyaXB0LWxvYWRzLWV4cGVjdGVkLnR4dAppbmRleCAxMjExYWYwZDI4MjAwZjBhMTNkM2NhZTc3
MDRlZGY2NTUzZmY1MTZkLi5mODIzNTJhNmNmNDhlOGJhZDAxMjdiNTc4ODNiOGRmNGNlNWYyOTM5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWxvYWRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFy
dHktc2NyaXB0LWxvYWRzLWV4cGVjdGVkLnR4dApAQCAtMjQsMyArMjQsNyBAQCBSZWdpc3RyYWJs
ZSBkb21haW46IDEyNy4wLjAuMQogICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgaXNW
ZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCisKK0lU
UCBVc2VyIEludGVyZmFjZSBEYXRhOgorUmVnaXN0cmFibGUgRG9tYWluOiBsb2NhbGhvc3QKKyAg
ICB7eyAxMjcuMC4wLjEsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG9udC1jb3Vu
dC10aGlyZC1wYXJ0eS1pbWFnZS1hcy10aGlyZC1wYXJ0eS1zY3JpcHQtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rv
bnQtY291bnQtdGhpcmQtcGFydHktaW1hZ2UtYXMtdGhpcmQtcGFydHktc2NyaXB0LWRhdGFiYXNl
LWV4cGVjdGVkLnR4dAppbmRleCAwMjVjMjNmOTIyZjRkNGU3ZTBmMjViYWU3NDViZGRiNDVjY2Zk
YjFjLi40ODFlNzM2Yjc3MjZmZDFmNTAwYzNmNmIwZWZkM2I0ZmVhZjNkZjEzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG9udC1jb3Vu
dC10aGlyZC1wYXJ0eS1pbWFnZS1hcy10aGlyZC1wYXJ0eS1zY3JpcHQtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kb250LWNvdW50LXRoaXJkLXBhcnR5LWltYWdlLWFzLXRoaXJkLXBhcnR5LXNjcmlwdC1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTIyLDMgKzIyLDcgQEAgUmVnaXN0cmFibGUgZG9tYWluOiBs
b2NhbGhvc3QKICAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObwogICAgIGlzVmVyeVByZXZhbGVu
dFJlc291cmNlOiBObwogICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorCitJVFAgVXNlciBJbnRl
cmZhY2UgRGF0YToKK1JlZ2lzdHJhYmxlIERvbWFpbjogbG9jYWxob3N0CisgICAge3sgMTI3LjAu
MC4xLCBTdG9yYWdlIEFjY2VzcyBncmFudGVkOiAwIH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvbnQtY291bnQtdGhpcmQtcGFy
dHktaW1hZ2UtYXMtdGhpcmQtcGFydHktc2NyaXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb250LWNvdW50LXRoaXJkLXBhcnR5
LWltYWdlLWFzLXRoaXJkLXBhcnR5LXNjcmlwdC1leHBlY3RlZC50eHQKaW5kZXggNGVjYjk3MzZl
MTA2MDkyMzViMDExMzkzYWFlMTE2MmQyMjQ4Mjk1ZS4uMTRkM2UxNWIxOTNiNTY1MjdmMzhkYzY2
ZmM5ZmFmYWJiNzI0ZGRkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2RvbnQtY291bnQtdGhpcmQtcGFydHktaW1hZ2UtYXMtdGhpcmQt
cGFydHktc2NyaXB0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZG9udC1jb3VudC10aGlyZC1wYXJ0eS1pbWFnZS1hcy10aGly
ZC1wYXJ0eS1zY3JpcHQtZXhwZWN0ZWQudHh0CkBAIC0xNCwzICsxNCw3IEBAIFJlZ2lzdHJhYmxl
IGRvbWFpbjogbG9jYWxob3N0CiAgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KICAgICBpc1Zl
cnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KICAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKKworSVRQ
IFVzZXIgSW50ZXJmYWNlIERhdGE6CitSZWdpc3RyYWJsZSBEb21haW46IGxvY2FsaG9zdAorICAg
IHt7IDEyNy4wLjAuMSwgU3RvcmFnZSBBY2Nlc3MgZ3JhbnRlZDogMCB9LH0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
ZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1k
YXRhLW5vLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
YmZlZWExMjJhZGYzZWFjN2YzYWVlMTc4NzRkYjVlZjlkMTcwZWI5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsODMgQEAKK0NoZWNrIGNvcnJlY3QgVUkgZGF0YSBnZXRzIHJlcG9ydGVkIHdpdGggbm8g
c3RvcmFnZSBhY2Nlc3MuCisKKworCitSZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3M6CisKK1JlZ2lz
dHJhYmxlIGRvbWFpbjogc3ViZnJhbWUxCisgICAgaGFkVXNlckludGVyYWN0aW9uOiBObworICAg
IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAg
ICBJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsOiBObworICAgIFN1YmZyYW1l
VW5kZXJUb3BGcmFtZURvbWFpbnM6CisgICAgICAgIHRvcGZyYW1lMQorICAgIFN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzVG86CisgICAgICAgIHRvcGZyYW1lMgorICAgIGlzUHJldmFsZW50UmVz
b3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29y
ZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IHN1YmZyYW1lMgorICAgIGhhZFVzZXJJ
bnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAtMQorICAgIGdy
YW5kZmF0aGVyZWQ6IE5vCisgICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3Zh
bDogTm8KKyAgICBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAgICB0b3BmcmFt
ZTEKKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291
cmNlOiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiBz
dWJmcmFtZTMKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJ
bnRlcmFjdGlvbjogLTEKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIElzU2NoZWR1bGVkRm9y
QWxsQnV0Q29va2llRGF0YVJlbW92YWw6IE5vCisgICAgU3ViZnJhbWVVbmRlclRvcEZyYW1lRG9t
YWluczoKKyAgICAgICAgdG9wZnJhbWUxCisgICAgICAgIHRvcGZyYW1lNAorICAgIFN1YnJlc291
cmNlVW5kZXJUb3BGcmFtZURvbWFpbnM6CisgICAgICAgIHRvcGZyYW1lMworICAgIFN1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RzVG86CisgICAgICAgIHRvcGZyYW1lMgorICAgIGlzUHJldmFsZW50
UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJl
Y29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IHRvcGZyYW1lMQorICAgIGhhZFVz
ZXJJbnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAtMQorICAg
IGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVt
b3ZhbDogTm8KKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVu
dFJlc291cmNlOiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9t
YWluOiB0b3BmcmFtZTIKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvbjogLTEKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIElzU2NoZWR1
bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWw6IE5vCisgICAgaXNQcmV2YWxlbnRSZXNvdXJj
ZTogTm8KKyAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1Jl
bW92ZWQ6IDAKK1JlZ2lzdHJhYmxlIGRvbWFpbjogdG9wZnJhbWUzCisgICAgaGFkVXNlckludGVy
YWN0aW9uOiBObworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRm
YXRoZXJlZDogTm8KKyAgICBJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsOiBO
bworICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3Vy
Y2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IHRv
cGZyYW1lNAorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgSXNTY2hlZHVsZWRGb3JB
bGxCdXRDb29raWVEYXRhUmVtb3ZhbDogTm8KKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObwor
ICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDog
MAorCitJVFAgVXNlciBJbnRlcmZhY2UgRGF0YToKK1JlZ2lzdHJhYmxlIERvbWFpbjogc3ViZnJh
bWUzCisgICAge3sgdG9wZnJhbWUxLCBTdG9yYWdlIEFjY2VzcyBncmFudGVkOiAwIH0seyB0b3Bm
cmFtZTQsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx7IHRvcGZyYW1lMywgU3RvcmFnZSBB
Y2Nlc3MgZ3JhbnRlZDogMCB9LHsgdG9wZnJhbWUyLCBTdG9yYWdlIEFjY2VzcyBncmFudGVkOiAw
IH0sfQorUmVnaXN0cmFibGUgRG9tYWluOiBzdWJmcmFtZTEKKyAgICB7eyB0b3BmcmFtZTEsIFN0
b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx7IHRvcGZyYW1lMiwgU3RvcmFnZSBBY2Nlc3MgZ3Jh
bnRlZDogMCB9LH0KK1JlZ2lzdHJhYmxlIERvbWFpbjogc3ViZnJhbWUyCisgICAge3sgdG9wZnJh
bWUxLCBTdG9yYWdlIEFjY2VzcyBncmFudGVkOiAwIH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEt
bm8tc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNj
ZXNzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWUxYzllZjIxMmRjNGUzMTkyOWIxMTJhMzdh
ZTJlODI4NDU3NjBkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNj
ZXNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0
aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgp
JywgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPkNoZWNrIGNvcnJlY3QgVUkgZGF0YSBnZXRz
IHJlcG9ydGVkIHdpdGggbm8gc3RvcmFnZSBhY2Nlc3MuPC9kaXY+Cis8YnI+Cis8ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2PgorPGJyPgorPHNjcmlwdD4KKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIGZpbmlz
aFRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
KTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAg
Y29uc3Qgc3ViT3JpZ2luMSA9ICJodHRwOi8vc3ViZnJhbWUxOjgwMDAiOworICAgIGNvbnN0IHN1
Yk9yaWdpbjIgID0gImh0dHA6Ly9zdWJmcmFtZTI6ODAwMCI7CisgICAgY29uc3Qgc3ViT3JpZ2lu
MyAgPSAiaHR0cDovL3N1YmZyYW1lMzo4MDAwIjsKKworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2lu
MSA9ICJodHRwOi8vdG9wZnJhbWUxOjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9
ICJodHRwOi8vdG9wZnJhbWUyOjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJo
dHRwOi8vdG9wZnJhbWUzOjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRw
Oi8vdG9wZnJhbWU0OjgwMDAiOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisKKyAgICAgICAgICAgIC8vIHN1Yk9yaWdpbjEgd2ls
bCBiZSBsb2dnZWQgdW5kZXIgMiB0b3AgZnJhbWVzLiBTaG91bGQgYXBwZWFyIHNlY29uZAorICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3Jp
Z2luKHN1Yk9yaWdpbjEsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3ViT3JpZ2luMSwgdG9w
RnJhbWVPcmlnaW4yKTsKKworICAgICAgICAgICAgLy8gc3ViT3JpZ2luMiB3aWxsIGJlIGxvZ2dl
ZCB1bmRlciAxIHRvcCBmcmFtZXMuIFNob3VsZCBhcHBlYXIgdGhpcmQKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdWJPcmln
aW4yLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAgICAvLyBzdWJPcmlnaW4zIHdpbGwg
YmUgbG9nZ2VkIHVuZGVyIDQgdG9wIGZyYW1lcy4gU2hvdWxkIGFwcGVhciBmaXJzdAorICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lu
KHN1Yk9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3ViT3JpZ2luMywgdG9wRnJh
bWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdWJPcmlnaW4zLCB0b3BGcmFtZU9yaWdpbjMpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3Jp
Z2luKHN1Yk9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24gKCkgeyBmaW5pc2hUZXN0KCkgfSwgNTAwKTsKKyAgICAgICAgfSk7CisgICAg
fQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmZhY2UtZGF0YS1uby1z
dG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmZhY2UtZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM5MmNlNDE1M2NkZmM4MzBkNmE3YzY0MWQ2ODk4YTNi
ZWMwMzE1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDgzIEBACitDaGVjayBjb3JyZWN0IFVJIGRhdGEgZ2V0cyBy
ZXBvcnRlZCB3aXRoIG5vIHN0b3JhZ2UgYWNjZXNzIGdyYW50ZWQuCisKKworCitSZXNvdXJjZSBs
b2FkIHN0YXRpc3RpY3M6CisKK1JlZ2lzdHJhYmxlIGRvbWFpbjogdG9wZnJhbWUyCisgICAgaGFk
VXNlckludGVyYWN0aW9uOiBObworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisg
ICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBnb3RMaW5rRGVjb3JhdGlvbkZyb21QcmV2YWxlbnRS
ZXNvdXJjZTogTm8KKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZh
bGVudFJlc291cmNlOiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUg
ZG9tYWluOiB0b3BmcmFtZTMKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJl
Y2VudFVzZXJJbnRlcmFjdGlvbjogLTEKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIGdvdExp
bmtEZWNvcmF0aW9uRnJvbVByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzUHJldmFsZW50UmVz
b3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29y
ZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IHRvcGZyYW1lMQorICAgIGhhZFVzZXJJ
bnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAtMQorICAgIGdy
YW5kZmF0aGVyZWQ6IE5vCisgICAgZ290TGlua0RlY29yYXRpb25Gcm9tUHJldmFsZW50UmVzb3Vy
Y2U6IE5vCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ZlcnlQcmV2YWxlbnRS
ZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKK1JlZ2lzdHJhYmxlIGRvbWFp
bjogdG9wZnJhbWU0CisgICAgaGFkVXNlckludGVyYWN0aW9uOiBObworICAgIG1vc3RSZWNlbnRV
c2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBnb3RMaW5rRGVj
b3JhdGlvbkZyb21QcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ByZXZhbGVudFJlc291cmNl
OiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObworICAgIGRhdGFSZWNvcmRzUmVt
b3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiBzdWJmcmFtZTEKKyAgICBoYWRVc2VySW50ZXJh
Y3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEKKyAgICBncmFuZGZh
dGhlcmVkOiBObworICAgIGdvdExpbmtEZWNvcmF0aW9uRnJvbVByZXZhbGVudFJlc291cmNlOiBO
bworICAgIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnM6CisgICAgICAgIHRvcGZyYW1lMQor
ICAgIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG86CisgICAgICAgIHRvcGZyYW1lMgorICAg
IGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5v
CisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IHN1YmZyYW1l
MgorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0
aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgZ290TGlua0RlY29yYXRpb25Gcm9t
UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgc3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluczoK
KyAgICAgICAgdG9wZnJhbWUxCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1Zl
cnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKK1JlZ2lz
dHJhYmxlIGRvbWFpbjogc3ViZnJhbWUzCisgICAgaGFkVXNlckludGVyYWN0aW9uOiBObworICAg
IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAg
ICBnb3RMaW5rRGVjb3JhdGlvbkZyb21QcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBzdWJmcmFt
ZVVuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAgICB0b3BmcmFtZTEKKyAgICAgICAgdG9wZnJh
bWU0CisgICAgc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluczoKKyAgICAgICAgdG9wZnJh
bWUzCisgICAgc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbzoKKyAgICAgICAgdG9wZnJhbWUy
CisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJj
ZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKKworSVRQIFVzZXIgSW50ZXJmYWNlIERh
dGE6CitSZWdpc3RyYWJsZSBEb21haW46IHN1YmZyYW1lMworICAgIHt7IHRvcGZyYW1lMSwgU3Rv
cmFnZSBBY2Nlc3MgZ3JhbnRlZDogMCB9LHsgdG9wZnJhbWU0LCBTdG9yYWdlIEFjY2VzcyBncmFu
dGVkOiAwIH0seyB0b3BmcmFtZTMsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx7IHRvcGZy
YW1lMiwgU3RvcmFnZSBBY2Nlc3MgZ3JhbnRlZDogMCB9LH0KK1JlZ2lzdHJhYmxlIERvbWFpbjog
c3ViZnJhbWUxCisgICAge3sgdG9wZnJhbWUxLCBTdG9yYWdlIEFjY2VzcyBncmFudGVkOiAwIH0s
eyB0b3BmcmFtZTIsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx9CitSZWdpc3RyYWJsZSBE
b21haW46IHN1YmZyYW1lMgorICAgIHt7IHRvcGZyYW1lMSwgU3RvcmFnZSBBY2Nlc3MgZ3JhbnRl
ZDogMCB9LH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmZh
Y2UtZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0OTYxZWIzZTZjZGEy
OGJiYWFmYmExYjRmNTgwNmY4MDk3NzM1ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmZhY2UtZGF0YS1u
by1zdG9yYWdlLWFjY2Vzcy5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tp
ZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRl
c3QoKScsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5DaGVjayBjb3JyZWN0IFVJIGRhdGEg
Z2V0cyByZXBvcnRlZCB3aXRoIG5vIHN0b3JhZ2UgYWNjZXNzIGdyYW50ZWQuPC9kaXY+Cis8YnI+
Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPGJyPgorPHNjcmlwdD4KKyAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1
bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcFJlc291cmNlTG9h
ZFN0YXRpc3RpY3MoKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7Cisg
ICAgfQorCisgICAgY29uc3Qgc3ViT3JpZ2luMSA9ICJodHRwOi8vc3ViZnJhbWUxOjgwMDAiOwor
ICAgIGNvbnN0IHN1Yk9yaWdpbjIgID0gImh0dHA6Ly9zdWJmcmFtZTI6ODAwMCI7CisgICAgY29u
c3Qgc3ViT3JpZ2luMyAgPSAiaHR0cDovL3N1YmZyYW1lMzo4MDAwIjsKKyAgICAKKyAgICBjb25z
dCB0b3BGcmFtZU9yaWdpbjEgPSAiaHR0cDovL3RvcGZyYW1lMTo4MDAwIjsKKyAgICBjb25zdCB0
b3BGcmFtZU9yaWdpbjIgPSAiaHR0cDovL3RvcGZyYW1lMjo4MDAwIjsKKyAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbjMgPSAiaHR0cDovL3RvcGZyYW1lMzo4MDAwIjsKKyAgICBjb25zdCB0b3BGcmFt
ZU9yaWdpbjQgPSAiaHR0cDovL3RvcGZyYW1lNDo4MDAwIjsKKworICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworCisg
ICAgICAgICAgICAvLyBzdWJPcmlnaW4xIHdpbGwgYmUgbG9nZ2VkIHVuZGVyIDIgdG9wIGZyYW1l
cy4gU2hvdWxkIGFwcGVhciBzZWNvbmQKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdWJPcmlnaW4xLCB0b3BGcmFtZU9yaWdp
bjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdFRvKHN1Yk9yaWdpbjEsIHRvcEZyYW1lT3JpZ2luMik7CisKKyAgICAgICAgICAg
IC8vIHN1Yk9yaWdpbjIgd2lsbCBiZSBsb2dnZWQgdW5kZXIgMSB0b3AgZnJhbWVzLiBTaG91bGQg
YXBwZWFyIHRoaXJkCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFt
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3ViT3JpZ2luMiwgdG9wRnJhbWVPcmlnaW4xKTsKKworICAg
ICAgICAgICAgLy8gc3ViT3JpZ2luMyB3aWxsIGJlIGxvZ2dlZCB1bmRlciA0IHRvcCBmcmFtZXMu
IFNob3VsZCBhcHBlYXIgZmlyc3QKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdWJPcmlnaW4zLCB0b3BGcmFtZU9yaWdpbjEp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdFRvKHN1Yk9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3ViT3Jp
Z2luMywgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdWJPcmlnaW4zLCB0b3BGcmFtZU9yaWdp
bjQpOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgZmluaXNoVGVzdCgp
IH0sIDUwMCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3VzZXIt
aW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0
YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
Mjc0MDk0YzA1NWIwOTkwZTE0OTkxYjYyYzA3MWFjM2FmZTJmMjA0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3VzZXItaW50ZXJmYWNlLWRh
dGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
NiBAQAorQ2hlY2sgY29ycmVjdCBVSSBkYXRhIGdldHMgcmVwb3J0ZWQgd2l0aCBzdG9yYWdlIGFj
Y2VzcyBncmFudGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBTdG9y
YWdlIGFjY2VzcyB3YXMgZ3JhbnRlZC4gZG9jdW1lbnQuY29va2llID09IGZpcnN0UGFydHlDb29r
aWU9dmFsdWUsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSB7ImZpcnN0UGFydHlDb29raWUi
OiJ2YWx1ZSJ9CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKworUmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzOgorCitSZWdpc3RyYWJsZSBkb21haW46IDEy
Ny4wLjAuMQorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogWWVzCisgICAgbW9zdFJlY2VudFVzZXJJ
bnRlcmFjdGlvbjogMS41NzUzMmUrOQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgSXNTY2hl
ZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbDogTm8KKyAgICBpc1ByZXZhbGVudFJlc291
cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObworICAgIGRhdGFSZWNvcmRz
UmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiBsb2NhbGhvc3QKKyAgICBoYWRVc2VySW50
ZXJhY3Rpb246IFllcworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IDEuNTc1MzJlKzkK
KyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9t
YWluczoKKyAgICAgICAgMTI3LjAuMC4xCisgICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVE
YXRhUmVtb3ZhbDogTm8KKyAgICBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAg
ICAxMjcuMC4wLjEKKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZh
bGVudFJlc291cmNlOiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorCitJVFAgVXNlciBJ
bnRlcmZhY2UgRGF0YToKK1JlZ2lzdHJhYmxlIERvbWFpbjogbG9jYWxob3N0CisgICAge3sgMTI3
LjAuMC4xLCBTdG9yYWdlIEFjY2VzcyBncmFudGVkOiAxIH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1z
dG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFz
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA3MzViZDdkNmQ0MTZhMTAyZjYzNjFhMjA3YzRiYzUwNzZmYTAw
ODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLmh0bWwK
QEAgLTAsMCArMSw4NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIkNoZWNrIGNv
cnJlY3QgVUkgZGF0YSBnZXRzIHJlcG9ydGVkIHdpdGggc3RvcmFnZSBhY2Nlc3MgZ3JhbnRlZC4i
KTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0eVVybCA9ICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgICAgICBjb25zdCB0aGlyZFBhcnR5VXJsID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2Uo
ZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFT
UyAiKSAhPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcygpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50
LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAi
IikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVj
ZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmln
aW4pOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGly
ZFBhcnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZl
TWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVt
ZW50SWQpIHsKKyAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoZWxlbWVudElkKTsKKyAgICAgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRM
ZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgY2VudGVyWSA9
IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAg
ICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImVz
Y2FwZSIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIk5vIGV2ZW50U2VuZGVyLiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhm
YWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21p
c2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
ICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCAhPT0gIiNjb29raWVTZXQiKSB7CisgICAg
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlVcmwgKyAiL3N0
b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tp
ZSZ2YWx1ZT12YWx1ZSMiICsgZmlyc3RQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy91c2VyLWlu
dGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UuaHRtbCNjb29raWVTZXQi
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVz
KHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5VXJsKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkLXBhcnR5IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbihmaXJzdFBhcnR5VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oZmlyc3RQYXJ0eVVybCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiRmlyc3QtcGFydHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGlu
dGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlVcmwsIHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eVVybCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkLXBhcnR5IGRpZCBub3QgZ2V0IGxv
Z2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0gZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgi
VGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5p
ZCA9ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAv
c3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRt
bCN1c2VyU2hvdWxkR3JhbnRBY2Nlc3MsdXNlclNob3VsZEJlQ29uc3VsdGVkLHBvbGljeVNob3Vs
ZEdyYW50QWNjZXNzLGlzTm90U2FtZU9yaWdpbklmcmFtZSI7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3VzZXItaW50ZXJmYWNl
LWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNj
ZXNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Mjk4YjlhOTk3NjJkMzhkOGQ1NDM4NDc4YzAx
Y2RhNDIxNTNmZWU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
dG9yYWdlQWNjZXNzL3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzNiBAQAorQ2hlY2sgY29ycmVjdCBVSSBkYXRhIGdldHMgcmVw
b3J0ZWQgd2l0aCBzdG9yYWdlIGFjY2VzcyBncmFudGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBTdG9yYWdlIGFjY2VzcyB3YXMgZ3JhbnRlZC4gZG9jdW1lbnQuY29v
a2llID09IGZpcnN0UGFydHlDb29raWU9dmFsdWUsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9
PSB7ImZpcnN0UGFydHlDb29raWUiOiJ2YWx1ZSJ9CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworUmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzOgorCitS
ZWdpc3RyYWJsZSBkb21haW46IGxvY2FsaG9zdAorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogWWVz
CisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogMS41NzUzMmUrOQorICAgIGdyYW5kZmF0
aGVyZWQ6IE5vCisgICAgc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAg
ICAxMjcuMC4wLjEKKyAgICBnb3RMaW5rRGVjb3JhdGlvbkZyb21QcmV2YWxlbnRSZXNvdXJjZTog
Tm8KKyAgICBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAgICAxMjcuMC4wLjEK
KyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNl
OiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiAxMjcu
MC4wLjEKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IFllcworICAgIG1vc3RSZWNlbnRVc2VySW50
ZXJhY3Rpb246IDEuNTc1MzJlKzkKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIGdvdExpbmtE
ZWNvcmF0aW9uRnJvbVByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzUHJldmFsZW50UmVzb3Vy
Y2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNS
ZW1vdmVkOiAwCisKK0lUUCBVc2VyIEludGVyZmFjZSBEYXRhOgorUmVnaXN0cmFibGUgRG9tYWlu
OiBsb2NhbGhvc3QKKyAgICB7eyAxMjcuMC4wLjEsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDEg
fSx9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNl
ci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2Ut
YWNjZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODhmMjA1YmQ3NTAzNzk4Njk3MjgxYjU2ZTgwMWFhZGVm
ZjllZDI1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MuaHRtbApAQCAt
MCwwICsxLDg1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiQ2hlY2sgY29ycmVj
dCBVSSBkYXRhIGdldHMgcmVwb3J0ZWQgd2l0aCBzdG9yYWdlIGFjY2VzcyBncmFudGVkLiIpOwor
ICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBjb25zdCBmaXJzdFBhcnR5
VXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlV
cmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZl
TWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRl
eE9mKCJQQVNTICIpICE9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJG
QUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2
ZW50Lm9yaWdpbik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRC
bG9ja1RoaXJkUGFydHlDb29raWVzKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVt
ZW50KGVsZW1lbnRJZCkgeworICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50
Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgICAgIHZhciBj
ZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7Cisg
ICAgICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisg
ICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAod2lu
ZG93LmV2ZW50U2VuZGVyKQorICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5
RG93bigiZXNjYXBlIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gZXZlbnRTZW5kZXIuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlD
b29raWVzKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5p
c2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoICE9PSAiI2Nvb2tpZVNldCIp
IHsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eVVy
bCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvc2V0LWNvb2tpZS5waHA/bmFtZT1maXJzdFBh
cnR5Q29va2llJnZhbHVlPXZhbHVlIyIgKyBmaXJzdFBhcnR5VXJsICsgIi9zdG9yYWdlQWNjZXNz
L3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sI2Nvb2tpZVNldCI7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMo
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlVcmwpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQtcGFydHkgc2V0IGFzIHByZXZhbGVudCByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKGZpcnN0UGFydHlVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbihmaXJzdFBhcnR5VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJGaXJzdC1wYXJ0eSBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50
ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eVVybCwgdHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5VXJsKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQtcGFydHkgZGlkIG5vdCBnZXQgbG9n
Z2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJU
aGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lmlk
ID0gIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9z
dG9yYWdlQWNjZXNzL3Jlc291cmNlcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1s
I3VzZXJTaG91bGRHcmFudEFjY2Vzcyx1c2VyU2hvdWxkQmVDb25zdWx0ZWQscG9saWN5U2hvdWxk
R3JhbnRBY2Nlc3MsaXNOb3RTYW1lT3JpZ2luSWZyYW1lIjsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384649</attachid>
            <date>2019-12-02 12:34:28 -0800</date>
            <delta_ts>2019-12-02 15:46:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203432-20191202123427.patch</filename>
            <type>text/plain</type>
            <size>66911</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI2ZDAwNjQwM2NmNzdi
NTBmMTk2NmNkOTk3NjBlMWIzYTZkNmIzYy4uOWRlYmI1N2I4MzRhOWE1ZmQ5YmEwOGYwZTdjNTAy
Zjk4Y2NiZTg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTEyLTAyICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSBi
YXNpYyBJVFAgZGF0YSBmcm9tIHRoZSBkYXRhYmFzZSBmb3IgZnV0dXJlIEFQSS9TUEkgdXNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0MzIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2MDg1MDQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvdXNlci1pbnRlcmZhY2UtZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNl
ci1pbnRlcmZhY2UtZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2Ut
YWNjZXNzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MuaHRtbAorCisgICAg
ICAgIFNpbmNlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lIGNoYW5nZXMgd2l0aCBlYWNo
IHRlc3QgcnVuLCAKKyAgICAgICAgdXBkYXRlZCB0aGUgdG9TdHJpbmcgdG8gcmVwb3J0IG9ubHkg
aWYgaXQgd2FzIGluIHRoZSBsYXN0IDI0IGhvdXJzIGFzCisgICAgICAgIG9wcG9zZWQgdG8gcmVw
b3J0aW5nIGFuIGFjdHVhbCB0aW1lLgorCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFzSGFkUmVjZW50VXNlckludGVyYWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnRvU3RyaW5n
IGNvbnN0KToKKwogMjAxOS0xMi0wMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIEluY29ycmVjdCBhc3NvY2lhdGlvbiBvZiB0aGUgVVJMIG9i
amVjdCB3aXRoIHRoZSB2YWx1ZSBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ0NTQ0ZGM3NjY5ZDdhNWFkNGU4
MTU0MGI4ZGFiYWU1NzRkMjI4ODguLjFjZTUxNDJlMjRjMjc0ZmVjMTRhMmZjZGZjZDExNWQ5ZmU3
ZmI5YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAgQEAKKzIwMTktMTItMDIgIEthdGUgQ2hlbmV5
ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIGJhc2ljIElU
UCBkYXRhIGZyb20gdGhlIGRhdGFiYXNlIGZvciBmdXR1cmUgQVBJL1NQSSB1c2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQzMgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTYwODUwNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
ZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvc3RvcmFnZUFjY2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3Mt
ZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3Vz
ZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sCisKKyAgICAgICAgQWRk
cyBhYmlsaXR5IHRvIGNvbGxlY3Qgc29ydGVkIElUUCBkYXRhIGZvciBkaXNwbGF5aW5nIGluIGEK
KyAgICAgICAgdXNlciBpbnRlcmZhY2UuIEFkZGl0aW9uYWwgcmVnaXN0cmFibGUgZG9tYWluIGRh
dGEgY2FuIGJlIGFkZGVkIGJhc2VkCisgICAgICAgIG9uIGZ1dHVyZSBkZXNpZ24gY2hhbmdlcy4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUp
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
cHJlcGFyZVN0YXRlbWVudHMpOgorICAgICAgICBBZGRlZCBuZXcgcXVlcmllcyB0byB0aGUgZGF0
YWJhc2Ugc3RvcmUgdG8gY2hlY2sgZm9yIHN0b3JhZ2UgYWNjZXNzIGluCisgICAgICAgIHRoZSBk
YXRhYmFzZSBhbmQgYWdncmVnYXRlIHRvcEZyYW1lcyB3aXRoIHRoZSBzYW1lCisgICAgICAgIHN1
YmZyYW1lL3N1YnJlc291cmNlIHNvIGVhc2lseSBjcmVhdGUgdGhlIHN0cnVjdCBmb3IgY29sbGVj
dGluZyBkYXRhCisgICAgICAgIGZvciB0aGUgVUkuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbGF0aW9uc2hpcEV4aXN0cyBjb25zdCk6
CisgICAgICAgIEZpeGVkIGFuIGluY29ycmVjdCBmdW5jdGlvbiBuYW1lIGluIHRoZSBlcnJvciBt
ZXNzYWdlLgorCisgICAgICAgIChXZWJLaXQ6OmpvaW5TdWJTdGF0aXN0aWNzRm9yU29ydGluZyk6
CisgICAgICAgIChXZWJLaXQ6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQpOgorICAgICAgICBSZW5h
bWVkIHVuY2xlYXIgU1FMIHZhcmlhYmxlIG5hbWVzIGFuZCBhZGRlZCBhIGJpbmQgcGFyYW1ldGVy
IHRvCisgICAgICAgIHNwZWNpZnkgd2hldGhlciByZXNvdXJjZSBpcyBwcmV2YWxlbnQgb3Igbm90
LCB3aGljaCBhbGxvd3MKKyAgICAgICAgam9pblN1YlN0YXRpc3RpY3NGb3JTb3J0aW5nKCkgdG8g
YmUgdXNlZCB0byBjb2xsZWN0IHNvcnRlZCBJVFAgZGF0YQorICAgICAgICBmb3IgdGhlIFVJLgor
CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpn
ZXRGaXJzdFBhcnR5RGF0YUZvckRvbWFpbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnYXRoZXJEYXRhRm9yVXNlckludGVyZmFj
ZSBjb25zdCk6CisKKyAgICAgICAgKFdlYktpdDo6YnVpbGRRdWVyeVN0YXJ0QW5kRW5kKToKKyAg
ICAgICAgKFdlYktpdDo6Z2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVy
YWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmdldFRvcFByZXZlbGVudFJlc291cmNlRGF5c1NpbmNlVUkgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlV2l0aG91dFVzZXJJbnRlcmFj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OmdldE51bWJlck9mUHJldmFsZW50UmVzb3VyY2VzSW5U
b3BSZXNvdXJjZXMpOgorICAgICAgICBDaGFuZ2VkIHNxbCBxdWVyeSB2YXJpYWJsZSBuYW1lcyB0
byBtYWtlIHRoZW0gbW9yZSBjbGVhciBhbmQgYWRkZWQgYQorICAgICAgICBuZXcgYmluZCBwYXJh
bWV0ZXIgdG8gYWxsb3cgZm9yIG1vcmUgZ2VuZXJhbCB1c2Ugb2Ygc3Vic3RhdGlzdGljCisgICAg
ICAgIHNvcnRpbmcgcXVlcnkuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZHVtcFJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgY29uc3QpOgorICAgICAgICBDb21iaW5lZCBVSSBkYXRhIHdpdGggZHVtcFJl
c291cmNlTG9hZFN0YXRpc3RpY3MoKSBkYXRhIHRvIGtlZXAgdGhlIHRlc3RpbmcgYXNwZWN0Cisg
ICAgICAgIG9mIHRoaXMgcGF0Y2ggc2ltcGxlci4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVzb3VyY2VUb1N0cmluZyBjb25zdCk6Cisg
ICAgICAgIFNpbmNlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lIGNoYW5nZXMgd2l0aCBl
YWNoIHRlc3QgcnVuLCBJCisgICAgICAgIHVwZGF0ZWQgdGhlIGR1bXBpbmcgdG8gcmVwb3J0IG9u
bHkgaWYgaXQgd2FzIGluIHRoZSBsYXN0IDI0IGhvdXJzIGFzCisgICAgICAgIG9wcG9zZWQgdG8g
cmVwb3J0aW5nIGFuIGFjdHVhbCB0aW1lLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0
b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZW5zdXJlRmlyc3RQYXJ0eVN0YXRpc3RpYyk6Cisg
ICAgICAgIChXZWJLaXQ6OmdldEZpcnN0UGFydHlEYXRhRm9yRG9tYWluKToKKyAgICAgICAgKFdl
YktpdDo6aXNUaGlyZFBhcnR5KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlz
dGljc01lbW9yeVN0b3JlOjpnYXRoZXJEYXRhRm9yVXNlckludGVyZmFjZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6ZHVtcFJlc291
cmNlTG9hZFN0YXRpc3RpY3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
Z2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgIChXZWJL
aXQ6OkZpcnN0UGFydHlEYXRhOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkZp
cnN0UGFydHlEYXRhOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VGhpcmRQ
YXJ0eURhdGE6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VGhpcmRQYXJ0eURh
dGE6Om9wZXJhdG9yPCBjb25zdCk6CisgICAgICAgIFRoZSB0b1N0cmluZyBtZXRob2RzIGFsbG93
IHRoZSBzdHJ1Y3RzIHRvIGJlIHByaW50ZWQgZm9yIHRlc3RpbmcKKyAgICAgICAgcHVycG9zZXMu
IFRoZSBlcXVhbHMgbWV0aG9kcyBhbGxvdyB0aGUgcmV0dXJuIHZlY3RvcnMgdG8gdXNlCisgICAg
ICAgIGFwcGVuZElmTm90Q29udGFpbnMuCisKIDIwMTktMTItMDIgIFlvc2hpYWtpIEppdHN1a2F3
YSAgPHlvc2hpYWtpLmppdHN1a2F3YUBzb255LmNvbT4KIAogICAgICAgICBSZXNwb25zaXZlbmVz
c1RpbWVyIG1pc3Rha2VubHkgcmVzdGFydHMgaW1tZWRpYXRlbHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcAppbmRleCA1NDc4MWY4ZGI4ZjEx
MGQ1N2UxOTc1OTU1NWJmNTc4NWJkODk2N2JhLi4zY2MyODhhMzY1ZGUzZWE5OWVlZTcyZTdiZmNj
N2M3OGI5M2NiOTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAorI2RlZmlu
ZSBTRUNPTkRTX0lOX0RBWSA4NjQwMAorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBT
ZWNvbmRzIHRpbWVzdGFtcFJlc29sdXRpb24geyA1X3MgfTsKQEAgLTQxMyw2ICs0MTUsMTEgQEAg
c3RhdGljIHZvaWQgYXBwZW5kU2NyZWVuQVBJT3B0aW9uU2V0KFN0cmluZ0J1aWxkZXImIGJ1aWxk
ZXIsIGNvbnN0IE9wdGlvblNldDxSZXMKIH0KICNlbmRpZgogCitzdGF0aWMgYm9vbCBoYXNIYWRS
ZWNlbnRVc2VySW50ZXJhY3Rpb24oZG91YmxlIGludGVyYWN0aW9uVGltZVNlY29uZHMpCit7Cisg
ICAgcmV0dXJuIGludGVyYWN0aW9uVGltZVNlY29uZHMgPiAwICYmIFdhbGxUaW1lOjpub3coKS5z
ZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgLSBpbnRlcmFjdGlvblRpbWVTZWNvbmRzIDwgU0VD
T05EU19JTl9EQVk7Cit9CisKIFN0cmluZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjp0b1N0cmlu
ZygpIGNvbnN0CiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwpAQCAtNDI0LDcgKzQzMSwx
MCBAQCBTdHJpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6dG9TdHJpbmcoKSBjb25zdAogICAg
IGFwcGVuZEJvb2xlYW4oYnVpbGRlciwgImhhZFVzZXJJbnRlcmFjdGlvbiIsIGhhZFVzZXJJbnRl
cmFjdGlvbik7CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCIgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogIik7Ci0gICAgYnVpbGRlci5h
cHBlbmRGaXhlZFByZWNpc2lvbk51bWJlcihtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZS5z
ZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgIGlmIChoYXNIYWRSZWNlbnRVc2VySW50
ZXJhY3Rpb24obW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUuc2Vjb25kc1NpbmNlRXBvY2go
KS52YWx1ZSgpKSkKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ3aXRoaW4gMjQgaG91
cnMiKTsKKyAgICBlbHNlCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLTEiKTsKICAg
ICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICBhcHBlbmRCb29sZWFuKGJ1aWxkZXIsICJncmFu
ZGZhdGhlcmVkIiwgZ3JhbmRmYXRoZXJlZCk7CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNw
cAppbmRleCBjYzIwZGE3ODA3YzQ4OTc2YTgxMTNlMjVhNTBmZGVhOGNmYTY5OWQ5Li42NGUyNjJm
ODJkMTQ4ODk3MmUxYWZiYTgyNmZmMDIwODkyOGNmNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTYzLDYgKzYzLDgg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQoc2Vzc2lvbklELCBmbXQsIC4uLikgICgodm9pZCkwKQogI2VuZGlmCiAKKyNkZWZp
bmUgU0VDT05EU19JTl9EQVkgODY0MDAKKwogLy8gQ09VTlQgUXVlcmllcwogY29uc3RleHByIGF1
dG8gb2JzZXJ2ZWREb21haW5Db3VudFF1ZXJ5ID0gIlNFTEVDVCBDT1VOVCgqKSBGUk9NIE9ic2Vy
dmVkRG9tYWlucyJfczsKIGNvbnN0ZXhwciBhdXRvIGNvdW50U3ViZnJhbWVVbmRlclRvcEZyYW1l
UXVlcnkgPSAiU0VMRUNUIENPVU5UKCopIEZST00gU3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlu
cyBXSEVSRSBzdWJGcmFtZURvbWFpbklEID0gPyBBTkQgdG9wRnJhbWVEb21haW5JRCA9ID87Il9z
OwpAQCAtOTksNiArMTAxLDcgQEAgY29uc3RleHByIGF1dG8gdG9wRnJhbWVMaW5rRGVjb3JhdGlv
bnNGcm9tRXhpc3RzUXVlcnkgPSAiU0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEKICAgICAiQU5EIGZy
b21Eb21haW5JRCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUg
cmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7CiBjb25zdGV4cHIgYXV0byB0b3BGcmFtZUxvYWRl
ZFRoaXJkUGFydHlTY3JpcHRzRXhpc3RzUXVlcnkgPSAiU0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEg
RlJPTSBUb3BGcmFtZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzIFdIRVJFIHRvcEZyYW1lRG9tYWlu
SUQgPSA/ICIKICAgICAiQU5EIHN1YnJlc291cmNlRG9tYWluSUQgPSAoU0VMRUNUIGRvbWFpbklE
IEZST00gT2JzZXJ2ZWREb21haW5zIFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPykpIl9zOwor
Y29uc3RleHByIGF1dG8gc3RvcmFnZUFjY2Vzc0V4aXN0c1F1ZXJ5ID0gIlNFTEVDVCBFWElTVFMg
KFNFTEVDVCAxIEZST00gU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIGRv
bWFpbklEID0gPyBBTkQgdG9wTGV2ZWxEb21haW5JRCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBP
YnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7CiAKIC8vIFVQ
REFURSBRdWVyaWVzCiBjb25zdGV4cHIgYXV0byBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uUXVl
cnkgPSAiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgaGFkVXNlckludGVyYWN0aW9uID0gPywg
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgPSA/ICIKQEAgLTEyMSw2ICsxMjQsOSBAQCBj
b25zdGV4cHIgYXV0byBpc0dyYW5kZmF0aGVyZWRRdWVyeSA9ICJTRUxFQ1QgZ3JhbmRmYXRoZXJl
ZCBGUk9NIE9ic2VydmVkRG9tYWlucwogY29uc3RleHByIGF1dG8gZmluZEV4cGlyZWRVc2VySW50
ZXJhY3Rpb25RdWVyeSA9ICJTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hF
UkUgaGFkVXNlckludGVyYWN0aW9uID0gMSBBTkQgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRp
bWUgPCA/Il9zOwogY29uc3RleHByIGF1dG8gZ2V0UmVzb3VyY2VEYXRhQnlEb21haW5OYW1lUXVl
cnkgPSAiU0VMRUNUICogRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21h
aW4gPSA/IjsKIGNvbnN0ZXhwciBhdXRvIGdldEFsbERvbWFpbnNRdWVyeSA9ICJTRUxFQ1QgcmVn
aXN0cmFibGVEb21haW4gRlJPTSBPYnNlcnZlZERvbWFpbnMiX3M7Citjb25zdGV4cHIgYXV0byBn
ZXRBbGxTdWJTdGF0aXN0aWNzVW5kZXJEb21haW5RdWVyeSA9ICJTRUxFQ1QgdG9wRnJhbWVEb21h
aW5JRCBGUk9NIFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgc3ViRnJhbWVEb21h
aW5JRCA9ID8iCisgICAgIlVOSU9OIEFMTCBTRUxFQ1QgdG9wRnJhbWVEb21haW5JRCBGUk9NIFN1
YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9
ID8iCisgICAgIlVOSU9OIEFMTCBTRUxFQ1QgdG9Eb21haW5JRCBGUk9NIFN1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzVG8gV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8iX3M7CiAKIGNvbnN0
IGNoYXIqIHRhYmxlc1tdID0gewogICAgICJPYnNlcnZlZERvbWFpbnMiLApAQCAtMjYyLDYgKzI2
OCw4IEBAIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZShXZWJSZXNvCiAgICAgLCBtX2dldFJlc291cmNlRGF0YUJ5
RG9tYWluTmFtZVN0YXRlbWVudChtX2RhdGFiYXNlLCBnZXRSZXNvdXJjZURhdGFCeURvbWFpbk5h
bWVRdWVyeSkKICAgICAsIG1fZ2V0QWxsRG9tYWluc1N0YXRlbWVudChtX2RhdGFiYXNlLCBnZXRB
bGxEb21haW5zUXVlcnkpCiAgICAgLCBtX2RvbWFpblN0cmluZ0Zyb21Eb21haW5JRFN0YXRlbWVu
dChtX2RhdGFiYXNlLCBkb21haW5TdHJpbmdGcm9tRG9tYWluSURRdWVyeSkKKyAgICAsIG1fZ2V0
QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVudChtX2RhdGFiYXNlLCBnZXRBbGxTdWJTdGF0aXN0aWNz
VW5kZXJEb21haW5RdWVyeSkKKyAgICAsIG1fc3RvcmFnZUFjY2Vzc0V4aXN0c1N0YXRlbWVudCht
X2RhdGFiYXNlLCBzdG9yYWdlQWNjZXNzRXhpc3RzUXVlcnkpCiAgICAgLCBtX3Nlc3Npb25JRChz
ZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CkBAIC01MDMsNiAr
NTExLDggQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFy
ZVN0YXRlbWVudHMoKQogICAgICAgICB8fCBtX2dldFJlc291cmNlRGF0YUJ5RG9tYWluTmFtZVN0
YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fZ2V0QWxsRG9tYWlu
c1N0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fZG9tYWluU3Ry
aW5nRnJvbURvbWFpbklEU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAg
fHwgbV9nZXRBbGxTdWJTdGF0aXN0aWNzU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sK
KyAgICAgICAgfHwgbV9zdG9yYWdlQWNjZXNzRXhpc3RzU3RhdGVtZW50LnByZXBhcmUoKSAhPSBT
UUxJVEVfT0sKICAgICAgICAgKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmss
ICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVt
ZW50cyBmYWlsZWQgdG8gcHJlcGFyZSwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMs
IG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTU2MCw3ICs1NzAsNyBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpyZWxhdGlvbnNoaXBFeGlzdHMoV2ViQ29yZTo6U1FMaXRlU3RhdAogICAgIGlmIChz
dGF0ZW1lbnQuYmluZEludCgxLCAqZmlyc3REb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAgICAg
IHx8IHN0YXRlbWVudC5iaW5kVGV4dCgyLCBzZWNvbmREb21haW4uc3RyaW5nKCkpICE9IFNRTElU
RV9PSwogICAgICAgICB8fCBzdGF0ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1faW5zZXJ0RG9tYWluUmVsYXRpb25zaGlw
U3RhdGVtZW50IGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRo
aXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cmVsYXRpb25zaGlwRXhpc3RzIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNz
YWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
QEAgLTc1NSwxOSArNzY1LDE5IEBAIHN0YXRpYyBjb25zdCBTdHJpbmdWaWV3IGpvaW5TdWJTdGF0
aXN0aWNzRm9yU29ydGluZygpCiB7CiAgICAgcmV0dXJuIFIicXVlcnkoCiAgICAgICAgIGRvbWFp
bklELAotICAgICAgICAoY250MSArIGNudDIgKyBjbnQzKSBhcyBzdW0KKyAgICAgICAgKGNvdW50
U3ViRnJhbWVVbmRlclRvcEZyYW1lICsgY291bnRTdWJSZXNvdXJjZVVuZGVyVG9wRnJhbWUgKyBj
b3VudFVuaXF1ZVJlZGlyZWN0VG8pIGFzIHN1bQogICAgICAgICBGUk9NICgKICAgICAgICAgU0VM
RUNUCiAgICAgICAgICAgICBkb21haW5JRCwKLSAgICAgICAgICAgIENPVU5UKERJU1RJTkNUIGYu
dG9wRnJhbWVEb21haW5JRCkgYXMgY250MSwKLSAgICAgICAgICAgIENPVU5UKERJU1RJTkNUIHIu
dG9wRnJhbWVEb21haW5JRCkgYXMgY250MiwKLSAgICAgICAgICAgIENPVU5UKERJU1RJTkNUIHRv
RG9tYWluSUQpIGFzIGNudDMKKyAgICAgICAgICAgIENPVU5UKERJU1RJTkNUIGYudG9wRnJhbWVE
b21haW5JRCkgYXMgY291bnRTdWJGcmFtZVVuZGVyVG9wRnJhbWUsCisgICAgICAgICAgICBDT1VO
VChESVNUSU5DVCByLnRvcEZyYW1lRG9tYWluSUQpIGFzIGNvdW50U3ViUmVzb3VyY2VVbmRlclRv
cEZyYW1lLAorICAgICAgICAgICAgQ09VTlQoRElTVElOQ1QgdG9Eb21haW5JRCkgYXMgY291bnRV
bmlxdWVSZWRpcmVjdFRvCiAgICAgICAgIEZST00KICAgICAgICAgT2JzZXJ2ZWREb21haW5zIG8K
ICAgICAgICAgTEVGVCBKT0lOIFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMgZiBPTiBvLmRv
bWFpbklEID0gZi5zdWJGcmFtZURvbWFpbklECiAgICAgICAgIExFRlQgSk9JTiBTdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVEb21haW5zIHIgT04gby5kb21haW5JRCA9IHIuc3VicmVzb3VyY2VEb21h
aW5JRAogICAgICAgICBMRUZUIEpPSU4gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyB1IE9O
IG8uZG9tYWluSUQgPSB1LnN1YnJlc291cmNlRG9tYWluSUQKLSAgICAgICAgV0hFUkUgaXNQcmV2
YWxlbnQgPSAxCisgICAgICAgIFdIRVJFIGlzUHJldmFsZW50IExJS0UgPwogICAgICAgICBhbmQg
aGFkVXNlckludGVyYWN0aW9uIExJS0UgPwogICAgICAgICBHUk9VUCBCWSBkb21haW5JRCkgT1JE
RVIgQlkgc3VtIERFU0MKICAgICAgICAgKXF1ZXJ5IjsKQEAgLTc3OCwxNSArNzg4LDYxIEBAIHN0
YXRpYyBTUUxpdGVTdGF0ZW1lbnQgbWFrZU1lZGlhbldpdGhVSVF1ZXJ5KFNRTGl0ZURhdGFiYXNl
JiBkYXRhYmFzZSkKICAgICByZXR1cm4gU1FMaXRlU3RhdGVtZW50KGRhdGFiYXNlLCBtYWtlU3Ry
aW5nKCJTRUxFQ1QgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgRlJPTSBPYnNlcnZlZERv
bWFpbnMgSU5ORVIgSk9JTiAoU0VMRUNUICIsIGpvaW5TdWJTdGF0aXN0aWNzRm9yU29ydGluZygp
LCAiKSBhcyBxIE9OIE9ic2VydmVkRG9tYWlucy5kb21haW5JRCA9IHEuZG9tYWluSUQgTElNSVQg
MSBPRkZTRVQgPyIpKTsKIH0KIAorVmVjdG9yPEZpcnN0UGFydHlEYXRhPiBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0Rmlyc3RQYXJ0eURhdGFGb3JEb21haW4odW5zaWdu
ZWQgZG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5TdHJpbmcpIGNvbnN0
Cit7CisgICAgaWYgKG1fZ2V0QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVudC5iaW5kSW50KDEsIGRv
bWFpbklEKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgbV9nZXRBbGxTdWJTdGF0aXN0aWNzU3Rh
dGVtZW50LmJpbmRJbnQoMiwgZG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBtX2dl
dEFsbFN1YlN0YXRpc3RpY3NTdGF0ZW1lbnQuYmluZEludCgzLCBkb21haW5JRCkgIT0gU1FMSVRF
X09LKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0Rmlyc3RQYXJ0eURhdGFGb3JEb21haW4sIGVycm9y
IG1lc3NhZ2U6ICV7cHVibGljfXMiLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIFZlY3RvcjxGaXJzdFBhcnR5RGF0
YT4gZmlyc3RQYXJ0eURhdGFMaXN0OworICAgIHdoaWxlIChtX2dldEFsbFN1YlN0YXRpc3RpY3NT
dGF0ZW1lbnQuc3RlcCgpID09IFNRTElURV9ST1cpIHsKKyAgICAgICAgUmVnaXN0cmFibGVEb21h
aW4gZmlyc3RQYXJ0eURvbWFpbiA9IFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVG
cm9tUmVnaXN0cmFibGVEb21haW5TdHJpbmcoZ2V0RG9tYWluU3RyaW5nRnJvbURvbWFpbklEKG1f
Z2V0QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCkpKTsKKyAgICAgICAg
Zmlyc3RQYXJ0eURhdGFMaXN0LmFwcGVuZElmTm90Q29udGFpbnMoRmlyc3RQYXJ0eURhdGEgeyBm
aXJzdFBhcnR5RG9tYWluLCBoYXNTdG9yYWdlQWNjZXNzKGZpcnN0UGFydHlEb21haW4sIGRvbWFp
blN0cmluZykgfSk7CisgICAgfQorCisgICAgcmVzZXRTdGF0ZW1lbnQobV9nZXRBbGxTdWJTdGF0
aXN0aWNzU3RhdGVtZW50KTsKKyAgICByZXR1cm4gZmlyc3RQYXJ0eURhdGFMaXN0OworfQorCitz
dGF0aWMgYm9vbCBpc1RoaXJkUGFydHkodW5zaWduZWQgdGltZXNVbmRlckZpcnN0UGFydHkpCit7
CisgICAgcmV0dXJuIHRpbWVzVW5kZXJGaXJzdFBhcnR5ID4gMDsKK30KKworVmVjdG9yPFRoaXJk
UGFydHlEYXRhPiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2F0aGVyRGF0
YUZvclVzZXJJbnRlcmZhY2UoKSBjb25zdAoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOworCisgICAgVmVjdG9yPFRoaXJkUGFydHlEYXRhPiB0aGlyZFBhcnR5RGF0YUxpc3Q7Cisg
ICAgU1FMaXRlU3RhdGVtZW50IHNvcnRlZFN0YXRpc3RpY3MobV9kYXRhYmFzZSwgbWFrZVN0cmlu
ZygiU0VMRUNUICIsIGpvaW5TdWJTdGF0aXN0aWNzRm9yU29ydGluZygpKSk7CisgICAgaWYgKHNv
cnRlZFN0YXRpc3RpY3MucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCBzb3J0ZWRT
dGF0aXN0aWNzLmJpbmRUZXh0KDEsICIlIikKKyAgICAgICAgfHwgc29ydGVkU3RhdGlzdGljcy5i
aW5kVGV4dCgyLCAiJSIpICE9IFNRTElURV9PSykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdhdGhlckRh
dGFGb3JVc2VySW50ZXJmYWNlLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm4gdGhpcmRQYXJ0eURhdGFMaXN0OworICAgIH0KKyAgICB3aGlsZSAoc29ydGVkU3Rh
dGlzdGljcy5zdGVwKCkgPT0gU1FMSVRFX1JPVykgeworICAgICAgICBpZiAoaXNUaGlyZFBhcnR5
KHNvcnRlZFN0YXRpc3RpY3MuZ2V0Q29sdW1uSW50KDEpKSkgeworICAgICAgICAgICAgYXV0byB0
aGlyZFBhcnR5RG9tYWluSUQgPSBzb3J0ZWRTdGF0aXN0aWNzLmdldENvbHVtbkludCgwKTsKKyAg
ICAgICAgICAgIGF1dG8gdGhpcmRQYXJ0eURvbWFpbiA9IFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNo
ZWNrZWRDcmVhdGVGcm9tUmVnaXN0cmFibGVEb21haW5TdHJpbmcoZ2V0RG9tYWluU3RyaW5nRnJv
bURvbWFpbklEKHRoaXJkUGFydHlEb21haW5JRCkpOworICAgICAgICAgICAgdGhpcmRQYXJ0eURh
dGFMaXN0LmFwcGVuZChUaGlyZFBhcnR5RGF0YSB7IHRoaXJkUGFydHlEb21haW4sIGdldEZpcnN0
UGFydHlEYXRhRm9yRG9tYWluKHRoaXJkUGFydHlEb21haW5JRCwgdGhpcmRQYXJ0eURvbWFpbikg
fSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRoaXJkUGFydHlEYXRhTGlzdDsKK30K
Kwogc3RhdGljIHN0ZDo6cGFpcjxTdHJpbmdWaWV3LCBTdHJpbmdWaWV3PiBidWlsZFF1ZXJ5U3Rh
cnRBbmRFbmQoUHJldmFsZW50UmVzb3VyY2VEYXRhYmFzZVRlbGVtZXRyeTo6U3RhdGlzdGljIHN0
YXRpc3RpYykKIHsKICAgICBzd2l0Y2ggKHN0YXRpc3RpYykgewogICAgIGNhc2UgUHJldmFsZW50
UmVzb3VyY2VEYXRhYmFzZVRlbGVtZXRyeTo6U3RhdGlzdGljOjpNZWRpYW5TdWJGcmFtZVdpdGhv
dXRVSToKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKCJTRUxFQ1QgY250MSBGUk9NIE9i
c2VydmVkRG9tYWlucyBvIElOTkVSIEpPSU4oU0VMRUNUIGNudDEsICIsICIpIGFzIHEgT04gby5k
b21haW5JRCA9IHEuZG9tYWluSUQgTElNSVQgMSBPRkZTRVQgPyIpOworICAgICAgICByZXR1cm4g
c3RkOjptYWtlX3BhaXIoIlNFTEVDVCBjb3VudFN1YkZyYW1lVW5kZXJUb3BGcmFtZSBGUk9NIE9i
c2VydmVkRG9tYWlucyBvIElOTkVSIEpPSU4oU0VMRUNUIGNvdW50U3ViRnJhbWVVbmRlclRvcEZy
YW1lLCAiLCAiKSBhcyBxIE9OIG8uZG9tYWluSUQgPSBxLmRvbWFpbklEIExJTUlUIDEgT0ZGU0VU
ID8iKTsKICAgICBjYXNlIFByZXZhbGVudFJlc291cmNlRGF0YWJhc2VUZWxlbWV0cnk6OlN0YXRp
c3RpYzo6TWVkaWFuU3ViUmVzb3VyY2VXaXRob3V0VUk6Ci0gICAgICAgIHJldHVybiBzdGQ6Om1h
a2VfcGFpcigiU0VMRUNUIGNudDIgRlJPTSBPYnNlcnZlZERvbWFpbnMgbyBJTk5FUiBKT0lOKFNF
TEVDVCBjbnQyLCAiLCAiKSBhcyBxIE9OIG8uZG9tYWluSUQgPSBxLmRvbWFpbklEIExJTUlUIDEg
T0ZGU0VUID8iKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKCJTRUxFQ1QgY291bnRT
dWJSZXNvdXJjZVVuZGVyVG9wRnJhbWUgRlJPTSBPYnNlcnZlZERvbWFpbnMgbyBJTk5FUiBKT0lO
KFNFTEVDVCBjb3VudFN1YlJlc291cmNlVW5kZXJUb3BGcmFtZSwgIiwgIikgYXMgcSBPTiBvLmRv
bWFpbklEID0gcS5kb21haW5JRCBMSU1JVCAxIE9GRlNFVCA/Iik7CiAgICAgY2FzZSBQcmV2YWxl
bnRSZXNvdXJjZURhdGFiYXNlVGVsZW1ldHJ5OjpTdGF0aXN0aWM6Ok1lZGlhblVuaXF1ZVJlZGly
ZWN0c1dpdGhvdXRVSToKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKCJTRUxFQ1QgY250
MyBGUk9NIE9ic2VydmVkRG9tYWlucyBvIElOTkVSIEpPSU4oU0VMRUNUIGNudDMsICIsICIpIGFz
IHEgT04gby5kb21haW5JRCA9IHEuZG9tYWluSUQgTElNSVQgMSBPRkZTRVQgPyIpOworICAgICAg
ICByZXR1cm4gc3RkOjptYWtlX3BhaXIoIlNFTEVDVCBjb3VudFVuaXF1ZVJlZGlyZWN0VG8gRlJP
TSBPYnNlcnZlZERvbWFpbnMgbyBJTk5FUiBKT0lOKFNFTEVDVCBjb3VudFVuaXF1ZVJlZGlyZWN0
VG8sICIsICIpIGFzIHEgT04gby5kb21haW5JRCA9IHEuZG9tYWluSUQgTElNSVQgMSBPRkZTRVQg
PyIpOwogICAgIGNhc2UgUHJldmFsZW50UmVzb3VyY2VEYXRhYmFzZVRlbGVtZXRyeTo6U3RhdGlz
dGljOjpNZWRpYW5EYXRhUmVjb3Jkc1JlbW92ZWRXaXRob3V0VUk6CiAgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfcGFpcigiU0VMRUNUIGRhdGFSZWNvcmRzUmVtb3ZlZCBGUk9NIChTRUxFQ1QgKiBG
Uk9NIE9ic2VydmVkRG9tYWlucyBvIElOTkVSIEpPSU4oU0VMRUNUICIsICIpIGFzIHEgT04gby5k
b21haW5JRCA9IHEuZG9tYWluSUQpIExJTUlUIDEgT0ZGU0VUID8iKTsKICAgICBjYXNlIFByZXZh
bGVudFJlc291cmNlRGF0YWJhc2VUZWxlbWV0cnk6OlN0YXRpc3RpYzo6TWVkaWFuVGltZXNBY2Nl
c3NlZER1ZVRvVXNlckludGVyYWN0aW9uV2l0aG91dFVJOgpAQCAtODE4LDcgKzg3NCw3IEBAIHN0
YXRpYyB1bnNpZ25lZCBnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJh
Y3Rpb24oU1FMaXRlRGF0YWJhc2UmCiAgICAgfQogCiAgICAgLy8gQmluZAotICAgIGlmIChtZWRp
YW5EYXlzU2luY2VVSVN0YXRlbWVudC5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSyB8fCBtZWRp
YW5EYXlzU2luY2VVSVN0YXRlbWVudC5iaW5kSW50KDIsIChwcmV2YWxlbnRSZXNvdXJjZXNXaXRo
VXNlckludGVyYWN0aW9uQ291bnQgLyAyKSAhPSBTUUxJVEVfT0spKSB7CisgICAgaWYgKG1lZGlh
bkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LIHx8IG1lZGlh
bkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMiwgMSkgIT0gU1FMSVRFX09LIHx8IG1lZGlh
bkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMywgKHByZXZhbGVudFJlc291cmNlc1dpdGhV
c2VySW50ZXJhY3Rpb25Db3VudCAvIDIpICE9IFNRTElURV9PSykpIHsKICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIGVycm9y
IG1lc3NhZ2U6ICV7cHVibGljfXMiLCBkYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gMDsKQEAgLTg0Nyw3ICs5MDMs
NyBAQCBzdGF0aWMgdW5zaWduZWQgZ2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNl
ckludGVyYWN0aW9uKFNRTGl0ZURhdGFiYXNlJgogICAgIH0KIAogICAgIC8vIEJpbmQKLSAgICBp
ZiAobG93ZXJNZWRpYW5EYXlzU2luY2VVSVN0YXRlbWVudC5iaW5kSW50KDEsIDEpICE9IFNRTElU
RV9PSyB8fCBsb3dlck1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMiwgKChwcmV2
YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uQ291bnQgLSAxKSAvIDIpKSAhPSBTUUxJ
VEVfT0spIHsKKyAgICBpZiAobG93ZXJNZWRpYW5EYXlzU2luY2VVSVN0YXRlbWVudC5iaW5kSW50
KDEsIDEpICE9IFNRTElURV9PSyB8fCBsb3dlck1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJp
bmRJbnQoMiwgMSkgIT0gU1FMSVRFX09LIHx8IGxvd2VyTWVkaWFuRGF5c1NpbmNlVUlTdGF0ZW1l
bnQuYmluZEludCgzLCAoKHByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb25Db3Vu
dCAtIDEpIC8gMikpICE9IFNRTElURV9PSykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihO
ZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldE1lZGlhbk9m
UHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgZXJyb3IgbWVzc2FnZTogJXtw
dWJsaWN9cyIsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwpAQCAtOTAwLDcgKzk1Niw4IEBAIHVuc2lnbmVk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRUb3BQcmV2ZWxlbnRSZXNv
dXJjZURheXNTaW5jZVVJCiAgICAgfQogICAgIAogICAgIC8vIEJpbmQKLSAgICBpZiAodG9wUHJl
dmFsZW50UmVzb3VyY2VXaXRoVXNlckludGVyYWN0aW9uRGF5c1NpbmNlVXNlckludGVyYWN0aW9u
U3RhdGVtZW50LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LKSB7CisgICAgaWYgKHRvcFByZXZh
bGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNTaW5jZVVzZXJJbnRlcmFjdGlvblN0
YXRlbWVudC5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSworICAgICAgICB8fCB0b3BQcmV2YWxl
bnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VVc2VySW50ZXJhY3Rpb25TdGF0
ZW1lbnQuYmluZEludCgyLCAxKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0b3BQ
cmV2YWxlbnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VVc2VySW50ZXJhY3Rp
b25TdGF0ZW1lbnQgcXVlcnkgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGlj
fXMiLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIHJldHVybiAwOwpAQCAtOTI3LDggKzk4NCw5IEBAIHN0YXRpYyB1bnNp
Z25lZCBnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlV2l0aG91dFVzZXJJbnRlcmFjdGlvbihT
UUxpdGVEYXRhYmFzCiAgICAgU1FMaXRlU3RhdGVtZW50IGdldE1lZGlhblN0YXRpc3RpYyA9IG1h
a2VNZWRpYW5XaXRob3V0VUlRdWVyeShkYXRhYmFzZSwgc3RhdGlzdGljKTsKIAogICAgIGlmIChn
ZXRNZWRpYW5TdGF0aXN0aWMucHJlcGFyZSgpID09IFNRTElURV9PSykgewotICAgICAgICBpZiAo
Z2V0TWVkaWFuU3RhdGlzdGljLmJpbmRJbnQoMSwgMCkgIT0gU1FMSVRFX09LCi0gICAgICAgICAg
ICB8fCBnZXRNZWRpYW5TdGF0aXN0aWMuYmluZEludCgyLCAoYnVja2V0U2l6ZSAvIDIpKSAhPSBT
UUxJVEVfT0spIHsKKyAgICAgICAgaWYgKGdldE1lZGlhblN0YXRpc3RpYy5iaW5kSW50KDEsIDEp
ICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgZ2V0TWVkaWFuU3RhdGlzdGljLmJpbmRJbnQo
MiwgMCkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBnZXRNZWRpYW5TdGF0aXN0aWMuYmlu
ZEludCgzLCAoYnVja2V0U2l6ZSAvIDIpKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6bWFrZU1lZGlhbldpdGhvdXRVSVF1ZXJ5LCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31z
IiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTk0Myw3ICsxMDAxLDggQEAgc3RhdGlj
IHVuc2lnbmVkIGdldE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2VXaXRob3V0VXNlckludGVyYWN0
aW9uKFNRTGl0ZURhdGFiYXMKICAgICBTUUxpdGVTdGF0ZW1lbnQgZ2V0TG93ZXJNZWRpYW5TdGF0
aXN0aWMgPSBtYWtlTWVkaWFuV2l0aG91dFVJUXVlcnkoZGF0YWJhc2UsIHN0YXRpc3RpYyk7CiAK
ICAgICBpZiAoZ2V0TG93ZXJNZWRpYW5TdGF0aXN0aWMucHJlcGFyZSgpID09IFNRTElURV9PSykg
ewotICAgICAgICBpZiAoZ2V0TG93ZXJNZWRpYW5TdGF0aXN0aWMuYmluZEludCgxLCAwKSAhPSBT
UUxJVEVfT0sKKyAgICAgICAgaWYgKGdldExvd2VyTWVkaWFuU3RhdGlzdGljLmJpbmRJbnQoMSwg
MSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBnZXRMb3dlck1lZGlhblN0YXRpc3RpYy5i
aW5kSW50KDIsIDApICE9IFNRTElURV9PSwogICAgICAgICAgICAgfHwgZ2V0TG93ZXJNZWRpYW5T
dGF0aXN0aWMuYmluZEludCgyLCAoKGJ1Y2tldFNpemUtMSkgLyAyKSkgIT0gU1FMSVRFX09LKSB7
CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6Om1ha2VNZWRpYW5XaXRob3V0VUlRdWVyeSwgZXJyb3IgbWVz
c2FnZTogJXtwdWJsaWN9cyIsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtOTYxLDggKzEwMjAsOSBAQCBzdGF0aWMgdW5zaWdu
ZWQgZ2V0TnVtYmVyT2ZQcmV2YWxlbnRSZXNvdXJjZXNJblRvcFJlc291cmNlcyhTUUxpdGVEYXRh
YmFzZSYgZGF0YQogICAgIFNRTGl0ZVN0YXRlbWVudCBwcmV2YWxlbnRSZXNvdXJjZUNvdW50SW5U
b3AoZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBDT1VOVCgqKSBGUk9NIChTRUxFQ1QgKiBG
Uk9NIE9ic2VydmVkRG9tYWlucyBvIElOTkVSIEpPSU4oU0VMRUNUICIsIGpvaW5TdWJTdGF0aXN0
aWNzRm9yU29ydGluZygpLCAiKSBhcyBxIG9uIHEuZG9tYWluSUQgPSBvLmRvbWFpbklEIExJTUlU
ID8pIGFzIHAgV0hFUkUgcC5oYWRVc2VySW50ZXJhY3Rpb24gPSAxOyIpKTsKIAogICAgIGlmIChw
cmV2YWxlbnRSZXNvdXJjZUNvdW50SW5Ub3AucHJlcGFyZSgpID09IFNRTElURV9PSykgewotICAg
ICAgICBpZiAocHJldmFsZW50UmVzb3VyY2VDb3VudEluVG9wLmJpbmRUZXh0KDEsICIlIikgIT0g
U1FMSVRFX09LCi0gICAgICAgICAgICB8fCBwcmV2YWxlbnRSZXNvdXJjZUNvdW50SW5Ub3AuYmlu
ZEludCgyLCBidWNrZXRTaXplKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgaWYgKHByZXZhbGVu
dFJlc291cmNlQ291bnRJblRvcC5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSworICAgICAgICAg
ICAgfHwgcHJldmFsZW50UmVzb3VyY2VDb3VudEluVG9wLmJpbmRUZXh0KDIsICIlIikgIT0gU1FM
SVRFX09LCisgICAgICAgICAgICB8fCBwcmV2YWxlbnRSZXNvdXJjZUNvdW50SW5Ub3AuYmluZElu
dCgzLCBidWNrZXRTaXplKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0
TnVtYmVyT2ZQcmV2YWxlbnRSZXNvdXJjZXNJblRvcFJlc291cmNlcywgZXJyb3IgbWVzc2FnZTog
JXtwdWJsaWN9cyIsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0xMjUxLDYgKzEzMTEs
MTEgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c3luY1N0b3Jh
Z2VJbW1lZGlhdGVseSgpCiAgICAgbV9kYXRhYmFzZS5ydW5WYWN1dW1Db21tYW5kKCk7CiB9CiAK
K2Jvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nl
c3MoY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBjb25zdCBTdWJGcmFtZURv
bWFpbiYgc3ViRnJhbWVEb21haW4pIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlbGF0aW9uc2hpcEV4
aXN0cyhtX3N0b3JhZ2VBY2Nlc3NFeGlzdHNTdGF0ZW1lbnQsIGRvbWFpbklEKHN1YkZyYW1lRG9t
YWluKSwgdG9wRnJhbWVEb21haW4pOworfQorCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzdWJG
cmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTE2MTgsNyArMTY4MywxNSBAQCB2b2lkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyhDb21wbGV0aW9uSAogICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJSZXNvdXJjZSBsb2FkIHN0
YXRpc3RpY3M6XG5cbiIpOwogICAgIHdoaWxlIChtX2dldEFsbERvbWFpbnNTdGF0ZW1lbnQuc3Rl
cCgpID09IFNRTElURV9ST1cpCiAgICAgICAgIHJlc291cmNlVG9TdHJpbmcocmVzdWx0LCBtX2dl
dEFsbERvbWFpbnNTdGF0ZW1lbnQuZ2V0Q29sdW1uVGV4dCgwKSk7Ci0gICAgCisKKyAgICBhdXRv
IHRoaXJkUGFydHlEYXRhID0gZ2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UoKTsKKyAgICBpZiAo
IXRoaXJkUGFydHlEYXRhLmlzRW1wdHkoKSkgeworICAgICAgICByZXN1bHQuYXBwZW5kKCJcbklU
UCBVc2VyIEludGVyZmFjZSBEYXRhOlxuIik7CisgICAgICAgIGZvciAoYXV0byB0aGlyZFBhcnR5
IDogdGhpcmRQYXJ0eURhdGEpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodGhpcmRQYXJ0
eS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJyk7CisgICAgICAg
IH0KKyAgICB9CiAgICAgcmVzZXRTdGF0ZW1lbnQobV9nZXRBbGxEb21haW5zU3RhdGVtZW50KTsK
ICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQudG9TdHJpbmcoKSk7CiB9CkBAIC0yMzQ3LDYg
KzI0MjAsMTEgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YXBw
ZW5kU3ViU3RhdGlzdGljTGlzdChTdHJpbmdCdWlsZGVyJgogICAgIH0KIH0KIAorc3RhdGljIGJv
b2wgaGFzSGFkUmVjZW50VXNlckludGVyYWN0aW9uKGRvdWJsZSBpbnRlcmFjdGlvblRpbWVTZWNv
bmRzKQoreworICAgIHJldHVybiBpbnRlcmFjdGlvblRpbWVTZWNvbmRzID4gMCAmJiBXYWxsVGlt
ZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpIC0gaW50ZXJhY3Rpb25UaW1lU2Vj
b25kcyA8IFNFQ09ORFNfSU5fREFZOworfQorCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpyZXNvdXJjZVRvU3RyaW5nKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNv
bnN0IFN0cmluZyYgZG9tYWluKSBjb25zdAogewogICAgIGlmIChtX2dldFJlc291cmNlRGF0YUJ5
RG9tYWluTmFtZVN0YXRlbWVudC5iaW5kVGV4dCgxLCBkb21haW4pICE9IFNRTElURV9PSwpAQCAt
MjM2NCw3ICsyNDQyLDEwIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnJlc291cmNlVG9TdHJpbmcoU3RyaW5nQnVpbGRlciYgYnVpbGRlCiAgICAgYXBwZW5kQm9v
bGVhbihidWlsZGVyLCAiaGFkVXNlckludGVyYWN0aW9uIiwgbV9nZXRSZXNvdXJjZURhdGFCeURv
bWFpbk5hbWVTdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KEhhZFVzZXJJbnRlcmFjdGlvbkluZGV4KSk7
CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIg
ICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogIik7Ci0gICAgYnVpbGRlci5hcHBlbmRGaXhl
ZFByZWNpc2lvbk51bWJlcihtX2dldFJlc291cmNlRGF0YUJ5RG9tYWluTmFtZVN0YXRlbWVudC5n
ZXRDb2x1bW5Eb3VibGUoTW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWVJbmRleCkpOworICAg
IGlmIChoYXNIYWRSZWNlbnRVc2VySW50ZXJhY3Rpb24obV9nZXRSZXNvdXJjZURhdGFCeURvbWFp
bk5hbWVTdGF0ZW1lbnQuZ2V0Q29sdW1uRG91YmxlKE1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25U
aW1lSW5kZXgpKSkKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ3aXRoaW4gMjQgaG91
cnMiKTsKKyAgICBlbHNlCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLTEiKTsKICAg
ICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICBhcHBlbmRCb29sZWFuKGJ1aWxkZXIsICJncmFu
ZGZhdGhlcmVkIiwgbV9nZXRSZXNvdXJjZURhdGFCeURvbWFpbk5hbWVTdGF0ZW1lbnQuZ2V0Q29s
dW1uSW50KEdyYW5kZmF0aGVyZWRJbmRleCkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApp
bmRleCA5Mzk2OWE5OTRmNGM0YzEwZmYzYjY3MGRmNGRmNzY4YmY4ZDRmNmQ4Li5mYzlmNTNhZjIy
Y2QwYjc2NTZjZmFlZDhkYWE5N2E4M2FlMTY2OWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtODUsNiArODUsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIG92ZXJyaWRl
OwogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IG92ZXJyaWRlOwogCisgICAgVmVjdG9yPFRoaXJk
UGFydHlEYXRhPiBnYXRoZXJEYXRhRm9yVXNlckludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZvaWQgdXBkYXRlQ29va2llQmxvY2tpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgY2xhc3NpZnlQcmV2YWxlbnRSZXNvdXJjZXMoKSBvdmVy
cmlkZTsKQEAgLTEzNyw2ICsxMzgsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgb3Bl
bklUUERhdGFiYXNlKCk7CiAgICAgYm9vbCBpc0NvcnJlY3RUYWJsZVNjaGVtYSgpOworICAgIGJv
b2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IFN1YkZyYW1l
RG9tYWluJikgY29uc3Q7CisgICAgVmVjdG9yPEZpcnN0UGFydHlEYXRhPiBnZXRGaXJzdFBhcnR5
RGF0YUZvckRvbWFpbih1bnNpZ25lZCBkb21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
KSBjb25zdDsKICAgICB2b2lkIG9wZW5BbmREcm9wT2xkRGF0YWJhc2VJZk5lY2Vzc2FyeSgpOwog
ICAgIFN0cmluZyBnZXREb21haW5TdHJpbmdGcm9tRG9tYWluSUQodW5zaWduZWQpIGNvbnN0Owog
ICAgIFN0cmluZyBnZXRTdWJTdGF0aXN0aWNTdGF0ZW1lbnQoY29uc3QgU3RyaW5nJikgY29uc3Q7
CkBAIC0yNDgsNiArMjUxLDggQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0
ZVN0YXRlbWVudCBtX2dldFJlc291cmNlRGF0YUJ5RG9tYWluTmFtZVN0YXRlbWVudDsKICAgICBt
dXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX2dldEFsbERvbWFpbnNTdGF0ZW1lbnQ7
CiAgICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9kb21haW5TdHJpbmdGcm9t
RG9tYWluSURTdGF0ZW1lbnQ7CisgICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQg
bV9nZXRBbGxTdWJTdGF0aXN0aWNzU3RhdGVtZW50OworICAgIG11dGFibGUgV2ViQ29yZTo6U1FM
aXRlU3RhdGVtZW50IG1fc3RvcmFnZUFjY2Vzc0V4aXN0c1N0YXRlbWVudDsKICAgICBQQUw6OlNl
c3Npb25JRCBtX3Nlc3Npb25JRDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKaW5kZXggYzRlN2Q0YWYyN2IxMWMwYzEwYzliODdh
YWEwZjYxYTQ0OWY2MGUzNy4uNDhhODA0MTBmOTYyZDRlNGZkNDVlZjdlYzkxYTM3Y2QxODJhMzAx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9y
ZS5jcHAKQEAgLTEwMyw2ICsxMDMsNDYgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVt
b3J5U3RvcmU6OmNhbGN1bGF0ZUFuZFN1Ym1pdFRlbGVtZXRyeSgpIGNvbnN0CiAgICAgICAgIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnk6OmNhbGN1bGF0ZUFuZFN1Ym1pdCgqdGhp
cyk7CiB9CiAKK3N0YXRpYyB2b2lkIGVuc3VyZUZpcnN0UGFydHlTdGF0aXN0aWMoVmVjdG9yPEZp
cnN0UGFydHlEYXRhPiYgZmlyc3RQYXJ0eURhdGFMaXN0LCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgZmlyc3RQYXJ0eURvbWFpbiwgYm9vbCB0aGlyZFBhcnR5SGFzU3RvcmFnZUFjY2VzcykKK3sK
KyAgICBGaXJzdFBhcnR5RGF0YSBmaXJzdFBhcnR5IHsgZmlyc3RQYXJ0eURvbWFpbiwgdGhpcmRQ
YXJ0eUhhc1N0b3JhZ2VBY2Nlc3MgfTsKKyAgICBmaXJzdFBhcnR5RGF0YUxpc3QuYXBwZW5kSWZO
b3RDb250YWlucyhmaXJzdFBhcnR5KTsKK30KKworc3RhdGljIFZlY3RvcjxGaXJzdFBhcnR5RGF0
YT4gZ2V0Rmlyc3RQYXJ0eURhdGFGb3JEb21haW4oY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyYgc3RhdGlzdGljKQoreworICAgIFZlY3RvcjxGaXJzdFBhcnR5RGF0YT4gZmlyc3RQYXJ0eURh
dGFMaXN0OworCisgICAgZm9yIChhdXRvIGZpcnN0UGFydHkgOiBzdGF0aXN0aWMuc3ViZnJhbWVV
bmRlclRvcEZyYW1lRG9tYWlucykKKyAgICAgICAgZW5zdXJlRmlyc3RQYXJ0eVN0YXRpc3RpYyhm
aXJzdFBhcnR5RGF0YUxpc3QsIGZpcnN0UGFydHksIHN0YXRpc3RpYy5zdG9yYWdlQWNjZXNzVW5k
ZXJUb3BGcmFtZURvbWFpbnMuY29udGFpbnMoZmlyc3RQYXJ0eSkpOworICAgIGZvciAoYXV0byBm
aXJzdFBhcnR5IDogc3RhdGlzdGljLnN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMpCisg
ICAgICAgIGVuc3VyZUZpcnN0UGFydHlTdGF0aXN0aWMoZmlyc3RQYXJ0eURhdGFMaXN0LCBmaXJz
dFBhcnR5LCBzdGF0aXN0aWMuc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zLmNvbnRh
aW5zKGZpcnN0UGFydHkpKTsKKyAgICBmb3IgKGF1dG8gZmlyc3RQYXJ0eSA6IHN0YXRpc3RpYy5z
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvKQorICAgICAgICBlbnN1cmVGaXJzdFBhcnR5U3Rh
dGlzdGljKGZpcnN0UGFydHlEYXRhTGlzdCwgZmlyc3RQYXJ0eSwgc3RhdGlzdGljLnN0b3JhZ2VB
Y2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlucy5jb250YWlucyhmaXJzdFBhcnR5KSk7CisKKyAgICBy
ZXR1cm4gZmlyc3RQYXJ0eURhdGFMaXN0OworfQorCitzdGF0aWMgYm9vbCBpc1RoaXJkUGFydHko
Y29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYgc3RhdGlzdGljKQoreworICAgIHJldHVybiAh
c3RhdGlzdGljLnN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMuaXNFbXB0eSgpCisgICAgICAg
IHx8ICFzdGF0aXN0aWMuc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucy5pc0VtcHR5KCkK
KyAgICAgICAgfHwgIXN0YXRpc3RpYy5zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLmlzRW1w
dHkoKTsKK30KKworVmVjdG9yPFRoaXJkUGFydHlEYXRhPiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmU6OmdhdGhlckRhdGFGb3JVc2VySW50ZXJmYWNlKCkgY29uc3QKK3sKKyAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIFZlY3RvcjxUaGlyZFBhcnR5RGF0YT4g
dGhpcmRQYXJ0eURhdGFMaXN0OworICAgIGZvciAoYXV0byYgc3RhdGlzdGljIDogbV9yZXNvdXJj
ZVN0YXRpc3RpY3NNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKGlzVGhpcmRQYXJ0eShzdGF0
aXN0aWMpKQorICAgICAgICAgICAgdGhpcmRQYXJ0eURhdGFMaXN0LmFwcGVuZChUaGlyZFBhcnR5
RGF0YSB7IHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbiwgZ2V0Rmlyc3RQYXJ0eURhdGFGb3JE
b21haW4oc3RhdGlzdGljKSB9KTsKKyAgICB9CisgICAgc3RkOjpzb3J0KHRoaXJkUGFydHlEYXRh
TGlzdC5yYmVnaW4oKSwgdGhpcmRQYXJ0eURhdGFMaXN0LnJlbmQoKSk7CisgICAgcmV0dXJuIHRo
aXJkUGFydHlEYXRhTGlzdDsKK30KKwogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmU6OmluY3JlbWVudFJlY29yZHNEZWxldGVkQ291bnRGb3JEb21haW5zKEhhc2hTZXQ8UmVn
aXN0cmFibGVEb21haW4+JiYgZG9tYWluc1dpdGhEZWxldGVkV2Vic2l0ZURhdGEpCiB7CiAgICAg
QVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CkBAIC01MTAsNiArNTUwLDE1IEBAIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyhDb21wbGV0aW9uSGFuCiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIlJlc291cmNlIGxvYWQg
c3RhdGlzdGljczpcblxuIik7CiAgICAgZm9yIChhdXRvJiBtYXBFbnRyeSA6IG1fcmVzb3VyY2VT
dGF0aXN0aWNzTWFwLnZhbHVlcygpKQogICAgICAgICByZXN1bHQuYXBwZW5kKG1hcEVudHJ5LnRv
U3RyaW5nKCkpOworCisgICAgYXV0byB0aGlyZFBhcnR5RGF0YSA9IGdhdGhlckRhdGFGb3JVc2Vy
SW50ZXJmYWNlKCk7CisgICAgaWYgKCF0aGlyZFBhcnR5RGF0YS5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZCgiXG5JVFAgVXNlciBJbnRlcmZhY2UgRGF0YTpcbiIpOworICAgICAg
ICBmb3IgKGF1dG8gdGhpcmRQYXJ0eSA6IHRoaXJkUGFydHlEYXRhKSB7CisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKHRoaXJkUGFydHkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKCdcbicpOworICAgICAgICB9CisgICAgfQogICAgIGNvbXBsZXRpb25IYW5kbGVyKHJl
c3VsdC50b1N0cmluZygpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5oCmluZGV4IGM4ZmM2ODU4MDMzNmM4ZGQyYzc4ZGRlZjI2NDQ0MzNm
N2FjN2YzZTIuLjQ3YjRmNjI3OGQxNTBjMTRkOWZkZDVhYTEyNmRhOTZkOWRhMTQ3MTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKQEAgLTU2
LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKSBvdmVycmlkZTsKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCBvdmVycmlkZTsKIAor
ICAgIFZlY3RvcjxUaGlyZFBhcnR5RGF0YT4gZ2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UoKSBj
b25zdCBvdmVycmlkZTsKICAgICBjb25zdCBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJD
b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
b3VyY2VTdGF0aXN0aWNzTWFwOyB9CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6S2V5
ZWRFbmNvZGVyPiBjcmVhdGVFbmNvZGVyRnJvbURhdGEoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCBiZmE0ZDcwYjI2OWFjYWJkOWU1NTg5OGZl
N2RjN2YzODFiYWEzOWY5Li41ZTIwNjU0MmM5MzA1NDRiNTM4MWNjNjRkODc0MTRmNDBhMjc5Nzk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC05OSw2ICs5
OSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjbGVhcihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIFZlY3RvcjxUaGlyZFBhcnR5RGF0YT4gZ2F0aGVyRGF0YUZvclVzZXJJbnRl
cmZhY2UoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29va2llQmxvY2tp
bmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CiAgICAgdm9pZCB1cGRhdGVDb29r
aWVCbG9ja2luZ0ZvckRvbWFpbnMoY29uc3QgUmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0Nvb2tp
ZXNGb3ImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCA0ZDY2OTk3ZjQ5ZTlmYjgwOTgy
MmYzODUyZDY4Y2RkOWI4NDk5NDRjLi4zYWY0NDdjY2YxNjEwNDkyNmFmYjliY2JlZmIyYmNiYTE3
YTI3MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcApAQCAtMTEzNiw2ICsxMTM2LDExIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpub3RpZnlQYWdlU3RhdGlzdGljc1RlbGVtZXRyeUZpbmlzaGVkKHVuc2lnCiAgICAg
ICAgIGNvbnN0X2Nhc3Q8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKj4odGhpcyktPm5l
dHdvcmtTZXNzaW9uKCktPm5vdGlmeVBhZ2VTdGF0aXN0aWNzVGVsZW1ldHJ5RmluaXNoZWQobnVt
YmVyT2ZQcmV2YWxlbnRSZXNvdXJjZXMsIG51bWJlck9mUHJldmFsZW50UmVzb3VyY2VzV2l0aFVz
ZXJJbnRlcmFjdGlvbiwgbnVtYmVyT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRob3V0VXNlckludGVy
YWN0aW9uLCB0b3BQcmV2YWxlbnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VV
c2VySW50ZXJhY3Rpb24sIG1lZGlhbkRheXNTaW5jZVVzZXJJbnRlcmFjdGlvblByZXZhbGVudFJl
c291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbiwgdG9wM051bWJlck9mUHJldmFsZW50UmVzb3VyY2Vz
V2l0aFVJLCB0b3AzTWVkaWFuU3ViRnJhbWVXaXRob3V0VUksIHRvcDNNZWRpYW5TdWJSZXNvdXJj
ZVdpdGhvdXRVSSwgdG9wM01lZGlhblVuaXF1ZVJlZGlyZWN0c1dpdGhvdXRVSSwgdG9wM01lZGlh
bkRhdGFSZWNvcmRzUmVtb3ZlZFdpdGhvdXRVSSk7CiB9CiAKK1ZlY3RvcjxUaGlyZFBhcnR5RGF0
YT4gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpnYXRoZXJEYXRhRm9yVXNlckludGVy
ZmFjZSgpCit7CisgICAgcmV0dXJuIG1fc3RhdGlzdGljc1N0b3JlLT5nYXRoZXJEYXRhRm9yVXNl
ckludGVyZmFjZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggMGNhNDI2YTA2
Mjg5ZjI4ODIxMmYwMzhhOTZkOGE3MjJiYzE5M2Q2OC4uMjgxYmIyYmQ0MGI5YzQ5ZmFlMTk3ZWI5
MTEyMzI0MTdhM2ZlZTE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuaApAQCAtNzcsNiArNzcsNDYgQEAgc3RydWN0IFJlZ2lzdHJhYmxlRG9tYWluc1Rv
QmxvY2tDb29raWVzRm9yIHsKICAgICBSZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQ29va2llc0Zv
ciBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IGRvbWFpbnNUb0Jsb2NrQW5kRGVsZXRl
Q29va2llc0Zvci5pc29sYXRlZENvcHkoKSwgZG9tYWluc1RvQmxvY2tCdXRLZWVwQ29va2llc0Zv
ci5pc29sYXRlZENvcHkoKSwgZG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb25Bc0ZpcnN0UGFydHku
aXNvbGF0ZWRDb3B5KCkgfTsgfQogfTsKIAorc3RydWN0IEZpcnN0UGFydHlEYXRhIHsKKyAgICBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW47CisgICAgYm9vbCBzdG9yYWdlQWNjZXNz
R3JhbnRlZDsKKworICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gbWFrZVN0cmluZyhkb21haW4uc3RyaW5nKCksICIsIFN0b3JhZ2UgQWNjZXNzIGdyYW50
ZWQ6ICIsIHN0b3JhZ2VBY2Nlc3NHcmFudGVkKTsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9y
PT0oRmlyc3RQYXJ0eURhdGEgY29uc3Qgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gZG9tYWluID09IG90aGVyLmRvbWFpbiAmJiBzdG9yYWdlQWNjZXNzR3JhbnRlZCA9PSBvdGhl
ci5zdG9yYWdlQWNjZXNzR3JhbnRlZDsKKyAgICB9Cit9OworCitzdHJ1Y3QgVGhpcmRQYXJ0eURh
dGEgeworICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbjsKKyAgICBWZWN0b3I8
Rmlyc3RQYXJ0eURhdGE+IGFzc29jaWF0ZWRGaXJzdFBhcnRpZXM7CisKKyAgICBTdHJpbmcgdG9T
dHJpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVy
OworICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgiUmVnaXN0cmFibGUgRG9tYWluOiAiLCBk
b21haW4uc3RyaW5nKCksICJcbiIpOworICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVy
YWwoIiAgICB7Iik7CisKKyAgICAgICAgZm9yIChhdXRvIGZpcnN0UGFydHkgOiBhc3NvY2lhdGVk
Rmlyc3RQYXJ0aWVzKSB7CisgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwo
InsgIik7CisgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChmaXJzdFBhcnR5LnRvU3Ry
aW5nKCkpOworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgfSwiKTsK
KyAgICAgICAgfQorICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIn0iKTsKKyAg
ICAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBib29s
IG9wZXJhdG9yPChjb25zdCBUaGlyZFBhcnR5RGF0YSAmb3RoZXIpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gYXNzb2NpYXRlZEZpcnN0UGFydGllcy5zaXplKCkgPCBvdGhlci5hc3NvY2lh
dGVkRmlyc3RQYXJ0aWVzLnNpemUoKTsKKyAgICB9Cit9OworCiBjbGFzcyBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWlu
PiB7CiBwdWJsaWM6CiAgICAgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYkNvcmU6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3M7CkBAIC0xOTMsNiArMjMzLDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZTo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljcz4mJik7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1Vu
ZGVyT3BlbmVyKERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyYmLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBvcGVuZXJJRCwgT3BlbmVyRG9tYWluJiYpOworICAgIFZlY3RvcjxUaGlyZFBhcnR5
RGF0YT4gZ2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UoKTsKIAogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nlc3Npb24mLCBjb25z
dCBTdHJpbmcmLCBTaG91bGRJbmNsdWRlTG9jYWxob3N0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5YzhkMTI1YTYwYjJh
N2I0MTg5OGNhODRhMTZmN2FhNmY1NzllNzYzLi5lYzUwMTFiM2RkZjcwOGY3MzgyMGFlMmZhOWUz
NTRjYjZiYmIxMDJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMTItMDIgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIGJhc2lj
IElUUCBkYXRhIGZyb20gdGhlIGRhdGFiYXNlIGZvciBmdXR1cmUgQVBJL1NQSSB1c2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQzMgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTYwODUwNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgbmV3IHRlc3RzIHRvIGNoZWNrIGlmIHRoZSB1c2Vy
IGludGVyZmFjZSBkYXRhIGlzIHByb3Blcmx5CisgICAgICAgIGNvbGxlY3RlZCBhbmQgc29ydGVk
IGZvciBib3RoIHRoZSBkYXRhYmFzZSBzdG9yZSBhbmQgdGhlIG1lbW9yeSBzdG9yZS4KKyAgICAg
ICAgQWxzbyBlZGl0ZWQgYW55IHRlc3RzIHdoaWNoIHVzZSBkdW1wUmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpIHRvIGFsc28KKyAgICAgICAgZXhwZWN0IHRoZSBVSSBkYXRhIHRvIGJlIGRpc3BsYXll
ZC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10
aGlyZC1wYXJ0eS1zY3JpcHQtaW1wb3J0LWluLXdvcmtlci1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJk
LXBhcnR5LXNjcmlwdC1pbXBvcnQtaW4td29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0
LWxvYWRzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWxvYWRzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG9udC1j
b3VudC10aGlyZC1wYXJ0eS1pbWFnZS1hcy10aGlyZC1wYXJ0eS1zY3JpcHQtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9k
b250LWNvdW50LXRoaXJkLXBhcnR5LWltYWdlLWFzLXRoaXJkLXBhcnR5LXNjcmlwdC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXIt
aW50ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1p
bnRlcmZhY2UtZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmZhY2Ut
ZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0
b3JhZ2UtYWNjZXNzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNl
ci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy91c2VyLWludGVyZmFjZS1kYXRh
LXdpdGgtc3RvcmFnZS1hY2Nlc3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNj
ZXNzLmh0bWw6IEFkZGVkLgorCiAyMDE5LTEyLTAyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW5jb3JyZWN0IGFzc29jaWF0aW9uIG9mIHRo
ZSBVUkwgb2JqZWN0IHdpdGggdGhlIHZhbHVlIHBvcnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3Jp
cHQtaW1wb3J0LWluLXdvcmtlci1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0
LWltcG9ydC1pbi13b3JrZXItZGF0YWJhc2UtZXhwZWN0ZWQudHh0CmluZGV4IDM2OWMxZTRmMDc3
ZWM4MjI0ODE2OGRjYjgwYzRiNzQ3ZTZmYzQwMzcuLjM2ZTk3NjNkZGU3ZDI1NjgxYzAwY2YzYmVj
M2NjNjVhNWQ5NTY0NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQtaW1wb3J0LWluLXdvcmtl
ci1kYXRhYmFzZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5LXNjcmlwdC1pbXBvcnQtaW4td29y
a2VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMjQsMyArMjQsNyBAQCBSZWdpc3RyYWJsZSBk
b21haW46IGxvY2FsaG9zdAogICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgaXNWZXJ5
UHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCisKK0lUUCBV
c2VyIEludGVyZmFjZSBEYXRhOgorUmVnaXN0cmFibGUgRG9tYWluOiBsb2NhbGhvc3QKKyAgICB7
eyAxMjcuMC4wLjEsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQt
cGFydHktc2NyaXB0LWltcG9ydC1pbi13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5LXNjcmlw
dC1pbXBvcnQtaW4td29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAxMjExYWYwZDI4MjAwZjBhMTNk
M2NhZTc3MDRlZGY2NTUzZmY1MTZkLi5mODIzNTJhNmNmNDhlOGJhZDAxMjdiNTc4ODNiOGRmNGNl
NWYyOTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWltcG9ydC1pbi13b3JrZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQtaW1wb3J0LWluLXdvcmtlci1leHBlY3RlZC50eHQK
QEAgLTI0LDMgKzI0LDcgQEAgUmVnaXN0cmFibGUgZG9tYWluOiAxMjcuMC4wLjEKICAgICBpc1By
ZXZhbGVudFJlc291cmNlOiBObwogICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObwogICAg
IGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorCitJVFAgVXNlciBJbnRlcmZhY2UgRGF0YToKK1JlZ2lz
dHJhYmxlIERvbWFpbjogbG9jYWxob3N0CisgICAge3sgMTI3LjAuMC4xLCBTdG9yYWdlIEFjY2Vz
cyBncmFudGVkOiAwIH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5LXNjcmlwdC1sb2Fkcy1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWxvYWRzLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dAppbmRleCAzNjljMWU0ZjA3N2VjODIyNDgxNjhkY2I4MGM0Yjc0N2U2ZmM0MDM3Li4zNmU5NzYz
ZGRlN2QyNTY4MWMwMGNmM2JlYzNjYzY1YTVkOTU2NDYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2Ny
aXB0LWxvYWRzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWxvYWRz
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMjQsMyArMjQsNyBAQCBSZWdpc3RyYWJsZSBkb21h
aW46IGxvY2FsaG9zdAogICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgaXNWZXJ5UHJl
dmFsZW50UmVzb3VyY2U6IE5vCiAgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCisKK0lUUCBVc2Vy
IEludGVyZmFjZSBEYXRhOgorUmVnaXN0cmFibGUgRG9tYWluOiBsb2NhbGhvc3QKKyAgICB7eyAx
MjcuMC4wLjEsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFy
dHktc2NyaXB0LWxvYWRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQtbG9hZHMtZXhwZWN0
ZWQudHh0CmluZGV4IDEyMTFhZjBkMjgyMDBmMGExM2QzY2FlNzcwNGVkZjY1NTNmZjUxNmQuLmY4
MjM1MmE2Y2Y0OGU4YmFkMDEyN2I1Nzg4M2I4ZGY0Y2U1ZjI5MzkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0
eS1zY3JpcHQtbG9hZHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQtbG9hZHMtZXhw
ZWN0ZWQudHh0CkBAIC0yNCwzICsyNCw3IEBAIFJlZ2lzdHJhYmxlIGRvbWFpbjogMTI3LjAuMC4x
CiAgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KICAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJj
ZTogTm8KICAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKKworSVRQIFVzZXIgSW50ZXJmYWNlIERh
dGE6CitSZWdpc3RyYWJsZSBEb21haW46IGxvY2FsaG9zdAorICAgIHt7IDEyNy4wLjAuMSwgU3Rv
cmFnZSBBY2Nlc3MgZ3JhbnRlZDogMCB9LH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb250LWNvdW50LXRoaXJkLXBhcnR5LWltYWdl
LWFzLXRoaXJkLXBhcnR5LXNjcmlwdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG9udC1jb3VudC10aGlyZC1wYXJ0
eS1pbWFnZS1hcy10aGlyZC1wYXJ0eS1zY3JpcHQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CmluZGV4
IDAyNWMyM2Y5MjJmNGQ0ZTdlMGYyNWJhZTc0NWJkZGI0NWNjZmRiMWMuLjQ4MWU3MzZiNzcyNmZk
MWY1MDBjM2Y2YjBlZmQzYjRmZWFmM2RmMTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb250LWNvdW50LXRoaXJkLXBhcnR5LWltYWdl
LWFzLXRoaXJkLXBhcnR5LXNjcmlwdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvbnQtY291bnQtdGhpcmQt
cGFydHktaW1hZ2UtYXMtdGhpcmQtcGFydHktc2NyaXB0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApA
QCAtMjIsMyArMjIsNyBAQCBSZWdpc3RyYWJsZSBkb21haW46IGxvY2FsaG9zdAogICAgIGlzUHJl
dmFsZW50UmVzb3VyY2U6IE5vCiAgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAg
ZGF0YVJlY29yZHNSZW1vdmVkOiAwCisKK0lUUCBVc2VyIEludGVyZmFjZSBEYXRhOgorUmVnaXN0
cmFibGUgRG9tYWluOiBsb2NhbGhvc3QKKyAgICB7eyAxMjcuMC4wLjEsIFN0b3JhZ2UgQWNjZXNz
IGdyYW50ZWQ6IDAgfSx9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG9udC1jb3VudC10aGlyZC1wYXJ0eS1pbWFnZS1hcy10aGlyZC1w
YXJ0eS1zY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2RvbnQtY291bnQtdGhpcmQtcGFydHktaW1hZ2UtYXMtdGhpcmQtcGFy
dHktc2NyaXB0LWV4cGVjdGVkLnR4dAppbmRleCA0ZWNiOTczNmUxMDYwOTIzNWIwMTEzOTNhYWUx
MTYyZDIyNDgyOTVlLi4xNGQzZTE1YjE5M2I1NjUyN2YzOGRjNjZmYzlmYWZhYmI3MjRkZGQyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZG9udC1jb3VudC10aGlyZC1wYXJ0eS1pbWFnZS1hcy10aGlyZC1wYXJ0eS1zY3JpcHQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9kb250LWNvdW50LXRoaXJkLXBhcnR5LWltYWdlLWFzLXRoaXJkLXBhcnR5LXNjcmlwdC1leHBl
Y3RlZC50eHQKQEAgLTE0LDMgKzE0LDcgQEAgUmVnaXN0cmFibGUgZG9tYWluOiBsb2NhbGhvc3QK
ICAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObwogICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNl
OiBObwogICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorCitJVFAgVXNlciBJbnRlcmZhY2UgRGF0
YToKK1JlZ2lzdHJhYmxlIERvbWFpbjogbG9jYWxob3N0CisgICAge3sgMTI3LjAuMC4xLCBTdG9y
YWdlIEFjY2VzcyBncmFudGVkOiAwIH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEtbm8tc3RvcmFn
ZS1hY2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nl
c3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiZmVlYTEyMmFkZjNlYWM3ZjNh
ZWUxNzg3NGRiNWVmOWQxNzBlYjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmZhY2UtZGF0YS1uby1zdG9y
YWdlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4MyBAQAorQ2hlY2sg
Y29ycmVjdCBVSSBkYXRhIGdldHMgcmVwb3J0ZWQgd2l0aCBubyBzdG9yYWdlIGFjY2Vzcy4KKwor
CisKK1Jlc291cmNlIGxvYWQgc3RhdGlzdGljczoKKworUmVnaXN0cmFibGUgZG9tYWluOiBzdWJm
cmFtZTEKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvbjogLTEKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIElzU2NoZWR1bGVkRm9yQWxs
QnV0Q29va2llRGF0YVJlbW92YWw6IE5vCisgICAgU3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlu
czoKKyAgICAgICAgdG9wZnJhbWUxCisgICAgU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbzoK
KyAgICAgICAgdG9wZnJhbWUyCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1Zl
cnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKK1JlZ2lz
dHJhYmxlIGRvbWFpbjogc3ViZnJhbWUyCisgICAgaGFkVXNlckludGVyYWN0aW9uOiBObworICAg
IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAg
ICBJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsOiBObworICAgIFN1YmZyYW1l
VW5kZXJUb3BGcmFtZURvbWFpbnM6CisgICAgICAgIHRvcGZyYW1lMQorICAgIGlzUHJldmFsZW50
UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJl
Y29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IHN1YmZyYW1lMworICAgIGhhZFVz
ZXJJbnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAtMQorICAg
IGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVt
b3ZhbDogTm8KKyAgICBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAgICB0b3Bm
cmFtZTEKKyAgICAgICAgdG9wZnJhbWU0CisgICAgU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9t
YWluczoKKyAgICAgICAgdG9wZnJhbWUzCisgICAgU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNU
bzoKKyAgICAgICAgdG9wZnJhbWUyCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBp
c1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKK1Jl
Z2lzdHJhYmxlIGRvbWFpbjogdG9wZnJhbWUxCisgICAgaGFkVXNlckludGVyYWN0aW9uOiBObwor
ICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRmYXRoZXJlZDogTm8K
KyAgICBJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsOiBObworICAgIGlzUHJl
dmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAg
ZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IHRvcGZyYW1lMgorICAg
IGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAt
MQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVE
YXRhUmVtb3ZhbDogTm8KKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVBy
ZXZhbGVudFJlc291cmNlOiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFi
bGUgZG9tYWluOiB0b3BmcmFtZTMKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9z
dFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIElz
U2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWw6IE5vCisgICAgaXNQcmV2YWxlbnRS
ZXNvdXJjZTogTm8KKyAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVj
b3Jkc1JlbW92ZWQ6IDAKK1JlZ2lzdHJhYmxlIGRvbWFpbjogdG9wZnJhbWU0CisgICAgaGFkVXNl
ckludGVyYWN0aW9uOiBObworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAg
Z3JhbmRmYXRoZXJlZDogTm8KKyAgICBJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1v
dmFsOiBObworICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50
UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCisKK0lUUCBVc2VyIEludGVy
ZmFjZSBEYXRhOgorUmVnaXN0cmFibGUgRG9tYWluOiBzdWJmcmFtZTMKKyAgICB7eyB0b3BmcmFt
ZTEsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx7IHRvcGZyYW1lNCwgU3RvcmFnZSBBY2Nl
c3MgZ3JhbnRlZDogMCB9LHsgdG9wZnJhbWUzLCBTdG9yYWdlIEFjY2VzcyBncmFudGVkOiAwIH0s
eyB0b3BmcmFtZTIsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx9CitSZWdpc3RyYWJsZSBE
b21haW46IHN1YmZyYW1lMQorICAgIHt7IHRvcGZyYW1lMSwgU3RvcmFnZSBBY2Nlc3MgZ3JhbnRl
ZDogMCB9LHsgdG9wZnJhbWUyLCBTdG9yYWdlIEFjY2VzcyBncmFudGVkOiAwIH0sfQorUmVnaXN0
cmFibGUgRG9tYWluOiBzdWJmcmFtZTIKKyAgICB7eyB0b3BmcmFtZTEsIFN0b3JhZ2UgQWNjZXNz
IGdyYW50ZWQ6IDAgfSx9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmZhY2UtZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy1k
YXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45ZTFjOWVmMjEyZGM0ZTMxOTI5YjExMmEzN2FlMmU4Mjg0NTc2MGQwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UuaHRtbApA
QCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9jb29raWVzL3Jlc291cmNlcy9jb29raWUtdXRpbGl0aWVzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+Q2hlY2sgY29ycmVjdCBVSSBkYXRhIGdldHMgcmVwb3J0ZWQgd2l0aCBubyBz
dG9yYWdlIGFjY2Vzcy48L2Rpdj4KKzxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8YnI+
Cis8c2NyaXB0PgorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOworICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBjb25zdCBzdWJPcmlnaW4xID0g
Imh0dHA6Ly9zdWJmcmFtZTE6ODAwMCI7CisgICAgY29uc3Qgc3ViT3JpZ2luMiAgPSAiaHR0cDov
L3N1YmZyYW1lMjo4MDAwIjsKKyAgICBjb25zdCBzdWJPcmlnaW4zICA9ICJodHRwOi8vc3ViZnJh
bWUzOjgwMDAiOworCisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4xID0gImh0dHA6Ly90b3BmcmFt
ZTE6ODAwMCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4yID0gImh0dHA6Ly90b3BmcmFtZTI6
ODAwMCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4zID0gImh0dHA6Ly90b3BmcmFtZTM6ODAw
MCI7CisgICAgY29uc3QgdG9wRnJhbWVPcmlnaW40ID0gImh0dHA6Ly90b3BmcmFtZTQ6ODAwMCI7
CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlU
UERhdGFiYXNlKHRydWUpOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
ICgpIHsKKworICAgICAgICAgICAgLy8gc3ViT3JpZ2luMSB3aWxsIGJlIGxvZ2dlZCB1bmRlciAy
IHRvcCBmcmFtZXMuIFNob3VsZCBhcHBlYXIgc2Vjb25kCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3ViT3JpZ2luMSwgdG9w
RnJhbWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdWJPcmlnaW4xLCB0b3BGcmFtZU9yaWdpbjIpOworCisg
ICAgICAgICAgICAvLyBzdWJPcmlnaW4yIHdpbGwgYmUgbG9nZ2VkIHVuZGVyIDEgdG9wIGZyYW1l
cy4gU2hvdWxkIGFwcGVhciB0aGlyZAorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN1Yk9yaWdpbjIsIHRvcEZyYW1lT3JpZ2lu
MSk7CisKKyAgICAgICAgICAgIC8vIHN1Yk9yaWdpbjMgd2lsbCBiZSBsb2dnZWQgdW5kZXIgNCB0
b3AgZnJhbWVzLiBTaG91bGQgYXBwZWFyIGZpcnN0CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3ViT3JpZ2luMywgdG9wRnJh
bWVPcmlnaW4xKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RUbyhzdWJPcmlnaW4zLCB0b3BGcmFtZU9yaWdpbjIpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3Jp
Z2luKHN1Yk9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luMyk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3ViT3JpZ2luMywgdG9w
RnJhbWVPcmlnaW40KTsKKworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IGZp
bmlzaFRlc3QoKSB9LCA1MDApOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91
c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hYzkyY2U0MTUzY2RmYzgzMGQ2YTdjNjQxZDY4OThhM2JlYzAzMTUzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Vz
ZXItaW50ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsODMgQEAKK0NoZWNrIGNvcnJlY3QgVUkgZGF0YSBnZXRzIHJlcG9ydGVkIHdpdGggbm8gc3Rv
cmFnZSBhY2Nlc3MgZ3JhbnRlZC4KKworCisKK1Jlc291cmNlIGxvYWQgc3RhdGlzdGljczoKKwor
UmVnaXN0cmFibGUgZG9tYWluOiB0b3BmcmFtZTIKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IE5v
CisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEKKyAgICBncmFuZGZhdGhlcmVkOiBO
bworICAgIGdvdExpbmtEZWNvcmF0aW9uRnJvbVByZXZhbGVudFJlc291cmNlOiBObworICAgIGlz
UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisg
ICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IHRvcGZyYW1lMwor
ICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9u
OiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgZ290TGlua0RlY29yYXRpb25Gcm9tUHJl
dmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1Zl
cnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKK1JlZ2lz
dHJhYmxlIGRvbWFpbjogdG9wZnJhbWUxCisgICAgaGFkVXNlckludGVyYWN0aW9uOiBObworICAg
IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAg
ICBnb3RMaW5rRGVjb3JhdGlvbkZyb21QcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ByZXZh
bGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObworICAgIGRh
dGFSZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiB0b3BmcmFtZTQKKyAgICBo
YWRVc2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEK
KyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIGdvdExpbmtEZWNvcmF0aW9uRnJvbVByZXZhbGVu
dFJlc291cmNlOiBObworICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJl
dmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJs
ZSBkb21haW46IHN1YmZyYW1lMQorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAgICBtb3N0
UmVjZW50VXNlckludGVyYWN0aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgZ290
TGlua0RlY29yYXRpb25Gcm9tUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgc3ViZnJhbWVVbmRl
clRvcEZyYW1lRG9tYWluczoKKyAgICAgICAgdG9wZnJhbWUxCisgICAgc3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdHNUbzoKKyAgICAgICAgdG9wZnJhbWUyCisgICAgaXNQcmV2YWxlbnRSZXNvdXJj
ZTogTm8KKyAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1Jl
bW92ZWQ6IDAKK1JlZ2lzdHJhYmxlIGRvbWFpbjogc3ViZnJhbWUyCisgICAgaGFkVXNlckludGVy
YWN0aW9uOiBObworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRm
YXRoZXJlZDogTm8KKyAgICBnb3RMaW5rRGVjb3JhdGlvbkZyb21QcmV2YWxlbnRSZXNvdXJjZTog
Tm8KKyAgICBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAgICB0b3BmcmFtZTEK
KyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNl
OiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiBzdWJm
cmFtZTMKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvbjogLTEKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIGdvdExpbmtEZWNvcmF0aW9u
RnJvbVByZXZhbGVudFJlc291cmNlOiBObworICAgIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFp
bnM6CisgICAgICAgIHRvcGZyYW1lMQorICAgICAgICB0b3BmcmFtZTQKKyAgICBzdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAgICB0b3BmcmFtZTMKKyAgICBzdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0c1RvOgorICAgICAgICB0b3BmcmFtZTIKKyAgICBpc1ByZXZhbGVudFJl
c291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObworICAgIGRhdGFSZWNv
cmRzUmVtb3ZlZDogMAorCitJVFAgVXNlciBJbnRlcmZhY2UgRGF0YToKK1JlZ2lzdHJhYmxlIERv
bWFpbjogc3ViZnJhbWUzCisgICAge3sgdG9wZnJhbWUxLCBTdG9yYWdlIEFjY2VzcyBncmFudGVk
OiAwIH0seyB0b3BmcmFtZTQsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx7IHRvcGZyYW1l
MywgU3RvcmFnZSBBY2Nlc3MgZ3JhbnRlZDogMCB9LHsgdG9wZnJhbWUyLCBTdG9yYWdlIEFjY2Vz
cyBncmFudGVkOiAwIH0sfQorUmVnaXN0cmFibGUgRG9tYWluOiBzdWJmcmFtZTEKKyAgICB7eyB0
b3BmcmFtZTEsIFN0b3JhZ2UgQWNjZXNzIGdyYW50ZWQ6IDAgfSx7IHRvcGZyYW1lMiwgU3RvcmFn
ZSBBY2Nlc3MgZ3JhbnRlZDogMCB9LH0KK1JlZ2lzdHJhYmxlIERvbWFpbjogc3ViZnJhbWUyCisg
ICAge3sgdG9wZnJhbWUxLCBTdG9yYWdlIEFjY2VzcyBncmFudGVkOiAwIH0sfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nlc3MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2Ut
YWNjZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ5NjFlYjNlNmNkYTI4YmJhYWZiYTFiNGY1ODA2Zjgw
OTc3MzVkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLmh0
bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPkNoZWNrIGNvcnJlY3QgVUkgZGF0YSBnZXRzIHJlcG9ydGVkIHdpdGgg
bm8gc3RvcmFnZSBhY2Nlc3MgZ3JhbnRlZC48L2Rpdj4KKzxicj4KKzxkaXYgaWQ9Im91dHB1dCI+
PC9kaXY+Cis8YnI+Cis8c2NyaXB0PgorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOworICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBjb25zdCBz
dWJPcmlnaW4xID0gImh0dHA6Ly9zdWJmcmFtZTE6ODAwMCI7CisgICAgY29uc3Qgc3ViT3JpZ2lu
MiAgPSAiaHR0cDovL3N1YmZyYW1lMjo4MDAwIjsKKyAgICBjb25zdCBzdWJPcmlnaW4zICA9ICJo
dHRwOi8vc3ViZnJhbWUzOjgwMDAiOworICAgIAorICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9
ICJodHRwOi8vdG9wZnJhbWUxOjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJo
dHRwOi8vdG9wZnJhbWUyOjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRw
Oi8vdG9wZnJhbWUzOjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8v
dG9wZnJhbWU0OjgwMDAiOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisKKyAgICAgICAgICAgIC8vIHN1Yk9y
aWdpbjEgd2lsbCBiZSBsb2dnZWQgdW5kZXIgMiB0b3AgZnJhbWVzLiBTaG91bGQgYXBwZWFyIHNl
Y29uZAorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRv
cEZyYW1lT3JpZ2luKHN1Yk9yaWdpbjEsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3ViT3Jp
Z2luMSwgdG9wRnJhbWVPcmlnaW4yKTsKKworICAgICAgICAgICAgLy8gc3ViT3JpZ2luMiB3aWxs
IGJlIGxvZ2dlZCB1bmRlciAxIHRvcCBmcmFtZXMuIFNob3VsZCBhcHBlYXIgdGhpcmQKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdp
bihzdWJPcmlnaW4yLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAgICAvLyBzdWJPcmln
aW4zIHdpbGwgYmUgbG9nZ2VkIHVuZGVyIDQgdG9wIGZyYW1lcy4gU2hvdWxkIGFwcGVhciBmaXJz
dAorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2luKHN1Yk9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3ViT3JpZ2lu
MywgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdWJPcmlnaW4zLCB0b3BGcmFtZU9yaWdp
bjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRv
cEZyYW1lT3JpZ2luKHN1Yk9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBmaW5pc2hUZXN0KCkgfSwgNTAwKTsKKyAgICAgICAg
fSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRo
LXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nl
c3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkOWE4NTAzZDYzODljMjE4NGFh
ZjQ5ODk2Y2RlYmQ3MjNjZGE3ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNj
ZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACitDaGVjayBjb3JyZWN0
IFVJIGRhdGEgZ2V0cyByZXBvcnRlZCB3aXRoIHN0b3JhZ2UgYWNjZXNzIGdyYW50ZWQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFu
dGVkLiBkb2N1bWVudC5jb29raWUgPT0gZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZSwgY29va2llcyBz
ZWVuIHNlcnZlci1zaWRlID09IHsiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVlIn0KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCitSZXNvdXJjZSBsb2Fk
IHN0YXRpc3RpY3M6CisKK1JlZ2lzdHJhYmxlIGRvbWFpbjogMTI3LjAuMC4xCisgICAgaGFkVXNl
ckludGVyYWN0aW9uOiBZZXMKKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiB3aXRoaW4g
MjQgaG91cnMKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIElzU2NoZWR1bGVkRm9yQWxsQnV0
Q29va2llRGF0YVJlbW92YWw6IE5vCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBp
c1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKK1Jl
Z2lzdHJhYmxlIGRvbWFpbjogbG9jYWxob3N0CisgICAgaGFkVXNlckludGVyYWN0aW9uOiBZZXMK
KyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiB3aXRoaW4gMjQgaG91cnMKKyAgICBncmFu
ZGZhdGhlcmVkOiBObworICAgIFN0b3JhZ2VBY2Nlc3NVbmRlclRvcEZyYW1lRG9tYWluczoKKyAg
ICAgICAgMTI3LjAuMC4xCisgICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3Zh
bDogTm8KKyAgICBTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAgICAxMjcuMC4w
LjEKKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291
cmNlOiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorCitJVFAgVXNlciBJbnRlcmZhY2Ug
RGF0YToKK1JlZ2lzdHJhYmxlIERvbWFpbjogbG9jYWxob3N0CisgICAge3sgMTI3LjAuMC4xLCBT
dG9yYWdlIEFjY2VzcyBncmFudGVkOiAxIH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFj
Y2Vzcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA3MzViZDdkNmQ0MTZhMTAyZjYzNjFhMjA3YzRiYzUwNzZmYTAwODIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1p
bnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCAr
MSw4NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIkNoZWNrIGNvcnJlY3QgVUkg
ZGF0YSBnZXRzIHJlcG9ydGVkIHdpdGggc3RvcmFnZSBhY2Nlc3MgZ3JhbnRlZC4iKTsKKyAgICAg
ICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0eVVybCA9ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiOworICAgICAgICBjb25zdCB0aGlyZFBhcnR5VXJsID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCI7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsK
KyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
KSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyAiKSAhPT0g
LTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcygpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVw
bGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBt
ZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29v
a2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAg
ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwg
ZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsK
KyAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVu
dElkKTsKKyAgICAgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxl
bWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQu
b2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAgVUlIZWxw
ZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgICAgIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikK
KyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImVzY2FwZSIpOwor
ICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIk5vIGV2ZW50U2VuZGVyLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0
ZWQuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3Vs
ZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICBpZiAo
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCAhPT0gIiNjb29raWVTZXQiKSB7CisgICAgICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nl
c3MvcmVzb3VyY2VzL3NldC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12
YWx1ZSMiICsgZmlyc3RQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy91c2VyLWludGVyZmFjZS1k
YXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UuaHRtbCNjb29raWVTZXQiOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5VXJsKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIlRoaXJkLXBhcnR5IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbihmaXJzdFBhcnR5VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24oZmlyc3RQYXJ0eVVybCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiRmlyc3QtcGFydHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9u
LiIpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNI
YWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eVVybCkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkLXBhcnR5IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3Ig
dXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaWZy
YW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0gZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgiVGhlSWZyYW1l
VGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5pZCA9ICJUaGVJ
ZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvc3RvcmFnZUFj
Y2Vzcy9yZXNvdXJjZXMvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCN1c2VyU2hv
dWxkR3JhbnRBY2Nlc3MsdXNlclNob3VsZEJlQ29uc3VsdGVkLHBvbGljeVNob3VsZEdyYW50QWNj
ZXNzLGlzTm90U2FtZU9yaWdpbklmcmFtZSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0
aC1zdG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lOTI3YTgzYWUwMzQ3NGMxYTM3YmIyYjVjMDViYjZiNDI3NThh
ZjA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzNiBAQAorQ2hlY2sgY29ycmVjdCBVSSBkYXRhIGdldHMgcmVwb3J0ZWQgd2l0
aCBzdG9yYWdlIGFjY2VzcyBncmFudGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBTdG9yYWdlIGFjY2VzcyB3YXMgZ3JhbnRlZC4gZG9jdW1lbnQuY29va2llID09IGZp
cnN0UGFydHlDb29raWU9dmFsdWUsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSB7ImZpcnN0
UGFydHlDb29raWUiOiJ2YWx1ZSJ9CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKworUmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzOgorCitSZWdpc3RyYWJs
ZSBkb21haW46IGxvY2FsaG9zdAorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogWWVzCisgICAgbW9z
dFJlY2VudFVzZXJJbnRlcmFjdGlvbjogd2l0aGluIDI0IGhvdXJzCisgICAgZ3JhbmRmYXRoZXJl
ZDogTm8KKyAgICBzdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnM6CisgICAgICAgIDEy
Ny4wLjAuMQorICAgIGdvdExpbmtEZWNvcmF0aW9uRnJvbVByZXZhbGVudFJlc291cmNlOiBObwor
ICAgIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnM6CisgICAgICAgIDEyNy4wLjAuMQorICAg
IGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5v
CisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IDEyNy4wLjAu
MQorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogWWVzCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvbjogd2l0aGluIDI0IGhvdXJzCisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBnb3RMaW5r
RGVjb3JhdGlvbkZyb21QcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ByZXZhbGVudFJlc291
cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObworICAgIGRhdGFSZWNvcmRz
UmVtb3ZlZDogMAorCitJVFAgVXNlciBJbnRlcmZhY2UgRGF0YToKK1JlZ2lzdHJhYmxlIERvbWFp
bjogbG9jYWxob3N0CisgICAge3sgMTI3LjAuMC4xLCBTdG9yYWdlIEFjY2VzcyBncmFudGVkOiAx
IH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3Vz
ZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdl
LWFjY2Vzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4ZjIwNWJkNzUwMzc5ODY5NzI4MWI1NmU4MDFhYWRl
ZmY5ZWQyNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwKQEAg
LTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIkNoZWNrIGNvcnJl
Y3QgVUkgZGF0YSBnZXRzIHJlcG9ydGVkIHdpdGggc3RvcmFnZSBhY2Nlc3MgZ3JhbnRlZC4iKTsK
KyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0
eVVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgICAgICBjb25zdCB0aGlyZFBhcnR5
VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2
ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5k
ZXhPZigiUEFTUyAiKSAhPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgi
RkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBl
dmVudC5vcmlnaW4pOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxk
QmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2Ui
LCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxl
bWVudChlbGVtZW50SWQpIHsKKyAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVu
dC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgICAgICB2YXIg
Y2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwor
ICAgICAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAor
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtl
eURvd24oImVzY2FwZSIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGV2ZW50U2VuZGVyLiIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5
Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoZmFsc2UsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCAhPT0gIiNjb29raWVTZXQi
KSB7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlV
cmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUucGhwP25hbWU9Zmlyc3RQ
YXJ0eUNvb2tpZSZ2YWx1ZT12YWx1ZSMiICsgZmlyc3RQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vz
cy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MuaHRtbCNjb29raWVTZXQi
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVz
KHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5VXJsKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkLXBhcnR5IHNldCBhcyBwcmV2YWxlbnQgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbihmaXJzdFBhcnR5VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oZmlyc3RQYXJ0eVVybCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiRmlyc3QtcGFydHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGlu
dGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlVcmwsIHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eVVybCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkLXBhcnR5IGRpZCBub3QgZ2V0IGxv
Z2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0gZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgi
VGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5p
ZCA9ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAv
c3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRt
bCN1c2VyU2hvdWxkR3JhbnRBY2Nlc3MsdXNlclNob3VsZEJlQ29uc3VsdGVkLHBvbGljeVNob3Vs
ZEdyYW50QWNjZXNzLGlzTm90U2FtZU9yaWdpbklmcmFtZSI7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384665</attachid>
            <date>2019-12-02 15:46:52 -0800</date>
            <delta_ts>2019-12-04 10:00:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203432-20191202154651.patch</filename>
            <type>text/plain</type>
            <size>66430</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI2ZDAwNjQwM2NmNzdi
NTBmMTk2NmNkOTk3NjBlMWIzYTZkNmIzYy4uNWY1ODZkZGY3NzhhY2YzZjQxNTM1ZTNiM2NjNTZk
YWE4NzMwNjc1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTEyLTAyICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSBi
YXNpYyBJVFAgZGF0YSBmcm9tIHRoZSBkYXRhYmFzZSBmb3IgZnV0dXJlIEFQSS9TUEkgdXNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0MzIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2MDg1MDQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvdXNlci1pbnRlcmZhY2UtZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNl
ci1pbnRlcmZhY2UtZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2Ut
YWNjZXNzLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MuaHRtbAorCisgICAg
ICAgIFVwZGF0ZWQgdGhlIHRvU3RyaW5nKCkgdG8gcmVwb3J0IG9ubHkgaWYgaXQgd2FzIGluIHRo
ZSBsYXN0IDI0IGhvdXJzIGFzIAorICAgICAgICBvcHBvc2VkIHRvIHJlcG9ydGluZyBhbiBhY3R1
YWwgdGltZSBzaW5jZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSAKKyAgICAgICAgY2hh
bmdlcyB3aXRoIGVhY2ggdGVzdCBydW4uCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoYXNIYWRSZWNlbnRVc2VySW50ZXJh
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6dG9TdHJp
bmcgY29uc3QpOgorCiAyMDE5LTEyLTAyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW5jb3JyZWN0IGFzc29jaWF0aW9uIG9mIHRoZSBVUkwg
b2JqZWN0IHdpdGggdGhlIHZhbHVlIHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDQ1NDRkYzc2NjlkN2E1YWQ0
ZTgxNTQwYjhkYWJhZTU3NGQyMjg4OC4uOWZiZGIyNjFlZTIwYmY4YjRmNmFjNDcwYjFlODdmYmY0
MDAxNDAwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OCBAQAorMjAxOS0xMi0wMiAgS2F0ZSBDaGVu
ZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgYmFzaWMg
SVRQIGRhdGEgZnJvbSB0aGUgZGF0YWJhc2UgZm9yIGZ1dHVyZSBBUEkvU1BJIHVzZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNDMyCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81NjA4NTA0MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nlc3MuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vz
cy1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
dXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwKKworICAgICAgICBB
ZGRzIHRoZSBhYmlsaXR5IHRvIGNvbGxlY3Qgc29ydGVkIElUUCBkYXRhIGZvciBkaXNwbGF5aW5n
IGluIGEKKyAgICAgICAgdXNlciBpbnRlcmZhY2UuIAorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cyk6CisgICAg
ICAgIEFkZGVkIG5ldyBxdWVyaWVzIHRvIHRoZSBkYXRhYmFzZSBzdG9yZSB0byBjaGVjayBmb3Ig
c3RvcmFnZSBhY2Nlc3MgaW4KKyAgICAgICAgdGhlIGRhdGFiYXNlIGFuZCBhZ2dyZWdhdGUgdG9w
RnJhbWVzIHdpdGggdGhlIHNhbWUKKyAgICAgICAgc3ViZnJhbWUvc3VicmVzb3VyY2Ugc28gZWFz
aWx5IGNyZWF0ZSB0aGUgc3RydWN0IGZvciBjb2xsZWN0aW5nIGRhdGEKKyAgICAgICAgZm9yIHRo
ZSBVSS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6cmVsYXRpb25zaGlwRXhpc3RzIGNvbnN0KToKKyAgICAgICAgRml4ZWQgYW4gaW5jb3Jy
ZWN0IGZ1bmN0aW9uIG5hbWUgaW4gdGhlIGVycm9yIG1lc3NhZ2UuCisKKyAgICAgICAgKFdlYktp
dDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmpvaW5TdWJTdGF0aXN0aWNz
Rm9yU29ydGluZyk6CisgICAgICAgIFJlbmFtZWQgdW5jbGVhciBTUUwgdmFyaWFibGUgbmFtZXMg
YW5kIGFkZGVkIGEgYmluZCBwYXJhbWV0ZXIgdG8KKyAgICAgICAgc3BlY2lmeSB3aGV0aGVyIHJl
c291cmNlIGlzIHByZXZhbGVudCBvciBub3QsIHdoaWNoIGFsbG93cworICAgICAgICB0aGlzIGZ1
bmN0aW9uIHRvIGJlIHVzZWQgdG8gY29sbGVjdCBzb3J0ZWQgSVRQIGRhdGEKKyAgICAgICAgZm9y
IHRoZSBVSS4KKworICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Z2V0Rmlyc3RQYXJ0eURhdGFGb3JEb21haW4gY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2F0aGVyRGF0YUZvclVz
ZXJJbnRlcmZhY2UgY29uc3QpOgorCisgICAgICAgIChXZWJLaXQ6OmJ1aWxkUXVlcnlTdGFydEFu
ZEVuZCk6CisgICAgICAgIChXZWJLaXQ6OmdldE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2VzV2l0
aFVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpnZXRUb3BQcmV2ZWxlbnRSZXNvdXJjZURheXNTaW5jZVVJIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6Z2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZVdpdGhvdXRV
c2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpnZXROdW1iZXJPZlByZXZhbGVudFJl
c291cmNlc0luVG9wUmVzb3VyY2VzKToKKyAgICAgICAgQ2hhbmdlZCBzcWwgcXVlcnkgdmFyaWFi
bGUgbmFtZXMgdG8gbWFrZSB0aGVtIG1vcmUgY2xlYXIgYW5kIGFkZGVkIGEKKyAgICAgICAgbmV3
IGJpbmQgcGFyYW1ldGVyIHRvIGFsbG93IGZvciBtb3JlIGdlbmVyYWwgdXNlIG9mIHN1YnN0YXRp
c3RpYworICAgICAgICBzb3J0aW5nIHF1ZXJ5LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmR1bXBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzIGNvbnN0KToKKyAgICAgICAgQ29tYmluZWQgVUkgZGF0YSB3
aXRoIGR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkgZGF0YSB0byBrZWVwIHRoZSB0ZXN0aW5n
IGFzcGVjdAorICAgICAgICBvZiB0aGlzIHBhdGNoIHNpbXBsZXIuCisKKyAgICAgICAgKFdlYktp
dDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlc291cmNlVG9TdHJpbmcg
Y29uc3QpOgorICAgICAgICBTaW5jZSBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSBjaGFu
Z2VzIHdpdGggZWFjaCB0ZXN0IHJ1biwgSQorICAgICAgICB1cGRhdGVkIHRoZSBkdW1waW5nIHRv
IHJlcG9ydCBvbmx5IGlmIGl0IHdhcyBpbiB0aGUgbGFzdCAyNCBob3VycyBhcworICAgICAgICBv
cHBvc2VkIHRvIHJlcG9ydGluZyBhbiBhY3R1YWwgdGltZS4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmVuc3VyZUZpcnN0UGFydHlTdGF0
aXN0aWMpOgorICAgICAgICAoV2ViS2l0OjpnZXRGaXJzdFBhcnR5RGF0YUZvckRvbWFpbik6Cisg
ICAgICAgIChXZWJLaXQ6Omhhc0JlZW5UaGlyZFBhcnR5KToKKyAgICAgICAgKFdlYktpdDo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpnYXRoZXJEYXRhRm9yVXNlckludGVyZmFj
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6ZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6Z2F0aGVyRGF0YUZvclVzZXJJbnRlcmZhY2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6
CisgICAgICAgIChXZWJLaXQ6OkZpcnN0UGFydHlEYXRhOjp0b1N0cmluZyBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OkZpcnN0UGFydHlEYXRhOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6VGhpcmRQYXJ0eURhdGE6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6VGhpcmRQYXJ0eURhdGE6Om9wZXJhdG9yPCBjb25zdCk6CisgICAgICAgIFRoZSB0b1N0cmlu
ZyBtZXRob2RzIGFsbG93IHRoZSBzdHJ1Y3RzIHRvIGJlIHByaW50ZWQgZm9yIHRlc3RpbmcKKyAg
ICAgICAgcHVycG9zZXMuIFRoZSBlcXVhbHMgbWV0aG9kcyBhbGxvdyB0aGUgcmV0dXJuIHZlY3Rv
cnMgdG8gdXNlCisgICAgICAgIGFwcGVuZElmTm90Q29udGFpbnMuCisKIDIwMTktMTItMDIgIFlv
c2hpYWtpIEppdHN1a2F3YSAgPHlvc2hpYWtpLmppdHN1a2F3YUBzb255LmNvbT4KIAogICAgICAg
ICBSZXNwb25zaXZlbmVzc1RpbWVyIG1pc3Rha2VubHkgcmVzdGFydHMgaW1tZWRpYXRlbHkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcAppbmRl
eCA1NDc4MWY4ZGI4ZjExMGQ1N2UxOTc1OTU1NWJmNTc4NWJkODk2N2JhLi40MWRkOGU5YjQ4NDQ3
NjllMDE0MWRlMTZlY2ZiMmY0MmRlYjIyYzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwCkBAIC00MTMsNiArNDEzLDExIEBAIHN0YXRp
YyB2b2lkIGFwcGVuZFNjcmVlbkFQSU9wdGlvblNldChTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBj
b25zdCBPcHRpb25TZXQ8UmVzCiB9CiAjZW5kaWYKIAorc3RhdGljIGJvb2wgaGFzSGFkUmVjZW50
VXNlckludGVyYWN0aW9uKGRvdWJsZSBpbnRlcmFjdGlvblRpbWVTZWNvbmRzKQoreworICAgIHJl
dHVybiBpbnRlcmFjdGlvblRpbWVTZWNvbmRzID4gMCAmJiBXYWxsVGltZTo6bm93KCkuc2Vjb25k
c1NpbmNlRXBvY2goKS52YWx1ZSgpIC0gaW50ZXJhY3Rpb25UaW1lU2Vjb25kcyA8IFNlY29uZHMo
MjRfaCkudmFsdWUoKTsKK30KKwogU3RyaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnRvU3Ry
aW5nKCkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CkBAIC00MjQsNyArNDI5
LDEwIEBAIFN0cmluZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjp0b1N0cmluZygpIGNvbnN0CiAg
ICAgYXBwZW5kQm9vbGVhbihidWlsZGVyLCAiaGFkVXNlckludGVyYWN0aW9uIiwgaGFkVXNlcklu
dGVyYWN0aW9uKTsKICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIiAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAiKTsKLSAgICBidWlsZGVy
LmFwcGVuZEZpeGVkUHJlY2lzaW9uTnVtYmVyKG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1l
LnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CisgICAgaWYgKGhhc0hhZFJlY2VudFVzZXJJ
bnRlcmFjdGlvbihtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZS5zZWNvbmRzU2luY2VFcG9j
aCgpLnZhbHVlKCkpKQorICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIndpdGhpbiAyNCBo
b3VycyIpOworICAgIGVsc2UKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCItMSIpOwog
ICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgIGFwcGVuZEJvb2xlYW4oYnVpbGRlciwgImdy
YW5kZmF0aGVyZWQiLCBncmFuZGZhdGhlcmVkKTsKICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUu
Y3BwCmluZGV4IGNjMjBkYTc4MDdjNDg5NzZhODExM2UyNWE1MGZkZWE4Y2ZhNjk5ZDkuLmY2MWQ4
NTNmMzFhY2FhZDFmYzQxMjQ3NWRkMGM0YTBlOWMwNzkxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcApAQCAtOTksNiArOTks
NyBAQCBjb25zdGV4cHIgYXV0byB0b3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb21FeGlzdHNRdWVy
eSA9ICJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgMQogICAgICJBTkQgZnJvbURvbWFpbklEID0gKFNF
TEVDVCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFp
biA9ID8pKSJfczsKIGNvbnN0ZXhwciBhdXRvIHRvcEZyYW1lTG9hZGVkVGhpcmRQYXJ0eVNjcmlw
dHNFeGlzdHNRdWVyeSA9ICJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9NIFRvcEZyYW1lTG9h
ZGVkVGhpcmRQYXJ0eVNjcmlwdHMgV0hFUkUgdG9wRnJhbWVEb21haW5JRCA9ID8gIgogICAgICJB
TkQgc3VicmVzb3VyY2VEb21haW5JRCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERv
bWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7Citjb25zdGV4cHIgYXV0byBz
dG9yYWdlQWNjZXNzRXhpc3RzUXVlcnkgPSAiU0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBT
dG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgZG9tYWluSUQgPSA/IEFORCB0
b3BMZXZlbERvbWFpbklEID0gKFNFTEVDVCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBX
SEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8pKSJfczsKIAogLy8gVVBEQVRFIFF1ZXJpZXMKIGNv
bnN0ZXhwciBhdXRvIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25RdWVyeSA9ICJVUERBVEUgT2Jz
ZXJ2ZWREb21haW5zIFNFVCBoYWRVc2VySW50ZXJhY3Rpb24gPSA/LCBtb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uVGltZSA9ID8gIgpAQCAtMTIxLDYgKzEyMiw5IEBAIGNvbnN0ZXhwciBhdXRvIGlz
R3JhbmRmYXRoZXJlZFF1ZXJ5ID0gIlNFTEVDVCBncmFuZGZhdGhlcmVkIEZST00gT2JzZXJ2ZWRE
b21haW5zCiBjb25zdGV4cHIgYXV0byBmaW5kRXhwaXJlZFVzZXJJbnRlcmFjdGlvblF1ZXJ5ID0g
IlNFTEVDVCBkb21haW5JRCBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSBoYWRVc2VySW50ZXJh
Y3Rpb24gPSAxIEFORCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSA8ID8iX3M7CiBjb25z
dGV4cHIgYXV0byBnZXRSZXNvdXJjZURhdGFCeURvbWFpbk5hbWVRdWVyeSA9ICJTRUxFQ1QgKiBG
Uk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJsZURvbWFpbiA9ID8iOwogY29uc3Rl
eHByIGF1dG8gZ2V0QWxsRG9tYWluc1F1ZXJ5ID0gIlNFTEVDVCByZWdpc3RyYWJsZURvbWFpbiBG
Uk9NIE9ic2VydmVkRG9tYWlucyJfczsKK2NvbnN0ZXhwciBhdXRvIGdldEFsbFN1YlN0YXRpc3Rp
Y3NVbmRlckRvbWFpblF1ZXJ5ID0gIlNFTEVDVCB0b3BGcmFtZURvbWFpbklEIEZST00gU3ViZnJh
bWVVbmRlclRvcEZyYW1lRG9tYWlucyBXSEVSRSBzdWJGcmFtZURvbWFpbklEID0gPyIKKyAgICAi
VU5JT04gQUxMIFNFTEVDVCB0b3BGcmFtZURvbWFpbklEIEZST00gU3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lRG9tYWlucyBXSEVSRSBzdWJyZXNvdXJjZURvbWFpbklEID0gPyIKKyAgICAiVU5JT04g
QUxMIFNFTEVDVCB0b0RvbWFpbklEIEZST00gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyBX
SEVSRSBzdWJyZXNvdXJjZURvbWFpbklEID0gPyJfczsKIAogY29uc3QgY2hhciogdGFibGVzW10g
PSB7CiAgICAgIk9ic2VydmVkRG9tYWlucyIsCkBAIC0yNjIsNiArMjY2LDggQEAgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlKFdlYlJlc28KICAgICAsIG1fZ2V0UmVzb3VyY2VEYXRhQnlEb21haW5OYW1lU3RhdGVt
ZW50KG1fZGF0YWJhc2UsIGdldFJlc291cmNlRGF0YUJ5RG9tYWluTmFtZVF1ZXJ5KQogICAgICwg
bV9nZXRBbGxEb21haW5zU3RhdGVtZW50KG1fZGF0YWJhc2UsIGdldEFsbERvbWFpbnNRdWVyeSkK
ICAgICAsIG1fZG9tYWluU3RyaW5nRnJvbURvbWFpbklEU3RhdGVtZW50KG1fZGF0YWJhc2UsIGRv
bWFpblN0cmluZ0Zyb21Eb21haW5JRFF1ZXJ5KQorICAgICwgbV9nZXRBbGxTdWJTdGF0aXN0aWNz
U3RhdGVtZW50KG1fZGF0YWJhc2UsIGdldEFsbFN1YlN0YXRpc3RpY3NVbmRlckRvbWFpblF1ZXJ5
KQorICAgICwgbV9zdG9yYWdlQWNjZXNzRXhpc3RzU3RhdGVtZW50KG1fZGF0YWJhc2UsIHN0b3Jh
Z2VBY2Nlc3NFeGlzdHNRdWVyeSkKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKIHsKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTUwMyw2ICs1MDksOCBAQCBib29sIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cygpCiAg
ICAgICAgIHx8IG1fZ2V0UmVzb3VyY2VEYXRhQnlEb21haW5OYW1lU3RhdGVtZW50LnByZXBhcmUo
KSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9nZXRBbGxEb21haW5zU3RhdGVtZW50LnByZXBh
cmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgbV9kb21haW5TdHJpbmdGcm9tRG9tYWluSURT
dGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCBtX2dldEFsbFN1YlN0
YXRpc3RpY3NTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAgICB8fCBtX3N0
b3JhZ2VBY2Nlc3NFeGlzdHNTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSwogICAgICAg
ICApIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzIGZhaWxlZCB0byBw
cmVwYXJlLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0
RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTYwLDcgKzU2
OCw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbGF0aW9u
c2hpcEV4aXN0cyhXZWJDb3JlOjpTUUxpdGVTdGF0CiAgICAgaWYgKHN0YXRlbWVudC5iaW5kSW50
KDEsICpmaXJzdERvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVtZW50LmJp
bmRUZXh0KDIsIHNlY29uZERvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8
IHN0YXRlbWVudC5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewotICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6bV9pbnNlcnREb21haW5SZWxhdGlvbnNoaXBTdGF0ZW1lbnQgZmFpbGVk
IHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1zIiwgdGhpcywgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9z
ZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxh
dGlvbnNoaXBFeGlzdHMgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHJpdmF0ZX1z
IiwgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtNzU1LDE5ICs3NjMs
MTkgQEAgc3RhdGljIGNvbnN0IFN0cmluZ1ZpZXcgam9pblN1YlN0YXRpc3RpY3NGb3JTb3J0aW5n
KCkKIHsKICAgICByZXR1cm4gUiJxdWVyeSgKICAgICAgICAgZG9tYWluSUQsCi0gICAgICAgIChj
bnQxICsgY250MiArIGNudDMpIGFzIHN1bQorICAgICAgICAoY291bnRTdWJGcmFtZVVuZGVyVG9w
RnJhbWUgKyBjb3VudFN1YlJlc291cmNlVW5kZXJUb3BGcmFtZSArIGNvdW50VW5pcXVlUmVkaXJl
Y3RUbykgYXMgc3VtCiAgICAgICAgIEZST00gKAogICAgICAgICBTRUxFQ1QKICAgICAgICAgICAg
IGRvbWFpbklELAotICAgICAgICAgICAgQ09VTlQoRElTVElOQ1QgZi50b3BGcmFtZURvbWFpbklE
KSBhcyBjbnQxLAotICAgICAgICAgICAgQ09VTlQoRElTVElOQ1Qgci50b3BGcmFtZURvbWFpbklE
KSBhcyBjbnQyLAotICAgICAgICAgICAgQ09VTlQoRElTVElOQ1QgdG9Eb21haW5JRCkgYXMgY250
MworICAgICAgICAgICAgQ09VTlQoRElTVElOQ1QgZi50b3BGcmFtZURvbWFpbklEKSBhcyBjb3Vu
dFN1YkZyYW1lVW5kZXJUb3BGcmFtZSwKKyAgICAgICAgICAgIENPVU5UKERJU1RJTkNUIHIudG9w
RnJhbWVEb21haW5JRCkgYXMgY291bnRTdWJSZXNvdXJjZVVuZGVyVG9wRnJhbWUsCisgICAgICAg
ICAgICBDT1VOVChESVNUSU5DVCB0b0RvbWFpbklEKSBhcyBjb3VudFVuaXF1ZVJlZGlyZWN0VG8K
ICAgICAgICAgRlJPTQogICAgICAgICBPYnNlcnZlZERvbWFpbnMgbwogICAgICAgICBMRUZUIEpP
SU4gU3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucyBmIE9OIG8uZG9tYWluSUQgPSBmLnN1YkZy
YW1lRG9tYWluSUQKICAgICAgICAgTEVGVCBKT0lOIFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURv
bWFpbnMgciBPTiBvLmRvbWFpbklEID0gci5zdWJyZXNvdXJjZURvbWFpbklECiAgICAgICAgIExF
RlQgSk9JTiBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvIHUgT04gby5kb21haW5JRCA9IHUu
c3VicmVzb3VyY2VEb21haW5JRAotICAgICAgICBXSEVSRSBpc1ByZXZhbGVudCA9IDEKKyAgICAg
ICAgV0hFUkUgaXNQcmV2YWxlbnQgTElLRSA/CiAgICAgICAgIGFuZCBoYWRVc2VySW50ZXJhY3Rp
b24gTElLRSA/CiAgICAgICAgIEdST1VQIEJZIGRvbWFpbklEKSBPUkRFUiBCWSBzdW0gREVTQwog
ICAgICAgICApcXVlcnkiOwpAQCAtNzc4LDE1ICs3ODYsNjEgQEAgc3RhdGljIFNRTGl0ZVN0YXRl
bWVudCBtYWtlTWVkaWFuV2l0aFVJUXVlcnkoU1FMaXRlRGF0YWJhc2UmIGRhdGFiYXNlKQogICAg
IHJldHVybiBTUUxpdGVTdGF0ZW1lbnQoZGF0YWJhc2UsIG1ha2VTdHJpbmcoIlNFTEVDVCBtb3N0
UmVjZW50VXNlckludGVyYWN0aW9uVGltZSBGUk9NIE9ic2VydmVkRG9tYWlucyBJTk5FUiBKT0lO
IChTRUxFQ1QgIiwgam9pblN1YlN0YXRpc3RpY3NGb3JTb3J0aW5nKCksICIpIGFzIHEgT04gT2Jz
ZXJ2ZWREb21haW5zLmRvbWFpbklEID0gcS5kb21haW5JRCBMSU1JVCAxIE9GRlNFVCA/IikpOwog
fQogCitWZWN0b3I8VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0UGFydHk+IFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRGaXJzdFBhcnR5RGF0YUZvckRvbWFpbih1
bnNpZ25lZCBkb21haW5JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpblN0cmluZykg
Y29uc3QKK3sKKyAgICBpZiAobV9nZXRBbGxTdWJTdGF0aXN0aWNzU3RhdGVtZW50LmJpbmRJbnQo
MSwgZG9tYWluSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBtX2dldEFsbFN1YlN0YXRpc3Rp
Y3NTdGF0ZW1lbnQuYmluZEludCgyLCBkb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8
IG1fZ2V0QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVudC5iaW5kSW50KDMsIGRvbWFpbklEKSAhPSBT
UUxJVEVfT0spIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRGaXJzdFBhcnR5RGF0YUZvckRvbWFpbiwg
ZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgVmVjdG9yPFRoaXJkUGFy
dHlEYXRhRm9yU3BlY2lmaWNGaXJzdFBhcnR5PiBmaXJzdFBhcnR5RGF0YUxpc3Q7CisgICAgd2hp
bGUgKG1fZ2V0QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVudC5zdGVwKCkgPT0gU1FMSVRFX1JPVykg
eworICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiBmaXJzdFBhcnR5RG9tYWluID0gUmVnaXN0cmFi
bGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJsZURvbWFpblN0cmluZyhnZXRE
b21haW5TdHJpbmdGcm9tRG9tYWluSUQobV9nZXRBbGxTdWJTdGF0aXN0aWNzU3RhdGVtZW50Lmdl
dENvbHVtbkludCgwKSkpOworICAgICAgICBmaXJzdFBhcnR5RGF0YUxpc3QuYXBwZW5kSWZOb3RD
b250YWlucyhUaGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0eSB7IGZpcnN0UGFydHlE
b21haW4sIGhhc1N0b3JhZ2VBY2Nlc3MoZmlyc3RQYXJ0eURvbWFpbiwgZG9tYWluU3RyaW5nKSB9
KTsKKyAgICB9CisKKyAgICByZXNldFN0YXRlbWVudChtX2dldEFsbFN1YlN0YXRpc3RpY3NTdGF0
ZW1lbnQpOworICAgIHJldHVybiBmaXJzdFBhcnR5RGF0YUxpc3Q7Cit9CisKK3N0YXRpYyBib29s
IGhhc0JlZW5UaGlyZFBhcnR5KHVuc2lnbmVkIHRpbWVzVW5kZXJGaXJzdFBhcnR5KQoreworICAg
IHJldHVybiB0aW1lc1VuZGVyRmlyc3RQYXJ0eSA+IDA7Cit9CisKK1ZlY3RvcjxUaGlyZFBhcnR5
RGF0YT4gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmFnZ3JlZ2F0ZWRUaGly
ZFBhcnR5RGF0YSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisK
KyAgICBWZWN0b3I8VGhpcmRQYXJ0eURhdGE+IHRoaXJkUGFydHlEYXRhTGlzdDsKKyAgICBTUUxp
dGVTdGF0ZW1lbnQgc29ydGVkU3RhdGlzdGljcyhtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxF
Q1QgIiwgam9pblN1YlN0YXRpc3RpY3NGb3JTb3J0aW5nKCkpKTsKKyAgICBpZiAoc29ydGVkU3Rh
dGlzdGljcy5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHNvcnRlZFN0YXRpc3Rp
Y3MuYmluZFRleHQoMSwgIiUiKQorICAgICAgICB8fCBzb3J0ZWRTdGF0aXN0aWNzLmJpbmRUZXh0
KDIsICIlIikgIT0gU1FMSVRFX09LKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdv
cmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YWdncmVnYXRlZFRoaXJk
UGFydHlEYXRhLCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
dGhpcmRQYXJ0eURhdGFMaXN0OworICAgIH0KKyAgICB3aGlsZSAoc29ydGVkU3RhdGlzdGljcy5z
dGVwKCkgPT0gU1FMSVRFX1JPVykgeworICAgICAgICBpZiAoaGFzQmVlblRoaXJkUGFydHkoc29y
dGVkU3RhdGlzdGljcy5nZXRDb2x1bW5JbnQoMSkpKSB7CisgICAgICAgICAgICBhdXRvIHRoaXJk
UGFydHlEb21haW5JRCA9IHNvcnRlZFN0YXRpc3RpY3MuZ2V0Q29sdW1uSW50KDApOworICAgICAg
ICAgICAgYXV0byB0aGlyZFBhcnR5RG9tYWluID0gUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tl
ZENyZWF0ZUZyb21SZWdpc3RyYWJsZURvbWFpblN0cmluZyhnZXREb21haW5TdHJpbmdGcm9tRG9t
YWluSUQodGhpcmRQYXJ0eURvbWFpbklEKSk7CisgICAgICAgICAgICB0aGlyZFBhcnR5RGF0YUxp
c3QuYXBwZW5kKFRoaXJkUGFydHlEYXRhIHsgdGhpcmRQYXJ0eURvbWFpbiwgZ2V0Rmlyc3RQYXJ0
eURhdGFGb3JEb21haW4odGhpcmRQYXJ0eURvbWFpbklELCB0aGlyZFBhcnR5RG9tYWluKSB9KTsK
KyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gdGhpcmRQYXJ0eURhdGFMaXN0OworfQorCiBz
dGF0aWMgc3RkOjpwYWlyPFN0cmluZ1ZpZXcsIFN0cmluZ1ZpZXc+IGJ1aWxkUXVlcnlTdGFydEFu
ZEVuZChQcmV2YWxlbnRSZXNvdXJjZURhdGFiYXNlVGVsZW1ldHJ5OjpTdGF0aXN0aWMgc3RhdGlz
dGljKQogewogICAgIHN3aXRjaCAoc3RhdGlzdGljKSB7CiAgICAgY2FzZSBQcmV2YWxlbnRSZXNv
dXJjZURhdGFiYXNlVGVsZW1ldHJ5OjpTdGF0aXN0aWM6Ok1lZGlhblN1YkZyYW1lV2l0aG91dFVJ
OgotICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoIlNFTEVDVCBjbnQxIEZST00gT2JzZXJ2
ZWREb21haW5zIG8gSU5ORVIgSk9JTihTRUxFQ1QgY250MSwgIiwgIikgYXMgcSBPTiBvLmRvbWFp
bklEID0gcS5kb21haW5JRCBMSU1JVCAxIE9GRlNFVCA/Iik7CisgICAgICAgIHJldHVybiBzdGQ6
Om1ha2VfcGFpcigiU0VMRUNUIGNvdW50U3ViRnJhbWVVbmRlclRvcEZyYW1lIEZST00gT2JzZXJ2
ZWREb21haW5zIG8gSU5ORVIgSk9JTihTRUxFQ1QgY291bnRTdWJGcmFtZVVuZGVyVG9wRnJhbWUs
ICIsICIpIGFzIHEgT04gby5kb21haW5JRCA9IHEuZG9tYWluSUQgTElNSVQgMSBPRkZTRVQgPyIp
OwogICAgIGNhc2UgUHJldmFsZW50UmVzb3VyY2VEYXRhYmFzZVRlbGVtZXRyeTo6U3RhdGlzdGlj
OjpNZWRpYW5TdWJSZXNvdXJjZVdpdGhvdXRVSToKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9w
YWlyKCJTRUxFQ1QgY250MiBGUk9NIE9ic2VydmVkRG9tYWlucyBvIElOTkVSIEpPSU4oU0VMRUNU
IGNudDIsICIsICIpIGFzIHEgT04gby5kb21haW5JRCA9IHEuZG9tYWluSUQgTElNSVQgMSBPRkZT
RVQgPyIpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoIlNFTEVDVCBjb3VudFN1YlJl
c291cmNlVW5kZXJUb3BGcmFtZSBGUk9NIE9ic2VydmVkRG9tYWlucyBvIElOTkVSIEpPSU4oU0VM
RUNUIGNvdW50U3ViUmVzb3VyY2VVbmRlclRvcEZyYW1lLCAiLCAiKSBhcyBxIE9OIG8uZG9tYWlu
SUQgPSBxLmRvbWFpbklEIExJTUlUIDEgT0ZGU0VUID8iKTsKICAgICBjYXNlIFByZXZhbGVudFJl
c291cmNlRGF0YWJhc2VUZWxlbWV0cnk6OlN0YXRpc3RpYzo6TWVkaWFuVW5pcXVlUmVkaXJlY3Rz
V2l0aG91dFVJOgotICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoIlNFTEVDVCBjbnQzIEZS
T00gT2JzZXJ2ZWREb21haW5zIG8gSU5ORVIgSk9JTihTRUxFQ1QgY250MywgIiwgIikgYXMgcSBP
TiBvLmRvbWFpbklEID0gcS5kb21haW5JRCBMSU1JVCAxIE9GRlNFVCA/Iik7CisgICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfcGFpcigiU0VMRUNUIGNvdW50VW5pcXVlUmVkaXJlY3RUbyBGUk9NIE9i
c2VydmVkRG9tYWlucyBvIElOTkVSIEpPSU4oU0VMRUNUIGNvdW50VW5pcXVlUmVkaXJlY3RUbywg
IiwgIikgYXMgcSBPTiBvLmRvbWFpbklEID0gcS5kb21haW5JRCBMSU1JVCAxIE9GRlNFVCA/Iik7
CiAgICAgY2FzZSBQcmV2YWxlbnRSZXNvdXJjZURhdGFiYXNlVGVsZW1ldHJ5OjpTdGF0aXN0aWM6
Ok1lZGlhbkRhdGFSZWNvcmRzUmVtb3ZlZFdpdGhvdXRVSToKICAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV9wYWlyKCJTRUxFQ1QgZGF0YVJlY29yZHNSZW1vdmVkIEZST00gKFNFTEVDVCAqIEZST00g
T2JzZXJ2ZWREb21haW5zIG8gSU5ORVIgSk9JTihTRUxFQ1QgIiwgIikgYXMgcSBPTiBvLmRvbWFp
bklEID0gcS5kb21haW5JRCkgTElNSVQgMSBPRkZTRVQgPyIpOwogICAgIGNhc2UgUHJldmFsZW50
UmVzb3VyY2VEYXRhYmFzZVRlbGVtZXRyeTo6U3RhdGlzdGljOjpNZWRpYW5UaW1lc0FjY2Vzc2Vk
RHVlVG9Vc2VySW50ZXJhY3Rpb25XaXRob3V0VUk6CkBAIC04MTgsNyArODcyLDcgQEAgc3RhdGlj
IHVuc2lnbmVkIGdldE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlv
bihTUUxpdGVEYXRhYmFzZSYKICAgICB9CiAKICAgICAvLyBCaW5kCi0gICAgaWYgKG1lZGlhbkRh
eXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LIHx8IG1lZGlhbkRh
eXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMiwgKHByZXZhbGVudFJlc291cmNlc1dpdGhVc2Vy
SW50ZXJhY3Rpb25Db3VudCAvIDIpICE9IFNRTElURV9PSykpIHsKKyAgICBpZiAobWVkaWFuRGF5
c1NpbmNlVUlTdGF0ZW1lbnQuYmluZEludCgxLCAxKSAhPSBTUUxJVEVfT0sgfHwgbWVkaWFuRGF5
c1NpbmNlVUlTdGF0ZW1lbnQuYmluZEludCgyLCAxKSAhPSBTUUxJVEVfT0sgfHwgbWVkaWFuRGF5
c1NpbmNlVUlTdGF0ZW1lbnQuYmluZEludCgzLCAocHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJ
bnRlcmFjdGlvbkNvdW50IC8gMikgIT0gU1FMSVRFX09LKSkgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omdl
dE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgZXJyb3IgbWVz
c2FnZTogJXtwdWJsaWN9cyIsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwpAQCAtODQ3LDcgKzkwMSw3IEBA
IHN0YXRpYyB1bnNpZ25lZCBnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50
ZXJhY3Rpb24oU1FMaXRlRGF0YWJhc2UmCiAgICAgfQogCiAgICAgLy8gQmluZAotICAgIGlmIChs
b3dlck1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09L
IHx8IGxvd2VyTWVkaWFuRGF5c1NpbmNlVUlTdGF0ZW1lbnQuYmluZEludCgyLCAoKHByZXZhbGVu
dFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb25Db3VudCAtIDEpIC8gMikpICE9IFNRTElURV9P
SykgeworICAgIGlmIChsb3dlck1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMSwg
MSkgIT0gU1FMSVRFX09LIHx8IGxvd2VyTWVkaWFuRGF5c1NpbmNlVUlTdGF0ZW1lbnQuYmluZElu
dCgyLCAxKSAhPSBTUUxJVEVfT0sgfHwgbG93ZXJNZWRpYW5EYXlzU2luY2VVSVN0YXRlbWVudC5i
aW5kSW50KDMsICgocHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbkNvdW50IC0g
MSkgLyAyKSkgIT0gU1FMSVRFX09LKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdv
cmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0TWVkaWFuT2ZQcmV2
YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCBlcnJvciBtZXNzYWdlOiAle3B1Ymxp
Y31zIiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgcmV0dXJuIDA7CkBAIC05MDAsNyArOTU0LDggQEAgdW5zaWduZWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldFRvcFByZXZlbGVudFJlc291cmNl
RGF5c1NpbmNlVUkKICAgICB9CiAgICAgCiAgICAgLy8gQmluZAotICAgIGlmICh0b3BQcmV2YWxl
bnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VVc2VySW50ZXJhY3Rpb25TdGF0
ZW1lbnQuYmluZEludCgxLCAxKSAhPSBTUUxJVEVfT0spIHsKKyAgICBpZiAodG9wUHJldmFsZW50
UmVzb3VyY2VXaXRoVXNlckludGVyYWN0aW9uRGF5c1NpbmNlVXNlckludGVyYWN0aW9uU3RhdGVt
ZW50LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHRvcFByZXZhbGVudFJl
c291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNTaW5jZVVzZXJJbnRlcmFjdGlvblN0YXRlbWVu
dC5iaW5kSW50KDIsIDEpICE9IFNRTElURV9PSykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnRvcFByZXZh
bGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNTaW5jZVVzZXJJbnRlcmFjdGlvblN0
YXRlbWVudCBxdWVyeSBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIs
IG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuIDA7CkBAIC05MjcsOCArOTgyLDkgQEAgc3RhdGljIHVuc2lnbmVk
IGdldE1lZGlhbk9mUHJldmFsZW50UmVzb3VyY2VXaXRob3V0VXNlckludGVyYWN0aW9uKFNRTGl0
ZURhdGFiYXMKICAgICBTUUxpdGVTdGF0ZW1lbnQgZ2V0TWVkaWFuU3RhdGlzdGljID0gbWFrZU1l
ZGlhbldpdGhvdXRVSVF1ZXJ5KGRhdGFiYXNlLCBzdGF0aXN0aWMpOwogCiAgICAgaWYgKGdldE1l
ZGlhblN0YXRpc3RpYy5wcmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIGlmIChnZXRN
ZWRpYW5TdGF0aXN0aWMuYmluZEludCgxLCAwKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgICAgIHx8
IGdldE1lZGlhblN0YXRpc3RpYy5iaW5kSW50KDIsIChidWNrZXRTaXplIC8gMikpICE9IFNRTElU
RV9PSykgeworICAgICAgICBpZiAoZ2V0TWVkaWFuU3RhdGlzdGljLmJpbmRJbnQoMSwgMSkgIT0g
U1FMSVRFX09LCisgICAgICAgICAgICB8fCBnZXRNZWRpYW5TdGF0aXN0aWMuYmluZEludCgyLCAw
KSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IGdldE1lZGlhblN0YXRpc3RpYy5iaW5kSW50
KDMsIChidWNrZXRTaXplIC8gMikpICE9IFNRTElURV9PSykgewogICAgICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjptYWtlTWVkaWFuV2l0aG91dFVJUXVlcnksIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCBk
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgICAgIHJldHVybiAwOwpAQCAtOTQzLDcgKzk5OSw4IEBAIHN0YXRpYyB1bnNp
Z25lZCBnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlV2l0aG91dFVzZXJJbnRlcmFjdGlvbihT
UUxpdGVEYXRhYmFzCiAgICAgU1FMaXRlU3RhdGVtZW50IGdldExvd2VyTWVkaWFuU3RhdGlzdGlj
ID0gbWFrZU1lZGlhbldpdGhvdXRVSVF1ZXJ5KGRhdGFiYXNlLCBzdGF0aXN0aWMpOwogCiAgICAg
aWYgKGdldExvd2VyTWVkaWFuU3RhdGlzdGljLnByZXBhcmUoKSA9PSBTUUxJVEVfT0spIHsKLSAg
ICAgICAgaWYgKGdldExvd2VyTWVkaWFuU3RhdGlzdGljLmJpbmRJbnQoMSwgMCkgIT0gU1FMSVRF
X09LCisgICAgICAgIGlmIChnZXRMb3dlck1lZGlhblN0YXRpc3RpYy5iaW5kSW50KDEsIDEpICE9
IFNRTElURV9PSworICAgICAgICAgICAgfHwgZ2V0TG93ZXJNZWRpYW5TdGF0aXN0aWMuYmluZElu
dCgyLCAwKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8IGdldExvd2VyTWVkaWFuU3RhdGlz
dGljLmJpbmRJbnQoMiwgKChidWNrZXRTaXplLTEpIC8gMikpICE9IFNRTElURV9PSykgewogICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjptYWtlTWVkaWFuV2l0aG91dFVJUXVlcnksIGVycm9yIG1lc3NhZ2U6
ICV7cHVibGljfXMiLCBkYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTk2MSw4ICsxMDE4LDkgQEAgc3RhdGljIHVuc2lnbmVkIGdl
dE51bWJlck9mUHJldmFsZW50UmVzb3VyY2VzSW5Ub3BSZXNvdXJjZXMoU1FMaXRlRGF0YWJhc2Um
IGRhdGEKICAgICBTUUxpdGVTdGF0ZW1lbnQgcHJldmFsZW50UmVzb3VyY2VDb3VudEluVG9wKGRh
dGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgQ09VTlQoKikgRlJPTSAoU0VMRUNUICogRlJPTSBP
YnNlcnZlZERvbWFpbnMgbyBJTk5FUiBKT0lOKFNFTEVDVCAiLCBqb2luU3ViU3RhdGlzdGljc0Zv
clNvcnRpbmcoKSwgIikgYXMgcSBvbiBxLmRvbWFpbklEID0gby5kb21haW5JRCBMSU1JVCA/KSBh
cyBwIFdIRVJFIHAuaGFkVXNlckludGVyYWN0aW9uID0gMTsiKSk7CiAKICAgICBpZiAocHJldmFs
ZW50UmVzb3VyY2VDb3VudEluVG9wLnByZXBhcmUoKSA9PSBTUUxJVEVfT0spIHsKLSAgICAgICAg
aWYgKHByZXZhbGVudFJlc291cmNlQ291bnRJblRvcC5iaW5kVGV4dCgxLCAiJSIpICE9IFNRTElU
RV9PSwotICAgICAgICAgICAgfHwgcHJldmFsZW50UmVzb3VyY2VDb3VudEluVG9wLmJpbmRJbnQo
MiwgYnVja2V0U2l6ZSkgIT0gU1FMSVRFX09LKSB7CisgICAgICAgIGlmIChwcmV2YWxlbnRSZXNv
dXJjZUNvdW50SW5Ub3AuYmluZEludCgxLCAxKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8
IHByZXZhbGVudFJlc291cmNlQ291bnRJblRvcC5iaW5kVGV4dCgyLCAiJSIpICE9IFNRTElURV9P
SworICAgICAgICAgICAgfHwgcHJldmFsZW50UmVzb3VyY2VDb3VudEluVG9wLmJpbmRJbnQoMywg
YnVja2V0U2l6ZSkgIT0gU1FMSVRFX09LKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihOZXR3b3JrLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldE51bWJl
ck9mUHJldmFsZW50UmVzb3VyY2VzSW5Ub3BSZXNvdXJjZXMsIGVycm9yIG1lc3NhZ2U6ICV7cHVi
bGljfXMiLCBkYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiAwOwpAQCAtMTI1MSw2ICsxMzA5LDExIEBA
IHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnN5bmNTdG9yYWdlSW1t
ZWRpYXRlbHkoKQogICAgIG1fZGF0YWJhc2UucnVuVmFjdXVtQ29tbWFuZCgpOwogfQogCitib29s
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNv
bnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgY29uc3QgU3ViRnJhbWVEb21haW4m
IHN1YkZyYW1lRG9tYWluKSBjb25zdAoreworICAgIHJldHVybiByZWxhdGlvbnNoaXBFeGlzdHMo
bV9zdG9yYWdlQWNjZXNzRXhpc3RzU3RhdGVtZW50LCBkb21haW5JRChzdWJGcmFtZURvbWFpbiks
IHRvcEZyYW1lRG9tYWluKTsKK30KKwogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVE
b21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CkBAIC0xNjE4LDcgKzE2ODEsMTUgQEAgdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoQ29t
cGxldGlvbkgKICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiUmVzb3VyY2UgbG9hZCBzdGF0aXN0
aWNzOlxuXG4iKTsKICAgICB3aGlsZSAobV9nZXRBbGxEb21haW5zU3RhdGVtZW50LnN0ZXAoKSA9
PSBTUUxJVEVfUk9XKQogICAgICAgICByZXNvdXJjZVRvU3RyaW5nKHJlc3VsdCwgbV9nZXRBbGxE
b21haW5zU3RhdGVtZW50LmdldENvbHVtblRleHQoMCkpOwotICAgIAorCisgICAgYXV0byB0aGly
ZFBhcnR5RGF0YSA9IGFnZ3JlZ2F0ZWRUaGlyZFBhcnR5RGF0YSgpOworICAgIGlmICghdGhpcmRQ
YXJ0eURhdGEuaXNFbXB0eSgpKSB7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIlxuSVRQIERhdGE6
XG4iKTsKKyAgICAgICAgZm9yIChhdXRvIHRoaXJkUGFydHkgOiB0aGlyZFBhcnR5RGF0YSkgewor
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh0aGlyZFBhcnR5LnRvU3RyaW5nKCkpOworICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKTsKKyAgICAgICAgfQorICAgIH0KICAgICByZXNldFN0
YXRlbWVudChtX2dldEFsbERvbWFpbnNTdGF0ZW1lbnQpOwogICAgIGNvbXBsZXRpb25IYW5kbGVy
KHJlc3VsdC50b1N0cmluZygpKTsKIH0KQEAgLTIzNDcsNiArMjQxOCwxMSBAQCB2b2lkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjphcHBlbmRTdWJTdGF0aXN0aWNMaXN0KFN0
cmluZ0J1aWxkZXImCiAgICAgfQogfQogCitzdGF0aWMgYm9vbCBoYXNIYWRSZWNlbnRVc2VySW50
ZXJhY3Rpb24oZG91YmxlIGludGVyYWN0aW9uVGltZVNlY29uZHMpCit7CisgICAgcmV0dXJuIGlu
dGVyYWN0aW9uVGltZVNlY29uZHMgPiAwICYmIFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VF
cG9jaCgpLnZhbHVlKCkgLSBpbnRlcmFjdGlvblRpbWVTZWNvbmRzIDwgU2Vjb25kcygyNF9oKS52
YWx1ZSgpOworfQorCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpy
ZXNvdXJjZVRvU3RyaW5nKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNvbnN0IFN0cmluZyYgZG9t
YWluKSBjb25zdAogewogICAgIGlmIChtX2dldFJlc291cmNlRGF0YUJ5RG9tYWluTmFtZVN0YXRl
bWVudC5iaW5kVGV4dCgxLCBkb21haW4pICE9IFNRTElURV9PSwpAQCAtMjM2NCw3ICsyNDQwLDEw
IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlc291cmNlVG9T
dHJpbmcoU3RyaW5nQnVpbGRlciYgYnVpbGRlCiAgICAgYXBwZW5kQm9vbGVhbihidWlsZGVyLCAi
aGFkVXNlckludGVyYWN0aW9uIiwgbV9nZXRSZXNvdXJjZURhdGFCeURvbWFpbk5hbWVTdGF0ZW1l
bnQuZ2V0Q29sdW1uSW50KEhhZFVzZXJJbnRlcmFjdGlvbkluZGV4KSk7CiAgICAgYnVpbGRlci5h
cHBlbmQoJ1xuJyk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgbW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvbjogIik7Ci0gICAgYnVpbGRlci5hcHBlbmRGaXhlZFByZWNpc2lvbk51bWJl
cihtX2dldFJlc291cmNlRGF0YUJ5RG9tYWluTmFtZVN0YXRlbWVudC5nZXRDb2x1bW5Eb3VibGUo
TW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWVJbmRleCkpOworICAgIGlmIChoYXNIYWRSZWNl
bnRVc2VySW50ZXJhY3Rpb24obV9nZXRSZXNvdXJjZURhdGFCeURvbWFpbk5hbWVTdGF0ZW1lbnQu
Z2V0Q29sdW1uRG91YmxlKE1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lSW5kZXgpKSkKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ3aXRoaW4gMjQgaG91cnMiKTsKKyAgICBlbHNl
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLTEiKTsKICAgICBidWlsZGVyLmFwcGVu
ZCgnXG4nKTsKICAgICBhcHBlbmRCb29sZWFuKGJ1aWxkZXIsICJncmFuZGZhdGhlcmVkIiwgbV9n
ZXRSZXNvdXJjZURhdGFCeURvbWFpbk5hbWVTdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KEdyYW5kZmF0
aGVyZWRJbmRleCkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRleCA5Mzk2OWE5OTRm
NGM0YzEwZmYzYjY3MGRmNGRmNzY4YmY4ZDRmNmQ4Li4wZjZlODBlMTA1MTEzMGQxOTJiOWE3YzVk
ZTdmNTBkMWI3YTdkY2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuaApAQCAtODUsNiArODUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
bGVhcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNF
bXB0eSgpIGNvbnN0IG92ZXJyaWRlOwogCisgICAgVmVjdG9yPFRoaXJkUGFydHlEYXRhPiBhZ2dy
ZWdhdGVkVGhpcmRQYXJ0eURhdGEoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUNv
b2tpZUJsb2NraW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIGNsYXNzaWZ5UHJldmFsZW50UmVzb3VyY2VzKCkgb3ZlcnJpZGU7CkBAIC0xMzcsNiAr
MTM4LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIG9wZW5JVFBEYXRhYmFzZSgpOwog
ICAgIGJvb2wgaXNDb3JyZWN0VGFibGVTY2hlbWEoKTsKKyAgICBib29sIGhhc1N0b3JhZ2VBY2Nl
c3MoY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBTdWJGcmFtZURvbWFpbiYpIGNvbnN0Owor
ICAgIFZlY3RvcjxUaGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0eT4gZ2V0Rmlyc3RQ
YXJ0eURhdGFGb3JEb21haW4odW5zaWduZWQgZG9tYWluSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJikgY29uc3Q7CiAgICAgdm9pZCBvcGVuQW5kRHJvcE9sZERhdGFiYXNlSWZOZWNlc3Nhcnko
KTsKICAgICBTdHJpbmcgZ2V0RG9tYWluU3RyaW5nRnJvbURvbWFpbklEKHVuc2lnbmVkKSBjb25z
dDsKICAgICBTdHJpbmcgZ2V0U3ViU3RhdGlzdGljU3RhdGVtZW50KGNvbnN0IFN0cmluZyYpIGNv
bnN0OwpAQCAtMjQ4LDYgKzI1MSw4IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBXZWJDb3JlOjpT
UUxpdGVTdGF0ZW1lbnQgbV9nZXRSZXNvdXJjZURhdGFCeURvbWFpbk5hbWVTdGF0ZW1lbnQ7CiAg
ICAgbXV0YWJsZSBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9nZXRBbGxEb21haW5zU3RhdGVt
ZW50OwogICAgIG11dGFibGUgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1fZG9tYWluU3RyaW5n
RnJvbURvbWFpbklEU3RhdGVtZW50OworICAgIG11dGFibGUgV2ViQ29yZTo6U1FMaXRlU3RhdGVt
ZW50IG1fZ2V0QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVudDsKKyAgICBtdXRhYmxlIFdlYkNvcmU6
OlNRTGl0ZVN0YXRlbWVudCBtX3N0b3JhZ2VBY2Nlc3NFeGlzdHNTdGF0ZW1lbnQ7CiAgICAgUEFM
OjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IGM0ZTdkNGFmMjdiMTFjMGMxMGM5
Yjg3YWFhMGY2MWE0NDlmNjBlMzcuLjc3ODUyZGFlMTMyMTMyN2U0ODYzMzI5NmE4NWVmZTEyZjdi
ZjJjYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmUuY3BwCkBAIC0xMDMsNiArMTAzLDQ2IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlOjpjYWxjdWxhdGVBbmRTdWJtaXRUZWxlbWV0cnkoKSBjb25zdAogICAgICAg
ICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5OjpjYWxjdWxhdGVBbmRTdWJtaXQo
KnRoaXMpOwogfQogCitzdGF0aWMgdm9pZCBlbnN1cmVGaXJzdFBhcnR5U3RhdGlzdGljKFZlY3Rv
cjxUaGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0eT4mIGZpcnN0UGFydHlEYXRhTGlz
dCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIGJvb2wgdGhpcmRQ
YXJ0eUhhc1N0b3JhZ2VBY2Nlc3MpCit7CisgICAgVGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0Zp
cnN0UGFydHkgZmlyc3RQYXJ0eSB7IGZpcnN0UGFydHlEb21haW4sIHRoaXJkUGFydHlIYXNTdG9y
YWdlQWNjZXNzIH07CisgICAgZmlyc3RQYXJ0eURhdGFMaXN0LmFwcGVuZElmTm90Q29udGFpbnMo
Zmlyc3RQYXJ0eSk7Cit9CisKK3N0YXRpYyBWZWN0b3I8VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZp
Y0ZpcnN0UGFydHk+IGdldEZpcnN0UGFydHlEYXRhRm9yRG9tYWluKGNvbnN0IFJlc291cmNlTG9h
ZFN0YXRpc3RpY3MmIHN0YXRpc3RpYykKK3sKKyAgICBWZWN0b3I8VGhpcmRQYXJ0eURhdGFGb3JT
cGVjaWZpY0ZpcnN0UGFydHk+IGZpcnN0UGFydHlEYXRhTGlzdDsKKworICAgIGZvciAoYXV0byBm
aXJzdFBhcnR5IDogc3RhdGlzdGljLnN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMpCisgICAg
ICAgIGVuc3VyZUZpcnN0UGFydHlTdGF0aXN0aWMoZmlyc3RQYXJ0eURhdGFMaXN0LCBmaXJzdFBh
cnR5LCBzdGF0aXN0aWMuc3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zLmNvbnRhaW5z
KGZpcnN0UGFydHkpKTsKKyAgICBmb3IgKGF1dG8gZmlyc3RQYXJ0eSA6IHN0YXRpc3RpYy5zdWJy
ZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zKQorICAgICAgICBlbnN1cmVGaXJzdFBhcnR5U3Rh
dGlzdGljKGZpcnN0UGFydHlEYXRhTGlzdCwgZmlyc3RQYXJ0eSwgc3RhdGlzdGljLnN0b3JhZ2VB
Y2Nlc3NVbmRlclRvcEZyYW1lRG9tYWlucy5jb250YWlucyhmaXJzdFBhcnR5KSk7CisgICAgZm9y
IChhdXRvIGZpcnN0UGFydHkgOiBzdGF0aXN0aWMuc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNU
bykKKyAgICAgICAgZW5zdXJlRmlyc3RQYXJ0eVN0YXRpc3RpYyhmaXJzdFBhcnR5RGF0YUxpc3Qs
IGZpcnN0UGFydHksIHN0YXRpc3RpYy5zdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMu
Y29udGFpbnMoZmlyc3RQYXJ0eSkpOworCisgICAgcmV0dXJuIGZpcnN0UGFydHlEYXRhTGlzdDsK
K30KKworc3RhdGljIGJvb2wgaGFzQmVlblRoaXJkUGFydHkoY29uc3QgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyYgc3RhdGlzdGljKQoreworICAgIHJldHVybiAhc3RhdGlzdGljLnN1YmZyYW1lVW5k
ZXJUb3BGcmFtZURvbWFpbnMuaXNFbXB0eSgpCisgICAgICAgIHx8ICFzdGF0aXN0aWMuc3VicmVz
b3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucy5pc0VtcHR5KCkKKyAgICAgICAgfHwgIXN0YXRpc3Rp
Yy5zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLmlzRW1wdHkoKTsKK30KKworVmVjdG9yPFRo
aXJkUGFydHlEYXRhPiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmFnZ3JlZ2F0
ZWRUaGlyZFBhcnR5RGF0YSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CisKKyAgICBWZWN0b3I8VGhpcmRQYXJ0eURhdGE+IHRoaXJkUGFydHlEYXRhTGlzdDsKKyAg
ICBmb3IgKGF1dG8mIHN0YXRpc3RpYyA6IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLnZhbHVlcygp
KSB7CisgICAgICAgIGlmIChoYXNCZWVuVGhpcmRQYXJ0eShzdGF0aXN0aWMpKQorICAgICAgICAg
ICAgdGhpcmRQYXJ0eURhdGFMaXN0LmFwcGVuZChUaGlyZFBhcnR5RGF0YSB7IHN0YXRpc3RpYy5y
ZWdpc3RyYWJsZURvbWFpbiwgZ2V0Rmlyc3RQYXJ0eURhdGFGb3JEb21haW4oc3RhdGlzdGljKSB9
KTsKKyAgICB9CisgICAgc3RkOjpzb3J0KHRoaXJkUGFydHlEYXRhTGlzdC5yYmVnaW4oKSwgdGhp
cmRQYXJ0eURhdGFMaXN0LnJlbmQoKSk7CisgICAgcmV0dXJuIHRoaXJkUGFydHlEYXRhTGlzdDsK
K30KKwogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmluY3JlbWVudFJl
Y29yZHNEZWxldGVkQ291bnRGb3JEb21haW5zKEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+JiYg
ZG9tYWluc1dpdGhEZWxldGVkV2Vic2l0ZURhdGEpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjpp
c01haW4oKSk7CkBAIC01MTAsNiArNTUwLDE1IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlOjpkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhDb21wbGV0aW9uSGFuCiAg
ICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIlJlc291cmNlIGxvYWQgc3RhdGlzdGljczpcblxuIik7
CiAgICAgZm9yIChhdXRvJiBtYXBFbnRyeSA6IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLnZhbHVl
cygpKQogICAgICAgICByZXN1bHQuYXBwZW5kKG1hcEVudHJ5LnRvU3RyaW5nKCkpOworCisgICAg
YXV0byB0aGlyZFBhcnR5RGF0YSA9IGFnZ3JlZ2F0ZWRUaGlyZFBhcnR5RGF0YSgpOworICAgIGlm
ICghdGhpcmRQYXJ0eURhdGEuaXNFbXB0eSgpKSB7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIlxu
SVRQIERhdGE6XG4iKTsKKyAgICAgICAgZm9yIChhdXRvIHRoaXJkUGFydHkgOiB0aGlyZFBhcnR5
RGF0YSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh0aGlyZFBhcnR5LnRvU3RyaW5nKCkp
OworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKTsKKyAgICAgICAgfQorICAgIH0KICAg
ICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQudG9TdHJpbmcoKSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAppbmRleCBjOGZjNjg1ODAz
MzZjOGRkMmM3OGRkZWYyNjQ0NDMzZjdhYzdmM2UyLi45YmNhOTAzMGM1NmU3ZGMyMzMxZDk2MDkz
ZTc0NzE1NTc2MDg2NzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNZW1vcnlTdG9yZS5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFy
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0VtcHR5
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICBWZWN0b3I8VGhpcmRQYXJ0eURhdGE+IGFnZ3JlZ2F0
ZWRUaGlyZFBhcnR5RGF0YSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGNvbnN0IEhhc2hNYXA8UmVn
aXN0cmFibGVEb21haW4sIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiBkYXRhKCkg
Y29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXA7IH0KIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpLZXllZEVuY29kZXI+IGNyZWF0ZUVuY29kZXJGcm9tRGF0YSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IGJmYTRk
NzBiMjY5YWNhYmQ5ZTU1ODk4ZmU3ZGM3ZjM4MWJhYTM5ZjkuLjVlNmU3ZTllZjgyNmViZGU4NWI5
MzIzODQ3YzhhMzhkMWJjM2U2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmgKQEAgLTk5LDYgKzk5LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNs
ZWFyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBp
c0VtcHR5KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgVmVjdG9yPFRoaXJkUGFydHlEYXRhPiBh
Z2dyZWdhdGVkVGhpcmRQYXJ0eURhdGEoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlQ29va2llQmxvY2tpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CiAg
ICAgdm9pZCB1cGRhdGVDb29raWVCbG9ja2luZ0ZvckRvbWFpbnMoY29uc3QgUmVnaXN0cmFibGVE
b21haW5zVG9CbG9ja0Nvb2tpZXNGb3ImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCA0
ZDY2OTk3ZjQ5ZTlmYjgwOTgyMmYzODUyZDY4Y2RkOWI4NDk5NDRjLi44NTIzNjAxOTg4YTQ5YTgw
MTFlMmM1MTgxYjAwY2FkZTVlZDMxZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMTEzNiw2ICsxMTM2LDExIEBAIHZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpub3RpZnlQYWdlU3RhdGlzdGljc1RlbGVtZXRyeUZp
bmlzaGVkKHVuc2lnCiAgICAgICAgIGNvbnN0X2Nhc3Q8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlKj4odGhpcyktPm5ldHdvcmtTZXNzaW9uKCktPm5vdGlmeVBhZ2VTdGF0aXN0aWNzVGVs
ZW1ldHJ5RmluaXNoZWQobnVtYmVyT2ZQcmV2YWxlbnRSZXNvdXJjZXMsIG51bWJlck9mUHJldmFs
ZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgbnVtYmVyT2ZQcmV2YWxlbnRSZXNvdXJj
ZXNXaXRob3V0VXNlckludGVyYWN0aW9uLCB0b3BQcmV2YWxlbnRSZXNvdXJjZVdpdGhVc2VySW50
ZXJhY3Rpb25EYXlzU2luY2VVc2VySW50ZXJhY3Rpb24sIG1lZGlhbkRheXNTaW5jZVVzZXJJbnRl
cmFjdGlvblByZXZhbGVudFJlc291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbiwgdG9wM051bWJlck9m
UHJldmFsZW50UmVzb3VyY2VzV2l0aFVJLCB0b3AzTWVkaWFuU3ViRnJhbWVXaXRob3V0VUksIHRv
cDNNZWRpYW5TdWJSZXNvdXJjZVdpdGhvdXRVSSwgdG9wM01lZGlhblVuaXF1ZVJlZGlyZWN0c1dp
dGhvdXRVSSwgdG9wM01lZGlhbkRhdGFSZWNvcmRzUmVtb3ZlZFdpdGhvdXRVSSk7CiB9CiAKK1Zl
Y3RvcjxUaGlyZFBhcnR5RGF0YT4gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjphZ2dy
ZWdhdGVkVGhpcmRQYXJ0eURhdGEoKQoreworICAgIHJldHVybiBtX3N0YXRpc3RpY3NTdG9yZS0+
YWdncmVnYXRlZFRoaXJkUGFydHlEYXRhKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApp
bmRleCAwY2E0MjZhMDYyODlmMjg4MjEyZjAzOGE5NmQ4YTcyMmJjMTkzZDY4Li5hMTk0OGZjMjdk
ODc2OGI2YjFmMTRhZWI3MzJmZmI0ODA1ZTY4NTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC03Nyw2ICs3Nyw0NiBAQCBzdHJ1Y3QgUmVnaXN0
cmFibGVEb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IgewogICAgIFJlZ2lzdHJhYmxlRG9tYWluc1Rv
QmxvY2tDb29raWVzRm9yIGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgZG9tYWluc1Rv
QmxvY2tBbmREZWxldGVDb29raWVzRm9yLmlzb2xhdGVkQ29weSgpLCBkb21haW5zVG9CbG9ja0J1
dEtlZXBDb29raWVzRm9yLmlzb2xhdGVkQ29weSgpLCBkb21haW5zV2l0aFVzZXJJbnRlcmFjdGlv
bkFzRmlyc3RQYXJ0eS5pc29sYXRlZENvcHkoKSB9OyB9CiB9OwogCitzdHJ1Y3QgVGhpcmRQYXJ0
eURhdGFGb3JTcGVjaWZpY0ZpcnN0UGFydHkgeworICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIGZpcnN0UGFydHlEb21haW47CisgICAgYm9vbCBzdG9yYWdlQWNjZXNzR3JhbnRlZDsKKwor
ICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbWFrZVN0
cmluZyhmaXJzdFBhcnR5RG9tYWluLnN0cmluZygpLCAiLCBIYXMgR3JhbnRlZCBTdG9yYWdlIEFj
Y2VzczogIiwgc3RvcmFnZUFjY2Vzc0dyYW50ZWQpOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0
b3I9PShUaGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0eSBjb25zdCBvdGhlcikgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBmaXJzdFBhcnR5RG9tYWluID09IG90aGVyLmZpcnN0
UGFydHlEb21haW4gJiYgc3RvcmFnZUFjY2Vzc0dyYW50ZWQgPT0gb3RoZXIuc3RvcmFnZUFjY2Vz
c0dyYW50ZWQ7CisgICAgfQorfTsKKworc3RydWN0IFRoaXJkUGFydHlEYXRhIHsKKyAgICBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW47CisgICAgVmVjdG9yPFRoaXJkUGFydHlEYXRh
Rm9yU3BlY2lmaWNGaXJzdFBhcnR5PiB1bmRlckZpcnN0UGFydGllczsKKworICAgIFN0cmluZyB0
b1N0cmluZygpIGNvbnN0CisgICAgeworICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxk
ZXI7CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCJSZWdpc3RyYWJsZSBEb21haW46ICIs
IGRvbWFpbi5zdHJpbmcoKSwgIlxuIik7CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiICAgIHsiKTsKKworICAgICAgICBmb3IgKGF1dG8gZmlyc3RQYXJ0eSA6IHVuZGVyRmly
c3RQYXJ0aWVzKSB7CisgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoInsg
Iik7CisgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChmaXJzdFBhcnR5LnRvU3RyaW5n
KCkpOworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgfSwiKTsKKyAg
ICAgICAgfQorICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIn0iKTsKKyAgICAg
ICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBib29sIG9w
ZXJhdG9yPChjb25zdCBUaGlyZFBhcnR5RGF0YSAmb3RoZXIpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gdW5kZXJGaXJzdFBhcnRpZXMuc2l6ZSgpIDwgb3RoZXIudW5kZXJGaXJzdFBhcnRp
ZXMuc2l6ZSgpOworICAgIH0KK307CisKIGNsYXNzIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+IHsKIHB1YmxpYzoK
ICAgICB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljczsKQEAgLTE5Myw2ICsyMzMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc291
cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzPiYmKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoRG9t
YWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzJiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG9wZW5l
cklELCBPcGVuZXJEb21haW4mJik7CisgICAgVmVjdG9yPFRoaXJkUGFydHlEYXRhPiBhZ2dyZWdh
dGVkVGhpcmRQYXJ0eURhdGEoKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nlc3Npb24mLCBjb25zdCBTdHJpbmcmLCBTaG91
bGRJbmNsdWRlTG9jYWxob3N0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5YzhkMTI1YTYwYjJhN2I0MTg5OGNhODRhMTZm
N2FhNmY1NzllNzYzLi5lYzUwMTFiM2RkZjcwOGY3MzgyMGFlMmZhOWUzNTRjYjZiYmIxMDJlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMTItMDIgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5l
X2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIGJhc2ljIElUUCBkYXRhIGZyb20g
dGhlIGRhdGFiYXNlIGZvciBmdXR1cmUgQVBJL1NQSSB1c2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQzMgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTYwODUwNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgbmV3IHRlc3RzIHRvIGNoZWNrIGlmIHRoZSB1c2VyIGludGVyZmFjZSBkYXRh
IGlzIHByb3Blcmx5CisgICAgICAgIGNvbGxlY3RlZCBhbmQgc29ydGVkIGZvciBib3RoIHRoZSBk
YXRhYmFzZSBzdG9yZSBhbmQgdGhlIG1lbW9yeSBzdG9yZS4KKyAgICAgICAgQWxzbyBlZGl0ZWQg
YW55IHRlc3RzIHdoaWNoIHVzZSBkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpIHRvIGFsc28K
KyAgICAgICAgZXhwZWN0IHRoZSBVSSBkYXRhIHRvIGJlIGRpc3BsYXllZC4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3Jp
cHQtaW1wb3J0LWluLXdvcmtlci1kYXRhYmFzZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5LXNjcmlwdC1p
bXBvcnQtaW4td29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWxvYWRzLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWxvYWRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG9udC1jb3VudC10aGlyZC1wYXJ0
eS1pbWFnZS1hcy10aGlyZC1wYXJ0eS1zY3JpcHQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb250LWNvdW50LXRoaXJk
LXBhcnR5LWltYWdlLWFzLXRoaXJkLXBhcnR5LXNjcmlwdC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEt
bm8tc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmZhY2UtZGF0YS1u
by1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmZhY2UtZGF0YS1uby1zdG9yYWdl
LWFjY2Vzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy91c2VyLWludGVy
ZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0
YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1h
Y2Nlc3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWw6IEFkZGVk
LgorCiAyMDE5LTEyLTAyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgSW5jb3JyZWN0IGFzc29jaWF0aW9uIG9mIHRoZSBVUkwgb2JqZWN0IHdp
dGggdGhlIHZhbHVlIHBvcnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtbm8tc3RvcmFnZS1hY2Nl
c3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy1k
YXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWZlYmU3ZWQ4Y2FlZGZhNjMzZWI1N2Fj
NGQxNTMyZWZlNTEzMDZiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtbm8tc3RvcmFn
ZS1hY2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsODMgQEAKK0NoZWNrIGNv
cnJlY3QgVUkgZGF0YSBnZXRzIHJlcG9ydGVkIHdpdGggbm8gc3RvcmFnZSBhY2Nlc3MuCisKKwor
CitSZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3M6CisKK1JlZ2lzdHJhYmxlIGRvbWFpbjogc3ViZnJh
bWUxCisgICAgaGFkVXNlckludGVyYWN0aW9uOiBObworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJh
Y3Rpb246IC0xCisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBJc1NjaGVkdWxlZEZvckFsbEJ1
dENvb2tpZURhdGFSZW1vdmFsOiBObworICAgIFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnM6
CisgICAgICAgIHRvcGZyYW1lMQorICAgIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG86Cisg
ICAgICAgIHRvcGZyYW1lMgorICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5
UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3Ry
YWJsZSBkb21haW46IHN1YmZyYW1lMgorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAgICBt
b3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAg
SXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbDogTm8KKyAgICBTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAgICB0b3BmcmFtZTEKKyAgICBpc1ByZXZhbGVudFJl
c291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObworICAgIGRhdGFSZWNv
cmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiBzdWJmcmFtZTMKKyAgICBoYWRVc2Vy
SW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEKKyAgICBn
cmFuZGZhdGhlcmVkOiBObworICAgIElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92
YWw6IE5vCisgICAgU3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluczoKKyAgICAgICAgdG9wZnJh
bWUxCisgICAgICAgIHRvcGZyYW1lNAorICAgIFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFp
bnM6CisgICAgICAgIHRvcGZyYW1lMworICAgIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG86
CisgICAgICAgIHRvcGZyYW1lMgorICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNW
ZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdp
c3RyYWJsZSBkb21haW46IHRvcGZyYW1lMQorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAg
ICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisg
ICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbDogTm8KKyAgICBpc1ByZXZh
bGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObworICAgIGRh
dGFSZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiB0b3BmcmFtZTIKKyAgICBo
YWRVc2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEK
KyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0
YVJlbW92YWw6IE5vCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ZlcnlQcmV2
YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKK1JlZ2lzdHJhYmxl
IGRvbWFpbjogdG9wZnJhbWUzCisgICAgaGFkVXNlckludGVyYWN0aW9uOiBObworICAgIG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBJc1Nj
aGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsOiBObworICAgIGlzUHJldmFsZW50UmVz
b3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29y
ZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IHRvcGZyYW1lNAorICAgIGhhZFVzZXJJ
bnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAtMQorICAgIGdy
YW5kZmF0aGVyZWQ6IE5vCisgICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3Zh
bDogTm8KKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJl
c291cmNlOiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorCitJVFAgRGF0YToKK1JlZ2lz
dHJhYmxlIERvbWFpbjogc3ViZnJhbWUzCisgICAge3sgdG9wZnJhbWUxLCBIYXMgR3JhbnRlZCBT
dG9yYWdlIEFjY2VzczogMCB9LHsgdG9wZnJhbWU0LCBIYXMgR3JhbnRlZCBTdG9yYWdlIEFjY2Vz
czogMCB9LHsgdG9wZnJhbWUzLCBIYXMgR3JhbnRlZCBTdG9yYWdlIEFjY2VzczogMCB9LHsgdG9w
ZnJhbWUyLCBIYXMgR3JhbnRlZCBTdG9yYWdlIEFjY2VzczogMCB9LH0KK1JlZ2lzdHJhYmxlIERv
bWFpbjogc3ViZnJhbWUxCisgICAge3sgdG9wZnJhbWUxLCBIYXMgR3JhbnRlZCBTdG9yYWdlIEFj
Y2VzczogMCB9LHsgdG9wZnJhbWUyLCBIYXMgR3JhbnRlZCBTdG9yYWdlIEFjY2VzczogMCB9LH0K
K1JlZ2lzdHJhYmxlIERvbWFpbjogc3ViZnJhbWUyCisgICAge3sgdG9wZnJhbWUxLCBIYXMgR3Jh
bnRlZCBTdG9yYWdlIEFjY2VzczogMCB9LH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtbm8tc3Rv
cmFnZS1hY2Nlc3MtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtbm8tc3RvcmFnZS1hY2Nlc3Mt
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTFjOWVmMjEyZGM0ZTMxOTI5YjExMmEzN2FlMmU4
Mjg0NTc2MGQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0YS1uby1zdG9yYWdlLWFjY2Vz
cy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGls
aXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScs
IDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5DaGVjayBjb3JyZWN0IFVJIGRhdGEgZ2V0cyBy
ZXBvcnRlZCB3aXRoIG5vIHN0b3JhZ2UgYWNjZXNzLjwvZGl2PgorPGJyPgorPGRpdiBpZD0ib3V0
cHV0Ij48L2Rpdj4KKzxicj4KKzxzY3JpcHQ+CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hU
ZXN0KCkgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7
CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGNv
bnN0IHN1Yk9yaWdpbjEgPSAiaHR0cDovL3N1YmZyYW1lMTo4MDAwIjsKKyAgICBjb25zdCBzdWJP
cmlnaW4yICA9ICJodHRwOi8vc3ViZnJhbWUyOjgwMDAiOworICAgIGNvbnN0IHN1Yk9yaWdpbjMg
ID0gImh0dHA6Ly9zdWJmcmFtZTM6ODAwMCI7CisKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjEg
PSAiaHR0cDovL3RvcGZyYW1lMTo4MDAwIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjIgPSAi
aHR0cDovL3RvcGZyYW1lMjo4MDAwIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjMgPSAiaHR0
cDovL3RvcGZyYW1lMzo4MDAwIjsKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbjQgPSAiaHR0cDov
L3RvcGZyYW1lNDo4MDAwIjsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworCisgICAgICAgICAgICAvLyBzdWJPcmlnaW4xIHdpbGwg
YmUgbG9nZ2VkIHVuZGVyIDIgdG9wIGZyYW1lcy4gU2hvdWxkIGFwcGVhciBzZWNvbmQKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdp
bihzdWJPcmlnaW4xLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN1Yk9yaWdpbjEsIHRvcEZy
YW1lT3JpZ2luMik7CisKKyAgICAgICAgICAgIC8vIHN1Yk9yaWdpbjIgd2lsbCBiZSBsb2dnZWQg
dW5kZXIgMSB0b3AgZnJhbWVzLiBTaG91bGQgYXBwZWFyIHRoaXJkCisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3ViT3JpZ2lu
MiwgdG9wRnJhbWVPcmlnaW4xKTsKKworICAgICAgICAgICAgLy8gc3ViT3JpZ2luMyB3aWxsIGJl
IGxvZ2dlZCB1bmRlciA0IHRvcCBmcmFtZXMuIFNob3VsZCBhcHBlYXIgZmlyc3QKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihz
dWJPcmlnaW4zLCB0b3BGcmFtZU9yaWdpbjEpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN1Yk9yaWdpbjMsIHRvcEZyYW1l
T3JpZ2luMik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVPcmlnaW4oc3ViT3JpZ2luMywgdG9wRnJhbWVPcmlnaW4zKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdp
bihzdWJPcmlnaW4zLCB0b3BGcmFtZU9yaWdpbjQpOworCisgICAgICAgICAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uICgpIHsgZmluaXNoVGVzdCgpIH0sIDUwMCk7CisgICAgICAgIH0pOworICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0YS1uby1z
dG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvYWdncmVnYXRlLXNvcnRlZC1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTBjYWVmMTQ0YWNmYThiNzE4NjJmMmI2NmY3NzBh
MzIyZTdiMWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0YS1uby1zdG9yYWdlLWFjY2Vz
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4MyBAQAorQ2hlY2sgY29ycmVjdCBVSSBkYXRhIGdl
dHMgcmVwb3J0ZWQgd2l0aCBubyBzdG9yYWdlIGFjY2VzcyBncmFudGVkLgorCisKKworUmVzb3Vy
Y2UgbG9hZCBzdGF0aXN0aWNzOgorCitSZWdpc3RyYWJsZSBkb21haW46IHRvcGZyYW1lMgorICAg
IGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAt
MQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgZ290TGlua0RlY29yYXRpb25Gcm9tUHJldmFs
ZW50UmVzb3VyY2U6IE5vCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ZlcnlQ
cmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKK1JlZ2lzdHJh
YmxlIGRvbWFpbjogdG9wZnJhbWUzCisgICAgaGFkVXNlckludGVyYWN0aW9uOiBObworICAgIG1v
c3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBn
b3RMaW5rRGVjb3JhdGlvbkZyb21QcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ByZXZhbGVu
dFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObworICAgIGRhdGFS
ZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiB0b3BmcmFtZTEKKyAgICBoYWRV
c2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEKKyAg
ICBncmFuZGZhdGhlcmVkOiBObworICAgIGdvdExpbmtEZWNvcmF0aW9uRnJvbVByZXZhbGVudFJl
c291cmNlOiBObworICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFs
ZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBk
b21haW46IHRvcGZyYW1lNAorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgZ290TGlu
a0RlY29yYXRpb25Gcm9tUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNQcmV2YWxlbnRSZXNv
dXJjZTogTm8KKyAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jk
c1JlbW92ZWQ6IDAKK1JlZ2lzdHJhYmxlIGRvbWFpbjogc3ViZnJhbWUxCisgICAgaGFkVXNlcklu
dGVyYWN0aW9uOiBObworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3Jh
bmRmYXRoZXJlZDogTm8KKyAgICBnb3RMaW5rRGVjb3JhdGlvbkZyb21QcmV2YWxlbnRSZXNvdXJj
ZTogTm8KKyAgICBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAgICB0b3BmcmFt
ZTEKKyAgICBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvOgorICAgICAgICB0b3BmcmFtZTIK
KyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNl
OiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiBzdWJm
cmFtZTIKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvbjogLTEKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIGdvdExpbmtEZWNvcmF0aW9u
RnJvbVByZXZhbGVudFJlc291cmNlOiBObworICAgIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFp
bnM6CisgICAgICAgIHRvcGZyYW1lMQorICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAg
aXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitS
ZWdpc3RyYWJsZSBkb21haW46IHN1YmZyYW1lMworICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8K
KyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5v
CisgICAgZ290TGlua0RlY29yYXRpb25Gcm9tUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgc3Vi
ZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluczoKKyAgICAgICAgdG9wZnJhbWUxCisgICAgICAgIHRv
cGZyYW1lNAorICAgIHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbnM6CisgICAgICAgIHRv
cGZyYW1lMworICAgIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG86CisgICAgICAgIHRvcGZy
YW1lMgorICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVz
b3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCisKK0lUUCBEYXRhOgorUmVnaXN0
cmFibGUgRG9tYWluOiBzdWJmcmFtZTMKKyAgICB7eyB0b3BmcmFtZTEsIEhhcyBHcmFudGVkIFN0
b3JhZ2UgQWNjZXNzOiAwIH0seyB0b3BmcmFtZTQsIEhhcyBHcmFudGVkIFN0b3JhZ2UgQWNjZXNz
OiAwIH0seyB0b3BmcmFtZTMsIEhhcyBHcmFudGVkIFN0b3JhZ2UgQWNjZXNzOiAwIH0seyB0b3Bm
cmFtZTIsIEhhcyBHcmFudGVkIFN0b3JhZ2UgQWNjZXNzOiAwIH0sfQorUmVnaXN0cmFibGUgRG9t
YWluOiBzdWJmcmFtZTEKKyAgICB7eyB0b3BmcmFtZTEsIEhhcyBHcmFudGVkIFN0b3JhZ2UgQWNj
ZXNzOiAwIH0seyB0b3BmcmFtZTIsIEhhcyBHcmFudGVkIFN0b3JhZ2UgQWNjZXNzOiAwIH0sfQor
UmVnaXN0cmFibGUgRG9tYWluOiBzdWJmcmFtZTIKKyAgICB7eyB0b3BmcmFtZTEsIEhhcyBHcmFu
dGVkIFN0b3JhZ2UgQWNjZXNzOiAwIH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0YS1uby1zdG9y
YWdlLWFjY2Vzcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU0OTYxZWIzZTZjZGEyOGJiYWFmYmExYjRmNTgwNmY4MDk3NzM1ZGYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
YWdncmVnYXRlLXNvcnRlZC1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLmh0bWwKQEAgLTAsMCArMSw1
MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIv
Y29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24i
PkNoZWNrIGNvcnJlY3QgVUkgZGF0YSBnZXRzIHJlcG9ydGVkIHdpdGggbm8gc3RvcmFnZSBhY2Nl
c3MgZ3JhbnRlZC48L2Rpdj4KKzxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8YnI+Cis8
c2NyaXB0PgorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOworICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBjb25zdCBzdWJPcmlnaW4xID0gImh0
dHA6Ly9zdWJmcmFtZTE6ODAwMCI7CisgICAgY29uc3Qgc3ViT3JpZ2luMiAgPSAiaHR0cDovL3N1
YmZyYW1lMjo4MDAwIjsKKyAgICBjb25zdCBzdWJPcmlnaW4zICA9ICJodHRwOi8vc3ViZnJhbWUz
OjgwMDAiOworICAgIAorICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vdG9wZnJh
bWUxOjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vdG9wZnJhbWUy
OjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vdG9wZnJhbWUzOjgw
MDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vdG9wZnJhbWU0OjgwMDAi
OworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbiAoKSB7CisKKyAgICAgICAgICAgIC8vIHN1Yk9yaWdpbjEgd2lsbCBiZSBs
b2dnZWQgdW5kZXIgMiB0b3AgZnJhbWVzLiBTaG91bGQgYXBwZWFyIHNlY29uZAorICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN1
Yk9yaWdpbjEsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3ViT3JpZ2luMSwgdG9wRnJhbWVP
cmlnaW4yKTsKKworICAgICAgICAgICAgLy8gc3ViT3JpZ2luMiB3aWxsIGJlIGxvZ2dlZCB1bmRl
ciAxIHRvcCBmcmFtZXMuIFNob3VsZCBhcHBlYXIgdGhpcmQKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdWJPcmlnaW4yLCB0
b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAgICAvLyBzdWJPcmlnaW4zIHdpbGwgYmUgbG9n
Z2VkIHVuZGVyIDQgdG9wIGZyYW1lcy4gU2hvdWxkIGFwcGVhciBmaXJzdAorICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN1Yk9y
aWdpbjMsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3ViT3JpZ2luMywgdG9wRnJhbWVPcmln
aW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5k
ZXJUb3BGcmFtZU9yaWdpbihzdWJPcmlnaW4zLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN1
Yk9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24gKCkgeyBmaW5pc2hUZXN0KCkgfSwgNTAwKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWltcG9y
dC1pbi13b3JrZXItZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5LXNjcmlwdC1pbXBvcnQt
aW4td29ya2VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dAppbmRleCAzNjljMWU0ZjA3N2VjODIyNDgx
NjhkY2I4MGM0Yjc0N2U2ZmM0MDM3Li5kZDg4YjdiODRiZmExYjI0MzJkZmUxYTAzNWM2NjM3YmIy
ZTc0Yjk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWltcG9ydC1pbi13b3JrZXItZGF0YWJh
c2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQtaW1wb3J0LWluLXdvcmtlci1kYXRh
YmFzZS1leHBlY3RlZC50eHQKQEAgLTI0LDMgKzI0LDcgQEAgUmVnaXN0cmFibGUgZG9tYWluOiBs
b2NhbGhvc3QKICAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObwogICAgIGlzVmVyeVByZXZhbGVu
dFJlc291cmNlOiBObwogICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorCitJVFAgRGF0YToKK1Jl
Z2lzdHJhYmxlIERvbWFpbjogbG9jYWxob3N0CisgICAge3sgMTI3LjAuMC4xLCBIYXMgR3JhbnRl
ZCBTdG9yYWdlIEFjY2VzczogMCB9LH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQtaW1wb3J0
LWluLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWltcG9ydC1pbi13b3JrZXIt
ZXhwZWN0ZWQudHh0CmluZGV4IDEyMTFhZjBkMjgyMDBmMGExM2QzY2FlNzcwNGVkZjY1NTNmZjUx
NmQuLmE1MTQzNmJmNTUyNmM1ZTc4MDdhOGNjZGFiYjViNzc1ZThiZGZlZDYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGly
ZC1wYXJ0eS1zY3JpcHQtaW1wb3J0LWluLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5
LXNjcmlwdC1pbXBvcnQtaW4td29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMjQsMyArMjQsNyBAQCBS
ZWdpc3RyYWJsZSBkb21haW46IDEyNy4wLjAuMQogICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5v
CiAgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgZGF0YVJlY29yZHNSZW1vdmVk
OiAwCisKK0lUUCBEYXRhOgorUmVnaXN0cmFibGUgRG9tYWluOiBsb2NhbGhvc3QKKyAgICB7eyAx
MjcuMC4wLjEsIEhhcyBHcmFudGVkIFN0b3JhZ2UgQWNjZXNzOiAwIH0sfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJk
LXBhcnR5LXNjcmlwdC1sb2Fkcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0
LWxvYWRzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dAppbmRleCAzNjljMWU0ZjA3N2VjODIyNDgxNjhk
Y2I4MGM0Yjc0N2U2ZmM0MDM3Li5kZDg4YjdiODRiZmExYjI0MzJkZmUxYTAzNWM2NjM3YmIyZTc0
Yjk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWxvYWRzLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291
bnQtdGhpcmQtcGFydHktc2NyaXB0LWxvYWRzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMjQs
MyArMjQsNyBAQCBSZWdpc3RyYWJsZSBkb21haW46IGxvY2FsaG9zdAogICAgIGlzUHJldmFsZW50
UmVzb3VyY2U6IE5vCiAgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgZGF0YVJl
Y29yZHNSZW1vdmVkOiAwCisKK0lUUCBEYXRhOgorUmVnaXN0cmFibGUgRG9tYWluOiBsb2NhbGhv
c3QKKyAgICB7eyAxMjcuMC4wLjEsIEhhcyBHcmFudGVkIFN0b3JhZ2UgQWNjZXNzOiAwIH0sfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2NvdW50LXRoaXJkLXBhcnR5LXNjcmlwdC1sb2Fkcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2Ny
aXB0LWxvYWRzLWV4cGVjdGVkLnR4dAppbmRleCAxMjExYWYwZDI4MjAwZjBhMTNkM2NhZTc3MDRl
ZGY2NTUzZmY1MTZkLi5hNTE0MzZiZjU1MjZjNWU3ODA3YThjY2RhYmI1Yjc3NWU4YmRmZWQ2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y291bnQtdGhpcmQtcGFydHktc2NyaXB0LWxvYWRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHkt
c2NyaXB0LWxvYWRzLWV4cGVjdGVkLnR4dApAQCAtMjQsMyArMjQsNyBAQCBSZWdpc3RyYWJsZSBk
b21haW46IDEyNy4wLjAuMQogICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgaXNWZXJ5
UHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCisKK0lUUCBE
YXRhOgorUmVnaXN0cmFibGUgRG9tYWluOiBsb2NhbGhvc3QKKyAgICB7eyAxMjcuMC4wLjEsIEhh
cyBHcmFudGVkIFN0b3JhZ2UgQWNjZXNzOiAwIH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvbnQtY291bnQtdGhpcmQtcGFydHkt
aW1hZ2UtYXMtdGhpcmQtcGFydHktc2NyaXB0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb250LWNvdW50LXRoaXJk
LXBhcnR5LWltYWdlLWFzLXRoaXJkLXBhcnR5LXNjcmlwdC1kYXRhYmFzZS1leHBlY3RlZC50eHQK
aW5kZXggMDI1YzIzZjkyMmY0ZDRlN2UwZjI1YmFlNzQ1YmRkYjQ1Y2NmZGIxYy4uNDQ3ZTQ3ZDEy
OWJlM2M1YTQ5YjhmNTFiOWEzMzgzMThlMjkwNzUzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvbnQtY291bnQtdGhpcmQtcGFydHkt
aW1hZ2UtYXMtdGhpcmQtcGFydHktc2NyaXB0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG9udC1jb3VudC10
aGlyZC1wYXJ0eS1pbWFnZS1hcy10aGlyZC1wYXJ0eS1zY3JpcHQtZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0CkBAIC0yMiwzICsyMiw3IEBAIFJlZ2lzdHJhYmxlIGRvbWFpbjogbG9jYWxob3N0CiAgICAg
aXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KICAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8K
ICAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKKworSVRQIERhdGE6CitSZWdpc3RyYWJsZSBEb21h
aW46IGxvY2FsaG9zdAorICAgIHt7IDEyNy4wLjAuMSwgSGFzIEdyYW50ZWQgU3RvcmFnZSBBY2Nl
c3M6IDAgfSx9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZG9udC1jb3VudC10aGlyZC1wYXJ0eS1pbWFnZS1hcy10aGlyZC1wYXJ0eS1z
Y3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2RvbnQtY291bnQtdGhpcmQtcGFydHktaW1hZ2UtYXMtdGhpcmQtcGFydHktc2Ny
aXB0LWV4cGVjdGVkLnR4dAppbmRleCA0ZWNiOTczNmUxMDYwOTIzNWIwMTEzOTNhYWUxMTYyZDIy
NDgyOTVlLi5kNjBhZDY0NzQ4YTUwMGZlYTlhYjk3ZDE3YWViZGIwM2NkYTM1NWI4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG9udC1j
b3VudC10aGlyZC1wYXJ0eS1pbWFnZS1hcy10aGlyZC1wYXJ0eS1zY3JpcHQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb250
LWNvdW50LXRoaXJkLXBhcnR5LWltYWdlLWFzLXRoaXJkLXBhcnR5LXNjcmlwdC1leHBlY3RlZC50
eHQKQEAgLTE0LDMgKzE0LDcgQEAgUmVnaXN0cmFibGUgZG9tYWluOiBsb2NhbGhvc3QKICAgICBp
c1ByZXZhbGVudFJlc291cmNlOiBObwogICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObwog
ICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorCitJVFAgRGF0YToKK1JlZ2lzdHJhYmxlIERvbWFp
bjogbG9jYWxob3N0CisgICAge3sgMTI3LjAuMC4xLCBIYXMgR3JhbnRlZCBTdG9yYWdlIEFjY2Vz
czogMCB9LH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvYWdncmVnYXRl
LXNvcnRlZC1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU0Y2I1YmM4ODNkNTlkNDY2NTA1ZGViMTZkOGZjMTdkMjE0MjAzOWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvYWdncmVn
YXRlLXNvcnRlZC1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMzYgQEAKK0NoZWNrIGNvcnJlY3QgVUkgZGF0YSBnZXRzIHJlcG9ydGVkIHdp
dGggc3RvcmFnZSBhY2Nlc3MgZ3JhbnRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgU3RvcmFnZSBhY2Nlc3Mgd2FzIGdyYW50ZWQuIGRvY3VtZW50LmNvb2tpZSA9PSBm
aXJzdFBhcnR5Q29va2llPXZhbHVlLCBjb29raWVzIHNlZW4gc2VydmVyLXNpZGUgPT0geyJmaXJz
dFBhcnR5Q29va2llIjoidmFsdWUifQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKK1Jlc291cmNlIGxvYWQgc3RhdGlzdGljczoKKworUmVnaXN0cmFi
bGUgZG9tYWluOiAxMjcuMC4wLjEKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IFllcworICAgIG1v
c3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IHdpdGhpbiAyNCBob3VycworICAgIGdyYW5kZmF0aGVy
ZWQ6IE5vCisgICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbDogTm8KKyAg
ICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBO
bworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiBsb2NhbGhv
c3QKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IFllcworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJh
Y3Rpb246IHdpdGhpbiAyNCBob3VycworICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgU3RvcmFn
ZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAgICAxMjcuMC4wLjEKKyAgICBJc1Nj
aGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsOiBObworICAgIFN1YmZyYW1lVW5kZXJU
b3BGcmFtZURvbWFpbnM6CisgICAgICAgIDEyNy4wLjAuMQorICAgIGlzUHJldmFsZW50UmVzb3Vy
Y2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNS
ZW1vdmVkOiAwCisKK0lUUCBEYXRhOgorUmVnaXN0cmFibGUgRG9tYWluOiBsb2NhbGhvc3QKKyAg
ICB7eyAxMjcuMC4wLjEsIEhhcyBHcmFudGVkIFN0b3JhZ2UgQWNjZXNzOiAxIH0sfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2FnZ3JlZ2F0ZS1zb3J0
ZWQtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvYWdncmVnYXRlLXNvcnRlZC1kYXRhLXdpdGgtc3RvcmFn
ZS1hY2Nlc3MtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODIzM2QwOWUwODI3MjRkZDc3MTNm
MGI0ZmE2ZTJmNTZkYWMzMDljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0YS13aXRoLXN0b3JhZ2UtYWNj
ZXNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw4NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVz
Y3JpcHRpb24oIkNoZWNrIGNvcnJlY3QgVUkgZGF0YSBnZXRzIHJlcG9ydGVkIHdpdGggc3RvcmFn
ZSBhY2Nlc3MgZ3JhbnRlZC4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisKKyAgICAgICAgY29uc3Qg
Zmlyc3RQYXJ0eVVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgICAgICBjb25zdCB0
aGlyZFBhcnR5VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKKyAgICAgICAgZnVuY3Rp
b24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4g
PT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50
LmRhdGEuaW5kZXhPZigiUEFTUyAiKSAhPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOworICAgICAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEu
cmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmln
aW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
Im1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGFj
dGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgICAgIHZhciBjZW50ZXJY
ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAg
ICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWln
aHQgLyAyOworICAgICAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZ
KS50aGVuKAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLmtleURvd24oImVzY2FwZSIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGV2ZW50U2VuZGVyLiIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tU
aGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoZmFsc2Us
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCAhPT0gIiNj
b29raWVTZXQiKSB7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRo
aXJkUGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUucGhwP25h
bWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12YWx1ZSMiICsgZmlyc3RQYXJ0eVVybCArICIvc3Rv
cmFnZUFjY2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1kYXRh
YmFzZS5odG1sI2Nvb2tpZVNldCI7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJs
b2NrVGhpcmRQYXJ0eUNvb2tpZXModHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFy
dHlVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQtcGFydHkg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKGZpcnN0UGFydHlVcmwsIHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihmaXJzdFBhcnR5VXJsKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJGaXJzdC1wYXJ0eSBkaWQgbm90IGdl
dCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0
eVVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5
VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhpcmQt
cGFydHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxl
bWVudC5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYWN0aXZhdGVFbGVtZW50KCJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIik7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nl
c3MiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9yZXF1ZXN0LXN0b3Jh
Z2UtYWNjZXNzLWlmcmFtZS5odG1sI3VzZXJTaG91bGRHcmFudEFjY2Vzcyx1c2VyU2hvdWxkQmVD
b25zdWx0ZWQscG9saWN5U2hvdWxkR3JhbnRBY2Nlc3MsaXNOb3RTYW1lT3JpZ2luSWZyYW1lIjsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlm
cmFtZUVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvYWdncmVnYXRlLXNvcnRlZC1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2FnZ3JlZ2F0ZS1zb3J0
ZWQtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43M2Uz
NDliYjM2ZWM1YmZkZWExYTIwZWU5ZWVmODJjOGM5YzRiZDcyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0
YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACitDaGVj
ayBjb3JyZWN0IFVJIGRhdGEgZ2V0cyByZXBvcnRlZCB3aXRoIHN0b3JhZ2UgYWNjZXNzIGdyYW50
ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFN0b3JhZ2UgYWNjZXNz
IHdhcyBncmFudGVkLiBkb2N1bWVudC5jb29raWUgPT0gZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZSwg
Y29va2llcyBzZWVuIHNlcnZlci1zaWRlID09IHsiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVlIn0K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCitSZXNv
dXJjZSBsb2FkIHN0YXRpc3RpY3M6CisKK1JlZ2lzdHJhYmxlIGRvbWFpbjogbG9jYWxob3N0Cisg
ICAgaGFkVXNlckludGVyYWN0aW9uOiBZZXMKKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9u
OiB3aXRoaW4gMjQgaG91cnMKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIHN0b3JhZ2VBY2Nl
c3NVbmRlclRvcEZyYW1lRG9tYWluczoKKyAgICAgICAgMTI3LjAuMC4xCisgICAgZ290TGlua0Rl
Y29yYXRpb25Gcm9tUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgc3ViZnJhbWVVbmRlclRvcEZy
YW1lRG9tYWluczoKKyAgICAgICAgMTI3LjAuMC4xCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTog
Tm8KKyAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92
ZWQ6IDAKK1JlZ2lzdHJhYmxlIGRvbWFpbjogMTI3LjAuMC4xCisgICAgaGFkVXNlckludGVyYWN0
aW9uOiBZZXMKKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiB3aXRoaW4gMjQgaG91cnMK
KyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIGdvdExpbmtEZWNvcmF0aW9uRnJvbVByZXZhbGVu
dFJlc291cmNlOiBObworICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJl
dmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCisKK0lUUCBEYXRh
OgorUmVnaXN0cmFibGUgRG9tYWluOiBsb2NhbGhvc3QKKyAgICB7eyAxMjcuMC4wLjEsIEhhcyBH
cmFudGVkIFN0b3JhZ2UgQWNjZXNzOiAxIH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0YS13aXRoLXN0b3JhZ2Ut
YWNjZXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvYWdncmVn
YXRlLXNvcnRlZC1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kM2Qz
MDFmNGYyMDhmZjM2M2YxYWEyNDY5OTI0NTk3MWM3ZmFmYTkzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0
YS13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgZGVzY3JpcHRpb24oIkNoZWNrIGNvcnJlY3QgVUkgZGF0YSBnZXRzIHJlcG9ydGVkIHdp
dGggc3RvcmFnZSBhY2Nlc3MgZ3JhbnRlZC4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0eVVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiOworICAgICAgICBjb25zdCB0aGlyZFBhcnR5VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCI7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAg
ICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyAiKSAhPT0gLTEpIHsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygp
OworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFT
UyAiLCAiIikpOworICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZy
b20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxz
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOwor
CisgICAgICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAgICAg
ICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAg
ICAgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZz
ZXRXaWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9w
ICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAgVUlIZWxwZXIuYWN0aXZh
dGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImVzY2FwZSIpOworICAgICAgICAg
ICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5v
IGV2ZW50U2VuZGVyLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhp
cmRQYXJ0eUNvb2tpZXMoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCAhPT0gIiNjb29raWVTZXQiKSB7CisgICAgICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3Vy
Y2VzL3NldC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12YWx1ZSMiICsg
Zmlyc3RQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0
aC1zdG9yYWdlLWFjY2Vzcy5odG1sI2Nvb2tpZVNldCI7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXModHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHRoaXJkUGFydHlVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
VGhpcmQtcGFydHkgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKGZpcnN0
UGFydHlVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihmaXJzdFBhcnR5
VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJGaXJzdC1wYXJ0
eSBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24odGhpcmRQYXJ0eVVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bih0aGlyZFBhcnR5VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiVGhpcmQtcGFydHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9u
LiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9y
YWdlQWNjZXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRoZUlmcmFtZVRoYXRSZXF1ZXN0
c1N0b3JhZ2VBY2Nlc3MiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1l
bnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9y
ZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sI3VzZXJTaG91bGRHcmFudEFjY2Vzcyx1
c2VyU2hvdWxkQmVDb25zdWx0ZWQscG9saWN5U2hvdWxkR3JhbnRBY2Nlc3MsaXNOb3RTYW1lT3Jp
Z2luSWZyYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384822</attachid>
            <date>2019-12-04 10:00:31 -0800</date>
            <delta_ts>2019-12-04 12:06:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203432-20191204100030.patch</filename>
            <type>text/plain</type>
            <size>67464</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM4MDA4YTZkMGI4YjFi
MjY1MWUxOGQ0OWJiOGM3ZTBhYjhjYWZjZS4uMGRmMDVjMjhkNjIyYjA3YzZhNGNiNjk3YjQyYTNh
YjEzNTBjMDg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTEyLTA0ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSBi
YXNpYyBJVFAgZGF0YSBmcm9tIHRoZSBkYXRhYmFzZSBmb3IgZnV0dXJlIEFQSS9TUEkgdXNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0MzIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2MDg1MDQwPgorCisgICAgICAgIFJldmlld2VkIEpvaG4g
V2lsYW5kZXIuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyZmFjZS1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nl
c3MtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sCisKKyAgICAgICAg
VXBkYXRlZCB0aGUgdG9TdHJpbmcoKSB0byByZXBvcnQgb25seSBpZiBtb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uVGltZQorICAgICAgICB3YXMgaW4gdGhlIGxhc3QgMjQgaG91cnMgYXMgb3Bwb3Nl
ZCB0byByZXBvcnRpbmcgYW4gYWN0dWFsIHRpbWUgc2luY2UgCisgICAgICAgIG1vc3RSZWNlbnRV
c2VySW50ZXJhY3Rpb25UaW1lIGNoYW5nZXMgd2l0aCBlYWNoIHRlc3QgcnVuLgorCisgICAgICAg
ICogbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aGFzSGFkUmVjZW50VXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3M6OnRvU3RyaW5nIGNvbnN0KToKKwogMjAxOS0xMi0wNCAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBzb2Z0IHVwZGF0ZSBoYW5k
bGluZyB0byBuZXR3b3JrIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzlkNjllNDJkMjNlYmNkOWJmMGIw
YTNiOGE1OGNiOTE5YmE1MmY0ZS4uNDVkZTU1NzY0NGE4NjA0Y2Y1YWNlYjJmZGQwNjE3ODUzY2Mw
MGNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OCBAQAorMjAxOS0xMi0wNCAgS2F0ZSBDaGVuZXkg
IDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgYmFzaWMgSVRQ
IGRhdGEgZnJvbSB0aGUgZGF0YWJhc2UgZm9yIGZ1dHVyZSBBUEkvU1BJIHVzZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNDMyCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81NjA4NTA0MD4KKworICAgICAgICBSZXZpZXdlZCBKb2huIFdpbGFuZGVy
LgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNl
ci1pbnRlcmZhY2UtZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmZhY2Ut
ZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvdXNlci1pbnRlcmZhY2UtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWRhdGFi
YXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy91c2VyLWlu
dGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MuaHRtbAorCisgICAgICAgIEFkZHMgdGhl
IGFiaWxpdHkgdG8gY29sbGVjdCBzb3J0ZWQgSVRQIGRhdGEgZm9yIGRpc3BsYXlpbmcgaW4gYQor
ICAgICAgICB1c2VyIGludGVyZmFjZS4gCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZXBhcmVTdGF0ZW1lbnRzKToKKyAgICAgICAgQWRk
ZWQgbmV3IHF1ZXJpZXMgdG8gdGhlIGRhdGFiYXNlIHN0b3JlIHRvIGNoZWNrIGZvciBzdG9yYWdl
IGFjY2VzcyBpbgorICAgICAgICB0aGUgZGF0YWJhc2UgYW5kIGFnZ3JlZ2F0ZSB0b3BGcmFtZXMg
d2l0aCB0aGUgc2FtZQorICAgICAgICBzdWJmcmFtZS9zdWJyZXNvdXJjZSBzbyBlYXNpbHkgY3Jl
YXRlIHRoZSBzdHJ1Y3QgZm9yIGNvbGxlY3RpbmcgZGF0YQorICAgICAgICBmb3IgdGhlIFVJLgor
CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpy
ZWxhdGlvbnNoaXBFeGlzdHMgY29uc3QpOgorICAgICAgICBGaXhlZCBhbiBpbmNvcnJlY3QgZnVu
Y3Rpb24gbmFtZSBpbiB0aGUgZXJyb3IgbWVzc2FnZS4KKworICAgICAgICAoV2ViS2l0OjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6am9pblN1YlN0YXRpc3RpY3NGb3JTb3J0
aW5nKToKKyAgICAgICAgUmVuYW1lZCB1bmNsZWFyIFNRTCB2YXJpYWJsZSBuYW1lcyBhbmQgYWRk
ZWQgYSBiaW5kIHBhcmFtZXRlciB0bworICAgICAgICBzcGVjaWZ5IHdoZXRoZXIgcmVzb3VyY2Ug
aXMgcHJldmFsZW50IG9yIG5vdCwgd2hpY2ggYWxsb3dzCisgICAgICAgIHRoaXMgZnVuY3Rpb24g
dG8gYmUgdXNlZCB0byBjb2xsZWN0IHNvcnRlZCBJVFAgZGF0YQorICAgICAgICBmb3IgdGhlIFVJ
LgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpnZXRGaXJzdFBhcnR5RGF0YUZvckRvbWFpbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnYXRoZXJEYXRhRm9yVXNlckludGVy
ZmFjZSBjb25zdCk6CisKKyAgICAgICAgKFdlYktpdDo6YnVpbGRRdWVyeVN0YXJ0QW5kRW5kKToK
KyAgICAgICAgKFdlYktpdDo6Z2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlcklu
dGVyYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmdldFRvcFByZXZlbGVudFJlc291cmNlRGF5c1NpbmNlVUkgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlV2l0aG91dFVzZXJJbnRl
cmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OmdldE51bWJlck9mUHJldmFsZW50UmVzb3VyY2Vz
SW5Ub3BSZXNvdXJjZXMpOgorICAgICAgICBDaGFuZ2VkIHNxbCBxdWVyeSB2YXJpYWJsZSBuYW1l
cyB0byBtYWtlIHRoZW0gbW9yZSBjbGVhciBhbmQgYWRkZWQgYQorICAgICAgICBuZXcgYmluZCBw
YXJhbWV0ZXIgdG8gYWxsb3cgZm9yIG1vcmUgZ2VuZXJhbCB1c2Ugb2Ygc3Vic3RhdGlzdGljCisg
ICAgICAgIHNvcnRpbmcgcXVlcnkuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZHVtcFJlc291cmNl
TG9hZFN0YXRpc3RpY3MgY29uc3QpOgorICAgICAgICBDb21iaW5lZCBVSSBkYXRhIHdpdGggZHVt
cFJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSBkYXRhIHRvIGtlZXAgdGhlIHRlc3RpbmcgYXNwZWN0
CisgICAgICAgIG9mIHRoaXMgcGF0Y2ggc2ltcGxlci4KKworICAgICAgICAoV2ViS2l0OjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVzb3VyY2VUb1N0cmluZyBjb25zdCk6
CisgICAgICAgIFNpbmNlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lIGNoYW5nZXMgd2l0
aCBlYWNoIHRlc3QgcnVuLCBJCisgICAgICAgIHVwZGF0ZWQgdGhlIGR1bXBpbmcgdG8gcmVwb3J0
IG9ubHkgaWYgaXQgd2FzIGluIHRoZSBsYXN0IDI0IGhvdXJzIGFzCisgICAgICAgIG9wcG9zZWQg
dG8gcmVwb3J0aW5nIGFuIGFjdHVhbCB0aW1lLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZW5zdXJlRmlyc3RQYXJ0eVN0YXRpc3RpYyk6
CisgICAgICAgIChXZWJLaXQ6OmdldEZpcnN0UGFydHlEYXRhRm9yRG9tYWluKToKKyAgICAgICAg
KFdlYktpdDo6aGFzQmVlblRoaXJkUGFydHkpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdhdGhlckRhdGFGb3JVc2VySW50ZXJmYWNlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpk
dW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpnYXRoZXJEYXRhRm9yVXNlckludGVyZmFjZSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAg
ICAgKFdlYktpdDo6Rmlyc3RQYXJ0eURhdGE6OnRvU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6Rmlyc3RQYXJ0eURhdGE6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpUaGlyZFBhcnR5RGF0YTo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpUaGly
ZFBhcnR5RGF0YTo6b3BlcmF0b3I8IGNvbnN0KToKKyAgICAgICAgVGhlIHRvU3RyaW5nIG1ldGhv
ZHMgYWxsb3cgdGhlIHN0cnVjdHMgdG8gYmUgcHJpbnRlZCBmb3IgdGVzdGluZworICAgICAgICBw
dXJwb3Nlcy4gVGhlIGVxdWFscyBtZXRob2RzIGFsbG93IHRoZSByZXR1cm4gdmVjdG9ycyB0byB1
c2UKKyAgICAgICAgYXBwZW5kSWZOb3RDb250YWlucy4KKwogMjAxOS0xMi0wNCAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1p
bmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzIHNob3VsZCBiZSByZW5hbWVkIHRlcm1pbmF0ZVNlcnZp
Y2VXb3JrZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljcy5jcHAKaW5kZXggNTQ3ODFmOGRiOGYxMTBkNTdlMTk3NTk1NTViZjU3ODViZDg5NjdiYS4u
OWEzMTNjOTA0ZDdkMWQxMmRiMGIzMzZiOGFkYzg1Mjk1YjM0YTE3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcApAQCAtNDEzLDYgKzQx
MywxMSBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTY3JlZW5BUElPcHRpb25TZXQoU3RyaW5nQnVpbGRl
ciYgYnVpbGRlciwgY29uc3QgT3B0aW9uU2V0PFJlcwogfQogI2VuZGlmCiAKK3N0YXRpYyBib29s
IGhhc0hhZFJlY2VudFVzZXJJbnRlcmFjdGlvbihXVEY6OlNlY29uZHMgaW50ZXJhY3Rpb25UaW1l
U2Vjb25kcykKK3sKKyAgICByZXR1cm4gaW50ZXJhY3Rpb25UaW1lU2Vjb25kcyA+IFNlY29uZHMo
MCkgJiYgV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkgLSBpbnRlcmFjdGlvblRp
bWVTZWNvbmRzIDwgMjRfaDsKK30KKwogU3RyaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnRv
U3RyaW5nKCkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CkBAIC00MjQsNyAr
NDI5LDEwIEBAIFN0cmluZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjp0b1N0cmluZygpIGNvbnN0
CiAgICAgYXBwZW5kQm9vbGVhbihidWlsZGVyLCAiaGFkVXNlckludGVyYWN0aW9uIiwgaGFkVXNl
ckludGVyYWN0aW9uKTsKICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIiAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAiKTsKLSAgICBidWls
ZGVyLmFwcGVuZEZpeGVkUHJlY2lzaW9uTnVtYmVyKG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25U
aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CisgICAgaWYgKGhhc0hhZFJlY2VudFVz
ZXJJbnRlcmFjdGlvbihtb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZS5zZWNvbmRzU2luY2VF
cG9jaCgpKSkKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ3aXRoaW4gMjQgaG91cnMi
KTsKKyAgICBlbHNlCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLTEiKTsKICAgICBi
dWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICBhcHBlbmRCb29sZWFuKGJ1aWxkZXIsICJncmFuZGZh
dGhlcmVkIiwgZ3JhbmRmYXRoZXJlZCk7CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcApp
bmRleCBiNTNlMGMyNmVmOTU4NzI4MTY4MjNmZDg1OTUwMTY1ZjAzYmRlMTg2Li44Zjg5NTMxNzVk
NGY1NzVjOTBlYWVjNTFiNmI2ZWRhNTQ0MmI1NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTk5LDYgKzk5LDcgQEAg
Y29uc3RleHByIGF1dG8gdG9wRnJhbWVMaW5rRGVjb3JhdGlvbnNGcm9tRXhpc3RzUXVlcnkgPSAi
U0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEKICAgICAiQU5EIGZyb21Eb21haW5JRCA9IChTRUxFQ1Qg
ZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/
KSkiX3M7CiBjb25zdGV4cHIgYXV0byB0b3BGcmFtZUxvYWRlZFRoaXJkUGFydHlTY3JpcHRzRXhp
c3RzUXVlcnkgPSAiU0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBUb3BGcmFtZUxvYWRlZFRo
aXJkUGFydHlTY3JpcHRzIFdIRVJFIHRvcEZyYW1lRG9tYWluSUQgPSA/ICIKICAgICAiQU5EIHN1
YnJlc291cmNlRG9tYWluSUQgPSAoU0VMRUNUIGRvbWFpbklEIEZST00gT2JzZXJ2ZWREb21haW5z
IFdIRVJFIHJlZ2lzdHJhYmxlRG9tYWluID0gPykpIl9zOworY29uc3RleHByIGF1dG8gc3RvcmFn
ZUFjY2Vzc0V4aXN0c1F1ZXJ5ID0gIlNFTEVDVCBFWElTVFMgKFNFTEVDVCAxIEZST00gU3RvcmFn
ZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zIFdIRVJFIGRvbWFpbklEID0gPyBBTkQgdG9wTGV2
ZWxEb21haW5JRCA9IChTRUxFQ1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUg
cmVnaXN0cmFibGVEb21haW4gPSA/KSkiX3M7CiAKIC8vIFVQREFURSBRdWVyaWVzCiBjb25zdGV4
cHIgYXV0byBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uUXVlcnkgPSAiVVBEQVRFIE9ic2VydmVk
RG9tYWlucyBTRVQgaGFkVXNlckludGVyYWN0aW9uID0gPywgbW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvblRpbWUgPSA/ICIKQEAgLTEyMSw2ICsxMjIsOSBAQCBjb25zdGV4cHIgYXV0byBpc0dyYW5k
ZmF0aGVyZWRRdWVyeSA9ICJTRUxFQ1QgZ3JhbmRmYXRoZXJlZCBGUk9NIE9ic2VydmVkRG9tYWlu
cwogY29uc3RleHByIGF1dG8gZmluZEV4cGlyZWRVc2VySW50ZXJhY3Rpb25RdWVyeSA9ICJTRUxF
Q1QgZG9tYWluSUQgRlJPTSBPYnNlcnZlZERvbWFpbnMgV0hFUkUgaGFkVXNlckludGVyYWN0aW9u
ID0gMSBBTkQgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUgPCA/Il9zOwogY29uc3RleHBy
IGF1dG8gZ2V0UmVzb3VyY2VEYXRhQnlEb21haW5OYW1lUXVlcnkgPSAiU0VMRUNUICogRlJPTSBP
YnNlcnZlZERvbWFpbnMgV0hFUkUgcmVnaXN0cmFibGVEb21haW4gPSA/IjsKIGNvbnN0ZXhwciBh
dXRvIGdldEFsbERvbWFpbnNRdWVyeSA9ICJTRUxFQ1QgcmVnaXN0cmFibGVEb21haW4gRlJPTSBP
YnNlcnZlZERvbWFpbnMiX3M7Citjb25zdGV4cHIgYXV0byBnZXRBbGxTdWJTdGF0aXN0aWNzVW5k
ZXJEb21haW5RdWVyeSA9ICJTRUxFQ1QgdG9wRnJhbWVEb21haW5JRCBGUk9NIFN1YmZyYW1lVW5k
ZXJUb3BGcmFtZURvbWFpbnMgV0hFUkUgc3ViRnJhbWVEb21haW5JRCA9ID8iCisgICAgIlVOSU9O
IEFMTCBTRUxFQ1QgdG9wRnJhbWVEb21haW5JRCBGUk9NIFN1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZURvbWFpbnMgV0hFUkUgc3VicmVzb3VyY2VEb21haW5JRCA9ID8iCisgICAgIlVOSU9OIEFMTCBT
RUxFQ1QgdG9Eb21haW5JRCBGUk9NIFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8gV0hFUkUg
c3VicmVzb3VyY2VEb21haW5JRCA9ID8iX3M7CiAKIGNvbnN0IGNoYXIqIHRhYmxlc1tdID0gewog
ICAgICJPYnNlcnZlZERvbWFpbnMiLApAQCAtMjYyLDYgKzI2Niw4IEBAIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZShXZWJSZXNvCiAgICAgLCBtX2dldFJlc291cmNlRGF0YUJ5RG9tYWluTmFtZVN0YXRlbWVudCht
X2RhdGFiYXNlLCBnZXRSZXNvdXJjZURhdGFCeURvbWFpbk5hbWVRdWVyeSkKICAgICAsIG1fZ2V0
QWxsRG9tYWluc1N0YXRlbWVudChtX2RhdGFiYXNlLCBnZXRBbGxEb21haW5zUXVlcnkpCiAgICAg
LCBtX2RvbWFpblN0cmluZ0Zyb21Eb21haW5JRFN0YXRlbWVudChtX2RhdGFiYXNlLCBkb21haW5T
dHJpbmdGcm9tRG9tYWluSURRdWVyeSkKKyAgICAsIG1fZ2V0QWxsU3ViU3RhdGlzdGljc1N0YXRl
bWVudChtX2RhdGFiYXNlLCBnZXRBbGxTdWJTdGF0aXN0aWNzVW5kZXJEb21haW5RdWVyeSkKKyAg
ICAsIG1fc3RvcmFnZUFjY2Vzc0V4aXN0c1N0YXRlbWVudChtX2RhdGFiYXNlLCBzdG9yYWdlQWNj
ZXNzRXhpc3RzUXVlcnkpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CkBAIC01MDMsNiArNTA5LDggQEAgYm9vbCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlcGFyZVN0YXRlbWVudHMoKQogICAgICAg
ICB8fCBtX2dldFJlc291cmNlRGF0YUJ5RG9tYWluTmFtZVN0YXRlbWVudC5wcmVwYXJlKCkgIT0g
U1FMSVRFX09LCiAgICAgICAgIHx8IG1fZ2V0QWxsRG9tYWluc1N0YXRlbWVudC5wcmVwYXJlKCkg
IT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fZG9tYWluU3RyaW5nRnJvbURvbWFpbklEU3RhdGVt
ZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgbV9nZXRBbGxTdWJTdGF0aXN0
aWNzU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwgbV9zdG9yYWdl
QWNjZXNzRXhpc3RzU3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKICAgICAgICAgKSB7
CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcmVwYXJlU3RhdGVtZW50cyBmYWlsZWQgdG8gcHJlcGFy
ZSwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9y
TXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTU2MCw3ICs1NjgsNyBA
QCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlvbnNoaXBF
eGlzdHMoV2ViQ29yZTo6U1FMaXRlU3RhdAogICAgIGlmIChzdGF0ZW1lbnQuYmluZEludCgxLCAq
Zmlyc3REb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHN0YXRlbWVudC5iaW5kVGV4
dCgyLCBzZWNvbmREb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzdGF0
ZW1lbnQuc3RlcCgpICE9IFNRTElURV9ST1cpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6Om1faW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwU3RhdGVtZW50IGZhaWxlZCB0byBi
aW5kLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lv
bklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVsYXRpb25z
aGlwRXhpc3RzIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRo
aXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTc1NSwxOSArNzYzLDE5IEBA
IHN0YXRpYyBjb25zdCBTdHJpbmdWaWV3IGpvaW5TdWJTdGF0aXN0aWNzRm9yU29ydGluZygpCiB7
CiAgICAgcmV0dXJuIFIicXVlcnkoCiAgICAgICAgIGRvbWFpbklELAotICAgICAgICAoY250MSAr
IGNudDIgKyBjbnQzKSBhcyBzdW0KKyAgICAgICAgKGNvdW50U3ViRnJhbWVVbmRlclRvcEZyYW1l
ICsgY291bnRTdWJSZXNvdXJjZVVuZGVyVG9wRnJhbWUgKyBjb3VudFVuaXF1ZVJlZGlyZWN0VG8p
IGFzIHN1bQogICAgICAgICBGUk9NICgKICAgICAgICAgU0VMRUNUCiAgICAgICAgICAgICBkb21h
aW5JRCwKLSAgICAgICAgICAgIENPVU5UKERJU1RJTkNUIGYudG9wRnJhbWVEb21haW5JRCkgYXMg
Y250MSwKLSAgICAgICAgICAgIENPVU5UKERJU1RJTkNUIHIudG9wRnJhbWVEb21haW5JRCkgYXMg
Y250MiwKLSAgICAgICAgICAgIENPVU5UKERJU1RJTkNUIHRvRG9tYWluSUQpIGFzIGNudDMKKyAg
ICAgICAgICAgIENPVU5UKERJU1RJTkNUIGYudG9wRnJhbWVEb21haW5JRCkgYXMgY291bnRTdWJG
cmFtZVVuZGVyVG9wRnJhbWUsCisgICAgICAgICAgICBDT1VOVChESVNUSU5DVCByLnRvcEZyYW1l
RG9tYWluSUQpIGFzIGNvdW50U3ViUmVzb3VyY2VVbmRlclRvcEZyYW1lLAorICAgICAgICAgICAg
Q09VTlQoRElTVElOQ1QgdG9Eb21haW5JRCkgYXMgY291bnRVbmlxdWVSZWRpcmVjdFRvCiAgICAg
ICAgIEZST00KICAgICAgICAgT2JzZXJ2ZWREb21haW5zIG8KICAgICAgICAgTEVGVCBKT0lOIFN1
YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnMgZiBPTiBvLmRvbWFpbklEID0gZi5zdWJGcmFtZURv
bWFpbklECiAgICAgICAgIExFRlQgSk9JTiBTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5z
IHIgT04gby5kb21haW5JRCA9IHIuc3VicmVzb3VyY2VEb21haW5JRAogICAgICAgICBMRUZUIEpP
SU4gU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyB1IE9OIG8uZG9tYWluSUQgPSB1LnN1YnJl
c291cmNlRG9tYWluSUQKLSAgICAgICAgV0hFUkUgaXNQcmV2YWxlbnQgPSAxCisgICAgICAgIFdI
RVJFIGlzUHJldmFsZW50IExJS0UgPwogICAgICAgICBhbmQgaGFkVXNlckludGVyYWN0aW9uIExJ
S0UgPwogICAgICAgICBHUk9VUCBCWSBkb21haW5JRCkgT1JERVIgQlkgc3VtIERFU0MKICAgICAg
ICAgKXF1ZXJ5IjsKQEAgLTc3OCwxNSArNzg2LDYwIEBAIHN0YXRpYyBTUUxpdGVTdGF0ZW1lbnQg
bWFrZU1lZGlhbldpdGhVSVF1ZXJ5KFNRTGl0ZURhdGFiYXNlJiBkYXRhYmFzZSkKICAgICByZXR1
cm4gU1FMaXRlU3RhdGVtZW50KGRhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgbW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvblRpbWUgRlJPTSBPYnNlcnZlZERvbWFpbnMgSU5ORVIgSk9JTiAoU0VM
RUNUICIsIGpvaW5TdWJTdGF0aXN0aWNzRm9yU29ydGluZygpLCAiKSBhcyBxIE9OIE9ic2VydmVk
RG9tYWlucy5kb21haW5JRCA9IHEuZG9tYWluSUQgTElNSVQgMSBPRkZTRVQgPyIpKTsKIH0KIAor
VmVjdG9yPFRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNGaXJzdFBhcnR5PiBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0
UGFydHlEb21haW5zKHVuc2lnbmVkIHRoaXJkUGFydHlEb21haW5JRCwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHRoaXJkUGFydHlEb21haW4pIGNvbnN0Cit7CisgICAgaWYgKG1fZ2V0QWxsU3Vi
U3RhdGlzdGljc1N0YXRlbWVudC5iaW5kSW50KDEsIHRoaXJkUGFydHlEb21haW5JRCkgIT0gU1FM
SVRFX09LCisgICAgICAgIHx8IG1fZ2V0QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVudC5iaW5kSW50
KDIsIHRoaXJkUGFydHlEb21haW5JRCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IG1fZ2V0QWxs
U3ViU3RhdGlzdGljc1N0YXRlbWVudC5iaW5kSW50KDMsIHRoaXJkUGFydHlEb21haW5JRCkgIT0g
U1FMSVRFX09LKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZp
Y0ZpcnN0UGFydHlEb21haW4sIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCBtX2RhdGFiYXNl
Lmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQor
ICAgIFZlY3RvcjxUaGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0eT4gdGhpcmRQYXJ0
eURhdGFGb3JTcGVjaWZpY0ZpcnN0UGFydHlEb21haW5zOworICAgIHdoaWxlIChtX2dldEFsbFN1
YlN0YXRpc3RpY3NTdGF0ZW1lbnQuc3RlcCgpID09IFNRTElURV9ST1cpIHsKKyAgICAgICAgUmVn
aXN0cmFibGVEb21haW4gZmlyc3RQYXJ0eURvbWFpbiA9IFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNo
ZWNrZWRDcmVhdGVGcm9tUmVnaXN0cmFibGVEb21haW5TdHJpbmcoZ2V0RG9tYWluU3RyaW5nRnJv
bURvbWFpbklEKG1fZ2V0QWxsU3ViU3RhdGlzdGljc1N0YXRlbWVudC5nZXRDb2x1bW5JbnQoMCkp
KTsKKyAgICAgICAgdGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0UGFydHlEb21haW5zLmFw
cGVuZElmTm90Q29udGFpbnMoVGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0UGFydHkgeyBm
aXJzdFBhcnR5RG9tYWluLCBoYXNTdG9yYWdlQWNjZXNzKGZpcnN0UGFydHlEb21haW4sIHRoaXJk
UGFydHlEb21haW4pIH0pOworICAgIH0KKyAgICByZXNldFN0YXRlbWVudChtX2dldEFsbFN1YlN0
YXRpc3RpY3NTdGF0ZW1lbnQpOworICAgIHJldHVybiB0aGlyZFBhcnR5RGF0YUZvclNwZWNpZmlj
Rmlyc3RQYXJ0eURvbWFpbnM7Cit9CisKK3N0YXRpYyBib29sIGhhc0JlZW5UaGlyZFBhcnR5KHVu
c2lnbmVkIHRpbWVzVW5kZXJGaXJzdFBhcnR5KQoreworICAgIHJldHVybiB0aW1lc1VuZGVyRmly
c3RQYXJ0eSA+IDA7Cit9CisKK1ZlY3RvcjxUaGlyZFBhcnR5RGF0YT4gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmFnZ3JlZ2F0ZWRUaGlyZFBhcnR5RGF0YSgpIGNvbnN0Cit7
CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBWZWN0b3I8VGhpcmRQYXJ0
eURhdGE+IHRoaXJkUGFydHlEYXRhTGlzdDsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgc29ydGVkU3Rh
dGlzdGljcyhtX2RhdGFiYXNlLCBtYWtlU3RyaW5nKCJTRUxFQ1QgIiwgam9pblN1YlN0YXRpc3Rp
Y3NGb3JTb3J0aW5nKCkpKTsKKyAgICBpZiAoc29ydGVkU3RhdGlzdGljcy5wcmVwYXJlKCkgIT0g
U1FMSVRFX09LCisgICAgICAgIHx8IHNvcnRlZFN0YXRpc3RpY3MuYmluZFRleHQoMSwgIiUiKQor
ICAgICAgICB8fCBzb3J0ZWRTdGF0aXN0aWNzLmJpbmRUZXh0KDIsICIlIikgIT0gU1FMSVRFX09L
KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6YWdncmVnYXRlZFRoaXJkUGFydHlEYXRhLCBlcnJvciBtZXNz
YWdlOiAle3B1YmxpY31zIiwgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gdGhpcmRQYXJ0eURhdGFMaXN0Owor
ICAgIH0KKyAgICB3aGlsZSAoc29ydGVkU3RhdGlzdGljcy5zdGVwKCkgPT0gU1FMSVRFX1JPVykg
eworICAgICAgICBpZiAoaGFzQmVlblRoaXJkUGFydHkoc29ydGVkU3RhdGlzdGljcy5nZXRDb2x1
bW5JbnQoMSkpKSB7CisgICAgICAgICAgICBhdXRvIHRoaXJkUGFydHlEb21haW5JRCA9IHNvcnRl
ZFN0YXRpc3RpY3MuZ2V0Q29sdW1uSW50KDApOworICAgICAgICAgICAgYXV0byB0aGlyZFBhcnR5
RG9tYWluID0gUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21SZWdpc3RyYWJs
ZURvbWFpblN0cmluZyhnZXREb21haW5TdHJpbmdGcm9tRG9tYWluSUQodGhpcmRQYXJ0eURvbWFp
bklEKSk7CisgICAgICAgICAgICB0aGlyZFBhcnR5RGF0YUxpc3QuYXBwZW5kKFRoaXJkUGFydHlE
YXRhIHsgdGhpcmRQYXJ0eURvbWFpbiwgZ2V0VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0
UGFydHlEb21haW5zKHRoaXJkUGFydHlEb21haW5JRCwgdGhpcmRQYXJ0eURvbWFpbikgfSk7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRoaXJkUGFydHlEYXRhTGlzdDsKK30KKwogc3Rh
dGljIHN0ZDo6cGFpcjxTdHJpbmdWaWV3LCBTdHJpbmdWaWV3PiBidWlsZFF1ZXJ5U3RhcnRBbmRF
bmQoUHJldmFsZW50UmVzb3VyY2VEYXRhYmFzZVRlbGVtZXRyeTo6U3RhdGlzdGljIHN0YXRpc3Rp
YykKIHsKICAgICBzd2l0Y2ggKHN0YXRpc3RpYykgewogICAgIGNhc2UgUHJldmFsZW50UmVzb3Vy
Y2VEYXRhYmFzZVRlbGVtZXRyeTo6U3RhdGlzdGljOjpNZWRpYW5TdWJGcmFtZVdpdGhvdXRVSToK
LSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKCJTRUxFQ1QgY250MSBGUk9NIE9ic2VydmVk
RG9tYWlucyBvIElOTkVSIEpPSU4oU0VMRUNUIGNudDEsICIsICIpIGFzIHEgT04gby5kb21haW5J
RCA9IHEuZG9tYWluSUQgTElNSVQgMSBPRkZTRVQgPyIpOworICAgICAgICByZXR1cm4gc3RkOjpt
YWtlX3BhaXIoIlNFTEVDVCBjb3VudFN1YkZyYW1lVW5kZXJUb3BGcmFtZSBGUk9NIE9ic2VydmVk
RG9tYWlucyBvIElOTkVSIEpPSU4oU0VMRUNUIGNvdW50U3ViRnJhbWVVbmRlclRvcEZyYW1lLCAi
LCAiKSBhcyBxIE9OIG8uZG9tYWluSUQgPSBxLmRvbWFpbklEIExJTUlUIDEgT0ZGU0VUID8iKTsK
ICAgICBjYXNlIFByZXZhbGVudFJlc291cmNlRGF0YWJhc2VUZWxlbWV0cnk6OlN0YXRpc3RpYzo6
TWVkaWFuU3ViUmVzb3VyY2VXaXRob3V0VUk6Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFp
cigiU0VMRUNUIGNudDIgRlJPTSBPYnNlcnZlZERvbWFpbnMgbyBJTk5FUiBKT0lOKFNFTEVDVCBj
bnQyLCAiLCAiKSBhcyBxIE9OIG8uZG9tYWluSUQgPSBxLmRvbWFpbklEIExJTUlUIDEgT0ZGU0VU
ID8iKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKCJTRUxFQ1QgY291bnRTdWJSZXNv
dXJjZVVuZGVyVG9wRnJhbWUgRlJPTSBPYnNlcnZlZERvbWFpbnMgbyBJTk5FUiBKT0lOKFNFTEVD
VCBjb3VudFN1YlJlc291cmNlVW5kZXJUb3BGcmFtZSwgIiwgIikgYXMgcSBPTiBvLmRvbWFpbklE
ID0gcS5kb21haW5JRCBMSU1JVCAxIE9GRlNFVCA/Iik7CiAgICAgY2FzZSBQcmV2YWxlbnRSZXNv
dXJjZURhdGFiYXNlVGVsZW1ldHJ5OjpTdGF0aXN0aWM6Ok1lZGlhblVuaXF1ZVJlZGlyZWN0c1dp
dGhvdXRVSToKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKCJTRUxFQ1QgY250MyBGUk9N
IE9ic2VydmVkRG9tYWlucyBvIElOTkVSIEpPSU4oU0VMRUNUIGNudDMsICIsICIpIGFzIHEgT04g
by5kb21haW5JRCA9IHEuZG9tYWluSUQgTElNSVQgMSBPRkZTRVQgPyIpOworICAgICAgICByZXR1
cm4gc3RkOjptYWtlX3BhaXIoIlNFTEVDVCBjb3VudFVuaXF1ZVJlZGlyZWN0VG8gRlJPTSBPYnNl
cnZlZERvbWFpbnMgbyBJTk5FUiBKT0lOKFNFTEVDVCBjb3VudFVuaXF1ZVJlZGlyZWN0VG8sICIs
ICIpIGFzIHEgT04gby5kb21haW5JRCA9IHEuZG9tYWluSUQgTElNSVQgMSBPRkZTRVQgPyIpOwog
ICAgIGNhc2UgUHJldmFsZW50UmVzb3VyY2VEYXRhYmFzZVRlbGVtZXRyeTo6U3RhdGlzdGljOjpN
ZWRpYW5EYXRhUmVjb3Jkc1JlbW92ZWRXaXRob3V0VUk6CiAgICAgICAgIHJldHVybiBzdGQ6Om1h
a2VfcGFpcigiU0VMRUNUIGRhdGFSZWNvcmRzUmVtb3ZlZCBGUk9NIChTRUxFQ1QgKiBGUk9NIE9i
c2VydmVkRG9tYWlucyBvIElOTkVSIEpPSU4oU0VMRUNUICIsICIpIGFzIHEgT04gby5kb21haW5J
RCA9IHEuZG9tYWluSUQpIExJTUlUIDEgT0ZGU0VUID8iKTsKICAgICBjYXNlIFByZXZhbGVudFJl
c291cmNlRGF0YWJhc2VUZWxlbWV0cnk6OlN0YXRpc3RpYzo6TWVkaWFuVGltZXNBY2Nlc3NlZER1
ZVRvVXNlckludGVyYWN0aW9uV2l0aG91dFVJOgpAQCAtODE4LDcgKzg3MSw3IEBAIHN0YXRpYyB1
bnNpZ25lZCBnZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24o
U1FMaXRlRGF0YWJhc2UmCiAgICAgfQogCiAgICAgLy8gQmluZAotICAgIGlmIChtZWRpYW5EYXlz
U2luY2VVSVN0YXRlbWVudC5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSyB8fCBtZWRpYW5EYXlz
U2luY2VVSVN0YXRlbWVudC5iaW5kSW50KDIsIChwcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlcklu
dGVyYWN0aW9uQ291bnQgLyAyKSAhPSBTUUxJVEVfT0spKSB7CisgICAgaWYgKG1lZGlhbkRheXNT
aW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LIHx8IG1lZGlhbkRheXNT
aW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMiwgMSkgIT0gU1FMSVRFX09LIHx8IG1lZGlhbkRheXNT
aW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMywgKHByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50
ZXJhY3Rpb25Db3VudCAvIDIpICE9IFNRTElURV9PSykpIHsKICAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoTmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRN
ZWRpYW5PZlByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIGVycm9yIG1lc3Nh
Z2U6ICV7cHVibGljfXMiLCBkYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gMDsKQEAgLTg0Nyw3ICs5MDAsNyBAQCBz
dGF0aWMgdW5zaWduZWQgZ2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVy
YWN0aW9uKFNRTGl0ZURhdGFiYXNlJgogICAgIH0KIAogICAgIC8vIEJpbmQKLSAgICBpZiAobG93
ZXJNZWRpYW5EYXlzU2luY2VVSVN0YXRlbWVudC5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSyB8
fCBsb3dlck1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQoMiwgKChwcmV2YWxlbnRS
ZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uQ291bnQgLSAxKSAvIDIpKSAhPSBTUUxJVEVfT0sp
IHsKKyAgICBpZiAobG93ZXJNZWRpYW5EYXlzU2luY2VVSVN0YXRlbWVudC5iaW5kSW50KDEsIDEp
ICE9IFNRTElURV9PSyB8fCBsb3dlck1lZGlhbkRheXNTaW5jZVVJU3RhdGVtZW50LmJpbmRJbnQo
MiwgMSkgIT0gU1FMSVRFX09LIHx8IGxvd2VyTWVkaWFuRGF5c1NpbmNlVUlTdGF0ZW1lbnQuYmlu
ZEludCgzLCAoKHByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb25Db3VudCAtIDEp
IC8gMikpICE9IFNRTElURV9PSykgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3Jr
LCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldE1lZGlhbk9mUHJldmFs
ZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgZXJyb3IgbWVzc2FnZTogJXtwdWJsaWN9
cyIsIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgIHJldHVybiAwOwpAQCAtOTAwLDcgKzk1Myw4IEBAIHVuc2lnbmVkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXRUb3BQcmV2ZWxlbnRSZXNvdXJjZURh
eXNTaW5jZVVJCiAgICAgfQogICAgIAogICAgIC8vIEJpbmQKLSAgICBpZiAodG9wUHJldmFsZW50
UmVzb3VyY2VXaXRoVXNlckludGVyYWN0aW9uRGF5c1NpbmNlVXNlckludGVyYWN0aW9uU3RhdGVt
ZW50LmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LKSB7CisgICAgaWYgKHRvcFByZXZhbGVudFJl
c291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNTaW5jZVVzZXJJbnRlcmFjdGlvblN0YXRlbWVu
dC5iaW5kSW50KDEsIDEpICE9IFNRTElURV9PSworICAgICAgICB8fCB0b3BQcmV2YWxlbnRSZXNv
dXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQu
YmluZEludCgyLCAxKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp0b3BQcmV2YWxl
bnRSZXNvdXJjZVdpdGhVc2VySW50ZXJhY3Rpb25EYXlzU2luY2VVc2VySW50ZXJhY3Rpb25TdGF0
ZW1lbnQgcXVlcnkgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICV7cHVibGljfXMiLCBt
X2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybiAwOwpAQCAtOTI3LDggKzk4MSw5IEBAIHN0YXRpYyB1bnNpZ25lZCBn
ZXRNZWRpYW5PZlByZXZhbGVudFJlc291cmNlV2l0aG91dFVzZXJJbnRlcmFjdGlvbihTUUxpdGVE
YXRhYmFzCiAgICAgU1FMaXRlU3RhdGVtZW50IGdldE1lZGlhblN0YXRpc3RpYyA9IG1ha2VNZWRp
YW5XaXRob3V0VUlRdWVyeShkYXRhYmFzZSwgc3RhdGlzdGljKTsKIAogICAgIGlmIChnZXRNZWRp
YW5TdGF0aXN0aWMucHJlcGFyZSgpID09IFNRTElURV9PSykgewotICAgICAgICBpZiAoZ2V0TWVk
aWFuU3RhdGlzdGljLmJpbmRJbnQoMSwgMCkgIT0gU1FMSVRFX09LCi0gICAgICAgICAgICB8fCBn
ZXRNZWRpYW5TdGF0aXN0aWMuYmluZEludCgyLCAoYnVja2V0U2l6ZSAvIDIpKSAhPSBTUUxJVEVf
T0spIHsKKyAgICAgICAgaWYgKGdldE1lZGlhblN0YXRpc3RpYy5iaW5kSW50KDEsIDEpICE9IFNR
TElURV9PSworICAgICAgICAgICAgfHwgZ2V0TWVkaWFuU3RhdGlzdGljLmJpbmRJbnQoMiwgMCkg
IT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBnZXRNZWRpYW5TdGF0aXN0aWMuYmluZEludCgz
LCAoYnVja2V0U2l6ZSAvIDIpKSAhPSBTUUxJVEVfT0spIHsKICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
bWFrZU1lZGlhbldpdGhvdXRVSVF1ZXJ5LCBlcnJvciBtZXNzYWdlOiAle3B1YmxpY31zIiwgZGF0
YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTk0Myw3ICs5OTgsOCBAQCBzdGF0aWMgdW5zaWdu
ZWQgZ2V0TWVkaWFuT2ZQcmV2YWxlbnRSZXNvdXJjZVdpdGhvdXRVc2VySW50ZXJhY3Rpb24oU1FM
aXRlRGF0YWJhcwogICAgIFNRTGl0ZVN0YXRlbWVudCBnZXRMb3dlck1lZGlhblN0YXRpc3RpYyA9
IG1ha2VNZWRpYW5XaXRob3V0VUlRdWVyeShkYXRhYmFzZSwgc3RhdGlzdGljKTsKIAogICAgIGlm
IChnZXRMb3dlck1lZGlhblN0YXRpc3RpYy5wcmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7Ci0gICAg
ICAgIGlmIChnZXRMb3dlck1lZGlhblN0YXRpc3RpYy5iaW5kSW50KDEsIDApICE9IFNRTElURV9P
SworICAgICAgICBpZiAoZ2V0TG93ZXJNZWRpYW5TdGF0aXN0aWMuYmluZEludCgxLCAxKSAhPSBT
UUxJVEVfT0sKKyAgICAgICAgICAgIHx8IGdldExvd2VyTWVkaWFuU3RhdGlzdGljLmJpbmRJbnQo
MiwgMCkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBnZXRMb3dlck1lZGlhblN0YXRpc3Rp
Yy5iaW5kSW50KDIsICgoYnVja2V0U2l6ZS0xKSAvIDIpKSAhPSBTUUxJVEVfT0spIHsKICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6bWFrZU1lZGlhbldpdGhvdXRVSVF1ZXJ5LCBlcnJvciBtZXNzYWdlOiAl
e3B1YmxpY31zIiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC05NjEsOCArMTAxNyw5IEBAIHN0YXRpYyB1bnNpZ25lZCBnZXRO
dW1iZXJPZlByZXZhbGVudFJlc291cmNlc0luVG9wUmVzb3VyY2VzKFNRTGl0ZURhdGFiYXNlJiBk
YXRhCiAgICAgU1FMaXRlU3RhdGVtZW50IHByZXZhbGVudFJlc291cmNlQ291bnRJblRvcChkYXRh
YmFzZSwgbWFrZVN0cmluZygiU0VMRUNUIENPVU5UKCopIEZST00gKFNFTEVDVCAqIEZST00gT2Jz
ZXJ2ZWREb21haW5zIG8gSU5ORVIgSk9JTihTRUxFQ1QgIiwgam9pblN1YlN0YXRpc3RpY3NGb3JT
b3J0aW5nKCksICIpIGFzIHEgb24gcS5kb21haW5JRCA9IG8uZG9tYWluSUQgTElNSVQgPykgYXMg
cCBXSEVSRSBwLmhhZFVzZXJJbnRlcmFjdGlvbiA9IDE7IikpOwogCiAgICAgaWYgKHByZXZhbGVu
dFJlc291cmNlQ291bnRJblRvcC5wcmVwYXJlKCkgPT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIGlm
IChwcmV2YWxlbnRSZXNvdXJjZUNvdW50SW5Ub3AuYmluZFRleHQoMSwgIiUiKSAhPSBTUUxJVEVf
T0sKLSAgICAgICAgICAgIHx8IHByZXZhbGVudFJlc291cmNlQ291bnRJblRvcC5iaW5kSW50KDIs
IGJ1Y2tldFNpemUpICE9IFNRTElURV9PSykgeworICAgICAgICBpZiAocHJldmFsZW50UmVzb3Vy
Y2VDb3VudEluVG9wLmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBw
cmV2YWxlbnRSZXNvdXJjZUNvdW50SW5Ub3AuYmluZFRleHQoMiwgIiUiKSAhPSBTUUxJVEVfT0sK
KyAgICAgICAgICAgIHx8IHByZXZhbGVudFJlc291cmNlQ291bnRJblRvcC5iaW5kSW50KDMsIGJ1
Y2tldFNpemUpICE9IFNRTElURV9PSykgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
TmV0d29yaywgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpnZXROdW1iZXJP
ZlByZXZhbGVudFJlc291cmNlc0luVG9wUmVzb3VyY2VzLCBlcnJvciBtZXNzYWdlOiAle3B1Ymxp
Y31zIiwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTEyNTEsNiArMTMwOCwxMSBAQCB2
b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzeW5jU3RvcmFnZUltbWVk
aWF0ZWx5KCkKICAgICBtX2RhdGFiYXNlLnJ1blZhY3V1bUNvbW1hbmQoKTsKIH0KIAorYm9vbCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25z
dCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIGNvbnN0IFN1YkZyYW1lRG9tYWluJiBz
dWJGcmFtZURvbWFpbikgY29uc3QKK3sKKyAgICByZXR1cm4gcmVsYXRpb25zaGlwRXhpc3RzKG1f
c3RvcmFnZUFjY2Vzc0V4aXN0c1N0YXRlbWVudCwgZG9tYWluSUQoc3ViRnJhbWVEb21haW4pLCB0
b3BGcmFtZURvbWFpbik7Cit9CisKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHN1YkZyYW1lRG9t
YWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVu
TG9vcDo6aXNNYWluKCkpOwpAQCAtMTYxOCw3ICsxNjgwLDE1IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKENvbXBs
ZXRpb25ICiAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIlJlc291cmNlIGxvYWQgc3RhdGlzdGlj
czpcblxuIik7CiAgICAgd2hpbGUgKG1fZ2V0QWxsRG9tYWluc1N0YXRlbWVudC5zdGVwKCkgPT0g
U1FMSVRFX1JPVykKICAgICAgICAgcmVzb3VyY2VUb1N0cmluZyhyZXN1bHQsIG1fZ2V0QWxsRG9t
YWluc1N0YXRlbWVudC5nZXRDb2x1bW5UZXh0KDApKTsKLSAgICAKKworICAgIGF1dG8gdGhpcmRQ
YXJ0eURhdGEgPSBhZ2dyZWdhdGVkVGhpcmRQYXJ0eURhdGEoKTsKKyAgICBpZiAoIXRoaXJkUGFy
dHlEYXRhLmlzRW1wdHkoKSkgeworICAgICAgICByZXN1bHQuYXBwZW5kKCJcbklUUCBEYXRhOlxu
Iik7CisgICAgICAgIGZvciAoYXV0byB0aGlyZFBhcnR5IDogdGhpcmRQYXJ0eURhdGEpIHsKKyAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQodGhpcmRQYXJ0eS50b1N0cmluZygpKTsKKyAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJ1xuJyk7CisgICAgICAgIH0KKyAgICB9CiAgICAgcmVzZXRTdGF0
ZW1lbnQobV9nZXRBbGxEb21haW5zU3RhdGVtZW50KTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihy
ZXN1bHQudG9TdHJpbmcoKSk7CiB9CkBAIC0yMzUwLDYgKzI0MjAsMTEgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YXBwZW5kU3ViU3RhdGlzdGljTGlzdChTdHJp
bmdCdWlsZGVyJgogICAgIH0KIH0KIAorc3RhdGljIGJvb2wgaGFzSGFkUmVjZW50VXNlckludGVy
YWN0aW9uKFdURjo6U2Vjb25kcyBpbnRlcmFjdGlvblRpbWVTZWNvbmRzKQoreworICAgIHJldHVy
biBpbnRlcmFjdGlvblRpbWVTZWNvbmRzID4gU2Vjb25kcygwKSAmJiBXYWxsVGltZTo6bm93KCku
c2Vjb25kc1NpbmNlRXBvY2goKSAtIGludGVyYWN0aW9uVGltZVNlY29uZHMgPCAyNF9oOworfQor
CiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXNvdXJjZVRvU3Ry
aW5nKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluKSBjb25zdAog
ewogICAgIGlmIChtX2dldFJlc291cmNlRGF0YUJ5RG9tYWluTmFtZVN0YXRlbWVudC5iaW5kVGV4
dCgxLCBkb21haW4pICE9IFNRTElURV9PSwpAQCAtMjM2Nyw3ICsyNDQyLDEwIEBAIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlc291cmNlVG9TdHJpbmcoU3RyaW5n
QnVpbGRlciYgYnVpbGRlCiAgICAgYXBwZW5kQm9vbGVhbihidWlsZGVyLCAiaGFkVXNlckludGVy
YWN0aW9uIiwgbV9nZXRSZXNvdXJjZURhdGFCeURvbWFpbk5hbWVTdGF0ZW1lbnQuZ2V0Q29sdW1u
SW50KEhhZFVzZXJJbnRlcmFjdGlvbkluZGV4KSk7CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7
CiAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
bjogIik7Ci0gICAgYnVpbGRlci5hcHBlbmRGaXhlZFByZWNpc2lvbk51bWJlcihtX2dldFJlc291
cmNlRGF0YUJ5RG9tYWluTmFtZVN0YXRlbWVudC5nZXRDb2x1bW5Eb3VibGUoTW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvblRpbWVJbmRleCkpOworICAgIGlmIChoYXNIYWRSZWNlbnRVc2VySW50ZXJh
Y3Rpb24oU2Vjb25kcyhtX2dldFJlc291cmNlRGF0YUJ5RG9tYWluTmFtZVN0YXRlbWVudC5nZXRD
b2x1bW5Eb3VibGUoTW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWVJbmRleCkpKSkKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ3aXRoaW4gMjQgaG91cnMiKTsKKyAgICBlbHNlCisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLTEiKTsKICAgICBidWlsZGVyLmFwcGVuZCgn
XG4nKTsKICAgICBhcHBlbmRCb29sZWFuKGJ1aWxkZXIsICJncmFuZGZhdGhlcmVkIiwgbV9nZXRS
ZXNvdXJjZURhdGFCeURvbWFpbk5hbWVTdGF0ZW1lbnQuZ2V0Q29sdW1uSW50KEdyYW5kZmF0aGVy
ZWRJbmRleCkpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRleCA5Mzk2OWE5OTRmNGM0
YzEwZmYzYjY3MGRmNGRmNzY4YmY4ZDRmNmQ4Li43YWQ4NjE1ZjVhMjcyYzZmZmM1NmRlYWU1MmFl
ZjJiZTZlYTZkYjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmUuaApAQCAtODUsNiArODUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVh
cihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNFbXB0
eSgpIGNvbnN0IG92ZXJyaWRlOwogCisgICAgVmVjdG9yPFRoaXJkUGFydHlEYXRhPiBhZ2dyZWdh
dGVkVGhpcmRQYXJ0eURhdGEoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUNvb2tp
ZUJsb2NraW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIGNsYXNzaWZ5UHJldmFsZW50UmVzb3VyY2VzKCkgb3ZlcnJpZGU7CkBAIC0xMzcsNiArMTM4
LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIG9wZW5JVFBEYXRhYmFzZSgpOwogICAg
IGJvb2wgaXNDb3JyZWN0VGFibGVTY2hlbWEoKTsKKyAgICBib29sIGhhc1N0b3JhZ2VBY2Nlc3Mo
Y29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBTdWJGcmFtZURvbWFpbiYpIGNvbnN0OworICAg
IFZlY3RvcjxUaGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0eT4gZ2V0VGhpcmRQYXJ0
eURhdGFGb3JTcGVjaWZpY0ZpcnN0UGFydHlEb21haW5zKHVuc2lnbmVkLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYpIGNvbnN0OwogICAgIHZvaWQgb3BlbkFuZERyb3BPbGREYXRhYmFzZUlmTmVj
ZXNzYXJ5KCk7CiAgICAgU3RyaW5nIGdldERvbWFpblN0cmluZ0Zyb21Eb21haW5JRCh1bnNpZ25l
ZCkgY29uc3Q7CiAgICAgU3RyaW5nIGdldFN1YlN0YXRpc3RpY1N0YXRlbWVudChjb25zdCBTdHJp
bmcmKSBjb25zdDsKQEAgLTI0OCw2ICsyNTEsOCBAQCBwcml2YXRlOgogICAgIG11dGFibGUgV2Vi
Q29yZTo6U1FMaXRlU3RhdGVtZW50IG1fZ2V0UmVzb3VyY2VEYXRhQnlEb21haW5OYW1lU3RhdGVt
ZW50OwogICAgIG11dGFibGUgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50IG1fZ2V0QWxsRG9tYWlu
c1N0YXRlbWVudDsKICAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0ZVN0YXRlbWVudCBtX2RvbWFp
blN0cmluZ0Zyb21Eb21haW5JRFN0YXRlbWVudDsKKyAgICBtdXRhYmxlIFdlYkNvcmU6OlNRTGl0
ZVN0YXRlbWVudCBtX2dldEFsbFN1YlN0YXRpc3RpY3NTdGF0ZW1lbnQ7CisgICAgbXV0YWJsZSBX
ZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQgbV9zdG9yYWdlQWNjZXNzRXhpc3RzU3RhdGVtZW50Owog
ICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcAppbmRleCBmODM2NDkzOGRhOTgz
YjIzMmVhOTQwMGZmZGRjNzA2MGY1OTMwZmE0Li4zNDBkZjkzZDAzM2FjOTY2M2U3NmUwZTAzNWU5
ZThlYTM1ZDdiOGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlLmNwcApAQCAtMTAzLDYgKzEwMyw0NiBAQCB2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZTo6Y2FsY3VsYXRlQW5kU3VibWl0VGVsZW1ldHJ5KCkgY29uc3QK
ICAgICAgICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeTo6Y2FsY3VsYXRlQW5k
U3VibWl0KCp0aGlzKTsKIH0KIAorc3RhdGljIHZvaWQgZW5zdXJlVGhpcmRQYXJ0eURhdGFGb3JT
cGVjaWZpY0ZpcnN0UGFydHlEb21haW4oVmVjdG9yPFRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNG
aXJzdFBhcnR5PiYgdGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0UGFydHlEb21haW4sIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBib29sIHRoaXJkUGFydHlI
YXNTdG9yYWdlQWNjZXNzKQoreworICAgIFRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNGaXJzdFBh
cnR5IHRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNGaXJzdFBhcnR5IHsgZmlyc3RQYXJ0eURvbWFp
biwgdGhpcmRQYXJ0eUhhc1N0b3JhZ2VBY2Nlc3MgfTsKKyAgICB0aGlyZFBhcnR5RGF0YUZvclNw
ZWNpZmljRmlyc3RQYXJ0eURvbWFpbi5hcHBlbmRJZk5vdENvbnRhaW5zKHRoaXJkUGFydHlEYXRh
Rm9yU3BlY2lmaWNGaXJzdFBhcnR5KTsKK30KKworc3RhdGljIFZlY3RvcjxUaGlyZFBhcnR5RGF0
YUZvclNwZWNpZmljRmlyc3RQYXJ0eT4gZ2V0VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0
UGFydHlEb21haW5zKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIHRoaXJkUGFydHlTdGF0
aXN0aWMpCit7CisgICAgVmVjdG9yPFRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNGaXJzdFBhcnR5
PiB0aGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0eURvbWFpbnM7CisKKyAgICBmb3Ig
KGF1dG8gZmlyc3RQYXJ0eURvbWFpbiA6IHRoaXJkUGFydHlTdGF0aXN0aWMuc3ViZnJhbWVVbmRl
clRvcEZyYW1lRG9tYWlucykKKyAgICAgICAgZW5zdXJlVGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZp
Y0ZpcnN0UGFydHlEb21haW4odGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0UGFydHlEb21h
aW5zLCBmaXJzdFBhcnR5RG9tYWluLCB0aGlyZFBhcnR5U3RhdGlzdGljLnN0b3JhZ2VBY2Nlc3NV
bmRlclRvcEZyYW1lRG9tYWlucy5jb250YWlucyhmaXJzdFBhcnR5RG9tYWluKSk7CisgICAgZm9y
IChhdXRvIGZpcnN0UGFydHlEb21haW4gOiB0aGlyZFBhcnR5U3RhdGlzdGljLnN1YnJlc291cmNl
VW5kZXJUb3BGcmFtZURvbWFpbnMpCisgICAgICAgIGVuc3VyZVRoaXJkUGFydHlEYXRhRm9yU3Bl
Y2lmaWNGaXJzdFBhcnR5RG9tYWluKHRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNGaXJzdFBhcnR5
RG9tYWlucywgZmlyc3RQYXJ0eURvbWFpbiwgdGhpcmRQYXJ0eVN0YXRpc3RpYy5zdG9yYWdlQWNj
ZXNzVW5kZXJUb3BGcmFtZURvbWFpbnMuY29udGFpbnMoZmlyc3RQYXJ0eURvbWFpbikpOworICAg
IGZvciAoYXV0byBmaXJzdFBhcnR5RG9tYWluIDogdGhpcmRQYXJ0eVN0YXRpc3RpYy5zdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c1RvKQorICAgICAgICBlbnN1cmVUaGlyZFBhcnR5RGF0YUZvclNw
ZWNpZmljRmlyc3RQYXJ0eURvbWFpbih0aGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0
eURvbWFpbnMsIGZpcnN0UGFydHlEb21haW4sIHRoaXJkUGFydHlTdGF0aXN0aWMuc3RvcmFnZUFj
Y2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zLmNvbnRhaW5zKGZpcnN0UGFydHlEb21haW4pKTsKKwor
ICAgIHJldHVybiB0aGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0eURvbWFpbnM7Cit9
CisKK3N0YXRpYyBib29sIGhhc0JlZW5UaGlyZFBhcnR5KGNvbnN0IFJlc291cmNlTG9hZFN0YXRp
c3RpY3MmIHN0YXRpc3RpYykKK3sKKyAgICByZXR1cm4gIXN0YXRpc3RpYy5zdWJmcmFtZVVuZGVy
VG9wRnJhbWVEb21haW5zLmlzRW1wdHkoKQorICAgICAgICB8fCAhc3RhdGlzdGljLnN1YnJlc291
cmNlVW5kZXJUb3BGcmFtZURvbWFpbnMuaXNFbXB0eSgpCisgICAgICAgIHx8ICFzdGF0aXN0aWMu
c3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUby5pc0VtcHR5KCk7Cit9CisKK1ZlY3RvcjxUaGly
ZFBhcnR5RGF0YT4gUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjphZ2dyZWdhdGVk
VGhpcmRQYXJ0eURhdGEoKSBjb25zdAoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OworCisgICAgVmVjdG9yPFRoaXJkUGFydHlEYXRhPiB0aGlyZFBhcnR5RGF0YUxpc3Q7CisgICAg
Zm9yIChhdXRvJiBzdGF0aXN0aWMgOiBtX3Jlc291cmNlU3RhdGlzdGljc01hcC52YWx1ZXMoKSkg
eworICAgICAgICBpZiAoaGFzQmVlblRoaXJkUGFydHkoc3RhdGlzdGljKSkKKyAgICAgICAgICAg
IHRoaXJkUGFydHlEYXRhTGlzdC5hcHBlbmQoVGhpcmRQYXJ0eURhdGEgeyBzdGF0aXN0aWMucmVn
aXN0cmFibGVEb21haW4sIGdldFRoaXJkUGFydHlEYXRhRm9yU3BlY2lmaWNGaXJzdFBhcnR5RG9t
YWlucyhzdGF0aXN0aWMpIH0pOworICAgIH0KKyAgICBzdGQ6OnNvcnQodGhpcmRQYXJ0eURhdGFM
aXN0LnJiZWdpbigpLCB0aGlyZFBhcnR5RGF0YUxpc3QucmVuZCgpKTsKKyAgICByZXR1cm4gdGhp
cmRQYXJ0eURhdGFMaXN0OworfQorCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6aW5jcmVtZW50UmVjb3Jkc0RlbGV0ZWRDb3VudEZvckRvbWFpbnMoSGFzaFNldDxSZWdp
c3RyYWJsZURvbWFpbj4mJiBkb21haW5zV2l0aERlbGV0ZWRXZWJzaXRlRGF0YSkKIHsKICAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTUxMCw2ICs1NTAsMTUgQEAgdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
KENvbXBsZXRpb25IYW4KICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiUmVzb3VyY2UgbG9hZCBz
dGF0aXN0aWNzOlxuXG4iKTsKICAgICBmb3IgKGF1dG8mIG1hcEVudHJ5IDogbV9yZXNvdXJjZVN0
YXRpc3RpY3NNYXAudmFsdWVzKCkpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQobWFwRW50cnkudG9T
dHJpbmcoKSk7CisKKyAgICBhdXRvIHRoaXJkUGFydHlEYXRhID0gYWdncmVnYXRlZFRoaXJkUGFy
dHlEYXRhKCk7CisgICAgaWYgKCF0aGlyZFBhcnR5RGF0YS5pc0VtcHR5KCkpIHsKKyAgICAgICAg
cmVzdWx0LmFwcGVuZCgiXG5JVFAgRGF0YTpcbiIpOworICAgICAgICBmb3IgKGF1dG8gdGhpcmRQ
YXJ0eSA6IHRoaXJkUGFydHlEYXRhKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHRoaXJk
UGFydHkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicpOworICAg
ICAgICB9CisgICAgfQogICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC50b1N0cmluZygpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5o
CmluZGV4IGM4ZmM2ODU4MDMzNmM4ZGQyYzc4ZGRlZjI2NDQ0MzNmN2FjN2YzZTIuLjliY2E5MDMw
YzU2ZTdkYzIzMzFkOTYwOTNlNzQ3MTU1NzYwODY3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgY2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsK
ICAgICBib29sIGlzRW1wdHkoKSBjb25zdCBvdmVycmlkZTsKIAorICAgIFZlY3RvcjxUaGlyZFBh
cnR5RGF0YT4gYWdncmVnYXRlZFRoaXJkUGFydHlEYXRhKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
Y29uc3QgSGFzaE1hcDxSZWdpc3RyYWJsZURvbWFpbiwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljcz4mIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlU3RhdGlzdGljc01hcDsg
fQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OktleWVkRW5jb2Rlcj4gY3JlYXRlRW5j
b2RlckZyb21EYXRhKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmgKaW5kZXggOTg3MzY5MjZmOWRkZGY0MzgwYzUwNGRlOTVkZDY5ODY3ZTM0NDBiMC4uOWE1
Zjg5YTlkNmQ2YzlhZDRjNzA4NjYxYzI3YjU3YjdkNGQ0YzY5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtOTgsNiArOTgsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXIoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CiAg
ICAgdmlydHVhbCBib29sIGlzRW1wdHkoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBWZWN0b3I8
VGhpcmRQYXJ0eURhdGE+IGFnZ3JlZ2F0ZWRUaGlyZFBhcnR5RGF0YSgpIGNvbnN0ID0gMDsKIAog
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb29raWVCbG9ja2luZyhDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpID0gMDsKICAgICB2b2lkIHVwZGF0ZUNvb2tpZUJsb2NraW5nRm9yRG9tYWlucyhj
b25zdCBSZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQ29va2llc0ZvciYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuY3BwCmluZGV4IDc0YWE3ZDU0NDdkZDI2MWQ5N2E3NTMwNTE2OTM0ZjhjMjBlYjE4ZGEu
LjNmZjBhNmIyNjY2OTc5OTZlMDc2YjAyYjdmZTJjYjk5NTc1MTkzN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0xMTQ5LDYgKzExNDks
MTEgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om5vdGlmeVBhZ2VTdGF0
aXN0aWNzVGVsZW1ldHJ5RmluaXNoZWQodW5zaWcKICAgICAgICAgY29uc3RfY2FzdDxXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUqPih0aGlzKS0+bmV0d29ya1Nlc3Npb24oKS0+bm90aWZ5
UGFnZVN0YXRpc3RpY3NUZWxlbWV0cnlGaW5pc2hlZChudW1iZXJPZlByZXZhbGVudFJlc291cmNl
cywgbnVtYmVyT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCBudW1iZXJP
ZlByZXZhbGVudFJlc291cmNlc1dpdGhvdXRVc2VySW50ZXJhY3Rpb24sIHRvcFByZXZhbGVudFJl
c291cmNlV2l0aFVzZXJJbnRlcmFjdGlvbkRheXNTaW5jZVVzZXJJbnRlcmFjdGlvbiwgbWVkaWFu
RGF5c1NpbmNlVXNlckludGVyYWN0aW9uUHJldmFsZW50UmVzb3VyY2VXaXRoVXNlckludGVyYWN0
aW9uLCB0b3AzTnVtYmVyT2ZQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVUksIHRvcDNNZWRpYW5TdWJG
cmFtZVdpdGhvdXRVSSwgdG9wM01lZGlhblN1YlJlc291cmNlV2l0aG91dFVJLCB0b3AzTWVkaWFu
VW5pcXVlUmVkaXJlY3RzV2l0aG91dFVJLCB0b3AzTWVkaWFuRGF0YVJlY29yZHNSZW1vdmVkV2l0
aG91dFVJKTsKIH0KIAorVmVjdG9yPFRoaXJkUGFydHlEYXRhPiBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OmFnZ3JlZ2F0ZWRUaGlyZFBhcnR5RGF0YSgpCit7CisgICAgcmV0dXJuIG1f
c3RhdGlzdGljc1N0b3JlLT5hZ2dyZWdhdGVkVGhpcmRQYXJ0eURhdGEoKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oCmluZGV4IDFkNDA0NGMyNGI5YWUxZjE0YjFjZDBhZjUxMjdhYzhhZjU2
OGFmNjMuLmQzZjljZjBmM2EyZDNkNmJmMjRiYzlmYjFiNDViZTVjMjhhOTNlYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTc4LDYgKzc4LDQ2
IEBAIHN0cnVjdCBSZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQ29va2llc0ZvciB7CiAgICAgUmVn
aXN0cmFibGVEb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IgaXNvbGF0ZWRDb3B5KCkgY29uc3QgeyBy
ZXR1cm4geyBkb21haW5zVG9CbG9ja0FuZERlbGV0ZUNvb2tpZXNGb3IuaXNvbGF0ZWRDb3B5KCks
IGRvbWFpbnNUb0Jsb2NrQnV0S2VlcENvb2tpZXNGb3IuaXNvbGF0ZWRDb3B5KCksIGRvbWFpbnNX
aXRoVXNlckludGVyYWN0aW9uQXNGaXJzdFBhcnR5Lmlzb2xhdGVkQ29weSgpIH07IH0KIH07CiAK
K3N0cnVjdCBUaGlyZFBhcnR5RGF0YUZvclNwZWNpZmljRmlyc3RQYXJ0eSB7CisgICAgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gZmlyc3RQYXJ0eURvbWFpbjsKKyAgICBib29sIHN0b3JhZ2VB
Y2Nlc3NHcmFudGVkOworCisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBtYWtlU3RyaW5nKCJIYXMgYmVlbiBncmFudGVkIHN0b3JhZ2UgYWNjZXNzIHVu
ZGVyICIsIGZpcnN0UGFydHlEb21haW4uc3RyaW5nKCksICI6ICIsIHN0b3JhZ2VBY2Nlc3NHcmFu
dGVkKTsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oVGhpcmRQYXJ0eURhdGFGb3JTcGVj
aWZpY0ZpcnN0UGFydHkgY29uc3Qgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
Zmlyc3RQYXJ0eURvbWFpbiA9PSBvdGhlci5maXJzdFBhcnR5RG9tYWluICYmIHN0b3JhZ2VBY2Nl
c3NHcmFudGVkID09IG90aGVyLnN0b3JhZ2VBY2Nlc3NHcmFudGVkOworICAgIH0KK307CisKK3N0
cnVjdCBUaGlyZFBhcnR5RGF0YSB7CisgICAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGhp
cmRQYXJ0eURvbWFpbjsKKyAgICBWZWN0b3I8VGhpcmRQYXJ0eURhdGFGb3JTcGVjaWZpY0ZpcnN0
UGFydHk+IHVuZGVyRmlyc3RQYXJ0aWVzOworCisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QK
KyAgICB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKKyAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQoIlRoaXJkIFBhcnR5IFJlZ2lzdHJhYmxlIERvbWFpbjogIiwgdGhp
cmRQYXJ0eURvbWFpbi5zdHJpbmcoKSwgIlxuIik7CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiICAgIHsiKTsKKworICAgICAgICBmb3IgKGF1dG8gZmlyc3RQYXJ0eSA6IHVu
ZGVyRmlyc3RQYXJ0aWVzKSB7CisgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVy
YWwoInsgIik7CisgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChmaXJzdFBhcnR5LnRv
U3RyaW5nKCkpOworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgfSwi
KTsKKyAgICAgICAgfQorICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZExpdGVyYWwoIn0iKTsK
KyAgICAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBi
b29sIG9wZXJhdG9yPChjb25zdCBUaGlyZFBhcnR5RGF0YSAmb3RoZXIpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gdW5kZXJGaXJzdFBhcnRpZXMuc2l6ZSgpIDwgb3RoZXIudW5kZXJGaXJz
dFBhcnRpZXMuc2l6ZSgpOworICAgIH0KK307CisKIGNsYXNzIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+IHsKIHB1
YmxpYzoKICAgICB1c2luZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljczsKQEAgLTE5NSw2ICsyMzUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzPiYmKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVu
ZXIoRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzJiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IG9wZW5lcklELCBPcGVuZXJEb21haW4mJik7CisgICAgVmVjdG9yPFRoaXJkUGFydHlEYXRhPiBh
Z2dyZWdhdGVkVGhpcmRQYXJ0eURhdGEoKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nlc3Npb24mLCBjb25zdCBTdHJpbmcm
LCBTaG91bGRJbmNsdWRlTG9jYWxob3N0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZDQzMTkzM2I1ZjMxYmZhMGNlNzFl
MjZlYzY5ODkxOGMyNmE0MDQwLi41MzU2NDQ3YmMzZWZhMjU1MGY4N2U0NmFjOGFiNzlhNmUzMDk0
OGI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMTItMDQgIEthdGUgQ2hlbmV5ICA8a2F0
aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlIGJhc2ljIElUUCBkYXRh
IGZyb20gdGhlIGRhdGFiYXNlIGZvciBmdXR1cmUgQVBJL1NQSSB1c2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQzMgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTYwODUwNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgSm9obiBXaWxhbmRlci4KKwor
ICAgICAgICBBZGRlZCBuZXcgdGVzdHMgdG8gY2hlY2sgaWYgYmFzaWMgSVRQIGRhdGEgaXMgcHJv
cGVybHkKKyAgICAgICAgY29sbGVjdGVkIGFuZCBzb3J0ZWQgZm9yIGJvdGggdGhlIGRhdGFiYXNl
IHN0b3JlIGFuZCB0aGUgbWVtb3J5IHN0b3JlLgorICAgICAgICBBbHNvIGVkaXRlZCBhbnkgdGVz
dHMgd2hpY2ggdXNlIGR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkgdG8gYWxzbworICAgICAg
ICBleHBlY3QgdGhlIG5ldyBhZ2dyZWdhdGVkIGRhdGEgdG8gYmUgZGlzcGxheWVkLgorCisgICAg
ICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5
LXNjcmlwdC1pbXBvcnQtaW4td29ya2VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2Ny
aXB0LWltcG9ydC1pbi13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQtbG9hZHMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQtbG9hZHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb250LWNvdW50LXRoaXJk
LXBhcnR5LWltYWdlLWFzLXRoaXJkLXBhcnR5LXNjcmlwdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvbnQtY291bnQt
dGhpcmQtcGFydHktaW1hZ2UtYXMtdGhpcmQtcGFydHktc2NyaXB0LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmZhY2Ut
ZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1k
YXRhLW5vLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyZmFjZS1kYXRhLW5vLXN0
b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJmYWNlLWRhdGEtbm8tc3RvcmFnZS1hY2Nl
c3MuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3VzZXIt
aW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy91c2VyLWludGVyZmFj
ZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3VzZXItaW50ZXJmYWNlLWRhdGEtd2l0aC1zdG9y
YWdlLWFjY2Vzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy91c2VyLWludGVyZmFjZS1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MuaHRtbDog
QWRkZWQuCisKIDIwMTktMTItMDQgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIFVwZGF0ZSBXUFQgdG9vbHMgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWdncmVnYXRlLXNvcnRlZC1k
YXRhLW5vLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEt
bm8tc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjZWEw
ZWQ0Yzk0ZjQ2NDJkYTEwMWQ3ZDQ4OGQ1ODNkZWNkNzc1ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWdncmVnYXRlLXNv
cnRlZC1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDgzIEBACitDaGVjayBjb3JyZWN0IFVJIGRhdGEgZ2V0cyByZXBvcnRlZCB3aXRoIG5vIHN0
b3JhZ2UgYWNjZXNzLgorCisKKworUmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzOgorCitSZWdpc3Ry
YWJsZSBkb21haW46IHN1YmZyYW1lMQorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAgICBt
b3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAg
SXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbDogTm8KKyAgICBTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAgICB0b3BmcmFtZTEKKyAgICBTdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c1RvOgorICAgICAgICB0b3BmcmFtZTIKKyAgICBpc1ByZXZhbGVudFJlc291
cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObworICAgIGRhdGFSZWNvcmRz
UmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiBzdWJmcmFtZTIKKyAgICBoYWRVc2VySW50
ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEKKyAgICBncmFu
ZGZhdGhlcmVkOiBObworICAgIElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWw6
IE5vCisgICAgU3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluczoKKyAgICAgICAgdG9wZnJhbWUx
CisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJj
ZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKK1JlZ2lzdHJhYmxlIGRvbWFpbjogc3Vi
ZnJhbWUzCisgICAgaGFkVXNlckludGVyYWN0aW9uOiBObworICAgIG1vc3RSZWNlbnRVc2VySW50
ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBJc1NjaGVkdWxlZEZvckFs
bEJ1dENvb2tpZURhdGFSZW1vdmFsOiBObworICAgIFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFp
bnM6CisgICAgICAgIHRvcGZyYW1lMQorICAgICAgICB0b3BmcmFtZTQKKyAgICBTdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAgICB0b3BmcmFtZTMKKyAgICBTdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0c1RvOgorICAgICAgICB0b3BmcmFtZTIKKyAgICBpc1ByZXZhbGVudFJl
c291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObworICAgIGRhdGFSZWNv
cmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiB0b3BmcmFtZTEKKyAgICBoYWRVc2Vy
SW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEKKyAgICBn
cmFuZGZhdGhlcmVkOiBObworICAgIElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92
YWw6IE5vCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ZlcnlQcmV2YWxlbnRS
ZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKK1JlZ2lzdHJhYmxlIGRvbWFp
bjogdG9wZnJhbWUyCisgICAgaGFkVXNlckludGVyYWN0aW9uOiBObworICAgIG1vc3RSZWNlbnRV
c2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBJc1NjaGVkdWxl
ZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsOiBObworICAgIGlzUHJldmFsZW50UmVzb3VyY2U6
IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1v
dmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IHRvcGZyYW1lMworICAgIGhhZFVzZXJJbnRlcmFj
dGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uOiAtMQorICAgIGdyYW5kZmF0
aGVyZWQ6IE5vCisgICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbDogTm8K
KyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNl
OiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiB0b3Bm
cmFtZTQKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvbjogLTEKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIElzU2NoZWR1bGVkRm9yQWxs
QnV0Q29va2llRGF0YVJlbW92YWw6IE5vCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAg
ICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAK
KworSVRQIERhdGE6CitUaGlyZCBQYXJ0eSBSZWdpc3RyYWJsZSBEb21haW46IHN1YmZyYW1lMwor
ICAgIHt7IEhhcyBiZWVuIGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MgdW5kZXIgdG9wZnJhbWUxOiAw
IH0seyBIYXMgYmVlbiBncmFudGVkIHN0b3JhZ2UgYWNjZXNzIHVuZGVyIHRvcGZyYW1lNDogMCB9
LHsgSGFzIGJlZW4gZ3JhbnRlZCBzdG9yYWdlIGFjY2VzcyB1bmRlciB0b3BmcmFtZTM6IDAgfSx7
IEhhcyBiZWVuIGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MgdW5kZXIgdG9wZnJhbWUyOiAwIH0sfQor
VGhpcmQgUGFydHkgUmVnaXN0cmFibGUgRG9tYWluOiBzdWJmcmFtZTEKKyAgICB7eyBIYXMgYmVl
biBncmFudGVkIHN0b3JhZ2UgYWNjZXNzIHVuZGVyIHRvcGZyYW1lMTogMCB9LHsgSGFzIGJlZW4g
Z3JhbnRlZCBzdG9yYWdlIGFjY2VzcyB1bmRlciB0b3BmcmFtZTI6IDAgfSx9CitUaGlyZCBQYXJ0
eSBSZWdpc3RyYWJsZSBEb21haW46IHN1YmZyYW1lMgorICAgIHt7IEhhcyBiZWVuIGdyYW50ZWQg
c3RvcmFnZSBhY2Nlc3MgdW5kZXIgdG9wZnJhbWUxOiAwIH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FnZ3JlZ2F0ZS1zb3J0ZWQt
ZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0YS1uby1zdG9y
YWdlLWFjY2Vzcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllMWM5ZWYyMTJkYzRlMzE5Mjli
MTEyYTM3YWUyZTgyODQ1NzYwZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWdncmVnYXRlLXNvcnRlZC1kYXRhLW5vLXN0
b3JhZ2UtYWNjZXNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvY29va2llcy9yZXNvdXJjZXMv
Y29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgn
cnVuVGVzdCgpJywgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPkNoZWNrIGNvcnJlY3QgVUkg
ZGF0YSBnZXRzIHJlcG9ydGVkIHdpdGggbm8gc3RvcmFnZSBhY2Nlc3MuPC9kaXY+Cis8YnI+Cis8
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPGJyPgorPHNjcmlwdD4KKyAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcFJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgY29uc3Qgc3ViT3JpZ2luMSA9ICJodHRwOi8vc3ViZnJhbWUxOjgwMDAiOworICAg
IGNvbnN0IHN1Yk9yaWdpbjIgID0gImh0dHA6Ly9zdWJmcmFtZTI6ODAwMCI7CisgICAgY29uc3Qg
c3ViT3JpZ2luMyAgPSAiaHR0cDovL3N1YmZyYW1lMzo4MDAwIjsKKworICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luMSA9ICJodHRwOi8vdG9wZnJhbWUxOjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1l
T3JpZ2luMiA9ICJodHRwOi8vdG9wZnJhbWUyOjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3Jp
Z2luMyA9ICJodHRwOi8vdG9wZnJhbWUzOjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2lu
NCA9ICJodHRwOi8vdG9wZnJhbWU0OjgwMDAiOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisKKyAgICAgICAgICAgIC8vIHN1Yk9y
aWdpbjEgd2lsbCBiZSBsb2dnZWQgdW5kZXIgMiB0b3AgZnJhbWVzLiBTaG91bGQgYXBwZWFyIHNl
Y29uZAorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRv
cEZyYW1lT3JpZ2luKHN1Yk9yaWdpbjEsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3ViT3Jp
Z2luMSwgdG9wRnJhbWVPcmlnaW4yKTsKKworICAgICAgICAgICAgLy8gc3ViT3JpZ2luMiB3aWxs
IGJlIGxvZ2dlZCB1bmRlciAxIHRvcCBmcmFtZXMuIFNob3VsZCBhcHBlYXIgdGhpcmQKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdp
bihzdWJPcmlnaW4yLCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAgICAvLyBzdWJPcmln
aW4zIHdpbGwgYmUgbG9nZ2VkIHVuZGVyIDQgdG9wIGZyYW1lcy4gU2hvdWxkIGFwcGVhciBmaXJz
dAorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2luKHN1Yk9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3ViT3JpZ2lu
MywgdG9wRnJhbWVPcmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihzdWJPcmlnaW4zLCB0b3BGcmFtZU9yaWdp
bjMpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRv
cEZyYW1lT3JpZ2luKHN1Yk9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBmaW5pc2hUZXN0KCkgfSwgNTAwKTsKKyAgICAgICAg
fSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWdncmVnYXRlLXNvcnRl
ZC1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtbm8tc3Rv
cmFnZS1hY2Nlc3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlMGZhN2JjNzIzZjU2Yzk0OGYz
ZDExYmViNTAxM2JjZTVjNGNmMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvYWdncmVnYXRlLXNvcnRlZC1kYXRhLW5vLXN0
b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDgzIEBACitDaGVjayBjb3JyZWN0
IFVJIGRhdGEgZ2V0cyByZXBvcnRlZCB3aXRoIG5vIHN0b3JhZ2UgYWNjZXNzIGdyYW50ZWQuCisK
KworCitSZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3M6CisKK1JlZ2lzdHJhYmxlIGRvbWFpbjogdG9w
ZnJhbWUyCisgICAgaGFkVXNlckludGVyYWN0aW9uOiBObworICAgIG1vc3RSZWNlbnRVc2VySW50
ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBnb3RMaW5rRGVjb3JhdGlv
bkZyb21QcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObwor
ICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDog
MAorUmVnaXN0cmFibGUgZG9tYWluOiB0b3BmcmFtZTMKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246
IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogLTEKKyAgICBncmFuZGZhdGhlcmVk
OiBObworICAgIGdvdExpbmtEZWNvcmF0aW9uRnJvbVByZXZhbGVudFJlc291cmNlOiBObworICAg
IGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5v
CisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBkb21haW46IHRvcGZyYW1l
MQorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVjZW50VXNlckludGVyYWN0
aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgZ290TGlua0RlY29yYXRpb25Gcm9t
UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBp
c1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKK1Jl
Z2lzdHJhYmxlIGRvbWFpbjogdG9wZnJhbWU0CisgICAgaGFkVXNlckludGVyYWN0aW9uOiBObwor
ICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRmYXRoZXJlZDogTm8K
KyAgICBnb3RMaW5rRGVjb3JhdGlvbkZyb21QcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1By
ZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBObworICAg
IGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0cmFibGUgZG9tYWluOiBzdWJmcmFtZTEKKyAg
ICBoYWRVc2VySW50ZXJhY3Rpb246IE5vCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjog
LTEKKyAgICBncmFuZGZhdGhlcmVkOiBObworICAgIGdvdExpbmtEZWNvcmF0aW9uRnJvbVByZXZh
bGVudFJlc291cmNlOiBObworICAgIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnM6CisgICAg
ICAgIHRvcGZyYW1lMQorICAgIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG86CisgICAgICAg
IHRvcGZyYW1lMgorICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFs
ZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3RyYWJsZSBk
b21haW46IHN1YmZyYW1lMgorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogTm8KKyAgICBtb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uOiAtMQorICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgZ290TGlu
a0RlY29yYXRpb25Gcm9tUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgc3ViZnJhbWVVbmRlclRv
cEZyYW1lRG9tYWluczoKKyAgICAgICAgdG9wZnJhbWUxCisgICAgaXNQcmV2YWxlbnRSZXNvdXJj
ZTogTm8KKyAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1Jl
bW92ZWQ6IDAKK1JlZ2lzdHJhYmxlIGRvbWFpbjogc3ViZnJhbWUzCisgICAgaGFkVXNlckludGVy
YWN0aW9uOiBObworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCisgICAgZ3JhbmRm
YXRoZXJlZDogTm8KKyAgICBnb3RMaW5rRGVjb3JhdGlvbkZyb21QcmV2YWxlbnRSZXNvdXJjZTog
Tm8KKyAgICBzdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAgICB0b3BmcmFtZTEK
KyAgICAgICAgdG9wZnJhbWU0CisgICAgc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluczoK
KyAgICAgICAgdG9wZnJhbWUzCisgICAgc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbzoKKyAg
ICAgICAgdG9wZnJhbWUyCisgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ZlcnlQ
cmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDAKKworSVRQIERh
dGE6CitUaGlyZCBQYXJ0eSBSZWdpc3RyYWJsZSBEb21haW46IHN1YmZyYW1lMworICAgIHt7IEhh
cyBiZWVuIGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MgdW5kZXIgdG9wZnJhbWUxOiAwIH0seyBIYXMg
YmVlbiBncmFudGVkIHN0b3JhZ2UgYWNjZXNzIHVuZGVyIHRvcGZyYW1lNDogMCB9LHsgSGFzIGJl
ZW4gZ3JhbnRlZCBzdG9yYWdlIGFjY2VzcyB1bmRlciB0b3BmcmFtZTM6IDAgfSx7IEhhcyBiZWVu
IGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MgdW5kZXIgdG9wZnJhbWUyOiAwIH0sfQorVGhpcmQgUGFy
dHkgUmVnaXN0cmFibGUgRG9tYWluOiBzdWJmcmFtZTEKKyAgICB7eyBIYXMgYmVlbiBncmFudGVk
IHN0b3JhZ2UgYWNjZXNzIHVuZGVyIHRvcGZyYW1lMTogMCB9LHsgSGFzIGJlZW4gZ3JhbnRlZCBz
dG9yYWdlIGFjY2VzcyB1bmRlciB0b3BmcmFtZTI6IDAgfSx9CitUaGlyZCBQYXJ0eSBSZWdpc3Ry
YWJsZSBEb21haW46IHN1YmZyYW1lMgorICAgIHt7IEhhcyBiZWVuIGdyYW50ZWQgc3RvcmFnZSBh
Y2Nlc3MgdW5kZXIgdG9wZnJhbWUxOiAwIH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0YS1uby1z
dG9yYWdlLWFjY2Vzcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0YS1uby1zdG9yYWdlLWFjY2Vzcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU0OTYxZWIzZTZjZGEyOGJiYWFmYmExYjRmNTgwNmY4MDk3NzM1ZGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvYWdncmVnYXRlLXNvcnRlZC1kYXRhLW5vLXN0b3JhZ2UtYWNjZXNzLmh0bWwKQEAgLTAsMCAr
MSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRp
b24iPkNoZWNrIGNvcnJlY3QgVUkgZGF0YSBnZXRzIHJlcG9ydGVkIHdpdGggbm8gc3RvcmFnZSBh
Y2Nlc3MgZ3JhbnRlZC48L2Rpdj4KKzxicj4KKzxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8YnI+
Cis8c2NyaXB0PgorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOworICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBjb25zdCBzdWJPcmlnaW4xID0g
Imh0dHA6Ly9zdWJmcmFtZTE6ODAwMCI7CisgICAgY29uc3Qgc3ViT3JpZ2luMiAgPSAiaHR0cDov
L3N1YmZyYW1lMjo4MDAwIjsKKyAgICBjb25zdCBzdWJPcmlnaW4zICA9ICJodHRwOi8vc3ViZnJh
bWUzOjgwMDAiOworICAgIAorICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMSA9ICJodHRwOi8vdG9w
ZnJhbWUxOjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMiA9ICJodHRwOi8vdG9wZnJh
bWUyOjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luMyA9ICJodHRwOi8vdG9wZnJhbWUz
OjgwMDAiOworICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luNCA9ICJodHRwOi8vdG9wZnJhbWU0Ojgw
MDAiOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisKKyAgICAgICAgICAgIC8vIHN1Yk9yaWdpbjEgd2lsbCBi
ZSBsb2dnZWQgdW5kZXIgMiB0b3AgZnJhbWVzLiBTaG91bGQgYXBwZWFyIHNlY29uZAorICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lu
KHN1Yk9yaWdpbjEsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3ViT3JpZ2luMSwgdG9wRnJh
bWVPcmlnaW4yKTsKKworICAgICAgICAgICAgLy8gc3ViT3JpZ2luMiB3aWxsIGJlIGxvZ2dlZCB1
bmRlciAxIHRvcCBmcmFtZXMuIFNob3VsZCBhcHBlYXIgdGhpcmQKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihzdWJPcmlnaW4y
LCB0b3BGcmFtZU9yaWdpbjEpOworCisgICAgICAgICAgICAvLyBzdWJPcmlnaW4zIHdpbGwgYmUg
bG9nZ2VkIHVuZGVyIDQgdG9wIGZyYW1lcy4gU2hvdWxkIGFwcGVhciBmaXJzdAorICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKHN1
Yk9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3ViT3JpZ2luMywgdG9wRnJhbWVP
cmlnaW4yKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1N1YnJlc291cmNl
VW5kZXJUb3BGcmFtZU9yaWdpbihzdWJPcmlnaW4zLCB0b3BGcmFtZU9yaWdpbjMpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lu
KHN1Yk9yaWdpbjMsIHRvcEZyYW1lT3JpZ2luNCk7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24gKCkgeyBmaW5pc2hUZXN0KCkgfSwgNTAwKTsKKyAgICAgICAgfSk7CisgICAgfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWlt
cG9ydC1pbi13b3JrZXItZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5LXNjcmlwdC1pbXBv
cnQtaW4td29ya2VyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dAppbmRleCAzNjljMWU0ZjA3N2VjODIy
NDgxNjhkY2I4MGM0Yjc0N2U2ZmM0MDM3Li40YzllNTg2NzcxNzMyMDJkMDBiODFjODRjZWIyNjY4
NTQxODcyMjk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWltcG9ydC1pbi13b3JrZXItZGF0
YWJhc2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQtaW1wb3J0LWluLXdvcmtlci1k
YXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTI0LDMgKzI0LDcgQEAgUmVnaXN0cmFibGUgZG9tYWlu
OiBsb2NhbGhvc3QKICAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObwogICAgIGlzVmVyeVByZXZh
bGVudFJlc291cmNlOiBObwogICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorCitJVFAgRGF0YToK
K1RoaXJkIFBhcnR5IFJlZ2lzdHJhYmxlIERvbWFpbjogbG9jYWxob3N0CisgICAge3sgSGFzIGJl
ZW4gZ3JhbnRlZCBzdG9yYWdlIGFjY2VzcyB1bmRlciAxMjcuMC4wLjE6IDAgfSx9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQt
dGhpcmQtcGFydHktc2NyaXB0LWltcG9ydC1pbi13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5
LXNjcmlwdC1pbXBvcnQtaW4td29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAxMjExYWYwZDI4MjAw
ZjBhMTNkM2NhZTc3MDRlZGY2NTUzZmY1MTZkLi4wMzAyNWNlYTkzNzU0MjA3M2MwOWM3MWYyMDkx
ZjNjZTRiMjhiNzgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWltcG9ydC1pbi13b3JrZXIt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQtaW1wb3J0LWluLXdvcmtlci1leHBlY3Rl
ZC50eHQKQEAgLTI0LDMgKzI0LDcgQEAgUmVnaXN0cmFibGUgZG9tYWluOiAxMjcuMC4wLjEKICAg
ICBpc1ByZXZhbGVudFJlc291cmNlOiBObwogICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNlOiBO
bwogICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorCitJVFAgRGF0YToKK1RoaXJkIFBhcnR5IFJl
Z2lzdHJhYmxlIERvbWFpbjogbG9jYWxob3N0CisgICAge3sgSGFzIGJlZW4gZ3JhbnRlZCBzdG9y
YWdlIGFjY2VzcyB1bmRlciAxMjcuMC4wLjE6IDAgfSx9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2Ny
aXB0LWxvYWRzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1wYXJ0eS1zY3JpcHQtbG9hZHMtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0CmluZGV4IDM2OWMxZTRmMDc3ZWM4MjI0ODE2OGRjYjgwYzRiNzQ3
ZTZmYzQwMzcuLjRjOWU1ODY3NzE3MzIwMmQwMGI4MWM4NGNlYjI2Njg1NDE4NzIyOTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3Vu
dC10aGlyZC1wYXJ0eS1zY3JpcHQtbG9hZHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jb3VudC10aGlyZC1w
YXJ0eS1zY3JpcHQtbG9hZHMtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0yNCwzICsyNCw3IEBA
IFJlZ2lzdHJhYmxlIGRvbWFpbjogbG9jYWxob3N0CiAgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTog
Tm8KICAgICBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KICAgICBkYXRhUmVjb3Jkc1JlbW92
ZWQ6IDAKKworSVRQIERhdGE6CitUaGlyZCBQYXJ0eSBSZWdpc3RyYWJsZSBEb21haW46IGxvY2Fs
aG9zdAorICAgIHt7IEhhcyBiZWVuIGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MgdW5kZXIgMTI3LjAu
MC4xOiAwIH0sfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2NvdW50LXRoaXJkLXBhcnR5LXNjcmlwdC1sb2Fkcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQtdGhp
cmQtcGFydHktc2NyaXB0LWxvYWRzLWV4cGVjdGVkLnR4dAppbmRleCAxMjExYWYwZDI4MjAwZjBh
MTNkM2NhZTc3MDRlZGY2NTUzZmY1MTZkLi4wMzAyNWNlYTkzNzU0MjA3M2MwOWM3MWYyMDkxZjNj
ZTRiMjhiNzgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvY291bnQtdGhpcmQtcGFydHktc2NyaXB0LWxvYWRzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY291bnQt
dGhpcmQtcGFydHktc2NyaXB0LWxvYWRzLWV4cGVjdGVkLnR4dApAQCAtMjQsMyArMjQsNyBAQCBS
ZWdpc3RyYWJsZSBkb21haW46IDEyNy4wLjAuMQogICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5v
CiAgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgZGF0YVJlY29yZHNSZW1vdmVk
OiAwCisKK0lUUCBEYXRhOgorVGhpcmQgUGFydHkgUmVnaXN0cmFibGUgRG9tYWluOiBsb2NhbGhv
c3QKKyAgICB7eyBIYXMgYmVlbiBncmFudGVkIHN0b3JhZ2UgYWNjZXNzIHVuZGVyIDEyNy4wLjAu
MTogMCB9LH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kb250LWNvdW50LXRoaXJkLXBhcnR5LWltYWdlLWFzLXRoaXJkLXBhcnR5LXNj
cmlwdC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG9udC1jb3VudC10aGlyZC1wYXJ0eS1pbWFnZS1hcy10aGlyZC1w
YXJ0eS1zY3JpcHQtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CmluZGV4IDAyNWMyM2Y5MjJmNGQ0ZTdl
MGYyNWJhZTc0NWJkZGI0NWNjZmRiMWMuLjkyYmJiYTkyOTM3MjI4MzdiNzE2MmM4N2ZlODgxYmNi
ZmQ2YTk1YzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kb250LWNvdW50LXRoaXJkLXBhcnR5LWltYWdlLWFzLXRoaXJkLXBhcnR5LXNj
cmlwdC1kYXRhYmFzZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvbnQtY291bnQtdGhpcmQtcGFydHktaW1hZ2UtYXMtdGhp
cmQtcGFydHktc2NyaXB0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMjIsMyArMjIsNyBAQCBS
ZWdpc3RyYWJsZSBkb21haW46IGxvY2FsaG9zdAogICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5v
CiAgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgZGF0YVJlY29yZHNSZW1vdmVk
OiAwCisKK0lUUCBEYXRhOgorVGhpcmQgUGFydHkgUmVnaXN0cmFibGUgRG9tYWluOiBsb2NhbGhv
c3QKKyAgICB7eyBIYXMgYmVlbiBncmFudGVkIHN0b3JhZ2UgYWNjZXNzIHVuZGVyIDEyNy4wLjAu
MTogMCB9LH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kb250LWNvdW50LXRoaXJkLXBhcnR5LWltYWdlLWFzLXRoaXJkLXBhcnR5LXNj
cmlwdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZG9udC1jb3VudC10aGlyZC1wYXJ0eS1pbWFnZS1hcy10aGlyZC1wYXJ0eS1zY3Jp
cHQtZXhwZWN0ZWQudHh0CmluZGV4IDRlY2I5NzM2ZTEwNjA5MjM1YjAxMTM5M2FhZTExNjJkMjI0
ODI5NWUuLjE5ZWQ4NTE2MzIzMDM3Mzg4NDNiNDY2MzI2YWM3NmQyODAwODA4NTAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb250LWNv
dW50LXRoaXJkLXBhcnR5LWltYWdlLWFzLXRoaXJkLXBhcnR5LXNjcmlwdC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2RvbnQt
Y291bnQtdGhpcmQtcGFydHktaW1hZ2UtYXMtdGhpcmQtcGFydHktc2NyaXB0LWV4cGVjdGVkLnR4
dApAQCAtMTQsMyArMTQsNyBAQCBSZWdpc3RyYWJsZSBkb21haW46IGxvY2FsaG9zdAogICAgIGlz
UHJldmFsZW50UmVzb3VyY2U6IE5vCiAgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6IE5vCiAg
ICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCisKK0lUUCBEYXRhOgorVGhpcmQgUGFydHkgUmVnaXN0
cmFibGUgRG9tYWluOiBsb2NhbGhvc3QKKyAgICB7eyBIYXMgYmVlbiBncmFudGVkIHN0b3JhZ2Ug
YWNjZXNzIHVuZGVyIDEyNy4wLjAuMTogMCB9LH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdl
LWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvYWdncmVnYXRlLXNvcnRlZC1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZGF0
YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3M2E2M2ExY2NhNGVjYzQxY2JkMzZjODAx
NzlkZDI4Y2NhODQ5ODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvYWdncmVnYXRlLXNvcnRlZC1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3Mt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKK0NoZWNrIGNvcnJlY3QgVUkg
ZGF0YSBnZXRzIHJlcG9ydGVkIHdpdGggc3RvcmFnZSBhY2Nlc3MgZ3JhbnRlZC4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RvcmFnZSBhY2Nlc3Mgd2FzIGdyYW50ZWQu
IGRvY3VtZW50LmNvb2tpZSA9PSBmaXJzdFBhcnR5Q29va2llPXZhbHVlLCBjb29raWVzIHNlZW4g
c2VydmVyLXNpZGUgPT0geyJmaXJzdFBhcnR5Q29va2llIjoidmFsdWUifQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKK1Jlc291cmNlIGxvYWQgc3Rh
dGlzdGljczoKKworUmVnaXN0cmFibGUgZG9tYWluOiAxMjcuMC4wLjEKKyAgICBoYWRVc2VySW50
ZXJhY3Rpb246IFllcworICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IHdpdGhpbiAyNCBo
b3VycworICAgIGdyYW5kZmF0aGVyZWQ6IE5vCisgICAgSXNTY2hlZHVsZWRGb3JBbGxCdXRDb29r
aWVEYXRhUmVtb3ZhbDogTm8KKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVy
eVByZXZhbGVudFJlc291cmNlOiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorUmVnaXN0
cmFibGUgZG9tYWluOiBsb2NhbGhvc3QKKyAgICBoYWRVc2VySW50ZXJhY3Rpb246IFllcworICAg
IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IHdpdGhpbiAyNCBob3VycworICAgIGdyYW5kZmF0
aGVyZWQ6IE5vCisgICAgU3RvcmFnZUFjY2Vzc1VuZGVyVG9wRnJhbWVEb21haW5zOgorICAgICAg
ICAxMjcuMC4wLjEKKyAgICBJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsOiBO
bworICAgIFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnM6CisgICAgICAgIDEyNy4wLjAuMQor
ICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2U6
IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCisKK0lUUCBEYXRhOgorVGhpcmQgUGFydHkg
UmVnaXN0cmFibGUgRG9tYWluOiBsb2NhbGhvc3QKKyAgICB7eyBIYXMgYmVlbiBncmFudGVkIHN0
b3JhZ2UgYWNjZXNzIHVuZGVyIDEyNy4wLjAuMTogMSB9LH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1z
dG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2FnZ3JlZ2F0ZS1zb3J0ZWQtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWRhdGFi
YXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTgyMzNkMDllMDgyNzI0ZGQ3NzEzZjBiNGZhNmUyZjU2ZGFj
MzA5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS5o
dG1sCkBAIC0wLDAgKzEsODYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJDaGVj
ayBjb3JyZWN0IFVJIGRhdGEgZ2V0cyByZXBvcnRlZCB3aXRoIHN0b3JhZ2UgYWNjZXNzIGdyYW50
ZWQuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB0ZXN0UnVubmVy
LnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworCisgICAgICAgIGNvbnN0IGZpcnN0UGFydHlVcmwg
PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICAgICAgY29uc3QgdGhpcmRQYXJ0eVVybCA9
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNz
YWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2Yo
IlBBU1MgIikgIT09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFJl
c291cmNlTG9hZFN0YXRpc3RpY3MoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChl
dmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwg
IiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQu
b3JpZ2luKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2Nr
VGhpcmRQYXJ0eUNvb2tpZXMoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVj
ZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQo
ZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zm
c2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRl
clkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAg
ICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAg
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
ZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3du
KCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tp
ZXMoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQ
cm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKGZhbHNlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
ICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggIT09ICIjY29va2llU2V0Iikgewor
ICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5VXJsICsg
Ii9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9zZXQtY29va2llLnBocD9uYW1lPWZpcnN0UGFydHlD
b29raWUmdmFsdWU9dmFsdWUjIiArIGZpcnN0UGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvYWdn
cmVnYXRlLXNvcnRlZC1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZGF0YWJhc2UuaHRtbCNjb29r
aWVTZXQiOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlD
b29raWVzKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5VXJsKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkLXBhcnR5IHNldCBhcyBwcmV2YWxl
bnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihmaXJzdFBhcnR5VXJsLCB0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NI
YXNIYWRVc2VySW50ZXJhY3Rpb24oZmlyc3RQYXJ0eVVybCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiRmlyc3QtcGFydHkgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1
c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlVcmwsIHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eVVybCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXJkLXBhcnR5IGRpZCBub3Qg
Z2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFt
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxl
bWVudCgiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxl
bWVudC5pZCA9ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0
OjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1pZnJh
bWUuaHRtbCN1c2VyU2hvdWxkR3JhbnRBY2Nlc3MsdXNlclNob3VsZEJlQ29uc3VsdGVkLHBvbGlj
eVNob3VsZEdyYW50QWNjZXNzLGlzTm90U2FtZU9yaWdpbklmcmFtZSI7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2FnZ3JlZ2F0
ZS1zb3J0ZWQtZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1z
dG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk0OGYyZDliZDQzOTAxMGJj
NjZjZDZmODFhMjA0NGVjYTYzY2ViZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdl
LWFjY2Vzcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNiBAQAorQ2hlY2sgY29ycmVjdCBVSSBk
YXRhIGdldHMgcmVwb3J0ZWQgd2l0aCBzdG9yYWdlIGFjY2VzcyBncmFudGVkLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBTdG9yYWdlIGFjY2VzcyB3YXMgZ3JhbnRlZC4g
ZG9jdW1lbnQuY29va2llID09IGZpcnN0UGFydHlDb29raWU9dmFsdWUsIGNvb2tpZXMgc2VlbiBz
ZXJ2ZXItc2lkZSA9PSB7ImZpcnN0UGFydHlDb29raWUiOiJ2YWx1ZSJ9CitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworUmVzb3VyY2UgbG9hZCBzdGF0
aXN0aWNzOgorCitSZWdpc3RyYWJsZSBkb21haW46IGxvY2FsaG9zdAorICAgIGhhZFVzZXJJbnRl
cmFjdGlvbjogWWVzCisgICAgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogd2l0aGluIDI0IGhv
dXJzCisgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBzdG9yYWdlQWNjZXNzVW5kZXJUb3BGcmFt
ZURvbWFpbnM6CisgICAgICAgIDEyNy4wLjAuMQorICAgIGdvdExpbmtEZWNvcmF0aW9uRnJvbVBy
ZXZhbGVudFJlc291cmNlOiBObworICAgIHN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbnM6Cisg
ICAgICAgIDEyNy4wLjAuMQorICAgIGlzUHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgaXNWZXJ5
UHJldmFsZW50UmVzb3VyY2U6IE5vCisgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAwCitSZWdpc3Ry
YWJsZSBkb21haW46IDEyNy4wLjAuMQorICAgIGhhZFVzZXJJbnRlcmFjdGlvbjogWWVzCisgICAg
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbjogd2l0aGluIDI0IGhvdXJzCisgICAgZ3JhbmRmYXRo
ZXJlZDogTm8KKyAgICBnb3RMaW5rRGVjb3JhdGlvbkZyb21QcmV2YWxlbnRSZXNvdXJjZTogTm8K
KyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBObworICAgIGlzVmVyeVByZXZhbGVudFJlc291cmNl
OiBObworICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogMAorCitJVFAgRGF0YToKK1RoaXJkIFBhcnR5
IFJlZ2lzdHJhYmxlIERvbWFpbjogbG9jYWxob3N0CisgICAge3sgSGFzIGJlZW4gZ3JhbnRlZCBz
dG9yYWdlIGFjY2VzcyB1bmRlciAxMjcuMC4wLjE6IDEgfSx9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvYWdncmVnYXRlLXNvcnRlZC1kYXRhLXdpdGgt
c3RvcmFnZS1hY2Nlc3MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQzZDMwMWY0ZjIwOGZmMzYzZjFhYTI0Njk5MjQ1OTcxYzdmYWZhOTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvYWdncmVnYXRlLXNv
cnRlZC1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MuaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiQ2hlY2sgY29ycmVjdCBVSSBkYXRhIGdldHMgcmVw
b3J0ZWQgd2l0aCBzdG9yYWdlIGFjY2VzcyBncmFudGVkLiIpOworICAgICAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworICAgICAgICBjb25zdCBmaXJzdFBhcnR5VXJsID0gImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCI7CisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlVcmwgPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIjsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgewor
ICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIp
IHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTICIpICE9PSAt
MSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzKCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBs
YWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1l
c3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29r
aWVzKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBm
YWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJZCkgewor
ICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50
SWQpOworICAgICAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVt
ZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5v
ZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgICAgICBVSUhlbHBl
ci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICAgICAgZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZXNjYXBlIik7Cisg
ICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiTm8gZXZlbnRTZW5kZXIuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKGZhbHNlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3Rl
ZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxk
QmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5oYXNoICE9PSAiI2Nvb2tpZVNldCIpIHsKKyAgICAgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vz
cy9yZXNvdXJjZXMvc2V0LWNvb2tpZS5waHA/bmFtZT1maXJzdFBhcnR5Q29va2llJnZhbHVlPXZh
bHVlIyIgKyBmaXJzdFBhcnR5VXJsICsgIi9zdG9yYWdlQWNjZXNzL2FnZ3JlZ2F0ZS1zb3J0ZWQt
ZGF0YS13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwjY29va2llU2V0IjsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyh0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2UodGhpcmRQYXJ0eVVybCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJUaGlyZC1wYXJ0eSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24oZmlyc3RQYXJ0eVVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKGZp
cnN0UGFydHlVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkZp
cnN0LXBhcnR5IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbih0aGlyZFBhcnR5VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHRoaXJkUGFydHlVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJUaGlyZC1wYXJ0eSBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50
ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoIlRoZUlmcmFtZVRoYXRSZXF1
ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhh
dFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZy
YW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVz
b3VyY2VzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNob3VsZEdyYW50
QWNjZXNzLHVzZXJTaG91bGRCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGRHcmFudEFjY2Vzcyxpc05v
dFNhbWVPcmlnaW5JZnJhbWUiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>