<?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>58029</bug_id>
          
          <creation_ts>2011-04-07 05:00:24 -0700</creation_ts>
          <short_desc>Web Inspector: update breakpoints according to source frame decorations after live edit.</short_desc>
          <delta_ts>2011-04-08 08:10:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (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>0</everconfirmed>
          <reporter name="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>aandrey</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</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>381235</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-07 05:00:24 -0700</bug_when>
    <thetext>Web Inspector: update breakpoints according to source frame decorations after live edit.

Currently, breakpoint decorations are moved accurately during the editing. But when user saves the result, breakpoints are moved in the model based on a text diff, which is not always accurate.
We should move breakpoints in the model based on decorations. Text diff should only be used as a fallback for &quot;revert to revision&quot; feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381236</commentid>
    <comment_count>1</comment_count>
      <attachid>88607</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-07 05:01:05 -0700</bug_when>
    <thetext>Created attachment 88607
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381347</commentid>
    <comment_count>2</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-04-07 08:05:56 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=88607&amp;action=review

&gt; Source/WebCore/inspector/front-end/SourceFrame.js:905
&gt; +                this._delegate.removeBreakpoint(lineNumber);

lineNumber -&gt; Number(lineNumber), check other places too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381372</commentid>
    <comment_count>3</comment_count>
      <attachid>88607</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-07 08:48:14 -0700</bug_when>
    <thetext>Comment on attachment 88607
Patch.

Please rebaseline and add a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381428</commentid>
    <comment_count>4</comment_count>
      <attachid>88652</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-07 09:55:24 -0700</bug_when>
    <thetext>Created attachment 88652
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381519</commentid>
    <comment_count>5</comment_count>
      <attachid>88652</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-07 11:28:11 -0700</bug_when>
    <thetext>Comment on attachment 88652
Patch.

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

&gt; Source/WebCore/inspector/front-end/SourceFrame.js:909
&gt; +                this._delegate.setBreakpoint(Number(lineNumber), breakpoint.condition, breakpoint.enabled);

It is not clear whether _updateBreakpointsAfterLiveEdit or this code should take care of breakpoint re-creation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382048</commentid>
    <comment_count>6</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-04-08 00:20:59 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=88652&amp;action=review

&gt;&gt; Source/WebCore/inspector/front-end/SourceFrame.js:909
&gt;&gt; +                this._delegate.setBreakpoint(Number(lineNumber), breakpoint.condition, breakpoint.enabled);
&gt; 
&gt; It is not clear whether _updateBreakpointsAfterLiveEdit or this code should take care of breakpoint re-creation.

Yes, I vote for the _updateBreakpointsAfterLiveEdit taking care of this. Note, that the (this._textModel.text !== newSource) condition may take quite a while on big data sources. Before this change, it was executed only if an error occurs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382103</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-08 02:39:02 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 88652 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=88652&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/SourceFrame.js:909
&gt; &gt; +                this._delegate.setBreakpoint(Number(lineNumber), breakpoint.condition, breakpoint.enabled);
&gt; 
&gt; It is not clear whether _updateBreakpointsAfterLiveEdit or this code should take care of breakpoint re-creation.

The only place where breakpoints are updated according to decorations is source frame&apos;s method _handleSave.
The only place where _updateBreakpointsAfterLiveEdit is called is revert callback in _updateResourceContent function (used by &quot;revert to this revision&quot;).
These two cases can never be mixed.

&gt; Yes, I vote for the _updateBreakpointsAfterLiveEdit taking care of this. Note, that the (this._textModel.text !== newSource) condition may take quite a while on big data sources. Before this change, it was executed only if an error occurs.

_updateBreakpointsAfterLiveEdit is a fallback used when we only have old text and new text. I&apos;m not sure if (this._textModel.text !== newSource) may cause any trouble here. If it may, we should just freeze the content until editScriptSource response is received.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382111</commentid>
    <comment_count>8</comment_count>
      <attachid>88787</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-08 02:58:26 -0700</bug_when>
    <thetext>Created attachment 88787
Patch.

As discussed offline, we should better freeze the content until editScriptSource response is recieved.
This is needed to avoid expensive (this._textModel.text !== newSource) check and potential bugs when new editing is started while previous one was not committed yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382237</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-08 08:10:51 -0700</bug_when>
    <thetext>Committed r83294: &lt;http://trac.webkit.org/changeset/83294&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88607</attachid>
            <date>2011-04-07 05:01:05 -0700</date>
            <delta_ts>2011-04-07 09:55:24 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>5487</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2YmFlZDQ1Li4xYjMxMzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTEtMDQtMDcgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogdXBkYXRlIGJyZWFrcG9pbnRzIGFjY29yZGluZyB0byBzb3VyY2UgZnJhbWUgZGVj
b3JhdGlvbnMgYWZ0ZXIgbGl2ZSBlZGl0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTgwMjkKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5lZGl0U2NyaXB0U291cmNlLmRpZEVkaXRT
Y3JpcHRTb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwucHJvdG90eXBlLmVkaXRTY3JpcHRTb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl91cGRhdGVSZXNvdXJjZUNvbnRl
bnQuZGlkRWRpdFNjcmlwdFNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3VwZGF0ZVJlc291cmNlQ29udGVudCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNvdXJjZUZpbGUucHJvdG90eXBlLnNldCBjb250ZW50KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNv
dXJjZUZyYW1lLnByb3RvdHlwZS5faGFuZGxlU2F2ZS5kaWRFZGl0U2NyaXB0U291cmNlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX2hhbmRsZVNhdmUpOgor
CiAyMDExLTA0LTA2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCmlu
ZGV4IDFhMWI0YWQuLjVhYTA3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKQEAg
LTEzNCwyNCArMTM0LDM0IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG9sZFNvdXJjZSA9IHNvdXJjZUZpbGUuY29udGVu
dDsKICAgICAgICAgZnVuY3Rpb24gZGlkRWRpdFNjcmlwdFNvdXJjZShlcnJvcikKICAgICAgICAg
ewotICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IpOwotICAgICAgICAgICAgaWYgKGVycm9yKQot
ICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgdGhpcy5fdXBkYXRlQnJlYWtw
b2ludHNBZnRlckxpdmVFZGl0KHNvdXJjZUZpbGVJZCwgb2xkU291cmNlLCBuZXdTb3VyY2UpOwot
Ci0gICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwo
c2NyaXB0LnNvdXJjZVVSTCk7Ci0gICAgICAgICAgICBpZiAocmVzb3VyY2UpIHsKLSAgICAgICAg
ICAgICAgICB2YXIgcmV2ZXJ0SGFuZGxlID0gdGhpcy5lZGl0U2NyaXB0U291cmNlLmJpbmQodGhp
cywgc291cmNlRmlsZUlkLCBvbGRTb3VyY2UsIHNvdXJjZUZpbGUucmVsb2FkLmJpbmQoc291cmNl
RmlsZSkpOwotICAgICAgICAgICAgICAgIHJlc291cmNlLnNldENvbnRlbnQobmV3U291cmNlLCBy
ZXZlcnRIYW5kbGUpOworICAgICAgICAgICAgaWYgKCFlcnJvcikgeworICAgICAgICAgICAgICAg
IHNvdXJjZUZpbGUuY29udGVudCA9IG5ld1NvdXJjZTsKKyAgICAgICAgICAgICAgICB0aGlzLl91
cGRhdGVSZXNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgb2xkU291cmNlLCBuZXdTb3VyY2UpOwog
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9k
ZWwuY2FsbEZyYW1lcykKKyAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yKTsKKworICAgICAgICAg
ICAgaWYgKCFlcnJvciAmJiBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5jYWxsRnJhbWVzKQog
ICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnZ2VyUGF1c2VkKCk7CiAgICAgICAgIH0KICAgICAg
ICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuZWRpdFNjcmlwdFNvdXJjZShzY3JpcHQuc291
cmNlSUQsIG5ld1NvdXJjZSwgZGlkRWRpdFNjcmlwdFNvdXJjZS5iaW5kKHRoaXMpKTsKICAgICB9
LAogCisgICAgX3VwZGF0ZVJlc291cmNlQ29udGVudDogZnVuY3Rpb24oc291cmNlRmlsZSwgb2xk
U291cmNlLCBuZXdTb3VyY2UpCisgICAgeworICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNw
ZWN0b3IucmVzb3VyY2VGb3JVUkwoc291cmNlRmlsZS51cmwpOworICAgICAgICBpZiAoIXJlc291
cmNlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZ1bmN0aW9uIGRpZEVkaXRTY3Jp
cHRTb3VyY2UoZXJyb3IpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUJyZWFr
cG9pbnRzQWZ0ZXJMaXZlRWRpdChzb3VyY2VGaWxlLmlkLCBvbGRTb3VyY2UsIG5ld1NvdXJjZSk7
CisgICAgICAgICAgICBzb3VyY2VGaWxlLnJlbG9hZCgpOworICAgICAgICB9CisgICAgICAgIHZh
ciByZXZlcnRIYW5kbGUgPSB0aGlzLmVkaXRTY3JpcHRTb3VyY2UuYmluZCh0aGlzLCBzb3VyY2VG
aWxlLmlkLCBvbGRTb3VyY2UsIGRpZEVkaXRTY3JpcHRTb3VyY2UuYmluZCh0aGlzKSk7CisgICAg
ICAgIHJlc291cmNlLnNldENvbnRlbnQobmV3U291cmNlLCByZXZlcnRIYW5kbGUpOworICAgIH0s
CisKICAgICBfdXBkYXRlQnJlYWtwb2ludHNBZnRlckxpdmVFZGl0OiBmdW5jdGlvbihzb3VyY2VG
aWxlSWQsIG9sZFNvdXJjZSwgbmV3U291cmNlKQogICAgIHsKICAgICAgICAgLy8gQ2xlYXIgYW5k
IHJlLWNyZWF0ZSBicmVha3BvaW50cyBhY2NvcmRpbmcgdG8gdGV4dCBkaWZmLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzCmluZGV4IDRmNTZj
MDAuLmIyODZmZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlRmlsZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NvdXJjZUZpbGUuanMKQEAgLTY4LDYgKzY4LDEyIEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGaWxl
LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRlbnQ7CiAgICAgfSwKIAor
ICAgIHNldCBjb250ZW50KGNvbnRlbnQpCisgICAgeworICAgICAgICAvLyBGSVhNRTogbW92ZSBs
aXZlIGVkaXQgaW1wbGVtZW50YXRpb24gdG8gU291cmNlRmlsZSBhbmQgcmVtb3ZlIHRoaXMgc2V0
dGVyLgorICAgICAgICB0aGlzLl9jb250ZW50ID0gY29udGVudDsKKyAgICB9LAorCiAgICAgcmVx
dWVzdFNvdXJjZU1hcHBpbmc6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgaWYg
KCF0aGlzLl9tYXBwaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlRnJhbWUuanMKaW5kZXggN2YwN2ExNy4uOTY4Nzk3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCkBAIC04ODcsMTIg
Kzg4NywyNiBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogCiAgICAg
ICAgIGZ1bmN0aW9uIGRpZEVkaXRTY3JpcHRTb3VyY2UoZXJyb3IpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGlmIChlcnJvciAmJiAhdGhpcy5fdmlld2VyU3RhdGUgJiYgdGhpcy5fdGV4dE1vZGVs
LnRleHQgPT09IG5ld1NvdXJjZSkgeworICAgICAgICAgICAgaWYgKHRoaXMuX3ZpZXdlclN0YXRl
IHx8IHRoaXMuX3RleHRNb2RlbC50ZXh0ICE9PSBuZXdTb3VyY2UpIHsKKyAgICAgICAgICAgICAg
ICAvLyBFZGl0aW5nIGlzIGluIHByb2dyZXNzLgorICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICAgICAg
dGhpcy5fdmlld2VyU3RhdGUgPSBvcmlnaW5hbFZpZXdlclN0YXRlOwogICAgICAgICAgICAgICAg
IHRoaXMuX3RleHRWaWV3ZXIucmVhZE9ubHkgPSBmYWxzZTsKICAgICAgICAgICAgICAgICB0aGlz
Ll9kZWxlZ2F0ZS5zZXRTY3JpcHRTb3VyY2VJc0JlaW5nRWRpdGVkKHRydWUpOwogICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5sb2coZXJyb3IsIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZS5NZXNzYWdlTGV2ZWwuRXJyb3IpOwogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93
Q29uc29sZSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgZm9yICh2YXIgbGluZU51bWJlciBpbiBvcmlnaW5hbFZpZXdlclN0YXRlLmJyZWFr
cG9pbnRzKQorICAgICAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnJlbW92ZUJyZWFrcG9pbnQo
bGluZU51bWJlcik7CisKKyAgICAgICAgICAgIGZvciAodmFyIGxpbmVOdW1iZXIgaW4gdGhpcy5f
YnJlYWtwb2ludHMpIHsKKyAgICAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHRoaXMuX2Jy
ZWFrcG9pbnRzW2xpbmVOdW1iZXJdOworICAgICAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnNl
dEJyZWFrcG9pbnQoTnVtYmVyKGxpbmVOdW1iZXIpLCBicmVha3BvaW50LmNvbmRpdGlvbiwgYnJl
YWtwb2ludC5lbmFibGVkKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICB0aGlz
Ll9kZWxlZ2F0ZS5lZGl0U2NyaXB0U291cmNlKG5ld1NvdXJjZSwgZGlkRWRpdFNjcmlwdFNvdXJj
ZS5iaW5kKHRoaXMpKTsK
</data>
<flag name="review"
          id="81143"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88652</attachid>
            <date>2011-04-07 09:55:24 -0700</date>
            <delta_ts>2011-04-08 02:58:26 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>10176</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYzliYmZjZS4uODkyMjk1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA0
LTA3ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHVw
ZGF0ZSBicmVha3BvaW50cyBhY2NvcmRpbmcgdG8gc291cmNlIGZyYW1lIGRlY29yYXRpb25zIGFm
dGVyIGxpdmUgZWRpdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU4MDI5CisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0Lmh0bWw6
CisKIDIwMTEtMDQtMDcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1leHBlY3RlZC50eHQKaW5kZXggYTc2Mzdk
Ni4uYjY1NjE4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xp
dmUtZWRpdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2xpdmUtZWRpdC1leHBlY3RlZC50eHQKQEAgLTIxLDUgKzIxLDcgQEAgQ2FsbCBzdGFjazoKICAg
ICA0KSBJbmplY3RlZFNjcmlwdC5fZXZhbHVhdGVBbmRXcmFwICg6MjY1KQogICAgIDUpIEluamVj
dGVkU2NyaXB0LmV2YWx1YXRlICg6MjQ1KQogU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgorCitS
dW5uaW5nOiB0ZXN0QnJlYWtwb2ludHNVcGRhdGVkCiBEZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQuaHRtbAppbmRleCAz
ZTBiZDhkLi5iZjBiZWNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvbGl2ZS1lZGl0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xp
dmUtZWRpdC5odG1sCkBAIC0xOCw4ICsxOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAg
ICAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQogICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0
b3IuZGVidWdnZXJNb2RlbCwgIl9kaWRFZGl0U2NyaXB0U291cmNlIiwgZGlkRWRpdFNjcmlwdFNv
dXJjZSk7Ci0gICAgICAgICAgICAgICAgcmVwbGFjZUluU291cmNlKHNvdXJjZUZyYW1lLCAicmV0
dXJuIDA7IiwgInJldHVybiBcImxpdmUtZWRpdGVkIHN0cmluZ1wiOyIpOworICAgICAgICAgICAg
ICAgIHJlcGxhY2VJblNvdXJjZShzb3VyY2VGcmFtZSwgInJldHVybiAwOyIsICJyZXR1cm4gXCJs
aXZlLWVkaXRlZCBzdHJpbmdcIjsiLCBkaWRFZGl0U2NyaXB0U291cmNlKTsKICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gZGlkRWRpdFNjcmlwdFNvdXJjZSgpCkBAIC00Nyw4
ICs0Niw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgICAgICBmdW5jdGlvbiBwYXVzZWQo
Y2FsbEZyYW1lcykKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwsICJfZGlkRWRpdFNjcmlwdFNv
dXJjZSIsIGRpZEVkaXRTY3JpcHRTb3VyY2UpOwotICAgICAgICAgICAgICAgIHJlcGxhY2VJblNv
dXJjZShwYW5lbC52aXNpYmxlVmlldywgInJldHVybiAxOyIsICJyZXR1cm4gMjtcblxuXG5cbiIp
OworICAgICAgICAgICAgICAgIHJlcGxhY2VJblNvdXJjZShwYW5lbC52aXNpYmxlVmlldywgInJl
dHVybiAxOyIsICJyZXR1cm4gMjtcblxuXG5cbiIsIGRpZEVkaXRTY3JpcHRTb3VyY2UpOwogICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBmdW5jdGlvbiBkaWRFZGl0U2NyaXB0U291cmNlKCkK
QEAgLTYyLDE1ICs2MCw1MiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydEVxdWFscygiMyIsIHJlc3VsdC5kZXNjcmlwdGlvbiwgImVkaXRlZCBm
dW5jdGlvbiByZXR1cm5zIHdyb25nIHJlc3VsdCIpOwogICAgICAgICAgICAgICAgIG5leHQoKTsK
ICAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0QnJlYWtw
b2ludHNVcGRhdGVkKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
c2hvd1NjcmlwdFNvdXJjZSgiZWRpdC1tZS5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOworCisg
ICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihzb3Vy
Y2VGcmFtZSwgImFkZEJyZWFrcG9pbnQiLCBicmVha3BvaW50QWRkZWQpOworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3Quc2V0QnJlYWtwb2ludChzb3VyY2VGcmFtZSwgMiwgIiIsIHRydWUp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBicmVha3BvaW50QWRkZWQo
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJlcGxhY2VJblNvdXJjZShwYW5lbC52
aXNpYmxlVmlldywgImZ1bmN0aW9uIGYoKSIsICJmdW5jdGlvbiBuZXdGdW5jdGlvbkNyZWF0ZWRX
aXRoTGl2ZUVkaXQoKVxue1xufVxuZnVuY3Rpb24gZigpIiwgZGlkRWRpdFNjcmlwdFNvdXJjZSk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGRpZEVkaXRTY3JpcHRTb3Vy
Y2UoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBicmVha3BvaW50cyA9IHBh
bmVsLnZpc2libGVWaWV3Ll9icmVha3BvaW50czsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBs
aW5lTnVtYmVyIGluIGJyZWFrcG9pbnRzKQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydEVxdWFscygiNSIsIGxpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgIG5leHQo
KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIF0pOwogCi0gICAgZnVuY3Rpb24gcmVw
bGFjZUluU291cmNlKHNvdXJjZUZyYW1lLCBzdHJpbmcsIHJlcGxhY2VtZW50KQorICAgIGZ1bmN0
aW9uIHJlcGxhY2VJblNvdXJjZShzb3VyY2VGcmFtZSwgc3RyaW5nLCByZXBsYWNlbWVudCwgY2Fs
bGJhY2spCiAgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTW9kZWwsICJfZGlkRWRpdFNjcmlwdFNvdXJjZSIsIGNhbGxiYWNrKTsKICAg
ICAgICAgc291cmNlRnJhbWUuX3RleHRWaWV3ZXIucmVhZE9ubHkgPSBmYWxzZTsKICAgICAgICAg
c291cmNlRnJhbWUuX3N0YXJ0RWRpdGluZygpOwotICAgICAgICB2YXIgbmV3VGV4dCA9IHNvdXJj
ZUZyYW1lLl90ZXh0TW9kZWwudGV4dC5yZXBsYWNlKHN0cmluZywgcmVwbGFjZW1lbnQpOwotICAg
ICAgICBzb3VyY2VGcmFtZS5fdGV4dE1vZGVsLnNldFRleHQobnVsbCwgbmV3VGV4dCk7CisgICAg
ICAgIHZhciBvbGRSYW5nZSwgbmV3UmFuZ2U7CisgICAgICAgIHZhciBsaW5lcyA9IHNvdXJjZUZy
YW1lLl90ZXh0TW9kZWwuX2xpbmVzOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmVz
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgY29sdW1uID0gbGluZXNbaV0uaW5kZXhP
ZihzdHJpbmcpOworICAgICAgICAgICAgaWYgKGNvbHVtbiA9PT0gLTEpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICBsaW5lc1tpXSA9IGxpbmVzW2ldLnJlcGxhY2Uoc3Ry
aW5nLCByZXBsYWNlbWVudCk7CisgICAgICAgICAgICB2YXIgbGluZUVuZGluZ3MgPSByZXBsYWNl
bWVudC5saW5lRW5kaW5ncygpOworICAgICAgICAgICAgdmFyIGxhc3RMaW5lTGVuZ3RoID0gbGlu
ZUVuZGluZ3NbbGluZUVuZGluZ3MubGVuZ3RoIC0gMV0gLSAobGluZUVuZGluZ3NbbGluZUVuZGlu
Z3MubGVuZ3RoIC0gMl0gfHwgMCk7CisgICAgICAgICAgICBvbGRSYW5nZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuVGV4dFJhbmdlKGksIGNvbHVtbiwgaSwgY29sdW1uICsgc3RyaW5nLmxlbmd0aCk7Cisg
ICAgICAgICAgICBuZXdSYW5nZSA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKGksIGNvbHVt
biwgaSArIGxpbmVFbmRpbmdzLmxlbmd0aCAtIDEsIGxhc3RMaW5lTGVuZ3RoKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHNvdXJjZUZyYW1lLl9lbmRFZGl0aW5nKG9s
ZFJhbmdlLCBuZXdSYW5nZSk7CiAgICAgICAgIHNvdXJjZUZyYW1lLl9oYW5kbGVTYXZlKCk7CiAg
ICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNTg4MTMzLi42ZTM1Y2ZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMTEtMDQtMDcgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2ViIEluc3BlY3RvcjogdXBkYXRlIGJyZWFrcG9pbnRzIGFjY29yZGluZyB0byBzb3VyY2Ug
ZnJhbWUgZGVjb3JhdGlvbnMgYWZ0ZXIgbGl2ZSBlZGl0LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgwMjkKKworICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5lZGl0U2NyaXB0U291cmNl
LmRpZEVkaXRTY3JpcHRTb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwucHJvdG90eXBlLmVkaXRTY3JpcHRTb3VyY2UpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl91cGRhdGVSZXNv
dXJjZUNvbnRlbnQuZGlkRWRpdFNjcmlwdFNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3VwZGF0ZVJlc291cmNlQ29udGVu
dCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZpbGUucHJvdG90eXBlLnNldCBjb250ZW50KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5faGFuZGxlU2F2ZS5kaWRFZGl0U2NyaXB0U291
cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX2hhbmRs
ZVNhdmUpOgorCiAyMDExLTA0LTA3ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5qcwppbmRleCA3NWVkYjA4Li45Y2RkNWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LmpzCkBAIC0xNDAsMjQgKzE0MCwzNCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRp
b25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBvbGRTb3VyY2UgPSBzb3VyY2VGaWxl
LmNvbnRlbnQ7CiAgICAgICAgIGZ1bmN0aW9uIGRpZEVkaXRTY3JpcHRTb3VyY2UoZXJyb3IpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yKTsKLSAgICAgICAgICAgIGlmIChl
cnJvcikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIHRoaXMuX3VwZGF0
ZUJyZWFrcG9pbnRzQWZ0ZXJMaXZlRWRpdChzb3VyY2VGaWxlSWQsIG9sZFNvdXJjZSwgbmV3U291
cmNlKTsKLQotICAgICAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNl
Rm9yVVJMKHNjcmlwdC5zb3VyY2VVUkwpOwotICAgICAgICAgICAgaWYgKHJlc291cmNlKSB7Ci0g
ICAgICAgICAgICAgICAgdmFyIHJldmVydEhhbmRsZSA9IHRoaXMuZWRpdFNjcmlwdFNvdXJjZS5i
aW5kKHRoaXMsIHNvdXJjZUZpbGVJZCwgb2xkU291cmNlLCBzb3VyY2VGaWxlLnJlbG9hZC5iaW5k
KHNvdXJjZUZpbGUpKTsKLSAgICAgICAgICAgICAgICByZXNvdXJjZS5zZXRDb250ZW50KG5ld1Nv
dXJjZSwgcmV2ZXJ0SGFuZGxlKTsKKyAgICAgICAgICAgIGlmICghZXJyb3IpIHsKKyAgICAgICAg
ICAgICAgICBzb3VyY2VGaWxlLmNvbnRlbnQgPSBuZXdTb3VyY2U7CisgICAgICAgICAgICAgICAg
dGhpcy5fdXBkYXRlUmVzb3VyY2VDb250ZW50KHNvdXJjZUZpbGUsIG9sZFNvdXJjZSwgbmV3U291
cmNlKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1vZGVsLmNhbGxGcmFtZXMpCisgICAgICAgICAgICBjYWxsYmFjayhlcnJvcik7CisKKyAg
ICAgICAgICAgIGlmICghZXJyb3IgJiYgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuY2FsbEZy
YW1lcykKICAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z2dlclBhdXNlZCgpOwogICAgICAgICB9
CiAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmVkaXRTY3JpcHRTb3VyY2Uoc2Ny
aXB0LnNvdXJjZUlELCBuZXdTb3VyY2UsIGRpZEVkaXRTY3JpcHRTb3VyY2UuYmluZCh0aGlzKSk7
CiAgICAgfSwKIAorICAgIF91cGRhdGVSZXNvdXJjZUNvbnRlbnQ6IGZ1bmN0aW9uKHNvdXJjZUZp
bGUsIG9sZFNvdXJjZSwgbmV3U291cmNlKQorICAgIHsKKyAgICAgICAgdmFyIHJlc291cmNlID0g
V2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKHNvdXJjZUZpbGUudXJsKTsKKyAgICAgICAgaWYg
KCFyZXNvdXJjZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmdW5jdGlvbiBkaWRF
ZGl0U2NyaXB0U291cmNlKGVycm9yKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLl91cGRh
dGVCcmVha3BvaW50c0FmdGVyTGl2ZUVkaXQoc291cmNlRmlsZS5pZCwgb2xkU291cmNlLCBuZXdT
b3VyY2UpOworICAgICAgICAgICAgc291cmNlRmlsZS5yZWxvYWQoKTsKKyAgICAgICAgfQorICAg
ICAgICB2YXIgcmV2ZXJ0SGFuZGxlID0gdGhpcy5lZGl0U2NyaXB0U291cmNlLmJpbmQodGhpcywg
c291cmNlRmlsZS5pZCwgb2xkU291cmNlLCBkaWRFZGl0U2NyaXB0U291cmNlLmJpbmQodGhpcykp
OworICAgICAgICByZXNvdXJjZS5zZXRDb250ZW50KG5ld1NvdXJjZSwgcmV2ZXJ0SGFuZGxlKTsK
KyAgICB9LAorCiAgICAgX3VwZGF0ZUJyZWFrcG9pbnRzQWZ0ZXJMaXZlRWRpdDogZnVuY3Rpb24o
c291cmNlRmlsZUlkLCBvbGRTb3VyY2UsIG5ld1NvdXJjZSkKICAgICB7CiAgICAgICAgIC8vIENs
ZWFyIGFuZCByZS1jcmVhdGUgYnJlYWtwb2ludHMgYWNjb3JkaW5nIHRvIHRleHQgZGlmZi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcwppbmRl
eCA0ZjU2YzAwLi5iMjg2ZmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VGaWxlLmpzCkBAIC02OCw2ICs2OCwxMiBAQCBXZWJJbnNwZWN0b3IuU291
cmNlRmlsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50OwogICAg
IH0sCiAKKyAgICBzZXQgY29udGVudChjb250ZW50KQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6
IG1vdmUgbGl2ZSBlZGl0IGltcGxlbWVudGF0aW9uIHRvIFNvdXJjZUZpbGUgYW5kIHJlbW92ZSB0
aGlzIHNldHRlci4KKyAgICAgICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7CisgICAgfSwKKwog
ICAgIHJlcXVlc3RTb3VyY2VNYXBwaW5nOiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7CiAgICAg
ICAgIGlmICghdGhpcy5fbWFwcGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCmluZGV4IDdmMDdhMTcuLjU5MzcwODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwpAQCAt
ODg3LDEyICs4ODcsMjYgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsK
IAogICAgICAgICBmdW5jdGlvbiBkaWRFZGl0U2NyaXB0U291cmNlKGVycm9yKQogICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAoZXJyb3IgJiYgIXRoaXMuX3ZpZXdlclN0YXRlICYmIHRoaXMuX3Rl
eHRNb2RlbC50ZXh0ID09PSBuZXdTb3VyY2UpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLl92aWV3
ZXJTdGF0ZSB8fCB0aGlzLl90ZXh0TW9kZWwudGV4dCAhPT0gbmV3U291cmNlKSB7CisgICAgICAg
ICAgICAgICAgLy8gRWRpdGluZyBpcyBpbiBwcm9ncmVzcy4KKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAg
ICAgICAgIHRoaXMuX3ZpZXdlclN0YXRlID0gb3JpZ2luYWxWaWV3ZXJTdGF0ZTsKICAgICAgICAg
ICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLnJlYWRPbmx5ID0gZmFsc2U7CiAgICAgICAgICAgICAg
ICAgdGhpcy5fZGVsZWdhdGUuc2V0U2NyaXB0U291cmNlSXNCZWluZ0VkaXRlZCh0cnVlKTsKICAg
ICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IubG9nKGVycm9yLCBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkVycm9yKTsKICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3Iuc2hvd0NvbnNvbGUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGZvciAodmFyIGxpbmVOdW1iZXIgaW4gb3JpZ2luYWxWaWV3ZXJTdGF0
ZS5icmVha3BvaW50cykKKyAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5yZW1vdmVCcmVh
a3BvaW50KE51bWJlcihsaW5lTnVtYmVyKSk7CisKKyAgICAgICAgICAgIGZvciAodmFyIGxpbmVO
dW1iZXIgaW4gdGhpcy5fYnJlYWtwb2ludHMpIHsKKyAgICAgICAgICAgICAgICB2YXIgYnJlYWtw
b2ludCA9IHRoaXMuX2JyZWFrcG9pbnRzW2xpbmVOdW1iZXJdOworICAgICAgICAgICAgICAgIHRo
aXMuX2RlbGVnYXRlLnNldEJyZWFrcG9pbnQoTnVtYmVyKGxpbmVOdW1iZXIpLCBicmVha3BvaW50
LmNvbmRpdGlvbiwgYnJlYWtwb2ludC5lbmFibGVkKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5lZGl0U2NyaXB0U291cmNlKG5ld1NvdXJjZSwgZGlk
RWRpdFNjcmlwdFNvdXJjZS5iaW5kKHRoaXMpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88787</attachid>
            <date>2011-04-08 02:58:26 -0700</date>
            <delta_ts>2011-04-08 05:23:17 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>10513</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OTIxMzM5Li4wZjFlMWIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDQt
MDcgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdXBk
YXRlIGJyZWFrcG9pbnRzIGFjY29yZGluZyB0byBzb3VyY2UgZnJhbWUgZGVjb3JhdGlvbnMgYWZ0
ZXIgbGl2ZSBlZGl0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTgwMjkKKworICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQuaHRtbDoK
KwogMjAxMS0wNC0wNyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW0Nocm9taXVtXSBVcGRhdGUgZXhwZWN0YXRpb25zIGZvciByODMyMTYgYW5kIHI4MzIzNS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1leHBl
Y3RlZC50eHQKaW5kZXggYTc2MzdkNi4uYjY1NjE4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1leHBlY3RlZC50eHQKQEAgLTIxLDUgKzIx
LDcgQEAgQ2FsbCBzdGFjazoKICAgICA0KSBJbmplY3RlZFNjcmlwdC5fZXZhbHVhdGVBbmRXcmFw
ICg6MjY1KQogICAgIDUpIEluamVjdGVkU2NyaXB0LmV2YWx1YXRlICg6MjQ1KQogU2NyaXB0IGV4
ZWN1dGlvbiByZXN1bWVkLgorCitSdW5uaW5nOiB0ZXN0QnJlYWtwb2ludHNVcGRhdGVkCiBEZWJ1
Z2dlciB3YXMgZGlzYWJsZWQuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9saXZlLWVkaXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9s
aXZlLWVkaXQuaHRtbAppbmRleCAzZTBiZDhkLi5iZjBiZWNiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC5odG1sCkBAIC0xOCw4ICsxOCw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogCiAgICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291cmNlKHNv
dXJjZUZyYW1lKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkU25pZmZlcihXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbCwgIl9kaWRFZGl0U2NyaXB0U291
cmNlIiwgZGlkRWRpdFNjcmlwdFNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgcmVwbGFjZUluU291
cmNlKHNvdXJjZUZyYW1lLCAicmV0dXJuIDA7IiwgInJldHVybiBcImxpdmUtZWRpdGVkIHN0cmlu
Z1wiOyIpOworICAgICAgICAgICAgICAgIHJlcGxhY2VJblNvdXJjZShzb3VyY2VGcmFtZSwgInJl
dHVybiAwOyIsICJyZXR1cm4gXCJsaXZlLWVkaXRlZCBzdHJpbmdcIjsiLCBkaWRFZGl0U2NyaXB0
U291cmNlKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gZGlkRWRpdFNj
cmlwdFNvdXJjZSgpCkBAIC00Nyw4ICs0Niw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAg
ICAgICBmdW5jdGlvbiBwYXVzZWQoY2FsbEZyYW1lcykKICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9k
ZWwsICJfZGlkRWRpdFNjcmlwdFNvdXJjZSIsIGRpZEVkaXRTY3JpcHRTb3VyY2UpOwotICAgICAg
ICAgICAgICAgIHJlcGxhY2VJblNvdXJjZShwYW5lbC52aXNpYmxlVmlldywgInJldHVybiAxOyIs
ICJyZXR1cm4gMjtcblxuXG5cbiIpOworICAgICAgICAgICAgICAgIHJlcGxhY2VJblNvdXJjZShw
YW5lbC52aXNpYmxlVmlldywgInJldHVybiAxOyIsICJyZXR1cm4gMjtcblxuXG5cbiIsIGRpZEVk
aXRTY3JpcHRTb3VyY2UpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBmdW5jdGlvbiBk
aWRFZGl0U2NyaXB0U291cmNlKCkKQEAgLTYyLDE1ICs2MCw1MiBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiMyIsIHJlc3VsdC5k
ZXNjcmlwdGlvbiwgImVkaXRlZCBmdW5jdGlvbiByZXR1cm5zIHdyb25nIHJlc3VsdCIpOwogICAg
ICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKworICAgICAg
ICBmdW5jdGlvbiB0ZXN0QnJlYWtwb2ludHNVcGRhdGVkKG5leHQpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgiZWRpdC1tZS5qcyIsIGRpZFNo
b3dTY3JpcHRTb3VyY2UpOworCisgICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93U2NyaXB0U291
cmNlKHNvdXJjZUZyYW1lKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkU25pZmZlcihzb3VyY2VGcmFtZSwgImFkZEJyZWFrcG9pbnQiLCBicmVha3BvaW50
QWRkZWQpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2V0QnJlYWtwb2ludChzb3Vy
Y2VGcmFtZSwgMiwgIiIsIHRydWUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5j
dGlvbiBicmVha3BvaW50QWRkZWQoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJl
cGxhY2VJblNvdXJjZShwYW5lbC52aXNpYmxlVmlldywgImZ1bmN0aW9uIGYoKSIsICJmdW5jdGlv
biBuZXdGdW5jdGlvbkNyZWF0ZWRXaXRoTGl2ZUVkaXQoKVxue1xufVxuZnVuY3Rpb24gZigpIiwg
ZGlkRWRpdFNjcmlwdFNvdXJjZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIGRpZEVkaXRTY3JpcHRTb3VyY2UoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IHZhciBicmVha3BvaW50cyA9IHBhbmVsLnZpc2libGVWaWV3Ll9icmVha3BvaW50czsKKyAgICAg
ICAgICAgICAgICBmb3IgKHZhciBsaW5lTnVtYmVyIGluIGJyZWFrcG9pbnRzKQorICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiNSIsIGxpbmVOdW1iZXIpOwor
ICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIF0p
OwogCi0gICAgZnVuY3Rpb24gcmVwbGFjZUluU291cmNlKHNvdXJjZUZyYW1lLCBzdHJpbmcsIHJl
cGxhY2VtZW50KQorICAgIGZ1bmN0aW9uIHJlcGxhY2VJblNvdXJjZShzb3VyY2VGcmFtZSwgc3Ry
aW5nLCByZXBsYWNlbWVudCwgY2FsbGJhY2spCiAgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwsICJfZGlkRWRpdFNjcmlwdFNv
dXJjZSIsIGNhbGxiYWNrKTsKICAgICAgICAgc291cmNlRnJhbWUuX3RleHRWaWV3ZXIucmVhZE9u
bHkgPSBmYWxzZTsKICAgICAgICAgc291cmNlRnJhbWUuX3N0YXJ0RWRpdGluZygpOwotICAgICAg
ICB2YXIgbmV3VGV4dCA9IHNvdXJjZUZyYW1lLl90ZXh0TW9kZWwudGV4dC5yZXBsYWNlKHN0cmlu
ZywgcmVwbGFjZW1lbnQpOwotICAgICAgICBzb3VyY2VGcmFtZS5fdGV4dE1vZGVsLnNldFRleHQo
bnVsbCwgbmV3VGV4dCk7CisgICAgICAgIHZhciBvbGRSYW5nZSwgbmV3UmFuZ2U7CisgICAgICAg
IHZhciBsaW5lcyA9IHNvdXJjZUZyYW1lLl90ZXh0TW9kZWwuX2xpbmVzOworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgY29s
dW1uID0gbGluZXNbaV0uaW5kZXhPZihzdHJpbmcpOworICAgICAgICAgICAgaWYgKGNvbHVtbiA9
PT0gLTEpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBsaW5lc1tpXSA9
IGxpbmVzW2ldLnJlcGxhY2Uoc3RyaW5nLCByZXBsYWNlbWVudCk7CisgICAgICAgICAgICB2YXIg
bGluZUVuZGluZ3MgPSByZXBsYWNlbWVudC5saW5lRW5kaW5ncygpOworICAgICAgICAgICAgdmFy
IGxhc3RMaW5lTGVuZ3RoID0gbGluZUVuZGluZ3NbbGluZUVuZGluZ3MubGVuZ3RoIC0gMV0gLSAo
bGluZUVuZGluZ3NbbGluZUVuZGluZ3MubGVuZ3RoIC0gMl0gfHwgMCk7CisgICAgICAgICAgICBv
bGRSYW5nZSA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKGksIGNvbHVtbiwgaSwgY29sdW1u
ICsgc3RyaW5nLmxlbmd0aCk7CisgICAgICAgICAgICBuZXdSYW5nZSA9IG5ldyBXZWJJbnNwZWN0
b3IuVGV4dFJhbmdlKGksIGNvbHVtbiwgaSArIGxpbmVFbmRpbmdzLmxlbmd0aCAtIDEsIGxhc3RM
aW5lTGVuZ3RoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHNvdXJj
ZUZyYW1lLl9lbmRFZGl0aW5nKG9sZFJhbmdlLCBuZXdSYW5nZSk7CiAgICAgICAgIHNvdXJjZUZy
YW1lLl9oYW5kbGVTYXZlKCk7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkOGRhYWFjLi5kYTU1
OWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDQtMDcgIFBhdmVsIFBvZGl2
aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdXBkYXRlIGJyZWFrcG9pbnRz
IGFjY29yZGluZyB0byBzb3VyY2UgZnJhbWUgZGVjb3JhdGlvbnMgYWZ0ZXIgbGl2ZSBlZGl0Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgwMjkKKwor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3Rv
dHlwZS5lZGl0U2NyaXB0U291cmNlLmRpZEVkaXRTY3JpcHRTb3VyY2UpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLmVkaXRTY3JpcHRT
b3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
cHJvdG90eXBlLl91cGRhdGVSZXNvdXJjZUNvbnRlbnQuZGlkRWRpdFNjcmlwdFNvdXJjZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUu
X3VwZGF0ZVJlc291cmNlQ29udGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9T
b3VyY2VGaWxlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZpbGUucHJvdG90eXBl
LnNldCBjb250ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1l
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5faGFuZGxl
U2F2ZS5kaWRFZGl0U2NyaXB0U291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZS5wcm90b3R5cGUuX2hhbmRsZVNhdmUpOgorCiAyMDExLTA0LTA3ICBKaWEgUHUgIDxqcHVA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4IDQ3NzIwYTIuLmY3NWIwNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwuanMKQEAgLTE0MywyNCArMTQzLDM0IEBAIFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG9sZFNvdXJj
ZSA9IHNvdXJjZUZpbGUuY29udGVudDsKICAgICAgICAgZnVuY3Rpb24gZGlkRWRpdFNjcmlwdFNv
dXJjZShlcnJvcikKICAgICAgICAgewotICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IpOwotICAg
ICAgICAgICAgaWYgKGVycm9yKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAg
ICAgdGhpcy5fdXBkYXRlQnJlYWtwb2ludHNBZnRlckxpdmVFZGl0KHNvdXJjZUZpbGVJZCwgb2xk
U291cmNlLCBuZXdTb3VyY2UpOwotCi0gICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNw
ZWN0b3IucmVzb3VyY2VGb3JVUkwoc2NyaXB0LnNvdXJjZVVSTCk7Ci0gICAgICAgICAgICBpZiAo
cmVzb3VyY2UpIHsKLSAgICAgICAgICAgICAgICB2YXIgcmV2ZXJ0SGFuZGxlID0gdGhpcy5lZGl0
U2NyaXB0U291cmNlLmJpbmQodGhpcywgc291cmNlRmlsZUlkLCBvbGRTb3VyY2UsIHNvdXJjZUZp
bGUucmVsb2FkLmJpbmQoc291cmNlRmlsZSkpOwotICAgICAgICAgICAgICAgIHJlc291cmNlLnNl
dENvbnRlbnQobmV3U291cmNlLCByZXZlcnRIYW5kbGUpOworICAgICAgICAgICAgaWYgKCFlcnJv
cikgeworICAgICAgICAgICAgICAgIHNvdXJjZUZpbGUuY29udGVudCA9IG5ld1NvdXJjZTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl91cGRhdGVSZXNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgb2xk
U291cmNlLCBuZXdTb3VyY2UpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuY2FsbEZyYW1lcykKKyAgICAgICAgICAgIGNhbGxiYWNr
KGVycm9yKTsKKworICAgICAgICAgICAgaWYgKCFlcnJvciAmJiBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5jYWxsRnJhbWVzKQogICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnZ2VyUGF1c2Vk
KCk7CiAgICAgICAgIH0KICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuZWRpdFNj
cmlwdFNvdXJjZShzY3JpcHQuc291cmNlSUQsIG5ld1NvdXJjZSwgZGlkRWRpdFNjcmlwdFNvdXJj
ZS5iaW5kKHRoaXMpKTsKICAgICB9LAogCisgICAgX3VwZGF0ZVJlc291cmNlQ29udGVudDogZnVu
Y3Rpb24oc291cmNlRmlsZSwgb2xkU291cmNlLCBuZXdTb3VyY2UpCisgICAgeworICAgICAgICB2
YXIgcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwoc291cmNlRmlsZS51cmwp
OworICAgICAgICBpZiAoIXJlc291cmNlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGZ1bmN0aW9uIGRpZEVkaXRTY3JpcHRTb3VyY2UoZXJyb3IpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHRoaXMuX3VwZGF0ZUJyZWFrcG9pbnRzQWZ0ZXJMaXZlRWRpdChzb3VyY2VGaWxlLmlkLCBv
bGRTb3VyY2UsIG5ld1NvdXJjZSk7CisgICAgICAgICAgICBzb3VyY2VGaWxlLnJlbG9hZCgpOwor
ICAgICAgICB9CisgICAgICAgIHZhciByZXZlcnRIYW5kbGUgPSB0aGlzLmVkaXRTY3JpcHRTb3Vy
Y2UuYmluZCh0aGlzLCBzb3VyY2VGaWxlLmlkLCBvbGRTb3VyY2UsIGRpZEVkaXRTY3JpcHRTb3Vy
Y2UuYmluZCh0aGlzKSk7CisgICAgICAgIHJlc291cmNlLnNldENvbnRlbnQobmV3U291cmNlLCBy
ZXZlcnRIYW5kbGUpOworICAgIH0sCisKICAgICBfdXBkYXRlQnJlYWtwb2ludHNBZnRlckxpdmVF
ZGl0OiBmdW5jdGlvbihzb3VyY2VGaWxlSWQsIG9sZFNvdXJjZSwgbmV3U291cmNlKQogICAgIHsK
ICAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9zb3VyY2VGaWxlc1tzb3VyY2VGaWxlSWRd
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VG
aWxlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpz
CmluZGV4IDRmNTZjMDAuLmIyODZmZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMKQEAgLTY4LDYgKzY4LDEyIEBAIFdlYkluc3BlY3Rv
ci5Tb3VyY2VGaWxlLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRlbnQ7
CiAgICAgfSwKIAorICAgIHNldCBjb250ZW50KGNvbnRlbnQpCisgICAgeworICAgICAgICAvLyBG
SVhNRTogbW92ZSBsaXZlIGVkaXQgaW1wbGVtZW50YXRpb24gdG8gU291cmNlRmlsZSBhbmQgcmVt
b3ZlIHRoaXMgc2V0dGVyLgorICAgICAgICB0aGlzLl9jb250ZW50ID0gY29udGVudDsKKyAgICB9
LAorCiAgICAgcmVxdWVzdFNvdXJjZU1hcHBpbmc6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsK
ICAgICAgICAgaWYgKCF0aGlzLl9tYXBwaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKaW5kZXggN2YwN2ExNy4uMTA2MjY1NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpz
CkBAIC04ODcsMTUgKzg4NywyNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBl
ID0gewogCiAgICAgICAgIGZ1bmN0aW9uIGRpZEVkaXRTY3JpcHRTb3VyY2UoZXJyb3IpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGlmIChlcnJvciAmJiAhdGhpcy5fdmlld2VyU3RhdGUgJiYgdGhp
cy5fdGV4dE1vZGVsLnRleHQgPT09IG5ld1NvdXJjZSkgeworICAgICAgICAgICAgdGhpcy5fZWRp
dFNjcmlwdFNvdXJjZUluUHJvZ3Jlc3MgPSBmYWxzZTsKKworICAgICAgICAgICAgaWYgKGVycm9y
KSB7CiAgICAgICAgICAgICAgICAgdGhpcy5fdmlld2VyU3RhdGUgPSBvcmlnaW5hbFZpZXdlclN0
YXRlOwogICAgICAgICAgICAgICAgIHRoaXMuX3RleHRWaWV3ZXIucmVhZE9ubHkgPSBmYWxzZTsK
ICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5zZXRTY3JpcHRTb3VyY2VJc0JlaW5nRWRp
dGVkKHRydWUpOwogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5sb2coZXJyb3IsIFdlYklu
c3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuRXJyb3IpOwogICAgICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5zaG93Q29uc29sZSgpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yICh2YXIgbGluZU51bWJlciBpbiBvcmln
aW5hbFZpZXdlclN0YXRlLmJyZWFrcG9pbnRzKQorICAgICAgICAgICAgICAgIHRoaXMuX2RlbGVn
YXRlLnJlbW92ZUJyZWFrcG9pbnQoTnVtYmVyKGxpbmVOdW1iZXIpKTsKKworICAgICAgICAgICAg
Zm9yICh2YXIgbGluZU51bWJlciBpbiB0aGlzLl9icmVha3BvaW50cykgeworICAgICAgICAgICAg
ICAgIHZhciBicmVha3BvaW50ID0gdGhpcy5fYnJlYWtwb2ludHNbbGluZU51bWJlcl07CisgICAg
ICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUuc2V0QnJlYWtwb2ludChOdW1iZXIobGluZU51bWJl
ciksIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBicmVha3BvaW50LmVuYWJsZWQpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgICAgIHRoaXMuX2RlbGVnYXRlLmVkaXRTY3JpcHRTb3VyY2Uo
bmV3U291cmNlLCBkaWRFZGl0U2NyaXB0U291cmNlLmJpbmQodGhpcykpOworICAgICAgICB0aGlz
Ll9lZGl0U2NyaXB0U291cmNlSW5Qcm9ncmVzcyA9IHRydWU7CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0sCiAKQEAgLTkxMiw3ICs5MjQsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUu
cHJvdG90eXBlID0gewogCiAgICAgX2RvdWJsZUNsaWNrOiBmdW5jdGlvbihldmVudCkKICAgICB7
Ci0gICAgICAgIGlmICghdGhpcy5fZGVsZWdhdGUuY2FuRWRpdFNjcmlwdFNvdXJjZSgpKQorICAg
ICAgICBpZiAoIXRoaXMuX2RlbGVnYXRlLmNhbkVkaXRTY3JpcHRTb3VyY2UoKSB8fCB0aGlzLl9l
ZGl0U2NyaXB0U291cmNlSW5Qcm9ncmVzcykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICB2YXIgbGluZVJvdyA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNz
KCJ3ZWJraXQtbGluZS1jb250ZW50Iik7Cg==
</data>
<flag name="review"
          id="81357"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>