<?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>108666</bug_id>
          
          <creation_ts>2013-02-01 11:07:11 -0800</creation_ts>
          <short_desc>Continue making XSSAuditor thread safe: Remove dependency on the parser&apos;s tokenizer</short_desc>
          <delta_ts>2013-02-05 14:40:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>106127</blocked>
    
    <blocked>107603</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Tony Gentilcore">tonyg</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>dbates</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>822993</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-01 11:07:11 -0800</bug_when>
    <thetext>Continue making XSSAuditor thread safe: Remove dependency on the parser&apos;s tokenizer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822995</commentid>
    <comment_count>1</comment_count>
      <attachid>186082</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-01 11:07:37 -0800</bug_when>
    <thetext>Created attachment 186082
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823008</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-01 11:18:14 -0800</bug_when>
    <thetext>I&apos;m not thrilled with the addition of a new method, but the only alternative I could think of is to pass the tokenizer or shouldAllowCDATA to the filterToken() method which seemed even worse. Let me know if you have any preferences or better ideas here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823059</commentid>
    <comment_count>3</comment_count>
      <attachid>186082</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-01 11:44:59 -0800</bug_when>
    <thetext>Comment on attachment 186082
Patch

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

&gt; Source/WebCore/html/parser/HTMLDocumentParser.cpp:95
&gt; +    m_xssAuditor.setTokenizer(m_tokenizer.get());

Hum...  This approach look dangerous because m_tokenizer now has a shorter lifetime than HTMLDocumentParser and therefore m_xssAuditor.  We do that because we now have the ability to move the tokenizer back and forth between the main and background thread.

Can we pass the tokenizer each time we call filterToken?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823108</commentid>
    <comment_count>4</comment_count>
      <attachid>186100</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-01 12:11:15 -0800</bug_when>
    <thetext>Created attachment 186100
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823110</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-01 12:12:11 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 186082 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186082&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/parser/HTMLDocumentParser.cpp:95
&gt; &gt; +    m_xssAuditor.setTokenizer(m_tokenizer.get());
&gt; 
&gt; Hum...  This approach look dangerous because m_tokenizer now has a shorter lifetime than HTMLDocumentParser and therefore m_xssAuditor.  We do that because we now have the ability to move the tokenizer back and forth between the main and background thread.
&gt; 
&gt; Can we pass the tokenizer each time we call filterToken?

I went with just passing the shouldAllowCDATA bool. LMK what you think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823139</commentid>
    <comment_count>6</comment_count>
      <attachid>186100</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-01 12:38:38 -0800</bug_when>
    <thetext>Comment on attachment 186100
Patch

Attachment 186100 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16335011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823156</commentid>
    <comment_count>7</comment_count>
      <attachid>186112</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-01 12:50:59 -0800</bug_when>
    <thetext>Created attachment 186112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823732</commentid>
    <comment_count>8</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-02 16:34:32 -0800</bug_when>
    <thetext>This will need rebasing after bug 108698.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825666</commentid>
    <comment_count>9</comment_count>
      <attachid>186666</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-05 11:27:22 -0800</bug_when>
    <thetext>Created attachment 186666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825770</commentid>
    <comment_count>10</comment_count>
      <attachid>186666</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-05 13:26:49 -0800</bug_when>
    <thetext>Comment on attachment 186666
Patch

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

&gt; Source/WebCore/html/parser/HTMLDocumentParser.cpp:85
&gt; +    , m_xssAuditor()

This line probably isn&apos;t need.  The compiler will call the default constructor for us.

&gt; Source/WebCore/html/parser/HTMLDocumentParser.cpp:105
&gt; +    , m_xssAuditor()

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825816</commentid>
    <comment_count>11</comment_count>
      <attachid>186705</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-05 14:21:37 -0800</bug_when>
    <thetext>Created attachment 186705
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825818</commentid>
    <comment_count>12</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-05 14:22:01 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 186666 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186666&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/parser/HTMLDocumentParser.cpp:85
&gt; &gt; +    , m_xssAuditor()
&gt; 
&gt; This line probably isn&apos;t need.  The compiler will call the default constructor for us.

Fixed

&gt; 
&gt; &gt; Source/WebCore/html/parser/HTMLDocumentParser.cpp:105
&gt; &gt; +    , m_xssAuditor()
&gt; 
&gt; ditto

Fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825834</commentid>
    <comment_count>13</comment_count>
      <attachid>186705</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-05 14:40:35 -0800</bug_when>
    <thetext>Comment on attachment 186705
Patch for landing

Clearing flags on attachment: 186705

Committed r141938: &lt;http://trac.webkit.org/changeset/141938&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825835</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-05 14:40:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186082</attachid>
            <date>2013-02-01 11:07:37 -0800</date>
            <delta_ts>2013-02-01 12:11:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108666-20130201110420.patch</filename>
            <type>text/plain</type>
            <size>4522</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzllYmI2YWRjM2M4NDY5
NjY4NjJjMTQ4YjVjNjc1NzYzNTRjZjEwYS4uZDhlZGU2ZTk0MzYwOWNiNjA5N2ZhNGY2N2I4ZWM1
ODIyMTYyMGNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAyLTAxICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29udGludWUgbWFr
aW5nIFhTU0F1ZGl0b3IgdGhyZWFkIHNhZmU6IFJlbW92ZSBkZXBlbmRlbmN5IG9uIHRoZSBwYXJz
ZXIncyB0b2tlbml6ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwODY2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIG5vIG5ldyBmdW5jdGlvbmFsaXR5LgorCisgICAg
ICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKToKKyAgICAgICAgKiBo
dG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6
OlhTU0F1ZGl0b3IpOgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6ZmlsdGVyVG9rZW4p
OgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6ZmlsdGVyU2NyaXB0VG9rZW4pOgorICAg
ICAgICAqIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6c2V0VG9rZW5pemVyKToKKwogMjAxMy0wMi0wMSAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBbZmlsZSBzZWxlY3RvciBkaWFsb2ddIGZvciBtaXhlZCBjYXNlIHF1ZXJpZXMsIHNj
b3JlIHVwcGVyY2FzZSBsZXR0ZXJzIG9ubHkgd2hlbiBhc3Nlc3NpbmcgY2FtZWxjYXNlLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKaW5k
ZXggNzJmZWJlYmI4YTVhZDRmZmQ2MDZmOGUwYzc1ZjIyNzhjZDFhY2ViMC4uNmVjYzhlZWJkM2Rm
NzI1YWY4NTIyYzg3ZTQxYmZkYTFiM2M3MTE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC05Miw2ICs5Miw3IEBAIEhUTUxE
b2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKEhUTUxEb2N1bWVudCogZG9jdW1lbnQs
IGJvb2wgcmVwb3J0RXJyb3JzCiAgICAgLCBtX3B1bXBTZXNzaW9uTmVzdGluZ0xldmVsKDApCiB7
CiAgICAgQVNTRVJUKHNob3VsZFVzZVRocmVhZGluZygpIHx8IChtX3Rva2VuICYmIG1fdG9rZW5p
emVyKSk7CisgICAgbV94c3NBdWRpdG9yLnNldFRva2VuaXplcihtX3Rva2VuaXplci5nZXQoKSk7
CiB9CiAKIC8vIEZJWE1FOiBNZW1iZXIgdmFyaWFibGVzIHNob3VsZCBiZSBncm91cGVkIGludG8g
c2VsZi1pbml0aWFsaXppbmcgc3RydWN0cyB0bwpAQCAtMTE0LDYgKzExNSw3IEBAIEhUTUxEb2N1
bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKERvY3VtZW50RnJhZ21lbnQqIGZyYWdtZW50
LCBFbGVtZW50KiBjb250CiAgICAgQVNTRVJUKCFzaG91bGRVc2VUaHJlYWRpbmcoKSk7CiAgICAg
Ym9vbCByZXBvcnRFcnJvcnMgPSBmYWxzZTsgLy8gRm9yIG5vdyBkb2N1bWVudCBmcmFnbWVudCBw
YXJzaW5nIG5ldmVyIHJlcG9ydHMgZXJyb3JzLgogICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZSh0
b2tlbml6ZXJTdGF0ZUZvckNvbnRleHRFbGVtZW50KGNvbnRleHRFbGVtZW50LCByZXBvcnRFcnJv
cnMsIG1fb3B0aW9ucykpOworICAgIG1feHNzQXVkaXRvci5zZXRUb2tlbml6ZXIobV90b2tlbml6
ZXIuZ2V0KCkpOwogfQogCiBIVE1MRG9jdW1lbnRQYXJzZXI6On5IVE1MRG9jdW1lbnRQYXJzZXIo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcAppbmRleCBhMzQxMzJk
MmMwNWEzNmVmZTE1NWQ5YjlmNTRkMTI0NGZmN2M3NWQyLi4wYzczYmYxYjdhYTJjNzU0YTVjOTgw
NmJkYjljYWUwNDkxZDFkNzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9YU1NBdWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRp
dG9yLmNwcApAQCAtMTcwLDYgKzE3MCw3IEBAIHN0YXRpYyBTdHJpbmcgZnVsbHlEZWNvZGVTdHJp
bmcoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFRleHRSZXNvdXJjZURlY29kZXIqCiAKIFhT
U0F1ZGl0b3I6OlhTU0F1ZGl0b3IoSFRNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCiAgICAgOiBt
X3BhcnNlcihwYXJzZXIpCisgICAgLCBtX3Rva2VuaXplcigwKQogICAgICwgbV9pc0VuYWJsZWQo
ZmFsc2UpCiAgICAgLCBtX3hzc1Byb3RlY3Rpb24oWFNTUHJvdGVjdGlvbkVuYWJsZWQpCiAgICAg
LCBtX3N0YXRlKFVuaW5pdGlhbGl6ZWQpCkBAIC0yNzYsNiArMjc3LDcgQEAgdm9pZCBYU1NBdWRp
dG9yOjppbml0KERvY3VtZW50KiBkb2N1bWVudCkKIFBhc3NPd25QdHI8RGlkQmxvY2tTY3JpcHRS
ZXF1ZXN0PiBYU1NBdWRpdG9yOjpmaWx0ZXJUb2tlbihIVE1MVG9rZW4mIHRva2VuKQogewogICAg
IEFTU0VSVChtX3N0YXRlID09IEluaXRpYWxpemVkKTsKKyAgICBBU1NFUlQobV90b2tlbml6ZXIp
OwogICAgIGlmICghbV9pc0VuYWJsZWQgfHwgbV94c3NQcm90ZWN0aW9uID09IFhTU1Byb3RlY3Rp
b25EaXNhYmxlZCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTM1Niw3ICszNTgsNyBA
QCBib29sIFhTU0F1ZGl0b3I6OmZpbHRlclNjcmlwdFRva2VuKEhUTUxUb2tlbiYgdG9rZW4pCiAg
ICAgQVNTRVJUKGhhc05hbWUodG9rZW4sIHNjcmlwdFRhZykpOwogCiAgICAgbV9jYWNoZWREZWNv
ZGVkU25pcHBldCA9IGRlY29kZWRTbmlwcGV0Rm9yTmFtZSh0b2tlbik7Ci0gICAgbV9zaG91bGRB
bGxvd0NEQVRBID0gbV9wYXJzZXItPnRva2VuaXplcigpLT5zaG91bGRBbGxvd0NEQVRBKCk7Cisg
ICAgbV9zaG91bGRBbGxvd0NEQVRBID0gbV90b2tlbml6ZXItPnNob3VsZEFsbG93Q0RBVEEoKTsK
IAogICAgIGlmIChpc0NvbnRhaW5lZEluUmVxdWVzdChkZWNvZGVkU25pcHBldEZvck5hbWUodG9r
ZW4pKSkKICAgICAgICAgcmV0dXJuIGVyYXNlQXR0cmlidXRlSWZJbmplY3RlZCh0b2tlbiwgc3Jj
QXR0ciwgYmxhbmtVUkwoKS5zdHJpbmcoKSwgU3JjTGlrZUF0dHJpYnV0ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmgKaW5kZXggNWRhZGYyOTQzMmNlN2ZkNmE0NjJjNjM0
MTgzNDdhMDkzMDNiNDk3Ni4uNzE4ZDQ2OTM0ZTJmMWE4MDk2NTA3N2QyOWJjNWIyZmNjNTA1NWIy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaApAQCAtMzYsNiArMzYs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEaWRCbG9ja1NjcmlwdFJlcXVlc3Q7CiBj
bGFzcyBEb2N1bWVudDsKIGNsYXNzIEhUTUxEb2N1bWVudFBhcnNlcjsKK2NsYXNzIEhUTUxUb2tl
bml6ZXI7CiAKIGNsYXNzIFhTU0F1ZGl0b3IgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFhT
U0F1ZGl0b3IpOwpAQCAtNDMsNiArNDQsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgWFNTQXVk
aXRvcihIVE1MRG9jdW1lbnRQYXJzZXIqKTsKIAogICAgIHZvaWQgaW5pdChEb2N1bWVudCopOwor
ICAgIHZvaWQgc2V0VG9rZW5pemVyKEhUTUxUb2tlbml6ZXIqIHRva2VuaXplcikgeyBtX3Rva2Vu
aXplciA9IHRva2VuaXplcjsgfQogICAgIFBhc3NPd25QdHI8RGlkQmxvY2tTY3JpcHRSZXF1ZXN0
PiBmaWx0ZXJUb2tlbihIVE1MVG9rZW4mKTsKIAogcHJpdmF0ZToKQEAgLTg1LDYgKzg3LDcgQEAg
cHJpdmF0ZToKIAogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBkZXBlbmRlbmN5LgogICAgIEhU
TUxEb2N1bWVudFBhcnNlciogbV9wYXJzZXI7CisgICAgSFRNTFRva2VuaXplciogbV90b2tlbml6
ZXI7CiAgICAgYm9vbCBtX2lzRW5hYmxlZDsKICAgICBYU1NQcm90ZWN0aW9uRGlzcG9zaXRpb24g
bV94c3NQcm90ZWN0aW9uOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186100</attachid>
            <date>2013-02-01 12:11:15 -0800</date>
            <delta_ts>2013-02-01 12:50:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108666-20130201120758.patch</filename>
            <type>text/plain</type>
            <size>9185</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY4YzcyYTNmMWMwNjM5
Yjk3OTBiMjZiOWE0NjgxMzNhYzZlMjZlMS4uZDYyNDRhZWNkNzNlMGY3MTI3NDg3NjRmZmI3NzZl
OWQ1NzgyNjg2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAyLTAxICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29udGludWUgbWFr
aW5nIFhTU0F1ZGl0b3IgdGhyZWFkIHNhZmU6IFJlbW92ZSBkZXBlbmRlbmN5IG9uIHRoZSBwYXJz
ZXIncyB0b2tlbml6ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwODY2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIG5vIG5ldyBmdW5jdGlvbmFsaXR5LgorCisgICAg
ICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6cHVtcFRva2VuaXplcik6CisgICAgICAgICogaHRtbC9w
YXJzZXIvWFNTQXVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpYU1NB
dWRpdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmZpbHRlclRva2VuKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmZpbHRlclN0YXJ0VG9rZW4pOgorICAgICAgICAo
V2ViQ29yZTo6WFNTQXVkaXRvcjo6ZmlsdGVyRW5kVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6
WFNTQXVkaXRvcjo6ZmlsdGVyQ2hhcmFjdGVyVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6WFNT
QXVkaXRvcjo6ZmlsdGVyU2NyaXB0VG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRv
cjo6ZGVjb2RlZFNuaXBwZXRGb3JKYXZhU2NyaXB0KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9Y
U1NBdWRpdG9yLmg6CisgICAgICAgIChYU1NBdWRpdG9yKToKKwogMjAxMy0wMi0wMSAgQmV0aCBE
YWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3BlY3VsYXRpdmUgV2luZG93cyBi
dWlsZCBmaXguIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERv
Y3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVu
dFBhcnNlci5jcHAKaW5kZXggNzJmZWJlYmI4YTVhZDRmZmQ2MDZmOGUwYzc1ZjIyNzhjZDFhY2Vi
MC4uOTA4ODg1NDA5NjJiNjZlMmZhZDY4OTQ2YjM4MDQxODY0ZDA3ZDBjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0zNzgs
NyArMzc4LDcgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnB1bXBUb2tlbml6ZXIoU3luY2hy
b25vdXNNb2RlIG1vZGUpCiAKICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCBYU1MgZmlsdGVyIGlu
bmVySFRNTCwgd2hpY2ggbWVhbnMgd2UgKGludGVudGlvbmFsbHkpIGZhaWwKICAgICAgICAgICAg
IC8vIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9kb20td3JpdGUtaW5uZXJIVE1MLmh0
bWwKLSAgICAgICAgICAgIE93blB0cjxEaWRCbG9ja1NjcmlwdFJlcXVlc3Q+IHJlcXVlc3QgPSBt
X3hzc0F1ZGl0b3IuZmlsdGVyVG9rZW4odG9rZW4oKSk7CisgICAgICAgICAgICBPd25QdHI8RGlk
QmxvY2tTY3JpcHRSZXF1ZXN0PiByZXF1ZXN0ID0gbV94c3NBdWRpdG9yLmZpbHRlclRva2VuKHRv
a2VuKCksIG1fdG9rZW5pemVyLT5zaG91bGRBbGxvd0NEQVRBKCkpOwogICAgICAgICAgICAgaWYg
KHJlcXVlc3QpCiAgICAgICAgICAgICAgICAgbV94c3NBdWRpdG9yRGVsZWdhdGUuZGlkQmxvY2tT
Y3JpcHQocmVxdWVzdC5yZWxlYXNlKCkpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL1hTU0F1ZGl0b3IuY3BwCmluZGV4IGEzNDEzMmQyYzA1YTM2ZWZlMTU1ZDliOWY1NGQx
MjQ0ZmY3Yzc1ZDIuLjZmN2I4Y2I4NTFlNmMwMjMwMTc4Njk0NDE3NDQ0MjRkNzBkOWVhOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCkBAIC0xNzMsNyArMTcz
LDYgQEAgWFNTQXVkaXRvcjo6WFNTQXVkaXRvcihIVE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikK
ICAgICAsIG1faXNFbmFibGVkKGZhbHNlKQogICAgICwgbV94c3NQcm90ZWN0aW9uKFhTU1Byb3Rl
Y3Rpb25FbmFibGVkKQogICAgICwgbV9zdGF0ZShVbmluaXRpYWxpemVkKQotICAgICwgbV9zaG91
bGRBbGxvd0NEQVRBKGZhbHNlKQogICAgICwgbV9zY3JpcHRUYWdOZXN0aW5nTGV2ZWwoMCkKIHsK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMjczLDcgKzI3Miw3IEBAIHZvaWQgWFNT
QXVkaXRvcjo6aW5pdChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgfQogfQogCi1QYXNzT3duUHRy
PERpZEJsb2NrU2NyaXB0UmVxdWVzdD4gWFNTQXVkaXRvcjo6ZmlsdGVyVG9rZW4oSFRNTFRva2Vu
JiB0b2tlbikKK1Bhc3NPd25QdHI8RGlkQmxvY2tTY3JpcHRSZXF1ZXN0PiBYU1NBdWRpdG9yOjpm
aWx0ZXJUb2tlbihIVE1MVG9rZW4mIHRva2VuLCBib29sIHNob3VsZEFsbG93Q0RBVEEpCiB7CiAg
ICAgQVNTRVJUKG1fc3RhdGUgPT0gSW5pdGlhbGl6ZWQpOwogICAgIGlmICghbV9pc0VuYWJsZWQg
fHwgbV94c3NQcm90ZWN0aW9uID09IFhTU1Byb3RlY3Rpb25EaXNhYmxlZCkKQEAgLTI4MSwxMiAr
MjgwLDEyIEBAIFBhc3NPd25QdHI8RGlkQmxvY2tTY3JpcHRSZXF1ZXN0PiBYU1NBdWRpdG9yOjpm
aWx0ZXJUb2tlbihIVE1MVG9rZW4mIHRva2VuKQogCiAgICAgYm9vbCBkaWRCbG9ja1NjcmlwdCA9
IGZhbHNlOwogICAgIGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OlN0YXJ0VGFn
KQotICAgICAgICBkaWRCbG9ja1NjcmlwdCA9IGZpbHRlclN0YXJ0VG9rZW4odG9rZW4pOworICAg
ICAgICBkaWRCbG9ja1NjcmlwdCA9IGZpbHRlclN0YXJ0VG9rZW4odG9rZW4sIHNob3VsZEFsbG93
Q0RBVEEpOwogICAgIGVsc2UgaWYgKG1fc2NyaXB0VGFnTmVzdGluZ0xldmVsKSB7CiAgICAgICAg
IGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OkNoYXJhY3RlcikKLSAgICAgICAg
ICAgIGRpZEJsb2NrU2NyaXB0ID0gZmlsdGVyQ2hhcmFjdGVyVG9rZW4odG9rZW4pOworICAgICAg
ICAgICAgZGlkQmxvY2tTY3JpcHQgPSBmaWx0ZXJDaGFyYWN0ZXJUb2tlbih0b2tlbiwgc2hvdWxk
QWxsb3dDREFUQSk7CiAgICAgICAgIGVsc2UgaWYgKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW5U
eXBlczo6RW5kVGFnKQotICAgICAgICAgICAgZmlsdGVyRW5kVG9rZW4odG9rZW4pOworICAgICAg
ICAgICAgZmlsdGVyRW5kVG9rZW4odG9rZW4sIHNob3VsZEFsbG93Q0RBVEEpOwogICAgIH0KIAog
ICAgIGlmIChkaWRCbG9ja1NjcmlwdCkgewpAQCAtMzAyLDEzICszMDEsMTMgQEAgUGFzc093blB0
cjxEaWRCbG9ja1NjcmlwdFJlcXVlc3Q+IFhTU0F1ZGl0b3I6OmZpbHRlclRva2VuKEhUTUxUb2tl
biYgdG9rZW4pCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLWJvb2wgWFNTQXVkaXRvcjo6Zmls
dGVyU3RhcnRUb2tlbihIVE1MVG9rZW4mIHRva2VuKQorYm9vbCBYU1NBdWRpdG9yOjpmaWx0ZXJT
dGFydFRva2VuKEhUTUxUb2tlbiYgdG9rZW4sIGJvb2wgc2hvdWxkQWxsb3dDREFUQSkKIHsKICAg
ICBib29sIGRpZEJsb2NrU2NyaXB0ID0gZXJhc2VEYW5nZXJvdXNBdHRyaWJ1dGVzSWZJbmplY3Rl
ZCh0b2tlbik7CiAKICAgICBpZiAoaGFzTmFtZSh0b2tlbiwgc2NyaXB0VGFnKSkgewogICAgICAg
ICBkaWRCbG9ja1NjcmlwdCB8PSBmaWx0ZXJTY3JpcHRUb2tlbih0b2tlbik7Ci0gICAgICAgIEFT
U0VSVChtX3Nob3VsZEFsbG93Q0RBVEEgfHwgIW1fc2NyaXB0VGFnTmVzdGluZ0xldmVsKTsKKyAg
ICAgICAgQVNTRVJUKHNob3VsZEFsbG93Q0RBVEEgfHwgIW1fc2NyaXB0VGFnTmVzdGluZ0xldmVs
KTsKICAgICAgICAgbV9zY3JpcHRUYWdOZXN0aW5nTGV2ZWwrKzsKICAgICB9IGVsc2UgaWYgKGhh
c05hbWUodG9rZW4sIG9iamVjdFRhZykpCiAgICAgICAgIGRpZEJsb2NrU2NyaXB0IHw9IGZpbHRl
ck9iamVjdFRva2VuKHRva2VuKTsKQEAgLTMzMCwxOSArMzI5LDE5IEBAIGJvb2wgWFNTQXVkaXRv
cjo6ZmlsdGVyU3RhcnRUb2tlbihIVE1MVG9rZW4mIHRva2VuKQogICAgIHJldHVybiBkaWRCbG9j
a1NjcmlwdDsKIH0KIAotdm9pZCBYU1NBdWRpdG9yOjpmaWx0ZXJFbmRUb2tlbihIVE1MVG9rZW4m
IHRva2VuKQordm9pZCBYU1NBdWRpdG9yOjpmaWx0ZXJFbmRUb2tlbihIVE1MVG9rZW4mIHRva2Vu
LCBib29sIHNob3VsZEFsbG93Q0RBVEEpCiB7CiAgICAgQVNTRVJUKG1fc2NyaXB0VGFnTmVzdGlu
Z0xldmVsKTsKICAgICBpZiAoaGFzTmFtZSh0b2tlbiwgc2NyaXB0VGFnKSkgewogICAgICAgICBt
X3NjcmlwdFRhZ05lc3RpbmdMZXZlbC0tOwotICAgICAgICBBU1NFUlQobV9zaG91bGRBbGxvd0NE
QVRBIHx8ICFtX3NjcmlwdFRhZ05lc3RpbmdMZXZlbCk7CisgICAgICAgIEFTU0VSVChzaG91bGRB
bGxvd0NEQVRBIHx8ICFtX3NjcmlwdFRhZ05lc3RpbmdMZXZlbCk7CiAgICAgfQogfQogCi1ib29s
IFhTU0F1ZGl0b3I6OmZpbHRlckNoYXJhY3RlclRva2VuKEhUTUxUb2tlbiYgdG9rZW4pCitib29s
IFhTU0F1ZGl0b3I6OmZpbHRlckNoYXJhY3RlclRva2VuKEhUTUxUb2tlbiYgdG9rZW4sIGJvb2wg
c2hvdWxkQWxsb3dDREFUQSkKIHsKICAgICBBU1NFUlQobV9zY3JpcHRUYWdOZXN0aW5nTGV2ZWwp
OwotICAgIGlmIChpc0NvbnRhaW5lZEluUmVxdWVzdChtX2NhY2hlZERlY29kZWRTbmlwcGV0KSAm
JiBpc0NvbnRhaW5lZEluUmVxdWVzdChkZWNvZGVkU25pcHBldEZvckphdmFTY3JpcHQodG9rZW4p
KSkgeworICAgIGlmIChpc0NvbnRhaW5lZEluUmVxdWVzdChtX2NhY2hlZERlY29kZWRTbmlwcGV0
KSAmJiBpc0NvbnRhaW5lZEluUmVxdWVzdChkZWNvZGVkU25pcHBldEZvckphdmFTY3JpcHQodG9r
ZW4sIHNob3VsZEFsbG93Q0RBVEEpKSkgewogICAgICAgICB0b2tlbi5lcmFzZUNoYXJhY3RlcnMo
KTsKICAgICAgICAgdG9rZW4uYXBwZW5kVG9DaGFyYWN0ZXIoJyAnKTsgLy8gVGVjaG5pY2FsbHks
IGNoYXJhY3RlciB0b2tlbnMgY2FuJ3QgYmUgZW1wdHkuCiAgICAgICAgIHJldHVybiB0cnVlOwpA
QCAtMzU2LDcgKzM1NSw2IEBAIGJvb2wgWFNTQXVkaXRvcjo6ZmlsdGVyU2NyaXB0VG9rZW4oSFRN
TFRva2VuJiB0b2tlbikKICAgICBBU1NFUlQoaGFzTmFtZSh0b2tlbiwgc2NyaXB0VGFnKSk7CiAK
ICAgICBtX2NhY2hlZERlY29kZWRTbmlwcGV0ID0gZGVjb2RlZFNuaXBwZXRGb3JOYW1lKHRva2Vu
KTsKLSAgICBtX3Nob3VsZEFsbG93Q0RBVEEgPSBtX3BhcnNlci0+dG9rZW5pemVyKCktPnNob3Vs
ZEFsbG93Q0RBVEEoKTsKIAogICAgIGlmIChpc0NvbnRhaW5lZEluUmVxdWVzdChkZWNvZGVkU25p
cHBldEZvck5hbWUodG9rZW4pKSkKICAgICAgICAgcmV0dXJuIGVyYXNlQXR0cmlidXRlSWZJbmpl
Y3RlZCh0b2tlbiwgc3JjQXR0ciwgYmxhbmtVUkwoKS5zdHJpbmcoKSwgU3JjTGlrZUF0dHJpYnV0
ZSk7CkBAIC01NjUsNyArNTYzLDcgQEAgU3RyaW5nIFhTU0F1ZGl0b3I6OmRlY29kZWRTbmlwcGV0
Rm9yQXR0cmlidXRlKGNvbnN0IEhUTUxUb2tlbiYgdG9rZW4sIGNvbnN0IEhUTUwKICAgICByZXR1
cm4gZGVjb2RlZFNuaXBwZXQ7CiB9CiAKLVN0cmluZyBYU1NBdWRpdG9yOjpkZWNvZGVkU25pcHBl
dEZvckphdmFTY3JpcHQoY29uc3QgSFRNTFRva2VuJiB0b2tlbikKK1N0cmluZyBYU1NBdWRpdG9y
OjpkZWNvZGVkU25pcHBldEZvckphdmFTY3JpcHQoY29uc3QgSFRNTFRva2VuJiB0b2tlbiwgYm9v
bCBzaG91bGRBbGxvd0NEQVRBKQogewogICAgIFN0cmluZyBzdHJpbmcgPSBtX3BhcnNlci0+c291
cmNlRm9yVG9rZW4odG9rZW4pOwogICAgIHNpemVfdCBzdGFydFBvc2l0aW9uID0gMDsKQEAgLTU4
MCw3ICs1NzgsNyBAQCBTdHJpbmcgWFNTQXVkaXRvcjo6ZGVjb2RlZFNuaXBwZXRGb3JKYXZhU2Ny
aXB0KGNvbnN0IEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIC8vIFVuZGVyIFNWRy9YTUwgcnVs
ZXMsIG9ubHkgSFRNTCBjb21tZW50IHN5bnRheCBtYXR0ZXJzIGFuZCB0aGUgcGFyc2VyIHJldHVy
bnMKICAgICAgICAgLy8gdGhlc2UgYXMgYSBzZXBhcmF0ZSBjb21tZW50IHRva2Vucy4gSGF2aW5n
IGNvbnN1bWVkIHdoaXRlc3BhY2UsIHdlIG5lZWQgbm90IGxvb2sKICAgICAgICAgLy8gZnVydGhl
ciBmb3IgdGhlc2UuCi0gICAgICAgIGlmIChtX3Nob3VsZEFsbG93Q0RBVEEpCisgICAgICAgIGlm
IChzaG91bGRBbGxvd0NEQVRBKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgLy8gVW5k
ZXIgSFRNTCBydWxlcywgYm90aCB0aGUgSFRNTCBhbmQgSlMgY29tbWVudCBzeW5hdHggbWF0dGVy
cywgYW5kIHRoZSBIVE1MCkBAIC02MDcsNyArNjA1LDcgQEAgU3RyaW5nIFhTU0F1ZGl0b3I6OmRl
Y29kZWRTbmlwcGV0Rm9ySmF2YVNjcmlwdChjb25zdCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAg
ICAvLyBub3Qgc3RvcHBpbmcgaW5zaWRlIGEgKHBvc3NpYmx5IG11bHRpcGx5IGVuY29kZWQpICUt
ZXNhY3BlIHNlcXVlbmNlIGJ5IGJyZWFraW5nIG9uCiAgICAgICAgIC8vIHdoaXRlc3BhY2Ugb25s
eS4gV2Ugc2hvdWxkIGhhdmUgZW5vdWdoIHRleHQgaW4gdGhlc2UgY2FzZXMgdG8gYXZvaWQgZmFs
c2UgcG9zaXRpdmVzLgogICAgICAgICBmb3IgKGZvdW5kUG9zaXRpb24gPSBzdGFydFBvc2l0aW9u
OyBmb3VuZFBvc2l0aW9uIDwgZW5kUG9zaXRpb247IGZvdW5kUG9zaXRpb24rKykgewotICAgICAg
ICAgICAgaWYgKCFtX3Nob3VsZEFsbG93Q0RBVEEpIHsKKyAgICAgICAgICAgIGlmICghc2hvdWxk
QWxsb3dDREFUQSkgewogICAgICAgICAgICAgICAgIGlmIChzdGFydHNTaW5nbGVMaW5lQ29tbWVu
dEF0KHN0cmluZywgZm91bmRQb3NpdGlvbikgfHwgc3RhcnRzTXVsdGlMaW5lQ29tbWVudEF0KHN0
cmluZywgZm91bmRQb3NpdGlvbikpIHsKICAgICAgICAgICAgICAgICAgICAgZm91bmRQb3NpdGlv
biArPSAyOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL1hTU0F1ZGl0b3IuaAppbmRleCA1ZGFkZjI5NDMyY2U3ZmQ2YTQ2MmM2MzQxODM0N2EwOTMw
M2I0OTc2Li4yMzcwOTQ1MjIxMzUxMGU4NTQ1ODcyOGUxODIxZjY2MDhiOWZiZDMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5oCkBAIC00Myw3ICs0Myw3IEBAIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBYU1NBdWRpdG9yKEhUTUxEb2N1bWVudFBhcnNlciopOwogCiAgICAg
dm9pZCBpbml0KERvY3VtZW50Kik7Ci0gICAgUGFzc093blB0cjxEaWRCbG9ja1NjcmlwdFJlcXVl
c3Q+IGZpbHRlclRva2VuKEhUTUxUb2tlbiYpOworICAgIFBhc3NPd25QdHI8RGlkQmxvY2tTY3Jp
cHRSZXF1ZXN0PiBmaWx0ZXJUb2tlbihIVE1MVG9rZW4mLCBib29sIHNob3VsZEFsbG93Q0RBVEEp
OwogCiBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBzaXplX3Qga01heGltdW1GcmFnbWVudExl
bmd0aFRhcmdldCA9IDEwMDsKQEAgLTU5LDkgKzU5LDkgQEAgcHJpdmF0ZToKICAgICAgICAgU2Ny
aXB0TGlrZUF0dHJpYnV0ZQogICAgIH07CiAKLSAgICBib29sIGZpbHRlclN0YXJ0VG9rZW4oSFRN
TFRva2VuJik7Ci0gICAgdm9pZCBmaWx0ZXJFbmRUb2tlbihIVE1MVG9rZW4mKTsKLSAgICBib29s
IGZpbHRlckNoYXJhY3RlclRva2VuKEhUTUxUb2tlbiYpOworICAgIGJvb2wgZmlsdGVyU3RhcnRU
b2tlbihIVE1MVG9rZW4mLCBib29sIHNob3VsZEFsbG93Q0RBVEEpOworICAgIHZvaWQgZmlsdGVy
RW5kVG9rZW4oSFRNTFRva2VuJiwgYm9vbCBzaG91bGRBbGxvd0NEQVRBKTsKKyAgICBib29sIGZp
bHRlckNoYXJhY3RlclRva2VuKEhUTUxUb2tlbiYsIGJvb2wgc2hvdWxkQWxsb3dDREFUQSk7CiAg
ICAgYm9vbCBmaWx0ZXJTY3JpcHRUb2tlbihIVE1MVG9rZW4mKTsKICAgICBib29sIGZpbHRlck9i
amVjdFRva2VuKEhUTUxUb2tlbiYpOwogICAgIGJvb2wgZmlsdGVyUGFyYW1Ub2tlbihIVE1MVG9r
ZW4mKTsKQEAgLTc4LDcgKzc4LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgZGVjb2RlZFNuaXBw
ZXRGb3JUb2tlbihjb25zdCBIVE1MVG9rZW4mKTsKICAgICBTdHJpbmcgZGVjb2RlZFNuaXBwZXRG
b3JOYW1lKGNvbnN0IEhUTUxUb2tlbiYpOwogICAgIFN0cmluZyBkZWNvZGVkU25pcHBldEZvckF0
dHJpYnV0ZShjb25zdCBIVE1MVG9rZW4mLCBjb25zdCBIVE1MVG9rZW46OkF0dHJpYnV0ZSYsIEF0
dHJpYnV0ZUtpbmQgdHJlYXRtZW50ID0gTm9ybWFsQXR0cmlidXRlKTsKLSAgICBTdHJpbmcgZGVj
b2RlZFNuaXBwZXRGb3JKYXZhU2NyaXB0KGNvbnN0IEhUTUxUb2tlbiYpOworICAgIFN0cmluZyBk
ZWNvZGVkU25pcHBldEZvckphdmFTY3JpcHQoY29uc3QgSFRNTFRva2VuJiwgYm9vbCBzaG91bGRB
bGxvd0NEQVRBKTsKIAogICAgIGJvb2wgaXNDb250YWluZWRJblJlcXVlc3QoY29uc3QgU3RyaW5n
Jik7CiAgICAgYm9vbCBpc0xpa2VseVNhZmVSZXNvdXJjZShjb25zdCBTdHJpbmcmIHVybCk7CkBA
IC05Niw3ICs5Niw2IEBAIHByaXZhdGU6CiAKICAgICBTdGF0ZSBtX3N0YXRlOwogICAgIFN0cmlu
ZyBtX2NhY2hlZERlY29kZWRTbmlwcGV0OwotICAgIGJvb2wgbV9zaG91bGRBbGxvd0NEQVRBOwog
ICAgIHVuc2lnbmVkIG1fc2NyaXB0VGFnTmVzdGluZ0xldmVsOwogICAgIEtVUkwgbV9yZXBvcnRV
Ukw7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186112</attachid>
            <date>2013-02-01 12:50:59 -0800</date>
            <delta_ts>2013-02-05 11:27:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108666-20130201124741.patch</filename>
            <type>text/plain</type>
            <size>9356</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTNmOGZkNDFkMWI3ZDdh
ZWFmNDk4N2NlOGQ2NzExMjRhYWZlNzk1OS4uNmIzYjJkNjU1ZTZmMGVlNzFmMDRkYjM4YzZmMDBj
M2ZkNzM0ZjI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAyLTAxICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29udGludWUgbWFr
aW5nIFhTU0F1ZGl0b3IgdGhyZWFkIHNhZmU6IFJlbW92ZSBkZXBlbmRlbmN5IG9uIHRoZSBwYXJz
ZXIncyB0b2tlbml6ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwODY2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIG5vIG5ldyBmdW5jdGlvbmFsaXR5LgorCisgICAg
ICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6cHVtcFRva2VuaXplcik6CisgICAgICAgICogaHRtbC9w
YXJzZXIvWFNTQXVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpYU1NB
dWRpdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmZpbHRlclRva2VuKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmZpbHRlclN0YXJ0VG9rZW4pOgorICAgICAgICAo
V2ViQ29yZTo6WFNTQXVkaXRvcjo6ZmlsdGVyRW5kVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6
WFNTQXVkaXRvcjo6ZmlsdGVyQ2hhcmFjdGVyVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6WFNT
QXVkaXRvcjo6ZmlsdGVyU2NyaXB0VG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRv
cjo6ZGVjb2RlZFNuaXBwZXRGb3JKYXZhU2NyaXB0KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9Y
U1NBdWRpdG9yLmg6CisgICAgICAgIChYU1NBdWRpdG9yKToKKwogMjAxMy0wMi0wMSAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTQxMjgx
KTogTmF2aWdhdGluZyB0byB0aGlzIEhUVFAgTGl2ZSBTdHJlYW1pbmcgKGFwcGxpY2F0aW9uL3Zu
ZC5hcHBsZS5tcGVndXJsKSBVUkwgZG93bmxvYWRzIGEgZmlsZSBpbnN0ZWFkIG9mIHBsYXlpbmcg
aXQgaW4gdGhlIGJyb3dzZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
RG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDcyZmViZWJiOGE1YWQ0ZmZkNjA2ZjhlMGM3NWYyMjc4
Y2QxYWNlYjAuLjkwODg4NTQwOTYyYjY2ZTJmYWQ2ODk0NmIzODA0MTg2NGQwN2QwY2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApA
QCAtMzc4LDcgKzM3OCw3IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpwdW1wVG9rZW5pemVy
KFN5bmNocm9ub3VzTW9kZSBtb2RlKQogCiAgICAgICAgICAgICAvLyBXZSBkbyBub3QgWFNTIGZp
bHRlciBpbm5lckhUTUwsIHdoaWNoIG1lYW5zIHdlIChpbnRlbnRpb25hbGx5KSBmYWlsCiAgICAg
ICAgICAgICAvLyBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZG9tLXdyaXRlLWlubmVy
SFRNTC5odG1sCi0gICAgICAgICAgICBPd25QdHI8RGlkQmxvY2tTY3JpcHRSZXF1ZXN0PiByZXF1
ZXN0ID0gbV94c3NBdWRpdG9yLmZpbHRlclRva2VuKHRva2VuKCkpOworICAgICAgICAgICAgT3du
UHRyPERpZEJsb2NrU2NyaXB0UmVxdWVzdD4gcmVxdWVzdCA9IG1feHNzQXVkaXRvci5maWx0ZXJU
b2tlbih0b2tlbigpLCBtX3Rva2VuaXplci0+c2hvdWxkQWxsb3dDREFUQSgpKTsKICAgICAgICAg
ICAgIGlmIChyZXF1ZXN0KQogICAgICAgICAgICAgICAgIG1feHNzQXVkaXRvckRlbGVnYXRlLmRp
ZEJsb2NrU2NyaXB0KHJlcXVlc3QucmVsZWFzZSgpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcAppbmRleCBhMzQxMzJkMmMwNWEzNmVmZTE1NWQ5
YjlmNTRkMTI0NGZmN2M3NWQyLi5hYjMwOGJkYjQzNDZhZWMzNGRlNjg0ZDBhMWY1ZDNhMDU1ZThj
NWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcApAQCAtMTcz
LDcgKzE3Myw2IEBAIFhTU0F1ZGl0b3I6OlhTU0F1ZGl0b3IoSFRNTERvY3VtZW50UGFyc2VyKiBw
YXJzZXIpCiAgICAgLCBtX2lzRW5hYmxlZChmYWxzZSkKICAgICAsIG1feHNzUHJvdGVjdGlvbihY
U1NQcm90ZWN0aW9uRW5hYmxlZCkKICAgICAsIG1fc3RhdGUoVW5pbml0aWFsaXplZCkKLSAgICAs
IG1fc2hvdWxkQWxsb3dDREFUQShmYWxzZSkKICAgICAsIG1fc2NyaXB0VGFnTmVzdGluZ0xldmVs
KDApCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTI3Myw3ICsyNzIsNyBAQCB2
b2lkIFhTU0F1ZGl0b3I6OmluaXQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIH0KIH0KIAotUGFz
c093blB0cjxEaWRCbG9ja1NjcmlwdFJlcXVlc3Q+IFhTU0F1ZGl0b3I6OmZpbHRlclRva2VuKEhU
TUxUb2tlbiYgdG9rZW4pCitQYXNzT3duUHRyPERpZEJsb2NrU2NyaXB0UmVxdWVzdD4gWFNTQXVk
aXRvcjo6ZmlsdGVyVG9rZW4oSFRNTFRva2VuJiB0b2tlbiwgYm9vbCBzaG91bGRBbGxvd0NEQVRB
KQogewogICAgIEFTU0VSVChtX3N0YXRlID09IEluaXRpYWxpemVkKTsKICAgICBpZiAoIW1faXNF
bmFibGVkIHx8IG1feHNzUHJvdGVjdGlvbiA9PSBYU1NQcm90ZWN0aW9uRGlzYWJsZWQpCkBAIC0y
ODEsMTIgKzI4MCwxMiBAQCBQYXNzT3duUHRyPERpZEJsb2NrU2NyaXB0UmVxdWVzdD4gWFNTQXVk
aXRvcjo6ZmlsdGVyVG9rZW4oSFRNTFRva2VuJiB0b2tlbikKIAogICAgIGJvb2wgZGlkQmxvY2tT
Y3JpcHQgPSBmYWxzZTsKICAgICBpZiAodG9rZW4udHlwZSgpID09IEhUTUxUb2tlblR5cGVzOjpT
dGFydFRhZykKLSAgICAgICAgZGlkQmxvY2tTY3JpcHQgPSBmaWx0ZXJTdGFydFRva2VuKHRva2Vu
KTsKKyAgICAgICAgZGlkQmxvY2tTY3JpcHQgPSBmaWx0ZXJTdGFydFRva2VuKHRva2VuLCBzaG91
bGRBbGxvd0NEQVRBKTsKICAgICBlbHNlIGlmIChtX3NjcmlwdFRhZ05lc3RpbmdMZXZlbCkgewog
ICAgICAgICBpZiAodG9rZW4udHlwZSgpID09IEhUTUxUb2tlblR5cGVzOjpDaGFyYWN0ZXIpCi0g
ICAgICAgICAgICBkaWRCbG9ja1NjcmlwdCA9IGZpbHRlckNoYXJhY3RlclRva2VuKHRva2VuKTsK
KyAgICAgICAgICAgIGRpZEJsb2NrU2NyaXB0ID0gZmlsdGVyQ2hhcmFjdGVyVG9rZW4odG9rZW4s
IHNob3VsZEFsbG93Q0RBVEEpOwogICAgICAgICBlbHNlIGlmICh0b2tlbi50eXBlKCkgPT0gSFRN
TFRva2VuVHlwZXM6OkVuZFRhZykKLSAgICAgICAgICAgIGZpbHRlckVuZFRva2VuKHRva2VuKTsK
KyAgICAgICAgICAgIGZpbHRlckVuZFRva2VuKHRva2VuLCBzaG91bGRBbGxvd0NEQVRBKTsKICAg
ICB9CiAKICAgICBpZiAoZGlkQmxvY2tTY3JpcHQpIHsKQEAgLTMwMiwxMyArMzAxLDEzIEBAIFBh
c3NPd25QdHI8RGlkQmxvY2tTY3JpcHRSZXF1ZXN0PiBYU1NBdWRpdG9yOjpmaWx0ZXJUb2tlbihI
VE1MVG9rZW4mIHRva2VuKQogICAgIHJldHVybiBudWxscHRyOwogfQogCi1ib29sIFhTU0F1ZGl0
b3I6OmZpbHRlclN0YXJ0VG9rZW4oSFRNTFRva2VuJiB0b2tlbikKK2Jvb2wgWFNTQXVkaXRvcjo6
ZmlsdGVyU3RhcnRUb2tlbihIVE1MVG9rZW4mIHRva2VuLCBib29sIHNob3VsZEFsbG93Q0RBVEEp
CiB7CiAgICAgYm9vbCBkaWRCbG9ja1NjcmlwdCA9IGVyYXNlRGFuZ2Vyb3VzQXR0cmlidXRlc0lm
SW5qZWN0ZWQodG9rZW4pOwogCiAgICAgaWYgKGhhc05hbWUodG9rZW4sIHNjcmlwdFRhZykpIHsK
ICAgICAgICAgZGlkQmxvY2tTY3JpcHQgfD0gZmlsdGVyU2NyaXB0VG9rZW4odG9rZW4pOwotICAg
ICAgICBBU1NFUlQobV9zaG91bGRBbGxvd0NEQVRBIHx8ICFtX3NjcmlwdFRhZ05lc3RpbmdMZXZl
bCk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQoc2hvdWxkQWxsb3dDREFUQSwgc2hvdWxkQWxsb3dD
REFUQSB8fCAhbV9zY3JpcHRUYWdOZXN0aW5nTGV2ZWwpOwogICAgICAgICBtX3NjcmlwdFRhZ05l
c3RpbmdMZXZlbCsrOwogICAgIH0gZWxzZSBpZiAoaGFzTmFtZSh0b2tlbiwgb2JqZWN0VGFnKSkK
ICAgICAgICAgZGlkQmxvY2tTY3JpcHQgfD0gZmlsdGVyT2JqZWN0VG9rZW4odG9rZW4pOwpAQCAt
MzMwLDE5ICszMjksMTkgQEAgYm9vbCBYU1NBdWRpdG9yOjpmaWx0ZXJTdGFydFRva2VuKEhUTUxU
b2tlbiYgdG9rZW4pCiAgICAgcmV0dXJuIGRpZEJsb2NrU2NyaXB0OwogfQogCi12b2lkIFhTU0F1
ZGl0b3I6OmZpbHRlckVuZFRva2VuKEhUTUxUb2tlbiYgdG9rZW4pCit2b2lkIFhTU0F1ZGl0b3I6
OmZpbHRlckVuZFRva2VuKEhUTUxUb2tlbiYgdG9rZW4sIGJvb2wgc2hvdWxkQWxsb3dDREFUQSkK
IHsKICAgICBBU1NFUlQobV9zY3JpcHRUYWdOZXN0aW5nTGV2ZWwpOwogICAgIGlmIChoYXNOYW1l
KHRva2VuLCBzY3JpcHRUYWcpKSB7CiAgICAgICAgIG1fc2NyaXB0VGFnTmVzdGluZ0xldmVsLS07
Ci0gICAgICAgIEFTU0VSVChtX3Nob3VsZEFsbG93Q0RBVEEgfHwgIW1fc2NyaXB0VGFnTmVzdGlu
Z0xldmVsKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChzaG91bGRBbGxvd0NEQVRBLCBzaG91bGRB
bGxvd0NEQVRBIHx8ICFtX3NjcmlwdFRhZ05lc3RpbmdMZXZlbCk7CiAgICAgfQogfQogCi1ib29s
IFhTU0F1ZGl0b3I6OmZpbHRlckNoYXJhY3RlclRva2VuKEhUTUxUb2tlbiYgdG9rZW4pCitib29s
IFhTU0F1ZGl0b3I6OmZpbHRlckNoYXJhY3RlclRva2VuKEhUTUxUb2tlbiYgdG9rZW4sIGJvb2wg
c2hvdWxkQWxsb3dDREFUQSkKIHsKICAgICBBU1NFUlQobV9zY3JpcHRUYWdOZXN0aW5nTGV2ZWwp
OwotICAgIGlmIChpc0NvbnRhaW5lZEluUmVxdWVzdChtX2NhY2hlZERlY29kZWRTbmlwcGV0KSAm
JiBpc0NvbnRhaW5lZEluUmVxdWVzdChkZWNvZGVkU25pcHBldEZvckphdmFTY3JpcHQodG9rZW4p
KSkgeworICAgIGlmIChpc0NvbnRhaW5lZEluUmVxdWVzdChtX2NhY2hlZERlY29kZWRTbmlwcGV0
KSAmJiBpc0NvbnRhaW5lZEluUmVxdWVzdChkZWNvZGVkU25pcHBldEZvckphdmFTY3JpcHQodG9r
ZW4sIHNob3VsZEFsbG93Q0RBVEEpKSkgewogICAgICAgICB0b2tlbi5lcmFzZUNoYXJhY3RlcnMo
KTsKICAgICAgICAgdG9rZW4uYXBwZW5kVG9DaGFyYWN0ZXIoJyAnKTsgLy8gVGVjaG5pY2FsbHks
IGNoYXJhY3RlciB0b2tlbnMgY2FuJ3QgYmUgZW1wdHkuCiAgICAgICAgIHJldHVybiB0cnVlOwpA
QCAtMzU2LDcgKzM1NSw2IEBAIGJvb2wgWFNTQXVkaXRvcjo6ZmlsdGVyU2NyaXB0VG9rZW4oSFRN
TFRva2VuJiB0b2tlbikKICAgICBBU1NFUlQoaGFzTmFtZSh0b2tlbiwgc2NyaXB0VGFnKSk7CiAK
ICAgICBtX2NhY2hlZERlY29kZWRTbmlwcGV0ID0gZGVjb2RlZFNuaXBwZXRGb3JOYW1lKHRva2Vu
KTsKLSAgICBtX3Nob3VsZEFsbG93Q0RBVEEgPSBtX3BhcnNlci0+dG9rZW5pemVyKCktPnNob3Vs
ZEFsbG93Q0RBVEEoKTsKIAogICAgIGlmIChpc0NvbnRhaW5lZEluUmVxdWVzdChkZWNvZGVkU25p
cHBldEZvck5hbWUodG9rZW4pKSkKICAgICAgICAgcmV0dXJuIGVyYXNlQXR0cmlidXRlSWZJbmpl
Y3RlZCh0b2tlbiwgc3JjQXR0ciwgYmxhbmtVUkwoKS5zdHJpbmcoKSwgU3JjTGlrZUF0dHJpYnV0
ZSk7CkBAIC01NjUsNyArNTYzLDcgQEAgU3RyaW5nIFhTU0F1ZGl0b3I6OmRlY29kZWRTbmlwcGV0
Rm9yQXR0cmlidXRlKGNvbnN0IEhUTUxUb2tlbiYgdG9rZW4sIGNvbnN0IEhUTUwKICAgICByZXR1
cm4gZGVjb2RlZFNuaXBwZXQ7CiB9CiAKLVN0cmluZyBYU1NBdWRpdG9yOjpkZWNvZGVkU25pcHBl
dEZvckphdmFTY3JpcHQoY29uc3QgSFRNTFRva2VuJiB0b2tlbikKK1N0cmluZyBYU1NBdWRpdG9y
OjpkZWNvZGVkU25pcHBldEZvckphdmFTY3JpcHQoY29uc3QgSFRNTFRva2VuJiB0b2tlbiwgYm9v
bCBzaG91bGRBbGxvd0NEQVRBKQogewogICAgIFN0cmluZyBzdHJpbmcgPSBtX3BhcnNlci0+c291
cmNlRm9yVG9rZW4odG9rZW4pOwogICAgIHNpemVfdCBzdGFydFBvc2l0aW9uID0gMDsKQEAgLTU4
MCw3ICs1NzgsNyBAQCBTdHJpbmcgWFNTQXVkaXRvcjo6ZGVjb2RlZFNuaXBwZXRGb3JKYXZhU2Ny
aXB0KGNvbnN0IEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIC8vIFVuZGVyIFNWRy9YTUwgcnVs
ZXMsIG9ubHkgSFRNTCBjb21tZW50IHN5bnRheCBtYXR0ZXJzIGFuZCB0aGUgcGFyc2VyIHJldHVy
bnMKICAgICAgICAgLy8gdGhlc2UgYXMgYSBzZXBhcmF0ZSBjb21tZW50IHRva2Vucy4gSGF2aW5n
IGNvbnN1bWVkIHdoaXRlc3BhY2UsIHdlIG5lZWQgbm90IGxvb2sKICAgICAgICAgLy8gZnVydGhl
ciBmb3IgdGhlc2UuCi0gICAgICAgIGlmIChtX3Nob3VsZEFsbG93Q0RBVEEpCisgICAgICAgIGlm
IChzaG91bGRBbGxvd0NEQVRBKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgLy8gVW5k
ZXIgSFRNTCBydWxlcywgYm90aCB0aGUgSFRNTCBhbmQgSlMgY29tbWVudCBzeW5hdHggbWF0dGVy
cywgYW5kIHRoZSBIVE1MCkBAIC02MDcsNyArNjA1LDcgQEAgU3RyaW5nIFhTU0F1ZGl0b3I6OmRl
Y29kZWRTbmlwcGV0Rm9ySmF2YVNjcmlwdChjb25zdCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAg
ICAvLyBub3Qgc3RvcHBpbmcgaW5zaWRlIGEgKHBvc3NpYmx5IG11bHRpcGx5IGVuY29kZWQpICUt
ZXNhY3BlIHNlcXVlbmNlIGJ5IGJyZWFraW5nIG9uCiAgICAgICAgIC8vIHdoaXRlc3BhY2Ugb25s
eS4gV2Ugc2hvdWxkIGhhdmUgZW5vdWdoIHRleHQgaW4gdGhlc2UgY2FzZXMgdG8gYXZvaWQgZmFs
c2UgcG9zaXRpdmVzLgogICAgICAgICBmb3IgKGZvdW5kUG9zaXRpb24gPSBzdGFydFBvc2l0aW9u
OyBmb3VuZFBvc2l0aW9uIDwgZW5kUG9zaXRpb247IGZvdW5kUG9zaXRpb24rKykgewotICAgICAg
ICAgICAgaWYgKCFtX3Nob3VsZEFsbG93Q0RBVEEpIHsKKyAgICAgICAgICAgIGlmICghc2hvdWxk
QWxsb3dDREFUQSkgewogICAgICAgICAgICAgICAgIGlmIChzdGFydHNTaW5nbGVMaW5lQ29tbWVu
dEF0KHN0cmluZywgZm91bmRQb3NpdGlvbikgfHwgc3RhcnRzTXVsdGlMaW5lQ29tbWVudEF0KHN0
cmluZywgZm91bmRQb3NpdGlvbikpIHsKICAgICAgICAgICAgICAgICAgICAgZm91bmRQb3NpdGlv
biArPSAyOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL1hTU0F1ZGl0b3IuaAppbmRleCA1ZGFkZjI5NDMyY2U3ZmQ2YTQ2MmM2MzQxODM0N2EwOTMw
M2I0OTc2Li4yMzcwOTQ1MjIxMzUxMGU4NTQ1ODcyOGUxODIxZjY2MDhiOWZiZDMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5oCkBAIC00Myw3ICs0Myw3IEBAIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBYU1NBdWRpdG9yKEhUTUxEb2N1bWVudFBhcnNlciopOwogCiAgICAg
dm9pZCBpbml0KERvY3VtZW50Kik7Ci0gICAgUGFzc093blB0cjxEaWRCbG9ja1NjcmlwdFJlcXVl
c3Q+IGZpbHRlclRva2VuKEhUTUxUb2tlbiYpOworICAgIFBhc3NPd25QdHI8RGlkQmxvY2tTY3Jp
cHRSZXF1ZXN0PiBmaWx0ZXJUb2tlbihIVE1MVG9rZW4mLCBib29sIHNob3VsZEFsbG93Q0RBVEEp
OwogCiBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBzaXplX3Qga01heGltdW1GcmFnbWVudExl
bmd0aFRhcmdldCA9IDEwMDsKQEAgLTU5LDkgKzU5LDkgQEAgcHJpdmF0ZToKICAgICAgICAgU2Ny
aXB0TGlrZUF0dHJpYnV0ZQogICAgIH07CiAKLSAgICBib29sIGZpbHRlclN0YXJ0VG9rZW4oSFRN
TFRva2VuJik7Ci0gICAgdm9pZCBmaWx0ZXJFbmRUb2tlbihIVE1MVG9rZW4mKTsKLSAgICBib29s
IGZpbHRlckNoYXJhY3RlclRva2VuKEhUTUxUb2tlbiYpOworICAgIGJvb2wgZmlsdGVyU3RhcnRU
b2tlbihIVE1MVG9rZW4mLCBib29sIHNob3VsZEFsbG93Q0RBVEEpOworICAgIHZvaWQgZmlsdGVy
RW5kVG9rZW4oSFRNTFRva2VuJiwgYm9vbCBzaG91bGRBbGxvd0NEQVRBKTsKKyAgICBib29sIGZp
bHRlckNoYXJhY3RlclRva2VuKEhUTUxUb2tlbiYsIGJvb2wgc2hvdWxkQWxsb3dDREFUQSk7CiAg
ICAgYm9vbCBmaWx0ZXJTY3JpcHRUb2tlbihIVE1MVG9rZW4mKTsKICAgICBib29sIGZpbHRlck9i
amVjdFRva2VuKEhUTUxUb2tlbiYpOwogICAgIGJvb2wgZmlsdGVyUGFyYW1Ub2tlbihIVE1MVG9r
ZW4mKTsKQEAgLTc4LDcgKzc4LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgZGVjb2RlZFNuaXBw
ZXRGb3JUb2tlbihjb25zdCBIVE1MVG9rZW4mKTsKICAgICBTdHJpbmcgZGVjb2RlZFNuaXBwZXRG
b3JOYW1lKGNvbnN0IEhUTUxUb2tlbiYpOwogICAgIFN0cmluZyBkZWNvZGVkU25pcHBldEZvckF0
dHJpYnV0ZShjb25zdCBIVE1MVG9rZW4mLCBjb25zdCBIVE1MVG9rZW46OkF0dHJpYnV0ZSYsIEF0
dHJpYnV0ZUtpbmQgdHJlYXRtZW50ID0gTm9ybWFsQXR0cmlidXRlKTsKLSAgICBTdHJpbmcgZGVj
b2RlZFNuaXBwZXRGb3JKYXZhU2NyaXB0KGNvbnN0IEhUTUxUb2tlbiYpOworICAgIFN0cmluZyBk
ZWNvZGVkU25pcHBldEZvckphdmFTY3JpcHQoY29uc3QgSFRNTFRva2VuJiwgYm9vbCBzaG91bGRB
bGxvd0NEQVRBKTsKIAogICAgIGJvb2wgaXNDb250YWluZWRJblJlcXVlc3QoY29uc3QgU3RyaW5n
Jik7CiAgICAgYm9vbCBpc0xpa2VseVNhZmVSZXNvdXJjZShjb25zdCBTdHJpbmcmIHVybCk7CkBA
IC05Niw3ICs5Niw2IEBAIHByaXZhdGU6CiAKICAgICBTdGF0ZSBtX3N0YXRlOwogICAgIFN0cmlu
ZyBtX2NhY2hlZERlY29kZWRTbmlwcGV0OwotICAgIGJvb2wgbV9zaG91bGRBbGxvd0NEQVRBOwog
ICAgIHVuc2lnbmVkIG1fc2NyaXB0VGFnTmVzdGluZ0xldmVsOwogICAgIEtVUkwgbV9yZXBvcnRV
Ukw7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186666</attachid>
            <date>2013-02-05 11:27:22 -0800</date>
            <delta_ts>2013-02-05 14:21:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108666-20130205112400.patch</filename>
            <type>text/plain</type>
            <size>10219</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTVlNGEzZmJmZjlhMzZj
MTQ3MWEzMjM3ZWM2NjEwNzNiM2EzMjY4NC4uOWQxNWJkY2ZmZWNiZTQ2N2RkMWIwMTVkMGI5MTFi
ODViYzdjZDlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDEzLTAyLTA1ICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgQ29udGludWUgbWFr
aW5nIFhTU0F1ZGl0b3IgdGhyZWFkIHNhZmU6IFJlbW92ZSBkZXBlbmRlbmN5IG9uIHRoZSBwYXJz
ZXIncyB0b2tlbml6ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwODY2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgaXMgdGhlIGZpbmFsIGRlcGVuZGVuY3kgb24gdGhlIHBhcnNlciwgc28gd2Ug
cmVtb3ZlIHRoYXQgYXMgd2VsbC4gWWF5IQorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNl
IG5vIG5ldyBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3Vt
ZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6SFRN
TERvY3VtZW50UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6
cHVtcFRva2VuaXplcik6IFBhc3MgbV90b2tlbml6ZXItPnNob3VsZEFsbG93Q0RBVEEoKQorICAg
ICAgICAqIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFNT
QXVkaXRvcjo6WFNTQXVkaXRvcik6IFJlbW92ZSBpc01haW5UaHJlYWQoKSBjaGVjayBiZWNhdXNl
IHdlIGhhdmUgb25lIGluIGluaXQoKSBhbnl3YXkuCisgICAgICAgIE1vdmUgbV9pc0VuYWJsZWQg
YW5kIG1fZG9jdW1lbnRVUkwgaW5pdGlhbGl6YXRpb24gdG8gaW5pdCgpIGJlY2F1c2Ugd2UgaGF2
ZSBhIERvY3VtZW50KiB0aGVyZS4KKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmluaXQp
OgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6ZmlsdGVyVG9rZW4pOgorICAgICAgICAo
V2ViQ29yZTo6WFNTQXVkaXRvcjo6ZmlsdGVyU3RhcnRUb2tlbik6CisgICAgICAgIChXZWJDb3Jl
OjpYU1NBdWRpdG9yOjpmaWx0ZXJFbmRUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRp
dG9yOjpmaWx0ZXJTY3JpcHRUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpk
ZWNvZGVkU25pcHBldEZvckphdmFTY3JpcHQpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL1hTU0F1
ZGl0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlclRva2VuUmVxdWVzdDo6RmlsdGVyVG9r
ZW5SZXF1ZXN0KToKKyAgICAgICAgKEZpbHRlclRva2VuUmVxdWVzdCk6CisgICAgICAgIChYU1NB
dWRpdG9yKToKKworMjAxMy0wMi0wNSAgVG9ueSBHZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0u
b3JnPgorCiAgICAgICAgIENhbGwgWFNTQXVkaXRvcidzIGRpZEJsb2NrU2NyaXB0KCkgZm9yIHRo
ZSB0aHJlYWRlZCBIVE1MIHBhcnNlcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA4NzI2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGY2NTM1OTI4ZTkxMmU1ODE0NWMxNDBmMTNm
MjAyNGRjMDNhZmE0N2YuLjA1NmIzM2RkOGEwODE1ZDlkOTI4YTU4NzczOTg5NDdiMmY0ZTQ2MDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2Vy
LmNwcApAQCAtODIsNyArODIsNyBAQCBIVE1MRG9jdW1lbnRQYXJzZXI6OkhUTUxEb2N1bWVudFBh
cnNlcihIVE1MRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIHJlcG9ydEVycm9ycwogICAgICwgbV9z
Y3JpcHRSdW5uZXIoSFRNTFNjcmlwdFJ1bm5lcjo6Y3JlYXRlKGRvY3VtZW50LCB0aGlzKSkKICAg
ICAsIG1fdHJlZUJ1aWxkZXIoSFRNTFRyZWVCdWlsZGVyOjpjcmVhdGUodGhpcywgZG9jdW1lbnQs
IHJlcG9ydEVycm9ycywgbV9vcHRpb25zKSkKICAgICAsIG1fcGFyc2VyU2NoZWR1bGVyKEhUTUxQ
YXJzZXJTY2hlZHVsZXI6OmNyZWF0ZSh0aGlzKSkKLSAgICAsIG1feHNzQXVkaXRvcih0aGlzKQor
ICAgICwgbV94c3NBdWRpdG9yKCkKICAgICAsIG1feHNzQXVkaXRvckRlbGVnYXRlKGRvY3VtZW50
KQogI2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKICAgICAsIG1fd2Vha0ZhY3Rvcnko
dGhpcykKQEAgLTEwMiw3ICsxMDIsNyBAQCBIVE1MRG9jdW1lbnRQYXJzZXI6OkhUTUxEb2N1bWVu
dFBhcnNlcihEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRWxlbWVudCogY29udAogICAgICwg
bV90b2tlbihhZG9wdFB0cihuZXcgSFRNTFRva2VuKSkKICAgICAsIG1fdG9rZW5pemVyKEhUTUxU
b2tlbml6ZXI6OmNyZWF0ZShtX29wdGlvbnMpKQogICAgICwgbV90cmVlQnVpbGRlcihIVE1MVHJl
ZUJ1aWxkZXI6OmNyZWF0ZSh0aGlzLCBmcmFnbWVudCwgY29udGV4dEVsZW1lbnQsIHNjcmlwdGlu
Z1Blcm1pc3Npb24sIG1fb3B0aW9ucykpCi0gICAgLCBtX3hzc0F1ZGl0b3IodGhpcykKKyAgICAs
IG1feHNzQXVkaXRvcigpCiAgICAgLCBtX3hzc0F1ZGl0b3JEZWxlZ2F0ZShmcmFnbWVudC0+ZG9j
dW1lbnQoKSkKICNpZiBFTkFCTEUoVEhSRUFERURfSFRNTF9QQVJTRVIpCiAgICAgLCBtX3dlYWtG
YWN0b3J5KHRoaXMpCkBAIC0zODAsOCArMzgwLDcgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6
OnB1bXBUb2tlbml6ZXIoU3luY2hyb25vdXNNb2RlIG1vZGUpCiAKICAgICAgICAgICAgIC8vIFdl
IGRvIG5vdCBYU1MgZmlsdGVyIGlubmVySFRNTCwgd2hpY2ggbWVhbnMgd2UgKGludGVudGlvbmFs
bHkpIGZhaWwKICAgICAgICAgICAgIC8vIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9k
b20td3JpdGUtaW5uZXJIVE1MLmh0bWwKLSAgICAgICAgICAgIE93blB0cjxYU1NJbmZvPiB4c3NJ
bmZvID0gbV94c3NBdWRpdG9yLmZpbHRlclRva2VuKEZpbHRlclRva2VuUmVxdWVzdCh0b2tlbigp
LCBtX3NvdXJjZVRyYWNrZXIsIGRvY3VtZW50KCktPmRlY29kZXIoKSkpOwotICAgICAgICAgICAg
aWYgKHhzc0luZm8pCisgICAgICAgICAgICBpZiAoT3duUHRyPFhTU0luZm8+IHhzc0luZm8gPSBt
X3hzc0F1ZGl0b3IuZmlsdGVyVG9rZW4oRmlsdGVyVG9rZW5SZXF1ZXN0KHRva2VuKCksIG1fc291
cmNlVHJhY2tlciwgZG9jdW1lbnQoKS0+ZGVjb2RlcigpLCBtX3Rva2VuaXplci0+c2hvdWxkQWxs
b3dDREFUQSgpKSkpCiAgICAgICAgICAgICAgICAgbV94c3NBdWRpdG9yRGVsZWdhdGUuZGlkQmxv
Y2tTY3JpcHQoKnhzc0luZm8pOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvWFNTQXVkaXRvci5jcHAKaW5kZXggMDE1NTk3YWU0ZTI5NDMyODA3YTgzNTM1Njk1NzIzZTcw
YzhhNjUwZi4uNjlkMDMzYzljZmY2MWU4NzhjODBhMTBhZDdkNzIxYTFjYzRiMDM2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKQEAgLTE3NCwyMSArMTc0LDEy
IEBAIHN0YXRpYyBTdHJpbmcgZnVsbHlEZWNvZGVTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcs
IGNvbnN0IFRleHRSZXNvdXJjZURlY29kZXIqCiAgICAgcmV0dXJuIHdvcmtpbmdTdHJpbmc7CiB9
CiAKLVhTU0F1ZGl0b3I6OlhTU0F1ZGl0b3IoSFRNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCi0g
ICAgOiBtX3BhcnNlcihwYXJzZXIpCi0gICAgLCBtX2RvY3VtZW50VVJMKHBhcnNlci0+ZG9jdW1l
bnQoKS0+dXJsKCkpCi0gICAgLCBtX2lzRW5hYmxlZChmYWxzZSkKK1hTU0F1ZGl0b3I6OlhTU0F1
ZGl0b3IoKQorICAgIDogbV9pc0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3hzc1Byb3RlY3Rpb24o
WFNTUHJvdGVjdGlvbkVuYWJsZWQpCiAgICAgLCBtX3N0YXRlKFVuaW5pdGlhbGl6ZWQpCi0gICAg
LCBtX3Nob3VsZEFsbG93Q0RBVEEoZmFsc2UpCiAgICAgLCBtX3NjcmlwdFRhZ05lc3RpbmdMZXZl
bCgwKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgQVNTRVJUKG1fcGFyc2Vy
KTsKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0gcGFyc2VyLT5kb2N1bWVudCgpLT5mcmFtZSgpKSB7
Ci0gICAgICAgIGlmIChTZXR0aW5ncyogc2V0dGluZ3MgPSBmcmFtZS0+c2V0dGluZ3MoKSkKLSAg
ICAgICAgICAgIG1faXNFbmFibGVkID0gc2V0dGluZ3MtPnhzc0F1ZGl0b3JFbmFibGVkKCk7Ci0g
ICAgfQogICAgIC8vIEFsdGhvdWdoIHRlbXB0aW5nIHRvIGNhbGwgaW5pdCgpIGF0IHRoaXMgcG9p
bnQsIHRoZSB2YXJpb3VzIG9iamVjdHMKICAgICAvLyB3ZSB3YW50IHRvIHJlZmVyZW5jZSBtaWdo
dCBub3QgYWxsIGhhdmUgYmVlbiBjb25zdHJ1Y3RlZCB5ZXQuCiB9CkBAIC0yMDQsOSArMTk1LDE1
IEBAIHZvaWQgWFNTQXVkaXRvcjo6aW5pdChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgQVNTRVJU
KG1fc3RhdGUgPT0gVW5pbml0aWFsaXplZCk7CiAgICAgbV9zdGF0ZSA9IEluaXRpYWxpemVkOwog
CisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpKQorICAgICAgICBpZiAo
U2V0dGluZ3MqIHNldHRpbmdzID0gZnJhbWUtPnNldHRpbmdzKCkpCisgICAgICAgICAgICBtX2lz
RW5hYmxlZCA9IHNldHRpbmdzLT54c3NBdWRpdG9yRW5hYmxlZCgpOworCiAgICAgaWYgKCFtX2lz
RW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9kb2N1bWVudFVSTCA9IGRvY3VtZW50
LT51cmwoKTsKKwogICAgIC8vIEluIHRoZW9yeSwgdGhlIERvY3VtZW50IGNvdWxkIGhhdmUgZGV0
YWNoZWQgZnJvbSB0aGUgRnJhbWUgYWZ0ZXIgdGhlCiAgICAgLy8gWFNTQXVkaXRvciB3YXMgY29u
c3RydWN0ZWQuCiAgICAgaWYgKCFkb2N1bWVudC0+ZnJhbWUoKSkgewpAQCAtMjkxLDcgKzI4OCw3
IEBAIFBhc3NPd25QdHI8WFNTSW5mbz4gWFNTQXVkaXRvcjo6ZmlsdGVyVG9rZW4oY29uc3QgRmls
dGVyVG9rZW5SZXF1ZXN0JiByZXF1ZXN0KQogICAgICAgICBpZiAocmVxdWVzdC50b2tlbi50eXBl
KCkgPT0gSFRNTFRva2VuVHlwZXM6OkNoYXJhY3RlcikKICAgICAgICAgICAgIGRpZEJsb2NrU2Ny
aXB0ID0gZmlsdGVyQ2hhcmFjdGVyVG9rZW4ocmVxdWVzdCk7CiAgICAgICAgIGVsc2UgaWYgKHJl
cXVlc3QudG9rZW4udHlwZSgpID09IEhUTUxUb2tlblR5cGVzOjpFbmRUYWcpCi0gICAgICAgICAg
ICBmaWx0ZXJFbmRUb2tlbihyZXF1ZXN0LnRva2VuKTsKKyAgICAgICAgICAgIGZpbHRlckVuZFRv
a2VuKHJlcXVlc3QpOwogICAgIH0KIAogICAgIGlmIChkaWRCbG9ja1NjcmlwdCkgewpAQCAtMzEz
LDcgKzMxMCw3IEBAIGJvb2wgWFNTQXVkaXRvcjo6ZmlsdGVyU3RhcnRUb2tlbihjb25zdCBGaWx0
ZXJUb2tlblJlcXVlc3QmIHJlcXVlc3QpCiAKICAgICBpZiAoaGFzTmFtZShyZXF1ZXN0LnRva2Vu
LCBzY3JpcHRUYWcpKSB7CiAgICAgICAgIGRpZEJsb2NrU2NyaXB0IHw9IGZpbHRlclNjcmlwdFRv
a2VuKHJlcXVlc3QpOwotICAgICAgICBBU1NFUlQobV9zaG91bGRBbGxvd0NEQVRBIHx8ICFtX3Nj
cmlwdFRhZ05lc3RpbmdMZXZlbCk7CisgICAgICAgIEFTU0VSVChyZXF1ZXN0LnNob3VsZEFsbG93
Q0RBVEEgfHwgIW1fc2NyaXB0VGFnTmVzdGluZ0xldmVsKTsKICAgICAgICAgbV9zY3JpcHRUYWdO
ZXN0aW5nTGV2ZWwrKzsKICAgICB9IGVsc2UgaWYgKGhhc05hbWUocmVxdWVzdC50b2tlbiwgb2Jq
ZWN0VGFnKSkKICAgICAgICAgZGlkQmxvY2tTY3JpcHQgfD0gZmlsdGVyT2JqZWN0VG9rZW4ocmVx
dWVzdCk7CkBAIC0zMzUsMTIgKzMzMiwxMiBAQCBib29sIFhTU0F1ZGl0b3I6OmZpbHRlclN0YXJ0
VG9rZW4oY29uc3QgRmlsdGVyVG9rZW5SZXF1ZXN0JiByZXF1ZXN0KQogICAgIHJldHVybiBkaWRC
bG9ja1NjcmlwdDsKIH0KIAotdm9pZCBYU1NBdWRpdG9yOjpmaWx0ZXJFbmRUb2tlbihIVE1MVG9r
ZW4mIHRva2VuKQordm9pZCBYU1NBdWRpdG9yOjpmaWx0ZXJFbmRUb2tlbihjb25zdCBGaWx0ZXJU
b2tlblJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgQVNTRVJUKG1fc2NyaXB0VGFnTmVzdGluZ0xl
dmVsKTsKLSAgICBpZiAoaGFzTmFtZSh0b2tlbiwgc2NyaXB0VGFnKSkgeworICAgIGlmIChoYXNO
YW1lKHJlcXVlc3QudG9rZW4sIHNjcmlwdFRhZykpIHsKICAgICAgICAgbV9zY3JpcHRUYWdOZXN0
aW5nTGV2ZWwtLTsKLSAgICAgICAgQVNTRVJUKG1fc2hvdWxkQWxsb3dDREFUQSB8fCAhbV9zY3Jp
cHRUYWdOZXN0aW5nTGV2ZWwpOworICAgICAgICBBU1NFUlQocmVxdWVzdC5zaG91bGRBbGxvd0NE
QVRBIHx8ICFtX3NjcmlwdFRhZ05lc3RpbmdMZXZlbCk7CiAgICAgfQogfQogCkBAIC0zNjEsNyAr
MzU4LDYgQEAgYm9vbCBYU1NBdWRpdG9yOjpmaWx0ZXJTY3JpcHRUb2tlbihjb25zdCBGaWx0ZXJU
b2tlblJlcXVlc3QmIHJlcXVlc3QpCiAgICAgQVNTRVJUKGhhc05hbWUocmVxdWVzdC50b2tlbiwg
c2NyaXB0VGFnKSk7CiAKICAgICBtX2NhY2hlZERlY29kZWRTbmlwcGV0ID0gZGVjb2RlZFNuaXBw
ZXRGb3JOYW1lKHJlcXVlc3QpOwotICAgIG1fc2hvdWxkQWxsb3dDREFUQSA9IG1fcGFyc2VyLT50
b2tlbml6ZXIoKS0+c2hvdWxkQWxsb3dDREFUQSgpOwogCiAgICAgYm9vbCBkaWRCbG9ja1Njcmlw
dCA9IGZhbHNlOwogICAgIGlmIChpc0NvbnRhaW5lZEluUmVxdWVzdChkZWNvZGVkU25pcHBldEZv
ck5hbWUocmVxdWVzdCkpKSB7CkBAIC01ODgsNyArNTg0LDcgQEAgU3RyaW5nIFhTU0F1ZGl0b3I6
OmRlY29kZWRTbmlwcGV0Rm9ySmF2YVNjcmlwdChjb25zdCBGaWx0ZXJUb2tlblJlcXVlc3QmIHJl
cXVlc3QKICAgICAgICAgLy8gVW5kZXIgU1ZHL1hNTCBydWxlcywgb25seSBIVE1MIGNvbW1lbnQg
c3ludGF4IG1hdHRlcnMgYW5kIHRoZSBwYXJzZXIgcmV0dXJucwogICAgICAgICAvLyB0aGVzZSBh
cyBhIHNlcGFyYXRlIGNvbW1lbnQgdG9rZW5zLiBIYXZpbmcgY29uc3VtZWQgd2hpdGVzcGFjZSwg
d2UgbmVlZCBub3QgbG9vawogICAgICAgICAvLyBmdXJ0aGVyIGZvciB0aGVzZS4KLSAgICAgICAg
aWYgKG1fc2hvdWxkQWxsb3dDREFUQSkKKyAgICAgICAgaWYgKHJlcXVlc3Quc2hvdWxkQWxsb3dD
REFUQSkKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIC8vIFVuZGVyIEhUTUwgcnVsZXMs
IGJvdGggdGhlIEhUTUwgYW5kIEpTIGNvbW1lbnQgc3luYXR4IG1hdHRlcnMsIGFuZCB0aGUgSFRN
TApAQCAtNjE1LDcgKzYxMSw3IEBAIFN0cmluZyBYU1NBdWRpdG9yOjpkZWNvZGVkU25pcHBldEZv
ckphdmFTY3JpcHQoY29uc3QgRmlsdGVyVG9rZW5SZXF1ZXN0JiByZXF1ZXN0CiAgICAgICAgIC8v
IG5vdCBzdG9wcGluZyBpbnNpZGUgYSAocG9zc2libHkgbXVsdGlwbHkgZW5jb2RlZCkgJS1lc2Fj
cGUgc2VxdWVuY2UgYnkgYnJlYWtpbmcgb24KICAgICAgICAgLy8gd2hpdGVzcGFjZSBvbmx5LiBX
ZSBzaG91bGQgaGF2ZSBlbm91Z2ggdGV4dCBpbiB0aGVzZSBjYXNlcyB0byBhdm9pZCBmYWxzZSBw
b3NpdGl2ZXMuCiAgICAgICAgIGZvciAoZm91bmRQb3NpdGlvbiA9IHN0YXJ0UG9zaXRpb247IGZv
dW5kUG9zaXRpb24gPCBlbmRQb3NpdGlvbjsgZm91bmRQb3NpdGlvbisrKSB7Ci0gICAgICAgICAg
ICBpZiAoIW1fc2hvdWxkQWxsb3dDREFUQSkgeworICAgICAgICAgICAgaWYgKCFyZXF1ZXN0LnNo
b3VsZEFsbG93Q0RBVEEpIHsKICAgICAgICAgICAgICAgICBpZiAoc3RhcnRzU2luZ2xlTGluZUNv
bW1lbnRBdChzdHJpbmcsIGZvdW5kUG9zaXRpb24pIHx8IHN0YXJ0c011bHRpTGluZUNvbW1lbnRB
dChzdHJpbmcsIGZvdW5kUG9zaXRpb24pKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvdW5kUG9z
aXRpb24gKz0gMjsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9YU1NBdWRpdG9yLmgKaW5kZXggZjFjMzVjNWEyNTZkYmRkNGY2NzA4OTNiMWU3YzZk
N2IzMjNiNmZhYy4uOTQ5OTk3N2VkNDMwNWRhZGQxNDAyY2ZmZWI3Mjc5ZmFjNWNiMmViZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaApAQCAtNDAsMjEgKzQwLDIzIEBA
IGNsYXNzIFRleHRSZXNvdXJjZURlY29kZXI7CiBjbGFzcyBYU1NJbmZvOwogCiBzdHJ1Y3QgRmls
dGVyVG9rZW5SZXF1ZXN0IHsKLSAgICBGaWx0ZXJUb2tlblJlcXVlc3QoSFRNTFRva2VuJiB0b2tl
biwgSFRNTFNvdXJjZVRyYWNrZXImIHNvdXJjZVRyYWNrZXIsIGNvbnN0IFRleHRSZXNvdXJjZURl
Y29kZXIqIGRlY29kZXIpCisgICAgRmlsdGVyVG9rZW5SZXF1ZXN0KEhUTUxUb2tlbiYgdG9rZW4s
IEhUTUxTb3VyY2VUcmFja2VyJiBzb3VyY2VUcmFja2VyLCBjb25zdCBUZXh0UmVzb3VyY2VEZWNv
ZGVyKiBkZWNvZGVyLCBib29sIHNob3VsZEFsbG93Q0RBVEEpCiAgICAgICAgIDogdG9rZW4odG9r
ZW4pCiAgICAgICAgICwgc291cmNlVHJhY2tlcihzb3VyY2VUcmFja2VyKQogICAgICAgICAsIGRl
Y29kZXIoZGVjb2RlcikKKyAgICAgICAgLCBzaG91bGRBbGxvd0NEQVRBKHNob3VsZEFsbG93Q0RB
VEEpCiAgICAgeyB9CiAKICAgICBIVE1MVG9rZW4mIHRva2VuOwogICAgIEhUTUxTb3VyY2VUcmFj
a2VyJiBzb3VyY2VUcmFja2VyOwogICAgIGNvbnN0IFRleHRSZXNvdXJjZURlY29kZXIqIGRlY29k
ZXI7CisgICAgYm9vbCBzaG91bGRBbGxvd0NEQVRBOwogfTsKIAogY2xhc3MgWFNTQXVkaXRvciB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoWFNTQXVkaXRvcik7CiBwdWJsaWM6Ci0gICAgZXhw
bGljaXQgWFNTQXVkaXRvcihIVE1MRG9jdW1lbnRQYXJzZXIqKTsKKyAgICBYU1NBdWRpdG9yKCk7
CiAKICAgICB2b2lkIGluaXQoRG9jdW1lbnQqKTsKICAgICBQYXNzT3duUHRyPFhTU0luZm8+IGZp
bHRlclRva2VuKGNvbnN0IEZpbHRlclRva2VuUmVxdWVzdCYpOwpAQCAtNzQsNyArNzYsNyBAQCBw
cml2YXRlOgogICAgIH07CiAKICAgICBib29sIGZpbHRlclN0YXJ0VG9rZW4oY29uc3QgRmlsdGVy
VG9rZW5SZXF1ZXN0Jik7Ci0gICAgdm9pZCBmaWx0ZXJFbmRUb2tlbihIVE1MVG9rZW4mKTsKKyAg
ICB2b2lkIGZpbHRlckVuZFRva2VuKGNvbnN0IEZpbHRlclRva2VuUmVxdWVzdCYpOwogICAgIGJv
b2wgZmlsdGVyQ2hhcmFjdGVyVG9rZW4oY29uc3QgRmlsdGVyVG9rZW5SZXF1ZXN0Jik7CiAgICAg
Ym9vbCBmaWx0ZXJTY3JpcHRUb2tlbihjb25zdCBGaWx0ZXJUb2tlblJlcXVlc3QmKTsKICAgICBi
b29sIGZpbHRlck9iamVjdFRva2VuKGNvbnN0IEZpbHRlclRva2VuUmVxdWVzdCYpOwpAQCAtOTcs
OCArOTksNiBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNDb250YWluZWRJblJlcXVlc3QoY29uc3Qg
U3RyaW5nJik7CiAgICAgYm9vbCBpc0xpa2VseVNhZmVSZXNvdXJjZShjb25zdCBTdHJpbmcmIHVy
bCk7CiAKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgZGVwZW5kZW5jeS4KLSAgICBIVE1MRG9j
dW1lbnRQYXJzZXIqIG1fcGFyc2VyOwogICAgIEtVUkwgbV9kb2N1bWVudFVSTDsKICAgICBib29s
IG1faXNFbmFibGVkOwogICAgIFhTU1Byb3RlY3Rpb25EaXNwb3NpdGlvbiBtX3hzc1Byb3RlY3Rp
b247CkBAIC0xMTEsNyArMTExLDYgQEAgcHJpdmF0ZToKIAogICAgIFN0YXRlIG1fc3RhdGU7CiAg
ICAgU3RyaW5nIG1fY2FjaGVkRGVjb2RlZFNuaXBwZXQ7Ci0gICAgYm9vbCBtX3Nob3VsZEFsbG93
Q0RBVEE7CiAgICAgdW5zaWduZWQgbV9zY3JpcHRUYWdOZXN0aW5nTGV2ZWw7CiAgICAgS1VSTCBt
X3JlcG9ydFVSTDsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186705</attachid>
            <date>2013-02-05 14:21:37 -0800</date>
            <delta_ts>2013-02-05 14:40:35 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-108666-20130205141814.patch</filename>
            <type>text/plain</type>
            <size>10167</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2JlNDhmODJmN2QwNTM2
MWIwNzM2NDVmNGE3ZTlkZmNhMGUyODNjYi4uMWY5ZjdkYjM3MzFiZTYwOGE4MzJiYjMyN2IyZDE2
MTk3OTRjOTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAyLTA1ICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ29udGludWUgbWFr
aW5nIFhTU0F1ZGl0b3IgdGhyZWFkIHNhZmU6IFJlbW92ZSBkZXBlbmRlbmN5IG9uIHRoZSBwYXJz
ZXIncyB0b2tlbml6ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwODY2NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAg
ICAgVGhpcyBpcyB0aGUgZmluYWwgZGVwZW5kZW5jeSBvbiB0aGUgcGFyc2VyLCBzbyB3ZSByZW1v
dmUgdGhhdCBhcyB3ZWxsLiBZYXkhCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2Ugbm8g
bmV3IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQ
YXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9j
dW1lbnRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpwdW1w
VG9rZW5pemVyKTogUGFzcyBtX3Rva2VuaXplci0+c2hvdWxkQWxsb3dDREFUQSgpCisgICAgICAg
ICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRp
dG9yOjpYU1NBdWRpdG9yKTogUmVtb3ZlIGlzTWFpblRocmVhZCgpIGNoZWNrIGJlY2F1c2Ugd2Ug
aGF2ZSBvbmUgaW4gaW5pdCgpIGFueXdheS4KKyAgICAgICAgTW92ZSBtX2lzRW5hYmxlZCBhbmQg
bV9kb2N1bWVudFVSTCBpbml0aWFsaXphdGlvbiB0byBpbml0KCkgYmVjYXVzZSB3ZSBoYXZlIGEg
RG9jdW1lbnQqIHRoZXJlLgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6aW5pdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpmaWx0ZXJUb2tlbik6CisgICAgICAgIChXZWJD
b3JlOjpYU1NBdWRpdG9yOjpmaWx0ZXJTdGFydFRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OlhT
U0F1ZGl0b3I6OmZpbHRlckVuZFRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6
OmZpbHRlclNjcmlwdFRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmRlY29k
ZWRTbmlwcGV0Rm9ySmF2YVNjcmlwdCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRv
ci5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyVG9rZW5SZXF1ZXN0OjpGaWx0ZXJUb2tlblJl
cXVlc3QpOgorICAgICAgICAoRmlsdGVyVG9rZW5SZXF1ZXN0KToKKyAgICAgICAgKFhTU0F1ZGl0
b3IpOgorCiAyMDEzLTAyLTA1ICBZdXN1ZiBPenV5c2FsICA8eXVzdWZvQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgW2Nocm9taXVtXSBFbmFibGUgc2hvdWxkR2VzdHVyZXNUcmlnZ2VyQWN0aXZlIGZv
ciBBbmRyb2lkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9j
dW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50
UGFyc2VyLmNwcAppbmRleCA2MTA2MTEzMzk2NTBlZWM5ZDJjMjcwN2JmM2M3NTY2YTdkNWQ0MWYx
Li4yNTI4OWNmMjNhMmMwZmY1MGUzMTQ1NzAyYmE3MTVkMDZkMTVhNTkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTgyLDcg
KzgyLDYgQEAgSFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJzZXIoSFRNTERvY3Vt
ZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvcnMKICAgICAsIG1fc2NyaXB0UnVubmVyKEhU
TUxTY3JpcHRSdW5uZXI6OmNyZWF0ZShkb2N1bWVudCwgdGhpcykpCiAgICAgLCBtX3RyZWVCdWls
ZGVyKEhUTUxUcmVlQnVpbGRlcjo6Y3JlYXRlKHRoaXMsIGRvY3VtZW50LCByZXBvcnRFcnJvcnMs
IG1fb3B0aW9ucykpCiAgICAgLCBtX3BhcnNlclNjaGVkdWxlcihIVE1MUGFyc2VyU2NoZWR1bGVy
OjpjcmVhdGUodGhpcykpCi0gICAgLCBtX3hzc0F1ZGl0b3IodGhpcykKICAgICAsIG1feHNzQXVk
aXRvckRlbGVnYXRlKGRvY3VtZW50KQogI2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikK
ICAgICAsIG1fd2Vha0ZhY3RvcnkodGhpcykKQEAgLTEwMiw3ICsxMDEsNiBAQCBIVE1MRG9jdW1l
bnRQYXJzZXI6OkhUTUxEb2N1bWVudFBhcnNlcihEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwg
RWxlbWVudCogY29udAogICAgICwgbV90b2tlbihhZG9wdFB0cihuZXcgSFRNTFRva2VuKSkKICAg
ICAsIG1fdG9rZW5pemVyKEhUTUxUb2tlbml6ZXI6OmNyZWF0ZShtX29wdGlvbnMpKQogICAgICwg
bV90cmVlQnVpbGRlcihIVE1MVHJlZUJ1aWxkZXI6OmNyZWF0ZSh0aGlzLCBmcmFnbWVudCwgY29u
dGV4dEVsZW1lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24sIG1fb3B0aW9ucykpCi0gICAgLCBtX3hz
c0F1ZGl0b3IodGhpcykKICAgICAsIG1feHNzQXVkaXRvckRlbGVnYXRlKGZyYWdtZW50LT5kb2N1
bWVudCgpKQogI2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKICAgICAsIG1fd2Vha0Zh
Y3RvcnkodGhpcykKQEAgLTM3OCw4ICszNzYsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6
cHVtcFRva2VuaXplcihTeW5jaHJvbm91c01vZGUgbW9kZSkKIAogICAgICAgICAgICAgLy8gV2Ug
ZG8gbm90IFhTUyBmaWx0ZXIgaW5uZXJIVE1MLCB3aGljaCBtZWFucyB3ZSAoaW50ZW50aW9uYWxs
eSkgZmFpbAogICAgICAgICAgICAgLy8gaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Rv
bS13cml0ZS1pbm5lckhUTUwuaHRtbAotICAgICAgICAgICAgT3duUHRyPERpZEJsb2NrU2NyaXB0
UmVxdWVzdD4gcmVxdWVzdCA9IG1feHNzQXVkaXRvci5maWx0ZXJUb2tlbihGaWx0ZXJUb2tlblJl
cXVlc3QodG9rZW4oKSwgbV9zb3VyY2VUcmFja2VyLCBkb2N1bWVudCgpLT5kZWNvZGVyKCkpKTsK
LSAgICAgICAgICAgIGlmIChyZXF1ZXN0KQorICAgICAgICAgICAgaWYgKE93blB0cjxEaWRCbG9j
a1NjcmlwdFJlcXVlc3Q+IHJlcXVlc3QgPSBtX3hzc0F1ZGl0b3IuZmlsdGVyVG9rZW4oRmlsdGVy
VG9rZW5SZXF1ZXN0KHRva2VuKCksIG1fc291cmNlVHJhY2tlciwgZG9jdW1lbnQoKS0+ZGVjb2Rl
cigpLCBtX3Rva2VuaXplci0+c2hvdWxkQWxsb3dDREFUQSgpKSkpCiAgICAgICAgICAgICAgICAg
bV94c3NBdWRpdG9yRGVsZWdhdGUuZGlkQmxvY2tTY3JpcHQocmVxdWVzdC5yZWxlYXNlKCkpOwog
ICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1
ZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKaW5k
ZXggMmUwODAzYTQzYTgzODAwMmM5ZTEzYTAzZjA0OWIwNmM0ZDA4M2M5ZC4uYjZlMmUzZWFiYmZj
OTM0YTdkOWJkNjRlMzIxMDA5MTA4ZmQ3Mzg4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvWFNTQXVkaXRvci5jcHAKQEAgLTE3NCwyMSArMTc0LDEyIEBAIHN0YXRpYyBTdHJpbmcgZnVs
bHlEZWNvZGVTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFRleHRSZXNvdXJjZURl
Y29kZXIqCiAgICAgcmV0dXJuIHdvcmtpbmdTdHJpbmc7CiB9CiAKLVhTU0F1ZGl0b3I6OlhTU0F1
ZGl0b3IoSFRNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCi0gICAgOiBtX3BhcnNlcihwYXJzZXIp
Ci0gICAgLCBtX2RvY3VtZW50VVJMKHBhcnNlci0+ZG9jdW1lbnQoKS0+dXJsKCkpCi0gICAgLCBt
X2lzRW5hYmxlZChmYWxzZSkKK1hTU0F1ZGl0b3I6OlhTU0F1ZGl0b3IoKQorICAgIDogbV9pc0Vu
YWJsZWQoZmFsc2UpCiAgICAgLCBtX3hzc1Byb3RlY3Rpb24oWFNTUHJvdGVjdGlvbkVuYWJsZWQp
CiAgICAgLCBtX3N0YXRlKFVuaW5pdGlhbGl6ZWQpCi0gICAgLCBtX3Nob3VsZEFsbG93Q0RBVEEo
ZmFsc2UpCiAgICAgLCBtX3NjcmlwdFRhZ05lc3RpbmdMZXZlbCgwKQogewotICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgQVNTRVJUKG1fcGFyc2VyKTsKLSAgICBpZiAoRnJhbWUqIGZy
YW1lID0gcGFyc2VyLT5kb2N1bWVudCgpLT5mcmFtZSgpKSB7Ci0gICAgICAgIGlmIChTZXR0aW5n
cyogc2V0dGluZ3MgPSBmcmFtZS0+c2V0dGluZ3MoKSkKLSAgICAgICAgICAgIG1faXNFbmFibGVk
ID0gc2V0dGluZ3MtPnhzc0F1ZGl0b3JFbmFibGVkKCk7Ci0gICAgfQogICAgIC8vIEFsdGhvdWdo
IHRlbXB0aW5nIHRvIGNhbGwgaW5pdCgpIGF0IHRoaXMgcG9pbnQsIHRoZSB2YXJpb3VzIG9iamVj
dHMKICAgICAvLyB3ZSB3YW50IHRvIHJlZmVyZW5jZSBtaWdodCBub3QgYWxsIGhhdmUgYmVlbiBj
b25zdHJ1Y3RlZCB5ZXQuCiB9CkBAIC0yMDQsOSArMTk1LDE1IEBAIHZvaWQgWFNTQXVkaXRvcjo6
aW5pdChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgQVNTRVJUKG1fc3RhdGUgPT0gVW5pbml0aWFs
aXplZCk7CiAgICAgbV9zdGF0ZSA9IEluaXRpYWxpemVkOwogCisgICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IGRvY3VtZW50LT5mcmFtZSgpKQorICAgICAgICBpZiAoU2V0dGluZ3MqIHNldHRpbmdzID0g
ZnJhbWUtPnNldHRpbmdzKCkpCisgICAgICAgICAgICBtX2lzRW5hYmxlZCA9IHNldHRpbmdzLT54
c3NBdWRpdG9yRW5hYmxlZCgpOworCiAgICAgaWYgKCFtX2lzRW5hYmxlZCkKICAgICAgICAgcmV0
dXJuOwogCisgICAgbV9kb2N1bWVudFVSTCA9IGRvY3VtZW50LT51cmwoKTsKKwogICAgIC8vIElu
IHRoZW9yeSwgdGhlIERvY3VtZW50IGNvdWxkIGhhdmUgZGV0YWNoZWQgZnJvbSB0aGUgRnJhbWUg
YWZ0ZXIgdGhlCiAgICAgLy8gWFNTQXVkaXRvciB3YXMgY29uc3RydWN0ZWQuCiAgICAgaWYgKCFk
b2N1bWVudC0+ZnJhbWUoKSkgewpAQCAtMjkxLDcgKzI4OCw3IEBAIFBhc3NPd25QdHI8RGlkQmxv
Y2tTY3JpcHRSZXF1ZXN0PiBYU1NBdWRpdG9yOjpmaWx0ZXJUb2tlbihjb25zdCBGaWx0ZXJUb2tl
blJlcXVlCiAgICAgICAgIGlmIChyZXF1ZXN0LnRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBl
czo6Q2hhcmFjdGVyKQogICAgICAgICAgICAgZGlkQmxvY2tTY3JpcHQgPSBmaWx0ZXJDaGFyYWN0
ZXJUb2tlbihyZXF1ZXN0KTsKICAgICAgICAgZWxzZSBpZiAocmVxdWVzdC50b2tlbi50eXBlKCkg
PT0gSFRNTFRva2VuVHlwZXM6OkVuZFRhZykKLSAgICAgICAgICAgIGZpbHRlckVuZFRva2VuKHJl
cXVlc3QudG9rZW4pOworICAgICAgICAgICAgZmlsdGVyRW5kVG9rZW4ocmVxdWVzdCk7CiAgICAg
fQogCiAgICAgaWYgKGRpZEJsb2NrU2NyaXB0KSB7CkBAIC0zMTMsNyArMzEwLDcgQEAgYm9vbCBY
U1NBdWRpdG9yOjpmaWx0ZXJTdGFydFRva2VuKGNvbnN0IEZpbHRlclRva2VuUmVxdWVzdCYgcmVx
dWVzdCkKIAogICAgIGlmIChoYXNOYW1lKHJlcXVlc3QudG9rZW4sIHNjcmlwdFRhZykpIHsKICAg
ICAgICAgZGlkQmxvY2tTY3JpcHQgfD0gZmlsdGVyU2NyaXB0VG9rZW4ocmVxdWVzdCk7Ci0gICAg
ICAgIEFTU0VSVChtX3Nob3VsZEFsbG93Q0RBVEEgfHwgIW1fc2NyaXB0VGFnTmVzdGluZ0xldmVs
KTsKKyAgICAgICAgQVNTRVJUKHJlcXVlc3Quc2hvdWxkQWxsb3dDREFUQSB8fCAhbV9zY3JpcHRU
YWdOZXN0aW5nTGV2ZWwpOwogICAgICAgICBtX3NjcmlwdFRhZ05lc3RpbmdMZXZlbCsrOwogICAg
IH0gZWxzZSBpZiAoaGFzTmFtZShyZXF1ZXN0LnRva2VuLCBvYmplY3RUYWcpKQogICAgICAgICBk
aWRCbG9ja1NjcmlwdCB8PSBmaWx0ZXJPYmplY3RUb2tlbihyZXF1ZXN0KTsKQEAgLTMzNSwxMiAr
MzMyLDEyIEBAIGJvb2wgWFNTQXVkaXRvcjo6ZmlsdGVyU3RhcnRUb2tlbihjb25zdCBGaWx0ZXJU
b2tlblJlcXVlc3QmIHJlcXVlc3QpCiAgICAgcmV0dXJuIGRpZEJsb2NrU2NyaXB0OwogfQogCi12
b2lkIFhTU0F1ZGl0b3I6OmZpbHRlckVuZFRva2VuKEhUTUxUb2tlbiYgdG9rZW4pCit2b2lkIFhT
U0F1ZGl0b3I6OmZpbHRlckVuZFRva2VuKGNvbnN0IEZpbHRlclRva2VuUmVxdWVzdCYgcmVxdWVz
dCkKIHsKICAgICBBU1NFUlQobV9zY3JpcHRUYWdOZXN0aW5nTGV2ZWwpOwotICAgIGlmIChoYXNO
YW1lKHRva2VuLCBzY3JpcHRUYWcpKSB7CisgICAgaWYgKGhhc05hbWUocmVxdWVzdC50b2tlbiwg
c2NyaXB0VGFnKSkgewogICAgICAgICBtX3NjcmlwdFRhZ05lc3RpbmdMZXZlbC0tOwotICAgICAg
ICBBU1NFUlQobV9zaG91bGRBbGxvd0NEQVRBIHx8ICFtX3NjcmlwdFRhZ05lc3RpbmdMZXZlbCk7
CisgICAgICAgIEFTU0VSVChyZXF1ZXN0LnNob3VsZEFsbG93Q0RBVEEgfHwgIW1fc2NyaXB0VGFn
TmVzdGluZ0xldmVsKTsKICAgICB9CiB9CiAKQEAgLTM2MSw3ICszNTgsNiBAQCBib29sIFhTU0F1
ZGl0b3I6OmZpbHRlclNjcmlwdFRva2VuKGNvbnN0IEZpbHRlclRva2VuUmVxdWVzdCYgcmVxdWVz
dCkKICAgICBBU1NFUlQoaGFzTmFtZShyZXF1ZXN0LnRva2VuLCBzY3JpcHRUYWcpKTsKIAogICAg
IG1fY2FjaGVkRGVjb2RlZFNuaXBwZXQgPSBkZWNvZGVkU25pcHBldEZvck5hbWUocmVxdWVzdCk7
Ci0gICAgbV9zaG91bGRBbGxvd0NEQVRBID0gbV9wYXJzZXItPnRva2VuaXplcigpLT5zaG91bGRB
bGxvd0NEQVRBKCk7CiAKICAgICBib29sIGRpZEJsb2NrU2NyaXB0ID0gZmFsc2U7CiAgICAgaWYg
KGlzQ29udGFpbmVkSW5SZXF1ZXN0KGRlY29kZWRTbmlwcGV0Rm9yTmFtZShyZXF1ZXN0KSkpIHsK
QEAgLTU4OCw3ICs1ODQsNyBAQCBTdHJpbmcgWFNTQXVkaXRvcjo6ZGVjb2RlZFNuaXBwZXRGb3JK
YXZhU2NyaXB0KGNvbnN0IEZpbHRlclRva2VuUmVxdWVzdCYgcmVxdWVzdAogICAgICAgICAvLyBV
bmRlciBTVkcvWE1MIHJ1bGVzLCBvbmx5IEhUTUwgY29tbWVudCBzeW50YXggbWF0dGVycyBhbmQg
dGhlIHBhcnNlciByZXR1cm5zCiAgICAgICAgIC8vIHRoZXNlIGFzIGEgc2VwYXJhdGUgY29tbWVu
dCB0b2tlbnMuIEhhdmluZyBjb25zdW1lZCB3aGl0ZXNwYWNlLCB3ZSBuZWVkIG5vdCBsb29rCiAg
ICAgICAgIC8vIGZ1cnRoZXIgZm9yIHRoZXNlLgotICAgICAgICBpZiAobV9zaG91bGRBbGxvd0NE
QVRBKQorICAgICAgICBpZiAocmVxdWVzdC5zaG91bGRBbGxvd0NEQVRBKQogICAgICAgICAgICAg
YnJlYWs7CiAKICAgICAgICAgLy8gVW5kZXIgSFRNTCBydWxlcywgYm90aCB0aGUgSFRNTCBhbmQg
SlMgY29tbWVudCBzeW5hdHggbWF0dGVycywgYW5kIHRoZSBIVE1MCkBAIC02MTUsNyArNjExLDcg
QEAgU3RyaW5nIFhTU0F1ZGl0b3I6OmRlY29kZWRTbmlwcGV0Rm9ySmF2YVNjcmlwdChjb25zdCBG
aWx0ZXJUb2tlblJlcXVlc3QmIHJlcXVlc3QKICAgICAgICAgLy8gbm90IHN0b3BwaW5nIGluc2lk
ZSBhIChwb3NzaWJseSBtdWx0aXBseSBlbmNvZGVkKSAlLWVzYWNwZSBzZXF1ZW5jZSBieSBicmVh
a2luZyBvbgogICAgICAgICAvLyB3aGl0ZXNwYWNlIG9ubHkuIFdlIHNob3VsZCBoYXZlIGVub3Vn
aCB0ZXh0IGluIHRoZXNlIGNhc2VzIHRvIGF2b2lkIGZhbHNlIHBvc2l0aXZlcy4KICAgICAgICAg
Zm9yIChmb3VuZFBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbjsgZm91bmRQb3NpdGlvbiA8IGVuZFBv
c2l0aW9uOyBmb3VuZFBvc2l0aW9uKyspIHsKLSAgICAgICAgICAgIGlmICghbV9zaG91bGRBbGxv
d0NEQVRBKSB7CisgICAgICAgICAgICBpZiAoIXJlcXVlc3Quc2hvdWxkQWxsb3dDREFUQSkgewog
ICAgICAgICAgICAgICAgIGlmIChzdGFydHNTaW5nbGVMaW5lQ29tbWVudEF0KHN0cmluZywgZm91
bmRQb3NpdGlvbikgfHwgc3RhcnRzTXVsdGlMaW5lQ29tbWVudEF0KHN0cmluZywgZm91bmRQb3Np
dGlvbikpIHsKICAgICAgICAgICAgICAgICAgICAgZm91bmRQb3NpdGlvbiArPSAyOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL1hTU0F1ZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3Iu
aAppbmRleCBmYTIzNGQzN2NkNjUzMDAwMGIxNjhiZGY4M2Y0OGVmMDkyYzM1Zjk5Li44ZjIwOTk1
MTU2NDQwZmVjYjVkODY4OTAxNzlkMmZmMGVlZjFlMmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvWFNTQXVkaXRvci5oCkBAIC00MCwyMSArNDAsMjMgQEAgY2xhc3MgSFRNTFNvdXJjZVRy
YWNrZXI7CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogCiBzdHJ1Y3QgRmlsdGVyVG9rZW5S
ZXF1ZXN0IHsKLSAgICBGaWx0ZXJUb2tlblJlcXVlc3QoSFRNTFRva2VuJiB0b2tlbiwgSFRNTFNv
dXJjZVRyYWNrZXImIHNvdXJjZVRyYWNrZXIsIGNvbnN0IFRleHRSZXNvdXJjZURlY29kZXIqIGRl
Y29kZXIpCisgICAgRmlsdGVyVG9rZW5SZXF1ZXN0KEhUTUxUb2tlbiYgdG9rZW4sIEhUTUxTb3Vy
Y2VUcmFja2VyJiBzb3VyY2VUcmFja2VyLCBjb25zdCBUZXh0UmVzb3VyY2VEZWNvZGVyKiBkZWNv
ZGVyLCBib29sIHNob3VsZEFsbG93Q0RBVEEpCiAgICAgICAgIDogdG9rZW4odG9rZW4pCiAgICAg
ICAgICwgc291cmNlVHJhY2tlcihzb3VyY2VUcmFja2VyKQogICAgICAgICAsIGRlY29kZXIoZGVj
b2RlcikKKyAgICAgICAgLCBzaG91bGRBbGxvd0NEQVRBKHNob3VsZEFsbG93Q0RBVEEpCiAgICAg
eyB9CiAKICAgICBIVE1MVG9rZW4mIHRva2VuOwogICAgIEhUTUxTb3VyY2VUcmFja2VyJiBzb3Vy
Y2VUcmFja2VyOwogICAgIGNvbnN0IFRleHRSZXNvdXJjZURlY29kZXIqIGRlY29kZXI7CisgICAg
Ym9vbCBzaG91bGRBbGxvd0NEQVRBOwogfTsKIAogY2xhc3MgWFNTQXVkaXRvciB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoWFNTQXVkaXRvcik7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgWFNT
QXVkaXRvcihIVE1MRG9jdW1lbnRQYXJzZXIqKTsKKyAgICBYU1NBdWRpdG9yKCk7CiAKICAgICB2
b2lkIGluaXQoRG9jdW1lbnQqKTsKICAgICBQYXNzT3duUHRyPERpZEJsb2NrU2NyaXB0UmVxdWVz
dD4gZmlsdGVyVG9rZW4oY29uc3QgRmlsdGVyVG9rZW5SZXF1ZXN0Jik7CkBAIC03NCw3ICs3Niw3
IEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIGJvb2wgZmlsdGVyU3RhcnRUb2tlbihjb25zdCBG
aWx0ZXJUb2tlblJlcXVlc3QmKTsKLSAgICB2b2lkIGZpbHRlckVuZFRva2VuKEhUTUxUb2tlbiYp
OworICAgIHZvaWQgZmlsdGVyRW5kVG9rZW4oY29uc3QgRmlsdGVyVG9rZW5SZXF1ZXN0Jik7CiAg
ICAgYm9vbCBmaWx0ZXJDaGFyYWN0ZXJUb2tlbihjb25zdCBGaWx0ZXJUb2tlblJlcXVlc3QmKTsK
ICAgICBib29sIGZpbHRlclNjcmlwdFRva2VuKGNvbnN0IEZpbHRlclRva2VuUmVxdWVzdCYpOwog
ICAgIGJvb2wgZmlsdGVyT2JqZWN0VG9rZW4oY29uc3QgRmlsdGVyVG9rZW5SZXF1ZXN0Jik7CkBA
IC05Nyw4ICs5OSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0NvbnRhaW5lZEluUmVxdWVzdChj
b25zdCBTdHJpbmcmKTsKICAgICBib29sIGlzTGlrZWx5U2FmZVJlc291cmNlKGNvbnN0IFN0cmlu
ZyYgdXJsKTsKIAotICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBkZXBlbmRlbmN5LgotICAgIEhU
TUxEb2N1bWVudFBhcnNlciogbV9wYXJzZXI7CiAgICAgS1VSTCBtX2RvY3VtZW50VVJMOwogICAg
IGJvb2wgbV9pc0VuYWJsZWQ7CiAgICAgWFNTUHJvdGVjdGlvbkRpc3Bvc2l0aW9uIG1feHNzUHJv
dGVjdGlvbjsKQEAgLTExMSw3ICsxMTEsNiBAQCBwcml2YXRlOgogCiAgICAgU3RhdGUgbV9zdGF0
ZTsKICAgICBTdHJpbmcgbV9jYWNoZWREZWNvZGVkU25pcHBldDsKLSAgICBib29sIG1fc2hvdWxk
QWxsb3dDREFUQTsKICAgICB1bnNpZ25lZCBtX3NjcmlwdFRhZ05lc3RpbmdMZXZlbDsKICAgICBL
VVJMIG1fcmVwb3J0VVJMOwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>