<?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>12375</bug_id>
          
          <creation_ts>2007-01-22 23:46:12 -0800</creation_ts>
          <short_desc>REGRESSION(r19038): fast/dom/title-text-property-2.html failing</short_desc>
          <delta_ts>2007-01-23 20:29:52 -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>New Bugs</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>LayoutTestFailure, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Rowe (bdash)">mrowe</reporter>
          <assigned_to name="Mark Rowe (bdash)">mrowe</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>33228</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-01-22 23:46:12 -0800</bug_when>
    <thetext>Test is failing with:

--- /Users/buildbot/Desktop/BuildData/WebKit-BuildSlave/post-commit-powerpc-mac-os-x/build/LayoutTests/fast/dom/title-text-property-2-expected.txt	2007-01-04 19:06:07.000000000 -0800
+++ layout-test-results/fast/dom/title-text-property-2-actual.txt	2007-01-22 20:40:27.000000000 -0800
@@ -1,3 +1,2 @@
 TITLE CHANGED: 1. setting document.title
-TITLE CHANGED: 2. setting title.text</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33231</commentid>
    <comment_count>1</comment_count>
      <attachid>12619</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-01-22 23:53:42 -0800</bug_when>
    <thetext>Created attachment 12619
Patch

This patch also addresses Ian Hickson&apos;s suggestion of matching the Web Applications 1.0 specification for handling of document.title.  Namely, we materialize a title element in the document&apos;s head when setting document.title if there is no existing title element.  See bug 11692, comment 10 for info.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33077</commentid>
    <comment_count>2</comment_count>
      <attachid>12619</attachid>
    <who name="">mitz</who>
    <bug_when>2007-01-23 06:46:50 -0800</bug_when>
    <thetext>Comment on attachment 12619
Patch

+Expected New document title, got Document title: FAIL

Expected results that say FAIL are confusing. Looking at the test, I can&apos;t figure out where that line comes from.

I think the tests belong in the Document subdirectory of fast/dom.

+    if (m_titleSetExplicitly &amp;&amp; m_titleElement &amp;&amp; isHTMLDocument() &amp;&amp; m_titleElement-&gt;hasTagName(titleTag))
+        static_cast&lt;HTMLTitleElement *&gt;(m_titleElement.get())-&gt;setText(m_title);

Extra space before the *. Why does the above need to be in updateTitle() and not in the appropriate case in setTitle()?

+            if (Node *headElement = headElements-&gt;item(0)) {

* on the wrong side.

I think it&apos;s unfortunate that there&apos;s no easier way to get to the HEAD element. Isn&apos;t it guaranteed to be the first grandchild of the document, if it exists?

+                headElement-&gt;appendChild(m_titleElement, ec);

This ends up calling back into setTitle() as a result of the TITLE element being inserted into the document (so does the setText() in the case that the element already exists). Maybe a little more elegant design could have two separate functions on Document, one for JS to call when setting the attribute and one for TITLE elements to call when they&apos;re inserted or updated. If the &quot;attribute setter&quot; function decides to create/update a TITLE element, it will not have to do anything else since the other function will get called as a result. Then again, perhaps it&apos;s not worth the trouble.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33041</commentid>
    <comment_count>3</comment_count>
      <attachid>12619</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-01-23 09:15:39 -0800</bug_when>
    <thetext>Comment on attachment 12619
Patch

Mitz&apos;s comments seem to justify a review-. Here are a few additional ones:

+            RefPtr&lt;NodeList&gt; headElements = getElementsByTagName(&quot;head&quot;);
+            if (Node *headElement = headElements-&gt;item(0)) {

I suggest adding a head() function alongside the body() function to encapsulate this.

Now that HTML and non-HTML are going to work differently as far as titles are concerned, we might need some SVG or XML test cases.

-        m_titleElement = 0;
+        if (!m_titleElement &amp;&amp; isHTMLDocument()) {

In the non-HTML-document case, maybe we should be setting m_titleElement to 0 as before?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33042</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-01-23 09:16:40 -0800</bug_when>
    <thetext>P1 because we need layout tests passing again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32935</commentid>
    <comment_count>5</comment_count>
      <attachid>12641</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-01-23 18:28:35 -0800</bug_when>
    <thetext>Created attachment 12641
Patch v2

This includes a layout test for the handling of multiple SVG title elements.  document.title is read-only in the SVG DOM which means there are fewer cases to test.  I cannot see a specification for the expected behaviour when multiple title elements are present and the first (i.e., the one currently in use) is removed.

The biggest change in this patch is to removeTitle: we update the document title based on the first title element in the head element, if one exists.  This matches the current Web App 1.0 specification, but differs from both Opera and Firefox.  Opera will update the document title based on the first title element anywhere in the document, while Firefox continues using a title set via document.title even when the element it applied to was removed.

I believe I&apos;ve addressed all the other review comments made by Darin + Mitz.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32927</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-01-23 20:03:23 -0800</bug_when>
    <thetext>Landed in r19070.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12619</attachid>
            <date>2007-01-22 23:53:42 -0800</date>
            <delta_ts>2007-01-23 09:15:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>webkit-bug-12375-v1.patch</filename>
            <type>text/plain</type>
            <size>8959</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE5MDM4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDctMDEtMjMgIE1hcmsgUm93ZSAgPG1yb3dl
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBMYXlvdXQgdGVzdHMgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyMzc1CisgICAgICAgIEJ1ZyAxMjM3NTogUkVHUkVTU0lPTihyMTkwMzgpOiBmYXN0L2Rv
bS90aXRsZS10ZXh0LXByb3BlcnR5LTIuaHRtbCBmYWlsaW5nCisKKyAgICAgICAgKiBmYXN0L2Rv
bS90aXRsZS1wcm9wZXJ0eS1jcmVhdGVzLXRpdGxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS90aXRsZS1wcm9wZXJ0eS1jcmVhdGVzLXRpdGxlLWVsZW1l
bnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vdGl0bGUtcHJvcGVydHktc2V0LW11
bHRpcGxlLXRpbWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vdGl0
bGUtcHJvcGVydHktc2V0LW11bHRpcGxlLXRpbWVzLmh0bWw6IEFkZGVkLgorCiAyMDA3LTAxLTIy
ICBNaXR6IFBldHRlbCAgPG1pdHpAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3RpdGxlLXByb3BlcnR5LWNyZWF0ZXMt
dGl0bGUtZWxlbWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vdGl0bGUtcHJvcGVydHktY3JlYXRlcy10aXRsZS1lbGVtZW50LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3RpdGxlLXByb3BlcnR5LWNyZWF0
ZXMtdGl0bGUtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBA
QAorVGVzdCB0aGF0IHNldHRpbmcgZG9jdW1lbnQudGl0bGUgY3JlYXRlcyBhIHRpdGxlIGVsZW1l
bnQgYW5kIGFwcGVuZHMgaXQgdG8gdGhlIGRvY3VtZW50cyBoZWFkLCBhcyBwZXIgaHR0cDovL3do
YXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyN0aGUtdGl0bGUxLgorCitFeHBl
Y3RlZCAwLCBnb3QgMDogUEFTUworCitFeHBlY3RlZCAxLCBnb3QgMTogUEFTUworCitFeHBlY3Rl
ZCBOZXcgZG9jdW1lbnQgdGl0bGUsIGdvdCBEb2N1bWVudCB0aXRsZTogRkFJTAorCisKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL3RpdGxlLXByb3BlcnR5LWNyZWF0ZXMtdGl0bGUtZWxlbWVu
dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3RpdGxlLXByb3BlcnR5
LWNyZWF0ZXMtdGl0bGUtZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vdGl0bGUtcHJvcGVydHktY3JlYXRlcy10aXRsZS1lbGVtZW50Lmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNDAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rp
b24gbG9nKG1lc3NhZ2UpCit7CisgICAgdmFyIHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInAiKTsKKyAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUobWVzc2FnZSkpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
YXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsKK30KKworZnVuY3Rpb24gZXhwZWN0KGV4cGVjdGVkLCBh
Y3R1YWwpCit7CisgICAgdmFyIG1zZyA9ICJFeHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiLCBnb3Qg
IiArIGFjdHVhbCArICI6ICI7CisgICAgaWYgKGV4cGVjdGVkID09IGFjdHVhbCkKKyAgICAgICAg
bG9nKG1zZyArICJQQVNTIik7CisgICAgZWxzZQorICAgICAgICBsb2cobXNnICsgIkZBSUwiKTsK
K30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KworICAgIGV4cGVjdCgwLCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGl0bGUnKS5s
ZW5ndGgpOworICAgIGRvY3VtZW50LnRpdGxlID0gJ0RvY3VtZW50IHRpdGxlJzsKKyAgICBleHBl
Y3QoMSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RpdGxlJykubGVuZ3RoKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQgc2V0dGluZyBkb2N1bWVu
dC50aXRsZSBjcmVhdGVzIGEgdGl0bGUgZWxlbWVudCBhbmQgYXBwZW5kcyBpdCB0byB0aGUgZG9j
dW1lbnRzIGhlYWQgaWYgb25lIGRvZXMgbm90IGFscmVhZHkgZXhpc3QsIGFzCisgICBwZXIgPGEg
aHJlZj0naHR0cDovL3doYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyN0aGUt
dGl0bGUxJz5odHRwOi8vd2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3Ro
ZS10aXRsZTE8L2E+LjwvcD4KKzxocj4KKzxkaXYgaWQ9J2NvbnNvbGUnLz4KKzxzY3JpcHQ+Cisg
ICAgdGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS90aXRsZS1wcm9wZXJ0eS1zZXQtbXVsdGlwbGUtdGltZXMtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3RpdGxlLXByb3BlcnR5LXNldC1t
dWx0aXBsZS10aW1lcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS90aXRsZS1wcm9wZXJ0eS1zZXQtbXVsdGlwbGUtdGltZXMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACitUZXN0IGZvciBodHRwOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTY5Mi4gSWYgdGhlIHRpdGxlIGhhcyBiZWVuIGV4cGxpY2l0
bHkgc2V0IHZpYSBkb2N1bWVudC50aXRsZSwgYW55IGZ1cnRoZXIgPHRpdGxlPiB0YWdzIHBhcnNl
ZCBzaG91bGQgbm90IGVmZmVjdCB0aGUgZG9jdW1lbnQgdGl0bGUuCisKK0V4cGVjdGVkICwgZ290
IDogUEFTUworCitFeHBlY3RlZCBGaXJzdCB0aXRsZSwgZ290IEZpcnN0IHRpdGxlOiBQQVNTCisK
K0V4cGVjdGVkIFNlY29uZCB0aXRsZSwgZ290IFNlY29uZCB0aXRsZTogUEFTUworCitFeHBlY3Rl
ZCBTZWNvbmQgdGl0bGUsIGdvdCBTZWNvbmQgdGl0bGU6IFBBU1MKKworRXhwZWN0ZWQgRm91cnRo
IHRpdGxlLCBnb3QgRm91cnRoIHRpdGxlOiBQQVNTCisKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vdGl0bGUtcHJvcGVydHktc2V0LW11bHRpcGxlLXRpbWVzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vdGl0bGUtcHJvcGVydHktc2V0LW11bHRpcGxlLXRpbWVz
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS90aXRsZS1wcm9wZXJ0
eS1zZXQtbXVsdGlwbGUtdGltZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NyBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICB2
YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworICAgIHBhcmFncmFw
aC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOwor
fQorCitmdW5jdGlvbiBleHBlY3QoZXhwZWN0ZWQsIGFjdHVhbCkKK3sKKyAgICB2YXIgbXNnID0g
IkV4cGVjdGVkICIgKyBleHBlY3RlZCArICIsIGdvdCAiICsgYWN0dWFsICsgIjogIjsKKyAgICBp
ZiAoZXhwZWN0ZWQgPT0gYWN0dWFsKQorICAgICAgICBsb2cobXNnICsgIlBBU1MiKTsKKyAgICBl
bHNlCisgICAgICAgIGxvZyhtc2cgKyAiRkFJTCIpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICB3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZXhwZWN0KCcnLCBkb2N1bWVu
dC50aXRsZSk7CisgICAgZG9jdW1lbnQud3JpdGUoJzx0aXRsZT5GaXJzdCB0aXRsZTwvdGl0bGU+
Jyk7CisgICAgZXhwZWN0KCdGaXJzdCB0aXRsZScsIGRvY3VtZW50LnRpdGxlKTsKKyAgICBkb2N1
bWVudC50aXRsZSA9ICdTZWNvbmQgdGl0bGUnOworICAgIGV4cGVjdCgnU2Vjb25kIHRpdGxlJywg
ZG9jdW1lbnQudGl0bGUpOworICAgIGRvY3VtZW50LndyaXRlKCc8dGl0bGU+VGhpcmQgdGl0bGU8
L3RpdGxlPicpOworICAgIGV4cGVjdCgnU2Vjb25kIHRpdGxlJywgZG9jdW1lbnQudGl0bGUpOwor
ICAgIGRvY3VtZW50LnRpdGxlID0gJ0ZvdXJ0aCB0aXRsZSc7CisgICAgZXhwZWN0KCdGb3VydGgg
dGl0bGUnLCBkb2N1bWVudC50aXRsZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGVzdCBmb3IgPGEgaHJlZj0naHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE2OTInPmh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjkyPC9h
Pi4KKyAgIElmIHRoZSB0aXRsZSBoYXMgYmVlbiBleHBsaWNpdGx5IHNldCB2aWEgZG9jdW1lbnQu
dGl0bGUsIGFueSBmdXJ0aGVyICZsdDt0aXRsZSZndDsgdGFncyBwYXJzZWQgc2hvdWxkIG5vdCBl
ZmZlY3QKKyAgIHRoZSBkb2N1bWVudCB0aXRsZS48L3A+Cis8aHI+Cis8ZGl2IGlkPSdjb25zb2xl
Jy8+Cis8c2NyaXB0PgorICAgIHRlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE5MDM4KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxOSBAQAorMjAwNy0wMS0yMyAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzc1CisgICAgICAgIEJ1ZyAxMjM3NTog
UkVHUkVTU0lPTihyMTkwMzgpOiBmYXN0L2RvbS90aXRsZS10ZXh0LXByb3BlcnR5LTIuaHRtbCBm
YWlsaW5nCisKKyAgICAgICAgRml4IHJlZ3Jlc3Npb24gYnkgbWFraW5nIHNldFRpdGxlL3VwZGF0
ZVRpdGxlIGxvZ2ljIG1hdGNoIGRvY3VtZW50LnRpdGxlCisgICAgICAgIHNwZWNpZmljYXRpb24g
YXQgaHR0cDovL3doYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyN0aGUtdGl0
bGUxLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojp1cGRhdGVUaXRsZSk6IFVwZGF0ZSB0aGUgY29udGVudHMgb2YgdGhlIHRpdGxlIGVs
ZW1lbnQgd2hlbiB0aXRsZSBpcyBzZXQgdmlhIGRvY3VtZW50LnRpdGxlLgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnNldFRpdGxlKTogTWF0ZXJpYWxpemUgYSB0aXRsZSBlbGVtZW50IGlu
dG8gdGhlIGhlYWQgaWYgb25lIGRvZXNuJ3QgZXhpc3Qgd2hlbiBzZXR0aW5nIGRvY3VtZW50LnRp
dGxlLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZVRpdGxlKToKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuaDoKKwogMjAwNy0wMS0yMiAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llai4KSW5kZXg6IFdlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlz
aW9uIDE5MDM4KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02Myw2ICs2Myw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVDb2xsZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUg
IkpTRWRpdG9yLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgpAQCAtODA3LDE0ICs4MDgs
MjYgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlVGl0bGUoKQogewogICAgIGlmIChGcmFtZSogZiA9
IGZyYW1lKCkpCiAgICAgICAgIGYtPmxvYWRlcigpLT5zZXRUaXRsZShtX3RpdGxlKTsKKworICAg
IGlmIChtX3RpdGxlU2V0RXhwbGljaXRseSAmJiBtX3RpdGxlRWxlbWVudCAmJiBpc0hUTUxEb2N1
bWVudCgpICYmIG1fdGl0bGVFbGVtZW50LT5oYXNUYWdOYW1lKHRpdGxlVGFnKSkKKyAgICAgICAg
c3RhdGljX2Nhc3Q8SFRNTFRpdGxlRWxlbWVudCAqPihtX3RpdGxlRWxlbWVudC5nZXQoKSktPnNl
dFRleHQobV90aXRsZSk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnNldFRpdGxlKGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIE5vZGUqIHRpdGxlRWxlbWVudCkKK3ZvaWQgRG9jdW1lbnQ6OnNldFRpdGxlKGNv
bnN0IFN0cmluZyYgdGl0bGUsIEVsZW1lbnQqIHRpdGxlRWxlbWVudCkKIHsKICAgICBpZiAoIXRp
dGxlRWxlbWVudCkgewogICAgICAgICAvLyBUaXRsZSBzZXQgYnkgSmF2YVNjcmlwdCAtLSBvdmVy
cmlkZXMgYW55IHRpdGxlIGVsZW1lbnRzLgogICAgICAgICBtX3RpdGxlU2V0RXhwbGljaXRseSA9
IHRydWU7Ci0gICAgICAgIG1fdGl0bGVFbGVtZW50ID0gMDsKKyAgICAgICAgaWYgKCFtX3RpdGxl
RWxlbWVudCAmJiBpc0hUTUxEb2N1bWVudCgpKSB7CisgICAgICAgICAgICBSZWZQdHI8Tm9kZUxp
c3Q+IGhlYWRFbGVtZW50cyA9IGdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIik7CisgICAgICAg
ICAgICBpZiAoTm9kZSAqaGVhZEVsZW1lbnQgPSBoZWFkRWxlbWVudHMtPml0ZW0oMCkpIHsKKyAg
ICAgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICAgICAgICAgICAgICBtX3Rp
dGxlRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoInRpdGxlIiwgZWMpOworICAgICAgICAgICAgICAg
IEFTU0VSVCghZWMpOworICAgICAgICAgICAgICAgIGhlYWRFbGVtZW50LT5hcHBlbmRDaGlsZCht
X3RpdGxlRWxlbWVudCwgZWMpOworICAgICAgICAgICAgICAgIEFTU0VSVCghZWMpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CiAgICAgfSBlbHNlIGlmICh0aXRsZUVsZW1lbnQgIT0gbV90aXRs
ZUVsZW1lbnQpIHsKICAgICAgICAgaWYgKG1fdGl0bGVFbGVtZW50IHx8IG1fdGl0bGVTZXRFeHBs
aWNpdGx5KQogICAgICAgICAgICAgLy8gT25seSBhbGxvdyB0aGUgZmlyc3QgdGl0bGUgZWxlbWVu
dCB0byBjaGFuZ2UgdGhlIHRpdGxlIC0tIG90aGVycyBoYXZlIG5vIGVmZmVjdC4KQEAgLTgyOSw3
ICs4NDIsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRpCiAgICAg
dXBkYXRlVGl0bGUoKTsKIH0KIAotdm9pZCBEb2N1bWVudDo6cmVtb3ZlVGl0bGUoTm9kZSogdGl0
bGVFbGVtZW50KQordm9pZCBEb2N1bWVudDo6cmVtb3ZlVGl0bGUoRWxlbWVudCogdGl0bGVFbGVt
ZW50KQogewogICAgIGlmIChtX3RpdGxlRWxlbWVudCAhPSB0aXRsZUVsZW1lbnQpCiAgICAgICAg
IHJldHVybjsKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMTkwMzgpCisrKyBXZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTYsOCArMTk2LDggQEAgcHVibGljOgogCiAgICAg
Ly8gQWN0dWFsbHkgcGFydCBvZiBKU0hUTUxEb2N1bWVudCwgYnV0IHVzZWQgZm9yIGdpdmluZyBY
TUwgZG9jdW1lbnRzIGEgd2luZG93IHRpdGxlIGFzIHdlbGwKICAgICBTdHJpbmcgdGl0bGUoKSBj
b25zdCB7IHJldHVybiBtX3RpdGxlOyB9Ci0gICAgdm9pZCBzZXRUaXRsZShjb25zdCBTdHJpbmcm
LCBOb2RlKiB0aXRsZUVsZW1lbnQgPSAwKTsKLSAgICB2b2lkIHJlbW92ZVRpdGxlKE5vZGUqIHRp
dGxlRWxlbWVudCk7CisgICAgdm9pZCBzZXRUaXRsZShjb25zdCBTdHJpbmcmLCBFbGVtZW50KiB0
aXRsZUVsZW1lbnQgPSAwKTsKKyAgICB2b2lkIHJlbW92ZVRpdGxlKEVsZW1lbnQqIHRpdGxlRWxl
bWVudCk7CiAKICAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBpbWFnZXMoKTsKICAgICBQ
YXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBlbWJlZHMoKTsKQEAgLTY5MSw3ICs2OTEsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgCiAgICAgU3RyaW5nIG1fdGl0bGU7CiAgICAgYm9vbCBtX3RpdGxlU2V0
RXhwbGljaXRseTsKLSAgICBSZWZQdHI8Tm9kZT4gbV90aXRsZUVsZW1lbnQ7CisgICAgUmVmUHRy
PEVsZW1lbnQ+IG1fdGl0bGVFbGVtZW50OwogICAgIAogICAgIFJlbmRlckFyZW5hKiBtX3JlbmRl
ckFyZW5hOwogCg==
</data>
<flag name="review"
          id="4792"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12641</attachid>
            <date>2007-01-23 18:28:35 -0800</date>
            <delta_ts>2007-01-23 19:12:49 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>webkit-bug-12375-v2.patch</filename>
            <type>text/plain</type>
            <size>14880</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE5MDY4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDctMDEtMjQgIE1hcmsgUm93ZSAgPG1yb3dl
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBMYXlvdXQgdGVzdHMgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyMzc1CisgICAgICAgIEJ1ZyAxMjM3NTogUkVHUkVTU0lPTihyMTkwMzgpOiBmYXN0L2Rv
bS90aXRsZS10ZXh0LXByb3BlcnR5LTIuaHRtbCBmYWlsaW5nCisKKyAgICAgICAgKiBmYXN0L2Rv
bS9Eb2N1bWVudC90aXRsZS1wcm9wZXJ0eS1jcmVhdGVzLXRpdGxlLWVsZW1lbnQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Eb2N1bWVudC90aXRsZS1wcm9wZXJ0eS1j
cmVhdGVzLXRpdGxlLWVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRG9j
dW1lbnQvdGl0bGUtcHJvcGVydHktc2V0LW11bHRpcGxlLXRpbWVzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vRG9jdW1lbnQvdGl0bGUtcHJvcGVydHktc2V0LW11bHRp
cGxlLXRpbWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3RpdGxlLXRleHQtcHJv
cGVydHktMi5odG1sOiBSZW1vdmUgaW4gcmV2ZXJzZSBvcmRlciB0byBwcmVzZXJ2ZSB0ZXN0IGJl
aGF2aW91ciB3aGVuIHJlbW92aW5nIHRpdGxlIGVsZW1lbnRzLgorICAgICAgICAqIHN2Zy9jdXN0
b20vbXVsdGlwbGUtdGl0bGUtZWxlbWVudHMuc3ZnOiBBZGRlZC4KKwogMjAwNy0wMS0yMyAgQmV0
aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSHlhdHQu
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS90aXRsZS10ZXh0LXByb3BlcnR5LTIuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS90aXRsZS10ZXh0LXByb3BlcnR5LTIu
aHRtbAkocmV2aXNpb24gMTkwNjcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS90aXRsZS10ZXh0
LXByb3BlcnR5LTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAgZnVuY3Rpb24g
cnVuVGVzdHMoKSB7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBUaXRsZUNoYW5n
ZXMoKTsKICAgICB9CiAgICAgCi0gICAgZG9jdW1lbnQudGl0bGU9JzEuIHNldHRpbmcgZG9jdW1l
bnQudGl0bGUnOworICAgIGRvY3VtZW50LnRpdGxlID0gJzEuIHNldHRpbmcgZG9jdW1lbnQudGl0
bGUnOwogCiAgICAgdGl0bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGl0bGUn
KS5pdGVtKDApOwogICAgIApAQCAtMTgsMTAgKzE4LDEwIEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkg
ewogICAgIAogICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJykuaXRlbSgw
KS5hcHBlbmRDaGlsZChuZXdUaXRsZSk7CiAgICAgCi0gICAgLy8gUmVtb3ZlIGJvdGggdGl0bGUg
ZWxlbWVudHMgCisgICAgLy8gUmVtb3ZlIGJvdGggdGl0bGUgZWxlbWVudHMKICAgICB0aXRsZUVs
ZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RpdGxlJyk7Ci0gICAgZm9y
IChpID0gMDsgaSA8IHRpdGxlRWxlbWVudHMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdGl0bGVF
bGVtZW50ID0gdGl0bGVFbGVtZW50cy5pdGVtKGkpOworICAgIHdoaWxlICh0aXRsZUVsZW1lbnRz
Lmxlbmd0aCkgeworICAgICAgICB0aXRsZUVsZW1lbnQgPSB0aXRsZUVsZW1lbnRzW3RpdGxlRWxl
bWVudHMubGVuZ3RoIC0gMV07CiAgICAgICAgIHRpdGxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92
ZUNoaWxkKHRpdGxlRWxlbWVudCk7CiAgICAgfQogfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vRG9jdW1lbnQvdGl0bGUtcHJvcGVydHktY3JlYXRlcy10aXRsZS1lbGVtZW50LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1bWVudC90aXRsZS1w
cm9wZXJ0eS1jcmVhdGVzLXRpdGxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvdGl0bGUtcHJvcGVydHktY3JlYXRlcy10
aXRsZS1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3IEBACitU
ZXN0IHRoYXQgc2V0dGluZyBkb2N1bWVudC50aXRsZSBjcmVhdGVzIGEgdGl0bGUgZWxlbWVudCBh
bmQgYXBwZW5kcyBpdCB0byB0aGUgZG9jdW1lbnRzIGhlYWQgaWYgb25lIGRvZXMgbm90IGFscmVh
ZHkgZXhpc3QsIGFzIHBlciBodHRwOi8vd2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50
LXdvcmsvI3RoZS10aXRsZTEuCisKK0V4cGVjdGVkIDAsIGdvdCAwOiBQQVNTCisKK0V4cGVjdGVk
IDEsIGdvdCAxOiBQQVNTCisKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQv
dGl0bGUtcHJvcGVydHktY3JlYXRlcy10aXRsZS1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvdGl0bGUtcHJvcGVydHktY3JlYXRlcy10aXRs
ZS1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9Eb2N1
bWVudC90aXRsZS1wcm9wZXJ0eS1jcmVhdGVzLXRpdGxlLWVsZW1lbnQuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBs
b2cobWVzc2FnZSkKK3sKKyAgICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgicCIpOworICAgIHBhcmFncmFwaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShtZXNzYWdlKSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBl
bmRDaGlsZChwYXJhZ3JhcGgpOworfQorCitmdW5jdGlvbiBleHBlY3QoZXhwZWN0ZWQsIGFjdHVh
bCkKK3sKKyAgICB2YXIgbXNnID0gIkV4cGVjdGVkICIgKyBleHBlY3RlZCArICIsIGdvdCAiICsg
YWN0dWFsICsgIjogIjsKKyAgICBpZiAoZXhwZWN0ZWQgPT0gYWN0dWFsKQorICAgICAgICBsb2co
bXNnICsgIlBBU1MiKTsKKyAgICBlbHNlCisgICAgICAgIGxvZyhtc2cgKyAiRkFJTCIpOworfQor
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgZXhwZWN0KDAsIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0aXRsZScpLmxlbmd0
aCk7CisgICAgZG9jdW1lbnQudGl0bGUgPSAnRG9jdW1lbnQgdGl0bGUnOworICAgIGV4cGVjdCgx
LCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGl0bGUnKS5sZW5ndGgpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgdGhhdCBzZXR0aW5nIGRvY3VtZW50LnRp
dGxlIGNyZWF0ZXMgYSB0aXRsZSBlbGVtZW50IGFuZCBhcHBlbmRzIGl0IHRvIHRoZSBkb2N1bWVu
dHMgaGVhZCBpZiBvbmUgZG9lcyBub3QgYWxyZWFkeSBleGlzdCwgYXMKKyAgIHBlciA8YSBocmVm
PSdodHRwOi8vd2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3RoZS10aXRs
ZTEnPmh0dHA6Ly93aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jdGhlLXRp
dGxlMTwvYT4uPC9wPgorPGhyPgorPGRpdiBpZD0nY29uc29sZScvPgorPHNjcmlwdD4KKyAgICB0
ZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL0RvY3VtZW50L3RpdGxlLXByb3BlcnR5LXNldC1tdWx0aXBsZS10aW1lcy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvdGl0bGUt
cHJvcGVydHktc2V0LW11bHRpcGxlLXRpbWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3RpdGxlLXByb3BlcnR5LXNldC1tdWx0aXBs
ZS10aW1lcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKK1Rlc3Qg
Zm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjkyLiBJZiB0aGUg
dGl0bGUgaGFzIGJlZW4gZXhwbGljaXRseSBzZXQgdmlhIGRvY3VtZW50LnRpdGxlLCBhbnkgZnVy
dGhlciA8dGl0bGU+IHRhZ3MgcGFyc2VkIHNob3VsZCBub3QgZWZmZWN0IHRoZSBkb2N1bWVudCB0
aXRsZS4KKworRXhwZWN0ZWQgLCBnb3QgOiBQQVNTCisKK0V4cGVjdGVkIEZpcnN0IHRpdGxlLCBn
b3QgRmlyc3QgdGl0bGU6IFBBU1MKKworRXhwZWN0ZWQgU2Vjb25kIHRpdGxlLCBnb3QgU2Vjb25k
IHRpdGxlOiBQQVNTCisKK0V4cGVjdGVkIFNlY29uZCB0aXRsZSwgZ290IFNlY29uZCB0aXRsZTog
UEFTUworCitFeHBlY3RlZCBGb3VydGggdGl0bGUsIGdvdCBGb3VydGggdGl0bGU6IFBBU1MKKwor
RXhwZWN0ZWQgVGhpcmQgdGl0bGUsIGdvdCBUaGlyZCB0aXRsZTogUEFTUworCitFeHBlY3RlZCAs
IGdvdCA6IFBBU1MKKworRXhwZWN0ZWQgRmlmdGggdGl0bGUsIGdvdCBGaWZ0aCB0aXRsZTogUEFT
UworCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0RvY3VtZW50L3RpdGxlLXByb3BlcnR5
LXNldC1tdWx0aXBsZS10aW1lcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0RvY3VtZW50L3RpdGxlLXByb3BlcnR5LXNldC1tdWx0aXBsZS10aW1lcy5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRG9jdW1lbnQvdGl0bGUtcHJvcGVydHkt
c2V0LW11bHRpcGxlLXRpbWVzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjYgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgdmFy
IHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKKyAgICBwYXJhZ3JhcGgu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsKK30K
KworZnVuY3Rpb24gZXhwZWN0KGV4cGVjdGVkLCBhY3R1YWwpCit7CisgICAgdmFyIG1zZyA9ICJF
eHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiLCBnb3QgIiArIGFjdHVhbCArICI6ICI7CisgICAgaWYg
KGV4cGVjdGVkID09IGFjdHVhbCkKKyAgICAgICAgbG9nKG1zZyArICJQQVNTIik7CisgICAgZWxz
ZQorICAgICAgICBsb2cobXNnICsgIkZBSUwiKTsKK30KKworZnVuY3Rpb24gY3JlYXRlVGl0bGVF
bGVtZW50KHRpdGxlKQoreworICAgIHZhciB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGl0
bGUnKTsKKyAgICB0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRpdGxlKSk7
CisgICAgcmV0dXJuIHQ7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKworICAgIHZhciBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
J2hlYWQnKVswXTsKKworICAgIGV4cGVjdCgnJywgZG9jdW1lbnQudGl0bGUpOworICAgIGhlYWQu
YXBwZW5kQ2hpbGQoY3JlYXRlVGl0bGVFbGVtZW50KCdGaXJzdCB0aXRsZScpKTsKKyAgICBleHBl
Y3QoJ0ZpcnN0IHRpdGxlJywgZG9jdW1lbnQudGl0bGUpOworICAgIGRvY3VtZW50LnRpdGxlID0g
J1NlY29uZCB0aXRsZSc7CisgICAgZXhwZWN0KCdTZWNvbmQgdGl0bGUnLCBkb2N1bWVudC50aXRs
ZSk7CisgICAgaGVhZC5hcHBlbmRDaGlsZChjcmVhdGVUaXRsZUVsZW1lbnQoJ1RoaXJkIHRpdGxl
JykpOworICAgIGV4cGVjdCgnU2Vjb25kIHRpdGxlJywgZG9jdW1lbnQudGl0bGUpOworICAgIGRv
Y3VtZW50LnRpdGxlID0gJ0ZvdXJ0aCB0aXRsZSc7CisgICAgZXhwZWN0KCdGb3VydGggdGl0bGUn
LCBkb2N1bWVudC50aXRsZSk7CisKKyAgICB2YXIgdGl0bGVzID0gaGVhZC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgndGl0bGUnKTsKKyAgICB2YXIgZXhwZWN0ZWRUaXRsZXMgPSB7MTogJ1RoaXJkIHRp
dGxlJywgMDogJyd9OworICAgIHdoaWxlICh0aXRsZXMubGVuZ3RoKSB7CisgICAgICAgIHRpdGxl
c1swXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRpdGxlc1swXSk7CisgICAgICAgIGV4cGVjdChl
eHBlY3RlZFRpdGxlc1t0aXRsZXMubGVuZ3RoXSwgZG9jdW1lbnQudGl0bGUpOworICAgIH0KKwor
ICAgIGhlYWQuYXBwZW5kQ2hpbGQoY3JlYXRlVGl0bGVFbGVtZW50KCdGaWZ0aCB0aXRsZScpKTsK
KyAgICBleHBlY3QoJ0ZpZnRoIHRpdGxlJywgZG9jdW1lbnQudGl0bGUpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9J2h0dHA6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjkyJz5odHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTY5MjwvYT4uCisgICBJZiB0aGUgdGl0bGUgaGFzIGJlZW4gZXhwbGljaXRs
eSBzZXQgdmlhIGRvY3VtZW50LnRpdGxlLCBhbnkgZnVydGhlciAmbHQ7dGl0bGUmZ3Q7IHRhZ3Mg
cGFyc2VkIHNob3VsZCBub3QgZWZmZWN0CisgICB0aGUgZG9jdW1lbnQgdGl0bGUuPC9wPgorPGhy
PgorPGRpdiBpZD0nY29uc29sZScvPgorPHNjcmlwdD4KKyAgICB0ZXN0KCk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vbXVsdGlwbGUt
dGl0bGUtZWxlbWVudHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9jdXN0b20vbXVsdGlwbGUtdGl0bGUtZWxlbWVudHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tdWx0aXBsZS10aXRsZS1lbGVtZW50cy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorRXhwZWN0ZWQgLCBnb3QgOiBQ
QVNTCitFeHBlY3RlZCBGaXJzdCB0aXRsZSwgZ290IEZpcnN0IHRpdGxlOiBQQVNTCitFeHBlY3Rl
ZCBGaXJzdCB0aXRsZSwgZ290IEZpcnN0IHRpdGxlOiBQQVNTCisKSW5kZXg6IExheW91dFRlc3Rz
L3N2Zy9jdXN0b20vbXVsdGlwbGUtdGl0bGUtZWxlbWVudHMuc3ZnCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9jdXN0b20vbXVsdGlwbGUtdGl0bGUtZWxlbWVudHMuc3ZnCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tdWx0aXBsZS10aXRsZS1lbGVtZW50cy5z
dmcJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3Rh
bmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4x
Ly9FTiIgCisgICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5k
dGQiPgorPHN2ZyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjMwMCIgdmlld0JveD0iMCAwIDYwMCA1MDAi
CisgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiBv
bmxvYWQ9InRlc3QoKSI+Cis8c2NyaXB0PgorCit2YXIgbG9nT2Zmc2V0ID0gNDA7Cit2YXIgbG9n
T2Zmc2V0SW5jcmVtZW50ID0gNDAKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIHZhciB0
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dCIpOworICAgIHQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOworICAgIHQuc2V0QXR0cmlidXRlKCd5Jywg
bG9nT2Zmc2V0KTsKKyAgICB0LnNldEF0dHJpYnV0ZSgneCcsIDApOworICAgIGxvZ09mZnNldCAr
PSBsb2dPZmZzZXRJbmNyZW1lbnQ7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNv
bGUiKS5hcHBlbmRDaGlsZCh0KTsKK30KKworZnVuY3Rpb24gZXhwZWN0KGV4cGVjdGVkLCBhY3R1
YWwpCit7CisgICAgdmFyIG1zZyA9ICJFeHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiLCBnb3QgIiAr
IGFjdHVhbCArICI6ICI7CisgICAgaWYgKGV4cGVjdGVkID09IGFjdHVhbCkKKyAgICAgICAgbG9n
KG1zZyArICJQQVNTIik7CisgICAgZWxzZQorICAgICAgICBsb2cobXNnICsgIkZBSUwiKTsKK30K
KworZnVuY3Rpb24gY3JlYXRlVGl0bGVFbGVtZW50KHRpdGxlKQoreworICAgIHZhciB0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgndGl0bGUnKTsKKyAgICB0LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKHRpdGxlKSk7CisgICAgcmV0dXJuIHQ7Cit9CisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGV4cGVjdCgnJywgZG9jdW1l
bnQudGl0bGUpOworICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChjcmVh
dGVUaXRsZUVsZW1lbnQoJ0ZpcnN0IHRpdGxlJykpOworICAgIGV4cGVjdCgnRmlyc3QgdGl0bGUn
LCBkb2N1bWVudC50aXRsZSk7CisgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENo
aWxkKGNyZWF0ZVRpdGxlRWxlbWVudCgnU2Vjb25kIHRpdGxlJykpOworICAgIGV4cGVjdCgnRmly
c3QgdGl0bGUnLCBkb2N1bWVudC50aXRsZSk7Cit9Cis8L3NjcmlwdD4KKzxnIGlkPSJjb25zb2xl
Ij4KKzwvZz4KKzwvc3ZnPgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MDY4KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAwNy0wMS0yMyAgTWFyayBSb3dlICA8
bXJvd2VAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzc1Cisg
ICAgICAgIEJ1ZyAxMjM3NTogUkVHUkVTU0lPTihyMTkwMzgpOiBmYXN0L2RvbS90aXRsZS10ZXh0
LXByb3BlcnR5LTIuaHRtbCBmYWlsaW5nCisKKyAgICAgICAgRml4IHJlZ3Jlc3Npb24gYnkgbWFr
aW5nIHNldFRpdGxlL3VwZGF0ZVRpdGxlL3JlbW92ZVRpdGxlIGxvZ2ljIG1hdGNoIGRvY3VtZW50
LnRpdGxlCisgICAgICAgIHNwZWNpZmljYXRpb24gYXQgaHR0cDovL3doYXR3Zy5vcmcvc3BlY3Mv
d2ViLWFwcHMvY3VycmVudC13b3JrLyN0aGUtdGl0bGUxLgorCisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRUaXRsZSk6IE1hdGVyaWFs
aXplIGEgdGl0bGUgZWxlbWVudCBpbnRvIHRoZSBoZWFkIGlmIG9uZSBkb2Vzbid0IGV4aXN0IHdo
ZW4gc2V0dGluZworICAgICAgICBkb2N1bWVudC50aXRsZS4gIEFsc28gdXBkYXRlIHRoZSBjb250
ZW50cyBvZiB0aGUgdGl0bGUgZWxlbWVudCB3aGVuIHRoZSB0aXRsZSBpcyBzZXQgdmlhIGRvY3Vt
ZW50LnRpdGxlLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZVRpdGxlKTogVXBk
YXRlIHRoZSB0aXRsZSBiYXNlZCBvbiBmaXJzdCB0aXRsZSBlbGVtZW50IGluIHRoZSBoZWFkLCBp
ZiBvbmUgZXhpc3RzLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmhlYWQpOiBDb252ZW5p
ZW5jZSBtZXRob2QgdG8gcmV0cmlldmUgdGhlIGhlYWQgZWxlbWVudCBpbiBhbiBIVE1MIGRvY3Vt
ZW50LgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorCiAyMDA3LTAxLTIzICBCZXRoIERha2lu
ICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBIeWF0dC4KSW5kZXg6
IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAJKHJldmlzaW9uIDE5MDY3KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2Myw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVDb2xsZWN0
aW9uLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vy
cy5oIgogI2luY2x1ZGUgIkpTRWRpdG9yLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgpA
QCAtODA5LDEyICs4MTAsMjIgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlVGl0bGUoKQogICAgICAg
ICBmLT5sb2FkZXIoKS0+c2V0VGl0bGUobV90aXRsZSk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnNl
dFRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIE5vZGUqIHRpdGxlRWxlbWVudCkKK3ZvaWQgRG9j
dW1lbnQ6OnNldFRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIEVsZW1lbnQqIHRpdGxlRWxlbWVu
dCkKIHsKICAgICBpZiAoIXRpdGxlRWxlbWVudCkgewogICAgICAgICAvLyBUaXRsZSBzZXQgYnkg
SmF2YVNjcmlwdCAtLSBvdmVycmlkZXMgYW55IHRpdGxlIGVsZW1lbnRzLgogICAgICAgICBtX3Rp
dGxlU2V0RXhwbGljaXRseSA9IHRydWU7Ci0gICAgICAgIG1fdGl0bGVFbGVtZW50ID0gMDsKKyAg
ICAgICAgaWYgKCFpc0hUTUxEb2N1bWVudCgpKQorICAgICAgICAgICAgbV90aXRsZUVsZW1lbnQg
PSAwOworICAgICAgICBlbHNlIGlmICghbV90aXRsZUVsZW1lbnQpIHsKKyAgICAgICAgICAgIGlm
IChIVE1MRWxlbWVudCogaGVhZEVsZW1lbnQgPSBoZWFkKCkpIHsKKyAgICAgICAgICAgICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICAgICAgICAgICAgICBtX3RpdGxlRWxlbWVudCA9IGNy
ZWF0ZUVsZW1lbnQoInRpdGxlIiwgZWMpOworICAgICAgICAgICAgICAgIEFTU0VSVCghZWMpOwor
ICAgICAgICAgICAgICAgIGhlYWRFbGVtZW50LT5hcHBlbmRDaGlsZChtX3RpdGxlRWxlbWVudCwg
ZWMpOworICAgICAgICAgICAgICAgIEFTU0VSVCghZWMpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CiAgICAgfSBlbHNlIGlmICh0aXRsZUVsZW1lbnQgIT0gbV90aXRsZUVsZW1lbnQpIHsKICAg
ICAgICAgaWYgKG1fdGl0bGVFbGVtZW50IHx8IG1fdGl0bGVTZXRFeHBsaWNpdGx5KQogICAgICAg
ICAgICAgLy8gT25seSBhbGxvdyB0aGUgZmlyc3QgdGl0bGUgZWxlbWVudCB0byBjaGFuZ2UgdGhl
IHRpdGxlIC0tIG90aGVycyBoYXZlIG5vIGVmZmVjdC4KQEAgLTgyNywxNyArODM4LDMwIEBAIHZv
aWQgRG9jdW1lbnQ6OnNldFRpdGxlKGNvbnN0IFN0cmluZyYgdGkKIAogICAgIG1fdGl0bGUgPSB0
aXRsZTsKICAgICB1cGRhdGVUaXRsZSgpOworCisgICAgaWYgKG1fdGl0bGVTZXRFeHBsaWNpdGx5
ICYmIG1fdGl0bGVFbGVtZW50ICYmIG1fdGl0bGVFbGVtZW50LT5oYXNUYWdOYW1lKHRpdGxlVGFn
KSkKKyAgICAgICAgc3RhdGljX2Nhc3Q8SFRNTFRpdGxlRWxlbWVudCo+KG1fdGl0bGVFbGVtZW50
LmdldCgpKS0+c2V0VGV4dChtX3RpdGxlKTsKIH0KIAotdm9pZCBEb2N1bWVudDo6cmVtb3ZlVGl0
bGUoTm9kZSogdGl0bGVFbGVtZW50KQordm9pZCBEb2N1bWVudDo6cmVtb3ZlVGl0bGUoRWxlbWVu
dCogdGl0bGVFbGVtZW50KQogewogICAgIGlmIChtX3RpdGxlRWxlbWVudCAhPSB0aXRsZUVsZW1l
bnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBJZGVhbGx5IHdlIG1pZ2h0IHdh
bnQgdGhpcyB0byBzZWFyY2ggZm9yIHRoZSBmaXJzdCByZW1haW5pbmcgdGl0bGUgZWxlbWVudCwg
YW5kIHVzZSBpdC4KICAgICBtX3RpdGxlRWxlbWVudCA9IDA7CisgICAgbV90aXRsZVNldEV4cGxp
Y2l0bHkgPSBmYWxzZTsKKworICAgIC8vIFVwZGF0ZSB0aXRsZSBiYXNlZCBvbiBmaXJzdCB0aXRs
ZSBlbGVtZW50IGluIHRoZSBoZWFkLCBpZiBvbmUgZXhpc3RzLgorICAgIGlmIChIVE1MRWxlbWVu
dCogaGVhZEVsZW1lbnQgPSBoZWFkKCkpIHsKKyAgICAgICAgZm9yIChOb2RlKiBlID0gaGVhZEVs
ZW1lbnQtPmZpcnN0Q2hpbGQoKTsgZTsgZSA9IGUtPm5leHRTaWJsaW5nKCkpCisgICAgICAgICAg
ICBpZiAoZS0+aGFzVGFnTmFtZSh0aXRsZVRhZykpIHsKKyAgICAgICAgICAgICAgICBIVE1MVGl0
bGVFbGVtZW50KiB0aXRsZUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MVGl0bGVFbGVtZW50Kj4o
ZSk7CisgICAgICAgICAgICAgICAgc2V0VGl0bGUodGl0bGVFbGVtZW50LT50ZXh0KCksIHRpdGxl
RWxlbWVudCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgfQog
Ci0gICAgaWYgKCFtX3RpdGxlLmlzRW1wdHkoKSkgeworICAgIGlmICghbV90aXRsZUVsZW1lbnQg
JiYgIW1fdGl0bGUuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fdGl0bGUgPSAiIjsKICAgICAgICAg
dXBkYXRlVGl0bGUoKTsKICAgICB9CkBAIC0xMjU1LDcgKzEyNzksNyBAQCB2b2lkIERvY3VtZW50
OjppbXBsaWNpdE9wZW4oKQogCiBIVE1MRWxlbWVudCogRG9jdW1lbnQ6OmJvZHkoKQogewotICAg
IE5vZGUgKmRlID0gZG9jdW1lbnRFbGVtZW50KCk7CisgICAgTm9kZSogZGUgPSBkb2N1bWVudEVs
ZW1lbnQoKTsKICAgICBpZiAoIWRlKQogICAgICAgICByZXR1cm4gMDsKICAgICAKQEAgLTEyNjgs
NyArMTI5MiwyMCBAQCBIVE1MRWxlbWVudCogRG9jdW1lbnQ6OmJvZHkoKQogICAgICAgICBpZiAo
aS0+aGFzVGFnTmFtZShib2R5VGFnKSkKICAgICAgICAgICAgIGJvZHkgPSBpOwogICAgIH0KLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQgKj4oYm9keSk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oYm9keSk7Cit9CisKK0hUTUxFbGVtZW50KiBEb2N1bWVu
dDo6aGVhZCgpCit7CisgICAgTm9kZSogZGUgPSBkb2N1bWVudEVsZW1lbnQoKTsKKyAgICBpZiAo
IWRlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGZvciAoTm9kZSogZSA9IGRlLT5maXJzdENo
aWxkKCk7IGU7IGUgPSBlLT5uZXh0U2libGluZygpKQorICAgICAgICBpZiAoZS0+aGFzVGFnTmFt
ZShoZWFkVGFnKSkKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+
KGUpOworCisgICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmNsb3NlKCkKSW5kZXg6
IFdlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAkocmV2aXNpb24gMTkwNjcpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xOTYsOCArMTk2LDggQEAgcHVibGljOgogCiAgICAgLy8gQWN0dWFsbHkgcGFy
dCBvZiBKU0hUTUxEb2N1bWVudCwgYnV0IHVzZWQgZm9yIGdpdmluZyBYTUwgZG9jdW1lbnRzIGEg
d2luZG93IHRpdGxlIGFzIHdlbGwKICAgICBTdHJpbmcgdGl0bGUoKSBjb25zdCB7IHJldHVybiBt
X3RpdGxlOyB9Ci0gICAgdm9pZCBzZXRUaXRsZShjb25zdCBTdHJpbmcmLCBOb2RlKiB0aXRsZUVs
ZW1lbnQgPSAwKTsKLSAgICB2b2lkIHJlbW92ZVRpdGxlKE5vZGUqIHRpdGxlRWxlbWVudCk7Cisg
ICAgdm9pZCBzZXRUaXRsZShjb25zdCBTdHJpbmcmLCBFbGVtZW50KiB0aXRsZUVsZW1lbnQgPSAw
KTsKKyAgICB2b2lkIHJlbW92ZVRpdGxlKEVsZW1lbnQqIHRpdGxlRWxlbWVudCk7CiAKICAgICBQ
YXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBpbWFnZXMoKTsKICAgICBQYXNzUmVmUHRyPEhUTUxD
b2xsZWN0aW9uPiBlbWJlZHMoKTsKQEAgLTUzNSw2ICs1MzUsNyBAQCBwdWJsaWM6CiAgICAgSFRN
TE1hcEVsZW1lbnQqIGdldEltYWdlTWFwKGNvbnN0IFN0cmluZyYgVVJMKSBjb25zdDsKIAogICAg
IEhUTUxFbGVtZW50KiBib2R5KCk7CisgICAgSFRNTEVsZW1lbnQqIGhlYWQoKTsKIAogICAgIFN0
cmluZyB0b1N0cmluZygpIGNvbnN0OwogICAgIApAQCAtNjkxLDcgKzY5Miw3IEBAIHByb3RlY3Rl
ZDoKICAgICAKICAgICBTdHJpbmcgbV90aXRsZTsKICAgICBib29sIG1fdGl0bGVTZXRFeHBsaWNp
dGx5OwotICAgIFJlZlB0cjxOb2RlPiBtX3RpdGxlRWxlbWVudDsKKyAgICBSZWZQdHI8RWxlbWVu
dD4gbV90aXRsZUVsZW1lbnQ7CiAgICAgCiAgICAgUmVuZGVyQXJlbmEqIG1fcmVuZGVyQXJlbmE7
CiAK
</data>
<flag name="review"
          id="4803"
          type_id="1"
          status="+"
          setter="adele"
    />
          </attachment>
      

    </bug>

</bugzilla>