<?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>188385</bug_id>
          
          <creation_ts>2018-08-07 11:54:44 -0700</creation_ts>
          <short_desc>Web Inspector: XHR content sometimes shows as error even though load succeeded</short_desc>
          <delta_ts>2018-08-08 11:00:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1448523</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-08-07 11:54:44 -0700</bug_when>
    <thetext>XHR content sometimes shows as error even though load succeeded

Steps to Reproduce:
1. Inspect &lt;https://3medu.com/&gt;
2. Reload
3. Show XHRs in Network Tab
4. Select an XHR
5. Show Preview
  =&gt; Error message instead of content

Compare to loading the content directly, the content is just some JSON:
https://3medu.com/rs/navigator/find?code=MAP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448524</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-08-07 11:54:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/22395159&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448525</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-08-07 12:00:54 -0700</bug_when>
    <thetext>So I&apos;m seeing the load happen successfully:

    [Log] event: {
        &quot;method&quot;: &quot;Network.requestWillBeSent&quot;,
        &quot;params&quot;: {
            &quot;requestId&quot;: &quot;0.119&quot;,
            &quot;frameId&quot;: &quot;0.2&quot;,
            &quot;loaderId&quot;: &quot;0.10&quot;,
            &quot;documentURL&quot;: &quot;https://3medu.com/&quot;,
            &quot;type&quot;: &quot;XHR&quot;,
            &quot;request&quot;: {
                &quot;url&quot;: &quot;https://3medu.com/rs/navigator/find?code=NAVBAR&quot;,
                &quot;method&quot;: &quot;GET&quot;,
                &quot;headers&quot;: {...}
            },
            ...
        }
    }

    [Log] event: {
        &quot;method&quot;: &quot;Network.responseReceived&quot;,
        &quot;params&quot;: {
            &quot;requestId&quot;: &quot;0.119&quot;,
            &quot;frameId&quot;: &quot;0.2&quot;,
            &quot;loaderId&quot;: &quot;0.10&quot;,
            &quot;timestamp&quot;: 475.15031187294517,
            &quot;type&quot;: &quot;XHR&quot;,
            &quot;response&quot;: {
                &quot;url&quot;: &quot;https://3medu.com/rs/navigator/find?code=NAVBAR&quot;,
                &quot;status&quot;: 200,
                &quot;statusText&quot;: &quot;OK&quot;,
                &quot;headers&quot;: {...},
                &quot;mimeType&quot;: &quot;application/json&quot;,
                &quot;source&quot;: &quot;network&quot;
            }
        }
    }

    [Log] event: {
        &quot;method&quot;: &quot;Network.loadingFinished&quot;,
        &quot;params&quot;: {
            &quot;requestId&quot;: &quot;0.119&quot;,
            &quot;timestamp&quot;: 475.15040089702234,
            &quot;metrics&quot;: {
                &quot;protocol&quot;: &quot;http/1.1&quot;,
                &quot;priority&quot;: &quot;low&quot;,
                &quot;remoteAddress&quot;: &quot;120.55.57.48:443&quot;,
                &quot;connectionIdentifier&quot;: &quot;86A10B88-2F3E-4433-AA5E-4BC5E3316DD0&quot;,
                &quot;requestHeaders&quot;: {...},
                &quot;requestHeaderBytesSent&quot;: 550,
                &quot;requestBodyBytesSent&quot;: 0,
                &quot;responseHeaderBytesReceived&quot;: 286,
                &quot;responseBodyBytesReceived&quot;: 664,
                &quot;responseBodyDecodedSize&quot;: 664
            }
        }
    }

But when the frontend tries to request the data for this request (0.119) we get a bad response:


    [Log] request: {
        &quot;id&quot;: 163,
        &quot;method&quot;: &quot;Network.getResponseBody&quot;,
        &quot;params&quot;: {
            &quot;requestId&quot;: &quot;0.119&quot;
        }
    }

    [Log] response: {
        &quot;error&quot;: {
            &quot;code&quot;: -32000,
            &quot;message&quot;: &quot;No data found for resource with given identifier&quot;,
            &quot;data&quot;: [{
                &quot;code&quot;: -32000,
                &quot;message&quot;: &quot;No data found for resource with given identifier&quot;
            }]
        },
        &quot;id&quot;: 163
    }

So now I have to step through InspectorNetworkAgent::getResponseBody and see what&apos;s up. I&apos;d expect there to be ResourceData that can be decoded to text. The response was `&quot;Content-Type&quot;: &quot;application/json&quot;` so it should be decoded as text pretty easily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448554</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-08-07 13:53:17 -0700</bug_when>
    <thetext>There is a NetworkResourceData, but it has no content:

    (lldb) p *this
    (WebCore::NetworkResourcesData::ResourceData) $2 = {
      ...
      m_url = { length = 47, contents = &apos;https://3medu.com/rs/navigator/find?code=NAVBAR&apos; } {
        m_impl = { m_ptr = 0x000000044c0ce168 { length = 47, is8bit = 1, contents = &apos;https://3medu.com/rs/navigator/find?code=NAVBAR&apos; } }
      }
      m_content = { length = 0, contents = &apos;&apos; } {
        m_impl = { m_ptr = 0x0000000000000000 }
      }
      m_textEncodingName = { length = 0, contents = &apos;&apos; } {
        m_impl = { m_ptr = 0x0000000000000000 }
      }

Something should have set this earlier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448558</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-08-07 14:00:26 -0700</bug_when>
    <thetext>XMLHttpRequest::didFinishLoading used to call through to InspectorInstrumentation::didFinishXHRLoading. I removed that in r225546 expecting to go down the normal InspectorNetworkAgent::didReceiveData addResourceData path.

Interesting that path gets avoided if the XHR is synchronous (which may be a problem for some of the missing XHRs).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448573</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-08-07 14:08:47 -0700</bug_when>
    <thetext>Heh, in this case we are loading synchronously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448580</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-08-07 14:19:12 -0700</bug_when>
    <thetext>Allowing synchronous XHR to behave the same as async here looks to be correct behavior now that `didLoadXHRSynchronously` doesn&apos;t exist to force setting the content. It also corrects the behavior of the https://3medu.com/ XHRs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448601</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-08-07 15:15:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/42646160&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448637</commentid>
    <comment_count>8</comment_count>
      <attachid>346744</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-08-07 16:54:56 -0700</bug_when>
    <thetext>Created attachment 346744
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448698</commentid>
    <comment_count>9</comment_count>
      <attachid>346744</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-08-07 23:36:43 -0700</bug_when>
    <thetext>Comment on attachment 346744
[PATCH] Proposed Fix

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

r=me

Just out of curiosity, does this do anything for that longstanding bug about base64 content from XHRs not being previewable?

&gt; LayoutTests/http/tests/inspector/network/xhr-response-body.html:7
&gt; +function xhrGet(url, asyncFlag=true) {

Style: do we prefer to add spaces around the `=` for optionals?

&gt; Source/WebCore/inspector/NetworkResourcesData.h:127
&gt; +    ResourceData const* maybeAddResourceData(const String&amp; requestId, const char* data, size_t dataLength);

Style: Is this a new style &quot;rule&quot;?  IIRC, this is the same as `const ResourceData*` since `const` applies to the left 🤔

&gt; Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp:493
&gt; +        // For non-sync data would be transferred from a cached resource, but sync XHRs may not have those.

This reads awkwardly.  &quot;Sync XHRs might not have a cached resource, while non-sync XHRs usually transfer the data over on completion.&quot; or something like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448778</commentid>
    <comment_count>10</comment_count>
      <attachid>346744</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-08-08 10:39:31 -0700</bug_when>
    <thetext>Comment on attachment 346744
[PATCH] Proposed Fix

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

&gt;&gt; Source/WebCore/inspector/NetworkResourcesData.h:127
&gt;&gt; +    ResourceData const* maybeAddResourceData(const String&amp; requestId, const char* data, size_t dataLength);
&gt; 
&gt; Style: Is this a new style &quot;rule&quot;?  IIRC, this is the same as `const ResourceData*` since `const` applies to the left 🤔

I was matching another function in this file. I think here the &quot;pointer&quot; is const, but the ResourceData is not. So the pointer is not allowed to change. Probably not necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448779</commentid>
    <comment_count>11</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-08-08 10:42:59 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #9)
&gt; Comment on attachment 346744 [details]
&gt; [PATCH] Proposed Fix
&gt; 
&gt; Just out of curiosity, does this do anything for that longstanding bug about
&gt; base64 content from XHRs not being previewable?

I think what you are describing was addressed a while ago when reworking the Network Tab. Turns out I broke Synchronous XHR for text content, and here I&apos;m fixing Synchronous XHR for text and binary content.

Namely:
https://trac.webkit.org/r225546
&lt;https://webkit.org/b/141389&gt; Web Inspector: content views for resources loaded through XHR do not reflect declared mime-type

You can probably view the history of the test file for more history:
LayoutTests/http/tests/inspector/network/xhr-response-body.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448786</commentid>
    <comment_count>12</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-08-08 11:00:46 -0700</bug_when>
    <thetext>&lt;https://trac.webkit.org/changeset/234702/webkit&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346744</attachid>
            <date>2018-08-07 16:54:56 -0700</date>
            <delta_ts>2018-08-08 11:00:51 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>sync-xhr-content.patch</filename>
            <type>text/plain</type>
            <size>13446</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MTgzMDNhMzZhMy4uYzYyZmRhNzI4ZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOC0wOC0wNyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFhIUiBjb250ZW50IHNvbWV0aW1lcyBzaG93cyBhcyBlcnJvciBl
dmVuIHRob3VnaCBsb2FkIHN1Y2NlZWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg4Mzg1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MjY0NjE2
MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsveGhyLXJlc3BvbnNlLWJvZHktZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsveGhyLXJlc3BvbnNlLWJv
ZHkuaHRtbDoKKyAgICAgICAgRXh0ZW5kIHRoaXMgdGVzdCB0byBpbmNsdWRlIHN5bmNocm9ub3Vz
IFhIUiBmb3IgdGV4dCBhbmQgbm9uLXRleHQgcmVzb3VyY2VzLgorCiAyMDE4LTA4LTA0ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBDRVJlYWN0aW9ucz1O
b3ROZWVkZWQgZm9yIHJlYWN0aW9ucyBvbmx5IG5lZWRlZCBmb3IgY3VzdG9taXplZCBidWlsdGlu
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay94
aHItcmVzcG9uc2UtYm9keS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3hoci1yZXNwb25zZS1ib2R5LWV4cGVjdGVkLnR4dAppbmRleCA0YWVl
YzI5NDgyNy4uOGE0NmIwZTQ4NDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsveGhyLXJlc3BvbnNlLWJvZHktZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsveGhyLXJlc3BvbnNlLWJvZHkt
ZXhwZWN0ZWQudHh0CkBAIC00NCwzICs0NCwxNSBAQCBQQVNTOiBNSU1FVHlwZSBzaG91bGQgYmUg
J2ltYWdlL3BuZycuCiBQQVNTOiBDb250ZW50IHNob3VsZCBiZSBiYXNlNjRFbmNvZGVkLgogUEFT
UzogSW1hZ2UgY29udGVudCBzaG91bGQgYmUgYSBCbG9iLgogCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogTmV0d29yay5nZXRSZXNwb25zZUJvZHkuWEhSLlN5bmMuVGV4dAorUEFTUzogUmVzb3VyY2Ug
c2hvdWxkIGJlIFhIUiB0eXBlLgorUEFTUzogTUlNRVR5cGUgc2hvdWxkIGJlICd0ZXh0L3BsYWlu
Jy4KK1BBU1M6IENvbnRlbnQgc2hvdWxkIG5vdCBiZSBiYXNlNjRFbmNvZGVkLgorUEFTUzogVGV4
dCBjb250ZW50IHNob3VsZCBtYXRjaCBkYXRhLnR4dC4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6
IE5ldHdvcmsuZ2V0UmVzcG9uc2VCb2R5LlhIUi5TeW5jLlBORworUEFTUzogUmVzb3VyY2Ugc2hv
dWxkIGJlIFhIUiB0eXBlLgorUEFTUzogTUlNRVR5cGUgc2hvdWxkIGJlICdpbWFnZS9wbmcnLgor
UEFTUzogQ29udGVudCBzaG91bGQgYmUgYmFzZTY0RW5jb2RlZC4KK1BBU1M6IEltYWdlIGNvbnRl
bnQgc2hvdWxkIGJlIGEgQmxvYi4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay94aHItcmVzcG9uc2UtYm9keS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay94aHItcmVzcG9uc2UtYm9keS5odG1sCmluZGV4
IDQ2OTBmNmJlNGQwLi5iYjI4ZDY0NmVkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay94aHItcmVzcG9uc2UtYm9keS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsveGhyLXJlc3BvbnNlLWJvZHkuaHRt
bApAQCAtNCw5ICs0LDkgQEAKIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0
aW9uIHhockdldCh1cmwpIHsKK2Z1bmN0aW9uIHhockdldCh1cmwsIGFzeW5jRmxhZz10cnVlKSB7
CiAgICAgbGV0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKLSAgICB4aHIub3BlbigiR0VUIiwg
dXJsLCB0cnVlKTsKKyAgICB4aHIub3BlbigiR0VUIiwgdXJsLCBhc3luY0ZsYWcpOwogICAgIHho
ci5zZW5kKCk7CiB9CiAKQEAgLTM4LDYgKzM4LDE0IEBAIGZ1bmN0aW9uIGNyZWF0ZVhIUkZvclBO
RygpIHsKICAgICB4aHJHZXQoIi9yZXNvdXJjZXMvc3F1YXJlMTAwLnBuZyIpOwogfQogCitmdW5j
dGlvbiBjcmVhdGVTeW5jWEhSRm9yVGV4dCgpIHsKKyAgICB4aHJHZXQoInJlc291cmNlcy9kYXRh
LnR4dD9zeW5jIiwgZmFsc2UpOworfQorCitmdW5jdGlvbiBjcmVhdGVTeW5jWEhSRm9yUE5HKCkg
eworICAgIHhockdldCgiL3Jlc291cmNlcy9zcXVhcmUxMDAucG5nP3N5bmMiLCBmYWxzZSk7Cit9
CisKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3Jl
YXRlQXN5bmNTdWl0ZSgiTmV0d29yay5nZXRSZXNwb25zZUJvZHkuWEhSIik7CkBAIC03NCw3ICs4
Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTog
Ik5ldHdvcmsuZ2V0UmVzcG9uc2VCb2R5LlhIUi5UZXh0IiwKICAgICAgICAgZGVzY3JpcHRpb246
ICJHZXQgdGV4dC9wbGFpbiBjb250ZW50IGFzIHRleHQuIiwKLSAgICAgICAgZXhwcmVzc2lvbjog
ImNyZWF0ZVhIUkZvclRleHQoKSIsCisgICAgICAgIGV4cHJlc3Npb246IGBjcmVhdGVYSFJGb3JU
ZXh0KClgLAogICAgICAgICBjb250ZW50SGFuZGxlcih7ZXJyb3IsIHNvdXJjZUNvZGUsIGNvbnRl
bnQsIHJhd0Jhc2U2NEVuY29kZWR9KSB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEVxdWFsKHNvdXJjZUNvZGUubWltZVR5cGUsICJ0ZXh0L3BsYWluIiwgIk1JTUVUeXBlIHNob3Vs
ZCBiZSAndGV4dC9wbGFpbicuIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVx
dWFsKHJhd0Jhc2U2NEVuY29kZWQsIGZhbHNlLCAiQ29udGVudCBzaG91bGQgbm90IGJlIGJhc2U2
NEVuY29kZWQuIik7CkBAIC04NSw3ICs5Myw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGFkZFRl
c3RDYXNlKHsKICAgICAgICAgbmFtZTogIk5ldHdvcmsuZ2V0UmVzcG9uc2VCb2R5LlhIUi5IVE1M
IiwKICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGV4dC9odG1sIGNvbnRlbnQgYXMgdGV4dC4i
LAotICAgICAgICBleHByZXNzaW9uOiAiY3JlYXRlWEhSRm9ySFRNTCgpIiwKKyAgICAgICAgZXhw
cmVzc2lvbjogYGNyZWF0ZVhIUkZvckhUTUwoKWAsCiAgICAgICAgIGNvbnRlbnRIYW5kbGVyKHtl
cnJvciwgc291cmNlQ29kZSwgY29udGVudCwgcmF3QmFzZTY0RW5jb2RlZH0pIHsKICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc291cmNlQ29kZS5taW1lVHlwZSwgInRleHQv
aHRtbCIsICJNSU1FVHlwZSBzaG91bGQgYmUgJ3RleHQvaHRtbCcuIik7CiAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJhd0Jhc2U2NEVuY29kZWQsIGZhbHNlLCAiQ29udGVu
dCBzaG91bGQgbm90IGJlIGJhc2U2NEVuY29kZWQuIik7CkBAIC05Niw3ICsxMDQsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICBhZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJOZXR3b3JrLmdl
dFJlc3BvbnNlQm9keS5YSFIuSlNPTiIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiR2V0IGFwcGxp
Y2F0aW9uL29jdGV0LXN0cmVhbSBjb250ZW50IGFzIGJhc2U2NEVuY29kZWQgdGV4dC4iLAotICAg
ICAgICBleHByZXNzaW9uOiAiY3JlYXRlWEhSRm9ySlNPTigpIiwKKyAgICAgICAgZXhwcmVzc2lv
bjogYGNyZWF0ZVhIUkZvckpTT04oKWAsCiAgICAgICAgIGNvbnRlbnRIYW5kbGVyKHtlcnJvciwg
c291cmNlQ29kZSwgY29udGVudCwgcmF3QmFzZTY0RW5jb2RlZH0pIHsKICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc291cmNlQ29kZS5taW1lVHlwZSwgImFwcGxpY2F0aW9u
L29jdGV0LXN0cmVhbSIsICJNSU1FVHlwZSBzaG91bGQgYmUgJ2FwcGxpY2F0aW9uL29jdGV0LXN0
cmVhbScuIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJhd0Jhc2U2
NEVuY29kZWQsIHRydWUsICJDb250ZW50IHNob3VsZCBiZSBiYXNlNjRFbmNvZGVkLiIpOwpAQCAt
MTA5LDcgKzExNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGFkZFRlc3RDYXNlKHsKICAgICAg
ICAgbmFtZTogIk5ldHdvcmsuZ2V0UmVzcG9uc2VCb2R5LlhIUi5KU09OMiIsCiAgICAgICAgIGRl
c2NyaXB0aW9uOiAiR2V0IGFwcGxpY2F0aW9uL2pzb24gY29udGVudCBhcyB0ZXh0LiIsCi0gICAg
ICAgIGV4cHJlc3Npb246ICJjcmVhdGVYSFJGb3JKU09OMigpIiwKKyAgICAgICAgZXhwcmVzc2lv
bjogYGNyZWF0ZVhIUkZvckpTT04yKClgLAogICAgICAgICBjb250ZW50SGFuZGxlcih7ZXJyb3Is
IHNvdXJjZUNvZGUsIGNvbnRlbnQsIHJhd0Jhc2U2NEVuY29kZWR9KSB7CiAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHNvdXJjZUNvZGUubWltZVR5cGUsICJhcHBsaWNhdGlv
bi9qc29uIiwgIk1JTUVUeXBlIHNob3VsZCBiZSAnYXBwbGljYXRpb24vanNvbicuIik7CiAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJhd0Jhc2U2NEVuY29kZWQsIGZhbHNl
LCAiQ29udGVudCBzaG91bGQgbm90IGJlIGJhc2U2NEVuY29kZWQuIik7CkBAIC0xMjAsNyArMTI4
LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgYWRkVGVzdENhc2UoewogICAgICAgICBuYW1lOiAi
TmV0d29yay5nZXRSZXNwb25zZUJvZHkuWEhSLkpTT04zIiwKICAgICAgICAgZGVzY3JpcHRpb246
ICJHZXQgYXJiaXRyYXJ5ICtqc29uIGNvbnRlbnQgYXMgdGV4dC4iLAotICAgICAgICBleHByZXNz
aW9uOiAiY3JlYXRlWEhSRm9ySlNPTjMoKSIsCisgICAgICAgIGV4cHJlc3Npb246IGBjcmVhdGVY
SFJGb3JKU09OMygpYCwKICAgICAgICAgY29udGVudEhhbmRsZXIoe2Vycm9yLCBzb3VyY2VDb2Rl
LCBjb250ZW50LCByYXdCYXNlNjRFbmNvZGVkfSkgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbChzb3VyY2VDb2RlLm1pbWVUeXBlLCAiYXBwbGljYXRpb24vdm5kLmFwaStq
c29uIiwgIk1JTUVUeXBlIHNob3VsZCBiZSAnYXBwbGljYXRpb24vdm5kLmFwaStqc29uJy4iKTsK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmF3QmFzZTY0RW5jb2RlZCwg
ZmFsc2UsICJDb250ZW50IHNob3VsZCBub3QgYmUgYmFzZTY0RW5jb2RlZC4iKTsKQEAgLTEzMSw3
ICsxMzksNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBhZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5h
bWU6ICJOZXR3b3JrLmdldFJlc3BvbnNlQm9keS5YSFIuU1ZHIiwKICAgICAgICAgZGVzY3JpcHRp
b246ICJHZXQgaW1hZ2Uvc3ZnK3htbCBjb250ZW50IGFzIHRleHQuIiwKLSAgICAgICAgZXhwcmVz
c2lvbjogImNyZWF0ZVhIUkZvclNWRygpIiwKKyAgICAgICAgZXhwcmVzc2lvbjogYGNyZWF0ZVhI
UkZvclNWRygpYCwKICAgICAgICAgY29udGVudEhhbmRsZXIoe2Vycm9yLCBzb3VyY2VDb2RlLCBj
b250ZW50LCByYXdCYXNlNjRFbmNvZGVkfSkgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChzb3VyY2VDb2RlLm1pbWVUeXBlLCAiaW1hZ2Uvc3ZnK3htbCIsICJNSU1FVHlw
ZSBzaG91bGQgYmUgJ2ltYWdlL3N2Zyt4bWwnLiIpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbChyYXdCYXNlNjRFbmNvZGVkLCBmYWxzZSwgIkNvbnRlbnQgc2hvdWxkIG5v
dCBiZSBiYXNlNjRFbmNvZGVkLiIpOwpAQCAtMTQ3LDcgKzE1NSwyOSBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICBhZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJOZXR3b3JrLmdldFJlc3BvbnNl
Qm9keS5YSFIuUE5HIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgaW1hZ2UvcG5nIGNvbnRl
bnQuIiwKLSAgICAgICAgZXhwcmVzc2lvbjogImNyZWF0ZVhIUkZvclBORygpIiwKKyAgICAgICAg
ZXhwcmVzc2lvbjogYGNyZWF0ZVhIUkZvclBORygpYCwKKyAgICAgICAgY29udGVudEhhbmRsZXIo
e2Vycm9yLCBzb3VyY2VDb2RlLCBjb250ZW50LCByYXdCYXNlNjRFbmNvZGVkfSkgeworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzb3VyY2VDb2RlLm1pbWVUeXBlLCAiaW1h
Z2UvcG5nIiwgIk1JTUVUeXBlIHNob3VsZCBiZSAnaW1hZ2UvcG5nJy4iKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmF3QmFzZTY0RW5jb2RlZCwgdHJ1ZSwgIkNvbnRl
bnQgc2hvdWxkIGJlIGJhc2U2NEVuY29kZWQuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoY29udGVudCBpbnN0YW5jZW9mIEJsb2IsICJJbWFnZSBjb250ZW50IHNob3Vs
ZCBiZSBhIEJsb2IuIik7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsK
KyAgICAgICAgbmFtZTogIk5ldHdvcmsuZ2V0UmVzcG9uc2VCb2R5LlhIUi5TeW5jLlRleHQiLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIkdldCB0ZXh0L3BsYWluIGNvbnRlbnQgYXMgdGV4dCBmcm9t
IGEgc3luY2hyb25vdXMgWEhSLiIsCisgICAgICAgIGV4cHJlc3Npb246IGBjcmVhdGVTeW5jWEhS
Rm9yVGV4dCgpYCwKKyAgICAgICAgY29udGVudEhhbmRsZXIoe2Vycm9yLCBzb3VyY2VDb2RlLCBj
b250ZW50LCByYXdCYXNlNjRFbmNvZGVkfSkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChzb3VyY2VDb2RlLm1pbWVUeXBlLCAidGV4dC9wbGFpbiIsICJNSU1FVHlwZSBz
aG91bGQgYmUgJ3RleHQvcGxhaW4nLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RFcXVhbChyYXdCYXNlNjRFbmNvZGVkLCBmYWxzZSwgIkNvbnRlbnQgc2hvdWxkIG5vdCBiZSBi
YXNlNjRFbmNvZGVkLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChj
b250ZW50LCAiUGxhaW4gdGV4dCByZXNvdXJjZS5cbiIsICJUZXh0IGNvbnRlbnQgc2hvdWxkIG1h
dGNoIGRhdGEudHh0LiIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBhZGRUZXN0Q2FzZSh7
CisgICAgICAgIG5hbWU6ICJOZXR3b3JrLmdldFJlc3BvbnNlQm9keS5YSFIuU3luYy5QTkciLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIkdldCBpbWFnZS9wbmcgY29udGVudCBmcm9tIGEgc3luY2hy
b25vdXMgWEhSLiIsCisgICAgICAgIGV4cHJlc3Npb246IGBjcmVhdGVTeW5jWEhSRm9yUE5HKClg
LAogICAgICAgICBjb250ZW50SGFuZGxlcih7ZXJyb3IsIHNvdXJjZUNvZGUsIGNvbnRlbnQsIHJh
d0Jhc2U2NEVuY29kZWR9KSB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KHNvdXJjZUNvZGUubWltZVR5cGUsICJpbWFnZS9wbmciLCAiTUlNRVR5cGUgc2hvdWxkIGJlICdp
bWFnZS9wbmcnLiIpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyYXdC
YXNlNjRFbmNvZGVkLCB0cnVlLCAiQ29udGVudCBzaG91bGQgYmUgYmFzZTY0RW5jb2RlZC4iKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwYzllYTcxZDgxMS4uZThkZGZjZjEyMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxOC0wOC0wNyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFhIUiBjb250ZW50IHNvbWV0aW1lcyBzaG93
cyBhcyBlcnJvciBldmVuIHRob3VnaCBsb2FkIHN1Y2NlZWRlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4Mzg1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yMjM5NTE1OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck5ldHdvcmtBZ2VudDo6ZGlkUmVjZWl2ZURhdGEpOgor
ICAgICAgICBBdm9pZCBhIGRvdWJsZSBoYXNoIGxvb2t1cCBpbiB0aGUgY29tbW9uIGNhc2UuCisg
ICAgICAgIEFsbG93IHN5bmNocm9ub3VzIFhIUiB0byBoYXZlIHRleHQgZGF0YSBhcHBlbmRlZCBp
biB0aGUgbm9ybWFsIGNhc2UuCisgICAgICAgIEFsbG93IHN5bmNocm9ub3VzIFhIUiB0byBzZXQg
YmFzZTY0IGVuY29kZWQgZGF0YSByaWdodCBoZXJlIGZvciBub24tdGV4dCBkYXRhLgorCisgICAg
ICAgICogaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOZXR3b3JrUmVzb3VyY2VzRGF0YTo6UmVzb3VyY2VEYXRhOjpoYXNCdWZmZXJlZERhdGEgY29u
c3QpOgorICAgICAgICBHZXR0ZXIgdG8gc2VlIGlmIGRhdGEgaXMgYnVmZmVyZWQgb3Igbm90IGZv
ciB0aGlzIHJlc291cmNlLgorCisgICAgICAgICogaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtSZXNvdXJjZXNEYXRhOjptYXliZUFk
ZFJlc291cmNlRGF0YSk6CisgICAgICAgIFJldHVybiB0aGUgdXBkYXRlZCBSZXNvdXJjZURhdGEg
dG8gYXZvaWQgY2xpZW50cyBoYXZpbmcgdG8gZG8gYSBsb29rdXAuCisKIDIwMTgtMDgtMDQgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIENFUmVhY3Rpb25z
PU5vdE5lZWRlZCBmb3IgcmVhY3Rpb25zIG9ubHkgbmVlZGVkIGZvciBjdXN0b21pemVkIGJ1aWx0
aW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291cmNl
c0RhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRh
LmNwcAppbmRleCBiMDExM2ZhMTg2Mi4uYjI1OTY4YjJkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmNwcApAQCAtMjE5LDI1ICsyMTks
MjcgQEAgc3RhdGljIGJvb2wgc2hvdWxkQnVmZmVyUmVzb3VyY2VEYXRhKGNvbnN0IE5ldHdvcmtS
ZXNvdXJjZXNEYXRhOjpSZXNvdXJjZURhdGEmIHIKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZv
aWQgTmV0d29ya1Jlc291cmNlc0RhdGE6Om1heWJlQWRkUmVzb3VyY2VEYXRhKGNvbnN0IFN0cmlu
ZyYgcmVxdWVzdElkLCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0aCkKK05ldHdv
cmtSZXNvdXJjZXNEYXRhOjpSZXNvdXJjZURhdGEgY29uc3QqIE5ldHdvcmtSZXNvdXJjZXNEYXRh
OjptYXliZUFkZFJlc291cmNlRGF0YShjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCwgY29uc3QgY2hh
ciogZGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgpCiB7CiAgICAgUmVzb3VyY2VEYXRhKiByZXNvdXJj
ZURhdGEgPSByZXNvdXJjZURhdGFGb3JSZXF1ZXN0SWQocmVxdWVzdElkKTsKICAgICBpZiAoIXJl
c291cmNlRGF0YSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAog
ICAgIGlmICghc2hvdWxkQnVmZmVyUmVzb3VyY2VEYXRhKCpyZXNvdXJjZURhdGEpKQotICAgICAg
ICByZXR1cm47CisgICAgICAgIHJldHVybiByZXNvdXJjZURhdGE7CiAKICAgICBpZiAocmVzb3Vy
Y2VEYXRhLT5kYXRhTGVuZ3RoKCkgKyBkYXRhTGVuZ3RoID4gbV9tYXhpbXVtU2luZ2xlUmVzb3Vy
Y2VDb250ZW50U2l6ZSkKICAgICAgICAgbV9jb250ZW50U2l6ZSAtPSByZXNvdXJjZURhdGEtPmV2
aWN0Q29udGVudCgpOwogICAgIGlmIChyZXNvdXJjZURhdGEtPmlzQ29udGVudEV2aWN0ZWQoKSkK
LSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gcmVzb3VyY2VEYXRhOwogCiAgICAgaWYg
KGVuc3VyZUZyZWVTcGFjZShkYXRhTGVuZ3RoKSAmJiAhcmVzb3VyY2VEYXRhLT5pc0NvbnRlbnRF
dmljdGVkKCkpIHsKICAgICAgICAgbV9yZXF1ZXN0SWRzRGVxdWUuYXBwZW5kKHJlcXVlc3RJZCk7
CiAgICAgICAgIHJlc291cmNlRGF0YS0+YXBwZW5kRGF0YShkYXRhLCBkYXRhTGVuZ3RoKTsKICAg
ICAgICAgbV9jb250ZW50U2l6ZSArPSBkYXRhTGVuZ3RoOwogICAgIH0KKworICAgIHJldHVybiBy
ZXNvdXJjZURhdGE7CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlc0RhdGE6Om1heWJlRGVjb2Rl
RGF0YVRvQ29udGVudChjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmgKaW5kZXggMzdkOGI3YzAxYmQuLjc4
MmFhMzg0ZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jl
c291cmNlc0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTmV0d29ya1Jlc291
cmNlc0RhdGEuaApAQCAtOTAsNiArOTAsOCBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgZm9yY2VC
dWZmZXJEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9mb3JjZUJ1ZmZlckRhdGE7IH0KICAgICAgICAg
dm9pZCBzZXRGb3JjZUJ1ZmZlckRhdGEoYm9vbCBmb3JjZSkgeyBtX2ZvcmNlQnVmZmVyRGF0YSA9
IGZvcmNlOyB9CiAKKyAgICAgICAgYm9vbCBoYXNCdWZmZXJlZERhdGEoKSBjb25zdCB7IHJldHVy
biBtX2RhdGFCdWZmZXI7IH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIGJvb2wgaGFzRGF0YSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YUJ1ZmZlcjsgfQogICAgICAgICBzaXplX3QgZGF0YUxlbmd0
aCgpIGNvbnN0OwpAQCAtMTIyLDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlc291
cmNlVHlwZShjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCwgSW5zcGVjdG9yUGFnZUFnZW50OjpSZXNv
dXJjZVR5cGUpOwogICAgIEluc3BlY3RvclBhZ2VBZ2VudDo6UmVzb3VyY2VUeXBlIHJlc291cmNl
VHlwZShjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCk7CiAgICAgdm9pZCBzZXRSZXNvdXJjZUNvbnRl
bnQoY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgY29udGVudCwgYm9vbCBi
YXNlNjRFbmNvZGVkID0gZmFsc2UpOwotICAgIHZvaWQgbWF5YmVBZGRSZXNvdXJjZURhdGEoY29u
c3QgU3RyaW5nJiByZXF1ZXN0SWQsIGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3Ro
KTsKKyAgICBSZXNvdXJjZURhdGEgY29uc3QqIG1heWJlQWRkUmVzb3VyY2VEYXRhKGNvbnN0IFN0
cmluZyYgcmVxdWVzdElkLCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0aCk7CiAg
ICAgdm9pZCBtYXliZURlY29kZURhdGFUb0NvbnRlbnQoY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQp
OwogICAgIHZvaWQgYWRkQ2FjaGVkUmVzb3VyY2UoY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQsIENh
Y2hlZFJlc291cmNlKik7CiAgICAgdm9pZCBhZGRSZXNvdXJjZVNoYXJlZEJ1ZmZlcihjb25zdCBT
dHJpbmcmIHJlcXVlc3RJZCwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwgY29uc3QgU3RyaW5nJiB0
ZXh0RW5jb2RpbmdOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRleCBiMjg4OWEzNmI1Zi4uM2Mz
ZGM4M2M0YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKQEAgLTQ4Niw5ICs0ODYsMTMgQEAgdm9pZCBJ
bnNwZWN0b3JOZXR3b3JrQWdlbnQ6OmRpZFJlY2VpdmVEYXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgY2hhcioKICAgICBTdHJpbmcgcmVxdWVzdElkID0gSWRlbnRpZmllcnNGYWN0
b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllcik7CiAKICAgICBpZiAoZGF0YSkgewotICAgICAgICBO
ZXR3b3JrUmVzb3VyY2VzRGF0YTo6UmVzb3VyY2VEYXRhIGNvbnN0KiByZXNvdXJjZURhdGEgPSBt
X3Jlc291cmNlc0RhdGEtPmRhdGEocmVxdWVzdElkKTsKLSAgICAgICAgaWYgKHJlc291cmNlRGF0
YSAmJiAhbV9sb2FkaW5nWEhSU3luY2hyb25vdXNseSkKLSAgICAgICAgICAgIG1fcmVzb3VyY2Vz
RGF0YS0+bWF5YmVBZGRSZXNvdXJjZURhdGEocmVxdWVzdElkLCBkYXRhLCBkYXRhTGVuZ3RoKTsK
KyAgICAgICAgTmV0d29ya1Jlc291cmNlc0RhdGE6OlJlc291cmNlRGF0YSBjb25zdCogcmVzb3Vy
Y2VEYXRhID0gbV9yZXNvdXJjZXNEYXRhLT5tYXliZUFkZFJlc291cmNlRGF0YShyZXF1ZXN0SWQs
IGRhdGEsIGRhdGFMZW5ndGgpOworCisgICAgICAgIC8vIEZvciBhIHN5bmNocm9ub3VzIFhIUiwg
aWYgd2UgZGlkbid0IGFkZCBkYXRhIHRoZW4gd2UgY2FuIGFwcGx5IGl0IGhlcmUgYXMgYmFzZTY0
IGVuY29kZWQgY29udGVudC4KKyAgICAgICAgLy8gT2Z0ZW4gdGhlIGRhdGEgaXMgdGV4dCBhbmQg
d2Ugd291bGQgaGF2ZSBhIGRlY29kZXIsIGJ1dCBmb3Igbm9uLXRleHQgd2Ugd29uJ3QgaGF2ZSBh
IGRlY29kZXIuCisgICAgICAgIC8vIEZvciBub24tc3luYyBkYXRhIHdvdWxkIGJlIHRyYW5zZmVy
cmVkIGZyb20gYSBjYWNoZWQgcmVzb3VyY2UsIGJ1dCBzeW5jIFhIUnMgbWF5IG5vdCBoYXZlIHRo
b3NlLgorICAgICAgICBpZiAobV9sb2FkaW5nWEhSU3luY2hyb25vdXNseSAmJiByZXNvdXJjZURh
dGEgJiYgIXJlc291cmNlRGF0YS0+aGFzQnVmZmVyZWREYXRhKCkgJiYgIXJlc291cmNlRGF0YS0+
Y2FjaGVkUmVzb3VyY2UoKSkKKyAgICAgICAgICAgIG1fcmVzb3VyY2VzRGF0YS0+c2V0UmVzb3Vy
Y2VDb250ZW50KHJlcXVlc3RJZCwgYmFzZTY0RW5jb2RlKGRhdGEsIGRhdGFMZW5ndGgpLCB0cnVl
KTsKICAgICB9CiAKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZGF0YVJlY2VpdmVkKHJlcXVl
c3RJZCwgdGltZXN0YW1wKCksIGRhdGFMZW5ndGgsIGVuY29kZWREYXRhTGVuZ3RoKTsK
</data>
<flag name="review"
          id="364577"
          type_id="1"
          status="+"
          setter="hi"
    />
          </attachment>
      

    </bug>

</bugzilla>