<?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>36542</bug_id>
          
          <creation_ts>2010-03-24 10:06:13 -0700</creation_ts>
          <short_desc>shift+click on an existing selection doesn&apos;t work right</short_desc>
          <delta_ts>2010-05-06 10:14:59 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Ojan Vafai">ojan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>203457</commentid>
    <comment_count>0</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-03-24 10:06:13 -0700</bug_when>
    <thetext>Given the following text:
Here is line one.
This is line two.

1. Select all
2. shift+click after the word &quot;here&quot;
3. shift+click before the word &quot;two&quot;
Expected result: The latter half of line one and the first half of line two should be selected.
Actual result: The whole first line and the first half of line two are selected.

The correct Mac behavior is to shrink whichever end of the selection is closest to where you clicked. Windows/Linux have a different expected behavior (the extent of the selection should always be moved on shift+click) that is addressed by bug 25195.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221305</commentid>
    <comment_count>1</comment_count>
      <attachid>55160</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-05 15:31:05 -0700</bug_when>
    <thetext>Created attachment 55160
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221314</commentid>
    <comment_count>2</comment_count>
      <attachid>55160</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-05 15:50:05 -0700</bug_when>
    <thetext>Comment on attachment 55160
Patch

&gt; +            // See &lt;rdar://problem/3668157&gt; REGRESSION (Mail): shift-click deselects when selection
&gt; +            // was created right-to-left
&gt; +            Position start = newSelection.start();
&gt; +            Position end = newSelection.end();
&gt; +            int distanceToStart = textDistance(start, pos);
&gt; +            int distanceToEnd = textDistance(pos, end);
&gt; +            if (distanceToStart &lt; distanceToEnd)
&gt; +                newSelection = VisibleSelection(pos, end);
&gt; +            else
&gt; +                newSelection = VisibleSelection(start, pos);

Thanks for working so hard to get the Mac behavior. But I suspect this is still not quite right. I think it&apos;s important that the end that moved due to the click is the &quot;extent&quot;, so that shift-arrow keys modify that side of the selection. I believe that means we should have VisibleSelection(end, pos) rather than VisibleSelection(pos, end).

I&apos;d like to see a test case that covers that part of the behavior as well. I&apos;m going to say r=me on this as-is, but I hope you go the extra mile and make the refinement I mention above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221316</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-05 15:52:00 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 55160 [details])
&gt; &gt; +            // See &lt;rdar://problem/3668157&gt; REGRESSION (Mail): shift-click deselects when selection
&gt; &gt; +            // was created right-to-left
&gt; &gt; +            Position start = newSelection.start();
&gt; &gt; +            Position end = newSelection.end();
&gt; &gt; +            int distanceToStart = textDistance(start, pos);
&gt; &gt; +            int distanceToEnd = textDistance(pos, end);
&gt; &gt; +            if (distanceToStart &lt; distanceToEnd)
&gt; &gt; +                newSelection = VisibleSelection(pos, end);
&gt; &gt; +            else
&gt; &gt; +                newSelection = VisibleSelection(start, pos);
&gt; 
&gt; Thanks for working so hard to get the Mac behavior. But I suspect this is still
&gt; not quite right. I think it&apos;s important that the end that moved due to the
&gt; click is the &quot;extent&quot;, so that shift-arrow keys modify that side of the
&gt; selection. I believe that means we should have VisibleSelection(end, pos)
&gt; rather than VisibleSelection(pos, end).
&gt; 
&gt; I&apos;d like to see a test case that covers that part of the behavior as well. I&apos;m
&gt; going to say r=me on this as-is, but I hope you go the extra mile and make the
&gt; refinement I mention above.

Hmm, it also seems like the behavior in NSTextView is:

    if (distanceToStart &lt;= distanceToEnd)

because it seems to move the start of the selection, not the end, when there&apos;s a tie.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221318</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-05 15:52:42 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; The correct Mac behavior is to shrink whichever end of the selection is closest
&gt; to where you clicked. Windows/Linux have a different expected behavior (the
&gt; extent of the selection should always be moved on shift+click) that is
&gt; addressed by bug 25195.

You say “shrink” specifically here, but isn&apos;t this rule and this code also used to extend selections?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221347</commentid>
    <comment_count>5</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-05 16:36:31 -0700</bug_when>
    <thetext>Thanks for the quick review!

&gt; &gt; +            if (distanceToStart &lt; distanceToEnd)
&gt; &gt; +                newSelection = VisibleSelection(pos, end);
&gt; &gt; +            else
&gt; &gt; +                newSelection = VisibleSelection(start, pos);
&gt; 
&gt; I think it&apos;s important that the end that moved due to the
&gt; click is the &quot;extent&quot;, so that shift-arrow keys modify that side of the
&gt; selection. I believe that means we should have VisibleSelection(end, pos)
&gt; rather than VisibleSelection(pos, end).

I totally meant to do that. Just lost track of it. 

&gt; I&apos;d like to see a test case that covers that part of the behavior as well. I&apos;m
&gt; going to say r=me on this as-is, but I hope you go the extra mile and make the
&gt; refinement I mention above.

np. I&apos;ll extend the test to check that the anchor/focus of the selection is correct after each shift-click.

&gt; Hmm, it also seems like the behavior in NSTextView is:
&gt; 
&gt;     if (distanceToStart &lt;= distanceToEnd)
&gt; 
&gt; because it seems to move the start of the selection, not the end, when there&apos;s
&gt; a tie.

Good catch. Will fix.

(In reply to comment #4)
&gt; (In reply to comment #0)
&gt; &gt; The correct Mac behavior is to shrink whichever end of the selection is closest
&gt; &gt; to where you clicked. Windows/Linux have a different expected behavior (the
&gt; &gt; extent of the selection should always be moved on shift+click) that is
&gt; &gt; addressed by bug 25195.
&gt; 
&gt; You say “shrink” specifically here, but isn&apos;t this rule and this code also used
&gt; to extend selections?

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221384</commentid>
    <comment_count>6</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-05 17:41:55 -0700</bug_when>
    <thetext>&gt; &gt; &gt; The correct Mac behavior is to shrink whichever end of the selection is closest
&gt; &gt; &gt; to where you clicked. Windows/Linux have a different expected behavior (the
&gt; &gt; &gt; extent of the selection should always be moved on shift+click) that is
&gt; &gt; &gt; addressed by bug 25195.
&gt; &gt; 
&gt; &gt; You say “shrink” specifically here, but isn&apos;t this rule and this code also used
&gt; &gt; to extend selections?
&gt; 
&gt; Will fix.

Hm. I thought this was my changelog description. :) Yes, I was wrong when I originally wrote the bug report. The correct NSTextView behavior is to move whichever end of the selection is closest to the shift+click.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221406</commentid>
    <comment_count>7</comment_count>
      <attachid>55186</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-05 18:11:36 -0700</bug_when>
    <thetext>Created attachment 55186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221410</commentid>
    <comment_count>8</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-05 18:13:41 -0700</bug_when>
    <thetext>Looks like there&apos;s a case where we get the directionality wrong on win/linux. It&apos;s a rare edge case though and non-trivial to fix, so I&apos;m going to land as is (once the bots are more caught up) and file a bug for that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221764</commentid>
    <comment_count>9</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-06 09:58:26 -0700</bug_when>
    <thetext>Committed r58892: &lt;http://trac.webkit.org/changeset/58892&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221775</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-06 10:14:59 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/58892 might have broken GTK Linux 32-bit Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/58891
http://trac.webkit.org/changeset/58892</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55160</attachid>
            <date>2010-05-05 15:31:05 -0700</date>
            <delta_ts>2010-05-05 15:50:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36542-20100505153104.patch</filename>
            <type>text/plain</type>
            <size>9529</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2M2FiZWZmMmE4YTE2NmE3MDc4NjUxZTVmZTU2NTc5NmM2MTE0NDcyLi5jMDgxNmEx
ODUyNzQ1YjA2Y2I3NTE2ZjI2N2E1MTAyYmUxYThhOWRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMDUtMDUgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzaGlmdCtjbGljayBvbiBhbiBl
eGlzdGluZyBzZWxlY3Rpb24gZG9lc24ndCB3b3JrIHJpZ2h0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjU0MgorCisgICAgICAgIE5TVGV4dFZpZXcg
YmVoYXZpb3IgaXMgdG8gbW92ZSB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24KKyAgICAgICAgY2xv
c2VzdCB0byB0aGUgc2hpZnQtY2xpY2suIFdpbi9MaW51eCBiZWhhdmlvciBpcyB0byBhbHdheXMK
KyAgICAgICAgbW92ZSB0aGUgZm9jdXMgZW5kIG9mIHRoZSBzZWxlY3Rpb24uCisKKyAgICAgICAg
KiBlZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvc2hpZnQtY2xpY2suanM6IEFkZGVkLgor
ICAgICAgICAoc2hpZnRDbGljayk6CisgICAgICAgIChhc3NlcnRTZWxlY3Rpb25TdHJpbmcpOgor
ICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NoaWZ0LWNsaWNrLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2hpZnQtY2xpY2suaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vd2luL2VkaXRpbmcvc2VsZWN0aW9uL3NoaWZ0LWNsaWNrLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMDUtMDUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEBhcHBsZS5jb20+CiAKICAgICAgICAgUm9sbCBvdXQgcjU4ODMwIGZvciBicmVha2luZyB0ZXN0
cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0
cy9zaGlmdC1jbGljay5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10
ZXN0cy9zaGlmdC1jbGljay5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mM2I2OGQ4MGFhYzlhYmM4MTAxZjdkNzQ1
Yzg0OGQ5YmRiMDBhZmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vc2NyaXB0LXRlc3RzL3NoaWZ0LWNsaWNrLmpzCkBAIC0wLDAgKzEsNTMgQEAKK2Rl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IHNoaWZ0K2NsaWNraW5nIGRvZXMgdGhlIHBsYXRmb3JtIGNv
cnJlY3QgYmVoYXZpb3IuIik7CisKK3ZhciBmaXJzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOworZmlyc3QuaW5uZXJIVE1MID0gJ29uZSA8c3BhbiBpZD0ic3RhcnQiPjwvc3Bhbj50
d28gdGhyZWUnOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmaXJzdCk7CisKK3ZhciBzZWNv
bmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK3NlY29uZC5pbm5lckhUTUwgPSAn
Zm91ciA8c3BhbiBpZD0iZW5kIj48L3NwYW4+Zml2ZSBzaXgnOworZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChzZWNvbmQpOworCit2YXIgc3RhcnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
c3RhcnQnKTsKK3ZhciBlbmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZW5kJyk7CisKK2Z1
bmN0aW9uIHNoaWZ0Q2xpY2soeCwgeSwgbWFjRXhwZWN0ZWQsIG90aGVyRXhwZWN0ZWQpCit7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKDAsIFsnc2hpZnRLZXknXSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgwLCBbJ3NoaWZ0
S2V5J10pOworICAgIGFzc2VydFNlbGVjdGlvblN0cmluZyhtYWNFeHBlY3RlZCwgb3RoZXJFeHBl
Y3RlZCk7Cit9CisKK2Z1bmN0aW9uIGFzc2VydFNlbGVjdGlvblN0cmluZyhtYWNFeHBlY3RlZCwg
b3RoZXJFeHBlY3RlZCkKK3sKKyAgICB2YXIgZXhwZWN0ZWQgPSBmYWxzZSAmJiBuYXZpZ2F0b3Iu
dXNlckFnZW50LnNlYXJjaCgvXGJNYWMgT1MgWFxiLykgIT0gLTEgPyBtYWNFeHBlY3RlZCA6IG90
aGVyRXhwZWN0ZWQ7CisgICAgaWYgKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpID09
IGV4cGVjdGVkKQorICAgICAgICB0ZXN0UGFzc2VkKCd3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9T
dHJpbmcoKSBpcyBjb3JyZWN0Jyk7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCd3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyAiJyArIHdpbmRvdy5nZXRTZWxlY3Rpb24o
KS50b1N0cmluZygpICsgJyIgYW5kIHNob3VsZCBiZSAiJyArIGV4cGVjdGVkICsgJyInKTsKK30K
KworLy8gRG91YmxlLWNsaWNrIHNlbGVjdCB0byBnZXQgYXJvdW5kIGV2ZW50U2VuZGVyIGJ1ZyB3
aGVyZSBpdCB3b24ndCBzZWxlY3QKKy8vIHRleHQganVzdCB1c2luZyBzaW5nbGUtY2xpY2suCitp
ZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Rh
cnQub2Zmc2V0TGVmdCwgc3RhcnQub2Zmc2V0VG9wKTsKKyAgICBldmVudFNlbmRlci5tb3VzZURv
d24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhlbmQub2Zmc2V0TGVmdCwgZW5k
Lm9mZnNldFRvcCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworCisgICAgYXNzZXJ0U2Vs
ZWN0aW9uU3RyaW5nKCd0d28gdGhyZWVcbmZvdXIgZml2ZScsICd0d28gdGhyZWVcbmZvdXIgZml2
ZScpCisKKyAgICBzaGlmdENsaWNrKHNlY29uZC5vZmZzZXRMZWZ0ICsgc2Vjb25kLm9mZnNldFdp
ZHRoLCBzZWNvbmQub2Zmc2V0VG9wLCAndHdvIHRocmVlXG5mb3VyIGZpdmUgc2l4JywgJ3R3byB0
aHJlZVxuZm91ciBmaXZlIHNpeCcpOworICAgIHNoaWZ0Q2xpY2soZW5kLm9mZnNldExlZnQsIGVu
ZC5vZmZzZXRUb3AsICd0d28gdGhyZWVcbmZvdXIgZml2ZScsICd0d28gdGhyZWVcbmZvdXIgZml2
ZScpOworICAgIC8vIFRoZXNlIHR3byBmYWlsIG9uIE1hYyBkdWUgdG8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2MjU2LgorICAgIC8vIEluIHRoZSBmaXJzdCBzaGlm
dENsaWNrIGNhbGwsIHRoZSBzcGFjZSBhZnRlciBmaXZlIGlzIHNlbGVjdGVkIGFuZCBzaG91bGRu
J3QgYmUuCisgICAgLy8gSW4gdGhlIHNlY29uZCBzaGlmdENsaWNrIGNhbGwsICJzaXgiIGlzIHNl
bGVjdGVkIGFuZCBzaG91bGRuJ3QgYmUuCisgICAgc2hpZnRDbGljayhmaXJzdC5vZmZzZXRMZWZ0
LCBmaXJzdC5vZmZzZXRUb3AsICdvbmUgdHdvIHRocmVlXG5mb3VyIGZpdmUnLCAnb25lIHR3bycp
OworICAgIHNoaWZ0Q2xpY2soc3RhcnQub2Zmc2V0TGVmdCwgc3RhcnQub2Zmc2V0VG9wLCAndHdv
IHRocmVlXG5mb3VyIGZpdmUnLCAndHdvJyk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2hpZnQt
Y2xpY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2hpZnQt
Y2xpY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljNTJhYjI2NGI3MWFiNWMyZTYwNDhkZTVi
ZWU0ZTdlMjM5ZTM4ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9zaGlmdC1jbGljay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMg
dGhhdCBzaGlmdCtjbGlja2luZyBkb2VzIHRoZSBwbGF0Zm9ybSBjb3JyZWN0IGJlaGF2aW9yLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkudG9TdHJpbmcoKSBpcyBjb3JyZWN0CitQQVNTIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0
cmluZygpIGlzIGNvcnJlY3QKK1BBU1Mgd2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkg
aXMgY29ycmVjdAorRkFJTCB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyAib25l
IHR3byB0aHJlZQorZm91ciBmaXZlICIgYW5kIHNob3VsZCBiZSAib25lIHR3byIKK0ZBSUwgd2lu
ZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgaXMgInR3byB0aHJlZQorZm91ciBmaXZlIHNp
eCIgYW5kIHNob3VsZCBiZSAidHdvIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCitvbmUgdHdvIHRocmVlCitmb3VyIGZpdmUgc2l4CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zaGlmdC1jbGljay5odG1sIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2hpZnQtY2xpY2suaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Mjkx
YmNjMTM3MmVmMTY0OTUxMWQxZTBjZTVmNDY3M2I2ODgwMTg0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2hpZnQtY2xpY2suaHRtbApAQCAtMCwwICsx
LDE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9qcy10ZXN0LXNlbGVjdGlvbi1zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zaGlmdC1jbGljay5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9lZGl0aW5nL3NlbGVjdGlvbi9zaGlmdC1jbGljay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vZWRpdGluZy9zZWxlY3Rpb24vc2hpZnQtY2xpY2stZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQxYzcxODE2OTYwZjY4YWRkZWM3MDY4MzJiYmZjMjE0MjIzOTEwZTQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZWRpdGluZy9zZWxlY3Rp
b24vc2hpZnQtY2xpY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRoYXQg
c2hpZnQrY2xpY2tpbmcgZG9lcyB0aGUgcGxhdGZvcm0gY29ycmVjdCBiZWhhdmlvci4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgd2luZG93LmdldFNlbGVjdGlvbigpLnRv
U3RyaW5nKCkgaXMgY29ycmVjdAorUEFTUyB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmco
KSBpcyBjb3JyZWN0CitQQVNTIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIGlzIGNv
cnJlY3QKK1BBU1Mgd2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgaXMgY29ycmVjdAor
UEFTUyB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyBjb3JyZWN0CitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK29uZSB0d28gdGhyZWUK
K2ZvdXIgZml2ZSBzaXgKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggMzMzOWEyZGNjZjU5MTVkMmM0OGMyMjNjMTg5N2Y3OTA4YTNhZDBmZC4u
MzI4ODEzZDkzYmVkOGFhY2ZkODY5ODhlY2U5NDc1ZDQ0MmM1NjlhMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAor
MjAxMC0wNS0wNSAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNoaWZ0K2NsaWNrIG9uIGFuIGV4
aXN0aW5nIHNlbGVjdGlvbiBkb2Vzbid0IHdvcmsgcmlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NTQyCisKKyAgICAgICAgTlNUZXh0VmlldyBi
ZWhhdmlvciBpcyB0byBtb3ZlIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbgorICAgICAgICBjbG9z
ZXN0IHRvIHRoZSBzaGlmdC1jbGljay4gV2luL0xpbnV4IGJlaGF2aW9yIGlzIHRvIGFsd2F5cwor
ICAgICAgICBtb3ZlIHRoZSBmb2N1cyBlbmQgb2YgdGhlIHNlbGVjdGlvbi4KKworICAgICAgICBU
ZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9zaGlmdC1jbGljay5odG1sCisKKyAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0RGlzdGFuY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnRTaW5nbGVD
bGljayk6CisKIDIwMTAtMDUtMDUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+
CiAKICAgICAgICAgUm9sbCBvdXQgcjU4ODMwIGZvciBicmVha2luZyB0ZXN0cy4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKaW5kZXggNGFjZWYxNDJjMDA2OTM4ZGE3NGY2NmM3NjNmMzA5OTFmZmFkNDIwMC4u
NGRkOTFiMWY3MmJhYmUzMGUxNTU5MzNhZjg2YmM5OThkNzNkODdiNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKKyNpbmNsdWRl
ICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2lu
Y2x1ZGUgIldoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIiAvLyBmb3IgY29t
cGFyZVBvc2l0aW9ucygpCkBAIC0zMzIsNiArMzMzLDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpo
YW5kbGVNb3VzZVByZXNzRXZlbnRUcmlwbGVDbGljayhjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRl
c3RSCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBpbnQgdGV4dERpc3RhbmNlKGNvbnN0
IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCkKK3sKKyAgICAgUmVmUHRyPFJh
bmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUoc3RhcnQubm9kZSgpLT5kb2N1bWVudCgpLCBzdGFy
dCwgZW5kKTsKKyAgICAgcmV0dXJuIFRleHRJdGVyYXRvcjo6cmFuZ2VMZW5ndGgocmFuZ2UuZ2V0
KCksIHRydWUpOworfQorCiBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50
U2luZ2xlQ2xpY2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlbnQpCiB7
CiAgICAgTm9kZSogaW5uZXJOb2RlID0gZXZlbnQudGFyZ2V0Tm9kZSgpOwpAQCAtMzYyLDE0ICsz
NjksMjEgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudFNpbmdsZUNs
aWNrKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFIKICAgICBpZiAoZXh0ZW5kU2VsZWN0aW9u
ICYmIG5ld1NlbGVjdGlvbi5pc0NhcmV0T3JSYW5nZSgpKSB7CiAgICAgICAgIG1fZnJhbWUtPnNl
bGVjdGlvbigpLT5zZXRJc0RpcmVjdGlvbmFsKGZhbHNlKTsKICAgICAgICAgCi0gICAgICAgIC8v
IFNlZSA8cmRhcjovL3Byb2JsZW0vMzY2ODE1Nz4gUkVHUkVTU0lPTiAoTWFpbCk6IHNoaWZ0LWNs
aWNrIGRlc2VsZWN0cyB3aGVuIHNlbGVjdGlvbiAKLSAgICAgICAgLy8gd2FzIGNyZWF0ZWQgcmln
aHQtdG8tbGVmdAotICAgICAgICBQb3NpdGlvbiBzdGFydCA9IG5ld1NlbGVjdGlvbi5zdGFydCgp
OwotICAgICAgICBQb3NpdGlvbiBlbmQgPSBuZXdTZWxlY3Rpb24uZW5kKCk7Ci0gICAgICAgIGlm
IChjb21wYXJlUG9zaXRpb25zKHBvcywgc3RhcnQpIDw9IDApCi0gICAgICAgICAgICBuZXdTZWxl
Y3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHBvcywgZW5kKTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihzdGFydCwgcG9zKTsKKyAgICAg
ICAgQVNTRVJUKG1fZnJhbWUtPnNldHRpbmdzKCkpOworICAgICAgICBpZiAobV9mcmFtZS0+c2V0
dGluZ3MoKS0+ZWRpdGluZ0JlaGF2aW9yKCkgPT0gRWRpdGluZ01hY0JlaGF2aW9yKSB7CisgICAg
ICAgICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzM2NjgxNTc+IFJFR1JFU1NJT04gKE1haWwp
OiBzaGlmdC1jbGljayBkZXNlbGVjdHMgd2hlbiBzZWxlY3Rpb24KKyAgICAgICAgICAgIC8vIHdh
cyBjcmVhdGVkIHJpZ2h0LXRvLWxlZnQKKyAgICAgICAgICAgIFBvc2l0aW9uIHN0YXJ0ID0gbmV3
U2VsZWN0aW9uLnN0YXJ0KCk7CisgICAgICAgICAgICBQb3NpdGlvbiBlbmQgPSBuZXdTZWxlY3Rp
b24uZW5kKCk7CisgICAgICAgICAgICBpbnQgZGlzdGFuY2VUb1N0YXJ0ID0gdGV4dERpc3RhbmNl
KHN0YXJ0LCBwb3MpOworICAgICAgICAgICAgaW50IGRpc3RhbmNlVG9FbmQgPSB0ZXh0RGlzdGFu
Y2UocG9zLCBlbmQpOworICAgICAgICAgICAgaWYgKGRpc3RhbmNlVG9TdGFydCA8IGRpc3RhbmNl
VG9FbmQpCisgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihw
b3MsIGVuZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9u
ID0gVmlzaWJsZVNlbGVjdGlvbihzdGFydCwgcG9zKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIG5ld1NlbGVjdGlvbi5zZXRFeHRlbnQocG9zKTsKKyAgICAgICAgfQogCiAgICAgICAg
IGlmIChtX2ZyYW1lLT5zZWxlY3Rpb25HcmFudWxhcml0eSgpICE9IENoYXJhY3RlckdyYW51bGFy
aXR5KSB7CiAgICAgICAgICAgICBncmFudWxhcml0eSA9IG1fZnJhbWUtPnNlbGVjdGlvbkdyYW51
bGFyaXR5KCk7Cg==
</data>
<flag name="review"
          id="39277"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55186</attachid>
            <date>2010-05-05 18:11:36 -0700</date>
            <delta_ts>2010-05-05 18:11:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36542-20100505181135.patch</filename>
            <type>text/plain</type>
            <size>10974</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZDk2YjhkM2U4Mjc5NmFlZjdmNzFmYTljZDQ1YzhkN2UzYjc5YTMyLi45N2QxNDY3
ZjcxY2Y1ZTYzZDExYTUyY2QyOWFhNmM1OTJlNWJjZmYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMDUtMDUgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBzaGlmdCtjbGljayBvbiBhbiBleGlz
dGluZyBzZWxlY3Rpb24gZG9lc24ndCB3b3JrIHJpZ2h0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjU0MgorCisgICAgICAgIE5TVGV4dFZpZXcgYmVo
YXZpb3IgaXMgdG8gbW92ZSB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24KKyAgICAgICAgY2xvc2Vz
dCB0byB0aGUgc2hpZnQtY2xpY2suIFdpbi9MaW51eCBiZWhhdmlvciBpcyB0byBhbHdheXMKKyAg
ICAgICAgbW92ZSB0aGUgZm9jdXMgZW5kIG9mIHRoZSBzZWxlY3Rpb24uCisKKyAgICAgICAgKiBl
ZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvc2hpZnQtY2xpY2suanM6IEFkZGVkLgorICAg
ICAgICAoc2hpZnRDbGljayk6CisgICAgICAgIChhc3NlcnRTZWxlY3Rpb25TdHJpbmcpOgorICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NoaWZ0LWNsaWNrLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2hpZnQtY2xpY2suaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vd2luL2VkaXRpbmcvc2VsZWN0aW9uL3NoaWZ0LWNsaWNrLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMDUtMDUgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvc2hpZnQtY2xpY2suanMg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvc2hpZnQtY2xpY2su
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2RlMjg1ZmFlYTA2Nzc3NWM5ZDdiOTQ1Y2NjYTcxNGI3NDExOTMyYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10
ZXN0cy9zaGlmdC1jbGljay5qcwpAQCAtMCwwICsxLDc5IEBACitkZXNjcmlwdGlvbigiVGVzdHMg
dGhhdCBzaGlmdCtjbGlja2luZyBkb2VzIHRoZSBwbGF0Zm9ybSBjb3JyZWN0IGJlaGF2aW9yLiIp
OworCit2YXIgZmlyc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2ZpcnN0Lmlu
bmVySFRNTCA9ICdvbmUgPHNwYW4gaWQ9InN0YXJ0Ij48L3NwYW4+dHdvIHRocmVlJzsKK2RvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZmlyc3QpOworCit2YXIgc2Vjb25kID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7CitzZWNvbmQuaW5uZXJIVE1MID0gJ2ZvdXIgPHNwYW4gaWQ9ImVu
ZCI+PC9zcGFuPmZpdmUgc2l4JzsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2Vjb25kKTsK
KwordmFyIHN0YXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXJ0Jyk7Cit2YXIgZW5k
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VuZCcpOworCitmdW5jdGlvbiBzaGlmdENsaWNr
KHgsIHksIG1hY0V4cGVjdGVkLCBvdGhlckV4cGVjdGVkKQoreworICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHgsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigwLCBbJ3NoaWZ0S2V5
J10pOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoMCwgWydzaGlmdEtleSddKTsKKyAgICBhc3Nl
cnRTZWxlY3Rpb25TdHJpbmcobWFjRXhwZWN0ZWQsIG90aGVyRXhwZWN0ZWQpOworfQorCit2YXIg
b25NYWMgPSBuYXZpZ2F0b3IudXNlckFnZW50LnNlYXJjaCgvXGJNYWMgT1MgWFxiLykgIT0gLTE7
CisKK2Z1bmN0aW9uIGFzc2VydFNlbGVjdGlvblN0cmluZyhtYWNFeHBlY3RlZCwgb3RoZXJFeHBl
Y3RlZCkKK3sKKyAgICB2YXIgZXhwZWN0ZWQgPSBvbk1hYyA/IG1hY0V4cGVjdGVkIDogb3RoZXJF
eHBlY3RlZDsKKyAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgPT0gZXhw
ZWN0ZWQpCisgICAgICAgIHRlc3RQYXNzZWQoJ3dpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmlu
ZygpIGlzIGNvcnJlY3QnKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoJ3dpbmRvdy5n
ZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIGlzICInICsgd2luZG93LmdldFNlbGVjdGlvbigpLnRv
U3RyaW5nKCkgKyAnIiBhbmQgc2hvdWxkIGJlICInICsgZXhwZWN0ZWQgKyAnIicpOworfQorCitm
dW5jdGlvbiBhc3NlcnRTZWxlY3Rpb25PcmRlcihkaXJlY3Rpb24pCit7CisgICAgdmFyIGV4cGVj
dGVkUG9zaXRpb247CisgICAgaWYgKGRpcmVjdGlvbiA9PSAnZm9yd2FyZCcpCisgICAgICAgIGV4
cGVjdGVkUG9zaXRpb24gPSBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORzsKKyAgICBl
bHNlIGlmIChkaXJlY3Rpb24gPT0gJ2JhY2t3YXJkJykKKyAgICAgICAgZXhwZWN0ZWRQb3NpdGlv
biA9IE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HOworICAgIAorICAgIHZhciBzZWwg
PSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgaWYgKHNlbC5hbmNob3JOb2RlLmNvbXBhcmVE
b2N1bWVudFBvc2l0aW9uKHNlbC5mb2N1c05vZGUpID09IGV4cGVjdGVkUG9zaXRpb24pCisgICAg
ICAgIHRlc3RQYXNzZWQoIlNlbGVjdGlvbiBkaXJlY3Rpb24gaXMgY29ycmVjdC4iKTsKKyAgICBl
bHNlCisgICAgICAgIHRlc3RGYWlsZWQoIlNlbGVjdGlvbiBkaXJlY3Rpb24gaXMgbm90IGNvcnJl
Y3QuIEV4cGVjdGVkIGEgIiArIGRpcmVjdGlvbiArICIgc2VsZWN0aW9uLiIgKyBzZWxlY3Rpb25B
c1N0cmluZyhzZWwpKTsKK30KKworLy8gRG91YmxlLWNsaWNrIHNlbGVjdCB0byBnZXQgYXJvdW5k
IGV2ZW50U2VuZGVyIGJ1ZyB3aGVyZSBpdCB3b24ndCBzZWxlY3QKKy8vIHRleHQganVzdCB1c2lu
ZyBzaW5nbGUtY2xpY2suCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oc3RhcnQub2Zmc2V0TGVmdCwgc3RhcnQub2Zmc2V0VG9wKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhl
bmQub2Zmc2V0TGVmdCwgZW5kLm9mZnNldFRvcCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgp
OworCisgICAgYXNzZXJ0U2VsZWN0aW9uU3RyaW5nKCd0d28gdGhyZWVcbmZvdXIgZml2ZScsICd0
d28gdGhyZWVcbmZvdXIgZml2ZScpCisgICAgYXNzZXJ0U2VsZWN0aW9uT3JkZXIoJ2ZvcndhcmQn
KTsKKworICAgIHNoaWZ0Q2xpY2soc2Vjb25kLm9mZnNldExlZnQgKyBzZWNvbmQub2Zmc2V0V2lk
dGgsIHNlY29uZC5vZmZzZXRUb3AsICd0d28gdGhyZWVcbmZvdXIgZml2ZSBzaXgnLCAndHdvIHRo
cmVlXG5mb3VyIGZpdmUgc2l4Jyk7CisgICAgYXNzZXJ0U2VsZWN0aW9uT3JkZXIoJ2ZvcndhcmQn
KTsKKyAgICAgICAgCisgICAgc2hpZnRDbGljayhlbmQub2Zmc2V0TGVmdCwgZW5kLm9mZnNldFRv
cCwgJ3R3byB0aHJlZVxuZm91ciBmaXZlJywgJ3R3byB0aHJlZVxuZm91ciBmaXZlJyk7CisgICAg
YXNzZXJ0U2VsZWN0aW9uT3JkZXIoJ2ZvcndhcmQnKTsKKworICAgIC8vIFRoZXNlIHR3byBmYWls
IG9uIE1hYyBkdWUgdG8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2
MjU2LgorICAgIC8vIEluIHRoZSBmaXJzdCBzaGlmdENsaWNrIGNhbGwsIHRoZSBzcGFjZSBhZnRl
ciBmaXZlIGlzIHNlbGVjdGVkIGFuZCBzaG91bGRuJ3QgYmUuCisgICAgLy8gSW4gdGhlIHNlY29u
ZCBzaGlmdENsaWNrIGNhbGwsICJzaXgiIGlzIHNlbGVjdGVkIGFuZCBzaG91bGRuJ3QgYmUuCisg
ICAgc2hpZnRDbGljayhmaXJzdC5vZmZzZXRMZWZ0LCBmaXJzdC5vZmZzZXRUb3AsICdvbmUgdHdv
IHRocmVlXG5mb3VyIGZpdmUnLCAnb25lIHR3bycpOworICAgIGFzc2VydFNlbGVjdGlvbk9yZGVy
KCdiYWNrd2FyZCcpOworCisgICAgc2hpZnRDbGljayhzdGFydC5vZmZzZXRMZWZ0LCBzdGFydC5v
ZmZzZXRUb3AsICd0d28gdGhyZWVcbmZvdXIgZml2ZScsICd0d28nKTsKKyAgICAvLyBGSVhNRTog
VGhlIHNlbGVjdGlvbiBkaXJlY3Rpb24gaXMgaW5jb3JyZWN0IG9uIFdpbi9MaW51eCBoZXJlLiBJ
dCBzaG91bGQgYmUgYmFja3dhcmQuCisgICAgYXNzZXJ0U2VsZWN0aW9uT3JkZXIoJ2JhY2t3YXJk
Jyk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2hpZnQtY2xpY2stZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2hpZnQtY2xpY2stZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFhMTRjNmRiNjI5MzE4Y2NjYzViMzI1YjgzNjZiODg4ZTc1MmU1YTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zaGlmdC1jbGljay1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAorVGVzdHMgdGhhdCBzaGlmdCtjbGlja2luZyBkb2Vz
IHRoZSBwbGF0Zm9ybSBjb3JyZWN0IGJlaGF2aW9yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyBjb3JyZWN0
CitQQVNTIFNlbGVjdGlvbiBkaXJlY3Rpb24gaXMgY29ycmVjdC4KK1BBU1Mgd2luZG93LmdldFNl
bGVjdGlvbigpLnRvU3RyaW5nKCkgaXMgY29ycmVjdAorUEFTUyBTZWxlY3Rpb24gZGlyZWN0aW9u
IGlzIGNvcnJlY3QuCitQQVNTIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIGlzIGNv
cnJlY3QKK1BBU1MgU2VsZWN0aW9uIGRpcmVjdGlvbiBpcyBjb3JyZWN0LgorRkFJTCB3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyAib25lIHR3byB0aHJlZQorZm91ciBmaXZlICIg
YW5kIHNob3VsZCBiZSAib25lIHR3byB0aHJlZQorZm91ciBmaXZlIgorUEFTUyBTZWxlY3Rpb24g
ZGlyZWN0aW9uIGlzIGNvcnJlY3QuCitGQUlMIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmlu
ZygpIGlzICJ0d28gdGhyZWUKK2ZvdXIgZml2ZSBzaXgiIGFuZCBzaG91bGQgYmUgInR3byB0aHJl
ZQorZm91ciBmaXZlIgorUEFTUyBTZWxlY3Rpb24gZGlyZWN0aW9uIGlzIGNvcnJlY3QuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK29uZSB0d28gdGhy
ZWUKK2ZvdXIgZml2ZSBzaXgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL3NoaWZ0LWNsaWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zaGlm
dC1jbGljay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyOTFiY2MxMzcyZWYxNjQ5NTExZDFlMGNlNWY0Njcz
YjY4ODAxODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9zaGlmdC1jbGljay5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3Qtc2VsZWN0aW9uLXNoYXJl
ZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3No
aWZ0LWNsaWNrLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2VkaXRpbmcvc2VsZWN0aW9uL3NoaWZ0LWNs
aWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9lZGl0aW5nL3NlbGVj
dGlvbi9zaGlmdC1jbGljay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFjMDg1MGVlZDhlNTQ2
NjkxYTMzNWEyMTMyMWY5OTlkZWIzZGVmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9lZGl0aW5nL3NlbGVjdGlvbi9zaGlmdC1jbGljay1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyMCBAQAorVGVzdHMgdGhhdCBzaGlmdCtjbGlja2luZyBkb2VzIHRoZSBwbGF0
Zm9ybSBjb3JyZWN0IGJlaGF2aW9yLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSBpcyBjb3JyZWN0CitQQVNTIFNl
bGVjdGlvbiBkaXJlY3Rpb24gaXMgY29ycmVjdC4KK1BBU1Mgd2luZG93LmdldFNlbGVjdGlvbigp
LnRvU3RyaW5nKCkgaXMgY29ycmVjdAorUEFTUyBTZWxlY3Rpb24gZGlyZWN0aW9uIGlzIGNvcnJl
Y3QuCitQQVNTIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIGlzIGNvcnJlY3QKK1BB
U1MgU2VsZWN0aW9uIGRpcmVjdGlvbiBpcyBjb3JyZWN0LgorUEFTUyB3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkudG9TdHJpbmcoKSBpcyBjb3JyZWN0CitQQVNTIFNlbGVjdGlvbiBkaXJlY3Rpb24gaXMg
Y29ycmVjdC4KK1BBU1Mgd2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkgaXMgY29ycmVj
dAorRkFJTCBTZWxlY3Rpb24gZGlyZWN0aW9uIGlzIG5vdCBjb3JyZWN0LiBFeHBlY3RlZCBhIGJh
Y2t3YXJkIHNlbGVjdGlvbi5bYW5jaG9yTm9kZTogW29iamVjdCBUZXh0XSh0d28gdGhyZWUpIGFu
Y2hvck9mZnNldDogMCBmb2N1c05vZGU6IFtvYmplY3QgVGV4dF0odHdvIHRocmVlKSBmb2N1c09m
ZnNldDogMyBpc0NvbGxhcHNlZDogZmFsc2VdCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKK29uZSB0d28gdGhyZWUKK2ZvdXIgZml2ZSBzaXgKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI5MmNj
M2ZhOThkMjEwZTNlYTc0ZjBhYTE1MTY5N2MzZWE4MzM5MC4uMTBmNzRmN2ZmODVkY2UzZTE1N2Mz
MzE0OTgzMDNiZWQxNmI0NDZjZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNS0wNSAgT2phbiBWYWZh
aSAgPG9qYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIHNoaWZ0K2NsaWNrIG9uIGFuIGV4aXN0aW5nIHNlbGVjdGlvbiBkb2Vzbid0
IHdvcmsgcmlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM2NTQyCisKKyAgICAgICAgTlNUZXh0VmlldyBiZWhhdmlvciBpcyB0byBtb3ZlIHRoZSBl
bmQgb2YgdGhlIHNlbGVjdGlvbgorICAgICAgICBjbG9zZXN0IHRvIHRoZSBzaGlmdC1jbGljay4g
V2luL0xpbnV4IGJlaGF2aW9yIGlzIHRvIGFsd2F5cworICAgICAgICBtb3ZlIHRoZSBmb2N1cyBl
bmQgb2YgdGhlIHNlbGVjdGlvbi4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9z
aGlmdC1jbGljay5odG1sCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp0ZXh0RGlzdGFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnRTaW5nbGVDbGljayk6CisKIDIwMTAtMDUtMDUgIERh
biBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDRhY2VmMTQyYzAwNjkzOGRhNzRmNjZj
NzYzZjMwOTkxZmZhZDQyMDAuLmYwN2YyNWI2NTY2YjFlZGE1Yjk1NDk4ZTMzZTU1NzdkZWRiMjIx
OTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC02Niw2ICs2Niw3IEBACiAjaW5jbHVkZSAiU2Vs
ZWN0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4
dEV2ZW50LmgiCisjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1
cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiaHRtbGVk
aXRpbmcuaCIgLy8gZm9yIGNvbXBhcmVQb3NpdGlvbnMoKQpAQCAtMzMyLDYgKzMzMywxMiBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50VHJpcGxlQ2xpY2soY29uc3Qg
TW91c2VFdmVudFdpdGhIaXRUZXN0UgogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgaW50
IHRleHREaXN0YW5jZShjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IFBvc2l0aW9uJiBlbmQp
Cit7CisgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKHN0YXJ0Lm5vZGUo
KS0+ZG9jdW1lbnQoKSwgc3RhcnQsIGVuZCk7CisgICAgIHJldHVybiBUZXh0SXRlcmF0b3I6OnJh
bmdlTGVuZ3RoKHJhbmdlLmdldCgpLCB0cnVlKTsKK30KKwogYm9vbCBFdmVudEhhbmRsZXI6Omhh
bmRsZU1vdXNlUHJlc3NFdmVudFNpbmdsZUNsaWNrKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVz
dFJlc3VsdHMmIGV2ZW50KQogewogICAgIE5vZGUqIGlubmVyTm9kZSA9IGV2ZW50LnRhcmdldE5v
ZGUoKTsKQEAgLTM2MiwxNCArMzY5LDIxIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3Vz
ZVByZXNzRXZlbnRTaW5nbGVDbGljayhjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSCiAgICAg
aWYgKGV4dGVuZFNlbGVjdGlvbiAmJiBuZXdTZWxlY3Rpb24uaXNDYXJldE9yUmFuZ2UoKSkgewog
ICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2V0SXNEaXJlY3Rpb25hbChmYWxzZSk7CiAg
ICAgICAgIAotICAgICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzM2NjgxNTc+IFJFR1JFU1NJ
T04gKE1haWwpOiBzaGlmdC1jbGljayBkZXNlbGVjdHMgd2hlbiBzZWxlY3Rpb24gCi0gICAgICAg
IC8vIHdhcyBjcmVhdGVkIHJpZ2h0LXRvLWxlZnQKLSAgICAgICAgUG9zaXRpb24gc3RhcnQgPSBu
ZXdTZWxlY3Rpb24uc3RhcnQoKTsKLSAgICAgICAgUG9zaXRpb24gZW5kID0gbmV3U2VsZWN0aW9u
LmVuZCgpOwotICAgICAgICBpZiAoY29tcGFyZVBvc2l0aW9ucyhwb3MsIHN0YXJ0KSA8PSAwKQot
ICAgICAgICAgICAgbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihwb3MsIGVuZCk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24o
c3RhcnQsIHBvcyk7CisgICAgICAgIEFTU0VSVChtX2ZyYW1lLT5zZXR0aW5ncygpKTsKKyAgICAg
ICAgaWYgKG1fZnJhbWUtPnNldHRpbmdzKCktPmVkaXRpbmdCZWhhdmlvcigpID09IEVkaXRpbmdN
YWNCZWhhdmlvcikgeworICAgICAgICAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS8zNjY4MTU3
PiBSRUdSRVNTSU9OIChNYWlsKTogc2hpZnQtY2xpY2sgZGVzZWxlY3RzIHdoZW4gc2VsZWN0aW9u
CisgICAgICAgICAgICAvLyB3YXMgY3JlYXRlZCByaWdodC10by1sZWZ0CisgICAgICAgICAgICBQ
b3NpdGlvbiBzdGFydCA9IG5ld1NlbGVjdGlvbi5zdGFydCgpOworICAgICAgICAgICAgUG9zaXRp
b24gZW5kID0gbmV3U2VsZWN0aW9uLmVuZCgpOworICAgICAgICAgICAgaW50IGRpc3RhbmNlVG9T
dGFydCA9IHRleHREaXN0YW5jZShzdGFydCwgcG9zKTsKKyAgICAgICAgICAgIGludCBkaXN0YW5j
ZVRvRW5kID0gdGV4dERpc3RhbmNlKHBvcywgZW5kKTsKKyAgICAgICAgICAgIGlmIChkaXN0YW5j
ZVRvU3RhcnQgPD0gZGlzdGFuY2VUb0VuZCkKKyAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb24g
PSBWaXNpYmxlU2VsZWN0aW9uKGVuZCwgcG9zKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBuZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHN0YXJ0LCBwb3MpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgbmV3U2VsZWN0aW9uLnNldEV4dGVudChwb3MpOwor
ICAgICAgICB9CiAKICAgICAgICAgaWYgKG1fZnJhbWUtPnNlbGVjdGlvbkdyYW51bGFyaXR5KCkg
IT0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpIHsKICAgICAgICAgICAgIGdyYW51bGFyaXR5ID0gbV9m
cmFtZS0+c2VsZWN0aW9uR3JhbnVsYXJpdHkoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>