<?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>205157</bug_id>
          
          <creation_ts>2019-12-12 04:47:05 -0800</creation_ts>
          <short_desc>Ignore URL host for schemes that are not using host information</short_desc>
          <delta_ts>2019-12-30 09:10:22 -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>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1597973</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-12 04:47:05 -0800</bug_when>
    <thetext>Ignore URL host for schemes that are not using host information, like file, data or about</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597974</commentid>
    <comment_count>1</comment_count>
      <attachid>385489</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-12 04:51:36 -0800</bug_when>
    <thetext>Created attachment 385489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598327</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-13 07:31:43 -0800</bug_when>
    <thetext>&lt;rdar://problem/57825963&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598922</commentid>
    <comment_count>3</comment_count>
      <attachid>385489</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-12-16 09:12:53 -0800</bug_when>
    <thetext>Comment on attachment 385489
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        The resource loading will still be done based on the initial URL with host, but the document creation, including its location will do as if the host is empty.

&quot;will ACT as if the host is empty&quot;?

&gt; Source/WebCore/loader/DocumentLoader.cpp:1631
&gt; +        url.setHost({ });

This seems to be the only functional change in this patch. Is &apos;documentURL&apos; used during the creation of the Document object (which your ChangeLog indicates), or do we need to modify Document::Document() to ensure we don&apos;t get a Document with a host that should be ignored?

For example, could JS create a Document object with a data URL that might bypass your change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599439</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-17 08:43:53 -0800</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #3)
&gt; Comment on attachment 385489 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=385489&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:14
&gt; &gt; +        The resource loading will still be done based on the initial URL with host, but the document creation, including its location will do as if the host is empty.
&gt; 
&gt; &quot;will ACT as if the host is empty&quot;?

Sounds good.
If a user is loading file://example.org/XX, the address bar will still have that URL, but 


&gt; &gt; Source/WebCore/loader/DocumentLoader.cpp:1631
&gt; &gt; +        url.setHost({ });
&gt; 
&gt; This seems to be the only functional change in this patch. Is &apos;documentURL&apos;
&gt; used during the creation of the Document object (which your ChangeLog
&gt; indicates), or do we need to modify Document::Document() to ensure we don&apos;t
&gt; get a Document with a host that should be ignored?

This is used for documents created by DocumentLoader/DocumentWriter, this change will basically apply whenever navigation happens.
This is the case when opening a link/iframe or using window.location.

If a user loads file://example.org/XX, location.host will be empty instead of &quot;example.org&quot; as done currently.

&gt; For example, could JS create a Document object with a data URL that might
&gt; bypass your change?

This is mostly targeting file URLs. Hosts in data URLs interact with parsing of the mime type.

JS could try to create a Document with XHR but in that case, this would be considered a cross origin request and would normally fail.
There is the case of SVG documents but they should also be same-origin.

The stronger way is to do the same modification within Document constructor.
The impact is wider though, for instance it impacts HTMLDocument::createSynthesizedDocument.
Maybe we should try this approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599491</commentid>
    <comment_count>5</comment_count>
      <attachid>385489</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-12-17 12:01:28 -0800</bug_when>
    <thetext>Comment on attachment 385489
Patch

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

&gt; Source/WebCore/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=205157

Please include radar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601398</commentid>
    <comment_count>6</comment_count>
      <attachid>386390</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-24 05:35:28 -0800</bug_when>
    <thetext>Created attachment 386390
Removing host inside Document class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601558</commentid>
    <comment_count>7</comment_count>
      <attachid>386390</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-12-26 20:39:17 -0800</bug_when>
    <thetext>Comment on attachment 386390
Removing host inside Document class

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

&gt; Source/WebCore/dom/Document.cpp:3233
&gt; +    if (SecurityOrigin::shouldIgnoreHost(m_url) &amp;&amp; !m_url.host().isEmpty())
&gt; +        m_url.setHost({ });

I think this should do something more like setHostAndPort instead of setHost. I don’t think it makes sense to leave a port number behind. But setHostAndPort doesn’t seem to handle the empty string correctly. So might need to change it in the URL class or even add a new removeHostAndPort function. If we did add a new removeHostAndPort function, we could optimize it to quickly do nothing when it’s already empty, and then we wouldn’t need the host().isEmpty() check here.

&gt; Source/WebCore/page/DOMWindow.h:179
&gt; +    WEBCORE_EXPORT Location&amp; location();

We also have WEBCORE_TESTSUPPORT_EXPORT. Not sure if we are using it consistently.

&gt; Source/WebCore/page/Location.h:55
&gt; +    WEBCORE_EXPORT String host() const;

Ditto.

&gt; Source/WebCore/page/SecurityOrigin.cpp:61
&gt; +    return url.protocolIs(&quot;data&quot;) || url.protocolIs(&quot;about&quot;) || url.protocolIs(&quot;file&quot;);

How did you determine this set of protocols?

Could use protocolIsAbout() and protocolIsData() rather than writing those two strings out.

Could consider using isLocalFile() for the &quot;file&quot; one, but not sure if that’s the correct abstraction.

I don’t understand how we determined this list. What about &quot;blob&quot;? What about &quot;javascript&quot;? How are they different from &quot;data&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601839</commentid>
    <comment_count>8</comment_count>
      <attachid>386390</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-30 02:44:54 -0800</bug_when>
    <thetext>Comment on attachment 386390
Removing host inside Document class

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

&gt;&gt; Source/WebCore/dom/Document.cpp:3233
&gt;&gt; +        m_url.setHost({ });
&gt; 
&gt; I think this should do something more like setHostAndPort instead of setHost. I don’t think it makes sense to leave a port number behind. But setHostAndPort doesn’t seem to handle the empty string correctly. So might need to change it in the URL class or even add a new removeHostAndPort function. If we did add a new removeHostAndPort function, we could optimize it to quickly do nothing when it’s already empty, and then we wouldn’t need the host().isEmpty() check here.

OK, will add removeHostAndPort

&gt;&gt; Source/WebCore/page/SecurityOrigin.cpp:61
&gt;&gt; +    return url.protocolIs(&quot;data&quot;) || url.protocolIs(&quot;about&quot;) || url.protocolIs(&quot;file&quot;);
&gt; 
&gt; How did you determine this set of protocols?
&gt; 
&gt; Could use protocolIsAbout() and protocolIsData() rather than writing those two strings out.
&gt; 
&gt; Could consider using isLocalFile() for the &quot;file&quot; one, but not sure if that’s the correct abstraction.
&gt; 
&gt; I don’t understand how we determined this list. What about &quot;blob&quot;? What about &quot;javascript&quot;? How are they different from &quot;data&quot;?

We can only remove host information for the schemes we know hosts are not useful, custom protocols might rely on host information for instance.
From the known schemes, http/ftp cannot be in the list. &quot;blob&quot; is tied to the origin that created the blob URL so cannot be in the list.
I will add &quot;javascript&quot; in the list since it is similar to data URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601840</commentid>
    <comment_count>9</comment_count>
      <attachid>386519</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-30 02:50:22 -0800</bug_when>
    <thetext>Created attachment 386519
Updated according review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601868</commentid>
    <comment_count>10</comment_count>
      <attachid>386531</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-30 07:02:06 -0800</bug_when>
    <thetext>Created attachment 386531
Fix Win build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601873</commentid>
    <comment_count>11</comment_count>
      <attachid>386531</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-30 07:48:32 -0800</bug_when>
    <thetext>Comment on attachment 386531
Fix Win build

Rejecting attachment 386531 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 386531, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WTF/ChangeLog contains OOPS!.

Full output: https://webkit-queues.webkit.org/results/13296948</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601875</commentid>
    <comment_count>12</comment_count>
      <attachid>386534</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-30 08:11:44 -0800</bug_when>
    <thetext>Created attachment 386534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601885</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-30 09:09:20 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 386534:

inspector/debugger/breakpoint-scope.html bug 205646 (authors: drousso@apple.com and joepeck@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601886</commentid>
    <comment_count>14</comment_count>
      <attachid>386534</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-30 09:10:20 -0800</bug_when>
    <thetext>Comment on attachment 386534
Patch

Clearing flags on attachment: 386534

Committed r253946: &lt;https://trac.webkit.org/changeset/253946&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601887</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-30 09:10:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385489</attachid>
            <date>2019-12-12 04:51:36 -0800</date>
            <delta_ts>2019-12-24 05:35:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205157-20191212135135.patch</filename>
            <type>text/plain</type>
            <size>12468</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY5OGYyMWIwNzYzNTAz
ODJlNmY3NjFmOWEwZjA5NTAwODlhM2M0Ny4uNDlmMGE5ZjFkZmI0NzdiNzg4YTA1YmQ4MGMzYzc5
NWFiZDkwYWRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTEyLTEyICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJZ25vcmUgVVJMIGhvc3Qg
Zm9yIHNjaGVtZXMgdGhhdCBhcmUgbm90IHVzaW5nIGhvc3QgaW5mb3JtYXRpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTE1NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3Rz
L2xvY2FsL2ZpbGUtdXJsLWhvc3QuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1
cml0eS9hYm91dC11cmwtaG9zdC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2RhdGEtdXJsLWhvc3QuaHRtbAorCisgICAgICAgIEluIERvY3VtZW50TG9hZGVyLCByZW1v
dmUgaG9zdCBmcm9tIHRoZSBkb2N1bWVudCBVUkwgaW4gY2FzZSBpdHMgc2NoZW1lIGRvZXMgbm90
IHVzZSBpdC4KKyAgICAgICAgVGhpcyBpcyBkb25lIGZvciBmaWxlLCBkYXRhIGFuZCBhYm91dCBz
Y2hlbWVzLgorICAgICAgICBUaGUgcmVzb3VyY2UgbG9hZGluZyB3aWxsIHN0aWxsIGJlIGRvbmUg
YmFzZWQgb24gdGhlIGluaXRpYWwgVVJMIHdpdGggaG9zdCwgYnV0IHRoZSBkb2N1bWVudCBjcmVh
dGlvbiwgaW5jbHVkaW5nIGl0cyBsb2NhdGlvbiB3aWxsIGRvIGFzIGlmIHRoZSBob3N0IGlzIGVt
cHR5LgorCisgICAgICAgIEFkZCBpbnRlcm5hbHMgQVBJcyB0byB0ZXN0IHRoaXMuCisKKyAgICAg
ICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXI6OmRvY3VtZW50VVJMIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5o
OgorICAgICAgICAqIHBhZ2UvTG9jYXRpb24uaDoKKyAgICAgICAgKiBwYWdlL0xvY2F0aW9uLmlk
bDoKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luOjpzaG91bGRJZ25vcmVIb3N0KToKKyAgICAgICAgKiBwYWdlL1NlY3Vy
aXR5T3JpZ2luLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjp3aW5kb3dMb2NhdGlvbkhvc3QpOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDE5
LTEyLTEyICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSb2xs
LW91dCBwYXJ0IG9mIHJldmlzaW9uIDI1MzI3NSByZWxhdGVkIHRvIHJvdGF0aW9uIGhhbmRsaW5n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCA3ODgzMTQ1ODJm
MzE3ZGM3YTI4YzVlMzQwYTcwODVmOTc4OTkwM2UxLi4yNTIyN2E4YzNhZWFiODVmN2ExNjA5MGVh
MjRmMTM4YWRmMGYyOGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5j
cHAKQEAgLTE2MjYsNiArMTYyNiwxMCBAQCBVUkwgRG9jdW1lbnRMb2FkZXI6OmRvY3VtZW50VVJM
KCkgY29uc3QKICAgICAgICAgdXJsID0gbV9yZXF1ZXN0LnVybCgpOwogICAgIGlmICh1cmwuaXNF
bXB0eSgpKQogICAgICAgICB1cmwgPSBtX3Jlc3BvbnNlLnVybCgpOworCisgICAgaWYgKFNlY3Vy
aXR5T3JpZ2luOjpzaG91bGRJZ25vcmVIb3N0KHVybCkgJiYgIXVybC5ob3N0KCkuaXNFbXB0eSgp
KQorICAgICAgICB1cmwuc2V0SG9zdCh7IH0pOworCiAgICAgcmV0dXJuIHVybDsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmgKaW5kZXggNGJiMWM5Zjc2MmU5OWFlYWU4MmEwOGFmZGEzZmI5ZjVm
Y2Q1ZWQxMS4uYWU2MjU3ZTdhYTcyNDJhMmI0NGI5ZGRkYmFkOTViNGM4ZWQ1YTBmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0xNjUsNyArMTY1LDcgQEAgcHVibGljOgogICAgIE5hdmln
YXRvciogb3B0aW9uYWxOYXZpZ2F0b3IoKSBjb25zdCB7IHJldHVybiBtX25hdmlnYXRvci5nZXQo
KTsgfQogICAgIE5hdmlnYXRvciYgY2xpZW50SW5mb3JtYXRpb24oKSB7IHJldHVybiBuYXZpZ2F0
b3IoKTsgfQogCi0gICAgTG9jYXRpb24mIGxvY2F0aW9uKCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
TG9jYXRpb24mIGxvY2F0aW9uKCk7CiAgICAgdm9pZCBzZXRMb2NhdGlvbihET01XaW5kb3cmIGFj
dGl2ZVdpbmRvdywgY29uc3QgVVJMJiBjb21wbGV0ZWRVUkwsIFNldExvY2F0aW9uTG9ja2luZyA9
IExvY2tIaXN0b3J5QmFzZWRPbkdlc3R1cmVTdGF0ZSk7CiAKICAgICBET01TZWxlY3Rpb24qIGdl
dFNlbGVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5oCmluZGV4IDVmYmExOGNhMTQ4YjBkMTg2
ZGJhNTMyYWE0ZDhiYzQ3N2JkOGM0MGIuLmJhMTA0ZGM4NWE4NzA4NmNlYWJkYjZiYjM5NjZlZTVh
MjFlZGRmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGlj
OgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFByb3RvY29sKERPTVdpbmRvdyYgYWN0aXZlV2lu
ZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93LCBjb25zdCBTdHJpbmcmKTsKICAgICBTdHJpbmcg
cHJvdG9jb2woKSBjb25zdDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRIb3N0KERPTVdpbmRv
dyYgYWN0aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93LCBjb25zdCBTdHJpbmcmKTsK
LSAgICBTdHJpbmcgaG9zdCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBob3N0
KCkgY29uc3Q7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0SG9zdG5hbWUoRE9NV2luZG93JiBh
Y3RpdmVXaW5kb3csIERPTVdpbmRvdyYgZmlyc3RXaW5kb3csIGNvbnN0IFN0cmluZyYpOwogICAg
IFN0cmluZyBob3N0bmFtZSgpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFBvcnQo
RE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyYgZmlyc3RXaW5kb3csIGNvbnN0IFN0
cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmlkbAppbmRleCA4NWNiOWFiZmQ4MjAzYmUxMjI2
MjVlMTU3N2NhZmM0ZmM3NTc4NDMzLi5iMGRjY2NkZjdkNzAyNzQ3YTNjODgyZjJlNDgwMDdlNmQ3
MzZiNzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmlkbApAQCAtMzgsNiArMzgsNyBAQAogICAg
IEN1c3RvbVB1dCwKICAgICBDdXN0b21QdXRPblByb3RvdHlwZSwKICAgICBDdXN0b21Ub1N0cmlu
Z05hbWUsCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCiAgICAgR2VuZXJhdGVJc1Jl
YWNoYWJsZT1SZWFjaGFibGVGcm9tRE9NV2luZG93LAogICAgIElzSW1tdXRhYmxlUHJvdG90eXBl
RXhvdGljT2JqZWN0LAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IDFkYmZjZGM3YjI4ZWMzMzQ0Yzg2ZmZjM2Vi
ZjMyODUxNWJmNzlkYTMuLmU4MmJmZDk0ODUxZmE3OTVkNGI2ODU3YmZiY2FkM2JkODI0N2MyMzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCkBAIC01NCw2ICs1NCwxMSBA
QCBzdGF0aWMgYm9vbCBzY2hlbWVSZXF1aXJlc0hvc3QoY29uc3QgVVJMJiB1cmwpCiAgICAgcmV0
dXJuIHVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgfHwgdXJsLnByb3RvY29sSXMoImZ0cCIp
OwogfQogCitib29sIFNlY3VyaXR5T3JpZ2luOjpzaG91bGRJZ25vcmVIb3N0KGNvbnN0IFVSTCYg
dXJsKQoreworICAgIHJldHVybiB1cmwucHJvdG9jb2xJcygiZGF0YSIpIHx8IHVybC5wcm90b2Nv
bElzKCJhYm91dCIpIHx8IHVybC5wcm90b2NvbElzKCJmaWxlIik7Cit9CisKIGJvb2wgU2VjdXJp
dHlPcmlnaW46OnNob3VsZFVzZUlubmVyVVJMKGNvbnN0IFVSTCYgdXJsKQogewogICAgIC8vIEZJ
WE1FOiBCbG9iIFVSTHMgZG9uJ3QgaGF2ZSBpbm5lciBVUkxzLiBUaGVpciBmb3JtIGlzICJibG9i
Ojxpbm5lci1vcmlnaW4+LzxVVUlEPiIsIHNvIHRyZWF0aW5nIHRoZSBwYXJ0IGFmdGVyICJibG9i
OiIgYXMgYSBVUkwgaXMgaW5jb3JyZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZWN1cml0eU9yaWdpbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5o
CmluZGV4IDY1MzhmOTE1NTJjMDdiZGFlOGE1NDdjNzc0YTA5MGM2Njc2NzVmYTguLjQwOTA3NjMx
YjBiOGIwZTM3NmZiMjc5ZTY2ZDkyMDk3ZWY1NjQxZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3Vy
aXR5T3JpZ2luLmgKQEAgLTg4LDYgKzg4LDggQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYg
ZG9tYWluKCkgY29uc3QgeyByZXR1cm4gbV9kb21haW47IH0KICAgICBPcHRpb25hbDx1aW50MTZf
dD4gcG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5wb3J0OyB9CiAKKyAgICBzdGF0aWMgYm9v
bCBzaG91bGRJZ25vcmVIb3N0KGNvbnN0IFVSTCYpOworCiAgICAgLy8gUmV0dXJucyB0cnVlIGlm
IGEgZ2l2ZW4gVVJMIGlzIHNlY3VyZSwgYmFzZWQgZWl0aGVyIGRpcmVjdGx5IG9uIGl0cwogICAg
IC8vIG93biBwcm90b2NvbCwgb3IsIHdoZW4gcmVsZXZhbnQsIG9uIHRoZSBwcm90b2NvbCBvZiBp
dHMgImlubmVyIFVSTCIKICAgICAvLyBQcm90b2NvbHMgbGlrZSBibG9iOiBhbmQgZmlsZXN5c3Rl
bTogZmFsbCBpbnRvIHRoaXMgbGF0dGVyIGNhdGVnb3J5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCmluZGV4IGUwNzc3OTYyZDU5MmQ1ZjIyYzg0OGMxZWM4YjkwZTJhMzkzZTc0Yjku
LjEzYTExY2Q0YTNhYmRjNWI4NGVhZDdkNDc3ZDEwNDE0M2M0MTM5ZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTExNSw2ICsxMTUsNyBAQAogI2luY2x1ZGUgIkxlZ2Fj
eVNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNs
dWRlICJMb2FkZXJTdHJhdGVneS5oIgorI2luY2x1ZGUgIkxvY2F0aW9uLmgiCiAjaW5jbHVkZSAi
TWFsbG9jU3RhdGlzdGljcy5oIgogI2luY2x1ZGUgIk1lZGlhRGV2aWNlcy5oIgogI2luY2x1ZGUg
Ik1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaCIKQEAgLTUzNjEsNCArNTM2Miw5IEBA
IGJvb2wgSW50ZXJuYWxzOjpoYXNTYW5kYm94TWFjaExvb2t1cEFjY2Vzc1RvR2xvYmFsTmFtZShj
b25zdCBTdHJpbmcmIHByb2Nlc3MsIGNvCiAjZW5kaWYKIH0KIAorU3RyaW5nIEludGVybmFsczo6
d2luZG93TG9jYXRpb25Ib3N0KERPTVdpbmRvdyYgd2luZG93KQoreworICAgIHJldHVybiB3aW5k
b3cubG9jYXRpb24oKS5ob3N0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDM1Nzc0MzdlMmExNWQyZTRlNmM4OTE1ZTBhNGM2
ZTQ5OTFkOGQxYzAuLjk3ZDg4MmJmMWRmZjM3OTIwZDk5OTNkZjljN2FjOGUxMGU5Nzk4NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNzgsNiArNzgsNyBAQCBjbGFzcyBJbnNw
ZWN0b3JTdHViRnJvbnRlbmQ7CiBjbGFzcyBJbnRlcm5hbHNNYXBMaWtlOwogY2xhc3MgSW50ZXJu
YWxTZXR0aW5nczsKIGNsYXNzIEludGVybmFsc1NldExpa2U7CitjbGFzcyBMb2NhdGlvbjsKIGNs
YXNzIE1hbGxvY1N0YXRpc3RpY3M7CiBjbGFzcyBNZWRpYVNlc3Npb247CiBjbGFzcyBNZWRpYVN0
cmVhbTsKQEAgLTkxNyw2ICs5MTgsOCBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgaGlnaGxpZ2h0
UHNldWRvRWxlbWVudENvbG9yKGNvbnN0IFN0cmluZyYgaGlnaGxpZ2h0TmFtZSwgRWxlbWVudCYp
OwogCisgICAgU3RyaW5nIHdpbmRvd0xvY2F0aW9uSG9zdChET01XaW5kb3cmKTsKKwogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29u
dGV4dERvY3VtZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5k
ZXggYmRlOGY5OTZiZTkwYmI3NmM5ZDljZjdhODQ3NGExZmU1MmRjMjg4OS4uMjRjZWYyOWNmOTFh
ZDEzOTdjZGNhMDY3YWE2ZWQ4NWZiZTNmNGRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbApAQCAtNzY5LDYgKzc2OSw4IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAg
IFtDYWxsV2l0aD1Eb2N1bWVudF0gdm9pZCBxdWV1ZVRhc2tUb1F1ZXVlTWljcm90YXNrKERPTVN0
cmluZyBzb3VyY2UsIFZvaWRDYWxsYmFjayBjYWxsYmFjayk7CiAgICAgW01heVRocm93RXhjZXB0
aW9uXSBib29sZWFuIGhhc1NhbWVFdmVudExvb3BBcyhXaW5kb3dQcm94eSB3aW5kb3dQcm94eSk7
CiAKKyAgICBET01TdHJpbmcgd2luZG93TG9jYXRpb25Ib3N0KERPTVdpbmRvdyB3aW5kb3cpOwor
CiAgICAgdm9pZCBtYXJrQ29udGV4dEFzSW5zZWN1cmUoKTsKIAogICAgIHZvaWQgc2V0TWF4Q2Fu
dmFzUGl4ZWxNZW1vcnkodW5zaWduZWQgbG9uZyBzaXplKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhM2Y0ZDVhNWM1MGQ2
NDJkMjA2ZTU5ZmNjMDE1MDhiNDhlN2U2ZmM5Li5lMDExOTVmYzE5ZTIwMTY4YjhiOTM2NmM0M2I4
YjdhMTExZWQwNjU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMTItMTIgIHlvdWVubiBm
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIElnbm9yZSBVUkwgaG9zdCBmb3Ig
c2NoZW1lcyB0aGF0IGFyZSBub3QgdXNpbmcgaG9zdCBpbmZvcm1hdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MTU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL2Zp
bGUtdXJsLWhvc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2xv
Y2FsL2ZpbGUtdXJsLWhvc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9hYm91dC11cmwtaG9zdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvc2VjdXJpdHkvYWJvdXQtdXJsLWhvc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9kYXRhLXVybC1ob3N0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9kYXRhLXVybC1ob3N0Lmh0bWw6IEFkZGVkLgorCiAy
MDE5LTEyLTExICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBD
b25zaWRlciB0b3AtbGV2ZWwgY29udGV4dCB3aG9zZSBvcmlnaW4gaXMgdW5pcXVlIGFzIGluc2Vj
dXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2ZpbGUtdXJsLWhv
c3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9maWxlLXVybC1o
b3N0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWYyMmU5YTQzMWFkMDI3MjcxM2I3MWZkYzg3
OTQwMTZjOGVmMTJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9s
b2NhbC9maWxlLXVybC1ob3N0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2ZpbGUtdXJsLWhvc3QuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9zdC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjEwMWM5ZjhkNmI2YTRmMDVjZmY0OTFjODI4ZDUyZjkzMTkzYzc0MmMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2ZpbGUtdXJsLWhvc3QuaHRtbApA
QCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIH0KKyAgICBpZiAobG9j
YXRpb24uaGFzaCA9PT0gIiIpCisgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHdpbmRvdy5sb2Nh
dGlvbi5ocmVmLnJlcGxhY2UoImZpbGU6Ly8vIiwgImZpbGU6Ly9leGFtcGxlLm9yZy8iKSArICI/
dGVzdCN0ZXN0LWhvc3QiOworICAgIGVsc2UgaWYgKGxvY2F0aW9uLmhhc2ggPT09ICIjdGVzdCIp
CisgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnJlcGxhY2Uo
ImZpbGU6Ly9leGFtcGxlLm9yZy8iLCAiZmlsZTovLy8iKS5yZXBsYWNlKCI/dGVzdCN0ZXN0LWhv
c3QiLCAiIikgKyAiP3Rlc3QyI3Rlc3QtaG9zdCIgKyB3aW5kb3cubG9jYXRpb24uaG9zdDsKKyAg
ICBlbHNlIHsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSB3aW5kb3cubG9jYXRp
b24uaGFzaCA9PT0gIiN0ZXN0LWhvc3QiID8gIlBBU1MiOiAoIkZBSUwsIGdvdDogIiArIHdpbmRv
dy5sb2NhdGlvbi5oYXNoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0LXVybC1o
b3N0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXQt
dXJsLWhvc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcx
ZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Fib3V0LXVybC1ob3N0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQ
QVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0LXVy
bC1ob3N0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0LXVybC1o
b3N0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMzMjliZTM5Y2ZhOGQ5YjkwYTMwNGNhMDc5ZWE1ODA0OTdk
MGU1NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
YWJvdXQtdXJsLWhvc3QuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxi
b2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworfQorZnVuY3Rp
b24gdGVzdCgpIHsKKyAgICB0cnkgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykgewor
ICAgICAgICAgICAgY29uc3QgaG9zdCA9IGludGVybmFscy53aW5kb3dMb2NhdGlvbkhvc3QodGVz
dEZyYW1lLmNvbnRlbnRXaW5kb3cpOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhU
TUwgPSBob3N0ID09PSAiIiA/ICJQQVNTIiA6ICJGQUlMLCBnb3QgIiArIGhvc3Q7CisgICAgICAg
IH0KKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGNvbnNvbGUubG9nKGUpOworICAgIH0KKwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7Cit9Cis8L3NjcmlwdD4KKzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgb25sb2FkPSJ0ZXN0KCki
IHNyYz0iYWJvdXQ6Ly9leGFtcGxlLm9yZyI+PC9pZnJhbWU+Cis8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGEtdXJsLWhvc3QtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9kYXRhLXVybC1ob3N0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43ZWYyMmU5YTQzMWFkMDI3MjcxM2I3MWZkYzg3OTQwMTZjOGVm
MTJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9k
YXRhLXVybC1ob3N0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGEtdXJsLWhvc3QuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjg2MTYyNDQ3ODc2NWFkMTIwNmRhMjEyNDY1MjJlZWYyYjMzMmI3OGYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGEtdXJsLWhvc3QuaHRt
bApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworfQorZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB0
cnkgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgY29uc3Qg
aG9zdCA9IGludGVybmFscy53aW5kb3dMb2NhdGlvbkhvc3QodGVzdEZyYW1lLmNvbnRlbnRXaW5k
b3cpOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSBob3N0ID09PSAiIiA/
ICJQQVNTIiA6ICJGQUlMLCBnb3QgIiArIGhvc3Q7CisgICAgICAgIH0KKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIGNvbnNvbGUubG9nKGUpOworICAgIH0KKworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4K
KzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgb25sb2FkPSJ0ZXN0KCkiIHNyYz0iZGF0YTovL2V4YW1w
bGUub3JnL3RleHQvaHRtbCx0ZXN0Ij48L2lmcmFtZT4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386390</attachid>
            <date>2019-12-24 05:35:28 -0800</date>
            <delta_ts>2019-12-30 02:50:17 -0800</delta_ts>
            <desc>Removing host inside Document class</desc>
            <filename>bug-205157-20191224143527.patch</filename>
            <type>text/plain</type>
            <size>12416</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc4MmQ4MzQwMmI0OTZl
ZjNhZDk0ZGYyZGE1ZTZlYzk3ZTcwYjllMy4uYTQxZmQ2OTIwZjU4NzA2ODI0ODhjMzNlNDNlNjBm
Mjg0ZDkyNTFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTEyLTI0ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJZ25vcmUgVVJMIGhvc3Qg
Zm9yIHNjaGVtZXMgdGhhdCBhcmUgbm90IHVzaW5nIGhvc3QgaW5mb3JtYXRpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTE1NworICAgICAgICBy
ZGFyOi8vcHJvYmxlbS81NzgyNTk2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL2xvY2FsL2ZpbGUtdXJsLWhvc3QuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9hYm91dC11cmwtaG9zdC5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGEtdXJsLWhvc3QuaHRtbAor
CisgICAgICAgIFdoZW5ldmVyIHNldHRpbmcgdGhlIGRvY3VtZW50IFVSTCwgcmVtb3ZlIHRoZSBo
b3N0IGluZm9ybWF0aW9uIGlmIGl0cyBzY2hlbWUgaXMgbm90IHN1cHBvc2VkIHRvIGhhdmUgYSBo
b3N0LgorICAgICAgICBUaGlzIGlzIGRvbmUgZm9yIGZpbGUsIGRhdGEgYW5kIGFib3V0IHNjaGVt
ZXMuCisKKyAgICAgICAgQWRkIGludGVybmFscyBBUElzIHRvIHRlc3QgdGhpcy4KKworICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0VVJM
KToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvTG9jYXRpb24u
aDoKKyAgICAgICAgKiBwYWdlL0xvY2F0aW9uLmlkbDoKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5
T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpzaG91bGRJZ25v
cmVIb3N0KToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp3aW5kb3dM
b2NhdGlvbkhvc3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDE5LTEyLTIzICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNTM2MzQpOiBSZXBy
b2R1Y2libGUgY3Jhc2ggZ29pbmcgYmFjayBhbmQgZm9yd2FyZCBvbiBnb29kcmVhZHMuY29tIGlu
IFBhZ2U6OnNldFBhZ2VTY2FsZUZhY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMzQx
NmQ1ODczYjMzNzljMjJmMTBjYjFlZmI0NjgyYzI1M2QwOWM3MC4uNWYxNmI3NDkxMDM3OWNkMzI2
YTYyNTY2Njc2NjMxNzI2YTkwYmE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0zMjI5
LDYgKzMyMjksOSBAQCB2b2lkIERvY3VtZW50OjpzZXRVUkwoY29uc3QgVVJMJiB1cmwpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fdXJsID0gbmV3VVJMOworICAgIGlmIChTZWN1cml0eU9yaWdp
bjo6c2hvdWxkSWdub3JlSG9zdChtX3VybCkgJiYgIW1fdXJsLmhvc3QoKS5pc0VtcHR5KCkpCisg
ICAgICAgIG1fdXJsLnNldEhvc3QoeyB9KTsKKwogICAgIG1fZG9jdW1lbnRVUkkgPSBtX3VybC5z
dHJpbmcoKTsKICAgICB1cGRhdGVCYXNlVVJMKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApp
bmRleCA2MDAzMzc4YTQyYTIwNDNjMTBlNzJmM2U1ZDRjZWNjMWZmZmRkODBhLi44ZjBkOWM5NGUx
N2M5ZTRkZDEzZDQ5NWFjZDhjYzQ2MzhiOTk3ZDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgK
QEAgLTE3Niw3ICsxNzYsNyBAQCBwdWJsaWM6CiAgICAgTmF2aWdhdG9yKiBvcHRpb25hbE5hdmln
YXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fbmF2aWdhdG9yLmdldCgpOyB9CiAgICAgTmF2aWdhdG9y
JiBjbGllbnRJbmZvcm1hdGlvbigpIHsgcmV0dXJuIG5hdmlnYXRvcigpOyB9CiAKLSAgICBMb2Nh
dGlvbiYgbG9jYXRpb24oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBMb2NhdGlvbiYgbG9jYXRpb24o
KTsKICAgICB2b2lkIHNldExvY2F0aW9uKERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBjb25zdCBV
UkwmIGNvbXBsZXRlZFVSTCwgU2V0TG9jYXRpb25Mb2NraW5nID0gTG9ja0hpc3RvcnlCYXNlZE9u
R2VzdHVyZVN0YXRlKTsKIAogICAgIERPTVNlbGVjdGlvbiogZ2V0U2VsZWN0aW9uKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0xvY2F0aW9uLmgKaW5kZXggNWZiYTE4Y2ExNDhiMGQxODZkYmE1MzJhYTRkOGJjNDc3YmQ4
YzQwYi4uYmExMDRkYzg1YTg3MDg2Y2VhYmRiNmJiMzk2NmVlNWEyMWVkZGY5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvTG9jYXRpb24uaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0UHJvdG9jb2woRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyYgZmly
c3RXaW5kb3csIGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBwcm90b2NvbCgpIGNvbnN0Owog
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEhvc3QoRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERP
TVdpbmRvdyYgZmlyc3RXaW5kb3csIGNvbnN0IFN0cmluZyYpOwotICAgIFN0cmluZyBob3N0KCkg
Y29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGhvc3QoKSBjb25zdDsKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRIb3N0bmFtZShET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgRE9NV2lu
ZG93JiBmaXJzdFdpbmRvdywgY29uc3QgU3RyaW5nJik7CiAgICAgU3RyaW5nIGhvc3RuYW1lKCkg
Y29uc3Q7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UG9ydChET01XaW5kb3cmIGFjdGl2ZVdp
bmRvdywgRE9NV2luZG93JiBmaXJzdFdpbmRvdywgY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TG9jYXRpb24uaWRsCmluZGV4IDg1Y2I5YWJmZDgyMDNiZTEyMjYyNWUxNTc3Y2FmYzRmYzc1Nzg0
MzMuLmIwZGNjY2RmN2Q3MDI3NDdhM2M4ODJmMmU0ODAwN2U2ZDczNmI3NDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYXRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvTG9jYXRpb24uaWRsCkBAIC0zOCw2ICszOCw3IEBACiAgICAgQ3VzdG9tUHV0LAogICAgIEN1
c3RvbVB1dE9uUHJvdG90eXBlLAogICAgIEN1c3RvbVRvU3RyaW5nTmFtZSwKKyAgICBFeHBvcnRN
YWNybz1XRUJDT1JFX0VYUE9SVCwKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPVJlYWNoYWJsZUZy
b21ET01XaW5kb3csCiAgICAgSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3QsCiAgICAg
SW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2VjdXJpdHlPcmlnaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdp
bi5jcHAKaW5kZXggZTkwMGMyMWYzOTcwZTUyOTQ4ZDhhMmY3OWZhMzJmZTQzNzg1N2U1ZS4uOWFh
Nzg3MjIyMGNkODExNDJkYWQ4NDY3MTljNjc5Nzg2NzE0NjUxYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZWN1cml0eU9yaWdpbi5jcHAKQEAgLTU2LDYgKzU2LDExIEBAIHN0YXRpYyBib29sIHNjaGVt
ZVJlcXVpcmVzSG9zdChjb25zdCBVUkwmIHVybCkKICAgICByZXR1cm4gdXJsLnByb3RvY29sSXNJ
bkhUVFBGYW1pbHkoKSB8fCB1cmwucHJvdG9jb2xJcygiZnRwIik7CiB9CiAKK2Jvb2wgU2VjdXJp
dHlPcmlnaW46OnNob3VsZElnbm9yZUhvc3QoY29uc3QgVVJMJiB1cmwpCit7CisgICAgcmV0dXJu
IHVybC5wcm90b2NvbElzKCJkYXRhIikgfHwgdXJsLnByb3RvY29sSXMoImFib3V0IikgfHwgdXJs
LnByb3RvY29sSXMoImZpbGUiKTsKK30KKwogYm9vbCBTZWN1cml0eU9yaWdpbjo6c2hvdWxkVXNl
SW5uZXJVUkwoY29uc3QgVVJMJiB1cmwpCiB7CiAgICAgLy8gRklYTUU6IEJsb2IgVVJMcyBkb24n
dCBoYXZlIGlubmVyIFVSTHMuIFRoZWlyIGZvcm0gaXMgImJsb2I6PGlubmVyLW9yaWdpbj4vPFVV
SUQ+Iiwgc28gdHJlYXRpbmcgdGhlIHBhcnQgYWZ0ZXIgImJsb2I6IiBhcyBhIFVSTCBpcyBpbmNv
cnJlY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKaW5kZXggNjUzOGY5MTU1MmMw
N2JkYWU4YTU0N2M3NzRhMDkwYzY2NzY3NWZhOC4uNDA5MDc2MzFiMGI4YjBlMzc2ZmIyNzllNjZk
OTIwOTdlZjU2NDFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9y
aWdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaApAQCAtODgs
NiArODgsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBkb21haW4oKSBjb25zdCB7IHJl
dHVybiBtX2RvbWFpbjsgfQogICAgIE9wdGlvbmFsPHVpbnQxNl90PiBwb3J0KCkgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhLnBvcnQ7IH0KIAorICAgIHN0YXRpYyBib29sIHNob3VsZElnbm9yZUhvc3Qo
Y29uc3QgVVJMJik7CisKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgYSBnaXZlbiBVUkwgaXMgc2Vj
dXJlLCBiYXNlZCBlaXRoZXIgZGlyZWN0bHkgb24gaXRzCiAgICAgLy8gb3duIHByb3RvY29sLCBv
ciwgd2hlbiByZWxldmFudCwgb24gdGhlIHByb3RvY29sIG9mIGl0cyAiaW5uZXIgVVJMIgogICAg
IC8vIFByb3RvY29scyBsaWtlIGJsb2I6IGFuZCBmaWxlc3lzdGVtOiBmYWxsIGludG8gdGhpcyBs
YXR0ZXIgY2F0ZWdvcnkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZTVk
NTEzOTM5YTNjOTYxNWZiNGRjNjU1YTNmNzMxZDY3ZDBiZGU4Yy4uN2RmY2ExYTE2MmExMjcwMTMy
ZTk2YjIyYWE1YjYwMDU2Mzg2NzdmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cApAQCAtMTE2LDYgKzExNiw3IEBACiAjaW5jbHVkZSAiTGVnYWN5U2NoZW1lUmVnaXN0cnkuaCIK
ICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIkxvYWRlclN0cmF0ZWd5
LmgiCisjaW5jbHVkZSAiTG9jYXRpb24uaCIKICNpbmNsdWRlICJNYWxsb2NTdGF0aXN0aWNzLmgi
CiAjaW5jbHVkZSAiTWVkaWFEZXZpY2VzLmgiCiAjaW5jbHVkZSAiTWVkaWFFbmdpbmVDb25maWd1
cmF0aW9uRmFjdG9yeS5oIgpAQCAtNTM4NSw0ICs1Mzg2LDkgQEAgYm9vbCBJbnRlcm5hbHM6Omhh
c1NhbmRib3hNYWNoTG9va3VwQWNjZXNzVG9YUENTZXJ2aWNlTmFtZShjb25zdCBTdHJpbmcmIHBy
b2Nlc3MKICNlbmRpZgogfQogCitTdHJpbmcgSW50ZXJuYWxzOjp3aW5kb3dMb2NhdGlvbkhvc3Qo
RE9NV2luZG93JiB3aW5kb3cpCit7CisgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbigpLmhvc3Qo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKaW5kZXggZDRiMjY1NzIzZWMzN2MzMTMzNDg3ZGM5MjRjNTM5NmE1ZDZiOTVmMS4uMzRhNTY1
NWM2MTg5NDMyOTkxYTYyYjk1OTM3MTEwMjI5YjY5NmEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCkBAIC03OCw2ICs3OCw3IEBAIGNsYXNzIEluc3BlY3RvclN0dWJGcm9udGVuZDsK
IGNsYXNzIEludGVybmFsc01hcExpa2U7CiBjbGFzcyBJbnRlcm5hbFNldHRpbmdzOwogY2xhc3Mg
SW50ZXJuYWxzU2V0TGlrZTsKK2NsYXNzIExvY2F0aW9uOwogY2xhc3MgTWFsbG9jU3RhdGlzdGlj
czsKIGNsYXNzIE1lZGlhU2Vzc2lvbjsKIGNsYXNzIE1lZGlhU3RyZWFtOwpAQCAtOTE4LDYgKzkx
OSw4IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBoaWdobGlnaHRQc2V1ZG9FbGVtZW50Q29sb3Io
Y29uc3QgU3RyaW5nJiBoaWdobGlnaHROYW1lLCBFbGVtZW50Jik7CiAKKyAgICBTdHJpbmcgd2lu
ZG93TG9jYXRpb25Ib3N0KERPTVdpbmRvdyYpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IElu
dGVybmFscyhEb2N1bWVudCYpOwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBhZmY3NmZmYWNkYmJjNzhi
MzgyZTkzMjFkZTQ2MGNlNTU4NjI1ZWNjLi43ZGJhOWVlYjIwZWE2NjJmNGUxODE4MWJmOTVmMmI2
Mjk2NjNiOWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC03NjksNiAr
NzY5LDggQEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgW0NhbGxXaXRoPURvY3VtZW50
XSB2b2lkIHF1ZXVlVGFza1RvUXVldWVNaWNyb3Rhc2soRE9NU3RyaW5nIHNvdXJjZSwgVm9pZENh
bGxiYWNrIGNhbGxiYWNrKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIGJvb2xlYW4gaGFzU2Ft
ZUV2ZW50TG9vcEFzKFdpbmRvd1Byb3h5IHdpbmRvd1Byb3h5KTsKIAorICAgIERPTVN0cmluZyB3
aW5kb3dMb2NhdGlvbkhvc3QoRE9NV2luZG93IHdpbmRvdyk7CisKICAgICB2b2lkIG1hcmtDb250
ZXh0QXNJbnNlY3VyZSgpOwogCiAgICAgdm9pZCBzZXRNYXhDYW52YXNQaXhlbE1lbW9yeSh1bnNp
Z25lZCBsb25nIHNpemUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBmYTM1Y2E1MjJhZjk1MDIxYTAzN2ZjMWIxODQ2NDRi
OWNkYjRmNGYuLmQxM2Q0YjVhNjMyMjZmMjA2M2E0MTkyYWQxMDJkZTAyNjBiOWRhYWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxOS0xMi0yNCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgSWdub3JlIFVSTCBob3N0IGZvciBzY2hlbWVzIHRoYXQgYXJlIG5v
dCB1c2luZyBob3N0IGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDUxNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9zdC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9zdC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0LXVybC1ob3N0
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9hYm91
dC11cmwtaG9zdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Rh
dGEtdXJsLWhvc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2RhdGEtdXJsLWhvc3QuaHRtbDogQWRkZWQuCisKIDIwMTktMTItMjMgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMTI2OTMp
OiBnZXRDbGllbnRSZWN0cygpLCBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBmb3IgcmFuZ2UgdGhh
dCBzcGFucyBtdWx0aS1saW5lcyBkaWZmZXJzIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRleHQgaXMg
c2VsZWN0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11
cmwtaG9zdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2ZpbGUt
dXJsLWhvc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcx
ZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2xvY2FsL2ZpbGUtdXJsLWhvc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9zdC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9maWxlLXVybC1ob3N0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTAxYzlmOGQ2YjZhNGYwNWNmZjQ5MWM4MjhkNTJmOTMxOTNjNzQyYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9zdC5o
dG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0Pgor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgfQorICAgIGlm
IChsb2NhdGlvbi5oYXNoID09PSAiIikKKyAgICAgICAgd2luZG93LmxvY2F0aW9uID0gd2luZG93
LmxvY2F0aW9uLmhyZWYucmVwbGFjZSgiZmlsZTovLy8iLCAiZmlsZTovL2V4YW1wbGUub3JnLyIp
ICsgIj90ZXN0I3Rlc3QtaG9zdCI7CisgICAgZWxzZSBpZiAobG9jYXRpb24uaGFzaCA9PT0gIiN0
ZXN0IikKKyAgICAgICAgd2luZG93LmxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLmhyZWYucmVw
bGFjZSgiZmlsZTovL2V4YW1wbGUub3JnLyIsICJmaWxlOi8vLyIpLnJlcGxhY2UoIj90ZXN0I3Rl
c3QtaG9zdCIsICIiKSArICI/dGVzdDIjdGVzdC1ob3N0IiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0
OworICAgIGVsc2UgeworICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IHdpbmRvdy5s
b2NhdGlvbi5oYXNoID09PSAiI3Rlc3QtaG9zdCIgPyAiUEFTUyI6ICgiRkFJTCwgZ290OiAiICsg
d2luZG93LmxvY2F0aW9uLmhhc2gpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXQt
dXJsLWhvc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9h
Ym91dC11cmwtaG9zdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmMjJlOWE0MzFhZDAyNzI3
MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXQtdXJsLWhvc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEg
QEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJv
dXQtdXJsLWhvc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXQt
dXJsLWhvc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzMyOWJlMzljZmE4ZDliOTBhMzA0Y2EwNzllYTU4
MDQ5N2QwZTU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9hYm91dC11cmwtaG9zdC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9Citm
dW5jdGlvbiB0ZXN0KCkgeworICAgIHRyeSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgICAgICBjb25zdCBob3N0ID0gaW50ZXJuYWxzLndpbmRvd0xvY2F0aW9uSG9z
dCh0ZXN0RnJhbWUuY29udGVudFdpbmRvdyk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lmlu
bmVySFRNTCA9IGhvc3QgPT09ICIiID8gIlBBU1MiIDogIkZBSUwsIGdvdCAiICsgaG9zdDsKKyAg
ICAgICAgfQorICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAg
fQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKK30KKzwvc2NyaXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBvbmxvYWQ9InRl
c3QoKSIgc3JjPSJhYm91dDovL2V4YW1wbGUub3JnIj48L2lmcmFtZT4KKzwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGEtdXJsLWhvc3Qt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAx
NmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2RhdGEtdXJsLWhvc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9kYXRhLXVybC1ob3N0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODYxNjI0NDc4NzY1YWQxMjA2ZGEyMTI0NjUyMmVlZjJiMzMyYjc4ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9z
dC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0
PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CitmdW5jdGlvbiB0ZXN0KCkgewor
ICAgIHRyeSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBj
b25zdCBob3N0ID0gaW50ZXJuYWxzLndpbmRvd0xvY2F0aW9uSG9zdCh0ZXN0RnJhbWUuY29udGVu
dFdpbmRvdyk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IGhvc3QgPT09
ICIiID8gIlBBU1MiIDogIkZBSUwsIGdvdCAiICsgaG9zdDsKKyAgICAgICAgfQorICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAgfQorCisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2Ny
aXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBvbmxvYWQ9InRlc3QoKSIgc3JjPSJkYXRhOi8v
ZXhhbXBsZS5vcmcvdGV4dC9odG1sLHRlc3QiPjwvaWZyYW1lPgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386519</attachid>
            <date>2019-12-30 02:50:22 -0800</date>
            <delta_ts>2019-12-30 07:02:01 -0800</delta_ts>
            <desc>Updated according review</desc>
            <filename>bug-205157-20191230115020.patch</filename>
            <type>text/plain</type>
            <size>15417</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdkZjQ4NzI3YmE4MjcyZjJiNWJjNmYz
OTk3YmZjNWRkNTNlN2U3NjguLmJhMDg0ZGZkN2MyYjhiMDBhMDU4NTJmMjBkYmNjZmViODM3NTcw
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMTItMzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIElnbm9yZSBVUkwgaG9zdCBmb3Igc2NoZW1lcyB0aGF0
IGFyZSBub3QgdXNpbmcgaG9zdCBpbmZvcm1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MTU3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
NzgyNTk2Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHd0Zi9VUkwuY3BwOgorICAgICAgICAoV1RGOjpVUkw6OnJlbW92ZUhvc3RBbmRQb3J0KToK
KyAgICAgICAgKiB3dGYvVVJMLmg6CisKIDIwMTktMTItMjUgIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHTF0gRW5hYmxlIEFOR0xFIGJ5IGRlZmF1bHQgZm9y
IENvY29hIHBsYXRmb3JtcyAoZXhjZXB0IHNpbXVsYXRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzOGM1ZDI4
YjA4ZDFmYzE3MDkwYjU4OTcxN2E2ODdlY2JhMzI3NmZlLi5jODg0ZjQ5ZDU0YWJlN2NiNmI1NzU4
MTk4MTRiODM2YTA3NTI3NDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTktMTIt
MzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIElnbm9yZSBV
UkwgaG9zdCBmb3Igc2NoZW1lcyB0aGF0IGFyZSBub3QgdXNpbmcgaG9zdCBpbmZvcm1hdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MTU3Cisg
ICAgICAgIHJkYXI6Ly9wcm9ibGVtLzU3ODI1OTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9z
dC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0LXVybC1ob3N0
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHQtdXJsLWhv
c3QuaHRtbAorCisgICAgICAgIFdoZW5ldmVyIHNldHRpbmcgdGhlIGRvY3VtZW50IFVSTCwgcmVt
b3ZlIHRoZSBob3N0IGluZm9ybWF0aW9uIGlmIGl0cyBzY2hlbWUgaXMgbm90IHN1cHBvc2VkIHRv
IGhhdmUgYSBob3N0LgorICAgICAgICBUaGlzIGlzIGRvbmUgZm9yIGZpbGUsIGRhdGEgYW5kIGFi
b3V0IHNjaGVtZXMuCisKKyAgICAgICAgQWRkIGludGVybmFscyBBUElzIHRvIHRlc3QgdGhpcy4K
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6c2V0VVJMKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2Uv
TG9jYXRpb24uaDoKKyAgICAgICAgKiBwYWdlL0xvY2F0aW9uLmlkbDoKKyAgICAgICAgKiBwYWdl
L1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpz
aG91bGRJZ25vcmVIb3N0KToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
Ojp3aW5kb3dMb2NhdGlvbkhvc3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDE5LTEyLTI5ICB5b3Vlbm4gZmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgUlRDIFZUQiBkZWNv
ZGVycyBpbiBHUFVQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwIGIv
U291cmNlL1dURi93dGYvVVJMLmNwcAppbmRleCA1ZjRmM2YxYzBmYWExN2RlZWVkOTE0ZDlkM2Mx
OTZlNzg0Y2MyZjkyLi5mOWUzY2JmM2M3MDcxOWQyMDkzMjIyMTRmNTU0YTQ2NjZmMjM5ZDQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VS
TC5jcHAKQEAgLTQ3NCw2ICs0NzQsMTUgQEAgdm9pZCBVUkw6OnNldFBvcnQodW5zaWduZWQgc2hv
cnQgaSkKICAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQoKTsKIH0KIAordm9pZCBVUkw6OnJlbW92
ZUhvc3RBbmRQb3J0KCkKK3sKKyAgICBpZiAoIW1faXNWYWxpZCkKKyAgICAgICAgcmV0dXJuOwor
ICAgIGlmICghaG9zdCgpLmlzRW1wdHkoKSkKKyAgICAgICAgc2V0SG9zdCh7IH0pOworICAgIHJl
bW92ZVBvcnQoKTsKK30KKwogdm9pZCBVUkw6OnNldEhvc3RBbmRQb3J0KGNvbnN0IFN0cmluZyYg
aG9zdEFuZFBvcnQpCiB7CiAgICAgaWYgKCFtX2lzVmFsaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9VUkwuaCBiL1NvdXJjZS9XVEYvd3RmL1VSTC5oCmluZGV4IDg0OTc0MWM2NmJmYTJi
OTk5ZTUwMDg1MWVlMGQ5NjgwYjMyZDQ4M2IuLjFjZWU1Mjg3NmZkNGNmNzgwMmZhZGRlYTU2OTQ5
OGM4OTk1ZWFiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1VSTC5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1VSTC5oCkBAIC0xNDUsNiArMTQ1LDcgQEAgcHVibGljOgogCiAgICAgLy8gSW5w
dXQgaXMgbGlrZSAiZm9vLmNvbSIgb3IgImZvby5jb206ODAwMCIuCiAgICAgdm9pZCBzZXRIb3N0
QW5kUG9ydChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHJlbW92ZUhvc3RBbmRQb3J0KCk7CiAK
ICAgICB2b2lkIHNldFVzZXIoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRQYXNzKGNvbnN0
IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMDYyZjRhZGUyYjUxZTMwM2M4
M2MyZjJiNmFhNGM4ZmRmM2FlMjVkNS4uNWU2ZmQ3NDRmYmU4NzBhYWQ2ZjI3NzdkODMxYjFmOWEw
MTVjYjkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0zMjM1LDYgKzMyMzUsOSBAQCB2
b2lkIERvY3VtZW50OjpzZXRVUkwoY29uc3QgVVJMJiB1cmwpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIG1fdXJsID0gbmV3VVJMOworICAgIGlmIChTZWN1cml0eU9yaWdpbjo6c2hvdWxkSWdub3Jl
SG9zdChtX3VybCkpCisgICAgICAgIG1fdXJsLnJlbW92ZUhvc3RBbmRQb3J0KCk7CisKICAgICBt
X2RvY3VtZW50VVJJID0gbV91cmwuc3RyaW5nKCk7CiAgICAgdXBkYXRlQmFzZVVSTCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggNjAwMzM3OGE0MmEyMDQzYzEwZTcyZjNlNWQ0Y2Vj
YzFmZmZkZDgwYS4uYWI3ZDYwZmI0ZTg1MWNlNGVkYmYzMGY0NDQ3NjIxOTFjYjA0NGQ0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0xNzYsNyArMTc2LDcgQEAgcHVibGljOgogICAgIE5h
dmlnYXRvciogb3B0aW9uYWxOYXZpZ2F0b3IoKSBjb25zdCB7IHJldHVybiBtX25hdmlnYXRvci5n
ZXQoKTsgfQogICAgIE5hdmlnYXRvciYgY2xpZW50SW5mb3JtYXRpb24oKSB7IHJldHVybiBuYXZp
Z2F0b3IoKTsgfQogCi0gICAgTG9jYXRpb24mIGxvY2F0aW9uKCk7CisgICAgV0VCQ09SRV9URVNU
U1VQUE9SVF9FWFBPUlQgTG9jYXRpb24mIGxvY2F0aW9uKCk7CiAgICAgdm9pZCBzZXRMb2NhdGlv
bihET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgY29uc3QgVVJMJiBjb21wbGV0ZWRVUkwsIFNldExv
Y2F0aW9uTG9ja2luZyA9IExvY2tIaXN0b3J5QmFzZWRPbkdlc3R1cmVTdGF0ZSk7CiAKICAgICBE
T01TZWxlY3Rpb24qIGdldFNlbGVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9Mb2NhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5oCmluZGV4IDVm
YmExOGNhMTQ4YjBkMTg2ZGJhNTMyYWE0ZDhiYzQ3N2JkOGM0MGIuLmI2MjRjMzM1NzlkYzUxODc5
NmNlODFlNzExYjE3YzY2MjI1YzIxNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TG9jYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmgKQEAgLTUyLDcg
KzUyLDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFByb3RvY29sKERPTVdp
bmRvdyYgYWN0aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93LCBjb25zdCBTdHJpbmcm
KTsKICAgICBTdHJpbmcgcHJvdG9jb2woKSBjb25zdDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRIb3N0KERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93LCBj
b25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcgaG9zdCgpIGNvbnN0OworICAgIFdFQkNPUkVfVEVT
VFNVUFBPUlRfRVhQT1JUIFN0cmluZyBob3N0KCkgY29uc3Q7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0SG9zdG5hbWUoRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyYgZmlyc3RX
aW5kb3csIGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBob3N0bmFtZSgpIGNvbnN0OwogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFBvcnQoRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdp
bmRvdyYgZmlyc3RXaW5kb3csIGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Mb2NhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmlk
bAppbmRleCA4NWNiOWFiZmQ4MjAzYmUxMjI2MjVlMTU3N2NhZmM0ZmM3NTc4NDMzLi5kYzU3NWVh
MzI2MDI3NjUzYzkxMWM1OTFlZjRlYTAwYWQ4YWNhZjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0xvY2F0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9u
LmlkbApAQCAtMzgsNiArMzgsNyBAQAogICAgIEN1c3RvbVB1dCwKICAgICBDdXN0b21QdXRPblBy
b3RvdHlwZSwKICAgICBDdXN0b21Ub1N0cmluZ05hbWUsCisgICAgRXhwb3J0TWFjcm89V0VCQ09S
RV9URVNUU1VQUE9SVF9FWFBPUlQsCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1SZWFjaGFibGVG
cm9tRE9NV2luZG93LAogICAgIElzSW1tdXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0LAogICAg
IEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmln
aW4uY3BwCmluZGV4IGU5MDBjMjFmMzk3MGU1Mjk0OGQ4YTJmNzlmYTMyZmU0Mzc4NTdlNWUuLmIx
MjlhODI0OTk0NWU3N2Q2OWNmNTYzMDA3NDFiMWRmOWM4MDI1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2VjdXJpdHlPcmlnaW4uY3BwCkBAIC01Niw2ICs1NiwxMSBAQCBzdGF0aWMgYm9vbCBzY2hl
bWVSZXF1aXJlc0hvc3QoY29uc3QgVVJMJiB1cmwpCiAgICAgcmV0dXJuIHVybC5wcm90b2NvbElz
SW5IVFRQRmFtaWx5KCkgfHwgdXJsLnByb3RvY29sSXMoImZ0cCIpOwogfQogCitib29sIFNlY3Vy
aXR5T3JpZ2luOjpzaG91bGRJZ25vcmVIb3N0KGNvbnN0IFVSTCYgdXJsKQoreworICAgIHJldHVy
biB1cmwucHJvdG9jb2xJc0RhdGEoKSB8fCB1cmwucHJvdG9jb2xJc0Fib3V0KCkgfHwgcHJvdG9j
b2xJc0phdmFTY3JpcHQodXJsKSB8fCB1cmwucHJvdG9jb2xJcygiZmlsZSIpOworfQorCiBib29s
IFNlY3VyaXR5T3JpZ2luOjpzaG91bGRVc2VJbm5lclVSTChjb25zdCBVUkwmIHVybCkKIHsKICAg
ICAvLyBGSVhNRTogQmxvYiBVUkxzIGRvbid0IGhhdmUgaW5uZXIgVVJMcy4gVGhlaXIgZm9ybSBp
cyAiYmxvYjo8aW5uZXItb3JpZ2luPi88VVVJRD4iLCBzbyB0cmVhdGluZyB0aGUgcGFydCBhZnRl
ciAiYmxvYjoiIGFzIGEgVVJMIGlzIGluY29ycmVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlP
cmlnaW4uaAppbmRleCA2NTM4ZjkxNTUyYzA3YmRhZThhNTQ3Yzc3NGEwOTBjNjY3Njc1ZmE4Li40
MDkwNzYzMWIwYjhiMGUzNzZmYjI3OWU2NmQ5MjA5N2VmNTY0MWY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZWN1cml0eU9yaWdpbi5oCkBAIC04OCw2ICs4OCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBT
dHJpbmcmIGRvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fZG9tYWluOyB9CiAgICAgT3B0aW9uYWw8
dWludDE2X3Q+IHBvcnQoKSBjb25zdCB7IHJldHVybiBtX2RhdGEucG9ydDsgfQogCisgICAgc3Rh
dGljIGJvb2wgc2hvdWxkSWdub3JlSG9zdChjb25zdCBVUkwmKTsKKwogICAgIC8vIFJldHVybnMg
dHJ1ZSBpZiBhIGdpdmVuIFVSTCBpcyBzZWN1cmUsIGJhc2VkIGVpdGhlciBkaXJlY3RseSBvbiBp
dHMKICAgICAvLyBvd24gcHJvdG9jb2wsIG9yLCB3aGVuIHJlbGV2YW50LCBvbiB0aGUgcHJvdG9j
b2wgb2YgaXRzICJpbm5lciBVUkwiCiAgICAgLy8gUHJvdG9jb2xzIGxpa2UgYmxvYjogYW5kIGZp
bGVzeXN0ZW06IGZhbGwgaW50byB0aGlzIGxhdHRlciBjYXRlZ29yeS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAppbmRleCAzMmQzZGIwYzAyMWUxOTg5YTI2NjAzZmNlNDU5NGU3Njdj
MzllYWJiLi43OTIwODE0YjgxMWU1MmQ3NjE4N2ViOWMwMDUwYjNmZjViNWFjNGFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMTYsNiArMTE2LDcgQEAKICNpbmNsdWRl
ICJMZWdhY3lTY2hlbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgi
CiAjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKKyNpbmNsdWRlICJMb2NhdGlvbi5oIgogI2lu
Y2x1ZGUgIk1hbGxvY1N0YXRpc3RpY3MuaCIKICNpbmNsdWRlICJNZWRpYURldmljZXMuaCIKICNp
bmNsdWRlICJNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmgiCkBAIC01NDAyLDQgKzU0
MDMsOSBAQCBib29sIEludGVybmFsczo6aGFzU2FuZGJveE1hY2hMb29rdXBBY2Nlc3NUb1hQQ1Nl
cnZpY2VOYW1lKGNvbnN0IFN0cmluZyYgcHJvY2VzcwogI2VuZGlmCiB9CiAKK1N0cmluZyBJbnRl
cm5hbHM6OndpbmRvd0xvY2F0aW9uSG9zdChET01XaW5kb3cmIHdpbmRvdykKK3sKKyAgICByZXR1
cm4gd2luZG93LmxvY2F0aW9uKCkuaG9zdCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA3M2QwNDVhMGNmMjYyNzExMjI1NDY4
MjI2Yzk2YmM5MTQ0ZTlhMTIwLi4wMmEyZWEyNzEwN2Y3NDk4NzY2YTlkODI2NmRjM2RiN2Q3MmNj
NDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTc4LDYgKzc4LDcgQEAgY2xh
c3MgSW5zcGVjdG9yU3R1YkZyb250ZW5kOwogY2xhc3MgSW50ZXJuYWxzTWFwTGlrZTsKIGNsYXNz
IEludGVybmFsU2V0dGluZ3M7CiBjbGFzcyBJbnRlcm5hbHNTZXRMaWtlOworY2xhc3MgTG9jYXRp
b247CiBjbGFzcyBNYWxsb2NTdGF0aXN0aWNzOwogY2xhc3MgTWVkaWFTZXNzaW9uOwogY2xhc3Mg
TWVkaWFTdHJlYW07CkBAIC05MjAsNiArOTIxLDggQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGhp
Z2hsaWdodFBzZXVkb0VsZW1lbnRDb2xvcihjb25zdCBTdHJpbmcmIGhpZ2hsaWdodE5hbWUsIEVs
ZW1lbnQmKTsKIAorICAgIFN0cmluZyB3aW5kb3dMb2NhdGlvbkhvc3QoRE9NV2luZG93Jik7CisK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Jik7CiAgICAgRG9jdW1l
bnQqIGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCmluZGV4IGVkYzUwOWUyNGZlYjI3MmVlYTk5MTkxNzQwZmI5NzI4MWFhZWQxMTIuLjlmODNj
MzJkZDY0ZWYyOGYzNWMwZGMyYjk3MTFmMjFhOGIyM2Y1YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwKQEAgLTc3MSw2ICs3NzEsOCBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5
IHsKICAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIHZvaWQgcXVldWVUYXNrVG9RdWV1ZU1pY3JvdGFz
ayhET01TdHJpbmcgc291cmNlLCBWb2lkQ2FsbGJhY2sgY2FsbGJhY2spOwogICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gYm9vbGVhbiBoYXNTYW1lRXZlbnRMb29wQXMoV2luZG93UHJveHkgd2luZG93
UHJveHkpOwogCisgICAgRE9NU3RyaW5nIHdpbmRvd0xvY2F0aW9uSG9zdChET01XaW5kb3cgd2lu
ZG93KTsKKwogICAgIHZvaWQgbWFya0NvbnRleHRBc0luc2VjdXJlKCk7CiAKICAgICB2b2lkIHNl
dE1heENhbnZhc1BpeGVsTWVtb3J5KHVuc2lnbmVkIGxvbmcgc2l6ZSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2VhODVk
NDNkMDk2MWQ4Y2Q5MGYyNDc4YzE4YzlhMzY3NTJjNWVhOS4uNTY1OWQ5Y2JhODQ1OTJjZDFkYTFj
ODAyYjU3NzZmMDYzNjNkNmEwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTEyLTMwICB5
b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJZ25vcmUgVVJMIGhv
c3QgZm9yIHNjaGVtZXMgdGhhdCBhcmUgbm90IHVzaW5nIGhvc3QgaW5mb3JtYXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTE1NworCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogaHR0cC90ZXN0cy9sb2Nh
bC9maWxlLXVybC1ob3N0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9sb2NhbC9maWxlLXVybC1ob3N0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvYWJvdXQtdXJsLWhvc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0LXVybC1ob3N0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHQtdXJsLWhvc3QtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHQt
dXJsLWhvc3QuaHRtbDogQWRkZWQuCisKIDIwMTktMTItMjkgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBSVEMgVlRCIGRlY29kZXJzIGluIEdQ
VVByb2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11
cmwtaG9zdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2ZpbGUt
dXJsLWhvc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcx
ZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2xvY2FsL2ZpbGUtdXJsLWhvc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9zdC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9maWxlLXVybC1ob3N0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTAxYzlmOGQ2YjZhNGYwNWNmZjQ5MWM4MjhkNTJmOTMxOTNjNzQyYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9zdC5o
dG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0Pgor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgfQorICAgIGlm
IChsb2NhdGlvbi5oYXNoID09PSAiIikKKyAgICAgICAgd2luZG93LmxvY2F0aW9uID0gd2luZG93
LmxvY2F0aW9uLmhyZWYucmVwbGFjZSgiZmlsZTovLy8iLCAiZmlsZTovL2V4YW1wbGUub3JnLyIp
ICsgIj90ZXN0I3Rlc3QtaG9zdCI7CisgICAgZWxzZSBpZiAobG9jYXRpb24uaGFzaCA9PT0gIiN0
ZXN0IikKKyAgICAgICAgd2luZG93LmxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLmhyZWYucmVw
bGFjZSgiZmlsZTovL2V4YW1wbGUub3JnLyIsICJmaWxlOi8vLyIpLnJlcGxhY2UoIj90ZXN0I3Rl
c3QtaG9zdCIsICIiKSArICI/dGVzdDIjdGVzdC1ob3N0IiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0
OworICAgIGVsc2UgeworICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IHdpbmRvdy5s
b2NhdGlvbi5oYXNoID09PSAiI3Rlc3QtaG9zdCIgPyAiUEFTUyI6ICgiRkFJTCwgZ290OiAiICsg
d2luZG93LmxvY2F0aW9uLmhhc2gpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXQt
dXJsLWhvc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9h
Ym91dC11cmwtaG9zdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmMjJlOWE0MzFhZDAyNzI3
MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXQtdXJsLWhvc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEg
QEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJv
dXQtdXJsLWhvc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXQt
dXJsLWhvc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzMyOWJlMzljZmE4ZDliOTBhMzA0Y2EwNzllYTU4
MDQ5N2QwZTU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9hYm91dC11cmwtaG9zdC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9Citm
dW5jdGlvbiB0ZXN0KCkgeworICAgIHRyeSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgICAgICBjb25zdCBob3N0ID0gaW50ZXJuYWxzLndpbmRvd0xvY2F0aW9uSG9z
dCh0ZXN0RnJhbWUuY29udGVudFdpbmRvdyk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lmlu
bmVySFRNTCA9IGhvc3QgPT09ICIiID8gIlBBU1MiIDogIkZBSUwsIGdvdCAiICsgaG9zdDsKKyAg
ICAgICAgfQorICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAg
fQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKK30KKzwvc2NyaXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBvbmxvYWQ9InRl
c3QoKSIgc3JjPSJhYm91dDovL2V4YW1wbGUub3JnIj48L2lmcmFtZT4KKzwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGEtdXJsLWhvc3Qt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAx
NmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2RhdGEtdXJsLWhvc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9kYXRhLXVybC1ob3N0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODYxNjI0NDc4NzY1YWQxMjA2ZGEyMTI0NjUyMmVlZjJiMzMyYjc4ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9z
dC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0
PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CitmdW5jdGlvbiB0ZXN0KCkgewor
ICAgIHRyeSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBj
b25zdCBob3N0ID0gaW50ZXJuYWxzLndpbmRvd0xvY2F0aW9uSG9zdCh0ZXN0RnJhbWUuY29udGVu
dFdpbmRvdyk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IGhvc3QgPT09
ICIiID8gIlBBU1MiIDogIkZBSUwsIGdvdCAiICsgaG9zdDsKKyAgICAgICAgfQorICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAgfQorCisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2Ny
aXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBvbmxvYWQ9InRlc3QoKSIgc3JjPSJkYXRhOi8v
ZXhhbXBsZS5vcmcvdGV4dC9odG1sLHRlc3QiPjwvaWZyYW1lPgorPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0LXVybC1ob3N0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdC11
cmwtaG9zdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmMjJlOWE0MzFhZDAyNzI3MTNiNzFm
ZGM4Nzk0MDE2YzhlZjEyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvamF2YXNjcmlwdC11cmwtaG9zdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBA
QAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZh
c2NyaXB0LXVybC1ob3N0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2ph
dmFzY3JpcHQtdXJsLWhvc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOTRhYTZhMTlhYTQ5MWQwNGMyNzVj
NGRkYWM3ZDg4N2Q0NWQyMjVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0LXVybC1ob3N0Lmh0bWwKQEAgLTAsMCArMSwyMyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKK30KK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgdHJ5IHsKKyAgICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGNvbnN0IGhvc3QgPSBpbnRlcm5hbHMud2lu
ZG93TG9jYXRpb25Ib3N0KHRlc3RGcmFtZS5jb250ZW50V2luZG93KTsKKyAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkuaW5uZXJIVE1MID0gaG9zdCA9PT0gIiIgPyAiUEFTUyIgOiAiRkFJTCwgZ290
ICIgKyBob3N0OworICAgICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBjb25zb2xl
LmxvZyhlKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJh
bWUiIG9ubG9hZD0idGVzdCgpIiBzcmM9ImphdmFzY3JpcHQ6Ly9leGFtcGxlLm9yZy9hbGVydCgn
dGVzdCcpIj48L2lmcmFtZT4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386531</attachid>
            <date>2019-12-30 07:02:06 -0800</date>
            <delta_ts>2019-12-30 08:11:39 -0800</delta_ts>
            <desc>Fix Win build</desc>
            <filename>bug-205157-20191230160204.patch</filename>
            <type>text/plain</type>
            <size>15405</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdkZjQ4NzI3YmE4MjcyZjJiNWJjNmYz
OTk3YmZjNWRkNTNlN2U3NjguLmJhMDg0ZGZkN2MyYjhiMDBhMDU4NTJmMjBkYmNjZmViODM3NTcw
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMTItMzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIElnbm9yZSBVUkwgaG9zdCBmb3Igc2NoZW1lcyB0aGF0
IGFyZSBub3QgdXNpbmcgaG9zdCBpbmZvcm1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MTU3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
NzgyNTk2Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHd0Zi9VUkwuY3BwOgorICAgICAgICAoV1RGOjpVUkw6OnJlbW92ZUhvc3RBbmRQb3J0KToK
KyAgICAgICAgKiB3dGYvVVJMLmg6CisKIDIwMTktMTItMjUgIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHTF0gRW5hYmxlIEFOR0xFIGJ5IGRlZmF1bHQgZm9y
IENvY29hIHBsYXRmb3JtcyAoZXhjZXB0IHNpbXVsYXRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYTBjNTNh
ODY2MTQ2MjcxZDNmNGEwZjgwYTI4MTdlNGNlOWUyNzg3Li4xMjk1MjEzNDhmZTcyYTkxMjBlNTMz
MmY1NTM5NWE5MjQ4OTM0NDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTktMTIt
MzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIElnbm9yZSBV
UkwgaG9zdCBmb3Igc2NoZW1lcyB0aGF0IGFyZSBub3QgdXNpbmcgaG9zdCBpbmZvcm1hdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MTU3Cisg
ICAgICAgIHJkYXI6Ly9wcm9ibGVtLzU3ODI1OTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9z
dC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0LXVybC1ob3N0
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHQtdXJsLWhv
c3QuaHRtbAorCisgICAgICAgIFdoZW5ldmVyIHNldHRpbmcgdGhlIGRvY3VtZW50IFVSTCwgcmVt
b3ZlIHRoZSBob3N0IGluZm9ybWF0aW9uIGlmIGl0cyBzY2hlbWUgaXMgbm90IHN1cHBvc2VkIHRv
IGhhdmUgYSBob3N0LgorICAgICAgICBUaGlzIGlzIGRvbmUgZm9yIGZpbGUsIGRhdGEgYW5kIGFi
b3V0IHNjaGVtZXMuCisKKyAgICAgICAgQWRkIGludGVybmFscyBBUElzIHRvIHRlc3QgdGhpcy4K
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6c2V0VVJMKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2Uv
TG9jYXRpb24uaDoKKyAgICAgICAgKiBwYWdlL0xvY2F0aW9uLmlkbDoKKyAgICAgICAgKiBwYWdl
L1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpz
aG91bGRJZ25vcmVIb3N0KToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
Ojp3aW5kb3dMb2NhdGlvbkhvc3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDE5LTEyLTMwICB5b3Vlbm4gZmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBcHBseSByb3RhdGlvbiBhdCBzb3Vy
Y2UgbGV2ZWwgaWYgV2ViUlRDIHNpbmsgYXNrIHNvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9VUkwuY3BwIGIvU291cmNlL1dURi93dGYvVVJMLmNwcAppbmRleCA1ZjRmM2YxYzBmYWExN2Rl
ZWVkOTE0ZDlkM2MxOTZlNzg0Y2MyZjkyLi5mOWUzY2JmM2M3MDcxOWQyMDkzMjIyMTRmNTU0YTQ2
NjZmMjM5ZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1VSTC5jcHAKQEAgLTQ3NCw2ICs0NzQsMTUgQEAgdm9pZCBVUkw6OnNldFBvcnQo
dW5zaWduZWQgc2hvcnQgaSkKICAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQoKTsKIH0KIAordm9p
ZCBVUkw6OnJlbW92ZUhvc3RBbmRQb3J0KCkKK3sKKyAgICBpZiAoIW1faXNWYWxpZCkKKyAgICAg
ICAgcmV0dXJuOworICAgIGlmICghaG9zdCgpLmlzRW1wdHkoKSkKKyAgICAgICAgc2V0SG9zdCh7
IH0pOworICAgIHJlbW92ZVBvcnQoKTsKK30KKwogdm9pZCBVUkw6OnNldEhvc3RBbmRQb3J0KGNv
bnN0IFN0cmluZyYgaG9zdEFuZFBvcnQpCiB7CiAgICAgaWYgKCFtX2lzVmFsaWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuaCBiL1NvdXJjZS9XVEYvd3RmL1VSTC5oCmluZGV4IDg0
OTc0MWM2NmJmYTJiOTk5ZTUwMDg1MWVlMGQ5NjgwYjMyZDQ4M2IuLjFjZWU1Mjg3NmZkNGNmNzgw
MmZhZGRlYTU2OTQ5OGM4OTk1ZWFiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1VSTC5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1VSTC5oCkBAIC0xNDUsNiArMTQ1LDcgQEAgcHVibGljOgog
CiAgICAgLy8gSW5wdXQgaXMgbGlrZSAiZm9vLmNvbSIgb3IgImZvby5jb206ODAwMCIuCiAgICAg
dm9pZCBzZXRIb3N0QW5kUG9ydChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHJlbW92ZUhvc3RB
bmRQb3J0KCk7CiAKICAgICB2b2lkIHNldFVzZXIoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBz
ZXRQYXNzKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMDYyZjRh
ZGUyYjUxZTMwM2M4M2MyZjJiNmFhNGM4ZmRmM2FlMjVkNS4uNWU2ZmQ3NDRmYmU4NzBhYWQ2ZjI3
NzdkODMxYjFmOWEwMTVjYjkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0zMjM1LDYg
KzMyMzUsOSBAQCB2b2lkIERvY3VtZW50OjpzZXRVUkwoY29uc3QgVVJMJiB1cmwpCiAgICAgICAg
IHJldHVybjsKIAogICAgIG1fdXJsID0gbmV3VVJMOworICAgIGlmIChTZWN1cml0eU9yaWdpbjo6
c2hvdWxkSWdub3JlSG9zdChtX3VybCkpCisgICAgICAgIG1fdXJsLnJlbW92ZUhvc3RBbmRQb3J0
KCk7CisKICAgICBtX2RvY3VtZW50VVJJID0gbV91cmwuc3RyaW5nKCk7CiAgICAgdXBkYXRlQmFz
ZVVSTCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggNjAwMzM3OGE0MmEyMDQzYzEw
ZTcyZjNlNWQ0Y2VjYzFmZmZkZDgwYS4uOGYwZDljOTRlMTdjOWU0ZGQxM2Q0OTVhY2Q4Y2M0NjM4
Yjk5N2QwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0xNzYsNyArMTc2LDcgQEAgcHVi
bGljOgogICAgIE5hdmlnYXRvciogb3B0aW9uYWxOYXZpZ2F0b3IoKSBjb25zdCB7IHJldHVybiBt
X25hdmlnYXRvci5nZXQoKTsgfQogICAgIE5hdmlnYXRvciYgY2xpZW50SW5mb3JtYXRpb24oKSB7
IHJldHVybiBuYXZpZ2F0b3IoKTsgfQogCi0gICAgTG9jYXRpb24mIGxvY2F0aW9uKCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgTG9jYXRpb24mIGxvY2F0aW9uKCk7CiAgICAgdm9pZCBzZXRMb2NhdGlv
bihET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgY29uc3QgVVJMJiBjb21wbGV0ZWRVUkwsIFNldExv
Y2F0aW9uTG9ja2luZyA9IExvY2tIaXN0b3J5QmFzZWRPbkdlc3R1cmVTdGF0ZSk7CiAKICAgICBE
T01TZWxlY3Rpb24qIGdldFNlbGVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9Mb2NhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5oCmluZGV4IDVm
YmExOGNhMTQ4YjBkMTg2ZGJhNTMyYWE0ZDhiYzQ3N2JkOGM0MGIuLmJhMTA0ZGM4NWE4NzA4NmNl
YWJkYjZiYjM5NjZlZTVhMjFlZGRmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TG9jYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmgKQEAgLTUyLDcg
KzUyLDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFByb3RvY29sKERPTVdp
bmRvdyYgYWN0aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93LCBjb25zdCBTdHJpbmcm
KTsKICAgICBTdHJpbmcgcHJvdG9jb2woKSBjb25zdDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRIb3N0KERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93LCBj
b25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcgaG9zdCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQ
T1JUIFN0cmluZyBob3N0KCkgY29uc3Q7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0SG9zdG5h
bWUoRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyYgZmlyc3RXaW5kb3csIGNvbnN0
IFN0cmluZyYpOwogICAgIFN0cmluZyBob3N0bmFtZSgpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldFBvcnQoRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyYgZmlyc3RX
aW5kb3csIGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9M
b2NhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmlkbAppbmRleCA4NWNi
OWFiZmQ4MjAzYmUxMjI2MjVlMTU3N2NhZmM0ZmM3NTc4NDMzLi5iMGRjY2NkZjdkNzAyNzQ3YTNj
ODgyZjJlNDgwMDdlNmQ3MzZiNzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xv
Y2F0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmlkbApAQCAtMzgs
NiArMzgsNyBAQAogICAgIEN1c3RvbVB1dCwKICAgICBDdXN0b21QdXRPblByb3RvdHlwZSwKICAg
ICBDdXN0b21Ub1N0cmluZ05hbWUsCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCiAg
ICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1SZWFjaGFibGVGcm9tRE9NV2luZG93LAogICAgIElzSW1t
dXRhYmxlUHJvdG90eXBlRXhvdGljT2JqZWN0LAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFi
bGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IGU5MDBjMjFmMzk3
MGU1Mjk0OGQ4YTJmNzlmYTMyZmU0Mzc4NTdlNWUuLmIxMjlhODI0OTk0NWU3N2Q2OWNmNTYzMDA3
NDFiMWRmOWM4MDI1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlP
cmlnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCkBA
IC01Niw2ICs1NiwxMSBAQCBzdGF0aWMgYm9vbCBzY2hlbWVSZXF1aXJlc0hvc3QoY29uc3QgVVJM
JiB1cmwpCiAgICAgcmV0dXJuIHVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgfHwgdXJsLnBy
b3RvY29sSXMoImZ0cCIpOwogfQogCitib29sIFNlY3VyaXR5T3JpZ2luOjpzaG91bGRJZ25vcmVI
b3N0KGNvbnN0IFVSTCYgdXJsKQoreworICAgIHJldHVybiB1cmwucHJvdG9jb2xJc0RhdGEoKSB8
fCB1cmwucHJvdG9jb2xJc0Fib3V0KCkgfHwgcHJvdG9jb2xJc0phdmFTY3JpcHQodXJsKSB8fCB1
cmwucHJvdG9jb2xJcygiZmlsZSIpOworfQorCiBib29sIFNlY3VyaXR5T3JpZ2luOjpzaG91bGRV
c2VJbm5lclVSTChjb25zdCBVUkwmIHVybCkKIHsKICAgICAvLyBGSVhNRTogQmxvYiBVUkxzIGRv
bid0IGhhdmUgaW5uZXIgVVJMcy4gVGhlaXIgZm9ybSBpcyAiYmxvYjo8aW5uZXItb3JpZ2luPi88
VVVJRD4iLCBzbyB0cmVhdGluZyB0aGUgcGFydCBhZnRlciAiYmxvYjoiIGFzIGEgVVJMIGlzIGlu
Y29ycmVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAppbmRleCA2NTM4ZjkxNTUy
YzA3YmRhZThhNTQ3Yzc3NGEwOTBjNjY3Njc1ZmE4Li40MDkwNzYzMWIwYjhiMGUzNzZmYjI3OWU2
NmQ5MjA5N2VmNTY0MWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5
T3JpZ2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCkBAIC04
OCw2ICs4OCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGRvbWFpbigpIGNvbnN0IHsg
cmV0dXJuIG1fZG9tYWluOyB9CiAgICAgT3B0aW9uYWw8dWludDE2X3Q+IHBvcnQoKSBjb25zdCB7
IHJldHVybiBtX2RhdGEucG9ydDsgfQogCisgICAgc3RhdGljIGJvb2wgc2hvdWxkSWdub3JlSG9z
dChjb25zdCBVUkwmKTsKKwogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBhIGdpdmVuIFVSTCBpcyBz
ZWN1cmUsIGJhc2VkIGVpdGhlciBkaXJlY3RseSBvbiBpdHMKICAgICAvLyBvd24gcHJvdG9jb2ws
IG9yLCB3aGVuIHJlbGV2YW50LCBvbiB0aGUgcHJvdG9jb2wgb2YgaXRzICJpbm5lciBVUkwiCiAg
ICAgLy8gUHJvdG9jb2xzIGxpa2UgYmxvYjogYW5kIGZpbGVzeXN0ZW06IGZhbGwgaW50byB0aGlz
IGxhdHRlciBjYXRlZ29yeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAz
MmQzZGIwYzAyMWUxOTg5YTI2NjAzZmNlNDU5NGU3NjdjMzllYWJiLi43OTIwODE0YjgxMWU1MmQ3
NjE4N2ViOWMwMDUwYjNmZjViNWFjNGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC0xMTYsNiArMTE2LDcgQEAKICNpbmNsdWRlICJMZWdhY3lTY2hlbWVSZWdpc3RyeS5o
IgogI2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTG9hZGVyU3RyYXRl
Z3kuaCIKKyNpbmNsdWRlICJMb2NhdGlvbi5oIgogI2luY2x1ZGUgIk1hbGxvY1N0YXRpc3RpY3Mu
aCIKICNpbmNsdWRlICJNZWRpYURldmljZXMuaCIKICNpbmNsdWRlICJNZWRpYUVuZ2luZUNvbmZp
Z3VyYXRpb25GYWN0b3J5LmgiCkBAIC01NDAyLDQgKzU0MDMsOSBAQCBib29sIEludGVybmFsczo6
aGFzU2FuZGJveE1hY2hMb29rdXBBY2Nlc3NUb1hQQ1NlcnZpY2VOYW1lKGNvbnN0IFN0cmluZyYg
cHJvY2VzcwogI2VuZGlmCiB9CiAKK1N0cmluZyBJbnRlcm5hbHM6OndpbmRvd0xvY2F0aW9uSG9z
dChET01XaW5kb3cmIHdpbmRvdykKK3sKKyAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uKCkuaG9z
dCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAppbmRleCA3M2QwNDVhMGNmMjYyNzExMjI1NDY4MjI2Yzk2YmM5MTQ0ZTlhMTIwLi4wMmEy
ZWEyNzEwN2Y3NDk4NzY2YTlkODI2NmRjM2RiN2Q3MmNjNDUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKQEAgLTc4LDYgKzc4LDcgQEAgY2xhc3MgSW5zcGVjdG9yU3R1YkZyb250ZW5k
OwogY2xhc3MgSW50ZXJuYWxzTWFwTGlrZTsKIGNsYXNzIEludGVybmFsU2V0dGluZ3M7CiBjbGFz
cyBJbnRlcm5hbHNTZXRMaWtlOworY2xhc3MgTG9jYXRpb247CiBjbGFzcyBNYWxsb2NTdGF0aXN0
aWNzOwogY2xhc3MgTWVkaWFTZXNzaW9uOwogY2xhc3MgTWVkaWFTdHJlYW07CkBAIC05MjAsNiAr
OTIxLDggQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGhpZ2hsaWdodFBzZXVkb0VsZW1lbnRDb2xv
cihjb25zdCBTdHJpbmcmIGhpZ2hsaWdodE5hbWUsIEVsZW1lbnQmKTsKIAorICAgIFN0cmluZyB3
aW5kb3dMb2NhdGlvbkhvc3QoRE9NV2luZG93Jik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
SW50ZXJuYWxzKERvY3VtZW50Jik7CiAgICAgRG9jdW1lbnQqIGNvbnRleHREb2N1bWVudCgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGVkYzUwOWUyNGZlYjI3
MmVlYTk5MTkxNzQwZmI5NzI4MWFhZWQxMTIuLjlmODNjMzJkZDY0ZWYyOGYzNWMwZGMyYjk3MTFm
MjFhOGIyM2Y1YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTc3MSw2
ICs3NzEsOCBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBbQ2FsbFdpdGg9RG9jdW1l
bnRdIHZvaWQgcXVldWVUYXNrVG9RdWV1ZU1pY3JvdGFzayhET01TdHJpbmcgc291cmNlLCBWb2lk
Q2FsbGJhY2sgY2FsbGJhY2spOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gYm9vbGVhbiBoYXNT
YW1lRXZlbnRMb29wQXMoV2luZG93UHJveHkgd2luZG93UHJveHkpOwogCisgICAgRE9NU3RyaW5n
IHdpbmRvd0xvY2F0aW9uSG9zdChET01XaW5kb3cgd2luZG93KTsKKwogICAgIHZvaWQgbWFya0Nv
bnRleHRBc0luc2VjdXJlKCk7CiAKICAgICB2b2lkIHNldE1heENhbnZhc1BpeGVsTWVtb3J5KHVu
c2lnbmVkIGxvbmcgc2l6ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWQ5ZmZiNjcyYTM1MmI2OWI4ZmI1YWY0MTYzNjVh
NmUwYjc3ZGE0Zi4uYzhlZjJiMWU2NWM3NzFlMjczMTFhZjljZjEyNDk3NTBiMjY2NGU5YSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTEyLTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBJZ25vcmUgVVJMIGhvc3QgZm9yIHNjaGVtZXMgdGhhdCBhcmUg
bm90IHVzaW5nIGhvc3QgaW5mb3JtYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNTE1NworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgICogaHR0cC90ZXN0cy9sb2NhbC9maWxlLXVybC1ob3N0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9sb2NhbC9maWxlLXVybC1ob3N0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXQtdXJsLWhvc3Qt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0
LXVybC1ob3N0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0
YS11cmwtaG9zdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvZGF0YS11cmwtaG9zdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2phdmFzY3JpcHQtdXJsLWhvc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHQtdXJsLWhvc3QuaHRtbDogQWRkZWQuCisK
IDIwMTktMTItMzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IEFwcGx5IHJvdGF0aW9uIGF0IHNvdXJjZSBsZXZlbCBpZiBXZWJSVEMgc2luayBhc2sgc28KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9zdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2ZpbGUtdXJsLWhvc3QtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4
ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Zp
bGUtdXJsLWhvc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9zdC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9maWxlLXVybC1ob3N0Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTAx
YzlmOGQ2YjZhNGYwNWNmZjQ5MWM4MjhkNTJmOTMxOTNjNzQyYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9zdC5odG1sCkBAIC0wLDAg
KzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgfQorICAgIGlmIChsb2NhdGlvbi5o
YXNoID09PSAiIikKKyAgICAgICAgd2luZG93LmxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLmhy
ZWYucmVwbGFjZSgiZmlsZTovLy8iLCAiZmlsZTovL2V4YW1wbGUub3JnLyIpICsgIj90ZXN0I3Rl
c3QtaG9zdCI7CisgICAgZWxzZSBpZiAobG9jYXRpb24uaGFzaCA9PT0gIiN0ZXN0IikKKyAgICAg
ICAgd2luZG93LmxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLmhyZWYucmVwbGFjZSgiZmlsZTov
L2V4YW1wbGUub3JnLyIsICJmaWxlOi8vLyIpLnJlcGxhY2UoIj90ZXN0I3Rlc3QtaG9zdCIsICIi
KSArICI/dGVzdDIjdGVzdC1ob3N0IiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0OworICAgIGVsc2Ug
eworICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IHdpbmRvdy5sb2NhdGlvbi5oYXNo
ID09PSAiI3Rlc3QtaG9zdCIgPyAiUEFTUyI6ICgiRkFJTCwgZ290OiAiICsgd2luZG93LmxvY2F0
aW9uLmhhc2gpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXQtdXJsLWhvc3QtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9hYm91dC11cmwtaG9z
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmMjJlOWE0MzFhZDAyNzI3MTNiNzFmZGM4Nzk0
MDE2YzhlZjEyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvYWJvdXQtdXJsLWhvc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXQtdXJsLWhvc3Qu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXQtdXJsLWhvc3QuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44YzMyOWJlMzljZmE4ZDliOTBhMzA0Y2EwNzllYTU4MDQ5N2QwZTU1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9hYm91dC11
cmwtaG9zdC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CitmdW5jdGlvbiB0ZXN0
KCkgeworICAgIHRyeSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAg
ICAgICBjb25zdCBob3N0ID0gaW50ZXJuYWxzLndpbmRvd0xvY2F0aW9uSG9zdCh0ZXN0RnJhbWUu
Y29udGVudFdpbmRvdyk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IGhv
c3QgPT09ICIiID8gIlBBU1MiIDogIkZBSUwsIGdvdCAiICsgaG9zdDsKKyAgICAgICAgfQorICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAgfQorCisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30K
Kzwvc2NyaXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBvbmxvYWQ9InRlc3QoKSIgc3JjPSJh
Ym91dDovL2V4YW1wbGUub3JnIj48L2lmcmFtZT4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGEtdXJsLWhvc3QtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGEtdXJs
LWhvc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9kYXRhLXVybC1ob3N0Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODYx
NjI0NDc4NzY1YWQxMjA2ZGEyMTI0NjUyMmVlZjJiMzMyYjc4ZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC5odG1sCkBAIC0w
LDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CitmdW5jdGlvbiB0ZXN0KCkgeworICAgIHRyeSB7Cisg
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBjb25zdCBob3N0ID0g
aW50ZXJuYWxzLndpbmRvd0xvY2F0aW9uSG9zdCh0ZXN0RnJhbWUuY29udGVudFdpbmRvdyk7Cisg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IGhvc3QgPT09ICIiID8gIlBBU1Mi
IDogIkZBSUwsIGdvdCAiICsgaG9zdDsKKyAgICAgICAgfQorICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgY29uc29sZS5sb2coZSk7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPGlmcmFt
ZSBpZD0idGVzdEZyYW1lIiBvbmxvYWQ9InRlc3QoKSIgc3JjPSJkYXRhOi8vZXhhbXBsZS5vcmcv
dGV4dC9odG1sLHRlc3QiPjwvaWZyYW1lPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0LXVybC1ob3N0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdC11cmwtaG9zdC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmMjJlOWE0MzFhZDAyNzI3MTNiNzFmZGM4Nzk0MDE2Yzhl
ZjEyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
amF2YXNjcmlwdC11cmwtaG9zdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorUEFTUwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0LXVybC1o
b3N0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHQtdXJs
LWhvc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOTRhYTZhMTlhYTQ5MWQwNGMyNzVjNGRkYWM3ZDg4N2Q0
NWQyMjVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9qYXZhc2NyaXB0LXVybC1ob3N0Lmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK30K
K2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgdHJ5IHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgICAgIGNvbnN0IGhvc3QgPSBpbnRlcm5hbHMud2luZG93TG9jYXRpb25I
b3N0KHRlc3RGcmFtZS5jb250ZW50V2luZG93KTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
aW5uZXJIVE1MID0gaG9zdCA9PT0gIiIgPyAiUEFTUyIgOiAiRkFJTCwgZ290ICIgKyBob3N0Owor
ICAgICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBjb25zb2xlLmxvZyhlKTsKKyAg
ICB9CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIG9ubG9hZD0i
dGVzdCgpIiBzcmM9ImphdmFzY3JpcHQ6Ly9leGFtcGxlLm9yZy9hbGVydCgndGVzdCcpIj48L2lm
cmFtZT4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386534</attachid>
            <date>2019-12-30 08:11:44 -0800</date>
            <delta_ts>2019-12-30 09:10:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205157-20191230171142.patch</filename>
            <type>text/plain</type>
            <size>15402</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdkZjQ4NzI3YmE4MjcyZjJiNWJjNmYz
OTk3YmZjNWRkNTNlN2U3NjguLmI3MjAyYjVkNGY5Y2Q0YWViMDk4ODU2MzU3YzIwMDRmZmYxODgz
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMTItMzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIElnbm9yZSBVUkwgaG9zdCBmb3Igc2NoZW1lcyB0aGF0
IGFyZSBub3QgdXNpbmcgaG9zdCBpbmZvcm1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MTU3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
NzgyNTk2Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAq
IHd0Zi9VUkwuY3BwOgorICAgICAgICAoV1RGOjpVUkw6OnJlbW92ZUhvc3RBbmRQb3J0KToKKyAg
ICAgICAgKiB3dGYvVVJMLmg6CisKIDIwMTktMTItMjUgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBw
bGUuY29tPgogCiAgICAgICAgIFtXZWJHTF0gRW5hYmxlIEFOR0xFIGJ5IGRlZmF1bHQgZm9yIENv
Y29hIHBsYXRmb3JtcyAoZXhjZXB0IHNpbXVsYXRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYTBjNTNhODY2
MTQ2MjcxZDNmNGEwZjgwYTI4MTdlNGNlOWUyNzg3Li4xMjk1MjEzNDhmZTcyYTkxMjBlNTMzMmY1
NTM5NWE5MjQ4OTM0NDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTktMTItMzAg
IHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIElnbm9yZSBVUkwg
aG9zdCBmb3Igc2NoZW1lcyB0aGF0IGFyZSBub3QgdXNpbmcgaG9zdCBpbmZvcm1hdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MTU3CisgICAg
ICAgIHJkYXI6Ly9wcm9ibGVtLzU3ODI1OTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9zdC5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0LXVybC1ob3N0Lmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHQtdXJsLWhvc3Qu
aHRtbAorCisgICAgICAgIFdoZW5ldmVyIHNldHRpbmcgdGhlIGRvY3VtZW50IFVSTCwgcmVtb3Zl
IHRoZSBob3N0IGluZm9ybWF0aW9uIGlmIGl0cyBzY2hlbWUgaXMgbm90IHN1cHBvc2VkIHRvIGhh
dmUgYSBob3N0LgorICAgICAgICBUaGlzIGlzIGRvbmUgZm9yIGZpbGUsIGRhdGEgYW5kIGFib3V0
IHNjaGVtZXMuCisKKyAgICAgICAgQWRkIGludGVybmFscyBBUElzIHRvIHRlc3QgdGhpcy4KKwor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
c2V0VVJMKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvTG9j
YXRpb24uaDoKKyAgICAgICAgKiBwYWdlL0xvY2F0aW9uLmlkbDoKKyAgICAgICAgKiBwYWdlL1Nl
Y3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpzaG91
bGRJZ25vcmVIb3N0KToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp3
aW5kb3dMb2NhdGlvbkhvc3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDE5LTEyLTMwICB5b3Vlbm4gZmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBcHBseSByb3RhdGlvbiBhdCBzb3VyY2Ug
bGV2ZWwgaWYgV2ViUlRDIHNpbmsgYXNrIHNvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9V
UkwuY3BwIGIvU291cmNlL1dURi93dGYvVVJMLmNwcAppbmRleCA1ZjRmM2YxYzBmYWExN2RlZWVk
OTE0ZDlkM2MxOTZlNzg0Y2MyZjkyLi5mOWUzY2JmM2M3MDcxOWQyMDkzMjIyMTRmNTU0YTQ2NjZm
MjM5ZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1VSTC5jcHAKQEAgLTQ3NCw2ICs0NzQsMTUgQEAgdm9pZCBVUkw6OnNldFBvcnQodW5z
aWduZWQgc2hvcnQgaSkKICAgICAqdGhpcyA9IHBhcnNlci5yZXN1bHQoKTsKIH0KIAordm9pZCBV
Ukw6OnJlbW92ZUhvc3RBbmRQb3J0KCkKK3sKKyAgICBpZiAoIW1faXNWYWxpZCkKKyAgICAgICAg
cmV0dXJuOworICAgIGlmICghaG9zdCgpLmlzRW1wdHkoKSkKKyAgICAgICAgc2V0SG9zdCh7IH0p
OworICAgIHJlbW92ZVBvcnQoKTsKK30KKwogdm9pZCBVUkw6OnNldEhvc3RBbmRQb3J0KGNvbnN0
IFN0cmluZyYgaG9zdEFuZFBvcnQpCiB7CiAgICAgaWYgKCFtX2lzVmFsaWQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9VUkwuaCBiL1NvdXJjZS9XVEYvd3RmL1VSTC5oCmluZGV4IDg0OTc0
MWM2NmJmYTJiOTk5ZTUwMDg1MWVlMGQ5NjgwYjMyZDQ4M2IuLjFjZWU1Mjg3NmZkNGNmNzgwMmZh
ZGRlYTU2OTQ5OGM4OTk1ZWFiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1VSTC5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1VSTC5oCkBAIC0xNDUsNiArMTQ1LDcgQEAgcHVibGljOgogCiAg
ICAgLy8gSW5wdXQgaXMgbGlrZSAiZm9vLmNvbSIgb3IgImZvby5jb206ODAwMCIuCiAgICAgdm9p
ZCBzZXRIb3N0QW5kUG9ydChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHJlbW92ZUhvc3RBbmRQ
b3J0KCk7CiAKICAgICB2b2lkIHNldFVzZXIoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRQ
YXNzKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMDYyZjRhZGUy
YjUxZTMwM2M4M2MyZjJiNmFhNGM4ZmRmM2FlMjVkNS4uNWU2ZmQ3NDRmYmU4NzBhYWQ2ZjI3Nzdk
ODMxYjFmOWEwMTVjYjkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0zMjM1LDYgKzMy
MzUsOSBAQCB2b2lkIERvY3VtZW50OjpzZXRVUkwoY29uc3QgVVJMJiB1cmwpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIG1fdXJsID0gbmV3VVJMOworICAgIGlmIChTZWN1cml0eU9yaWdpbjo6c2hv
dWxkSWdub3JlSG9zdChtX3VybCkpCisgICAgICAgIG1fdXJsLnJlbW92ZUhvc3RBbmRQb3J0KCk7
CisKICAgICBtX2RvY3VtZW50VVJJID0gbV91cmwuc3RyaW5nKCk7CiAgICAgdXBkYXRlQmFzZVVS
TCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggNjAwMzM3OGE0MmEyMDQzYzEwZTcy
ZjNlNWQ0Y2VjYzFmZmZkZDgwYS4uOGYwZDljOTRlMTdjOWU0ZGQxM2Q0OTVhY2Q4Y2M0NjM4Yjk5
N2QwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0xNzYsNyArMTc2LDcgQEAgcHVibGlj
OgogICAgIE5hdmlnYXRvciogb3B0aW9uYWxOYXZpZ2F0b3IoKSBjb25zdCB7IHJldHVybiBtX25h
dmlnYXRvci5nZXQoKTsgfQogICAgIE5hdmlnYXRvciYgY2xpZW50SW5mb3JtYXRpb24oKSB7IHJl
dHVybiBuYXZpZ2F0b3IoKTsgfQogCi0gICAgTG9jYXRpb24mIGxvY2F0aW9uKCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgTG9jYXRpb24mIGxvY2F0aW9uKCk7CiAgICAgdm9pZCBzZXRMb2NhdGlvbihE
T01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgY29uc3QgVVJMJiBjb21wbGV0ZWRVUkwsIFNldExvY2F0
aW9uTG9ja2luZyA9IExvY2tIaXN0b3J5QmFzZWRPbkdlc3R1cmVTdGF0ZSk7CiAKICAgICBET01T
ZWxlY3Rpb24qIGdldFNlbGVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Mb2NhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5oCmluZGV4IDVmYmEx
OGNhMTQ4YjBkMTg2ZGJhNTMyYWE0ZDhiYzQ3N2JkOGM0MGIuLmJhMTA0ZGM4NWE4NzA4NmNlYWJk
YjZiYjM5NjZlZTVhMjFlZGRmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9j
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmgKQEAgLTUyLDcgKzUy
LDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFByb3RvY29sKERPTVdpbmRv
dyYgYWN0aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93LCBjb25zdCBTdHJpbmcmKTsK
ICAgICBTdHJpbmcgcHJvdG9jb2woKSBjb25zdDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRI
b3N0KERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93LCBjb25z
dCBTdHJpbmcmKTsKLSAgICBTdHJpbmcgaG9zdCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JU
IFN0cmluZyBob3N0KCkgY29uc3Q7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0SG9zdG5hbWUo
RE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyYgZmlyc3RXaW5kb3csIGNvbnN0IFN0
cmluZyYpOwogICAgIFN0cmluZyBob3N0bmFtZSgpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldFBvcnQoRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyYgZmlyc3RXaW5k
b3csIGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2Nh
dGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmlkbAppbmRleCA4NWNiOWFi
ZmQ4MjAzYmUxMjI2MjVlMTU3N2NhZmM0ZmM3NTc4NDMzLi5iMGRjY2NkZjdkNzAyNzQ3YTNjODgy
ZjJlNDgwMDdlNmQ3MzZiNzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0
aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmlkbApAQCAtMzgsNiAr
MzgsNyBAQAogICAgIEN1c3RvbVB1dCwKICAgICBDdXN0b21QdXRPblByb3RvdHlwZSwKICAgICBD
dXN0b21Ub1N0cmluZ05hbWUsCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCiAgICAg
R2VuZXJhdGVJc1JlYWNoYWJsZT1SZWFjaGFibGVGcm9tRE9NV2luZG93LAogICAgIElzSW1tdXRh
YmxlUHJvdG90eXBlRXhvdGljT2JqZWN0LAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IGU5MDBjMjFmMzk3MGU1
Mjk0OGQ4YTJmNzlmYTMyZmU0Mzc4NTdlNWUuLmIxMjlhODI0OTk0NWU3N2Q2OWNmNTYzMDA3NDFi
MWRmOWM4MDI1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmln
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCkBAIC01
Niw2ICs1NiwxMSBAQCBzdGF0aWMgYm9vbCBzY2hlbWVSZXF1aXJlc0hvc3QoY29uc3QgVVJMJiB1
cmwpCiAgICAgcmV0dXJuIHVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgfHwgdXJsLnByb3Rv
Y29sSXMoImZ0cCIpOwogfQogCitib29sIFNlY3VyaXR5T3JpZ2luOjpzaG91bGRJZ25vcmVIb3N0
KGNvbnN0IFVSTCYgdXJsKQoreworICAgIHJldHVybiB1cmwucHJvdG9jb2xJc0RhdGEoKSB8fCB1
cmwucHJvdG9jb2xJc0Fib3V0KCkgfHwgcHJvdG9jb2xJc0phdmFTY3JpcHQodXJsKSB8fCB1cmwu
cHJvdG9jb2xJcygiZmlsZSIpOworfQorCiBib29sIFNlY3VyaXR5T3JpZ2luOjpzaG91bGRVc2VJ
bm5lclVSTChjb25zdCBVUkwmIHVybCkKIHsKICAgICAvLyBGSVhNRTogQmxvYiBVUkxzIGRvbid0
IGhhdmUgaW5uZXIgVVJMcy4gVGhlaXIgZm9ybSBpcyAiYmxvYjo8aW5uZXItb3JpZ2luPi88VVVJ
RD4iLCBzbyB0cmVhdGluZyB0aGUgcGFydCBhZnRlciAiYmxvYjoiIGFzIGEgVVJMIGlzIGluY29y
cmVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAppbmRleCA2NTM4ZjkxNTUyYzA3
YmRhZThhNTQ3Yzc3NGEwOTBjNjY3Njc1ZmE4Li40MDkwNzYzMWIwYjhiMGUzNzZmYjI3OWU2NmQ5
MjA5N2VmNTY0MWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3Jp
Z2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCkBAIC04OCw2
ICs4OCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGRvbWFpbigpIGNvbnN0IHsgcmV0
dXJuIG1fZG9tYWluOyB9CiAgICAgT3B0aW9uYWw8dWludDE2X3Q+IHBvcnQoKSBjb25zdCB7IHJl
dHVybiBtX2RhdGEucG9ydDsgfQogCisgICAgc3RhdGljIGJvb2wgc2hvdWxkSWdub3JlSG9zdChj
b25zdCBVUkwmKTsKKwogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBhIGdpdmVuIFVSTCBpcyBzZWN1
cmUsIGJhc2VkIGVpdGhlciBkaXJlY3RseSBvbiBpdHMKICAgICAvLyBvd24gcHJvdG9jb2wsIG9y
LCB3aGVuIHJlbGV2YW50LCBvbiB0aGUgcHJvdG9jb2wgb2YgaXRzICJpbm5lciBVUkwiCiAgICAg
Ly8gUHJvdG9jb2xzIGxpa2UgYmxvYjogYW5kIGZpbGVzeXN0ZW06IGZhbGwgaW50byB0aGlzIGxh
dHRlciBjYXRlZ29yeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAzMmQz
ZGIwYzAyMWUxOTg5YTI2NjAzZmNlNDU5NGU3NjdjMzllYWJiLi43OTIwODE0YjgxMWU1MmQ3NjE4
N2ViOWMwMDUwYjNmZjViNWFjNGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CkBAIC0xMTYsNiArMTE2LDcgQEAKICNpbmNsdWRlICJMZWdhY3lTY2hlbWVSZWdpc3RyeS5oIgog
I2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3ku
aCIKKyNpbmNsdWRlICJMb2NhdGlvbi5oIgogI2luY2x1ZGUgIk1hbGxvY1N0YXRpc3RpY3MuaCIK
ICNpbmNsdWRlICJNZWRpYURldmljZXMuaCIKICNpbmNsdWRlICJNZWRpYUVuZ2luZUNvbmZpZ3Vy
YXRpb25GYWN0b3J5LmgiCkBAIC01NDAyLDQgKzU0MDMsOSBAQCBib29sIEludGVybmFsczo6aGFz
U2FuZGJveE1hY2hMb29rdXBBY2Nlc3NUb1hQQ1NlcnZpY2VOYW1lKGNvbnN0IFN0cmluZyYgcHJv
Y2VzcwogI2VuZGlmCiB9CiAKK1N0cmluZyBJbnRlcm5hbHM6OndpbmRvd0xvY2F0aW9uSG9zdChE
T01XaW5kb3cmIHdpbmRvdykKK3sKKyAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uKCkuaG9zdCgp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAppbmRleCA3M2QwNDVhMGNmMjYyNzExMjI1NDY4MjI2Yzk2YmM5MTQ0ZTlhMTIwLi4wMmEyZWEy
NzEwN2Y3NDk4NzY2YTlkODI2NmRjM2RiN2Q3MmNjNDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTc4LDYgKzc4LDcgQEAgY2xhc3MgSW5zcGVjdG9yU3R1YkZyb250ZW5kOwog
Y2xhc3MgSW50ZXJuYWxzTWFwTGlrZTsKIGNsYXNzIEludGVybmFsU2V0dGluZ3M7CiBjbGFzcyBJ
bnRlcm5hbHNTZXRMaWtlOworY2xhc3MgTG9jYXRpb247CiBjbGFzcyBNYWxsb2NTdGF0aXN0aWNz
OwogY2xhc3MgTWVkaWFTZXNzaW9uOwogY2xhc3MgTWVkaWFTdHJlYW07CkBAIC05MjAsNiArOTIx
LDggQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGhpZ2hsaWdodFBzZXVkb0VsZW1lbnRDb2xvcihj
b25zdCBTdHJpbmcmIGhpZ2hsaWdodE5hbWUsIEVsZW1lbnQmKTsKIAorICAgIFN0cmluZyB3aW5k
b3dMb2NhdGlvbkhvc3QoRE9NV2luZG93Jik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50
ZXJuYWxzKERvY3VtZW50Jik7CiAgICAgRG9jdW1lbnQqIGNvbnRleHREb2N1bWVudCgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGVkYzUwOWUyNGZlYjI3MmVl
YTk5MTkxNzQwZmI5NzI4MWFhZWQxMTIuLjlmODNjMzJkZDY0ZWYyOGYzNWMwZGMyYjk3MTFmMjFh
OGIyM2Y1YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTc3MSw2ICs3
NzEsOCBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBbQ2FsbFdpdGg9RG9jdW1lbnRd
IHZvaWQgcXVldWVUYXNrVG9RdWV1ZU1pY3JvdGFzayhET01TdHJpbmcgc291cmNlLCBWb2lkQ2Fs
bGJhY2sgY2FsbGJhY2spOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gYm9vbGVhbiBoYXNTYW1l
RXZlbnRMb29wQXMoV2luZG93UHJveHkgd2luZG93UHJveHkpOwogCisgICAgRE9NU3RyaW5nIHdp
bmRvd0xvY2F0aW9uSG9zdChET01XaW5kb3cgd2luZG93KTsKKwogICAgIHZvaWQgbWFya0NvbnRl
eHRBc0luc2VjdXJlKCk7CiAKICAgICB2b2lkIHNldE1heENhbnZhc1BpeGVsTWVtb3J5KHVuc2ln
bmVkIGxvbmcgc2l6ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWQ5ZmZiNjcyYTM1MmI2OWI4ZmI1YWY0MTYzNjVhNmUw
Yjc3ZGE0Zi4uYzhlZjJiMWU2NWM3NzFlMjczMTFhZjljZjEyNDk3NTBiMjY2NGU5YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDE5LTEyLTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBJZ25vcmUgVVJMIGhvc3QgZm9yIHNjaGVtZXMgdGhhdCBhcmUgbm90
IHVzaW5nIGhvc3QgaW5mb3JtYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNTE1NworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgICogaHR0cC90ZXN0cy9sb2NhbC9maWxlLXVybC1ob3N0LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9sb2NhbC9maWxlLXVybC1ob3N0Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXQtdXJsLWhvc3QtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0LXVy
bC1ob3N0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11
cmwtaG9zdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvZGF0YS11cmwtaG9zdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2phdmFzY3JpcHQtdXJsLWhvc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHQtdXJsLWhvc3QuaHRtbDogQWRkZWQuCisKIDIw
MTktMTItMzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFw
cGx5IHJvdGF0aW9uIGF0IHNvdXJjZSBsZXZlbCBpZiBXZWJSVEMgc2luayBhc2sgc28KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9zdC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2ZpbGUtdXJsLWhvc3QtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYx
MmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2ZpbGUt
dXJsLWhvc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9zdC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sb2NhbC9maWxlLXVybC1ob3N0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTAxYzlm
OGQ2YjZhNGYwNWNmZjQ5MWM4MjhkNTJmOTMxOTNjNzQyYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtaG9zdC5odG1sCkBAIC0wLDAgKzEs
MTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgfQorICAgIGlmIChsb2NhdGlvbi5oYXNo
ID09PSAiIikKKyAgICAgICAgd2luZG93LmxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLmhyZWYu
cmVwbGFjZSgiZmlsZTovLy8iLCAiZmlsZTovL2V4YW1wbGUub3JnLyIpICsgIj90ZXN0I3Rlc3Qt
aG9zdCI7CisgICAgZWxzZSBpZiAobG9jYXRpb24uaGFzaCA9PT0gIiN0ZXN0IikKKyAgICAgICAg
d2luZG93LmxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLmhyZWYucmVwbGFjZSgiZmlsZTovL2V4
YW1wbGUub3JnLyIsICJmaWxlOi8vLyIpLnJlcGxhY2UoIj90ZXN0I3Rlc3QtaG9zdCIsICIiKSAr
ICI/dGVzdDIjdGVzdC1ob3N0IiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0OworICAgIGVsc2Ugewor
ICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoID09
PSAiI3Rlc3QtaG9zdCIgPyAiUEFTUyI6ICgiRkFJTCwgZ290OiAiICsgd2luZG93LmxvY2F0aW9u
Lmhhc2gpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXQtdXJsLWhvc3QtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9hYm91dC11cmwtaG9zdC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmMjJlOWE0MzFhZDAyNzI3MTNiNzFmZGM4Nzk0MDE2
YzhlZjEyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvYWJvdXQtdXJsLWhvc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXQtdXJsLWhvc3QuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXQtdXJsLWhvc3QuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44YzMyOWJlMzljZmE4ZDliOTBhMzA0Y2EwNzllYTU4MDQ5N2QwZTU1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9hYm91dC11cmwt
aG9zdC5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CitmdW5jdGlvbiB0ZXN0KCkg
eworICAgIHRyeSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAg
ICBjb25zdCBob3N0ID0gaW50ZXJuYWxzLndpbmRvd0xvY2F0aW9uSG9zdCh0ZXN0RnJhbWUuY29u
dGVudFdpbmRvdyk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IGhvc3Qg
PT09ICIiID8gIlBBU1MiIDogIkZBSUwsIGdvdCAiICsgaG9zdDsKKyAgICAgICAgfQorICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAgfQorCisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKzwv
c2NyaXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBvbmxvYWQ9InRlc3QoKSIgc3JjPSJhYm91
dDovL2V4YW1wbGUub3JnIj48L2lmcmFtZT4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGEtdXJsLWhvc3QtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGEtdXJsLWhv
c3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9kYXRhLXVybC1ob3N0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODYxNjI0
NDc4NzY1YWQxMjA2ZGEyMTI0NjUyMmVlZjJiMzMyYjc4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YS11cmwtaG9zdC5odG1sCkBAIC0wLDAg
KzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Cit9CitmdW5jdGlvbiB0ZXN0KCkgeworICAgIHRyeSB7CisgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBjb25zdCBob3N0ID0gaW50
ZXJuYWxzLndpbmRvd0xvY2F0aW9uSG9zdCh0ZXN0RnJhbWUuY29udGVudFdpbmRvdyk7CisgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IGhvc3QgPT09ICIiID8gIlBBU1MiIDog
IkZBSUwsIGdvdCAiICsgaG9zdDsKKyAgICAgICAgfQorICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAg
ICAgY29uc29sZS5sb2coZSk7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPGlmcmFtZSBp
ZD0idGVzdEZyYW1lIiBvbmxvYWQ9InRlc3QoKSIgc3JjPSJkYXRhOi8vZXhhbXBsZS5vcmcvdGV4
dC9odG1sLHRlc3QiPjwvaWZyYW1lPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0LXVybC1ob3N0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdC11cmwtaG9zdC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uN2VmMjJlOWE0MzFhZDAyNzI3MTNiNzFmZGM4Nzk0MDE2YzhlZjEy
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvamF2
YXNjcmlwdC11cmwtaG9zdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorUEFTUwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0LXVybC1ob3N0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHQtdXJsLWhv
c3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hOTRhYTZhMTlhYTQ5MWQwNGMyNzVjNGRkYWM3ZDg4N2Q0NWQy
MjVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9q
YXZhc2NyaXB0LXVybC1ob3N0Lmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK30KK2Z1
bmN0aW9uIHRlc3QoKSB7CisgICAgdHJ5IHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgICAgIGNvbnN0IGhvc3QgPSBpbnRlcm5hbHMud2luZG93TG9jYXRpb25Ib3N0
KHRlc3RGcmFtZS5jb250ZW50V2luZG93KTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5u
ZXJIVE1MID0gaG9zdCA9PT0gIiIgPyAiUEFTUyIgOiAiRkFJTCwgZ290ICIgKyBob3N0OworICAg
ICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBjb25zb2xlLmxvZyhlKTsKKyAgICB9
CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIG9ubG9hZD0idGVz
dCgpIiBzcmM9ImphdmFzY3JpcHQ6Ly9leGFtcGxlLm9yZy9hbGVydCgndGVzdCcpIj48L2lmcmFt
ZT4KKzwvYm9keT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>