<?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>30428</bug_id>
          
          <creation_ts>2009-10-15 21:49:29 -0700</creation_ts>
          <short_desc>Web Inspector: Handle the Enter Key in the Elements Tree Hierarchy</short_desc>
          <delta_ts>2009-10-16 23:17:15 -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></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>aroben</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>pfeldman</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>155000</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-10-15 21:49:29 -0700</bug_when>
    <thetext>When pushing Enter in the Elements Tree Outline:

1. if TextNode =&gt; Edit Text Node
2. if Has Attributes =&gt; Edit First Attribute
3. otherwise =&gt; Create New Attribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155005</commentid>
    <comment_count>1</comment_count>
      <attachid>41267</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-10-15 22:02:52 -0700</bug_when>
    <thetext>Created attachment 41267
[PATCH] Enter Key in Tree Hierarchy

This handles the above and fixes 2 minor bugs:
- moving backwards when there are no attributes caused an error
- adding the new attribute &quot;button&quot; should only happen on nodes that can have attributes (was causing a lot of errors)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155006</commentid>
    <comment_count>2</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2009-10-15 22:03:22 -0700</bug_when>
    <thetext>3 is only if the selected item can have attributes, correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155011</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-10-15 22:13:34 -0700</bug_when>
    <thetext>Brian, you&apos;re correct. Although I don&apos;t explicitly say it in the code the following check ensures any of the operations are valid (its a text node or its an element node which can have attributes):

&gt; if (this.representedObject.nodeType !== Node.ELEMENT_NODE &amp;&amp; this.representedObject.nodeType !== Node.TEXT_NODE)

This could be simplified (in multiple places) instead to be:

&gt; if (!this._canAddAttributes &amp;&amp; this.representedObject.nodeType !== Node.TEXT_NODE)

After this check the other operations look safe. But would you rather I split this up?

if (this.representedObject.nodeType === Node.TEXT_NODE) {
  // handle text node
} else if (this._canAddAttributes) {
  // handle attribute cases
}

That sounds better!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155013</commentid>
    <comment_count>4</comment_count>
      <attachid>41269</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-10-15 22:19:03 -0700</bug_when>
    <thetext>Created attachment 41269
[PATCH] Enter Key in Tree Hierarchy (improved)

Improved based on the last comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155017</commentid>
    <comment_count>5</comment_count>
      <attachid>41270</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-10-15 22:21:01 -0700</bug_when>
    <thetext>Created attachment 41270
[PATCH] Enter Key in Tree Hierarchy (improved)

Updated the wrong one!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155309</commentid>
    <comment_count>6</comment_count>
      <attachid>41270</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-10-16 17:01:54 -0700</bug_when>
    <thetext>Comment on attachment 41270
[PATCH] Enter Key in Tree Hierarchy (improved)


&gt; +    _startEditingGeneral: function()

Maybe this could just be _startEditing, not sure what &quot;General&quot; means.


&gt; +                return this._startEditingTextNode(textNode);
&gt; +
&gt; +            return;

Remove the empty line here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155315</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-10-16 17:10:49 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; +    _startEditingGeneral: function()
&gt; 
&gt; Maybe this could just be _startEditing, not sure what &quot;General&quot; means.

Done.

&gt; &gt; +                return this._startEditingTextNode(textNode);
&gt; &gt; +
&gt; &gt; +            return;
&gt; 
&gt; Remove the empty line here.

Done.



Landed in http://trac.webkit.org/changeset/49709
r49709 = c44830e80b27325d93c76e839c0f36eef937fcdd</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155363</commentid>
    <comment_count>8</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-10-16 22:55:03 -0700</bug_when>
    <thetext>These 1 -&gt; 2 -&gt; 3 don&apos;t seem to be intuitive to me. I am sure we don&apos;t want user to play sequence like this in his head prior to hitting the enter. Like what do we do if the line is &lt;span class=&quot;foo&quot;&gt;Text&lt;/span&gt;? Shouldn&apos;t we support inline editing of the whole line instead? That would allow editing text, attributes, adding new ones and would be 100% predictable...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155366</commentid>
    <comment_count>9</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-10-16 23:17:15 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; These 1 -&gt; 2 -&gt; 3 don&apos;t seem to be intuitive to me. I am sure we don&apos;t want
&gt; user to play sequence like this in his head prior to hitting the enter. Like
&gt; what do we do if the line is &lt;span class=&quot;foo&quot;&gt;Text&lt;/span&gt;?

I think its pretty intuitive in the UI.  If you can edit the selected node then pushing Enter starts editing that something!  Text Nodes you can only edit their contents. Elements you can only edit their attributes. The &quot;add new attribute&quot; is just a convenience, but the thought process is that if its an Element Node you are always editing attributes.

&gt; Shouldn&apos;t we support inline editing of the whole line instead? That
&gt; would allow editing text, attributes, adding new ones and would
&gt; be 100% predictable...

I think there is an open bug for supporting inline editing (if not then one should probably be made... is bug 16477 could be an umbrella bug for this concept).  Once implemented &quot;Enter&quot; could be changed to toggle this more powerful editing mode.

However, I tend to like these individual edits more then free flow editing. With individual edits you&apos;re &quot;sandboxed&quot; from making major mistakes and removing things you didn&apos;t want to remove.  Plus its a nice keyboard shortcut that Firebug doesn&apos;t have.

---

I did make one mistake in this patch. Editing attributes starts presets the selection to the attribute name. It should set it to be the attribute value, as that would almost always be the use case.  Should I commit a trivial fix or wait for some more discussion on this in general?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41267</attachid>
            <date>2009-10-15 22:02:52 -0700</date>
            <delta_ts>2009-10-15 22:19:03 -0700</delta_ts>
            <desc>[PATCH] Enter Key in Tree Hierarchy</desc>
            <filename>enter.patch</filename>
            <type>text/plain</type>
            <size>5293</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDk3NGM5MS4uZmJiNzFlOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAwOS0xMC0xNSAgSm9zZXBoIFBlY29y
YXJvICA8am9lcGVja0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEhhbmRsZSB0aGUgRW50ZXIgS2V5IGlu
IHRoZSBFbGVtZW50cyBUcmVlIEhpZXJhcmNoeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA0MjgKKworICAgICAgICBUZXh0Tm9kZSA9PiBFZGl0IFRl
eHQgTm9kZQorICAgICAgICBIYXMgQXR0cmlidXRlcyA9PiBFZGl0IEZpcnN0IEF0dHJpYnV0ZQor
ICAgICAgICBObyBBdHRyaWJ1dGVzID0+IFN0YXJ0IEVkaXRpbmcgTmV3IEF0dHJpYnV0ZQorCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlLmhhbmRsZUtl
eUV2ZW50KTogaGFuZGxlIHRoZSAiRW50ZXIiIGtleQorICAgICAgICAoV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLnNldCBob3ZlcmVkKTogb25seSBhZGQgbmV3IGF0
dHJpYnV0ZSBidXR0b24gb24gbm9kZXMgd2l0aCBhdHRyaWJ1dGVzCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUuX2FkZE5ld0F0dHJpYnV0ZSk6IHBy
ZXZlbnQgbW92aW5nIGJhY2t3YXJkcyB3aGVyZSB0aGVyZSBhcmUgbm8gYXR0cmlidXRlcworICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9zdGFydEVk
aXRpbmdGcm9tRXZlbnQpOiByZW5hbWVkIHRvIGJlIGNsZWFyZXIKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fc3RhcnRFZGl0aW5nR2VuZXJhbCk6
IGdlbmVyaWMgZWRpdCBjYWxsIGZvciBhIHRyZWUgZWxlbWVudAorCiAyMDA5LTEwLTE1ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE5vdCByZXZpZXdl
ZCAtIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
bGVtZW50c1RyZWVPdXRsaW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1l
bnRzVHJlZU91dGxpbmUuanMKaW5kZXggZWMxYmJkMC4uY2I0MjdhZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKQEAgLTE4OCwx
NiArMTg4LDI4IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZSA9
IHsKICAgICBoYW5kbGVLZXlFdmVudDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2
YXIgc2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5zZWxlY3RlZFRyZWVFbGVtZW50OwotCiAgICAgICAg
IGlmICghc2VsZWN0ZWRFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAg
ICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT0gOCB8fCBldmVudC5rZXlDb2RlID09IDQ2KSB7Ci0g
ICAgICAgICAgICAvLyBEZWxldGUgb3IgYmFja3NwYWNlIHByZXNzZWQsIGRlbGV0ZSB0aGUgbm9k
ZS4KKworICAgICAgICAvLyBEZWxldGUgb3IgYmFja3NwYWNlIHByZXNzZWQsIGRlbGV0ZSB0aGUg
bm9kZS4KKyAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDggfHwgZXZlbnQua2V5Q29kZSA9
PT0gNDYpIHsKICAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudC5yZW1vdmUoKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICAKKworICAgICAgICAvLyBPbiBFbnRlciBv
ciBSZXR1cm4gc3RhcnQgZWRpdGluZyB0aGUgZmlyc3QgYXR0cmlidXRlCisgICAgICAgIC8vIG9y
IGNyZWF0ZSBhIG5ldyBhdHRyaWJ1dGUgb24gdGhlIHNlbGVjdGVkIGVsZW1lbnQuCisgICAgICAg
IGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiRW50ZXIiKSB7CisgICAgICAgICAgICBpZiAo
dGhpcy5fZWRpdGluZykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHNl
bGVjdGVkRWxlbWVudC5fc3RhcnRFZGl0aW5nR2VuZXJhbCgpOworCisgICAgICAgICAgICAvLyBw
cmV2ZW50IGEgbmV3bGluZSBmcm9tIGJlaW5nIGltbWVkaWF0ZWx5IGluc2VydGVkCisgICAgICAg
ICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKICAgICAgICAgVHJlZU91dGxpbmUucHJvdG90eXBlLmhhbmRsZUtleUV2ZW50LmNhbGwo
dGhpcywgZXZlbnQpOwogICAgIH0sCiAKQEAgLTI5NSw3ICszMDcsOCBAQCBXZWJJbnNwZWN0b3Iu
RWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpZiAoeCkgewog
ICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uKCk7CiAgICAgICAgICAgICAgICAg
dGhpcy5saXN0SXRlbUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaG92ZXJlZCIpOwotICAgICAgICAg
ICAgICAgIHRoaXMuX3BlbmRpbmdUb2dnbGVOZXdBdHRyaWJ1dGUgPSBzZXRUaW1lb3V0KHRoaXMu
dG9nZ2xlTmV3QXR0cmlidXRlQnV0dG9uLmJpbmQodGhpcywgdHJ1ZSksIDUwMCk7CisgICAgICAg
ICAgICAgICAgaWYgKHRoaXMuX2NhbkFkZEF0dHJpYnV0ZXMpCisgICAgICAgICAgICAgICAgICAg
IHRoaXMuX3BlbmRpbmdUb2dnbGVOZXdBdHRyaWJ1dGUgPSBzZXRUaW1lb3V0KHRoaXMudG9nZ2xl
TmV3QXR0cmlidXRlQnV0dG9uLmJpbmQodGhpcywgdHJ1ZSksIDUwMCk7CiAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LnJlbW92ZVN0eWxl
Q2xhc3MoImhvdmVyZWQiKTsKICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGVuZGluZ1RvZ2ds
ZU5ld0F0dHJpYnV0ZSkgewpAQCAtNTA2LDcgKzUxOSw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMuX2VkaXRpbmcpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKHRoaXMuX3N0YXJ0RWRpdGluZyhldmVu
dCwgdHJlZUVsZW1lbnQpKQorICAgICAgICBpZiAodGhpcy5fc3RhcnRFZGl0aW5nRnJvbUV2ZW50
KGV2ZW50LCB0cmVlRWxlbWVudCkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYg
KHRoaXMudHJlZU91dGxpbmUucGFuZWwpIHsKQEAgLTUzMSw3ICs1NDQsNyBAQCBXZWJJbnNwZWN0
b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAog
Ci0gICAgX3N0YXJ0RWRpdGluZzogZnVuY3Rpb24oZXZlbnQsIHRyZWVFbGVtZW50KQorICAgIF9z
dGFydEVkaXRpbmdGcm9tRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50LCB0cmVlRWxlbWVudCkKICAgICB7
CiAgICAgICAgIGlmICh0aGlzLnRyZWVPdXRsaW5lLmZvY3VzZWRET01Ob2RlICE9IHRoaXMucmVw
cmVzZW50ZWRPYmplY3QpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01NTQsNiArNTY3LDI5IEBA
IFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0sCiAKKyAgICBfc3RhcnRFZGl0aW5nR2VuZXJhbDogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMudHJlZU91dGxpbmUuZm9jdXNlZERPTU5vZGUg
IT09IHRoaXMucmVwcmVzZW50ZWRPYmplY3QpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUgIT09IE5vZGUuRUxFTUVOVF9O
T0RFICYmIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUgIT09IE5vZGUuVEVYVF9OT0RF
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHZhciBsaXN0SXRlbSA9IHRo
aXMuX2xpc3RJdGVtTm9kZTsKKyAgICAgICAgdmFyIHRleHROb2RlID0gbGlzdEl0ZW0uZ2V0RWxl
bWVudHNCeUNsYXNzTmFtZSgid2Via2l0LWh0bWwtdGV4dC1ub2RlIilbMF07CisgICAgICAgIGlm
ICh0ZXh0Tm9kZSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGFydEVkaXRpbmdUZXh0Tm9k
ZSh0ZXh0Tm9kZSk7CisKKyAgICAgICAgaWYgKHRoaXMuX2NhbkFkZEF0dHJpYnV0ZXMpCisgICAg
ICAgICAgICB0aGlzLnRvZ2dsZU5ld0F0dHJpYnV0ZUJ1dHRvbihmYWxzZSk7ICAgICAgICAKKwor
ICAgICAgICB2YXIgYXR0cmlidXRlID0gbGlzdEl0ZW0uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgi
d2Via2l0LWh0bWwtYXR0cmlidXRlIilbMF07CisgICAgICAgIGlmIChhdHRyaWJ1dGUpCisgICAg
ICAgICAgICByZXR1cm4gdGhpcy5fc3RhcnRFZGl0aW5nQXR0cmlidXRlKGF0dHJpYnV0ZSwgYXR0
cmlidXRlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1l
IilbMF0pOworCisgICAgICAgIHJldHVybiB0aGlzLl9hZGROZXdBdHRyaWJ1dGUobGlzdEl0ZW0p
OworICAgIH0sCisKICAgICBfYWRkTmV3QXR0cmlidXRlOiBmdW5jdGlvbihsaXN0SXRlbUVsZW1l
bnQpCiAgICAgewogICAgICAgICB2YXIgYXR0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNw
YW4iKTsKQEAgLTY2MSw3ICs2OTcsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVu
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBpZiAoIWZvdW5kICYmIG1vdmVEaXJlY3Rpb24gPT09ICJiYWNrd2FyZCIpCisgICAg
ICAgICAgICBpZiAoIWZvdW5kICYmIG1vdmVEaXJlY3Rpb24gPT09ICJiYWNrd2FyZCIgJiYgYXR0
cmlidXRlcy5sZW5ndGggPiAwKQogICAgICAgICAgICAgICAgIG1vdmVUb0F0dHJpYnV0ZSA9IGF0
dHJpYnV0ZXNbYXR0cmlidXRlcy5sZW5ndGggLSAxXS5uYW1lOwogICAgICAgICAgICAgZWxzZSBp
ZiAoIWZvdW5kICYmIG1vdmVEaXJlY3Rpb24gPT09ICJmb3J3YXJkIiAmJiAhL15ccyokLy50ZXN0
KG5ld1RleHQpKQogICAgICAgICAgICAgICAgIG5ld0F0dHJpYnV0ZSA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41269</attachid>
            <date>2009-10-15 22:19:03 -0700</date>
            <delta_ts>2009-10-15 22:21:01 -0700</delta_ts>
            <desc>[PATCH] Enter Key in Tree Hierarchy (improved)</desc>
            <filename>enter.patch</filename>
            <type>text/plain</type>
            <size>5293</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDk3NGM5MS4uZmJiNzFlOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAwOS0xMC0xNSAgSm9zZXBoIFBlY29y
YXJvICA8am9lcGVja0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEhhbmRsZSB0aGUgRW50ZXIgS2V5IGlu
IHRoZSBFbGVtZW50cyBUcmVlIEhpZXJhcmNoeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA0MjgKKworICAgICAgICBUZXh0Tm9kZSA9PiBFZGl0IFRl
eHQgTm9kZQorICAgICAgICBIYXMgQXR0cmlidXRlcyA9PiBFZGl0IEZpcnN0IEF0dHJpYnV0ZQor
ICAgICAgICBObyBBdHRyaWJ1dGVzID0+IFN0YXJ0IEVkaXRpbmcgTmV3IEF0dHJpYnV0ZQorCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlLmhhbmRsZUtl
eUV2ZW50KTogaGFuZGxlIHRoZSAiRW50ZXIiIGtleQorICAgICAgICAoV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLnNldCBob3ZlcmVkKTogb25seSBhZGQgbmV3IGF0
dHJpYnV0ZSBidXR0b24gb24gbm9kZXMgd2l0aCBhdHRyaWJ1dGVzCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUuX2FkZE5ld0F0dHJpYnV0ZSk6IHBy
ZXZlbnQgbW92aW5nIGJhY2t3YXJkcyB3aGVyZSB0aGVyZSBhcmUgbm8gYXR0cmlidXRlcworICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9zdGFydEVk
aXRpbmdGcm9tRXZlbnQpOiByZW5hbWVkIHRvIGJlIGNsZWFyZXIKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fc3RhcnRFZGl0aW5nR2VuZXJhbCk6
IGdlbmVyaWMgZWRpdCBjYWxsIGZvciBhIHRyZWUgZWxlbWVudAorCiAyMDA5LTEwLTE1ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE5vdCByZXZpZXdl
ZCAtIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
bGVtZW50c1RyZWVPdXRsaW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1l
bnRzVHJlZU91dGxpbmUuanMKaW5kZXggZWMxYmJkMC4uY2I0MjdhZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKQEAgLTE4OCwx
NiArMTg4LDI4IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZSA9
IHsKICAgICBoYW5kbGVLZXlFdmVudDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2
YXIgc2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5zZWxlY3RlZFRyZWVFbGVtZW50OwotCiAgICAgICAg
IGlmICghc2VsZWN0ZWRFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAg
ICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT0gOCB8fCBldmVudC5rZXlDb2RlID09IDQ2KSB7Ci0g
ICAgICAgICAgICAvLyBEZWxldGUgb3IgYmFja3NwYWNlIHByZXNzZWQsIGRlbGV0ZSB0aGUgbm9k
ZS4KKworICAgICAgICAvLyBEZWxldGUgb3IgYmFja3NwYWNlIHByZXNzZWQsIGRlbGV0ZSB0aGUg
bm9kZS4KKyAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDggfHwgZXZlbnQua2V5Q29kZSA9
PT0gNDYpIHsKICAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudC5yZW1vdmUoKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICAKKworICAgICAgICAvLyBPbiBFbnRlciBv
ciBSZXR1cm4gc3RhcnQgZWRpdGluZyB0aGUgZmlyc3QgYXR0cmlidXRlCisgICAgICAgIC8vIG9y
IGNyZWF0ZSBhIG5ldyBhdHRyaWJ1dGUgb24gdGhlIHNlbGVjdGVkIGVsZW1lbnQuCisgICAgICAg
IGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiRW50ZXIiKSB7CisgICAgICAgICAgICBpZiAo
dGhpcy5fZWRpdGluZykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHNl
bGVjdGVkRWxlbWVudC5fc3RhcnRFZGl0aW5nR2VuZXJhbCgpOworCisgICAgICAgICAgICAvLyBw
cmV2ZW50IGEgbmV3bGluZSBmcm9tIGJlaW5nIGltbWVkaWF0ZWx5IGluc2VydGVkCisgICAgICAg
ICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKICAgICAgICAgVHJlZU91dGxpbmUucHJvdG90eXBlLmhhbmRsZUtleUV2ZW50LmNhbGwo
dGhpcywgZXZlbnQpOwogICAgIH0sCiAKQEAgLTI5NSw3ICszMDcsOCBAQCBXZWJJbnNwZWN0b3Iu
RWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpZiAoeCkgewog
ICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uKCk7CiAgICAgICAgICAgICAgICAg
dGhpcy5saXN0SXRlbUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaG92ZXJlZCIpOwotICAgICAgICAg
ICAgICAgIHRoaXMuX3BlbmRpbmdUb2dnbGVOZXdBdHRyaWJ1dGUgPSBzZXRUaW1lb3V0KHRoaXMu
dG9nZ2xlTmV3QXR0cmlidXRlQnV0dG9uLmJpbmQodGhpcywgdHJ1ZSksIDUwMCk7CisgICAgICAg
ICAgICAgICAgaWYgKHRoaXMuX2NhbkFkZEF0dHJpYnV0ZXMpCisgICAgICAgICAgICAgICAgICAg
IHRoaXMuX3BlbmRpbmdUb2dnbGVOZXdBdHRyaWJ1dGUgPSBzZXRUaW1lb3V0KHRoaXMudG9nZ2xl
TmV3QXR0cmlidXRlQnV0dG9uLmJpbmQodGhpcywgdHJ1ZSksIDUwMCk7CiAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LnJlbW92ZVN0eWxl
Q2xhc3MoImhvdmVyZWQiKTsKICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGVuZGluZ1RvZ2ds
ZU5ld0F0dHJpYnV0ZSkgewpAQCAtNTA2LDcgKzUxOSw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMuX2VkaXRpbmcpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKHRoaXMuX3N0YXJ0RWRpdGluZyhldmVu
dCwgdHJlZUVsZW1lbnQpKQorICAgICAgICBpZiAodGhpcy5fc3RhcnRFZGl0aW5nRnJvbUV2ZW50
KGV2ZW50LCB0cmVlRWxlbWVudCkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYg
KHRoaXMudHJlZU91dGxpbmUucGFuZWwpIHsKQEAgLTUzMSw3ICs1NDQsNyBAQCBXZWJJbnNwZWN0
b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAog
Ci0gICAgX3N0YXJ0RWRpdGluZzogZnVuY3Rpb24oZXZlbnQsIHRyZWVFbGVtZW50KQorICAgIF9z
dGFydEVkaXRpbmdGcm9tRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50LCB0cmVlRWxlbWVudCkKICAgICB7
CiAgICAgICAgIGlmICh0aGlzLnRyZWVPdXRsaW5lLmZvY3VzZWRET01Ob2RlICE9IHRoaXMucmVw
cmVzZW50ZWRPYmplY3QpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01NTQsNiArNTY3LDI5IEBA
IFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0sCiAKKyAgICBfc3RhcnRFZGl0aW5nR2VuZXJhbDogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMudHJlZU91dGxpbmUuZm9jdXNlZERPTU5vZGUg
IT09IHRoaXMucmVwcmVzZW50ZWRPYmplY3QpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUgIT09IE5vZGUuRUxFTUVOVF9O
T0RFICYmIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUgIT09IE5vZGUuVEVYVF9OT0RF
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHZhciBsaXN0SXRlbSA9IHRo
aXMuX2xpc3RJdGVtTm9kZTsKKyAgICAgICAgdmFyIHRleHROb2RlID0gbGlzdEl0ZW0uZ2V0RWxl
bWVudHNCeUNsYXNzTmFtZSgid2Via2l0LWh0bWwtdGV4dC1ub2RlIilbMF07CisgICAgICAgIGlm
ICh0ZXh0Tm9kZSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGFydEVkaXRpbmdUZXh0Tm9k
ZSh0ZXh0Tm9kZSk7CisKKyAgICAgICAgaWYgKHRoaXMuX2NhbkFkZEF0dHJpYnV0ZXMpCisgICAg
ICAgICAgICB0aGlzLnRvZ2dsZU5ld0F0dHJpYnV0ZUJ1dHRvbihmYWxzZSk7ICAgICAgICAKKwor
ICAgICAgICB2YXIgYXR0cmlidXRlID0gbGlzdEl0ZW0uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgi
d2Via2l0LWh0bWwtYXR0cmlidXRlIilbMF07CisgICAgICAgIGlmIChhdHRyaWJ1dGUpCisgICAg
ICAgICAgICByZXR1cm4gdGhpcy5fc3RhcnRFZGl0aW5nQXR0cmlidXRlKGF0dHJpYnV0ZSwgYXR0
cmlidXRlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIndlYmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1l
IilbMF0pOworCisgICAgICAgIHJldHVybiB0aGlzLl9hZGROZXdBdHRyaWJ1dGUobGlzdEl0ZW0p
OworICAgIH0sCisKICAgICBfYWRkTmV3QXR0cmlidXRlOiBmdW5jdGlvbihsaXN0SXRlbUVsZW1l
bnQpCiAgICAgewogICAgICAgICB2YXIgYXR0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNw
YW4iKTsKQEAgLTY2MSw3ICs2OTcsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVu
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBpZiAoIWZvdW5kICYmIG1vdmVEaXJlY3Rpb24gPT09ICJiYWNrd2FyZCIpCisgICAg
ICAgICAgICBpZiAoIWZvdW5kICYmIG1vdmVEaXJlY3Rpb24gPT09ICJiYWNrd2FyZCIgJiYgYXR0
cmlidXRlcy5sZW5ndGggPiAwKQogICAgICAgICAgICAgICAgIG1vdmVUb0F0dHJpYnV0ZSA9IGF0
dHJpYnV0ZXNbYXR0cmlidXRlcy5sZW5ndGggLSAxXS5uYW1lOwogICAgICAgICAgICAgZWxzZSBp
ZiAoIWZvdW5kICYmIG1vdmVEaXJlY3Rpb24gPT09ICJmb3J3YXJkIiAmJiAhL15ccyokLy50ZXN0
KG5ld1RleHQpKQogICAgICAgICAgICAgICAgIG5ld0F0dHJpYnV0ZSA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41270</attachid>
            <date>2009-10-15 22:21:01 -0700</date>
            <delta_ts>2009-10-16 17:01:54 -0700</delta_ts>
            <desc>[PATCH] Enter Key in Tree Hierarchy (improved)</desc>
            <filename>enter2.patch</filename>
            <type>text/plain</type>
            <size>5276</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDk3NGM5MS4uZmJiNzFlOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAwOS0xMC0xNSAgSm9zZXBoIFBlY29y
YXJvICA8am9lcGVja0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEhhbmRsZSB0aGUgRW50ZXIgS2V5IGlu
IHRoZSBFbGVtZW50cyBUcmVlIEhpZXJhcmNoeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA0MjgKKworICAgICAgICBUZXh0Tm9kZSA9PiBFZGl0IFRl
eHQgTm9kZQorICAgICAgICBIYXMgQXR0cmlidXRlcyA9PiBFZGl0IEZpcnN0IEF0dHJpYnV0ZQor
ICAgICAgICBObyBBdHRyaWJ1dGVzID0+IFN0YXJ0IEVkaXRpbmcgTmV3IEF0dHJpYnV0ZQorCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlLmhhbmRsZUtl
eUV2ZW50KTogaGFuZGxlIHRoZSAiRW50ZXIiIGtleQorICAgICAgICAoV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLnNldCBob3ZlcmVkKTogb25seSBhZGQgbmV3IGF0
dHJpYnV0ZSBidXR0b24gb24gbm9kZXMgd2l0aCBhdHRyaWJ1dGVzCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUuX2FkZE5ld0F0dHJpYnV0ZSk6IHBy
ZXZlbnQgbW92aW5nIGJhY2t3YXJkcyB3aGVyZSB0aGVyZSBhcmUgbm8gYXR0cmlidXRlcworICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9zdGFydEVk
aXRpbmdGcm9tRXZlbnQpOiByZW5hbWVkIHRvIGJlIGNsZWFyZXIKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fc3RhcnRFZGl0aW5nR2VuZXJhbCk6
IGdlbmVyaWMgZWRpdCBjYWxsIGZvciBhIHRyZWUgZWxlbWVudAorCiAyMDA5LTEwLTE1ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE5vdCByZXZpZXdl
ZCAtIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
bGVtZW50c1RyZWVPdXRsaW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1l
bnRzVHJlZU91dGxpbmUuanMKaW5kZXggZWMxYmJkMC4uMmJkZjNlNCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKQEAgLTE4OCwx
NiArMTg4LDI4IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZSA9
IHsKICAgICBoYW5kbGVLZXlFdmVudDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2
YXIgc2VsZWN0ZWRFbGVtZW50ID0gdGhpcy5zZWxlY3RlZFRyZWVFbGVtZW50OwotCiAgICAgICAg
IGlmICghc2VsZWN0ZWRFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAg
ICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT0gOCB8fCBldmVudC5rZXlDb2RlID09IDQ2KSB7Ci0g
ICAgICAgICAgICAvLyBEZWxldGUgb3IgYmFja3NwYWNlIHByZXNzZWQsIGRlbGV0ZSB0aGUgbm9k
ZS4KKworICAgICAgICAvLyBEZWxldGUgb3IgYmFja3NwYWNlIHByZXNzZWQsIGRlbGV0ZSB0aGUg
bm9kZS4KKyAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDggfHwgZXZlbnQua2V5Q29kZSA9
PT0gNDYpIHsKICAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudC5yZW1vdmUoKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICAKKworICAgICAgICAvLyBPbiBFbnRlciBv
ciBSZXR1cm4gc3RhcnQgZWRpdGluZyB0aGUgZmlyc3QgYXR0cmlidXRlCisgICAgICAgIC8vIG9y
IGNyZWF0ZSBhIG5ldyBhdHRyaWJ1dGUgb24gdGhlIHNlbGVjdGVkIGVsZW1lbnQuCisgICAgICAg
IGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiRW50ZXIiKSB7CisgICAgICAgICAgICBpZiAo
dGhpcy5fZWRpdGluZykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHNl
bGVjdGVkRWxlbWVudC5fc3RhcnRFZGl0aW5nR2VuZXJhbCgpOworCisgICAgICAgICAgICAvLyBw
cmV2ZW50IGEgbmV3bGluZSBmcm9tIGJlaW5nIGltbWVkaWF0ZWx5IGluc2VydGVkCisgICAgICAg
ICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKICAgICAgICAgVHJlZU91dGxpbmUucHJvdG90eXBlLmhhbmRsZUtleUV2ZW50LmNhbGwo
dGhpcywgZXZlbnQpOwogICAgIH0sCiAKQEAgLTI5NSw3ICszMDcsOCBAQCBXZWJJbnNwZWN0b3Iu
RWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpZiAoeCkgewog
ICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uKCk7CiAgICAgICAgICAgICAgICAg
dGhpcy5saXN0SXRlbUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaG92ZXJlZCIpOwotICAgICAgICAg
ICAgICAgIHRoaXMuX3BlbmRpbmdUb2dnbGVOZXdBdHRyaWJ1dGUgPSBzZXRUaW1lb3V0KHRoaXMu
dG9nZ2xlTmV3QXR0cmlidXRlQnV0dG9uLmJpbmQodGhpcywgdHJ1ZSksIDUwMCk7CisgICAgICAg
ICAgICAgICAgaWYgKHRoaXMuX2NhbkFkZEF0dHJpYnV0ZXMpCisgICAgICAgICAgICAgICAgICAg
IHRoaXMuX3BlbmRpbmdUb2dnbGVOZXdBdHRyaWJ1dGUgPSBzZXRUaW1lb3V0KHRoaXMudG9nZ2xl
TmV3QXR0cmlidXRlQnV0dG9uLmJpbmQodGhpcywgdHJ1ZSksIDUwMCk7CiAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1FbGVtZW50LnJlbW92ZVN0eWxl
Q2xhc3MoImhvdmVyZWQiKTsKICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGVuZGluZ1RvZ2ds
ZU5ld0F0dHJpYnV0ZSkgewpAQCAtNTA2LDcgKzUxOSw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMuX2VkaXRpbmcpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKHRoaXMuX3N0YXJ0RWRpdGluZyhldmVu
dCwgdHJlZUVsZW1lbnQpKQorICAgICAgICBpZiAodGhpcy5fc3RhcnRFZGl0aW5nRnJvbUV2ZW50
KGV2ZW50LCB0cmVlRWxlbWVudCkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYg
KHRoaXMudHJlZU91dGxpbmUucGFuZWwpIHsKQEAgLTUzMSw3ICs1NDQsNyBAQCBXZWJJbnNwZWN0
b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAog
Ci0gICAgX3N0YXJ0RWRpdGluZzogZnVuY3Rpb24oZXZlbnQsIHRyZWVFbGVtZW50KQorICAgIF9z
dGFydEVkaXRpbmdGcm9tRXZlbnQ6IGZ1bmN0aW9uKGV2ZW50LCB0cmVlRWxlbWVudCkKICAgICB7
CiAgICAgICAgIGlmICh0aGlzLnRyZWVPdXRsaW5lLmZvY3VzZWRET01Ob2RlICE9IHRoaXMucmVw
cmVzZW50ZWRPYmplY3QpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01NTQsNiArNTY3LDMxIEBA
IFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0sCiAKKyAgICBfc3RhcnRFZGl0aW5nR2VuZXJhbDogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMudHJlZU91dGxpbmUuZm9jdXNlZERPTU5vZGUg
IT09IHRoaXMucmVwcmVzZW50ZWRPYmplY3QpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgdmFyIGxpc3RJdGVtID0gdGhpcy5fbGlzdEl0ZW1Ob2RlOworCisgICAgICAgIGlmICh0aGlz
Ll9jYW5BZGRBdHRyaWJ1dGVzKSB7CisgICAgICAgICAgICB0aGlzLnRvZ2dsZU5ld0F0dHJpYnV0
ZUJ1dHRvbihmYWxzZSk7CisgICAgICAgICAgICB2YXIgYXR0cmlidXRlID0gbGlzdEl0ZW0uZ2V0
RWxlbWVudHNCeUNsYXNzTmFtZSgid2Via2l0LWh0bWwtYXR0cmlidXRlIilbMF07CisgICAgICAg
ICAgICBpZiAoYXR0cmlidXRlKQorICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGFydEVk
aXRpbmdBdHRyaWJ1dGUoYXR0cmlidXRlLCBhdHRyaWJ1dGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZSgid2Via2l0LWh0bWwtYXR0cmlidXRlLW5hbWUiKVswXSk7CisKKyAgICAgICAgICAgIHJldHVy
biB0aGlzLl9hZGROZXdBdHRyaWJ1dGUobGlzdEl0ZW0pOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7
CisgICAgICAgICAgICB2YXIgdGV4dE5vZGUgPSBsaXN0SXRlbS5nZXRFbGVtZW50c0J5Q2xhc3NO
YW1lKCJ3ZWJraXQtaHRtbC10ZXh0LW5vZGUiKVswXTsKKyAgICAgICAgICAgIGlmICh0ZXh0Tm9k
ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3RhcnRFZGl0aW5nVGV4dE5vZGUodGV4
dE5vZGUpOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9LAorCiAgICAg
X2FkZE5ld0F0dHJpYnV0ZTogZnVuY3Rpb24obGlzdEl0ZW1FbGVtZW50KQogICAgIHsKICAgICAg
ICAgdmFyIGF0dHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CkBAIC02NjEsNyAr
Njk5LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKCFmb3Vu
ZCAmJiBtb3ZlRGlyZWN0aW9uID09PSAiYmFja3dhcmQiKQorICAgICAgICAgICAgaWYgKCFmb3Vu
ZCAmJiBtb3ZlRGlyZWN0aW9uID09PSAiYmFja3dhcmQiICYmIGF0dHJpYnV0ZXMubGVuZ3RoID4g
MCkKICAgICAgICAgICAgICAgICBtb3ZlVG9BdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzW2F0dHJpYnV0
ZXMubGVuZ3RoIC0gMV0ubmFtZTsKICAgICAgICAgICAgIGVsc2UgaWYgKCFmb3VuZCAmJiBtb3Zl
RGlyZWN0aW9uID09PSAiZm9yd2FyZCIgJiYgIS9eXHMqJC8udGVzdChuZXdUZXh0KSkKICAgICAg
ICAgICAgICAgICBuZXdBdHRyaWJ1dGUgPSB0cnVlOwo=
</data>
<flag name="review"
          id="22622"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>