<?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>107762</bug_id>
          
          <creation_ts>2013-01-23 17:03:53 -0800</creation_ts>
          <short_desc>HTMLDocumentParser should hold the HTMLToken using an OwnPtr</short_desc>
          <delta_ts>2013-01-29 12:48:46 -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>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>
          <dependson>108159</dependson>
          <blocked>107753</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>814854</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-23 17:03:53 -0800</bug_when>
    <thetext>HTMLDocumentParser should hold the HTMLToken using an OwnPtr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814856</commentid>
    <comment_count>1</comment_count>
      <attachid>184358</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-23 17:04:38 -0800</bug_when>
    <thetext>Created attachment 184358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814861</commentid>
    <comment_count>2</comment_count>
      <attachid>184358</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-23 17:10:03 -0800</bug_when>
    <thetext>Comment on attachment 184358
Patch

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

This ends up being one more malloc for innerHTML.  I&apos;m not sure if we&apos;ll end up noticing for perf or not.

&gt; Source/WebCore/html/parser/HTMLDocumentParser.cpp:341
&gt;          if (!isParsingFragment())

We could just grab a const reference to the token at the top of this loop.  The token being able to change is a background-parser thing.

in your setToken() method that you write you should probably ASSERT that we&apos;re not in the middle of a parsing session.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818612</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-28 23:40:48 -0800</bug_when>
    <thetext>I just added an inline helper function to make the code more readable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818613</commentid>
    <comment_count>4</comment_count>
      <attachid>185174</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-28 23:41:02 -0800</bug_when>
    <thetext>Created attachment 185174
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818640</commentid>
    <comment_count>5</comment_count>
      <attachid>185174</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 00:03:12 -0800</bug_when>
    <thetext>Comment on attachment 185174
Patch for landing

Clearing flags on attachment: 185174

Committed r141070: &lt;http://trac.webkit.org/changeset/141070&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818641</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 00:03:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819036</commentid>
    <comment_count>7</comment_count>
      <attachid>185174</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-01-29 09:54:37 -0800</bug_when>
    <thetext>Comment on attachment 185174
Patch for landing

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

&gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:157
&gt; +    while (m_tokenizer-&gt;nextToken(m_input, *m_token.get())) {

Should not need the get() call here, because the * operator should work on an OwnPtr.

&gt; Source/WebCore/html/parser/HTMLDocumentParser.h:157
&gt; +    HTMLToken&amp; token() { return *m_token.get(); }

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819227</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-29 12:48:46 -0800</bug_when>
    <thetext>Oh, I didn&apos;t know that.  Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184358</attachid>
            <date>2013-01-23 17:04:38 -0800</date>
            <delta_ts>2013-01-28 23:40:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107762-20130123170131.patch</filename>
            <type>text/plain</type>
            <size>10658</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRmMDNhNTMwY2U3NzZj
OWFhM2QxMjZkYzY0M2U4NmRhYTA4ODU3OC4uNDAwYTFhMjEzMDNhNzUxZTVmZTkzOWJjN2FhYzJk
ZDA0MzdhOWUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAxLTIzICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSFRNTERvY3VtZW50UGFyc2Vy
IHNob3VsZCBob2xkIHRoZSBIVE1MVG9rZW4gdXNpbmcgYW4gT3duUHRyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc3NjIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2luZyBhbiBPd25QdHIgd2lsbCBs
ZXQgdXMgZGV0YWNoIHRoZSBIVE1MVG9rZW4gZnJvbSB0aGUKKyAgICAgICAgSFRNTERvY3VtZW50
UGFyc2VyIGFuZCBzZW5kIGl0IHRvIHRoZSBCYWNrZ3JvdW5kSFRNTFBhcnNlciBmb3IgZnVydGhl
cgorICAgICAgICBwcm9jZXNzaW5nLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvQmFja2dyb3Vu
ZEhUTUxQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6
OkJhY2tncm91bmRIVE1MUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1M
UGFyc2VyOjpwdW1wVG9rZW5pemVyKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9CYWNrZ3JvdW5k
SFRNTFBhcnNlci5oOgorICAgICAgICAoQmFja2dyb3VuZEhUTUxQYXJzZXIpOgorICAgICAgICAq
IGh0bWwvcGFyc2VyL0NvbXBhY3RIVE1MVG9rZW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29t
cGFjdEhUTUxUb2tlbjo6Q29tcGFjdEhUTUxUb2tlbik6CisgICAgICAgICogaHRtbC9wYXJzZXIv
Q29tcGFjdEhUTUxUb2tlbi5oOgorICAgICAgICAoQ29tcGFjdEhUTUxUb2tlbik6CisgICAgICAg
ICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6cHVtcFRva2VuaXplcik6CisgICAgICAgICogaHRtbC9w
YXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChIVE1MRG9jdW1lbnRQYXJzZXIp
OgorCiAyMDEzLTAxLTIzICBKdW4gSmlhbmcgIDxqdW4uYS5qaWFuZ0BpbnRlbC5jb20+CiAKICAg
ICAgICAgQXZvaWQgdW5uZWNlc3NhcnkgZm9ybWF0IGNvbnZlcnNpb24gZm9yIHRleHtTdWJ9SW1h
Z2UyRCgpIGZvciBJbWFnZURhdGEgb2YgV2ViR0wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcAppbmRleCBjMGVmNDA0N2I5ODZmZjFh
NmEzZDc5ODQyNDkwYmU4OTMyYTc2NmNiLi43YjIwODU0OWRjNWMzMjI4MGY3Y2U5NmRkNDI0Y2E0
NmMyY2QyMzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3Jv
dW5kSFRNTFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dy
b3VuZEhUTUxQYXJzZXIuY3BwCkBAIC04NCw2ICs4NCw3IEBAIFBhcnNlck1hcDo6QmFja2dyb3Vu
ZFBhcnNlck1hcCYgUGFyc2VyTWFwOjpiYWNrZ3JvdW5kUGFyc2VycygpCiAKIEJhY2tncm91bmRI
VE1MUGFyc2VyOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcihjb25zdCBIVE1MUGFyc2VyT3B0aW9ucyYg
b3B0aW9ucywgV2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJzZXI+IHBhcnNlcikKICAgICA6IG1faW5G
b3JlaWduQ29udGVudChmYWxzZSkKKyAgICAsIG1fdG9rZW4oYWRvcHRQdHIobmV3IEhUTUxUb2tl
bikpCiAgICAgLCBtX3Rva2VuaXplcihIVE1MVG9rZW5pemVyOjpjcmVhdGUob3B0aW9ucykpCiAg
ICAgLCBtX29wdGlvbnMob3B0aW9ucykKICAgICAsIG1fcGFyc2VyKHBhcnNlcikKQEAgLTE1Myw5
ICsxNTQsOSBAQCBib29sIEJhY2tncm91bmRIVE1MUGFyc2VyOjpzaW11bGF0ZVRyZWVCdWlsZGVy
KGNvbnN0IENvbXBhY3RIVE1MVG9rZW4mIHRva2VuKQogCiB2b2lkIEJhY2tncm91bmRIVE1MUGFy
c2VyOjpwdW1wVG9rZW5pemVyKCkKIHsKLSAgICB3aGlsZSAobV90b2tlbml6ZXItPm5leHRUb2tl
bihtX2lucHV0LCBtX3Rva2VuKSkgewotICAgICAgICBtX3BlbmRpbmdUb2tlbnMtPmFwcGVuZChD
b21wYWN0SFRNTFRva2VuKG1fdG9rZW4sIFRleHRQb3NpdGlvbihtX2lucHV0LmN1cnJlbnRMaW5l
KCksIG1faW5wdXQuY3VycmVudENvbHVtbigpKSkpOwotICAgICAgICBtX3Rva2VuLmNsZWFyKCk7
CisgICAgd2hpbGUgKG1fdG9rZW5pemVyLT5uZXh0VG9rZW4obV9pbnB1dCwgKm1fdG9rZW4uZ2V0
KCkpKSB7CisgICAgICAgIG1fcGVuZGluZ1Rva2Vucy0+YXBwZW5kKENvbXBhY3RIVE1MVG9rZW4o
bV90b2tlbi5nZXQoKSwgVGV4dFBvc2l0aW9uKG1faW5wdXQuY3VycmVudExpbmUoKSwgbV9pbnB1
dC5jdXJyZW50Q29sdW1uKCkpKSk7CisgICAgICAgIG1fdG9rZW4tPmNsZWFyKCk7CiAKICAgICAg
ICAgaWYgKCFzaW11bGF0ZVRyZWVCdWlsZGVyKG1fcGVuZGluZ1Rva2Vucy0+bGFzdCgpKSB8fCBt
X3BlbmRpbmdUb2tlbnMtPnNpemUoKSA+PSBwZW5kaW5nVG9rZW5MaW1pdCkKICAgICAgICAgICAg
IHNlbmRUb2tlbnNUb01haW5UaHJlYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oCmluZGV4IGU2ZTgyNzZmNmY4MDIyZWE4ZDUyZjkz
ZjQwY2IxZTFjYzA1NjkxODEuLmI1NDk5N2Y2NzU3YWJkMmJjMzFjNWI3MDY2YzdiNDk2NGNmYWRk
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1M
UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQ
YXJzZXIuaApAQCAtNjQsOSArNjQsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZW5kVG9rZW5z
VG9NYWluVGhyZWFkKCk7CiAKLSAgICBTZWdtZW50ZWRTdHJpbmcgbV9pbnB1dDsKLSAgICBIVE1M
VG9rZW4gbV90b2tlbjsKICAgICBib29sIG1faW5Gb3JlaWduQ29udGVudDsgLy8gRklYTUU6IFdl
IG5lZWQgYSBzdGFjayBvZiBmb3JlaWduIGNvbnRlbnQgbWFya2Vycy4KKyAgICBTZWdtZW50ZWRT
dHJpbmcgbV9pbnB1dDsKKyAgICBPd25QdHI8SFRNTFRva2VuPiBtX3Rva2VuOwogICAgIE93blB0
cjxIVE1MVG9rZW5pemVyPiBtX3Rva2VuaXplcjsKICAgICBIVE1MUGFyc2VyT3B0aW9ucyBtX29w
dGlvbnM7CiAgICAgV2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJzZXI+IG1fcGFyc2VyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2VuLmNwcAppbmRleCA2OGQw
NWJmZjJiOGFjOTFmNzg1MGZhNTkzNmQzYzQwNTM2OTg3OGVmLi5hMWEyN2YyMDVhNDJiZGM0Zjcy
YWY1Yzk4NjZjZmU1YTBhNWM5MzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9Db21wYWN0SFRNTFRva2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9Db21wYWN0SFRNTFRva2VuLmNwcApAQCAtNDIsOCArNDIsOCBAQCBzdHJ1Y3QgU2FtZVNpemVB
c0NvbXBhY3RIVE1MVG9rZW4gIHsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKENvbXBhY3RIVE1M
VG9rZW4pID09IHNpemVvZihTYW1lU2l6ZUFzQ29tcGFjdEhUTUxUb2tlbiksIENvbXBhY3RIVE1M
VG9rZW5fc2hvdWxkX3N0YXlfc21hbGwpOwogCi1Db21wYWN0SFRNTFRva2VuOjpDb21wYWN0SFRN
TFRva2VuKGNvbnN0IEhUTUxUb2tlbiYgdG9rZW4sIGNvbnN0IFRleHRQb3NpdGlvbiYgdGV4dFBv
c2l0aW9uKQotICAgIDogbV90eXBlKHRva2VuLnR5cGUoKSkKK0NvbXBhY3RIVE1MVG9rZW46OkNv
bXBhY3RIVE1MVG9rZW4oY29uc3QgSFRNTFRva2VuKiB0b2tlbiwgY29uc3QgVGV4dFBvc2l0aW9u
JiB0ZXh0UG9zaXRpb24pCisgICAgOiBtX3R5cGUodG9rZW4tPnR5cGUoKSkKICAgICAsIG1faXNB
bGw4Qml0RGF0YShmYWxzZSkKICAgICAsIG1fZG9jdHlwZUZvcmNlc1F1aXJrcyhmYWxzZSkKICAg
ICAsIG1fdGV4dFBvc2l0aW9uKHRleHRQb3NpdGlvbikKQEAgLTUzLDMyICs1MywzMiBAQCBDb21w
YWN0SFRNTFRva2VuOjpDb21wYWN0SFRNTFRva2VuKGNvbnN0IEhUTUxUb2tlbiYgdG9rZW4sIGNv
bnN0IFRleHRQb3NpdGlvbiYgdAogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBIVE1MVG9rZW5UeXBlczo6RE9DVFlQRTogewotICAgICAgICBt
X2RhdGEgPSBTdHJpbmcodG9rZW4ubmFtZSgpLmRhdGEoKSwgdG9rZW4ubmFtZSgpLnNpemUoKSk7
CisgICAgICAgIG1fZGF0YSA9IFN0cmluZyh0b2tlbi0+bmFtZSgpLmRhdGEoKSwgdG9rZW4tPm5h
bWUoKS5zaXplKCkpOwogICAgICAgICAvLyBUaGVyZSBpcyBvbmx5IDEgRE9DVFlQRSB0b2tlbiBw
ZXIgZG9jdW1lbnQsIHNvIHRvIGF2b2lkIGluY3JlYXNpbmcgdGhlCiAgICAgICAgIC8vIHNpemUg
b2YgQ29tcGFjdEhUTUxUb2tlbiwgd2UganVzdCB1c2UgdGhlIG1fYXR0cmlidXRlcyB2ZWN0b3Iu
Ci0gICAgICAgIFN0cmluZyBwdWJsaWNJZGVudGlmaWVyKHRva2VuLnB1YmxpY0lkZW50aWZpZXIo
KS5kYXRhKCksIHRva2VuLnB1YmxpY0lkZW50aWZpZXIoKS5zaXplKCkpOwotICAgICAgICBTdHJp
bmcgc3lzdGVtSWRlbnRpZmllcih0b2tlbi5zeXN0ZW1JZGVudGlmaWVyKCkuZGF0YSgpLCB0b2tl
bi5zeXN0ZW1JZGVudGlmaWVyKCkuc2l6ZSgpKTsKKyAgICAgICAgU3RyaW5nIHB1YmxpY0lkZW50
aWZpZXIodG9rZW4tPnB1YmxpY0lkZW50aWZpZXIoKS5kYXRhKCksIHRva2VuLT5wdWJsaWNJZGVu
dGlmaWVyKCkuc2l6ZSgpKTsKKyAgICAgICAgU3RyaW5nIHN5c3RlbUlkZW50aWZpZXIodG9rZW4t
PnN5c3RlbUlkZW50aWZpZXIoKS5kYXRhKCksIHRva2VuLT5zeXN0ZW1JZGVudGlmaWVyKCkuc2l6
ZSgpKTsKICAgICAgICAgbV9hdHRyaWJ1dGVzLmFwcGVuZChDb21wYWN0QXR0cmlidXRlKHB1Ymxp
Y0lkZW50aWZpZXIsIHN5c3RlbUlkZW50aWZpZXIpKTsKLSAgICAgICAgbV9kb2N0eXBlRm9yY2Vz
UXVpcmtzID0gdG9rZW4uZm9yY2VRdWlya3MoKTsKKyAgICAgICAgbV9kb2N0eXBlRm9yY2VzUXVp
cmtzID0gdG9rZW4tPmZvcmNlUXVpcmtzKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBj
YXNlIEhUTUxUb2tlblR5cGVzOjpFbmRPZkZpbGU6CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
SFRNTFRva2VuVHlwZXM6OlN0YXJ0VGFnOgotICAgICAgICBtX2F0dHJpYnV0ZXMucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eSh0b2tlbi5hdHRyaWJ1dGVzKCkuc2l6ZSgpKTsKLSAgICAgICAgZm9yIChW
ZWN0b3I8QXR0cmlidXRlQmFzZT46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdG9rZW4uYXR0cmlidXRl
cygpLmJlZ2luKCk7IGl0ICE9IHRva2VuLmF0dHJpYnV0ZXMoKS5lbmQoKTsgKytpdCkKKyAgICAg
ICAgbV9hdHRyaWJ1dGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodG9rZW4tPmF0dHJpYnV0ZXMo
KS5zaXplKCkpOworICAgICAgICBmb3IgKFZlY3RvcjxBdHRyaWJ1dGVCYXNlPjo6Y29uc3RfaXRl
cmF0b3IgaXQgPSB0b2tlbi0+YXR0cmlidXRlcygpLmJlZ2luKCk7IGl0ICE9IHRva2VuLT5hdHRy
aWJ1dGVzKCkuZW5kKCk7ICsraXQpCiAgICAgICAgICAgICBtX2F0dHJpYnV0ZXMuYXBwZW5kKENv
bXBhY3RBdHRyaWJ1dGUoU3RyaW5nKGl0LT5tX25hbWUuZGF0YSgpLCBpdC0+bV9uYW1lLnNpemUo
KSksIFN0cmluZyhpdC0+bV92YWx1ZS5kYXRhKCksIGl0LT5tX3ZhbHVlLnNpemUoKSkpKTsKICAg
ICAgICAgLy8gRmFsbCB0aHJvdWdoIQogICAgIGNhc2UgSFRNTFRva2VuVHlwZXM6OkVuZFRhZzoK
LSAgICAgICAgbV9zZWxmQ2xvc2luZyA9IHRva2VuLnNlbGZDbG9zaW5nKCk7CisgICAgICAgIG1f
c2VsZkNsb3NpbmcgPSB0b2tlbi0+c2VsZkNsb3NpbmcoKTsKICAgICAgICAgLy8gRmFsbCB0aHJv
dWdoIQogICAgIGNhc2UgSFRNTFRva2VuVHlwZXM6OkNvbW1lbnQ6CiAgICAgY2FzZSBIVE1MVG9r
ZW5UeXBlczo6Q2hhcmFjdGVyOgotICAgICAgICBpZiAodG9rZW4uaXNBbGw4Qml0RGF0YSgpKSB7
Ci0gICAgICAgICAgICBtX2RhdGEgPSBTdHJpbmc6Om1ha2U4Qml0RnJvbTE2Qml0U291cmNlKHRv
a2VuLmRhdGEoKS5kYXRhKCksIHRva2VuLmRhdGEoKS5zaXplKCkpOworICAgICAgICBpZiAodG9r
ZW4tPmlzQWxsOEJpdERhdGEoKSkgeworICAgICAgICAgICAgbV9kYXRhID0gU3RyaW5nOjptYWtl
OEJpdEZyb20xNkJpdFNvdXJjZSh0b2tlbi0+ZGF0YSgpLmRhdGEoKSwgdG9rZW4tPmRhdGEoKS5z
aXplKCkpOwogICAgICAgICAgICAgbV9pc0FsbDhCaXREYXRhID0gdHJ1ZTsKICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICBtX2RhdGEgPSBTdHJpbmcodG9rZW4uZGF0YSgpLmRhdGEoKSwgdG9r
ZW4uZGF0YSgpLnNpemUoKSk7CisgICAgICAgICAgICBtX2RhdGEgPSBTdHJpbmcodG9rZW4tPmRh
dGEoKS5kYXRhKCksIHRva2VuLT5kYXRhKCkuc2l6ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
ZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2VuLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2VuLmgKaW5kZXggODZjOTRjN2I0ODdjNzc0ZGUy
MDhmZTc3OTcwYTk1NGY2ZmUxODhjNi4uZTQ5MmVlYzJlNjM5ODMyNmZlN2Y3MDU2YzI5YTY3MTNl
NjQ4MmZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29tcGFjdEhU
TUxUb2tlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NvbXBhY3RIVE1MVG9r
ZW4uaApAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBDb21wYWN0SFRNTFRva2Vu
IHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBDb21wYWN0SFRNTFRva2VuKGNvbnN0IEhUTUxUb2tl
biYsIGNvbnN0IFRleHRQb3NpdGlvbiYpOworICAgIENvbXBhY3RIVE1MVG9rZW4oY29uc3QgSFRN
TFRva2VuKiwgY29uc3QgVGV4dFBvc2l0aW9uJik7CiAKICAgICBib29sIGlzU2FmZVRvU2VuZFRv
QW5vdGhlclRocmVhZCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA0NjE1OWYwYzY3MWE5MTUwZTE5NmM4YThj
NWNlMzQ2ODczMGE3ZmUzLi5iOGEyYTMzZGU4MTg0NWZjMjkwYTQ0NmQxYzg5NjE0MjAwZTRjZDg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNl
ci5jcHAKQEAgLTc3LDYgKzc3LDcgQEAgc3RhdGljIEhUTUxUb2tlbml6ZXJTdGF0ZTo6U3RhdGUg
dG9rZW5pemVyU3RhdGVGb3JDb250ZXh0RWxlbWVudChFbGVtZW50KiBjb250ZXgKIEhUTUxEb2N1
bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKEhUTUxEb2N1bWVudCogZG9jdW1lbnQsIGJv
b2wgcmVwb3J0RXJyb3JzKQogICAgIDogU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKGRvY3VtZW50
KQogICAgICwgbV9vcHRpb25zKGRvY3VtZW50KQorICAgICwgbV90b2tlbihhZG9wdFB0cihuZXcg
SFRNTFRva2VuKSkKICAgICAsIG1fdG9rZW5pemVyKEhUTUxUb2tlbml6ZXI6OmNyZWF0ZShtX29w
dGlvbnMpKQogICAgICwgbV9zY3JpcHRSdW5uZXIoSFRNTFNjcmlwdFJ1bm5lcjo6Y3JlYXRlKGRv
Y3VtZW50LCB0aGlzKSkKICAgICAsIG1fdHJlZUJ1aWxkZXIoSFRNTFRyZWVCdWlsZGVyOjpjcmVh
dGUodGhpcywgZG9jdW1lbnQsIHJlcG9ydEVycm9ycywgbV9vcHRpb25zKSkKQEAgLTk2LDYgKzk3
LDcgQEAgSFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJzZXIoSFRNTERvY3VtZW50
KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvcnMKIEhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERv
Y3VtZW50UGFyc2VyKERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50LCBFbGVtZW50KiBjb250ZXh0
RWxlbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24p
CiAgICAgOiBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoZnJhZ21lbnQtPmRvY3VtZW50KCkpCiAg
ICAgLCBtX29wdGlvbnMoZnJhZ21lbnQtPmRvY3VtZW50KCkpCisgICAgLCBtX3Rva2VuKGFkb3B0
UHRyKG5ldyBIVE1MVG9rZW4pKQogICAgICwgbV90b2tlbml6ZXIoSFRNTFRva2VuaXplcjo6Y3Jl
YXRlKG1fb3B0aW9ucykpCiAgICAgLCBtX3RyZWVCdWlsZGVyKEhUTUxUcmVlQnVpbGRlcjo6Y3Jl
YXRlKHRoaXMsIGZyYWdtZW50LCBjb250ZXh0RWxlbWVudCwgc2NyaXB0aW5nUGVybWlzc2lvbiwg
bV9vcHRpb25zKSkKICAgICAsIG1feHNzQXVkaXRvcih0aGlzKQpAQCAtMzM3LDIwICszMzksMjAg
QEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnB1bXBUb2tlbml6ZXIoU3luY2hyb25vdXNNb2Rl
IG1vZGUpCiAKICAgICB3aGlsZSAoY2FuVGFrZU5leHRUb2tlbihtb2RlLCBzZXNzaW9uKSAmJiAh
c2Vzc2lvbi5uZWVkc1lpZWxkKSB7CiAgICAgICAgIGlmICghaXNQYXJzaW5nRnJhZ21lbnQoKSkK
LSAgICAgICAgICAgIG1fc291cmNlVHJhY2tlci5zdGFydChtX2lucHV0LCBtX3Rva2VuaXplci5n
ZXQoKSwgbV90b2tlbik7CisgICAgICAgICAgICBtX3NvdXJjZVRyYWNrZXIuc3RhcnQobV9pbnB1
dCwgbV90b2tlbml6ZXIuZ2V0KCksICptX3Rva2VuLmdldCgpKTsKIAotICAgICAgICBpZiAoIW1f
dG9rZW5pemVyLT5uZXh0VG9rZW4obV9pbnB1dC5jdXJyZW50KCksIG1fdG9rZW4pKQorICAgICAg
ICBpZiAoIW1fdG9rZW5pemVyLT5uZXh0VG9rZW4obV9pbnB1dC5jdXJyZW50KCksICptX3Rva2Vu
LmdldCgpKSkKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGlmICghaXNQYXJzaW5nRnJh
Z21lbnQoKSkgewotICAgICAgICAgICAgbV9zb3VyY2VUcmFja2VyLmVuZChtX2lucHV0LCBtX3Rv
a2VuaXplci5nZXQoKSwgbV90b2tlbik7CisgICAgICAgICAgICBtX3NvdXJjZVRyYWNrZXIuZW5k
KG1faW5wdXQsIG1fdG9rZW5pemVyLmdldCgpLCAqbV90b2tlbi5nZXQoKSk7CiAKICAgICAgICAg
ICAgIC8vIFdlIGRvIG5vdCBYU1MgZmlsdGVyIGlubmVySFRNTCwgd2hpY2ggbWVhbnMgd2UgKGlu
dGVudGlvbmFsbHkpIGZhaWwKICAgICAgICAgICAgIC8vIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9kb20td3JpdGUtaW5uZXJIVE1MLmh0bWwKLSAgICAgICAgICAgIG1feHNzQXVkaXRv
ci5maWx0ZXJUb2tlbihtX3Rva2VuKTsKKyAgICAgICAgICAgIG1feHNzQXVkaXRvci5maWx0ZXJU
b2tlbigqbV90b2tlbi5nZXQoKSk7CiAgICAgICAgIH0KIAotICAgICAgICBjb25zdHJ1Y3RUcmVl
RnJvbUhUTUxUb2tlbihtX3Rva2VuKTsKKyAgICAgICAgY29uc3RydWN0VHJlZUZyb21IVE1MVG9r
ZW4oKm1fdG9rZW4uZ2V0KCkpOwogICAgICAgICBBU1NFUlQobV90b2tlbi5pc1VuaW5pdGlhbGl6
ZWQoKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRG9jdW1lbnRQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1
bWVudFBhcnNlci5oCmluZGV4IGYxOWNiMTIyOTQ1ZWY1OTYxZjE3ZjcwYjk1ZGVkMzM0ODRiNWJj
MWYuLmZlMmE2NmY5NzJiM2ViYTk0ZGQ3ZTNiYmZhZWMyZTNkNDlhOTQ2NzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCkBAIC0xNTcsOSAr
MTU3LDcgQEAgcHJpdmF0ZToKICAgICBIVE1MUGFyc2VyT3B0aW9ucyBtX29wdGlvbnM7CiAgICAg
SFRNTElucHV0U3RyZWFtIG1faW5wdXQ7CiAKLSAgICAvLyBXZSBob2xkIG1fdG9rZW4gaGVyZSBi
ZWNhdXNlIGl0IG1pZ2h0IGJlIHBhcnRpYWxseSBjb21wbGV0ZS4KLSAgICBIVE1MVG9rZW4gbV90
b2tlbjsKLQorICAgIE93blB0cjxIVE1MVG9rZW4+IG1fdG9rZW47CiAgICAgT3duUHRyPEhUTUxU
b2tlbml6ZXI+IG1fdG9rZW5pemVyOwogICAgIE93blB0cjxIVE1MU2NyaXB0UnVubmVyPiBtX3Nj
cmlwdFJ1bm5lcjsKICAgICBPd25QdHI8SFRNTFRyZWVCdWlsZGVyPiBtX3RyZWVCdWlsZGVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185174</attachid>
            <date>2013-01-28 23:41:02 -0800</date>
            <delta_ts>2013-01-29 09:54:37 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-107762-20130128233749.patch</filename>
            <type>text/plain</type>
            <size>10853</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRiNGIxNzE3ZGI3YTlm
ZDJlMWZkNjM1NGU1MjAyNDhlNDc0N2Y0OS4uOTU0Y2JiY2Y1NzU4NzVmMzk1YjViM2VhMmExZTJm
NDI0ZDA1MDViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAxLTI4ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSFRNTERvY3VtZW50UGFyc2Vy
IHNob3VsZCBob2xkIHRoZSBIVE1MVG9rZW4gdXNpbmcgYW4gT3duUHRyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc3NjIKKworICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBVc2luZyBhbiBPd25QdHIgd2lsbCBsZXQg
dXMgZGV0YWNoIHRoZSBIVE1MVG9rZW4gZnJvbSB0aGUKKyAgICAgICAgSFRNTERvY3VtZW50UGFy
c2VyIGFuZCBzZW5kIGl0IHRvIHRoZSBCYWNrZ3JvdW5kSFRNTFBhcnNlciBmb3IgZnVydGhlcgor
ICAgICAgICBwcm9jZXNzaW5nLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhU
TUxQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OkJh
Y2tncm91bmRIVE1MUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFy
c2VyOjpwdW1wVG9rZW5pemVyKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRN
TFBhcnNlci5oOgorICAgICAgICAoQmFja2dyb3VuZEhUTUxQYXJzZXIpOgorICAgICAgICAqIGh0
bWwvcGFyc2VyL0NvbXBhY3RIVE1MVG9rZW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGFj
dEhUTUxUb2tlbjo6Q29tcGFjdEhUTUxUb2tlbik6CisgICAgICAgICogaHRtbC9wYXJzZXIvQ29t
cGFjdEhUTUxUb2tlbi5oOgorICAgICAgICAoQ29tcGFjdEhUTUxUb2tlbik6CisgICAgICAgICog
aHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxEb2N1bWVudFBhcnNlcjo6cHVtcFRva2VuaXplcik6CisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChIVE1MRG9jdW1lbnRQYXJzZXIpOgor
CiAyMDEzLTAxLTI4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQxMDQ5LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCmluZGV4IGNm
OGM5NzJhOGJmOGM2OWI4ZDY0OGYyYTNmMzRkYThkNmQ0MjZkMDYuLjBlOTY3YzY4NjJkODk2MjRi
MTUwYzBmNjkzMzU5YjI1NzNmOTlmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKQEAgLTg0LDYgKzg0LDcgQEAgUGFyc2Vy
TWFwOjpCYWNrZ3JvdW5kUGFyc2VyTWFwJiBQYXJzZXJNYXA6OmJhY2tncm91bmRQYXJzZXJzKCkK
IAogQmFja2dyb3VuZEhUTUxQYXJzZXI6OkJhY2tncm91bmRIVE1MUGFyc2VyKGNvbnN0IEhUTUxQ
YXJzZXJPcHRpb25zJiBvcHRpb25zLCBjb25zdCBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4m
IHBhcnNlcikKICAgICA6IG1faW5Gb3JlaWduQ29udGVudChmYWxzZSkKKyAgICAsIG1fdG9rZW4o
YWRvcHRQdHIobmV3IEhUTUxUb2tlbikpCiAgICAgLCBtX3Rva2VuaXplcihIVE1MVG9rZW5pemVy
OjpjcmVhdGUob3B0aW9ucykpCiAgICAgLCBtX29wdGlvbnMob3B0aW9ucykKICAgICAsIG1fcGFy
c2VyKHBhcnNlcikKQEAgLTE1Myw5ICsxNTQsOSBAQCBib29sIEJhY2tncm91bmRIVE1MUGFyc2Vy
OjpzaW11bGF0ZVRyZWVCdWlsZGVyKGNvbnN0IENvbXBhY3RIVE1MVG9rZW4mIHRva2VuKQogCiB2
b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjpwdW1wVG9rZW5pemVyKCkKIHsKLSAgICB3aGlsZSAo
bV90b2tlbml6ZXItPm5leHRUb2tlbihtX2lucHV0LCBtX3Rva2VuKSkgewotICAgICAgICBtX3Bl
bmRpbmdUb2tlbnMtPmFwcGVuZChDb21wYWN0SFRNTFRva2VuKG1fdG9rZW4sIFRleHRQb3NpdGlv
bihtX2lucHV0LmN1cnJlbnRMaW5lKCksIG1faW5wdXQuY3VycmVudENvbHVtbigpKSkpOwotICAg
ICAgICBtX3Rva2VuLmNsZWFyKCk7CisgICAgd2hpbGUgKG1fdG9rZW5pemVyLT5uZXh0VG9rZW4o
bV9pbnB1dCwgKm1fdG9rZW4uZ2V0KCkpKSB7CisgICAgICAgIG1fcGVuZGluZ1Rva2Vucy0+YXBw
ZW5kKENvbXBhY3RIVE1MVG9rZW4obV90b2tlbi5nZXQoKSwgVGV4dFBvc2l0aW9uKG1faW5wdXQu
Y3VycmVudExpbmUoKSwgbV9pbnB1dC5jdXJyZW50Q29sdW1uKCkpKSk7CisgICAgICAgIG1fdG9r
ZW4tPmNsZWFyKCk7CiAKICAgICAgICAgaWYgKCFzaW11bGF0ZVRyZWVCdWlsZGVyKG1fcGVuZGlu
Z1Rva2Vucy0+bGFzdCgpKSB8fCBtX3BlbmRpbmdUb2tlbnMtPnNpemUoKSA+PSBwZW5kaW5nVG9r
ZW5MaW1pdCkKICAgICAgICAgICAgIHNlbmRUb2tlbnNUb01haW5UaHJlYWQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oCmluZGV4IGVi
OGEyYjA4YzBiODIwZjM1YmI4ZWU1ZWMwZGUwOWYwNjc0MzZiYmQuLmUxN2E5YmRkNjMyM2I3MjQw
NzE5ZjJhZjRhOWRiZDhjMzZiYTRhOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuaApAQCAtNjQsOSArNjQsOSBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBzZW5kVG9rZW5zVG9NYWluVGhyZWFkKCk7CiAKLSAgICBTZWdtZW50ZWRTdHJp
bmcgbV9pbnB1dDsKLSAgICBIVE1MVG9rZW4gbV90b2tlbjsKICAgICBib29sIG1faW5Gb3JlaWdu
Q29udGVudDsgLy8gRklYTUU6IFdlIG5lZWQgYSBzdGFjayBvZiBmb3JlaWduIGNvbnRlbnQgbWFy
a2Vycy4KKyAgICBTZWdtZW50ZWRTdHJpbmcgbV9pbnB1dDsKKyAgICBPd25QdHI8SFRNTFRva2Vu
PiBtX3Rva2VuOwogICAgIE93blB0cjxIVE1MVG9rZW5pemVyPiBtX3Rva2VuaXplcjsKICAgICBI
VE1MUGFyc2VyT3B0aW9ucyBtX29wdGlvbnM7CiAgICAgV2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJz
ZXI+IG1fcGFyc2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ29t
cGFjdEhUTUxUb2tlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9Db21wYWN0SFRN
TFRva2VuLmNwcAppbmRleCA2OGQwNWJmZjJiOGFjOTFmNzg1MGZhNTkzNmQzYzQwNTM2OTg3OGVm
Li5hMWEyN2YyMDVhNDJiZGM0ZjcyYWY1Yzk4NjZjZmU1YTBhNWM5MzAyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2VuLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2VuLmNwcApAQCAtNDIsOCArNDIs
OCBAQCBzdHJ1Y3QgU2FtZVNpemVBc0NvbXBhY3RIVE1MVG9rZW4gIHsKIAogQ09NUElMRV9BU1NF
UlQoc2l6ZW9mKENvbXBhY3RIVE1MVG9rZW4pID09IHNpemVvZihTYW1lU2l6ZUFzQ29tcGFjdEhU
TUxUb2tlbiksIENvbXBhY3RIVE1MVG9rZW5fc2hvdWxkX3N0YXlfc21hbGwpOwogCi1Db21wYWN0
SFRNTFRva2VuOjpDb21wYWN0SFRNTFRva2VuKGNvbnN0IEhUTUxUb2tlbiYgdG9rZW4sIGNvbnN0
IFRleHRQb3NpdGlvbiYgdGV4dFBvc2l0aW9uKQotICAgIDogbV90eXBlKHRva2VuLnR5cGUoKSkK
K0NvbXBhY3RIVE1MVG9rZW46OkNvbXBhY3RIVE1MVG9rZW4oY29uc3QgSFRNTFRva2VuKiB0b2tl
biwgY29uc3QgVGV4dFBvc2l0aW9uJiB0ZXh0UG9zaXRpb24pCisgICAgOiBtX3R5cGUodG9rZW4t
PnR5cGUoKSkKICAgICAsIG1faXNBbGw4Qml0RGF0YShmYWxzZSkKICAgICAsIG1fZG9jdHlwZUZv
cmNlc1F1aXJrcyhmYWxzZSkKICAgICAsIG1fdGV4dFBvc2l0aW9uKHRleHRQb3NpdGlvbikKQEAg
LTUzLDMyICs1MywzMiBAQCBDb21wYWN0SFRNTFRva2VuOjpDb21wYWN0SFRNTFRva2VuKGNvbnN0
IEhUTUxUb2tlbiYgdG9rZW4sIGNvbnN0IFRleHRQb3NpdGlvbiYgdAogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBIVE1MVG9rZW5UeXBlczo6
RE9DVFlQRTogewotICAgICAgICBtX2RhdGEgPSBTdHJpbmcodG9rZW4ubmFtZSgpLmRhdGEoKSwg
dG9rZW4ubmFtZSgpLnNpemUoKSk7CisgICAgICAgIG1fZGF0YSA9IFN0cmluZyh0b2tlbi0+bmFt
ZSgpLmRhdGEoKSwgdG9rZW4tPm5hbWUoKS5zaXplKCkpOwogICAgICAgICAvLyBUaGVyZSBpcyBv
bmx5IDEgRE9DVFlQRSB0b2tlbiBwZXIgZG9jdW1lbnQsIHNvIHRvIGF2b2lkIGluY3JlYXNpbmcg
dGhlCiAgICAgICAgIC8vIHNpemUgb2YgQ29tcGFjdEhUTUxUb2tlbiwgd2UganVzdCB1c2UgdGhl
IG1fYXR0cmlidXRlcyB2ZWN0b3IuCi0gICAgICAgIFN0cmluZyBwdWJsaWNJZGVudGlmaWVyKHRv
a2VuLnB1YmxpY0lkZW50aWZpZXIoKS5kYXRhKCksIHRva2VuLnB1YmxpY0lkZW50aWZpZXIoKS5z
aXplKCkpOwotICAgICAgICBTdHJpbmcgc3lzdGVtSWRlbnRpZmllcih0b2tlbi5zeXN0ZW1JZGVu
dGlmaWVyKCkuZGF0YSgpLCB0b2tlbi5zeXN0ZW1JZGVudGlmaWVyKCkuc2l6ZSgpKTsKKyAgICAg
ICAgU3RyaW5nIHB1YmxpY0lkZW50aWZpZXIodG9rZW4tPnB1YmxpY0lkZW50aWZpZXIoKS5kYXRh
KCksIHRva2VuLT5wdWJsaWNJZGVudGlmaWVyKCkuc2l6ZSgpKTsKKyAgICAgICAgU3RyaW5nIHN5
c3RlbUlkZW50aWZpZXIodG9rZW4tPnN5c3RlbUlkZW50aWZpZXIoKS5kYXRhKCksIHRva2VuLT5z
eXN0ZW1JZGVudGlmaWVyKCkuc2l6ZSgpKTsKICAgICAgICAgbV9hdHRyaWJ1dGVzLmFwcGVuZChD
b21wYWN0QXR0cmlidXRlKHB1YmxpY0lkZW50aWZpZXIsIHN5c3RlbUlkZW50aWZpZXIpKTsKLSAg
ICAgICAgbV9kb2N0eXBlRm9yY2VzUXVpcmtzID0gdG9rZW4uZm9yY2VRdWlya3MoKTsKKyAgICAg
ICAgbV9kb2N0eXBlRm9yY2VzUXVpcmtzID0gdG9rZW4tPmZvcmNlUXVpcmtzKCk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KICAgICBjYXNlIEhUTUxUb2tlblR5cGVzOjpFbmRPZkZpbGU6CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgSFRNTFRva2VuVHlwZXM6OlN0YXJ0VGFnOgotICAgICAgICBt
X2F0dHJpYnV0ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0b2tlbi5hdHRyaWJ1dGVzKCkuc2l6
ZSgpKTsKLSAgICAgICAgZm9yIChWZWN0b3I8QXR0cmlidXRlQmFzZT46OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gdG9rZW4uYXR0cmlidXRlcygpLmJlZ2luKCk7IGl0ICE9IHRva2VuLmF0dHJpYnV0ZXMo
KS5lbmQoKTsgKytpdCkKKyAgICAgICAgbV9hdHRyaWJ1dGVzLnJlc2VydmVJbml0aWFsQ2FwYWNp
dHkodG9rZW4tPmF0dHJpYnV0ZXMoKS5zaXplKCkpOworICAgICAgICBmb3IgKFZlY3RvcjxBdHRy
aWJ1dGVCYXNlPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSB0b2tlbi0+YXR0cmlidXRlcygpLmJlZ2lu
KCk7IGl0ICE9IHRva2VuLT5hdHRyaWJ1dGVzKCkuZW5kKCk7ICsraXQpCiAgICAgICAgICAgICBt
X2F0dHJpYnV0ZXMuYXBwZW5kKENvbXBhY3RBdHRyaWJ1dGUoU3RyaW5nKGl0LT5tX25hbWUuZGF0
YSgpLCBpdC0+bV9uYW1lLnNpemUoKSksIFN0cmluZyhpdC0+bV92YWx1ZS5kYXRhKCksIGl0LT5t
X3ZhbHVlLnNpemUoKSkpKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIQogICAgIGNhc2UgSFRN
TFRva2VuVHlwZXM6OkVuZFRhZzoKLSAgICAgICAgbV9zZWxmQ2xvc2luZyA9IHRva2VuLnNlbGZD
bG9zaW5nKCk7CisgICAgICAgIG1fc2VsZkNsb3NpbmcgPSB0b2tlbi0+c2VsZkNsb3NpbmcoKTsK
ICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIQogICAgIGNhc2UgSFRNTFRva2VuVHlwZXM6OkNvbW1l
bnQ6CiAgICAgY2FzZSBIVE1MVG9rZW5UeXBlczo6Q2hhcmFjdGVyOgotICAgICAgICBpZiAodG9r
ZW4uaXNBbGw4Qml0RGF0YSgpKSB7Ci0gICAgICAgICAgICBtX2RhdGEgPSBTdHJpbmc6Om1ha2U4
Qml0RnJvbTE2Qml0U291cmNlKHRva2VuLmRhdGEoKS5kYXRhKCksIHRva2VuLmRhdGEoKS5zaXpl
KCkpOworICAgICAgICBpZiAodG9rZW4tPmlzQWxsOEJpdERhdGEoKSkgeworICAgICAgICAgICAg
bV9kYXRhID0gU3RyaW5nOjptYWtlOEJpdEZyb20xNkJpdFNvdXJjZSh0b2tlbi0+ZGF0YSgpLmRh
dGEoKSwgdG9rZW4tPmRhdGEoKS5zaXplKCkpOwogICAgICAgICAgICAgbV9pc0FsbDhCaXREYXRh
ID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2RhdGEgPSBTdHJpbmcodG9r
ZW4uZGF0YSgpLmRhdGEoKSwgdG9rZW4uZGF0YSgpLnNpemUoKSk7CisgICAgICAgICAgICBtX2Rh
dGEgPSBTdHJpbmcodG9rZW4tPmRhdGEoKS5kYXRhKCksIHRva2VuLT5kYXRhKCkuc2l6ZSgpKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9Db21wYWN0SFRNTFRv
a2VuLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9Db21wYWN0SFRNTFRva2VuLmgKaW5k
ZXggODZjOTRjN2I0ODdjNzc0ZGUyMDhmZTc3OTcwYTk1NGY2ZmUxODhjNi4uZTQ5MmVlYzJlNjM5
ODMyNmZlN2Y3MDU2YzI5YTY3MTNlNjQ4MmZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvQ29tcGFjdEhUTUxUb2tlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0NvbXBhY3RIVE1MVG9rZW4uaApAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgogCiBj
bGFzcyBDb21wYWN0SFRNTFRva2VuIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBDb21wYWN0SFRN
TFRva2VuKGNvbnN0IEhUTUxUb2tlbiYsIGNvbnN0IFRleHRQb3NpdGlvbiYpOworICAgIENvbXBh
Y3RIVE1MVG9rZW4oY29uc3QgSFRNTFRva2VuKiwgY29uc3QgVGV4dFBvc2l0aW9uJik7CiAKICAg
ICBib29sIGlzU2FmZVRvU2VuZFRvQW5vdGhlclRocmVhZCgpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCAwMjkx
NGIyMTM5MmZkYjgwNDA0YzFmNmIwY2UxNzMwOWZkZmJlYTVjLi41Y2I2YzEwM2FjZWE1NDU1NWM1
MWVmZDA5NDg0MjI1YzgxMGQyNmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTc3LDYgKzc3LDcgQEAgc3RhdGljIEhUTUxU
b2tlbml6ZXJTdGF0ZTo6U3RhdGUgdG9rZW5pemVyU3RhdGVGb3JDb250ZXh0RWxlbWVudChFbGVt
ZW50KiBjb250ZXgKIEhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKEhUTUxE
b2N1bWVudCogZG9jdW1lbnQsIGJvb2wgcmVwb3J0RXJyb3JzKQogICAgIDogU2NyaXB0YWJsZURv
Y3VtZW50UGFyc2VyKGRvY3VtZW50KQogICAgICwgbV9vcHRpb25zKGRvY3VtZW50KQorICAgICwg
bV90b2tlbihhZG9wdFB0cihuZXcgSFRNTFRva2VuKSkKICAgICAsIG1fdG9rZW5pemVyKEhUTUxU
b2tlbml6ZXI6OmNyZWF0ZShtX29wdGlvbnMpKQogICAgICwgbV9zY3JpcHRSdW5uZXIoSFRNTFNj
cmlwdFJ1bm5lcjo6Y3JlYXRlKGRvY3VtZW50LCB0aGlzKSkKICAgICAsIG1fdHJlZUJ1aWxkZXIo
SFRNTFRyZWVCdWlsZGVyOjpjcmVhdGUodGhpcywgZG9jdW1lbnQsIHJlcG9ydEVycm9ycywgbV9v
cHRpb25zKSkKQEAgLTk2LDYgKzk3LDcgQEAgSFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1l
bnRQYXJzZXIoSFRNTERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvcnMKIEhUTUxE
b2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKERvY3VtZW50RnJhZ21lbnQqIGZyYWdt
ZW50LCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9u
IHNjcmlwdGluZ1Blcm1pc3Npb24pCiAgICAgOiBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoZnJh
Z21lbnQtPmRvY3VtZW50KCkpCiAgICAgLCBtX29wdGlvbnMoZnJhZ21lbnQtPmRvY3VtZW50KCkp
CisgICAgLCBtX3Rva2VuKGFkb3B0UHRyKG5ldyBIVE1MVG9rZW4pKQogICAgICwgbV90b2tlbml6
ZXIoSFRNTFRva2VuaXplcjo6Y3JlYXRlKG1fb3B0aW9ucykpCiAgICAgLCBtX3RyZWVCdWlsZGVy
KEhUTUxUcmVlQnVpbGRlcjo6Y3JlYXRlKHRoaXMsIGZyYWdtZW50LCBjb250ZXh0RWxlbWVudCwg
c2NyaXB0aW5nUGVybWlzc2lvbiwgbV9vcHRpb25zKSkKICAgICAsIG1feHNzQXVkaXRvcih0aGlz
KQpAQCAtMzQ1LDIwICszNDcsMjAgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnB1bXBUb2tl
bml6ZXIoU3luY2hyb25vdXNNb2RlIG1vZGUpCiAKICAgICB3aGlsZSAoY2FuVGFrZU5leHRUb2tl
bihtb2RlLCBzZXNzaW9uKSAmJiAhc2Vzc2lvbi5uZWVkc1lpZWxkKSB7CiAgICAgICAgIGlmICgh
aXNQYXJzaW5nRnJhZ21lbnQoKSkKLSAgICAgICAgICAgIG1fc291cmNlVHJhY2tlci5zdGFydCht
X2lucHV0LCBtX3Rva2VuaXplci5nZXQoKSwgbV90b2tlbik7CisgICAgICAgICAgICBtX3NvdXJj
ZVRyYWNrZXIuc3RhcnQobV9pbnB1dCwgbV90b2tlbml6ZXIuZ2V0KCksIHRva2VuKCkpOwogCi0g
ICAgICAgIGlmICghbV90b2tlbml6ZXItPm5leHRUb2tlbihtX2lucHV0LmN1cnJlbnQoKSwgbV90
b2tlbikpCisgICAgICAgIGlmICghbV90b2tlbml6ZXItPm5leHRUb2tlbihtX2lucHV0LmN1cnJl
bnQoKSwgdG9rZW4oKSkpCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBpZiAoIWlzUGFy
c2luZ0ZyYWdtZW50KCkpIHsKLSAgICAgICAgICAgIG1fc291cmNlVHJhY2tlci5lbmQobV9pbnB1
dCwgbV90b2tlbml6ZXIuZ2V0KCksIG1fdG9rZW4pOworICAgICAgICAgICAgbV9zb3VyY2VUcmFj
a2VyLmVuZChtX2lucHV0LCBtX3Rva2VuaXplci5nZXQoKSwgdG9rZW4oKSk7CiAKICAgICAgICAg
ICAgIC8vIFdlIGRvIG5vdCBYU1MgZmlsdGVyIGlubmVySFRNTCwgd2hpY2ggbWVhbnMgd2UgKGlu
dGVudGlvbmFsbHkpIGZhaWwKICAgICAgICAgICAgIC8vIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9kb20td3JpdGUtaW5uZXJIVE1MLmh0bWwKLSAgICAgICAgICAgIG1feHNzQXVkaXRv
ci5maWx0ZXJUb2tlbihtX3Rva2VuKTsKKyAgICAgICAgICAgIG1feHNzQXVkaXRvci5maWx0ZXJU
b2tlbih0b2tlbigpKTsKICAgICAgICAgfQogCi0gICAgICAgIGNvbnN0cnVjdFRyZWVGcm9tSFRN
TFRva2VuKG1fdG9rZW4pOworICAgICAgICBjb25zdHJ1Y3RUcmVlRnJvbUhUTUxUb2tlbih0b2tl
bigpKTsKICAgICAgICAgQVNTRVJUKG1fdG9rZW4uaXNVbmluaXRpYWxpemVkKCkpOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFy
c2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaApp
bmRleCBmMTljYjEyMjk0NWVmNTk2MWYxN2Y3MGI5NWRlZDMzNDg0YjViYzFmLi43NTRmODFlMDM3
ZjJmY2VjYWIwOTAzMmMzN2EyYzY0YWVkZjc0NjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtMTU0LDEyICsxNTQsMTIgQEAgcHJp
dmF0ZToKICAgICBib29sIGluUHVtcFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX3B1bXBTZXNz
aW9uTmVzdGluZ0xldmVsID4gMDsgfQogICAgIGJvb2wgc2hvdWxkRGVsYXlFbmQoKSBjb25zdCB7
IHJldHVybiBpblB1bXBTZXNzaW9uKCkgfHwgaXNXYWl0aW5nRm9yU2NyaXB0cygpIHx8IGlzU2No
ZWR1bGVkRm9yUmVzdW1lKCkgfHwgaXNFeGVjdXRpbmdTY3JpcHQoKTsgfQogCisgICAgSFRNTFRv
a2VuJiB0b2tlbigpIHsgcmV0dXJuICptX3Rva2VuLmdldCgpOyB9CisKICAgICBIVE1MUGFyc2Vy
T3B0aW9ucyBtX29wdGlvbnM7CiAgICAgSFRNTElucHV0U3RyZWFtIG1faW5wdXQ7CiAKLSAgICAv
LyBXZSBob2xkIG1fdG9rZW4gaGVyZSBiZWNhdXNlIGl0IG1pZ2h0IGJlIHBhcnRpYWxseSBjb21w
bGV0ZS4KLSAgICBIVE1MVG9rZW4gbV90b2tlbjsKLQorICAgIE93blB0cjxIVE1MVG9rZW4+IG1f
dG9rZW47CiAgICAgT3duUHRyPEhUTUxUb2tlbml6ZXI+IG1fdG9rZW5pemVyOwogICAgIE93blB0
cjxIVE1MU2NyaXB0UnVubmVyPiBtX3NjcmlwdFJ1bm5lcjsKICAgICBPd25QdHI8SFRNTFRyZWVC
dWlsZGVyPiBtX3RyZWVCdWlsZGVyOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>