<?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>40500</bug_id>
          
          <creation_ts>2010-06-11 15:03:20 -0700</creation_ts>
          <short_desc>Web Inspector: Should not expose window.console._inspectorCommandLineAPI to the web</short_desc>
          <delta_ts>2010-06-15 04:38:30 -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 (Deprecated)</component>
          <version>528+ (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>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>237053</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-06-11 15:03:20 -0700</bug_when>
    <thetext>The WebInspector should not be exposing window.console._inspectorCommandLineAPI to the web.  We only want to expose APIs we want people to use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237054</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-06-11 15:03:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/8085287&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237257</commentid>
    <comment_count>2</comment_count>
      <attachid>58544</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-06-12 00:44:40 -0700</bug_when>
    <thetext>Created attachment 58544
[PATCH] Proposed fix.

- I see no solution other than adding a reference to the API for the time of evaluation;
- also refactored code in a way that console API is defined using prototype, not the legacy string literal;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238022</commentid>
    <comment_count>3</comment_count>
      <attachid>58544</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-06-14 13:44:35 -0700</bug_when>
    <thetext>Comment on attachment 58544
[PATCH] Proposed fix.

&gt; WebCore/inspector/front-end/InjectedScript.js
&gt;  InjectedScript._evaluateOn = function(evalFunction, object, expression, dontUseCommandLineAPI)

I know you are just leaving this alone, but I think this would
read much better if the last argument was just &quot;useCommandLineAPI&quot;.
Since you are making changes to this part specifically, if you
agree it would be nice to update it! I try to avoid double
negatives &quot;! dontDoSomething&quot;.



&gt; +    if (!dontUseCommandLineAPI)
&gt; +        delete inspectedWindow.console._commandLineAPI;

We discussed this. Its not strong enough to plug the hole,
but it removes its face from generic web scripts.


&gt; +            while (node = results.iterateNext()) nodes.push(node);

NIT: Style, move nodes.push to the next line.


&gt; +        inspectedWindow.console.log(object);

Can this just be console.log(object)?


&gt; +        if (InjectedScript._type(object) === &quot;node&quot;) {
&gt; +            InjectedScriptHost.pushNodePathToFrontend(object, false, true);
&gt; +        } else {

NIT: Style, braces.


&gt; +    get $0()
&gt; +    get $1()
&gt; +    get $2()
&gt; +    get $3()
&gt; +    get $4()

I think these are much clearer when they are on oneline,
like they used to be. Sometimes style rules are meant
to be broken!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238326</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-06-15 04:37:46 -0700</bug_when>
    <thetext>
&gt; I know you are just leaving this alone, but I think this would
&gt; read much better if the last argument was just &quot;useCommandLineAPI&quot;.
&gt; Since you are making changes to this part specifically, if you
&gt; agree it would be nice to update it! I try to avoid double
&gt; negatives &quot;! dontDoSomething&quot;.

That would change the default behavior (when parameter is not specified).

&gt; &gt; +            while (node = results.iterateNext()) nodes.push(node);
&gt; 
&gt; NIT: Style, move nodes.push to the next line.

Done.

&gt; &gt; +        inspectedWindow.console.log(object);
&gt; 
&gt; Can this just be console.log(object)?
&gt;

We should access window using the variable given in closure so that the current global object was not &apos;detected&apos;. It would probably work in this case, but I left it for consistency.

&gt; &gt; +        if (InjectedScript._type(object) === &quot;node&quot;) {
&gt; &gt; +            InjectedScriptHost.pushNodePathToFrontend(object, false, true);
&gt; &gt; +        } else {
&gt; 
&gt; NIT: Style, braces.

Done.

&gt; &gt; +    get $0()
&gt; &gt; +    get $1()
&gt; &gt; +    get $2()
&gt; &gt; +    get $3()
&gt; &gt; +    get $4()
&gt; 
&gt; I think these are much clearer when they are on oneline,
&gt; like they used to be. Sometimes style rules are meant
&gt; to be broken!

I&apos;ve been respecting the style in places that were suffering from it much more than this one, so I&apos;d stick to it. Again, violating the style would give you an option of commenting on it in the review. Obviously not an argument in this case since you anyway commented :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238328</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-06-15 04:38:30 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/inspector/front-end/InjectedScript.js
Committed r61181</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58544</attachid>
            <date>2010-06-12 00:44:40 -0700</date>
            <delta_ts>2010-06-14 13:44:34 -0700</delta_ts>
            <desc>[PATCH] Proposed fix.</desc>
            <filename>console_api</filename>
            <type>text/plain</type>
            <size>13895</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
M2ZjNjEzZC4uYjIyOGM3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNi0xMiAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBTaG91bGQgbm90IGV4cG9zZSB3aW5k
b3cuY29uc29sZS5faW5zcGVjdG9yQ29tbWFuZExpbmVBUEkgdG8gdGhlIHdlYi4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA1MDAKKworICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanM6CisgICAgICAgIChpbmpl
Y3RlZFNjcmlwdENvbnN0cnVjdG9yKToKKyAgICAgICAgKGluamVjdGVkU2NyaXB0Q29uc3RydWN0
b3IuKToKKwogMjAxMC0wNi0xMSAgQWxleGVuZGFyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0LmpzIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0LmpzCmluZGV4IGU2MmE5MTYuLjZmNTYy
NmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlw
dC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMK
QEAgLTgzLDYgKzgzLDcgQEAgSW5qZWN0ZWRTY3JpcHQucmVsZWFzZVdyYXBwZXJPYmplY3RHcm91
cCA9IGZ1bmN0aW9uKG9iamVjdEdyb3VwTmFtZSkgewogLy8gQ2FsbGVkIGZyb20gd2l0aGluIElu
c3BlY3RvckNvbnRyb2xsZXIgb24gdGhlICdpbnNwZWN0ZWQgcGFnZScgc2lkZS4KIEluamVjdGVk
U2NyaXB0LnJlc2V0ID0gZnVuY3Rpb24oKQogeworICAgIEluamVjdGVkU2NyaXB0Ll9pbnNwZWN0
ZWROb2RlcyA9IFtdOwogfQogCiBJbmplY3RlZFNjcmlwdC5yZXNldCgpOwpAQCAtMjgxLDE0ICsy
ODIsMTUgQEAgSW5qZWN0ZWRTY3JpcHQuZ2V0Q29tcGxldGlvbnMgPSBmdW5jdGlvbihleHByZXNz
aW9uLCBpbmNsdWRlSW5zcGVjdG9yQ29tbWFuZExpbmUKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIGlmICghZXhwcmVzc2lvbikKICAgICAgICAgICAgICAgICBleHByZXNzaW9uID0gInRo
aXMiOwotICAgICAgICAgICAgZXhwcmVzc2lvblJlc3VsdCA9IEluamVjdGVkU2NyaXB0Ll9ldmFs
dWF0ZU9uKGluc3BlY3RlZFdpbmRvdy5ldmFsLCBpbnNwZWN0ZWRXaW5kb3csIGV4cHJlc3Npb24p
OworICAgICAgICAgICAgZXhwcmVzc2lvblJlc3VsdCA9IEluamVjdGVkU2NyaXB0Ll9ldmFsdWF0
ZU9uKGluc3BlY3RlZFdpbmRvdy5ldmFsLCBpbnNwZWN0ZWRXaW5kb3csIGV4cHJlc3Npb24sIGZh
bHNlKTsKICAgICAgICAgfQogICAgICAgICBpZiAodHlwZW9mIGV4cHJlc3Npb25SZXN1bHQgPT0g
Im9iamVjdCIpCiAgICAgICAgICAgICBJbmplY3RlZFNjcmlwdC5fcG9wdWxhdGVQcm9wZXJ0eU5h
bWVzKGV4cHJlc3Npb25SZXN1bHQsIHByb3BzKTsKLSAgICAgICAgaWYgKGluY2x1ZGVJbnNwZWN0
b3JDb21tYW5kTGluZUFQSSkKLSAgICAgICAgICAgIGZvciAodmFyIHByb3AgaW4gaW5zcGVjdGVk
V2luZG93LmNvbnNvbGUuX2luc3BlY3RvckNvbW1hbmRMaW5lQVBJKQotICAgICAgICAgICAgICAg
IGlmIChwcm9wLmNoYXJBdCgwKSAhPT0gJ18nKQotICAgICAgICAgICAgICAgICAgICBwcm9wc1tw
cm9wXSA9IHRydWU7CisKKyAgICAgICAgaWYgKGluY2x1ZGVJbnNwZWN0b3JDb21tYW5kTGluZUFQ
SSkgeworICAgICAgICAgICAgZm9yICh2YXIgcHJvcCBpbiBJbmplY3RlZFNjcmlwdC5fY29tbWFu
ZExpbmVBUEkpCisgICAgICAgICAgICAgICAgcHJvcHNbcHJvcF0gPSB0cnVlOworICAgICAgICB9
CiAgICAgfSBjYXRjaChlKSB7CiAgICAgfQogICAgIHJldHVybiBwcm9wczsKQEAgLTMxOSwxNCAr
MzIxLDIxIEBAIEluamVjdGVkU2NyaXB0Ll9ldmFsdWF0ZUFuZFdyYXAgPSBmdW5jdGlvbihldmFs
RnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lvbiwgb2JqCiAKIEluamVjdGVkU2NyaXB0Ll9ldmFs
dWF0ZU9uID0gZnVuY3Rpb24oZXZhbEZ1bmN0aW9uLCBvYmplY3QsIGV4cHJlc3Npb24sIGRvbnRV
c2VDb21tYW5kTGluZUFQSSkKIHsKLSAgICBJbmplY3RlZFNjcmlwdC5fZW5zdXJlQ29tbWFuZExp
bmVBUElJbnN0YWxsZWQoZXZhbEZ1bmN0aW9uLCBvYmplY3QpOwotICAgIC8vIFN1cnJvdW5kIHRo
ZSBleHByZXNzaW9uIGluIHdpdGggc3RhdGVtZW50cyB0byBpbmplY3Qgb3VyIGNvbW1hbmQgbGlu
ZSBBUEkgc28gdGhhdAotICAgIC8vIHRoZSB3aW5kb3cgb2JqZWN0IHByb3BlcnRpZXMgc3RpbGwg
dGFrZSBtb3JlIHByZWNlZGVudCB0aGFuIG91ciBBUEkgZnVuY3Rpb25zLgotICAgIGlmICghZG9u
dFVzZUNvbW1hbmRMaW5lQVBJKQotICAgICAgICBleHByZXNzaW9uID0gIndpdGggKHdpbmRvdy5j
b25zb2xlLl9pbnNwZWN0b3JDb21tYW5kTGluZUFQSSkgeyB3aXRoICh3aW5kb3cpIHtcbiIgKyBl
eHByZXNzaW9uICsgIlxufSB9IjsKKyAgICBpZiAoIWRvbnRVc2VDb21tYW5kTGluZUFQSSkgewor
ICAgICAgICAvLyBPbmx5IGluc3RhbGwgY29tbWFuZCBsaW5lIGFwaSBvYmplY3QgZm9yIHRoZSB0
aW1lIG9mIGV2YWx1YXRpb24uCisKKyAgICAgICAgLy8gU3Vycm91bmQgdGhlIGV4cHJlc3Npb24g
aW4gd2l0aCBzdGF0ZW1lbnRzIHRvIGluamVjdCBvdXIgY29tbWFuZCBsaW5lIEFQSSBzbyB0aGF0
CisgICAgICAgIC8vIHRoZSB3aW5kb3cgb2JqZWN0IHByb3BlcnRpZXMgc3RpbGwgdGFrZSBtb3Jl
IHByZWNlZGVudCB0aGFuIG91ciBBUEkgZnVuY3Rpb25zLgorICAgICAgICBpbnNwZWN0ZWRXaW5k
b3cuY29uc29sZS5fY29tbWFuZExpbmVBUEkgPSBJbmplY3RlZFNjcmlwdC5fY29tbWFuZExpbmVB
UEk7CisKKyAgICAgICAgZXhwcmVzc2lvbiA9ICJ3aXRoICh3aW5kb3cuY29uc29sZS5fY29tbWFu
ZExpbmVBUEkpIHsgd2l0aCAod2luZG93KSB7XG4iICsgZXhwcmVzc2lvbiArICJcbn0gfSI7Cisg
ICAgfQogCiAgICAgdmFyIHZhbHVlID0gZXZhbEZ1bmN0aW9uLmNhbGwob2JqZWN0LCBleHByZXNz
aW9uKTsKIAorICAgIGlmICghZG9udFVzZUNvbW1hbmRMaW5lQVBJKQorICAgICAgICBkZWxldGUg
aW5zcGVjdGVkV2luZG93LmNvbnNvbGUuX2NvbW1hbmRMaW5lQVBJOworCiAgICAgLy8gV2hlbiBl
dmFsdWF0aW5nIG9uIGNhbGwgZnJhbWUgZXJyb3IgaXMgbm90IHRocm93biwgYnV0IHJldHVybmVk
IGFzIGEgdmFsdWUuCiAgICAgaWYgKEluamVjdGVkU2NyaXB0Ll90eXBlKHZhbHVlKSA9PT0gImVy
cm9yIikKICAgICAgICAgdGhyb3cgdmFsdWUudG9TdHJpbmcoKTsKQEAgLTM0MCw4ICszNDksNyBA
QCBJbmplY3RlZFNjcmlwdC5hZGRJbnNwZWN0ZWROb2RlID0gZnVuY3Rpb24obm9kZUlkKQogICAg
IGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgSW5qZWN0ZWRTY3JpcHQu
X2Vuc3VyZUNvbW1hbmRMaW5lQVBJSW5zdGFsbGVkKGluc3BlY3RlZFdpbmRvdy5ldmFsLCBpbnNw
ZWN0ZWRXaW5kb3cpOwotICAgIHZhciBpbnNwZWN0ZWROb2RlcyA9IGluc3BlY3RlZFdpbmRvdy5j
b25zb2xlLl9pbnNwZWN0b3JDb21tYW5kTGluZUFQSS5faW5zcGVjdGVkTm9kZXM7CisgICAgdmFy
IGluc3BlY3RlZE5vZGVzID0gSW5qZWN0ZWRTY3JpcHQuX2luc3BlY3RlZE5vZGVzOwogICAgIGlu
c3BlY3RlZE5vZGVzLnVuc2hpZnQobm9kZSk7CiAgICAgaWYgKGluc3BlY3RlZE5vZGVzLmxlbmd0
aCA+PSA1KQogICAgICAgICBpbnNwZWN0ZWROb2Rlcy5wb3AoKTsKQEAgLTM5OCwxMTQgKzQwNiw2
IEBAIEluamVjdGVkU2NyaXB0LmNsZWFyQ29uc29sZU1lc3NhZ2VzID0gZnVuY3Rpb24oKQogICAg
IHJldHVybiB0cnVlOwogfQogCi1JbmplY3RlZFNjcmlwdC5faW5zcGVjdE9iamVjdCA9IGZ1bmN0
aW9uKG8pCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGluc3BlY3RlZFdpbmRvdy5jb25zb2xlLmxvZyhvKTsKLSAgICBpZiAoSW5qZWN0
ZWRTY3JpcHQuX3R5cGUobykgPT09ICJub2RlIikgewotICAgICAgICBJbmplY3RlZFNjcmlwdEhv
c3QucHVzaE5vZGVQYXRoVG9Gcm9udGVuZChvLCBmYWxzZSwgdHJ1ZSk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgc3dpdGNoIChJbmplY3RlZFNjcmlwdC5fZGVzY3JpYmUobykpIHsKLSAgICAgICAg
ICAgIGNhc2UgIkRhdGFiYXNlIjoKLSAgICAgICAgICAgICAgICBJbmplY3RlZFNjcmlwdEhvc3Qu
c2VsZWN0RGF0YWJhc2Uobyk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBj
YXNlICJTdG9yYWdlIjoKLSAgICAgICAgICAgICAgICBJbmplY3RlZFNjcmlwdEhvc3Quc2VsZWN0
RE9NU3RvcmFnZShvKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0K
LX0KLQotSW5qZWN0ZWRTY3JpcHQuX2NvcHkgPSBmdW5jdGlvbihvKQotewotICAgIGlmIChJbmpl
Y3RlZFNjcmlwdC5fdHlwZShvKSA9PT0gIm5vZGUiKSB7Ci0gICAgICAgIHZhciBub2RlSWQgPSBJ
bmplY3RlZFNjcmlwdEhvc3QucHVzaE5vZGVQYXRoVG9Gcm9udGVuZChvLCBmYWxzZSwgZmFsc2Up
OwotICAgICAgICBJbmplY3RlZFNjcmlwdEhvc3QuY29weU5vZGUobm9kZUlkKTsKLSAgICB9IGVs
c2UgewotICAgICAgICBJbmplY3RlZFNjcmlwdEhvc3QuY29weVRleHQobyk7Ci0gICAgfQotfQot
Ci1JbmplY3RlZFNjcmlwdC5fZW5zdXJlQ29tbWFuZExpbmVBUElJbnN0YWxsZWQgPSBmdW5jdGlv
bihldmFsRnVuY3Rpb24sIGV2YWxPYmplY3QpCi17Ci0gICAgaWYgKGV2YWxGdW5jdGlvbi5jYWxs
KGV2YWxPYmplY3QsICJ3aW5kb3cuY29uc29sZS5faW5zcGVjdG9yQ29tbWFuZExpbmVBUEkiKSkK
LSAgICAgICAgcmV0dXJuOwotICAgIHZhciBpbnNwZWN0b3JDb21tYW5kTGluZUFQSSA9IGV2YWxG
dW5jdGlvbi5jYWxsKGV2YWxPYmplY3QsICJ3aW5kb3cuY29uc29sZS5faW5zcGVjdG9yQ29tbWFu
ZExpbmVBUEkgPSB7IFxuXAotICAgICAgICAkOiBmdW5jdGlvbigpIHsgcmV0dXJuIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkLmFwcGx5KGRvY3VtZW50LCBhcmd1bWVudHMpIH0sIFxuXAotICAgICAg
ICAkJDogZnVuY3Rpb24oKSB7IHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsLmFwcGx5
KGRvY3VtZW50LCBhcmd1bWVudHMpIH0sIFxuXAotICAgICAgICAkeDogZnVuY3Rpb24oeHBhdGgs
IGNvbnRleHQpIFxuXAotICAgICAgICB7IFxuXAotICAgICAgICAgICAgdmFyIG5vZGVzID0gW107
IFxuXAotICAgICAgICAgICAgdHJ5IHsgXG5cCi0gICAgICAgICAgICAgICAgdmFyIGRvYyA9IGNv
bnRleHQgfHwgZG9jdW1lbnQ7IFxuXAotICAgICAgICAgICAgICAgIHZhciByZXN1bHRzID0gZG9j
LmV2YWx1YXRlKHhwYXRoLCBkb2MsIG51bGwsIFhQYXRoUmVzdWx0LkFOWV9UWVBFLCBudWxsKTsg
XG5cCi0gICAgICAgICAgICAgICAgdmFyIG5vZGU7IFxuXAotICAgICAgICAgICAgICAgIHdoaWxl
IChub2RlID0gcmVzdWx0cy5pdGVyYXRlTmV4dCgpKSBub2Rlcy5wdXNoKG5vZGUpOyBcblwKLSAg
ICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9IFxuXAotICAgICAgICAgICAgcmV0dXJuIG5vZGVzOyBc
blwKLSAgICAgICAgfSwgXG5cCi0gICAgICAgIGRpcjogZnVuY3Rpb24oKSB7IHJldHVybiBjb25z
b2xlLmRpci5hcHBseShjb25zb2xlLCBhcmd1bWVudHMpIH0sIFxuXAotICAgICAgICBkaXJ4bWw6
IGZ1bmN0aW9uKCkgeyByZXR1cm4gY29uc29sZS5kaXJ4bWwuYXBwbHkoY29uc29sZSwgYXJndW1l
bnRzKSB9LCBcblwKLSAgICAgICAga2V5czogZnVuY3Rpb24obykgeyB2YXIgYSA9IFtdOyBmb3Ig
KHZhciBrIGluIG8pIGEucHVzaChrKTsgcmV0dXJuIGE7IH0sIFxuXAotICAgICAgICB2YWx1ZXM6
IGZ1bmN0aW9uKG8pIHsgdmFyIGEgPSBbXTsgZm9yICh2YXIgayBpbiBvKSBhLnB1c2gob1trXSk7
IHJldHVybiBhOyB9LCBcblwKLSAgICAgICAgcHJvZmlsZTogZnVuY3Rpb24oKSB7IHJldHVybiBj
b25zb2xlLnByb2ZpbGUuYXBwbHkoY29uc29sZSwgYXJndW1lbnRzKSB9LCBcblwKLSAgICAgICAg
cHJvZmlsZUVuZDogZnVuY3Rpb24oKSB7IHJldHVybiBjb25zb2xlLnByb2ZpbGVFbmQuYXBwbHko
Y29uc29sZSwgYXJndW1lbnRzKSB9LCBcblwKLSAgICAgICAgX2xvZ0V2ZW50OiBmdW5jdGlvbiBf
aW5zcGVjdG9yQ29tbWFuZExpbmVBUElfbG9nRXZlbnQoZSkgeyBjb25zb2xlLmxvZyhlLnR5cGUs
IGUpOyB9LCBcblwKLSAgICAgICAgX2FsbEV2ZW50VHlwZXM6IFtcIm1vdXNlXCIsIFwia2V5XCIs
IFwibG9hZFwiLCBcInVubG9hZFwiLCBcImFib3J0XCIsIFwiZXJyb3JcIiwgXG5cCi0gICAgICAg
ICAgICBcInNlbGVjdFwiLCBcImNoYW5nZVwiLCBcInN1Ym1pdFwiLCBcInJlc2V0XCIsIFwiZm9j
dXNcIiwgXCJibHVyXCIsIFxuXAotICAgICAgICAgICAgXCJyZXNpemVcIiwgXCJzY3JvbGxcIl0s
IFxuXAotICAgICAgICBfbm9ybWFsaXplRXZlbnRUeXBlczogZnVuY3Rpb24odCkgXG5cCi0gICAg
ICAgIHsgXG5cCi0gICAgICAgICAgICBpZiAodHlwZW9mIHQgPT09IFwidW5kZWZpbmVkXCIpIFxu
XAotICAgICAgICAgICAgICAgIHQgPSBjb25zb2xlLl9pbnNwZWN0b3JDb21tYW5kTGluZUFQSS5f
YWxsRXZlbnRUeXBlczsgXG5cCi0gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgdCA9PT0gXCJz
dHJpbmdcIikgXG5cCi0gICAgICAgICAgICAgICAgdCA9IFt0XTsgXG5cCi0gICAgICAgICAgICB2
YXIgaSwgdGUgPSBbXTsgXG5cCi0gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdC5sZW5ndGg7
IGkrKykgeyBcblwKLSAgICAgICAgICAgICAgICBpZiAodFtpXSA9PT0gXCJtb3VzZVwiKSBcblwK
LSAgICAgICAgICAgICAgICAgICAgdGUuc3BsaWNlKDAsIDAsIFwibW91c2Vkb3duXCIsIFwibW91
c2V1cFwiLCBcImNsaWNrXCIsIFwiZGJsY2xpY2tcIiwgXG5cCi0gICAgICAgICAgICAgICAgICAg
ICAgICBcIm1vdXNlbW92ZVwiLCBcIm1vdXNlb3ZlclwiLCBcIm1vdXNlb3V0XCIpOyBcblwKLSAg
ICAgICAgICAgICAgICBlbHNlIGlmICh0W2ldID09PSBcImtleVwiKSBcblwKLSAgICAgICAgICAg
ICAgICAgICAgdGUuc3BsaWNlKDAsIDAsIFwia2V5ZG93blwiLCBcImtleXVwXCIsIFwia2V5cHJl
c3NcIik7IFxuXAotICAgICAgICAgICAgICAgIGVsc2UgXG5cCi0gICAgICAgICAgICAgICAgICAg
IHRlLnB1c2godFtpXSk7IFxuXAotICAgICAgICAgICAgfSBcblwKLSAgICAgICAgICAgIHJldHVy
biB0ZTsgXG5cCi0gICAgICAgIH0sIFxuXAotICAgICAgICBtb25pdG9yRXZlbnRzOiBmdW5jdGlv
bihvLCB0KSBcblwKLSAgICAgICAgeyBcblwKLSAgICAgICAgICAgIGlmICghbyB8fCAhby5hZGRF
dmVudExpc3RlbmVyIHx8ICFvLnJlbW92ZUV2ZW50TGlzdGVuZXIpIFxuXAotICAgICAgICAgICAg
ICAgIHJldHVybjsgXG5cCi0gICAgICAgICAgICB0ID0gY29uc29sZS5faW5zcGVjdG9yQ29tbWFu
ZExpbmVBUEkuX25vcm1hbGl6ZUV2ZW50VHlwZXModCk7IFxuXAotICAgICAgICAgICAgZm9yIChp
ID0gMDsgaSA8IHQubGVuZ3RoOyBpKyspIHsgXG5cCi0gICAgICAgICAgICAgICAgby5yZW1vdmVF
dmVudExpc3RlbmVyKHRbaV0sIGNvbnNvbGUuX2luc3BlY3RvckNvbW1hbmRMaW5lQVBJLl9sb2dF
dmVudCwgZmFsc2UpOyBcblwKLSAgICAgICAgICAgICAgICBvLmFkZEV2ZW50TGlzdGVuZXIodFtp
XSwgY29uc29sZS5faW5zcGVjdG9yQ29tbWFuZExpbmVBUEkuX2xvZ0V2ZW50LCBmYWxzZSk7IFxu
XAotICAgICAgICAgICAgfSBcblwKLSAgICAgICAgfSwgXG5cCi0gICAgICAgIHVubW9uaXRvckV2
ZW50czogZnVuY3Rpb24obywgdCkgXG5cCi0gICAgICAgIHsgXG5cCi0gICAgICAgICAgICBpZiAo
IW8gfHwgIW8ucmVtb3ZlRXZlbnRMaXN0ZW5lcikgXG5cCi0gICAgICAgICAgICAgICAgcmV0dXJu
OyBcblwKLSAgICAgICAgICAgIHQgPSBjb25zb2xlLl9pbnNwZWN0b3JDb21tYW5kTGluZUFQSS5f
bm9ybWFsaXplRXZlbnRUeXBlcyh0KTsgXG5cCi0gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwg
dC5sZW5ndGg7IGkrKykgeyBcblwKLSAgICAgICAgICAgICAgICBvLnJlbW92ZUV2ZW50TGlzdGVu
ZXIodFtpXSwgY29uc29sZS5faW5zcGVjdG9yQ29tbWFuZExpbmVBUEkuX2xvZ0V2ZW50LCBmYWxz
ZSk7IFxuXAotICAgICAgICAgICAgfSBcblwKLSAgICAgICAgfSwgXG5cCi0gICAgICAgIF9pbnNw
ZWN0ZWROb2RlczogW10sIFxuXAotICAgICAgICBnZXQgJDAoKSB7IHJldHVybiBjb25zb2xlLl9p
bnNwZWN0b3JDb21tYW5kTGluZUFQSS5faW5zcGVjdGVkTm9kZXNbMF0gfSwgXG5cCi0gICAgICAg
IGdldCAkMSgpIHsgcmV0dXJuIGNvbnNvbGUuX2luc3BlY3RvckNvbW1hbmRMaW5lQVBJLl9pbnNw
ZWN0ZWROb2Rlc1sxXSB9LCBcblwKLSAgICAgICAgZ2V0ICQyKCkgeyByZXR1cm4gY29uc29sZS5f
aW5zcGVjdG9yQ29tbWFuZExpbmVBUEkuX2luc3BlY3RlZE5vZGVzWzJdIH0sIFxuXAotICAgICAg
ICBnZXQgJDMoKSB7IHJldHVybiBjb25zb2xlLl9pbnNwZWN0b3JDb21tYW5kTGluZUFQSS5faW5z
cGVjdGVkTm9kZXNbM10gfSwgXG5cCi0gICAgICAgIGdldCAkNCgpIHsgcmV0dXJuIGNvbnNvbGUu
X2luc3BlY3RvckNvbW1hbmRMaW5lQVBJLl9pbnNwZWN0ZWROb2Rlc1s0XSB9LCBcblwKLSAgICB9
OyIpOwotCi0gICAgaW5zcGVjdG9yQ29tbWFuZExpbmVBUEkuY2xlYXIgPSBJbmplY3RlZFNjcmlw
dC5jbGVhckNvbnNvbGVNZXNzYWdlczsKLSAgICBpbnNwZWN0b3JDb21tYW5kTGluZUFQSS5pbnNw
ZWN0ID0gSW5qZWN0ZWRTY3JpcHQuX2luc3BlY3RPYmplY3Q7Ci0gICAgaW5zcGVjdG9yQ29tbWFu
ZExpbmVBUEkuY29weSA9IEluamVjdGVkU2NyaXB0Ll9jb3B5OwotfQotCiBJbmplY3RlZFNjcmlw
dC5fcmVzb2x2ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVjdFByb3h5KQogewogICAgIHZhciBvYmpl
Y3QgPSBJbmplY3RlZFNjcmlwdC5fb2JqZWN0Rm9ySWQob2JqZWN0UHJveHkub2JqZWN0SWQpOwpA
QCAtNzg1LDUgKzY4NSwxNzQgQEAgSW5qZWN0ZWRTY3JpcHQuX2NsYXNzTmFtZSA9IGZ1bmN0aW9u
KG9iaikKICAgICB9CiB9CiAKK0luamVjdGVkU2NyaXB0Ll9sb2dFdmVudCA9IGZ1bmN0aW9uKGV2
ZW50KQoreworICAgIGNvbnNvbGUubG9nKGV2ZW50LnR5cGUsIGV2ZW50KTsKK30KKworSW5qZWN0
ZWRTY3JpcHQuX25vcm1hbGl6ZUV2ZW50VHlwZXMgPSBmdW5jdGlvbih0eXBlcykKK3sKKyAgICBp
ZiAodHlwZW9mIHR5cGVzID09PSAidW5kZWZpbmVkIikKKyAgICAgICAgdHlwZXMgPSBbICJtb3Vz
ZSIsICJrZXkiLCAibG9hZCIsICJ1bmxvYWQiLCAiYWJvcnQiLCAiZXJyb3IiLCAic2VsZWN0Iiwg
ImNoYW5nZSIsICJzdWJtaXQiLCAicmVzZXQiLCAiZm9jdXMiLCAiYmx1ciIsICJyZXNpemUiLCAi
c2Nyb2xsIiBdOworICAgIGVsc2UgaWYgKHR5cGVvZiB0eXBlcyA9PT0gInN0cmluZyIpCisgICAg
ICAgIHR5cGVzID0gWyB0eXBlcyBdOworCisgICAgdmFyIHJlc3VsdCA9IFtdOworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdHlwZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKHR5cGVzW2ld
ID09PSAibW91c2UiKQorICAgICAgICAgICAgcmVzdWx0LnNwbGljZSgwLCAwLCAibW91c2Vkb3du
IiwgIm1vdXNldXAiLCAiY2xpY2siLCAiZGJsY2xpY2siLCAibW91c2Vtb3ZlIiwgIm1vdXNlb3Zl
ciIsICJtb3VzZW91dCIpOworICAgICAgICBlbHNlIGlmICh0eXBlc1tpXSA9PT0gImtleSIpCisg
ICAgICAgICAgICByZXN1bHQuc3BsaWNlKDAsIDAsICJrZXlkb3duIiwgImtleXVwIiwgImtleXBy
ZXNzIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHR5cGVzW2ldKTsK
KyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK307CisKK2Z1bmN0aW9uIENvbW1hbmRMaW5lQVBJ
KCkKK3sKK30KKworQ29tbWFuZExpbmVBUEkucHJvdG90eXBlID0geworICAgIC8vIE9ubHkgYWRk
IEFQSSBmdW5jdGlvbnMgaGVyZSwgcHJpdmF0ZSBzdHVmZiBzaG91bGQgZ28gdG8KKyAgICAvLyBJ
bmplY3RlZFNjcmlwdCBzbyB0aGF0IGl0IGlzIG5vdCBzdWdnZXN0ZWQgYnkgdGhlIGNvbXBsZXRp
b24uCisgICAgJDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkLmFwcGx5KGRvY3VtZW50LCBhcmd1bWVudHMpCisgICAgfSwKKworICAgICQk
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbC5hcHBseShkb2N1bWVudCwgYXJndW1lbnRzKQorICAgIH0sCisKKyAgICAkeDogZnVuY3Rp
b24oeHBhdGgsIGNvbnRleHQpCisgICAgeworICAgICAgICB2YXIgbm9kZXMgPSBbXTsKKyAgICAg
ICAgdHJ5IHsKKyAgICAgICAgICAgIHZhciBkb2MgPSBjb250ZXh0IHx8IGRvY3VtZW50OworICAg
ICAgICAgICAgdmFyIHJlc3VsdHMgPSBkb2MuZXZhbHVhdGUoeHBhdGgsIGRvYywgbnVsbCwgWFBh
dGhSZXN1bHQuQU5ZX1RZUEUsIG51bGwpOworICAgICAgICAgICAgdmFyIG5vZGU7CisgICAgICAg
ICAgICB3aGlsZSAobm9kZSA9IHJlc3VsdHMuaXRlcmF0ZU5leHQoKSkgbm9kZXMucHVzaChub2Rl
KTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICB9CisgICAgICAgIHJldHVybiBub2Rl
czsKKyAgICB9LAorCisgICAgZGlyOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4g
Y29uc29sZS5kaXIuYXBwbHkoY29uc29sZSwgYXJndW1lbnRzKQorICAgIH0sCisKKyAgICBkaXJ4
bWw6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBjb25zb2xlLmRpcnhtbC5hcHBs
eShjb25zb2xlLCBhcmd1bWVudHMpCisgICAgfSwKKworICAgIGtleXM6IGZ1bmN0aW9uKG9iamVj
dCkKKyAgICB7CisgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmplY3QpOworICAgIH0sCisK
KyAgICB2YWx1ZXM6IGZ1bmN0aW9uKG9iamVjdCkKKyAgICB7CisgICAgICAgIHZhciByZXN1bHQg
PSBbXTsKKyAgICAgICAgZm9yICh2YXIga2V5IGluIG9iamVjdCkKKyAgICAgICAgICAgIHJlc3Vs
dC5wdXNoKG9iamVjdFtrZXldKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9LAorCisg
ICAgcHJvZmlsZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvbnNvbGUucHJv
ZmlsZS5hcHBseShjb25zb2xlLCBhcmd1bWVudHMpCisgICAgfSwKKworICAgIHByb2ZpbGVFbmQ6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBjb25zb2xlLnByb2ZpbGVFbmQuYXBw
bHkoY29uc29sZSwgYXJndW1lbnRzKQorICAgIH0sCisKKyAgICBtb25pdG9yRXZlbnRzOiBmdW5j
dGlvbihvYmplY3QsIHR5cGVzKQorICAgIHsKKyAgICAgICAgaWYgKCFvYmplY3QgfHwgIW9iamVj
dC5hZGRFdmVudExpc3RlbmVyIHx8ICFvYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcikKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgdHlwZXMgPSBJbmplY3RlZFNjcmlwdC5fbm9ybWFsaXpl
RXZlbnRUeXBlcyh0eXBlcyk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwZXMubGVu
Z3RoOyArK2kpIHsKKyAgICAgICAgICAgIG9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGVz
W2ldLCBJbmplY3RlZFNjcmlwdC5fbG9nRXZlbnQsIGZhbHNlKTsKKyAgICAgICAgICAgIG9iamVj
dC5hZGRFdmVudExpc3RlbmVyKHR5cGVzW2ldLCBJbmplY3RlZFNjcmlwdC5fbG9nRXZlbnQsIGZh
bHNlKTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICB1bm1vbml0b3JFdmVudHM6IGZ1bmN0aW9u
KG9iamVjdCwgdHlwZXMpCisgICAgeworICAgICAgICBpZiAoIW9iamVjdCB8fCAhb2JqZWN0LmFk
ZEV2ZW50TGlzdGVuZXIgfHwgIW9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB0eXBlcyA9IEluamVjdGVkU2NyaXB0Ll9ub3JtYWxpemVFdmVu
dFR5cGVzKHR5cGVzKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7
ICsraSkKKyAgICAgICAgICAgIG9iamVjdC5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGVzW2ldLCBJ
bmplY3RlZFNjcmlwdC5fbG9nRXZlbnQsIGZhbHNlKTsKKyAgICB9LAorCisgICAgaW5zcGVjdDog
ZnVuY3Rpb24ob2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09
IDApCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaW5zcGVjdGVkV2luZG93LmNvbnNv
bGUubG9nKG9iamVjdCk7CisgICAgICAgIGlmIChJbmplY3RlZFNjcmlwdC5fdHlwZShvYmplY3Qp
ID09PSAibm9kZSIpIHsKKyAgICAgICAgICAgIEluamVjdGVkU2NyaXB0SG9zdC5wdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKG9iamVjdCwgZmFsc2UsIHRydWUpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgc3dpdGNoIChJbmplY3RlZFNjcmlwdC5fZGVzY3JpYmUob2JqZWN0KSkgeworICAg
ICAgICAgICAgICAgIGNhc2UgIkRhdGFiYXNlIjoKKyAgICAgICAgICAgICAgICAgICAgSW5qZWN0
ZWRTY3JpcHRIb3N0LnNlbGVjdERhdGFiYXNlKG9iamVjdCk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgIlN0b3JhZ2UiOgorICAgICAgICAgICAgICAg
ICAgICBJbmplY3RlZFNjcmlwdEhvc3Quc2VsZWN0RE9NU3RvcmFnZShvYmplY3QpOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCisK
KyAgICBjb3B5OiBmdW5jdGlvbihvYmplY3QpCisgICAgeworICAgICAgICBpZiAoSW5qZWN0ZWRT
Y3JpcHQuX3R5cGUob2JqZWN0KSA9PT0gIm5vZGUiKSB7CisgICAgICAgICAgICB2YXIgbm9kZUlk
ID0gSW5qZWN0ZWRTY3JpcHRIb3N0LnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQob2JqZWN0LCBmYWxz
ZSwgZmFsc2UpOworICAgICAgICAgICAgSW5qZWN0ZWRTY3JpcHRIb3N0LmNvcHlOb2RlKG5vZGVJ
ZCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgSW5qZWN0ZWRTY3JpcHRIb3N0LmNvcHlU
ZXh0KG9iamVjdCk7CisgICAgfSwKKworICAgIGNsZWFyOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICBJbmplY3RlZFNjcmlwdEhvc3QuY2xlYXJDb25zb2xlTWVzc2FnZXMoKTsKKyAgICB9LAor
CisgICAgZ2V0ICQwKCkKKyAgICB7CisgICAgICAgIHJldHVybiBJbmplY3RlZFNjcmlwdC5faW5z
cGVjdGVkTm9kZXNbMF07CisgICAgfSwKKworICAgIGdldCAkMSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gSW5qZWN0ZWRTY3JpcHQuX2luc3BlY3RlZE5vZGVzWzFdOworICAgIH0sCisKKyAgICBn
ZXQgJDIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEluamVjdGVkU2NyaXB0Ll9pbnNwZWN0ZWRO
b2Rlc1syXTsKKyAgICB9LAorCisgICAgZ2V0ICQzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBJ
bmplY3RlZFNjcmlwdC5faW5zcGVjdGVkTm9kZXNbM107CisgICAgfSwKKworICAgIGdldCAkNCgp
CisgICAgeworICAgICAgICByZXR1cm4gSW5qZWN0ZWRTY3JpcHQuX2luc3BlY3RlZE5vZGVzWzRd
OworICAgIH0KK30KKworSW5qZWN0ZWRTY3JpcHQuX2NvbW1hbmRMaW5lQVBJID0gbmV3IENvbW1h
bmRMaW5lQVBJKCk7CisKIHJldHVybiBJbmplY3RlZFNjcmlwdDsKIH0pOwo=
</data>
<flag name="review"
          id="44893"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>