<?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>109764</bug_id>
          
          <creation_ts>2013-02-13 16:12:25 -0800</creation_ts>
          <short_desc>Make BackgroundHTMLParser work with doc.writes that enter or leave foreign content</short_desc>
          <delta_ts>2013-03-11 19:12:05 -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>WebCore Misc.</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>
          
          <blocked>106127</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>832468</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-13 16:12:25 -0800</bug_when>
    <thetext>Currently BackgroundHTMLParser keeps track of whether we are in foreign content mode. However, if a doc.write causes us to enter or leave foreign content mode, we&apos;ll miss it because doc.write is processed on the main thread.

Adam suggests we can fix this by reading the information from the stack of open elements and sending it to the background HTML parser in the Checkpoint sent in resumeFrom().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849333</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-06 14:57:06 -0800</bug_when>
    <thetext>This sounds important to fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852742</commentid>
    <comment_count>2</comment_count>
      <attachid>192563</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-11 14:41:42 -0700</bug_when>
    <thetext>Created attachment 192563
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852789</commentid>
    <comment_count>3</comment_count>
      <attachid>192576</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-11 15:29:54 -0700</bug_when>
    <thetext>Created attachment 192576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852792</commentid>
    <comment_count>4</comment_count>
      <attachid>192576</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-11 15:31:58 -0700</bug_when>
    <thetext>Comment on attachment 192576
Patch

Tweaks coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852796</commentid>
    <comment_count>5</comment_count>
      <attachid>192578</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-11 15:34:50 -0700</bug_when>
    <thetext>Created attachment 192578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852816</commentid>
    <comment_count>6</comment_count>
      <attachid>192578</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-11 15:55:07 -0700</bug_when>
    <thetext>Comment on attachment 192578
Patch

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

LGTM.  Please return the &quot;simulator&quot; prefix. :)

&gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:155
&gt; +        if (!m_treeBuilder.simulate(m_pendingTokens-&gt;last(), m_tokenizer.get()) || m_pendingTokens-&gt;size() &gt;= pendingTokenLimit)

This is a little confusing.  It&apos;s not really a tree-builder, and if it was you wouldn&apos;t tell it to &quot;simulate&quot;. :)

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.h:71
&gt; +    HTMLElementStack* openElements() const { return m_tree.openElements(); }

Should this be const?  We don&apos;t want folks modifying this. :)

&gt; Source/WebCore/html/parser/HTMLTreeBuilderSimulator.cpp:136
&gt; +    return namespaceStack;

You&apos;re going to end up copying the vector a couple times here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852820</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-11 16:01:30 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 192578 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192578&amp;action=review
&gt; 
&gt; LGTM.  Please return the &quot;simulator&quot; prefix. :)

Done.

&gt; &gt; Source/WebCore/html/parser/BackgroundHTMLParser.cpp:155
&gt; &gt; +        if (!m_treeBuilder.simulate(m_pendingTokens-&gt;last(), m_tokenizer.get()) || m_pendingTokens-&gt;size() &gt;= pendingTokenLimit)
&gt; 
&gt; This is a little confusing.  It&apos;s not really a tree-builder, and if it was you wouldn&apos;t tell it to &quot;simulate&quot;. :)

Fixed.

&gt; &gt; Source/WebCore/html/parser/HTMLTreeBuilder.h:71
&gt; &gt; +    HTMLElementStack* openElements() const { return m_tree.openElements(); }
&gt; 
&gt; Should this be const?  We don&apos;t want folks modifying this. :)

Fixed.

&gt; &gt; Source/WebCore/html/parser/HTMLTreeBuilderSimulator.cpp:136
&gt; &gt; +    return namespaceStack;
&gt; 
&gt; You&apos;re going to end up copying the vector a couple times here.

Yeah, I&apos;d be surprised if that was a big problem.  We only call this function after executing script.  I&apos;m inclined to iterate in a future patch if we see this on a profile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852822</commentid>
    <comment_count>8</comment_count>
      <attachid>192583</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-11 16:01:48 -0700</bug_when>
    <thetext>Created attachment 192583
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852892</commentid>
    <comment_count>9</comment_count>
      <attachid>192598</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-11 17:02:04 -0700</bug_when>
    <thetext>Created attachment 192598
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852997</commentid>
    <comment_count>10</comment_count>
      <attachid>192598</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-11 19:12:00 -0700</bug_when>
    <thetext>Comment on attachment 192598
Patch for landing

Clearing flags on attachment: 192598

Committed r145464: &lt;http://trac.webkit.org/changeset/145464&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852998</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-11 19:12:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192563</attachid>
            <date>2013-03-11 14:41:42 -0700</date>
            <delta_ts>2013-03-11 15:29:53 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-109764-20130311143742.patch</filename>
            <type>text/plain</type>
            <size>9156</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1Mzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKaW5kZXggNTlkYzJmNGUzZDY3MjI1YWQw
NjVjNjMwYjBiZmQwYmUxNDBlZmRjYy4uY2IyZWE4YTM2ZjA2YWI0MzdjNjVlOWUwMmY1Nzc0MGMw
NDQ4ZDI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3Vu
ZEhUTUxQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91
bmRIVE1MUGFyc2VyLmNwcApAQCAtNjUsOSArNjUsOSBAQCBzdGF0aWMgY29uc3Qgc2l6ZV90IHBl
bmRpbmdUb2tlbkxpbWl0ID0gMTAwMDsKIAogQmFja2dyb3VuZEhUTUxQYXJzZXI6OkJhY2tncm91
bmRIVE1MUGFyc2VyKFBhc3NSZWZQdHI8V2Vha1JlZmVyZW5jZTxCYWNrZ3JvdW5kSFRNTFBhcnNl
cj4gPiByZWZlcmVuY2UsIFBhc3NPd25QdHI8Q29uZmlndXJhdGlvbj4gY29uZmlnKQogICAgIDog
bV93ZWFrRmFjdG9yeShyZWZlcmVuY2UsIHRoaXMpCi0gICAgLCBtX3RyZWVCdWlsZGVyU2ltdWxh
dG9yKGNvbmZpZy0+b3B0aW9ucykKICAgICAsIG1fdG9rZW4oYWRvcHRQdHIobmV3IEhUTUxUb2tl
bikpCiAgICAgLCBtX3Rva2VuaXplcihIVE1MVG9rZW5pemVyOjpjcmVhdGUoY29uZmlnLT5vcHRp
b25zKSkKKyAgICAsIG1fdHJlZUJ1aWxkZXIoSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yOjpjcmVh
dGUoY29uZmlnLT5vcHRpb25zKSkKICAgICAsIG1fb3B0aW9ucyhjb25maWctPm9wdGlvbnMpCiAg
ICAgLCBtX3BhcnNlcihjb25maWctPnBhcnNlcikKICAgICAsIG1fcGVuZGluZ1Rva2VucyhhZG9w
dFB0cihuZXcgQ29tcGFjdEhUTUxUb2tlblN0cmVhbSkpCkBAIC04OCw2ICs4OCw3IEBAIHZvaWQg
QmFja2dyb3VuZEhUTUxQYXJzZXI6OnJlc3VtZUZyb20oUGFzc093blB0cjxDaGVja3BvaW50PiBj
aGVja3BvaW50KQogICAgIG1fcGFyc2VyID0gY2hlY2twb2ludC0+cGFyc2VyOwogICAgIG1fdG9r
ZW4gPSBjaGVja3BvaW50LT50b2tlbi5yZWxlYXNlKCk7CiAgICAgbV90b2tlbml6ZXIgPSBjaGVj
a3BvaW50LT50b2tlbml6ZXIucmVsZWFzZSgpOworICAgIG1fdHJlZUJ1aWxkZXIgPSBjaGVja3Bv
aW50LT50cmVlQnVpbGRlci5yZWxlYXNlKCk7CiAgICAgbV9pbnB1dC5yZXdpbmRUbyhjaGVja3Bv
aW50LT5pbnB1dENoZWNrcG9pbnQsIGNoZWNrcG9pbnQtPnVucGFyc2VkSW5wdXQpOwogICAgIG1f
cHJlbG9hZFNjYW5uZXItPnJld2luZFRvKGNoZWNrcG9pbnQtPnByZWxvYWRTY2FubmVyQ2hlY2tw
b2ludCk7CiAgICAgcHVtcFRva2VuaXplcigpOwpAQCAtMTUxLDcgKzE1Miw3IEBAIHZvaWQgQmFj
a2dyb3VuZEhUTUxQYXJzZXI6OnB1bXBUb2tlbml6ZXIoKQogCiAgICAgICAgIG1fdG9rZW4tPmNs
ZWFyKCk7CiAKLSAgICAgICAgaWYgKCFtX3RyZWVCdWlsZGVyU2ltdWxhdG9yLnNpbXVsYXRlKG1f
cGVuZGluZ1Rva2Vucy0+bGFzdCgpLCBtX3Rva2VuaXplci5nZXQoKSkgfHwgbV9wZW5kaW5nVG9r
ZW5zLT5zaXplKCkgPj0gcGVuZGluZ1Rva2VuTGltaXQpCisgICAgICAgIGlmICghbV90cmVlQnVp
bGRlci0+c2ltdWxhdGUobV9wZW5kaW5nVG9rZW5zLT5sYXN0KCksIG1fdG9rZW5pemVyLmdldCgp
KSB8fCBtX3BlbmRpbmdUb2tlbnMtPnNpemUoKSA+PSBwZW5kaW5nVG9rZW5MaW1pdCkKICAgICAg
ICAgICAgIHNlbmRUb2tlbnNUb01haW5UaHJlYWQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oCmluZGV4IGFhNjBiMDlj
NDc3ZTNiNGYxMGFkODE1NmZlYjYyYzkyZDQ0ZTk3ODguLmNlYzk3OTg0ZjdiZTJkMjRlNzY0YzA3
ODY4NmU2YWM0NDg3N2EwOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0JhY2tncm91bmRIVE1MUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
QmFja2dyb3VuZEhUTUxQYXJzZXIuaApAQCAtNjcsNiArNjcsNyBAQCBwdWJsaWM6CiAgICAgICAg
IFdlYWtQdHI8SFRNTERvY3VtZW50UGFyc2VyPiBwYXJzZXI7CiAgICAgICAgIE93blB0cjxIVE1M
VG9rZW4+IHRva2VuOwogICAgICAgICBPd25QdHI8SFRNTFRva2VuaXplcj4gdG9rZW5pemVyOwor
ICAgICAgICBPd25QdHI8SFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yPiB0cmVlQnVpbGRlcjsKICAg
ICAgICAgSFRNTElucHV0Q2hlY2twb2ludCBpbnB1dENoZWNrcG9pbnQ7CiAgICAgICAgIFRva2Vu
UHJlbG9hZFNjYW5uZXJDaGVja3BvaW50IHByZWxvYWRTY2FubmVyQ2hlY2twb2ludDsKICAgICAg
ICAgU3RyaW5nIHVucGFyc2VkSW5wdXQ7CkBAIC05MCw5ICs5MSw5IEBAIHByaXZhdGU6CiAgICAg
V2Vha1B0ckZhY3Rvcnk8QmFja2dyb3VuZEhUTUxQYXJzZXI+IG1fd2Vha0ZhY3Rvcnk7CiAgICAg
QmFja2dyb3VuZEhUTUxJbnB1dFN0cmVhbSBtX2lucHV0OwogICAgIEhUTUxTb3VyY2VUcmFja2Vy
IG1fc291cmNlVHJhY2tlcjsKLSAgICBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3IgbV90cmVlQnVp
bGRlclNpbXVsYXRvcjsKICAgICBPd25QdHI8SFRNTFRva2VuPiBtX3Rva2VuOwogICAgIE93blB0
cjxIVE1MVG9rZW5pemVyPiBtX3Rva2VuaXplcjsKKyAgICBPd25QdHI8SFRNTFRyZWVCdWlsZGVy
U2ltdWxhdG9yPiBtX3RyZWVCdWlsZGVyOwogICAgIEhUTUxQYXJzZXJPcHRpb25zIG1fb3B0aW9u
czsKICAgICBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gbV9wYXJzZXI7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDI2
M2M0ZWY3ZmExNDBjODVkYjYzZWY3YWQwYjQwNDQ1MGU3NDJmZGUuLmIwMWJmYTcxZjVlMjY0Zjdl
NTBkMDk4MDg2OTUzMjc0OWE0YjkyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMzcxLDYgKzM3MSw3IEBAIHZvaWQgSFRN
TERvY3VtZW50UGFyc2VyOjpkaWRGYWlsU3BlY3VsYXRpb24oUGFzc093blB0cjxIVE1MVG9rZW4+
IHRva2VuLCBQYXNzT3duCiAgICAgY2hlY2twb2ludC0+cGFyc2VyID0gbV93ZWFrRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCk7CiAgICAgY2hlY2twb2ludC0+dG9rZW4gPSB0b2tlbjsKICAgICBjaGVj
a3BvaW50LT50b2tlbml6ZXIgPSB0b2tlbml6ZXI7CisgICAgY2hlY2twb2ludC0+dHJlZUJ1aWxk
ZXIgPSBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3I6OmNyZWF0ZShtX3RyZWVCdWlsZGVyLmdldCgp
KTsKICAgICBjaGVja3BvaW50LT5pbnB1dENoZWNrcG9pbnQgPSBtX2N1cnJlbnRDaHVuay0+aW5w
dXRDaGVja3BvaW50OwogICAgIGNoZWNrcG9pbnQtPnByZWxvYWRTY2FubmVyQ2hlY2twb2ludCA9
IG1fY3VycmVudENodW5rLT5wcmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQ7CiAgICAgY2hlY2twb2lu
dC0+dW5wYXJzZWRJbnB1dCA9IG1faW5wdXQuY3VycmVudCgpLnRvU3RyaW5nKCkuaXNvbGF0ZWRD
b3B5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVu
dFN0YWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgK
aW5kZXggMmMwZGIxMzRhMGQyNTUzOTc2ZjBkZjlhZWVmM2EwZGJkODYwYzljNy4uMGIzMTkyODg3
OTc2OGM2ZmZhMWJiYWIwNTBiNmY3NTE5MTdhNjgzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2l0ZW0tPmVs
ZW1lbnQoKTsgfQogICAgICAgICBDb250YWluZXJOb2RlKiBub2RlKCkgY29uc3QgeyByZXR1cm4g
bV9pdGVtLT5ub2RlKCk7IH0KKyAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VV
UkkoKSBjb25zdCB7IHJldHVybiBtX2l0ZW0tPm5hbWVzcGFjZVVSSSgpOyB9CiAgICAgICAgIFBh
c3NSZWZQdHI8SFRNTFN0YWNrSXRlbT4gc3RhY2tJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9pdGVt
OyB9CiAgICAgICAgIHZvaWQgcmVwbGFjZUVsZW1lbnQoUGFzc1JlZlB0cjxIVE1MU3RhY2tJdGVt
Pik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKaW5k
ZXggN2RiYzg5YzU0Y2Y2YTBhMjk5Mzk4Yjk1ZTg3YjcyMjcyODk1MGIwNi4uZDZmNjViMzNjMzQ2
NTJlYjkwODA4ZThmNTIwMGE5NTFkNTE3MGNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKQEAgLTY4LDYgKzY4LDkgQEAgcHVibGljOgogICAgIH0K
ICAgICB+SFRNTFRyZWVCdWlsZGVyKCk7CiAKKyAgICBjb25zdCBIVE1MUGFyc2VyT3B0aW9ucyYg
b3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQorICAgIEhUTUxFbGVtZW50U3Rh
Y2sqIG9wZW5FbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdHJlZS5vcGVuRWxlbWVudHMoKTsg
fQorCiAgICAgYm9vbCBpc1BhcnNpbmdGcmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuICEhbV9mcmFn
bWVudENvbnRleHQuZnJhZ21lbnQoKTsgfQogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQog
ICAgIGJvb2wgaXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdHJl
ZS5vcGVuRWxlbWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yLmNw
cAppbmRleCA5MzQ5MTU0NTc1ODY5OTJkMzk5NzkwOGRmNWM1ZGYxMGZkYmEzMzJlLi42NzE2MGJj
MmI4NzliYjVkMTM1YjZkMjVjMjY3NWJhODkxYWU0NDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVsYXRvci5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2Vy
SWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgorI2luY2x1ZGUgIkhUTUxUcmVl
QnVpbGRlci5oIgogI2luY2x1ZGUgIk1hdGhNTE5hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMu
aCIKIApAQCAtMTE3LDYgKzExOCwyMyBAQCBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3I6OkhUTUxU
cmVlQnVpbGRlclNpbXVsYXRvcihjb25zdCBIVE1MUGFyc2VyT3B0aW9ucyYgb3B0aQogICAgIG1f
bmFtZXNwYWNlU3RhY2suYXBwZW5kKEhUTUwpOwogfQogCitIVE1MVHJlZUJ1aWxkZXJTaW11bGF0
b3I6OkhUTUxUcmVlQnVpbGRlclNpbXVsYXRvcihIVE1MVHJlZUJ1aWxkZXIqIHRyZWVCdWlsZGVy
KQorICAgIDogbV9vcHRpb25zKHRyZWVCdWlsZGVyLT5vcHRpb25zKCkpCit7CisgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBmb3IgKEhUTUxFbGVtZW50U3RhY2s6OkVsZW1lbnRSZWNv
cmQqIHJlY29yZCA9IHRyZWVCdWlsZGVyLT5vcGVuRWxlbWVudHMoKS0+dG9wUmVjb3JkKCk7IHJl
Y29yZDsgcmVjb3JkID0gcmVjb3JkLT5uZXh0KCkpIHsKKyAgICAgICAgTmFtZXNwYWNlIGN1cnJl
bnROYW1lc3BhY2UgPSBIVE1MOworICAgICAgICBpZiAocmVjb3JkLT5uYW1lc3BhY2VVUkkoKSA9
PSBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJKQorICAgICAgICAgICAgY3VycmVudE5hbWVzcGFj
ZSA9IFNWRzsKKyAgICAgICAgZWxzZSBpZiAocmVjb3JkLT5uYW1lc3BhY2VVUkkoKSA9PSBNYXRo
TUxOYW1lczo6bWF0aG1sTmFtZXNwYWNlVVJJKQorICAgICAgICAgICAgY3VycmVudE5hbWVzcGFj
ZSA9IE1hdGhNTDsKKworICAgICAgICBpZiAobV9uYW1lc3BhY2VTdGFjay5pc0VtcHR5KCkgfHwg
bV9uYW1lc3BhY2VTdGFjay5sYXN0KCkgIT0gY3VycmVudE5hbWVzcGFjZSkKKyAgICAgICAgICAg
IG1fbmFtZXNwYWNlU3RhY2suYXBwZW5kKGN1cnJlbnROYW1lc3BhY2UpOworICAgIH0KKyAgICBt
X25hbWVzcGFjZVN0YWNrLnJldmVyc2UoKTsKK30KKwogYm9vbCBIVE1MVHJlZUJ1aWxkZXJTaW11
bGF0b3I6OnNpbXVsYXRlKGNvbnN0IENvbXBhY3RIVE1MVG9rZW4mIHRva2VuLCBIVE1MVG9rZW5p
emVyKiB0b2tlbml6ZXIpCiB7CiAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW46OlN0
YXJ0VGFnKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXJTaW11bGF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVl
QnVpbGRlclNpbXVsYXRvci5oCmluZGV4IGY2NjI3OWMyMDMyOWZhNjE4ZjNiYjkwZDEyMmIwNDI5
YTdiOWZmMDkuLjhmNWY4YjdjOTQxOGI4MTkzNDk2YzViNTY3MWU2YjU4ZWUxMzRkNGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVsYXRv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVs
YXRvci5oCkBAIC0yOSwyMCArMjksMzMgQEAKICNpZiBFTkFCTEUoVEhSRUFERURfSFRNTF9QQVJT
RVIpCiAKICNpbmNsdWRlICJIVE1MUGFyc2VyT3B0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENvbXBhY3RIVE1MVG9rZW47CiBjbGFzcyBIVE1MVG9rZW5pemVyOworY2xhc3Mg
SFRNTFRyZWVCdWlsZGVyOwogCiBjbGFzcyBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3IgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IEhUTUxUcmVl
QnVpbGRlclNpbXVsYXRvcihjb25zdCBIVE1MUGFyc2VyT3B0aW9ucyYpOworICAgIHN0YXRpYyBQ
YXNzT3duUHRyPEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvcj4gY3JlYXRlKGNvbnN0IEhUTUxQYXJz
ZXJPcHRpb25zJiBvcHRpb25zKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBI
VE1MVHJlZUJ1aWxkZXJTaW11bGF0b3Iob3B0aW9ucykpOworICAgIH0KKyAgICBzdGF0aWMgUGFz
c093blB0cjxIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3I+IGNyZWF0ZShIVE1MVHJlZUJ1aWxkZXIq
IHRyZWVCdWlsZGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBIVE1MVHJl
ZUJ1aWxkZXJTaW11bGF0b3IodHJlZUJ1aWxkZXIpKTsKKyAgICB9CisKICAgICBib29sIHNpbXVs
YXRlKGNvbnN0IENvbXBhY3RIVE1MVG9rZW4mLCBIVE1MVG9rZW5pemVyKik7CiAKIHByaXZhdGU6
CisgICAgZXhwbGljaXQgSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yKGNvbnN0IEhUTUxQYXJzZXJP
cHRpb25zJik7CisgICAgZXhwbGljaXQgSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yKEhUTUxUcmVl
QnVpbGRlciopOworCiAgICAgZW51bSBOYW1lc3BhY2UgewogICAgICAgICBIVE1MLAogICAgICAg
ICBTVkcsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9kb2N1bWVudC13cml0
ZS1zdmctY2RhdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvZG9jdW1l
bnQtd3JpdGUtc3ZnLWNkYXRhLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDZiMjYzZjllNjM0
MWI3YmEyMTYyMzg5ZWE3NDFjNmMxNjA0MTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9wYXJzZXIvZG9jdW1lbnQtd3JpdGUtc3ZnLWNkYXRhLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE5IEBACit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlwdD4KK3wgICAg
ICAgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiCit8ICAgICAiCisiCit8
ICAgICA8c2NyaXB0PgorfCAgICAgICAiCitkb2N1bWVudC53cml0ZSgiPHN2Zz4iKTsKKyIKK3wg
ICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAiCisiCit8ICAgICAgIDwhLS0gW0NE
QVRBWworVGhpcyBzaG91bGQgPHN0cm9uZyAtLT4KK3wgICAgICAgIm5vdCBiZSBib2xkIQorXV0+
CisiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9kb2N1bWVudC13cml0ZS1z
dmctY2RhdGEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2RvY3VtZW50LXdyaXRlLXN2
Zy1jZGF0YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzYzA4NGI5YjkzMTFiMzRiYmRmYWIxMDJmOGQ4YTRi
OWFhYjAwOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9kb2N1
bWVudC13cml0ZS1zdmctY2RhdGEuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rv
Y3VtZW50LndyaXRlKCI8c3ZnPiIpOworPC9zY3JpcHQ+Cis8IVtDREFUQVsKK1RoaXMgc2hvdWxk
IDxzdHJvbmc+bm90PC9zdHJvbmc+IGJlIGJvbGQhCitdXT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192576</attachid>
            <date>2013-03-11 15:29:54 -0700</date>
            <delta_ts>2013-03-11 15:34:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109764-20130311152554.patch</filename>
            <type>text/plain</type>
            <size>14207</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1Mzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RkZjQ5YjEyMWNjYTg4
YTQ2ZTVjNWM4MWM5MTQxNzEyNWU2NjNhYS4uYjFiYWRkY2E5MDEyZjAxMTY5NGE1YWQ1ODlhZmY4
ZGU3ODJlYjk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ3IEBACiAyMDEzLTAzLTExICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgTWFrZSBCYWNrZ3JvdW5kSFRN
TFBhcnNlciB3b3JrIHdpdGggZG9jLndyaXRlcyB0aGF0IGVudGVyIG9yIGxlYXZlIGZvcmVpZ24g
Y29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UHJldmlvdXNseSwgd2Ugd2VyZSBub3QgcmVzZXRpbmcgdGhlIHN0YXRlIG9mIHRoZQorICAgICAg
ICBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3Igd2hlbiB3ZSBmYWlsZWQgc3BlY3VsYXRpdmUgcGFy
c2luZy4gVGhpcyBoYWQgYQorICAgICAgICBudW1iZXIgb2Ygb2JzZXJ2YWJsZSBjb25zZXF1ZW5j
ZXMsIGluY2x1ZGluZyBub3QgcGFyc2luZyBDREFUQSBzZWN0aW9ucworICAgICAgICBjb3JyZWN0
bHkgd2hlbiBkb2N1bWVudC53cml0ZSBjYXVzZWQgdXMgdG8gZW50ZXIgZm9yZWlnbiBjb250ZW50
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvcGFyc2VyL2RvY3VtZW50LXdyaXRlLXN2Zy1jZGF0YS5o
dG1sCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6QmFja2dyb3VuZEhUTUxQYXJz
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OnJlc3VtZUZyb20p
OgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OnB1bXBUb2tlbml6ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OnNlbmRUb2tlbnNUb01h
aW5UaHJlYWQpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmg6
CisgICAgICAgIChDaGVja3BvaW50KToKKyAgICAgICAgKEJhY2tncm91bmRIVE1MUGFyc2VyKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjp2YWxpZGF0ZVNwZWN1bGF0aW9ucyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OmRpZEZhaWxTcGVjdWxhdGlvbik6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChQYXJz
ZWRDaHVuayk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZDo6bmFtZXNwYWNl
VVJJKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVHJlZUJ1aWxkZXI6Om9wZW5FbGVtZW50cyk6CisgICAgICAgIChIVE1MVHJlZUJ1aWxkZXIp
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVsYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3I6OnN0YXRlRm9yKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNp
bXVsYXRvci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJl
ZUJ1aWxkZXJTaW11bGF0b3I6OnN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVp
bGRlclNpbXVsYXRvcjo6c2V0U3RhdGUpOgorICAgICAgICAoSFRNTFRyZWVCdWlsZGVyU2ltdWxh
dG9yKToKKworMjAxMy0wMy0xMSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAg
ICAgICAgIEZhY3RvciBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3Igb3V0IG9mIEJhY2tncm91bmRI
VE1MUGFyc2VyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTIwNTcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dy
b3VuZEhUTUxQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3Vu
ZEhUTUxQYXJzZXIuY3BwCmluZGV4IDU5ZGMyZjRlM2Q2NzIyNWFkMDY1YzYzMGIwYmZkMGJlMTQw
ZWZkY2MuLjNhMzY2YmZiNWI3Y2Q1ZjZkYjc1YzFmNGM0ZGZjNmJhOGZjNjQ0Y2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAK
QEAgLTY1LDkgKzY1LDkgQEAgc3RhdGljIGNvbnN0IHNpemVfdCBwZW5kaW5nVG9rZW5MaW1pdCA9
IDEwMDA7CiAKIEJhY2tncm91bmRIVE1MUGFyc2VyOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcihQYXNz
UmVmUHRyPFdlYWtSZWZlcmVuY2U8QmFja2dyb3VuZEhUTUxQYXJzZXI+ID4gcmVmZXJlbmNlLCBQ
YXNzT3duUHRyPENvbmZpZ3VyYXRpb24+IGNvbmZpZykKICAgICA6IG1fd2Vha0ZhY3RvcnkocmVm
ZXJlbmNlLCB0aGlzKQotICAgICwgbV90cmVlQnVpbGRlclNpbXVsYXRvcihjb25maWctPm9wdGlv
bnMpCiAgICAgLCBtX3Rva2VuKGFkb3B0UHRyKG5ldyBIVE1MVG9rZW4pKQogICAgICwgbV90b2tl
bml6ZXIoSFRNTFRva2VuaXplcjo6Y3JlYXRlKGNvbmZpZy0+b3B0aW9ucykpCisgICAgLCBtX3Ry
ZWVCdWlsZGVyKGNvbmZpZy0+b3B0aW9ucykKICAgICAsIG1fb3B0aW9ucyhjb25maWctPm9wdGlv
bnMpCiAgICAgLCBtX3BhcnNlcihjb25maWctPnBhcnNlcikKICAgICAsIG1fcGVuZGluZ1Rva2Vu
cyhhZG9wdFB0cihuZXcgQ29tcGFjdEhUTUxUb2tlblN0cmVhbSkpCkBAIC04OCw2ICs4OCw3IEBA
IHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnJlc3VtZUZyb20oUGFzc093blB0cjxDaGVja3Bv
aW50PiBjaGVja3BvaW50KQogICAgIG1fcGFyc2VyID0gY2hlY2twb2ludC0+cGFyc2VyOwogICAg
IG1fdG9rZW4gPSBjaGVja3BvaW50LT50b2tlbi5yZWxlYXNlKCk7CiAgICAgbV90b2tlbml6ZXIg
PSBjaGVja3BvaW50LT50b2tlbml6ZXIucmVsZWFzZSgpOworICAgIG1fdHJlZUJ1aWxkZXIuc2V0
U3RhdGUoY2hlY2twb2ludC0+dHJlZUJ1aWxkZXJTdGF0ZSk7CiAgICAgbV9pbnB1dC5yZXdpbmRU
byhjaGVja3BvaW50LT5pbnB1dENoZWNrcG9pbnQsIGNoZWNrcG9pbnQtPnVucGFyc2VkSW5wdXQp
OwogICAgIG1fcHJlbG9hZFNjYW5uZXItPnJld2luZFRvKGNoZWNrcG9pbnQtPnByZWxvYWRTY2Fu
bmVyQ2hlY2twb2ludCk7CiAgICAgcHVtcFRva2VuaXplcigpOwpAQCAtMTUxLDcgKzE1Miw3IEBA
IHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnB1bXBUb2tlbml6ZXIoKQogCiAgICAgICAgIG1f
dG9rZW4tPmNsZWFyKCk7CiAKLSAgICAgICAgaWYgKCFtX3RyZWVCdWlsZGVyU2ltdWxhdG9yLnNp
bXVsYXRlKG1fcGVuZGluZ1Rva2Vucy0+bGFzdCgpLCBtX3Rva2VuaXplci5nZXQoKSkgfHwgbV9w
ZW5kaW5nVG9rZW5zLT5zaXplKCkgPj0gcGVuZGluZ1Rva2VuTGltaXQpCisgICAgICAgIGlmICgh
bV90cmVlQnVpbGRlci5zaW11bGF0ZShtX3BlbmRpbmdUb2tlbnMtPmxhc3QoKSwgbV90b2tlbml6
ZXIuZ2V0KCkpIHx8IG1fcGVuZGluZ1Rva2Vucy0+c2l6ZSgpID49IHBlbmRpbmdUb2tlbkxpbWl0
KQogICAgICAgICAgICAgc2VuZFRva2Vuc1RvTWFpblRocmVhZCgpOwogICAgIH0KIApAQCAtMTc0
LDYgKzE3NSw3IEBAIHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnNlbmRUb2tlbnNUb01haW5U
aHJlYWQoKQogICAgIGNodW5rLT5wcmVsb2Fkcy5zd2FwKG1fcGVuZGluZ1ByZWxvYWRzKTsKICAg
ICBjaHVuay0+eHNzSW5mb3Muc3dhcChtX3BlbmRpbmdYU1NJbmZvcyk7CiAgICAgY2h1bmstPnRv
a2VuaXplclN0YXRlID0gbV90b2tlbml6ZXItPnN0YXRlKCk7CisgICAgY2h1bmstPnRyZWVCdWls
ZGVyU3RhdGUgPSBtX3RyZWVCdWlsZGVyLnN0YXRlKCk7CiAgICAgY2h1bmstPmlucHV0Q2hlY2tw
b2ludCA9IG1faW5wdXQuY3JlYXRlQ2hlY2twb2ludCgpOwogICAgIGNodW5rLT5wcmVsb2FkU2Nh
bm5lckNoZWNrcG9pbnQgPSBtX3ByZWxvYWRTY2FubmVyLT5jcmVhdGVDaGVja3BvaW50KCk7CiAg
ICAgY2FsbE9uTWFpblRocmVhZChiaW5kKCZIVE1MRG9jdW1lbnRQYXJzZXI6OmRpZFJlY2VpdmVQ
YXJzZWRDaHVua0Zyb21CYWNrZ3JvdW5kUGFyc2VyLCBtX3BhcnNlciwgY2h1bmsucmVsZWFzZSgp
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRN
TFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJz
ZXIuaAppbmRleCBhYTYwYjA5YzQ3N2UzYjRmMTBhZDgxNTZmZWI2MmM5MmQ0NGU5Nzg4Li5jM2I5
YmJmODQ1MDVjY2YyN2FhZDRiY2M5MThmOWVlYjRlMjdkNTdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmgKQEAgLTY3LDYgKzY3LDcg
QEAgcHVibGljOgogICAgICAgICBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gcGFyc2VyOwog
ICAgICAgICBPd25QdHI8SFRNTFRva2VuPiB0b2tlbjsKICAgICAgICAgT3duUHRyPEhUTUxUb2tl
bml6ZXI+IHRva2VuaXplcjsKKyAgICAgICAgSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yOjpTdGF0
ZSB0cmVlQnVpbGRlclN0YXRlOwogICAgICAgICBIVE1MSW5wdXRDaGVja3BvaW50IGlucHV0Q2hl
Y2twb2ludDsKICAgICAgICAgVG9rZW5QcmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQgcHJlbG9hZFNj
YW5uZXJDaGVja3BvaW50OwogICAgICAgICBTdHJpbmcgdW5wYXJzZWRJbnB1dDsKQEAgLTkwLDkg
KzkxLDkgQEAgcHJpdmF0ZToKICAgICBXZWFrUHRyRmFjdG9yeTxCYWNrZ3JvdW5kSFRNTFBhcnNl
cj4gbV93ZWFrRmFjdG9yeTsKICAgICBCYWNrZ3JvdW5kSFRNTElucHV0U3RyZWFtIG1faW5wdXQ7
CiAgICAgSFRNTFNvdXJjZVRyYWNrZXIgbV9zb3VyY2VUcmFja2VyOwotICAgIEhUTUxUcmVlQnVp
bGRlclNpbXVsYXRvciBtX3RyZWVCdWlsZGVyU2ltdWxhdG9yOwogICAgIE93blB0cjxIVE1MVG9r
ZW4+IG1fdG9rZW47CiAgICAgT3duUHRyPEhUTUxUb2tlbml6ZXI+IG1fdG9rZW5pemVyOworICAg
IEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvciBtX3RyZWVCdWlsZGVyOwogICAgIEhUTUxQYXJzZXJP
cHRpb25zIG1fb3B0aW9uczsKICAgICBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gbV9wYXJz
ZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVu
dFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJz
ZXIuY3BwCmluZGV4IDI2M2M0ZWY3ZmExNDBjODVkYjYzZWY3YWQwYjQwNDQ1MGU3NDJmZGUuLjk2
N2QxZDU0ZDMzYjIxMzJhNzk1MDg0ODJiZTFjNjdiM2QwYzExZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMzU0LDcgKzM1
NCw4IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjp2YWxpZGF0ZVNwZWN1bGF0aW9ucygpCiAg
ICAgLy8gc29waGlzdGljYXRlZCB3aXRoIHRoZSBIVE1MVG9rZW4uCiAgICAgaWYgKG1fY3VycmVu
dENodW5rLT50b2tlbml6ZXJTdGF0ZSA9PSBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUKICAgICAg
ICAgJiYgdG9rZW5pemVyLT5zdGF0ZSgpID09IEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZQotICAg
ICAgICAmJiBtX2lucHV0LmN1cnJlbnQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgJiYgbV9pbnB1
dC5jdXJyZW50KCkuaXNFbXB0eSgpCisgICAgICAgICYmIG1fY3VycmVudENodW5rLT50cmVlQnVp
bGRlclN0YXRlID09IEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvcjo6c3RhdGVGb3IobV90cmVlQnVp
bGRlci5nZXQoKSkpIHsKICAgICAgICAgQVNTRVJUKHRva2VuLT5pc1VuaW5pdGlhbGl6ZWQoKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNzEsNiArMzcyLDcgQEAgdm9pZCBIVE1MRG9j
dW1lbnRQYXJzZXI6OmRpZEZhaWxTcGVjdWxhdGlvbihQYXNzT3duUHRyPEhUTUxUb2tlbj4gdG9r
ZW4sIFBhc3NPd24KICAgICBjaGVja3BvaW50LT5wYXJzZXIgPSBtX3dlYWtGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKTsKICAgICBjaGVja3BvaW50LT50b2tlbiA9IHRva2VuOwogICAgIGNoZWNrcG9p
bnQtPnRva2VuaXplciA9IHRva2VuaXplcjsKKyAgICBjaGVja3BvaW50LT50cmVlQnVpbGRlclN0
YXRlID0gSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yOjpzdGF0ZUZvcihtX3RyZWVCdWlsZGVyLmdl
dCgpKTsKICAgICBjaGVja3BvaW50LT5pbnB1dENoZWNrcG9pbnQgPSBtX2N1cnJlbnRDaHVuay0+
aW5wdXRDaGVja3BvaW50OwogICAgIGNoZWNrcG9pbnQtPnByZWxvYWRTY2FubmVyQ2hlY2twb2lu
dCA9IG1fY3VycmVudENodW5rLT5wcmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQ7CiAgICAgY2hlY2tw
b2ludC0+dW5wYXJzZWRJbnB1dCA9IG1faW5wdXQuY3VycmVudCgpLnRvU3RyaW5nKCkuaXNvbGF0
ZWRDb3B5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9j
dW1lbnRQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBh
cnNlci5oCmluZGV4IDliM2M4MzNjN2FjMzNmMTAxN2UwNGI5ZTgzMWJmODBhMGM2M2E3NzguLjYx
MDA0ZTI3N2U4NDc3MDIzZGFiNTMzMDZmNTYxNzJiNWU5ZDJjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiSFRNTFNvdXJjZVRyYWNrZXIuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIK
ICNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCisjaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyU2lt
dWxhdG9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVk
ZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTkxLDYgKzkyLDcg
QEAgcHVibGljOgogICAgICAgICBQcmVsb2FkUmVxdWVzdFN0cmVhbSBwcmVsb2FkczsKICAgICAg
ICAgWFNTSW5mb1N0cmVhbSB4c3NJbmZvczsKICAgICAgICAgSFRNTFRva2VuaXplcjo6U3RhdGUg
dG9rZW5pemVyU3RhdGU7CisgICAgICAgIEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvcjo6U3RhdGUg
dHJlZUJ1aWxkZXJTdGF0ZTsKICAgICAgICAgSFRNTElucHV0Q2hlY2twb2ludCBpbnB1dENoZWNr
cG9pbnQ7CiAgICAgICAgIFRva2VuUHJlbG9hZFNjYW5uZXJDaGVja3BvaW50IHByZWxvYWRTY2Fu
bmVyQ2hlY2twb2ludDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TEVsZW1lbnRTdGFjay5oCmluZGV4IDJjMGRiMTM0YTBkMjU1Mzk3NmYwZGY5YWVlZjNhMGRiZDg2
MGM5YzcuLjBiMzE5Mjg4Nzk3NjhjNmZmYTFiYmFiMDUwYjZmNzUxOTE3YTY4MzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKQEAgLTU3LDYgKzU3
LDcgQEAgcHVibGljOgogICAgIAogICAgICAgICBFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9pdGVtLT5lbGVtZW50KCk7IH0KICAgICAgICAgQ29udGFpbmVyTm9kZSogbm9kZSgp
IGNvbnN0IHsgcmV0dXJuIG1faXRlbS0+bm9kZSgpOyB9CisgICAgICAgIGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZXNwYWNlVVJJKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtLT5uYW1lc3BhY2VVUkko
KTsgfQogICAgICAgICBQYXNzUmVmUHRyPEhUTUxTdGFja0l0ZW0+IHN0YWNrSXRlbSgpIGNvbnN0
IHsgcmV0dXJuIG1faXRlbTsgfQogICAgICAgICB2b2lkIHJlcGxhY2VFbGVtZW50KFBhc3NSZWZQ
dHI8SFRNTFN0YWNrSXRlbT4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
cmVlQnVpbGRlci5oCmluZGV4IDdkYmM4OWM1NGNmNmEwYTI5OTM5OGI5NWU4N2I3MjI3Mjg5NTBi
MDYuLmQ2ZjY1YjMzYzM0NjUyZWI5MDgwOGU4ZjUyMDBhOTUxZDUxNzBjYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCkBAIC02OCw2ICs2OCw5IEBA
IHB1YmxpYzoKICAgICB9CiAgICAgfkhUTUxUcmVlQnVpbGRlcigpOwogCisgICAgY29uc3QgSFRN
TFBhcnNlck9wdGlvbnMmIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7IH0KKyAg
ICBIVE1MRWxlbWVudFN0YWNrKiBvcGVuRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX3RyZWUu
b3BlbkVsZW1lbnRzKCk7IH0KKwogICAgIGJvb2wgaXNQYXJzaW5nRnJhZ21lbnQoKSBjb25zdCB7
IHJldHVybiAhIW1fZnJhZ21lbnRDb250ZXh0LmZyYWdtZW50KCk7IH0KICNpZiBFTkFCTEUoVEVN
UExBVEVfRUxFTUVOVCkKICAgICBib29sIGlzUGFyc2luZ1RlbXBsYXRlQ29udGVudHMoKSBjb25z
dCB7IHJldHVybiBtX3RyZWUub3BlbkVsZW1lbnRzKCktPmhhc1RlbXBsYXRlSW5IVE1MU2NvcGUo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyU2ltdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlclNpbXVsYXRvci5jcHAKaW5kZXggOTM0OTE1NDU3NTg2OTkyZDM5OTc5MDhkZjVjNWRmMTBm
ZGJhMzMyZS4uMDk2MDc5MDEwNzliMDZhZjMxMjMyNzEyYTAyYzI2MTAxYzM1NTFkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXJTaW11
bGF0b3IuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5j
bHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKKyNp
bmNsdWRlICJIVE1MVHJlZUJ1aWxkZXIuaCIKICNpbmNsdWRlICJNYXRoTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgIlNWR05hbWVzLmgiCiAKQEAgLTExNyw2ICsxMTgsMjQgQEAgSFRNTFRyZWVCdWlsZGVy
U2ltdWxhdG9yOjpIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3IoY29uc3QgSFRNTFBhcnNlck9wdGlv
bnMmIG9wdGkKICAgICBtX25hbWVzcGFjZVN0YWNrLmFwcGVuZChIVE1MKTsKIH0KIAorSFRNTFRy
ZWVCdWlsZGVyU2ltdWxhdG9yOjpTdGF0ZSBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3I6OnN0YXRl
Rm9yKEhUTUxUcmVlQnVpbGRlciogdHJlZUJ1aWxkZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICBTdGF0ZSBuYW1lc3BhY2VTdGFjazsKKyAgICBmb3IgKEhUTUxFbGVtZW50
U3RhY2s6OkVsZW1lbnRSZWNvcmQqIHJlY29yZCA9IHRyZWVCdWlsZGVyLT5vcGVuRWxlbWVudHMo
KS0+dG9wUmVjb3JkKCk7IHJlY29yZDsgcmVjb3JkID0gcmVjb3JkLT5uZXh0KCkpIHsKKyAgICAg
ICAgTmFtZXNwYWNlIGN1cnJlbnROYW1lc3BhY2UgPSBIVE1MOworICAgICAgICBpZiAocmVjb3Jk
LT5uYW1lc3BhY2VVUkkoKSA9PSBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJKQorICAgICAgICAg
ICAgY3VycmVudE5hbWVzcGFjZSA9IFNWRzsKKyAgICAgICAgZWxzZSBpZiAocmVjb3JkLT5uYW1l
c3BhY2VVUkkoKSA9PSBNYXRoTUxOYW1lczo6bWF0aG1sTmFtZXNwYWNlVVJJKQorICAgICAgICAg
ICAgY3VycmVudE5hbWVzcGFjZSA9IE1hdGhNTDsKKworICAgICAgICBpZiAobmFtZXNwYWNlU3Rh
Y2suaXNFbXB0eSgpIHx8IG5hbWVzcGFjZVN0YWNrLmxhc3QoKSAhPSBjdXJyZW50TmFtZXNwYWNl
KQorICAgICAgICAgICAgbmFtZXNwYWNlU3RhY2suYXBwZW5kKGN1cnJlbnROYW1lc3BhY2UpOwor
ICAgIH0KKyAgICBuYW1lc3BhY2VTdGFjay5yZXZlcnNlKCk7CisgICAgcmV0dXJuIG5hbWVzcGFj
ZVN0YWNrOworfQorCiBib29sIEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvcjo6c2ltdWxhdGUoY29u
c3QgQ29tcGFjdEhUTUxUb2tlbiYgdG9rZW4sIEhUTUxUb2tlbml6ZXIqIHRva2VuaXplcikKIHsK
ICAgICBpZiAodG9rZW4udHlwZSgpID09IEhUTUxUb2tlbjo6U3RhcnRUYWcpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVsYXRvci5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yLmgK
aW5kZXggZjY2Mjc5YzIwMzI5ZmE2MThmM2JiOTBkMTIyYjA0MjlhN2I5ZmYwOS4uMzExYzY2ZWMy
NjMwM2JhOGQ5ZmY5ZGZmZjM3YjBhN2JiNGMxMzRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yLmgKQEAgLTI5LDE5ICsy
OSwxNyBAQAogI2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKIAogI2luY2x1ZGUgIkhU
TUxQYXJzZXJPcHRpb25zLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29tcGFjdEhU
TUxUb2tlbjsKIGNsYXNzIEhUTUxUb2tlbml6ZXI7CitjbGFzcyBIVE1MVHJlZUJ1aWxkZXI7CiAK
IGNsYXNzIEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yKGNv
bnN0IEhUTUxQYXJzZXJPcHRpb25zJik7Ci0gICAgYm9vbCBzaW11bGF0ZShjb25zdCBDb21wYWN0
SFRNTFRva2VuJiwgSFRNTFRva2VuaXplciopOwotCiBwcml2YXRlOgogICAgIGVudW0gTmFtZXNw
YWNlIHsKICAgICAgICAgSFRNTCwKQEAgLTQ5LDEwICs0NywyNSBAQCBwcml2YXRlOgogICAgICAg
ICBNYXRoTUwKICAgICB9OwogCitwdWJsaWM6CisgICAgdHlwZWRlZiBWZWN0b3I8TmFtZXNwYWNl
LCAxPiBTdGF0ZTsKKworICAgIGV4cGxpY2l0IEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvcihjb25z
dCBIVE1MUGFyc2VyT3B0aW9ucyYpOworCisgICAgc3RhdGljIFN0YXRlIHN0YXRlRm9yKEhUTUxU
cmVlQnVpbGRlciopOworCisgICAgY29uc3QgU3RhdGUmIHN0YXRlKCkgY29uc3QgeyByZXR1cm4g
bV9uYW1lc3BhY2VTdGFjazsgfQorICAgIHZvaWQgc2V0U3RhdGUoY29uc3QgU3RhdGUmIHN0YXRl
KSB7IG1fbmFtZXNwYWNlU3RhY2sgPSBzdGF0ZTsgfQorCisgICAgYm9vbCBzaW11bGF0ZShjb25z
dCBDb21wYWN0SFRNTFRva2VuJiwgSFRNTFRva2VuaXplciopOworCitwcml2YXRlOgorICAgIGV4
cGxpY2l0IEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvcihIVE1MVHJlZUJ1aWxkZXIqKTsKKwogICAg
IGJvb2wgaW5Gb3JlaWduQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZXNwYWNlU3RhY2su
bGFzdCgpICE9IEhUTUw7IH0KIAogICAgIEhUTUxQYXJzZXJPcHRpb25zIG1fb3B0aW9uczsKLSAg
ICBWZWN0b3I8TmFtZXNwYWNlLCAxPiBtX25hbWVzcGFjZVN0YWNrOworICAgIFN0YXRlIG1fbmFt
ZXNwYWNlU3RhY2s7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTFkNmI2NGQwMzljOGY4ZDNlMzE4MTc5NTlm
MmRmNDVmNTk5ZGIzOC4uMThiNGQyYzQzOTk4MmFhNjBjYWI5MTMwZTM1NTViNGIxOWVkMTQ4MiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAzLTExICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBCYWNrZ3JvdW5kSFRNTFBhcnNlciB3b3JrIHdpdGgg
ZG9jLndyaXRlcyB0aGF0IGVudGVyIG9yIGxlYXZlIGZvcmVpZ24gY29udGVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NzY0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3BhcnNlci9kb2N1
bWVudC13cml0ZS1zdmctY2RhdGEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3BhcnNlci9kb2N1bWVudC13cml0ZS1zdmctY2RhdGEuaHRtbDogQWRkZWQuCisKIDIwMTMtMDMt
MTEgIENocmlzdGlhbiBCaWVzaW5nZXIgIDxjYmllc2luZ2VyQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICAodGVzdHMpIG1ha2Ugbm9kZXNGcm9tUmVjdC5qcyBwcmludCBhIGxpc3Qgb2Ygbm9kZXMg
dGhhdCB3ZXJlIGZvdW5kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9kb2N1
bWVudC13cml0ZS1zdmctY2RhdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJz
ZXIvZG9jdW1lbnQtd3JpdGUtc3ZnLWNkYXRhLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTMw
ZGY4M2QwZGI1NTVmZjIzODhjMWY4NmNkMWRkNjZhZWIyZTNhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvZG9jdW1lbnQtd3JpdGUtc3ZnLWNkYXRhLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE3IEBACit8IDxodG1sPgorfCAgIDxoZWFkPgorfCAgICAgPHNjcmlw
dD4KK3wgICAgICAgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiCit8ICAg
ICAiCisiCit8ICAgICA8c2NyaXB0PgorfCAgICAgICAiCitkb2N1bWVudC53cml0ZSgiPHN2Zz4i
KTsKKyIKK3wgICA8Ym9keT4KK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAiCisKK1RoaXMgc2hv
dWxkIDxzdHJvbmc+bm90PC9zdHJvbmc+IGJlIGJvbGQhCisKKyIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcGFyc2VyL2RvY3VtZW50LXdyaXRlLXN2Zy1jZGF0YS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9wYXJzZXIvZG9jdW1lbnQtd3JpdGUtc3ZnLWNkYXRhLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjNjMDg0YjliOTMxMWIzNGJiZGZhYjEwMmY4ZDhhNGI5YWFiMDA5YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2RvY3VtZW50LXdyaXRlLXN2Zy1jZGF0YS5o
dG1sCkBAIC0wLDAgKzEsNyBAQAorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1wLWFz
LW1hcmt1cC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZG9jdW1lbnQud3JpdGUoIjxzdmc+Iik7
Cis8L3NjcmlwdD4KKzwhW0NEQVRBWworVGhpcyBzaG91bGQgPHN0cm9uZz5ub3Q8L3N0cm9uZz4g
YmUgYm9sZCEKK11dPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192578</attachid>
            <date>2013-03-11 15:34:50 -0700</date>
            <delta_ts>2013-03-11 16:01:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109764-20130311153049.patch</filename>
            <type>text/plain</type>
            <size>14139</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1Mzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RkZjQ5YjEyMWNjYTg4
YTQ2ZTVjNWM4MWM5MTQxNzEyNWU2NjNhYS4uYjFiYWRkY2E5MDEyZjAxMTY5NGE1YWQ1ODlhZmY4
ZGU3ODJlYjk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ3IEBACiAyMDEzLTAzLTExICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgTWFrZSBCYWNrZ3JvdW5kSFRN
TFBhcnNlciB3b3JrIHdpdGggZG9jLndyaXRlcyB0aGF0IGVudGVyIG9yIGxlYXZlIGZvcmVpZ24g
Y29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UHJldmlvdXNseSwgd2Ugd2VyZSBub3QgcmVzZXRpbmcgdGhlIHN0YXRlIG9mIHRoZQorICAgICAg
ICBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3Igd2hlbiB3ZSBmYWlsZWQgc3BlY3VsYXRpdmUgcGFy
c2luZy4gVGhpcyBoYWQgYQorICAgICAgICBudW1iZXIgb2Ygb2JzZXJ2YWJsZSBjb25zZXF1ZW5j
ZXMsIGluY2x1ZGluZyBub3QgcGFyc2luZyBDREFUQSBzZWN0aW9ucworICAgICAgICBjb3JyZWN0
bHkgd2hlbiBkb2N1bWVudC53cml0ZSBjYXVzZWQgdXMgdG8gZW50ZXIgZm9yZWlnbiBjb250ZW50
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvcGFyc2VyL2RvY3VtZW50LXdyaXRlLXN2Zy1jZGF0YS5o
dG1sCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6QmFja2dyb3VuZEhUTUxQYXJz
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OnJlc3VtZUZyb20p
OgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OnB1bXBUb2tlbml6ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OnNlbmRUb2tlbnNUb01h
aW5UaHJlYWQpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmg6
CisgICAgICAgIChDaGVja3BvaW50KToKKyAgICAgICAgKEJhY2tncm91bmRIVE1MUGFyc2VyKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjp2YWxpZGF0ZVNwZWN1bGF0aW9ucyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OmRpZEZhaWxTcGVjdWxhdGlvbik6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChQYXJz
ZWRDaHVuayk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZDo6bmFtZXNwYWNl
VVJJKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVHJlZUJ1aWxkZXI6Om9wZW5FbGVtZW50cyk6CisgICAgICAgIChIVE1MVHJlZUJ1aWxkZXIp
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVsYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3I6OnN0YXRlRm9yKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNp
bXVsYXRvci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJl
ZUJ1aWxkZXJTaW11bGF0b3I6OnN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVp
bGRlclNpbXVsYXRvcjo6c2V0U3RhdGUpOgorICAgICAgICAoSFRNTFRyZWVCdWlsZGVyU2ltdWxh
dG9yKToKKworMjAxMy0wMy0xMSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAg
ICAgICAgIEZhY3RvciBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3Igb3V0IG9mIEJhY2tncm91bmRI
VE1MUGFyc2VyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTIwNTcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dy
b3VuZEhUTUxQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3Vu
ZEhUTUxQYXJzZXIuY3BwCmluZGV4IDU5ZGMyZjRlM2Q2NzIyNWFkMDY1YzYzMGIwYmZkMGJlMTQw
ZWZkY2MuLjNhMzY2YmZiNWI3Y2Q1ZjZkYjc1YzFmNGM0ZGZjNmJhOGZjNjQ0Y2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAK
QEAgLTY1LDkgKzY1LDkgQEAgc3RhdGljIGNvbnN0IHNpemVfdCBwZW5kaW5nVG9rZW5MaW1pdCA9
IDEwMDA7CiAKIEJhY2tncm91bmRIVE1MUGFyc2VyOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcihQYXNz
UmVmUHRyPFdlYWtSZWZlcmVuY2U8QmFja2dyb3VuZEhUTUxQYXJzZXI+ID4gcmVmZXJlbmNlLCBQ
YXNzT3duUHRyPENvbmZpZ3VyYXRpb24+IGNvbmZpZykKICAgICA6IG1fd2Vha0ZhY3RvcnkocmVm
ZXJlbmNlLCB0aGlzKQotICAgICwgbV90cmVlQnVpbGRlclNpbXVsYXRvcihjb25maWctPm9wdGlv
bnMpCiAgICAgLCBtX3Rva2VuKGFkb3B0UHRyKG5ldyBIVE1MVG9rZW4pKQogICAgICwgbV90b2tl
bml6ZXIoSFRNTFRva2VuaXplcjo6Y3JlYXRlKGNvbmZpZy0+b3B0aW9ucykpCisgICAgLCBtX3Ry
ZWVCdWlsZGVyKGNvbmZpZy0+b3B0aW9ucykKICAgICAsIG1fb3B0aW9ucyhjb25maWctPm9wdGlv
bnMpCiAgICAgLCBtX3BhcnNlcihjb25maWctPnBhcnNlcikKICAgICAsIG1fcGVuZGluZ1Rva2Vu
cyhhZG9wdFB0cihuZXcgQ29tcGFjdEhUTUxUb2tlblN0cmVhbSkpCkBAIC04OCw2ICs4OCw3IEBA
IHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnJlc3VtZUZyb20oUGFzc093blB0cjxDaGVja3Bv
aW50PiBjaGVja3BvaW50KQogICAgIG1fcGFyc2VyID0gY2hlY2twb2ludC0+cGFyc2VyOwogICAg
IG1fdG9rZW4gPSBjaGVja3BvaW50LT50b2tlbi5yZWxlYXNlKCk7CiAgICAgbV90b2tlbml6ZXIg
PSBjaGVja3BvaW50LT50b2tlbml6ZXIucmVsZWFzZSgpOworICAgIG1fdHJlZUJ1aWxkZXIuc2V0
U3RhdGUoY2hlY2twb2ludC0+dHJlZUJ1aWxkZXJTdGF0ZSk7CiAgICAgbV9pbnB1dC5yZXdpbmRU
byhjaGVja3BvaW50LT5pbnB1dENoZWNrcG9pbnQsIGNoZWNrcG9pbnQtPnVucGFyc2VkSW5wdXQp
OwogICAgIG1fcHJlbG9hZFNjYW5uZXItPnJld2luZFRvKGNoZWNrcG9pbnQtPnByZWxvYWRTY2Fu
bmVyQ2hlY2twb2ludCk7CiAgICAgcHVtcFRva2VuaXplcigpOwpAQCAtMTUxLDcgKzE1Miw3IEBA
IHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnB1bXBUb2tlbml6ZXIoKQogCiAgICAgICAgIG1f
dG9rZW4tPmNsZWFyKCk7CiAKLSAgICAgICAgaWYgKCFtX3RyZWVCdWlsZGVyU2ltdWxhdG9yLnNp
bXVsYXRlKG1fcGVuZGluZ1Rva2Vucy0+bGFzdCgpLCBtX3Rva2VuaXplci5nZXQoKSkgfHwgbV9w
ZW5kaW5nVG9rZW5zLT5zaXplKCkgPj0gcGVuZGluZ1Rva2VuTGltaXQpCisgICAgICAgIGlmICgh
bV90cmVlQnVpbGRlci5zaW11bGF0ZShtX3BlbmRpbmdUb2tlbnMtPmxhc3QoKSwgbV90b2tlbml6
ZXIuZ2V0KCkpIHx8IG1fcGVuZGluZ1Rva2Vucy0+c2l6ZSgpID49IHBlbmRpbmdUb2tlbkxpbWl0
KQogICAgICAgICAgICAgc2VuZFRva2Vuc1RvTWFpblRocmVhZCgpOwogICAgIH0KIApAQCAtMTc0
LDYgKzE3NSw3IEBAIHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnNlbmRUb2tlbnNUb01haW5U
aHJlYWQoKQogICAgIGNodW5rLT5wcmVsb2Fkcy5zd2FwKG1fcGVuZGluZ1ByZWxvYWRzKTsKICAg
ICBjaHVuay0+eHNzSW5mb3Muc3dhcChtX3BlbmRpbmdYU1NJbmZvcyk7CiAgICAgY2h1bmstPnRv
a2VuaXplclN0YXRlID0gbV90b2tlbml6ZXItPnN0YXRlKCk7CisgICAgY2h1bmstPnRyZWVCdWls
ZGVyU3RhdGUgPSBtX3RyZWVCdWlsZGVyLnN0YXRlKCk7CiAgICAgY2h1bmstPmlucHV0Q2hlY2tw
b2ludCA9IG1faW5wdXQuY3JlYXRlQ2hlY2twb2ludCgpOwogICAgIGNodW5rLT5wcmVsb2FkU2Nh
bm5lckNoZWNrcG9pbnQgPSBtX3ByZWxvYWRTY2FubmVyLT5jcmVhdGVDaGVja3BvaW50KCk7CiAg
ICAgY2FsbE9uTWFpblRocmVhZChiaW5kKCZIVE1MRG9jdW1lbnRQYXJzZXI6OmRpZFJlY2VpdmVQ
YXJzZWRDaHVua0Zyb21CYWNrZ3JvdW5kUGFyc2VyLCBtX3BhcnNlciwgY2h1bmsucmVsZWFzZSgp
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRN
TFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJz
ZXIuaAppbmRleCBhYTYwYjA5YzQ3N2UzYjRmMTBhZDgxNTZmZWI2MmM5MmQ0NGU5Nzg4Li5jM2I5
YmJmODQ1MDVjY2YyN2FhZDRiY2M5MThmOWVlYjRlMjdkNTdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmgKQEAgLTY3LDYgKzY3LDcg
QEAgcHVibGljOgogICAgICAgICBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gcGFyc2VyOwog
ICAgICAgICBPd25QdHI8SFRNTFRva2VuPiB0b2tlbjsKICAgICAgICAgT3duUHRyPEhUTUxUb2tl
bml6ZXI+IHRva2VuaXplcjsKKyAgICAgICAgSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yOjpTdGF0
ZSB0cmVlQnVpbGRlclN0YXRlOwogICAgICAgICBIVE1MSW5wdXRDaGVja3BvaW50IGlucHV0Q2hl
Y2twb2ludDsKICAgICAgICAgVG9rZW5QcmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQgcHJlbG9hZFNj
YW5uZXJDaGVja3BvaW50OwogICAgICAgICBTdHJpbmcgdW5wYXJzZWRJbnB1dDsKQEAgLTkwLDkg
KzkxLDkgQEAgcHJpdmF0ZToKICAgICBXZWFrUHRyRmFjdG9yeTxCYWNrZ3JvdW5kSFRNTFBhcnNl
cj4gbV93ZWFrRmFjdG9yeTsKICAgICBCYWNrZ3JvdW5kSFRNTElucHV0U3RyZWFtIG1faW5wdXQ7
CiAgICAgSFRNTFNvdXJjZVRyYWNrZXIgbV9zb3VyY2VUcmFja2VyOwotICAgIEhUTUxUcmVlQnVp
bGRlclNpbXVsYXRvciBtX3RyZWVCdWlsZGVyU2ltdWxhdG9yOwogICAgIE93blB0cjxIVE1MVG9r
ZW4+IG1fdG9rZW47CiAgICAgT3duUHRyPEhUTUxUb2tlbml6ZXI+IG1fdG9rZW5pemVyOworICAg
IEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvciBtX3RyZWVCdWlsZGVyOwogICAgIEhUTUxQYXJzZXJP
cHRpb25zIG1fb3B0aW9uczsKICAgICBXZWFrUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gbV9wYXJz
ZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVu
dFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJz
ZXIuY3BwCmluZGV4IDI2M2M0ZWY3ZmExNDBjODVkYjYzZWY3YWQwYjQwNDQ1MGU3NDJmZGUuLjk2
N2QxZDU0ZDMzYjIxMzJhNzk1MDg0ODJiZTFjNjdiM2QwYzExZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMzU0LDcgKzM1
NCw4IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjp2YWxpZGF0ZVNwZWN1bGF0aW9ucygpCiAg
ICAgLy8gc29waGlzdGljYXRlZCB3aXRoIHRoZSBIVE1MVG9rZW4uCiAgICAgaWYgKG1fY3VycmVu
dENodW5rLT50b2tlbml6ZXJTdGF0ZSA9PSBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUKICAgICAg
ICAgJiYgdG9rZW5pemVyLT5zdGF0ZSgpID09IEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZQotICAg
ICAgICAmJiBtX2lucHV0LmN1cnJlbnQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgJiYgbV9pbnB1
dC5jdXJyZW50KCkuaXNFbXB0eSgpCisgICAgICAgICYmIG1fY3VycmVudENodW5rLT50cmVlQnVp
bGRlclN0YXRlID09IEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvcjo6c3RhdGVGb3IobV90cmVlQnVp
bGRlci5nZXQoKSkpIHsKICAgICAgICAgQVNTRVJUKHRva2VuLT5pc1VuaW5pdGlhbGl6ZWQoKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNzEsNiArMzcyLDcgQEAgdm9pZCBIVE1MRG9j
dW1lbnRQYXJzZXI6OmRpZEZhaWxTcGVjdWxhdGlvbihQYXNzT3duUHRyPEhUTUxUb2tlbj4gdG9r
ZW4sIFBhc3NPd24KICAgICBjaGVja3BvaW50LT5wYXJzZXIgPSBtX3dlYWtGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKTsKICAgICBjaGVja3BvaW50LT50b2tlbiA9IHRva2VuOwogICAgIGNoZWNrcG9p
bnQtPnRva2VuaXplciA9IHRva2VuaXplcjsKKyAgICBjaGVja3BvaW50LT50cmVlQnVpbGRlclN0
YXRlID0gSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yOjpzdGF0ZUZvcihtX3RyZWVCdWlsZGVyLmdl
dCgpKTsKICAgICBjaGVja3BvaW50LT5pbnB1dENoZWNrcG9pbnQgPSBtX2N1cnJlbnRDaHVuay0+
aW5wdXRDaGVja3BvaW50OwogICAgIGNoZWNrcG9pbnQtPnByZWxvYWRTY2FubmVyQ2hlY2twb2lu
dCA9IG1fY3VycmVudENodW5rLT5wcmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQ7CiAgICAgY2hlY2tw
b2ludC0+dW5wYXJzZWRJbnB1dCA9IG1faW5wdXQuY3VycmVudCgpLnRvU3RyaW5nKCkuaXNvbGF0
ZWRDb3B5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9j
dW1lbnRQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBh
cnNlci5oCmluZGV4IDliM2M4MzNjN2FjMzNmMTAxN2UwNGI5ZTgzMWJmODBhMGM2M2E3NzguLjYx
MDA0ZTI3N2U4NDc3MDIzZGFiNTMzMDZmNTYxNzJiNWU5ZDJjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiSFRNTFNvdXJjZVRyYWNrZXIuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIK
ICNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCisjaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyU2lt
dWxhdG9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVk
ZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTkxLDYgKzkyLDcg
QEAgcHVibGljOgogICAgICAgICBQcmVsb2FkUmVxdWVzdFN0cmVhbSBwcmVsb2FkczsKICAgICAg
ICAgWFNTSW5mb1N0cmVhbSB4c3NJbmZvczsKICAgICAgICAgSFRNTFRva2VuaXplcjo6U3RhdGUg
dG9rZW5pemVyU3RhdGU7CisgICAgICAgIEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvcjo6U3RhdGUg
dHJlZUJ1aWxkZXJTdGF0ZTsKICAgICAgICAgSFRNTElucHV0Q2hlY2twb2ludCBpbnB1dENoZWNr
cG9pbnQ7CiAgICAgICAgIFRva2VuUHJlbG9hZFNjYW5uZXJDaGVja3BvaW50IHByZWxvYWRTY2Fu
bmVyQ2hlY2twb2ludDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TEVsZW1lbnRTdGFjay5oCmluZGV4IDJjMGRiMTM0YTBkMjU1Mzk3NmYwZGY5YWVlZjNhMGRiZDg2
MGM5YzcuLjBiMzE5Mjg4Nzk3NjhjNmZmYTFiYmFiMDUwYjZmNzUxOTE3YTY4MzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKQEAgLTU3LDYgKzU3
LDcgQEAgcHVibGljOgogICAgIAogICAgICAgICBFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9pdGVtLT5lbGVtZW50KCk7IH0KICAgICAgICAgQ29udGFpbmVyTm9kZSogbm9kZSgp
IGNvbnN0IHsgcmV0dXJuIG1faXRlbS0+bm9kZSgpOyB9CisgICAgICAgIGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZXNwYWNlVVJJKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtLT5uYW1lc3BhY2VVUkko
KTsgfQogICAgICAgICBQYXNzUmVmUHRyPEhUTUxTdGFja0l0ZW0+IHN0YWNrSXRlbSgpIGNvbnN0
IHsgcmV0dXJuIG1faXRlbTsgfQogICAgICAgICB2b2lkIHJlcGxhY2VFbGVtZW50KFBhc3NSZWZQ
dHI8SFRNTFN0YWNrSXRlbT4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
cmVlQnVpbGRlci5oCmluZGV4IDdkYmM4OWM1NGNmNmEwYTI5OTM5OGI5NWU4N2I3MjI3Mjg5NTBi
MDYuLmU4MDNkZmVkODJmZmZjNGFjODA3NzI3NmExNDIzZWEyZDk0ZDNiNTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCkBAIC02OCw2ICs2OCw4IEBA
IHB1YmxpYzoKICAgICB9CiAgICAgfkhUTUxUcmVlQnVpbGRlcigpOwogCisgICAgSFRNTEVsZW1l
bnRTdGFjayogb3BlbkVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV90cmVlLm9wZW5FbGVtZW50
cygpOyB9CisKICAgICBib29sIGlzUGFyc2luZ0ZyYWdtZW50KCkgY29uc3QgeyByZXR1cm4gISFt
X2ZyYWdtZW50Q29udGV4dC5mcmFnbWVudCgpOyB9CiAjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1F
TlQpCiAgICAgYm9vbCBpc1BhcnNpbmdUZW1wbGF0ZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4g
bV90cmVlLm9wZW5FbGVtZW50cygpLT5oYXNUZW1wbGF0ZUluSFRNTFNjb3BlKCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVsYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXJTaW11bGF0
b3IuY3BwCmluZGV4IDkzNDkxNTQ1NzU4Njk5MmQzOTk3OTA4ZGY1YzVkZjEwZmRiYTMzMmUuLjA5
NjA3OTAxMDc5YjA2YWYzMTIzMjcxMmEwMmMyNjEwMWMzNTUxZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVsYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yLmNwcApA
QCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQ
YXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCisjaW5jbHVkZSAiSFRN
TFRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiTWF0aE1MTmFtZXMuaCIKICNpbmNsdWRlICJTVkdO
YW1lcy5oIgogCkBAIC0xMTcsNiArMTE4LDI0IEBAIEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvcjo6
SFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yKGNvbnN0IEhUTUxQYXJzZXJPcHRpb25zJiBvcHRpCiAg
ICAgbV9uYW1lc3BhY2VTdGFjay5hcHBlbmQoSFRNTCk7CiB9CiAKK0hUTUxUcmVlQnVpbGRlclNp
bXVsYXRvcjo6U3RhdGUgSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yOjpzdGF0ZUZvcihIVE1MVHJl
ZUJ1aWxkZXIqIHRyZWVCdWlsZGVyKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cisg
ICAgU3RhdGUgbmFtZXNwYWNlU3RhY2s7CisgICAgZm9yIChIVE1MRWxlbWVudFN0YWNrOjpFbGVt
ZW50UmVjb3JkKiByZWNvcmQgPSB0cmVlQnVpbGRlci0+b3BlbkVsZW1lbnRzKCktPnRvcFJlY29y
ZCgpOyByZWNvcmQ7IHJlY29yZCA9IHJlY29yZC0+bmV4dCgpKSB7CisgICAgICAgIE5hbWVzcGFj
ZSBjdXJyZW50TmFtZXNwYWNlID0gSFRNTDsKKyAgICAgICAgaWYgKHJlY29yZC0+bmFtZXNwYWNl
VVJJKCkgPT0gU1ZHTmFtZXM6OnN2Z05hbWVzcGFjZVVSSSkKKyAgICAgICAgICAgIGN1cnJlbnRO
YW1lc3BhY2UgPSBTVkc7CisgICAgICAgIGVsc2UgaWYgKHJlY29yZC0+bmFtZXNwYWNlVVJJKCkg
PT0gTWF0aE1MTmFtZXM6Om1hdGhtbE5hbWVzcGFjZVVSSSkKKyAgICAgICAgICAgIGN1cnJlbnRO
YW1lc3BhY2UgPSBNYXRoTUw7CisKKyAgICAgICAgaWYgKG5hbWVzcGFjZVN0YWNrLmlzRW1wdHko
KSB8fCBuYW1lc3BhY2VTdGFjay5sYXN0KCkgIT0gY3VycmVudE5hbWVzcGFjZSkKKyAgICAgICAg
ICAgIG5hbWVzcGFjZVN0YWNrLmFwcGVuZChjdXJyZW50TmFtZXNwYWNlKTsKKyAgICB9CisgICAg
bmFtZXNwYWNlU3RhY2sucmV2ZXJzZSgpOworICAgIHJldHVybiBuYW1lc3BhY2VTdGFjazsKK30K
KwogYm9vbCBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3I6OnNpbXVsYXRlKGNvbnN0IENvbXBhY3RI
VE1MVG9rZW4mIHRva2VuLCBIVE1MVG9rZW5pemVyKiB0b2tlbml6ZXIpCiB7CiAgICAgaWYgKHRv
a2VuLnR5cGUoKSA9PSBIVE1MVG9rZW46OlN0YXJ0VGFnKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVsYXRvci5oCmluZGV4IGY2NjI3
OWMyMDMyOWZhNjE4ZjNiYjkwZDEyMmIwNDI5YTdiOWZmMDkuLjMxMWM2NmVjMjYzMDNiYThkOWZm
OWRmZmYzN2IwYTdiYjRjMTM0YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxUcmVlQnVpbGRlclNpbXVsYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVsYXRvci5oCkBAIC0yOSwxOSArMjksMTcgQEAKICNp
ZiBFTkFCTEUoVEhSRUFERURfSFRNTF9QQVJTRVIpCiAKICNpbmNsdWRlICJIVE1MUGFyc2VyT3B0
aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbXBhY3RIVE1MVG9rZW47CiBj
bGFzcyBIVE1MVG9rZW5pemVyOworY2xhc3MgSFRNTFRyZWVCdWlsZGVyOwogCiBjbGFzcyBIVE1M
VHJlZUJ1aWxkZXJTaW11bGF0b3IgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVi
bGljOgotICAgIGV4cGxpY2l0IEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvcihjb25zdCBIVE1MUGFy
c2VyT3B0aW9ucyYpOwotICAgIGJvb2wgc2ltdWxhdGUoY29uc3QgQ29tcGFjdEhUTUxUb2tlbiYs
IEhUTUxUb2tlbml6ZXIqKTsKLQogcHJpdmF0ZToKICAgICBlbnVtIE5hbWVzcGFjZSB7CiAgICAg
ICAgIEhUTUwsCkBAIC00OSwxMCArNDcsMjUgQEAgcHJpdmF0ZToKICAgICAgICAgTWF0aE1MCiAg
ICAgfTsKIAorcHVibGljOgorICAgIHR5cGVkZWYgVmVjdG9yPE5hbWVzcGFjZSwgMT4gU3RhdGU7
CisKKyAgICBleHBsaWNpdCBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3IoY29uc3QgSFRNTFBhcnNl
ck9wdGlvbnMmKTsKKworICAgIHN0YXRpYyBTdGF0ZSBzdGF0ZUZvcihIVE1MVHJlZUJ1aWxkZXIq
KTsKKworICAgIGNvbnN0IFN0YXRlJiBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZXNwYWNl
U3RhY2s7IH0KKyAgICB2b2lkIHNldFN0YXRlKGNvbnN0IFN0YXRlJiBzdGF0ZSkgeyBtX25hbWVz
cGFjZVN0YWNrID0gc3RhdGU7IH0KKworICAgIGJvb2wgc2ltdWxhdGUoY29uc3QgQ29tcGFjdEhU
TUxUb2tlbiYsIEhUTUxUb2tlbml6ZXIqKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBIVE1M
VHJlZUJ1aWxkZXJTaW11bGF0b3IoSFRNTFRyZWVCdWlsZGVyKik7CisKICAgICBib29sIGluRm9y
ZWlnbkNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX25hbWVzcGFjZVN0YWNrLmxhc3QoKSAhPSBI
VE1MOyB9CiAKICAgICBIVE1MUGFyc2VyT3B0aW9ucyBtX29wdGlvbnM7Ci0gICAgVmVjdG9yPE5h
bWVzcGFjZSwgMT4gbV9uYW1lc3BhY2VTdGFjazsKKyAgICBTdGF0ZSBtX25hbWVzcGFjZVN0YWNr
OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGUxZDZiNjRkMDM5YzhmOGQzZTMxODE3OTU5ZjJkZjQ1ZjU5OWRi
MzguLjE4YjRkMmM0Mzk5ODJhYTYwY2FiOTEzMGUzNTU1YjRiMTllZDE0ODIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxMy0wMy0xMSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgor
CisgICAgICAgIE1ha2UgQmFja2dyb3VuZEhUTUxQYXJzZXIgd29yayB3aXRoIGRvYy53cml0ZXMg
dGhhdCBlbnRlciBvciBsZWF2ZSBmb3JlaWduIGNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTc2NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9wYXJzZXIvZG9jdW1lbnQtd3JpdGUt
c3ZnLWNkYXRhLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9wYXJzZXIvZG9j
dW1lbnQtd3JpdGUtc3ZnLWNkYXRhLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAzLTExICBDaHJpc3Rp
YW4gQmllc2luZ2VyICA8Y2JpZXNpbmdlckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgKHRlc3Rz
KSBtYWtlIG5vZGVzRnJvbVJlY3QuanMgcHJpbnQgYSBsaXN0IG9mIG5vZGVzIHRoYXQgd2VyZSBm
b3VuZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvZG9jdW1lbnQtd3JpdGUt
c3ZnLWNkYXRhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2RvY3VtZW50
LXdyaXRlLXN2Zy1jZGF0YS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjEzMGRmODNkMGRiNTU1
ZmYyMzg4YzFmODZjZDFkZDY2YWViMmUzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcGFyc2VyL2RvY3VtZW50LXdyaXRlLXN2Zy1jZGF0YS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNyBAQAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAg
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIgorfCAgICAgIgorIgorfCAg
ICAgPHNjcmlwdD4KK3wgICAgICAgIgorZG9jdW1lbnQud3JpdGUoIjxzdmc+Iik7CisiCit8ICAg
PGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgIgorCitUaGlzIHNob3VsZCA8c3Ryb25n
Pm5vdDwvc3Ryb25nPiBiZSBib2xkIQorCisiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3BhcnNlci9kb2N1bWVudC13cml0ZS1zdmctY2RhdGEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cGFyc2VyL2RvY3VtZW50LXdyaXRlLXN2Zy1jZGF0YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzYzA4NGI5
YjkzMTFiMzRiYmRmYWIxMDJmOGQ4YTRiOWFhYjAwOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3BhcnNlci9kb2N1bWVudC13cml0ZS1zdmctY2RhdGEuaHRtbApAQCAtMCww
ICsxLDcgQEAKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2RvY3VtZW50LndyaXRlKCI8c3ZnPiIpOworPC9zY3JpcHQ+
Cis8IVtDREFUQVsKK1RoaXMgc2hvdWxkIDxzdHJvbmc+bm90PC9zdHJvbmc+IGJlIGJvbGQhCitd
XT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192583</attachid>
            <date>2013-03-11 16:01:48 -0700</date>
            <delta_ts>2013-03-11 17:02:01 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-109764-20130311155747.patch</filename>
            <type>text/plain</type>
            <size>13998</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1Mzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RkZjQ5YjEyMWNjYTg4
YTQ2ZTVjNWM4MWM5MTQxNzEyNWU2NjNhYS4uNzc5NDk4NjM0ODQ5MTFjMDk1OWVhYWUzY2Y3YjMz
NzgzODMyZGI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw5ICsxLDUxIEBACiAyMDEzLTAzLTExICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgTWFrZSBCYWNrZ3JvdW5kSFRN
TFBhcnNlciB3b3JrIHdpdGggZG9jLndyaXRlcyB0aGF0IGVudGVyIG9yIGxlYXZlIGZvcmVpZ24g
Y29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCisKKyAgICAgICAgUHJl
dmlvdXNseSwgd2Ugd2VyZSBub3QgcmVzZXRpbmcgdGhlIHN0YXRlIG9mIHRoZQorICAgICAgICBI
VE1MVHJlZUJ1aWxkZXJTaW11bGF0b3Igd2hlbiB3ZSBmYWlsZWQgc3BlY3VsYXRpdmUgcGFyc2lu
Zy4gVGhpcyBoYWQgYQorICAgICAgICBudW1iZXIgb2Ygb2JzZXJ2YWJsZSBjb25zZXF1ZW5jZXMs
IGluY2x1ZGluZyBub3QgcGFyc2luZyBDREFUQSBzZWN0aW9ucworICAgICAgICBjb3JyZWN0bHkg
d2hlbiBkb2N1bWVudC53cml0ZSBjYXVzZWQgdXMgdG8gZW50ZXIgZm9yZWlnbiBjb250ZW50Lgor
CisgICAgICAgIFRlc3Q6IGZhc3QvcGFyc2VyL2RvY3VtZW50LXdyaXRlLXN2Zy1jZGF0YS5odG1s
CisKKyAgICAgICAgKiBodG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6QmFja2dyb3VuZEhUTUxQYXJzZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OnJlc3VtZUZyb20pOgor
ICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OnB1bXBUb2tlbml6ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OnNlbmRUb2tlbnNUb01haW5U
aHJlYWQpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmg6Cisg
ICAgICAgIChDaGVja3BvaW50KToKKyAgICAgICAgKEJhY2tncm91bmRIVE1MUGFyc2VyKToKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjp2YWxpZGF0ZVNwZWN1bGF0aW9ucyk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OmRpZEZhaWxTcGVjdWxhdGlvbik6CisgICAg
ICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChQYXJzZWRD
aHVuayk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZDo6bmFtZXNwYWNlVVJJ
KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VHJlZUJ1aWxkZXI6Om9wZW5FbGVtZW50cyk6CisgICAgICAgIChIVE1MVHJlZUJ1aWxkZXIpOgor
ICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVsYXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3I6OnN0YXRlRm9yKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVs
YXRvci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXJTaW11bGF0b3I6OnN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
clNpbXVsYXRvcjo6c2V0U3RhdGUpOgorICAgICAgICAoSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9y
KToKKworMjAxMy0wMy0xMSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAg
ICAgIEZhY3RvciBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3Igb3V0IG9mIEJhY2tncm91bmRIVE1M
UGFyc2VyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTIwNTcKIAotICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCiAKICAgICAgICAgU2ltdWxhdGluZyB0aGUgSFRNTCB0cmVl
IGJ1aWxkZXIgaXMgYSBzZXBhcmF0ZSBjb25jZXJuIGZyb20gcGFyc2luZyBvbgogICAgICAgICB0
aGUgYmFja2dyb3VuZCB0aHJlYWQuIFdlIHBsYW4gdG8gcmUtdXNlIHRoZSB0cmVlIGJ1aWxkZXIg
c2ltdWxhdG9yIGZvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFj
a2dyb3VuZEhUTUxQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dy
b3VuZEhUTUxQYXJzZXIuY3BwCmluZGV4IDU5ZGMyZjRlM2Q2NzIyNWFkMDY1YzYzMGIwYmZkMGJl
MTQwZWZkY2MuLjBiNzUyMGU0MGQzZTM3MzljMjJjZTNiNTAyYzNmY2E5Mzk0ZGZlZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5j
cHAKQEAgLTY1LDkgKzY1LDkgQEAgc3RhdGljIGNvbnN0IHNpemVfdCBwZW5kaW5nVG9rZW5MaW1p
dCA9IDEwMDA7CiAKIEJhY2tncm91bmRIVE1MUGFyc2VyOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcihQ
YXNzUmVmUHRyPFdlYWtSZWZlcmVuY2U8QmFja2dyb3VuZEhUTUxQYXJzZXI+ID4gcmVmZXJlbmNl
LCBQYXNzT3duUHRyPENvbmZpZ3VyYXRpb24+IGNvbmZpZykKICAgICA6IG1fd2Vha0ZhY3Rvcnko
cmVmZXJlbmNlLCB0aGlzKQotICAgICwgbV90cmVlQnVpbGRlclNpbXVsYXRvcihjb25maWctPm9w
dGlvbnMpCiAgICAgLCBtX3Rva2VuKGFkb3B0UHRyKG5ldyBIVE1MVG9rZW4pKQogICAgICwgbV90
b2tlbml6ZXIoSFRNTFRva2VuaXplcjo6Y3JlYXRlKGNvbmZpZy0+b3B0aW9ucykpCisgICAgLCBt
X3RyZWVCdWlsZGVyU2ltdWxhdG9yKGNvbmZpZy0+b3B0aW9ucykKICAgICAsIG1fb3B0aW9ucyhj
b25maWctPm9wdGlvbnMpCiAgICAgLCBtX3BhcnNlcihjb25maWctPnBhcnNlcikKICAgICAsIG1f
cGVuZGluZ1Rva2VucyhhZG9wdFB0cihuZXcgQ29tcGFjdEhUTUxUb2tlblN0cmVhbSkpCkBAIC04
OCw2ICs4OCw3IEBAIHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnJlc3VtZUZyb20oUGFzc093
blB0cjxDaGVja3BvaW50PiBjaGVja3BvaW50KQogICAgIG1fcGFyc2VyID0gY2hlY2twb2ludC0+
cGFyc2VyOwogICAgIG1fdG9rZW4gPSBjaGVja3BvaW50LT50b2tlbi5yZWxlYXNlKCk7CiAgICAg
bV90b2tlbml6ZXIgPSBjaGVja3BvaW50LT50b2tlbml6ZXIucmVsZWFzZSgpOworICAgIG1fdHJl
ZUJ1aWxkZXJTaW11bGF0b3Iuc2V0U3RhdGUoY2hlY2twb2ludC0+dHJlZUJ1aWxkZXJTdGF0ZSk7
CiAgICAgbV9pbnB1dC5yZXdpbmRUbyhjaGVja3BvaW50LT5pbnB1dENoZWNrcG9pbnQsIGNoZWNr
cG9pbnQtPnVucGFyc2VkSW5wdXQpOwogICAgIG1fcHJlbG9hZFNjYW5uZXItPnJld2luZFRvKGNo
ZWNrcG9pbnQtPnByZWxvYWRTY2FubmVyQ2hlY2twb2ludCk7CiAgICAgcHVtcFRva2VuaXplcigp
OwpAQCAtMTc0LDYgKzE3NSw3IEBAIHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnNlbmRUb2tl
bnNUb01haW5UaHJlYWQoKQogICAgIGNodW5rLT5wcmVsb2Fkcy5zd2FwKG1fcGVuZGluZ1ByZWxv
YWRzKTsKICAgICBjaHVuay0+eHNzSW5mb3Muc3dhcChtX3BlbmRpbmdYU1NJbmZvcyk7CiAgICAg
Y2h1bmstPnRva2VuaXplclN0YXRlID0gbV90b2tlbml6ZXItPnN0YXRlKCk7CisgICAgY2h1bmst
PnRyZWVCdWlsZGVyU3RhdGUgPSBtX3RyZWVCdWlsZGVyU2ltdWxhdG9yLnN0YXRlKCk7CiAgICAg
Y2h1bmstPmlucHV0Q2hlY2twb2ludCA9IG1faW5wdXQuY3JlYXRlQ2hlY2twb2ludCgpOwogICAg
IGNodW5rLT5wcmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQgPSBtX3ByZWxvYWRTY2FubmVyLT5jcmVh
dGVDaGVja3BvaW50KCk7CiAgICAgY2FsbE9uTWFpblRocmVhZChiaW5kKCZIVE1MRG9jdW1lbnRQ
YXJzZXI6OmRpZFJlY2VpdmVQYXJzZWRDaHVua0Zyb21CYWNrZ3JvdW5kUGFyc2VyLCBtX3BhcnNl
ciwgY2h1bmsucmVsZWFzZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
QmFja2dyb3VuZEhUTUxQYXJzZXIuaAppbmRleCBhYTYwYjA5YzQ3N2UzYjRmMTBhZDgxNTZmZWI2
MmM5MmQ0NGU5Nzg4Li44MTVjMTE1NTgyOWZkNzJmNjIxYmRiYTU2OTZjZmUzNmRkNmQ1ZmI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2Vy
LmgKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGljOgogICAgICAgICBXZWFrUHRyPEhUTUxEb2N1bWVu
dFBhcnNlcj4gcGFyc2VyOwogICAgICAgICBPd25QdHI8SFRNTFRva2VuPiB0b2tlbjsKICAgICAg
ICAgT3duUHRyPEhUTUxUb2tlbml6ZXI+IHRva2VuaXplcjsKKyAgICAgICAgSFRNTFRyZWVCdWls
ZGVyU2ltdWxhdG9yOjpTdGF0ZSB0cmVlQnVpbGRlclN0YXRlOwogICAgICAgICBIVE1MSW5wdXRD
aGVja3BvaW50IGlucHV0Q2hlY2twb2ludDsKICAgICAgICAgVG9rZW5QcmVsb2FkU2Nhbm5lckNo
ZWNrcG9pbnQgcHJlbG9hZFNjYW5uZXJDaGVja3BvaW50OwogICAgICAgICBTdHJpbmcgdW5wYXJz
ZWRJbnB1dDsKQEAgLTkwLDkgKzkxLDkgQEAgcHJpdmF0ZToKICAgICBXZWFrUHRyRmFjdG9yeTxC
YWNrZ3JvdW5kSFRNTFBhcnNlcj4gbV93ZWFrRmFjdG9yeTsKICAgICBCYWNrZ3JvdW5kSFRNTElu
cHV0U3RyZWFtIG1faW5wdXQ7CiAgICAgSFRNTFNvdXJjZVRyYWNrZXIgbV9zb3VyY2VUcmFja2Vy
OwotICAgIEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvciBtX3RyZWVCdWlsZGVyU2ltdWxhdG9yOwog
ICAgIE93blB0cjxIVE1MVG9rZW4+IG1fdG9rZW47CiAgICAgT3duUHRyPEhUTUxUb2tlbml6ZXI+
IG1fdG9rZW5pemVyOworICAgIEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvciBtX3RyZWVCdWlsZGVy
U2ltdWxhdG9yOwogICAgIEhUTUxQYXJzZXJPcHRpb25zIG1fb3B0aW9uczsKICAgICBXZWFrUHRy
PEhUTUxEb2N1bWVudFBhcnNlcj4gbV9wYXJzZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDI2M2M0ZWY3ZmExNDBjODVk
YjYzZWY3YWQwYjQwNDQ1MGU3NDJmZGUuLjk2N2QxZDU0ZDMzYjIxMzJhNzk1MDg0ODJiZTFjNjdi
M2QwYzExZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1
bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3Vt
ZW50UGFyc2VyLmNwcApAQCAtMzU0LDcgKzM1NCw4IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2Vy
Ojp2YWxpZGF0ZVNwZWN1bGF0aW9ucygpCiAgICAgLy8gc29waGlzdGljYXRlZCB3aXRoIHRoZSBI
VE1MVG9rZW4uCiAgICAgaWYgKG1fY3VycmVudENodW5rLT50b2tlbml6ZXJTdGF0ZSA9PSBIVE1M
VG9rZW5pemVyOjpEYXRhU3RhdGUKICAgICAgICAgJiYgdG9rZW5pemVyLT5zdGF0ZSgpID09IEhU
TUxUb2tlbml6ZXI6OkRhdGFTdGF0ZQotICAgICAgICAmJiBtX2lucHV0LmN1cnJlbnQoKS5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgJiYgbV9pbnB1dC5jdXJyZW50KCkuaXNFbXB0eSgpCisgICAgICAg
ICYmIG1fY3VycmVudENodW5rLT50cmVlQnVpbGRlclN0YXRlID09IEhUTUxUcmVlQnVpbGRlclNp
bXVsYXRvcjo6c3RhdGVGb3IobV90cmVlQnVpbGRlci5nZXQoKSkpIHsKICAgICAgICAgQVNTRVJU
KHRva2VuLT5pc1VuaW5pdGlhbGl6ZWQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0z
NzEsNiArMzcyLDcgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmRpZEZhaWxTcGVjdWxhdGlv
bihQYXNzT3duUHRyPEhUTUxUb2tlbj4gdG9rZW4sIFBhc3NPd24KICAgICBjaGVja3BvaW50LT5w
YXJzZXIgPSBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKICAgICBjaGVja3BvaW50LT50
b2tlbiA9IHRva2VuOwogICAgIGNoZWNrcG9pbnQtPnRva2VuaXplciA9IHRva2VuaXplcjsKKyAg
ICBjaGVja3BvaW50LT50cmVlQnVpbGRlclN0YXRlID0gSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9y
OjpzdGF0ZUZvcihtX3RyZWVCdWlsZGVyLmdldCgpKTsKICAgICBjaGVja3BvaW50LT5pbnB1dENo
ZWNrcG9pbnQgPSBtX2N1cnJlbnRDaHVuay0+aW5wdXRDaGVja3BvaW50OwogICAgIGNoZWNrcG9p
bnQtPnByZWxvYWRTY2FubmVyQ2hlY2twb2ludCA9IG1fY3VycmVudENodW5rLT5wcmVsb2FkU2Nh
bm5lckNoZWNrcG9pbnQ7CiAgICAgY2hlY2twb2ludC0+dW5wYXJzZWRJbnB1dCA9IG1faW5wdXQu
Y3VycmVudCgpLnRvU3RyaW5nKCkuaXNvbGF0ZWRDb3B5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCmluZGV4IDliM2M4MzNjN2FjMzNmMTAx
N2UwNGI5ZTgzMWJmODBhMGM2M2E3NzguLjYxMDA0ZTI3N2U4NDc3MDIzZGFiNTMzMDZmNTYxNzJi
NWU5ZDJjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1
bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVu
dFBhcnNlci5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSFRNTFNvdXJjZVRyYWNrZXIu
aCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKICNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCisj
aW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0YWJs
ZURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiVGltZXIuaCIKQEAgLTkxLDYgKzkyLDcgQEAgcHVibGljOgogICAgICAgICBQcmVsb2FkUmVx
dWVzdFN0cmVhbSBwcmVsb2FkczsKICAgICAgICAgWFNTSW5mb1N0cmVhbSB4c3NJbmZvczsKICAg
ICAgICAgSFRNTFRva2VuaXplcjo6U3RhdGUgdG9rZW5pemVyU3RhdGU7CisgICAgICAgIEhUTUxU
cmVlQnVpbGRlclNpbXVsYXRvcjo6U3RhdGUgdHJlZUJ1aWxkZXJTdGF0ZTsKICAgICAgICAgSFRN
TElucHV0Q2hlY2twb2ludCBpbnB1dENoZWNrcG9pbnQ7CiAgICAgICAgIFRva2VuUHJlbG9hZFNj
YW5uZXJDaGVja3BvaW50IHByZWxvYWRTY2FubmVyQ2hlY2twb2ludDsKICAgICB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oCmluZGV4IDJjMGRiMTM0
YTBkMjU1Mzk3NmYwZGY5YWVlZjNhMGRiZDg2MGM5YzcuLjBiMzE5Mjg4Nzk3NjhjNmZmYTFiYmFi
MDUwYjZmNzUxOTE3YTY4MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxFbGVtZW50U3RhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
RWxlbWVudFN0YWNrLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIAogICAgICAgICBF
bGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9pdGVtLT5lbGVtZW50KCk7IH0KICAg
ICAgICAgQ29udGFpbmVyTm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faXRlbS0+bm9kZSgp
OyB9CisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJKCkgY29uc3QgeyBy
ZXR1cm4gbV9pdGVtLT5uYW1lc3BhY2VVUkkoKTsgfQogICAgICAgICBQYXNzUmVmUHRyPEhUTUxT
dGFja0l0ZW0+IHN0YWNrSXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1faXRlbTsgfQogICAgICAgICB2
b2lkIHJlcGxhY2VFbGVtZW50KFBhc3NSZWZQdHI8SFRNTFN0YWNrSXRlbT4pOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCmluZGV4IDdkYmM4OWM1NGNm
NmEwYTI5OTM5OGI5NWU4N2I3MjI3Mjg5NTBiMDYuLjQ2ODE1MjAwNThhNzRlYWRkNWIyMWFjZDdm
NzQ3MmY0ZmVhOTdkYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVl
QnVpbGRlci5oCkBAIC02OCw2ICs2OCw4IEBAIHB1YmxpYzoKICAgICB9CiAgICAgfkhUTUxUcmVl
QnVpbGRlcigpOwogCisgICAgY29uc3QgSFRNTEVsZW1lbnRTdGFjayogb3BlbkVsZW1lbnRzKCkg
Y29uc3QgeyByZXR1cm4gbV90cmVlLm9wZW5FbGVtZW50cygpOyB9CisKICAgICBib29sIGlzUGFy
c2luZ0ZyYWdtZW50KCkgY29uc3QgeyByZXR1cm4gISFtX2ZyYWdtZW50Q29udGV4dC5mcmFnbWVu
dCgpOyB9CiAjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCiAgICAgYm9vbCBpc1BhcnNpbmdU
ZW1wbGF0ZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gbV90cmVlLm9wZW5FbGVtZW50cygpLT5o
YXNUZW1wbGF0ZUluSFRNTFNjb3BlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVsYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3IuY3BwCmluZGV4IDkzNDkxNTQ1NzU4
Njk5MmQzOTk3OTA4ZGY1YzVkZjEwZmRiYTMzMmUuLjA5NjA3OTAxMDc5YjA2YWYzMTIzMjcxMmEw
MmMyNjEwMWMzNTUxZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxUcmVlQnVpbGRlclNpbXVsYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRl
ICJIVE1MVG9rZW5pemVyLmgiCisjaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCiAjaW5jbHVk
ZSAiTWF0aE1MTmFtZXMuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogCkBAIC0xMTcsNiArMTE4
LDI0IEBAIEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvcjo6SFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9y
KGNvbnN0IEhUTUxQYXJzZXJPcHRpb25zJiBvcHRpCiAgICAgbV9uYW1lc3BhY2VTdGFjay5hcHBl
bmQoSFRNTCk7CiB9CiAKK0hUTUxUcmVlQnVpbGRlclNpbXVsYXRvcjo6U3RhdGUgSFRNTFRyZWVC
dWlsZGVyU2ltdWxhdG9yOjpzdGF0ZUZvcihIVE1MVHJlZUJ1aWxkZXIqIHRyZWVCdWlsZGVyKQor
eworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgU3RhdGUgbmFtZXNwYWNlU3RhY2s7
CisgICAgZm9yIChIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiByZWNvcmQgPSB0cmVl
QnVpbGRlci0+b3BlbkVsZW1lbnRzKCktPnRvcFJlY29yZCgpOyByZWNvcmQ7IHJlY29yZCA9IHJl
Y29yZC0+bmV4dCgpKSB7CisgICAgICAgIE5hbWVzcGFjZSBjdXJyZW50TmFtZXNwYWNlID0gSFRN
TDsKKyAgICAgICAgaWYgKHJlY29yZC0+bmFtZXNwYWNlVVJJKCkgPT0gU1ZHTmFtZXM6OnN2Z05h
bWVzcGFjZVVSSSkKKyAgICAgICAgICAgIGN1cnJlbnROYW1lc3BhY2UgPSBTVkc7CisgICAgICAg
IGVsc2UgaWYgKHJlY29yZC0+bmFtZXNwYWNlVVJJKCkgPT0gTWF0aE1MTmFtZXM6Om1hdGhtbE5h
bWVzcGFjZVVSSSkKKyAgICAgICAgICAgIGN1cnJlbnROYW1lc3BhY2UgPSBNYXRoTUw7CisKKyAg
ICAgICAgaWYgKG5hbWVzcGFjZVN0YWNrLmlzRW1wdHkoKSB8fCBuYW1lc3BhY2VTdGFjay5sYXN0
KCkgIT0gY3VycmVudE5hbWVzcGFjZSkKKyAgICAgICAgICAgIG5hbWVzcGFjZVN0YWNrLmFwcGVu
ZChjdXJyZW50TmFtZXNwYWNlKTsKKyAgICB9CisgICAgbmFtZXNwYWNlU3RhY2sucmV2ZXJzZSgp
OworICAgIHJldHVybiBuYW1lc3BhY2VTdGFjazsKK30KKwogYm9vbCBIVE1MVHJlZUJ1aWxkZXJT
aW11bGF0b3I6OnNpbXVsYXRlKGNvbnN0IENvbXBhY3RIVE1MVG9rZW4mIHRva2VuLCBIVE1MVG9r
ZW5pemVyKiB0b2tlbml6ZXIpCiB7CiAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW46
OlN0YXJ0VGFnKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
VHJlZUJ1aWxkZXJTaW11bGF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
cmVlQnVpbGRlclNpbXVsYXRvci5oCmluZGV4IGY2NjI3OWMyMDMyOWZhNjE4ZjNiYjkwZDEyMmIw
NDI5YTdiOWZmMDkuLjMxMWM2NmVjMjYzMDNiYThkOWZmOWRmZmYzN2IwYTdiYjRjMTM0YjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVs
YXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNp
bXVsYXRvci5oCkBAIC0yOSwxOSArMjksMTcgQEAKICNpZiBFTkFCTEUoVEhSRUFERURfSFRNTF9Q
QVJTRVIpCiAKICNpbmNsdWRlICJIVE1MUGFyc2VyT3B0aW9ucy5oIgorI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIENvbXBhY3RIVE1MVG9rZW47CiBjbGFzcyBIVE1MVG9rZW5pemVyOworY2xh
c3MgSFRNTFRyZWVCdWlsZGVyOwogCiBjbGFzcyBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3Igewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGV4cGxpY2l0IEhUTUxU
cmVlQnVpbGRlclNpbXVsYXRvcihjb25zdCBIVE1MUGFyc2VyT3B0aW9ucyYpOwotICAgIGJvb2wg
c2ltdWxhdGUoY29uc3QgQ29tcGFjdEhUTUxUb2tlbiYsIEhUTUxUb2tlbml6ZXIqKTsKLQogcHJp
dmF0ZToKICAgICBlbnVtIE5hbWVzcGFjZSB7CiAgICAgICAgIEhUTUwsCkBAIC00OSwxMCArNDcs
MjUgQEAgcHJpdmF0ZToKICAgICAgICAgTWF0aE1MCiAgICAgfTsKIAorcHVibGljOgorICAgIHR5
cGVkZWYgVmVjdG9yPE5hbWVzcGFjZSwgMT4gU3RhdGU7CisKKyAgICBleHBsaWNpdCBIVE1MVHJl
ZUJ1aWxkZXJTaW11bGF0b3IoY29uc3QgSFRNTFBhcnNlck9wdGlvbnMmKTsKKworICAgIHN0YXRp
YyBTdGF0ZSBzdGF0ZUZvcihIVE1MVHJlZUJ1aWxkZXIqKTsKKworICAgIGNvbnN0IFN0YXRlJiBz
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZXNwYWNlU3RhY2s7IH0KKyAgICB2b2lkIHNldFN0
YXRlKGNvbnN0IFN0YXRlJiBzdGF0ZSkgeyBtX25hbWVzcGFjZVN0YWNrID0gc3RhdGU7IH0KKwor
ICAgIGJvb2wgc2ltdWxhdGUoY29uc3QgQ29tcGFjdEhUTUxUb2tlbiYsIEhUTUxUb2tlbml6ZXIq
KTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3IoSFRN
TFRyZWVCdWlsZGVyKik7CisKICAgICBib29sIGluRm9yZWlnbkNvbnRlbnQoKSBjb25zdCB7IHJl
dHVybiBtX25hbWVzcGFjZVN0YWNrLmxhc3QoKSAhPSBIVE1MOyB9CiAKICAgICBIVE1MUGFyc2Vy
T3B0aW9ucyBtX29wdGlvbnM7Ci0gICAgVmVjdG9yPE5hbWVzcGFjZSwgMT4gbV9uYW1lc3BhY2VT
dGFjazsKKyAgICBTdGF0ZSBtX25hbWVzcGFjZVN0YWNrOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUxZDZi
NjRkMDM5YzhmOGQzZTMxODE3OTU5ZjJkZjQ1ZjU5OWRiMzguLjAyYjk1OGUyYmU3NmNiMDA0ZWQ1
MTM5Y2ZkNjEyODc1MWE3NmNiMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMy0xMSAg
QWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgQmFja2dyb3Vu
ZEhUTUxQYXJzZXIgd29yayB3aXRoIGRvYy53cml0ZXMgdGhhdCBlbnRlciBvciBsZWF2ZSBmb3Jl
aWduIGNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTc2NAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgorCisgICAgICAg
ICogZmFzdC9wYXJzZXIvZG9jdW1lbnQtd3JpdGUtc3ZnLWNkYXRhLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9wYXJzZXIvZG9jdW1lbnQtd3JpdGUtc3ZnLWNkYXRhLmh0bWw6
IEFkZGVkLgorCiAyMDEzLTAzLTExICBDaHJpc3RpYW4gQmllc2luZ2VyICA8Y2JpZXNpbmdlckBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgKHRlc3RzKSBtYWtlIG5vZGVzRnJvbVJlY3QuanMgcHJp
bnQgYSBsaXN0IG9mIG5vZGVzIHRoYXQgd2VyZSBmb3VuZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wYXJzZXIvZG9jdW1lbnQtd3JpdGUtc3ZnLWNkYXRhLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvcGFyc2VyL2RvY3VtZW50LXdyaXRlLXN2Zy1jZGF0YS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjEzMGRmODNkMGRiNTU1ZmYyMzg4YzFmODZjZDFkZDY2YWViMmUzYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2RvY3VtZW50LXdyaXRl
LXN2Zy1jZGF0YS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorfCA8aHRtbD4KK3wgICA8
aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8ICAgICAgIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAt
YXMtbWFya3VwLmpzIgorfCAgICAgIgorIgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIgorZG9j
dW1lbnQud3JpdGUoIjxzdmc+Iik7CisiCit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wg
ICAgICAgIgorCitUaGlzIHNob3VsZCA8c3Ryb25nPm5vdDwvc3Ryb25nPiBiZSBib2xkIQorCisi
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9kb2N1bWVudC13cml0ZS1zdmct
Y2RhdGEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2RvY3VtZW50LXdyaXRlLXN2Zy1j
ZGF0YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzYzA4NGI5YjkzMTFiMzRiYmRmYWIxMDJmOGQ4YTRiOWFh
YjAwOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9kb2N1bWVu
dC13cml0ZS1zdmctY2RhdGEuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2RvY3Vt
ZW50LndyaXRlKCI8c3ZnPiIpOworPC9zY3JpcHQ+Cis8IVtDREFUQVsKK1RoaXMgc2hvdWxkIDxz
dHJvbmc+bm90PC9zdHJvbmc+IGJlIGJvbGQhCitdXT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192598</attachid>
            <date>2013-03-11 17:02:04 -0700</date>
            <delta_ts>2013-03-11 19:12:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-109764-20130311165803.patch</filename>
            <type>text/plain</type>
            <size>12912</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NTQzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDEzLTAzLTExICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBCYWNrZ3JvdW5kSFRNTFBh
cnNlciB3b3JrIHdpdGggZG9jLndyaXRlcyB0aGF0IGVudGVyIG9yIGxlYXZlIGZvcmVpZ24gY29u
dGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5
NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCisKKyAgICAgICAgUHJldmlv
dXNseSwgd2Ugd2VyZSBub3QgcmVzZXRpbmcgdGhlIHN0YXRlIG9mIHRoZQorICAgICAgICBIVE1M
VHJlZUJ1aWxkZXJTaW11bGF0b3Igd2hlbiB3ZSBmYWlsZWQgc3BlY3VsYXRpdmUgcGFyc2luZy4g
VGhpcyBoYWQgYQorICAgICAgICBudW1iZXIgb2Ygb2JzZXJ2YWJsZSBjb25zZXF1ZW5jZXMsIGlu
Y2x1ZGluZyBub3QgcGFyc2luZyBDREFUQSBzZWN0aW9ucworICAgICAgICBjb3JyZWN0bHkgd2hl
biBkb2N1bWVudC53cml0ZSBjYXVzZWQgdXMgdG8gZW50ZXIgZm9yZWlnbiBjb250ZW50LgorCisg
ICAgICAgIFRlc3Q6IGZhc3QvcGFyc2VyL2RvY3VtZW50LXdyaXRlLXN2Zy1jZGF0YS5odG1sCisK
KyAgICAgICAgKiBodG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6QmFja2dyb3VuZEhUTUxQYXJzZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OnJlc3VtZUZyb20pOgorICAg
ICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OnB1bXBUb2tlbml6ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6QmFja2dyb3VuZEhUTUxQYXJzZXI6OnNlbmRUb2tlbnNUb01haW5UaHJl
YWQpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmg6CisgICAg
ICAgIChDaGVja3BvaW50KToKKyAgICAgICAgKEJhY2tncm91bmRIVE1MUGFyc2VyKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTERvY3VtZW50UGFyc2VyOjp2YWxpZGF0ZVNwZWN1bGF0aW9ucyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OmRpZEZhaWxTcGVjdWxhdGlvbik6CisgICAgICAg
ICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChQYXJzZWRDaHVu
ayk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEVsZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZDo6bmFtZXNwYWNlVVJJKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJl
ZUJ1aWxkZXI6Om9wZW5FbGVtZW50cyk6CisgICAgICAgIChIVE1MVHJlZUJ1aWxkZXIpOgorICAg
ICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVsYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3I6OnN0YXRlRm9yKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVsYXRv
ci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxk
ZXJTaW11bGF0b3I6OnN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlclNp
bXVsYXRvcjo6c2V0U3RhdGUpOgorICAgICAgICAoSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yKToK
KwogMjAxMy0wMy0xMSAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgSW5kZXhlZERCOiBQcm90ZWN0IGFnYWluc3Qga2V5IHByZWZpeCBvdmVyZmxvd3MKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBh
cnNlci5jcHAJKHJldmlzaW9uIDE0NTQzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsOSArNjUsOSBA
QCBzdGF0aWMgY29uc3Qgc2l6ZV90IHBlbmRpbmdUb2tlbkxpbWl0ID0KIAogQmFja2dyb3VuZEhU
TUxQYXJzZXI6OkJhY2tncm91bmRIVE1MUGFyc2VyKFBhc3NSZWZQdHI8V2Vha1JlZmVyZW5jZTxC
YWNrZ3JvdW5kSFRNTFBhcnNlcj4gPiByZWZlcmVuY2UsIFBhc3NPd25QdHI8Q29uZmlndXJhdGlv
bj4gY29uZmlnKQogICAgIDogbV93ZWFrRmFjdG9yeShyZWZlcmVuY2UsIHRoaXMpCi0gICAgLCBt
X3RyZWVCdWlsZGVyU2ltdWxhdG9yKGNvbmZpZy0+b3B0aW9ucykKICAgICAsIG1fdG9rZW4oYWRv
cHRQdHIobmV3IEhUTUxUb2tlbikpCiAgICAgLCBtX3Rva2VuaXplcihIVE1MVG9rZW5pemVyOjpj
cmVhdGUoY29uZmlnLT5vcHRpb25zKSkKKyAgICAsIG1fdHJlZUJ1aWxkZXJTaW11bGF0b3IoY29u
ZmlnLT5vcHRpb25zKQogICAgICwgbV9vcHRpb25zKGNvbmZpZy0+b3B0aW9ucykKICAgICAsIG1f
cGFyc2VyKGNvbmZpZy0+cGFyc2VyKQogICAgICwgbV9wZW5kaW5nVG9rZW5zKGFkb3B0UHRyKG5l
dyBDb21wYWN0SFRNTFRva2VuU3RyZWFtKSkKQEAgLTg4LDYgKzg4LDcgQEAgdm9pZCBCYWNrZ3Jv
dW5kSFRNTFBhcnNlcjo6cmVzdW1lRnJvbShQYQogICAgIG1fcGFyc2VyID0gY2hlY2twb2ludC0+
cGFyc2VyOwogICAgIG1fdG9rZW4gPSBjaGVja3BvaW50LT50b2tlbi5yZWxlYXNlKCk7CiAgICAg
bV90b2tlbml6ZXIgPSBjaGVja3BvaW50LT50b2tlbml6ZXIucmVsZWFzZSgpOworICAgIG1fdHJl
ZUJ1aWxkZXJTaW11bGF0b3Iuc2V0U3RhdGUoY2hlY2twb2ludC0+dHJlZUJ1aWxkZXJTdGF0ZSk7
CiAgICAgbV9pbnB1dC5yZXdpbmRUbyhjaGVja3BvaW50LT5pbnB1dENoZWNrcG9pbnQsIGNoZWNr
cG9pbnQtPnVucGFyc2VkSW5wdXQpOwogICAgIG1fcHJlbG9hZFNjYW5uZXItPnJld2luZFRvKGNo
ZWNrcG9pbnQtPnByZWxvYWRTY2FubmVyQ2hlY2twb2ludCk7CiAgICAgcHVtcFRva2VuaXplcigp
OwpAQCAtMTc0LDYgKzE3NSw3IEBAIHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnNlbmRUb2tl
bnNUb00KICAgICBjaHVuay0+cHJlbG9hZHMuc3dhcChtX3BlbmRpbmdQcmVsb2Fkcyk7CiAgICAg
Y2h1bmstPnhzc0luZm9zLnN3YXAobV9wZW5kaW5nWFNTSW5mb3MpOwogICAgIGNodW5rLT50b2tl
bml6ZXJTdGF0ZSA9IG1fdG9rZW5pemVyLT5zdGF0ZSgpOworICAgIGNodW5rLT50cmVlQnVpbGRl
clN0YXRlID0gbV90cmVlQnVpbGRlclNpbXVsYXRvci5zdGF0ZSgpOwogICAgIGNodW5rLT5pbnB1
dENoZWNrcG9pbnQgPSBtX2lucHV0LmNyZWF0ZUNoZWNrcG9pbnQoKTsKICAgICBjaHVuay0+cHJl
bG9hZFNjYW5uZXJDaGVja3BvaW50ID0gbV9wcmVsb2FkU2Nhbm5lci0+Y3JlYXRlQ2hlY2twb2lu
dCgpOwogICAgIGNhbGxPbk1haW5UaHJlYWQoYmluZCgmSFRNTERvY3VtZW50UGFyc2VyOjpkaWRS
ZWNlaXZlUGFyc2VkQ2h1bmtGcm9tQmFja2dyb3VuZFBhcnNlciwgbV9wYXJzZXIsIGNodW5rLnJl
bGVhc2UoKSkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhU
TUxQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNr
Z3JvdW5kSFRNTFBhcnNlci5oCShyZXZpc2lvbiAxNDU0MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw2
ICs2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgV2Vha1B0cjxIVE1MRG9jdW1lbnRQYXJzZXI+IHBh
cnNlcjsKICAgICAgICAgT3duUHRyPEhUTUxUb2tlbj4gdG9rZW47CiAgICAgICAgIE93blB0cjxI
VE1MVG9rZW5pemVyPiB0b2tlbml6ZXI7CisgICAgICAgIEhUTUxUcmVlQnVpbGRlclNpbXVsYXRv
cjo6U3RhdGUgdHJlZUJ1aWxkZXJTdGF0ZTsKICAgICAgICAgSFRNTElucHV0Q2hlY2twb2ludCBp
bnB1dENoZWNrcG9pbnQ7CiAgICAgICAgIFRva2VuUHJlbG9hZFNjYW5uZXJDaGVja3BvaW50IHBy
ZWxvYWRTY2FubmVyQ2hlY2twb2ludDsKICAgICAgICAgU3RyaW5nIHVucGFyc2VkSW5wdXQ7CkBA
IC05MCw5ICs5MSw5IEBAIHByaXZhdGU6CiAgICAgV2Vha1B0ckZhY3Rvcnk8QmFja2dyb3VuZEhU
TUxQYXJzZXI+IG1fd2Vha0ZhY3Rvcnk7CiAgICAgQmFja2dyb3VuZEhUTUxJbnB1dFN0cmVhbSBt
X2lucHV0OwogICAgIEhUTUxTb3VyY2VUcmFja2VyIG1fc291cmNlVHJhY2tlcjsKLSAgICBIVE1M
VHJlZUJ1aWxkZXJTaW11bGF0b3IgbV90cmVlQnVpbGRlclNpbXVsYXRvcjsKICAgICBPd25QdHI8
SFRNTFRva2VuPiBtX3Rva2VuOwogICAgIE93blB0cjxIVE1MVG9rZW5pemVyPiBtX3Rva2VuaXpl
cjsKKyAgICBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3IgbV90cmVlQnVpbGRlclNpbXVsYXRvcjsK
ICAgICBIVE1MUGFyc2VyT3B0aW9ucyBtX29wdGlvbnM7CiAgICAgV2Vha1B0cjxIVE1MRG9jdW1l
bnRQYXJzZXI+IG1fcGFyc2VyOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRG9jdW1lbnRQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAJKHJldmlzaW9uIDE0NTQzNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM1NCw3ICszNTQsOCBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6dmFsaWRhdGVT
cGVjdWxhCiAgICAgLy8gc29waGlzdGljYXRlZCB3aXRoIHRoZSBIVE1MVG9rZW4uCiAgICAgaWYg
KG1fY3VycmVudENodW5rLT50b2tlbml6ZXJTdGF0ZSA9PSBIVE1MVG9rZW5pemVyOjpEYXRhU3Rh
dGUKICAgICAgICAgJiYgdG9rZW5pemVyLT5zdGF0ZSgpID09IEhUTUxUb2tlbml6ZXI6OkRhdGFT
dGF0ZQotICAgICAgICAmJiBtX2lucHV0LmN1cnJlbnQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAg
JiYgbV9pbnB1dC5jdXJyZW50KCkuaXNFbXB0eSgpCisgICAgICAgICYmIG1fY3VycmVudENodW5r
LT50cmVlQnVpbGRlclN0YXRlID09IEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvcjo6c3RhdGVGb3Io
bV90cmVlQnVpbGRlci5nZXQoKSkpIHsKICAgICAgICAgQVNTRVJUKHRva2VuLT5pc1VuaW5pdGlh
bGl6ZWQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNzEsNiArMzcyLDcgQEAgdm9p
ZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmRpZEZhaWxTcGVjdWxhdAogICAgIGNoZWNrcG9pbnQtPnBh
cnNlciA9IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOwogICAgIGNoZWNrcG9pbnQtPnRv
a2VuID0gdG9rZW47CiAgICAgY2hlY2twb2ludC0+dG9rZW5pemVyID0gdG9rZW5pemVyOworICAg
IGNoZWNrcG9pbnQtPnRyZWVCdWlsZGVyU3RhdGUgPSBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3I6
OnN0YXRlRm9yKG1fdHJlZUJ1aWxkZXIuZ2V0KCkpOwogICAgIGNoZWNrcG9pbnQtPmlucHV0Q2hl
Y2twb2ludCA9IG1fY3VycmVudENodW5rLT5pbnB1dENoZWNrcG9pbnQ7CiAgICAgY2hlY2twb2lu
dC0+cHJlbG9hZFNjYW5uZXJDaGVja3BvaW50ID0gbV9jdXJyZW50Q2h1bmstPnByZWxvYWRTY2Fu
bmVyQ2hlY2twb2ludDsKICAgICBjaGVja3BvaW50LT51bnBhcnNlZElucHV0ID0gbV9pbnB1dC5j
dXJyZW50KCkudG9TdHJpbmcoKS5pc29sYXRlZENvcHkoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCShyZXZpc2lvbiAxNDU0MzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkhUTUxTb3VyY2VUcmFja2Vy
LmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgor
I2luY2x1ZGUgIkhUTUxUcmVlQnVpbGRlclNpbXVsYXRvci5oIgogI2luY2x1ZGUgIlNjcmlwdGFi
bGVEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCkBAIC05MSw2ICs5Miw3IEBAIHB1YmxpYzoKICAgICAgICAgUHJlbG9hZFJl
cXVlc3RTdHJlYW0gcHJlbG9hZHM7CiAgICAgICAgIFhTU0luZm9TdHJlYW0geHNzSW5mb3M7CiAg
ICAgICAgIEhUTUxUb2tlbml6ZXI6OlN0YXRlIHRva2VuaXplclN0YXRlOworICAgICAgICBIVE1M
VHJlZUJ1aWxkZXJTaW11bGF0b3I6OlN0YXRlIHRyZWVCdWlsZGVyU3RhdGU7CiAgICAgICAgIEhU
TUxJbnB1dENoZWNrcG9pbnQgaW5wdXRDaGVja3BvaW50OwogICAgICAgICBUb2tlblByZWxvYWRT
Y2FubmVyQ2hlY2twb2ludCBwcmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQ7CiAgICAgfTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgJKHJldmlz
aW9uIDE0NTQzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3Rh
Y2suaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAg
ICAgIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2l0ZW0tPmVsZW1lbnQoKTsg
fQogICAgICAgICBDb250YWluZXJOb2RlKiBub2RlKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtLT5u
b2RlKCk7IH0KKyAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkkoKSBjb25z
dCB7IHJldHVybiBtX2l0ZW0tPm5hbWVzcGFjZVVSSSgpOyB9CiAgICAgICAgIFBhc3NSZWZQdHI8
SFRNTFN0YWNrSXRlbT4gc3RhY2tJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtOyB9CiAgICAg
ICAgIHZvaWQgcmVwbGFjZUVsZW1lbnQoUGFzc1JlZlB0cjxIVE1MU3RhY2tJdGVtPik7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCShyZXZp
c2lvbiAxNDU0MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxk
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsOCBAQCBwdWJsaWM6CiAgICAgfQogICAg
IH5IVE1MVHJlZUJ1aWxkZXIoKTsKIAorICAgIGNvbnN0IEhUTUxFbGVtZW50U3RhY2sqIG9wZW5F
bGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdHJlZS5vcGVuRWxlbWVudHMoKTsgfQorCiAgICAg
Ym9vbCBpc1BhcnNpbmdGcmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuICEhbV9mcmFnbWVudENvbnRl
eHQuZnJhZ21lbnQoKTsgfQogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQogICAgIGJvb2wg
aXNQYXJzaW5nVGVtcGxhdGVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+aGFzVGVtcGxhdGVJbkhUTUxTY29wZSgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlclNpbXVsYXRvci5jcHAJ
KHJldmlzaW9uIDE0NTQzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVl
QnVpbGRlclNpbXVsYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5j
bHVkZSAiSFRNTFRva2VuaXplci5oIgorI2luY2x1ZGUgIkhUTUxUcmVlQnVpbGRlci5oIgogI2lu
Y2x1ZGUgIk1hdGhNTE5hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKIApAQCAtMTE3LDYg
KzExOCwyNCBAQCBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3I6OkhUTUxUcmVlQnVpbGRlCiAgICAg
bV9uYW1lc3BhY2VTdGFjay5hcHBlbmQoSFRNTCk7CiB9CiAKK0hUTUxUcmVlQnVpbGRlclNpbXVs
YXRvcjo6U3RhdGUgSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yOjpzdGF0ZUZvcihIVE1MVHJlZUJ1
aWxkZXIqIHRyZWVCdWlsZGVyKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
U3RhdGUgbmFtZXNwYWNlU3RhY2s7CisgICAgZm9yIChIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50
UmVjb3JkKiByZWNvcmQgPSB0cmVlQnVpbGRlci0+b3BlbkVsZW1lbnRzKCktPnRvcFJlY29yZCgp
OyByZWNvcmQ7IHJlY29yZCA9IHJlY29yZC0+bmV4dCgpKSB7CisgICAgICAgIE5hbWVzcGFjZSBj
dXJyZW50TmFtZXNwYWNlID0gSFRNTDsKKyAgICAgICAgaWYgKHJlY29yZC0+bmFtZXNwYWNlVVJJ
KCkgPT0gU1ZHTmFtZXM6OnN2Z05hbWVzcGFjZVVSSSkKKyAgICAgICAgICAgIGN1cnJlbnROYW1l
c3BhY2UgPSBTVkc7CisgICAgICAgIGVsc2UgaWYgKHJlY29yZC0+bmFtZXNwYWNlVVJJKCkgPT0g
TWF0aE1MTmFtZXM6Om1hdGhtbE5hbWVzcGFjZVVSSSkKKyAgICAgICAgICAgIGN1cnJlbnROYW1l
c3BhY2UgPSBNYXRoTUw7CisKKyAgICAgICAgaWYgKG5hbWVzcGFjZVN0YWNrLmlzRW1wdHkoKSB8
fCBuYW1lc3BhY2VTdGFjay5sYXN0KCkgIT0gY3VycmVudE5hbWVzcGFjZSkKKyAgICAgICAgICAg
IG5hbWVzcGFjZVN0YWNrLmFwcGVuZChjdXJyZW50TmFtZXNwYWNlKTsKKyAgICB9CisgICAgbmFt
ZXNwYWNlU3RhY2sucmV2ZXJzZSgpOworICAgIHJldHVybiBuYW1lc3BhY2VTdGFjazsKK30KKwog
Ym9vbCBIVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3I6OnNpbXVsYXRlKGNvbnN0IENvbXBhY3RIVE1M
VG9rZW4mIHRva2VuLCBIVE1MVG9rZW5pemVyKiB0b2tlbml6ZXIpCiB7CiAgICAgaWYgKHRva2Vu
LnR5cGUoKSA9PSBIVE1MVG9rZW46OlN0YXJ0VGFnKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXJTaW11bGF0b3IuaAkocmV2aXNp
b24gMTQ1NDM1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVy
U2ltdWxhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE5ICsyOSwxNyBAQAogI2lmIEVOQUJM
RShUSFJFQURFRF9IVE1MX1BBUlNFUikKIAogI2luY2x1ZGUgIkhUTUxQYXJzZXJPcHRpb25zLmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29tcGFjdEhUTUxUb2tlbjsKIGNsYXNzIEhU
TUxUb2tlbml6ZXI7CitjbGFzcyBIVE1MVHJlZUJ1aWxkZXI7CiAKIGNsYXNzIEhUTUxUcmVlQnVp
bGRlclNpbXVsYXRvciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0g
ICAgZXhwbGljaXQgSFRNTFRyZWVCdWlsZGVyU2ltdWxhdG9yKGNvbnN0IEhUTUxQYXJzZXJPcHRp
b25zJik7Ci0gICAgYm9vbCBzaW11bGF0ZShjb25zdCBDb21wYWN0SFRNTFRva2VuJiwgSFRNTFRv
a2VuaXplciopOwotCiBwcml2YXRlOgogICAgIGVudW0gTmFtZXNwYWNlIHsKICAgICAgICAgSFRN
TCwKQEAgLTQ5LDEwICs0NywyNSBAQCBwcml2YXRlOgogICAgICAgICBNYXRoTUwKICAgICB9Owog
CitwdWJsaWM6CisgICAgdHlwZWRlZiBWZWN0b3I8TmFtZXNwYWNlLCAxPiBTdGF0ZTsKKworICAg
IGV4cGxpY2l0IEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvcihjb25zdCBIVE1MUGFyc2VyT3B0aW9u
cyYpOworCisgICAgc3RhdGljIFN0YXRlIHN0YXRlRm9yKEhUTUxUcmVlQnVpbGRlciopOworCisg
ICAgY29uc3QgU3RhdGUmIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lc3BhY2VTdGFjazsg
fQorICAgIHZvaWQgc2V0U3RhdGUoY29uc3QgU3RhdGUmIHN0YXRlKSB7IG1fbmFtZXNwYWNlU3Rh
Y2sgPSBzdGF0ZTsgfQorCisgICAgYm9vbCBzaW11bGF0ZShjb25zdCBDb21wYWN0SFRNTFRva2Vu
JiwgSFRNTFRva2VuaXplciopOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IEhUTUxUcmVlQnVp
bGRlclNpbXVsYXRvcihIVE1MVHJlZUJ1aWxkZXIqKTsKKwogICAgIGJvb2wgaW5Gb3JlaWduQ29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZXNwYWNlU3RhY2subGFzdCgpICE9IEhUTUw7IH0K
IAogICAgIEhUTUxQYXJzZXJPcHRpb25zIG1fb3B0aW9uczsKLSAgICBWZWN0b3I8TmFtZXNwYWNl
LCAxPiBtX25hbWVzcGFjZVN0YWNrOworICAgIFN0YXRlIG1fbmFtZXNwYWNlU3RhY2s7CiB9Owog
CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDU0MzUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMy0xMSAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgQmFja2dyb3VuZEhUTUxQYXJzZXIg
d29yayB3aXRoIGRvYy53cml0ZXMgdGhhdCBlbnRlciBvciBsZWF2ZSBmb3JlaWduIGNvbnRlbnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTc2NAor
CisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgorCisgICAgICAgICogZmFzdC9wYXJz
ZXIvZG9jdW1lbnQtd3JpdGUtc3ZnLWNkYXRhLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9wYXJzZXIvZG9jdW1lbnQtd3JpdGUtc3ZnLWNkYXRhLmh0bWw6IEFkZGVkLgorCiAy
MDEzLTAzLTExICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgRGUtZmxha2UgZmFzdC9kb20vdGl0bGUtZGlyZWN0aW9uYWxpdHkuaHRtbApJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9wYXJzZXIvZG9jdW1lbnQtd3JpdGUtc3ZnLWNkYXRhLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9kb2N1bWVudC13cml0ZS1z
dmctY2RhdGEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9w
YXJzZXIvZG9jdW1lbnQtd3JpdGUtc3ZnLWNkYXRhLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxNyBAQAorfCA8aHRtbD4KK3wgICA8aGVhZD4KK3wgICAgIDxzY3JpcHQ+Cit8
ICAgICAgIHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIgorfCAgICAgIgor
IgorfCAgICAgPHNjcmlwdD4KK3wgICAgICAgIgorZG9jdW1lbnQud3JpdGUoIjxzdmc+Iik7Cisi
Cit8ICAgPGJvZHk+Cit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgIgorCitUaGlzIHNob3VsZCA8
c3Ryb25nPm5vdDwvc3Ryb25nPiBiZSBib2xkIQorCisiCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L3BhcnNlci9kb2N1bWVudC13cml0ZS1zdmctY2RhdGEuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L3BhcnNlci9kb2N1bWVudC13cml0ZS1zdmctY2RhdGEuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2RvY3VtZW50LXdyaXRlLXN2Zy1jZGF0
YS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2RvY3VtZW50
LndyaXRlKCI8c3ZnPiIpOworPC9zY3JpcHQ+Cis8IVtDREFUQVsKK1RoaXMgc2hvdWxkIDxzdHJv
bmc+bm90PC9zdHJvbmc+IGJlIGJvbGQhCitdXT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>