<?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>63233</bug_id>
          
          <creation_ts>2011-06-23 01:44:17 -0700</creation_ts>
          <short_desc>Copying (createMarkup) wrapping text results in space between wrapped lines stripped</short_desc>
          <delta_ts>2014-03-03 08:30:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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>
          
          <blocked>129609</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Malcolm MacLeod">mmacleod</reporter>
          <assigned_to name="Chang Shu">cshu</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>cshu</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>leviw</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>426017</commentid>
    <comment_count>0</comment_count>
    <who name="Malcolm MacLeod">mmacleod</who>
    <bug_when>2011-06-23 01:44:17 -0700</bug_when>
    <thetext>I&apos;ve run into a bug where WebKit based browsers are throwing away whitespace during a copy operation (For CF_HTML based copying but not for text copying).
The issue occurs when wrapping between text and certain tags e.g. &quot;The &lt;b&gt;fat&lt;/b&gt; cat &lt;i&gt;sat&lt;/i&gt; on the mat&quot; will be copied as &quot;The &lt;b&gt;fat&lt;/b&gt;cat &lt;i&gt;sat&lt;/i&gt; on the mat&quot; if word wrapping occurs just before cat and &quot;The &lt;b&gt;fat&lt;/b&gt; cat&lt;i&gt;sat&lt;/i&gt; on the mat&quot; if word wrapping occurs just before sat, etc.

Problem verified on:
Chrome - latest stable as well as an older version
Safari for windows
wxWebKit

I&apos;ve tracked this issue down to line 545 in TextIterator.cpp:
unsigned runEnd = min(textBoxEnd, end);

textBoxEnd is one less then the actual end of the text, so this causes the last character (the wrapped space) not to be considered by createMarkup.
As an experiment I have changed the line to:
unsigned runEnd = max(textBoxEnd, end);
which resolves the problem.
This is of course probably not the actual way to fix the problem, unfortunately I do not have the knowledge of this code required to produce a proper fix/patch but it should at least give a good starting point of where to look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426431</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-06-23 13:59:03 -0700</bug_when>
    <thetext>I can&apos;t reproduce this bug.  Could you give us exact reproduction steps?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426746</commentid>
    <comment_count>2</comment_count>
      <attachid>98462</attachid>
    <who name="Malcolm MacLeod">mmacleod</who>
    <bug_when>2011-06-23 23:28:16 -0700</bug_when>
    <thetext>Created attachment 98462
Basic html sample with which bug can be reproduced</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426747</commentid>
    <comment_count>3</comment_count>
    <who name="Malcolm MacLeod">mmacleod</who>
    <bug_when>2011-06-23 23:31:29 -0700</bug_when>
    <thetext>1) Open minimal sample &quot;wrapbug.html&quot;
2) resize browser window so that line wrapping occurs between one of the bolded words and a normal word
3) highlight all the text 
4) copy
5) paste the text into any application that supports the CF_HTML clipboard format instead of the plain text format (bug does not occur in plain text as that uses different code to generate) - for most obvious results ensure that the target application has a different window size so that wrapping is not the same.
6) observe that in the pasted text the bolded word and the normal word are now next to each other with no spacing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426748</commentid>
    <comment_count>4</comment_count>
    <who name="Malcolm MacLeod">mmacleod</who>
    <bug_when>2011-06-23 23:34:58 -0700</bug_when>
    <thetext>8) View clipboard contents directly using a raw clipboard viewer - e.g.&quot;ClipView.exe&quot;
9) Observe that there is no spacing in the raw CF_HTML on the clipboard either, so it is definitely a bug in generating the CF_HTML and not a bug in e.g. the receiving application reading the CF_HTML wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426955</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-24 10:40:42 -0700</bug_when>
    <thetext>The plain text generation does use TextIterator, so it’s strange that a TextIterator bug would affect CF_HTML but not plain text.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426956</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-06-24 10:44:28 -0700</bug_when>
    <thetext>I think the problem comes from the fact createMarkup uses renderer to serialize text nodes and we don&apos;t render trailing whitespace (collapse them).  We&apos;d either have to special-case it in StylizedMarkupAccumulator or create inline boxes for unrendered trailing whitespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509297</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-25 16:46:55 -0800</bug_when>
    <thetext>This bug is related to https://bugs.webkit.org/show_bug.cgi?id=54598.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976876</commentid>
    <comment_count>8</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2014-02-05 10:59:54 -0800</bug_when>
    <thetext>The test case below failed on latest webkit.
http://jsfiddle.net/Wu2Gy/1/
The problem is StyledMarkupAccumulator uses renderedText and the space after the text has been stripped when the following tag was wrapped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976915</commentid>
    <comment_count>9</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2014-02-05 11:06:52 -0800</bug_when>
    <thetext>The following test case failed on latest webkit.
http://jsfiddle.net/Wu2Gy/1/

The problem is StyledMarkupAccumulator uses renderedText and the space at the end of the text has been stripped when the tag after the text was wrapped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976943</commentid>
    <comment_count>10</comment_count>
      <attachid>223249</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2014-02-05 11:11:40 -0800</bug_when>
    <thetext>Created attachment 223249
fix patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979572</commentid>
    <comment_count>11</comment_count>
      <attachid>223249</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-11 13:28:16 -0800</bug_when>
    <thetext>Comment on attachment 223249
fix patch

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

&gt; LayoutTests/editing/pasteboard/copy-text-with-wrapped-tag-expected.txt:1
&gt; +Success

This output doesn&apos;t tell us anything about the nature of the test.

&gt; LayoutTests/editing/pasteboard/copy-text-with-wrapped-tag.html:25
&gt; +expected = &apos;Copy this text&amp;nbsp;&lt;a href=&quot;http://www.google.com&quot;&gt;AVeryLongWordThatWillWrap&lt;/a&gt;&apos;;
&gt; +actual = paste.innerHTML;
&gt; +
&gt; +if (window.testRunner &amp;&amp; actual == expected)
&gt; +    document.body.innerText = &quot;Success&quot;;
&gt; +else
&gt; +    document.body.innerText = &quot;Failure.  Found: &quot; + actual + &quot;, but expected: &quot; + expected;
&gt; +

Please use dump-as-markup, etc... to output the serialized markup
so that expected result is self explanatory.

&gt; Source/WebCore/ChangeLog:8
&gt; +        The problem is StyledMarkupAccumulator uses renderedText and the space at
&gt; +        the end of the text has been stripped when the tag after the text was wrapped.
&gt; +

Please add inline function description as to how you&apos;re fixing this bug.

&gt; Source/WebCore/ChangeLog:9
&gt; +        Reviewed by NOBODY (OOPS!).

This line should appear after the bug URL but before the long description.

&gt; Source/WebCore/editing/TextIterator.cpp:651
&gt; +                    if (!nextTextBox &amp;&amp; m_isNotLastNode &amp;&amp; (str.length() == runEnd + 1)) // Restore space if followed by a non-text box
&gt; +                        subrunEnd++;

It&apos;s not clear how incrementing subrunEnd++ ends up restoring space.
Also, it&apos;s better to define a local boolean like followedByNonTextBox instead of adding a comment like this.

&gt; Source/WebCore/editing/markup.cpp:269
&gt; +        behavior = TextIteratorIsNotLastNode;

I don&apos;t think this behavior is descriptive.  TextIterator isn&apos;t a node.  It iterates over nodes.
Looks like we need a behavior where text iterator behaves as if there are more nodes??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979573</commentid>
    <comment_count>12</comment_count>
      <attachid>223249</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-11 13:28:16 -0800</bug_when>
    <thetext>Comment on attachment 223249
fix patch

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

&gt; LayoutTests/editing/pasteboard/copy-text-with-wrapped-tag-expected.txt:1
&gt; +Success

This output doesn&apos;t tell us anything about the nature of the test.

&gt; LayoutTests/editing/pasteboard/copy-text-with-wrapped-tag.html:25
&gt; +expected = &apos;Copy this text&amp;nbsp;&lt;a href=&quot;http://www.google.com&quot;&gt;AVeryLongWordThatWillWrap&lt;/a&gt;&apos;;
&gt; +actual = paste.innerHTML;
&gt; +
&gt; +if (window.testRunner &amp;&amp; actual == expected)
&gt; +    document.body.innerText = &quot;Success&quot;;
&gt; +else
&gt; +    document.body.innerText = &quot;Failure.  Found: &quot; + actual + &quot;, but expected: &quot; + expected;
&gt; +

Please use dump-as-markup, etc... to output the serialized markup
so that expected result is self explanatory.

&gt; Source/WebCore/ChangeLog:8
&gt; +        The problem is StyledMarkupAccumulator uses renderedText and the space at
&gt; +        the end of the text has been stripped when the tag after the text was wrapped.
&gt; +

Please add inline function description as to how you&apos;re fixing this bug.

&gt; Source/WebCore/ChangeLog:9
&gt; +        Reviewed by NOBODY (OOPS!).

This line should appear after the bug URL but before the long description.

&gt; Source/WebCore/editing/TextIterator.cpp:651
&gt; +                    if (!nextTextBox &amp;&amp; m_isNotLastNode &amp;&amp; (str.length() == runEnd + 1)) // Restore space if followed by a non-text box
&gt; +                        subrunEnd++;

It&apos;s not clear how incrementing subrunEnd++ ends up restoring space.
Also, it&apos;s better to define a local boolean like followedByNonTextBox instead of adding a comment like this.

&gt; Source/WebCore/editing/markup.cpp:269
&gt; +        behavior = TextIteratorIsNotLastNode;

I don&apos;t think this behavior is descriptive.  TextIterator isn&apos;t a node.  It iterates over nodes.
Looks like we need a behavior where text iterator behaves as if there are more nodes??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979859</commentid>
    <comment_count>13</comment_count>
      <attachid>223968</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2014-02-12 07:02:17 -0800</bug_when>
    <thetext>Created attachment 223968
fix patch 2

new patch to address the review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980398</commentid>
    <comment_count>14</comment_count>
      <attachid>223968</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-13 12:40:33 -0800</bug_when>
    <thetext>Comment on attachment 223968
fix patch 2

Clearing flags on attachment: 223968

Committed r164047: &lt;http://trac.webkit.org/changeset/164047&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980399</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-13 12:40:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>98462</attachid>
            <date>2011-06-23 23:28:16 -0700</date>
            <delta_ts>2014-02-05 11:11:40 -0800</delta_ts>
            <desc>Basic html sample with which bug can be reproduced</desc>
            <filename>wrapbug.html</filename>
            <type>text/html</type>
            <size>484</size>
            <attacher name="Malcolm MacLeod">mmacleod</attacher>
            
              <data encoding="base64">PGh0bWw+CiAgPGhlYWQ+CiAgICA8dGl0bGU+PC90aXRsZT4KICAgIDxtZXRhIGNvbnRlbnQ9IiI+
CiAgICA8c3R5bGU+PC9zdHlsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgTG9yZW0gaXBzdW0gZG9s
b3Igc2l0IGFtZXQsIDxiPmNvbnNlY3RldHVyPC9iPiBhZGlwaXNjaW5nIGVsaXQuIEluIHV0IGVn
ZXN0YXMgbmlzaS4gQ3VyYWJpdHVyIDxiPnZlbDwvYj4gY29udmFsbGlzIG5pc2wuIE1hZWNlbmFz
IGFjY3Vtc2FuIG9ybmFyZSBhcmN1LCBzaXQgYW1ldCBzb2RhbGVzIG1ldHVzIHRpbmNpZHVudCBh
LiBNYXVyaXMgZWxlbWVudHVtIGRhcGlidXMgbWV0dXMsIGlkIHNjZWxlcmlzcXVlIG1hdXJpcyB1
bGxhbWNvcnBlciBldS4gU3VzcGVuZGlzc2UgY29uZGltZW50dW0gZmF1Y2lidXMgbmlzaSwgZXQg
c29kYWxlcyBzZW0gc29kYWxlcyBpbi4gSW4gY29uc2VxdWF0LCBhdWd1ZSBuZWMgZ3JhdmlkYSBk
aWduaXNzaW0uIAogIDwvYm9keT4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223249</attachid>
            <date>2014-02-05 11:11:40 -0800</date>
            <delta_ts>2014-02-12 07:02:17 -0800</delta_ts>
            <desc>fix patch</desc>
            <filename>63233_1.patch</filename>
            <type>text/plain</type>
            <size>6598</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMmNlOWNjLi40YTQ5ZGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDIt
MDUgIENoYW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBDb3B5aW5nIChjcmVh
dGVNYXJrdXApIHdyYXBwaW5nIHRleHQgcmVzdWx0cyBpbiBzcGFjZSBiZXR3ZWVuIHdyYXBwZWQg
bGluZXMgc3RyaXBwZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02MzIzMworCisgICAgICAgIFRoZSBwcm9ibGVtIGlzIFN0eWxlZE1hcmt1cEFjY3Vt
dWxhdG9yIHVzZXMgcmVuZGVyZWRUZXh0IGFuZCB0aGUgc3BhY2UgYXQKKyAgICAgICAgdGhlIGVu
ZCBvZiB0aGUgdGV4dCBoYXMgYmVlbiBzdHJpcHBlZCB3aGVuIHRoZSB0YWcgYWZ0ZXIgdGhlIHRl
eHQgd2FzIHdyYXBwZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS10ZXh0LXdpdGgtd3JhcHBlZC10YWct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS10
ZXh0LXdpdGgtd3JhcHBlZC10YWcuaHRtbDogQWRkZWQuCisKIDIwMTQtMDItMDQgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmaW5lIE1lZGlhU2Vz
c2lvbiBpbnRlcnJ1cHRpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvY29weS10ZXh0LXdpdGgtd3JhcHBlZC10YWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktdGV4dC13aXRoLXdyYXBwZWQtdGFnLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTgyMTExCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktdGV4dC13aXRo
LXdyYXBwZWQtdGFnLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitTdWNjZXNzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS10ZXh0LXdpdGgtd3JhcHBl
ZC10YWcuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXRleHQtd2l0
aC13cmFwcGVkLXRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVk
MmEyMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQv
Y29weS10ZXh0LXdpdGgtd3JhcHBlZC10YWcuaHRtbApAQCAtMCwwICsxLDI2IEBACis8ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+VGhpcyB0ZXN0cyB0byBtYWtlIHN1cmUgdGhhdCBjb3B5aW5nIGFuZCBw
YXN0aW5nIGEgdGV4dCBmb2xsb3dlZCBieSBhbiBhbmNob3IgdGFnIHdyYXBwZWQgaW50byAybmQg
bGluZSBkbyBub3QgbG9zZSB0aGUgc3BhY2UgYmV0d2VlbiB0ZXh0IGFuZCB0YWcgaW4gdGhlIGRl
c3RpbmF0aW9uLjwvZGl2PgorPGRpdiBpZD0iY29weSIgc3R5bGU9IndpZHRoOiAxMGVtOyI+Q29w
eSB0aGlzIHRleHQgPGEgaHJlZj0iaHR0cDovL3d3dy5nb29nbGUuY29tIj5BVmVyeUxvbmdXb3Jk
VGhhdFdpbGxXcmFwPC9hPjwvZGl2PgorPGRpdiBpZD0icGFzdGUiIGNvbnRlbnRFZGl0YWJsZT0i
dHJ1ZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB3
aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKK2NvcHkgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29weSIpOword2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQo
Y29weSwgMCwgY29weSwgY29weS5jaGlsZE5vZGVzLmxlbmd0aCk7Citkb2N1bWVudC5leGVjQ29t
bWFuZCgiQ29weSIpOworCitwYXN0ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXN0ZSIp
Oword2luZG93LmdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKHBhc3RlLCAwKTsKK2RvY3VtZW50
LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOworCitleHBlY3RlZCA9ICdDb3B5IHRoaXMgdGV4dCZuYnNw
OzxhIGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbSI+QVZlcnlMb25nV29yZFRoYXRXaWxsV3Jh
cDwvYT4nOworYWN0dWFsID0gcGFzdGUuaW5uZXJIVE1MOworCitpZiAod2luZG93LnRlc3RSdW5u
ZXIgJiYgYWN0dWFsID09IGV4cGVjdGVkKQorICAgIGRvY3VtZW50LmJvZHkuaW5uZXJUZXh0ID0g
IlN1Y2Nlc3MiOworZWxzZQorICAgIGRvY3VtZW50LmJvZHkuaW5uZXJUZXh0ID0gIkZhaWx1cmUu
ICBGb3VuZDogIiArIGFjdHVhbCArICIsIGJ1dCBleHBlY3RlZDogIiArIGV4cGVjdGVkOworCis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYjVlNTZkLi5kMjVlMDFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjIgQEAKKzIwMTQtMDItMDUgIENoYW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBDb3B5aW5nIChjcmVhdGVNYXJrdXApIHdyYXBwaW5nIHRleHQgcmVzdWx0cyBpbiBz
cGFjZSBiZXR3ZWVuIHdyYXBwZWQgbGluZXMgc3RyaXBwZWQuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzIzMworCisgICAgICAgIFRoZSBwcm9ibGVt
IGlzIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yIHVzZXMgcmVuZGVyZWRUZXh0IGFuZCB0aGUgc3Bh
Y2UgYXQKKyAgICAgICAgdGhlIGVuZCBvZiB0aGUgdGV4dCBoYXMgYmVlbiBzdHJpcHBlZCB3aGVu
IHRoZSB0YWcgYWZ0ZXIgdGhlIHRleHQgd2FzIHdyYXBwZWQuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9wYXN0ZWJvYXJkL2Nv
cHktdGV4dC13aXRoLXdyYXBwZWQtdGFnLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvVGV4dEl0
ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRJdGVyYXRvcjo6VGV4dEl0ZXJhdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRJdGVyYXRvcjo6aGFuZGxlVGV4dEJveCk6CisgICAg
ICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6cmVuZGVyZWRU
ZXh0KToKKwogMjAxNC0wMi0wNCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNv
bT4KIAogICAgICAgICBbT1NYXSBMaW1pdCBwcm9ncmVzcyBiYXIncyBkaW1lbnNpb25zIHRvIHVz
aG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCmluZGV4IDFlNDA3ODAu
LjBjNjQyYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTMw
Miw2ICszMDIsNyBAQCBUZXh0SXRlcmF0b3I6OlRleHRJdGVyYXRvcihjb25zdCBSYW5nZSogciwg
VGV4dEl0ZXJhdG9yQmVoYXZpb3IgYmVoYXZpb3IpCiAgICAgLCBtX3N0b3BzT25Gb3JtQ29udHJv
bHMoYmVoYXZpb3IgJiBUZXh0SXRlcmF0b3JTdG9wc09uRm9ybUNvbnRyb2xzKQogICAgICwgbV9z
aG91bGRTdG9wKGZhbHNlKQogICAgICwgbV9lbWl0c0ltYWdlQWx0VGV4dChiZWhhdmlvciAmIFRl
eHRJdGVyYXRvckVtaXRzSW1hZ2VBbHRUZXh0KQorICAgICwgbV9pc05vdExhc3ROb2RlKGJlaGF2
aW9yICYgVGV4dEl0ZXJhdG9ySXNOb3RMYXN0Tm9kZSkKIHsKICAgICBpZiAoIXIpCiAgICAgICAg
IHJldHVybjsKQEAgLTY0NCw5ICs2NDUsMTEgQEAgdm9pZCBUZXh0SXRlcmF0b3I6OmhhbmRsZVRl
eHRCb3goKQogICAgICAgICAgICAgICAgIG1fb2Zmc2V0ID0gcnVuU3RhcnQgKyAxOwogICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBzaXplX3Qgc3VicnVuRW5kID0gc3RyLmZp
bmQoJ1xuJywgcnVuU3RhcnQpOwotICAgICAgICAgICAgICAgIGlmIChzdWJydW5FbmQgPT0gbm90
Rm91bmQgfHwgc3VicnVuRW5kID4gcnVuRW5kKQorICAgICAgICAgICAgICAgIGlmIChzdWJydW5F
bmQgPT0gbm90Rm91bmQgfHwgc3VicnVuRW5kID4gcnVuRW5kKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHN1YnJ1bkVuZCA9IHJ1bkVuZDsKLSAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFu
ZXh0VGV4dEJveCAmJiBtX2lzTm90TGFzdE5vZGUgJiYgKHN0ci5sZW5ndGgoKSA9PSBydW5FbmQg
KyAxKSkgLy8gUmVzdG9yZSBzcGFjZSBpZiBmb2xsb3dlZCBieSBhIG5vbi10ZXh0IGJveAorICAg
ICAgICAgICAgICAgICAgICAgICAgc3VicnVuRW5kKys7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIG1fb2Zmc2V0ID0gc3VicnVuRW5kOwogICAgICAgICAgICAgICAgIGVtaXRU
ZXh0KG1fbm9kZSwgcmVuZGVyZXIsIHJ1blN0YXJ0LCBzdWJydW5FbmQpOwogICAgICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmgKaW5kZXggOGI4OTE5Zi4uZDVkMjk4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5oCkBAIC00Niw2ICs0Niw3IEBA
IGVudW0gVGV4dEl0ZXJhdG9yQmVoYXZpb3IgewogICAgIFRleHRJdGVyYXRvckVtaXRzT3JpZ2lu
YWxUZXh0ID0gMSA8PCA1LAogICAgIFRleHRJdGVyYXRvclN0b3BzT25Gb3JtQ29udHJvbHMgPSAx
IDw8IDYsCiAgICAgVGV4dEl0ZXJhdG9yRW1pdHNJbWFnZUFsdFRleHQgPSAxIDw8IDcsCisgICAg
VGV4dEl0ZXJhdG9ySXNOb3RMYXN0Tm9kZSA9IDEgPDwgOCwKIH07CiAgICAgCiAvLyBGSVhNRTog
Q2FuJ3QgcmVhbGx5IGFuc3dlciB0aGlzIHF1ZXN0aW9uIGNvcnJlY3RseSB3aXRob3V0IGtub3dp
bmcgdGhlIHdoaXRlLXNwYWNlIG1vZGUuCkBAIC0xOTYsNiArMTk3LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fc2hvdWxkU3RvcDsKIAogICAgIGJvb2wgbV9lbWl0c0ltYWdlQWx0VGV4dDsKKyAg
ICBib29sIG1faXNOb3RMYXN0Tm9kZTsKIH07CiAKIC8vIEl0ZXJhdGVzIHRocm91Z2ggdGhlIERP
TSByYW5nZSwgcmV0dXJuaW5nIGFsbCB0aGUgdGV4dCwgYW5kIDAtbGVuZ3RoIGJvdW5kYXJpZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAppbmRleCA1YjYxNzNiLi42MGE3MjZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC0yNjAsMTQgKzI2MCwxNyBAQCBTdHJpbmcgU3R5bGVk
TWFya3VwQWNjdW11bGF0b3I6OnJlbmRlcmVkVGV4dChjb25zdCBOb2RlJiBub2RlLCBjb25zdCBS
YW5nZSogcmFuZwogICAgIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0ID0gMDsKICAgICB1bnNpZ25lZCBl
bmRPZmZzZXQgPSB0ZXh0Tm9kZS5sZW5ndGgoKTsKIAorICAgIFRleHRJdGVyYXRvckJlaGF2aW9y
IGJlaGF2aW9yID0gVGV4dEl0ZXJhdG9yRGVmYXVsdEJlaGF2aW9yOwogICAgIGlmIChyYW5nZSAm
JiAmbm9kZSA9PSByYW5nZS0+c3RhcnRDb250YWluZXIoKSkKICAgICAgICAgc3RhcnRPZmZzZXQg
PSByYW5nZS0+c3RhcnRPZmZzZXQoKTsKICAgICBpZiAocmFuZ2UgJiYgJm5vZGUgPT0gcmFuZ2Ut
PmVuZENvbnRhaW5lcigpKQogICAgICAgICBlbmRPZmZzZXQgPSByYW5nZS0+ZW5kT2Zmc2V0KCk7
CisgICAgZWxzZSBpZiAocmFuZ2UpCisgICAgICAgIGJlaGF2aW9yID0gVGV4dEl0ZXJhdG9ySXNO
b3RMYXN0Tm9kZTsKIAogICAgIFBvc2l0aW9uIHN0YXJ0ID0gY3JlYXRlTGVnYWN5RWRpdGluZ1Bv
c2l0aW9uKGNvbnN0X2Nhc3Q8Tm9kZSo+KCZub2RlKSwgc3RhcnRPZmZzZXQpOwogICAgIFBvc2l0
aW9uIGVuZCA9IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihjb25zdF9jYXN0PE5vZGUqPigm
bm9kZSksIGVuZE9mZnNldCk7Ci0gICAgcmV0dXJuIHBsYWluVGV4dChSYW5nZTo6Y3JlYXRlKG5v
ZGUuZG9jdW1lbnQoKSwgc3RhcnQsIGVuZCkuZ2V0KCkpOworICAgIHJldHVybiBwbGFpblRleHQo
UmFuZ2U6OmNyZWF0ZShub2RlLmRvY3VtZW50KCksIHN0YXJ0LCBlbmQpLmdldCgpLCBiZWhhdmlv
cik7CiB9CiAKIFN0cmluZyBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6c3RyaW5nVmFsdWVGb3JS
YW5nZShjb25zdCBOb2RlJiBub2RlLCBjb25zdCBSYW5nZSogcmFuZ2UpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223968</attachid>
            <date>2014-02-12 07:02:17 -0800</date>
            <delta_ts>2014-02-13 12:40:33 -0800</delta_ts>
            <desc>fix patch 2</desc>
            <filename>63233_2.patch</filename>
            <type>text/plain</type>
            <size>7583</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0NTliMDQwLi5iNmFmODgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDIt
MTEgIENoYW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBDb3B5aW5nIChjcmVh
dGVNYXJrdXApIHdyYXBwaW5nIHRleHQgcmVzdWx0cyBpbiBzcGFjZSBiZXR3ZWVuIHdyYXBwZWQg
bGluZXMgc3RyaXBwZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02MzIzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBwcm9ibGVtIGlzIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yIHVzZXMgcmVuZGVy
ZWRUZXh0IGFuZCB0aGUgc3BhY2UgYXQKKyAgICAgICAgdGhlIGVuZCBvZiB0aGUgdGV4dCBoYXMg
YmVlbiBzdHJpcHBlZCB3aGVuIHRoZSB0YWcgYWZ0ZXIgdGhlIHRleHQgd2FzIHdyYXBwZWQuCisK
KyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS10ZXh0LXdpdGgtd3JhcHBlZC10YWct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS10
ZXh0LXdpdGgtd3JhcHBlZC10YWcuaHRtbDogQWRkZWQuCisKIDIwMTQtMDItMTEgIFNhbXVlbCBX
aGl0ZSAgPHNhbXVlbF93aGl0ZUBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IEFkZCB0ZXh0IHJl
cGxhY2VtZW50IGFjdGl2aXR5IHN1cHBvcnQgdG8gTlNBY2Nlc3NpYmlsaXR5U2VsZWN0VGV4dFdp
dGhDcml0ZXJpYVBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS10ZXh0LXdpdGgtd3JhcHBlZC10YWctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktdGV4dC13aXRoLXdyYXBw
ZWQtdGFnLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42
ZWI3OWIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
L2NvcHktdGV4dC13aXRoLXdyYXBwZWQtdGFnLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBA
CitUaGlzIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IGNvcHlpbmcgYW5kIHBhc3RpbmcgYSB0ZXh0
IGZvbGxvd2VkIGJ5IGFuIGFuY2hvciB0YWcgd3JhcHBlZCBpbnRvIDJuZCBsaW5lIGRvIG5vdCBs
b3NlIHRoZSBzcGFjZSBiZXR3ZWVuIHRleHQgYW5kIHRhZyBpbiB0aGUgZGVzdGluYXRpb24uCisK
K09yaWdpbmFsOgorfCAiQ29weSB0aGlzIHRleHQgIgorfCA8YT4KK3wgICBocmVmPSJodHRwOi8v
d3d3Lmdvb2dsZS5jb20iCit8ICAgIkFWZXJ5TG9uZ1dvcmRUaGF0V2lsbFdyYXAiCisKK1Bhc3Rl
ZDoKK3wgIkNvcHkgdGhpcyB0ZXh0wqAiCit8IDxhPgorfCAgIGhyZWY9Imh0dHA6Ly93d3cuZ29v
Z2xlLmNvbSIKK3wgICAiQVZlcnlMb25nV29yZFRoYXRXaWxsV3JhcDwjc2VsZWN0aW9uLWNhcmV0
PiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXRleHQt
d2l0aC13cmFwcGVkLXRhZy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2Nv
cHktdGV4dC13aXRoLXdyYXBwZWQtdGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uY2RiYTA3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9jb3B5LXRleHQtd2l0aC13cmFwcGVkLXRhZy5odG1sCkBAIC0wLDAgKzEsMjgg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij5UaGlzIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IGNvcHlpbmcgYW5kIHBhc3RpbmcgYSB0ZXh0
IGZvbGxvd2VkIGJ5IGFuIGFuY2hvciB0YWcgd3JhcHBlZCBpbnRvIDJuZCBsaW5lIGRvIG5vdCBs
b3NlIHRoZSBzcGFjZSBiZXR3ZWVuIHRleHQgYW5kIHRhZyBpbiB0aGUgZGVzdGluYXRpb24uPC9k
aXY+Cis8ZGl2IGlkPSJjb3B5IiBzdHlsZT0id2lkdGg6IDEwZW07IGJvcmRlcjogdGhpbiBzb2xp
ZCBncmVlbjsiPkNvcHkgdGhpcyB0ZXh0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbSI+
QVZlcnlMb25nV29yZFRoYXRXaWxsV3JhcDwvYT48L2Rpdj4KKzxkaXYgaWQ9InBhc3RlIiBjb250
ZW50RWRpdGFibGU9InRydWUiIHN0eWxlPSJib3JkZXI6IHRoaW4gc29saWQgYmx1ZTsiPjwvZGl2
PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKK01hcmt1cC5kZXNjcmlwdGlvbihkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZGVzY3JpcHRpb24nKS50ZXh0Q29udGVudCk7CitNYXJrdXAuZHVtcCgnY29weScsICdP
cmlnaW5hbCcpOworCitjb3B5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHkiKTsKK3dp
bmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGNvcHksIDAsIGNvcHksIGNvcHku
Y2hpbGROb2Rlcy5sZW5ndGgpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkNvcHkiKTsKKworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgcGFzdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicGFzdGUiKTsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24ocGFzdGUs
IDApOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOworCisgICAgTWFya3VwLmR1
bXAoJ3Bhc3RlJywgJ1Bhc3RlZCcpOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhYTFmMTFlLi4xODkyZjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTQtMDItMTEgIENoYW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBD
b3B5aW5nIChjcmVhdGVNYXJrdXApIHdyYXBwaW5nIHRleHQgcmVzdWx0cyBpbiBzcGFjZSBiZXR3
ZWVuIHdyYXBwZWQgbGluZXMgc3RyaXBwZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02MzIzMworCisgICAgICAgIFRoZSBwcm9ibGVtIGlzIFN0eWxl
ZE1hcmt1cEFjY3VtdWxhdG9yIHVzZXMgcmVuZGVyZWRUZXh0IGFuZCB0aGUgc3BhY2UgYXQKKyAg
ICAgICAgdGhlIGVuZCBvZiB0aGUgdGV4dCBoYXMgYmVlbiBzdHJpcHBlZCB3aGVuIHRoZSB0YWcg
YWZ0ZXIgdGhlIHRleHQgd2FzIHdyYXBwZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktdGV4dC13
aXRoLXdyYXBwZWQtdGFnLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRJdGVyYXRvcjo6VGV4dEl0ZXJhdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRJdGVyYXRvcjo6aGFuZGxlVGV4dEJveCk6CisgICAgICAgICogZWRp
dGluZy9UZXh0SXRlcmF0b3IuaDoKKyAgICAgICAgQ2hlY2sgdGhlIHNwZWNpYWwgY2FzZSB3aGVu
IHRoZSBpdGVyYXRvciBydW5zIG92ZXIgYSByYW5nZSB0aGF0IGlzIGZvbGxvd2VkIGJ5IGEgbm9u
LXRleHQgYm94LgorICAgICAgICBJbiB0aGlzIGNhc2UsIHRoZSBwb3NzaWJsZSBsYXN0IHNwYWNl
IGhhcyBiZWVuIGNvbGxhcHNlZCBhbmQgbmVlZHMgdG8gYmUgcmVzdG9yZWQuCisgICAgICAgICog
ZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11
bGF0b3I6OnJlbmRlcmVkVGV4dCk6CisgICAgICAgIENoZWNrIGlmIHRoZSByYW5nZSBpcyBmb2xs
b3dlZCBieSBtb3JlIG5vZGVzIGFuZCBwYXNzIHRoaXMgaW5mb3JtYXRpb24gdG8gdGhlIGNvbnN0
cnVjdGVkIFRleHRJdGVyYXRvci4KKwogMjAxNC0wMi0xMCAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBbRU1FXVtNYWNdIE1vdmUgdGhlIGltcGxlbWVudGF0aW9u
IG9mIENETVByaXZhdGVBVkZvdW5kYXRpb24gYmFjayBpbnRvIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJ
dGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKaW5k
ZXggMWU2MzE4NC4uZjMzOWI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
ZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9y
LmNwcApAQCAtMzAyLDYgKzMwMiw3IEBAIFRleHRJdGVyYXRvcjo6VGV4dEl0ZXJhdG9yKGNvbnN0
IFJhbmdlKiByLCBUZXh0SXRlcmF0b3JCZWhhdmlvciBiZWhhdmlvcikKICAgICAsIG1fc3RvcHNP
bkZvcm1Db250cm9scyhiZWhhdmlvciAmIFRleHRJdGVyYXRvclN0b3BzT25Gb3JtQ29udHJvbHMp
CiAgICAgLCBtX3Nob3VsZFN0b3AoZmFsc2UpCiAgICAgLCBtX2VtaXRzSW1hZ2VBbHRUZXh0KGJl
aGF2aW9yICYgVGV4dEl0ZXJhdG9yRW1pdHNJbWFnZUFsdFRleHQpCisgICAgLCBtX2hhc05vZGVz
Rm9sbG93aW5nKGJlaGF2aW9yICYgVGV4dEl0ZXJhdG9yQmVoYXZlc0FzSWZOb2Rlc0ZvbGxvd2lu
ZykKIHsKICAgICBpZiAoIXIpCiAgICAgICAgIHJldHVybjsKQEAgLTY0NCw5ICs2NDUsMTIgQEAg
dm9pZCBUZXh0SXRlcmF0b3I6OmhhbmRsZVRleHRCb3goKQogICAgICAgICAgICAgICAgIG1fb2Zm
c2V0ID0gcnVuU3RhcnQgKyAxOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAg
ICBzaXplX3Qgc3VicnVuRW5kID0gc3RyLmZpbmQoJ1xuJywgcnVuU3RhcnQpOwotICAgICAgICAg
ICAgICAgIGlmIChzdWJydW5FbmQgPT0gbm90Rm91bmQgfHwgc3VicnVuRW5kID4gcnVuRW5kKQor
ICAgICAgICAgICAgICAgIGlmIChzdWJydW5FbmQgPT0gbm90Rm91bmQgfHwgc3VicnVuRW5kID4g
cnVuRW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIHN1YnJ1bkVuZCA9IHJ1bkVuZDsKLSAgICAK
KyAgICAgICAgICAgICAgICAgICAgYm9vbCBsYXN0U3BhY2VDb2xsYXBzZWRCeU5leHROb25UZXh0
Qm94ID0gIW5leHRUZXh0Qm94ICYmIG1faGFzTm9kZXNGb2xsb3dpbmcgJiYgKHN0ci5sZW5ndGgo
KSA9PSBydW5FbmQgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RTcGFjZUNvbGxh
cHNlZEJ5TmV4dE5vblRleHRCb3gpCisgICAgICAgICAgICAgICAgICAgICAgICBzdWJydW5FbmQr
KzsgLy8gcnVuRW5kIHN0b3BwZWQgYmVmb3JlIGxhc3Qgc3BhY2UuIEluY3JlbWVudCBieSBvbmUg
dG8gcmVzdG9yZSB0aGUgc3BhY2UuCisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IG1fb2Zmc2V0ID0gc3VicnVuRW5kOwogICAgICAgICAgICAgICAgIGVtaXRUZXh0KG1fbm9kZSwg
cmVuZGVyZXIsIHJ1blN0YXJ0LCBzdWJydW5FbmQpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmgKaW5kZXggYzRhMmM0Zi4uOWRiNTFiNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5oCkBAIC00Nyw2ICs0Nyw3IEBAIGVudW0gVGV4dEl0
ZXJhdG9yQmVoYXZpb3IgewogICAgIFRleHRJdGVyYXRvckVtaXRzT3JpZ2luYWxUZXh0ID0gMSA8
PCA1LAogICAgIFRleHRJdGVyYXRvclN0b3BzT25Gb3JtQ29udHJvbHMgPSAxIDw8IDYsCiAgICAg
VGV4dEl0ZXJhdG9yRW1pdHNJbWFnZUFsdFRleHQgPSAxIDw8IDcsCisgICAgVGV4dEl0ZXJhdG9y
QmVoYXZlc0FzSWZOb2Rlc0ZvbGxvd2luZyA9IDEgPDwgOCwKIH07CiAgICAgCiAvLyBGSVhNRTog
Q2FuJ3QgcmVhbGx5IGFuc3dlciB0aGlzIHF1ZXN0aW9uIGNvcnJlY3RseSB3aXRob3V0IGtub3dp
bmcgdGhlIHdoaXRlLXNwYWNlIG1vZGUuCkBAIC0xOTgsNiArMTk5LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fc2hvdWxkU3RvcDsKIAogICAgIGJvb2wgbV9lbWl0c0ltYWdlQWx0VGV4dDsKKyAg
ICBib29sIG1faGFzTm9kZXNGb2xsb3dpbmc7CiB9OwogCiAvLyBJdGVyYXRlcyB0aHJvdWdoIHRo
ZSBET00gcmFuZ2UsIHJldHVybmluZyBhbGwgdGhlIHRleHQsIGFuZCAwLWxlbmd0aCBib3VuZGFy
aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggZjhhNzczOS4uNjJkYTgxMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtMjU5LDE0ICsyNTksMTcgQEAgU3RyaW5nIFN0
eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjpyZW5kZXJlZFRleHQoY29uc3QgTm9kZSYgbm9kZSwgY29u
c3QgUmFuZ2UqIHJhbmcKICAgICB1bnNpZ25lZCBzdGFydE9mZnNldCA9IDA7CiAgICAgdW5zaWdu
ZWQgZW5kT2Zmc2V0ID0gdGV4dE5vZGUubGVuZ3RoKCk7CiAKKyAgICBUZXh0SXRlcmF0b3JCZWhh
dmlvciBiZWhhdmlvciA9IFRleHRJdGVyYXRvckRlZmF1bHRCZWhhdmlvcjsKICAgICBpZiAocmFu
Z2UgJiYgJm5vZGUgPT0gcmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCkpCiAgICAgICAgIHN0YXJ0T2Zm
c2V0ID0gcmFuZ2UtPnN0YXJ0T2Zmc2V0KCk7CiAgICAgaWYgKHJhbmdlICYmICZub2RlID09IHJh
bmdlLT5lbmRDb250YWluZXIoKSkKICAgICAgICAgZW5kT2Zmc2V0ID0gcmFuZ2UtPmVuZE9mZnNl
dCgpOworICAgIGVsc2UgaWYgKHJhbmdlKQorICAgICAgICBiZWhhdmlvciA9IFRleHRJdGVyYXRv
ckJlaGF2ZXNBc0lmTm9kZXNGb2xsb3dpbmc7CiAKICAgICBQb3NpdGlvbiBzdGFydCA9IGNyZWF0
ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihjb25zdF9jYXN0PE5vZGUqPigmbm9kZSksIHN0YXJ0T2Zm
c2V0KTsKICAgICBQb3NpdGlvbiBlbmQgPSBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oY29u
c3RfY2FzdDxOb2RlKj4oJm5vZGUpLCBlbmRPZmZzZXQpOwotICAgIHJldHVybiBwbGFpblRleHQo
UmFuZ2U6OmNyZWF0ZShub2RlLmRvY3VtZW50KCksIHN0YXJ0LCBlbmQpLmdldCgpKTsKKyAgICBy
ZXR1cm4gcGxhaW5UZXh0KFJhbmdlOjpjcmVhdGUobm9kZS5kb2N1bWVudCgpLCBzdGFydCwgZW5k
KS5nZXQoKSwgYmVoYXZpb3IpOwogfQogCiBTdHJpbmcgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6
OnN0cmluZ1ZhbHVlRm9yUmFuZ2UoY29uc3QgTm9kZSYgbm9kZSwgY29uc3QgUmFuZ2UqIHJhbmdl
KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>