<?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>159511</bug_id>
          
          <creation_ts>2016-07-07 03:46:09 -0700</creation_ts>
          <short_desc>Web Inspector, regression: JS/JSON pretty-printing sporadically broken in STP8</short_desc>
          <delta_ts>2016-07-11 14:01:07 -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>Safari Technology Preview</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="Xavier Morel">webkit.org</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>ap</cc>
    
    <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1208592</commentid>
    <comment_count>0</comment_count>
    <who name="Xavier Morel">webkit.org</who>
    <bug_when>2016-07-07 03:46:09 -0700</bug_when>
    <thetext>[In Safari 9.1.1 on El Capitan]
* Open web inspector
* Switch to network tab
* Navigate to google.com
* Type some stuff to trigger FAYT
* Select &quot;search&quot; network resource
* Click on &quot;Pretty print&quot; button

Expected: the resource result gets pretty-printed, the &quot;Pretty print&quot; button gets highlighted (blue font)
Result: expectations fulfilled

[Repeat same steps in STP8]

Expected: same as above
Result: the resource does not get pretty-printed, the &quot;Pretty print&quot; button remains inactive</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208593</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-07-07 03:46:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/27218435&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208731</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-07 12:58:48 -0700</bug_when>
    <thetext>The &quot;application/json&quot; content looks like:

    {&quot;e&quot;:&quot;...&quot;,&quot;c&quot;:-1,...}/*&quot;&quot;*/

Pretty Printing fails because:
• It is an invalid JavaScript program. (Esprima Parse error)
• JSON.parse fails. (The comment at the end makes it invalid)

I suppose instead of JSON.parse we could try &apos;(&apos; + str + &apos;)&apos; and chopping off some pieces. That is rather unfortunate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208756</commentid>
    <comment_count>3</comment_count>
      <attachid>283043</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-07 13:48:25 -0700</bug_when>
    <thetext>Created attachment 283043
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208757</commentid>
    <comment_count>4</comment_count>
      <attachid>283043</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-07 13:50:03 -0700</bug_when>
    <thetext>Comment on attachment 283043
[PATCH] Proposed Fix

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

&gt; LayoutTests/inspector/formatting/formatting-json-expected.txt:51
&gt; +PASS: Should not be able to not be evaluated to an object.

Typo =(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208759</commentid>
    <comment_count>5</comment_count>
      <attachid>283044</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-07 13:51:45 -0700</bug_when>
    <thetext>Created attachment 283044
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208785</commentid>
    <comment_count>6</comment_count>
      <attachid>283044</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-07 14:28:46 -0700</bug_when>
    <thetext>Comment on attachment 283044
[PATCH] Proposed Fix

Clearing flags on attachment: 283044

Committed r202933: &lt;http://trac.webkit.org/changeset/202933&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208786</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-07 14:28:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209506</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-07-09 20:50:58 -0700</bug_when>
    <thetext>&gt; • It is an invalid JavaScript program. (Esprima Parse error)
&gt; • JSON.parse fails. (The comment at the end makes it invalid)

If this is neither valid JS not valid JSON, isn&apos;t misleading to pretty print it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209663</commentid>
    <comment_count>9</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-07-11 08:38:57 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; • It is an invalid JavaScript program. (Esprima Parse error)
&gt; &gt; • JSON.parse fails. (The comment at the end makes it invalid)
&gt; 
&gt; If this is neither valid JS not valid JSON, isn&apos;t misleading to pretty print
&gt; it?

It is not directly valid JS, but sites often take it and add parens to make it valid. That is what Joe did here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209788</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-11 13:48:37 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; &gt; • It is an invalid JavaScript program. (Esprima Parse error)
&gt; &gt; &gt; • JSON.parse fails. (The comment at the end makes it invalid)
&gt; &gt; 
&gt; &gt; If this is neither valid JS not valid JSON, isn&apos;t misleading to pretty print
&gt; &gt; it?
&gt; 
&gt; It is not directly valid JS, but sites often take it and add parens to make
&gt; it valid. That is what Joe did here.

Correct.

It is not a valid JavaScript program, but it is a valid JavaScript object.

For example:

    &quot;{a:1, b:2}&quot;

Is not a valid JavaScript program:

    &gt;&gt;&gt; {a:1, b:2}
    Unexpected token &apos;:&apos;. Parse error.:1

But it is a valid JavaScript object:

    &gt;&gt;&gt; o = {a:1, b:2}
    [object Object]

A common practice among web pages is to wrap the input in parenthesis and eval it, or use it in a function call:

    var json; /* load &quot;{a:1, b:2}&quot; from network */


    var object = eval( &apos;(&apos; + json + &apos;)&apos; );

   
    


Which would produce the expected object:

    &gt;&gt;&gt; o = eval(&apos;(&apos; + &quot;{a:1, b:2}&quot; + &apos;)&apos;)
    [object Object]

Because</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209790</commentid>
    <comment_count>11</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-11 13:52:09 -0700</bug_when>
    <thetext>Finishing the comment:

---

A common practice among web pages is to wrap the input in parenthesis and eval it, or use it in a function call:

    var json; /* load &quot;{a:1, b:2}&quot; from network */

    // Eval with parenthesis to produce an object:
    var object = eval( &apos;(&apos; + json + &apos;)&apos; );

    // Eval with a function call providing the parens:
    eval( &apos;parseResponse(&apos; + json + &apos;)&apos; );

Which would produce the expected object:

    &gt;&gt;&gt; o = eval(&apos;(&apos; + &quot;{a:1, b:2}&quot; + &apos;)&apos;)
    [object Object]

This was a common practice before JSON.parse, and may still be in use to some degree.

In the case on google.com the content can not be JSON.parse&apos;d directly, so I assume some approach like this, or knowing to strip off some characters, must be at play.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209794</commentid>
    <comment_count>12</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-11 14:01:07 -0700</bug_when>
    <thetext>I should also point out that object properties need to be double quoted in JSON, so the example given before would not satisfy JSON.parse:

    &gt;&gt;&gt; JSON.parse(&quot;{a:1, b:2}&quot;)
    Exception: SyntaxError: JSON Parse error: Expected &apos;}&apos;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283043</attachid>
            <date>2016-07-07 13:48:25 -0700</date>
            <delta_ts>2016-07-07 13:51:45 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>invalid-json.patch</filename>
            <type>text/plain</type>
            <size>9420</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNTMwY2QxLi4yMmM1NGI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDct
MDcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yLCByZWdyZXNzaW9uOiBKUy9KU09OIHByZXR0eS1wcmludGluZyBzcG9yYWRpY2Fs
bHkgYnJva2VuIGluIFNUUDgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1OTUxMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjcyMTg0MzU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
Zm9ybWF0dGluZy9mb3JtYXR0aW5nLWpzb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZm9ybWF0dGluZy9mb3JtYXR0aW5nLWpzb24uaHRtbDogQWRkZWQuCisKIDIw
MTYtMDctMDYgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAg
Q29ycmVjdCBhIHR5cG8gaW4gdGhlIE1hYyBUZXN0RXhwZWN0YXRpb25zIGZpbGUuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9mb3JtYXR0aW5nLWpzb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvZm9ybWF0dGluZy1q
c29uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTM2
Mzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcv
Zm9ybWF0dGluZy1qc29uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUzIEBACitUZXN0IEpTT04g
Zm9ybWF0dGluZyB0ZXN0cy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEVzcHJpbWFGb3Jt
YXR0ZXIuSlNPTgorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEVzcHJpbWFGb3JtYXR0ZXIuVmFsaWRK
U09OCitKU09OOiAie1wiYVwiOjEyMyxcImJcIjpbMSwyLDNdLFwiY1wiOntcImRcIjpcImVcIn19
IgorUEFTUzogSlNPTiBzaG91bGQgYmUgdmFsaWQuCitGT1JNQVRURUQ6Cit7CisgICAgImEiOiAx
MjMsCisgICAgImIiOiBbCisgICAgICAgIDEsCisgICAgICAgIDIsCisgICAgICAgIDMKKyAgICBd
LAorICAgICJjIjogeworICAgICAgICAiZCI6ICJlIgorICAgIH0KK30KKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IEVzcHJpbWFGb3JtYXR0ZXIuSW52YWxpZEJ1dE9iamVjdAorSlNPTjogInthOjEy
MyxiOlsxLDIsM10sYzp7ZDpcImVcIn19IgorUEFTUzogSlNPTiBzaG91bGQgYmUgaW52YWxpZC4K
K1BBU1M6IFNob3VsZCBiZSBhYmxlIHRvIGJlIGV2YWx1YXRlZCB0byBhbiBvYmplY3QuCitGT1JN
QVRURUQ6Cit7CisgICAgYTogMTIzLAorICAgIGI6IFsxLCAyLCAzXSwKKyAgICBjOiB7CisgICAg
ICAgIGQ6ICJlIgorICAgIH0KK30KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEVzcHJpbWFGb3Jt
YXR0ZXIuSW52YWxpZFdpdGhDb21tZW50cworSlNPTjogIntcImFcIjoxMjMsXCJiXCI6WzEsMiwz
XSxcImNcIjp7XCJkXCI6XCJlXCJ9fS8qQ29tbWVudCovIgorUEFTUzogSlNPTiBzaG91bGQgYmUg
aW52YWxpZC4KK1BBU1M6IFNob3VsZCBiZSBhYmxlIHRvIGJlIGV2YWx1YXRlZCB0byBhbiBvYmpl
Y3QuCitGT1JNQVRURUQ6Cit7CisgICAgImEiOiAxMjMsCisgICAgImIiOiBbMSwgMiwgM10sCisg
ICAgImMiOiB7CisgICAgICAgICJkIjogImUiCisgICAgfQorfSAvKkNvbW1lbnQqLworCisKKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBFc3ByaW1hRm9ybWF0dGVyLkludmFsaWQKK0lOUFVUOiAie2E6
MSBiOjJ9IgorUEFTUzogSlNPTiBzaG91bGQgYmUgaW52YWxpZC4KK1BBU1M6IFNob3VsZCBub3Qg
YmUgYWJsZSB0byBub3QgYmUgZXZhbHVhdGVkIHRvIGFuIG9iamVjdC4KK1BBU1M6IFJlc3BvbnNl
IHNob3VsZCBiZSBudWxsLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9y
bWF0dGluZy9mb3JtYXR0aW5nLWpzb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3Jt
YXR0aW5nL2Zvcm1hdHRpbmctanNvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjg3NGU0MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Zm9ybWF0dGluZy9mb3JtYXR0aW5nLWpzb24uaHRtbApAQCAtMCwwICsxLDEwOSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgZnVuY3Rpb24gZW5zdXJlSlNPTihzdHJpbmcsIGV4
cGVjdGF0aW9uKSB7CisgICAgICAgIGxldCBpbnZhbGlkID0gZmFsc2U7CisgICAgICAgIHRyeSB7
CisgICAgICAgICAgICBKU09OLnBhcnNlKHN0cmluZyk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgICAgIGludmFsaWQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChleHBl
Y3RhdGlvbiA9PT0gImludmFsaWQiKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KGludmFsaWQsICJKU09OIHNob3VsZCBiZSBpbnZhbGlkLiIpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIWludmFsaWQsICJKU09OIHNob3Vs
ZCBiZSB2YWxpZC4iKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBlbnN1cmVFdmFsKHN0cmluZywg
ZXhwZWN0YXRpb24pIHsKKyAgICAgICAgbGV0IGlzT2JqZWN0ID0gZmFsc2U7CisgICAgICAgIHRy
eSB7CisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gZXZhbCgiKCIgKyBzdHJpbmcgKyAiKSIpOwor
ICAgICAgICAgICAgaXNPYmplY3QgPSB0eXBlb2YgcmVzdWx0ID09PSAib2JqZWN0IjsKKyAgICAg
ICAgfSBjYXRjaCAoZSkge30KKworICAgICAgICBpZiAoZXhwZWN0YXRpb24gPT09ICJvYmplY3Qi
KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGlzT2JqZWN0LCAiU2hvdWxk
IGJlIGFibGUgdG8gYmUgZXZhbHVhdGVkIHRvIGFuIG9iamVjdC4iKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFpc09iamVjdCwgIlNob3VsZCBu
b3QgYmUgYWJsZSB0byBub3QgYmUgZXZhbHVhdGVkIHRvIGFuIG9iamVjdC4iKTsKKyAgICB9CisK
KworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiRXNwcmlt
YUZvcm1hdHRlci5KU09OIik7CisKKyAgICBsZXQgaW5kZW50U3RyaW5nID0gIiAgICAiOworICAg
IGxldCB3b3JrZXJQcm94eSA9IFdlYkluc3BlY3Rvci5Gb3JtYXR0ZXJXb3JrZXJQcm94eS5zaW5n
bGV0b24oKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkVzcHJp
bWFGb3JtYXR0ZXIuVmFsaWRKU09OIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJGb3JtYXQgdmFs
aWQgSlNPTiIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAg
ICAgIGxldCB2YWxpZEpTT04gPSBKU09OLnN0cmluZ2lmeSh7ImEiOjEyMywiYiI6WzEsMiwzXSwi
YyI6eyJkIjoiZSJ9fSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiSlNPTjogIiAr
IGRvdWJsZVF1b3RlZFN0cmluZyh2YWxpZEpTT04pKTsKKyAgICAgICAgICAgIGVuc3VyZUpTT04o
dmFsaWRKU09OLCAidmFsaWQiKTsKKyAgICAgICAgICAgIHdvcmtlclByb3h5LmZvcm1hdEphdmFT
Y3JpcHQodmFsaWRKU09OLCBpbmRlbnRTdHJpbmcsICh7Zm9ybWF0dGVkVGV4dCwgc291cmNlTWFw
RGF0YX0pID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRk9STUFUVEVE
OiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGZvcm1hdHRlZFRleHQpOwor
ICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9Cisg
ICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJFc3ByaW1h
Rm9ybWF0dGVyLkludmFsaWRCdXRPYmplY3QiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkZvcm1h
dCBpbnZhbGlkIEpTT04gZHVlIHRvIGxpdGVyYWwga2V5cywgYnV0IGl0IGNhbiBiZSBldmFsdWF0
ZWQgYXMgYSB2YWxpZCBKYXZhU2NyaXB0IE9iamVjdCIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZl
LCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIGxldCBpbnZhbGlkSlNPTiA9IGB7YToxMjMsYjpb
MSwyLDNdLGM6e2Q6ImUifX1gOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkpTT046
ICIgKyBkb3VibGVRdW90ZWRTdHJpbmcoaW52YWxpZEpTT04pKTsKKyAgICAgICAgICAgIGVuc3Vy
ZUpTT04oaW52YWxpZEpTT04sICJpbnZhbGlkIik7CisgICAgICAgICAgICBlbnN1cmVFdmFsKGlu
dmFsaWRKU09OLCAib2JqZWN0Iik7CisgICAgICAgICAgICB3b3JrZXJQcm94eS5mb3JtYXRKYXZh
U2NyaXB0KGludmFsaWRKU09OLCBpbmRlbnRTdHJpbmcsICh7Zm9ybWF0dGVkVGV4dCwgc291cmNl
TWFwRGF0YX0pID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRk9STUFU
VEVEOiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGZvcm1hdHRlZFRleHQp
OworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJFc3By
aW1hRm9ybWF0dGVyLkludmFsaWRXaXRoQ29tbWVudHMiLAorICAgICAgICBkZXNjcmlwdGlvbjog
IkZvcm1hdCBpbnZhbGlkIEpTT04gZHVlIHRvIGNvbW1lbnRzLCBidXQgaXQgY2FuIGJlIGV2YWx1
YXRlZCBhcyBhIHZhbGlkIEphdmFTY3JpcHQgT2JqZWN0IiwKKyAgICAgICAgdGVzdDogKHJlc29s
dmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgbGV0IGludmFsaWRKU09OID0gSlNPTi5zdHJp
bmdpZnkoeyJhIjoxMjMsImIiOlsxLDIsM10sImMiOnsiZCI6ImUifX0pICsgIi8qQ29tbWVudCov
IjsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJKU09OOiAiICsgZG91YmxlUXVvdGVk
U3RyaW5nKGludmFsaWRKU09OKSk7CisgICAgICAgICAgICBlbnN1cmVKU09OKGludmFsaWRKU09O
LCAiaW52YWxpZCIpOworICAgICAgICAgICAgZW5zdXJlRXZhbChpbnZhbGlkSlNPTiwgIm9iamVj
dCIpOworICAgICAgICAgICAgd29ya2VyUHJveHkuZm9ybWF0SmF2YVNjcmlwdChpbnZhbGlkSlNP
TiwgaW5kZW50U3RyaW5nLCAoe2Zvcm1hdHRlZFRleHQsIHNvdXJjZU1hcERhdGF9KSA9PiB7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZPUk1BVFRFRDoiKTsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhmb3JtYXR0ZWRUZXh0KTsKKyAgICAgICAgICAgICAg
ICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRXNwcmltYUZvcm1hdHRlci5JbnZh
bGlkIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJGb3JtYXQgaW52YWxpZCBKU09OLCB0aGF0IGlz
IG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgT2JqZWN0IiwKKyAgICAgICAgdGVzdDogKHJlc29sdmUs
IHJlamVjdCkgPT4geworICAgICAgICAgICAgbGV0IGludmFsaWQgPSBge2E6MSBiOjJ9YDsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJJTlBVVDogIiArIGRvdWJsZVF1b3RlZFN0cmlu
ZyhpbnZhbGlkKSk7CisgICAgICAgICAgICBlbnN1cmVKU09OKGludmFsaWQsICJpbnZhbGlkIik7
CisgICAgICAgICAgICBlbnN1cmVFdmFsKGludmFsaWQsICJiYWQiKTsKKyAgICAgICAgICAgIHdv
cmtlclByb3h5LmZvcm1hdEphdmFTY3JpcHQoaW52YWxpZCwgaW5kZW50U3RyaW5nLCAoe2Zvcm1h
dHRlZFRleHQsIHNvdXJjZU1hcERhdGF9KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUaGF0KGZvcm1hdHRlZFRleHQgPT09IG51bGwsICJSZXNwb25zZSBzaG91bGQg
YmUgbnVsbC4iKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRl
c3QgSlNPTiBmb3JtYXR0aW5nIHRlc3RzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCmluZGV4IGU4ODRkNmQuLjRiYjY2MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA3LTA3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNv
cmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvciwgcmVncmVzc2lvbjogSlMv
SlNPTiBwcmV0dHktcHJpbnRpbmcgc3BvcmFkaWNhbGx5IGJyb2tlbiBpbiBTVFA4CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk1MTEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzI3MjE4NDM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9Gb3Jt
YXR0ZXJXb3JrZXIuanM6CisgICAgICAgIChGb3JtYXR0ZXJXb3JrZXIucHJvdG90eXBlLmZvcm1h
dEphdmFTY3JpcHQpOgorICAgICAgICBBdHRlbXB0IHRvIGZvcm1hdCBpbnZhbGlkIEpTT04gdGhh
dCBjYW4gYmUgZXZhbHVhdGVkIHRvIGFuIG9iamVjdC4KKwogMjAxNi0wNy0wNiAgSm9zZXBoIFBl
Y29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNv
bWV0aW1lcyByZWxvYWRpbmcgYSBwYWdlIHdpdGggbWFpbiByZXNvdXJjZSBzZWxlY3RlZCB3aWxs
IHNob3cgYW4gZW1wdHkgY29udGVudCB2aWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9Gb3JtYXR0ZXJXb3JrZXIuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9G
b3JtYXR0ZXJXb3JrZXIuanMKaW5kZXggNGY5MDY3Yi4uZjZmOWM5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0ZXIvRm9ybWF0
dGVyV29ya2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dv
cmtlcnMvRm9ybWF0dGVyL0Zvcm1hdHRlcldvcmtlci5qcwpAQCAtNDIsNiArNDIsNyBAQCBGb3Jt
YXR0ZXJXb3JrZXIgPSBjbGFzcyBGb3JtYXR0ZXJXb3JrZXIKIAogICAgIGZvcm1hdEphdmFTY3Jp
cHQoc291cmNlVGV4dCwgaW5kZW50U3RyaW5nLCBpbmNsdWRlU291cmNlTWFwRGF0YSkKICAgICB7
CisgICAgICAgIC8vIEZvcm1hdCBhIEphdmFTY3JpcHQgcHJvZ3JhbS4KICAgICAgICAgbGV0IGZv
cm1hdHRlciA9IG5ldyBFc3ByaW1hRm9ybWF0dGVyKHNvdXJjZVRleHQsIGluZGVudFN0cmluZyk7
CiAgICAgICAgIGlmIChmb3JtYXR0ZXIuc3VjY2VzcykgewogICAgICAgICAgICAgbGV0IHJlc3Vs
dCA9IHtmb3JtYXR0ZWRUZXh0OiBmb3JtYXR0ZXIuZm9ybWF0dGVkVGV4dH07CkBAIC01Niw2ICs1
Nyw3IEBAIEZvcm1hdHRlcldvcmtlciA9IGNsYXNzIEZvcm1hdHRlcldvcmtlcgogICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogCisgICAgICAgIC8vIEZvcm1hdCB2YWxpZCBK
U09OLgogICAgICAgICAvLyBUaGUgZm9ybWF0dGVyIGNvdWxkIGZhaWwgaWYgdGhpcyB3YXMganVz
dCBhIEpTT04gc3RyaW5nLiBTbyB0cnkgYSBKU09OLnBhcnNlIGFuZCBzdHJpbmdpZnkuCiAgICAg
ICAgIC8vIFRoaXMgd2lsbCBwcm9kdWNlIGVtcHR5IHNvdXJjZSBtYXAgZGF0YSwgYnV0IGl0IGlz
IG5vdCBjb2RlLCBzbyBpdCBpcyBub3QgYXMgaW1wb3J0YW50LgogICAgICAgICB0cnkgewpAQCAt
NjYsNiArNjgsMjAgQEAgRm9ybWF0dGVyV29ya2VyID0gY2xhc3MgRm9ybWF0dGVyV29ya2VyCiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9IGNhdGNoIChlKSB7fQogCisgICAg
ICAgIC8vIEZvcm1hdCBpbnZhbGlkIEpTT04uCisgICAgICAgIC8vIFNvbWUgYXBwbGljYXRpb25z
IGRvIG5vdCB1c2UgSlNPTi5wYXJzZSBidXQgZXZhbCBvbiBKU09OIGNvbnRlbnQuIFRoYXQgaXMg
bW9yZSBwZXJtaXNzaXZlCisgICAgICAgIC8vIHNvIHRyeSB0byBmb3JtYXQgaW52YWxpZCBKU09O
LiBBZ2FpbiBubyBzb3VyY2UgbWFwIGRhdGEgc2luY2UgaXQgaXMgbm90IGNvZGUuCisgICAgICAg
IGlmICgvXlxzKlx7Ly50ZXN0KHNvdXJjZVRleHQpKSB7CisgICAgICAgICAgICBsZXQgaW52YWxp
ZEpTT05Gb3JtYXR0ZXIgPSBuZXcgRXNwcmltYUZvcm1hdHRlcigiKCIgKyBzb3VyY2VUZXh0ICsg
IikiLCBpbmRlbnRTdHJpbmcpOworICAgICAgICAgICAgaWYgKGludmFsaWRKU09ORm9ybWF0dGVy
LnN1Y2Nlc3MpIHsKKyAgICAgICAgICAgICAgICBsZXQgZm9ybWF0dGVkVGV4dFdpdGhQYXJlbnMg
PSBpbnZhbGlkSlNPTkZvcm1hdHRlci5mb3JtYXR0ZWRUZXh0OworICAgICAgICAgICAgICAgIGxl
dCByZXN1bHQgPSB7Zm9ybWF0dGVkVGV4dDogZm9ybWF0dGVkVGV4dFdpdGhQYXJlbnMuc3Vic3Ry
aW5nKDEsIGZvcm1hdHRlZFRleHRXaXRoUGFyZW5zLmxlbmd0aCAtIDIpfTsgLy8gUmVtb3ZlICIo
IiBhbmQgIilcbiIuCisgICAgICAgICAgICAgICAgaWYgKGluY2x1ZGVTb3VyY2VNYXBEYXRhKQor
ICAgICAgICAgICAgICAgICAgICByZXN1bHQuc291cmNlTWFwRGF0YSA9IHttYXBwaW5nOiB7b3Jp
Z2luYWw6IFtdLCBmb3JtYXR0ZWQ6IFtdfSwgb3JpZ2luYWxMaW5lRW5kaW5nczpbXSwgZm9ybWF0
dGVkTGluZUVuZGluZ3M6IFtdfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgcmV0dXJuIHtmb3JtYXR0ZWRUZXh0OiBu
dWxsfTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283044</attachid>
            <date>2016-07-07 13:51:45 -0700</date>
            <delta_ts>2016-07-07 14:28:46 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>v2.patch</filename>
            <type>text/plain</type>
            <size>10339</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNTMwY2QxLi4yMmM1NGI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDct
MDcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yLCByZWdyZXNzaW9uOiBKUy9KU09OIHByZXR0eS1wcmludGluZyBzcG9yYWRpY2Fs
bHkgYnJva2VuIGluIFNUUDgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1OTUxMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjcyMTg0MzU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
Zm9ybWF0dGluZy9mb3JtYXR0aW5nLWpzb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZm9ybWF0dGluZy9mb3JtYXR0aW5nLWpzb24uaHRtbDogQWRkZWQuCisKIDIw
MTYtMDctMDYgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAg
Q29ycmVjdCBhIHR5cG8gaW4gdGhlIE1hYyBUZXN0RXhwZWN0YXRpb25zIGZpbGUuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9mb3JtYXR0aW5nLWphdmFzY3Jp
cHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvZm9ybWF0
dGluZy1qYXZhc2NyaXB0LWV4cGVjdGVkLnR4dAppbmRleCAzN2RlZTQ1Li40YjZkNWU3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9mb3JtYXR0aW5nLWphdmFz
Y3JpcHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5n
L2Zvcm1hdHRpbmctamF2YXNjcmlwdC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UZXN0
IEphdmFTY3JpcHQgZm9ybWF0dGluZyB0ZXN0cy4KK1Rlc3QgSmF2YVNjcmlwdCBmb3JtYXR0aW5n
LgogCiAKID09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogRXNwcmltYUZvcm1hdHRlci5KYXZhU2NyaXB0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9ybWF0dGluZy9mb3JtYXR0aW5n
LWphdmFzY3JpcHQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL2Zvcm1h
dHRpbmctamF2YXNjcmlwdC5odG1sCmluZGV4IDA1OGRkNGIuLmYwNmY3NWQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL2Zvcm1hdHRpbmctamF2YXNjcmlwdC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL2Zvcm1hdHRpbmctamF2
YXNjcmlwdC5odG1sCkBAIC00Miw2ICs0Miw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogPC9zY3JpcHQ+
CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0IEphdmFTY3JpcHQg
Zm9ybWF0dGluZyB0ZXN0cy48L3A+Cis8cD5UZXN0IEphdmFTY3JpcHQgZm9ybWF0dGluZy48L3A+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZm9y
bWF0dGluZy9mb3JtYXR0aW5nLWpzb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2Zvcm1hdHRpbmcvZm9ybWF0dGluZy1qc29uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmI1ODA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvZm9ybWF0dGluZy1qc29uLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDUzIEBACitUZXN0IEpTT04gZm9ybWF0dGluZy4KKworCis9PSBSdW5uaW5nIHRl
c3Qgc3VpdGU6IEVzcHJpbWFGb3JtYXR0ZXIuSlNPTgorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEVz
cHJpbWFGb3JtYXR0ZXIuVmFsaWRKU09OCitKU09OOiAie1wiYVwiOjEyMyxcImJcIjpbMSwyLDNd
LFwiY1wiOntcImRcIjpcImVcIn19IgorUEFTUzogSlNPTiBzaG91bGQgYmUgdmFsaWQuCitGT1JN
QVRURUQ6Cit7CisgICAgImEiOiAxMjMsCisgICAgImIiOiBbCisgICAgICAgIDEsCisgICAgICAg
IDIsCisgICAgICAgIDMKKyAgICBdLAorICAgICJjIjogeworICAgICAgICAiZCI6ICJlIgorICAg
IH0KK30KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEVzcHJpbWFGb3JtYXR0ZXIuSW52YWxpZEJ1
dE9iamVjdAorSlNPTjogInthOjEyMyxiOlsxLDIsM10sYzp7ZDpcImVcIn19IgorUEFTUzogSlNP
TiBzaG91bGQgYmUgaW52YWxpZC4KK1BBU1M6IFNob3VsZCBiZSBhYmxlIHRvIGJlIGV2YWx1YXRl
ZCB0byBhbiBvYmplY3QuCitGT1JNQVRURUQ6Cit7CisgICAgYTogMTIzLAorICAgIGI6IFsxLCAy
LCAzXSwKKyAgICBjOiB7CisgICAgICAgIGQ6ICJlIgorICAgIH0KK30KKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IEVzcHJpbWFGb3JtYXR0ZXIuSW52YWxpZFdpdGhDb21tZW50cworSlNPTjogIntc
ImFcIjoxMjMsXCJiXCI6WzEsMiwzXSxcImNcIjp7XCJkXCI6XCJlXCJ9fS8qQ29tbWVudCovIgor
UEFTUzogSlNPTiBzaG91bGQgYmUgaW52YWxpZC4KK1BBU1M6IFNob3VsZCBiZSBhYmxlIHRvIGJl
IGV2YWx1YXRlZCB0byBhbiBvYmplY3QuCitGT1JNQVRURUQ6Cit7CisgICAgImEiOiAxMjMsCisg
ICAgImIiOiBbMSwgMiwgM10sCisgICAgImMiOiB7CisgICAgICAgICJkIjogImUiCisgICAgfQor
fSAvKkNvbW1lbnQqLworCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBFc3ByaW1hRm9ybWF0dGVy
LkludmFsaWQKK0lOUFVUOiAie2E6MSBiOjJ9IgorUEFTUzogSlNPTiBzaG91bGQgYmUgaW52YWxp
ZC4KK1BBU1M6IFNob3VsZCBub3QgYmUgYWJsZSB0byBiZSBldmFsdWF0ZWQgdG8gYW4gb2JqZWN0
LgorUEFTUzogUmVzcG9uc2Ugc2hvdWxkIGJlIG51bGwuCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL2Zvcm1hdHRpbmctanNvbi5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Zvcm1hdHRpbmcvZm9ybWF0dGluZy1qc29uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGVkNWVjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9mb3JtYXR0aW5nL2Zvcm1hdHRpbmctanNvbi5odG1sCkBAIC0wLDAg
KzEsMTA5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBmdW5jdGlvbiBlbnN1
cmVKU09OKHN0cmluZywgZXhwZWN0YXRpb24pIHsKKyAgICAgICAgbGV0IGludmFsaWQgPSBmYWxz
ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEpTT04ucGFyc2Uoc3RyaW5nKTsKKyAgICAg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgaW52YWxpZCA9IHRydWU7CisgICAgICAgIH0K
KyAgICAgICAgaWYgKGV4cGVjdGF0aW9uID09PSAiaW52YWxpZCIpCisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQoaW52YWxpZCwgIkpTT04gc2hvdWxkIGJlIGludmFsaWQuIik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCghaW52
YWxpZCwgIkpTT04gc2hvdWxkIGJlIHZhbGlkLiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGVu
c3VyZUV2YWwoc3RyaW5nLCBleHBlY3RhdGlvbikgeworICAgICAgICBsZXQgaXNPYmplY3QgPSBm
YWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxldCByZXN1bHQgPSBldmFsKCIoIiAr
IHN0cmluZyArICIpIik7CisgICAgICAgICAgICBpc09iamVjdCA9IHR5cGVvZiByZXN1bHQgPT09
ICJvYmplY3QiOworICAgICAgICB9IGNhdGNoIChlKSB7fQorCisgICAgICAgIGlmIChleHBlY3Rh
dGlvbiA9PT0gIm9iamVjdCIpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
aXNPYmplY3QsICJTaG91bGQgYmUgYWJsZSB0byBiZSBldmFsdWF0ZWQgdG8gYW4gb2JqZWN0LiIp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIWlz
T2JqZWN0LCAiU2hvdWxkIG5vdCBiZSBhYmxlIHRvIGJlIGV2YWx1YXRlZCB0byBhbiBvYmplY3Qu
Iik7CisgICAgfQorCisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5j
U3VpdGUoIkVzcHJpbWFGb3JtYXR0ZXIuSlNPTiIpOworCisgICAgbGV0IGluZGVudFN0cmluZyA9
ICIgICAgIjsKKyAgICBsZXQgd29ya2VyUHJveHkgPSBXZWJJbnNwZWN0b3IuRm9ybWF0dGVyV29y
a2VyUHJveHkuc2luZ2xldG9uKCk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAg
IG5hbWU6ICJFc3ByaW1hRm9ybWF0dGVyLlZhbGlkSlNPTiIsCisgICAgICAgIGRlc2NyaXB0aW9u
OiAiRm9ybWF0IHZhbGlkIEpTT04iLAorICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9
PiB7CisgICAgICAgICAgICBsZXQgdmFsaWRKU09OID0gSlNPTi5zdHJpbmdpZnkoeyJhIjoxMjMs
ImIiOlsxLDIsM10sImMiOnsiZCI6ImUifX0pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkpTT046ICIgKyBkb3VibGVRdW90ZWRTdHJpbmcodmFsaWRKU09OKSk7CisgICAgICAgICAg
ICBlbnN1cmVKU09OKHZhbGlkSlNPTiwgInZhbGlkIik7CisgICAgICAgICAgICB3b3JrZXJQcm94
eS5mb3JtYXRKYXZhU2NyaXB0KHZhbGlkSlNPTiwgaW5kZW50U3RyaW5nLCAoe2Zvcm1hdHRlZFRl
eHQsIHNvdXJjZU1hcERhdGF9KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkZPUk1BVFRFRDoiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhmb3Jt
YXR0ZWRUZXh0KTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBu
YW1lOiAiRXNwcmltYUZvcm1hdHRlci5JbnZhbGlkQnV0T2JqZWN0IiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJGb3JtYXQgaW52YWxpZCBKU09OIGR1ZSB0byBsaXRlcmFsIGtleXMsIGJ1dCBpdCBj
YW4gYmUgZXZhbHVhdGVkIGFzIGEgdmFsaWQgSmF2YVNjcmlwdCBPYmplY3QiLAorICAgICAgICB0
ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICBsZXQgaW52YWxpZEpTT04g
PSBge2E6MTIzLGI6WzEsMiwzXSxjOntkOiJlIn19YDsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJKU09OOiAiICsgZG91YmxlUXVvdGVkU3RyaW5nKGludmFsaWRKU09OKSk7CisgICAg
ICAgICAgICBlbnN1cmVKU09OKGludmFsaWRKU09OLCAiaW52YWxpZCIpOworICAgICAgICAgICAg
ZW5zdXJlRXZhbChpbnZhbGlkSlNPTiwgIm9iamVjdCIpOworICAgICAgICAgICAgd29ya2VyUHJv
eHkuZm9ybWF0SmF2YVNjcmlwdChpbnZhbGlkSlNPTiwgaW5kZW50U3RyaW5nLCAoe2Zvcm1hdHRl
ZFRleHQsIHNvdXJjZU1hcERhdGF9KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkZPUk1BVFRFRDoiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhm
b3JtYXR0ZWRUZXh0KTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAg
ICBuYW1lOiAiRXNwcmltYUZvcm1hdHRlci5JbnZhbGlkV2l0aENvbW1lbnRzIiwKKyAgICAgICAg
ZGVzY3JpcHRpb246ICJGb3JtYXQgaW52YWxpZCBKU09OIGR1ZSB0byBjb21tZW50cywgYnV0IGl0
IGNhbiBiZSBldmFsdWF0ZWQgYXMgYSB2YWxpZCBKYXZhU2NyaXB0IE9iamVjdCIsCisgICAgICAg
IHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIGxldCBpbnZhbGlkSlNP
TiA9IEpTT04uc3RyaW5naWZ5KHsiYSI6MTIzLCJiIjpbMSwyLDNdLCJjIjp7ImQiOiJlIn19KSAr
ICIvKkNvbW1lbnQqLyI7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiSlNPTjogIiAr
IGRvdWJsZVF1b3RlZFN0cmluZyhpbnZhbGlkSlNPTikpOworICAgICAgICAgICAgZW5zdXJlSlNP
TihpbnZhbGlkSlNPTiwgImludmFsaWQiKTsKKyAgICAgICAgICAgIGVuc3VyZUV2YWwoaW52YWxp
ZEpTT04sICJvYmplY3QiKTsKKyAgICAgICAgICAgIHdvcmtlclByb3h5LmZvcm1hdEphdmFTY3Jp
cHQoaW52YWxpZEpTT04sIGluZGVudFN0cmluZywgKHtmb3JtYXR0ZWRUZXh0LCBzb3VyY2VNYXBE
YXRhfSkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGT1JNQVRURUQ6
Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coZm9ybWF0dGVkVGV4dCk7Cisg
ICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAg
ICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkVzcHJpbWFG
b3JtYXR0ZXIuSW52YWxpZCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiRm9ybWF0IGludmFsaWQg
SlNPTiwgdGhhdCBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE9iamVjdCIsCisgICAgICAgIHRl
c3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIGxldCBpbnZhbGlkID0gYHth
OjEgYjoyfWA7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiSU5QVVQ6ICIgKyBkb3Vi
bGVRdW90ZWRTdHJpbmcoaW52YWxpZCkpOworICAgICAgICAgICAgZW5zdXJlSlNPTihpbnZhbGlk
LCAiaW52YWxpZCIpOworICAgICAgICAgICAgZW5zdXJlRXZhbChpbnZhbGlkLCAiYmFkIik7Cisg
ICAgICAgICAgICB3b3JrZXJQcm94eS5mb3JtYXRKYXZhU2NyaXB0KGludmFsaWQsIGluZGVudFN0
cmluZywgKHtmb3JtYXR0ZWRUZXh0LCBzb3VyY2VNYXBEYXRhfSkgPT4geworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChmb3JtYXR0ZWRUZXh0ID09PSBudWxsLCAiUmVz
cG9uc2Ugc2hvdWxkIGJlIG51bGwuIik7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNl
c0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8cD5UZXN0IEpTT04gZm9ybWF0dGluZy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBlODg0ZDZkLi40YmI2NjM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNi0wNy0wNyAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3IsIHJlZ3Jlc3Np
b246IEpTL0pTT04gcHJldHR5LXByaW50aW5nIHNwb3JhZGljYWxseSBicm9rZW4gaW4gU1RQOAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTExCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNzIxODQzNT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0
ZXIvRm9ybWF0dGVyV29ya2VyLmpzOgorICAgICAgICAoRm9ybWF0dGVyV29ya2VyLnByb3RvdHlw
ZS5mb3JtYXRKYXZhU2NyaXB0KToKKyAgICAgICAgQXR0ZW1wdCB0byBmb3JtYXQgaW52YWxpZCBK
U09OIHRoYXQgY2FuIGJlIGV2YWx1YXRlZCB0byBhbiBvYmplY3QuCisKIDIwMTYtMDctMDYgIEpv
c2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBzb21ldGltZXMgcmVsb2FkaW5nIGEgcGFnZSB3aXRoIG1haW4gcmVzb3VyY2Ugc2VsZWN0
ZWQgd2lsbCBzaG93IGFuIGVtcHR5IGNvbnRlbnQgdmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0ZXIvRm9ybWF0dGVyV29y
a2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3Jt
YXR0ZXIvRm9ybWF0dGVyV29ya2VyLmpzCmluZGV4IDRmOTA2N2IuLmY2ZjljOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvRm9ybWF0dGVy
L0Zvcm1hdHRlcldvcmtlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Xb3JrZXJzL0Zvcm1hdHRlci9Gb3JtYXR0ZXJXb3JrZXIuanMKQEAgLTQyLDYgKzQyLDcg
QEAgRm9ybWF0dGVyV29ya2VyID0gY2xhc3MgRm9ybWF0dGVyV29ya2VyCiAKICAgICBmb3JtYXRK
YXZhU2NyaXB0KHNvdXJjZVRleHQsIGluZGVudFN0cmluZywgaW5jbHVkZVNvdXJjZU1hcERhdGEp
CiAgICAgeworICAgICAgICAvLyBGb3JtYXQgYSBKYXZhU2NyaXB0IHByb2dyYW0uCiAgICAgICAg
IGxldCBmb3JtYXR0ZXIgPSBuZXcgRXNwcmltYUZvcm1hdHRlcihzb3VyY2VUZXh0LCBpbmRlbnRT
dHJpbmcpOwogICAgICAgICBpZiAoZm9ybWF0dGVyLnN1Y2Nlc3MpIHsKICAgICAgICAgICAgIGxl
dCByZXN1bHQgPSB7Zm9ybWF0dGVkVGV4dDogZm9ybWF0dGVyLmZvcm1hdHRlZFRleHR9OwpAQCAt
NTYsNiArNTcsNyBAQCBGb3JtYXR0ZXJXb3JrZXIgPSBjbGFzcyBGb3JtYXR0ZXJXb3JrZXIKICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KIAorICAgICAgICAvLyBGb3JtYXQg
dmFsaWQgSlNPTi4KICAgICAgICAgLy8gVGhlIGZvcm1hdHRlciBjb3VsZCBmYWlsIGlmIHRoaXMg
d2FzIGp1c3QgYSBKU09OIHN0cmluZy4gU28gdHJ5IGEgSlNPTi5wYXJzZSBhbmQgc3RyaW5naWZ5
LgogICAgICAgICAvLyBUaGlzIHdpbGwgcHJvZHVjZSBlbXB0eSBzb3VyY2UgbWFwIGRhdGEsIGJ1
dCBpdCBpcyBub3QgY29kZSwgc28gaXQgaXMgbm90IGFzIGltcG9ydGFudC4KICAgICAgICAgdHJ5
IHsKQEAgLTY2LDYgKzY4LDIwIEBAIEZvcm1hdHRlcldvcmtlciA9IGNsYXNzIEZvcm1hdHRlcldv
cmtlcgogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfSBjYXRjaCAoZSkge30K
IAorICAgICAgICAvLyBGb3JtYXQgaW52YWxpZCBKU09OLgorICAgICAgICAvLyBTb21lIGFwcGxp
Y2F0aW9ucyBkbyBub3QgdXNlIEpTT04ucGFyc2UgYnV0IGV2YWwgb24gSlNPTiBjb250ZW50LiBU
aGF0IGlzIG1vcmUgcGVybWlzc2l2ZQorICAgICAgICAvLyBzbyB0cnkgdG8gZm9ybWF0IGludmFs
aWQgSlNPTi4gQWdhaW4gbm8gc291cmNlIG1hcCBkYXRhIHNpbmNlIGl0IGlzIG5vdCBjb2RlLgor
ICAgICAgICBpZiAoL15ccypcey8udGVzdChzb3VyY2VUZXh0KSkgeworICAgICAgICAgICAgbGV0
IGludmFsaWRKU09ORm9ybWF0dGVyID0gbmV3IEVzcHJpbWFGb3JtYXR0ZXIoIigiICsgc291cmNl
VGV4dCArICIpIiwgaW5kZW50U3RyaW5nKTsKKyAgICAgICAgICAgIGlmIChpbnZhbGlkSlNPTkZv
cm1hdHRlci5zdWNjZXNzKSB7CisgICAgICAgICAgICAgICAgbGV0IGZvcm1hdHRlZFRleHRXaXRo
UGFyZW5zID0gaW52YWxpZEpTT05Gb3JtYXR0ZXIuZm9ybWF0dGVkVGV4dDsKKyAgICAgICAgICAg
ICAgICBsZXQgcmVzdWx0ID0ge2Zvcm1hdHRlZFRleHQ6IGZvcm1hdHRlZFRleHRXaXRoUGFyZW5z
LnN1YnN0cmluZygxLCBmb3JtYXR0ZWRUZXh0V2l0aFBhcmVucy5sZW5ndGggLSAyKX07IC8vIFJl
bW92ZSAiKCIgYW5kICIpXG4iLgorICAgICAgICAgICAgICAgIGlmIChpbmNsdWRlU291cmNlTWFw
RGF0YSkKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNvdXJjZU1hcERhdGEgPSB7bWFwcGlu
Zzoge29yaWdpbmFsOiBbXSwgZm9ybWF0dGVkOiBbXX0sIG9yaWdpbmFsTGluZUVuZGluZ3M6W10s
IGZvcm1hdHRlZExpbmVFbmRpbmdzOiBbXX07CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIHJldHVybiB7Zm9ybWF0dGVk
VGV4dDogbnVsbH07CiAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>