<?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>97095</bug_id>
          
          <creation_ts>2012-09-19 04:45:18 -0700</creation_ts>
          <short_desc>MediaStream API: Extend UserMediaRequest with a ownerDocument method</short_desc>
          <delta_ts>2012-09-20 11:22:56 -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>All</rep_platform>
          <op_sys>All</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>56459</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tommy Widenflycht">tommyw</reporter>
          <assigned_to name="Tommy Widenflycht">tommyw</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>723456</commentid>
    <comment_count>0</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-19 04:45:18 -0700</bug_when>
    <thetext>Chromium need to know exactly which frame called getUserMedia so that it can clean away the stream when the frame goes away. Since that information is available in webkit add an accessor method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723464</commentid>
    <comment_count>1</comment_count>
      <attachid>164717</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-19 05:01:26 -0700</bug_when>
    <thetext>Created attachment 164717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723470</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-19 05:07:54 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723691</commentid>
    <comment_count>3</comment_count>
      <attachid>164717</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-19 11:41:35 -0700</bug_when>
    <thetext>Comment on attachment 164717
Patch

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

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:77
&gt; +    return ((Document*)m_scriptExecutionContext)-&gt;frame();

We use C++ style casts:

static_cast&lt;Document*&gt;(m_scriptExecutionContext)-&gt;frame()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723692</commentid>
    <comment_count>4</comment_count>
      <attachid>164717</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-19 11:43:51 -0700</bug_when>
    <thetext>Comment on attachment 164717
Patch

This is fine, but it should return the associated Document rather than the Frame.  DOM-related objects are associated with Documents (the &quot;D&quot; in DOM stands for Document).  View-related objects are associated with Frames.

WebDocument has a frame() function, so the embedder can find the Frame if it needs that for its own purposes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723693</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-19 11:44:56 -0700</bug_when>
    <thetext>Also &quot;calling&quot; isn&apos;t the right name.  That&apos;s a scripting related concept and there&apos;s no reason these objects are necessarily products of script calls.  Maybe the term &quot;ownerDocument&quot; is better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723694</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-19 11:45:35 -0700</bug_when>
    <thetext>Also, keep in mind that m_scriptExecutionContext can be 0 since this object doesn&apos;t keep the Document alive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724320</commentid>
    <comment_count>7</comment_count>
      <attachid>164871</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-20 02:47:15 -0700</bug_when>
    <thetext>Created attachment 164871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724321</commentid>
    <comment_count>8</comment_count>
      <attachid>164717</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-20 02:47:52 -0700</bug_when>
    <thetext>Comment on attachment 164717
Patch

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

&gt;&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:77
&gt;&gt; +    return ((Document*)m_scriptExecutionContext)-&gt;frame();
&gt; 
&gt; We use C++ style casts:
&gt; 
&gt; static_cast&lt;Document*&gt;(m_scriptExecutionContext)-&gt;frame()

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724322</commentid>
    <comment_count>9</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-20 02:48:24 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 164717 [details])
&gt; This is fine, but it should return the associated Document rather than the Frame.  DOM-related objects are associated with Documents (the &quot;D&quot; in DOM stands for Document).  View-related objects are associated with Frames.
&gt; 
&gt; WebDocument has a frame() function, so the embedder can find the Frame if it needs that for its own purposes.

Much nicer, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724323</commentid>
    <comment_count>10</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-20 02:49:56 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Also &quot;calling&quot; isn&apos;t the right name.  That&apos;s a scripting related concept and there&apos;s no reason these objects are necessarily products of script calls.  Maybe the term &quot;ownerDocument&quot; is better?

I&apos;m not arguing with you but these calls are only called as a direct response to a JS call. However that is ownerDocument is much better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724324</commentid>
    <comment_count>11</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-20 02:50:11 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Also, keep in mind that m_scriptExecutionContext can be 0 since this object doesn&apos;t keep the Document alive.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724662</commentid>
    <comment_count>12</comment_count>
      <attachid>164871</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-20 11:04:25 -0700</bug_when>
    <thetext>Comment on attachment 164871
Patch

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

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:80
&gt; +    if (m_scriptExecutionContext) {
&gt; +        ASSERT(m_scriptExecutionContext-&gt;isDocument());
&gt; +        return static_cast&lt;Document*&gt;(m_scriptExecutionContext);
&gt; +    }
&gt; +
&gt; +    return 0;

The other way you could have done this, by the way, is:
ASSERT(isMainThread());
return static_cast&lt;Document*&gt;(m_scriptExecutionContext);

But this is fine too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724693</commentid>
    <comment_count>13</comment_count>
      <attachid>164871</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-20 11:22:52 -0700</bug_when>
    <thetext>Comment on attachment 164871
Patch

Clearing flags on attachment: 164871

Committed r129145: &lt;http://trac.webkit.org/changeset/129145&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724694</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-20 11:22:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164717</attachid>
            <date>2012-09-19 05:01:26 -0700</date>
            <delta_ts>2012-09-20 02:47:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97095-20120919140052.patch</filename>
            <type>text/plain</type>
            <size>8009</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDgyNjZlZDk2NDJlYzQ3
YjcxNmEwNThkMDJhZGU5ZDdkN2ZiY2JlZC4uOWY2YTkyZTljMjRmMWU4ZmQ1ODQ5YzMwYjliZDMw
NzI0NjZmMzczYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA5LTE5ICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFt
IEFQSTogRXh0ZW5kIFVzZXJNZWRpYVJlcXVlc3Qgd2l0aCBhIGNhbGxpbmdGcmFtZSBtZXRob2QK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MDk1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21pdW0g
bmVlZCB0byBrbm93IGV4YWN0bHkgd2hpY2ggZnJhbWUgY2FsbGVkIGdldFVzZXJNZWRpYSBzbyB0
aGF0IGl0IGNhbgorICAgICAgICBjbGVhbiBhd2F5IHRoZSBzdHJlYW0gd2hlbiB0aGUgZnJhbWUg
Z29lcyBhd2F5LgorICAgICAgICBTaW5jZSB0aGF0IGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBp
biB3ZWJraXQgYWRkIGFuIGFjY2Vzc29yIG1ldGhvZC4KKworICAgICAgICBDaHJvbWl1bSBtb2Nr
IGNsYXNzIGV4dGVuZGVkIHRvIHRlc3QgdGhlIGFkZGVkIG1ldGhvZC4KKworICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpVc2VyTWVkaWFSZXF1ZXN0OjpjYWxsaW5nRnJhbWUpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFVzZXJNZWRpYVJlcXVlc3QpOgorCiAyMDEyLTA5LTE3ICBN
aWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRG9uJ3QgR0MgaW1nIGVs
ZW1lbnRzIGJsb2NrZWQgYnkgQ1NQIHVudGlsIGVycm9yIGV2ZW50cyBmaXJlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCA2ODVkYTM4YTY0NmY1ZjExY2Y1MmMzNDM2YzdlMWFlZjE2NjBk
NjE5Li4yZWQ5NWI1YjYxYTNjZTM3MTgxYTMzNTM5NzYxZGE4MzNlOTViNTQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA5LTE5ICBUb21teSBXaWRl
bmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQSTog
RXh0ZW5kIFVzZXJNZWRpYVJlcXVlc3Qgd2l0aCBhIGNhbGxpbmdGcmFtZSBtZXRob2QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MDk1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21pdW0gbmVlZCB0
byBrbm93IGV4YWN0bHkgd2hpY2ggZnJhbWUgY2FsbGVkIGdldFVzZXJNZWRpYSBzbyB0aGF0IGl0
IGNhbiBjbGVhbgorICAgICAgICBhd2F5IHRoZSBzdHJlYW0gd2hlbiB0aGUgZnJhbWUgZ29lcyBh
d2F5LgorICAgICAgICBTaW5jZSB0aGF0IGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBpbiB3ZWJr
aXQgYWRkIGFuIGFjY2Vzc29yIG1ldGhvZC4KKworICAgICAgICBBbHNvIHRha2luZyB0aGUgb3Bw
b3J0dW5pdHkgdG8gY2xlYW4gYXdheSBhbiB1bnVzZWQgZGVwcmVjYXRlZCBtZXRob2QuCisKKyAg
ICAgICAgKiBwdWJsaWMvV2ViVXNlck1lZGlhUmVxdWVzdC5oOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYlVzZXJNZWRpYVJlcXVlc3QpOgorICAgICAgICAqIHNyYy9XZWJVc2VyTWVk
aWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlck1lZGlhUmVxdWVzdDo6Y2Fs
bGluZ0ZyYW1lKToKKyAgICAgICAgKFdlYktpdCk6CisKIDIwMTItMDktMTQgIFl1cnkgU2VtaWto
YXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogT3du
UHRyIGFuZCBSZWZQdHIgcmVwb3J0ZWQgYnkgcG9pbnRlciBjYW4gYmUgZG91YmxlIGNvdW50ZWQg
YnkgdGhlIG1lbW9yeSBpbnN0cnVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDZjNWZhZjRm
ZWE4ZjgxOTBlMjFlNDliZjI4OTI2MTllYjJjMmU3M2MuLjU1OGY4N2NiYzJjMzUxMjYxNjNjNTA3
MTkxOTY5NTY5NzQ5ZjQzMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2lu
Y2x1ZGUgIlVzZXJNZWRpYVJlcXVlc3QuaCIKIAogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKKyNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiTG9jYWxN
ZWRpYVN0cmVhbS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2VudGVyLmgiCiAjaW5jbHVkZSAi
TWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgiCkBAIC02OSw2ICs3MSwxMiBAQCBVc2VyTWVkaWFSZXF1
ZXN0Ojp+VXNlck1lZGlhUmVxdWVzdCgpCiB7CiB9CiAKK0ZyYW1lKiBVc2VyTWVkaWFSZXF1ZXN0
OjpjYWxsaW5nRnJhbWUoKQoreworICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQt
PmlzRG9jdW1lbnQoKSk7CisgICAgcmV0dXJuICgoRG9jdW1lbnQqKW1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCktPmZyYW1lKCk7Cit9CisKIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6c3RhcnQoKQog
ewogICAgIE1lZGlhU3RyZWFtQ2VudGVyOjppbnN0YW5jZSgpLnF1ZXJ5TWVkaWFTdHJlYW1Tb3Vy
Y2VzKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCA4N2NhODliN2NjNjRiYzk5M2Q0ZGRlMDM3OWYxZjU3
YjZmYjA2ZjcxLi43MDhmM2JlOWJkNWNmZTI0ZWUyZTliZjI0ZTJiNmJlOTQxNTA0NGVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3QuaApAQCAtNDUsNiArNDUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
aWN0aW9uYXJ5OworY2xhc3MgRnJhbWU7CiBjbGFzcyBNZWRpYVN0cmVhbURlc2NyaXB0b3I7CiBj
bGFzcyBVc2VyTWVkaWFDb250cm9sbGVyOwogCkBAIC01NSw2ICs1Niw3IEBAIHB1YmxpYzoKIAog
ICAgIE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjayogc3VjY2Vzc0NhbGxiYWNrKCkg
Y29uc3QgeyByZXR1cm4gbV9zdWNjZXNzQ2FsbGJhY2suZ2V0KCk7IH0KICAgICBOYXZpZ2F0b3JV
c2VyTWVkaWFFcnJvckNhbGxiYWNrKiBlcnJvckNhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9l
cnJvckNhbGxiYWNrLmdldCgpOyB9CisgICAgRnJhbWUqIGNhbGxpbmdGcmFtZSgpOwogCiAgICAg
dm9pZCBzdGFydCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJVc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJVc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggNTQ5NDk0MDdmNzA1ZTE3ZWYwMGExOTBjNzdiMzk2
MDE3MTNjMTIyMy4uMjFjYzNkMzk0MzcwYjZmN2VmODAzN2Q2MmEwODY4ZGU0ZjBlYmFiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVXNlck1lZGlhUmVxdWVz
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVzZXJNZWRpYVJlcXVl
c3QuaApAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBVc2VyTWVkaWFSZXF1ZXN0OwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViRnJhbWU7CiBjbGFzcyBXZWJNZWRpYVN0cmVhbURlc2Ny
aXB0b3I7CiBjbGFzcyBXZWJNZWRpYVN0cmVhbVNvdXJjZTsKIGNsYXNzIFdlYlN0cmluZzsKQEAg
LTY3LDkgKzY4LDcgQEAgcHVibGljOgogICAgIFdFQktJVF9FWFBPUlQgYm9vbCB2aWRlbygpIGNv
bnN0OwogCiAgICAgV0VCS0lUX0VYUE9SVCBXZWJTZWN1cml0eU9yaWdpbiBzZWN1cml0eU9yaWdp
bigpIGNvbnN0OwotCi0gICAgLy8gREVQUkVDQVRFRAotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBy
ZXF1ZXN0U3VjY2VlZGVkKGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVNvdXJjZT4mIGF1
ZGlvU291cmNlcywgY29uc3QgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtU291cmNlPiYgdmlkZW9T
b3VyY2VzKTsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYkZyYW1lKiBjYWxsaW5nRnJhbWUoKSBjb25z
dDsKIAogICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKGNvbnN0IFdlYk1l
ZGlhU3RyZWFtRGVzY3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJVc2VyTWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlVzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IGM5YzBlY2NiMzYwMTQyZjFiYTYyMjA4
NGM1NzkzYTFhNTEwZWM0MzMuLmMwOWJiYjEzZjcwZDEzNTQ2OTA4ODQyNjcwM2E5MDg5ZTBhZGZk
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVzZXJNZWRpYVJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVzZXJNZWRpYVJl
cXVlc3QuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhUmVxdWVzdC5oIgorI2luY2x1
ZGUgIldlYkZyYW1lSW1wbC5oIgogI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSAicGxhdGZvcm0vV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAicGxh
dGZvcm0vV2ViTWVkaWFTdHJlYW1Tb3VyY2UuaCIKQEAgLTc4LDIzICs3OSwxMCBAQCBXZWJTZWN1
cml0eU9yaWdpbiBXZWJVc2VyTWVkaWFSZXF1ZXN0OjpzZWN1cml0eU9yaWdpbigpIGNvbnN0CiAg
ICAgcmV0dXJuIFdlYlNlY3VyaXR5T3JpZ2luKG1fcHJpdmF0ZS0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5zZWN1cml0eU9yaWdpbigpKTsKIH0KIAotdm9pZCBXZWJVc2VyTWVkaWFSZXF1ZXN0
OjpyZXF1ZXN0U3VjY2VlZGVkKGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVNvdXJjZT4m
IGF1ZGlvU291cmNlcywgY29uc3QgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtU291cmNlPiYgdmlk
ZW9Tb3VyY2VzKQorV2ViRnJhbWUqIFdlYlVzZXJNZWRpYVJlcXVlc3Q6OmNhbGxpbmdGcmFtZSgp
IGNvbnN0CiB7Ci0gICAgaWYgKG1fcHJpdmF0ZS5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgTWVkaWFTdHJlYW1Tb3VyY2VWZWN0b3IgYXVkaW87Ci0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBhdWRpb1NvdXJjZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgTWVkaWFTdHJlYW1T
b3VyY2UqIGN1cnIgPSBhdWRpb1NvdXJjZXNbaV07Ci0gICAgICAgIGF1ZGlvLmFwcGVuZChjdXJy
KTsKLSAgICB9Ci0gICAgTWVkaWFTdHJlYW1Tb3VyY2VWZWN0b3IgdmlkZW87Ci0gICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCB2aWRlb1NvdXJjZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgTWVk
aWFTdHJlYW1Tb3VyY2UqIGN1cnIgPSB2aWRlb1NvdXJjZXNbaV07Ci0gICAgICAgIHZpZGVvLmFw
cGVuZChjdXJyKTsKLSAgICB9Ci0KLSAgICBtX3ByaXZhdGUtPnN1Y2NlZWQoYXVkaW8sIHZpZGVv
KTsKKyAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBtX3ByaXZhdGUtPmNhbGxpbmdGcmFtZSgp
OworICAgIHJldHVybiBXZWJGcmFtZUltcGw6OmZyb21GcmFtZShmcmFtZSk7CiB9CiAKIHZvaWQg
V2ViVXNlck1lZGlhUmVxdWVzdDo6cmVxdWVzdFN1Y2NlZWRlZChjb25zdCBXZWJNZWRpYVN0cmVh
bURlc2NyaXB0b3ImIHN0cmVhbURlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzMzYWZiMTY1ZjU0ZDM1ZWZlZWE1Yjc4M2FiYThl
YzgxMjUwNDQ0My4uYWYwZjJlYjhjNzU5ZTAzNDQ5YWRlOGVhYzk4ZDI2ZWQ1OTc3MGZhZCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEyLTA5LTE5ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29t
PgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogRXh0ZW5kIFVzZXJNZWRpYVJlcXVlc3Qgd2l0
aCBhIGNhbGxpbmdGcmFtZSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk3MDk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRXh0ZW5kaW5nIFdlYlVzZXJNZWRpYUNsaWVudE1vY2sgdG8gY2hlY2sg
dGhhdCB0aGUgY2FsbGluZ0ZyYW1lIGlzbid0IG51bGwuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJVc2VyTWVkaWFDbGllbnRNb2NrLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVXNlck1lZGlhQ2xpZW50TW9jazo6cmVxdWVzdFVzZXJNZWRpYSk6CisKIDIwMTItMDkt
MTQgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgbnJ3dDog
LS1hZGRpdGlvbmFsLXBsYXRmb3JtLWRpciBpcyBicm9rZW4gb24gY2hyb21pdW0gcG9ydHMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlVzZXJNZWRpYUNsaWVu
dE1vY2suY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVXNlck1lZGlhQ2xp
ZW50TW9jay5jcHAKaW5kZXggNGVmZWI4MmQzYmM1ODllYzQ5MjcwNDM5OTA4MGU4NGQ3NjU5Njgw
Ny4uMmI1YzQyNzc3ZTQxOWMzM2M2NTFkZjNjYTk0ZGFkYmUxYjZhY2NmZiAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVXNlck1lZGlhQ2xpZW50TW9jay5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVXNlck1lZGlhQ2xpZW50TW9j
ay5jcHAKQEAgLTU3LDYgKzU3LDExIEBAIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50TW9jazo6cmVx
dWVzdFVzZXJNZWRpYShjb25zdCBXZWJVc2VyTWVkaWFSZXF1ZXN0JiBzdHJlYW1SCiAgICAgQVNT
RVJUKCFzdHJlYW1SZXF1ZXN0LmlzTnVsbCgpKTsKICAgICBXZWJVc2VyTWVkaWFSZXF1ZXN0IHJl
cXVlc3QgPSBzdHJlYW1SZXF1ZXN0OwogCisgICAgaWYgKCFyZXF1ZXN0LmNhbGxpbmdGcmFtZSgp
KSB7CisgICAgICAgIHJlcXVlc3QucmVxdWVzdEZhaWxlZCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgY29uc3Qgc2l6ZV90IHplcm8gPSAwOwogICAgIGNvbnN0IHNpemVfdCBvbmUg
PSAxOwogICAgIFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVNvdXJjZT4gYXVkaW9Tb3VyY2VzKHJl
cXVlc3QuYXVkaW8oKSA/IG9uZSA6IHplcm8pOwo=
</data>
<flag name="review"
          id="176568"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164871</attachid>
            <date>2012-09-20 02:47:15 -0700</date>
            <delta_ts>2012-09-20 11:22:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97095-20120920114640.patch</filename>
            <type>text/plain</type>
            <size>9113</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTBmN2QyZDBkOTljNjAx
ODEzYWI2NmYyMmZhMDVkYWQ5Zjk0NTAxYy4uNDM5NWE5YmQxYzU1YTUyNDQzYTFjOGY2MmYwNWY4
YWFlZTE5NDQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA5LTIwICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFt
IEFQSTogRXh0ZW5kIFVzZXJNZWRpYVJlcXVlc3Qgd2l0aCBhIG93bmVyRG9jdW1lbnQgbWV0aG9k
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzA5NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENocm9taXVt
IG5lZWQgdG8ga25vdyBleGFjdGx5IHdoaWNoIGZyYW1lIGNhbGxlZCBnZXRVc2VyTWVkaWEgc28g
dGhhdCBpdCBjYW4KKyAgICAgICAgY2xlYW4gYXdheSB0aGUgc3RyZWFtIHdoZW4gdGhlIGZyYW1l
IGdvZXMgYXdheS4KKyAgICAgICAgU2luY2UgdGhhdCBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUg
aW4gd2Via2l0IGFkZCBhbiBhY2Nlc3NvciBtZXRob2QuCisKKyAgICAgICAgQ2hyb21pdW0gbW9j
ayBjbGFzcyBleHRlbmRlZCB0byB0ZXN0IHRoZSBhZGRlZCBtZXRob2QuCisKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VXNlck1lZGlhUmVxdWVzdDo6b3duZXJEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoVXNlck1lZGlhUmVxdWVzdCk6CisKIDIwMTItMDktMjAg
IEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBub2tpYS5jb20+CiAKICAgICAg
ICAgW1RvdWNoQWRqdXN0bWVudF0gU2ltcGxpZnkgYW5kIGltcHJvdmUgaHlicmlkIGRpc3RhbmNl
IGZ1bmN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAwOGI1Y2Q1Y2ZhZWEzNWI4
NGYwODA3ZmFjN2VkNmViNzUzMjQ3YjI4Li4yMTk5YTNhMjM5ZmQ3YmUxYTVmMGJhZjQyNjg3ZGFh
NGQ3OGQxYWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisy
MDEyLTA5LTIwICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAg
ICAgIE1lZGlhU3RyZWFtIEFQSTogRXh0ZW5kIFVzZXJNZWRpYVJlcXVlc3Qgd2l0aCBhIG93bmVy
RG9jdW1lbnQgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NzA5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENocm9taXVtIG5lZWQgdG8ga25vdyBleGFjdGx5IHdoaWNoIGZyYW1lIGNhbGxlZCBn
ZXRVc2VyTWVkaWEgc28gdGhhdCBpdCBjYW4gY2xlYW4KKyAgICAgICAgYXdheSB0aGUgc3RyZWFt
IHdoZW4gdGhlIGZyYW1lIGdvZXMgYXdheS4KKyAgICAgICAgU2luY2UgdGhhdCBpbmZvcm1hdGlv
biBpcyBhdmFpbGFibGUgaW4gd2Via2l0IGFkZCBhbiBhY2Nlc3NvciBtZXRob2QuCisKKyAgICAg
ICAgQWxzbyB0YWtpbmcgdGhlIG9wcG9ydHVuaXR5IHRvIHJlbW92ZSBhbiB1bnVzZWQgZGVwcmVj
YXRlZCBtZXRob2QsCisgICAgICAgIGFuZCBhZGRpbmcgYXNzZXJ0cyBpbiBjYXNlIHRoZSBvYmpl
Y3QgaXMgZW1wdHkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViVXNlck1lZGlhUmVxdWVzdC5oOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlVzZXJNZWRpYVJlcXVlc3QpOgorICAgICAg
ICAqIHNyYy9XZWJVc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVXNl
ck1lZGlhUmVxdWVzdDo6b3duZXJEb2N1bWVudCk6CisKIDIwMTItMDktMTkgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgd2Via2l0UG9zdE1lc3NhZ2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuY3BwCmluZGV4IDZjNWZhZjRmZWE4ZjgxOTBlMjFlNDliZjI4OTI2MTllYjJjMmU3
M2MuLmU2ZmMyZTcxNTRhZDcyMTZhMTc2ZDJlMTI3MTAwNTdmNjMwOGNmOGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlVzZXJNZWRpYVJlcXVlc3QuaCIKIAog
I2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkxvY2FsTWVkaWFTdHJlYW0uaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbUNlbnRlci5oIgogI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIgpAQCAtNjksNiArNzAsMTYgQEAgVXNlck1l
ZGlhUmVxdWVzdDo6flVzZXJNZWRpYVJlcXVlc3QoKQogewogfQogCitEb2N1bWVudCogVXNlck1l
ZGlhUmVxdWVzdDo6b3duZXJEb2N1bWVudCgpCit7CisgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkgeworICAgICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0Rv
Y3VtZW50KCkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiB2b2lkIFVz
ZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0KCkKIHsKICAgICBNZWRpYVN0cmVhbUNlbnRlcjo6aW5zdGFu
Y2UoKS5xdWVyeU1lZGlhU3RyZWFtU291cmNlcyh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKaW5kZXggODdjYTg5
YjdjYzY0YmM5OTNkNGRkZTAzNzlmMWY1N2I2ZmIwNmY3MS4uYjUzMzQ4ZDI5NjNjMmJhMTMyNjhi
MjIxOTQ4YjM1OWY4NTRmMTM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmgKQEAgLTQ1LDYgKzQ1LDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGljdGlvbmFyeTsKK2NsYXNzIERvY3VtZW50OwogY2xh
c3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwogY2xhc3MgVXNlck1lZGlhQ29udHJvbGxlcjsKIApA
QCAtNTUsNiArNTYsNyBAQCBwdWJsaWM6CiAKICAgICBOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNz
Q2FsbGJhY2sqIHN1Y2Nlc3NDYWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc0NhbGxi
YWNrLmdldCgpOyB9CiAgICAgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjayogZXJyb3JD
YWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3JDYWxsYmFjay5nZXQoKTsgfQorICAgIERv
Y3VtZW50KiBvd25lckRvY3VtZW50KCk7CiAKICAgICB2b2lkIHN0YXJ0KCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVzZXJNZWRpYVJlcXVlc3QuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVzZXJNZWRpYVJlcXVlc3QuaAppbmRl
eCA1NDk0OTQwN2Y3MDVlMTdlZjAwYTE5MGM3N2IzOTYwMTcxM2MxMjIzLi42NjBkZjViYzFjNDhh
MGNiZDI5YjJiZTAwMTZiYTQzMDAzYzk1MzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJVc2VyTWVkaWFSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVXNlck1lZGlhUmVxdWVzdC5oCkBAIC00MCw3ICs0MCw3IEBAIGNs
YXNzIFVzZXJNZWRpYVJlcXVlc3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotCitjbGFzcyBX
ZWJEb2N1bWVudDsKIGNsYXNzIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKIGNsYXNzIFdlYk1l
ZGlhU3RyZWFtU291cmNlOwogY2xhc3MgV2ViU3RyaW5nOwpAQCAtNjcsOSArNjcsNyBAQCBwdWJs
aWM6CiAgICAgV0VCS0lUX0VYUE9SVCBib29sIHZpZGVvKCkgY29uc3Q7CiAKICAgICBXRUJLSVRf
RVhQT1JUIFdlYlNlY3VyaXR5T3JpZ2luIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7Ci0KLSAgICAv
LyBERVBSRUNBVEVECi0gICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoY29u
c3QgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtU291cmNlPiYgYXVkaW9Tb3VyY2VzLCBjb25zdCBX
ZWJWZWN0b3I8V2ViTWVkaWFTdHJlYW1Tb3VyY2U+JiB2aWRlb1NvdXJjZXMpOworICAgIFdFQktJ
VF9FWFBPUlQgV2ViRG9jdW1lbnQgb3duZXJEb2N1bWVudCgpIGNvbnN0OwogCiAgICAgV0VCS0lU
X0VYUE9SVCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoY29uc3QgV2ViTWVkaWFTdHJlYW1EZXNjcmlw
dG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVzZXJN
ZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVXNlck1lZGlh
UmVxdWVzdC5jcHAKaW5kZXggYzljMGVjY2IzNjAxNDJmMWJhNjIyMDg0YzU3OTNhMWE1MTBlYzQz
My4uMjZmMTdjMzViOGViMWYzN2IyN2U1MGE0ZjhhYmYwNTBjNjVjYzI4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTM1
LDEyICszNSwxMSBAQAogI2luY2x1ZGUgIldlYlVzZXJNZWRpYVJlcXVlc3QuaCIKIAogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVh
bURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZS5oIgotI2luY2x1ZGUg
IlBhZ2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlVzZXJNZWRp
YVJlcXVlc3QuaCIKKyNpbmNsdWRlICJXZWJEb2N1bWVudC5oIgogI2luY2x1ZGUgIldlYlNlY3Vy
aXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9y
LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViTWVkaWFTdHJlYW1Tb3VyY2UuaCIKQEAgLTY0LDUw
ICs2MywzNyBAQCB2b2lkIFdlYlVzZXJNZWRpYVJlcXVlc3Q6OnJlc2V0KCkKIAogYm9vbCBXZWJV
c2VyTWVkaWFSZXF1ZXN0OjphdWRpbygpIGNvbnN0CiB7CisgICAgQVNTRVJUKCFpc051bGwoKSk7
CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+YXVkaW8oKTsKIH0KIAogYm9vbCBXZWJVc2VyTWVkaWFS
ZXF1ZXN0Ojp2aWRlbygpIGNvbnN0CiB7CisgICAgQVNTRVJUKCFpc051bGwoKSk7CiAgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+dmlkZW8oKTsKIH0KIAogV2ViU2VjdXJpdHlPcmlnaW4gV2ViVXNlck1l
ZGlhUmVxdWVzdDo6c2VjdXJpdHlPcmlnaW4oKSBjb25zdAogewotICAgIEFTU0VSVChtX3ByaXZh
dGUtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgQVNTRVJUKCFpc051bGwoKSAmJiBt
X3ByaXZhdGUtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgcmV0dXJuIFdlYlNlY3Vy
aXR5T3JpZ2luKG1fcHJpdmF0ZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9y
aWdpbigpKTsKIH0KIAotdm9pZCBXZWJVc2VyTWVkaWFSZXF1ZXN0OjpyZXF1ZXN0U3VjY2VlZGVk
KGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVNvdXJjZT4mIGF1ZGlvU291cmNlcywgY29u
c3QgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtU291cmNlPiYgdmlkZW9Tb3VyY2VzKQorV2ViRG9j
dW1lbnQgV2ViVXNlck1lZGlhUmVxdWVzdDo6b3duZXJEb2N1bWVudCgpIGNvbnN0CiB7Ci0gICAg
aWYgKG1fcHJpdmF0ZS5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTWVkaWFTdHJl
YW1Tb3VyY2VWZWN0b3IgYXVkaW87Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhdWRpb1Nv
dXJjZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgTWVkaWFTdHJlYW1Tb3VyY2UqIGN1cnIgPSBh
dWRpb1NvdXJjZXNbaV07Ci0gICAgICAgIGF1ZGlvLmFwcGVuZChjdXJyKTsKLSAgICB9Ci0gICAg
TWVkaWFTdHJlYW1Tb3VyY2VWZWN0b3IgdmlkZW87Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCB2aWRlb1NvdXJjZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgTWVkaWFTdHJlYW1Tb3VyY2Uq
IGN1cnIgPSB2aWRlb1NvdXJjZXNbaV07Ci0gICAgICAgIHZpZGVvLmFwcGVuZChjdXJyKTsKLSAg
ICB9Ci0KLSAgICBtX3ByaXZhdGUtPnN1Y2NlZWQoYXVkaW8sIHZpZGVvKTsKKyAgICBBU1NFUlQo
IWlzTnVsbCgpKTsKKyAgICByZXR1cm4gV2ViRG9jdW1lbnQobV9wcml2YXRlLT5vd25lckRvY3Vt
ZW50KCkpOwogfQogCiB2b2lkIFdlYlVzZXJNZWRpYVJlcXVlc3Q6OnJlcXVlc3RTdWNjZWVkZWQo
Y29uc3QgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiBzdHJlYW1EZXNjcmlwdG9yKQogewotICAg
IEFTU0VSVCghc3RyZWFtRGVzY3JpcHRvci5pc051bGwoKSk7Ci0gICAgaWYgKG1fcHJpdmF0ZS5p
c051bGwoKSkKLSAgICAgICAgcmV0dXJuOwotCisgICAgQVNTRVJUKCFpc051bGwoKSAmJiAhc3Ry
ZWFtRGVzY3JpcHRvci5pc051bGwoKSk7CiAgICAgbV9wcml2YXRlLT5zdWNjZWVkKHN0cmVhbURl
c2NyaXB0b3IpOwogfQogCiB2b2lkIFdlYlVzZXJNZWRpYVJlcXVlc3Q6OnJlcXVlc3RGYWlsZWQo
KQogeworICAgIEFTU0VSVCghaXNOdWxsKCkpOwogICAgIG1fcHJpdmF0ZS0+ZmFpbCgpOwogfQog
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWY1
MTg2MjkwYmU1NzY3M2IwMzc3N2MwOGJmNGYyNTA3Yjc5ZGM4MC4uZTZiNzdmNDBjZWYyOWNhOTRk
MTBmNWU3YjhjZjE1YjdkOTBkNDQwOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTIwICBUb21teSBXaWRl
bmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQSTog
RXh0ZW5kIFVzZXJNZWRpYVJlcXVlc3Qgd2l0aCBhIG93bmVyRG9jdW1lbnQgbWV0aG9kCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzA5NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dGVuZGluZyBXZWJV
c2VyTWVkaWFDbGllbnRNb2NrIHRvIGNoZWNrIHRoYXQgdGhlIG93bmluZyBkb2N1bWVudCBpcyB2
YWxpZCwKKyAgICAgICAgYW5kIHRoYXQgdGhlIGRvY3VtZW50IGhhcyBhIGZyYW1lLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVXNlck1lZGlhQ2xpZW50TW9jay5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudE1vY2s6OnJlcXVlc3RVc2VyTWVk
aWEpOgorCiAyMDEyLTA5LTIwICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5A
ZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF0gQWRkIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlVzZXJNZWRpYUNsaWVu
dE1vY2suY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVXNlck1lZGlhQ2xp
ZW50TW9jay5jcHAKaW5kZXggNGVmZWI4MmQzYmM1ODllYzQ5MjcwNDM5OTA4MGU4NGQ3NjU5Njgw
Ny4uYTM3M2MzYjMwN2Q2NTYzYWY0NmFjNzMyODdiYzU1ODM2OGJkNGQxMCAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVXNlck1lZGlhQ2xpZW50TW9jay5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVXNlck1lZGlhQ2xpZW50TW9j
ay5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIldlYlVzZXJNZWRpYUNsaWVudE1v
Y2suaCIKIAorI2luY2x1ZGUgIldlYkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFTdHJl
YW1SZWdpc3RyeS5oIgogI2luY2x1ZGUgIldlYlVzZXJNZWRpYVJlcXVlc3QuaCIKICNpbmNsdWRl
ICJwbGF0Zm9ybS9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKQEAgLTU3LDYgKzU4LDExIEBA
IHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50TW9jazo6cmVxdWVzdFVzZXJNZWRpYShjb25zdCBXZWJV
c2VyTWVkaWFSZXF1ZXN0JiBzdHJlYW1SCiAgICAgQVNTRVJUKCFzdHJlYW1SZXF1ZXN0LmlzTnVs
bCgpKTsKICAgICBXZWJVc2VyTWVkaWFSZXF1ZXN0IHJlcXVlc3QgPSBzdHJlYW1SZXF1ZXN0Owog
CisgICAgaWYgKHJlcXVlc3Qub3duZXJEb2N1bWVudCgpLmlzTnVsbCgpIHx8ICFyZXF1ZXN0Lm93
bmVyRG9jdW1lbnQoKS5mcmFtZSgpKSB7CisgICAgICAgIHJlcXVlc3QucmVxdWVzdEZhaWxlZCgp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgY29uc3Qgc2l6ZV90IHplcm8gPSAwOwog
ICAgIGNvbnN0IHNpemVfdCBvbmUgPSAxOwogICAgIFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVNv
dXJjZT4gYXVkaW9Tb3VyY2VzKHJlcXVlc3QuYXVkaW8oKSA/IG9uZSA6IHplcm8pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>