<?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>81420</bug_id>
          
          <creation_ts>2012-03-16 15:24:53 -0700</creation_ts>
          <short_desc>Break the association between form controls and their owner when the owner leaves the tree</short_desc>
          <delta_ts>2012-04-10 19:58:11 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Adam Klein">adamk</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>arv</cc>
    
    <cc>darin</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>581029</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-16 15:24:53 -0700</bug_when>
    <thetext>Break the association between form controls and their owner when the owner leaves the tree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581047</commentid>
    <comment_count>1</comment_count>
      <attachid>132402</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-16 15:34:26 -0700</bug_when>
    <thetext>Created attachment 132402
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581059</commentid>
    <comment_count>2</comment_count>
      <attachid>132409</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-16 15:51:23 -0700</bug_when>
    <thetext>Created attachment 132409
Added expectation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583789</commentid>
    <comment_count>3</comment_count>
      <attachid>132409</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-20 21:34:51 -0700</bug_when>
    <thetext>Comment on attachment 132409
Added expectation

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

&gt; Source/WebCore/html/HTMLFormElement.cpp:161
&gt; +    for (unsigned i = 0; i &lt; m_associatedElements.size(); ++i)
&gt; +        m_associatedElements[i]-&gt;formRemovedFromTree(root);

This is a bad iteration pattern.  formRemovedFromTree() updates m_associatedElements.

Form-association code is complex, and introducing FormAssociatedElement::m_formNeedsSameRootCheck makes it more complex.  I&apos;d like to avoid m_formNeedsRootCheck as possible.
I&apos;d like to change formRemovedFromTree() so that it unregister a control only if the control has form= attribute or its root is different from the root of this form.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583800</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-20 21:47:10 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I&apos;d like to change formRemovedFromTree() so that it unregister a control only if the control has form= attribute or its root is different from the root of this form.

and it does nothing otherwise.
I don&apos;t think findRoot cost is significant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599487</commentid>
    <comment_count>5</comment_count>
      <attachid>136504</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-04-10 12:20:18 -0700</bug_when>
    <thetext>Created attachment 136504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599490</commentid>
    <comment_count>6</comment_count>
      <attachid>132409</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-04-10 12:21:43 -0700</bug_when>
    <thetext>Comment on attachment 132409
Added expectation

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

&gt;&gt; Source/WebCore/html/HTMLFormElement.cpp:161
&gt;&gt; +        m_associatedElements[i]-&gt;formRemovedFromTree(root);
&gt; 
&gt; This is a bad iteration pattern.  formRemovedFromTree() updates m_associatedElements.
&gt; 
&gt; Form-association code is complex, and introducing FormAssociatedElement::m_formNeedsSameRootCheck makes it more complex.  I&apos;d like to avoid m_formNeedsRootCheck as possible.
&gt; I&apos;d like to change formRemovedFromTree() so that it unregister a control only if the control has form= attribute or its root is different from the root of this form.

Changed to make a copy of the vector before iterating.

I&apos;ve removed m_formNeedsSameRootCheck, greatly simplifying this patch. Note that a form with an ID going away is already handled in HTMLFormElement::removedFromDocument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599906</commentid>
    <comment_count>7</comment_count>
      <attachid>136504</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-10 18:36:39 -0700</bug_when>
    <thetext>Comment on attachment 136504
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599966</commentid>
    <comment_count>8</comment_count>
      <attachid>136504</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-10 19:58:06 -0700</bug_when>
    <thetext>Comment on attachment 136504
Patch

Clearing flags on attachment: 136504

Committed r113817: &lt;http://trac.webkit.org/changeset/113817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599967</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-10 19:58:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132402</attachid>
            <date>2012-03-16 15:34:26 -0700</date>
            <delta_ts>2012-03-16 15:51:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81420-20120316153425.patch</filename>
            <type>text/plain</type>
            <size>9757</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDkwNDAyOTZkZDU4NWU1
MTcyMDNlNzEyNjkzNjhjMTdiZmViZTY0Zi4uYjk4OTJmMThjYzQ0OGU3YjNjZDk5MTY5MjA4MDk5
YmMxNDg4ZWZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTAzLTE2ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEJyZWFrIHRoZSBhc3NvY2lh
dGlvbiBiZXR3ZWVuIGZvcm0gY29udHJvbHMgYW5kIHRoZWlyIG93bmVyIHdoZW4gdGhlIG93bmVy
IGxlYXZlcyB0aGUgdHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODE0MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXaGVuIHBhcnNpbmcgbWFsZm9ybWVkIG1hcmt1cCwgaXQncyBwb3NzaWJsZSBmb3Ig
YSBmb3JtIGFuZCBhCisgICAgICAgIGZvcm0tYXNzb2NpYXRlZCBlbGVtZW50IHRvIG5vdCBiZSBp
biBhbiBhbmNlc3Rvci9kZXNjZW5kYW50IHJlbGF0aW9uc2hpcC4KKyAgICAgICAgV2hlbiB0aGF0
IGZvcm0gaXMgbGF0ZXIgcmVtb3ZlZCBmcm9tIHRoZSB0cmVlLCB0aGUgcmVsYXRpb25zaGlwIG5l
ZWRzIHRvIGJlIHVwZGF0ZWQuCisKKyAgICAgICAgSW4gdGhlIChtb3JlIGNvbW1vbikgY2FzZSB3
aGVyZSB0aGUgZm9ybSBhbmQgaXRzIGFzc29jaWF0ZWQgZWxlbWVudHMKKyAgICAgICAgYXJlIGlu
IGFuIGFuY2VzdG9yL2Rlc2NlbmRhbnQgcmVsYXRpb25zaGlwLCB0aGlzIHBhdGNoIGltcHJvdmVz
CisgICAgICAgIHBlcmZvcm1hbmNlIHNsaWdodGx5LCBvbmx5IHdhbGtpbmcgdXAgdGhlIHRyZWUg
ZnJvbSB0aGUgZm9ybSBvbmNlLAorICAgICAgICBpbnN0ZWFkIG9mIG9uY2UgcGVyIGZvcm0tYXNz
b2NpYXRlZCBlbGVtZW50LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvcGFyc2VyLWFzc29j
aWF0ZWQtZm9ybS1yZW1vdmFsLmh0bWwKKworICAgICAgICAqIGh0bWwvRm9ybUFzc29jaWF0ZWRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Rm9y
bUFzc29jaWF0ZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxl
bWVudDo6cmVtb3ZlZEZyb21UcmVlKTogT3B0aW1pemUgZm9yIHRoZSBjYXNlCisgICAgICAgIHdo
ZW4gdGhlIGZvcm0gaGFzIGFscmVhZHkgbm90aWZpZWQgdGhpcyBlbGVtZW50IG9mIHJlbW92YWwg
dmlhIGZvcm1SZW1vdmVkRnJvbVRyZWUoKS4KKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lh
dGVkRWxlbWVudDo6Zm9ybVJlbW92ZWRGcm9tVHJlZSk6IE5ldyBtZXRob2QgY2FsbGVkIHdoZW4K
KyAgICAgICAgYnkgdGhlIGZvcm0gd2hlbiBpdCdzIGJlaW5nIHJlbW92ZWQ6IGhhbmRsZXMgZWl0
aGVyIHJlc2V0dGluZyB0aGUKKyAgICAgICAgb3duZXIgb3Igc3RvcmluZyBhIGJpdCB0byBvcHRp
bWl6ZSBhd2F5IGEgc2Vjb25kIHdhbGsgdXAgdGhlIHRyZWUuCisgICAgICAgICogaHRtbC9Gb3Jt
QXNzb2NpYXRlZEVsZW1lbnQuaDoKKyAgICAgICAgKEZvcm1Bc3NvY2lhdGVkRWxlbWVudCk6IEFk
ZCBhIG5ldyBib29sZWFuIGluIGEgMS1iaXQgZmllbGQuCisgICAgICAgICogaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50Lmg6CisgICAgICAgIChIVE1MRm9ybUNvbnRyb2xFbGVtZW50KTogTW92
ZSBtZW1iZXJzIHRvIHB1dCBiaXRmaWVsZHMgYXQgdGhlIHN0YXJ0LgorICAgICAgICAqIGh0bWwv
SFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbmRSb290KTogU2ltcGxl
IGhlbHBlciBtZXRob2QgY29waWVkIGZyb20gRm9ybUFzc29jaWF0ZWRFbGVtZW50ICh0aGlzIHNo
b3VsZCBwcm9iYWJseSBsaXZlIGVsc2V3aGVyZSkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9y
bUVsZW1lbnQ6OnJlbW92ZWRGcm9tVHJlZSk6IE92ZXJyaWRlIHJlbW92ZWRGcm9tVHJlZSB0byBu
b3RpZnkgYXNzb2NpYXRlZCBlbGVtZW50cyBvZiB0aGUgcmVtb3ZhbC4KKyAgICAgICAgKiBodG1s
L0hUTUxGb3JtRWxlbWVudC5oOgorICAgICAgICAoSFRNTEZvcm1FbGVtZW50KToKKyAgICAgICAg
KiBodG1sL0hUTUxPYmplY3RFbGVtZW50Lmg6CisgICAgICAgIChIVE1MT2JqZWN0RWxlbWVudCk6
IE1vdmUgbWVtYmVycyB0byBwdXQgYml0ZmllbGRzIGF0IHRoZSBzdGFydC4KKwogMjAxMi0wMy0x
NiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExMTAyMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Rm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAppbmRleCA4NmIyYjY0OGFjZWY1NmUwODI1Y2NjNGYx
ZGZhZmVjYWQ2YzUwZWZkLi5jMDM5YmQyYWVkYTE3ZmIxNzJmNzljMGQwNDcwOWZiMTM1NGIzYTNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwCkBA
IC0zNyw2ICszNyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIEZvcm1Bc3NvY2lh
dGVkRWxlbWVudDo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50KCkKICAgICA6IG1fZm9ybSgwKQorICAg
ICwgbV9mb3JtTmVlZHNTYW1lUm9vdENoZWNrKHRydWUpCiB7CiB9CiAKQEAgLTExMCwxMiArMTEx
LDIzIEBAIHN0YXRpYyBpbmxpbmUgTm9kZSogZmluZFJvb3QoTm9kZSogbikKIAogdm9pZCBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQ6OnJlbW92ZWRGcm9tVHJlZSgpCiB7Ci0gICAgSFRNTEVsZW1lbnQq
IGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHRoaXMpOworICAgIGlmIChtX2Zvcm1OZWVkc1NhbWVS
b290Q2hlY2sgJiYgbV9mb3JtICYmIGZpbmRSb290KHRvSFRNTEVsZW1lbnQodGhpcykpICE9IGZp
bmRSb290KG1fZm9ybSkpCisgICAgICAgIHNldEZvcm0oMCk7CisgICAgbV9mb3JtTmVlZHNTYW1l
Um9vdENoZWNrID0gdHJ1ZTsKK30KIAotICAgIC8vIElmIHRoZSBmb3JtIGFuZCBlbGVtZW50IGFy
ZSBib3RoIGluIHRoZSBzYW1lIHRyZWUsIHByZXNlcnZlIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBm
b3JtLgotICAgIC8vIE90aGVyd2lzZSwgbnVsbCBvdXQgb3VyIGZvcm0gYW5kIHJlbW92ZSBvdXJz
ZWx2ZXMgZnJvbSB0aGUgZm9ybSdzIGxpc3Qgb2YgZWxlbWVudHMuCi0gICAgaWYgKG1fZm9ybSAm
JiBmaW5kUm9vdChlbGVtZW50KSAhPSBmaW5kUm9vdChtX2Zvcm0pKQordm9pZCBGb3JtQXNzb2Np
YXRlZEVsZW1lbnQ6OmZvcm1SZW1vdmVkRnJvbVRyZWUoY29uc3QgTm9kZSogZm9ybVJvb3QpCit7
CisgICAgQVNTRVJUKG1fZm9ybSk7CisgICAgQVNTRVJUKG1fZm9ybU5lZWRzU2FtZVJvb3RDaGVj
ayk7CisgICAgaWYgKGZpbmRSb290KHRvSFRNTEVsZW1lbnQodGhpcykpICE9IGZvcm1Sb290KQog
ICAgICAgICBzZXRGb3JtKDApOworICAgIGVsc2UgeworICAgICAgICAvLyBXaWxsIGJlIGNsZWFy
ZWQgaW4gYW4gdXBjb21pbmcgY2FsbCB0byByZW1vdmVkRnJvbVRyZWUsIHNpbmNlIHdlIG5vdyBr
bm93IHRoYXQgYm90aDoKKyAgICAgICAgLy8gMS4gVGhpcyBlbGVtZW50IGFuZCBpdHMgZm9ybSBh
cmUgaW4gdGhlIHNhbWUgdHJlZSBhbmQKKyAgICAgICAgLy8gMi4gVGhhdCB0cmVlIGlzIGN1cnJl
bnRseSBoYXZpbmcgcmVtb3ZlZEZyb21UcmVlKCkgY2FsbGVkIG9uIGl0LgorICAgICAgICBtX2Zv
cm1OZWVkc1NhbWVSb290Q2hlY2sgPSBmYWxzZTsKKyAgICB9CiB9CiAKIHZvaWQgRm9ybUFzc29j
aWF0ZWRFbGVtZW50OjpzZXRGb3JtKEhUTUxGb3JtRWxlbWVudCogbmV3Rm9ybSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oCmluZGV4IGIyYTM1ZTljOGFlOWZj
ZmJkYzRkMzYzNjBhZjM5OTY1NzAyMzIxZGUuLmU0NTVjNjQ2NjVhMGFiMGZiNTVlOTVjMmM0ZjQ4
N2ZkMDU5NmFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0
ZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1l
bnQuaApAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0Rm9ybU93bmVy
KCk7CiAKKyAgICB2b2lkIGZvcm1SZW1vdmVkRnJvbVRyZWUoY29uc3QgTm9kZSogZm9ybVJvb3Qp
OworCiBwcm90ZWN0ZWQ6CiAgICAgRm9ybUFzc29jaWF0ZWRFbGVtZW50KCk7CiAKQEAgLTg0LDYg
Kzg2LDggQEAgcHJpdmF0ZToKIAogICAgIEhUTUxGb3JtRWxlbWVudCogbV9mb3JtOwogICAgIE93
blB0cjxWYWxpZGl0eVN0YXRlPiBtX3ZhbGlkaXR5U3RhdGU7CisKKyAgICBib29sIG1fZm9ybU5l
ZWRzU2FtZVJvb3RDaGVjayA6IDE7CiB9OwogCiBIVE1MRWxlbWVudCogdG9IVE1MRWxlbWVudChG
b3JtQXNzb2NpYXRlZEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmgKaW5kZXggM2U2MWU3OGI2NjZiNjcwNmUxOTEzZDQzZDgyYjkzOWFjZGI0
NzJmOC4uMWZkZjBlNWQwNTA0N2NiNzhiY2NhODJhMWMyYjQyMGNkZDg0OTEwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTE0NSw3ICsxNDUs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50
KCk7CiAgICAgU3RyaW5nIHZpc2libGVWYWxpZGF0aW9uTWVzc2FnZSgpIGNvbnN0OwogCi0gICAg
T3duUHRyPFZhbGlkYXRpb25NZXNzYWdlPiBtX3ZhbGlkYXRpb25NZXNzYWdlOworICAgIC8vIEJp
dGZpZWxkcyBhcmUgZGVjbGFyZWQgZmlyc3QgYWxsb3dpbmcgdGhlbSB0byBwYWNrIHdpdGggRm9y
bUFzc29jaWF0ZWRFbGVtZW50J3MgYml0cy4KICAgICBib29sIG1fZGlzYWJsZWQgOiAxOwogICAg
IGJvb2wgbV9yZWFkT25seSA6IDE7CiAgICAgYm9vbCBtX3JlcXVpcmVkIDogMTsKQEAgLTE2NCw2
ICsxNjQsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YXNDaGFuZ2VkU2luY2VMYXN0Rm9ybUNv
bnRyb2xDaGFuZ2VFdmVudCA6IDE7CiAKICAgICBib29sIG1faGFzQXV0b2ZvY3VzZWQgOiAxOwor
CisgICAgT3duUHRyPFZhbGlkYXRpb25NZXNzYWdlPiBtX3ZhbGlkYXRpb25NZXNzYWdlOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcApp
bmRleCAyMTNiMzM2ZDlhNGZiNWM2NmZjY2E5NTBjODcwMjk1NWYxYmY1ODZlLi5lMmViYzZkMTAw
ZDAxNDk0YmM5ZDEyODRkNTZiMTZkZWEzODBjZTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUVsZW1lbnQuY3BwCkBAIC0xNDYsNiArMTQ2LDIyIEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50
OjpyZW1vdmVkRnJvbURvY3VtZW50KCkKICAgICAgICAgZG9jdW1lbnQoKS0+cmVzZXRGb3JtRWxl
bWVudHNPd25lcigpOwogfQogCitzdGF0aWMgaW5saW5lIE5vZGUqIGZpbmRSb290KE5vZGUqIG4p
Cit7CisgICAgTm9kZSogcm9vdCA9IG47CisgICAgZm9yICg7IG47IG4gPSBuLT5wYXJlbnROb2Rl
KCkpCisgICAgICAgIHJvb3QgPSBuOworICAgIHJldHVybiByb290OworfQorCit2b2lkIEhUTUxG
b3JtRWxlbWVudDo6cmVtb3ZlZEZyb21UcmVlKGJvb2wgZGVlcCkKK3sKKyAgICBOb2RlKiByb290
ID0gZmluZFJvb3QodGhpcyk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYXNzb2Np
YXRlZEVsZW1lbnRzLnNpemUoKTsgKytpKQorICAgICAgICBtX2Fzc29jaWF0ZWRFbGVtZW50c1tp
XS0+Zm9ybVJlbW92ZWRGcm9tVHJlZShyb290KTsKKyAgICBIVE1MRWxlbWVudDo6cmVtb3ZlZEZy
b21UcmVlKGRlZXApOworfQorCiB2b2lkIEhUTUxGb3JtRWxlbWVudDo6aGFuZGxlTG9jYWxFdmVu
dHMoRXZlbnQqIGV2ZW50KQogewogICAgIE5vZGUqIHRhcmdldE5vZGUgPSBldmVudC0+dGFyZ2V0
KCktPnRvTm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5kZXggOThk
M2Q4YWY3M2IzNDc2M2ViOTBhNzlhOWEwYzJlNDY4ZTNmZGI2OC4uM2IyYWJkNzBkNWJiNGYwZDAy
M2FhODFlYWE0ZWJiZWNjM2JmOWEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVu
dC5oCkBAIC0xMTcsNiArMTE3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpOwogICAgIHZpcnR1YWwgdm9p
ZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURv
Y3VtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApIE9W
RVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUxvY2FsRXZlbnRzKEV2ZW50Kik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAppbmRleCBhMWFiOTcyMzg1ZGRh
NzNmODM2OTE0ZDg2ODQ2NTZkMGRjNmI4MTlhLi5mNzZlMDc1NmZkNDkzMGJkYWVhZGRlZGY4ZWFm
YzkxZWFjYjg4NjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCkBA
IC0xMTMsOSArMTEzLDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlZ2lz
dGVyQXNOYW1lZEl0ZW0oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBpc0RvY05hbWVkSXRlbSgp
OyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlZ2lzdGVyQXNFeHRyYU5hbWVkSXRlbSgpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIGlzRG9jTmFtZWRJdGVtKCk7IH0KIAotICAgIFN0cmluZyBt
X2NsYXNzSWQ7CisgICAgLy8gQml0ZmllbGRzIGFyZSBkZWNsYXJlZCBmaXJzdCBhbGxvd2luZyB0
aGVtIHRvIHBhY2sgd2l0aCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQncyBiaXRzLgogICAgIGJvb2wg
bV9kb2NOYW1lZEl0ZW0gOiAxOwogICAgIGJvb2wgbV91c2VGYWxsYmFja0NvbnRlbnQgOiAxOwor
ICAgIFN0cmluZyBtX2NsYXNzSWQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjVjNzNlYjFlYjMyMzYxZGU1
ZDM1NWRkMmI0NzNlNzhlZTc4NTBmYi4uMWMyNDY0MTg1NzFhYThmMTkzZmZiNWY1OTU4YjIzNDMy
MzVkZDY1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTAzLTE2ICBBZGFtIEtsZWluICA8
YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEJyZWFrIHRoZSBhc3NvY2lhdGlvbiBiZXR3
ZWVuIGZvcm0gY29udHJvbHMgYW5kIHRoZWlyIG93bmVyIHdoZW4gdGhlIG93bmVyIGxlYXZlcyB0
aGUgdHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODE0MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGZhc3QvZm9ybXMvcGFyc2VyLWFzc29jaWF0ZWQtZm9ybS1yZW1vdmFsLmh0bWw6IEFkZGVkLgor
CiAyMDEyLTAzLTE2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlYmFzZWxpbmUgd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQgb24gR1RLOyBhZGQgdHdvIG5l
dyB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9wYXJzZXItYXNzb2Np
YXRlZC1mb3JtLXJlbW92YWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcGFyc2VyLWFz
c29jaWF0ZWQtZm9ybS1yZW1vdmFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJmZWUxNzc1M2YwN2YzNDc0
ZWYyYTMzY2VkNWQxMDE3YzRiYzA5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvcGFyc2VyLWFzc29jaWF0ZWQtZm9ybS1yZW1vdmFsLmh0bWwKQEAgLTAsMCArMSwz
MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+Cit0YWJsZSB7IGRpc3BsYXk6IG5vbmU7IH0K
Kzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzx0YWJsZSBpZD0idGFibGUxIj4KKyAgPGZvcm0+CisgICAgPHRkPjxpbnB1dD48
L3RkPgorICA8L2Zvcm0+Cis8L3RhYmxlPgorPHRhYmxlIGlkPSJ0YWJsZTIiPgorICA8Zm9ybT4K
KyAgICA8dGQ+PGlucHV0PjwvdGQ+CisgIDwvZm9ybT4KKzwvdGFibGU+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oJ0Zvcm0gY29udHJvbHMgYXNzb2NpYXRlZCB3aXRoIGEgZm9ybSBieSB0aGUgcGFy
c2VyIHNob3VsZCBiZSByZXNldCB3aGVuIHRoYXQgZm9ybSBsZWF2ZXMgdGhlaXIgdHJlZS4nKTsK
KworZGVidWcoJ1JlbW92aW5nIGEgZm9ybSBmcm9tIHRoZSBkb2N1bWVudCB3aGlsZSBsZWF2aW5n
IGl0cyBhc3NvY2lhdGVkIGVsZW1lbnQgaW4uLi4nKTsKK2RvY3VtZW50LmZvcm1zWzBdLnBhcmVu
dE5vZGUucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZm9ybXNbMF0pOworc2hvdWxkQmVOdWxsKCdkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvcm0nKTsKKworZGVidWcoJycpOworZGVidWco
J1JlbW92aW5nIGEgZm9ybSBhbmQgaXRzIGFzc29jaWF0ZWQgZWxlbWVudC4uLicpOwordmFyIHRh
YmxlMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YWJsZTInKTsKK3RhYmxlMi5wYXJlbnRO
b2RlLnJlbW92ZUNoaWxkKHRhYmxlMik7CitzaG91bGRCZU5vbk51bGwoJ3RhYmxlMi5xdWVyeVNl
bGVjdG9yKCJpbnB1dCIpLmZvcm0nKTsKK2RlYnVnKCcuLi5hbmQgdGhlbiByZW1vdmluZyB0aGUg
Zm9ybS4nKTsKK3RhYmxlMi5yZW1vdmVDaGlsZCh0YWJsZTIucXVlcnlTZWxlY3RvcignZm9ybScp
KTsKK3Nob3VsZEJlTnVsbCgndGFibGUyLnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9ybScpOwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132409</attachid>
            <date>2012-03-16 15:51:23 -0700</date>
            <delta_ts>2012-04-10 12:21:43 -0700</delta_ts>
            <desc>Added expectation</desc>
            <filename>bug-81420-20120316155122.patch</filename>
            <type>text/plain</type>
            <size>10751</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDkwNDAyOTZkZDU4NWU1
MTcyMDNlNzEyNjkzNjhjMTdiZmViZTY0Zi4uYjk4OTJmMThjYzQ0OGU3YjNjZDk5MTY5MjA4MDk5
YmMxNDg4ZWZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTAzLTE2ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEJyZWFrIHRoZSBhc3NvY2lh
dGlvbiBiZXR3ZWVuIGZvcm0gY29udHJvbHMgYW5kIHRoZWlyIG93bmVyIHdoZW4gdGhlIG93bmVy
IGxlYXZlcyB0aGUgdHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODE0MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXaGVuIHBhcnNpbmcgbWFsZm9ybWVkIG1hcmt1cCwgaXQncyBwb3NzaWJsZSBmb3Ig
YSBmb3JtIGFuZCBhCisgICAgICAgIGZvcm0tYXNzb2NpYXRlZCBlbGVtZW50IHRvIG5vdCBiZSBp
biBhbiBhbmNlc3Rvci9kZXNjZW5kYW50IHJlbGF0aW9uc2hpcC4KKyAgICAgICAgV2hlbiB0aGF0
IGZvcm0gaXMgbGF0ZXIgcmVtb3ZlZCBmcm9tIHRoZSB0cmVlLCB0aGUgcmVsYXRpb25zaGlwIG5l
ZWRzIHRvIGJlIHVwZGF0ZWQuCisKKyAgICAgICAgSW4gdGhlIChtb3JlIGNvbW1vbikgY2FzZSB3
aGVyZSB0aGUgZm9ybSBhbmQgaXRzIGFzc29jaWF0ZWQgZWxlbWVudHMKKyAgICAgICAgYXJlIGlu
IGFuIGFuY2VzdG9yL2Rlc2NlbmRhbnQgcmVsYXRpb25zaGlwLCB0aGlzIHBhdGNoIGltcHJvdmVz
CisgICAgICAgIHBlcmZvcm1hbmNlIHNsaWdodGx5LCBvbmx5IHdhbGtpbmcgdXAgdGhlIHRyZWUg
ZnJvbSB0aGUgZm9ybSBvbmNlLAorICAgICAgICBpbnN0ZWFkIG9mIG9uY2UgcGVyIGZvcm0tYXNz
b2NpYXRlZCBlbGVtZW50LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvcGFyc2VyLWFzc29j
aWF0ZWQtZm9ybS1yZW1vdmFsLmh0bWwKKworICAgICAgICAqIGh0bWwvRm9ybUFzc29jaWF0ZWRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Rm9y
bUFzc29jaWF0ZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxl
bWVudDo6cmVtb3ZlZEZyb21UcmVlKTogT3B0aW1pemUgZm9yIHRoZSBjYXNlCisgICAgICAgIHdo
ZW4gdGhlIGZvcm0gaGFzIGFscmVhZHkgbm90aWZpZWQgdGhpcyBlbGVtZW50IG9mIHJlbW92YWwg
dmlhIGZvcm1SZW1vdmVkRnJvbVRyZWUoKS4KKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lh
dGVkRWxlbWVudDo6Zm9ybVJlbW92ZWRGcm9tVHJlZSk6IE5ldyBtZXRob2QgY2FsbGVkIHdoZW4K
KyAgICAgICAgYnkgdGhlIGZvcm0gd2hlbiBpdCdzIGJlaW5nIHJlbW92ZWQ6IGhhbmRsZXMgZWl0
aGVyIHJlc2V0dGluZyB0aGUKKyAgICAgICAgb3duZXIgb3Igc3RvcmluZyBhIGJpdCB0byBvcHRp
bWl6ZSBhd2F5IGEgc2Vjb25kIHdhbGsgdXAgdGhlIHRyZWUuCisgICAgICAgICogaHRtbC9Gb3Jt
QXNzb2NpYXRlZEVsZW1lbnQuaDoKKyAgICAgICAgKEZvcm1Bc3NvY2lhdGVkRWxlbWVudCk6IEFk
ZCBhIG5ldyBib29sZWFuIGluIGEgMS1iaXQgZmllbGQuCisgICAgICAgICogaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50Lmg6CisgICAgICAgIChIVE1MRm9ybUNvbnRyb2xFbGVtZW50KTogTW92
ZSBtZW1iZXJzIHRvIHB1dCBiaXRmaWVsZHMgYXQgdGhlIHN0YXJ0LgorICAgICAgICAqIGh0bWwv
SFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbmRSb290KTogU2ltcGxl
IGhlbHBlciBtZXRob2QgY29waWVkIGZyb20gRm9ybUFzc29jaWF0ZWRFbGVtZW50ICh0aGlzIHNo
b3VsZCBwcm9iYWJseSBsaXZlIGVsc2V3aGVyZSkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9y
bUVsZW1lbnQ6OnJlbW92ZWRGcm9tVHJlZSk6IE92ZXJyaWRlIHJlbW92ZWRGcm9tVHJlZSB0byBu
b3RpZnkgYXNzb2NpYXRlZCBlbGVtZW50cyBvZiB0aGUgcmVtb3ZhbC4KKyAgICAgICAgKiBodG1s
L0hUTUxGb3JtRWxlbWVudC5oOgorICAgICAgICAoSFRNTEZvcm1FbGVtZW50KToKKyAgICAgICAg
KiBodG1sL0hUTUxPYmplY3RFbGVtZW50Lmg6CisgICAgICAgIChIVE1MT2JqZWN0RWxlbWVudCk6
IE1vdmUgbWVtYmVycyB0byBwdXQgYml0ZmllbGRzIGF0IHRoZSBzdGFydC4KKwogMjAxMi0wMy0x
NiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExMTAyMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Rm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAppbmRleCA4NmIyYjY0OGFjZWY1NmUwODI1Y2NjNGYx
ZGZhZmVjYWQ2YzUwZWZkLi5jMDM5YmQyYWVkYTE3ZmIxNzJmNzljMGQwNDcwOWZiMTM1NGIzYTNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwCkBA
IC0zNyw2ICszNyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIEZvcm1Bc3NvY2lh
dGVkRWxlbWVudDo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50KCkKICAgICA6IG1fZm9ybSgwKQorICAg
ICwgbV9mb3JtTmVlZHNTYW1lUm9vdENoZWNrKHRydWUpCiB7CiB9CiAKQEAgLTExMCwxMiArMTEx
LDIzIEBAIHN0YXRpYyBpbmxpbmUgTm9kZSogZmluZFJvb3QoTm9kZSogbikKIAogdm9pZCBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQ6OnJlbW92ZWRGcm9tVHJlZSgpCiB7Ci0gICAgSFRNTEVsZW1lbnQq
IGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KHRoaXMpOworICAgIGlmIChtX2Zvcm1OZWVkc1NhbWVS
b290Q2hlY2sgJiYgbV9mb3JtICYmIGZpbmRSb290KHRvSFRNTEVsZW1lbnQodGhpcykpICE9IGZp
bmRSb290KG1fZm9ybSkpCisgICAgICAgIHNldEZvcm0oMCk7CisgICAgbV9mb3JtTmVlZHNTYW1l
Um9vdENoZWNrID0gdHJ1ZTsKK30KIAotICAgIC8vIElmIHRoZSBmb3JtIGFuZCBlbGVtZW50IGFy
ZSBib3RoIGluIHRoZSBzYW1lIHRyZWUsIHByZXNlcnZlIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBm
b3JtLgotICAgIC8vIE90aGVyd2lzZSwgbnVsbCBvdXQgb3VyIGZvcm0gYW5kIHJlbW92ZSBvdXJz
ZWx2ZXMgZnJvbSB0aGUgZm9ybSdzIGxpc3Qgb2YgZWxlbWVudHMuCi0gICAgaWYgKG1fZm9ybSAm
JiBmaW5kUm9vdChlbGVtZW50KSAhPSBmaW5kUm9vdChtX2Zvcm0pKQordm9pZCBGb3JtQXNzb2Np
YXRlZEVsZW1lbnQ6OmZvcm1SZW1vdmVkRnJvbVRyZWUoY29uc3QgTm9kZSogZm9ybVJvb3QpCit7
CisgICAgQVNTRVJUKG1fZm9ybSk7CisgICAgQVNTRVJUKG1fZm9ybU5lZWRzU2FtZVJvb3RDaGVj
ayk7CisgICAgaWYgKGZpbmRSb290KHRvSFRNTEVsZW1lbnQodGhpcykpICE9IGZvcm1Sb290KQog
ICAgICAgICBzZXRGb3JtKDApOworICAgIGVsc2UgeworICAgICAgICAvLyBXaWxsIGJlIGNsZWFy
ZWQgaW4gYW4gdXBjb21pbmcgY2FsbCB0byByZW1vdmVkRnJvbVRyZWUsIHNpbmNlIHdlIG5vdyBr
bm93IHRoYXQgYm90aDoKKyAgICAgICAgLy8gMS4gVGhpcyBlbGVtZW50IGFuZCBpdHMgZm9ybSBh
cmUgaW4gdGhlIHNhbWUgdHJlZSBhbmQKKyAgICAgICAgLy8gMi4gVGhhdCB0cmVlIGlzIGN1cnJl
bnRseSBoYXZpbmcgcmVtb3ZlZEZyb21UcmVlKCkgY2FsbGVkIG9uIGl0LgorICAgICAgICBtX2Zv
cm1OZWVkc1NhbWVSb290Q2hlY2sgPSBmYWxzZTsKKyAgICB9CiB9CiAKIHZvaWQgRm9ybUFzc29j
aWF0ZWRFbGVtZW50OjpzZXRGb3JtKEhUTUxGb3JtRWxlbWVudCogbmV3Rm9ybSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oCmluZGV4IGIyYTM1ZTljOGFlOWZj
ZmJkYzRkMzYzNjBhZjM5OTY1NzAyMzIxZGUuLmU0NTVjNjQ2NjVhMGFiMGZiNTVlOTVjMmM0ZjQ4
N2ZkMDU5NmFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0
ZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1l
bnQuaApAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0Rm9ybU93bmVy
KCk7CiAKKyAgICB2b2lkIGZvcm1SZW1vdmVkRnJvbVRyZWUoY29uc3QgTm9kZSogZm9ybVJvb3Qp
OworCiBwcm90ZWN0ZWQ6CiAgICAgRm9ybUFzc29jaWF0ZWRFbGVtZW50KCk7CiAKQEAgLTg0LDYg
Kzg2LDggQEAgcHJpdmF0ZToKIAogICAgIEhUTUxGb3JtRWxlbWVudCogbV9mb3JtOwogICAgIE93
blB0cjxWYWxpZGl0eVN0YXRlPiBtX3ZhbGlkaXR5U3RhdGU7CisKKyAgICBib29sIG1fZm9ybU5l
ZWRzU2FtZVJvb3RDaGVjayA6IDE7CiB9OwogCiBIVE1MRWxlbWVudCogdG9IVE1MRWxlbWVudChG
b3JtQXNzb2NpYXRlZEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmgKaW5kZXggM2U2MWU3OGI2NjZiNjcwNmUxOTEzZDQzZDgyYjkzOWFjZGI0
NzJmOC4uMWZkZjBlNWQwNTA0N2NiNzhiY2NhODJhMWMyYjQyMGNkZDg0OTEwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTE0NSw3ICsxNDUs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50
KCk7CiAgICAgU3RyaW5nIHZpc2libGVWYWxpZGF0aW9uTWVzc2FnZSgpIGNvbnN0OwogCi0gICAg
T3duUHRyPFZhbGlkYXRpb25NZXNzYWdlPiBtX3ZhbGlkYXRpb25NZXNzYWdlOworICAgIC8vIEJp
dGZpZWxkcyBhcmUgZGVjbGFyZWQgZmlyc3QgYWxsb3dpbmcgdGhlbSB0byBwYWNrIHdpdGggRm9y
bUFzc29jaWF0ZWRFbGVtZW50J3MgYml0cy4KICAgICBib29sIG1fZGlzYWJsZWQgOiAxOwogICAg
IGJvb2wgbV9yZWFkT25seSA6IDE7CiAgICAgYm9vbCBtX3JlcXVpcmVkIDogMTsKQEAgLTE2NCw2
ICsxNjQsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YXNDaGFuZ2VkU2luY2VMYXN0Rm9ybUNv
bnRyb2xDaGFuZ2VFdmVudCA6IDE7CiAKICAgICBib29sIG1faGFzQXV0b2ZvY3VzZWQgOiAxOwor
CisgICAgT3duUHRyPFZhbGlkYXRpb25NZXNzYWdlPiBtX3ZhbGlkYXRpb25NZXNzYWdlOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcApp
bmRleCAyMTNiMzM2ZDlhNGZiNWM2NmZjY2E5NTBjODcwMjk1NWYxYmY1ODZlLi5lMmViYzZkMTAw
ZDAxNDk0YmM5ZDEyODRkNTZiMTZkZWEzODBjZTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUVsZW1lbnQuY3BwCkBAIC0xNDYsNiArMTQ2LDIyIEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50
OjpyZW1vdmVkRnJvbURvY3VtZW50KCkKICAgICAgICAgZG9jdW1lbnQoKS0+cmVzZXRGb3JtRWxl
bWVudHNPd25lcigpOwogfQogCitzdGF0aWMgaW5saW5lIE5vZGUqIGZpbmRSb290KE5vZGUqIG4p
Cit7CisgICAgTm9kZSogcm9vdCA9IG47CisgICAgZm9yICg7IG47IG4gPSBuLT5wYXJlbnROb2Rl
KCkpCisgICAgICAgIHJvb3QgPSBuOworICAgIHJldHVybiByb290OworfQorCit2b2lkIEhUTUxG
b3JtRWxlbWVudDo6cmVtb3ZlZEZyb21UcmVlKGJvb2wgZGVlcCkKK3sKKyAgICBOb2RlKiByb290
ID0gZmluZFJvb3QodGhpcyk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYXNzb2Np
YXRlZEVsZW1lbnRzLnNpemUoKTsgKytpKQorICAgICAgICBtX2Fzc29jaWF0ZWRFbGVtZW50c1tp
XS0+Zm9ybVJlbW92ZWRGcm9tVHJlZShyb290KTsKKyAgICBIVE1MRWxlbWVudDo6cmVtb3ZlZEZy
b21UcmVlKGRlZXApOworfQorCiB2b2lkIEhUTUxGb3JtRWxlbWVudDo6aGFuZGxlTG9jYWxFdmVu
dHMoRXZlbnQqIGV2ZW50KQogewogICAgIE5vZGUqIHRhcmdldE5vZGUgPSBldmVudC0+dGFyZ2V0
KCktPnRvTm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5kZXggOThk
M2Q4YWY3M2IzNDc2M2ViOTBhNzlhOWEwYzJlNDY4ZTNmZGI2OC4uM2IyYWJkNzBkNWJiNGYwZDAy
M2FhODFlYWE0ZWJiZWNjM2JmOWEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVu
dC5oCkBAIC0xMTcsNiArMTE3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpOwogICAgIHZpcnR1YWwgdm9p
ZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURv
Y3VtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApIE9W
RVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUxvY2FsRXZlbnRzKEV2ZW50Kik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAppbmRleCBhMWFiOTcyMzg1ZGRh
NzNmODM2OTE0ZDg2ODQ2NTZkMGRjNmI4MTlhLi5mNzZlMDc1NmZkNDkzMGJkYWVhZGRlZGY4ZWFm
YzkxZWFjYjg4NjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCkBA
IC0xMTMsOSArMTEzLDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlZ2lz
dGVyQXNOYW1lZEl0ZW0oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBpc0RvY05hbWVkSXRlbSgp
OyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlZ2lzdGVyQXNFeHRyYU5hbWVkSXRlbSgpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIGlzRG9jTmFtZWRJdGVtKCk7IH0KIAotICAgIFN0cmluZyBt
X2NsYXNzSWQ7CisgICAgLy8gQml0ZmllbGRzIGFyZSBkZWNsYXJlZCBmaXJzdCBhbGxvd2luZyB0
aGVtIHRvIHBhY2sgd2l0aCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQncyBiaXRzLgogICAgIGJvb2wg
bV9kb2NOYW1lZEl0ZW0gOiAxOwogICAgIGJvb2wgbV91c2VGYWxsYmFja0NvbnRlbnQgOiAxOwor
ICAgIFN0cmluZyBtX2NsYXNzSWQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjVjNzNlYjFlYjMyMzYxZGU1
ZDM1NWRkMmI0NzNlNzhlZTc4NTBmYi4uMGFmNjI1ZmJlM2RmZGIzNWQ1Y2FjNjQyZGM2ZjI3NGQx
YzI0MjU2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAzLTE2ICBBZGFtIEtsZWluICA8
YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEJyZWFrIHRoZSBhc3NvY2lhdGlvbiBiZXR3
ZWVuIGZvcm0gY29udHJvbHMgYW5kIHRoZWlyIG93bmVyIHdoZW4gdGhlIG93bmVyIGxlYXZlcyB0
aGUgdHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODE0MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGZhc3QvZm9ybXMvcGFyc2VyLWFzc29jaWF0ZWQtZm9ybS1yZW1vdmFsLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9wYXJzZXItYXNzb2NpYXRlZC1mb3JtLXJlbW92
YWwuaHRtbDogQWRkZWQuCisKIDIwMTItMDMtMTYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmViYXNlbGluZSB3aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZCBv
biBHVEs7IGFkZCB0d28gbmV3IHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3BhcnNlci1hc3NvY2lhdGVkLWZvcm0tcmVtb3ZhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3BhcnNlci1hc3NvY2lhdGVkLWZvcm0tcmVtb3ZhbC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDk3ZjdkY2JiYWQzNGU3Nzc1NWY0NjNkM2NmZDliYmJhMDVmM2I5Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcGFyc2VyLWFzc29jaWF0
ZWQtZm9ybS1yZW1vdmFsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitGb3JtIGNvbnRy
b2xzIGFzc29jaWF0ZWQgd2l0aCBhIGZvcm0gYnkgdGhlIHBhcnNlciBzaG91bGQgYmUgcmVzZXQg
d2hlbiB0aGF0IGZvcm0gbGVhdmVzIHRoZWlyIHRyZWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitSZW1vdmluZyBhIGZvcm0gZnJvbSB0aGUgZG9jdW1lbnQgd2hpbGUgbGVhdmlu
ZyBpdHMgYXNzb2NpYXRlZCBlbGVtZW50IGluLi4uCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImlucHV0IikuZm9ybSBpcyBudWxsCisKK1JlbW92aW5nIGEgZm9ybSBhbmQgaXRzIGFzc29j
aWF0ZWQgZWxlbWVudC4uLgorUEFTUyB0YWJsZTIucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb3Jt
IGlzIG5vbi1udWxsLgorLi4uYW5kIHRoZW4gcmVtb3ZpbmcgdGhlIGZvcm0uCitQQVNTIHRhYmxl
Mi5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvcm0gaXMgbnVsbAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvcGFyc2VyLWFzc29jaWF0ZWQtZm9ybS1yZW1vdmFsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3BhcnNlci1hc3NvY2lhdGVkLWZvcm0tcmVtb3ZhbC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjkyZmVlMTc3NTNmMDdmMzQ3NGVmMmEzM2NlZDVkMTAxN2M0YmMwOTIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3BhcnNlci1hc3NvY2lhdGVkLWZvcm0t
cmVtb3ZhbC5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgor
dGFibGUgeyBkaXNwbGF5OiBub25lOyB9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8dGFibGUgaWQ9InRhYmxlMSI+Cisg
IDxmb3JtPgorICAgIDx0ZD48aW5wdXQ+PC90ZD4KKyAgPC9mb3JtPgorPC90YWJsZT4KKzx0YWJs
ZSBpZD0idGFibGUyIj4KKyAgPGZvcm0+CisgICAgPHRkPjxpbnB1dD48L3RkPgorICA8L2Zvcm0+
Cis8L3RhYmxlPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdGb3JtIGNvbnRyb2xzIGFzc29jaWF0
ZWQgd2l0aCBhIGZvcm0gYnkgdGhlIHBhcnNlciBzaG91bGQgYmUgcmVzZXQgd2hlbiB0aGF0IGZv
cm0gbGVhdmVzIHRoZWlyIHRyZWUuJyk7CisKK2RlYnVnKCdSZW1vdmluZyBhIGZvcm0gZnJvbSB0
aGUgZG9jdW1lbnQgd2hpbGUgbGVhdmluZyBpdHMgYXNzb2NpYXRlZCBlbGVtZW50IGluLi4uJyk7
Citkb2N1bWVudC5mb3Jtc1swXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGRvY3VtZW50LmZvcm1z
WzBdKTsKK3Nob3VsZEJlTnVsbCgnZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb3Jt
Jyk7CisKK2RlYnVnKCcnKTsKK2RlYnVnKCdSZW1vdmluZyBhIGZvcm0gYW5kIGl0cyBhc3NvY2lh
dGVkIGVsZW1lbnQuLi4nKTsKK3ZhciB0YWJsZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGFibGUyJyk7Cit0YWJsZTIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0YWJsZTIpOworc2hvdWxk
QmVOb25OdWxsKCd0YWJsZTIucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb3JtJyk7CitkZWJ1Zygn
Li4uYW5kIHRoZW4gcmVtb3ZpbmcgdGhlIGZvcm0uJyk7Cit0YWJsZTIucmVtb3ZlQ2hpbGQodGFi
bGUyLnF1ZXJ5U2VsZWN0b3IoJ2Zvcm0nKSk7CitzaG91bGRCZU51bGwoJ3RhYmxlMi5xdWVyeVNl
bGVjdG9yKCJpbnB1dCIpLmZvcm0nKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136504</attachid>
            <date>2012-04-10 12:20:18 -0700</date>
            <delta_ts>2012-04-10 19:58:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81420-20120410122017.patch</filename>
            <type>text/plain</type>
            <size>7404</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzNzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODIwNmE5ZjM0ODUzNmZj
ZTA0OWMxNzg1MThlYmIzNzJmYWZlNTAxYS4uN2M5ZTE5NTFiYzUwZGFlYjQyZGU5NmNmNWQzMmY1
NWMxY2QzZWRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAzLTE2ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEJyZWFrIHRoZSBhc3NvY2lh
dGlvbiBiZXR3ZWVuIGZvcm0gY29udHJvbHMgYW5kIHRoZWlyIG93bmVyIHdoZW4gdGhlIG93bmVy
IGxlYXZlcyB0aGUgdHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODE0MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXaGVuIHBhcnNpbmcgbWFsZm9ybWVkIG1hcmt1cCwgaXQncyBwb3NzaWJsZSBmb3Ig
YSBmb3JtIGFuZCBhCisgICAgICAgIGZvcm0tYXNzb2NpYXRlZCBlbGVtZW50IHRvIG5vdCBiZSBp
biBhbiBhbmNlc3Rvci9kZXNjZW5kYW50IHJlbGF0aW9uc2hpcC4KKyAgICAgICAgV2hlbiB0aGF0
IGZvcm0gaXMgbGF0ZXIgcmVtb3ZlZCBmcm9tIHRoZSB0cmVlLCB0aGUgcmVsYXRpb25zaGlwIG5l
ZWRzIHRvIGJlIHVwZGF0ZWQuCisKKyAgICAgICAgVGVzdDogZmFzdC9mb3Jtcy9wYXJzZXItYXNz
b2NpYXRlZC1mb3JtLXJlbW92YWwuaHRtbAorCisgICAgICAgICogaHRtbC9Gb3JtQXNzb2NpYXRl
ZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50OjpG
b3JtQXNzb2NpYXRlZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRF
bGVtZW50Ojpmb3JtUmVtb3ZlZEZyb21UcmVlKTogTmV3IG1ldGhvZCBjYWxsZWQgd2hlbgorICAg
ICAgICBieSB0aGUgZm9ybSB3aGVuIGl0J3MgYmVpbmcgcmVtb3ZlZDogaGFuZGxlcyBlaXRoZXIg
cmVzZXR0aW5nIHRoZQorICAgICAgICBvd25lciBvciBzdG9yaW5nIGEgYml0IHRvIG9wdGltaXpl
IGF3YXkgYSBzZWNvbmQgd2FsayB1cCB0aGUgdHJlZS4KKyAgICAgICAgKiBodG1sL0Zvcm1Bc3Nv
Y2lhdGVkRWxlbWVudC5oOgorICAgICAgICAoRm9ybUFzc29jaWF0ZWRFbGVtZW50KToKKyAgICAg
ICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaW5kUm9v
dCk6IFNpbXBsZSBoZWxwZXIgbWV0aG9kIGNvcGllZCBmcm9tIEZvcm1Bc3NvY2lhdGVkRWxlbWVu
dCAodGhpcyBzaG91bGQgcHJvYmFibHkgbGl2ZSBlbHNld2hlcmUpLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEZvcm1FbGVtZW50OjpyZW1vdmVkRnJvbVRyZWUpOiBPdmVycmlkZSByZW1vdmVkRnJv
bVRyZWUgdG8gbm90aWZ5IGFzc29jaWF0ZWQgZWxlbWVudHMgb2YgdGhlIHJlbW92YWwuCisgICAg
ICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxGb3JtRWxlbWVudCk6
CisKIDIwMTItMDQtMTAgIERhdmlkIERvcndpbiAgPGRkb3J3aW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIEFkZCBFbmNyeXB0ZWQgTWVkaWEgRXh0ZW5zaW9ucyBtZXRob2RzIHRvIEhUTUxNZWRp
YUVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNw
cAppbmRleCA4NmIyYjY0OGFjZWY1NmUwODI1Y2NjNGYxZGZhZmVjYWQ2YzUwZWZkLi5kZjg5Mzdi
MDcwNmFlNWIwNGRiMzFjNzYyOGIzMTBmOGUzMmZkMmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwCkBAIC0xMTgsNiArMTE4LDEzIEBAIHZvaWQg
Rm9ybUFzc29jaWF0ZWRFbGVtZW50OjpyZW1vdmVkRnJvbVRyZWUoKQogICAgICAgICBzZXRGb3Jt
KDApOwogfQogCit2b2lkIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybVJlbW92ZWRGcm9tVHJl
ZShjb25zdCBOb2RlKiBmb3JtUm9vdCkKK3sKKyAgICBBU1NFUlQobV9mb3JtKTsKKyAgICBpZiAo
ZmluZFJvb3QodG9IVE1MRWxlbWVudCh0aGlzKSkgIT0gZm9ybVJvb3QpCisgICAgICAgIHNldEZv
cm0oMCk7Cit9CisKIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50OjpzZXRGb3JtKEhUTUxGb3Jt
RWxlbWVudCogbmV3Rm9ybSkKIHsKICAgICBpZiAobV9mb3JtID09IG5ld0Zvcm0pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaAppbmRleCBiMmEzNWU5YzhhZTlm
Y2ZiZGM0ZDM2MzYwYWYzOTk2NTcwMjMyMWRlLi42YTI3MzIzYWU2ODI0OTgxM2M5ZTAxYTBkYzAz
OTZiM2Y0YWJjYjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lh
dGVkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVt
ZW50LmgKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZXNldEZvcm1Pd25l
cigpOwogCisgICAgdm9pZCBmb3JtUmVtb3ZlZEZyb21UcmVlKGNvbnN0IE5vZGUqIGZvcm1Sb290
KTsKKwogcHJvdGVjdGVkOgogICAgIEZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKaW5kZXggMjEzYjMzNmQ5YTRmYjVjNjZmY2Nh
OTUwYzg3MDI5NTVmMWJmNTg2ZS4uMDMxYmI2YmJhYjhhMzAzYjQyM2U1OWM0NGQzMDMyNjIwYmUx
NmVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcApAQCAtMTQ2LDYg
KzE0NiwyMyBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCiAg
ICAgICAgIGRvY3VtZW50KCktPnJlc2V0Rm9ybUVsZW1lbnRzT3duZXIoKTsKIH0KIAorc3RhdGlj
IGlubGluZSBOb2RlKiBmaW5kUm9vdChOb2RlKiBuKQoreworICAgIE5vZGUqIHJvb3QgPSBuOwor
ICAgIGZvciAoOyBuOyBuID0gbi0+cGFyZW50Tm9kZSgpKQorICAgICAgICByb290ID0gbjsKKyAg
ICByZXR1cm4gcm9vdDsKK30KKwordm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnJlbW92ZWRGcm9tVHJl
ZShib29sIGRlZXApCit7CisgICAgTm9kZSogcm9vdCA9IGZpbmRSb290KHRoaXMpOworICAgIFZl
Y3RvcjxGb3JtQXNzb2NpYXRlZEVsZW1lbnQqPiBhc3NvY2lhdGVkRWxlbWVudHMobV9hc3NvY2lh
dGVkRWxlbWVudHMpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhc3NvY2lhdGVkRWxl
bWVudHMuc2l6ZSgpOyArK2kpCisgICAgICAgIGFzc29jaWF0ZWRFbGVtZW50c1tpXS0+Zm9ybVJl
bW92ZWRGcm9tVHJlZShyb290KTsKKyAgICBIVE1MRWxlbWVudDo6cmVtb3ZlZEZyb21UcmVlKGRl
ZXApOworfQorCiB2b2lkIEhUTUxGb3JtRWxlbWVudDo6aGFuZGxlTG9jYWxFdmVudHMoRXZlbnQq
IGV2ZW50KQogewogICAgIE5vZGUqIHRhcmdldE5vZGUgPSBldmVudC0+dGFyZ2V0KCktPnRvTm9k
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5kZXggOThkM2Q4YWY3M2Iz
NDc2M2ViOTBhNzlhOWEwYzJlNDY4ZTNmZGI2OC4uM2IyYWJkNzBkNWJiNGYwZDAyM2FhODFlYWE0
ZWJiZWNjM2JmOWEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCkBAIC0x
MTcsNiArMTE3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpOwogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRl
ZEludG9Eb2N1bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7
CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApIE9WRVJSSURFOwog
CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUxvY2FsRXZlbnRzKEV2ZW50Kik7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5
MDNmMjFkYjhhMjVhNmE2ZmQyMDA2Nzg1MWYxYjQwNjAzMDkwYTI3Li42Y2VmZDE3MzA0ZmM4NDZl
ZTc1MDFhYzE1NGZhN2FhM2JmOTc3YThlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDMt
MTYgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQnJlYWsgdGhl
IGFzc29jaWF0aW9uIGJldHdlZW4gZm9ybSBjb250cm9scyBhbmQgdGhlaXIgb3duZXIgd2hlbiB0
aGUgb3duZXIgbGVhdmVzIHRoZSB0cmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04MTQyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9wYXJzZXItYXNzb2NpYXRlZC1mb3JtLXJlbW92
YWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3BhcnNlci1hc3Nv
Y2lhdGVkLWZvcm0tcmVtb3ZhbC5odG1sOiBBZGRlZC4KKwogMjAxMi0wNC0xMCAgRGF2aWQgRG9y
d2luICA8ZGRvcndpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIEVuY3J5cHRlZCBNZWRp
YSBFeHRlbnNpb25zIG1ldGhvZHMgdG8gSFRNTE1lZGlhRWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9wYXJzZXItYXNzb2NpYXRlZC1mb3JtLXJlbW92YWwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9wYXJzZXItYXNzb2NpYXRlZC1mb3JtLXJl
bW92YWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5N2Y3ZGNiYmFkMzRlNzc3NTVmNDYzZDNj
ZmQ5YmJiYTA1ZjNiOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3BhcnNlci1hc3NvY2lhdGVkLWZvcm0tcmVtb3ZhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NiBAQAorRm9ybSBjb250cm9scyBhc3NvY2lhdGVkIHdpdGggYSBmb3JtIGJ5IHRoZSBwYXJzZXIg
c2hvdWxkIGJlIHJlc2V0IHdoZW4gdGhhdCBmb3JtIGxlYXZlcyB0aGVpciB0cmVlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUmVtb3ZpbmcgYSBmb3JtIGZyb20gdGhlIGRvY3Vt
ZW50IHdoaWxlIGxlYXZpbmcgaXRzIGFzc29jaWF0ZWQgZWxlbWVudCBpbi4uLgorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvcm0gaXMgbnVsbAorCitSZW1vdmluZyBhIGZv
cm0gYW5kIGl0cyBhc3NvY2lhdGVkIGVsZW1lbnQuLi4KK1BBU1MgdGFibGUyLnF1ZXJ5U2VsZWN0
b3IoImlucHV0IikuZm9ybSBpcyBub24tbnVsbC4KKy4uLmFuZCB0aGVuIHJlbW92aW5nIHRoZSBm
b3JtLgorUEFTUyB0YWJsZTIucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb3JtIGlzIG51bGwKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3BhcnNlci1hc3NvY2lhdGVkLWZvcm0tcmVtb3Zh
bC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9wYXJzZXItYXNzb2NpYXRlZC1mb3JtLXJl
bW92YWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmZlZTE3NzUzZjA3ZjM0NzRlZjJhMzNjZWQ1ZDEwMTdj
NGJjMDkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9wYXJzZXIt
YXNzb2NpYXRlZC1mb3JtLXJlbW92YWwuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxzdHlsZT4KK3RhYmxlIHsgZGlzcGxheTogbm9uZTsgfQorPC9zdHlsZT4KKzxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHRhYmxl
IGlkPSJ0YWJsZTEiPgorICA8Zm9ybT4KKyAgICA8dGQ+PGlucHV0PjwvdGQ+CisgIDwvZm9ybT4K
KzwvdGFibGU+Cis8dGFibGUgaWQ9InRhYmxlMiI+CisgIDxmb3JtPgorICAgIDx0ZD48aW5wdXQ+
PC90ZD4KKyAgPC9mb3JtPgorPC90YWJsZT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignRm9ybSBj
b250cm9scyBhc3NvY2lhdGVkIHdpdGggYSBmb3JtIGJ5IHRoZSBwYXJzZXIgc2hvdWxkIGJlIHJl
c2V0IHdoZW4gdGhhdCBmb3JtIGxlYXZlcyB0aGVpciB0cmVlLicpOworCitkZWJ1ZygnUmVtb3Zp
bmcgYSBmb3JtIGZyb20gdGhlIGRvY3VtZW50IHdoaWxlIGxlYXZpbmcgaXRzIGFzc29jaWF0ZWQg
ZWxlbWVudCBpbi4uLicpOworZG9jdW1lbnQuZm9ybXNbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGls
ZChkb2N1bWVudC5mb3Jtc1swXSk7CitzaG91bGRCZU51bGwoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImlucHV0IikuZm9ybScpOworCitkZWJ1ZygnJyk7CitkZWJ1ZygnUmVtb3ZpbmcgYSBmb3Jt
IGFuZCBpdHMgYXNzb2NpYXRlZCBlbGVtZW50Li4uJyk7Cit2YXIgdGFibGUyID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RhYmxlMicpOwordGFibGUyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo
dGFibGUyKTsKK3Nob3VsZEJlTm9uTnVsbCgndGFibGUyLnF1ZXJ5U2VsZWN0b3IoImlucHV0Iiku
Zm9ybScpOworZGVidWcoJy4uLmFuZCB0aGVuIHJlbW92aW5nIHRoZSBmb3JtLicpOwordGFibGUy
LnJlbW92ZUNoaWxkKHRhYmxlMi5xdWVyeVNlbGVjdG9yKCdmb3JtJykpOworc2hvdWxkQmVOdWxs
KCd0YWJsZTIucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb3JtJyk7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>