<?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>72674</bug_id>
          
          <creation_ts>2011-11-17 15:45:06 -0800</creation_ts>
          <short_desc>Implement Meta referrer</short_desc>
          <delta_ts>2012-03-06 11:40:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>73913</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter>jochen</reporter>
          <assigned_to>jochen</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>eoconnor</cc>
    
    <cc>fishd</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>505296</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-11-17 15:45:06 -0800</bug_when>
    <thetext>Implement Meta referrer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505298</commentid>
    <comment_count>1</comment_count>
      <attachid>115702</attachid>
    <who name="">jochen</who>
    <bug_when>2011-11-17 15:46:06 -0800</bug_when>
    <thetext>Created attachment 115702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505299</commentid>
    <comment_count>2</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-11-17 15:47:14 -0800</bug_when>
    <thetext>This patch implements http://wiki.whatwg.org/wiki/Meta_referrer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505303</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-17 15:48:25 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505306</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-17 15:52:28 -0800</bug_when>
    <thetext>*** Bug 70826 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505314</commentid>
    <comment_count>5</comment_count>
      <attachid>115702</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-17 16:03:43 -0800</bug_when>
    <thetext>Comment on attachment 115702
Patch

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

&gt; Source/WebCore/loader/PingLoader.cpp:96
&gt; +        String referrer;
&gt; +        if (!SecurityPolicy::shouldHideReferrer(pingURL, frame-&gt;loader()-&gt;outgoingReferrer(), frame-&gt;document()-&gt;referrerPolicy(), &amp;referrer))
&gt; +            request.setHTTPReferrer(referrer);

Bad indent.

&gt; Source/WebCore/page/SecurityPolicy.cpp:70
&gt; +    default:
&gt; +        ASSERT_NOT_REACHED();

We usually we leave off the default case so the compiler will complain when we forget a case.

&gt; Source/WebKit/chromium/public/WebSecurityPolicy.h:48
&gt; +    enum WebReferrerPolicy {
&gt; +        ReferrerPolicyAlways,
&gt; +        ReferrerPolicyDefault,
&gt; +        ReferrerPolicyNever,
&gt; +        ReferrerPolicyOrigin,
&gt; +    };

Usually we have some compile asserts about matching enum values.

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:596
&gt; +    if (m_frame-&gt;document())

m_frame-&gt;document() can never be null.

&gt; Source/WebKit/chromium/src/WebSecurityPolicy.cpp:99
&gt; +    String tmpReferrer;
&gt; +    bool hideReferrer = SecurityPolicy::shouldHideReferrer(url, referrer, static_cast&lt;SecurityPolicy::ReferrerPolicy&gt;(referrerPolicy), &amp;tmpReferrer);
&gt; +    if (!hideReferrer &amp;&amp; referrerToUse)
&gt; +        *referrerToUse = tmpReferrer;
&gt; +    return hideReferrer;

This is slightly inelegant, but I don&apos;t see a better way.

&gt; LayoutTests/ChangeLog:4
&gt; +        Implement Meta referrer
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=72674

Should we test the interaction with rel=noreferrer?

&gt; LayoutTests/http/tests/security/resources/referrer-policy-log.html:9
&gt; +    if (document.referrer == &quot;&quot;)

Should we check the HTTP header too?  If you make this a PHP script, that&apos;s pretty easy to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505316</commentid>
    <comment_count>6</comment_count>
      <attachid>115702</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-17 16:04:27 -0800</bug_when>
    <thetext>Comment on attachment 115702
Patch

These tests are a good start, but we should cover the HTTP header and the interaction with rel=noreferrer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505323</commentid>
    <comment_count>7</comment_count>
      <attachid>115702</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-11-17 16:08:56 -0800</bug_when>
    <thetext>Comment on attachment 115702
Patch

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

&gt; Source/WebCore/loader/FrameLoader.cpp:1145
&gt; +    if (SecurityPolicy::shouldHideReferrer(url, argsReferrer.isEmpty() ? m_outgoingReferrer : argsReferrer, m_frame-&gt;document()-&gt;referrerPolicy(), &amp;referrer) || shouldSendReferrer == NeverSendReferrer)
&gt;          referrer = String();

Perhaps consider m_outgoingReferrer when initializing argsReferrer, instead of here?

&gt; Source/WebCore/loader/PingLoader.cpp:97
&gt; -    if (!SecurityPolicy::shouldHideReferrer(pingURL, frame-&gt;loader()-&gt;outgoingReferrer())) {
&gt; +    if (!SecurityPolicy::shouldHideReferrer(pingURL, frame-&gt;loader()-&gt;outgoingReferrer(), SecurityPolicy::ReferrerPolicyDefault, 0)) {
&gt;        request.setHTTPHeaderField(&quot;Ping-From&quot;, frame-&gt;document()-&gt;url());
&gt; -      if (!sourceOrigin-&gt;isSameSchemeHostPort(pingOrigin.get()))
&gt; -        request.setHTTPReferrer(frame-&gt;loader()-&gt;outgoingReferrer());
&gt; +      if (!sourceOrigin-&gt;isSameSchemeHostPort(pingOrigin.get())) {
&gt; +        String referrer;
&gt; +        if (!SecurityPolicy::shouldHideReferrer(pingURL, frame-&gt;loader()-&gt;outgoingReferrer(), frame-&gt;document()-&gt;referrerPolicy(), &amp;referrer))
&gt; +            request.setHTTPReferrer(referrer);
&gt; +      }

Can we combine these shouldHideReferrer() calls?

&gt; Source/WebCore/page/SecurityPolicy.h:52
&gt; +
&gt; +    // True if the referrer header should be ommitted according to the policy.
&gt; +    // Otherwise, if referrerToUse is non-0, the value to send as referrer is
&gt; +    // returned.
&gt; +    static bool shouldHideReferrer(const KURL&amp;, const String&amp; referrer, ReferrerPolicy, String* referrerToUse);
&gt;  

Could we rename this and just return a String instead of having the String* input parameter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505329</commentid>
    <comment_count>8</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-11-17 16:12:59 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 115702 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115702&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:1145
&gt; &gt; +    if (SecurityPolicy::shouldHideReferrer(url, argsReferrer.isEmpty() ? m_outgoingReferrer : argsReferrer, m_frame-&gt;document()-&gt;referrerPolicy(), &amp;referrer) || shouldSendReferrer == NeverSendReferrer)
&gt; &gt;          referrer = String();
&gt; 
&gt; Perhaps consider m_outgoingReferrer when initializing argsReferrer, instead of here?
&gt; 
&gt; &gt; Source/WebCore/loader/PingLoader.cpp:97
&gt; &gt; -    if (!SecurityPolicy::shouldHideReferrer(pingURL, frame-&gt;loader()-&gt;outgoingReferrer())) {
&gt; &gt; +    if (!SecurityPolicy::shouldHideReferrer(pingURL, frame-&gt;loader()-&gt;outgoingReferrer(), SecurityPolicy::ReferrerPolicyDefault, 0)) {
&gt; &gt;        request.setHTTPHeaderField(&quot;Ping-From&quot;, frame-&gt;document()-&gt;url());
&gt; &gt; -      if (!sourceOrigin-&gt;isSameSchemeHostPort(pingOrigin.get()))
&gt; &gt; -        request.setHTTPReferrer(frame-&gt;loader()-&gt;outgoingReferrer());
&gt; &gt; +      if (!sourceOrigin-&gt;isSameSchemeHostPort(pingOrigin.get())) {
&gt; &gt; +        String referrer;
&gt; &gt; +        if (!SecurityPolicy::shouldHideReferrer(pingURL, frame-&gt;loader()-&gt;outgoingReferrer(), frame-&gt;document()-&gt;referrerPolicy(), &amp;referrer))
&gt; &gt; +            request.setHTTPReferrer(referrer);
&gt; &gt; +      }
&gt; 
&gt; Can we combine these shouldHideReferrer() calls?

The first shouldHideReferrer call is basically abusing this. It&apos;s not really about referrers but mainly checks whether it&apos;s a transition from encrypted to unencrypted.

The second one checks and applies the referrer policy.

&gt; 
&gt; &gt; Source/WebCore/page/SecurityPolicy.h:52
&gt; &gt; +
&gt; &gt; +    // True if the referrer header should be ommitted according to the policy.
&gt; &gt; +    // Otherwise, if referrerToUse is non-0, the value to send as referrer is
&gt; &gt; +    // returned.
&gt; &gt; +    static bool shouldHideReferrer(const KURL&amp;, const String&amp; referrer, ReferrerPolicy, String* referrerToUse);
&gt; &gt;  
&gt; 
&gt; Could we rename this and just return a String instead of having the String* input parameter?

I tried that, but I didn&apos;t find a nice name, and it looked ugly overall</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505330</commentid>
    <comment_count>9</comment_count>
      <attachid>115702</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-17 16:13:51 -0800</bug_when>
    <thetext>Comment on attachment 115702
Patch

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

Looks like a good thing to support. Please find a better name or signature for shouldHideReferrer - this function is not a &quot;should&quot; type any more, since it generates the header. Perhaps it could just return the string, and empty result would signify that the header should not be sent.

&gt; Source/WebCore/page/SecurityPolicy.h:45
&gt; +        ReferrerPolicyOrigin,

This last value is not clear at all, and needs at least a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505339</commentid>
    <comment_count>10</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-11-17 16:23:35 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 115702 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115702&amp;action=review
&gt; 
&gt; Looks like a good thing to support. Please find a better name or signature for shouldHideReferrer - this function is not a &quot;should&quot; type any more, since it generates the header. Perhaps it could just return the string, and empty result would signify that the header should not be sent.

what about String generateReferrerHeader(policy, url, referrer)?



&gt; 
&gt; &gt; Source/WebCore/page/SecurityPolicy.h:45
&gt; &gt; +        ReferrerPolicyOrigin,
&gt; 
&gt; This last value is not clear at all, and needs at least a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505430</commentid>
    <comment_count>11</comment_count>
      <attachid>115702</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-17 19:34:08 -0800</bug_when>
    <thetext>Comment on attachment 115702
Patch

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

&gt; Source/WebKit/chromium/public/WebFrame.h:146
&gt;  

nit: preserve two blank lines at end of section.

&gt; Source/WebKit/chromium/public/WebSecurityPolicy.h:43
&gt; +    enum WebReferrerPolicy {

nit: Web prefix is reserved for top-level enums.  Plus, enum values should be named starting with the type name.

enum Foo { FooBar, FooBaz };

Given that you are having to #include WebSecurityPolicy.h into WebFrame.h, perhaps WebReferrerPolicy should just
be a top-level enum (in its own header file)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506137</commentid>
    <comment_count>12</comment_count>
      <attachid>115893</attachid>
    <who name="">jochen</who>
    <bug_when>2011-11-18 15:33:53 -0800</bug_when>
    <thetext>Created attachment 115893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506142</commentid>
    <comment_count>13</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-11-18 15:35:27 -0800</bug_when>
    <thetext>Adressed all comments and added two new layout tests for rel=noreferrer and redirects</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506290</commentid>
    <comment_count>14</comment_count>
      <attachid>115893</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-18 19:04:34 -0800</bug_when>
    <thetext>Comment on attachment 115893
Patch

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

LGTM

&gt; Source/WebCore/page/SecurityPolicy.cpp:81
&gt; +        return origin + &quot;/&quot;;

I&apos;d add a comment explaining why we&apos;re appending &quot;/&quot; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506291</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-18 19:05:02 -0800</bug_when>
    <thetext>@fishd: Would you be willing to review the WebKit API changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506373</commentid>
    <comment_count>16</comment_count>
      <attachid>115943</attachid>
    <who name="">jochen</who>
    <bug_when>2011-11-19 02:27:39 -0800</bug_when>
    <thetext>Created attachment 115943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506374</commentid>
    <comment_count>17</comment_count>
    <who name="">jochen</who>
    <bug_when>2011-11-19 02:30:33 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 115893 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115893&amp;action=review
&gt; 
&gt; LGTM
&gt; 
&gt; &gt; Source/WebCore/page/SecurityPolicy.cpp:81
&gt; &gt; +        return origin + &quot;/&quot;;
&gt; 
&gt; I&apos;d add a comment explaining why we&apos;re appending &quot;/&quot; here.

Done

For the record, I&apos;m adding the slash since a security origin is not a canonical URL as it lacks a path, so in order to use it as a referrer header, I&apos;m adding /

I&apos;m also omitting the referrer header if the policy is &quot;origin&quot; and the origin is &quot;null&quot;

And I&apos;ve decided to always drop the referrer if you navigate using a link with rel=noreferrer

I&apos;ve added comments to http://wiki.whatwg.org/wiki/Meta_referrer documenting this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506525</commentid>
    <comment_count>18</comment_count>
      <attachid>115943</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-20 07:25:31 -0800</bug_when>
    <thetext>Comment on attachment 115943
Patch

WebKit API changes LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506814</commentid>
    <comment_count>19</comment_count>
      <attachid>115943</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-21 02:30:13 -0800</bug_when>
    <thetext>Comment on attachment 115943
Patch

Clearing flags on attachment: 115943

Committed r100895: &lt;http://trac.webkit.org/changeset/100895&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506815</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-21 02:30:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571969</commentid>
    <comment_count>21</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-03-06 10:41:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/10994615&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572025</commentid>
    <comment_count>22</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-03-06 11:40:17 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; &lt;rdar://problem/10994615&gt;

AFAIK &lt;rdar://problem/10565234&gt; also refers to this</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115702</attachid>
            <date>2011-11-17 15:46:06 -0800</date>
            <delta_ts>2011-11-18 15:33:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72674-20111118004603.patch</filename>
            <type>text/plain</type>
            <size>44260</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTY2NmY0NTUzMWM2MDE3
MzEzMDE2MzcwMzIyODEwZjMyYjkxNzgyZi4uMTliODNkYmZlODYyYjgxZTQ4NzVjMmYzZmQyMGZh
NzBlMTUzMWQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDExLTExLTE3ICBKb2No
ZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVudCBN
ZXRhIHJlZmVycmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MjY3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGh0dHA6Ly93aWtpLndoYXR3Zy5vcmcvd2lraS9NZXRhX3JlZmVycmVyCisKKyAgICAgICAg
VGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWFsd2F5cy5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1kZWZhdWx0
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5
LWh0dHBzLWFsd2F5cy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
ZmVycmVyLXBvbGljeS1odHRwcy1kZWZhdWx0Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW5ldmVyLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW9yaWdpbi5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1uZXZl
ci5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGlj
eS1vcmlnaW4uaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46IHVwZGF0ZWQKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpwcm9jZXNzUmVmZXJyZXJQb2xpY3kp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OnJlZmVycmVyUG9saWN5KToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayk6CisgICAg
ICAgICogaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
dGFFbGVtZW50Ojpwcm9jZXNzKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRGcmFtZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAg
ICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2Fk
ZXI6OmxvYWRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpzZW5kUGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpyZXBvcnRDb250ZW50U2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb24pOgorICAgICAgICAqIGxvYWRlci9TdWJmcmFtZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6bG9hZFN1YmZyYW1lKToKKyAgICAgICAgKiBs
b2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3Vy
Y2VMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGFnZS9TZWN1cml0eVBvbGljeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWN1cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVycmVyKToKKyAg
ICAgICAgKiBwYWdlL1NlY3VyaXR5UG9saWN5Lmg6CisKIDIwMTEtMTEtMTcgIEVyaWMgQ2FybHNv
biAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgVGV4dFRyYWNrTGlzdCBub3Qg
c29ydGVkIGNvcnJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA1NzhjZjNjNDkz
NzhjMzFhZDU4YTkxZTE3NmNlMmJhODBiYzQyZGI1Li5iNzVmZTlhM2YxMjg3YTg3MzNiYTc4NzQz
MTJiZDk4Zjk3YzMxODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDExLTExLTE3ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEltcGxlbWVudCBNZXRhIHJlZmVycmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjY3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYkZyYW1lLmg6CisgICAgICAgICog
cHVibGljL1dlYlNlY3VyaXR5UG9saWN5Lmg6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6cmVmZXJyZXJQb2xpY3kpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OnNldFJlZmVycmVyRm9yUmVxdWVzdCk6CisgICAg
ICAgICogc3JjL1dlYkZyYW1lSW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJTZWN1cml0eVBvbGlj
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVm
ZXJyZXIpOgorCiAyMDExLTExLTE3ICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIGRvbid0IGNhbGwgZm9udGNvbmZpZyB0d2ljZSBp
biBjb21wbGV4IHRleHQgcGF0aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDUwNjAwNmE4ZmM0ZDQ2YTcx
N2NlYWIzYTA1ZTM2ZWY5YjU4YjA5MDQuLmY3NDFkMjRmMzM3ZTE5ZThlZDY5NjA4MDhkNGU5Y2Uw
ODQwN2FhZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0xMS0xNyAg
Sm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1l
bnQgTWV0YSByZWZlcnJlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzI2NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tOgor
ICAgICAgICAoV2ViS2l0OjpIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbTo6SG9zdGVkTmV0c2Nh
cGVQbHVnaW5TdHJlYW0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJl
YW0ubW06CisgICAgICAgIChXZWJOZXRzY2FwZVBsdWdpblN0cmVhbTo6V2ViTmV0c2NhcGVQbHVn
aW5TdHJlYW0pOgorCiAyMDExLTExLTE2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViS2l0L21hYyBwYXJ0IG9mIDxyZGFyOi8vcHJvYmxlbS8xMDI2MjI0Mj4g
QWRkIEFQSSBmb3IgcGFnaW5hdGVkIGRpc3BsYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5ZjI0ZTNlNmEzOTc2
NzcxOTIyZjExYzNhZDc2NzBhNjZlYjU1OTEzLi4wZjU5MWJkZDEzNzc5NWFkNjQzN2U2NWIwNWFl
YzNlYjlkMDJkY2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTEtMTcgIEpv
Y2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IE1ldGEgcmVmZXJyZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTcyNjc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlBsdWdpblZpZXc6OmxvYWRVUkwpOgorCiAyMDExLTExLTE3ICBDYWlvIE1hcmNlbG8gZGUg
T2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAg
W1F0XSBFeHBvc2Ugc2V0VXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKCkgaW4gUU1MIGV4
cGVyaW1lbnRhbCBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMTkzOThiMWM3MDY4YTY4NjNm
NjY2ZjJkODYzMWY2MGU0MGQ1NjMwMy4uYThlZTQyZTc4YjBmNTUyZmMzMjdjZDkxZDQ2NTBjMmEy
Y2Q2MGQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTM5MCw3ICszOTAsNyBAQCBfX1pON1dl
YkNvcmUxNFNlY3VyaXR5T3JpZ2luMjhjcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyRVJLTjNX
VEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjZjcmVhdGVFUktOM1dURjZT
dHJpbmdFUzRfaQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjZjcmVhdGVFUktOU180S1VS
TEViCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5UG9saWN5MThzZXRMb2NhbExvYWRQb2xpY3lFTlMw
XzE1TG9jYWxMb2FkUG9saWN5RQotX19aTjdXZWJDb3JlMTRTZWN1cml0eVBvbGljeTE4c2hvdWxk
SGlkZVJlZmVycmVyRVJLTlNfNEtVUkxFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUxNFNl
Y3VyaXR5UG9saWN5MThzaG91bGRIaWRlUmVmZXJyZXJFUktOU180S1VSTEVSS04zV1RGNlN0cmlu
Z0VOUzBfMTRSZWZlcnJlclBvbGljeUVQUzVfCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5UG9saWN5
MjdyZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHNFdgogX19aTjdXZWJDb3JlMTRTZWN1cml0eVBv
bGljeTI5YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlFUktOU18xNFNlY3VyaXR5T3JpZ2lu
RVJLTjNXVEY2U3RyaW5nRVM3X2IKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlQb2xpY3kzMnJlbW92
ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5RVJLTlNfMTRTZWN1cml0eU9yaWdpbkVSS04zV1RG
NlN0cmluZ0VTN19iCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBjNWI5ZDhiMDU1YmY2NGUw
N2UzZGQyYTJiMDU2OWE4MWFjNDU4MTA2Li42MzMyYzY2MDAwMGQwMTY3Y2FhOWFiM2Y1ZDJkNTli
ODFjYmZmNGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQyMyw2ICs0MjMsNyBAQCBE
b2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNY
SFRNTCwgYm9vbCBpc0hUTUwpCiAjZW5kaWYKICAgICAsIG1fbG9hZEV2ZW50RGVsYXlDb3VudCgw
KQogICAgICwgbV9sb2FkRXZlbnREZWxheVRpbWVyKHRoaXMsICZEb2N1bWVudDo6bG9hZEV2ZW50
RGVsYXlUaW1lckZpcmVkKQorICAgICwgbV9yZWZlcnJlclBvbGljeShTZWN1cml0eVBvbGljeTo6
UmVmZXJyZXJQb2xpY3lEZWZhdWx0KQogICAgICwgbV9kaXJlY3Rpb25TZXRPbkRvY3VtZW50RWxl
bWVudChmYWxzZSkKICAgICAsIG1fd3JpdGluZ01vZGVTZXRPbkRvY3VtZW50RWxlbWVudChmYWxz
ZSkKICAgICAsIG1fd3JpdGVSZWN1cnNpb25Jc1Rvb0RlZXAoZmFsc2UpCkBAIC0yNzQyLDYgKzI3
NDMsMjAgQEAgdm9pZCBEb2N1bWVudDo6cHJvY2Vzc1ZpZXdwb3J0KGNvbnN0IFN0cmluZyYgZmVh
dHVyZXMpCiAgICAgZnJhbWUtPnBhZ2UoKS0+dXBkYXRlVmlld3BvcnRBcmd1bWVudHMoKTsKIH0K
IAordm9pZCBEb2N1bWVudDo6cHJvY2Vzc1JlZmVycmVyUG9saWN5KGNvbnN0IFN0cmluZyYgcG9s
aWN5KQoreworICAgIEFTU0VSVCghcG9saWN5LmlzTnVsbCgpKTsKKworICAgIG1fcmVmZXJyZXJQ
b2xpY3kgPSBTZWN1cml0eVBvbGljeTo6UmVmZXJyZXJQb2xpY3lEZWZhdWx0OworCisgICAgaWYg
KGVxdWFsSWdub3JpbmdDYXNlKHBvbGljeSwgIm5ldmVyIikpCisgICAgICAgIG1fcmVmZXJyZXJQ
b2xpY3kgPSBTZWN1cml0eVBvbGljeTo6UmVmZXJyZXJQb2xpY3lOZXZlcjsKKyAgICBlbHNlIGlm
IChlcXVhbElnbm9yaW5nQ2FzZShwb2xpY3ksICJhbHdheXMiKSkKKyAgICAgICAgbV9yZWZlcnJl
clBvbGljeSA9IFNlY3VyaXR5UG9saWN5OjpSZWZlcnJlclBvbGljeUFsd2F5czsKKyAgICBlbHNl
IGlmIChlcXVhbElnbm9yaW5nQ2FzZShwb2xpY3ksICJvcmlnaW4iKSkKKyAgICAgICAgbV9yZWZl
cnJlclBvbGljeSA9IFNlY3VyaXR5UG9saWN5OjpSZWZlcnJlclBvbGljeU9yaWdpbjsKK30KKwog
TW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyBEb2N1bWVudDo6cHJlcGFyZU1vdXNlRXZlbnQo
Y29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IExheW91dFBvaW50JiBkb2N1bWVu
dFBvaW50LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQogewogICAgIEFTU0VSVCgh
cmVuZGVyZXIoKSB8fCByZW5kZXJlcigpLT5pc1JlbmRlclZpZXcoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IGU4MjRmMjk1MjYzNzRlM2MxMzI5NGNmOWM4ZDg2NGU0ZWFiZWRiMTAuLmRkMDc2
YjAzMWUyOTA0ODQxNjIzNDRlOGI0MGQ0NzU4MGI2MjExNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRl
ICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgor
I2luY2x1ZGUgIlNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiU3RyaW5nV2l0aERpcmVjdGlv
bi5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVHJlZVNjb3BlLmgiCkBAIC0zMjMs
NiArMzI0LDggQEAgcHVibGljOgogCiAgICAgVmlld3BvcnRBcmd1bWVudHMgdmlld3BvcnRBcmd1
bWVudHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0QXJndW1lbnRzOyB9CiAKKyAgICBTZWN1
cml0eVBvbGljeTo6UmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdCB7IHJldHVy
biBtX3JlZmVycmVyUG9saWN5OyB9CisKICAgICBEb2N1bWVudFR5cGUqIGRvY3R5cGUoKSBjb25z
dCB7IHJldHVybiBtX2RvY1R5cGUuZ2V0KCk7IH0KIAogICAgIERPTUltcGxlbWVudGF0aW9uKiBp
bXBsZW1lbnRhdGlvbigpOwpAQCAtODA1LDYgKzgwOCw3IEBAIHB1YmxpYzoKICAgICAgKi8KICAg
ICB2b2lkIHByb2Nlc3NIdHRwRXF1aXYoY29uc3QgU3RyaW5nJiBlcXVpdiwgY29uc3QgU3RyaW5n
JiBjb250ZW50KTsKICAgICB2b2lkIHByb2Nlc3NWaWV3cG9ydChjb25zdCBTdHJpbmcmIGZlYXR1
cmVzKTsKKyAgICB2b2lkIHByb2Nlc3NSZWZlcnJlclBvbGljeShjb25zdCBTdHJpbmcmIHBvbGlj
eSk7CiAKICAgICAvLyBSZXR1cm5zIHRoZSBvd25pbmcgZWxlbWVudCBpbiB0aGUgcGFyZW50IGRv
Y3VtZW50LgogICAgIC8vIFJldHVybnMgMCBpZiB0aGlzIGlzIHRoZSB0b3AgbGV2ZWwgZG9jdW1l
bnQuCkBAIC0xNDE0LDYgKzE0MTgsOCBAQCBwcml2YXRlOgogCiAgICAgVmlld3BvcnRBcmd1bWVu
dHMgbV92aWV3cG9ydEFyZ3VtZW50czsKIAorICAgIFNlY3VyaXR5UG9saWN5OjpSZWZlcnJlclBv
bGljeSBtX3JlZmVycmVyUG9saWN5OworCiAgICAgYm9vbCBtX2RpcmVjdGlvblNldE9uRG9jdW1l
bnRFbGVtZW50OwogICAgIGJvb2wgbV93cml0aW5nTW9kZVNldE9uRG9jdW1lbnRFbGVtZW50Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IGJjNTJmYzk1
ZTU4MGYxOWFhYThiOWZlMjZhMjE0Y2YyODAyYzM2YzIuLjg3ZWEzNTk5OWFkYWQ1OTJiODc2ZmZj
NDg4NGY0NTVkYjI3MGJlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFu
Y2hvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1l
bnQuY3BwCkBAIC01MDQsOCArNTA0LDggQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxl
Q2xpY2soRXZlbnQqIGV2ZW50KQogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChrdXJs
KTsKIAogICAgICAgICBpZiAoIWhhc1JlbChSZWxhdGlvbk5vUmVmZXJyZXIpKSB7Ci0gICAgICAg
ICAgICBTdHJpbmcgcmVmZXJyZXIgPSBmcmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIo
KTsKLSAgICAgICAgICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgpICYmICFTZWN1cml0eVBvbGlj
eTo6c2hvdWxkSGlkZVJlZmVycmVyKGt1cmwsIHJlZmVycmVyKSkKKyAgICAgICAgICAgIFN0cmlu
ZyByZWZlcnJlcjsKKyAgICAgICAgICAgIGlmICghU2VjdXJpdHlQb2xpY3k6OnNob3VsZEhpZGVS
ZWZlcnJlcihrdXJsLCBmcmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSwgZG9jdW1l
bnQoKS0+cmVmZXJyZXJQb2xpY3koKSwgJnJlZmVycmVyKSkKICAgICAgICAgICAgICAgICByZXF1
ZXN0LnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7CiAgICAgICAgICAgICBmcmFtZS0+bG9hZGVy
KCktPmFkZEV4dHJhRmllbGRzVG9NYWluUmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5jcHAKaW5kZXggMGZhOGM5Mjk1
Njg2YzEyNDI5Njg2MTkwZjlhZDA5Y2E4Yjk5YjYyNy4uMjVmMTJlZGZhODRmYjk5YTYyZDU2NTE2
ZGViMThjOTdmOTg3ZmQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0
YUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmNw
cApAQCAtNzIsNiArNzIsOSBAQCB2b2lkIEhUTUxNZXRhRWxlbWVudDo6cHJvY2VzcygpCiAgICAg
aWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUoKSwgInZpZXdwb3J0IikpCiAgICAgICAgIGRvY3Vt
ZW50KCktPnByb2Nlc3NWaWV3cG9ydChjb250ZW50VmFsdWUpOwogCisgICAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKG5hbWUoKSwgInJlZmVycmVyIikpCisgICAgICAgIGRvY3VtZW50KCktPnByb2Nl
c3NSZWZlcnJlclBvbGljeShjb250ZW50VmFsdWUpOworCiAgICAgLy8gR2V0IHRoZSBkb2N1bWVu
dCB0byBwcm9jZXNzIHRoZSB0YWcsIGJ1dCBvbmx5IGlmIHdlJ3JlIGFjdHVhbGx5IHBhcnQgb2Yg
RE9NIHRyZWUgKGNoYW5naW5nIGEgbWV0YSB0YWcgd2hpbGUKICAgICAvLyBpdCdzIG5vdCBpbiB0
aGUgdHJlZSBzaG91bGRuJ3QgaGF2ZSBhbnkgZWZmZWN0IG9uIHRoZSBkb2N1bWVudCkKICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGh0dHBFcXVpdlZhbHVlID0gZmFzdEdldEF0dHJpYnV0ZShodHRw
X2VxdWl2QXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA4NGVk
NGQyNGRkOGM4NDA0NmJkYjQxMGI3MWQ2ZGEzZjQ2M2EzZWE2Li45MWEyYjM3NTgwMmY1MDk3MDBi
ZDNmZDBkNDE2ODZhNzAxNjEzNGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKQEAgLTExNDAsMTIgKzExNDAsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRnJhbWVSZXF1
ZXN0KGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgbG9ja0hpcwogCiAgICAg
U3RyaW5nIHJlZmVycmVyOwogICAgIFN0cmluZyBhcmdzUmVmZXJyZXIgPSByZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpLmh0dHBSZWZlcnJlcigpOwotICAgIGlmICghYXJnc1JlZmVycmVyLmlzRW1w
dHkoKSkKLSAgICAgICAgcmVmZXJyZXIgPSBhcmdzUmVmZXJyZXI7Ci0gICAgZWxzZQotICAgICAg
ICByZWZlcnJlciA9IG1fb3V0Z29pbmdSZWZlcnJlcjsKIAotICAgIGlmIChTZWN1cml0eVBvbGlj
eTo6c2hvdWxkSGlkZVJlZmVycmVyKHVybCwgcmVmZXJyZXIpIHx8IHNob3VsZFNlbmRSZWZlcnJl
ciA9PSBOZXZlclNlbmRSZWZlcnJlcikKKyAgICBpZiAoU2VjdXJpdHlQb2xpY3k6OnNob3VsZEhp
ZGVSZWZlcnJlcih1cmwsIGFyZ3NSZWZlcnJlci5pc0VtcHR5KCkgPyBtX291dGdvaW5nUmVmZXJy
ZXIgOiBhcmdzUmVmZXJyZXIsIG1fZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCks
ICZyZWZlcnJlcikgfHwgc2hvdWxkU2VuZFJlZmVycmVyID09IE5ldmVyU2VuZFJlZmVycmVyKQog
ICAgICAgICByZWZlcnJlciA9IFN0cmluZygpOwogICAgIAogICAgIEZyYW1lTG9hZFR5cGUgbG9h
ZFR5cGU7CkBAIC0yNTk0LDggKzI1OTAsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJl
cXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBpblJlcXVlc3QsIGNvbnN0IFN0cmluZwogCiB1
bnNpZ25lZCBsb25nIEZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3JlZGVu
dGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
VmVjdG9yPGNoYXI+JiBkYXRhKQogewotICAgIFN0cmluZyByZWZlcnJlciA9IG1fb3V0Z29pbmdS
ZWZlcnJlcjsKLSAgICBpZiAoU2VjdXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcihyZXF1
ZXN0LnVybCgpLCByZWZlcnJlcikpCisgICAgQVNTRVJUKG1fZnJhbWUtPmRvY3VtZW50KCkpOwor
ICAgIFN0cmluZyByZWZlcnJlcjsKKyAgICBpZiAoU2VjdXJpdHlQb2xpY3k6OnNob3VsZEhpZGVS
ZWZlcnJlcihyZXF1ZXN0LnVybCgpLCBtX291dGdvaW5nUmVmZXJyZXIsIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPnJlZmVycmVyUG9saWN5KCksICZyZWZlcnJlcikpCiAgICAgICAgIHJlZmVycmVyID0g
U3RyaW5nKCk7CiAgICAgCiAgICAgUmVzb3VyY2VSZXF1ZXN0IGluaXRpYWxSZXF1ZXN0ID0gcmVx
dWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAppbmRleCAxYWY5MmUwZDE2NTRj
OTI1YWQ4MTVkNDI2MmQzMTA3NjE4NTc5ZmFhLi4yM2RkYTQ5ZDNhOGYxYjlhMWYxMmE4NDc2Y2Vh
MGJlZGVjODYyNjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCkBAIC02MCw4
ICs2MCw5IEBAIHZvaWQgUGluZ0xvYWRlcjo6bG9hZEltYWdlKEZyYW1lKiBmcmFtZSwgY29uc3Qg
S1VSTCYgdXJsKQogICAgIHJlcXVlc3Quc2V0VGFyZ2V0VHlwZShSZXNvdXJjZVJlcXVlc3Q6OlRh
cmdldElzSW1hZ2UpOwogI2VuZGlmCiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoIkNh
Y2hlLUNvbnRyb2wiLCAibWF4LWFnZT0wIik7Ci0gICAgaWYgKCFTZWN1cml0eVBvbGljeTo6c2hv
dWxkSGlkZVJlZmVycmVyKHJlcXVlc3QudXJsKCksIGZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdS
ZWZlcnJlcigpKSkKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIoZnJhbWUtPmxvYWRl
cigpLT5vdXRnb2luZ1JlZmVycmVyKCkpOworICAgIFN0cmluZyByZWZlcnJlcjsKKyAgICBpZiAo
IVNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIocmVxdWVzdC51cmwoKSwgZnJhbWUt
PmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCksIGZyYW1lLT5kb2N1bWVudCgpLT5yZWZlcnJl
clBvbGljeSgpLCAmcmVmZXJyZXIpKQorICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihy
ZWZlcnJlcik7CiAgICAgZnJhbWUtPmxvYWRlcigpLT5hZGRFeHRyYUZpZWxkc1RvU3VicmVzb3Vy
Y2VSZXF1ZXN0KHJlcXVlc3QpOwogICAgIE93blB0cjxQaW5nTG9hZGVyPiBwaW5nTG9hZGVyID0g
YWRvcHRQdHIobmV3IFBpbmdMb2FkZXIoZnJhbWUsIHJlcXVlc3QpKTsKIApAQCAtODcsMTAgKzg4
LDEzIEBAIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFBpbmcoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJM
JiBwaW5nVVJMLCBjb25zdCBLVVJMJiBkZXN0aW5hCiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiBwaW5nT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShwaW5nVVJMKTsKICAgICBGcmFt
ZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKHJlcXVlc3QsIHNvdXJjZU9yaWdpbi0+dG9T
dHJpbmcoKSk7CiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoIlBpbmctVG8iLCBkZXN0
aW5hdGlvblVSTCk7Ci0gICAgaWYgKCFTZWN1cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVycmVy
KHBpbmdVUkwsIGZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpKSkgeworICAgIGlm
ICghU2VjdXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcihwaW5nVVJMLCBmcmFtZS0+bG9h
ZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSwgU2VjdXJpdHlQb2xpY3k6OlJlZmVycmVyUG9saWN5
RGVmYXVsdCwgMCkpIHsKICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKCJQaW5nLUZy
b20iLCBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkpOwotICAgICAgaWYgKCFzb3VyY2VPcmlnaW4t
PmlzU2FtZVNjaGVtZUhvc3RQb3J0KHBpbmdPcmlnaW4uZ2V0KCkpKQotICAgICAgICByZXF1ZXN0
LnNldEhUVFBSZWZlcnJlcihmcmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSk7Cisg
ICAgICBpZiAoIXNvdXJjZU9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQocGluZ09yaWdpbi5n
ZXQoKSkpIHsKKyAgICAgICAgU3RyaW5nIHJlZmVycmVyOworICAgICAgICBpZiAoIVNlY3VyaXR5
UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIocGluZ1VSTCwgZnJhbWUtPmxvYWRlcigpLT5vdXRn
b2luZ1JlZmVycmVyKCksIGZyYW1lLT5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpLCAmcmVm
ZXJyZXIpKQorICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIocmVmZXJyZXIpOwor
ICAgICAgfQogICAgIH0KICAgICBPd25QdHI8UGluZ0xvYWRlcj4gcGluZ0xvYWRlciA9IGFkb3B0
UHRyKG5ldyBQaW5nTG9hZGVyKGZyYW1lLCByZXF1ZXN0KSk7CiAKQEAgLTExMCw4ICsxMTQsOSBA
QCB2b2lkIFBpbmdMb2FkZXI6OnJlcG9ydENvbnRlbnRTZWN1cml0eVBvbGljeVZpb2xhdGlvbihG
cmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmCiAgICAgcmVxdWVzdC5zZXRIVFRQQm9keShyZXBvcnQp
OwogICAgIGZyYW1lLT5sb2FkZXIoKS0+YWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVz
dChyZXF1ZXN0KTsKIAotICAgIGlmICghU2VjdXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJl
cihyZXBvcnRVUkwsIGZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpKSkKLSAgICAg
ICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIoZnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVy
cmVyKCkpOworICAgIFN0cmluZyByZWZlcnJlcjsKKyAgICBpZiAoIVNlY3VyaXR5UG9saWN5Ojpz
aG91bGRIaWRlUmVmZXJyZXIocmVwb3J0VVJMLCBmcmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVm
ZXJyZXIoKSwgZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksICZyZWZlcnJlcikp
CisgICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHJlZmVycmVyKTsKICAgICBPd25QdHI8
UGluZ0xvYWRlcj4gcGluZ0xvYWRlciA9IGFkb3B0UHRyKG5ldyBQaW5nTG9hZGVyKGZyYW1lLCBy
ZXF1ZXN0KSk7CiAKICAgICAvLyBMZWFrIHRoZSBwaW5nIGxvYWRlciwgc2luY2UgaXQgd2lsbCBr
aWxsIGl0c2VsZiBhcyBzb29uIGFzIGl0IHJlY2VpdmVzIGEgcmVzcG9uc2UuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCA0N2MzZTEwZjMxOTEyN2I4OTUyMTE1
MjA1ZDEyOWMxN2I4MDFmZGVkLi5kOGRkOTBmMjE0YjE2MzE1MmY0MTNmMWVkMDE5ZjEzZWI1MjA3
NDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTI2Miw4
ICsyNjIsMTAgQEAgRnJhbWUqIFN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUoSFRNTEZyYW1l
T3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsIGNvbnN0IEsKICAgICBpZiAoIW93bmVyRWxlbWVu
dC0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93Q2hpbGRGcmFtZUZy
b21Tb3VyY2UodXJsKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBib29sIGhpZGVSZWZlcnJl
ciA9IFNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIodXJsLCByZWZlcnJlcik7Ci0g
ICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+Y3Jl
YXRlRnJhbWUodXJsLCBuYW1lLCBvd25lckVsZW1lbnQsIGhpZGVSZWZlcnJlciA/IFN0cmluZygp
IDogcmVmZXJyZXIsIGFsbG93c1Njcm9sbGluZywgbWFyZ2luV2lkdGgsIG1hcmdpbkhlaWdodCk7
CisgICAgU3RyaW5nIHJlZmVycmVyVG9Vc2U7CisgICAgaWYgKFNlY3VyaXR5UG9saWN5OjpzaG91
bGRIaWRlUmVmZXJyZXIodXJsLCByZWZlcnJlciwgb3duZXJFbGVtZW50LT5kb2N1bWVudCgpLT5y
ZWZlcnJlclBvbGljeSgpLCAmcmVmZXJyZXJUb1VzZSkpCisgICAgICAgIHJlZmVycmVyVG9Vc2Ug
PSBTdHJpbmcoKTsKKyAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gbV9mcmFtZS0+bG9hZGVyKCkt
PmNsaWVudCgpLT5jcmVhdGVGcmFtZSh1cmwsIG5hbWUsIG93bmVyRWxlbWVudCwgcmVmZXJyZXJU
b1VzZSwgYWxsb3dzU2Nyb2xsaW5nLCBtYXJnaW5XaWR0aCwgbWFyZ2luSGVpZ2h0KTsKIAogICAg
IGlmICghZnJhbWUpICB7CiAgICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jaGVja0NhbGxJbXBs
aWNpdENsb3NlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3Vy
Y2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNw
cAppbmRleCBkNWY2NjhiMTdmZDk5MjQxODM5NTM3NjYwNGMyN2E3OWZjY2JmNjE2Li4wZjc3MTM3
Mzk0ZjdlYWVlMGVhZDFhODEyNTVjYzY3NzU3OGFiOWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKQEAgLTkwLDEwICs5MCwxMSBAQCBQYXNzUmVmUHRy
PFN1YnJlc291cmNlTG9hZGVyPiBTdWJyZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKEZyYW1lKiBmcmFt
ZSwgQ2FjaGVkUmVzbwogICAgICAgICBvdXRnb2luZ09yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpj
cmVhdGVGcm9tU3RyaW5nKG91dGdvaW5nUmVmZXJyZXIpLT50b1N0cmluZygpOwogICAgIH0KIAot
ICAgIGlmIChTZWN1cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVycmVyKHJlcXVlc3QudXJsKCks
IG91dGdvaW5nUmVmZXJyZXIpKQorICAgIFN0cmluZyByZWZlcnJlcjsKKyAgICBpZiAoU2VjdXJp
dHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcihyZXF1ZXN0LnVybCgpLCBvdXRnb2luZ1JlZmVy
cmVyLCBmcmFtZS0+ZG9jdW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKSwgJnJlZmVycmVyKSkKICAg
ICAgICAgbmV3UmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogICAgIGVsc2UgaWYgKCFyZXF1
ZXN0Lmh0dHBSZWZlcnJlcigpKQotICAgICAgICBuZXdSZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihv
dXRnb2luZ1JlZmVycmVyKTsKKyAgICAgICAgbmV3UmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIocmVm
ZXJyZXIpOwogICAgIEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2luSWZOZWVkZWQobmV3UmVxdWVz
dCwgb3V0Z29pbmdPcmlnaW4pOwogCiAgICAgZnJhbWVMb2FkZXItPmFkZEV4dHJhRmllbGRzVG9T
dWJyZXNvdXJjZVJlcXVlc3QobmV3UmVxdWVzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlQ
b2xpY3kuY3BwCmluZGV4IDMxY2FjMDY1ZmVlZmU2MDgxMjIwMTcyNGUzZWM3MWVkZjBkNjFkOTAu
Ljg1ZmVjOGMwYjM0ZWU4MWEyNDZkYjlkMjdjNTEzZjQ5NmZiODI5NjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2VjdXJpdHlQb2xpY3kuY3BwCkBAIC00OCwxOSArNDgsNDUgQEAgc3RhdGljIE9yaWdp
bkFjY2Vzc01hcCYgb3JpZ2luQWNjZXNzTWFwKCkKICAgICByZXR1cm4gb3JpZ2luQWNjZXNzTWFw
OwogfQogCi1ib29sIFNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIoY29uc3QgS1VS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQorYm9vbCBTZWN1cml0eVBvbGljeTo6c2hv
dWxkSGlkZVJlZmVycmVyKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwg
UmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3ksIFN0cmluZyogcmVmZXJyZXJUb1VzZSkKIHsK
KyAgICBpZiAocmVmZXJyZXIuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
IHN3aXRjaCAocmVmZXJyZXJQb2xpY3kpIHsKKyAgICBjYXNlIFJlZmVycmVyUG9saWN5TmV2ZXI6
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgUmVmZXJyZXJQb2xpY3lBbHdheXM6Cisg
ICAgICAgIGlmIChyZWZlcnJlclRvVXNlKQorICAgICAgICAgICAgKnJlZmVycmVyVG9Vc2UgPSBy
ZWZlcnJlcjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgUmVmZXJyZXJQb2xpY3lP
cmlnaW46CisgICAgICAgIGlmIChyZWZlcnJlclRvVXNlKQorICAgICAgICAgICAgKnJlZmVycmVy
VG9Vc2UgPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhyZWZlcnJlciktPnRvU3Ry
aW5nKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIFJlZmVycmVyUG9saWN5RGVm
YXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgfQorCiAgICAgYm9vbCByZWZlcnJlcklzU2VjdXJlVVJMID0gcHJvdG9j
b2xJcyhyZWZlcnJlciwgImh0dHBzIik7CiAgICAgYm9vbCByZWZlcnJlcklzV2ViVVJMID0gcmVm
ZXJyZXJJc1NlY3VyZVVSTCB8fCBwcm90b2NvbElzKHJlZmVycmVyLCAiaHR0cCIpOwogCiAgICAg
aWYgKCFyZWZlcnJlcklzV2ViVVJMKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmICgh
cmVmZXJyZXJJc1NlY3VyZVVSTCkKKyAgICBpZiAoIXJlZmVycmVySXNTZWN1cmVVUkwpIHsKKyAg
ICAgICAgaWYgKHJlZmVycmVyVG9Vc2UpCisgICAgICAgICAgICAqcmVmZXJyZXJUb1VzZSA9IHJl
ZmVycmVyOwogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgYm9vbCBVUkxJc1Nl
Y3VyZVVSTCA9IHVybC5wcm90b2NvbElzKCJodHRwcyIpOwogCisgICAgaWYgKFVSTElzU2VjdXJl
VVJMICYmIHJlZmVycmVyVG9Vc2UpCisgICAgICAgICpyZWZlcnJlclRvVXNlID0gcmVmZXJyZXI7
CisKICAgICByZXR1cm4gIVVSTElzU2VjdXJlVVJMOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3Vy
aXR5UG9saWN5LmgKaW5kZXggNzA0NDFmM2Q0ZWVhZDM3YTY4ODIyZGM3ZDg2OGE2MzkyMzU3MjRl
NS4uN2RiOTJiMWNkMmMyNzI5OTc1NmVmZDVkODY4NmRhYjA3OGM3Y2FlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2VjdXJpdHlQb2xpY3kuaApAQCAtMzgsNyArMzgsMTcgQEAgY2xhc3MgU2VjdXJpdHlP
cmlnaW47CiAKIGNsYXNzIFNlY3VyaXR5UG9saWN5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgYm9v
bCBzaG91bGRIaWRlUmVmZXJyZXIoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIp
OworICAgIGVudW0gUmVmZXJyZXJQb2xpY3kgeworICAgICAgICBSZWZlcnJlclBvbGljeUFsd2F5
cywKKyAgICAgICAgUmVmZXJyZXJQb2xpY3lEZWZhdWx0LAorICAgICAgICBSZWZlcnJlclBvbGlj
eU5ldmVyLAorICAgICAgICBSZWZlcnJlclBvbGljeU9yaWdpbiwKKyAgICB9OworCisgICAgLy8g
VHJ1ZSBpZiB0aGUgcmVmZXJyZXIgaGVhZGVyIHNob3VsZCBiZSBvbW1pdHRlZCBhY2NvcmRpbmcg
dG8gdGhlIHBvbGljeS4KKyAgICAvLyBPdGhlcndpc2UsIGlmIHJlZmVycmVyVG9Vc2UgaXMgbm9u
LTAsIHRoZSB2YWx1ZSB0byBzZW5kIGFzIHJlZmVycmVyIGlzCisgICAgLy8gcmV0dXJuZWQuCisg
ICAgc3RhdGljIGJvb2wgc2hvdWxkSGlkZVJlZmVycmVyKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJp
bmcmIHJlZmVycmVyLCBSZWZlcnJlclBvbGljeSwgU3RyaW5nKiByZWZlcnJlclRvVXNlKTsKIAog
ICAgIGVudW0gTG9jYWxMb2FkUG9saWN5IHsKICAgICAgICAgQWxsb3dMb2NhbExvYWRzRm9yQWxs
LCAvLyBObyByZXN0cmljdGlvbiBvbiBsb2NhbCBsb2Fkcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJGcmFtZS5oCmluZGV4IDczZDQ0MjNiYjYxODYzNGY2YjRjOTUyMjkwMzJhNzQ5
OWMwNzM1MzYuLjk4MTRiNjY0MzY5NDVhMWMyOWY5NDgyODEyYTQ4Nzg5MDRmZjA0MTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaApAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIldlYkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJXZWJJY29uVVJMLmgiCiAjaW5j
bHVkZSAiV2ViTm9kZS5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVk
ZSAiV2ViVVJMLmgiCiAjaW5jbHVkZSAiV2ViVVJMTG9hZGVyT3B0aW9ucy5oIgogCkBAIC0xNDAs
NiArMTQxLDggQEAgcHVibGljOgogICAgIC8vIFVSTHMKICAgICB2aXJ0dWFsIFdlYlZlY3RvcjxX
ZWJJY29uVVJMPiBpY29uVVJMcyhpbnQgaWNvblR5cGVzKSBjb25zdCA9IDA7CiAKKyAgICAvLyBU
aGUgcmVmZXJyZXIgcG9saWN5IG9mIHRoZSBkb2N1bWVudCBhc3NvY2lhdGVkIHdpdGggdGhpcyBm
cmFtZS4KKyAgICB2aXJ0dWFsIFdlYlNlY3VyaXR5UG9saWN5OjpXZWJSZWZlcnJlclBvbGljeSBy
ZWZlcnJlclBvbGljeSgpIGNvbnN0ID0gMDsKIAogICAgIC8vIEdlb21ldHJ5IC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlY3VyaXR5UG9saWN5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1cml0eVBvbGljeS5oCmluZGV4
IDczNWI2ZTAzMjhkZjAxYmU5YzNjNzQ4ZWRhOWQ5NDUxZmNkN2JiZmIuLjJmYzVkMGE0ZDQwNDAw
ODJmNzBiZGQ5Mjg5N2NjOWRjMGQwOGMwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlNlY3VyaXR5UG9saWN5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaApAQCAtNDAsNiArNDAsMTMgQEAgY2xhc3Mg
V2ViVVJMOwogCiBjbGFzcyBXZWJTZWN1cml0eVBvbGljeSB7CiBwdWJsaWM6CisgICAgZW51bSBX
ZWJSZWZlcnJlclBvbGljeSB7CisgICAgICAgIFJlZmVycmVyUG9saWN5QWx3YXlzLAorICAgICAg
ICBSZWZlcnJlclBvbGljeURlZmF1bHQsCisgICAgICAgIFJlZmVycmVyUG9saWN5TmV2ZXIsCisg
ICAgICAgIFJlZmVycmVyUG9saWN5T3JpZ2luLAorICAgIH07CisKICAgICAvLyBSZWdpc3RlcnMg
YSBVUkwgc2NoZW1lIHRvIGJlIHRyZWF0ZWQgYXMgYSBsb2NhbCBzY2hlbWUgKGkuZS4sIHdpdGgg
dGhlCiAgICAgLy8gc2FtZSBzZWN1cml0eSBydWxlcyBhcyB0aG9zZSBhcHBsaWVkIHRvICJmaWxl
IiBVUkxzKS4gVGhpcyBtZWFucyB0aGF0CiAgICAgLy8gbm9ybWFsIHBhZ2VzIGNhbm5vdCBsaW5r
IHRvIG9yIGFjY2VzcyBVUkxzIG9mIHRoaXMgc2NoZW1lLgpAQCAtNzEsNyArNzgsOCBAQCBwdWJs
aWM6CiAKICAgICAvLyBSZXR1cm5zIHdoZXRoZXIgdGhlIHVybCBzaG91bGQgYmUgYWxsb3dlZCB0
byBzZWUgdGhlIHJlZmVycmVyCiAgICAgLy8gYmFzZWQgb24gdGhlaXIgcmVzcGVjdGl2ZSBwcm90
b2NvbHMuCi0gICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBzaG91bGRIaWRlUmVmZXJyZXIo
Y29uc3QgV2ViVVJMJiB1cmwsIGNvbnN0IFdlYlN0cmluZyYgcmVmZXJyZXIpOworICAgIC8vIEZJ
WE1FOiByZW1vdmUgdGhlIGRlZmF1bHQgYXJndW1lbnRzIG9uY2UgdGhlIGNocm9taXVtIHNpZGUg
aGFzIGxhbmRlZC4KKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBib29sIHNob3VsZEhpZGVSZWZl
cnJlcihjb25zdCBXZWJVUkwmLCBjb25zdCBXZWJTdHJpbmcmIHJlZmVycmVyLCBXZWJSZWZlcnJl
clBvbGljeSA9IFJlZmVycmVyUG9saWN5RGVmYXVsdCwgV2ViU3RyaW5nKiByZWZlcnJlclRvVXNl
ID0gMCk7CiAKICAgICAvLyBSZWdpc3RlcnMgYW4gVVJMIHNjaGVtZSB0byBub3QgYWxsb3cgbWFu
aXB1bGF0aW9uIG9mIHRoZSBsb2FkZWQgcGFnZQogICAgIC8vIGJ5IGJvb2ttYXJrbGV0cyBvciBq
YXZhc2NyaXB0OiBVUkxzIHR5cGVkIGluIHRoZSBvbW5pYm94LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggNjI3YjNmM2MxN2U1YmUyZTcxOWFlNTY5
ODM4MDEyZDk3OTAzN2EzYS4uZWI5YmRmOTNjM2Y3YjVhNDFkOWU2OWE1ZDA2NWM2ZDQ4ZDMwOTUw
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC01
OTEsNiArNTkxLDEzIEBAIFdlYlZlY3RvcjxXZWJJY29uVVJMPiBXZWJGcmFtZUltcGw6Omljb25V
UkxzKGludCBpY29uVHlwZXMpIGNvbnN0CiAgICAgcmV0dXJuIFdlYlZlY3RvcjxXZWJJY29uVVJM
PigpOwogfQogCitXZWJTZWN1cml0eVBvbGljeTo6V2ViUmVmZXJyZXJQb2xpY3kgV2ViRnJhbWVJ
bXBsOjpyZWZlcnJlclBvbGljeSgpIGNvbnN0Cit7CisgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50
KCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJTZWN1cml0eVBvbGljeTo6V2ViUmVm
ZXJyZXJQb2xpY3k+KG1fZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCkpOworICAg
IHJldHVybiBXZWJTZWN1cml0eVBvbGljeTo6UmVmZXJyZXJQb2xpY3lEZWZhdWx0OworfQorCiBX
ZWJTaXplIFdlYkZyYW1lSW1wbDo6c2Nyb2xsT2Zmc2V0KCkgY29uc3QKIHsKICAgICBGcmFtZVZp
ZXcqIHZpZXcgPSBmcmFtZVZpZXcoKTsKQEAgLTEwNzMsOSArMTA4MCwxMCBAQCB2b2lkIFdlYkZy
YW1lSW1wbDo6c2V0UmVmZXJyZXJGb3JSZXF1ZXN0KFdlYlVSTFJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFdlYlVSTCYgcgogICAgICAgICByZWZlcnJlciA9IG1fZnJhbWUtPmxvYWRlcigpLT5vdXRn
b2luZ1JlZmVycmVyKCk7CiAgICAgZWxzZQogICAgICAgICByZWZlcnJlciA9IHJlZmVycmVyVVJM
LnNwZWMoKS51dGYxNigpOwotICAgIGlmIChTZWN1cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVy
cmVyKHJlcXVlc3QudXJsKCksIHJlZmVycmVyKSkKKyAgICBTdHJpbmcgcmVmZXJyZXJUb1VzZTsK
KyAgICBpZiAoU2VjdXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcihyZXF1ZXN0LnVybCgp
LCByZWZlcnJlciwgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKSwgJnJlZmVy
cmVyVG9Vc2UpKQogICAgICAgICByZXR1cm47Ci0gICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmll
bGQoV2ViU3RyaW5nOjpmcm9tVVRGOCgiUmVmZXJlciIpLCByZWZlcnJlcik7CisgICAgcmVxdWVz
dC5zZXRIVFRQSGVhZGVyRmllbGQoV2ViU3RyaW5nOjpmcm9tVVRGOCgiUmVmZXJlciIpLCByZWZl
cnJlclRvVXNlKTsKIH0KIAogdm9pZCBXZWJGcmFtZUltcGw6OmRpc3BhdGNoV2lsbFNlbmRSZXF1
ZXN0KFdlYlVSTFJlcXVlc3QmIHJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5oCmluZGV4IDE5MTdhNGE4ZTNjMjA3YWRkZDg2ZThiMzVmOGVhYzNiY2QwNzFh
NjAuLjk1OGY2NWMzYWNlZmI2ZmE1OWFiMTBkMWI5YzZlZGVmYTBkNDYzMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCkBAIC03MCw2ICs3MCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmFtZShjb25zdCBXZWJTdHJpbmcmKTsKICAgICB2aXJ0
dWFsIGxvbmcgbG9uZyBpZGVudGlmaWVyKCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJWZWN0b3I8
V2ViSWNvblVSTD4gaWNvblVSTHMoaW50IGljb25UeXBlcykgY29uc3Q7CisgICAgdmlydHVhbCBX
ZWJTZWN1cml0eVBvbGljeTo6V2ViUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKSBjb25z
dDsKICAgICB2aXJ0dWFsIFdlYlNpemUgc2Nyb2xsT2Zmc2V0KCkgY29uc3Q7CiAgICAgdmlydHVh
bCB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBXZWJTaXplJik7CiAgICAgdmlydHVhbCBXZWJT
aXplIG1pbmltdW1TY3JvbGxPZmZzZXQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNlY3VyaXR5UG9saWN5LmNwcAppbmRleCA4NDhlYjNhOTBkZmMwYzcwZTE2
MDM5NjE0YWVlNGJhOGQzZWFmMDY3Li4xYmYxYWY2NzBhYTk4ZGNlMjUwMmYzNGI1ODdhNDllMmFl
M2QxNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0
eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VjdXJpdHlQ
b2xpY3kuY3BwCkBAIC05MCw5ICs5MCwxMyBAQCB2b2lkIFdlYlNlY3VyaXR5UG9saWN5OjpyZXNl
dE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKQogICAgIFNlY3VyaXR5UG9saWN5OjpyZXNldE9yaWdp
bkFjY2Vzc1doaXRlbGlzdHMoKTsKIH0KIAotYm9vbCBXZWJTZWN1cml0eVBvbGljeTo6c2hvdWxk
SGlkZVJlZmVycmVyKGNvbnN0IFdlYlVSTCYgdXJsLCBjb25zdCBXZWJTdHJpbmcmIHJlZmVycmVy
KQorYm9vbCBXZWJTZWN1cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVycmVyKGNvbnN0IFdlYlVS
TCYgdXJsLCBjb25zdCBXZWJTdHJpbmcmIHJlZmVycmVyLCBXZWJSZWZlcnJlclBvbGljeSByZWZl
cnJlclBvbGljeSwgV2ViU3RyaW5nKiByZWZlcnJlclRvVXNlKQogewotICAgIHJldHVybiBTZWN1
cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVycmVyKHVybCwgcmVmZXJyZXIpOworICAgIFN0cmlu
ZyB0bXBSZWZlcnJlcjsKKyAgICBib29sIGhpZGVSZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5Ojpz
aG91bGRIaWRlUmVmZXJyZXIodXJsLCByZWZlcnJlciwgc3RhdGljX2Nhc3Q8U2VjdXJpdHlQb2xp
Y3k6OlJlZmVycmVyUG9saWN5PihyZWZlcnJlclBvbGljeSksICZ0bXBSZWZlcnJlcik7CisgICAg
aWYgKCFoaWRlUmVmZXJyZXIgJiYgcmVmZXJyZXJUb1VzZSkKKyAgICAgICAgKnJlZmVycmVyVG9V
c2UgPSB0bXBSZWZlcnJlcjsKKyAgICByZXR1cm4gaGlkZVJlZmVycmVyOwogfQogCiB2b2lkIFdl
YlNlY3VyaXR5UG9saWN5OjpyZWdpc3RlclVSTFNjaGVtZUFzTm90QWxsb3dpbmdKYXZhc2NyaXB0
VVJMcyhjb25zdCBXZWJTdHJpbmcmIHNjaGVtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tIGIvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0K
aW5kZXggN2UyYjAzZTBhZDY4NGNhZDZjZTUwMGVlYzc1NzNkNTcwODUzN2ZmMi4uMjRiZmU4YWEw
N2YzNmYyYmMxODRhYmNkZWI3OWRiNDE0MjZkNTdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJl
YW0ubW0KQEAgLTU5LDggKzU5LDExIEBAIEhvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtOjpIb3N0
ZWROZXRzY2FwZVBsdWdpblN0cmVhbShOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJvCiAgICAgLCBt
X3JlcXVlc3RVUkwoW3JlcXVlc3QgVVJMXSkKICAgICAsIG1fZnJhbWVMb2FkZXIoMCkKIHsKLSAg
ICBpZiAoU2VjdXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcihbcmVxdWVzdCBVUkxdLCBj
b3JlKFtpbnN0YW5jZS0+cGx1Z2luVmlldygpIHdlYkZyYW1lXSktPmxvYWRlcigpLT5vdXRnb2lu
Z1JlZmVycmVyKCkpKQorICAgIFN0cmluZyByZWZlcnJlcjsKKyAgICBpZiAoU2VjdXJpdHlQb2xp
Y3k6OnNob3VsZEhpZGVSZWZlcnJlcihbcmVxdWVzdCBVUkxdLCBjb3JlKFtpbnN0YW5jZS0+cGx1
Z2luVmlldygpIHdlYkZyYW1lXSktPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCksIGNvcmUo
W2luc3RhbmNlLT5wbHVnaW5WaWV3KCkgd2ViRnJhbWVdKS0+ZG9jdW1lbnQoKS0+cmVmZXJyZXJQ
b2xpY3koKSwgJnJlZmVycmVyKSkKICAgICAgICAgW21fcmVxdWVzdC5nZXQoKSBfd2ViX3NldEhU
VFBSZWZlcnJlcjpuaWxdOworICAgIGVsc2UKKyAgICAgICAgW21fcmVxdWVzdC5nZXQoKSBfd2Vi
X3NldEhUVFBSZWZlcnJlcjpyZWZlcnJlcl07CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgaG9zdGVk
TmV0c2NhcGVQbHVnaW5TdHJlYW1Db3VudGVyLmluY3JlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KaW5kZXggOGY2
Zjk0MDAyOGUzMTU4Y2ZlMGZkZTc1NTYyM2Y2MTM4ZGE1MzBjMy4uNzVmYzEyYTc0Yzk2MjVhZThi
OTc4MjEwZDU0NWQwNzk0ZmYxNDljYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCkBAIC0xNzIsOCArMTcyLDExIEBAIFdl
Yk5ldHNjYXBlUGx1Z2luU3RyZWFtOjpXZWJOZXRzY2FwZVBsdWdpblN0cmVhbShOU1VSTFJlcXVl
c3QgKnJlcXVlc3QsIE5QUCBwbHVnCiAgICAgCiAgICAgc3RyZWFtcygpLmFkZCgmbV9zdHJlYW0s
IHBsdWdpbik7CiAgICAgCi0gICAgaWYgKFNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJy
ZXIoW3JlcXVlc3QgVVJMXSwgY29yZShbdmlldyB3ZWJGcmFtZV0pLT5sb2FkZXIoKS0+b3V0Z29p
bmdSZWZlcnJlcigpKSkKKyAgICBTdHJpbmcgcmVmZXJyZXI7CisgICAgaWYgKFNlY3VyaXR5UG9s
aWN5OjpzaG91bGRIaWRlUmVmZXJyZXIoW3JlcXVlc3QgVVJMXSwgY29yZShbdmlldyB3ZWJGcmFt
ZV0pLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpLCBjb3JlKFt2aWV3IHdlYkZyYW1lXSkt
PmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksICZyZWZlcnJlcikpCiAgICAgICAgIFttX3Jl
cXVlc3QuZ2V0KCkgX3dlYl9zZXRIVFRQUmVmZXJyZXI6bmlsXTsKKyAgICBlbHNlCisgICAgICAg
IFttX3JlcXVlc3QuZ2V0KCkgX3dlYl9zZXRIVFRQUmVmZXJyZXI6cmVmZXJyZXJdOwogfQogCiBX
ZWJOZXRzY2FwZVBsdWdpblN0cmVhbTo6fldlYk5ldHNjYXBlUGx1Z2luU3RyZWFtKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBj
MzgzZWU0MTA0ZTI1YTc1MDA1ZDY1MWZjODJlMWI0YjA3YWI4N2YwLi5hODIxYzRlMTYwYTZjNzYz
NmZlMDI3MDM2MmZmODk4MzZiMzAyNTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC05ODUsOCArOTg1LDkgQEAgdm9pZCBQbHVn
aW5WaWV3Ojpsb2FkVVJMKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBtZXRob2Qs
IGNvbnN0IFN0cmluZyYKICAgICBmcmFtZUxvYWRSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnNl
dEhUVFBCb2R5KEZvcm1EYXRhOjpjcmVhdGUoaHR0cEJvZHkuZGF0YSgpLCBodHRwQm9keS5zaXpl
KCkpKTsKICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldEZyYW1lTmFtZSh0YXJnZXQpOwogCi0gICAg
aWYgKCFTZWN1cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVycmVyKGZyYW1lTG9hZFJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCkudXJsKCksIGZyYW1lKCktPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVy
cmVyKCkpKQotICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnNldEhU
VFBSZWZlcnJlcihmcmFtZSgpLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpKTsKKyAgICBT
dHJpbmcgcmVmZXJyZXI7CisgICAgaWYgKCFTZWN1cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVy
cmVyKGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCksIGZyYW1lKCktPmxv
YWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCksIGZyYW1lKCktPmRvY3VtZW50KCktPnJlZmVycmVy
UG9saWN5KCksICZyZWZlcnJlcikpCisgICAgICAgIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VS
ZXF1ZXN0KCkuc2V0SFRUUFJlZmVycmVyKHJlZmVycmVyKTsKIAogICAgIG1fcGVuZGluZ1VSTFJl
cXVlc3RzLmFwcGVuZChVUkxSZXF1ZXN0OjpjcmVhdGUocmVxdWVzdElELCBmcmFtZUxvYWRSZXF1
ZXN0LCBhbGxvd1BvcHVwcykpOwogICAgIG1fcGVuZGluZ1VSTFJlcXVlc3RzVGltZXIuc3RhcnRP
bmVTaG90KDApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGY2MDk5MTdjMTIxMmJmMGU0OTQ0ZGY1N2ZhOTRhZWI4NDgzODNj
MWEuLjQ0NmVmYzliMGQ1Yzg3NzcyZTM3Mzg2MzQ3MTA5M2Q0NTdiYTRjMGIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxMS0xMS0xNyAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgTWV0YSByZWZlcnJlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2NzQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVm
ZXJyZXItcG9saWN5LWFsd2F5cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWFsd2F5cy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1kZWZhdWx0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xp
Y3ktZGVmYXVsdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
ZmVycmVyLXBvbGljeS1odHRwcy1hbHdheXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1hbHdheXMuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0
cHMtZGVmYXVsdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLWRlZmF1bHQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtbmV2ZXItZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBv
bGljeS1odHRwcy1uZXZlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1vcmlnaW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1vcmlnaW4u
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xp
Y3ktbmV2ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L3JlZmVycmVyLXBvbGljeS1uZXZlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1vcmlnaW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1vcmlnaW4uaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvcmVmZXJy
ZXItcG9saWN5LWxvZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbDogQWRkZWQuCisKIDIwMTEtMTEt
MTcgIFpvbHRhbiBBcnZhaSAgPHphcnZhaUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgW1F0
XSBFbmFibGUgc2tpcHBlZCBidXQgbm93IHBhc3NpbmcgdGVzdHMgKGh0dHAvdGVzdHMpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1h
bHdheXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZl
cnJlci1wb2xpY3ktYWx3YXlzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTUwOTY4Yzc2ZDA0
M2JkOGJhNGVmZjQwYmMxMGY0Y2Q4YThlZDM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktYWx3YXlzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDkgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhlIGFsd2F5cyByZWZlcnJlciBw
b2xpY3kgd2hlbiBuYXZpZ2F0aW5nIGZyb20gYW4gaW5zZWN1cmUgVVJMIHRvIGFub3RoZXIgaW5z
ZWN1cmUgVVJMLiBUaGUgdGVzdCBwYXNzZXMgaWYgdGhlIHByaW50ZWQgcmVmZXJyZXIgaXMgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3Rh
cnQuaHRtbD9hbHdheXMKKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88
IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK1JlZmVycmVyIGlzIGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5LXN0YXJ0Lmh0bWw/YWx3YXlz
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXIt
cG9saWN5LWFsd2F5cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZl
cnJlci1wb2xpY3ktYWx3YXlzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ1MjAyN2IwNjJhMWRjMjEwMjEx
ZTFkMDlhOWNlYWJjZTNkZjAzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWFsd2F5cy5odG1sCkBAIC0wLDAgKzEsMTkg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+CitUaGlzIHRlc3QgY2hlY2tzIHRoZSBhbHdheXMgcmVmZXJyZXIgcG9saWN5IHdoZW4g
bmF2aWdhdGluZyBmcm9tIGFuIGluc2VjdXJlCitVUkwgdG8gYW5vdGhlciBpbnNlY3VyZSBVUkwu
IFRoZSB0ZXN0IHBhc3NlcyBpZiB0aGUgcHJpbnRlZCByZWZlcnJlciBpcworaHR0cDovLzEyNy4w
LjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbD9h
bHdheXMKKzwvcD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkv
cmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1zdGFydC5odG1sP2Fsd2F5cyI+PC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3JlZmVycmVyLXBvbGljeS1kZWZhdWx0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWRlZmF1bHQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU4YzY3ZGFjYTRkODYzZTIyMTcyYzVkODZkODA2NWQ1ZjVkYTkxOWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBv
bGljeS1kZWZhdWx0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1RoaXMgdGVzdCBjaGVj
a3MgdGhlIGRlZmF1bHQgcmVmZXJyZXIgcG9saWN5IHdoZW4gbmF2aWdhdGluZyBmcm9tIGFuIGlu
c2VjdXJlIFVSTCB0byBhbm90aGVyIGluc2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRo
ZSBwcmludGVkIHJlZmVycmVyIGlzIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNv
dXJjZXMvcmVmZXJyZXItcG9saWN5LXN0YXJ0Lmh0bWw/ZGVmYXVsdAorCisKKworLS0tLS0tLS0K
K0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorUmVm
ZXJyZXIgaXMgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJl
ci1wb2xpY3ktc3RhcnQuaHRtbD9kZWZhdWx0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWRlZmF1bHQuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWRlZmF1bHQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44NTQwM2VjZTIyOTI0NmNhZjUzOWY2NWFiZmFhNTAxZmIyOGY4YjQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xp
Y3ktZGVmYXVsdC5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRG
cmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+CitUaGlzIHRlc3QgY2hlY2tzIHRo
ZSBkZWZhdWx0IHJlZmVycmVyIHBvbGljeSB3aGVuIG5hdmlnYXRpbmcgZnJvbSBhbiBpbnNlY3Vy
ZQorVVJMIHRvIGFub3RoZXIgaW5zZWN1cmUgVVJMLiBUaGUgdGVzdCBwYXNzZXMgaWYgdGhlIHBy
aW50ZWQgcmVmZXJyZXIgaXMKK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNvdXJj
ZXMvcmVmZXJyZXItcG9saWN5LXN0YXJ0Lmh0bWw/ZGVmYXVsdAorPC9wPgorPGlmcmFtZSBzcmM9
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5
LXN0YXJ0Lmh0bWw/ZGVmYXVsdCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRw
cy1hbHdheXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9y
ZWZlcnJlci1wb2xpY3ktaHR0cHMtYWx3YXlzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDMz
YzI5MmU2ZTFiYmJiMjA1MzIwZWIwOWM1ZjQyNmM2YjdmZDNhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtYWx3
YXlzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhlIGFs
d2F5cyByZWZlcnJlciBwb2xpY3kgd2hlbiBuYXZpZ2F0aW5nIGZyb20gYSBzZWN1cmUgVVJMIHRv
IGFuIGluc2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBwcmludGVkIHJlZmVycmVy
IGlzIGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBv
bGljeS1zdGFydC5odG1sP2Fsd2F5cworCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1l
UGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorUmVmZXJyZXIgaXMgaHR0cHM6Ly8x
MjcuMC4wLjE6ODQ0My9zZWN1cml0eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5LXN0YXJ0Lmh0
bWw/YWx3YXlzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
cmVmZXJyZXItcG9saWN5LWh0dHBzLWFsd2F5cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtYWx3YXlzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWNlMjdkZDE5YjE1NTBkZmJkOTc2MmQxOWI4ZmRkNGQyNDFhMjUzNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBz
LWFsd2F5cy5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFt
ZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+CitUaGlzIHRlc3QgY2hlY2tzIHRoZSBh
bHdheXMgcmVmZXJyZXIgcG9saWN5IHdoZW4gbmF2aWdhdGluZyBmcm9tIGEgc2VjdXJlIFVSTAor
dG8gYW4gaW5zZWN1cmUgVVJMLiBUaGUgdGVzdCBwYXNzZXMgaWYgdGhlIHByaW50ZWQgcmVmZXJy
ZXIgaXMKK2h0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVy
LXBvbGljeS1zdGFydC5odG1sP2Fsd2F5cworPC9wPgorPGlmcmFtZSBzcmM9Imh0dHBzOi8vMTI3
LjAuMC4xOjg0NDMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1zdGFydC5odG1s
P2Fsd2F5cyI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1kZWZhdWx0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9s
aWN5LWh0dHBzLWRlZmF1bHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzYjVlMDEwMDNkZmQ3
NWVkZDE4MzEwYTA5ZmQ3ZDJjYTFiMTI1NDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1kZWZhdWx0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhlIGRlZmF1bHQgcmVm
ZXJyZXIgcG9saWN5IHdoZW4gbmF2aWdhdGluZyBmcm9tIGEgc2VjdXJlIFVSTCB0byBhbiBpbnNl
Y3VyZSBVUkwuIFRoZSB0ZXN0IHBhc3NlcyBpZiB0aGUgcHJpbnRlZCByZWZlcnJlciBpcyBlbXB0
eS4KKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+
LS0+JworLS0tLS0tLS0KK1JlZmVycmVyIGlzIGVtcHR5CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLWRlZmF1bHQuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBz
LWRlZmF1bHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzk1ODEwMmE3MDhmN2IxNDFkYjhmY2U4Y2JhNjJm
ZDdjNzlhNzU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtZGVmYXVsdC5odG1sCkBAIC0wLDAgKzEsMTggQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+CitUaGlzIHRlc3QgY2hlY2tzIHRoZSBkZWZhdWx0IHJlZmVycmVyIHBvbGljeSB3aGVuIG5h
dmlnYXRpbmcgZnJvbSBhIHNlY3VyZSBVUkwKK3RvIGFuIGluc2VjdXJlIFVSTC4gVGhlIHRlc3Qg
cGFzc2VzIGlmIHRoZSBwcmludGVkIHJlZmVycmVyIGlzIGVtcHR5LgorPC9wPgorPGlmcmFtZSBz
cmM9Imh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBv
bGljeS1zdGFydC5odG1sP2RlZmF1bHQiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3kt
aHR0cHMtbmV2ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtbmV2ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgz
NmI3ZWIwZWYwMTk2NjI1ZDRhODk4YzBjZWE4ZGVkZWZhNGJiMjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1u
ZXZlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoZSBu
ZXZlciByZWZlcnJlciBwb2xpY3kgd2hlbiBuYXZpZ2F0aW5nIGZyb20gYSBzZWN1cmUgVVJMIHRv
IGFuIGluc2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBwcmludGVkIHJlZmVycmVy
IGlzIGVtcHR5LgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1m
cmFtZTAtLT4tLT4nCistLS0tLS0tLQorUmVmZXJyZXIgaXMgZW1wdHkKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtbmV2
ZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5
LWh0dHBzLW5ldmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI2MDllMGE2NGI3MGQ5NzkxYzkwM2YwNjVh
YTRiNjViZTQ4MWQ2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW5ldmVyLmh0bWwKQEAgLTAsMCArMSwxOCBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cD4KK1RoaXMgdGVzdCBjaGVja3MgdGhlIG5ldmVyIHJlZmVycmVyIHBvbGljeSB3aGVuIG5h
dmlnYXRpbmcgZnJvbSBhIHNlY3VyZSBVUkwgdG8KK2FuIGluc2VjdXJlIFVSTC4gVGhlIHRlc3Qg
cGFzc2VzIGlmIHRoZSBwcmludGVkIHJlZmVycmVyIGlzIGVtcHR5LgorPC9wPgorPGlmcmFtZSBz
cmM9Imh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBv
bGljeS1zdGFydC5odG1sP25ldmVyIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0
dHBzLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3JlZmVycmVyLXBvbGljeS1odHRwcy1vcmlnaW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4
YWZhMzJkZmQyZGM1NDgyODg0MTkwZGVkNmU0MTM0YmZjMTM1MmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1v
cmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGUg
b3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIG5hdmlnYXRpbmcgZnJvbSBhIHNlY3VyZSBVUkwg
dG8gYW4gaW5zZWN1cmUgVVJMLiBUaGUgdGVzdCBwYXNzZXMgaWYgdGhlIHByaW50ZWQgcmVmZXJy
ZXIgaXMgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0MworCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEt
LWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorUmVmZXJyZXIgaXMgaHR0
cHM6Ly8xMjcuMC4wLjE6ODQ0MworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW9yaWdpbi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIwMjZiNzRmNmNiN2I1Njk5MDRmNDNjOTMzZjljN2E0YjVmNjM1ZmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBv
bGljeS1odHRwcy1vcmlnaW4uaHRtbApAQCAtMCwwICsxLDE5IEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPgorVGhpcyB0ZXN0IGNo
ZWNrcyB0aGUgb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIG5hdmlnYXRpbmcgZnJvbSBhIHNl
Y3VyZSBVUkwKK3RvIGFuIGluc2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBwcmlu
dGVkIHJlZmVycmVyIGlzCitodHRwczovLzEyNy4wLjAuMTo4NDQzCis8L3A+Cis8aWZyYW1lIHNy
Yz0iaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9s
aWN5LXN0YXJ0Lmh0bWw/b3JpZ2luIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LW5l
dmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJy
ZXItcG9saWN5LW5ldmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWJkNzFiMTA5YjM4MmQy
M2U0YTQ5NjZiMTU5MjUwNmQ0YTlhNzNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktbmV2ZXItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGUgbmV2ZXIgcmVmZXJyZXIgcG9saWN5
IHdoZW4gbmF2aWdhdGluZyBmcm9tIGFuIGluc2VjdXJlIFVSTCB0byBhbm90aGVyIGluc2VjdXJl
IFVSTC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBwcmludGVkIHJlZmVycmVyIGlzIGVtcHR5Lgor
CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4n
CistLS0tLS0tLQorUmVmZXJyZXIgaXMgZW1wdHkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktbmV2ZXIuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LW5ldmVyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzU1OTY5NGI0N2U4ZmEzMTRkYjEyZDkwNTNlZGJkMzQ3ZmVlMTcxMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5
LW5ldmVyLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1l
c0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD4KK1RoaXMgdGVzdCBjaGVja3MgdGhlIG5l
dmVyIHJlZmVycmVyIHBvbGljeSB3aGVuIG5hdmlnYXRpbmcgZnJvbSBhbiBpbnNlY3VyZQorVVJM
IHRvIGFub3RoZXIgaW5zZWN1cmUgVVJMLiBUaGUgdGVzdCBwYXNzZXMgaWYgdGhlIHByaW50ZWQg
cmVmZXJyZXIgaXMgZW1wdHkuCis8L3A+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbD9uZXZlciI+
PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktb3JpZ2luLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42YTY0ZTRmMmI1MGY0NTFlOGQ0MzljZjM4MDIwMmVkMjZjNGFi
NDNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9y
ZWZlcnJlci1wb2xpY3ktb3JpZ2luLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1RoaXMg
dGVzdCBjaGVja3MgdGhlIG9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBuYXZpZ2F0aW5nIGZy
b20gYW4gaW5zZWN1cmUgVVJMIHRvIGFub3RoZXIgaW5zZWN1cmUgVVJMLiBUaGUgdGVzdCBwYXNz
ZXMgaWYgdGhlIHByaW50ZWQgcmVmZXJyZXIgaXMgaHR0cDovLzEyNy4wLjAuMTo4MDAwCisKKwor
CistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0t
LS0tLS0tCitSZWZlcnJlciBpcyBodHRwOi8vMTI3LjAuMC4xOjgwMDAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktb3JpZ2luLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1vcmln
aW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNGVlYzA5ZjA3MzY4MjQ2OTM0NDk0OGI5ODk0MmE3OWFiNjJh
ZDc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9y
ZWZlcnJlci1wb2xpY3ktb3JpZ2luLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD4KK1RoaXMgdGVz
dCBjaGVja3MgdGhlIG9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBuYXZpZ2F0aW5nIGZyb20g
YW4gaW5zZWN1cmUKK1VSTCB0byBhbm90aGVyIGluc2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFzc2Vz
IGlmIHRoZSBwcmludGVkIHJlZmVycmVyIGlzCitodHRwOi8vMTI3LjAuMC4xOjgwMDAKKzwvcD4K
KzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3Jl
ZmVycmVyLXBvbGljeS1zdGFydC5odG1sP29yaWdpbiI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNl
cy9yZWZlcnJlci1wb2xpY3ktbG9nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktbG9nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThjMmM4
NGU0MDljY2U1YzJjY2I1ZGNhZGU2MzUyNzRkZDQ0YTViOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1s
b2cuaHRtbApAQCAtMCwwICsxLDIxIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0
aW9uIGxvZyhtc2cpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuaW5uZXJI
VE1MICs9IG1zZyArICI8YnI+IjsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBpZiAo
ZG9jdW1lbnQucmVmZXJyZXIgPT0gIiIpCisgICAgICAgIGxvZygiUmVmZXJyZXIgaXMgZW1wdHki
KTsKKyAgICBlbHNlCisgICAgICAgIGxvZygiUmVmZXJyZXIgaXMgIiArIGRvY3VtZW50LnJlZmVy
cmVyKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291
cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1zdGFydC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM2YjhlNzRkYWRmYzI3MjNkMGM2YjNmNWZkMmYzMDE3OTc3NjIyMTUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1w
b2xpY3ktc3RhcnQuaHRtbApAQCAtMCwwICsxLDE2IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dD4KK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgdmFyIG1ldGEgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJtZXRhIik7CisgICAgbWV0YS5uYW1lID0gInJlZmVycmVyIjsKKyAgICBtZXRhLmNv
bnRlbnQgPSBkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpOworICAgIGRvY3Vt
ZW50LmhlYWQuYXBwZW5kQ2hpbGQobWV0YSk7CisgICAgZG9jdW1lbnQubG9jYXRpb24gPQorICAg
ICAgICAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1w
b2xpY3ktbG9nLmh0bWwiOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115893</attachid>
            <date>2011-11-18 15:33:53 -0800</date>
            <delta_ts>2011-11-19 02:27:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72674-20111119003350.patch</filename>
            <type>text/plain</type>
            <size>53460</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTY2NmY0NTUzMWM2MDE3
MzEzMDE2MzcwMzIyODEwZjMyYjkxNzgyZi4uMTU2ZDZlMTU4YTI2MTE5Y2JmZDI5MmY5ZGJmNzQy
ODA4ODFhNWM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDExLTExLTE4ICBKb2No
ZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVudCBN
ZXRhIHJlZmVycmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MjY3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGh0dHA6Ly93aWtpLndoYXR3Zy5vcmcvd2lraS9NZXRhX3JlZmVycmVyCisKKyAgICAgICAg
VGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWFsd2F5cy5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1kZWZhdWx0
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5
LWh0dHBzLWFsd2F5cy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
ZmVycmVyLXBvbGljeS1odHRwcy1kZWZhdWx0Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW5ldmVyLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW9yaWdpbi5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1uZXZl
ci5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGlj
eS1vcmlnaW4uaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJl
ci1wb2xpY3ktcmVkaXJlY3QuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0
eS9yZWZlcnJlci1wb2xpY3ktcmVsLW5vcmVmZXJyZXIuaHRtbAorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46IHVwZGF0ZWQKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
Ojpwcm9jZXNzUmVmZXJyZXJQb2xpY3kpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlZmVycmVyUG9saWN5KToKKyAgICAgICAgKiBodG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVt
ZW50OjpoYW5kbGVDbGljayk6CisgICAgICAgICogaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGFFbGVtZW50Ojpwcm9jZXNzKToKKyAgICAgICAgKiBs
b2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Omxv
YWRGcmFtZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OmxvYWRJbWFnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQaW5nTG9hZGVyOjpzZW5kUGluZyk6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpy
ZXBvcnRDb250ZW50U2VjdXJpdHlQb2xpY3lWaW9sYXRpb24pOgorICAgICAgICAqIGxvYWRlci9T
dWJmcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6bG9h
ZFN1YmZyYW1lKToKKyAgICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGFn
ZS9TZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eVBvbGljeTo6
Z2VuZXJhdGVSZWZlcnJlckhlYWRlcik6CisgICAgICAgICogcGFnZS9TZWN1cml0eVBvbGljeS5o
OgorCiAyMDExLTExLTE3ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFRleHRUcmFja0xpc3Qgbm90IHNvcnRlZCBjb3JyZWN0bHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggNTc4Y2YzYzQ5Mzc4YzMxYWQ1OGE5MWUxNzZjZTJiYTgwYmM0MmRi
NS4uOTMxZmFkZjY4NTJmNTVmNGI3NTgwNmIxYWYzNjUzMDI4MGZiODNkYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0xMS0xOCAgSm9jaGVuIEVpc2lu
Z2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgTWV0YSByZWZl
cnJlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2
NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYkZyYW1lLmg6CisgICAgICAgICogcHVibGlj
L1dlYlJlZmVycmVyUG9saWN5Lmg6IEFkZGVkLgorICAgICAgICAqIHB1YmxpYy9XZWJTZWN1cml0
eVBvbGljeS5oOgorICAgICAgICAqIHNyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDoKKyAgICAg
ICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBs
OjpyZWZlcnJlclBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6c2V0UmVm
ZXJyZXJGb3JSZXF1ZXN0KToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmg6CisgICAgICAg
ICogc3JjL1dlYlNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2VjdXJp
dHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIpOgorCiAyMDExLTExLTE3ICBLZW5pY2hp
IElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIGRv
bid0IGNhbGwgZm9udGNvbmZpZyB0d2ljZSBpbiBjb21wbGV4IHRleHQgcGF0aApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCmluZGV4IDUwNjAwNmE4ZmM0ZDQ2YTcxN2NlYWIzYTA1ZTM2ZWY5YjU4YjA5MDQuLmZiYzE0
ZDRkODE4MDQ0ZmM1OWM4ZmQyYThmMjE1NGUwNTYwMTJmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxMS0xMS0xOCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgTWV0YSByZWZlcnJlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2NzQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL0hvc3Rl
ZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tOgorICAgICAgICAoV2ViS2l0OjpIb3N0ZWROZXRzY2Fw
ZVBsdWdpblN0cmVhbTo6SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0pOgorICAgICAgICAqIFBs
dWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW06CisgICAgICAgIChXZWJOZXRzY2FwZVBs
dWdpblN0cmVhbTo6V2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0pOgorCiAyMDExLTExLTE2ICBEYW4g
QmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0L21hYyBwYXJ0IG9m
IDxyZGFyOi8vcHJvYmxlbS8xMDI2MjI0Mj4gQWRkIEFQSSBmb3IgcGFnaW5hdGVkIGRpc3BsYXkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA5ZjI0ZTNlNmEzOTc2NzcxOTIyZjExYzNhZDc2NzBhNjZlYjU1OTEzLi45
YzMwOTlkOGUxN2MwYzQ3YTk3MDFlYzZlZTMzNGE1YTEwMjk5ZTQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTEtMTEtMTggIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IE1ldGEgcmVmZXJyZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjc0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmxvYWRVUkwpOgorCiAy
MDExLTExLTE3ICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJh
QG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgW1F0XSBFeHBvc2Ugc2V0VXNlVHJhZGl0aW9uYWxE
ZXNrdG9wQmVoYXZpb3VyKCkgaW4gUU1MIGV4cGVyaW1lbnRhbCBBUEkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KaW5kZXggMTkzOThiMWM3MDY4YTY4NjNmNjY2ZjJkODYzMWY2MGU0MGQ1NjMwMy4uN2E4ZjNk
YWVlMDM5ZmI0ZWE2ODllZmUzMGRjZmU0YTU3OGQ3MzkzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
QEAgLTM5MSw2ICszOTEsNyBAQCBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luNmNyZWF0ZUVS
S04zV1RGNlN0cmluZ0VTNF9pCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luNmNyZWF0ZUVS
S05TXzRLVVJMRWIKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlQb2xpY3kxOHNldExvY2FsTG9hZFBv
bGljeUVOUzBfMTVMb2NhbExvYWRQb2xpY3lFCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5UG9saWN5
MThzaG91bGRIaWRlUmVmZXJyZXJFUktOU180S1VSTEVSS04zV1RGNlN0cmluZ0UKK19fWk43V2Vi
Q29yZTE0U2VjdXJpdHlQb2xpY3kyMmdlbmVyYXRlUmVmZXJyZXJIZWFkZXJFTlMwXzE0UmVmZXJy
ZXJQb2xpY3lFUktOU180S1VSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJp
dHlQb2xpY3kyN3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0c0V2CiBfX1pON1dlYkNvcmUxNFNl
Y3VyaXR5UG9saWN5MjlhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUVSS05TXzE0U2VjdXJp
dHlPcmlnaW5FUktOM1dURjZTdHJpbmdFUzdfYgogX19aTjdXZWJDb3JlMTRTZWN1cml0eVBvbGlj
eTMycmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlFUktOU18xNFNlY3VyaXR5T3JpZ2lu
RVJLTjNXVEY2U3RyaW5nRVM3X2IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGM1YjlkOGIw
NTViZjY0ZTA3ZTNkZDJhMmIwNTY5YTgxYWM0NTgxMDYuLjYzMzJjNjYwMDAwZDAxNjdjYWE5YWIz
ZjVkMmQ1OWI4MWNiZmY0ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDIzLDYgKzQy
Myw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwg
Ym9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICNlbmRpZgogICAgICwgbV9sb2FkRXZlbnREZWxh
eUNvdW50KDApCiAgICAgLCBtX2xvYWRFdmVudERlbGF5VGltZXIodGhpcywgJkRvY3VtZW50Ojps
b2FkRXZlbnREZWxheVRpbWVyRmlyZWQpCisgICAgLCBtX3JlZmVycmVyUG9saWN5KFNlY3VyaXR5
UG9saWN5OjpSZWZlcnJlclBvbGljeURlZmF1bHQpCiAgICAgLCBtX2RpcmVjdGlvblNldE9uRG9j
dW1lbnRFbGVtZW50KGZhbHNlKQogICAgICwgbV93cml0aW5nTW9kZVNldE9uRG9jdW1lbnRFbGVt
ZW50KGZhbHNlKQogICAgICwgbV93cml0ZVJlY3Vyc2lvbklzVG9vRGVlcChmYWxzZSkKQEAgLTI3
NDIsNiArMjc0MywyMCBAQCB2b2lkIERvY3VtZW50Ojpwcm9jZXNzVmlld3BvcnQoY29uc3QgU3Ry
aW5nJiBmZWF0dXJlcykKICAgICBmcmFtZS0+cGFnZSgpLT51cGRhdGVWaWV3cG9ydEFyZ3VtZW50
cygpOwogfQogCit2b2lkIERvY3VtZW50Ojpwcm9jZXNzUmVmZXJyZXJQb2xpY3koY29uc3QgU3Ry
aW5nJiBwb2xpY3kpCit7CisgICAgQVNTRVJUKCFwb2xpY3kuaXNOdWxsKCkpOworCisgICAgbV9y
ZWZlcnJlclBvbGljeSA9IFNlY3VyaXR5UG9saWN5OjpSZWZlcnJlclBvbGljeURlZmF1bHQ7CisK
KyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocG9saWN5LCAibmV2ZXIiKSkKKyAgICAgICAgbV9y
ZWZlcnJlclBvbGljeSA9IFNlY3VyaXR5UG9saWN5OjpSZWZlcnJlclBvbGljeU5ldmVyOworICAg
IGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHBvbGljeSwgImFsd2F5cyIpKQorICAgICAgICBt
X3JlZmVycmVyUG9saWN5ID0gU2VjdXJpdHlQb2xpY3k6OlJlZmVycmVyUG9saWN5QWx3YXlzOwor
ICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHBvbGljeSwgIm9yaWdpbiIpKQorICAgICAg
ICBtX3JlZmVycmVyUG9saWN5ID0gU2VjdXJpdHlQb2xpY3k6OlJlZmVycmVyUG9saWN5T3JpZ2lu
OworfQorCiBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIERvY3VtZW50OjpwcmVwYXJlTW91
c2VFdmVudChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgTGF5b3V0UG9pbnQm
IGRvY3VtZW50UG9pbnQsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpCiB7CiAgICAg
QVNTRVJUKCFyZW5kZXJlcigpIHx8IHJlbmRlcmVyKCktPmlzUmVuZGVyVmlldygpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggZTgyNGYyOTUyNjM3NGUzYzEzMjk0Y2Y5YzhkODY0ZTRlYWJlZGIx
MC4uZGQwNzZiMDMxZTI5MDQ4NDE2MjM0NGU4YjQwZDQ3NTgwYjYyMTE3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgog
I2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJTdHJpbmdXaXRo
RGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJUcmVlU2NvcGUuaCIK
QEAgLTMyMyw2ICszMjQsOCBAQCBwdWJsaWM6CiAKICAgICBWaWV3cG9ydEFyZ3VtZW50cyB2aWV3
cG9ydEFyZ3VtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRBcmd1bWVudHM7IH0KIAor
ICAgIFNlY3VyaXR5UG9saWN5OjpSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVmZXJyZXJQb2xpY3k7IH0KKwogICAgIERvY3VtZW50VHlwZSogZG9jdHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jVHlwZS5nZXQoKTsgfQogCiAgICAgRE9NSW1wbGVtZW50
YXRpb24qIGltcGxlbWVudGF0aW9uKCk7CkBAIC04MDUsNiArODA4LDcgQEAgcHVibGljOgogICAg
ICAqLwogICAgIHZvaWQgcHJvY2Vzc0h0dHBFcXVpdihjb25zdCBTdHJpbmcmIGVxdWl2LCBjb25z
dCBTdHJpbmcmIGNvbnRlbnQpOwogICAgIHZvaWQgcHJvY2Vzc1ZpZXdwb3J0KGNvbnN0IFN0cmlu
ZyYgZmVhdHVyZXMpOworICAgIHZvaWQgcHJvY2Vzc1JlZmVycmVyUG9saWN5KGNvbnN0IFN0cmlu
ZyYgcG9saWN5KTsKIAogICAgIC8vIFJldHVybnMgdGhlIG93bmluZyBlbGVtZW50IGluIHRoZSBw
YXJlbnQgZG9jdW1lbnQuCiAgICAgLy8gUmV0dXJucyAwIGlmIHRoaXMgaXMgdGhlIHRvcCBsZXZl
bCBkb2N1bWVudC4KQEAgLTE0MTQsNiArMTQxOCw4IEBAIHByaXZhdGU6CiAKICAgICBWaWV3cG9y
dEFyZ3VtZW50cyBtX3ZpZXdwb3J0QXJndW1lbnRzOwogCisgICAgU2VjdXJpdHlQb2xpY3k6OlJl
ZmVycmVyUG9saWN5IG1fcmVmZXJyZXJQb2xpY3k7CisKICAgICBib29sIG1fZGlyZWN0aW9uU2V0
T25Eb2N1bWVudEVsZW1lbnQ7CiAgICAgYm9vbCBtX3dyaXRpbmdNb2RlU2V0T25Eb2N1bWVudEVs
ZW1lbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXgg
YmM1MmZjOTVlNTgwZjE5YWFhOGI5ZmUyNmEyMTRjZjI4MDJjMzZjMi4uOWQwMjMzMjExZjI4ODFl
YTFjODYyZWIyMWZlZGMyMTlhNDY0OTUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5jcHAKQEAgLTUwNCw4ICs1MDQsOCBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50
OjpoYW5kbGVDbGljayhFdmVudCogZXZlbnQpCiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1
ZXN0KGt1cmwpOwogCiAgICAgICAgIGlmICghaGFzUmVsKFJlbGF0aW9uTm9SZWZlcnJlcikpIHsK
LSAgICAgICAgICAgIFN0cmluZyByZWZlcnJlciA9IGZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdS
ZWZlcnJlcigpOwotICAgICAgICAgICAgaWYgKCFyZWZlcnJlci5pc0VtcHR5KCkgJiYgIVNlY3Vy
aXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIoa3VybCwgcmVmZXJyZXIpKQorICAgICAgICAg
ICAgU3RyaW5nIHJlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFk
ZXIoZG9jdW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKSwga3VybCwgZnJhbWUtPmxvYWRlcigpLT5v
dXRnb2luZ1JlZmVycmVyKCkpOworICAgICAgICAgICAgaWYgKCFyZWZlcnJlci5pc0VtcHR5KCkp
CiAgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIocmVmZXJyZXIpOwogICAg
ICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5hZGRFeHRyYUZpZWxkc1RvTWFpblJlc291cmNlUmVx
dWVzdChyZXF1ZXN0KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWV0YUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1l
bnQuY3BwCmluZGV4IDBmYThjOTI5NTY4NmMxMjQyOTY4NjE5MGY5YWQwOWNhOGI5OWI2MjcuLjI1
ZjEyZWRmYTg0ZmI5OWE2MmQ1NjUxNmRlYjE4Yzk3Zjk4N2ZkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZXRhRWxlbWVudC5jcHAKQEAgLTcyLDYgKzcyLDkgQEAgdm9pZCBIVE1MTWV0YUVs
ZW1lbnQ6OnByb2Nlc3MoKQogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lKCksICJ2aWV3
cG9ydCIpKQogICAgICAgICBkb2N1bWVudCgpLT5wcm9jZXNzVmlld3BvcnQoY29udGVudFZhbHVl
KTsKIAorICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lKCksICJyZWZlcnJlciIpKQorICAg
ICAgICBkb2N1bWVudCgpLT5wcm9jZXNzUmVmZXJyZXJQb2xpY3koY29udGVudFZhbHVlKTsKKwog
ICAgIC8vIEdldCB0aGUgZG9jdW1lbnQgdG8gcHJvY2VzcyB0aGUgdGFnLCBidXQgb25seSBpZiB3
ZSdyZSBhY3R1YWxseSBwYXJ0IG9mIERPTSB0cmVlIChjaGFuZ2luZyBhIG1ldGEgdGFnIHdoaWxl
CiAgICAgLy8gaXQncyBub3QgaW4gdGhlIHRyZWUgc2hvdWxkbid0IGhhdmUgYW55IGVmZmVjdCBv
biB0aGUgZG9jdW1lbnQpCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBodHRwRXF1aXZWYWx1ZSA9
IGZhc3RHZXRBdHRyaWJ1dGUoaHR0cF9lcXVpdkF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKaW5kZXggODRlZDRkMjRkZDhjODQwNDZiZGI0MTBiNzFkNmRhM2Y0NjNhM2Vh
Ni4uMTJiNTRkNmFlYmE3Y2JlYzliNDdiMDQ4NzFlNTlmMWI1MmQzNGUxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xMTM4LDE0ICsxMTM4LDEyIEBAIHZvaWQgRnJh
bWVMb2FkZXI6OmxvYWRGcmFtZVJlcXVlc3QoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVz
dCwgYm9vbCBsb2NrSGlzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTdHJpbmcgcmVm
ZXJyZXI7CiAgICAgU3RyaW5nIGFyZ3NSZWZlcnJlciA9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCkuaHR0cFJlZmVycmVyKCk7Ci0gICAgaWYgKCFhcmdzUmVmZXJyZXIuaXNFbXB0eSgpKQotICAg
ICAgICByZWZlcnJlciA9IGFyZ3NSZWZlcnJlcjsKLSAgICBlbHNlCi0gICAgICAgIHJlZmVycmVy
ID0gbV9vdXRnb2luZ1JlZmVycmVyOworICAgIGlmIChhcmdzUmVmZXJyZXIuaXNFbXB0eSgpKQor
ICAgICAgICBhcmdzUmVmZXJyZXIgPSBtX291dGdvaW5nUmVmZXJyZXI7CiAKLSAgICBpZiAoU2Vj
dXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcih1cmwsIHJlZmVycmVyKSB8fCBzaG91bGRT
ZW5kUmVmZXJyZXIgPT0gTmV2ZXJTZW5kUmVmZXJyZXIpCisgICAgU3RyaW5nIHJlZmVycmVyID0g
U2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIobV9mcmFtZS0+ZG9jdW1lbnQo
KS0+cmVmZXJyZXJQb2xpY3koKSwgdXJsLCBhcmdzUmVmZXJyZXIpOworICAgIGlmIChzaG91bGRT
ZW5kUmVmZXJyZXIgPT0gTmV2ZXJTZW5kUmVmZXJyZXIpCiAgICAgICAgIHJlZmVycmVyID0gU3Ry
aW5nKCk7CiAgICAgCiAgICAgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZTsKQEAgLTI1OTQsOSArMjU5
Miw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIGluUmVxdWVzdCwgY29uc3QgU3RyaW5nCiAKIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2Fk
ZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYg
ZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7
Ci0gICAgU3RyaW5nIHJlZmVycmVyID0gbV9vdXRnb2luZ1JlZmVycmVyOwotICAgIGlmIChTZWN1
cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVycmVyKHJlcXVlc3QudXJsKCksIHJlZmVycmVyKSkK
LSAgICAgICAgcmVmZXJyZXIgPSBTdHJpbmcoKTsKKyAgICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1l
bnQoKSk7CisgICAgU3RyaW5nIHJlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVm
ZXJyZXJIZWFkZXIobV9mcmFtZS0+ZG9jdW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKSwgcmVxdWVz
dC51cmwoKSwgbV9vdXRnb2luZ1JlZmVycmVyKTsKICAgICAKICAgICBSZXNvdXJjZVJlcXVlc3Qg
aW5pdGlhbFJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGluaXRpYWxSZXF1ZXN0LnNldFRpbWVvdXRJ
bnRlcnZhbCgxMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKaW5kZXggMWFmOTJl
MGQxNjU0YzkyNWFkODE1ZDQyNjJkMzEwNzYxODU3OWZhYS4uZThkYTRhYTUyZWRlNjM2MGQwZGQ4
MjdiMjAyNmViZTM4NGI0YjMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bp
bmdMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcApA
QCAtNjAsOCArNjAsOSBAQCB2b2lkIFBpbmdMb2FkZXI6OmxvYWRJbWFnZShGcmFtZSogZnJhbWUs
IGNvbnN0IEtVUkwmIHVybCkKICAgICByZXF1ZXN0LnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1
ZXN0OjpUYXJnZXRJc0ltYWdlKTsKICNlbmRpZgogICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZp
ZWxkKCJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MCIpOwotICAgIGlmICghU2VjdXJpdHlQb2xp
Y3k6OnNob3VsZEhpZGVSZWZlcnJlcihyZXF1ZXN0LnVybCgpLCBmcmFtZS0+bG9hZGVyKCktPm91
dGdvaW5nUmVmZXJyZXIoKSkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKGZyYW1l
LT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpKTsKKyAgICBTdHJpbmcgcmVmZXJyZXIgPSBT
ZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihmcmFtZS0+ZG9jdW1lbnQoKS0+
cmVmZXJyZXJQb2xpY3koKSwgcmVxdWVzdC51cmwoKSwgZnJhbWUtPmxvYWRlcigpLT5vdXRnb2lu
Z1JlZmVycmVyKCkpOworICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQorICAgICAgICByZXF1
ZXN0LnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7CiAgICAgZnJhbWUtPmxvYWRlcigpLT5hZGRF
eHRyYUZpZWxkc1RvU3VicmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpOwogICAgIE93blB0cjxQaW5n
TG9hZGVyPiBwaW5nTG9hZGVyID0gYWRvcHRQdHIobmV3IFBpbmdMb2FkZXIoZnJhbWUsIHJlcXVl
c3QpKTsKIApAQCAtODksOCArOTAsMTEgQEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFt
ZSogZnJhbWUsIGNvbnN0IEtVUkwmIHBpbmdVUkwsIGNvbnN0IEtVUkwmIGRlc3RpbmEKICAgICBy
ZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZCgiUGluZy1UbyIsIGRlc3RpbmF0aW9uVVJMKTsKICAg
ICBpZiAoIVNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIocGluZ1VSTCwgZnJhbWUt
PmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpKSB7CiAgICAgICByZXF1ZXN0LnNldEhUVFBI
ZWFkZXJGaWVsZCgiUGluZy1Gcm9tIiwgZnJhbWUtPmRvY3VtZW50KCktPnVybCgpKTsKLSAgICAg
IGlmICghc291cmNlT3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChwaW5nT3JpZ2luLmdldCgp
KSkKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIoZnJhbWUtPmxvYWRlcigpLT5vdXRn
b2luZ1JlZmVycmVyKCkpOworICAgICAgaWYgKCFzb3VyY2VPcmlnaW4tPmlzU2FtZVNjaGVtZUhv
c3RQb3J0KHBpbmdPcmlnaW4uZ2V0KCkpKSB7CisgICAgICAgICAgU3RyaW5nIHJlZmVycmVyID0g
U2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoZnJhbWUtPmRvY3VtZW50KCkt
PnJlZmVycmVyUG9saWN5KCksIHBpbmdVUkwsIGZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZl
cnJlcigpKTsKKyAgICAgICAgICBpZiAoIXJlZmVycmVyLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
ICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIocmVmZXJyZXIpOworICAgICAgfQogICAgIH0KICAg
ICBPd25QdHI8UGluZ0xvYWRlcj4gcGluZ0xvYWRlciA9IGFkb3B0UHRyKG5ldyBQaW5nTG9hZGVy
KGZyYW1lLCByZXF1ZXN0KSk7CiAKQEAgLTExMCw4ICsxMTQsOSBAQCB2b2lkIFBpbmdMb2FkZXI6
OnJlcG9ydENvbnRlbnRTZWN1cml0eVBvbGljeVZpb2xhdGlvbihGcmFtZSogZnJhbWUsIGNvbnN0
IEtVUkwmCiAgICAgcmVxdWVzdC5zZXRIVFRQQm9keShyZXBvcnQpOwogICAgIGZyYW1lLT5sb2Fk
ZXIoKS0+YWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChyZXF1ZXN0KTsKIAotICAg
IGlmICghU2VjdXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcihyZXBvcnRVUkwsIGZyYW1l
LT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpKSkKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQ
UmVmZXJyZXIoZnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpOworICAgIFN0cmlu
ZyByZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKGZyYW1l
LT5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpLCByZXBvcnRVUkwsIGZyYW1lLT5sb2FkZXIo
KS0+b3V0Z29pbmdSZWZlcnJlcigpKTsKKyAgICBpZiAoIXJlZmVycmVyLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIocmVmZXJyZXIpOwogICAgIE93blB0cjxQaW5n
TG9hZGVyPiBwaW5nTG9hZGVyID0gYWRvcHRQdHIobmV3IFBpbmdMb2FkZXIoZnJhbWUsIHJlcXVl
c3QpKTsKIAogICAgIC8vIExlYWsgdGhlIHBpbmcgbG9hZGVyLCBzaW5jZSBpdCB3aWxsIGtpbGwg
aXRzZWxmIGFzIHNvb24gYXMgaXQgcmVjZWl2ZXMgYSByZXNwb25zZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmluZGV4IDQ3YzNlMTBmMzE5MTI3Yjg5NTIxMTUyMDVk
MTI5YzE3YjgwMWZkZWQuLjIzNmM3Mjg5MzcyMWZmNGY0NTllNDYzZTI4NWFlYWVlNDExNDE0NzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcApAQCAtMjYyLDggKzI2
Miw4IEBAIEZyYW1lKiBTdWJmcmFtZUxvYWRlcjo6bG9hZFN1YmZyYW1lKEhUTUxGcmFtZU93bmVy
RWxlbWVudCogb3duZXJFbGVtZW50LCBjb25zdCBLCiAgICAgaWYgKCFvd25lckVsZW1lbnQtPmRv
Y3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0NoaWxkRnJhbWVGcm9tU291
cmNlKHVybCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgYm9vbCBoaWRlUmVmZXJyZXIgPSBT
ZWN1cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVycmVyKHVybCwgcmVmZXJyZXIpOwotICAgIFJl
ZlB0cjxGcmFtZT4gZnJhbWUgPSBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmNyZWF0ZUZy
YW1lKHVybCwgbmFtZSwgb3duZXJFbGVtZW50LCBoaWRlUmVmZXJyZXIgPyBTdHJpbmcoKSA6IHJl
ZmVycmVyLCBhbGxvd3NTY3JvbGxpbmcsIG1hcmdpbldpZHRoLCBtYXJnaW5IZWlnaHQpOworICAg
IFN0cmluZyByZWZlcnJlclRvVXNlID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJI
ZWFkZXIob3duZXJFbGVtZW50LT5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpLCB1cmwsIHJl
ZmVycmVyKTsKKyAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gbV9mcmFtZS0+bG9hZGVyKCktPmNs
aWVudCgpLT5jcmVhdGVGcmFtZSh1cmwsIG5hbWUsIG93bmVyRWxlbWVudCwgcmVmZXJyZXJUb1Vz
ZSwgYWxsb3dzU2Nyb2xsaW5nLCBtYXJnaW5XaWR0aCwgbWFyZ2luSGVpZ2h0KTsKIAogICAgIGlm
ICghZnJhbWUpICB7CiAgICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jaGVja0NhbGxJbXBsaWNp
dENsb3NlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApp
bmRleCBkNWY2NjhiMTdmZDk5MjQxODM5NTM3NjYwNGMyN2E3OWZjY2JmNjE2Li5iNTg5NjYyYTUx
YjQwMTA1MWY3OTg4NTc0YjI5NTY5MjAzNGE1ZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKQEAgLTkwLDcgKzkwLDggQEAgUGFzc1JlZlB0cjxTdWJy
ZXNvdXJjZUxvYWRlcj4gU3VicmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShGcmFtZSogZnJhbWUsIENh
Y2hlZFJlc28KICAgICAgICAgb3V0Z29pbmdPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyhvdXRnb2luZ1JlZmVycmVyKS0+dG9TdHJpbmcoKTsKICAgICB9CiAKLSAgICBp
ZiAoU2VjdXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcihyZXF1ZXN0LnVybCgpLCBvdXRn
b2luZ1JlZmVycmVyKSkKKyAgICBvdXRnb2luZ1JlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6Omdl
bmVyYXRlUmVmZXJyZXJIZWFkZXIoZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCks
IHJlcXVlc3QudXJsKCksIG91dGdvaW5nUmVmZXJyZXIpOworICAgIGlmIChvdXRnb2luZ1JlZmVy
cmVyLmlzRW1wdHkoKSkKICAgICAgICAgbmV3UmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwog
ICAgIGVsc2UgaWYgKCFyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpKQogICAgICAgICBuZXdSZXF1ZXN0
LnNldEhUVFBSZWZlcnJlcihvdXRnb2luZ1JlZmVycmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eVBvbGljeS5jcHAKaW5kZXggMzFjYWMwNjVmZWVmZTYwODEyMjAxNzI0ZTNlYzcxZWRmMGQ2
MWQ5MC4uZDAwYTFhMWI4MWRhZTQ3MDg4MzAxMWI3NGYzZmMyMGM4MzY3YTY4MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKQEAgLTY0LDYgKzY0LDI5IEBAIGJvb2wgU2Vj
dXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgcmVmZXJyZXIpCiAgICAgcmV0dXJuICFVUkxJc1NlY3VyZVVSTDsKIH0KIAorU3RyaW5n
IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKFJlZmVycmVyUG9saWN5IHJl
ZmVycmVyUG9saWN5LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCit7
CisgICAgaWYgKHJlZmVycmVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
CisgICAgc3dpdGNoIChyZWZlcnJlclBvbGljeSkgeworICAgIGNhc2UgUmVmZXJyZXJQb2xpY3lO
ZXZlcjoKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIGNhc2UgUmVmZXJyZXJQb2xpY3lB
bHdheXM6CisgICAgICAgIHJldHVybiByZWZlcnJlcjsKKyAgICBjYXNlIFJlZmVycmVyUG9saWN5
T3JpZ2luOiB7CisgICAgICAgIFN0cmluZyBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyhyZWZlcnJlciktPnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChvcmlnaW4gPT0g
Im51bGwiKQorICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICByZXR1cm4gb3Jp
Z2luICsgIi8iOworICAgIH0KKyAgICBjYXNlIFJlZmVycmVyUG9saWN5RGVmYXVsdDoKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHNob3VsZEhpZGVSZWZlcnJlcih1cmwsIHJl
ZmVycmVyKSA/IFN0cmluZygpIDogcmVmZXJyZXI7Cit9CisKIHZvaWQgU2VjdXJpdHlQb2xpY3k6
OnNldExvY2FsTG9hZFBvbGljeShMb2NhbExvYWRQb2xpY3kgcG9saWN5KQogewogICAgIGxvY2Fs
TG9hZFBvbGljeSA9IHBvbGljeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vj
dXJpdHlQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlQb2xpY3kuaAppbmRl
eCA3MDQ0MWYzZDRlZWFkMzdhNjg4MjJkYzdkODY4YTYzOTIzNTcyNGU1Li40MWY4ODdmMTlhZThl
OWViYTczYjVjOWUyMjgyZDA4NDk2MjBiYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NlY3VyaXR5UG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBv
bGljeS5oCkBAIC0zOCw4ICszOCwyNSBAQCBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIAogY2xhc3Mg
U2VjdXJpdHlQb2xpY3kgewogcHVibGljOgorICAgIGVudW0gUmVmZXJyZXJQb2xpY3kgeworICAg
ICAgICBSZWZlcnJlclBvbGljeUFsd2F5cywKKyAgICAgICAgUmVmZXJyZXJQb2xpY3lEZWZhdWx0
LAorICAgICAgICBSZWZlcnJlclBvbGljeU5ldmVyLAorICAgICAgICAvLyBTYW1lIGFzIFJlZmVy
cmVyUG9saWN5QWx3YXlzLCBleGNlcHQgdGhhdCBvbmx5IHRoZSBvcmlnaW4gb2YgdGhlCisgICAg
ICAgIC8vIHJlZmVycmluZyBVUkwgaXMgc2VuZC4KKyAgICAgICAgUmVmZXJyZXJQb2xpY3lPcmln
aW4sCisgICAgfTsKKworICAgIC8vIFRydWUgaWYgdGhlIHJlZmVycmVyIHNob3VsZCBiZSBvbWl0
dGVkIGFjY29yZGluZyB0byB0aGUKKyAgICAvLyBSZWZlcnJlclBvbGljeURlZmF1bHQuIElmIHlv
dSBpbnRlbmQgdG8gc2VuZCBhIHJlZmVycmVyIGhlYWRlciwgeW91CisgICAgLy8gc2hvdWxkIHVz
ZSBnZW5lcmF0ZVJlZmVycmVySGVhZGVyIGluc3RlYWQuCiAgICAgc3RhdGljIGJvb2wgc2hvdWxk
SGlkZVJlZmVycmVyKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKTsKIAorICAg
IC8vIFJldHVybnMgdGhlIHJlZmVycmVyIG1vZGlmaWVkIGFjY29yZGluZyB0byB0aGUgcmVmZXJy
ZXIgcG9saWN5IGZvciBhCisgICAgLy8gbmF2aWdhdGlvbiB0byBhIGdpdmVuIFVSTC4gSWYgdGhl
IHJlZmVycmVyIHJldHVybmVkIGlzIGVtcHR5LCB0aGUKKyAgICAvLyByZWZlcnJlciBoZWFkZXIg
c2hvdWxkIGJlIG9taXR0ZWQuCisgICAgc3RhdGljIFN0cmluZyBnZW5lcmF0ZVJlZmVycmVySGVh
ZGVyKFJlZmVycmVyUG9saWN5LCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlcik7
CisKICAgICBlbnVtIExvY2FsTG9hZFBvbGljeSB7CiAgICAgICAgIEFsbG93TG9jYWxMb2Fkc0Zv
ckFsbCwgLy8gTm8gcmVzdHJpY3Rpb24gb24gbG9jYWwgbG9hZHMuCiAgICAgICAgIEFsbG93TG9j
YWxMb2Fkc0ZvckxvY2FsQW5kU3Vic3RpdHV0ZURhdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAKaW5kZXggYmE4NTRlYWJjZDZhZjg3NDViNzFhYWI5YzE3NjUyM2MxMGU5OTI0OS4uMjczN2Ew
Y2E1YWNjNDk2MjY0Y2JhNWQ4YTI5MmEyYTdhZTVkODJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cApAQCAtMjc1LDYgKzI3NSw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQ
cml2YXRlT3duUHRyLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUmFuZ2UuaCcsCiAg
ICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJSZWN0LmgnLAorICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViUmVmZXJyZXJQb2xpY3kuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJSZWd1
bGFyRXhwcmVzc2lvbi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlJ1bnRpbWVGZWF0
dXJlcy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlNjcm9sbGJhci5oJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCmluZGV4IDczZDQ0MjNiYjYxODYzNGY2
YjRjOTUyMjkwMzJhNzQ5OWMwNzM1MzYuLjc5Yjc0Njc5ZjE4NGIzMjMyZjYxZDcxYmNiMjljMWJi
MjRjOWQzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZy
YW1lLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaApAQCAt
MzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJXZWJJ
Y29uVVJMLmgiCiAjaW5jbHVkZSAiV2ViTm9kZS5oIgorI2luY2x1ZGUgIldlYlJlZmVycmVyUG9s
aWN5LmgiCiAjaW5jbHVkZSAiV2ViVVJMLmgiCiAjaW5jbHVkZSAiV2ViVVJMTG9hZGVyT3B0aW9u
cy5oIgogCkBAIC0xNDAsNiArMTQxLDkgQEAgcHVibGljOgogICAgIC8vIFVSTHMKICAgICB2aXJ0
dWFsIFdlYlZlY3RvcjxXZWJJY29uVVJMPiBpY29uVVJMcyhpbnQgaWNvblR5cGVzKSBjb25zdCA9
IDA7CiAKKyAgICAvLyBUaGUgcmVmZXJyZXIgcG9saWN5IG9mIHRoZSBkb2N1bWVudCBhc3NvY2lh
dGVkIHdpdGggdGhpcyBmcmFtZS4KKyAgICB2aXJ0dWFsIFdlYlJlZmVycmVyUG9saWN5IHJlZmVy
cmVyUG9saWN5KCkgY29uc3QgPSAwOworCiAKICAgICAvLyBHZW9tZXRyeSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSZWZlcnJlclBvbGljeS5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUmVmZXJyZXJQb2xpY3kuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44MjcxMGZiMjIzNDkwMzljYmI2ZGY3ZGJlMmE1ZTRiYjE3MDQwODBjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUmVmZXJyZXJQb2xpY3ku
aApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJSZWZlcnJlclBvbGljeV9oCisjZGVmaW5lIFdl
YlJlZmVycmVyUG9saWN5X2gKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gV2ViUmVmZXJy
ZXJQb2xpY3kgeworICAgIFdlYlJlZmVycmVyUG9saWN5QWx3YXlzLAorICAgIFdlYlJlZmVycmVy
UG9saWN5RGVmYXVsdCwKKyAgICBXZWJSZWZlcnJlclBvbGljeU5ldmVyLAorICAgIFdlYlJlZmVy
cmVyUG9saWN5T3JpZ2luLAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlQb2xp
Y3kuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlY3VyaXR5UG9saWN5LmgK
aW5kZXggNzM1YjZlMDMyOGRmMDFiZTljM2M3NDhlZGE5ZDk0NTFmY2Q3YmJmYi4uZmUxM2EyM2Uy
OGE0OTFlZDhjNjQ2MTNlODhhOGIyNmJkYTg3OGI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1cml0eVBvbGljeS5oCkBAIC0zMiw2ICszMiw3IEBACiAj
ZGVmaW5lIFdlYlNlY3VyaXR5UG9saWN5X2gKIAogI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2lu
Y2x1ZGUgIldlYlJlZmVycmVyUG9saWN5LmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC03
MSw3ICs3MiwxMyBAQCBwdWJsaWM6CiAKICAgICAvLyBSZXR1cm5zIHdoZXRoZXIgdGhlIHVybCBz
aG91bGQgYmUgYWxsb3dlZCB0byBzZWUgdGhlIHJlZmVycmVyCiAgICAgLy8gYmFzZWQgb24gdGhl
aXIgcmVzcGVjdGl2ZSBwcm90b2NvbHMuCi0gICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBz
aG91bGRIaWRlUmVmZXJyZXIoY29uc3QgV2ViVVJMJiB1cmwsIGNvbnN0IFdlYlN0cmluZyYgcmVm
ZXJyZXIpOworICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyBmdW5jdGlvbiBvbmNlIHRoZSBjaHJv
bWl1bSBzaWRlIGhhcyBsYW5kZWQuCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBzaG91
bGRIaWRlUmVmZXJyZXIoY29uc3QgV2ViVVJMJiwgY29uc3QgV2ViU3RyaW5nJiByZWZlcnJlcik7
CisKKyAgICAvLyBSZXR1cm5zIHRoZSByZWZlcnJlciBtb2RpZmllZCBhY2NvcmRpbmcgdG8gdGhl
IHJlZmVycmVyIHBvbGljeSBmb3IgYQorICAgIC8vIG5hdmlnYXRpb24gdG8gYSBnaXZlbiBVUkwu
IElmIHRoZSByZWZlcnJlciByZXR1cm5lZCBpcyBlbXB0eSwgdGhlCisgICAgLy8gcmVmZXJyZXIg
aGVhZGVyIHNob3VsZCBiZSBvbWl0dGVkLgorICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYlN0
cmluZyBnZW5lcmF0ZVJlZmVycmVySGVhZGVyKFdlYlJlZmVycmVyUG9saWN5LCBjb25zdCBXZWJV
UkwmLCBjb25zdCBXZWJTdHJpbmcmIHJlZmVycmVyKTsKIAogICAgIC8vIFJlZ2lzdGVycyBhbiBV
Ukwgc2NoZW1lIHRvIG5vdCBhbGxvdyBtYW5pcHVsYXRpb24gb2YgdGhlIGxvYWRlZCBwYWdlCiAg
ICAgLy8gYnkgYm9va21hcmtsZXRzIG9yIGphdmFzY3JpcHQ6IFVSTHMgdHlwZWQgaW4gdGhlIG9t
bmlib3guCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRj
aGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5n
RW51bXMuY3BwCmluZGV4IDU1YmY4ZDFlMTVmNWEzMGU3NjM2NjEzZWVjMDBlYjViNjQ4ZDRkYzYu
LmQ3MTMwYmM0OGQ2ZDIyOTAzODAxODY5OWU0ZDdiYjc3NzI5ZTc4Y2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCkBAIC01NSw2
ICs1NSw3IEBACiAjaW5jbHVkZSAiUGFnZVZpc2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIlBh
c3RlYm9hcmRQcml2YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DdXJzb3IuaCIKKyNpbmNsdWRl
ICJTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3Rv
cmFnZUluZm8uaCIKICNpbmNsdWRlICJUZXh0QWZmaW5pdHkuaCIKQEAgLTgyLDYgKzgzLDcgQEAK
ICNpbmNsdWRlICJXZWJNZWRpYVN0cmVhbVNvdXJjZS5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNh
dGlvblByZXNlbnRlci5oIgogI2luY2x1ZGUgIldlYlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKKyNp
bmNsdWRlICJXZWJSZWZlcnJlclBvbGljeS5oIgogI2luY2x1ZGUgIldlYlNjcm9sbGJhci5oIgog
I2luY2x1ZGUgIldlYlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFnZVF1b3RhRXJyb3Iu
aCIKQEAgLTQ2NywzICs0NjksOCBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlBh
Z2VWaXNpYmlsaXR5U3RhdGVQcmVyZW5kZXIsIFBhZ2VWaXNpYmlsaXR5U3RhdAogQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJNZWRpYVN0cmVhbVNvdXJjZTo6VHlwZUF1ZGlvLCBNZWRp
YVN0cmVhbVNvdXJjZTo6VHlwZUF1ZGlvKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V2ViTWVkaWFTdHJlYW1Tb3VyY2U6OlR5cGVWaWRlbywgTWVkaWFTdHJlYW1Tb3VyY2U6OlR5cGVW
aWRlbyk7CiAjZW5kaWYKKworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJSZWZlcnJl
clBvbGljeUFsd2F5cywgU2VjdXJpdHlQb2xpY3k6OlJlZmVycmVyUG9saWN5QWx3YXlzKTsKK0NP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViUmVmZXJyZXJQb2xpY3lEZWZhdWx0LCBTZWN1
cml0eVBvbGljeTo6UmVmZXJyZXJQb2xpY3lEZWZhdWx0KTsKK0NPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViUmVmZXJyZXJQb2xpY3lOZXZlciwgU2VjdXJpdHlQb2xpY3k6OlJlZmVycmVy
UG9saWN5TmV2ZXIpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJSZWZlcnJlclBv
bGljeU9yaWdpbiwgU2VjdXJpdHlQb2xpY3k6OlJlZmVycmVyUG9saWN5T3JpZ2luKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IDYyN2IzZjNjMTdl
NWJlMmU3MTlhZTU2OTgzODAxMmQ5NzkwMzdhM2EuLjQ5OTM0MmU1YTdkZmI5OTIxMTUwMDI4MmZh
ZmI5NTQwMmI3NDQ3MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmNwcApAQCAtNTkxLDYgKzU5MSwxMSBAQCBXZWJWZWN0b3I8V2ViSWNvblVSTD4gV2ViRnJh
bWVJbXBsOjppY29uVVJMcyhpbnQgaWNvblR5cGVzKSBjb25zdAogICAgIHJldHVybiBXZWJWZWN0
b3I8V2ViSWNvblVSTD4oKTsKIH0KIAorV2ViUmVmZXJyZXJQb2xpY3kgV2ViRnJhbWVJbXBsOjpy
ZWZlcnJlclBvbGljeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYlJlZmVy
cmVyUG9saWN5PihtX2ZyYW1lLT5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpKTsKK30KKwog
V2ViU2l6ZSBXZWJGcmFtZUltcGw6OnNjcm9sbE9mZnNldCgpIGNvbnN0CiB7CiAgICAgRnJhbWVW
aWV3KiB2aWV3ID0gZnJhbWVWaWV3KCk7CkBAIC0xMDczLDcgKzEwNzgsOCBAQCB2b2lkIFdlYkZy
YW1lSW1wbDo6c2V0UmVmZXJyZXJGb3JSZXF1ZXN0KFdlYlVSTFJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFdlYlVSTCYgcgogICAgICAgICByZWZlcnJlciA9IG1fZnJhbWUtPmxvYWRlcigpLT5vdXRn
b2luZ1JlZmVycmVyKCk7CiAgICAgZWxzZQogICAgICAgICByZWZlcnJlciA9IHJlZmVycmVyVVJM
LnNwZWMoKS51dGYxNigpOwotICAgIGlmIChTZWN1cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVy
cmVyKHJlcXVlc3QudXJsKCksIHJlZmVycmVyKSkKKyAgICByZWZlcnJlciA9IFNlY3VyaXR5UG9s
aWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKG1fZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVy
UG9saWN5KCksIHJlcXVlc3QudXJsKCksIHJlZmVycmVyKTsKKyAgICBpZiAocmVmZXJyZXIuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm47CiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQo
V2ViU3RyaW5nOjpmcm9tVVRGOCgiUmVmZXJlciIpLCByZWZlcnJlcik7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCmluZGV4IDE5MTdhNGE4ZTNjMjA3YWRkZDg2
ZThiMzVmOGVhYzNiY2QwNzFhNjAuLjM3ZWRmNDllNzkwY2E3MDMyNjlhYTZmYmRkYTNlMGEyMWFj
OGUxNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCkBAIC03
MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmFtZShjb25zdCBXZWJT
dHJpbmcmKTsKICAgICB2aXJ0dWFsIGxvbmcgbG9uZyBpZGVudGlmaWVyKCkgY29uc3Q7CiAgICAg
dmlydHVhbCBXZWJWZWN0b3I8V2ViSWNvblVSTD4gaWNvblVSTHMoaW50IGljb25UeXBlcykgY29u
c3Q7CisgICAgdmlydHVhbCBXZWJSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSgpIGNvbnN0
OwogICAgIHZpcnR1YWwgV2ViU2l6ZSBzY3JvbGxPZmZzZXQoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IFdlYlNpemUmKTsKICAgICB2aXJ0dWFsIFdlYlNp
emUgbWluaW11bVNjcm9sbE9mZnNldCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IDg0OGViM2E5MGRmYzBjNzBlMTYw
Mzk2MTRhZWU0YmE4ZDNlYWYwNjcuLjQ3MWQ5NWE5NDQ1YjdiZTg2MGU4Y2NiODEwYTRhOTE0Yjgz
MTVjMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5
UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eVBv
bGljeS5jcHAKQEAgLTk1LDYgKzk1LDExIEBAIGJvb2wgV2ViU2VjdXJpdHlQb2xpY3k6OnNob3Vs
ZEhpZGVSZWZlcnJlcihjb25zdCBXZWJVUkwmIHVybCwgY29uc3QgV2ViU3RyaW5nJiByCiAgICAg
cmV0dXJuIFNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIodXJsLCByZWZlcnJlcik7
CiB9CiAKK1dlYlN0cmluZyBXZWJTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRl
cihXZWJSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSwgY29uc3QgV2ViVVJMJiB1cmwsIGNv
bnN0IFdlYlN0cmluZyYgcmVmZXJyZXIpCit7CisgICAgcmV0dXJuIFNlY3VyaXR5UG9saWN5Ojpn
ZW5lcmF0ZVJlZmVycmVySGVhZGVyKHN0YXRpY19jYXN0PFNlY3VyaXR5UG9saWN5OjpSZWZlcnJl
clBvbGljeT4ocmVmZXJyZXJQb2xpY3kpLCB1cmwsIHJlZmVycmVyKTsKK30KKwogdm9pZCBXZWJT
ZWN1cml0eVBvbGljeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNjcmlwdFVS
THMoY29uc3QgV2ViU3RyaW5nJiBzY2hlbWUpCiB7CiAgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lz
dGVyVVJMU2NoZW1lQXNOb3RBbGxvd2luZ0phdmFzY3JpcHRVUkxzKHNjaGVtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Ib3N0ZWROZXRzY2FwZVBsdWdp
blN0cmVhbS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNj
YXBlUGx1Z2luU3RyZWFtLm1tCmluZGV4IDdlMmIwM2UwYWQ2ODRjYWQ2Y2U1MDBlZWM3NTczZDU3
MDg1MzdmZjIuLjdjODRlZGU4ODVkODM5M2IxYjFhZTljYWUzZTQwZmJkZjcyZjNlNmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1
Z2luU3RyZWFtLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL0hvc3Rl
ZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCkBAIC01OSw4ICs1OSwxMSBAQCBIb3N0ZWROZXRzY2Fw
ZVBsdWdpblN0cmVhbTo6SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0oTmV0c2NhcGVQbHVnaW5J
bnN0YW5jZVBybwogICAgICwgbV9yZXF1ZXN0VVJMKFtyZXF1ZXN0IFVSTF0pCiAgICAgLCBtX2Zy
YW1lTG9hZGVyKDApCiB7Ci0gICAgaWYgKFNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJy
ZXIoW3JlcXVlc3QgVVJMXSwgY29yZShbaW5zdGFuY2UtPnBsdWdpblZpZXcoKSB3ZWJGcmFtZV0p
LT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpKSkKKyAgICBTdHJpbmcgcmVmZXJyZXIgPSBT
ZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihjb3JlKFtpbnN0YW5jZS0+cGx1
Z2luVmlldygpIHdlYkZyYW1lXSktPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIFtyZXF1
ZXN0IFVSTF0sIGNvcmUoW2luc3RhbmNlLT5wbHVnaW5WaWV3KCkgd2ViRnJhbWVdKS0+bG9hZGVy
KCktPm91dGdvaW5nUmVmZXJyZXIoKSk7CisgICAgaWYgKHJlZmVycmVyLmlzRW1wdHkoKSkKICAg
ICAgICAgW21fcmVxdWVzdC5nZXQoKSBfd2ViX3NldEhUVFBSZWZlcnJlcjpuaWxdOworICAgIGVs
c2UKKyAgICAgICAgW21fcmVxdWVzdC5nZXQoKSBfd2ViX3NldEhUVFBSZWZlcnJlcjpyZWZlcnJl
cl07CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgaG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW1Db3Vu
dGVyLmluY3JlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9X
ZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2Vi
TmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KaW5kZXggOGY2Zjk0MDAyOGUzMTU4Y2ZlMGZkZTc1NTYy
M2Y2MTM4ZGE1MzBjMy4uYmI3ZjRkNWY1ZDkxMzgzNjZmM2QyNGMwOTBmODgzMDIyZmYxNTExNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0
cmVhbS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2lu
U3RyZWFtLm1tCkBAIC0xNzIsOCArMTcyLDExIEBAIFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtOjpX
ZWJOZXRzY2FwZVBsdWdpblN0cmVhbShOU1VSTFJlcXVlc3QgKnJlcXVlc3QsIE5QUCBwbHVnCiAg
ICAgCiAgICAgc3RyZWFtcygpLmFkZCgmbV9zdHJlYW0sIHBsdWdpbik7CiAgICAgCi0gICAgaWYg
KFNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIoW3JlcXVlc3QgVVJMXSwgY29yZShb
dmlldyB3ZWJGcmFtZV0pLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpKSkKKyAgICBTdHJp
bmcgcmVmZXJyZXIgPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihjb3Jl
KFt2aWV3IHdlYkZyYW1lXSktPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIFtyZXF1ZXN0
IFVSTF0sIGNvcmUoW3ZpZXcgd2ViRnJhbWVdKS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIo
KSk7CisgICAgaWYgKHJlZmVycmVyLmlzRW1wdHkoKSkKICAgICAgICAgW21fcmVxdWVzdC5nZXQo
KSBfd2ViX3NldEhUVFBSZWZlcnJlcjpuaWxdOworICAgIGVsc2UKKyAgICAgICAgW21fcmVxdWVz
dC5nZXQoKSBfd2ViX3NldEhUVFBSZWZlcnJlcjpyZWZlcnJlcl07CiB9CiAKIFdlYk5ldHNjYXBl
UGx1Z2luU3RyZWFtOjp+V2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0oKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IGMzODNlZTQxMDRl
MjVhNzUwMDVkNjUxZmM4MmUxYjRiMDdhYjg3ZjAuLmE4NjE2MTA3Mzc2ZTcyMTkyYzMxMDQ1NjIz
YjBlOWQ1YjZhYTUxZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKQEAgLTk4NSw4ICs5ODUsOSBAQCB2b2lkIFBsdWdpblZpZXc6Omxv
YWRVUkwodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgU3Ry
aW5nJgogICAgIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUEJvZHko
Rm9ybURhdGE6OmNyZWF0ZShodHRwQm9keS5kYXRhKCksIGh0dHBCb2R5LnNpemUoKSkpOwogICAg
IGZyYW1lTG9hZFJlcXVlc3Quc2V0RnJhbWVOYW1lKHRhcmdldCk7CiAKLSAgICBpZiAoIVNlY3Vy
aXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIoZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJl
cXVlc3QoKS51cmwoKSwgZnJhbWUoKS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSkpCi0g
ICAgICAgIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUFJlZmVycmVy
KGZyYW1lKCktPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpOworICAgIFN0cmluZyByZWZl
cnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKGZyYW1lKCktPmRv
Y3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1
ZXN0KCkudXJsKCksIGZyYW1lKCktPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpOworICAg
IGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQorICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpLnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7CiAKICAgICBtX3BlbmRpbmdV
UkxSZXF1ZXN0cy5hcHBlbmQoVVJMUmVxdWVzdDo6Y3JlYXRlKHJlcXVlc3RJRCwgZnJhbWVMb2Fk
UmVxdWVzdCwgYWxsb3dQb3B1cHMpKTsKICAgICBtX3BlbmRpbmdVUkxSZXF1ZXN0c1RpbWVyLnN0
YXJ0T25lU2hvdCgwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNjA5OTE3YzEyMTJiZjBlNDk0NGRmNTdmYTk0YWViODQ4
MzgzYzFhLi5kMGUxZjNlNDIwMDY1MjJiOTQzMzRkZjE2YTY3YzM3NTJlYjJhMzY1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTEtMTEtMTggIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IE1ldGEgcmVmZXJyZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjc0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3JlZmVycmVyLXBvbGljeS1hbHdheXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1hbHdheXMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktZGVmYXVsdC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXIt
cG9saWN5LWRlZmF1bHQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtYWx3YXlzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtYWx3YXlzLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5
LWh0dHBzLWRlZmF1bHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1kZWZhdWx0Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW5ldmVyLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJl
ci1wb2xpY3ktaHR0cHMtbmV2ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtb3JpZ2luLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtb3Jp
Z2luLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXIt
cG9saWN5LW5ldmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktbmV2ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktb3JpZ2luLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktb3JpZ2lu
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9s
aWN5LXJlZGlyZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVsLW5vcmVmZXJyZXItZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBv
bGljeS1yZWwtbm9yZWZlcnJlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktbG9nLnBocDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3Jl
ZmVycmVyLXBvbGljeS1zdGFydC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3Jlc291cmNlcy9yZWwtbm9yZWZlcnJlci5odG1sOiBBZGRlZC4KKwogMjAxMS0xMS0x
NyAgWm9sdGFuIEFydmFpICA8emFydmFpQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRd
IEVuYWJsZSBza2lwcGVkIGJ1dCBub3cgcGFzc2luZyB0ZXN0cyAoaHR0cC90ZXN0cykKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWFs
d2F5cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVy
cmVyLXBvbGljeS1hbHdheXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3ZWEyNTg4NWI1OGFk
MTNjZmU5MGU3NTdlNzhiM2U1MjhlMWE1OTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1hbHdheXMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhlIGFsd2F5cyByZWZlcnJlciBw
b2xpY3kgd2hlbiBuYXZpZ2F0aW5nIGZyb20gYW4gaW5zZWN1cmUgVVJMIHRvIGFub3RoZXIgaW5z
ZWN1cmUgVVJMLiBUaGUgdGVzdCBwYXNzZXMgaWYgdGhlIHByaW50ZWQgcmVmZXJyZXIgaXMgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3Rh
cnQuaHRtbD9hbHdheXMKKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88
IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK0hUVFAgUmVmZXJlciBoZWFkZXIgaXMgaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQu
aHRtbD9hbHdheXMKK1JlZmVycmVyIGlzIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9y
ZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5LXN0YXJ0Lmh0bWw/YWx3YXlzCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWFsd2F5cy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktYWx3
YXlzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ1MjAyN2IwNjJhMWRjMjEwMjExZTFkMDlhOWNlYWJjZTNk
ZjAzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
cmVmZXJyZXItcG9saWN5LWFsd2F5cy5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+CitUaGlzIHRl
c3QgY2hlY2tzIHRoZSBhbHdheXMgcmVmZXJyZXIgcG9saWN5IHdoZW4gbmF2aWdhdGluZyBmcm9t
IGFuIGluc2VjdXJlCitVUkwgdG8gYW5vdGhlciBpbnNlY3VyZSBVUkwuIFRoZSB0ZXN0IHBhc3Nl
cyBpZiB0aGUgcHJpbnRlZCByZWZlcnJlciBpcworaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3Vy
aXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbD9hbHdheXMKKzwvcD4KKzxp
ZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVy
cmVyLXBvbGljeS1zdGFydC5odG1sP2Fsd2F5cyI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBv
bGljeS1kZWZhdWx0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvcmVmZXJyZXItcG9saWN5LWRlZmF1bHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExMjQy
NjBlOGU3OTRmMGFlMDRjYjU5ZDNjMjMyYjlkN2I5MDM0ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1kZWZhdWx0LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3QgY2hlY2tzIHRoZSBkZWZhdWx0
IHJlZmVycmVyIHBvbGljeSB3aGVuIG5hdmlnYXRpbmcgZnJvbSBhbiBpbnNlY3VyZSBVUkwgdG8g
YW5vdGhlciBpbnNlY3VyZSBVUkwuIFRoZSB0ZXN0IHBhc3NlcyBpZiB0aGUgcHJpbnRlZCByZWZl
cnJlciBpcyBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVy
LXBvbGljeS1zdGFydC5odG1sP2RlZmF1bHQKKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1m
cmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK0hUVFAgUmVmZXJlciBoZWFk
ZXIgaXMgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1w
b2xpY3ktc3RhcnQuaHRtbD9kZWZhdWx0CitSZWZlcnJlciBpcyBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1zdGFydC5odG1sP2RlZmF1bHQK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1w
b2xpY3ktZGVmYXVsdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZl
cnJlci1wb2xpY3ktZGVmYXVsdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1NDAzZWNlMjI5MjQ2Y2FmNTM5
ZjY1YWJmYWE1MDFmYjI4ZjhiNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1kZWZhdWx0Lmh0bWwKQEAgLTAsMCArMSwx
OSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cD4KK1RoaXMgdGVzdCBjaGVja3MgdGhlIGRlZmF1bHQgcmVmZXJyZXIgcG9saWN5IHdo
ZW4gbmF2aWdhdGluZyBmcm9tIGFuIGluc2VjdXJlCitVUkwgdG8gYW5vdGhlciBpbnNlY3VyZSBV
UkwuIFRoZSB0ZXN0IHBhc3NlcyBpZiB0aGUgcHJpbnRlZCByZWZlcnJlciBpcworaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRt
bD9kZWZhdWx0Cis8L3A+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3Vy
aXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbD9kZWZhdWx0Ij48L2lmcmFt
ZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLWFsd2F5cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1hbHdheXMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlNTFkZTEyNTkxYzFkMTY4OGY1N2M2MjAzNzE4NjNj
MWY2ZGQ1NGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1hbHdheXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhlIGFsd2F5cyByZWZlcnJlciBwb2xpY3kgd2hlbiBu
YXZpZ2F0aW5nIGZyb20gYSBzZWN1cmUgVVJMIHRvIGFuIGluc2VjdXJlIFVSTC4gVGhlIHRlc3Qg
cGFzc2VzIGlmIHRoZSBwcmludGVkIHJlZmVycmVyIGlzIGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMv
c2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1zdGFydC5odG1sP2Fsd2F5cworCisK
KworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCist
LS0tLS0tLQorSFRUUCBSZWZlcmVyIGhlYWRlciBpcyBodHRwczovLzEyNy4wLjAuMTo4NDQzL3Nl
Y3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbD9hbHdheXMKK1JlZmVy
cmVyIGlzIGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVy
LXBvbGljeS1zdGFydC5odG1sP2Fsd2F5cworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1hbHdheXMuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLWFsd2F5cy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFjZTI3ZGQxOWIxNTUwZGZiZDk3NjJkMTliOGZkZDRkMjQxYTI1MzcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVy
cmVyLXBvbGljeS1odHRwcy1hbHdheXMuaHRtbApAQCAtMCwwICsxLDE5IEBACis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPgorVGhpcyB0
ZXN0IGNoZWNrcyB0aGUgYWx3YXlzIHJlZmVycmVyIHBvbGljeSB3aGVuIG5hdmlnYXRpbmcgZnJv
bSBhIHNlY3VyZSBVUkwKK3RvIGFuIGluc2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRo
ZSBwcmludGVkIHJlZmVycmVyIGlzCitodHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L3Jl
c291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbD9hbHdheXMKKzwvcD4KKzxpZnJhbWUg
c3JjPSJodHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1w
b2xpY3ktc3RhcnQuaHRtbD9hbHdheXMiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3kt
aHR0cHMtZGVmYXVsdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1kZWZhdWx0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNDc2YzI2NTVkNGJiMWI1ODBiNmQ1MGJjNDA2NjRmMmNlZDEzNDkwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0
cHMtZGVmYXVsdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0IGNoZWNr
cyB0aGUgZGVmYXVsdCByZWZlcnJlciBwb2xpY3kgd2hlbiBuYXZpZ2F0aW5nIGZyb20gYSBzZWN1
cmUgVVJMIHRvIGFuIGluc2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBwcmludGVk
IHJlZmVycmVyIGlzIGVtcHR5LgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0
aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorSFRUUCBSZWZlcmVyIGhlYWRlciBpcyBl
bXB0eQorUmVmZXJyZXIgaXMgZW1wdHkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtZGVmYXVsdC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtZGVmYXVsdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmUzOTU4MTAyYTcwOGY3YjE0MWRiOGZjZThjYmE2MmZkN2M3OWE3NTgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVy
cmVyLXBvbGljeS1odHRwcy1kZWZhdWx0Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD4KK1RoaXMg
dGVzdCBjaGVja3MgdGhlIGRlZmF1bHQgcmVmZXJyZXIgcG9saWN5IHdoZW4gbmF2aWdhdGluZyBm
cm9tIGEgc2VjdXJlIFVSTAordG8gYW4gaW5zZWN1cmUgVVJMLiBUaGUgdGVzdCBwYXNzZXMgaWYg
dGhlIHByaW50ZWQgcmVmZXJyZXIgaXMgZW1wdHkuCis8L3A+Cis8aWZyYW1lIHNyYz0iaHR0cHM6
Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5LXN0YXJ0
Lmh0bWw/ZGVmYXVsdCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1uZXZl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVy
LXBvbGljeS1odHRwcy1uZXZlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmMxMmVjOTJhZDNi
MTBmNzgyZGE1NDdhNmNkZTc0NzNmMWI5OTMwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW5ldmVyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3QgY2hlY2tzIHRoZSBuZXZlciByZWZl
cnJlciBwb2xpY3kgd2hlbiBuYXZpZ2F0aW5nIGZyb20gYSBzZWN1cmUgVVJMIHRvIGFuIGluc2Vj
dXJlIFVSTC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBwcmludGVkIHJlZmVycmVyIGlzIGVtcHR5
LgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4t
LT4nCistLS0tLS0tLQorSFRUUCBSZWZlcmVyIGhlYWRlciBpcyBlbXB0eQorUmVmZXJyZXIgaXMg
ZW1wdHkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZl
cnJlci1wb2xpY3ktaHR0cHMtbmV2ZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW5ldmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI2MDll
MGE2NGI3MGQ5NzkxYzkwM2YwNjVhYTRiNjViZTQ4MWQ2YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW5ldmVy
Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4
dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD4KK1RoaXMgdGVzdCBjaGVja3MgdGhlIG5ldmVyIHJl
ZmVycmVyIHBvbGljeSB3aGVuIG5hdmlnYXRpbmcgZnJvbSBhIHNlY3VyZSBVUkwgdG8KK2FuIGlu
c2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBwcmludGVkIHJlZmVycmVyIGlzIGVt
cHR5LgorPC9wPgorPGlmcmFtZSBzcmM9Imh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkv
cmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1zdGFydC5odG1sP25ldmVyIj48L2lmcmFtZT4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1vcmlnaW4tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMwZjliODFmYmRhMDdjYmMyMjBiYzhmMDdjNDE0MWM3MjczOTc4
NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
ZmVycmVyLXBvbGljeS1odHRwcy1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K1RoaXMgdGVzdCBjaGVja3MgdGhlIG9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBuYXZpZ2F0
aW5nIGZyb20gYSBzZWN1cmUgVVJMIHRvIGFuIGluc2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFzc2Vz
IGlmIHRoZSBwcmludGVkIHJlZmVycmVyIGlzIGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMKKworCisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0t
LS0tLS0KK0hUVFAgUmVmZXJlciBoZWFkZXIgaXMgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My8KK1Jl
ZmVycmVyIGlzIGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW9yaWdpbi5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMt
b3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjAyNmI3NGY2Y2I3YjU2OTkwNGY0M2M5MzNmOWM3YTRi
NWY2MzVmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW9yaWdpbi5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
CitUaGlzIHRlc3QgY2hlY2tzIHRoZSBvcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gbmF2aWdh
dGluZyBmcm9tIGEgc2VjdXJlIFVSTAordG8gYW4gaW5zZWN1cmUgVVJMLiBUaGUgdGVzdCBwYXNz
ZXMgaWYgdGhlIHByaW50ZWQgcmVmZXJyZXIgaXMKK2h0dHBzOi8vMTI3LjAuMC4xOjg0NDMKKzwv
cD4KKzxpZnJhbWUgc3JjPSJodHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L3Jlc291cmNl
cy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbD9vcmlnaW4iPjwvaWZyYW1lPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZl
cnJlci1wb2xpY3ktbmV2ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktbmV2ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJm
MDRmN2FhNmYxYWRiYWM0OTZiNmEzYTkyY2NmOTcxMmRiYWYyNmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1uZXZlci1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGUgbmV2ZXIg
cmVmZXJyZXIgcG9saWN5IHdoZW4gbmF2aWdhdGluZyBmcm9tIGFuIGluc2VjdXJlIFVSTCB0byBh
bm90aGVyIGluc2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBwcmludGVkIHJlZmVy
cmVyIGlzIGVtcHR5LgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwh
LS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorSFRUUCBSZWZlcmVyIGhlYWRlciBpcyBlbXB0eQor
UmVmZXJyZXIgaXMgZW1wdHkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktbmV2ZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LW5ldmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU1OTY5
NGI0N2U4ZmEzMTRkYjEyZDkwNTNlZGJkMzQ3ZmVlMTcxMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LW5ldmVyLmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cD4KK1RoaXMgdGVzdCBjaGVja3MgdGhlIG5ldmVyIHJlZmVycmVy
IHBvbGljeSB3aGVuIG5hdmlnYXRpbmcgZnJvbSBhbiBpbnNlY3VyZQorVVJMIHRvIGFub3RoZXIg
aW5zZWN1cmUgVVJMLiBUaGUgdGVzdCBwYXNzZXMgaWYgdGhlIHByaW50ZWQgcmVmZXJyZXIgaXMg
ZW1wdHkuCis8L3A+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5
L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbD9uZXZlciI+PC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3JlZmVycmVyLXBvbGljeS1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktb3JpZ2luLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iZmY3MjNjOGExNzMxZWU1MTczYjg5YzkwOTE1ZDU0MjYwNzgzOWJhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xp
Y3ktb3JpZ2luLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3QgY2hlY2tz
IHRoZSBvcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gbmF2aWdhdGluZyBmcm9tIGFuIGluc2Vj
dXJlIFVSTCB0byBhbm90aGVyIGluc2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBw
cmludGVkIHJlZmVycmVyIGlzIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMAorCisKKworLS0tLS0tLS0K
K0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorSFRU
UCBSZWZlcmVyIGhlYWRlciBpcyBodHRwOi8vMTI3LjAuMC4xOjgwMDAvCitSZWZlcnJlciBpcyBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzRlZWMwOWYwNzM2ODI0NjkzNDQ5NDhiOTg5NDJhNzlhYjYyYWQ3NwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LW9yaWdp
bi5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1Rl
eHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+CitUaGlzIHRlc3QgY2hlY2tzIHRoZSBvcmlnaW4g
cmVmZXJyZXIgcG9saWN5IHdoZW4gbmF2aWdhdGluZyBmcm9tIGFuIGluc2VjdXJlCitVUkwgdG8g
YW5vdGhlciBpbnNlY3VyZSBVUkwuIFRoZSB0ZXN0IHBhc3NlcyBpZiB0aGUgcHJpbnRlZCByZWZl
cnJlciBpcworaHR0cDovLzEyNy4wLjAuMTo4MDAwCis8L3A+Cis8aWZyYW1lIHNyYz0iaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQu
aHRtbD9vcmlnaW4iPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xp
Y3ktcmVkaXJlY3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkMWM5NzUwZjYxYWJjZDZhY2Rm
ZWVjZmZkMDYwOGUxNDQyNWNkMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGUgcmVmZXJyZXIgcG9saWN5IGlzIG9i
ZXllZCBhbG9uZyB0aGUgcmVkaXJlY3QgY2hhaW4uIFRoZSB0ZXN0IHBhc3NlcyBpZiB0aGUgcmVm
ZXJyZXIgaXMgaHR0cDovLzEyNy4wLjAuMTo4MDAwCisKKworCistLS0tLS0tLQorRnJhbWU6ICc8
IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCitIVFRQIFJlZmVyZXIg
aGVhZGVyIGlzIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8KK1JlZmVycmVyIGlzIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC8KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRjODBm
ZTc2ODM1YzIxOTIzM2JhNmUyYTc1YjlhOGU5YWQyZmI4MAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0Lmh0
bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgp
OworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD4KK1RoaXMgdGVzdCBjaGVja3MgdGhlIHJlZmVycmVyIHBv
bGljeSBpcyBvYmV5ZWQgYWxvbmcgdGhlIHJlZGlyZWN0IGNoYWluLiAgVGhlCit0ZXN0IHBhc3Nl
cyBpZiB0aGUgcmVmZXJyZXIgaXMgaHR0cDovLzEyNy4wLjAuMTo4MDAwCis8L3A+Cis8aWZyYW1l
IHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1w
b2xpY3ktcmVkaXJlY3QuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWwt
bm9yZWZlcnJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3JlZmVycmVyLXBvbGljeS1yZWwtbm9yZWZlcnJlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTkyMGMxYTU0ZTU3ZGNkODYzZWI2NzM3NmUwMzc2Zjg3MTAwYjdjMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlbC1u
b3JlZmVycmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3QgbmF2aWdh
dGVzIGEgZnJhbWUgYnkgY2xpY2tpbmcgb24gYSBsaW5rIHdpdGggcmVsPW5vcmVmZXJyZXIuIEl0
IHBhc3NlcywgaWYgdGhlIHJlZmVycmVyIGlzIGVtcHR5LCBldmVuIHRob3VnaCB0aGUgcmVmZXJy
ZXIgcG9saWN5IGlzIHNldCB0byBhbHdheXMuCisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCitIVFRQIFJlZmVyZXIgaGVh
ZGVyIGlzIGVtcHR5CitSZWZlcnJlciBpcyBlbXB0eQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWwtbm9yZWZlcnJlci5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVsLW5v
cmVmZXJyZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDczMmM4Y2Q0YjUzNjBjYTdjMDk2NTlhNGM3ZmRj
ZDZmNDAyZjkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9yZWZlcnJlci1wb2xpY3ktcmVsLW5vcmVmZXJyZXIuaHRtbApAQCAtMCwwICsxLDE5IEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwPgorICAgIFRoaXMgdGVzdCBuYXZpZ2F0ZXMgYSBmcmFtZSBieSBjbGlja2luZyBvbiBhIGxp
bmsgd2l0aCByZWw9bm9yZWZlcnJlci4KKyAgICBJdCBwYXNzZXMsIGlmIHRoZSByZWZlcnJlciBp
cyBlbXB0eSwgZXZlbiB0aG91Z2ggdGhlIHJlZmVycmVyIHBvbGljeSBpcworICAgIHNldCB0byBh
bHdheXMuCis8L3A+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5
L3Jlc291cmNlcy9yZWwtbm9yZWZlcnJlci5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2Vz
L3JlZmVycmVyLXBvbGljeS1sb2cucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5LWxvZy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjYwODVhNzg4
ZjNhYmI2ZjY0M2M3OWYzYjE1MjNlZGQ4N2JmYjU1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1sb2cu
cGhwCkBAIC0wLDAgKzEsMjggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24g
bG9nKG1zZykgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5pbm5lckhUTUwg
Kz0gbXNnICsgIjxicj4iOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciByZWZl
cnJlckhlYWRlciA9ICI8P3BocCBlY2hvICRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSA/PiI7Cisg
ICAgaWYgKHJlZmVycmVySGVhZGVyID09ICIiKQorICAgICAgICBsb2coIkhUVFAgUmVmZXJlciBo
ZWFkZXIgaXMgZW1wdHkiKTsKKyAgICBlbHNlCisgICAgICAgIGxvZygiSFRUUCBSZWZlcmVyIGhl
YWRlciBpcyAiICsgcmVmZXJyZXJIZWFkZXIpOworCisgICAgaWYgKGRvY3VtZW50LnJlZmVycmVy
ID09ICIiKQorICAgICAgICBsb2coIlJlZmVycmVyIGlzIGVtcHR5Iik7CisgICAgZWxzZQorICAg
ICAgICBsb2coIlJlZmVycmVyIGlzICIgKyBkb2N1bWVudC5yZWZlcnJlcik7CisKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1w
b2xpY3ktcmVkaXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVz
b3VyY2VzL3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxOWFiZDFm
ZjUyMWZjNWNhZTdhYjI5ZmI1N2FlZWQwYjkzOTcwNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktcmVk
aXJlY3QuaHRtbApAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0i
cmVmZXJyZXIiIGNvbnRlbnQ9Im9yaWdpbiIgLz4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgIGRvY3VtZW50LmxvY2F0aW9uID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcmVz
b3VyY2VzL3JlZGlyZWN0LnBocD91cmw9IiArCisgICAgICAgICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1sb2cucGhwIjsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMv
cmVmZXJyZXItcG9saWN5LXN0YXJ0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNmMz
OTYyMWMyNTY5YjJhY2Q1MzcxMzVhOTk3MGQ2ZDk1NmI1OTc1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5
LXN0YXJ0Lmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+Citm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBtZXRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgibWV0YSIpOworICAgIG1ldGEubmFtZSA9ICJyZWZlcnJlciI7CisgICAgbWV0YS5jb250ZW50
ID0gZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKTsKKyAgICBkb2N1bWVudC5o
ZWFkLmFwcGVuZENoaWxkKG1ldGEpOworICAgIGRvY3VtZW50LmxvY2F0aW9uID0KKyAgICAgICAg
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5
LWxvZy5waHAiOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3Jlc291cmNlcy9yZWwtbm9yZWZlcnJlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvcmVsLW5vcmVmZXJyZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lOGVlMzE3ZGM2Y2UyNmQwMGYxYWU2NzRiM2M0ODI3MzZiNTYwMmE5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvcmVsLW5vcmVm
ZXJyZXIuaHRtbApAQCAtMCwwICsxLDE4IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0i
cmVmZXJyZXIiIGNvbnRlbnQ9ImFsd2F5cyIgLz4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgIHZhciBsaW5rID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxpbmsiKTsKKyAg
ICB2YXIgaWZyYW1lID0gd2luZG93LnBhcmVudC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgiaWZyYW1lIilbMF07CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8obGluay5vZmZzZXRM
ZWZ0ICsgaWZyYW1lLm9mZnNldExlZnQgKyAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxpbmsub2Zmc2V0VG9wICsgaWZyYW1lLm9mZnNldFRvcCArIDIpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGEgaWQ9ImxpbmsiIGhyZWY9Imh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5LWxv
Zy5waHAiIHJlbD0ibm9yZWZlcnJlciI+bGluazwvYT4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115943</attachid>
            <date>2011-11-19 02:27:39 -0800</date>
            <delta_ts>2011-11-21 02:30:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72674-20111119112736.patch</filename>
            <type>text/plain</type>
            <size>53607</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTY2NmY0NTUzMWM2MDE3
MzEzMDE2MzcwMzIyODEwZjMyYjkxNzgyZi4uMTU2ZDZlMTU4YTI2MTE5Y2JmZDI5MmY5ZGJmNzQy
ODA4ODFhNWM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDExLTExLTE4ICBKb2No
ZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVudCBN
ZXRhIHJlZmVycmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MjY3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGh0dHA6Ly93aWtpLndoYXR3Zy5vcmcvd2lraS9NZXRhX3JlZmVycmVyCisKKyAgICAgICAg
VGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWFsd2F5cy5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1kZWZhdWx0
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5
LWh0dHBzLWFsd2F5cy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
ZmVycmVyLXBvbGljeS1odHRwcy1kZWZhdWx0Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW5ldmVyLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW9yaWdpbi5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1uZXZl
ci5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGlj
eS1vcmlnaW4uaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJl
ci1wb2xpY3ktcmVkaXJlY3QuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0
eS9yZWZlcnJlci1wb2xpY3ktcmVsLW5vcmVmZXJyZXIuaHRtbAorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46IHVwZGF0ZWQKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
Ojpwcm9jZXNzUmVmZXJyZXJQb2xpY3kpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlZmVycmVyUG9saWN5KToKKyAgICAgICAgKiBodG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVt
ZW50OjpoYW5kbGVDbGljayk6CisgICAgICAgICogaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGFFbGVtZW50Ojpwcm9jZXNzKToKKyAgICAgICAgKiBs
b2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Omxv
YWRGcmFtZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OmxvYWRJbWFnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQaW5nTG9hZGVyOjpzZW5kUGluZyk6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpy
ZXBvcnRDb250ZW50U2VjdXJpdHlQb2xpY3lWaW9sYXRpb24pOgorICAgICAgICAqIGxvYWRlci9T
dWJmcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6bG9h
ZFN1YmZyYW1lKToKKyAgICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgICogcGFn
ZS9TZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eVBvbGljeTo6
Z2VuZXJhdGVSZWZlcnJlckhlYWRlcik6CisgICAgICAgICogcGFnZS9TZWN1cml0eVBvbGljeS5o
OgorCiAyMDExLTExLTE3ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFRleHRUcmFja0xpc3Qgbm90IHNvcnRlZCBjb3JyZWN0bHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggNTc4Y2YzYzQ5Mzc4YzMxYWQ1OGE5MWUxNzZjZTJiYTgwYmM0MmRi
NS4uOTMxZmFkZjY4NTJmNTVmNGI3NTgwNmIxYWYzNjUzMDI4MGZiODNkYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0xMS0xOCAgSm9jaGVuIEVpc2lu
Z2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgTWV0YSByZWZl
cnJlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2
NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYkZyYW1lLmg6CisgICAgICAgICogcHVibGlj
L1dlYlJlZmVycmVyUG9saWN5Lmg6IEFkZGVkLgorICAgICAgICAqIHB1YmxpYy9XZWJTZWN1cml0
eVBvbGljeS5oOgorICAgICAgICAqIHNyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDoKKyAgICAg
ICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBs
OjpyZWZlcnJlclBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6c2V0UmVm
ZXJyZXJGb3JSZXF1ZXN0KToKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmg6CisgICAgICAg
ICogc3JjL1dlYlNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2VjdXJp
dHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIpOgorCiAyMDExLTExLTE3ICBLZW5pY2hp
IElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIGRv
bid0IGNhbGwgZm9udGNvbmZpZyB0d2ljZSBpbiBjb21wbGV4IHRleHQgcGF0aApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCmluZGV4IDUwNjAwNmE4ZmM0ZDQ2YTcxN2NlYWIzYTA1ZTM2ZWY5YjU4YjA5MDQuLmZiYzE0
ZDRkODE4MDQ0ZmM1OWM4ZmQyYThmMjE1NGUwNTYwMTJmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxMS0xMS0xOCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgTWV0YSByZWZlcnJlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2NzQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL0hvc3Rl
ZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tOgorICAgICAgICAoV2ViS2l0OjpIb3N0ZWROZXRzY2Fw
ZVBsdWdpblN0cmVhbTo6SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0pOgorICAgICAgICAqIFBs
dWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW06CisgICAgICAgIChXZWJOZXRzY2FwZVBs
dWdpblN0cmVhbTo6V2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0pOgorCiAyMDExLTExLTE2ICBEYW4g
QmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0L21hYyBwYXJ0IG9m
IDxyZGFyOi8vcHJvYmxlbS8xMDI2MjI0Mj4gQWRkIEFQSSBmb3IgcGFnaW5hdGVkIGRpc3BsYXkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA5ZjI0ZTNlNmEzOTc2NzcxOTIyZjExYzNhZDc2NzBhNjZlYjU1OTEzLi45
YzMwOTlkOGUxN2MwYzQ3YTk3MDFlYzZlZTMzNGE1YTEwMjk5ZTQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTEtMTEtMTggIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IE1ldGEgcmVmZXJyZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyNjc0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmxvYWRVUkwpOgorCiAy
MDExLTExLTE3ICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJh
QG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgW1F0XSBFeHBvc2Ugc2V0VXNlVHJhZGl0aW9uYWxE
ZXNrdG9wQmVoYXZpb3VyKCkgaW4gUU1MIGV4cGVyaW1lbnRhbCBBUEkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KaW5kZXggMTkzOThiMWM3MDY4YTY4NjNmNjY2ZjJkODYzMWY2MGU0MGQ1NjMwMy4uN2E4ZjNk
YWVlMDM5ZmI0ZWE2ODllZmUzMGRjZmU0YTU3OGQ3MzkzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
QEAgLTM5MSw2ICszOTEsNyBAQCBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luNmNyZWF0ZUVS
S04zV1RGNlN0cmluZ0VTNF9pCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luNmNyZWF0ZUVS
S05TXzRLVVJMRWIKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlQb2xpY3kxOHNldExvY2FsTG9hZFBv
bGljeUVOUzBfMTVMb2NhbExvYWRQb2xpY3lFCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5UG9saWN5
MThzaG91bGRIaWRlUmVmZXJyZXJFUktOU180S1VSTEVSS04zV1RGNlN0cmluZ0UKK19fWk43V2Vi
Q29yZTE0U2VjdXJpdHlQb2xpY3kyMmdlbmVyYXRlUmVmZXJyZXJIZWFkZXJFTlMwXzE0UmVmZXJy
ZXJQb2xpY3lFUktOU180S1VSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJp
dHlQb2xpY3kyN3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0c0V2CiBfX1pON1dlYkNvcmUxNFNl
Y3VyaXR5UG9saWN5MjlhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUVSS05TXzE0U2VjdXJp
dHlPcmlnaW5FUktOM1dURjZTdHJpbmdFUzdfYgogX19aTjdXZWJDb3JlMTRTZWN1cml0eVBvbGlj
eTMycmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlFUktOU18xNFNlY3VyaXR5T3JpZ2lu
RVJLTjNXVEY2U3RyaW5nRVM3X2IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGM1YjlkOGIw
NTViZjY0ZTA3ZTNkZDJhMmIwNTY5YTgxYWM0NTgxMDYuLjYzMzJjNjYwMDAwZDAxNjdjYWE5YWIz
ZjVkMmQ1OWI4MWNiZmY0ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDIzLDYgKzQy
Myw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwg
Ym9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICNlbmRpZgogICAgICwgbV9sb2FkRXZlbnREZWxh
eUNvdW50KDApCiAgICAgLCBtX2xvYWRFdmVudERlbGF5VGltZXIodGhpcywgJkRvY3VtZW50Ojps
b2FkRXZlbnREZWxheVRpbWVyRmlyZWQpCisgICAgLCBtX3JlZmVycmVyUG9saWN5KFNlY3VyaXR5
UG9saWN5OjpSZWZlcnJlclBvbGljeURlZmF1bHQpCiAgICAgLCBtX2RpcmVjdGlvblNldE9uRG9j
dW1lbnRFbGVtZW50KGZhbHNlKQogICAgICwgbV93cml0aW5nTW9kZVNldE9uRG9jdW1lbnRFbGVt
ZW50KGZhbHNlKQogICAgICwgbV93cml0ZVJlY3Vyc2lvbklzVG9vRGVlcChmYWxzZSkKQEAgLTI3
NDIsNiArMjc0MywyMCBAQCB2b2lkIERvY3VtZW50Ojpwcm9jZXNzVmlld3BvcnQoY29uc3QgU3Ry
aW5nJiBmZWF0dXJlcykKICAgICBmcmFtZS0+cGFnZSgpLT51cGRhdGVWaWV3cG9ydEFyZ3VtZW50
cygpOwogfQogCit2b2lkIERvY3VtZW50Ojpwcm9jZXNzUmVmZXJyZXJQb2xpY3koY29uc3QgU3Ry
aW5nJiBwb2xpY3kpCit7CisgICAgQVNTRVJUKCFwb2xpY3kuaXNOdWxsKCkpOworCisgICAgbV9y
ZWZlcnJlclBvbGljeSA9IFNlY3VyaXR5UG9saWN5OjpSZWZlcnJlclBvbGljeURlZmF1bHQ7CisK
KyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocG9saWN5LCAibmV2ZXIiKSkKKyAgICAgICAgbV9y
ZWZlcnJlclBvbGljeSA9IFNlY3VyaXR5UG9saWN5OjpSZWZlcnJlclBvbGljeU5ldmVyOworICAg
IGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHBvbGljeSwgImFsd2F5cyIpKQorICAgICAgICBt
X3JlZmVycmVyUG9saWN5ID0gU2VjdXJpdHlQb2xpY3k6OlJlZmVycmVyUG9saWN5QWx3YXlzOwor
ICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHBvbGljeSwgIm9yaWdpbiIpKQorICAgICAg
ICBtX3JlZmVycmVyUG9saWN5ID0gU2VjdXJpdHlQb2xpY3k6OlJlZmVycmVyUG9saWN5T3JpZ2lu
OworfQorCiBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIERvY3VtZW50OjpwcmVwYXJlTW91
c2VFdmVudChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgTGF5b3V0UG9pbnQm
IGRvY3VtZW50UG9pbnQsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpCiB7CiAgICAg
QVNTRVJUKCFyZW5kZXJlcigpIHx8IHJlbmRlcmVyKCktPmlzUmVuZGVyVmlldygpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggZTgyNGYyOTUyNjM3NGUzYzEzMjk0Y2Y5YzhkODY0ZTRlYWJlZGIx
MC4uZGQwNzZiMDMxZTI5MDQ4NDE2MjM0NGU4YjQwZDQ3NTgwYjYyMTE3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgog
I2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJTdHJpbmdXaXRo
RGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJUcmVlU2NvcGUuaCIK
QEAgLTMyMyw2ICszMjQsOCBAQCBwdWJsaWM6CiAKICAgICBWaWV3cG9ydEFyZ3VtZW50cyB2aWV3
cG9ydEFyZ3VtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRBcmd1bWVudHM7IH0KIAor
ICAgIFNlY3VyaXR5UG9saWN5OjpSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVmZXJyZXJQb2xpY3k7IH0KKwogICAgIERvY3VtZW50VHlwZSogZG9jdHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jVHlwZS5nZXQoKTsgfQogCiAgICAgRE9NSW1wbGVtZW50
YXRpb24qIGltcGxlbWVudGF0aW9uKCk7CkBAIC04MDUsNiArODA4LDcgQEAgcHVibGljOgogICAg
ICAqLwogICAgIHZvaWQgcHJvY2Vzc0h0dHBFcXVpdihjb25zdCBTdHJpbmcmIGVxdWl2LCBjb25z
dCBTdHJpbmcmIGNvbnRlbnQpOwogICAgIHZvaWQgcHJvY2Vzc1ZpZXdwb3J0KGNvbnN0IFN0cmlu
ZyYgZmVhdHVyZXMpOworICAgIHZvaWQgcHJvY2Vzc1JlZmVycmVyUG9saWN5KGNvbnN0IFN0cmlu
ZyYgcG9saWN5KTsKIAogICAgIC8vIFJldHVybnMgdGhlIG93bmluZyBlbGVtZW50IGluIHRoZSBw
YXJlbnQgZG9jdW1lbnQuCiAgICAgLy8gUmV0dXJucyAwIGlmIHRoaXMgaXMgdGhlIHRvcCBsZXZl
bCBkb2N1bWVudC4KQEAgLTE0MTQsNiArMTQxOCw4IEBAIHByaXZhdGU6CiAKICAgICBWaWV3cG9y
dEFyZ3VtZW50cyBtX3ZpZXdwb3J0QXJndW1lbnRzOwogCisgICAgU2VjdXJpdHlQb2xpY3k6OlJl
ZmVycmVyUG9saWN5IG1fcmVmZXJyZXJQb2xpY3k7CisKICAgICBib29sIG1fZGlyZWN0aW9uU2V0
T25Eb2N1bWVudEVsZW1lbnQ7CiAgICAgYm9vbCBtX3dyaXRpbmdNb2RlU2V0T25Eb2N1bWVudEVs
ZW1lbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXgg
YmM1MmZjOTVlNTgwZjE5YWFhOGI5ZmUyNmEyMTRjZjI4MDJjMzZjMi4uOWQwMjMzMjExZjI4ODFl
YTFjODYyZWIyMWZlZGMyMTlhNDY0OTUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5jcHAKQEAgLTUwNCw4ICs1MDQsOCBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50
OjpoYW5kbGVDbGljayhFdmVudCogZXZlbnQpCiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1
ZXN0KGt1cmwpOwogCiAgICAgICAgIGlmICghaGFzUmVsKFJlbGF0aW9uTm9SZWZlcnJlcikpIHsK
LSAgICAgICAgICAgIFN0cmluZyByZWZlcnJlciA9IGZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdS
ZWZlcnJlcigpOwotICAgICAgICAgICAgaWYgKCFyZWZlcnJlci5pc0VtcHR5KCkgJiYgIVNlY3Vy
aXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIoa3VybCwgcmVmZXJyZXIpKQorICAgICAgICAg
ICAgU3RyaW5nIHJlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFk
ZXIoZG9jdW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKSwga3VybCwgZnJhbWUtPmxvYWRlcigpLT5v
dXRnb2luZ1JlZmVycmVyKCkpOworICAgICAgICAgICAgaWYgKCFyZWZlcnJlci5pc0VtcHR5KCkp
CiAgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIocmVmZXJyZXIpOwogICAg
ICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5hZGRFeHRyYUZpZWxkc1RvTWFpblJlc291cmNlUmVx
dWVzdChyZXF1ZXN0KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWV0YUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1l
bnQuY3BwCmluZGV4IDBmYThjOTI5NTY4NmMxMjQyOTY4NjE5MGY5YWQwOWNhOGI5OWI2MjcuLjI1
ZjEyZWRmYTg0ZmI5OWE2MmQ1NjUxNmRlYjE4Yzk3Zjk4N2ZkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZXRhRWxlbWVudC5jcHAKQEAgLTcyLDYgKzcyLDkgQEAgdm9pZCBIVE1MTWV0YUVs
ZW1lbnQ6OnByb2Nlc3MoKQogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lKCksICJ2aWV3
cG9ydCIpKQogICAgICAgICBkb2N1bWVudCgpLT5wcm9jZXNzVmlld3BvcnQoY29udGVudFZhbHVl
KTsKIAorICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lKCksICJyZWZlcnJlciIpKQorICAg
ICAgICBkb2N1bWVudCgpLT5wcm9jZXNzUmVmZXJyZXJQb2xpY3koY29udGVudFZhbHVlKTsKKwog
ICAgIC8vIEdldCB0aGUgZG9jdW1lbnQgdG8gcHJvY2VzcyB0aGUgdGFnLCBidXQgb25seSBpZiB3
ZSdyZSBhY3R1YWxseSBwYXJ0IG9mIERPTSB0cmVlIChjaGFuZ2luZyBhIG1ldGEgdGFnIHdoaWxl
CiAgICAgLy8gaXQncyBub3QgaW4gdGhlIHRyZWUgc2hvdWxkbid0IGhhdmUgYW55IGVmZmVjdCBv
biB0aGUgZG9jdW1lbnQpCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBodHRwRXF1aXZWYWx1ZSA9
IGZhc3RHZXRBdHRyaWJ1dGUoaHR0cF9lcXVpdkF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKaW5kZXggODRlZDRkMjRkZDhjODQwNDZiZGI0MTBiNzFkNmRhM2Y0NjNhM2Vh
Ni4uMTJiNTRkNmFlYmE3Y2JlYzliNDdiMDQ4NzFlNTlmMWI1MmQzNGUxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xMTM4LDE0ICsxMTM4LDEyIEBAIHZvaWQgRnJh
bWVMb2FkZXI6OmxvYWRGcmFtZVJlcXVlc3QoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVz
dCwgYm9vbCBsb2NrSGlzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTdHJpbmcgcmVm
ZXJyZXI7CiAgICAgU3RyaW5nIGFyZ3NSZWZlcnJlciA9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCkuaHR0cFJlZmVycmVyKCk7Ci0gICAgaWYgKCFhcmdzUmVmZXJyZXIuaXNFbXB0eSgpKQotICAg
ICAgICByZWZlcnJlciA9IGFyZ3NSZWZlcnJlcjsKLSAgICBlbHNlCi0gICAgICAgIHJlZmVycmVy
ID0gbV9vdXRnb2luZ1JlZmVycmVyOworICAgIGlmIChhcmdzUmVmZXJyZXIuaXNFbXB0eSgpKQor
ICAgICAgICBhcmdzUmVmZXJyZXIgPSBtX291dGdvaW5nUmVmZXJyZXI7CiAKLSAgICBpZiAoU2Vj
dXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcih1cmwsIHJlZmVycmVyKSB8fCBzaG91bGRT
ZW5kUmVmZXJyZXIgPT0gTmV2ZXJTZW5kUmVmZXJyZXIpCisgICAgU3RyaW5nIHJlZmVycmVyID0g
U2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIobV9mcmFtZS0+ZG9jdW1lbnQo
KS0+cmVmZXJyZXJQb2xpY3koKSwgdXJsLCBhcmdzUmVmZXJyZXIpOworICAgIGlmIChzaG91bGRT
ZW5kUmVmZXJyZXIgPT0gTmV2ZXJTZW5kUmVmZXJyZXIpCiAgICAgICAgIHJlZmVycmVyID0gU3Ry
aW5nKCk7CiAgICAgCiAgICAgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZTsKQEAgLTI1OTQsOSArMjU5
Miw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIGluUmVxdWVzdCwgY29uc3QgU3RyaW5nCiAKIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2Fk
ZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYg
ZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7
Ci0gICAgU3RyaW5nIHJlZmVycmVyID0gbV9vdXRnb2luZ1JlZmVycmVyOwotICAgIGlmIChTZWN1
cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVycmVyKHJlcXVlc3QudXJsKCksIHJlZmVycmVyKSkK
LSAgICAgICAgcmVmZXJyZXIgPSBTdHJpbmcoKTsKKyAgICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1l
bnQoKSk7CisgICAgU3RyaW5nIHJlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVm
ZXJyZXJIZWFkZXIobV9mcmFtZS0+ZG9jdW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKSwgcmVxdWVz
dC51cmwoKSwgbV9vdXRnb2luZ1JlZmVycmVyKTsKICAgICAKICAgICBSZXNvdXJjZVJlcXVlc3Qg
aW5pdGlhbFJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGluaXRpYWxSZXF1ZXN0LnNldFRpbWVvdXRJ
bnRlcnZhbCgxMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKaW5kZXggMWFmOTJl
MGQxNjU0YzkyNWFkODE1ZDQyNjJkMzEwNzYxODU3OWZhYS4uZThkYTRhYTUyZWRlNjM2MGQwZGQ4
MjdiMjAyNmViZTM4NGI0YjMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bp
bmdMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcApA
QCAtNjAsOCArNjAsOSBAQCB2b2lkIFBpbmdMb2FkZXI6OmxvYWRJbWFnZShGcmFtZSogZnJhbWUs
IGNvbnN0IEtVUkwmIHVybCkKICAgICByZXF1ZXN0LnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1
ZXN0OjpUYXJnZXRJc0ltYWdlKTsKICNlbmRpZgogICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZp
ZWxkKCJDYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9MCIpOwotICAgIGlmICghU2VjdXJpdHlQb2xp
Y3k6OnNob3VsZEhpZGVSZWZlcnJlcihyZXF1ZXN0LnVybCgpLCBmcmFtZS0+bG9hZGVyKCktPm91
dGdvaW5nUmVmZXJyZXIoKSkpCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKGZyYW1l
LT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpKTsKKyAgICBTdHJpbmcgcmVmZXJyZXIgPSBT
ZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihmcmFtZS0+ZG9jdW1lbnQoKS0+
cmVmZXJyZXJQb2xpY3koKSwgcmVxdWVzdC51cmwoKSwgZnJhbWUtPmxvYWRlcigpLT5vdXRnb2lu
Z1JlZmVycmVyKCkpOworICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQorICAgICAgICByZXF1
ZXN0LnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7CiAgICAgZnJhbWUtPmxvYWRlcigpLT5hZGRF
eHRyYUZpZWxkc1RvU3VicmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpOwogICAgIE93blB0cjxQaW5n
TG9hZGVyPiBwaW5nTG9hZGVyID0gYWRvcHRQdHIobmV3IFBpbmdMb2FkZXIoZnJhbWUsIHJlcXVl
c3QpKTsKIApAQCAtODksOCArOTAsMTEgQEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFt
ZSogZnJhbWUsIGNvbnN0IEtVUkwmIHBpbmdVUkwsIGNvbnN0IEtVUkwmIGRlc3RpbmEKICAgICBy
ZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZCgiUGluZy1UbyIsIGRlc3RpbmF0aW9uVVJMKTsKICAg
ICBpZiAoIVNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIocGluZ1VSTCwgZnJhbWUt
PmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpKSB7CiAgICAgICByZXF1ZXN0LnNldEhUVFBI
ZWFkZXJGaWVsZCgiUGluZy1Gcm9tIiwgZnJhbWUtPmRvY3VtZW50KCktPnVybCgpKTsKLSAgICAg
IGlmICghc291cmNlT3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChwaW5nT3JpZ2luLmdldCgp
KSkKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIoZnJhbWUtPmxvYWRlcigpLT5vdXRn
b2luZ1JlZmVycmVyKCkpOworICAgICAgaWYgKCFzb3VyY2VPcmlnaW4tPmlzU2FtZVNjaGVtZUhv
c3RQb3J0KHBpbmdPcmlnaW4uZ2V0KCkpKSB7CisgICAgICAgICAgU3RyaW5nIHJlZmVycmVyID0g
U2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoZnJhbWUtPmRvY3VtZW50KCkt
PnJlZmVycmVyUG9saWN5KCksIHBpbmdVUkwsIGZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZl
cnJlcigpKTsKKyAgICAgICAgICBpZiAoIXJlZmVycmVyLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
ICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIocmVmZXJyZXIpOworICAgICAgfQogICAgIH0KICAg
ICBPd25QdHI8UGluZ0xvYWRlcj4gcGluZ0xvYWRlciA9IGFkb3B0UHRyKG5ldyBQaW5nTG9hZGVy
KGZyYW1lLCByZXF1ZXN0KSk7CiAKQEAgLTExMCw4ICsxMTQsOSBAQCB2b2lkIFBpbmdMb2FkZXI6
OnJlcG9ydENvbnRlbnRTZWN1cml0eVBvbGljeVZpb2xhdGlvbihGcmFtZSogZnJhbWUsIGNvbnN0
IEtVUkwmCiAgICAgcmVxdWVzdC5zZXRIVFRQQm9keShyZXBvcnQpOwogICAgIGZyYW1lLT5sb2Fk
ZXIoKS0+YWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChyZXF1ZXN0KTsKIAotICAg
IGlmICghU2VjdXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcihyZXBvcnRVUkwsIGZyYW1l
LT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpKSkKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQ
UmVmZXJyZXIoZnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpOworICAgIFN0cmlu
ZyByZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKGZyYW1l
LT5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpLCByZXBvcnRVUkwsIGZyYW1lLT5sb2FkZXIo
KS0+b3V0Z29pbmdSZWZlcnJlcigpKTsKKyAgICBpZiAoIXJlZmVycmVyLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIocmVmZXJyZXIpOwogICAgIE93blB0cjxQaW5n
TG9hZGVyPiBwaW5nTG9hZGVyID0gYWRvcHRQdHIobmV3IFBpbmdMb2FkZXIoZnJhbWUsIHJlcXVl
c3QpKTsKIAogICAgIC8vIExlYWsgdGhlIHBpbmcgbG9hZGVyLCBzaW5jZSBpdCB3aWxsIGtpbGwg
aXRzZWxmIGFzIHNvb24gYXMgaXQgcmVjZWl2ZXMgYSByZXNwb25zZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmluZGV4IDQ3YzNlMTBmMzE5MTI3Yjg5NTIxMTUyMDVk
MTI5YzE3YjgwMWZkZWQuLjIzNmM3Mjg5MzcyMWZmNGY0NTllNDYzZTI4NWFlYWVlNDExNDE0NzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcApAQCAtMjYyLDggKzI2
Miw4IEBAIEZyYW1lKiBTdWJmcmFtZUxvYWRlcjo6bG9hZFN1YmZyYW1lKEhUTUxGcmFtZU93bmVy
RWxlbWVudCogb3duZXJFbGVtZW50LCBjb25zdCBLCiAgICAgaWYgKCFvd25lckVsZW1lbnQtPmRv
Y3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0NoaWxkRnJhbWVGcm9tU291
cmNlKHVybCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgYm9vbCBoaWRlUmVmZXJyZXIgPSBT
ZWN1cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVycmVyKHVybCwgcmVmZXJyZXIpOwotICAgIFJl
ZlB0cjxGcmFtZT4gZnJhbWUgPSBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmNyZWF0ZUZy
YW1lKHVybCwgbmFtZSwgb3duZXJFbGVtZW50LCBoaWRlUmVmZXJyZXIgPyBTdHJpbmcoKSA6IHJl
ZmVycmVyLCBhbGxvd3NTY3JvbGxpbmcsIG1hcmdpbldpZHRoLCBtYXJnaW5IZWlnaHQpOworICAg
IFN0cmluZyByZWZlcnJlclRvVXNlID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJI
ZWFkZXIob3duZXJFbGVtZW50LT5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpLCB1cmwsIHJl
ZmVycmVyKTsKKyAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gbV9mcmFtZS0+bG9hZGVyKCktPmNs
aWVudCgpLT5jcmVhdGVGcmFtZSh1cmwsIG5hbWUsIG93bmVyRWxlbWVudCwgcmVmZXJyZXJUb1Vz
ZSwgYWxsb3dzU2Nyb2xsaW5nLCBtYXJnaW5XaWR0aCwgbWFyZ2luSGVpZ2h0KTsKIAogICAgIGlm
ICghZnJhbWUpICB7CiAgICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jaGVja0NhbGxJbXBsaWNp
dENsb3NlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApp
bmRleCBkNWY2NjhiMTdmZDk5MjQxODM5NTM3NjYwNGMyN2E3OWZjY2JmNjE2Li5iNTg5NjYyYTUx
YjQwMTA1MWY3OTg4NTc0YjI5NTY5MjAzNGE1ZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKQEAgLTkwLDcgKzkwLDggQEAgUGFzc1JlZlB0cjxTdWJy
ZXNvdXJjZUxvYWRlcj4gU3VicmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShGcmFtZSogZnJhbWUsIENh
Y2hlZFJlc28KICAgICAgICAgb3V0Z29pbmdPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyhvdXRnb2luZ1JlZmVycmVyKS0+dG9TdHJpbmcoKTsKICAgICB9CiAKLSAgICBp
ZiAoU2VjdXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcihyZXF1ZXN0LnVybCgpLCBvdXRn
b2luZ1JlZmVycmVyKSkKKyAgICBvdXRnb2luZ1JlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6Omdl
bmVyYXRlUmVmZXJyZXJIZWFkZXIoZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCks
IHJlcXVlc3QudXJsKCksIG91dGdvaW5nUmVmZXJyZXIpOworICAgIGlmIChvdXRnb2luZ1JlZmVy
cmVyLmlzRW1wdHkoKSkKICAgICAgICAgbmV3UmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwog
ICAgIGVsc2UgaWYgKCFyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpKQogICAgICAgICBuZXdSZXF1ZXN0
LnNldEhUVFBSZWZlcnJlcihvdXRnb2luZ1JlZmVycmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eVBvbGljeS5jcHAKaW5kZXggMzFjYWMwNjVmZWVmZTYwODEyMjAxNzI0ZTNlYzcxZWRmMGQ2
MWQ5MC4uZjllNGQwNDA1MWQ3YzA5MDRlNmQ5OWY1MjIxNmQyODZiNmQ5ZjlkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5jcHAKQEAgLTY0LDYgKzY0LDMxIEBAIGJvb2wgU2Vj
dXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgcmVmZXJyZXIpCiAgICAgcmV0dXJuICFVUkxJc1NlY3VyZVVSTDsKIH0KIAorU3RyaW5n
IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKFJlZmVycmVyUG9saWN5IHJl
ZmVycmVyUG9saWN5LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCit7
CisgICAgaWYgKHJlZmVycmVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
CisgICAgc3dpdGNoIChyZWZlcnJlclBvbGljeSkgeworICAgIGNhc2UgUmVmZXJyZXJQb2xpY3lO
ZXZlcjoKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIGNhc2UgUmVmZXJyZXJQb2xpY3lB
bHdheXM6CisgICAgICAgIHJldHVybiByZWZlcnJlcjsKKyAgICBjYXNlIFJlZmVycmVyUG9saWN5
T3JpZ2luOiB7CisgICAgICAgIFN0cmluZyBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyhyZWZlcnJlciktPnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChvcmlnaW4gPT0g
Im51bGwiKQorICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICAvLyBBIHNlY3Vy
aXR5IG9yaWdpbiBpcyBub3QgYSBjYW5vbmljYWwgVVJMIGFzIGl0IGxhY2tzIGEgcGF0aC4gQWRk
IC8KKyAgICAgICAgLy8gdG8gdHVybiBpdCBpbnRvIGEgY2Fub25pY2FsIFVSTCB3ZSBjYW4gdXNl
IGFzIHJlZmVycmVyLgorICAgICAgICByZXR1cm4gb3JpZ2luICsgIi8iOworICAgIH0KKyAgICBj
YXNlIFJlZmVycmVyUG9saWN5RGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAg
cmV0dXJuIHNob3VsZEhpZGVSZWZlcnJlcih1cmwsIHJlZmVycmVyKSA/IFN0cmluZygpIDogcmVm
ZXJyZXI7Cit9CisKIHZvaWQgU2VjdXJpdHlQb2xpY3k6OnNldExvY2FsTG9hZFBvbGljeShMb2Nh
bExvYWRQb2xpY3kgcG9saWN5KQogewogICAgIGxvY2FsTG9hZFBvbGljeSA9IHBvbGljeTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlQb2xpY3kuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2VjdXJpdHlQb2xpY3kuaAppbmRleCA3MDQ0MWYzZDRlZWFkMzdhNjg4MjJk
YzdkODY4YTYzOTIzNTcyNGU1Li40MWY4ODdmMTlhZThlOWViYTczYjVjOWUyMjgyZDA4NDk2MjBi
YWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5oCkBAIC0zOCw4ICszOCwyNSBA
QCBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIAogY2xhc3MgU2VjdXJpdHlQb2xpY3kgewogcHVibGlj
OgorICAgIGVudW0gUmVmZXJyZXJQb2xpY3kgeworICAgICAgICBSZWZlcnJlclBvbGljeUFsd2F5
cywKKyAgICAgICAgUmVmZXJyZXJQb2xpY3lEZWZhdWx0LAorICAgICAgICBSZWZlcnJlclBvbGlj
eU5ldmVyLAorICAgICAgICAvLyBTYW1lIGFzIFJlZmVycmVyUG9saWN5QWx3YXlzLCBleGNlcHQg
dGhhdCBvbmx5IHRoZSBvcmlnaW4gb2YgdGhlCisgICAgICAgIC8vIHJlZmVycmluZyBVUkwgaXMg
c2VuZC4KKyAgICAgICAgUmVmZXJyZXJQb2xpY3lPcmlnaW4sCisgICAgfTsKKworICAgIC8vIFRy
dWUgaWYgdGhlIHJlZmVycmVyIHNob3VsZCBiZSBvbWl0dGVkIGFjY29yZGluZyB0byB0aGUKKyAg
ICAvLyBSZWZlcnJlclBvbGljeURlZmF1bHQuIElmIHlvdSBpbnRlbmQgdG8gc2VuZCBhIHJlZmVy
cmVyIGhlYWRlciwgeW91CisgICAgLy8gc2hvdWxkIHVzZSBnZW5lcmF0ZVJlZmVycmVySGVhZGVy
IGluc3RlYWQuCiAgICAgc3RhdGljIGJvb2wgc2hvdWxkSGlkZVJlZmVycmVyKGNvbnN0IEtVUkwm
LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKTsKIAorICAgIC8vIFJldHVybnMgdGhlIHJlZmVycmVy
IG1vZGlmaWVkIGFjY29yZGluZyB0byB0aGUgcmVmZXJyZXIgcG9saWN5IGZvciBhCisgICAgLy8g
bmF2aWdhdGlvbiB0byBhIGdpdmVuIFVSTC4gSWYgdGhlIHJlZmVycmVyIHJldHVybmVkIGlzIGVt
cHR5LCB0aGUKKyAgICAvLyByZWZlcnJlciBoZWFkZXIgc2hvdWxkIGJlIG9taXR0ZWQuCisgICAg
c3RhdGljIFN0cmluZyBnZW5lcmF0ZVJlZmVycmVySGVhZGVyKFJlZmVycmVyUG9saWN5LCBjb25z
dCBLVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlcik7CisKICAgICBlbnVtIExvY2FsTG9hZFBv
bGljeSB7CiAgICAgICAgIEFsbG93TG9jYWxMb2Fkc0ZvckFsbCwgLy8gTm8gcmVzdHJpY3Rpb24g
b24gbG9jYWwgbG9hZHMuCiAgICAgICAgIEFsbG93TG9jYWxMb2Fkc0ZvckxvY2FsQW5kU3Vic3Rp
dHV0ZURhdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggYmE4NTRlYWJjZDZhZjg3
NDViNzFhYWI5YzE3NjUyM2MxMGU5OTI0OS4uMjczN2EwY2E1YWNjNDk2MjY0Y2JhNWQ4YTI5MmEy
YTdhZTVkODJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMjc1LDYgKzI3NSw3
IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQcml2YXRlT3duUHRyLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViUmFuZ2UuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJSZWN0LmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUmVmZXJyZXJQb2xpY3kuaCcs
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJSZWd1bGFyRXhwcmVzc2lvbi5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYlJ1bnRpbWVGZWF0dXJlcy5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYlNjcm9sbGJhci5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJGcmFtZS5oCmluZGV4IDczZDQ0MjNiYjYxODYzNGY2YjRjOTUyMjkwMzJhNzQ5OWMwNzM1MzYu
Ljc5Yjc0Njc5ZjE4NGIzMjMyZjYxZDcxYmNiMjljMWJiMjRjOWQzMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUg
IldlYkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJXZWJJY29uVVJMLmgiCiAjaW5jbHVkZSAiV2Vi
Tm9kZS5oIgorI2luY2x1ZGUgIldlYlJlZmVycmVyUG9saWN5LmgiCiAjaW5jbHVkZSAiV2ViVVJM
LmgiCiAjaW5jbHVkZSAiV2ViVVJMTG9hZGVyT3B0aW9ucy5oIgogCkBAIC0xNDAsNiArMTQxLDkg
QEAgcHVibGljOgogICAgIC8vIFVSTHMKICAgICB2aXJ0dWFsIFdlYlZlY3RvcjxXZWJJY29uVVJM
PiBpY29uVVJMcyhpbnQgaWNvblR5cGVzKSBjb25zdCA9IDA7CiAKKyAgICAvLyBUaGUgcmVmZXJy
ZXIgcG9saWN5IG9mIHRoZSBkb2N1bWVudCBhc3NvY2lhdGVkIHdpdGggdGhpcyBmcmFtZS4KKyAg
ICB2aXJ0dWFsIFdlYlJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5KCkgY29uc3QgPSAwOwor
CiAKICAgICAvLyBHZW9tZXRyeSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJSZWZlcnJlclBvbGljeS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViUmVmZXJyZXJQb2xpY3kuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjcxMGZiMjIzNDkwMzljYmI2
ZGY3ZGJlMmE1ZTRiYjE3MDQwODBjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViUmVmZXJyZXJQb2xpY3kuaApAQCAtMCwwICsxLDQ1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXZWJSZWZlcnJlclBvbGljeV9oCisjZGVmaW5lIFdlYlJlZmVycmVyUG9saWN5X2gKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2VudW0gV2ViUmVmZXJyZXJQb2xpY3kgeworICAgIFdlYlJlZmVy
cmVyUG9saWN5QWx3YXlzLAorICAgIFdlYlJlZmVycmVyUG9saWN5RGVmYXVsdCwKKyAgICBXZWJS
ZWZlcnJlclBvbGljeU5ldmVyLAorICAgIFdlYlJlZmVycmVyUG9saWN5T3JpZ2luLAorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlQb2xpY3kuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlNlY3VyaXR5UG9saWN5LmgKaW5kZXggNzM1YjZlMDMyOGRmMDFiZTlj
M2M3NDhlZGE5ZDk0NTFmY2Q3YmJmYi4uZmUxM2EyM2UyOGE0OTFlZDhjNjQ2MTNlODhhOGIyNmJk
YTg3OGI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2Vj
dXJpdHlQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1
cml0eVBvbGljeS5oCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFdlYlNlY3VyaXR5UG9saWN5
X2gKIAogI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYlJlZmVycmVyUG9saWN5
LmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC03MSw3ICs3MiwxMyBAQCBwdWJsaWM6CiAK
ICAgICAvLyBSZXR1cm5zIHdoZXRoZXIgdGhlIHVybCBzaG91bGQgYmUgYWxsb3dlZCB0byBzZWUg
dGhlIHJlZmVycmVyCiAgICAgLy8gYmFzZWQgb24gdGhlaXIgcmVzcGVjdGl2ZSBwcm90b2NvbHMu
Ci0gICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBzaG91bGRIaWRlUmVmZXJyZXIoY29uc3Qg
V2ViVVJMJiB1cmwsIGNvbnN0IFdlYlN0cmluZyYgcmVmZXJyZXIpOworICAgIC8vIEZJWE1FOiBy
ZW1vdmUgdGhpcyBmdW5jdGlvbiBvbmNlIHRoZSBjaHJvbWl1bSBzaWRlIGhhcyBsYW5kZWQuCisg
ICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBzaG91bGRIaWRlUmVmZXJyZXIoY29uc3QgV2Vi
VVJMJiwgY29uc3QgV2ViU3RyaW5nJiByZWZlcnJlcik7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBy
ZWZlcnJlciBtb2RpZmllZCBhY2NvcmRpbmcgdG8gdGhlIHJlZmVycmVyIHBvbGljeSBmb3IgYQor
ICAgIC8vIG5hdmlnYXRpb24gdG8gYSBnaXZlbiBVUkwuIElmIHRoZSByZWZlcnJlciByZXR1cm5l
ZCBpcyBlbXB0eSwgdGhlCisgICAgLy8gcmVmZXJyZXIgaGVhZGVyIHNob3VsZCBiZSBvbWl0dGVk
LgorICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYlN0cmluZyBnZW5lcmF0ZVJlZmVycmVySGVh
ZGVyKFdlYlJlZmVycmVyUG9saWN5LCBjb25zdCBXZWJVUkwmLCBjb25zdCBXZWJTdHJpbmcmIHJl
ZmVycmVyKTsKIAogICAgIC8vIFJlZ2lzdGVycyBhbiBVUkwgc2NoZW1lIHRvIG5vdCBhbGxvdyBt
YW5pcHVsYXRpb24gb2YgdGhlIGxvYWRlZCBwYWdlCiAgICAgLy8gYnkgYm9va21hcmtsZXRzIG9y
IGphdmFzY3JpcHQ6IFVSTHMgdHlwZWQgaW4gdGhlIG9tbmlib3guCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCmluZGV4IDU1YmY4ZDFl
MTVmNWEzMGU3NjM2NjEzZWVjMDBlYjViNjQ4ZDRkYzYuLmQ3MTMwYmM0OGQ2ZDIyOTAzODAxODY5
OWU0ZDdiYjc3NzI5ZTc4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiUGFn
ZVZpc2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRQcml2YXRlLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1DdXJzb3IuaCIKKyNpbmNsdWRlICJTZWN1cml0eVBvbGljeS5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUluZm8uaCIKICNpbmNsdWRlICJU
ZXh0QWZmaW5pdHkuaCIKQEAgLTgyLDYgKzgzLDcgQEAKICNpbmNsdWRlICJXZWJNZWRpYVN0cmVh
bVNvdXJjZS5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgogI2luY2x1
ZGUgIldlYlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKKyNpbmNsdWRlICJXZWJSZWZlcnJlclBvbGlj
eS5oIgogI2luY2x1ZGUgIldlYlNjcm9sbGJhci5oIgogI2luY2x1ZGUgIldlYlNldHRpbmdzLmgi
CiAjaW5jbHVkZSAiV2ViU3RvcmFnZVF1b3RhRXJyb3IuaCIKQEAgLTQ2NywzICs0NjksOCBAQCBD
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVQcmVyZW5k
ZXIsIFBhZ2VWaXNpYmlsaXR5U3RhdAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJN
ZWRpYVN0cmVhbVNvdXJjZTo6VHlwZUF1ZGlvLCBNZWRpYVN0cmVhbVNvdXJjZTo6VHlwZUF1ZGlv
KTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTWVkaWFTdHJlYW1Tb3VyY2U6OlR5
cGVWaWRlbywgTWVkaWFTdHJlYW1Tb3VyY2U6OlR5cGVWaWRlbyk7CiAjZW5kaWYKKworQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJSZWZlcnJlclBvbGljeUFsd2F5cywgU2VjdXJpdHlQ
b2xpY3k6OlJlZmVycmVyUG9saWN5QWx3YXlzKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV2ViUmVmZXJyZXJQb2xpY3lEZWZhdWx0LCBTZWN1cml0eVBvbGljeTo6UmVmZXJyZXJQb2xp
Y3lEZWZhdWx0KTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViUmVmZXJyZXJQb2xp
Y3lOZXZlciwgU2VjdXJpdHlQb2xpY3k6OlJlZmVycmVyUG9saWN5TmV2ZXIpOworQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJSZWZlcnJlclBvbGljeU9yaWdpbiwgU2VjdXJpdHlQb2xp
Y3k6OlJlZmVycmVyUG9saWN5T3JpZ2luKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJGcmFtZUltcGwuY3BwCmluZGV4IDYyN2IzZjNjMTdlNWJlMmU3MTlhZTU2OTgzODAxMmQ5Nzkw
MzdhM2EuLjQ5OTM0MmU1YTdkZmI5OTIxMTUwMDI4MmZhZmI5NTQwMmI3NDQ3MTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtNTkxLDYgKzU5MSwx
MSBAQCBXZWJWZWN0b3I8V2ViSWNvblVSTD4gV2ViRnJhbWVJbXBsOjppY29uVVJMcyhpbnQgaWNv
blR5cGVzKSBjb25zdAogICAgIHJldHVybiBXZWJWZWN0b3I8V2ViSWNvblVSTD4oKTsKIH0KIAor
V2ViUmVmZXJyZXJQb2xpY3kgV2ViRnJhbWVJbXBsOjpyZWZlcnJlclBvbGljeSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYlJlZmVycmVyUG9saWN5PihtX2ZyYW1lLT5kb2N1
bWVudCgpLT5yZWZlcnJlclBvbGljeSgpKTsKK30KKwogV2ViU2l6ZSBXZWJGcmFtZUltcGw6OnNj
cm9sbE9mZnNldCgpIGNvbnN0CiB7CiAgICAgRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWVWaWV3KCk7
CkBAIC0xMDczLDcgKzEwNzgsOCBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6c2V0UmVmZXJyZXJGb3JS
ZXF1ZXN0KFdlYlVSTFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYlVSTCYgcgogICAgICAgICBy
ZWZlcnJlciA9IG1fZnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCk7CiAgICAgZWxz
ZQogICAgICAgICByZWZlcnJlciA9IHJlZmVycmVyVVJMLnNwZWMoKS51dGYxNigpOwotICAgIGlm
IChTZWN1cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVycmVyKHJlcXVlc3QudXJsKCksIHJlZmVy
cmVyKSkKKyAgICByZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVh
ZGVyKG1fZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIHJlcXVlc3QudXJsKCks
IHJlZmVycmVyKTsKKyAgICBpZiAocmVmZXJyZXIuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47
CiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoV2ViU3RyaW5nOjpmcm9tVVRGOCgiUmVm
ZXJlciIpLCByZWZlcnJlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1l
SW1wbC5oCmluZGV4IDE5MTdhNGE4ZTNjMjA3YWRkZDg2ZThiMzVmOGVhYzNiY2QwNzFhNjAuLjM3
ZWRmNDllNzkwY2E3MDMyNjlhYTZmYmRkYTNlMGEyMWFjOGUxNzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0TmFtZShjb25zdCBXZWJTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGxv
bmcgbG9uZyBpZGVudGlmaWVyKCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJWZWN0b3I8V2ViSWNv
blVSTD4gaWNvblVSTHMoaW50IGljb25UeXBlcykgY29uc3Q7CisgICAgdmlydHVhbCBXZWJSZWZl
cnJlclBvbGljeSByZWZlcnJlclBvbGljeSgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViU2l6ZSBz
Y3JvbGxPZmZzZXQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNv
bnN0IFdlYlNpemUmKTsKICAgICB2aXJ0dWFsIFdlYlNpemUgbWluaW11bVNjcm9sbE9mZnNldCgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VjdXJp
dHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VjdXJpdHlQb2xp
Y3kuY3BwCmluZGV4IDg0OGViM2E5MGRmYzBjNzBlMTYwMzk2MTRhZWU0YmE4ZDNlYWYwNjcuLjQ3
MWQ5NWE5NDQ1YjdiZTg2MGU4Y2NiODEwYTRhOTE0YjgzMTVjMzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAKQEAgLTk1LDYgKzk1LDEx
IEBAIGJvb2wgV2ViU2VjdXJpdHlQb2xpY3k6OnNob3VsZEhpZGVSZWZlcnJlcihjb25zdCBXZWJV
UkwmIHVybCwgY29uc3QgV2ViU3RyaW5nJiByCiAgICAgcmV0dXJuIFNlY3VyaXR5UG9saWN5Ojpz
aG91bGRIaWRlUmVmZXJyZXIodXJsLCByZWZlcnJlcik7CiB9CiAKK1dlYlN0cmluZyBXZWJTZWN1
cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihXZWJSZWZlcnJlclBvbGljeSByZWZl
cnJlclBvbGljeSwgY29uc3QgV2ViVVJMJiB1cmwsIGNvbnN0IFdlYlN0cmluZyYgcmVmZXJyZXIp
Cit7CisgICAgcmV0dXJuIFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKHN0
YXRpY19jYXN0PFNlY3VyaXR5UG9saWN5OjpSZWZlcnJlclBvbGljeT4ocmVmZXJyZXJQb2xpY3kp
LCB1cmwsIHJlZmVycmVyKTsKK30KKwogdm9pZCBXZWJTZWN1cml0eVBvbGljeTo6cmVnaXN0ZXJV
UkxTY2hlbWVBc05vdEFsbG93aW5nSmF2YXNjcmlwdFVSTHMoY29uc3QgV2ViU3RyaW5nJiBzY2hl
bWUpCiB7CiAgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb3RBbGxvd2lu
Z0phdmFzY3JpcHRVUkxzKHNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9Ib3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCmluZGV4
IDdlMmIwM2UwYWQ2ODRjYWQ2Y2U1MDBlZWM3NTczZDU3MDg1MzdmZjIuLjdjODRlZGU4ODVkODM5
M2IxYjFhZTljYWUzZTQwZmJkZjcyZjNlNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLm1t
CkBAIC01OSw4ICs1OSwxMSBAQCBIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbTo6SG9zdGVkTmV0
c2NhcGVQbHVnaW5TdHJlYW0oTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVBybwogICAgICwgbV9yZXF1
ZXN0VVJMKFtyZXF1ZXN0IFVSTF0pCiAgICAgLCBtX2ZyYW1lTG9hZGVyKDApCiB7Ci0gICAgaWYg
KFNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIoW3JlcXVlc3QgVVJMXSwgY29yZShb
aW5zdGFuY2UtPnBsdWdpblZpZXcoKSB3ZWJGcmFtZV0pLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZl
cnJlcigpKSkKKyAgICBTdHJpbmcgcmVmZXJyZXIgPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVS
ZWZlcnJlckhlYWRlcihjb3JlKFtpbnN0YW5jZS0+cGx1Z2luVmlldygpIHdlYkZyYW1lXSktPmRv
Y3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIFtyZXF1ZXN0IFVSTF0sIGNvcmUoW2luc3RhbmNl
LT5wbHVnaW5WaWV3KCkgd2ViRnJhbWVdKS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSk7
CisgICAgaWYgKHJlZmVycmVyLmlzRW1wdHkoKSkKICAgICAgICAgW21fcmVxdWVzdC5nZXQoKSBf
d2ViX3NldEhUVFBSZWZlcnJlcjpuaWxdOworICAgIGVsc2UKKyAgICAgICAgW21fcmVxdWVzdC5n
ZXQoKSBfd2ViX3NldEhUVFBSZWZlcnJlcjpyZWZlcnJlcl07CiAKICNpZm5kZWYgTkRFQlVHCiAg
ICAgaG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW1Db3VudGVyLmluY3JlbWVudCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0K
aW5kZXggOGY2Zjk0MDAyOGUzMTU4Y2ZlMGZkZTc1NTYyM2Y2MTM4ZGE1MzBjMy4uYmI3ZjRkNWY1
ZDkxMzgzNjZmM2QyNGMwOTBmODgzMDIyZmYxNTExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCkBAIC0xNzIsOCArMTcy
LDExIEBAIFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtOjpXZWJOZXRzY2FwZVBsdWdpblN0cmVhbShO
U1VSTFJlcXVlc3QgKnJlcXVlc3QsIE5QUCBwbHVnCiAgICAgCiAgICAgc3RyZWFtcygpLmFkZCgm
bV9zdHJlYW0sIHBsdWdpbik7CiAgICAgCi0gICAgaWYgKFNlY3VyaXR5UG9saWN5OjpzaG91bGRI
aWRlUmVmZXJyZXIoW3JlcXVlc3QgVVJMXSwgY29yZShbdmlldyB3ZWJGcmFtZV0pLT5sb2FkZXIo
KS0+b3V0Z29pbmdSZWZlcnJlcigpKSkKKyAgICBTdHJpbmcgcmVmZXJyZXIgPSBTZWN1cml0eVBv
bGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihjb3JlKFt2aWV3IHdlYkZyYW1lXSktPmRvY3Vt
ZW50KCktPnJlZmVycmVyUG9saWN5KCksIFtyZXF1ZXN0IFVSTF0sIGNvcmUoW3ZpZXcgd2ViRnJh
bWVdKS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSk7CisgICAgaWYgKHJlZmVycmVyLmlz
RW1wdHkoKSkKICAgICAgICAgW21fcmVxdWVzdC5nZXQoKSBfd2ViX3NldEhUVFBSZWZlcnJlcjpu
aWxdOworICAgIGVsc2UKKyAgICAgICAgW21fcmVxdWVzdC5nZXQoKSBfd2ViX3NldEhUVFBSZWZl
cnJlcjpyZWZlcnJlcl07CiB9CiAKIFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtOjp+V2ViTmV0c2Nh
cGVQbHVnaW5TdHJlYW0oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwCmluZGV4IGMzODNlZTQxMDRlMjVhNzUwMDVkNjUxZmM4MmUxYjRiMDdh
Yjg3ZjAuLmE4NjE2MTA3Mzc2ZTcyMTkyYzMxMDQ1NjIzYjBlOWQ1YjZhYTUxZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTk4
NSw4ICs5ODUsOSBAQCB2b2lkIFBsdWdpblZpZXc6OmxvYWRVUkwodWludDY0X3QgcmVxdWVzdElE
LCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgU3RyaW5nJgogICAgIGZyYW1lTG9hZFJlcXVl
c3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUEJvZHkoRm9ybURhdGE6OmNyZWF0ZShodHRwQm9k
eS5kYXRhKCksIGh0dHBCb2R5LnNpemUoKSkpOwogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0RnJh
bWVOYW1lKHRhcmdldCk7CiAKLSAgICBpZiAoIVNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVm
ZXJyZXIoZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSwgZnJhbWUoKS0+
bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSkpCi0gICAgICAgIGZyYW1lTG9hZFJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUFJlZmVycmVyKGZyYW1lKCktPmxvYWRlcigpLT5vdXRn
b2luZ1JlZmVycmVyKCkpOworICAgIFN0cmluZyByZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5Ojpn
ZW5lcmF0ZVJlZmVycmVySGVhZGVyKGZyYW1lKCktPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5
KCksIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCksIGZyYW1lKCktPmxv
YWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpOworICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgp
KQorICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnNldEhUVFBSZWZl
cnJlcihyZWZlcnJlcik7CiAKICAgICBtX3BlbmRpbmdVUkxSZXF1ZXN0cy5hcHBlbmQoVVJMUmVx
dWVzdDo6Y3JlYXRlKHJlcXVlc3RJRCwgZnJhbWVMb2FkUmVxdWVzdCwgYWxsb3dQb3B1cHMpKTsK
ICAgICBtX3BlbmRpbmdVUkxSZXF1ZXN0c1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBm
NjA5OTE3YzEyMTJiZjBlNDk0NGRmNTdmYTk0YWViODQ4MzgzYzFhLi5kMGUxZjNlNDIwMDY1MjJi
OTQzMzRkZjE2YTY3YzM3NTJlYjJhMzY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMTEt
MTggIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1w
bGVtZW50IE1ldGEgcmVmZXJyZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcyNjc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1hbHdheXMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVy
cmVyLXBvbGljeS1hbHdheXMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9yZWZlcnJlci1wb2xpY3ktZGVmYXVsdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWRlZmF1bHQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMt
YWx3YXlzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtYWx3YXlzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLWRlZmF1bHQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGlj
eS1odHRwcy1kZWZhdWx0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW5ldmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtbmV2ZXIuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3kt
aHR0cHMtb3JpZ2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtb3JpZ2luLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LW5ldmVyLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3kt
bmV2ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJl
ci1wb2xpY3ktb3JpZ2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktb3JpZ2luLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3kt
cmVkaXJlY3QuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZl
cnJlci1wb2xpY3ktcmVsLW5vcmVmZXJyZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWwtbm9yZWZlcnJlci5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJl
ci1wb2xpY3ktbG9nLnBocDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9y
ZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1zdGFydC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9yZWwtbm9y
ZWZlcnJlci5odG1sOiBBZGRlZC4KKwogMjAxMS0xMS0xNyAgWm9sdGFuIEFydmFpICA8emFydmFp
QGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdIEVuYWJsZSBza2lwcGVkIGJ1dCBub3cg
cGFzc2luZyB0ZXN0cyAoaHR0cC90ZXN0cykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWFsd2F5cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1hbHdheXMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg3ZWEyNTg4NWI1OGFkMTNjZmU5MGU3NTdlNzhiM2U1MjhlMWE1
OTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
ZmVycmVyLXBvbGljeS1hbHdheXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMg
dGVzdCBjaGVja3MgdGhlIGFsd2F5cyByZWZlcnJlciBwb2xpY3kgd2hlbiBuYXZpZ2F0aW5nIGZy
b20gYW4gaW5zZWN1cmUgVVJMIHRvIGFub3RoZXIgaW5zZWN1cmUgVVJMLiBUaGUgdGVzdCBwYXNz
ZXMgaWYgdGhlIHByaW50ZWQgcmVmZXJyZXIgaXMgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3Vy
aXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbD9hbHdheXMKKworCisKKy0t
LS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0t
LS0KK0hUVFAgUmVmZXJlciBoZWFkZXIgaXMgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5
L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbD9hbHdheXMKK1JlZmVycmVyIGlz
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5
LXN0YXJ0Lmh0bWw/YWx3YXlzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWFsd2F5cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktYWx3YXlzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ1
MjAyN2IwNjJhMWRjMjEwMjExZTFkMDlhOWNlYWJjZTNkZjAzMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWFsd2F5cy5o
dG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQo
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHA+CitUaGlzIHRlc3QgY2hlY2tzIHRoZSBhbHdheXMgcmVm
ZXJyZXIgcG9saWN5IHdoZW4gbmF2aWdhdGluZyBmcm9tIGFuIGluc2VjdXJlCitVUkwgdG8gYW5v
dGhlciBpbnNlY3VyZSBVUkwuIFRoZSB0ZXN0IHBhc3NlcyBpZiB0aGUgcHJpbnRlZCByZWZlcnJl
ciBpcworaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1w
b2xpY3ktc3RhcnQuaHRtbD9hbHdheXMKKzwvcD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1zdGFydC5odG1sP2Fs
d2F5cyI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1kZWZhdWx0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWRlZmF1
bHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExMjQyNjBlOGU3OTRmMGFlMDRjYjU5ZDNjMjMy
YjlkN2I5MDM0ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3JlZmVycmVyLXBvbGljeS1kZWZhdWx0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoZSBkZWZhdWx0IHJlZmVycmVyIHBvbGljeSB3aGVuIG5h
dmlnYXRpbmcgZnJvbSBhbiBpbnNlY3VyZSBVUkwgdG8gYW5vdGhlciBpbnNlY3VyZSBVUkwuIFRo
ZSB0ZXN0IHBhc3NlcyBpZiB0aGUgcHJpbnRlZCByZWZlcnJlciBpcyBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1zdGFydC5odG1sP2RlZmF1
bHQKKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+
LS0+JworLS0tLS0tLS0KK0hUVFAgUmVmZXJlciBoZWFkZXIgaXMgaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbD9kZWZhdWx0
CitSZWZlcnJlciBpcyBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3Jl
ZmVycmVyLXBvbGljeS1zdGFydC5odG1sP2RlZmF1bHQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktZGVmYXVsdC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktZGVmYXVsdC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg1NDAzZWNlMjI5MjQ2Y2FmNTM5ZjY1YWJmYWE1MDFmYjI4ZjhiNDUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVy
LXBvbGljeS1kZWZhdWx0Lmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBD
aGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD4KK1RoaXMgdGVzdCBjaGVj
a3MgdGhlIGRlZmF1bHQgcmVmZXJyZXIgcG9saWN5IHdoZW4gbmF2aWdhdGluZyBmcm9tIGFuIGlu
c2VjdXJlCitVUkwgdG8gYW5vdGhlciBpbnNlY3VyZSBVUkwuIFRoZSB0ZXN0IHBhc3NlcyBpZiB0
aGUgcHJpbnRlZCByZWZlcnJlciBpcworaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jl
c291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbD9kZWZhdWx0Cis8L3A+Cis8aWZyYW1l
IHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1w
b2xpY3ktc3RhcnQuaHRtbD9kZWZhdWx0Ij48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5
LWh0dHBzLWFsd2F5cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1hbHdheXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVlNTFkZTEyNTkxYzFkMTY4OGY1N2M2MjAzNzE4NjNjMWY2ZGQ1NGEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRw
cy1hbHdheXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdCBjaGVja3Mg
dGhlIGFsd2F5cyByZWZlcnJlciBwb2xpY3kgd2hlbiBuYXZpZ2F0aW5nIGZyb20gYSBzZWN1cmUg
VVJMIHRvIGFuIGluc2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBwcmludGVkIHJl
ZmVycmVyIGlzIGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVy
cmVyLXBvbGljeS1zdGFydC5odG1sP2Fsd2F5cworCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEt
LWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorSFRUUCBSZWZlcmVyIGhl
YWRlciBpcyBodHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJl
ci1wb2xpY3ktc3RhcnQuaHRtbD9hbHdheXMKK1JlZmVycmVyIGlzIGh0dHBzOi8vMTI3LjAuMC4x
Ojg0NDMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1zdGFydC5odG1sP2Fsd2F5
cworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVy
LXBvbGljeS1odHRwcy1hbHdheXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLWFsd2F5cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjZTI3ZGQx
OWIxNTUwZGZiZDk3NjJkMTliOGZkZDRkMjQxYTI1MzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1hbHdheXMu
aHRtbApAQCAtMCwwICsxLDE5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0
KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPgorVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYWx3YXlzIHJl
ZmVycmVyIHBvbGljeSB3aGVuIG5hdmlnYXRpbmcgZnJvbSBhIHNlY3VyZSBVUkwKK3RvIGFuIGlu
c2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBwcmludGVkIHJlZmVycmVyIGlzCito
dHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3kt
c3RhcnQuaHRtbD9hbHdheXMKKzwvcD4KKzxpZnJhbWUgc3JjPSJodHRwczovLzEyNy4wLjAuMTo4
NDQzL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbD9hbHdheXMi
PjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtZGVmYXVsdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRw
cy1kZWZhdWx0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDc2YzI2NTVkNGJiMWI1ODBiNmQ1
MGJjNDA2NjRmMmNlZDEzNDkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtZGVmYXVsdC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGUgZGVmYXVsdCByZWZlcnJlciBw
b2xpY3kgd2hlbiBuYXZpZ2F0aW5nIGZyb20gYSBzZWN1cmUgVVJMIHRvIGFuIGluc2VjdXJlIFVS
TC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBwcmludGVkIHJlZmVycmVyIGlzIGVtcHR5LgorCisK
KworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCist
LS0tLS0tLQorSFRUUCBSZWZlcmVyIGhlYWRlciBpcyBlbXB0eQorUmVmZXJyZXIgaXMgZW1wdHkK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1w
b2xpY3ktaHR0cHMtZGVmYXVsdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtZGVmYXVsdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzOTU4MTAy
YTcwOGY3YjE0MWRiOGZjZThjYmE2MmZkN2M3OWE3NTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1kZWZhdWx0
Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4
dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD4KK1RoaXMgdGVzdCBjaGVja3MgdGhlIGRlZmF1bHQg
cmVmZXJyZXIgcG9saWN5IHdoZW4gbmF2aWdhdGluZyBmcm9tIGEgc2VjdXJlIFVSTAordG8gYW4g
aW5zZWN1cmUgVVJMLiBUaGUgdGVzdCBwYXNzZXMgaWYgdGhlIHByaW50ZWQgcmVmZXJyZXIgaXMg
ZW1wdHkuCis8L3A+Cis8aWZyYW1lIHNyYz0iaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0
eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5LXN0YXJ0Lmh0bWw/ZGVmYXVsdCI+PC9pZnJhbWU+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1uZXZlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1uZXZlci1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmMxMmVjOTJhZDNiMTBmNzgyZGE1NDdhNmNkZTc0NzNmMWI5
OTMwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
cmVmZXJyZXItcG9saWN5LWh0dHBzLW5ldmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBA
CitUaGlzIHRlc3QgY2hlY2tzIHRoZSBuZXZlciByZWZlcnJlciBwb2xpY3kgd2hlbiBuYXZpZ2F0
aW5nIGZyb20gYSBzZWN1cmUgVVJMIHRvIGFuIGluc2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFzc2Vz
IGlmIHRoZSBwcmludGVkIHJlZmVycmVyIGlzIGVtcHR5LgorCisKKworLS0tLS0tLS0KK0ZyYW1l
OiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorSFRUUCBSZWZl
cmVyIGhlYWRlciBpcyBlbXB0eQorUmVmZXJyZXIgaXMgZW1wdHkKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtbmV2ZXIu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0
dHBzLW5ldmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI2MDllMGE2NGI3MGQ5NzkxYzkwM2YwNjVhYTRi
NjViZTQ4MWQ2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW5ldmVyLmh0bWwKQEAgLTAsMCArMSwxOCBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD4KK1RoaXMgdGVzdCBjaGVja3MgdGhlIG5ldmVyIHJlZmVycmVyIHBvbGljeSB3aGVuIG5hdmln
YXRpbmcgZnJvbSBhIHNlY3VyZSBVUkwgdG8KK2FuIGluc2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFz
c2VzIGlmIHRoZSBwcmludGVkIHJlZmVycmVyIGlzIGVtcHR5LgorPC9wPgorPGlmcmFtZSBzcmM9
Imh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGlj
eS1zdGFydC5odG1sP25ldmVyIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBz
LW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
ZmVycmVyLXBvbGljeS1odHRwcy1vcmlnaW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwZjli
ODFmYmRhMDdjYmMyMjBiYzhmMDdjNDE0MWM3MjczOTc4NjIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1vcmln
aW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhlIG9y
aWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBuYXZpZ2F0aW5nIGZyb20gYSBzZWN1cmUgVVJMIHRv
IGFuIGluc2VjdXJlIFVSTC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBwcmludGVkIHJlZmVycmVy
IGlzIGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMKKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1m
cmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK0hUVFAgUmVmZXJlciBoZWFk
ZXIgaXMgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My8KK1JlZmVycmVyIGlzIGh0dHBzOi8vMTI3LjAu
MC4xOjg0NDMvCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
cmVmZXJyZXItcG9saWN5LWh0dHBzLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjAyNmI3NGY2Y2I3YjU2OTkwNGY0M2M5MzNmOWM3YTRiNWY2MzVmYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBz
LW9yaWdpbi5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFt
ZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+CitUaGlzIHRlc3QgY2hlY2tzIHRoZSBv
cmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gbmF2aWdhdGluZyBmcm9tIGEgc2VjdXJlIFVSTAor
dG8gYW4gaW5zZWN1cmUgVVJMLiBUaGUgdGVzdCBwYXNzZXMgaWYgdGhlIHByaW50ZWQgcmVmZXJy
ZXIgaXMKK2h0dHBzOi8vMTI3LjAuMC4xOjg0NDMKKzwvcD4KKzxpZnJhbWUgc3JjPSJodHRwczov
LzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQu
aHRtbD9vcmlnaW4iPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktbmV2ZXItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3kt
bmV2ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmMDRmN2FhNmYxYWRiYWM0OTZiNmEzYTky
Y2NmOTcxMmRiYWYyNmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1uZXZlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MCBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGUgbmV2ZXIgcmVmZXJyZXIgcG9saWN5IHdoZW4gbmF2
aWdhdGluZyBmcm9tIGFuIGluc2VjdXJlIFVSTCB0byBhbm90aGVyIGluc2VjdXJlIFVSTC4gVGhl
IHRlc3QgcGFzc2VzIGlmIHRoZSBwcmludGVkIHJlZmVycmVyIGlzIGVtcHR5LgorCisKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0t
LQorSFRUUCBSZWZlcmVyIGhlYWRlciBpcyBlbXB0eQorUmVmZXJyZXIgaXMgZW1wdHkKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3kt
bmV2ZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9s
aWN5LW5ldmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU1OTY5NGI0N2U4ZmEzMTRkYjEyZDkwNTNlZGJk
MzQ3ZmVlMTcxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvcmVmZXJyZXItcG9saWN5LW5ldmVyLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD4KK1Ro
aXMgdGVzdCBjaGVja3MgdGhlIG5ldmVyIHJlZmVycmVyIHBvbGljeSB3aGVuIG5hdmlnYXRpbmcg
ZnJvbSBhbiBpbnNlY3VyZQorVVJMIHRvIGFub3RoZXIgaW5zZWN1cmUgVVJMLiBUaGUgdGVzdCBw
YXNzZXMgaWYgdGhlIHByaW50ZWQgcmVmZXJyZXIgaXMgZW1wdHkuCis8L3A+Cis8aWZyYW1lIHNy
Yz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xp
Y3ktc3RhcnQuaHRtbD9uZXZlciI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1vcmln
aW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJl
ci1wb2xpY3ktb3JpZ2luLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmY3MjNjOGExNzMxZWU1
MTczYjg5YzkwOTE1ZDU0MjYwNzgzOWJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktb3JpZ2luLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3QgY2hlY2tzIHRoZSBvcmlnaW4gcmVmZXJyZXIgcG9s
aWN5IHdoZW4gbmF2aWdhdGluZyBmcm9tIGFuIGluc2VjdXJlIFVSTCB0byBhbm90aGVyIGluc2Vj
dXJlIFVSTC4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBwcmludGVkIHJlZmVycmVyIGlzIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMAorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAv
LzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorSFRUUCBSZWZlcmVyIGhlYWRlciBpcyBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvCitSZWZlcnJlciBpcyBodHRwOi8vMTI3LjAuMC4xOjgwMDAvCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9s
aWN5LW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJl
ci1wb2xpY3ktb3JpZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRlZWMwOWYwNzM2ODI0NjkzNDQ5NDhi
OTg5NDJhNzlhYjYyYWQ3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LW9yaWdpbi5odG1sCkBAIC0wLDAgKzEsMTkgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+CitUaGlzIHRlc3QgY2hlY2tzIHRoZSBvcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gbmF2
aWdhdGluZyBmcm9tIGFuIGluc2VjdXJlCitVUkwgdG8gYW5vdGhlciBpbnNlY3VyZSBVUkwuIFRo
ZSB0ZXN0IHBhc3NlcyBpZiB0aGUgcHJpbnRlZCByZWZlcnJlciBpcworaHR0cDovLzEyNy4wLjAu
MTo4MDAwCis8L3A+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5
L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktc3RhcnQuaHRtbD9vcmlnaW4iPjwvaWZyYW1lPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNkMWM5NzUwZjYxYWJjZDZhY2RmZWVjZmZkMDYwOGUxNDQyNWNkMGIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVy
LXBvbGljeS1yZWRpcmVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0
IGNoZWNrcyB0aGUgcmVmZXJyZXIgcG9saWN5IGlzIG9iZXllZCBhbG9uZyB0aGUgcmVkaXJlY3Qg
Y2hhaW4uIFRoZSB0ZXN0IHBhc3NlcyBpZiB0aGUgcmVmZXJyZXIgaXMgaHR0cDovLzEyNy4wLjAu
MTo4MDAwCisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1l
MC0tPi0tPicKKy0tLS0tLS0tCitIVFRQIFJlZmVyZXIgaGVhZGVyIGlzIGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC8KK1JlZmVycmVyIGlzIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJl
Y3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5
LXJlZGlyZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRjODBmZTc2ODM1YzIxOTIzM2JhNmUyYTc1Yjlh
OGU5YWQyZmI4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD4K
K1RoaXMgdGVzdCBjaGVja3MgdGhlIHJlZmVycmVyIHBvbGljeSBpcyBvYmV5ZWQgYWxvbmcgdGhl
IHJlZGlyZWN0IGNoYWluLiAgVGhlCit0ZXN0IHBhc3NlcyBpZiB0aGUgcmVmZXJyZXIgaXMgaHR0
cDovLzEyNy4wLjAuMTo4MDAwCis8L3A+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QuaHRtbCI+PC9p
ZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWwtbm9yZWZlcnJlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWwtbm9y
ZWZlcnJlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTkyMGMxYTU0ZTU3ZGNkODYzZWI2NzM3
NmUwMzc2Zjg3MTAwYjdjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlbC1ub3JlZmVycmVyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3QgbmF2aWdhdGVzIGEgZnJhbWUgYnkgY2xpY2tpbmcg
b24gYSBsaW5rIHdpdGggcmVsPW5vcmVmZXJyZXIuIEl0IHBhc3NlcywgaWYgdGhlIHJlZmVycmVy
IGlzIGVtcHR5LCBldmVuIHRob3VnaCB0aGUgcmVmZXJyZXIgcG9saWN5IGlzIHNldCB0byBhbHdh
eXMuCisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0t
Pi0tPicKKy0tLS0tLS0tCitIVFRQIFJlZmVyZXIgaGVhZGVyIGlzIGVtcHR5CitSZWZlcnJlciBp
cyBlbXB0eQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
ZmVycmVyLXBvbGljeS1yZWwtbm9yZWZlcnJlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVsLW5vcmVmZXJyZXIuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jMDczMmM4Y2Q0YjUzNjBjYTdjMDk2NTlhNGM3ZmRjZDZmNDAyZjkxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVs
LW5vcmVmZXJyZXIuaHRtbApAQCAtMCwwICsxLDE5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxk
RnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPgorICAgIFRoaXMgdGVzdCBuYXZp
Z2F0ZXMgYSBmcmFtZSBieSBjbGlja2luZyBvbiBhIGxpbmsgd2l0aCByZWw9bm9yZWZlcnJlci4K
KyAgICBJdCBwYXNzZXMsIGlmIHRoZSByZWZlcnJlciBpcyBlbXB0eSwgZXZlbiB0aG91Z2ggdGhl
IHJlZmVycmVyIHBvbGljeSBpcworICAgIHNldCB0byBhbHdheXMuCis8L3A+Cis8aWZyYW1lIHNy
Yz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9yZWwtbm9yZWZlcnJl
ci5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1sb2cucGhw
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9s
aWN5LWxvZy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjYwODVhNzg4ZjNhYmI2ZjY0M2M3OWYzYjE1MjNlZGQ4
N2JmYjU1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1sb2cucGhwCkBAIC0wLDAgKzEsMjggQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9nKG1zZykgeworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5pbm5lckhUTUwgKz0gbXNnICsgIjxicj4iOworfQorCitm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciByZWZlcnJlckhlYWRlciA9ICI8P3BocCBlY2hv
ICRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSA/PiI7CisgICAgaWYgKHJlZmVycmVySGVhZGVyID09
ICIiKQorICAgICAgICBsb2coIkhUVFAgUmVmZXJlciBoZWFkZXIgaXMgZW1wdHkiKTsKKyAgICBl
bHNlCisgICAgICAgIGxvZygiSFRUUCBSZWZlcmVyIGhlYWRlciBpcyAiICsgcmVmZXJyZXJIZWFk
ZXIpOworCisgICAgaWYgKGRvY3VtZW50LnJlZmVycmVyID09ICIiKQorICAgICAgICBsb2coIlJl
ZmVycmVyIGlzIGVtcHR5Iik7CisgICAgZWxzZQorICAgICAgICBsb2coIlJlZmVycmVyIGlzICIg
KyBkb2N1bWVudC5yZWZlcnJlcik7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1y
ZWRpcmVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxOWFiZDFmZjUyMWZjNWNhZTdhYjI5ZmI1N2FlZWQw
YjkzOTcwNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QuaHRtbApAQCAtMCwwICsxLDEz
IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0icmVmZXJyZXIiIGNvbnRlbnQ9Im9yaWdp
biIgLz4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGRvY3VtZW50LmxvY2F0
aW9uID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9
IiArCisgICAgICAgICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL3Jl
ZmVycmVyLXBvbGljeS1sb2cucGhwIjsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5LXN0YXJ0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9yZWZlcnJlci1w
b2xpY3ktc3RhcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNmMzOTYyMWMyNTY5YjJhY2Q1MzcxMzVhOTk3
MGQ2ZDk1NmI1OTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5LXN0YXJ0Lmh0bWwKQEAgLTAsMCArMSwx
NiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
IHZhciBtZXRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibWV0YSIpOworICAgIG1ldGEubmFt
ZSA9ICJyZWZlcnJlciI7CisgICAgbWV0YS5jb250ZW50ID0gZG9jdW1lbnQubG9jYXRpb24uc2Vh
cmNoLnN1YnN0cmluZygxKTsKKyAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG1ldGEpOwor
ICAgIGRvY3VtZW50LmxvY2F0aW9uID0KKyAgICAgICAgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9z
ZWN1cml0eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5LWxvZy5waHAiOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9yZWwt
bm9yZWZlcnJlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvcmVsLW5vcmVmZXJyZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGVlMzE3ZGM2Y2UyNmQwMGYxYWU2
NzRiM2M0ODI3MzZiNTYwMmE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvcmVsLW5vcmVmZXJyZXIuaHRtbApAQCAtMCwwICsxLDE4
IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0icmVmZXJyZXIiIGNvbnRlbnQ9ImFsd2F5
cyIgLz4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHZhciBsaW5rID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxpbmsiKTsKKyAgICB2YXIgaWZyYW1lID0gd2luZG93LnBh
cmVudC5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF07CisgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8obGluay5vZmZzZXRMZWZ0ICsgaWZyYW1lLm9mZnNldExlZnQg
KyAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsub2Zmc2V0VG9wICsgaWZyYW1l
Lm9mZnNldFRvcCArIDIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPGEgaWQ9ImxpbmsiIGhyZWY9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1
cml0eS9yZXNvdXJjZXMvcmVmZXJyZXItcG9saWN5LWxvZy5waHAiIHJlbD0ibm9yZWZlcnJlciI+
bGluazwvYT4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>